diff --git a/apis/installer/v1alpha1/appscodeOtelStack_types.go b/apis/installer/v1alpha1/appscodeOtelStack_types.go
index 06848988..edb21db0 100644
--- a/apis/installer/v1alpha1/appscodeOtelStack_types.go
+++ b/apis/installer/v1alpha1/appscodeOtelStack_types.go
@@ -45,15 +45,16 @@ type AppscodeOtelStack struct {
// AppscodeOtelStackSpec is the schema for AppscodeOtelStack values file
type AppscodeOtelStackSpec struct {
- //+optional
- NameOverride string `json:"nameOverride"`
- //+optional
- FullnameOverride string `json:"fullnameOverride"`
- OpentelemetryKubeStack OpentelemetryKubeStackSpec `json:"opentelemetry-kube-stack"`
+ OpentelemetryKubeStack OpentelemetryKubeStackValues `json:"opentelemetry-kube-stack"`
}
-type OpentelemetryKubeStackSpec struct {
- ClusterName string `json:"clusterName"`
+type OpentelemetryKubeStackValues struct {
+ ClusterName string `json:"clusterName"`
+ // +optional
+ Crds OtelCrdsConfig `json:"crds"`
+ // +optional
+ OpentelemetryOperator *apiextensionsv1.JSON `json:"opentelemetry-operator"`
+ AdmissionWebhooks OtelAdmissionWebhooks `json:"admissionWebhooks"`
Collectors OpentelemetryKubeStackCollectors `json:"collectors"`
Instrumentation OpentelemetryFeatureFlag `json:"instrumentation"`
OpAMPBridge OpentelemetryFeatureFlag `json:"opAMPBridge"`
@@ -69,6 +70,18 @@ type OpentelemetryKubeStackSpec struct {
NodeExporter OpentelemetryFeatureFlag `json:"nodeExporter"`
}
+type OtelCrdsConfig struct {
+ InstallOtel bool `json:"installOtel"`
+}
+
+type OtelAdmissionWebhooks struct {
+ AutoGenerateCert OtelAutoGenerateCert `json:"autoGenerateCert"`
+}
+
+type OtelAutoGenerateCert struct {
+ Enabled bool `json:"enabled"`
+}
+
type OpentelemetryFeatureFlag struct {
Enabled bool `json:"enabled"`
}
@@ -80,29 +93,32 @@ type OpentelemetryKubeStackCollectors struct {
type OtelCollector struct {
//+optional
- Suffix string `json:"suffix"`
+ Suffix string `json:"suffix,omitempty"`
Enabled bool `json:"enabled"`
//+optional
- Env []core.EnvVar `json:"env"`
+ Env []core.EnvVar `json:"env,omitempty"`
//+optional
- ScrapeConfigsFile string `json:"scrape_configs_file"`
+ ScrapeConfigsFile string `json:"scrape_configs_file,omitempty"`
//+optional
- Labels map[string]string `json:"labels"`
+ Labels map[string]string `json:"labels,omitempty"`
//+optional
- Image *OtelCollectorImage `json:"image"`
+ Image *OtelCollectorImage `json:"image,omitempty"`
// +optional
- TargetAllocator *OtelTargetAllocator `json:"targetAllocator"`
- // Config holds the arbitrary OpenTelemetry collector pipeline configuration
- // (receivers, exporters, processors, service, extensions).
+ TargetAllocator *OtelTargetAllocator `json:"targetAllocator,omitempty"`
+ // Config holds the arbitrary OpenTelemetry collector pipeline configuration.
// +optional
// +kubebuilder:pruning:PreserveUnknownFields
- Config *apiextensionsv1.JSON `json:"config"`
+ Config *apiextensionsv1.JSON `json:"config,omitempty"`
// +optional
- Presets *OtelCollectorPresets `json:"presets"`
+ Presets *OtelCollectorPresets `json:"presets,omitempty"`
//+optional
- VolumeMounts []core.VolumeMount `json:"volumeMounts"`
+ VolumeMounts []core.VolumeMount `json:"volumeMounts,omitempty"`
//+optional
- Volumes []core.Volume `json:"volumes"`
+ Volumes []core.Volume `json:"volumes,omitempty"`
+ // +optional
+ Resources core.ResourceRequirements `json:"resources,omitempty"`
+ // +optional
+ HostAliases []core.HostAlias `json:"hostAliases,omitempty"`
}
type OtelCollectorImage struct {
@@ -130,11 +146,16 @@ type OtelTargetAllocatorPromCR struct {
}
type OtelCollectorPresets struct {
- LogsCollection *OtelPresetFlag `json:"logsCollection"`
- HostMetrics *OtelPresetFlag `json:"hostMetrics"`
- KubeletMetrics *OtelPresetFlag `json:"kubeletMetrics"`
- KubernetesAttributes *OtelPresetFlag `json:"kubernetesAttributes"`
- ClusterMetrics *OtelPresetFlag `json:"clusterMetrics"`
+ // +optional
+ LogsCollection *OtelPresetFlag `json:"logsCollection,omitempty"`
+ // +optional
+ HostMetrics *OtelPresetFlag `json:"hostMetrics,omitempty"`
+ // +optional
+ KubeletMetrics *OtelPresetFlag `json:"kubeletMetrics,omitempty"`
+ // +optional
+ KubernetesAttributes *OtelPresetFlag `json:"kubernetesAttributes,omitempty"`
+ // +optional
+ ClusterMetrics *OtelPresetFlag `json:"clusterMetrics,omitempty"`
}
type OtelPresetFlag struct {
diff --git a/apis/installer/v1alpha1/perses_types.go b/apis/installer/v1alpha1/perses_types.go
index a55adade..6d4e6c94 100644
--- a/apis/installer/v1alpha1/perses_types.go
+++ b/apis/installer/v1alpha1/perses_types.go
@@ -18,6 +18,7 @@ package v1alpha1
import (
core "k8s.io/api/core/v1"
+ apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"kmodules.xyz/resource-metadata/apis/shared"
)
@@ -88,6 +89,22 @@ type PersesSpec struct {
TLS PersesTLS `json:"tls"`
// +optional
Distro shared.DistroSpec `json:"distro"`
+ // +optional
+ Datasources *apiextensionsv1.JSON `json:"datasources"`
+ // +optional
+ ExtraArgs *apiextensionsv1.JSON `json:"extraArgs"`
+ // +optional
+ ExtraObjects *apiextensionsv1.JSON `json:"extraObjects"`
+ // +optional
+ OciArtifacts *apiextensionsv1.JSON `json:"ociArtifacts"`
+ // +optional
+ TestFramework PersesTestFramework `json:"testFramework"`
+ // +optional
+ TopologySpreadConstraints []core.TopologySpreadConstraint `json:"topologySpreadConstraints"`
+ // +optional
+ VolumeMounts []core.VolumeMount `json:"volumeMounts"`
+ // +optional
+ Volumes []core.Volume `json:"volumes"`
}
type PersesImage struct {
@@ -112,9 +129,16 @@ type PersesServiceMonitor struct {
//+optional
Labels map[string]string `json:"labels"`
//+optional
+ Selector PersesServiceMonitorSelector `json:"selector"`
+ //+optional
Interval string `json:"interval"`
}
+type PersesServiceMonitorSelector struct {
+ //+optional
+ MatchLabels map[string]string `json:"matchLabels"`
+}
+
type PersesProbe struct {
Enabled bool `json:"enabled"`
InitialDelaySeconds int32 `json:"initialDelaySeconds"`
@@ -139,12 +163,32 @@ type PersesConfigSecurity struct {
Readonly bool `json:"readonly"`
EnableAuth bool `json:"enable_auth"`
Authentication PersesConfigAuthentication `json:"authentication"`
- Cookie PersesConfigCookie `json:"cookie"`
+ // +optional
+ Authorization PersesConfigAuthorization `json:"authorization"`
+ Cookie PersesConfigCookie `json:"cookie"`
+}
+
+type PersesConfigAuthorization struct {
+ // +optional
+ GuestPermissions []PersesGuestPermission `json:"guest_permissions"`
+}
+
+type PersesGuestPermission struct {
+ // +optional
+ Actions []string `json:"actions"`
+ // +optional
+ Scopes []string `json:"scopes"`
}
type PersesConfigAuthentication struct {
- AccessTokenTTL string `json:"access_token_ttl"`
- RefreshTokenTTL string `json:"refresh_token_ttl"`
+ // +optional
+ Providers PersesConfigAuthenticationProviders `json:"providers"`
+ AccessTokenTTL string `json:"access_token_ttl"`
+ RefreshTokenTTL string `json:"refresh_token_ttl"`
+}
+
+type PersesConfigAuthenticationProviders struct {
+ EnableNative bool `json:"enable_native"`
}
type PersesConfigCookie struct {
@@ -156,6 +200,15 @@ type PersesConfigFrontend struct {
Explorer PersesConfigFrontendExplorer `json:"explorer"`
//+optional
Information string `json:"information"`
+ //+optional
+ ImportantDashboards []PersesImportantDashboard `json:"important_dashboards"`
+}
+
+type PersesImportantDashboard struct {
+ //+optional
+ Project string `json:"project"`
+ //+optional
+ Dashboard string `json:"dashboard"`
}
type PersesConfigFrontendExplorer struct {
@@ -213,7 +266,7 @@ type PersesSidecarImage struct {
type PersesPersistence struct {
Enabled bool `json:"enabled"`
//+optional
- StorageClass string `json:"storageClass"`
+ StorageClass string `json:"storageClass,omitempty"`
//+optional
AccessModes []string `json:"accessModes"`
Size string `json:"size"`
@@ -266,6 +319,20 @@ type PersesTLSCert struct {
MountPath string `json:"mountPath"`
}
+type PersesTestFramework struct {
+ Enabled bool `json:"enabled"`
+ Image PersesTestFrameworkImage `json:"image"`
+ //+optional
+ ImagePullPolicy string `json:"imagePullPolicy"`
+}
+
+type PersesTestFrameworkImage struct {
+ //+optional
+ Registry string `json:"registry"`
+ Repository string `json:"repository"`
+ Tag string `json:"tag"`
+}
+
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// PersesList is a list of Perses
diff --git a/apis/installer/v1alpha1/promlabelproxy_types.go b/apis/installer/v1alpha1/promlabelproxy_types.go
index 380019c9..65d61551 100644
--- a/apis/installer/v1alpha1/promlabelproxy_types.go
+++ b/apis/installer/v1alpha1/promlabelproxy_types.go
@@ -17,7 +17,9 @@ limitations under the License.
package v1alpha1
import (
+ catgwapi "go.bytebuilders.dev/catalog/api/gateway/v1alpha1"
core "k8s.io/api/core/v1"
+ apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"kmodules.xyz/resource-metadata/apis/shared"
)
@@ -73,15 +75,38 @@ type PromLabelProxySpec struct {
//+optional
NodeSelector map[string]string `json:"nodeSelector"`
// +optional
- Tolerations []core.Toleration `json:"tolerations"`
- Ingress PromLabelProxyIngress `json:"ingress"`
- Config PromLabelProxyConfig `json:"config"`
- Metrics PromLabelProxyMetrics `json:"metrics"`
- KubeRBACProxy PromLabelProxyKubeRBACProxy `json:"kubeRBACProxy"`
- Clickhouse PromLabelProxyClickhouse `json:"clickhouse"`
- Infra PromLabelProxyInfra `json:"infra"`
+ Tolerations []core.Toleration `json:"tolerations"`
+ // +optional
+ LivenessProbe PromLabelProxyProbe `json:"livenessProbe"`
+ // +optional
+ ReadinessProbe PromLabelProxyProbe `json:"readinessProbe"`
+ Ingress PromLabelProxyIngress `json:"ingress"`
+ Config PromLabelProxyConfig `json:"config"`
+ Metrics PromLabelProxyMetrics `json:"metrics"`
+ KubeRBACProxy PromLabelProxyKubeRBACProxy `json:"kubeRBACProxy"`
+ Infra catgwapi.ServiceProviderInfra `json:"infra"`
+ // +optional
+ Platform PromLabelProxyPlatform `json:"platform"`
// +optional
Distro shared.DistroSpec `json:"distro"`
+ // +optional
+ ExtraManifests *apiextensionsv1.JSON `json:"extraManifests"`
+}
+
+type PromLabelProxyProbe struct {
+ // +optional
+ HttpGet PromLabelProxyProbeHttpGet `json:"httpGet"`
+}
+
+type PromLabelProxyProbeHttpGet struct {
+ Path string `json:"path"`
+ Port string `json:"port"`
+ Scheme string `json:"scheme"`
+}
+
+type PromLabelProxyPlatform struct {
+ //+optional
+ BaseURL string `json:"baseURL"`
}
type PromLabelProxyImage struct {
@@ -155,15 +180,43 @@ type PromLabelProxyServiceMonitor struct {
//+optional
JobLabel string `json:"jobLabel"`
//+optional
+ TargetLabels []string `json:"targetLabels"`
+ //+optional
+ PodTargetLabels []string `json:"podTargetLabels"`
+ //+optional
+ SampleLimit int32 `json:"sampleLimit"`
+ //+optional
+ TargetLimit int32 `json:"targetLimit"`
+ //+optional
+ LabelLimit int32 `json:"labelLimit"`
+ //+optional
+ LabelNameLengthLimit int32 `json:"labelNameLengthLimit"`
+ //+optional
+ LabelValueLengthLimit int32 `json:"labelValueLengthLimit"`
+ HonorLabels bool `json:"honorLabels"`
+ // +optional
+ HonorTimestamps *bool `json:"honorTimestamps"`
+ //+optional
Interval string `json:"interval"`
//+optional
ScrapeTimeout string `json:"scrapeTimeout"`
- HonorLabels bool `json:"honorLabels"`
+ // +optional
+ AttachMetadata *apiextensionsv1.JSON `json:"attachMetadata"`
+ // +optional
+ Relabelings *apiextensionsv1.JSON `json:"relabelings"`
+ // +optional
+ MetricRelabelings *apiextensionsv1.JSON `json:"metricRelabelings"`
+ // +optional
+ AdditionalConfigs *apiextensionsv1.JSON `json:"additionalConfigs"`
+ // +optional
+ AdditionalEndpointConfigs *apiextensionsv1.JSON `json:"additionalEndpointConfigs"`
}
type PromLabelProxyKubeRBACProxy struct {
- Enabled bool `json:"enabled"`
- Image PromLabelProxyImage `json:"image"`
+ Enabled bool `json:"enabled"`
+ // +optional
+ Config *apiextensionsv1.JSON `json:"config"`
+ Image PromLabelProxyImage `json:"image"`
//+optional
ExtraArgs []string `json:"extraArgs"`
Port int32 `json:"port"`
@@ -171,42 +224,8 @@ type PromLabelProxyKubeRBACProxy struct {
ContainerSecurityContext *core.SecurityContext `json:"containerSecurityContext"`
// +optional
Resources core.ResourceRequirements `json:"resources"`
-}
-
-type PromLabelProxyClickhouse struct {
- Enabled bool `json:"enabled"`
- Version string `json:"version"`
- DeletionPolicy string `json:"deletionPolicy"`
- DeploymentMode string `json:"deploymentMode"`
// +optional
- TLS PromLabelProxyClickhouseTLS `json:"tls"`
- // +optional
- Storage PromLabelProxyStorage `json:"storage"`
- // +optional
- S3 PromLabelProxyClickhouseS3 `json:"s3"`
-}
-
-type PromLabelProxyClickhouseTLS struct {
- // +optional
- ClientCaCertificateRefs []PromLabelProxyClickhouseCertRef `json:"clientCaCertificateRefs"`
-}
-
-type PromLabelProxyClickhouseCertRef struct {
- Name string `json:"name"`
- Key string `json:"key"`
-}
-
-type PromLabelProxyClickhouseS3 struct {
- //+optional
- Endpoint string `json:"endpoint"`
- //+optional
- AccessKeyId string `json:"accessKeyId"`
- //+optional
- SecretAccessKey string `json:"secretAccessKey"`
- //+optional
- Region string `json:"region"`
- //+optional
- SkipVerify int32 `json:"skipVerify"`
+ VolumeMounts []core.VolumeMount `json:"volumeMounts"`
}
type PromLabelProxyStorage struct {
@@ -218,43 +237,6 @@ type PromLabelProxyStorage struct {
Resources core.ResourceRequirements `json:"resources"`
}
-type PromLabelProxyInfra struct {
- Host string `json:"host"`
- HostType string `json:"hostType"`
- TLS PromLabelProxyInfraTLS `json:"tls"`
- DNS PromLabelProxyInfraDNS `json:"dns"`
- GatewayClassName string `json:"gatewayClassName"`
-}
-
-type PromLabelProxyInfraTLS struct {
- Issuer string `json:"issuer"`
- Ca PromLabelProxyInfraTLSCa `json:"ca"`
- Acme PromLabelProxyInfraTLSAcme `json:"acme"`
- Certificate PromLabelProxyInfraTLSCert `json:"certificate"`
-}
-
-type PromLabelProxyInfraTLSCa struct {
- Cert string `json:"cert"`
- Key string `json:"key"`
-}
-
-type PromLabelProxyInfraTLSAcme struct {
- Email string `json:"email"`
- Solver string `json:"solver"`
- GatewayName string `json:"gatewayName"`
-}
-
-type PromLabelProxyInfraTLSCert struct {
- Cert string `json:"cert"`
- Key string `json:"key"`
-}
-
-type PromLabelProxyInfraDNS struct {
- Provider string `json:"provider"`
- //+optional
- Auth map[string]string `json:"auth"`
-}
-
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// PromLabelProxyList is a list of PromLabelProxies
diff --git a/apis/installer/v1alpha1/thanosoperator_types.go b/apis/installer/v1alpha1/thanosoperator_types.go
index 34f80fb4..f4a2244d 100644
--- a/apis/installer/v1alpha1/thanosoperator_types.go
+++ b/apis/installer/v1alpha1/thanosoperator_types.go
@@ -50,22 +50,6 @@ type ThanosOperatorSpec struct {
Metrics ThanosOperatorMetrics `json:"metrics"`
CertManager ThanosFeatureFlag `json:"certManager"`
Prometheus ThanosFeatureFlag `json:"prometheus"`
- // +optional
- ObjectStorage ThanosObjectStorage `json:"objectStorage"`
-}
-
-type ThanosObjectStorage struct {
- Enabled bool `json:"enabled"`
- //+optional
- Bucket string `json:"bucket"`
- //+optional
- Endpoint string `json:"endpoint"`
- //+optional
- AccessKey string `json:"accessKey"`
- //+optional
- SecretKey string `json:"secretKey"`
- //+optional
- Prefix string `json:"prefix"`
}
type ThanosOperatorManager struct {
diff --git a/apis/installer/v1alpha1/types_test.go b/apis/installer/v1alpha1/types_test.go
index dd187cc9..78f8afc0 100644
--- a/apis/installer/v1alpha1/types_test.go
+++ b/apis/installer/v1alpha1/types_test.go
@@ -27,11 +27,14 @@ import (
func TestDefaultValues(t *testing.T) {
checker := schemachecker.New(os.DirFS("../../.."),
- schemachecker.TestCase{Obj: v1alpha1.TenantOperator{}},
- schemachecker.TestCase{Obj: v1alpha1.ThanosOperator{}},
- schemachecker.TestCase{Obj: v1alpha1.PromLabelProxy{}},
- schemachecker.TestCase{Obj: v1alpha1.Perses{}},
- schemachecker.TestCase{Obj: v1alpha1.AppscodeOtelStack{}},
+ schemachecker.TestCase{Obj: v1alpha1.AppscodeOtelStackSpec{}},
+ schemachecker.TestCase{Obj: v1alpha1.InboxAgentSpec{}},
+ schemachecker.TestCase{Obj: v1alpha1.InboxServerDistributedSpec{}},
+ schemachecker.TestCase{Obj: v1alpha1.InboxServerSpec{}},
+ schemachecker.TestCase{Obj: v1alpha1.PersesSpec{}},
+ schemachecker.TestCase{Obj: v1alpha1.PromLabelProxySpec{}},
+ schemachecker.TestCase{Obj: v1alpha1.TenantOperatorSpec{}},
+ schemachecker.TestCase{Obj: v1alpha1.ThanosOperatorSpec{}},
)
checker.TestAll(t)
}
diff --git a/apis/installer/v1alpha1/zz_generated.deepcopy.go b/apis/installer/v1alpha1/zz_generated.deepcopy.go
index 1a6665e2..3c7a07de 100644
--- a/apis/installer/v1alpha1/zz_generated.deepcopy.go
+++ b/apis/installer/v1alpha1/zz_generated.deepcopy.go
@@ -21,8 +21,8 @@ limitations under the License.
package v1alpha1
import (
- v1 "k8s.io/api/core/v1"
- apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
+ corev1 "k8s.io/api/core/v1"
+ v1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
"k8s.io/apimachinery/pkg/runtime"
)
@@ -171,7 +171,7 @@ func (in *CleanerRef) DeepCopyInto(out *CleanerRef) {
out.ImageRef = in.ImageRef
if in.SecurityContext != nil {
in, out := &in.SecurityContext, &out.SecurityContext
- *out = new(v1.SecurityContext)
+ *out = new(corev1.SecurityContext)
(*in).DeepCopyInto(*out)
}
}
@@ -193,7 +193,7 @@ func (in *Container) DeepCopyInto(out *Container) {
in.Resources.DeepCopyInto(&out.Resources)
if in.SecurityContext != nil {
in, out := &in.SecurityContext, &out.SecurityContext
- *out = new(v1.SecurityContext)
+ *out = new(corev1.SecurityContext)
(*in).DeepCopyInto(*out)
}
}
@@ -418,19 +418,19 @@ func (in *InboxAgentSpec) DeepCopyInto(out *InboxAgentSpec) {
}
if in.Tolerations != nil {
in, out := &in.Tolerations, &out.Tolerations
- *out = make([]v1.Toleration, len(*in))
+ *out = make([]corev1.Toleration, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
if in.Affinity != nil {
in, out := &in.Affinity, &out.Affinity
- *out = new(v1.Affinity)
+ *out = new(corev1.Affinity)
(*in).DeepCopyInto(*out)
}
if in.PodSecurityContext != nil {
in, out := &in.PodSecurityContext, &out.PodSecurityContext
- *out = new(v1.PodSecurityContext)
+ *out = new(corev1.PodSecurityContext)
(*in).DeepCopyInto(*out)
}
in.ServiceAccount.DeepCopyInto(&out.ServiceAccount)
@@ -621,12 +621,12 @@ func (in *InboxServerMigrateSpec) DeepCopyInto(out *InboxServerMigrateSpec) {
}
if in.PodSecurityContext != nil {
in, out := &in.PodSecurityContext, &out.PodSecurityContext
- *out = new(v1.PodSecurityContext)
+ *out = new(corev1.PodSecurityContext)
(*in).DeepCopyInto(*out)
}
if in.SecurityContext != nil {
in, out := &in.SecurityContext, &out.SecurityContext
- *out = new(v1.SecurityContext)
+ *out = new(corev1.SecurityContext)
(*in).DeepCopyInto(*out)
}
in.Resources.DeepCopyInto(&out.Resources)
@@ -639,14 +639,14 @@ func (in *InboxServerMigrateSpec) DeepCopyInto(out *InboxServerMigrateSpec) {
}
if in.Tolerations != nil {
in, out := &in.Tolerations, &out.Tolerations
- *out = make([]v1.Toleration, len(*in))
+ *out = make([]corev1.Toleration, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
if in.Affinity != nil {
in, out := &in.Affinity, &out.Affinity
- *out = new(v1.Affinity)
+ *out = new(corev1.Affinity)
(*in).DeepCopyInto(*out)
}
}
@@ -900,8 +900,15 @@ func (in *OpentelemetryKubeStackCollectors) DeepCopy() *OpentelemetryKubeStackCo
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *OpentelemetryKubeStackSpec) DeepCopyInto(out *OpentelemetryKubeStackSpec) {
+func (in *OpentelemetryKubeStackValues) DeepCopyInto(out *OpentelemetryKubeStackValues) {
*out = *in
+ out.Crds = in.Crds
+ if in.OpentelemetryOperator != nil {
+ in, out := &in.OpentelemetryOperator, &out.OpentelemetryOperator
+ *out = new(v1.JSON)
+ (*in).DeepCopyInto(*out)
+ }
+ out.AdmissionWebhooks = in.AdmissionWebhooks
in.Collectors.DeepCopyInto(&out.Collectors)
out.Instrumentation = in.Instrumentation
out.OpAMPBridge = in.OpAMPBridge
@@ -917,12 +924,43 @@ func (in *OpentelemetryKubeStackSpec) DeepCopyInto(out *OpentelemetryKubeStackSp
out.NodeExporter = in.NodeExporter
}
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpentelemetryKubeStackSpec.
-func (in *OpentelemetryKubeStackSpec) DeepCopy() *OpentelemetryKubeStackSpec {
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpentelemetryKubeStackValues.
+func (in *OpentelemetryKubeStackValues) DeepCopy() *OpentelemetryKubeStackValues {
if in == nil {
return nil
}
- out := new(OpentelemetryKubeStackSpec)
+ out := new(OpentelemetryKubeStackValues)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *OtelAdmissionWebhooks) DeepCopyInto(out *OtelAdmissionWebhooks) {
+ *out = *in
+ out.AutoGenerateCert = in.AutoGenerateCert
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OtelAdmissionWebhooks.
+func (in *OtelAdmissionWebhooks) DeepCopy() *OtelAdmissionWebhooks {
+ if in == nil {
+ return nil
+ }
+ out := new(OtelAdmissionWebhooks)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *OtelAutoGenerateCert) DeepCopyInto(out *OtelAutoGenerateCert) {
+ *out = *in
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OtelAutoGenerateCert.
+func (in *OtelAutoGenerateCert) DeepCopy() *OtelAutoGenerateCert {
+ if in == nil {
+ return nil
+ }
+ out := new(OtelAutoGenerateCert)
in.DeepCopyInto(out)
return out
}
@@ -932,7 +970,7 @@ func (in *OtelCollector) DeepCopyInto(out *OtelCollector) {
*out = *in
if in.Env != nil {
in, out := &in.Env, &out.Env
- *out = make([]v1.EnvVar, len(*in))
+ *out = make([]corev1.EnvVar, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
@@ -956,7 +994,7 @@ func (in *OtelCollector) DeepCopyInto(out *OtelCollector) {
}
if in.Config != nil {
in, out := &in.Config, &out.Config
- *out = new(apiextensionsv1.JSON)
+ *out = new(v1.JSON)
(*in).DeepCopyInto(*out)
}
if in.Presets != nil {
@@ -966,14 +1004,22 @@ func (in *OtelCollector) DeepCopyInto(out *OtelCollector) {
}
if in.VolumeMounts != nil {
in, out := &in.VolumeMounts, &out.VolumeMounts
- *out = make([]v1.VolumeMount, len(*in))
+ *out = make([]corev1.VolumeMount, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
if in.Volumes != nil {
in, out := &in.Volumes, &out.Volumes
- *out = make([]v1.Volume, len(*in))
+ *out = make([]corev1.Volume, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ in.Resources.DeepCopyInto(&out.Resources)
+ if in.HostAliases != nil {
+ in, out := &in.HostAliases, &out.HostAliases
+ *out = make([]corev1.HostAlias, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
@@ -1045,6 +1091,21 @@ func (in *OtelCollectorPresets) DeepCopy() *OtelCollectorPresets {
return out
}
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *OtelCrdsConfig) DeepCopyInto(out *OtelCrdsConfig) {
+ *out = *in
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OtelCrdsConfig.
+func (in *OtelCrdsConfig) DeepCopy() *OtelCrdsConfig {
+ if in == nil {
+ return nil
+ }
+ out := new(OtelCrdsConfig)
+ in.DeepCopyInto(out)
+ return out
+}
+
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *OtelPresetFlag) DeepCopyInto(out *OtelPresetFlag) {
*out = *in
@@ -1145,8 +1206,8 @@ func (in *PersesConfig) DeepCopyInto(out *PersesConfig) {
(*out)[key] = val
}
}
- out.Security = in.Security
- out.Frontend = in.Frontend
+ in.Security.DeepCopyInto(&out.Security)
+ in.Frontend.DeepCopyInto(&out.Frontend)
out.Database = in.Database
in.Provisioning.DeepCopyInto(&out.Provisioning)
}
@@ -1164,6 +1225,7 @@ func (in *PersesConfig) DeepCopy() *PersesConfig {
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PersesConfigAuthentication) DeepCopyInto(out *PersesConfigAuthentication) {
*out = *in
+ out.Providers = in.Providers
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersesConfigAuthentication.
@@ -1176,6 +1238,43 @@ func (in *PersesConfigAuthentication) DeepCopy() *PersesConfigAuthentication {
return out
}
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *PersesConfigAuthenticationProviders) DeepCopyInto(out *PersesConfigAuthenticationProviders) {
+ *out = *in
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersesConfigAuthenticationProviders.
+func (in *PersesConfigAuthenticationProviders) DeepCopy() *PersesConfigAuthenticationProviders {
+ if in == nil {
+ return nil
+ }
+ out := new(PersesConfigAuthenticationProviders)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *PersesConfigAuthorization) DeepCopyInto(out *PersesConfigAuthorization) {
+ *out = *in
+ if in.GuestPermissions != nil {
+ in, out := &in.GuestPermissions, &out.GuestPermissions
+ *out = make([]PersesGuestPermission, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersesConfigAuthorization.
+func (in *PersesConfigAuthorization) DeepCopy() *PersesConfigAuthorization {
+ if in == nil {
+ return nil
+ }
+ out := new(PersesConfigAuthorization)
+ in.DeepCopyInto(out)
+ return out
+}
+
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PersesConfigCookie) DeepCopyInto(out *PersesConfigCookie) {
*out = *in
@@ -1226,6 +1325,11 @@ func (in *PersesConfigDatabaseSQL) DeepCopy() *PersesConfigDatabaseSQL {
func (in *PersesConfigFrontend) DeepCopyInto(out *PersesConfigFrontend) {
*out = *in
out.Explorer = in.Explorer
+ if in.ImportantDashboards != nil {
+ in, out := &in.ImportantDashboards, &out.ImportantDashboards
+ *out = make([]PersesImportantDashboard, len(*in))
+ copy(*out, *in)
+ }
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersesConfigFrontend.
@@ -1277,6 +1381,7 @@ func (in *PersesConfigProvisioning) DeepCopy() *PersesConfigProvisioning {
func (in *PersesConfigSecurity) DeepCopyInto(out *PersesConfigSecurity) {
*out = *in
out.Authentication = in.Authentication
+ in.Authorization.DeepCopyInto(&out.Authorization)
out.Cookie = in.Cookie
}
@@ -1290,6 +1395,31 @@ func (in *PersesConfigSecurity) DeepCopy() *PersesConfigSecurity {
return out
}
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *PersesGuestPermission) DeepCopyInto(out *PersesGuestPermission) {
+ *out = *in
+ if in.Actions != nil {
+ in, out := &in.Actions, &out.Actions
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ if in.Scopes != nil {
+ in, out := &in.Scopes, &out.Scopes
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersesGuestPermission.
+func (in *PersesGuestPermission) DeepCopy() *PersesGuestPermission {
+ if in == nil {
+ return nil
+ }
+ out := new(PersesGuestPermission)
+ in.DeepCopyInto(out)
+ return out
+}
+
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PersesImage) DeepCopyInto(out *PersesImage) {
*out = *in
@@ -1305,6 +1435,21 @@ func (in *PersesImage) DeepCopy() *PersesImage {
return out
}
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *PersesImportantDashboard) DeepCopyInto(out *PersesImportantDashboard) {
+ *out = *in
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersesImportantDashboard.
+func (in *PersesImportantDashboard) DeepCopy() *PersesImportantDashboard {
+ if in == nil {
+ return nil
+ }
+ out := new(PersesImportantDashboard)
+ in.DeepCopyInto(out)
+ return out
+}
+
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PersesIngress) DeepCopyInto(out *PersesIngress) {
*out = *in
@@ -1438,7 +1583,7 @@ func (in *PersesPersistence) DeepCopyInto(out *PersesPersistence) {
}
if in.SecurityContext != nil {
in, out := &in.SecurityContext, &out.SecurityContext
- *out = new(v1.PodSecurityContext)
+ *out = new(corev1.PodSecurityContext)
(*in).DeepCopyInto(*out)
}
if in.Labels != nil {
@@ -1555,6 +1700,7 @@ func (in *PersesServiceMonitor) DeepCopyInto(out *PersesServiceMonitor) {
(*out)[key] = val
}
}
+ in.Selector.DeepCopyInto(&out.Selector)
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersesServiceMonitor.
@@ -1567,13 +1713,35 @@ func (in *PersesServiceMonitor) DeepCopy() *PersesServiceMonitor {
return out
}
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *PersesServiceMonitorSelector) DeepCopyInto(out *PersesServiceMonitorSelector) {
+ *out = *in
+ if in.MatchLabels != nil {
+ in, out := &in.MatchLabels, &out.MatchLabels
+ *out = make(map[string]string, len(*in))
+ for key, val := range *in {
+ (*out)[key] = val
+ }
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersesServiceMonitorSelector.
+func (in *PersesServiceMonitorSelector) DeepCopy() *PersesServiceMonitorSelector {
+ if in == nil {
+ return nil
+ }
+ out := new(PersesServiceMonitorSelector)
+ in.DeepCopyInto(out)
+ return out
+}
+
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PersesSidecar) DeepCopyInto(out *PersesSidecar) {
*out = *in
out.Image = in.Image
if in.ExtraEnvVars != nil {
in, out := &in.ExtraEnvVars, &out.ExtraEnvVars
- *out = make([]v1.EnvVar, len(*in))
+ *out = make([]corev1.EnvVar, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
@@ -1628,7 +1796,7 @@ func (in *PersesSpec) DeepCopyInto(out *PersesSpec) {
}
if in.Tolerations != nil {
in, out := &in.Tolerations, &out.Tolerations
- *out = make([]v1.Toleration, len(*in))
+ *out = make([]corev1.Toleration, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
@@ -1642,7 +1810,7 @@ func (in *PersesSpec) DeepCopyInto(out *PersesSpec) {
}
if in.Affinity != nil {
in, out := &in.Affinity, &out.Affinity
- *out = new(v1.Affinity)
+ *out = new(corev1.Affinity)
(*in).DeepCopyInto(*out)
}
out.LivenessProbe = in.LivenessProbe
@@ -1652,7 +1820,7 @@ func (in *PersesSpec) DeepCopyInto(out *PersesSpec) {
in.ProvisioningPersistence.DeepCopyInto(&out.ProvisioningPersistence)
if in.EnvVars != nil {
in, out := &in.EnvVars, &out.EnvVars
- *out = make([]v1.EnvVar, len(*in))
+ *out = make([]corev1.EnvVar, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
@@ -1662,6 +1830,48 @@ func (in *PersesSpec) DeepCopyInto(out *PersesSpec) {
in.Ingress.DeepCopyInto(&out.Ingress)
out.TLS = in.TLS
out.Distro = in.Distro
+ if in.Datasources != nil {
+ in, out := &in.Datasources, &out.Datasources
+ *out = new(v1.JSON)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.ExtraArgs != nil {
+ in, out := &in.ExtraArgs, &out.ExtraArgs
+ *out = new(v1.JSON)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.ExtraObjects != nil {
+ in, out := &in.ExtraObjects, &out.ExtraObjects
+ *out = new(v1.JSON)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.OciArtifacts != nil {
+ in, out := &in.OciArtifacts, &out.OciArtifacts
+ *out = new(v1.JSON)
+ (*in).DeepCopyInto(*out)
+ }
+ out.TestFramework = in.TestFramework
+ if in.TopologySpreadConstraints != nil {
+ in, out := &in.TopologySpreadConstraints, &out.TopologySpreadConstraints
+ *out = make([]corev1.TopologySpreadConstraint, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ if in.VolumeMounts != nil {
+ in, out := &in.VolumeMounts, &out.VolumeMounts
+ *out = make([]corev1.VolumeMount, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ if in.Volumes != nil {
+ in, out := &in.Volumes, &out.Volumes
+ *out = make([]corev1.Volume, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersesSpec.
@@ -1706,6 +1916,37 @@ func (in *PersesTLSCert) DeepCopy() *PersesTLSCert {
return out
}
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *PersesTestFramework) DeepCopyInto(out *PersesTestFramework) {
+ *out = *in
+ out.Image = in.Image
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersesTestFramework.
+func (in *PersesTestFramework) DeepCopy() *PersesTestFramework {
+ if in == nil {
+ return nil
+ }
+ out := new(PersesTestFramework)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *PersesTestFrameworkImage) DeepCopyInto(out *PersesTestFrameworkImage) {
+ *out = *in
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PersesTestFrameworkImage.
+func (in *PersesTestFrameworkImage) DeepCopy() *PersesTestFrameworkImage {
+ if in == nil {
+ return nil
+ }
+ out := new(PersesTestFrameworkImage)
+ in.DeepCopyInto(out)
+ return out
+}
+
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PostgresqlAuth) DeepCopyInto(out *PostgresqlAuth) {
*out = *in
@@ -1787,74 +2028,6 @@ func (in *PromLabelProxyAutoscaling) DeepCopy() *PromLabelProxyAutoscaling {
return out
}
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PromLabelProxyClickhouse) DeepCopyInto(out *PromLabelProxyClickhouse) {
- *out = *in
- in.TLS.DeepCopyInto(&out.TLS)
- in.Storage.DeepCopyInto(&out.Storage)
- out.S3 = in.S3
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PromLabelProxyClickhouse.
-func (in *PromLabelProxyClickhouse) DeepCopy() *PromLabelProxyClickhouse {
- if in == nil {
- return nil
- }
- out := new(PromLabelProxyClickhouse)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PromLabelProxyClickhouseCertRef) DeepCopyInto(out *PromLabelProxyClickhouseCertRef) {
- *out = *in
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PromLabelProxyClickhouseCertRef.
-func (in *PromLabelProxyClickhouseCertRef) DeepCopy() *PromLabelProxyClickhouseCertRef {
- if in == nil {
- return nil
- }
- out := new(PromLabelProxyClickhouseCertRef)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PromLabelProxyClickhouseS3) DeepCopyInto(out *PromLabelProxyClickhouseS3) {
- *out = *in
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PromLabelProxyClickhouseS3.
-func (in *PromLabelProxyClickhouseS3) DeepCopy() *PromLabelProxyClickhouseS3 {
- if in == nil {
- return nil
- }
- out := new(PromLabelProxyClickhouseS3)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PromLabelProxyClickhouseTLS) DeepCopyInto(out *PromLabelProxyClickhouseTLS) {
- *out = *in
- if in.ClientCaCertificateRefs != nil {
- in, out := &in.ClientCaCertificateRefs, &out.ClientCaCertificateRefs
- *out = make([]PromLabelProxyClickhouseCertRef, len(*in))
- copy(*out, *in)
- }
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PromLabelProxyClickhouseTLS.
-func (in *PromLabelProxyClickhouseTLS) DeepCopy() *PromLabelProxyClickhouseTLS {
- if in == nil {
- return nil
- }
- out := new(PromLabelProxyClickhouseTLS)
- in.DeepCopyInto(out)
- return out
-}
-
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PromLabelProxyConfig) DeepCopyInto(out *PromLabelProxyConfig) {
*out = *in
@@ -1890,108 +2063,6 @@ func (in *PromLabelProxyImage) DeepCopy() *PromLabelProxyImage {
return out
}
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PromLabelProxyInfra) DeepCopyInto(out *PromLabelProxyInfra) {
- *out = *in
- out.TLS = in.TLS
- in.DNS.DeepCopyInto(&out.DNS)
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PromLabelProxyInfra.
-func (in *PromLabelProxyInfra) DeepCopy() *PromLabelProxyInfra {
- if in == nil {
- return nil
- }
- out := new(PromLabelProxyInfra)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PromLabelProxyInfraDNS) DeepCopyInto(out *PromLabelProxyInfraDNS) {
- *out = *in
- if in.Auth != nil {
- in, out := &in.Auth, &out.Auth
- *out = make(map[string]string, len(*in))
- for key, val := range *in {
- (*out)[key] = val
- }
- }
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PromLabelProxyInfraDNS.
-func (in *PromLabelProxyInfraDNS) DeepCopy() *PromLabelProxyInfraDNS {
- if in == nil {
- return nil
- }
- out := new(PromLabelProxyInfraDNS)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PromLabelProxyInfraTLS) DeepCopyInto(out *PromLabelProxyInfraTLS) {
- *out = *in
- out.Ca = in.Ca
- out.Acme = in.Acme
- out.Certificate = in.Certificate
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PromLabelProxyInfraTLS.
-func (in *PromLabelProxyInfraTLS) DeepCopy() *PromLabelProxyInfraTLS {
- if in == nil {
- return nil
- }
- out := new(PromLabelProxyInfraTLS)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PromLabelProxyInfraTLSAcme) DeepCopyInto(out *PromLabelProxyInfraTLSAcme) {
- *out = *in
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PromLabelProxyInfraTLSAcme.
-func (in *PromLabelProxyInfraTLSAcme) DeepCopy() *PromLabelProxyInfraTLSAcme {
- if in == nil {
- return nil
- }
- out := new(PromLabelProxyInfraTLSAcme)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PromLabelProxyInfraTLSCa) DeepCopyInto(out *PromLabelProxyInfraTLSCa) {
- *out = *in
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PromLabelProxyInfraTLSCa.
-func (in *PromLabelProxyInfraTLSCa) DeepCopy() *PromLabelProxyInfraTLSCa {
- if in == nil {
- return nil
- }
- out := new(PromLabelProxyInfraTLSCa)
- in.DeepCopyInto(out)
- return out
-}
-
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *PromLabelProxyInfraTLSCert) DeepCopyInto(out *PromLabelProxyInfraTLSCert) {
- *out = *in
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PromLabelProxyInfraTLSCert.
-func (in *PromLabelProxyInfraTLSCert) DeepCopy() *PromLabelProxyInfraTLSCert {
- if in == nil {
- return nil
- }
- out := new(PromLabelProxyInfraTLSCert)
- in.DeepCopyInto(out)
- return out
-}
-
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PromLabelProxyIngress) DeepCopyInto(out *PromLabelProxyIngress) {
*out = *in
@@ -2093,6 +2164,11 @@ func (in *PromLabelProxyIngressTLS) DeepCopy() *PromLabelProxyIngressTLS {
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PromLabelProxyKubeRBACProxy) DeepCopyInto(out *PromLabelProxyKubeRBACProxy) {
*out = *in
+ if in.Config != nil {
+ in, out := &in.Config, &out.Config
+ *out = new(v1.JSON)
+ (*in).DeepCopyInto(*out)
+ }
out.Image = in.Image
if in.ExtraArgs != nil {
in, out := &in.ExtraArgs, &out.ExtraArgs
@@ -2101,10 +2177,17 @@ func (in *PromLabelProxyKubeRBACProxy) DeepCopyInto(out *PromLabelProxyKubeRBACP
}
if in.ContainerSecurityContext != nil {
in, out := &in.ContainerSecurityContext, &out.ContainerSecurityContext
- *out = new(v1.SecurityContext)
+ *out = new(corev1.SecurityContext)
(*in).DeepCopyInto(*out)
}
in.Resources.DeepCopyInto(&out.Resources)
+ if in.VolumeMounts != nil {
+ in, out := &in.VolumeMounts, &out.VolumeMounts
+ *out = make([]corev1.VolumeMount, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PromLabelProxyKubeRBACProxy.
@@ -2165,6 +2248,52 @@ func (in *PromLabelProxyMetrics) DeepCopy() *PromLabelProxyMetrics {
return out
}
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *PromLabelProxyPlatform) DeepCopyInto(out *PromLabelProxyPlatform) {
+ *out = *in
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PromLabelProxyPlatform.
+func (in *PromLabelProxyPlatform) DeepCopy() *PromLabelProxyPlatform {
+ if in == nil {
+ return nil
+ }
+ out := new(PromLabelProxyPlatform)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *PromLabelProxyProbe) DeepCopyInto(out *PromLabelProxyProbe) {
+ *out = *in
+ out.HttpGet = in.HttpGet
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PromLabelProxyProbe.
+func (in *PromLabelProxyProbe) DeepCopy() *PromLabelProxyProbe {
+ if in == nil {
+ return nil
+ }
+ out := new(PromLabelProxyProbe)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *PromLabelProxyProbeHttpGet) DeepCopyInto(out *PromLabelProxyProbeHttpGet) {
+ *out = *in
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PromLabelProxyProbeHttpGet.
+func (in *PromLabelProxyProbeHttpGet) DeepCopy() *PromLabelProxyProbeHttpGet {
+ if in == nil {
+ return nil
+ }
+ out := new(PromLabelProxyProbeHttpGet)
+ in.DeepCopyInto(out)
+ return out
+}
+
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PromLabelProxyService) DeepCopyInto(out *PromLabelProxyService) {
*out = *in
@@ -2197,6 +2326,46 @@ func (in *PromLabelProxyServiceMonitor) DeepCopyInto(out *PromLabelProxyServiceM
(*out)[key] = val
}
}
+ if in.TargetLabels != nil {
+ in, out := &in.TargetLabels, &out.TargetLabels
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ if in.PodTargetLabels != nil {
+ in, out := &in.PodTargetLabels, &out.PodTargetLabels
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ if in.HonorTimestamps != nil {
+ in, out := &in.HonorTimestamps, &out.HonorTimestamps
+ *out = new(bool)
+ **out = **in
+ }
+ if in.AttachMetadata != nil {
+ in, out := &in.AttachMetadata, &out.AttachMetadata
+ *out = new(v1.JSON)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Relabelings != nil {
+ in, out := &in.Relabelings, &out.Relabelings
+ *out = new(v1.JSON)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.MetricRelabelings != nil {
+ in, out := &in.MetricRelabelings, &out.MetricRelabelings
+ *out = new(v1.JSON)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.AdditionalConfigs != nil {
+ in, out := &in.AdditionalConfigs, &out.AdditionalConfigs
+ *out = new(v1.JSON)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.AdditionalEndpointConfigs != nil {
+ in, out := &in.AdditionalEndpointConfigs, &out.AdditionalEndpointConfigs
+ *out = new(v1.JSON)
+ (*in).DeepCopyInto(*out)
+ }
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PromLabelProxyServiceMonitor.
@@ -2235,12 +2404,12 @@ func (in *PromLabelProxySpec) DeepCopyInto(out *PromLabelProxySpec) {
}
if in.PodSecurityContext != nil {
in, out := &in.PodSecurityContext, &out.PodSecurityContext
- *out = new(v1.PodSecurityContext)
+ *out = new(corev1.PodSecurityContext)
(*in).DeepCopyInto(*out)
}
if in.SecurityContext != nil {
in, out := &in.SecurityContext, &out.SecurityContext
- *out = new(v1.SecurityContext)
+ *out = new(corev1.SecurityContext)
(*in).DeepCopyInto(*out)
}
in.Service.DeepCopyInto(&out.Service)
@@ -2248,7 +2417,7 @@ func (in *PromLabelProxySpec) DeepCopyInto(out *PromLabelProxySpec) {
out.Autoscaling = in.Autoscaling
if in.Affinity != nil {
in, out := &in.Affinity, &out.Affinity
- *out = new(v1.Affinity)
+ *out = new(corev1.Affinity)
(*in).DeepCopyInto(*out)
}
if in.NodeSelector != nil {
@@ -2260,18 +2429,25 @@ func (in *PromLabelProxySpec) DeepCopyInto(out *PromLabelProxySpec) {
}
if in.Tolerations != nil {
in, out := &in.Tolerations, &out.Tolerations
- *out = make([]v1.Toleration, len(*in))
+ *out = make([]corev1.Toleration, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
+ out.LivenessProbe = in.LivenessProbe
+ out.ReadinessProbe = in.ReadinessProbe
in.Ingress.DeepCopyInto(&out.Ingress)
in.Config.DeepCopyInto(&out.Config)
in.Metrics.DeepCopyInto(&out.Metrics)
in.KubeRBACProxy.DeepCopyInto(&out.KubeRBACProxy)
- in.Clickhouse.DeepCopyInto(&out.Clickhouse)
in.Infra.DeepCopyInto(&out.Infra)
+ out.Platform = in.Platform
out.Distro = in.Distro
+ if in.ExtraManifests != nil {
+ in, out := &in.ExtraManifests, &out.ExtraManifests
+ *out = new(v1.JSON)
+ (*in).DeepCopyInto(*out)
+ }
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PromLabelProxySpec.
@@ -2591,19 +2767,19 @@ func (in *TenantOperatorSpec) DeepCopyInto(out *TenantOperatorSpec) {
}
if in.Tolerations != nil {
in, out := &in.Tolerations, &out.Tolerations
- *out = make([]v1.Toleration, len(*in))
+ *out = make([]corev1.Toleration, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
if in.Affinity != nil {
in, out := &in.Affinity, &out.Affinity
- *out = new(v1.Affinity)
+ *out = new(corev1.Affinity)
(*in).DeepCopyInto(*out)
}
if in.PodSecurityContext != nil {
in, out := &in.PodSecurityContext, &out.PodSecurityContext
- *out = new(v1.PodSecurityContext)
+ *out = new(corev1.PodSecurityContext)
(*in).DeepCopyInto(*out)
}
in.ServiceAccount.DeepCopyInto(&out.ServiceAccount)
@@ -2637,21 +2813,6 @@ func (in *ThanosFeatureFlag) DeepCopy() *ThanosFeatureFlag {
return out
}
-// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
-func (in *ThanosObjectStorage) DeepCopyInto(out *ThanosObjectStorage) {
- *out = *in
-}
-
-// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ThanosObjectStorage.
-func (in *ThanosObjectStorage) DeepCopy() *ThanosObjectStorage {
- if in == nil {
- return nil
- }
- out := new(ThanosObjectStorage)
- in.DeepCopyInto(out)
- return out
-}
-
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ThanosOperator) DeepCopyInto(out *ThanosOperator) {
*out = *in
@@ -2751,7 +2912,7 @@ func (in *ThanosOperatorManager) DeepCopyInto(out *ThanosOperatorManager) {
}
if in.Env != nil {
in, out := &in.Env, &out.Env
- *out = make([]v1.EnvVar, len(*in))
+ *out = make([]corev1.EnvVar, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
@@ -2765,23 +2926,23 @@ func (in *ThanosOperatorManager) DeepCopyInto(out *ThanosOperatorManager) {
}
if in.ImagePullSecrets != nil {
in, out := &in.ImagePullSecrets, &out.ImagePullSecrets
- *out = make([]v1.LocalObjectReference, len(*in))
+ *out = make([]corev1.LocalObjectReference, len(*in))
copy(*out, *in)
}
if in.PodSecurityContext != nil {
in, out := &in.PodSecurityContext, &out.PodSecurityContext
- *out = new(v1.PodSecurityContext)
+ *out = new(corev1.PodSecurityContext)
(*in).DeepCopyInto(*out)
}
if in.SecurityContext != nil {
in, out := &in.SecurityContext, &out.SecurityContext
- *out = new(v1.SecurityContext)
+ *out = new(corev1.SecurityContext)
(*in).DeepCopyInto(*out)
}
in.Resources.DeepCopyInto(&out.Resources)
if in.Affinity != nil {
in, out := &in.Affinity, &out.Affinity
- *out = new(v1.Affinity)
+ *out = new(corev1.Affinity)
(*in).DeepCopyInto(*out)
}
if in.NodeSelector != nil {
@@ -2793,7 +2954,7 @@ func (in *ThanosOperatorManager) DeepCopyInto(out *ThanosOperatorManager) {
}
if in.Tolerations != nil {
in, out := &in.Tolerations, &out.Tolerations
- *out = make([]v1.Toleration, len(*in))
+ *out = make([]corev1.Toleration, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
@@ -2834,7 +2995,6 @@ func (in *ThanosOperatorSpec) DeepCopyInto(out *ThanosOperatorSpec) {
out.Metrics = in.Metrics
out.CertManager = in.CertManager
out.Prometheus = in.Prometheus
- out.ObjectStorage = in.ObjectStorage
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ThanosOperatorSpec.
diff --git a/catalog/imagelist.yaml b/catalog/imagelist.yaml
index 9baf7ce2..4024af96 100644
--- a/catalog/imagelist.yaml
+++ b/catalog/imagelist.yaml
@@ -13,6 +13,3 @@
- quay.io/thanos/thanos-operator:main-2025-10-23-e28d488
- rabbitmq:3.12.1-management
- rancher/kubectl:v1.34.1
-- rokibulhasan114/opentelemetry-collector-ace:v0.1.0
-- rokibulhasan114/perses:v0.0.1
-- rokibulhasan114/tenant-operator:v0.0.1
diff --git a/charts/appscode-otel-stack/Chart.lock b/charts/appscode-otel-stack/Chart.lock
index 56dc2033..0fe0a82b 100644
--- a/charts/appscode-otel-stack/Chart.lock
+++ b/charts/appscode-otel-stack/Chart.lock
@@ -1,6 +1,6 @@
dependencies:
- name: opentelemetry-kube-stack
- repository: oci://ghcr.io/appscode-charts
- version: 0.14.11
-digest: sha256:a8a56ad5a69a3bdac0ddc6436ccd458e6718d351b79f1fd3bb5da86c408ce0a5
-generated: "2026-04-27T12:40:48.826374+06:00"
+ repository: file://../opentelemetry-kube-stack
+ version: 0.14.12
+digest: sha256:d6893cdb3735af47ce7c795d82748b5326294f3d14ab187d2eee6fb580745c91
+generated: "2026-04-30T17:04:43.188150501+06:00"
diff --git a/charts/appscode-otel-stack/Chart.yaml b/charts/appscode-otel-stack/Chart.yaml
index 58c7c439..cbbe297c 100644
--- a/charts/appscode-otel-stack/Chart.yaml
+++ b/charts/appscode-otel-stack/Chart.yaml
@@ -3,8 +3,7 @@ apiVersion: v2
name: appscode-otel-stack
description: AppsCode OpenTelemetry Stack
type: application
-version: v2026.4.30
-version: v2026.4.30
+version: v2026.5.22
home: https://github.com/ops-center
icon: https://cdn.appscode.com/images/products/searchlight/searchlight-512x512.png
sources: [https://github.com/ops-center]
@@ -13,6 +12,6 @@ maintainers:
email: support@appscode.com
dependencies:
- name: opentelemetry-kube-stack
- repository: oci://ghcr.io/appscode-charts
+ repository: "file://../opentelemetry-kube-stack"
condition: opentelemetry-kube-stack.enabled
- version: 0.14.11
+ version: 0.14.12
diff --git a/charts/appscode-otel-stack/README.md b/charts/appscode-otel-stack/README.md
index ab926464..d64436ae 100644
--- a/charts/appscode-otel-stack/README.md
+++ b/charts/appscode-otel-stack/README.md
@@ -7,8 +7,8 @@
```bash
$ helm repo add appscode https://charts.appscode.com/stable/
$ helm repo update
-$ helm search repo appscode/appscode-otel-stack --version=v2026.4.30
-$ helm upgrade -i appscode-otel-stack appscode/appscode-otel-stack -n monitoring --create-namespace --version=v2026.4.30
+$ helm search repo appscode/appscode-otel-stack --version=v2026.5.22
+$ helm upgrade -i appscode-otel-stack appscode/appscode-otel-stack -n monitoring --create-namespace --version=v2026.5.22
```
## Introduction
@@ -24,7 +24,7 @@ This chart deploys AppsCode OpenTelemetry Stack on a [Kubernetes](http://kuberne
To install/upgrade the chart with the release name `appscode-otel-stack`:
```bash
-$ helm upgrade -i appscode-otel-stack appscode/appscode-otel-stack -n monitoring --create-namespace --version=v2026.4.30
+$ helm upgrade -i appscode-otel-stack appscode/appscode-otel-stack -n monitoring --create-namespace --version=v2026.5.22
```
The command deploys AppsCode OpenTelemetry Stack on the Kubernetes cluster in the default configuration. The [configuration](#configuration) section lists the parameters that can be configured during installation.
@@ -45,95 +45,127 @@ The command removes all the Kubernetes components associated with the chart and
The following table lists the configurable parameters of the `appscode-otel-stack` chart and their default values.
-| Parameter | Description | Default |
-|-------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------|
-| nameOverride | Default values for appscode-otel-stack. This is a YAML-formatted file. Declare variables to be passed into your templates. This is to override the chart name. | '' |
-| fullnameOverride | | '' |
-| opentelemetry-kube-stack.clusterName | | "spoke-2" |
-| opentelemetry-kube-stack.collectors.daemon.suffix | | agent |
-| opentelemetry-kube-stack.collectors.daemon.enabled | | true |
-| opentelemetry-kube-stack.collectors.daemon.scrape_configs_file | | "config/kubelet_scrape_configs.yaml" |
-| opentelemetry-kube-stack.collectors.daemon.labels.otel-collector-type | | daemonset |
-| opentelemetry-kube-stack.collectors.daemon.targetAllocator.enabled | | true |
-| opentelemetry-kube-stack.collectors.daemon.targetAllocator.serviceAccount | | targetallocator |
-| opentelemetry-kube-stack.collectors.daemon.targetAllocator.image | | ghcr.io/open-telemetry/opentelemetry-operator/target-allocator:main |
-| opentelemetry-kube-stack.collectors.daemon.targetAllocator.allocationStrategy | | per-node |
-| opentelemetry-kube-stack.collectors.daemon.targetAllocator.prometheusCR.enabled | | true |
-| opentelemetry-kube-stack.collectors.daemon.targetAllocator.prometheusCR.podMonitorSelector | | {} |
-| opentelemetry-kube-stack.collectors.daemon.targetAllocator.prometheusCR.scrapeInterval | | "30s" |
-| opentelemetry-kube-stack.collectors.daemon.targetAllocator.prometheusCR.serviceMonitorSelector | | {} |
-| opentelemetry-kube-stack.collectors.daemon.config.receivers.k8sobjects.auth_type | | serviceAccount |
-| opentelemetry-kube-stack.collectors.daemon.config.exporters.otlp.endpoint | | opentelemetry-kube-stack-gateway-collector.monitoring.svc.cluster.local:4317 |
-| opentelemetry-kube-stack.collectors.daemon.config.exporters.otlp.tls.insecure | | true |
-| opentelemetry-kube-stack.collectors.daemon.config.exporters.debug.verbosity | | detailed |
-| opentelemetry-kube-stack.collectors.daemon.presets.logsCollection.enabled | | true |
-| opentelemetry-kube-stack.collectors.daemon.presets.hostMetrics.enabled | | false |
-| opentelemetry-kube-stack.collectors.daemon.presets.kubeletMetrics.enabled | | false |
-| opentelemetry-kube-stack.collectors.daemon.presets.kubernetesAttributes.enabled | | true |
-| opentelemetry-kube-stack.collectors.cluster.suffix | | gateway |
-| opentelemetry-kube-stack.collectors.cluster.enabled | | true |
-| opentelemetry-kube-stack.collectors.cluster.labels.otel-collector-type | | deployment |
-| opentelemetry-kube-stack.collectors.cluster.image.repository | | rokibulhasan114/opentelemetry-collector-ace |
-| opentelemetry-kube-stack.collectors.cluster.image.tag | | v0.1.0 |
-| opentelemetry-kube-stack.collectors.cluster.image.pullPolicy | | Always |
-| opentelemetry-kube-stack.collectors.cluster.presets.clusterMetrics.enabled | | false |
-| opentelemetry-kube-stack.collectors.cluster.config.receivers.otlp.protocols.grpc.endpoint | | 0.0.0.0:4317 |
-| opentelemetry-kube-stack.collectors.cluster.config.receivers.otlp.protocols.grpc.include_metadata | | true |
-| opentelemetry-kube-stack.collectors.cluster.config.receivers.otlp.protocols.http.endpoint | | 0.0.0.0:4318 |
-| opentelemetry-kube-stack.collectors.cluster.config.receivers.otlp.protocols.http.include_metadata | | true |
-| opentelemetry-kube-stack.collectors.cluster.config.processors.transform/tenant.error_mode | | ignore |
-| opentelemetry-kube-stack.collectors.cluster.config.processors.batch/tenant.send_batch_size | | 1000 |
-| opentelemetry-kube-stack.collectors.cluster.config.processors.batch/tenant.send_batch_max_size | | 2000 |
-| opentelemetry-kube-stack.collectors.cluster.config.processors.batch/tenant.timeout | | 1s |
-| opentelemetry-kube-stack.collectors.cluster.config.exporters.debug.verbosity | | detailed |
-| opentelemetry-kube-stack.collectors.cluster.config.exporters.prometheusremotewrite.endpoint | | "https://10.2.0.187/api/v1/receive" |
-| opentelemetry-kube-stack.collectors.cluster.config.exporters.prometheusremotewrite.auth.authenticator | | headers_setter |
-| opentelemetry-kube-stack.collectors.cluster.config.exporters.prometheusremotewrite.target_info.enabled | | false |
-| opentelemetry-kube-stack.collectors.cluster.config.exporters.prometheusremotewrite.tls.ca_file | | /etc/certs/ca.crt |
-| opentelemetry-kube-stack.collectors.cluster.config.exporters.prometheusremotewrite.tls.cert_file | | /etc/certs/tls.crt |
-| opentelemetry-kube-stack.collectors.cluster.config.exporters.prometheusremotewrite.tls.key_file | | /etc/certs/tls.key |
-| opentelemetry-kube-stack.collectors.cluster.config.exporters.prometheusremotewrite.tls.insecure_skip_verify | | false |
-| opentelemetry-kube-stack.collectors.cluster.config.exporters.clickhouse.endpoint | | "https:///10.2.0.187/?database=default&secure=true" |
-| opentelemetry-kube-stack.collectors.cluster.config.exporters.clickhouse.username | | "ace" |
-| opentelemetry-kube-stack.collectors.cluster.config.exporters.clickhouse.password | | "QEFNeAa7hUGjJjVY" |
-| opentelemetry-kube-stack.collectors.cluster.config.exporters.clickhouse.database | | "default" |
-| opentelemetry-kube-stack.collectors.cluster.config.exporters.clickhouse.tls.ca_file | | /etc/certs/ca.crt |
-| opentelemetry-kube-stack.collectors.cluster.config.exporters.clickhouse.tls.cert_file | | /etc/certs/tls.crt |
-| opentelemetry-kube-stack.collectors.cluster.config.exporters.clickhouse.tls.key_file | | /etc/certs/tls.key |
-| opentelemetry-kube-stack.collectors.cluster.config.exporters.clickhouse.tls.insecure_skip_verify | | false |
-| opentelemetry-kube-stack.collectors.cluster.config.exporters.clickhouse.create_schema | | false |
-| opentelemetry-kube-stack.collectors.cluster.config.exporters.clickhouse.logs_table_name | | otel_logs |
-| opentelemetry-kube-stack.collectors.cluster.config.exporters.clickhouse.timeout | | 10s |
-| opentelemetry-kube-stack.collectors.cluster.config.exporters.clickhouse.sending_queue.queue_size | | 10000 |
-| opentelemetry-kube-stack.collectors.cluster.config.exporters.clickhouse.retry_on_failure.enabled | | true |
-| opentelemetry-kube-stack.collectors.cluster.config.exporters.clickhouse.retry_on_failure.initial_interval | | 5s |
-| opentelemetry-kube-stack.collectors.cluster.config.exporters.clickhouse.retry_on_failure.max_interval | | 30s |
-| opentelemetry-kube-stack.collectors.cluster.config.exporters.clickhouse.retry_on_failure.max_elapsed_time | | 300s |
-| opentelemetry-kube-stack.collectors.cluster.config.exporters.otlp.endpoint | | opentelemetry-kube-stack-gateway-collector.monitoring.svc.cluster.local:4317 |
-| opentelemetry-kube-stack.collectors.cluster.config.exporters.otlp.tls.insecure | | true |
-| opentelemetry-kube-stack.instrumentation.enabled | | false |
-| opentelemetry-kube-stack.opAMPBridge.enabled | | false |
-| opentelemetry-kube-stack.kubernetesServiceMonitors.enabled | | true |
-| opentelemetry-kube-stack.kubeApiServer.enabled | | false |
-| opentelemetry-kube-stack.kubelet.enabled | | false |
-| opentelemetry-kube-stack.kubeControllerManager.enabled | | false |
-| opentelemetry-kube-stack.kubeDns.enabled | | false |
-| opentelemetry-kube-stack.kubeEtcd.enabled | | false |
-| opentelemetry-kube-stack.kubeScheduler.enabled | | false |
-| opentelemetry-kube-stack.kubeProxy.enabled | | false |
-| opentelemetry-kube-stack.kubeStateMetrics.enabled | | false |
-| opentelemetry-kube-stack.nodeExporter.enabled | | false |
+| Parameter | Description | Default |
+|----------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------|
+| opentelemetry-kube-stack.crds.installOtel | | false |
+| opentelemetry-kube-stack.clusterName | | ace |
+| opentelemetry-kube-stack.opentelemetry-operator.admissionWebhooks.certManager.enabled | | false |
+| opentelemetry-kube-stack.opentelemetry-operator.manager.image.repository | | ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator |
+| opentelemetry-kube-stack.opentelemetry-operator.manager.image.tag | | "0.150.0" |
+| opentelemetry-kube-stack.opentelemetry-operator.manager.image.imagePullPolicy | | IfNotPresent |
+| opentelemetry-kube-stack.opentelemetry-operator.manager.featureGatesMap.operator.targetallocator.mtls | | true |
+| opentelemetry-kube-stack.opentelemetry-operator.manager.createRbacPermissions | | true |
+| opentelemetry-kube-stack.admissionWebhooks.autoGenerateCert.enabled | | true |
+| opentelemetry-kube-stack.collectors.daemon.resources.limits.cpu | | 500m |
+| opentelemetry-kube-stack.collectors.daemon.resources.limits.memory | | 2Gi |
+| opentelemetry-kube-stack.collectors.daemon.resources.requests.cpu | | 200m |
+| opentelemetry-kube-stack.collectors.daemon.resources.requests.memory | | 1Gi |
+| opentelemetry-kube-stack.collectors.daemon.suffix | | agent |
+| opentelemetry-kube-stack.collectors.daemon.enabled | | true |
+| opentelemetry-kube-stack.collectors.daemon.scrape_configs_file | | "config/kubelet_scrape_configs.yaml" |
+| opentelemetry-kube-stack.collectors.daemon.labels.otel-collector-type | | daemonset |
+| opentelemetry-kube-stack.collectors.daemon.targetAllocator.enabled | | true |
+| opentelemetry-kube-stack.collectors.daemon.targetAllocator.serviceAccount | | targetallocator |
+| opentelemetry-kube-stack.collectors.daemon.targetAllocator.image | | ghcr.io/open-telemetry/opentelemetry-operator/target-allocator:main |
+| opentelemetry-kube-stack.collectors.daemon.targetAllocator.allocationStrategy | | per-node |
+| opentelemetry-kube-stack.collectors.daemon.targetAllocator.prometheusCR.enabled | | true |
+| opentelemetry-kube-stack.collectors.daemon.targetAllocator.prometheusCR.podMonitorSelector | | {} |
+| opentelemetry-kube-stack.collectors.daemon.targetAllocator.prometheusCR.scrapeInterval | | "30s" |
+| opentelemetry-kube-stack.collectors.daemon.targetAllocator.prometheusCR.serviceMonitorSelector | | {} |
+| opentelemetry-kube-stack.collectors.daemon.config.receivers.k8sobjects.auth_type | | serviceAccount |
+| opentelemetry-kube-stack.collectors.daemon.config.exporters.otlp.endpoint | | appscode-otel-stack-gateway-collector.monitoring.svc.cluster.local:4317 |
+| opentelemetry-kube-stack.collectors.daemon.config.exporters.otlp.tls.insecure | | true |
+| opentelemetry-kube-stack.collectors.daemon.config.exporters.debug.verbosity | | detailed |
+| opentelemetry-kube-stack.collectors.daemon.config.processors.transform/promote_pod.error_mode | | ignore |
+| opentelemetry-kube-stack.collectors.daemon.config.processors.transform/restore_labels.error_mode | | ignore |
+| opentelemetry-kube-stack.collectors.daemon.config.processors.memory_limiter.check_interval | | 1s |
+| opentelemetry-kube-stack.collectors.daemon.config.processors.memory_limiter.limit_percentage | | 75 |
+| opentelemetry-kube-stack.collectors.daemon.config.processors.memory_limiter.spike_limit_percentage | | 15 |
+| opentelemetry-kube-stack.collectors.daemon.config.processors.batch.send_batch_size | | 512 |
+| opentelemetry-kube-stack.collectors.daemon.config.processors.batch.send_batch_max_size | | 1024 |
+| opentelemetry-kube-stack.collectors.daemon.config.processors.batch.timeout | | 20s |
+| opentelemetry-kube-stack.collectors.daemon.presets.logsCollection.enabled | | true |
+| opentelemetry-kube-stack.collectors.daemon.presets.hostMetrics.enabled | | false |
+| opentelemetry-kube-stack.collectors.daemon.presets.kubeletMetrics.enabled | | false |
+| opentelemetry-kube-stack.collectors.daemon.presets.kubernetesAttributes.enabled | | true |
+| opentelemetry-kube-stack.collectors.cluster.resources.limits.cpu | | 500m |
+| opentelemetry-kube-stack.collectors.cluster.resources.limits.memory | | 1Gi |
+| opentelemetry-kube-stack.collectors.cluster.resources.requests.cpu | | 200m |
+| opentelemetry-kube-stack.collectors.cluster.resources.requests.memory | | 512Mi |
+| opentelemetry-kube-stack.collectors.cluster.suffix | | gateway |
+| opentelemetry-kube-stack.collectors.cluster.enabled | | true |
+| opentelemetry-kube-stack.collectors.cluster.labels.otel-collector-type | | deployment |
+| opentelemetry-kube-stack.collectors.cluster.image.repository | | ghcr.io/opnpulse/opentelemetry-collector-ace |
+| opentelemetry-kube-stack.collectors.cluster.image.tag | | v0.0.1 |
+| opentelemetry-kube-stack.collectors.cluster.image.pullPolicy | | Always |
+| opentelemetry-kube-stack.collectors.cluster.presets.clusterMetrics.enabled | | false |
+| opentelemetry-kube-stack.collectors.cluster.config.receivers.otlp.protocols.grpc.endpoint | | 0.0.0.0:4317 |
+| opentelemetry-kube-stack.collectors.cluster.config.receivers.otlp.protocols.grpc.include_metadata | | true |
+| opentelemetry-kube-stack.collectors.cluster.config.receivers.otlp.protocols.grpc.max_recv_msg_size_mib | | 32 |
+| opentelemetry-kube-stack.collectors.cluster.config.receivers.otlp.protocols.http.endpoint | | 0.0.0.0:4318 |
+| opentelemetry-kube-stack.collectors.cluster.config.receivers.otlp.protocols.http.include_metadata | | true |
+| opentelemetry-kube-stack.collectors.cluster.config.processors.memory_limiter.check_interval | | 1s |
+| opentelemetry-kube-stack.collectors.cluster.config.processors.memory_limiter.limit_percentage | | 75 |
+| opentelemetry-kube-stack.collectors.cluster.config.processors.memory_limiter.spike_limit_percentage | | 20 |
+| opentelemetry-kube-stack.collectors.cluster.config.processors.transform/tenant.error_mode | | ignore |
+| opentelemetry-kube-stack.collectors.cluster.config.processors.batch/tenant.send_batch_size | | 256 |
+| opentelemetry-kube-stack.collectors.cluster.config.processors.batch/tenant.send_batch_max_size | | 512 |
+| opentelemetry-kube-stack.collectors.cluster.config.exporters.debug.verbosity | | detailed |
+| opentelemetry-kube-stack.collectors.cluster.config.exporters.prometheusremotewrite.endpoint | endpoint: "https://10.2.0.187:8443/api/v1/receive" | "https://prom-label-proxy.monitoring.svc.cluster.local:10001/api/v1/receive" |
+| opentelemetry-kube-stack.collectors.cluster.config.exporters.prometheusremotewrite.timeout | | 30s |
+| opentelemetry-kube-stack.collectors.cluster.config.exporters.prometheusremotewrite.auth.authenticator | | headers_setter |
+| opentelemetry-kube-stack.collectors.cluster.config.exporters.prometheusremotewrite.target_info.enabled | | false |
+| opentelemetry-kube-stack.collectors.cluster.config.exporters.prometheusremotewrite.tls.ca_file | | /etc/certs/ca.crt |
+| opentelemetry-kube-stack.collectors.cluster.config.exporters.prometheusremotewrite.tls.cert_file | | /etc/certs/tls.crt |
+| opentelemetry-kube-stack.collectors.cluster.config.exporters.prometheusremotewrite.tls.key_file | | /etc/certs/tls.key |
+| opentelemetry-kube-stack.collectors.cluster.config.exporters.prometheusremotewrite.tls.insecure_skip_verify | | false |
+| opentelemetry-kube-stack.collectors.cluster.config.exporters.prometheusremotewrite.retry_on_failure.enabled | | true |
+| opentelemetry-kube-stack.collectors.cluster.config.exporters.prometheusremotewrite.retry_on_failure.initial_interval | | 5s |
+| opentelemetry-kube-stack.collectors.cluster.config.exporters.prometheusremotewrite.retry_on_failure.max_interval | | 30s |
+| opentelemetry-kube-stack.collectors.cluster.config.exporters.prometheusremotewrite.retry_on_failure.max_elapsed_time | | 120s |
+| opentelemetry-kube-stack.collectors.cluster.config.exporters.prometheusremotewrite.remote_write_queue.queue_size | | 200 |
+| opentelemetry-kube-stack.collectors.cluster.config.exporters.prometheusremotewrite.remote_write_queue.num_consumers | | 5 |
+| opentelemetry-kube-stack.collectors.cluster.config.exporters.clickhouse.endpoint | endpoint: "https://10.2.0.187:8443/?database=default&secure=true" | "https://prom-label-proxy.monitoring.svc.cluster.local:10001/?database=default&secure=true" |
+| opentelemetry-kube-stack.collectors.cluster.config.exporters.clickhouse.username | | "ace" |
+| opentelemetry-kube-stack.collectors.cluster.config.exporters.clickhouse.password | | "QEFNeAa7hUGjJjVY" |
+| opentelemetry-kube-stack.collectors.cluster.config.exporters.clickhouse.database | | "default" |
+| opentelemetry-kube-stack.collectors.cluster.config.exporters.clickhouse.tls.ca_file | | /etc/certs/ca.crt |
+| opentelemetry-kube-stack.collectors.cluster.config.exporters.clickhouse.tls.cert_file | | /etc/certs/tls.crt |
+| opentelemetry-kube-stack.collectors.cluster.config.exporters.clickhouse.tls.key_file | | /etc/certs/tls.key |
+| opentelemetry-kube-stack.collectors.cluster.config.exporters.clickhouse.tls.insecure_skip_verify | | false |
+| opentelemetry-kube-stack.collectors.cluster.config.exporters.clickhouse.create_schema | | false |
+| opentelemetry-kube-stack.collectors.cluster.config.exporters.clickhouse.logs_table_name | | otel_logs |
+| opentelemetry-kube-stack.collectors.cluster.config.exporters.clickhouse.timeout | | 10s |
+| opentelemetry-kube-stack.collectors.cluster.config.exporters.clickhouse.sending_queue.queue_size | | 200 |
+| opentelemetry-kube-stack.collectors.cluster.config.exporters.clickhouse.retry_on_failure.enabled | | true |
+| opentelemetry-kube-stack.collectors.cluster.config.exporters.clickhouse.retry_on_failure.initial_interval | | 5s |
+| opentelemetry-kube-stack.collectors.cluster.config.exporters.clickhouse.retry_on_failure.max_interval | | 30s |
+| opentelemetry-kube-stack.collectors.cluster.config.exporters.clickhouse.retry_on_failure.max_elapsed_time | | 120s |
+| opentelemetry-kube-stack.collectors.cluster.config.exporters.otlp.endpoint | | appscode-otel-stack-gateway-collector.monitoring.svc.cluster.local:4317 |
+| opentelemetry-kube-stack.collectors.cluster.config.exporters.otlp.tls.insecure | | true |
+| opentelemetry-kube-stack.instrumentation.enabled | | false |
+| opentelemetry-kube-stack.opAMPBridge.enabled | | false |
+| opentelemetry-kube-stack.kubernetesServiceMonitors.enabled | | true |
+| opentelemetry-kube-stack.kubeApiServer.enabled | | false |
+| opentelemetry-kube-stack.kubelet.enabled | | false |
+| opentelemetry-kube-stack.kubeControllerManager.enabled | | false |
+| opentelemetry-kube-stack.kubeDns.enabled | | false |
+| opentelemetry-kube-stack.kubeEtcd.enabled | | false |
+| opentelemetry-kube-stack.kubeScheduler.enabled | | false |
+| opentelemetry-kube-stack.kubeProxy.enabled | | false |
+| opentelemetry-kube-stack.kubeStateMetrics.enabled | | false |
+| opentelemetry-kube-stack.nodeExporter.enabled | | false |
Specify each parameter using the `--set key=value[,key=value]` argument to `helm upgrade -i`. For example:
```bash
-$ helm upgrade -i appscode-otel-stack appscode/appscode-otel-stack -n monitoring --create-namespace --version=v2026.4.30 --set nameOverride=''
+$ helm upgrade -i appscode-otel-stack appscode/appscode-otel-stack -n monitoring --create-namespace --version=v2026.5.22 --set opentelemetry-kube-stack.clusterName=ace
```
Alternatively, a YAML file that specifies the values for the parameters can be provided while
installing the chart. For example:
```bash
-$ helm upgrade -i appscode-otel-stack appscode/appscode-otel-stack -n monitoring --create-namespace --version=v2026.4.30 --values values.yaml
+$ helm upgrade -i appscode-otel-stack appscode/appscode-otel-stack -n monitoring --create-namespace --version=v2026.5.22 --values values.yaml
```
diff --git a/charts/appscode-otel-stack/crds/opentelemetry.io_instrumentations.yaml b/charts/appscode-otel-stack/crds/opentelemetry.io_instrumentations.yaml
new file mode 100644
index 00000000..54b058e6
--- /dev/null
+++ b/charts/appscode-otel-stack/crds/opentelemetry.io_instrumentations.yaml
@@ -0,0 +1,2055 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.20.0
+ name: instrumentations.opentelemetry.io
+spec:
+ group: opentelemetry.io
+ names:
+ kind: Instrumentation
+ listKind: InstrumentationList
+ plural: instrumentations
+ shortNames:
+ - otelinst
+ - otelinsts
+ singular: instrumentation
+ scope: Namespaced
+ versions:
+ - additionalPrinterColumns:
+ - jsonPath: .metadata.creationTimestamp
+ name: Age
+ type: date
+ - jsonPath: .spec.exporter.endpoint
+ name: Endpoint
+ type: string
+ - jsonPath: .spec.sampler.type
+ name: Sampler
+ type: string
+ - jsonPath: .spec.sampler.argument
+ name: Sampler Arg
+ type: string
+ name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ type: string
+ kind:
+ type: string
+ metadata:
+ type: object
+ spec:
+ properties:
+ apacheHttpd:
+ properties:
+ attrs:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ configPath:
+ type: string
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ image:
+ type: string
+ resourceRequirements:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ version:
+ type: string
+ volumeClaimTemplate:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ accessModes:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ dataSource:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ x-kubernetes-map-type: atomic
+ dataSourceRef:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ resources:
+ properties:
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ selector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ storageClassName:
+ type: string
+ volumeAttributesClassName:
+ type: string
+ volumeMode:
+ type: string
+ volumeName:
+ type: string
+ type: object
+ required:
+ - spec
+ type: object
+ volumeLimitSize:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ defaults:
+ properties:
+ useLabelsForResourceAttributes:
+ type: boolean
+ type: object
+ dotnet:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ image:
+ type: string
+ resourceRequirements:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ volumeClaimTemplate:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ accessModes:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ dataSource:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ x-kubernetes-map-type: atomic
+ dataSourceRef:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ resources:
+ properties:
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ selector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ storageClassName:
+ type: string
+ volumeAttributesClassName:
+ type: string
+ volumeMode:
+ type: string
+ volumeName:
+ type: string
+ type: object
+ required:
+ - spec
+ type: object
+ volumeLimitSize:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ exporter:
+ properties:
+ endpoint:
+ type: string
+ tls:
+ properties:
+ ca_file:
+ type: string
+ cert_file:
+ type: string
+ configMapName:
+ type: string
+ key_file:
+ type: string
+ secretName:
+ type: string
+ type: object
+ type: object
+ go:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ image:
+ type: string
+ resourceRequirements:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ volumeClaimTemplate:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ accessModes:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ dataSource:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ x-kubernetes-map-type: atomic
+ dataSourceRef:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ resources:
+ properties:
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ selector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ storageClassName:
+ type: string
+ volumeAttributesClassName:
+ type: string
+ volumeMode:
+ type: string
+ volumeName:
+ type: string
+ type: object
+ required:
+ - spec
+ type: object
+ volumeLimitSize:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ imagePullPolicy:
+ type: string
+ java:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ extensions:
+ items:
+ properties:
+ dir:
+ type: string
+ image:
+ type: string
+ required:
+ - dir
+ - image
+ type: object
+ type: array
+ image:
+ type: string
+ resources:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ volumeClaimTemplate:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ accessModes:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ dataSource:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ x-kubernetes-map-type: atomic
+ dataSourceRef:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ resources:
+ properties:
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ selector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ storageClassName:
+ type: string
+ volumeAttributesClassName:
+ type: string
+ volumeMode:
+ type: string
+ volumeName:
+ type: string
+ type: object
+ required:
+ - spec
+ type: object
+ volumeLimitSize:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ nginx:
+ properties:
+ attrs:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ configFile:
+ type: string
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ image:
+ type: string
+ resourceRequirements:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ volumeClaimTemplate:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ accessModes:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ dataSource:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ x-kubernetes-map-type: atomic
+ dataSourceRef:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ resources:
+ properties:
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ selector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ storageClassName:
+ type: string
+ volumeAttributesClassName:
+ type: string
+ volumeMode:
+ type: string
+ volumeName:
+ type: string
+ type: object
+ required:
+ - spec
+ type: object
+ volumeLimitSize:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ nodejs:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ image:
+ type: string
+ resourceRequirements:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ volumeClaimTemplate:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ accessModes:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ dataSource:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ x-kubernetes-map-type: atomic
+ dataSourceRef:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ resources:
+ properties:
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ selector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ storageClassName:
+ type: string
+ volumeAttributesClassName:
+ type: string
+ volumeMode:
+ type: string
+ volumeName:
+ type: string
+ type: object
+ required:
+ - spec
+ type: object
+ volumeLimitSize:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ propagators:
+ items:
+ enum:
+ - tracecontext
+ - baggage
+ - b3
+ - b3multi
+ - jaeger
+ - xray
+ - ottrace
+ - none
+ type: string
+ type: array
+ python:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ image:
+ type: string
+ resourceRequirements:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ volumeClaimTemplate:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ accessModes:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ dataSource:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ x-kubernetes-map-type: atomic
+ dataSourceRef:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ resources:
+ properties:
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ selector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ storageClassName:
+ type: string
+ volumeAttributesClassName:
+ type: string
+ volumeMode:
+ type: string
+ volumeName:
+ type: string
+ type: object
+ required:
+ - spec
+ type: object
+ volumeLimitSize:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ resource:
+ properties:
+ addK8sUIDAttributes:
+ type: boolean
+ resourceAttributes:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ sampler:
+ properties:
+ argument:
+ type: string
+ type:
+ enum:
+ - always_on
+ - always_off
+ - traceidratio
+ - parentbased_always_on
+ - parentbased_always_off
+ - parentbased_traceidratio
+ - jaeger_remote
+ - xray
+ type: string
+ type: object
+ type: object
+ status:
+ type: object
+ type: object
+ served: true
+ storage: true
+ subresources:
+ status: {}
diff --git a/charts/appscode-otel-stack/crds/opentelemetry.io_opampbridges.yaml b/charts/appscode-otel-stack/crds/opentelemetry.io_opampbridges.yaml
new file mode 100644
index 00000000..81fbf7c2
--- /dev/null
+++ b/charts/appscode-otel-stack/crds/opentelemetry.io_opampbridges.yaml
@@ -0,0 +1,1802 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.20.0
+ name: opampbridges.opentelemetry.io
+spec:
+ group: opentelemetry.io
+ names:
+ kind: OpAMPBridge
+ listKind: OpAMPBridgeList
+ plural: opampbridges
+ singular: opampbridge
+ scope: Namespaced
+ versions:
+ - additionalPrinterColumns:
+ - jsonPath: .metadata.creationTimestamp
+ name: Age
+ type: date
+ - description: OpenTelemetry Version
+ jsonPath: .status.version
+ name: Version
+ type: string
+ - jsonPath: .spec.endpoint
+ name: Endpoint
+ type: string
+ name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ type: string
+ kind:
+ type: string
+ metadata:
+ type: object
+ spec:
+ properties:
+ affinity:
+ properties:
+ nodeAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ preference:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchFields:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ x-kubernetes-map-type: atomic
+ weight:
+ format: int32
+ type: integer
+ required:
+ - preference
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ properties:
+ nodeSelectorTerms:
+ items:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchFields:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ x-kubernetes-map-type: atomic
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - nodeSelectorTerms
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ podAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ podAffinityTerm:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ weight:
+ format: int32
+ type: integer
+ required:
+ - podAffinityTerm
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ podAntiAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ podAffinityTerm:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ weight:
+ format: int32
+ type: integer
+ required:
+ - podAffinityTerm
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ type: object
+ capabilities:
+ additionalProperties:
+ type: boolean
+ type: object
+ componentsAllowed:
+ additionalProperties:
+ items:
+ type: string
+ type: array
+ type: object
+ description:
+ properties:
+ non_identifying_attributes:
+ additionalProperties:
+ type: string
+ type: object
+ required:
+ - non_identifying_attributes
+ type: object
+ endpoint:
+ type: string
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ envFrom:
+ items:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ prefix:
+ type: string
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ type: array
+ headers:
+ additionalProperties:
+ type: string
+ type: object
+ hostNetwork:
+ type: boolean
+ image:
+ type: string
+ imagePullPolicy:
+ type: string
+ ipFamilies:
+ items:
+ type: string
+ type: array
+ ipFamilyPolicy:
+ type: string
+ nodeSelector:
+ additionalProperties:
+ type: string
+ type: object
+ podAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ podDnsConfig:
+ properties:
+ nameservers:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ options:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ searches:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ podSecurityContext:
+ properties:
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ fsGroup:
+ format: int64
+ type: integer
+ fsGroupChangePolicy:
+ type: string
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxChangePolicy:
+ type: string
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ supplementalGroups:
+ items:
+ format: int64
+ type: integer
+ type: array
+ x-kubernetes-list-type: atomic
+ supplementalGroupsPolicy:
+ type: string
+ sysctls:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ ports:
+ items:
+ properties:
+ appProtocol:
+ type: string
+ name:
+ type: string
+ nodePort:
+ format: int32
+ type: integer
+ port:
+ format: int32
+ type: integer
+ protocol:
+ default: TCP
+ type: string
+ targetPort:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ priorityClassName:
+ type: string
+ replicas:
+ format: int32
+ maximum: 1
+ type: integer
+ resources:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ securityContext:
+ properties:
+ allowPrivilegeEscalation:
+ type: boolean
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ capabilities:
+ properties:
+ add:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ drop:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ privileged:
+ type: boolean
+ procMount:
+ type: string
+ readOnlyRootFilesystem:
+ type: boolean
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ serviceAccount:
+ type: string
+ tolerations:
+ items:
+ properties:
+ effect:
+ type: string
+ key:
+ type: string
+ operator:
+ type: string
+ tolerationSeconds:
+ format: int64
+ type: integer
+ value:
+ type: string
+ type: object
+ type: array
+ topologySpreadConstraints:
+ items:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ maxSkew:
+ format: int32
+ type: integer
+ minDomains:
+ format: int32
+ type: integer
+ nodeAffinityPolicy:
+ type: string
+ nodeTaintsPolicy:
+ type: string
+ topologyKey:
+ type: string
+ whenUnsatisfiable:
+ type: string
+ required:
+ - maxSkew
+ - topologyKey
+ - whenUnsatisfiable
+ type: object
+ type: array
+ upgradeStrategy:
+ enum:
+ - automatic
+ - none
+ type: string
+ volumeMounts:
+ items:
+ properties:
+ mountPath:
+ type: string
+ mountPropagation:
+ type: string
+ name:
+ type: string
+ readOnly:
+ type: boolean
+ recursiveReadOnly:
+ type: string
+ subPath:
+ type: string
+ subPathExpr:
+ type: string
+ required:
+ - mountPath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ volumes:
+ items:
+ properties:
+ awsElasticBlockStore:
+ properties:
+ fsType:
+ type: string
+ partition:
+ format: int32
+ type: integer
+ readOnly:
+ type: boolean
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ azureDisk:
+ properties:
+ cachingMode:
+ type: string
+ diskName:
+ type: string
+ diskURI:
+ type: string
+ fsType:
+ default: ext4
+ type: string
+ kind:
+ type: string
+ readOnly:
+ default: false
+ type: boolean
+ required:
+ - diskName
+ - diskURI
+ type: object
+ azureFile:
+ properties:
+ readOnly:
+ type: boolean
+ secretName:
+ type: string
+ shareName:
+ type: string
+ required:
+ - secretName
+ - shareName
+ type: object
+ cephfs:
+ properties:
+ monitors:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ secretFile:
+ type: string
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ user:
+ type: string
+ required:
+ - monitors
+ type: object
+ cinder:
+ properties:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ configMap:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ csi:
+ properties:
+ driver:
+ type: string
+ fsType:
+ type: string
+ nodePublishSecretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ readOnly:
+ type: boolean
+ volumeAttributes:
+ additionalProperties:
+ type: string
+ type: object
+ required:
+ - driver
+ type: object
+ downwardAPI:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
+ items:
+ properties:
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ emptyDir:
+ properties:
+ medium:
+ type: string
+ sizeLimit:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ ephemeral:
+ properties:
+ volumeClaimTemplate:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ accessModes:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ dataSource:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ x-kubernetes-map-type: atomic
+ dataSourceRef:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ resources:
+ properties:
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ selector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ storageClassName:
+ type: string
+ volumeAttributesClassName:
+ type: string
+ volumeMode:
+ type: string
+ volumeName:
+ type: string
+ type: object
+ required:
+ - spec
+ type: object
+ type: object
+ fc:
+ properties:
+ fsType:
+ type: string
+ lun:
+ format: int32
+ type: integer
+ readOnly:
+ type: boolean
+ targetWWNs:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ wwids:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ flexVolume:
+ properties:
+ driver:
+ type: string
+ fsType:
+ type: string
+ options:
+ additionalProperties:
+ type: string
+ type: object
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - driver
+ type: object
+ flocker:
+ properties:
+ datasetName:
+ type: string
+ datasetUUID:
+ type: string
+ type: object
+ gcePersistentDisk:
+ properties:
+ fsType:
+ type: string
+ partition:
+ format: int32
+ type: integer
+ pdName:
+ type: string
+ readOnly:
+ type: boolean
+ required:
+ - pdName
+ type: object
+ gitRepo:
+ properties:
+ directory:
+ type: string
+ repository:
+ type: string
+ revision:
+ type: string
+ required:
+ - repository
+ type: object
+ glusterfs:
+ properties:
+ endpoints:
+ type: string
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ required:
+ - endpoints
+ - path
+ type: object
+ hostPath:
+ properties:
+ path:
+ type: string
+ type:
+ type: string
+ required:
+ - path
+ type: object
+ image:
+ properties:
+ pullPolicy:
+ type: string
+ reference:
+ type: string
+ type: object
+ iscsi:
+ properties:
+ chapAuthDiscovery:
+ type: boolean
+ chapAuthSession:
+ type: boolean
+ fsType:
+ type: string
+ initiatorName:
+ type: string
+ iqn:
+ type: string
+ iscsiInterface:
+ default: default
+ type: string
+ lun:
+ format: int32
+ type: integer
+ portals:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ targetPortal:
+ type: string
+ required:
+ - iqn
+ - lun
+ - targetPortal
+ type: object
+ name:
+ type: string
+ nfs:
+ properties:
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ server:
+ type: string
+ required:
+ - path
+ - server
+ type: object
+ persistentVolumeClaim:
+ properties:
+ claimName:
+ type: string
+ readOnly:
+ type: boolean
+ required:
+ - claimName
+ type: object
+ photonPersistentDisk:
+ properties:
+ fsType:
+ type: string
+ pdID:
+ type: string
+ required:
+ - pdID
+ type: object
+ portworxVolume:
+ properties:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ projected:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ sources:
+ items:
+ properties:
+ clusterTrustBundle:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ name:
+ type: string
+ optional:
+ type: boolean
+ path:
+ type: string
+ signerName:
+ type: string
+ required:
+ - path
+ type: object
+ configMap:
+ properties:
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ downwardAPI:
+ properties:
+ items:
+ items:
+ properties:
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ podCertificate:
+ properties:
+ certificateChainPath:
+ type: string
+ credentialBundlePath:
+ type: string
+ keyPath:
+ type: string
+ keyType:
+ type: string
+ maxExpirationSeconds:
+ format: int32
+ type: integer
+ signerName:
+ type: string
+ required:
+ - keyType
+ - signerName
+ type: object
+ secret:
+ properties:
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ serviceAccountToken:
+ properties:
+ audience:
+ type: string
+ expirationSeconds:
+ format: int64
+ type: integer
+ path:
+ type: string
+ required:
+ - path
+ type: object
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ quobyte:
+ properties:
+ group:
+ type: string
+ readOnly:
+ type: boolean
+ registry:
+ type: string
+ tenant:
+ type: string
+ user:
+ type: string
+ volume:
+ type: string
+ required:
+ - registry
+ - volume
+ type: object
+ rbd:
+ properties:
+ fsType:
+ type: string
+ image:
+ type: string
+ keyring:
+ default: /etc/ceph/keyring
+ type: string
+ monitors:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ pool:
+ default: rbd
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ user:
+ default: admin
+ type: string
+ required:
+ - image
+ - monitors
+ type: object
+ scaleIO:
+ properties:
+ fsType:
+ default: xfs
+ type: string
+ gateway:
+ type: string
+ protectionDomain:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ sslEnabled:
+ type: boolean
+ storageMode:
+ default: ThinProvisioned
+ type: string
+ storagePool:
+ type: string
+ system:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - gateway
+ - secretRef
+ - system
+ type: object
+ secret:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ optional:
+ type: boolean
+ secretName:
+ type: string
+ type: object
+ storageos:
+ properties:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ volumeName:
+ type: string
+ volumeNamespace:
+ type: string
+ type: object
+ vsphereVolume:
+ properties:
+ fsType:
+ type: string
+ storagePolicyID:
+ type: string
+ storagePolicyName:
+ type: string
+ volumePath:
+ type: string
+ required:
+ - volumePath
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - capabilities
+ - endpoint
+ type: object
+ status:
+ properties:
+ version:
+ type: string
+ type: object
+ type: object
+ served: true
+ storage: true
+ subresources:
+ status: {}
diff --git a/charts/appscode-otel-stack/crds/opentelemetry.io_opentelemetrycollectors.yaml b/charts/appscode-otel-stack/crds/opentelemetry.io_opentelemetrycollectors.yaml
new file mode 100644
index 00000000..e8c80416
--- /dev/null
+++ b/charts/appscode-otel-stack/crds/opentelemetry.io_opentelemetrycollectors.yaml
@@ -0,0 +1,9862 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.20.1
+ name: opentelemetrycollectors.opentelemetry.io
+spec:
+ group: opentelemetry.io
+ names:
+ kind: OpenTelemetryCollector
+ listKind: OpenTelemetryCollectorList
+ plural: opentelemetrycollectors
+ shortNames:
+ - otelcol
+ - otelcols
+ singular: opentelemetrycollector
+ scope: Namespaced
+ versions:
+ - additionalPrinterColumns:
+ - description: Deployment Mode
+ jsonPath: .spec.mode
+ name: Mode
+ type: string
+ - description: OpenTelemetry Version
+ jsonPath: .status.version
+ name: Version
+ type: string
+ - jsonPath: .status.scale.statusReplicas
+ name: Ready
+ type: string
+ - jsonPath: .metadata.creationTimestamp
+ name: Age
+ type: date
+ - jsonPath: .status.image
+ name: Image
+ type: string
+ - description: Management State
+ jsonPath: .spec.managementState
+ name: Management
+ type: string
+ deprecated: true
+ deprecationWarning: OpenTelemetryCollector v1alpha1 is deprecated. Migrate to
+ v1beta1.
+ name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ type: string
+ kind:
+ type: string
+ metadata:
+ type: object
+ spec:
+ properties:
+ additionalContainers:
+ items:
+ properties:
+ args:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ envFrom:
+ items:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ prefix:
+ type: string
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ image:
+ type: string
+ imagePullPolicy:
+ type: string
+ lifecycle:
+ properties:
+ postStart:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ preStop:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ stopSignal:
+ type: string
+ type: object
+ livenessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ name:
+ type: string
+ ports:
+ items:
+ properties:
+ containerPort:
+ format: int32
+ type: integer
+ hostIP:
+ type: string
+ hostPort:
+ format: int32
+ type: integer
+ name:
+ type: string
+ protocol:
+ default: TCP
+ type: string
+ required:
+ - containerPort
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - containerPort
+ - protocol
+ x-kubernetes-list-type: map
+ readinessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ resizePolicy:
+ items:
+ properties:
+ resourceName:
+ type: string
+ restartPolicy:
+ type: string
+ required:
+ - resourceName
+ - restartPolicy
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ resources:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ restartPolicy:
+ type: string
+ restartPolicyRules:
+ items:
+ properties:
+ action:
+ type: string
+ exitCodes:
+ properties:
+ operator:
+ type: string
+ values:
+ items:
+ format: int32
+ type: integer
+ type: array
+ x-kubernetes-list-type: set
+ required:
+ - operator
+ type: object
+ required:
+ - action
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ securityContext:
+ properties:
+ allowPrivilegeEscalation:
+ type: boolean
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ capabilities:
+ properties:
+ add:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ drop:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ privileged:
+ type: boolean
+ procMount:
+ type: string
+ readOnlyRootFilesystem:
+ type: boolean
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ startupProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ stdin:
+ type: boolean
+ stdinOnce:
+ type: boolean
+ terminationMessagePath:
+ type: string
+ terminationMessagePolicy:
+ type: string
+ tty:
+ type: boolean
+ volumeDevices:
+ items:
+ properties:
+ devicePath:
+ type: string
+ name:
+ type: string
+ required:
+ - devicePath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - devicePath
+ x-kubernetes-list-type: map
+ volumeMounts:
+ items:
+ properties:
+ mountPath:
+ type: string
+ mountPropagation:
+ type: string
+ name:
+ type: string
+ readOnly:
+ type: boolean
+ recursiveReadOnly:
+ type: string
+ subPath:
+ type: string
+ subPathExpr:
+ type: string
+ required:
+ - mountPath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - mountPath
+ x-kubernetes-list-type: map
+ workingDir:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ affinity:
+ properties:
+ nodeAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ preference:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchFields:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ x-kubernetes-map-type: atomic
+ weight:
+ format: int32
+ type: integer
+ required:
+ - preference
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ properties:
+ nodeSelectorTerms:
+ items:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchFields:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ x-kubernetes-map-type: atomic
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - nodeSelectorTerms
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ podAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ podAffinityTerm:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ weight:
+ format: int32
+ type: integer
+ required:
+ - podAffinityTerm
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ podAntiAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ podAffinityTerm:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ weight:
+ format: int32
+ type: integer
+ required:
+ - podAffinityTerm
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ type: object
+ args:
+ additionalProperties:
+ type: string
+ type: object
+ autoscaler:
+ properties:
+ behavior:
+ properties:
+ scaleDown:
+ properties:
+ policies:
+ items:
+ properties:
+ periodSeconds:
+ format: int32
+ type: integer
+ type:
+ type: string
+ value:
+ format: int32
+ type: integer
+ required:
+ - periodSeconds
+ - type
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ selectPolicy:
+ type: string
+ stabilizationWindowSeconds:
+ format: int32
+ type: integer
+ tolerance:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ scaleUp:
+ properties:
+ policies:
+ items:
+ properties:
+ periodSeconds:
+ format: int32
+ type: integer
+ type:
+ type: string
+ value:
+ format: int32
+ type: integer
+ required:
+ - periodSeconds
+ - type
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ selectPolicy:
+ type: string
+ stabilizationWindowSeconds:
+ format: int32
+ type: integer
+ tolerance:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ maxReplicas:
+ format: int32
+ type: integer
+ metrics:
+ items:
+ properties:
+ pods:
+ properties:
+ metric:
+ properties:
+ name:
+ type: string
+ selector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - name
+ type: object
+ target:
+ properties:
+ averageUtilization:
+ format: int32
+ type: integer
+ averageValue:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type:
+ type: string
+ value:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ required:
+ - type
+ type: object
+ required:
+ - metric
+ - target
+ type: object
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ type: array
+ minReplicas:
+ format: int32
+ type: integer
+ targetCPUUtilization:
+ format: int32
+ type: integer
+ targetMemoryUtilization:
+ format: int32
+ type: integer
+ type: object
+ config:
+ type: string
+ configmaps:
+ items:
+ properties:
+ mountpath:
+ type: string
+ name:
+ type: string
+ required:
+ - mountpath
+ - name
+ type: object
+ type: array
+ deploymentUpdateStrategy:
+ properties:
+ rollingUpdate:
+ properties:
+ maxSurge:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ maxUnavailable:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ type: object
+ type:
+ type: string
+ type: object
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ envFrom:
+ items:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ prefix:
+ type: string
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ type: array
+ hostNetwork:
+ type: boolean
+ image:
+ type: string
+ imagePullPolicy:
+ type: string
+ ingress:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ hostname:
+ type: string
+ ingressClassName:
+ type: string
+ route:
+ properties:
+ termination:
+ enum:
+ - insecure
+ - edge
+ - passthrough
+ - reencrypt
+ type: string
+ type: object
+ ruleType:
+ enum:
+ - path
+ - subdomain
+ type: string
+ tls:
+ items:
+ properties:
+ hosts:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ secretName:
+ type: string
+ type: object
+ type: array
+ type:
+ enum:
+ - ingress
+ - route
+ type: string
+ type: object
+ initContainers:
+ items:
+ properties:
+ args:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ envFrom:
+ items:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ prefix:
+ type: string
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ image:
+ type: string
+ imagePullPolicy:
+ type: string
+ lifecycle:
+ properties:
+ postStart:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ preStop:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ stopSignal:
+ type: string
+ type: object
+ livenessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ name:
+ type: string
+ ports:
+ items:
+ properties:
+ containerPort:
+ format: int32
+ type: integer
+ hostIP:
+ type: string
+ hostPort:
+ format: int32
+ type: integer
+ name:
+ type: string
+ protocol:
+ default: TCP
+ type: string
+ required:
+ - containerPort
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - containerPort
+ - protocol
+ x-kubernetes-list-type: map
+ readinessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ resizePolicy:
+ items:
+ properties:
+ resourceName:
+ type: string
+ restartPolicy:
+ type: string
+ required:
+ - resourceName
+ - restartPolicy
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ resources:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ restartPolicy:
+ type: string
+ restartPolicyRules:
+ items:
+ properties:
+ action:
+ type: string
+ exitCodes:
+ properties:
+ operator:
+ type: string
+ values:
+ items:
+ format: int32
+ type: integer
+ type: array
+ x-kubernetes-list-type: set
+ required:
+ - operator
+ type: object
+ required:
+ - action
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ securityContext:
+ properties:
+ allowPrivilegeEscalation:
+ type: boolean
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ capabilities:
+ properties:
+ add:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ drop:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ privileged:
+ type: boolean
+ procMount:
+ type: string
+ readOnlyRootFilesystem:
+ type: boolean
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ startupProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ stdin:
+ type: boolean
+ stdinOnce:
+ type: boolean
+ terminationMessagePath:
+ type: string
+ terminationMessagePolicy:
+ type: string
+ tty:
+ type: boolean
+ volumeDevices:
+ items:
+ properties:
+ devicePath:
+ type: string
+ name:
+ type: string
+ required:
+ - devicePath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - devicePath
+ x-kubernetes-list-type: map
+ volumeMounts:
+ items:
+ properties:
+ mountPath:
+ type: string
+ mountPropagation:
+ type: string
+ name:
+ type: string
+ readOnly:
+ type: boolean
+ recursiveReadOnly:
+ type: string
+ subPath:
+ type: string
+ subPathExpr:
+ type: string
+ required:
+ - mountPath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - mountPath
+ x-kubernetes-list-type: map
+ workingDir:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ lifecycle:
+ properties:
+ postStart:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ preStop:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ stopSignal:
+ type: string
+ type: object
+ livenessProbe:
+ properties:
+ failureThreshold:
+ format: int32
+ type: integer
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ managementState:
+ default: managed
+ enum:
+ - managed
+ - unmanaged
+ type: string
+ maxReplicas:
+ format: int32
+ type: integer
+ minReplicas:
+ format: int32
+ type: integer
+ mode:
+ enum:
+ - daemonset
+ - deployment
+ - sidecar
+ - statefulset
+ type: string
+ nodeSelector:
+ additionalProperties:
+ type: string
+ type: object
+ observability:
+ properties:
+ metrics:
+ properties:
+ DisablePrometheusAnnotations:
+ type: boolean
+ enableMetrics:
+ type: boolean
+ type: object
+ type: object
+ podAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ podDisruptionBudget:
+ properties:
+ maxUnavailable:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ minAvailable:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ type: object
+ podSecurityContext:
+ properties:
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ fsGroup:
+ format: int64
+ type: integer
+ fsGroupChangePolicy:
+ type: string
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxChangePolicy:
+ type: string
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ supplementalGroups:
+ items:
+ format: int64
+ type: integer
+ type: array
+ x-kubernetes-list-type: atomic
+ supplementalGroupsPolicy:
+ type: string
+ sysctls:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ ports:
+ items:
+ properties:
+ appProtocol:
+ type: string
+ hostPort:
+ format: int32
+ type: integer
+ name:
+ type: string
+ nodePort:
+ format: int32
+ type: integer
+ port:
+ format: int32
+ type: integer
+ protocol:
+ default: TCP
+ type: string
+ targetPort:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ priorityClassName:
+ type: string
+ replicas:
+ default: 1
+ format: int32
+ type: integer
+ resources:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ securityContext:
+ properties:
+ allowPrivilegeEscalation:
+ type: boolean
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ capabilities:
+ properties:
+ add:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ drop:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ privileged:
+ type: boolean
+ procMount:
+ type: string
+ readOnlyRootFilesystem:
+ type: boolean
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ serviceAccount:
+ type: string
+ serviceName:
+ type: string
+ shareProcessNamespace:
+ type: boolean
+ targetAllocator:
+ properties:
+ affinity:
+ properties:
+ nodeAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ preference:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchFields:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ x-kubernetes-map-type: atomic
+ weight:
+ format: int32
+ type: integer
+ required:
+ - preference
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ properties:
+ nodeSelectorTerms:
+ items:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchFields:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ x-kubernetes-map-type: atomic
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - nodeSelectorTerms
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ podAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ podAffinityTerm:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ weight:
+ format: int32
+ type: integer
+ required:
+ - podAffinityTerm
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ podAntiAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ podAffinityTerm:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ weight:
+ format: int32
+ type: integer
+ required:
+ - podAffinityTerm
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ type: object
+ allocationStrategy:
+ default: consistent-hashing
+ enum:
+ - least-weighted
+ - consistent-hashing
+ - per-node
+ type: string
+ enabled:
+ type: boolean
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ filterStrategy:
+ default: relabel-config
+ type: string
+ image:
+ type: string
+ nodeSelector:
+ additionalProperties:
+ type: string
+ type: object
+ observability:
+ properties:
+ metrics:
+ properties:
+ DisablePrometheusAnnotations:
+ type: boolean
+ enableMetrics:
+ type: boolean
+ type: object
+ type: object
+ podDisruptionBudget:
+ properties:
+ maxUnavailable:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ minAvailable:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ type: object
+ podSecurityContext:
+ properties:
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ fsGroup:
+ format: int64
+ type: integer
+ fsGroupChangePolicy:
+ type: string
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxChangePolicy:
+ type: string
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ supplementalGroups:
+ items:
+ format: int64
+ type: integer
+ type: array
+ x-kubernetes-list-type: atomic
+ supplementalGroupsPolicy:
+ type: string
+ sysctls:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ prometheusCR:
+ properties:
+ enabled:
+ type: boolean
+ podMonitorSelector:
+ additionalProperties:
+ type: string
+ type: object
+ scrapeClasses:
+ items:
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ x-kubernetes-preserve-unknown-fields: true
+ scrapeInterval:
+ default: 30s
+ format: duration
+ type: string
+ serviceMonitorSelector:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ replicas:
+ format: int32
+ type: integer
+ resources:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ securityContext:
+ properties:
+ allowPrivilegeEscalation:
+ type: boolean
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ capabilities:
+ properties:
+ add:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ drop:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ privileged:
+ type: boolean
+ procMount:
+ type: string
+ readOnlyRootFilesystem:
+ type: boolean
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ serviceAccount:
+ type: string
+ tolerations:
+ items:
+ properties:
+ effect:
+ type: string
+ key:
+ type: string
+ operator:
+ type: string
+ tolerationSeconds:
+ format: int64
+ type: integer
+ value:
+ type: string
+ type: object
+ type: array
+ topologySpreadConstraints:
+ items:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ maxSkew:
+ format: int32
+ type: integer
+ minDomains:
+ format: int32
+ type: integer
+ nodeAffinityPolicy:
+ type: string
+ nodeTaintsPolicy:
+ type: string
+ topologyKey:
+ type: string
+ whenUnsatisfiable:
+ type: string
+ required:
+ - maxSkew
+ - topologyKey
+ - whenUnsatisfiable
+ type: object
+ type: array
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ tolerations:
+ items:
+ properties:
+ effect:
+ type: string
+ key:
+ type: string
+ operator:
+ type: string
+ tolerationSeconds:
+ format: int64
+ type: integer
+ value:
+ type: string
+ type: object
+ type: array
+ topologySpreadConstraints:
+ items:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ maxSkew:
+ format: int32
+ type: integer
+ minDomains:
+ format: int32
+ type: integer
+ nodeAffinityPolicy:
+ type: string
+ nodeTaintsPolicy:
+ type: string
+ topologyKey:
+ type: string
+ whenUnsatisfiable:
+ type: string
+ required:
+ - maxSkew
+ - topologyKey
+ - whenUnsatisfiable
+ type: object
+ type: array
+ trafficDistribution:
+ type: string
+ updateStrategy:
+ properties:
+ rollingUpdate:
+ properties:
+ maxSurge:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ maxUnavailable:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ type: object
+ type:
+ type: string
+ type: object
+ upgradeStrategy:
+ enum:
+ - automatic
+ - none
+ type: string
+ volumeClaimTemplates:
+ items:
+ properties:
+ apiVersion:
+ type: string
+ kind:
+ type: string
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ accessModes:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ dataSource:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ x-kubernetes-map-type: atomic
+ dataSourceRef:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ resources:
+ properties:
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ selector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ storageClassName:
+ type: string
+ volumeAttributesClassName:
+ type: string
+ volumeMode:
+ type: string
+ volumeName:
+ type: string
+ type: object
+ status:
+ properties:
+ accessModes:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ allocatedResourceStatuses:
+ additionalProperties:
+ type: string
+ type: object
+ x-kubernetes-map-type: granular
+ allocatedResources:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ capacity:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ conditions:
+ items:
+ properties:
+ lastProbeTime:
+ format: date-time
+ type: string
+ lastTransitionTime:
+ format: date-time
+ type: string
+ message:
+ type: string
+ reason:
+ type: string
+ status:
+ type: string
+ type:
+ type: string
+ required:
+ - status
+ - type
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - type
+ x-kubernetes-list-type: map
+ currentVolumeAttributesClassName:
+ type: string
+ modifyVolumeStatus:
+ properties:
+ status:
+ type: string
+ targetVolumeAttributesClassName:
+ type: string
+ required:
+ - status
+ type: object
+ phase:
+ type: string
+ type: object
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ volumeMounts:
+ items:
+ properties:
+ mountPath:
+ type: string
+ mountPropagation:
+ type: string
+ name:
+ type: string
+ readOnly:
+ type: boolean
+ recursiveReadOnly:
+ type: string
+ subPath:
+ type: string
+ subPathExpr:
+ type: string
+ required:
+ - mountPath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ volumes:
+ items:
+ properties:
+ awsElasticBlockStore:
+ properties:
+ fsType:
+ type: string
+ partition:
+ format: int32
+ type: integer
+ readOnly:
+ type: boolean
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ azureDisk:
+ properties:
+ cachingMode:
+ type: string
+ diskName:
+ type: string
+ diskURI:
+ type: string
+ fsType:
+ default: ext4
+ type: string
+ kind:
+ type: string
+ readOnly:
+ default: false
+ type: boolean
+ required:
+ - diskName
+ - diskURI
+ type: object
+ azureFile:
+ properties:
+ readOnly:
+ type: boolean
+ secretName:
+ type: string
+ shareName:
+ type: string
+ required:
+ - secretName
+ - shareName
+ type: object
+ cephfs:
+ properties:
+ monitors:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ secretFile:
+ type: string
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ user:
+ type: string
+ required:
+ - monitors
+ type: object
+ cinder:
+ properties:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ configMap:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ csi:
+ properties:
+ driver:
+ type: string
+ fsType:
+ type: string
+ nodePublishSecretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ readOnly:
+ type: boolean
+ volumeAttributes:
+ additionalProperties:
+ type: string
+ type: object
+ required:
+ - driver
+ type: object
+ downwardAPI:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
+ items:
+ properties:
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ emptyDir:
+ properties:
+ medium:
+ type: string
+ sizeLimit:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ ephemeral:
+ properties:
+ volumeClaimTemplate:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ accessModes:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ dataSource:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ x-kubernetes-map-type: atomic
+ dataSourceRef:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ resources:
+ properties:
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ selector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ storageClassName:
+ type: string
+ volumeAttributesClassName:
+ type: string
+ volumeMode:
+ type: string
+ volumeName:
+ type: string
+ type: object
+ required:
+ - spec
+ type: object
+ type: object
+ fc:
+ properties:
+ fsType:
+ type: string
+ lun:
+ format: int32
+ type: integer
+ readOnly:
+ type: boolean
+ targetWWNs:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ wwids:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ flexVolume:
+ properties:
+ driver:
+ type: string
+ fsType:
+ type: string
+ options:
+ additionalProperties:
+ type: string
+ type: object
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - driver
+ type: object
+ flocker:
+ properties:
+ datasetName:
+ type: string
+ datasetUUID:
+ type: string
+ type: object
+ gcePersistentDisk:
+ properties:
+ fsType:
+ type: string
+ partition:
+ format: int32
+ type: integer
+ pdName:
+ type: string
+ readOnly:
+ type: boolean
+ required:
+ - pdName
+ type: object
+ gitRepo:
+ properties:
+ directory:
+ type: string
+ repository:
+ type: string
+ revision:
+ type: string
+ required:
+ - repository
+ type: object
+ glusterfs:
+ properties:
+ endpoints:
+ type: string
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ required:
+ - endpoints
+ - path
+ type: object
+ hostPath:
+ properties:
+ path:
+ type: string
+ type:
+ type: string
+ required:
+ - path
+ type: object
+ image:
+ properties:
+ pullPolicy:
+ type: string
+ reference:
+ type: string
+ type: object
+ iscsi:
+ properties:
+ chapAuthDiscovery:
+ type: boolean
+ chapAuthSession:
+ type: boolean
+ fsType:
+ type: string
+ initiatorName:
+ type: string
+ iqn:
+ type: string
+ iscsiInterface:
+ default: default
+ type: string
+ lun:
+ format: int32
+ type: integer
+ portals:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ targetPortal:
+ type: string
+ required:
+ - iqn
+ - lun
+ - targetPortal
+ type: object
+ name:
+ type: string
+ nfs:
+ properties:
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ server:
+ type: string
+ required:
+ - path
+ - server
+ type: object
+ persistentVolumeClaim:
+ properties:
+ claimName:
+ type: string
+ readOnly:
+ type: boolean
+ required:
+ - claimName
+ type: object
+ photonPersistentDisk:
+ properties:
+ fsType:
+ type: string
+ pdID:
+ type: string
+ required:
+ - pdID
+ type: object
+ portworxVolume:
+ properties:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ projected:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ sources:
+ items:
+ properties:
+ clusterTrustBundle:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ name:
+ type: string
+ optional:
+ type: boolean
+ path:
+ type: string
+ signerName:
+ type: string
+ required:
+ - path
+ type: object
+ configMap:
+ properties:
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ downwardAPI:
+ properties:
+ items:
+ items:
+ properties:
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ podCertificate:
+ properties:
+ certificateChainPath:
+ type: string
+ credentialBundlePath:
+ type: string
+ keyPath:
+ type: string
+ keyType:
+ type: string
+ maxExpirationSeconds:
+ format: int32
+ type: integer
+ signerName:
+ type: string
+ userAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ required:
+ - keyType
+ - signerName
+ type: object
+ secret:
+ properties:
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ serviceAccountToken:
+ properties:
+ audience:
+ type: string
+ expirationSeconds:
+ format: int64
+ type: integer
+ path:
+ type: string
+ required:
+ - path
+ type: object
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ quobyte:
+ properties:
+ group:
+ type: string
+ readOnly:
+ type: boolean
+ registry:
+ type: string
+ tenant:
+ type: string
+ user:
+ type: string
+ volume:
+ type: string
+ required:
+ - registry
+ - volume
+ type: object
+ rbd:
+ properties:
+ fsType:
+ type: string
+ image:
+ type: string
+ keyring:
+ default: /etc/ceph/keyring
+ type: string
+ monitors:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ pool:
+ default: rbd
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ user:
+ default: admin
+ type: string
+ required:
+ - image
+ - monitors
+ type: object
+ scaleIO:
+ properties:
+ fsType:
+ default: xfs
+ type: string
+ gateway:
+ type: string
+ protectionDomain:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ sslEnabled:
+ type: boolean
+ storageMode:
+ default: ThinProvisioned
+ type: string
+ storagePool:
+ type: string
+ system:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - gateway
+ - secretRef
+ - system
+ type: object
+ secret:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ optional:
+ type: boolean
+ secretName:
+ type: string
+ type: object
+ storageos:
+ properties:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ volumeName:
+ type: string
+ volumeNamespace:
+ type: string
+ type: object
+ vsphereVolume:
+ properties:
+ fsType:
+ type: string
+ storagePolicyID:
+ type: string
+ storagePolicyName:
+ type: string
+ volumePath:
+ type: string
+ required:
+ - volumePath
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - config
+ - managementState
+ type: object
+ status:
+ properties:
+ image:
+ type: string
+ messages:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ replicas:
+ format: int32
+ type: integer
+ scale:
+ properties:
+ replicas:
+ format: int32
+ type: integer
+ selector:
+ type: string
+ statusReplicas:
+ type: string
+ type: object
+ version:
+ type: string
+ type: object
+ type: object
+ served: true
+ storage: false
+ subresources:
+ scale:
+ labelSelectorPath: .status.scale.selector
+ specReplicasPath: .spec.replicas
+ statusReplicasPath: .status.scale.replicas
+ status: {}
+ - additionalPrinterColumns:
+ - description: Deployment Mode
+ jsonPath: .spec.mode
+ name: Mode
+ type: string
+ - description: OpenTelemetry Version
+ jsonPath: .status.version
+ name: Version
+ type: string
+ - jsonPath: .status.scale.statusReplicas
+ name: Ready
+ type: string
+ - jsonPath: .metadata.creationTimestamp
+ name: Age
+ type: date
+ - jsonPath: .status.image
+ name: Image
+ type: string
+ - description: Management State
+ jsonPath: .spec.managementState
+ name: Management
+ type: string
+ name: v1beta1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ type: string
+ kind:
+ type: string
+ metadata:
+ type: object
+ spec:
+ properties:
+ additionalContainers:
+ items:
+ properties:
+ args:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ envFrom:
+ items:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ prefix:
+ type: string
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ image:
+ type: string
+ imagePullPolicy:
+ type: string
+ lifecycle:
+ properties:
+ postStart:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ preStop:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ stopSignal:
+ type: string
+ type: object
+ livenessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ name:
+ type: string
+ ports:
+ items:
+ properties:
+ containerPort:
+ format: int32
+ type: integer
+ hostIP:
+ type: string
+ hostPort:
+ format: int32
+ type: integer
+ name:
+ type: string
+ protocol:
+ default: TCP
+ type: string
+ required:
+ - containerPort
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - containerPort
+ - protocol
+ x-kubernetes-list-type: map
+ readinessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ resizePolicy:
+ items:
+ properties:
+ resourceName:
+ type: string
+ restartPolicy:
+ type: string
+ required:
+ - resourceName
+ - restartPolicy
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ resources:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ restartPolicy:
+ type: string
+ restartPolicyRules:
+ items:
+ properties:
+ action:
+ type: string
+ exitCodes:
+ properties:
+ operator:
+ type: string
+ values:
+ items:
+ format: int32
+ type: integer
+ type: array
+ x-kubernetes-list-type: set
+ required:
+ - operator
+ type: object
+ required:
+ - action
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ securityContext:
+ properties:
+ allowPrivilegeEscalation:
+ type: boolean
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ capabilities:
+ properties:
+ add:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ drop:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ privileged:
+ type: boolean
+ procMount:
+ type: string
+ readOnlyRootFilesystem:
+ type: boolean
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ startupProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ stdin:
+ type: boolean
+ stdinOnce:
+ type: boolean
+ terminationMessagePath:
+ type: string
+ terminationMessagePolicy:
+ type: string
+ tty:
+ type: boolean
+ volumeDevices:
+ items:
+ properties:
+ devicePath:
+ type: string
+ name:
+ type: string
+ required:
+ - devicePath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - devicePath
+ x-kubernetes-list-type: map
+ volumeMounts:
+ items:
+ properties:
+ mountPath:
+ type: string
+ mountPropagation:
+ type: string
+ name:
+ type: string
+ readOnly:
+ type: boolean
+ recursiveReadOnly:
+ type: string
+ subPath:
+ type: string
+ subPathExpr:
+ type: string
+ required:
+ - mountPath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - mountPath
+ x-kubernetes-list-type: map
+ workingDir:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ affinity:
+ properties:
+ nodeAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ preference:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchFields:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ x-kubernetes-map-type: atomic
+ weight:
+ format: int32
+ type: integer
+ required:
+ - preference
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ properties:
+ nodeSelectorTerms:
+ items:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchFields:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ x-kubernetes-map-type: atomic
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - nodeSelectorTerms
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ podAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ podAffinityTerm:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ weight:
+ format: int32
+ type: integer
+ required:
+ - podAffinityTerm
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ podAntiAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ podAffinityTerm:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ weight:
+ format: int32
+ type: integer
+ required:
+ - podAffinityTerm
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ type: object
+ args:
+ additionalProperties:
+ type: string
+ type: object
+ autoscaler:
+ properties:
+ behavior:
+ properties:
+ scaleDown:
+ properties:
+ policies:
+ items:
+ properties:
+ periodSeconds:
+ format: int32
+ type: integer
+ type:
+ type: string
+ value:
+ format: int32
+ type: integer
+ required:
+ - periodSeconds
+ - type
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ selectPolicy:
+ type: string
+ stabilizationWindowSeconds:
+ format: int32
+ type: integer
+ tolerance:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ scaleUp:
+ properties:
+ policies:
+ items:
+ properties:
+ periodSeconds:
+ format: int32
+ type: integer
+ type:
+ type: string
+ value:
+ format: int32
+ type: integer
+ required:
+ - periodSeconds
+ - type
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ selectPolicy:
+ type: string
+ stabilizationWindowSeconds:
+ format: int32
+ type: integer
+ tolerance:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ maxReplicas:
+ format: int32
+ minimum: 1
+ type: integer
+ metrics:
+ items:
+ properties:
+ pods:
+ properties:
+ metric:
+ properties:
+ name:
+ type: string
+ selector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - name
+ type: object
+ target:
+ properties:
+ averageUtilization:
+ format: int32
+ type: integer
+ averageValue:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type:
+ type: string
+ value:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ required:
+ - type
+ type: object
+ required:
+ - metric
+ - target
+ type: object
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ type: array
+ minReplicas:
+ format: int32
+ minimum: 1
+ type: integer
+ targetCPUUtilization:
+ format: int32
+ minimum: 1
+ type: integer
+ targetMemoryUtilization:
+ format: int32
+ minimum: 1
+ type: integer
+ type: object
+ config:
+ properties:
+ connectors:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ exporters:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ extensions:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ processors:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ receivers:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ service:
+ properties:
+ extensions:
+ items:
+ type: string
+ type: array
+ pipelines:
+ additionalProperties:
+ properties:
+ exporters:
+ items:
+ type: string
+ type: array
+ processors:
+ items:
+ type: string
+ type: array
+ receivers:
+ items:
+ type: string
+ type: array
+ required:
+ - exporters
+ - receivers
+ type: object
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ telemetry:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ required:
+ - pipelines
+ type: object
+ required:
+ - exporters
+ - receivers
+ - service
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ configVersions:
+ default: 3
+ minimum: 1
+ type: integer
+ configmaps:
+ items:
+ properties:
+ mountpath:
+ type: string
+ name:
+ type: string
+ required:
+ - mountpath
+ - name
+ type: object
+ type: array
+ daemonSetUpdateStrategy:
+ properties:
+ rollingUpdate:
+ properties:
+ maxSurge:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ maxUnavailable:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ type: object
+ type:
+ type: string
+ type: object
+ deploymentUpdateStrategy:
+ properties:
+ rollingUpdate:
+ properties:
+ maxSurge:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ maxUnavailable:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ type: object
+ type:
+ type: string
+ type: object
+ dnsPolicy:
+ type: string
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ envFrom:
+ items:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ prefix:
+ type: string
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ type: array
+ hostAliases:
+ items:
+ properties:
+ hostnames:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ ip:
+ type: string
+ required:
+ - ip
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ hostNetwork:
+ type: boolean
+ hostPID:
+ type: boolean
+ hostUsers:
+ type: boolean
+ httpRoute:
+ properties:
+ enabled:
+ type: boolean
+ gateway:
+ type: string
+ gatewayNamespace:
+ type: string
+ hostnames:
+ items:
+ type: string
+ type: array
+ required:
+ - enabled
+ - gateway
+ type: object
+ image:
+ type: string
+ imagePullPolicy:
+ type: string
+ ingress:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ hostname:
+ type: string
+ ingressClassName:
+ type: string
+ route:
+ properties:
+ termination:
+ enum:
+ - insecure
+ - edge
+ - passthrough
+ - reencrypt
+ type: string
+ type: object
+ ruleType:
+ enum:
+ - path
+ - subdomain
+ type: string
+ tls:
+ items:
+ properties:
+ hosts:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ secretName:
+ type: string
+ type: object
+ type: array
+ type:
+ enum:
+ - ingress
+ - route
+ type: string
+ type: object
+ initContainers:
+ items:
+ properties:
+ args:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ envFrom:
+ items:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ prefix:
+ type: string
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ image:
+ type: string
+ imagePullPolicy:
+ type: string
+ lifecycle:
+ properties:
+ postStart:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ preStop:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ stopSignal:
+ type: string
+ type: object
+ livenessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ name:
+ type: string
+ ports:
+ items:
+ properties:
+ containerPort:
+ format: int32
+ type: integer
+ hostIP:
+ type: string
+ hostPort:
+ format: int32
+ type: integer
+ name:
+ type: string
+ protocol:
+ default: TCP
+ type: string
+ required:
+ - containerPort
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - containerPort
+ - protocol
+ x-kubernetes-list-type: map
+ readinessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ resizePolicy:
+ items:
+ properties:
+ resourceName:
+ type: string
+ restartPolicy:
+ type: string
+ required:
+ - resourceName
+ - restartPolicy
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ resources:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ restartPolicy:
+ type: string
+ restartPolicyRules:
+ items:
+ properties:
+ action:
+ type: string
+ exitCodes:
+ properties:
+ operator:
+ type: string
+ values:
+ items:
+ format: int32
+ type: integer
+ type: array
+ x-kubernetes-list-type: set
+ required:
+ - operator
+ type: object
+ required:
+ - action
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ securityContext:
+ properties:
+ allowPrivilegeEscalation:
+ type: boolean
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ capabilities:
+ properties:
+ add:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ drop:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ privileged:
+ type: boolean
+ procMount:
+ type: string
+ readOnlyRootFilesystem:
+ type: boolean
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ startupProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ stdin:
+ type: boolean
+ stdinOnce:
+ type: boolean
+ terminationMessagePath:
+ type: string
+ terminationMessagePolicy:
+ type: string
+ tty:
+ type: boolean
+ volumeDevices:
+ items:
+ properties:
+ devicePath:
+ type: string
+ name:
+ type: string
+ required:
+ - devicePath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - devicePath
+ x-kubernetes-list-type: map
+ volumeMounts:
+ items:
+ properties:
+ mountPath:
+ type: string
+ mountPropagation:
+ type: string
+ name:
+ type: string
+ readOnly:
+ type: boolean
+ recursiveReadOnly:
+ type: string
+ subPath:
+ type: string
+ subPathExpr:
+ type: string
+ required:
+ - mountPath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - mountPath
+ x-kubernetes-list-type: map
+ workingDir:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ ipFamilies:
+ items:
+ type: string
+ type: array
+ ipFamilyPolicy:
+ default: SingleStack
+ type: string
+ lifecycle:
+ properties:
+ postStart:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ preStop:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ stopSignal:
+ type: string
+ type: object
+ livenessProbe:
+ properties:
+ failureThreshold:
+ format: int32
+ minimum: 1
+ type: integer
+ initialDelaySeconds:
+ format: int32
+ minimum: 0
+ type: integer
+ periodSeconds:
+ format: int32
+ minimum: 1
+ type: integer
+ successThreshold:
+ format: int32
+ minimum: 1
+ type: integer
+ terminationGracePeriodSeconds:
+ format: int64
+ minimum: 1
+ type: integer
+ timeoutSeconds:
+ format: int32
+ minimum: 1
+ type: integer
+ type: object
+ managementState:
+ default: managed
+ enum:
+ - managed
+ - unmanaged
+ type: string
+ mode:
+ enum:
+ - daemonset
+ - deployment
+ - sidecar
+ - statefulset
+ type: string
+ networkPolicy:
+ properties:
+ enabled:
+ type: boolean
+ type: object
+ nodeSelector:
+ additionalProperties:
+ type: string
+ type: object
+ observability:
+ properties:
+ metrics:
+ properties:
+ disablePrometheusAnnotations:
+ type: boolean
+ enableMetrics:
+ type: boolean
+ extraLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ type: object
+ persistentVolumeClaimRetentionPolicy:
+ properties:
+ whenDeleted:
+ type: string
+ whenScaled:
+ type: string
+ type: object
+ podAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ podDisruptionBudget:
+ properties:
+ maxUnavailable:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ minAvailable:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ type: object
+ podDnsConfig:
+ properties:
+ nameservers:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ options:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ searches:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ podManagementPolicy:
+ enum:
+ - OrderedReady
+ - Parallel
+ type: string
+ podSecurityContext:
+ properties:
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ fsGroup:
+ format: int64
+ type: integer
+ fsGroupChangePolicy:
+ type: string
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxChangePolicy:
+ type: string
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ supplementalGroups:
+ items:
+ format: int64
+ type: integer
+ type: array
+ x-kubernetes-list-type: atomic
+ supplementalGroupsPolicy:
+ type: string
+ sysctls:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ ports:
+ items:
+ properties:
+ appProtocol:
+ type: string
+ hostPort:
+ format: int32
+ maximum: 65535
+ minimum: 0
+ type: integer
+ name:
+ type: string
+ nodePort:
+ format: int32
+ type: integer
+ port:
+ format: int32
+ type: integer
+ protocol:
+ default: TCP
+ type: string
+ targetPort:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ priorityClassName:
+ type: string
+ readinessProbe:
+ properties:
+ failureThreshold:
+ format: int32
+ minimum: 1
+ type: integer
+ initialDelaySeconds:
+ format: int32
+ minimum: 0
+ type: integer
+ periodSeconds:
+ format: int32
+ minimum: 1
+ type: integer
+ successThreshold:
+ format: int32
+ minimum: 1
+ type: integer
+ terminationGracePeriodSeconds:
+ format: int64
+ minimum: 1
+ type: integer
+ timeoutSeconds:
+ format: int32
+ minimum: 1
+ type: integer
+ type: object
+ replicas:
+ default: 1
+ format: int32
+ type: integer
+ resources:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ securityContext:
+ properties:
+ allowPrivilegeEscalation:
+ type: boolean
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ capabilities:
+ properties:
+ add:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ drop:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ privileged:
+ type: boolean
+ procMount:
+ type: string
+ readOnlyRootFilesystem:
+ type: boolean
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ serviceAccount:
+ type: string
+ serviceName:
+ type: string
+ shareProcessNamespace:
+ type: boolean
+ startupProbe:
+ properties:
+ failureThreshold:
+ format: int32
+ minimum: 1
+ type: integer
+ initialDelaySeconds:
+ format: int32
+ minimum: 0
+ type: integer
+ periodSeconds:
+ format: int32
+ minimum: 1
+ type: integer
+ successThreshold:
+ format: int32
+ minimum: 1
+ type: integer
+ terminationGracePeriodSeconds:
+ format: int64
+ minimum: 1
+ type: integer
+ timeoutSeconds:
+ format: int32
+ minimum: 1
+ type: integer
+ type: object
+ targetAllocator:
+ properties:
+ affinity:
+ properties:
+ nodeAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ preference:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchFields:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ x-kubernetes-map-type: atomic
+ weight:
+ format: int32
+ type: integer
+ required:
+ - preference
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ properties:
+ nodeSelectorTerms:
+ items:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchFields:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ x-kubernetes-map-type: atomic
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - nodeSelectorTerms
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ podAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ podAffinityTerm:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ weight:
+ format: int32
+ type: integer
+ required:
+ - podAffinityTerm
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ podAntiAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ podAffinityTerm:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ weight:
+ format: int32
+ type: integer
+ required:
+ - podAffinityTerm
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ type: object
+ allocationStrategy:
+ default: consistent-hashing
+ enum:
+ - least-weighted
+ - consistent-hashing
+ - per-node
+ type: string
+ collectorNotReadyGracePeriod:
+ default: 30s
+ format: duration
+ type: string
+ collectorTargetReloadInterval:
+ default: 30s
+ format: duration
+ type: string
+ enabled:
+ type: boolean
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ filterStrategy:
+ default: relabel-config
+ enum:
+ - ""
+ - relabel-config
+ type: string
+ image:
+ type: string
+ nodeSelector:
+ additionalProperties:
+ type: string
+ type: object
+ observability:
+ properties:
+ metrics:
+ properties:
+ disablePrometheusAnnotations:
+ type: boolean
+ enableMetrics:
+ type: boolean
+ extraLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ type: object
+ podDisruptionBudget:
+ properties:
+ maxUnavailable:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ minAvailable:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ type: object
+ podSecurityContext:
+ properties:
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ fsGroup:
+ format: int64
+ type: integer
+ fsGroupChangePolicy:
+ type: string
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxChangePolicy:
+ type: string
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ supplementalGroups:
+ items:
+ format: int64
+ type: integer
+ type: array
+ x-kubernetes-list-type: atomic
+ supplementalGroupsPolicy:
+ type: string
+ sysctls:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ prometheusCR:
+ properties:
+ allowNamespaces:
+ items:
+ type: string
+ type: array
+ denyNamespaces:
+ items:
+ type: string
+ type: array
+ enabled:
+ type: boolean
+ evaluationInterval:
+ default: 30s
+ format: duration
+ type: string
+ podMonitorNamespaceSelector:
+ default: {}
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ podMonitorSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ probeNamespaceSelector:
+ default: {}
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ probeSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ scrapeClasses:
+ items:
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ x-kubernetes-preserve-unknown-fields: true
+ scrapeConfigNamespaceSelector:
+ default: {}
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ scrapeConfigSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ scrapeInterval:
+ default: 30s
+ format: duration
+ type: string
+ scrapeProtocols:
+ items:
+ type: string
+ type: array
+ serviceMonitorNamespaceSelector:
+ default: {}
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ serviceMonitorSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ replicas:
+ format: int32
+ type: integer
+ resources:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ securityContext:
+ properties:
+ allowPrivilegeEscalation:
+ type: boolean
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ capabilities:
+ properties:
+ add:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ drop:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ privileged:
+ type: boolean
+ procMount:
+ type: string
+ readOnlyRootFilesystem:
+ type: boolean
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ serviceAccount:
+ type: string
+ tolerations:
+ items:
+ properties:
+ effect:
+ type: string
+ key:
+ type: string
+ operator:
+ type: string
+ tolerationSeconds:
+ format: int64
+ type: integer
+ value:
+ type: string
+ type: object
+ type: array
+ topologySpreadConstraints:
+ items:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ maxSkew:
+ format: int32
+ type: integer
+ minDomains:
+ format: int32
+ type: integer
+ nodeAffinityPolicy:
+ type: string
+ nodeTaintsPolicy:
+ type: string
+ topologyKey:
+ type: string
+ whenUnsatisfiable:
+ type: string
+ required:
+ - maxSkew
+ - topologyKey
+ - whenUnsatisfiable
+ type: object
+ type: array
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ tolerations:
+ items:
+ properties:
+ effect:
+ type: string
+ key:
+ type: string
+ operator:
+ type: string
+ tolerationSeconds:
+ format: int64
+ type: integer
+ value:
+ type: string
+ type: object
+ type: array
+ topologySpreadConstraints:
+ items:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ maxSkew:
+ format: int32
+ type: integer
+ minDomains:
+ format: int32
+ type: integer
+ nodeAffinityPolicy:
+ type: string
+ nodeTaintsPolicy:
+ type: string
+ topologyKey:
+ type: string
+ whenUnsatisfiable:
+ type: string
+ required:
+ - maxSkew
+ - topologyKey
+ - whenUnsatisfiable
+ type: object
+ type: array
+ trafficDistribution:
+ type: string
+ upgradeStrategy:
+ enum:
+ - automatic
+ - none
+ type: string
+ volumeClaimTemplates:
+ items:
+ properties:
+ apiVersion:
+ type: string
+ kind:
+ type: string
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ accessModes:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ dataSource:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ x-kubernetes-map-type: atomic
+ dataSourceRef:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ resources:
+ properties:
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ selector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ storageClassName:
+ type: string
+ volumeAttributesClassName:
+ type: string
+ volumeMode:
+ type: string
+ volumeName:
+ type: string
+ type: object
+ status:
+ properties:
+ accessModes:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ allocatedResourceStatuses:
+ additionalProperties:
+ type: string
+ type: object
+ x-kubernetes-map-type: granular
+ allocatedResources:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ capacity:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ conditions:
+ items:
+ properties:
+ lastProbeTime:
+ format: date-time
+ type: string
+ lastTransitionTime:
+ format: date-time
+ type: string
+ message:
+ type: string
+ reason:
+ type: string
+ status:
+ type: string
+ type:
+ type: string
+ required:
+ - status
+ - type
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - type
+ x-kubernetes-list-type: map
+ currentVolumeAttributesClassName:
+ type: string
+ modifyVolumeStatus:
+ properties:
+ status:
+ type: string
+ targetVolumeAttributesClassName:
+ type: string
+ required:
+ - status
+ type: object
+ phase:
+ type: string
+ type: object
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ volumeMounts:
+ items:
+ properties:
+ mountPath:
+ type: string
+ mountPropagation:
+ type: string
+ name:
+ type: string
+ readOnly:
+ type: boolean
+ recursiveReadOnly:
+ type: string
+ subPath:
+ type: string
+ subPathExpr:
+ type: string
+ required:
+ - mountPath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ volumes:
+ items:
+ properties:
+ awsElasticBlockStore:
+ properties:
+ fsType:
+ type: string
+ partition:
+ format: int32
+ type: integer
+ readOnly:
+ type: boolean
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ azureDisk:
+ properties:
+ cachingMode:
+ type: string
+ diskName:
+ type: string
+ diskURI:
+ type: string
+ fsType:
+ default: ext4
+ type: string
+ kind:
+ type: string
+ readOnly:
+ default: false
+ type: boolean
+ required:
+ - diskName
+ - diskURI
+ type: object
+ azureFile:
+ properties:
+ readOnly:
+ type: boolean
+ secretName:
+ type: string
+ shareName:
+ type: string
+ required:
+ - secretName
+ - shareName
+ type: object
+ cephfs:
+ properties:
+ monitors:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ secretFile:
+ type: string
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ user:
+ type: string
+ required:
+ - monitors
+ type: object
+ cinder:
+ properties:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ configMap:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ csi:
+ properties:
+ driver:
+ type: string
+ fsType:
+ type: string
+ nodePublishSecretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ readOnly:
+ type: boolean
+ volumeAttributes:
+ additionalProperties:
+ type: string
+ type: object
+ required:
+ - driver
+ type: object
+ downwardAPI:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
+ items:
+ properties:
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ emptyDir:
+ properties:
+ medium:
+ type: string
+ sizeLimit:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ ephemeral:
+ properties:
+ volumeClaimTemplate:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ accessModes:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ dataSource:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ x-kubernetes-map-type: atomic
+ dataSourceRef:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ resources:
+ properties:
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ selector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ storageClassName:
+ type: string
+ volumeAttributesClassName:
+ type: string
+ volumeMode:
+ type: string
+ volumeName:
+ type: string
+ type: object
+ required:
+ - spec
+ type: object
+ type: object
+ fc:
+ properties:
+ fsType:
+ type: string
+ lun:
+ format: int32
+ type: integer
+ readOnly:
+ type: boolean
+ targetWWNs:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ wwids:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ flexVolume:
+ properties:
+ driver:
+ type: string
+ fsType:
+ type: string
+ options:
+ additionalProperties:
+ type: string
+ type: object
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - driver
+ type: object
+ flocker:
+ properties:
+ datasetName:
+ type: string
+ datasetUUID:
+ type: string
+ type: object
+ gcePersistentDisk:
+ properties:
+ fsType:
+ type: string
+ partition:
+ format: int32
+ type: integer
+ pdName:
+ type: string
+ readOnly:
+ type: boolean
+ required:
+ - pdName
+ type: object
+ gitRepo:
+ properties:
+ directory:
+ type: string
+ repository:
+ type: string
+ revision:
+ type: string
+ required:
+ - repository
+ type: object
+ glusterfs:
+ properties:
+ endpoints:
+ type: string
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ required:
+ - endpoints
+ - path
+ type: object
+ hostPath:
+ properties:
+ path:
+ type: string
+ type:
+ type: string
+ required:
+ - path
+ type: object
+ image:
+ properties:
+ pullPolicy:
+ type: string
+ reference:
+ type: string
+ type: object
+ iscsi:
+ properties:
+ chapAuthDiscovery:
+ type: boolean
+ chapAuthSession:
+ type: boolean
+ fsType:
+ type: string
+ initiatorName:
+ type: string
+ iqn:
+ type: string
+ iscsiInterface:
+ default: default
+ type: string
+ lun:
+ format: int32
+ type: integer
+ portals:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ targetPortal:
+ type: string
+ required:
+ - iqn
+ - lun
+ - targetPortal
+ type: object
+ name:
+ type: string
+ nfs:
+ properties:
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ server:
+ type: string
+ required:
+ - path
+ - server
+ type: object
+ persistentVolumeClaim:
+ properties:
+ claimName:
+ type: string
+ readOnly:
+ type: boolean
+ required:
+ - claimName
+ type: object
+ photonPersistentDisk:
+ properties:
+ fsType:
+ type: string
+ pdID:
+ type: string
+ required:
+ - pdID
+ type: object
+ portworxVolume:
+ properties:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ projected:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ sources:
+ items:
+ properties:
+ clusterTrustBundle:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ name:
+ type: string
+ optional:
+ type: boolean
+ path:
+ type: string
+ signerName:
+ type: string
+ required:
+ - path
+ type: object
+ configMap:
+ properties:
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ downwardAPI:
+ properties:
+ items:
+ items:
+ properties:
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ podCertificate:
+ properties:
+ certificateChainPath:
+ type: string
+ credentialBundlePath:
+ type: string
+ keyPath:
+ type: string
+ keyType:
+ type: string
+ maxExpirationSeconds:
+ format: int32
+ type: integer
+ signerName:
+ type: string
+ userAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ required:
+ - keyType
+ - signerName
+ type: object
+ secret:
+ properties:
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ serviceAccountToken:
+ properties:
+ audience:
+ type: string
+ expirationSeconds:
+ format: int64
+ type: integer
+ path:
+ type: string
+ required:
+ - path
+ type: object
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ quobyte:
+ properties:
+ group:
+ type: string
+ readOnly:
+ type: boolean
+ registry:
+ type: string
+ tenant:
+ type: string
+ user:
+ type: string
+ volume:
+ type: string
+ required:
+ - registry
+ - volume
+ type: object
+ rbd:
+ properties:
+ fsType:
+ type: string
+ image:
+ type: string
+ keyring:
+ default: /etc/ceph/keyring
+ type: string
+ monitors:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ pool:
+ default: rbd
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ user:
+ default: admin
+ type: string
+ required:
+ - image
+ - monitors
+ type: object
+ scaleIO:
+ properties:
+ fsType:
+ default: xfs
+ type: string
+ gateway:
+ type: string
+ protectionDomain:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ sslEnabled:
+ type: boolean
+ storageMode:
+ default: ThinProvisioned
+ type: string
+ storagePool:
+ type: string
+ system:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - gateway
+ - secretRef
+ - system
+ type: object
+ secret:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ optional:
+ type: boolean
+ secretName:
+ type: string
+ type: object
+ storageos:
+ properties:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ volumeName:
+ type: string
+ volumeNamespace:
+ type: string
+ type: object
+ vsphereVolume:
+ properties:
+ fsType:
+ type: string
+ storagePolicyID:
+ type: string
+ storagePolicyName:
+ type: string
+ volumePath:
+ type: string
+ required:
+ - volumePath
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - config
+ type: object
+ x-kubernetes-validations:
+ - message: the OpenTelemetry Collector mode is set to sidecar, which does
+ not support the attribute 'tolerations'
+ rule: '!(self.mode == ''sidecar'' && size(self.tolerations) > 0) ||
+ !has(self.tolerations)'
+ - message: the OpenTelemetry Collector mode is set to sidecar, which does
+ not support the attribute 'priorityClassName'
+ rule: '!(self.mode == ''sidecar'' && self.priorityClassName != '''')
+ || !has(self.priorityClassName)'
+ - message: the OpenTelemetry Collector mode is set to sidecar, which does
+ not support the attribute 'affinity'
+ rule: '!(self.mode == ''sidecar'' && self.affinity != null) || !has(self.affinity)'
+ - message: the OpenTelemetry Collector mode is set to sidecar, which does
+ not support the attribute 'additionalContainers'
+ rule: '!(self.mode == ''sidecar'' && size(self.additionalContainers)
+ > 0) || !has(self.additionalContainers)'
+ status:
+ properties:
+ image:
+ type: string
+ scale:
+ properties:
+ replicas:
+ format: int32
+ type: integer
+ selector:
+ type: string
+ statusReplicas:
+ type: string
+ type: object
+ version:
+ type: string
+ type: object
+ type: object
+ served: true
+ storage: true
+ subresources:
+ scale:
+ labelSelectorPath: .status.scale.selector
+ specReplicasPath: .spec.replicas
+ statusReplicasPath: .status.scale.replicas
+ status: {}
\ No newline at end of file
diff --git a/charts/appscode-otel-stack/crds/opentelemetry.io_targetallocators.yaml b/charts/appscode-otel-stack/crds/opentelemetry.io_targetallocators.yaml
new file mode 100644
index 00000000..6745c5e4
--- /dev/null
+++ b/charts/appscode-otel-stack/crds/opentelemetry.io_targetallocators.yaml
@@ -0,0 +1,3713 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.20.0
+ name: targetallocators.opentelemetry.io
+spec:
+ group: opentelemetry.io
+ names:
+ kind: TargetAllocator
+ listKind: TargetAllocatorList
+ plural: targetallocators
+ singular: targetallocator
+ scope: Namespaced
+ versions:
+ - additionalPrinterColumns:
+ - jsonPath: .metadata.creationTimestamp
+ name: Age
+ type: date
+ - jsonPath: .status.image
+ name: Image
+ type: string
+ - description: Management State
+ jsonPath: .spec.managementState
+ name: Management
+ type: string
+ name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ type: string
+ kind:
+ type: string
+ metadata:
+ type: object
+ spec:
+ properties:
+ additionalContainers:
+ items:
+ properties:
+ args:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ envFrom:
+ items:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ prefix:
+ type: string
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ image:
+ type: string
+ imagePullPolicy:
+ type: string
+ lifecycle:
+ properties:
+ postStart:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ preStop:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ stopSignal:
+ type: string
+ type: object
+ livenessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ name:
+ type: string
+ ports:
+ items:
+ properties:
+ containerPort:
+ format: int32
+ type: integer
+ hostIP:
+ type: string
+ hostPort:
+ format: int32
+ type: integer
+ name:
+ type: string
+ protocol:
+ default: TCP
+ type: string
+ required:
+ - containerPort
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - containerPort
+ - protocol
+ x-kubernetes-list-type: map
+ readinessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ resizePolicy:
+ items:
+ properties:
+ resourceName:
+ type: string
+ restartPolicy:
+ type: string
+ required:
+ - resourceName
+ - restartPolicy
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ resources:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ restartPolicy:
+ type: string
+ restartPolicyRules:
+ items:
+ properties:
+ action:
+ type: string
+ exitCodes:
+ properties:
+ operator:
+ type: string
+ values:
+ items:
+ format: int32
+ type: integer
+ type: array
+ x-kubernetes-list-type: set
+ required:
+ - operator
+ type: object
+ required:
+ - action
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ securityContext:
+ properties:
+ allowPrivilegeEscalation:
+ type: boolean
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ capabilities:
+ properties:
+ add:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ drop:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ privileged:
+ type: boolean
+ procMount:
+ type: string
+ readOnlyRootFilesystem:
+ type: boolean
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ startupProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ stdin:
+ type: boolean
+ stdinOnce:
+ type: boolean
+ terminationMessagePath:
+ type: string
+ terminationMessagePolicy:
+ type: string
+ tty:
+ type: boolean
+ volumeDevices:
+ items:
+ properties:
+ devicePath:
+ type: string
+ name:
+ type: string
+ required:
+ - devicePath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - devicePath
+ x-kubernetes-list-type: map
+ volumeMounts:
+ items:
+ properties:
+ mountPath:
+ type: string
+ mountPropagation:
+ type: string
+ name:
+ type: string
+ readOnly:
+ type: boolean
+ recursiveReadOnly:
+ type: string
+ subPath:
+ type: string
+ subPathExpr:
+ type: string
+ required:
+ - mountPath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - mountPath
+ x-kubernetes-list-type: map
+ workingDir:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ affinity:
+ properties:
+ nodeAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ preference:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchFields:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ x-kubernetes-map-type: atomic
+ weight:
+ format: int32
+ type: integer
+ required:
+ - preference
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ properties:
+ nodeSelectorTerms:
+ items:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchFields:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ x-kubernetes-map-type: atomic
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - nodeSelectorTerms
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ podAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ podAffinityTerm:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ weight:
+ format: int32
+ type: integer
+ required:
+ - podAffinityTerm
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ podAntiAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ podAffinityTerm:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ weight:
+ format: int32
+ type: integer
+ required:
+ - podAffinityTerm
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ type: object
+ allocationStrategy:
+ default: consistent-hashing
+ enum:
+ - least-weighted
+ - consistent-hashing
+ - per-node
+ type: string
+ args:
+ additionalProperties:
+ type: string
+ type: object
+ collectorNotReadyGracePeriod:
+ default: 30s
+ format: duration
+ type: string
+ dnsPolicy:
+ type: string
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ envFrom:
+ items:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ prefix:
+ type: string
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ type: array
+ filterStrategy:
+ default: relabel-config
+ enum:
+ - ""
+ - relabel-config
+ type: string
+ global:
+ type: object
+ hostNetwork:
+ type: boolean
+ hostPID:
+ type: boolean
+ image:
+ type: string
+ imagePullPolicy:
+ type: string
+ initContainers:
+ items:
+ properties:
+ args:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ envFrom:
+ items:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ prefix:
+ type: string
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ image:
+ type: string
+ imagePullPolicy:
+ type: string
+ lifecycle:
+ properties:
+ postStart:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ preStop:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ stopSignal:
+ type: string
+ type: object
+ livenessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ name:
+ type: string
+ ports:
+ items:
+ properties:
+ containerPort:
+ format: int32
+ type: integer
+ hostIP:
+ type: string
+ hostPort:
+ format: int32
+ type: integer
+ name:
+ type: string
+ protocol:
+ default: TCP
+ type: string
+ required:
+ - containerPort
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - containerPort
+ - protocol
+ x-kubernetes-list-type: map
+ readinessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ resizePolicy:
+ items:
+ properties:
+ resourceName:
+ type: string
+ restartPolicy:
+ type: string
+ required:
+ - resourceName
+ - restartPolicy
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ resources:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ restartPolicy:
+ type: string
+ restartPolicyRules:
+ items:
+ properties:
+ action:
+ type: string
+ exitCodes:
+ properties:
+ operator:
+ type: string
+ values:
+ items:
+ format: int32
+ type: integer
+ type: array
+ x-kubernetes-list-type: set
+ required:
+ - operator
+ type: object
+ required:
+ - action
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ securityContext:
+ properties:
+ allowPrivilegeEscalation:
+ type: boolean
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ capabilities:
+ properties:
+ add:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ drop:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ privileged:
+ type: boolean
+ procMount:
+ type: string
+ readOnlyRootFilesystem:
+ type: boolean
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ startupProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ stdin:
+ type: boolean
+ stdinOnce:
+ type: boolean
+ terminationMessagePath:
+ type: string
+ terminationMessagePolicy:
+ type: string
+ tty:
+ type: boolean
+ volumeDevices:
+ items:
+ properties:
+ devicePath:
+ type: string
+ name:
+ type: string
+ required:
+ - devicePath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - devicePath
+ x-kubernetes-list-type: map
+ volumeMounts:
+ items:
+ properties:
+ mountPath:
+ type: string
+ mountPropagation:
+ type: string
+ name:
+ type: string
+ readOnly:
+ type: boolean
+ recursiveReadOnly:
+ type: string
+ subPath:
+ type: string
+ subPathExpr:
+ type: string
+ required:
+ - mountPath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - mountPath
+ x-kubernetes-list-type: map
+ workingDir:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ ipFamilies:
+ items:
+ type: string
+ type: array
+ ipFamilyPolicy:
+ default: SingleStack
+ type: string
+ lifecycle:
+ properties:
+ postStart:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ preStop:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ stopSignal:
+ type: string
+ type: object
+ livenessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ managementState:
+ default: managed
+ enum:
+ - managed
+ - unmanaged
+ type: string
+ networkPolicy:
+ properties:
+ enabled:
+ type: boolean
+ type: object
+ nodeSelector:
+ additionalProperties:
+ type: string
+ type: object
+ observability:
+ properties:
+ metrics:
+ properties:
+ disablePrometheusAnnotations:
+ type: boolean
+ enableMetrics:
+ type: boolean
+ extraLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ type: object
+ podAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ podDisruptionBudget:
+ properties:
+ maxUnavailable:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ minAvailable:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ type: object
+ podDnsConfig:
+ properties:
+ nameservers:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ options:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ searches:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ podSecurityContext:
+ properties:
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ fsGroup:
+ format: int64
+ type: integer
+ fsGroupChangePolicy:
+ type: string
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxChangePolicy:
+ type: string
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ supplementalGroups:
+ items:
+ format: int64
+ type: integer
+ type: array
+ x-kubernetes-list-type: atomic
+ supplementalGroupsPolicy:
+ type: string
+ sysctls:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ ports:
+ items:
+ properties:
+ appProtocol:
+ type: string
+ hostPort:
+ format: int32
+ maximum: 65535
+ minimum: 0
+ type: integer
+ name:
+ type: string
+ nodePort:
+ format: int32
+ type: integer
+ port:
+ format: int32
+ type: integer
+ protocol:
+ default: TCP
+ type: string
+ targetPort:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ priorityClassName:
+ type: string
+ prometheusCR:
+ properties:
+ allowNamespaces:
+ items:
+ type: string
+ type: array
+ denyNamespaces:
+ items:
+ type: string
+ type: array
+ enabled:
+ type: boolean
+ podMonitorSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ probeSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ scrapeClasses:
+ items:
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ x-kubernetes-preserve-unknown-fields: true
+ scrapeConfigSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ scrapeInterval:
+ default: 30s
+ format: duration
+ type: string
+ serviceMonitorSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ readinessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ replicas:
+ default: 1
+ format: int32
+ type: integer
+ resources:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ scrapeConfigs:
+ items:
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ x-kubernetes-preserve-unknown-fields: true
+ securityContext:
+ properties:
+ allowPrivilegeEscalation:
+ type: boolean
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ capabilities:
+ properties:
+ add:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ drop:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ privileged:
+ type: boolean
+ procMount:
+ type: string
+ readOnlyRootFilesystem:
+ type: boolean
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ serviceAccount:
+ type: string
+ shareProcessNamespace:
+ type: boolean
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ tolerations:
+ items:
+ properties:
+ effect:
+ type: string
+ key:
+ type: string
+ operator:
+ type: string
+ tolerationSeconds:
+ format: int64
+ type: integer
+ value:
+ type: string
+ type: object
+ type: array
+ topologySpreadConstraints:
+ items:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ maxSkew:
+ format: int32
+ type: integer
+ minDomains:
+ format: int32
+ type: integer
+ nodeAffinityPolicy:
+ type: string
+ nodeTaintsPolicy:
+ type: string
+ topologyKey:
+ type: string
+ whenUnsatisfiable:
+ type: string
+ required:
+ - maxSkew
+ - topologyKey
+ - whenUnsatisfiable
+ type: object
+ type: array
+ trafficDistribution:
+ type: string
+ volumeMounts:
+ items:
+ properties:
+ mountPath:
+ type: string
+ mountPropagation:
+ type: string
+ name:
+ type: string
+ readOnly:
+ type: boolean
+ recursiveReadOnly:
+ type: string
+ subPath:
+ type: string
+ subPathExpr:
+ type: string
+ required:
+ - mountPath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ volumes:
+ items:
+ properties:
+ awsElasticBlockStore:
+ properties:
+ fsType:
+ type: string
+ partition:
+ format: int32
+ type: integer
+ readOnly:
+ type: boolean
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ azureDisk:
+ properties:
+ cachingMode:
+ type: string
+ diskName:
+ type: string
+ diskURI:
+ type: string
+ fsType:
+ default: ext4
+ type: string
+ kind:
+ type: string
+ readOnly:
+ default: false
+ type: boolean
+ required:
+ - diskName
+ - diskURI
+ type: object
+ azureFile:
+ properties:
+ readOnly:
+ type: boolean
+ secretName:
+ type: string
+ shareName:
+ type: string
+ required:
+ - secretName
+ - shareName
+ type: object
+ cephfs:
+ properties:
+ monitors:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ secretFile:
+ type: string
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ user:
+ type: string
+ required:
+ - monitors
+ type: object
+ cinder:
+ properties:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ configMap:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ csi:
+ properties:
+ driver:
+ type: string
+ fsType:
+ type: string
+ nodePublishSecretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ readOnly:
+ type: boolean
+ volumeAttributes:
+ additionalProperties:
+ type: string
+ type: object
+ required:
+ - driver
+ type: object
+ downwardAPI:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
+ items:
+ properties:
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ emptyDir:
+ properties:
+ medium:
+ type: string
+ sizeLimit:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ ephemeral:
+ properties:
+ volumeClaimTemplate:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ accessModes:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ dataSource:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ x-kubernetes-map-type: atomic
+ dataSourceRef:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ resources:
+ properties:
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ selector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ storageClassName:
+ type: string
+ volumeAttributesClassName:
+ type: string
+ volumeMode:
+ type: string
+ volumeName:
+ type: string
+ type: object
+ required:
+ - spec
+ type: object
+ type: object
+ fc:
+ properties:
+ fsType:
+ type: string
+ lun:
+ format: int32
+ type: integer
+ readOnly:
+ type: boolean
+ targetWWNs:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ wwids:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ flexVolume:
+ properties:
+ driver:
+ type: string
+ fsType:
+ type: string
+ options:
+ additionalProperties:
+ type: string
+ type: object
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - driver
+ type: object
+ flocker:
+ properties:
+ datasetName:
+ type: string
+ datasetUUID:
+ type: string
+ type: object
+ gcePersistentDisk:
+ properties:
+ fsType:
+ type: string
+ partition:
+ format: int32
+ type: integer
+ pdName:
+ type: string
+ readOnly:
+ type: boolean
+ required:
+ - pdName
+ type: object
+ gitRepo:
+ properties:
+ directory:
+ type: string
+ repository:
+ type: string
+ revision:
+ type: string
+ required:
+ - repository
+ type: object
+ glusterfs:
+ properties:
+ endpoints:
+ type: string
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ required:
+ - endpoints
+ - path
+ type: object
+ hostPath:
+ properties:
+ path:
+ type: string
+ type:
+ type: string
+ required:
+ - path
+ type: object
+ image:
+ properties:
+ pullPolicy:
+ type: string
+ reference:
+ type: string
+ type: object
+ iscsi:
+ properties:
+ chapAuthDiscovery:
+ type: boolean
+ chapAuthSession:
+ type: boolean
+ fsType:
+ type: string
+ initiatorName:
+ type: string
+ iqn:
+ type: string
+ iscsiInterface:
+ default: default
+ type: string
+ lun:
+ format: int32
+ type: integer
+ portals:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ targetPortal:
+ type: string
+ required:
+ - iqn
+ - lun
+ - targetPortal
+ type: object
+ name:
+ type: string
+ nfs:
+ properties:
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ server:
+ type: string
+ required:
+ - path
+ - server
+ type: object
+ persistentVolumeClaim:
+ properties:
+ claimName:
+ type: string
+ readOnly:
+ type: boolean
+ required:
+ - claimName
+ type: object
+ photonPersistentDisk:
+ properties:
+ fsType:
+ type: string
+ pdID:
+ type: string
+ required:
+ - pdID
+ type: object
+ portworxVolume:
+ properties:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ projected:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ sources:
+ items:
+ properties:
+ clusterTrustBundle:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ name:
+ type: string
+ optional:
+ type: boolean
+ path:
+ type: string
+ signerName:
+ type: string
+ required:
+ - path
+ type: object
+ configMap:
+ properties:
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ downwardAPI:
+ properties:
+ items:
+ items:
+ properties:
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ podCertificate:
+ properties:
+ certificateChainPath:
+ type: string
+ credentialBundlePath:
+ type: string
+ keyPath:
+ type: string
+ keyType:
+ type: string
+ maxExpirationSeconds:
+ format: int32
+ type: integer
+ signerName:
+ type: string
+ required:
+ - keyType
+ - signerName
+ type: object
+ secret:
+ properties:
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ serviceAccountToken:
+ properties:
+ audience:
+ type: string
+ expirationSeconds:
+ format: int64
+ type: integer
+ path:
+ type: string
+ required:
+ - path
+ type: object
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ quobyte:
+ properties:
+ group:
+ type: string
+ readOnly:
+ type: boolean
+ registry:
+ type: string
+ tenant:
+ type: string
+ user:
+ type: string
+ volume:
+ type: string
+ required:
+ - registry
+ - volume
+ type: object
+ rbd:
+ properties:
+ fsType:
+ type: string
+ image:
+ type: string
+ keyring:
+ default: /etc/ceph/keyring
+ type: string
+ monitors:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ pool:
+ default: rbd
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ user:
+ default: admin
+ type: string
+ required:
+ - image
+ - monitors
+ type: object
+ scaleIO:
+ properties:
+ fsType:
+ default: xfs
+ type: string
+ gateway:
+ type: string
+ protectionDomain:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ sslEnabled:
+ type: boolean
+ storageMode:
+ default: ThinProvisioned
+ type: string
+ storagePool:
+ type: string
+ system:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - gateway
+ - secretRef
+ - system
+ type: object
+ secret:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ optional:
+ type: boolean
+ secretName:
+ type: string
+ type: object
+ storageos:
+ properties:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ volumeName:
+ type: string
+ volumeNamespace:
+ type: string
+ type: object
+ vsphereVolume:
+ properties:
+ fsType:
+ type: string
+ storagePolicyID:
+ type: string
+ storagePolicyName:
+ type: string
+ volumePath:
+ type: string
+ required:
+ - volumePath
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ status:
+ properties:
+ image:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ served: true
+ storage: true
+ subresources:
+ status: {}
diff --git a/charts/appscode-otel-stack/templates/operator-rbac.yaml b/charts/appscode-otel-stack/templates/operator-rbac.yaml
new file mode 100644
index 00000000..b82c9132
--- /dev/null
+++ b/charts/appscode-otel-stack/templates/operator-rbac.yaml
@@ -0,0 +1,40 @@
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ name: opentelemetry-operator-httproute
+rules:
+ - apiGroups:
+ - gateway.networking.k8s.io
+ resources:
+ - httproutes
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - coordination.k8s.io
+ resources:
+ - leases
+ verbs:
+ - get
+ - list
+ - watch
+ - create
+ - update
+ - patch
+ - delete
+
+---
+
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ name: opentelemetry-operator-httproute
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: opentelemetry-operator-httproute
+subjects:
+ - kind: ServiceAccount
+ name: opentelemetry-operator
+ namespace: monitoring
\ No newline at end of file
diff --git a/charts/appscode-otel-stack/templates/target-allocator-rbac.yaml b/charts/appscode-otel-stack/templates/target-allocator-rbac.yaml
new file mode 100644
index 00000000..c42a88e9
--- /dev/null
+++ b/charts/appscode-otel-stack/templates/target-allocator-rbac.yaml
@@ -0,0 +1,73 @@
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ name: targetallocator
+rules:
+ - apiGroups: [""]
+ resources:
+ - nodes
+ - nodes/metrics
+ - services
+ - endpoints
+ - pods
+ verbs: ["get", "list", "watch"]
+ - apiGroups: [""]
+ resources:
+ - configmaps
+ verbs: ["get"]
+ - apiGroups:
+ - discovery.k8s.io
+ resources:
+ - endpointslices
+ verbs: ["get", "list", "watch"]
+ - apiGroups:
+ - networking.k8s.io
+ resources:
+ - ingresses
+ verbs: ["get", "list", "watch"]
+ - nonResourceURLs: ["/metrics"]
+ verbs: ["get"]
+ - apiGroups:
+ - monitoring.coreos.com
+ resources:
+ - servicemonitors
+ - podmonitors
+ verbs:
+ - '*'
+ - apiGroups: [""]
+ resources:
+ - namespaces
+ verbs: ["get", "list", "watch"]
+ - apiGroups:
+ - cert-manager.io
+ resources:
+ - issuers
+ - certificaterequests
+ - certificates
+ verbs:
+ - create
+ - get
+ - list
+ - watch
+ - update
+ - patch
+ - delete
+---
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: targetallocator
+ namespace: monitoring
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ name: targetallocator
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: targetallocator
+subjects:
+ - kind: ServiceAccount
+ name: targetallocator
+ namespace: monitoring
diff --git a/charts/appscode-otel-stack/values.yaml b/charts/appscode-otel-stack/values.yaml
index cdaf5624..a009c6d8 100644
--- a/charts/appscode-otel-stack/values.yaml
+++ b/charts/appscode-otel-stack/values.yaml
@@ -1,15 +1,34 @@
----
-# Default values for appscode-otel-stack.
-# This is a YAML-formatted file.
-# Declare variables to be passed into your templates.
-
-# This is to override the chart name.
-nameOverride: ''
-fullnameOverride: ''
opentelemetry-kube-stack:
- clusterName: "spoke-2"
+ crds:
+ installOtel: false
+
+ clusterName: ace
+
+ opentelemetry-operator:
+ admissionWebhooks:
+ certManager:
+ enabled: false
+ manager:
+ image:
+ repository: ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator
+ tag: "0.150.0"
+ imagePullPolicy: IfNotPresent
+ featureGatesMap:
+ operator.targetallocator.mtls: true
+ createRbacPermissions: true
+ admissionWebhooks:
+ autoGenerateCert:
+ enabled: true
+
collectors:
daemon:
+ resources:
+ limits:
+ cpu: 500m
+ memory: 2Gi
+ requests:
+ cpu: 200m
+ memory: 1Gi
env:
- name: K8S_NODE_NAME
valueFrom:
@@ -27,9 +46,9 @@ opentelemetry-kube-stack:
allocationStrategy: per-node
prometheusCR:
enabled: true
- podMonitorSelector: { }
+ podMonitorSelector: {}
scrapeInterval: "30s"
- serviceMonitorSelector: { }
+ serviceMonitorSelector: {}
config:
receivers:
k8sobjects:
@@ -38,12 +57,43 @@ opentelemetry-kube-stack:
- name: namespaces
exporters:
otlp:
- endpoint: opentelemetry-kube-stack-gateway-collector.monitoring.svc.cluster.local:4317
+ endpoint: appscode-otel-stack-gateway-collector.monitoring.svc.cluster.local:4317
tls:
insecure: true
debug:
verbosity: detailed
processors:
+ transform/promote_pod:
+ error_mode: ignore
+ metric_statements:
+ - context: resource
+ statements:
+ - set(attributes["k8s.pod.name"], attributes["pod"]) where attributes["pod"] != nil and attributes["pod"] != ""
+ - set(attributes["k8s.namespace.name"], attributes["namespace"]) where
+ attributes["namespace"] != nil and attributes["namespace"] != "" and
+ attributes["pod"] != nil and attributes["pod"] != ""
+ transform/restore_labels:
+ error_mode: ignore
+ metric_statements:
+ - context: datapoint
+ statements:
+ - set(attributes["namespace"], resource.attributes["namespace"]) where
+ resource.attributes["namespace"] != nil and resource.attributes["namespace"] != ""
+ - set(attributes["pod"], resource.attributes["pod"]) where resource.attributes["pod"]
+ != nil and resource.attributes["pod"] != ""
+ groupbyattrs/split_kubelet:
+ keys:
+ - namespace
+ - pod
+ attributes/node:
+ actions:
+ - key: node
+ value: "${K8S_NODE_NAME}"
+ action: upsert
+ memory_limiter:
+ check_interval: 1s
+ limit_percentage: 75
+ spike_limit_percentage: 15
k8sattributes:
extract:
metadata:
@@ -52,20 +102,24 @@ opentelemetry-kube-stack:
- tag_name: ace.client
key: ace.appscode.com/client-org
from: namespace
+ batch:
+ send_batch_size: 512
+ send_batch_max_size: 1024
+ timeout: 20s
service:
pipelines:
metrics:
- receivers: [ prometheus ]
- processors: [ k8sattributes ]
- exporters: [ otlp ]
+ receivers: [prometheus]
+ processors: [memory_limiter, groupbyattrs/split_kubelet, transform/promote_pod, k8sattributes, transform/restore_labels, attributes/node, batch]
+ exporters: [otlp]
traces:
- receivers: [ otlp ]
- processors: [ k8sattributes ]
- exporters: [ otlp ]
+ receivers: [otlp]
+ processors: [memory_limiter, k8sattributes]
+ exporters: [otlp]
logs:
- receivers: [ filelog ]
- processors: [ k8sattributes ]
- exporters: [ otlp ]
+ receivers: [filelog]
+ processors: [memory_limiter, k8sattributes]
+ exporters: [otlp]
presets:
logsCollection:
enabled: true
@@ -77,6 +131,17 @@ opentelemetry-kube-stack:
enabled: true
cluster:
+ hostAliases:
+ - ip: "10.2.0.187"
+ hostnames:
+ - "prom-label-proxy.monitoring.svc.cluster.local"
+ resources:
+ limits:
+ cpu: 500m
+ memory: 1Gi
+ requests:
+ cpu: 200m
+ memory: 512Mi
suffix: gateway
enabled: true
volumeMounts:
@@ -90,8 +155,8 @@ opentelemetry-kube-stack:
labels:
otel-collector-type: deployment
image:
- repository: rokibulhasan114/opentelemetry-collector-ace
- tag: v0.1.0
+ repository: ghcr.io/opnpulse/opentelemetry-collector-ace
+ tag: v0.0.1
pullPolicy: Always
presets:
clusterMetrics:
@@ -103,6 +168,7 @@ opentelemetry-kube-stack:
grpc:
endpoint: 0.0.0.0:4317
include_metadata: true
+ max_recv_msg_size_mib: 32
http:
endpoint: 0.0.0.0:4318
include_metadata: true
@@ -113,6 +179,10 @@ opentelemetry-kube-stack:
key: THANOS-TENANT
from_context: tenant-id
processors:
+ memory_limiter:
+ check_interval: 1s
+ limit_percentage: 75
+ spike_limit_percentage: 20
k8sattributes:
extract:
metadata:
@@ -124,10 +194,10 @@ opentelemetry-kube-stack:
attributes/example:
actions:
- key: cluster
- value: "spoke-2"
+ value: "ace"
action: upsert
groupbyattrs:
- keys: [ source_id ]
+ keys: [source_id]
transform/tenant:
error_mode: ignore
metric_statements:
@@ -142,8 +212,8 @@ opentelemetry-kube-stack:
- set(resource.attributes["tenant"], "default")
- set(resource.attributes["tenant"], resource.attributes["k8s.namespace.name"])
where resource.attributes["ace.client"] == "true"
- groupbyattrs/tenant:
- keys: [ tenant ]
+ # groupbyattrs/tenant:
+ # keys: [tenant]
context/tenant:
actions:
- action: upsert
@@ -151,16 +221,17 @@ opentelemetry-kube-stack:
value: anonymous
from_attribute: tenant
batch/tenant:
- send_batch_size: 1000
- send_batch_max_size: 2000
- timeout: 1s
+ send_batch_size: 256
+ send_batch_max_size: 512
metadata_keys:
- tenant-id
exporters:
debug:
verbosity: detailed
prometheusremotewrite:
- endpoint: "https://10.2.0.187/api/v1/receive"
+ # endpoint: "https://10.2.0.187:8443/api/v1/receive"
+ endpoint: "https://prom-label-proxy.monitoring.svc.cluster.local:10001/api/v1/receive"
+ timeout: 30s
auth:
authenticator: headers_setter
target_info:
@@ -170,8 +241,17 @@ opentelemetry-kube-stack:
cert_file: /etc/certs/tls.crt
key_file: /etc/certs/tls.key
insecure_skip_verify: false
+ retry_on_failure:
+ enabled: true
+ initial_interval: 5s
+ max_interval: 30s
+ max_elapsed_time: 120s
+ remote_write_queue:
+ queue_size: 200
+ num_consumers: 5
clickhouse:
- endpoint: "https:///10.2.0.187/?database=default&secure=true"
+ # endpoint: "https://10.2.0.187:8443/?database=default&secure=true"
+ endpoint: "https://prom-label-proxy.monitoring.svc.cluster.local:10001/?database=default&secure=true"
username: "ace"
password: "QEFNeAa7hUGjJjVY"
database: "default"
@@ -184,30 +264,33 @@ opentelemetry-kube-stack:
logs_table_name: otel_logs
timeout: 10s
sending_queue:
- queue_size: 10000
+ queue_size: 200
retry_on_failure:
enabled: true
initial_interval: 5s
max_interval: 30s
- max_elapsed_time: 300s
+ max_elapsed_time: 120s
otlp:
- endpoint: opentelemetry-kube-stack-gateway-collector.monitoring.svc.cluster.local:4317
+ endpoint: appscode-otel-stack-gateway-collector.monitoring.svc.cluster.local:4317
tls:
insecure: true
service:
- extensions: [ headers_setter ]
+ extensions: [headers_setter]
pipelines:
logs:
- receivers: [ otlp ]
- exporters: [ clickhouse ]
+ processors: [memory_limiter]
+ receivers: [otlp]
+ exporters: [clickhouse]
metrics:
- receivers: [ otlp ]
- processors: [ attributes/example, groupbyattrs, transform/tenant, groupbyattrs/tenant, context/tenant, batch/tenant ]
- exporters: [ prometheusremotewrite ]
+ receivers: [otlp]
+ # processors: [attributes/example, groupbyattrs, transform/tenant, groupbyattrs/tenant, context/tenant, batch/tenant]
+ processors: [memory_limiter, attributes/example, transform/tenant, context/tenant, batch/tenant]
+ exporters: [prometheusremotewrite]
traces:
- receivers: [ otlp ]
- processors: [ k8sattributes, attributes/example, groupbyattrs, transform/tenant, groupbyattrs/tenant, context/tenant, batch/tenant ]
- exporters: [ clickhouse ]
+ receivers: [otlp]
+ # processors: [k8sattributes, attributes/example, groupbyattrs, transform/tenant, groupbyattrs/tenant, context/tenant, batch/tenant]
+ processors: [memory_limiter, attributes/example, transform/tenant, context/tenant, batch/tenant]
+ exporters: [clickhouse]
instrumentation:
enabled: false
diff --git a/charts/opentelemetry-kube-stack/.helmignore b/charts/opentelemetry-kube-stack/.helmignore
new file mode 100644
index 00000000..7f691e5e
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/.helmignore
@@ -0,0 +1,24 @@
+# Patterns to ignore when building packages.
+# This supports shell glob matching, relative path matching, and
+# negation (prefixed with !). Only one pattern per line.
+.DS_Store
+# Common VCS dirs
+.git/
+.gitignore
+.bzr/
+.bzrignore
+.hg/
+.hgignore
+.svn/
+# Common backup files
+*.swp
+*.bak
+*.tmp
+*.orig
+*~
+# Various IDEs
+.project
+.idea/
+*.tmproj
+.vscode/
+examples/
diff --git a/charts/opentelemetry-kube-stack/Chart.lock b/charts/opentelemetry-kube-stack/Chart.lock
new file mode 100644
index 00000000..60203de9
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/Chart.lock
@@ -0,0 +1,18 @@
+dependencies:
+- name: otel-crds
+ repository: ""
+ version: 0.0.0
+- name: prometheus-crds
+ repository: ""
+ version: 0.0.0
+- name: opentelemetry-operator
+ repository: https://open-telemetry.github.io/opentelemetry-helm-charts
+ version: 0.105.1
+- name: kube-state-metrics
+ repository: https://prometheus-community.github.io/helm-charts
+ version: 6.3.0
+- name: prometheus-node-exporter
+ repository: https://prometheus-community.github.io/helm-charts
+ version: 4.48.0
+digest: sha256:2ec77416b3a4f1ed3c0cd19512e929b8911fc64e31f5fb909fc50ac61e9c8256
+generated: "2026-02-12T15:44:34.531542519+11:00"
diff --git a/charts/opentelemetry-kube-stack/Chart.yaml b/charts/opentelemetry-kube-stack/Chart.yaml
new file mode 100644
index 00000000..09f5bfe1
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/Chart.yaml
@@ -0,0 +1,38 @@
+apiVersion: v2
+name: opentelemetry-kube-stack
+version: 0.14.12
+description: |
+ OpenTelemetry Quickstart chart for Kubernetes.
+ Installs an operator and collector for an easy way to get started with Kubernetes observability.
+type: application
+home: https://opentelemetry.io/
+sources:
+ - https://github.com/open-telemetry/opentelemetry-operator
+maintainers:
+ - name: Allex1
+ - name: dmitryax
+ - name: jaronoff97
+ - name: TylerHelmuth
+icon: https://raw.githubusercontent.com/cncf/artwork/a718fa97fffec1b9fd14147682e9e3ac0c8817cb/projects/opentelemetry/icon/color/opentelemetry-icon-color.png
+# the appVersion stays aligned with the operator's latest version. If the collector has a patch
+# release, the collector's latest patch will be manually overridden.
+appVersion: 0.144.0
+dependencies:
+ - name: otel-crds
+ version: "0.0.0"
+ condition: crds.install,crds.installOtel
+ - name: prometheus-crds
+ version: "0.0.0"
+ condition: crds.install,crds.installPrometheus
+ - name: opentelemetry-operator
+ repository: https://open-telemetry.github.io/opentelemetry-helm-charts
+ version: 0.105.1
+ condition: opentelemetry-operator.enabled
+ - name: kube-state-metrics
+ version: "6.3.*"
+ repository: https://prometheus-community.github.io/helm-charts
+ condition: kubeStateMetrics.enabled
+ - name: prometheus-node-exporter
+ version: "4.48.*"
+ repository: https://prometheus-community.github.io/helm-charts
+ condition: nodeExporter.enabled
diff --git a/charts/opentelemetry-kube-stack/README.md b/charts/opentelemetry-kube-stack/README.md
new file mode 100644
index 00000000..eb80f854
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/README.md
@@ -0,0 +1,426 @@
+# OpenTelemetry Stack
+
+[OpenTelemetry Stack](https://github.com/ops-center) - OpenTelemetry Stack
+
+## TL;DR;
+
+```bash
+$ helm repo add appscode https://charts.appscode.com/stable/
+$ helm repo update
+$ helm search repo appscode/opentelemetry-kube-stack --version=0.14.12
+$ helm upgrade -i opentelemetry-kube-stack appscode/opentelemetry-kube-stack -n monitoring --create-namespace --version=0.14.12
+```
+
+## Introduction
+
+This chart deploys OpenTelemetry Stack on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager.
+
+## Prerequisites
+
+- Kubernetes 1.25+
+
+## Installing the Chart
+
+To install/upgrade the chart with the release name `opentelemetry-kube-stack`:
+
+```bash
+$ helm upgrade -i opentelemetry-kube-stack appscode/opentelemetry-kube-stack -n monitoring --create-namespace --version=0.14.12
+```
+
+The command deploys OpenTelemetry Stack on the Kubernetes cluster in the default configuration. The [configuration](#configuration) section lists the parameters that can be configured during installation.
+
+> **Tip**: List all releases using `helm list`
+
+## Uninstalling the Chart
+
+To uninstall the `opentelemetry-kube-stack`:
+
+```bash
+$ helm uninstall opentelemetry-kube-stack -n monitoring
+```
+
+The command removes all the Kubernetes components associated with the chart and deletes the release.
+
+## Configuration
+
+The following table lists the configurable parameters of the `opentelemetry-kube-stack` chart and their default values.
+
+| Parameter | Description | Default |
+|-----------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------|
+| fullnameOverride | Top level field indicating an override for fullname | "" |
+| namespaceOverride | Top level field indicating an override for the namespace | "" |
+| clusterName | Top level field specifying the name of the Kubernetes cluster. When using a Managed Kubernetes Service, it's recommended to use the cluster name assigned by the service for better integration. | "unknown_k8s_cluster" |
+| extraEnvs | Extra environment variables to add to each collector, bridge and instrumentation | [] |
+| cleanupJob.enabled | It is recommended to always keep this enabled so that running helm uninstall works properly. For non-helm installations i.e. ones created via helm template, it may make sense to disable this. For those installations, ensure that uninstallation for the operator happens _after_ the deletion of the CRs. | true |
+| cleanupJob.image.repository | | rancher/kubectl |
+| cleanupJob.image.tag | | v1.34.1 |
+| cleanupJob.image.digest | When digest is set to a non-empty value, images will be pulled by digest (regardless of tag value). | "" |
+| cleanupJob.existingServiceAccount | To use the existingServiceAccount | "" |
+| crds.installOtel | Control whether the opentelemetry.io CRDS should be installed. | true |
+| crds.installPrometheus | Control whether the monitoring.coreos CRDS should be installed. | true |
+| opentelemetry-operator.enabled | Field indicating whether the operator is enabled or not | true |
+| opentelemetry-operator.manager.collectorImage.repository | | otel/opentelemetry-collector-k8s |
+| opentelemetry-operator.admissionWebhooks.failurePolicy | Policy for handling failures Setting this allows for an installation of the otel operator at the same time as the custom resources it manages. | "Ignore" |
+| opentelemetry-operator.crds.create | | false |
+| defaultCRConfig.enabled | | true |
+| defaultCRConfig.suffix | Suffix for the collector pool, by default the release name is prepended | "collector" |
+| defaultCRConfig.fullnameOverride | fullnameOverride allows overriding the collector's name | "" |
+| defaultCRConfig.annotations | Annotations for the collector | {} |
+| defaultCRConfig.labels | Labels for the collector | {} |
+| defaultCRConfig.scrape_configs_file | scrape_configs_file allows the user to load an external file into the collector's prometheus scrape_configs. This is added to assist users coming from the prometheus ecosystem by allowing users to simply copy and paste directly from prometheus into this file to use the same config. | "" |
+| defaultCRConfig.managementState | Management state of the collector | managed |
+| defaultCRConfig.clusterRoleBinding.enabled | | true |
+| defaultCRConfig.clusterRoleBinding.clusterRoleName | | "" |
+| defaultCRConfig.mode | Number of replicas for the collector replicas: 1 Mode of deployment for the collector | deployment |
+| defaultCRConfig.serviceAccount | Service account associated with the collector | "" |
+| defaultCRConfig.image.repository | If you want to use the core image `otel/opentelemetry-collector`, you also need to change `command.name` value to `otelcol`. | otel/opentelemetry-collector-k8s |
+| defaultCRConfig.image.pullPolicy | | IfNotPresent |
+| defaultCRConfig.image.tag | By default, the version set for the collector will match the version of the operator being run. | "" |
+| defaultCRConfig.image.digest | When digest is set to a non-empty value, images will be pulled by digest (regardless of tag value). | "" |
+| defaultCRConfig.upgradeStrategy | Upgrade strategy for the collector | automatic |
+| defaultCRConfig.config | Configuration options for the collector | {} |
+| defaultCRConfig.hostNetwork | Whether to use host network for the collector | false |
+| defaultCRConfig.hostPID | Enable sharing the host's PID namespace with the pod. WARNING: This grants visibility into all host processes and should only be enabled when required. | false |
+| defaultCRConfig.shareProcessNamespace | Whether to share process namespace for the collector | false |
+| defaultCRConfig.priorityClassName | Priority class name for the collector | "" |
+| defaultCRConfig.terminationGracePeriodSeconds | Termination grace period for the collector | 30 |
+| defaultCRConfig.resources.requests.memory | | "64Mi" |
+| defaultCRConfig.resources.requests.cpu | | "250m" |
+| defaultCRConfig.resources.limits.memory | | "128Mi" |
+| defaultCRConfig.resources.limits.cpu | | "250m" |
+| defaultCRConfig.nodeSelector | Node selector for the collector | {} |
+| defaultCRConfig.command | Command to override the collector's entrypoint | [] |
+| defaultCRConfig.args | Arguments for the collector | {} |
+| defaultCRConfig.autoscaler | Autoscaler configuration for the collector | {} |
+| defaultCRConfig.podDisruptionBudget | Pod disruption budget for the collector | {} |
+| defaultCRConfig.securityContext | Security context for the collector | {} |
+| defaultCRConfig.podSecurityContext | Pod security context for the collector | {} |
+| defaultCRConfig.podAnnotations | Annotations for the collector's pods | {} |
+| defaultCRConfig.targetAllocator | Target allocator configuration | {} |
+| defaultCRConfig.affinity | Affinity configuration for the collector | {} |
+| defaultCRConfig.lifecycle | Lifecycle configuration for the collector | {} |
+| defaultCRConfig.livenessProbe | Liveness probe configuration for the collector | {} |
+| defaultCRConfig.observability | Observability configuration for the collector | {} |
+| defaultCRConfig.updateStrategy | NOTE: the updateStrategy value is deprecated. Use daemonSetUpdateStrategy instead. | {} |
+| defaultCRConfig.daemonSetUpdateStrategy | Update strategy for the DaemonSet collector | {} |
+| defaultCRConfig.deploymentUpdateStrategy | Update strategy for the Deployment collector | {} |
+| defaultCRConfig.persistentVolumeClaimRetentionPolicy | Retention policy for the PersistentVolumeClaim https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention | {} |
+| defaultCRConfig.volumeMounts | Volume mounts for the collector | [] |
+| defaultCRConfig.ports | Ports configuration for the collector The operator automatically calculates ports for known receivers and exporters Set any custom ports here. | [] |
+| defaultCRConfig.env | Environment variables for the collector | [] |
+| defaultCRConfig.volumeClaimTemplates | Volume claim templates for the collector | [] |
+| defaultCRConfig.tolerations | Tolerations for the collector | [] |
+| defaultCRConfig.volumes | Volumes for the collector | [] |
+| defaultCRConfig.initContainers | Init containers for the collector | [] |
+| defaultCRConfig.additionalContainers | Additional containers for the collector | [] |
+| defaultCRConfig.topologySpreadConstraints | Topology spread constraints for the collector | [] |
+| defaultCRConfig.configmaps | Config maps for the collector | [] |
+| defaultCRConfig.presets.logsCollection.enabled | | false |
+| defaultCRConfig.presets.logsCollection.includeCollectorLogs | | true |
+| defaultCRConfig.presets.logsCollection.storeCheckpoints | Enabling this writes checkpoints in /var/lib/otelcol/ host directory. Note this changes collector's user to root, so that it can write to host directory. | false |
+| defaultCRConfig.presets.logsCollection.maxRecombineLogSize | The maximum bytes size of the recombined field. Once the size exceeds the limit, all received entries of the source will be combined and flushed. | 102400 |
+| defaultCRConfig.presets.hostMetrics.enabled | | false |
+| defaultCRConfig.presets.kubernetesAttributes.enabled | | false |
+| defaultCRConfig.presets.kubernetesAttributes.extractAllPodLabels | When enabled the processor will extra all labels for an associated pod and add them as resource attributes. The label's exact name will be the key. | false |
+| defaultCRConfig.presets.kubernetesAttributes.extractAllPodAnnotations | When enabled the processor will extra all annotations for an associated pod and add them as resource attributes. The annotation's exact name will be the key. | false |
+| defaultCRConfig.presets.kubeletMetrics.enabled | | false |
+| defaultCRConfig.presets.kubernetesEvents.enabled | | false |
+| defaultCRConfig.presets.clusterMetrics.enabled | | false |
+| defaultCRConfig.presets.annotationDiscovery.logs.enabled | | false |
+| defaultCRConfig.presets.annotationDiscovery.metrics.enabled | | false |
+| defaultCRConfig.presets.resourceDetection.eks.enabled | | false |
+| defaultCRConfig.presets.resourceDetection.aks.enabled | | false |
+| defaultCRConfig.presets.resourceDetection.gcp.enabled | | false |
+| collectors.daemon.suffix | | daemon |
+| collectors.daemon.mode | | daemonset |
+| collectors.daemon.enabled | | true |
+| collectors.daemon.resources.limits.cpu | | 200m |
+| collectors.daemon.resources.limits.memory | | 500Mi |
+| collectors.daemon.resources.requests.cpu | | 100m |
+| collectors.daemon.resources.requests.memory | | 250Mi |
+| collectors.daemon.scrape_configs_file | A scrape config file to instruct the daemon collector to pull metrics from any matching targets on the same node with prometheus.io/scrape=true This config also scrapes a running node exporter and the kubelet CAdvisor metrics which aren't currently supported. | "daemon_scrape_configs.yaml" |
+| collectors.daemon.presets.logsCollection.enabled | | true |
+| collectors.daemon.presets.kubeletMetrics.enabled | | true |
+| collectors.daemon.presets.hostMetrics.enabled | | true |
+| collectors.daemon.presets.kubernetesAttributes.enabled | | true |
+| collectors.daemon.presets.kubernetesEvents.enabled | | true |
+| collectors.daemon.presets.clusterMetrics.enabled | | true |
+| collectors.daemon.presets.annotationDiscovery.logs.enabled | | false |
+| collectors.daemon.presets.annotationDiscovery.metrics.enabled | | false |
+| collectors.daemon.presets.resourceDetection.aks.enabled | | false |
+| collectors.daemon.presets.resourceDetection.gcp.enabled | | false |
+| collectors.daemon.presets.resourceDetection.eks.enabled | | false |
+| collectors.daemon.config.receivers.otlp.protocols.grpc.endpoint | | 0.0.0.0:4317 |
+| collectors.daemon.config.receivers.otlp.protocols.http.endpoint | | 0.0.0.0:4318 |
+| collectors.daemon.config.processors.resourcedetection/env.timeout | | 2s |
+| collectors.daemon.config.processors.resourcedetection/env.override | | false |
+| collectors.daemon.config.processors.batch.send_batch_size | | 1000 |
+| collectors.daemon.config.processors.batch.timeout | | 1s |
+| collectors.daemon.config.processors.batch.send_batch_max_size | | 1500 |
+| collectors.daemon.config.exporters.debug | | {} |
+| clusterRole.enabled | Whether the cluster role is enabled or not | true |
+| clusterRole.annotations | Annotations for the cluster role | {} |
+| clusterRole.rules | Rules for the cluster role | [] |
+| instrumentation.enabled | Whether instrumentation is enabled or not | false |
+| instrumentation.labels | | {} |
+| instrumentation.annotations | | {} |
+| instrumentation.exporter.endpoint | This is the default collector's service Upon creation of a tracing collector, edit this endpoint. | http://collector-collector:4317 |
+| instrumentation.resource.resourceAttributes | | {} |
+| instrumentation.resource.addK8sUIDAttributes | environment: dev | true |
+| instrumentation.sampler | Sampler configuration | {} |
+| instrumentation.env | Environment variables for instrumentation | [] |
+| instrumentation.java | Java agent configuration | {} |
+| instrumentation.nodejs | NodeJS agent configuration | {} |
+| instrumentation.python | Python agent configuration | {} |
+| instrumentation.dotnet | .NET agent configuration | {} |
+| instrumentation.go | Go agent configuration | {} |
+| instrumentation.apacheHttpd | Apache HTTPd agent configuration | {} |
+| instrumentation.nginx | NGINX agent configuration | {} |
+| opAMPBridge.enabled | Whether OpAMP bridge is enabled or not | false |
+| opAMPBridge.addReportingLabel | Adds `opentelemetry.io/opamp-reporting: true` to all collectors | true |
+| opAMPBridge.addManagedLabel | Adds `opentelemetry.io/opamp-managed: true` to all collectors | false |
+| opAMPBridge.endpoint | Endpoint for OpAMP server | http://opamp-server:8080 |
+| opAMPBridge.description | Description for additional information like non_identifying_attributes | {} |
+| opAMPBridge.headers | Headers configuration for OpAMP bridge | {} |
+| opAMPBridge.capabilities.AcceptsOpAMPConnectionSettings | | true |
+| opAMPBridge.capabilities.AcceptsOtherConnectionSettings | | true |
+| opAMPBridge.capabilities.AcceptsRemoteConfig | | true |
+| opAMPBridge.capabilities.AcceptsRestartCommand | | true |
+| opAMPBridge.capabilities.ReportsEffectiveConfig | | true |
+| opAMPBridge.capabilities.ReportsHealth | | true |
+| opAMPBridge.capabilities.ReportsOwnLogs | | true |
+| opAMPBridge.capabilities.ReportsOwnMetrics | | true |
+| opAMPBridge.capabilities.ReportsOwnTraces | | true |
+| opAMPBridge.capabilities.ReportsRemoteConfig | | true |
+| opAMPBridge.capabilities.ReportsStatus | | true |
+| opAMPBridge.componentsAllowed | Components allowed for OpAMP bridge | {} |
+| opAMPBridge.resources.limits.cpu | | "250m" |
+| opAMPBridge.resources.limits.memory | | "256Mi" |
+| opAMPBridge.resources.requests.cpu | | "250m" |
+| opAMPBridge.resources.requests.memory | | "256Mi" |
+| opAMPBridge.securityContext.runAsNonRoot | | true |
+| opAMPBridge.securityContext.runAsUser | | 1000 |
+| opAMPBridge.podSecurityContext.fsGroup | | 1000 |
+| opAMPBridge.podAnnotations | Pod annotations for OpAMP bridge | {} |
+| opAMPBridge.serviceAccount | Service account for OpAMP bridge | "" |
+| opAMPBridge.image.repository | | ghcr.io/open-telemetry/opentelemetry-operator/operator-opamp-bridge |
+| opAMPBridge.image.pullPolicy | | IfNotPresent |
+| opAMPBridge.image.tag | By default, the version set for the bridge will match the version of the operator being run. | "" |
+| opAMPBridge.image.digest | When digest is set to a non-empty value, images will be pulled by digest (regardless of tag value). | "" |
+| opAMPBridge.upgradeStrategy | Upgrade strategy for OpAMP bridge | automatic |
+| opAMPBridge.volumeMounts | Volume mounts for OpAMP bridge | [] |
+| opAMPBridge.ports | Ports configuration for OpAMP bridge | [] |
+| opAMPBridge.env | Environment variables for OpAMP bridge | [] |
+| opAMPBridge.envFrom | Environment variables from config map for OpAMP bridge | [] |
+| opAMPBridge.tolerations | Tolerations for OpAMP bridge | [] |
+| opAMPBridge.volumes | Volumes for OpAMP bridge | [] |
+| opAMPBridge.hostNetwork | Whether to use host network for OpAMP bridge | false |
+| opAMPBridge.priorityClassName | Priority class name for OpAMP bridge | "" |
+| opAMPBridge.affinity | Affinity configuration for OpAMP bridge | {} |
+| opAMPBridge.topologySpreadConstraints | Topology spread constraints for OpAMP bridge | [] |
+| opAMPBridge.clusterRole.enabled | Whether the bridge cluster role is enabled or not | true |
+| opAMPBridge.clusterRole.annotations | Annotations for the bridge cluster role | {} |
+| opAMPBridge.clusterRole.rules | Rules for the bridge cluster role | [] |
+| kubernetesServiceMonitors.enabled | | false |
+| kubernetesServiceMonitors.ignoreNamespaceSelectors | | false |
+| kubeApiServer.enabled | | false |
+| kubeApiServer.tlsConfig.serverName | | kubernetes |
+| kubeApiServer.tlsConfig.insecureSkipVerify | | false |
+| kubeApiServer.serviceMonitor.interval | # Scrape interval. If not set, the Prometheus default scrape interval is used. # | "" |
+| kubeApiServer.serviceMonitor.sampleLimit | # SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. # | 0 |
+| kubeApiServer.serviceMonitor.targetLimit | # TargetLimit defines a limit on the number of scraped targets that will be accepted. # | 0 |
+| kubeApiServer.serviceMonitor.labelLimit | # Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer. # | 0 |
+| kubeApiServer.serviceMonitor.labelNameLengthLimit | # Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer. # | 0 |
+| kubeApiServer.serviceMonitor.labelValueLengthLimit | # Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer. # | 0 |
+| kubeApiServer.serviceMonitor.proxyUrl | # proxyUrl: URL of a proxy that should be used for scraping. # | "" |
+| kubeApiServer.serviceMonitor.jobLabel | | component |
+| kubeApiServer.serviceMonitor.selector.matchLabels.component | | apiserver |
+| kubeApiServer.serviceMonitor.selector.matchLabels.provider | | kubernetes |
+| kubeApiServer.serviceMonitor.relabelings | # RelabelConfigs to apply to samples before scraping # ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig # | [] |
+| kubeApiServer.serviceMonitor.additionalLabels | # Additional labels # | {} |
+| kubelet.enabled | | false |
+| kubelet.namespace | | kube-system |
+| kubelet.serviceMonitor.interval | # Scrape interval. If not set, the Prometheus default scrape interval is used. # | "" |
+| kubelet.serviceMonitor.honorLabels | # If true, Prometheus use (respect) labels provided by exporter. # | true |
+| kubelet.serviceMonitor.honorTimestamps | # If true, Prometheus ingests metrics with timestamp provided by exporter. If false, Prometheus ingests metrics with timestamp of scrape. # | true |
+| kubelet.serviceMonitor.https | # Enable scraping the kubelet over https. For requirements to enable this see # https://github.com/prometheus-operator/prometheus-operator/issues/926 # | true |
+| kubelet.serviceMonitor.cAdvisor | # Enable scraping /metrics/cadvisor from kubelet's service # | true |
+| kubelet.serviceMonitor.probes | # Enable scraping /metrics/probes from kubelet's service # | true |
+| kubeControllerManager.enabled | | false |
+| kubeControllerManager.endpoints | # If your kube controller manager is not deployed as a pod, specify IPs it can be found on # | [] |
+| kubeControllerManager.service.enabled | | true |
+| kubeControllerManager.service.port | # If null or unset, the value is determined dynamically based on target Kubernetes version due to change # of default port in Kubernetes 1.22. # | null |
+| kubeControllerManager.service.targetPort | | null |
+| kubeControllerManager.serviceMonitor.enabled | | true |
+| kubeControllerManager.serviceMonitor.interval | # Scrape interval. If not set, the Prometheus default scrape interval is used. # | "" |
+| kubeControllerManager.serviceMonitor.sampleLimit | # SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. # | 0 |
+| kubeControllerManager.serviceMonitor.targetLimit | # TargetLimit defines a limit on the number of scraped targets that will be accepted. # | 0 |
+| kubeControllerManager.serviceMonitor.labelLimit | # Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer. # | 0 |
+| kubeControllerManager.serviceMonitor.labelNameLengthLimit | # Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer. # | 0 |
+| kubeControllerManager.serviceMonitor.labelValueLengthLimit | # Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer. # | 0 |
+| kubeControllerManager.serviceMonitor.proxyUrl | # proxyUrl: URL of a proxy that should be used for scraping. # | "" |
+| kubeControllerManager.serviceMonitor.port | # port: Name of the port the metrics will be scraped from # | http-metrics |
+| kubeControllerManager.serviceMonitor.jobLabel | | jobLabel |
+| kubeControllerManager.serviceMonitor.selector | | {} |
+| kubeControllerManager.serviceMonitor.https | # Enable scraping kube-controller-manager over https. # Requires proper certs (not self-signed) and delegated authentication/authorization checks. # If null or unset, the value is determined dynamically based on target Kubernetes version. # | null |
+| kubeControllerManager.serviceMonitor.insecureSkipVerify | Skip TLS certificate validation when scraping | null |
+| kubeControllerManager.serviceMonitor.serverName | Name of the server to use when validating TLS certificate | null |
+| kubeControllerManager.serviceMonitor.metricRelabelings | # MetricRelabelConfigs to apply to samples after scraping, but before ingestion. # ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig # | [] |
+| kubeControllerManager.serviceMonitor.relabelings | # RelabelConfigs to apply to samples before scraping # ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig # | [] |
+| kubeControllerManager.serviceMonitor.additionalLabels | # Additional labels # | {} |
+| coreDns.enabled | | false |
+| coreDns.endpoints | | [] |
+| coreDns.service.enabled | | true |
+| coreDns.service.port | | 9153 |
+| coreDns.service.targetPort | | 9153 |
+| coreDns.serviceMonitor.enabled | | true |
+| coreDns.serviceMonitor.interval | # Scrape interval. If not set, the Prometheus default scrape interval is used. # | "" |
+| coreDns.serviceMonitor.sampleLimit | # SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. # | 0 |
+| coreDns.serviceMonitor.targetLimit | # TargetLimit defines a limit on the number of scraped targets that will be accepted. # | 0 |
+| coreDns.serviceMonitor.labelLimit | # Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer. # | 0 |
+| coreDns.serviceMonitor.labelNameLengthLimit | # Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer. # | 0 |
+| coreDns.serviceMonitor.labelValueLengthLimit | # Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer. # | 0 |
+| coreDns.serviceMonitor.proxyUrl | # proxyUrl: URL of a proxy that should be used for scraping. # | "" |
+| coreDns.serviceMonitor.port | # port: Name of the port the metrics will be scraped from # | http-metrics |
+| coreDns.serviceMonitor.jobLabel | | jobLabel |
+| coreDns.serviceMonitor.selector | | {} |
+| coreDns.serviceMonitor.metricRelabelings | # MetricRelabelConfigs to apply to samples after scraping, but before ingestion. # ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig # | [] |
+| coreDns.serviceMonitor.relabelings | # RelabelConfigs to apply to samples before scraping # ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig # | [] |
+| coreDns.serviceMonitor.additionalLabels | # Additional labels # | {} |
+| kubeDns.enabled | | false |
+| kubeDns.service.dnsmasq.port | | 10054 |
+| kubeDns.service.dnsmasq.targetPort | | 10054 |
+| kubeDns.service.skydns.port | | 10055 |
+| kubeDns.service.skydns.targetPort | | 10055 |
+| kubeDns.serviceMonitor.interval | # Scrape interval. If not set, the Prometheus default scrape interval is used. # | "" |
+| kubeDns.serviceMonitor.sampleLimit | # SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. # | 0 |
+| kubeDns.serviceMonitor.targetLimit | # TargetLimit defines a limit on the number of scraped targets that will be accepted. # | 0 |
+| kubeDns.serviceMonitor.labelLimit | # Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer. # | 0 |
+| kubeDns.serviceMonitor.labelNameLengthLimit | # Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer. # | 0 |
+| kubeDns.serviceMonitor.labelValueLengthLimit | # Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer. # | 0 |
+| kubeDns.serviceMonitor.proxyUrl | # proxyUrl: URL of a proxy that should be used for scraping. # | "" |
+| kubeDns.serviceMonitor.jobLabel | | jobLabel |
+| kubeDns.serviceMonitor.selector | | {} |
+| kubeDns.serviceMonitor.metricRelabelings | # MetricRelabelConfigs to apply to samples after scraping, but before ingestion. # ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig # | [] |
+| kubeDns.serviceMonitor.relabelings | # RelabelConfigs to apply to samples before scraping # ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig # | [] |
+| kubeDns.serviceMonitor.dnsmasqMetricRelabelings | # MetricRelabelConfigs to apply to samples after scraping, but before ingestion. # ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig # | [] |
+| kubeDns.serviceMonitor.dnsmasqRelabelings | # RelabelConfigs to apply to samples before scraping # ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig # | [] |
+| kubeDns.serviceMonitor.additionalLabels | # Additional labels # | {} |
+| kubeEtcd.enabled | | false |
+| kubeEtcd.endpoints | # If your etcd is not deployed as a pod, specify IPs it can be found on # | [] |
+| kubeEtcd.service.enabled | | true |
+| kubeEtcd.service.port | | 2381 |
+| kubeEtcd.service.targetPort | | 2381 |
+| kubeEtcd.serviceMonitor.enabled | | true |
+| kubeEtcd.serviceMonitor.interval | # Scrape interval. If not set, the Prometheus default scrape interval is used. # | "" |
+| kubeEtcd.serviceMonitor.sampleLimit | # SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. # | 0 |
+| kubeEtcd.serviceMonitor.targetLimit | # TargetLimit defines a limit on the number of scraped targets that will be accepted. # | 0 |
+| kubeEtcd.serviceMonitor.labelLimit | # Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer. # | 0 |
+| kubeEtcd.serviceMonitor.labelNameLengthLimit | # Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer. # | 0 |
+| kubeEtcd.serviceMonitor.labelValueLengthLimit | # Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer. # | 0 |
+| kubeEtcd.serviceMonitor.proxyUrl | # proxyUrl: URL of a proxy that should be used for scraping. # | "" |
+| kubeEtcd.serviceMonitor.scheme | | http |
+| kubeEtcd.serviceMonitor.insecureSkipVerify | | false |
+| kubeEtcd.serviceMonitor.serverName | | "" |
+| kubeEtcd.serviceMonitor.caFile | | "" |
+| kubeEtcd.serviceMonitor.certFile | | "" |
+| kubeEtcd.serviceMonitor.keyFile | | "" |
+| kubeEtcd.serviceMonitor.port | # port: Name of the port the metrics will be scraped from # | http-metrics |
+| kubeEtcd.serviceMonitor.jobLabel | | jobLabel |
+| kubeEtcd.serviceMonitor.selector | | {} |
+| kubeEtcd.serviceMonitor.metricRelabelings | # MetricRelabelConfigs to apply to samples after scraping, but before ingestion. # ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig # | [] |
+| kubeEtcd.serviceMonitor.relabelings | # RelabelConfigs to apply to samples before scraping # ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig # | [] |
+| kubeEtcd.serviceMonitor.additionalLabels | # Additional labels # | {} |
+| kubeScheduler.enabled | | false |
+| kubeScheduler.endpoints | # If your kube scheduler is not deployed as a pod, specify IPs it can be found on # | [] |
+| kubeScheduler.service.enabled | | true |
+| kubeScheduler.service.port | # If null or unset, the value is determined dynamically based on target Kubernetes version due to change # of default port in Kubernetes 1.23. # | null |
+| kubeScheduler.service.targetPort | | null |
+| kubeScheduler.serviceMonitor.enabled | | true |
+| kubeScheduler.serviceMonitor.interval | # Scrape interval. If not set, the Prometheus default scrape interval is used. # | "" |
+| kubeScheduler.serviceMonitor.sampleLimit | # SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. # | 0 |
+| kubeScheduler.serviceMonitor.targetLimit | # TargetLimit defines a limit on the number of scraped targets that will be accepted. # | 0 |
+| kubeScheduler.serviceMonitor.labelLimit | # Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer. # | 0 |
+| kubeScheduler.serviceMonitor.labelNameLengthLimit | # Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer. # | 0 |
+| kubeScheduler.serviceMonitor.labelValueLengthLimit | # Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer. # | 0 |
+| kubeScheduler.serviceMonitor.proxyUrl | # proxyUrl: URL of a proxy that should be used for scraping. # | "" |
+| kubeScheduler.serviceMonitor.https | # Enable scraping kube-scheduler over https. # Requires proper certs (not self-signed) and delegated authentication/authorization checks. # If null or unset, the value is determined dynamically based on target Kubernetes version. # | null |
+| kubeScheduler.serviceMonitor.port | # port: Name of the port the metrics will be scraped from # | http-metrics |
+| kubeScheduler.serviceMonitor.jobLabel | | jobLabel |
+| kubeScheduler.serviceMonitor.selector | | {} |
+| kubeScheduler.serviceMonitor.insecureSkipVerify | # Skip TLS certificate validation when scraping | null |
+| kubeScheduler.serviceMonitor.serverName | # Name of the server to use when validating TLS certificate | null |
+| kubeScheduler.serviceMonitor.metricRelabelings | # MetricRelabelConfigs to apply to samples after scraping, but before ingestion. # ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig # | [] |
+| kubeScheduler.serviceMonitor.relabelings | # RelabelConfigs to apply to samples before scraping # ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig # | [] |
+| kubeScheduler.serviceMonitor.additionalLabels | # Additional labels # | {} |
+| kubeProxy.enabled | | false |
+| kubeProxy.endpoints | # If your kube proxy is not deployed as a pod, specify IPs it can be found on # | [] |
+| kubeProxy.service.enabled | | true |
+| kubeProxy.service.port | | 10249 |
+| kubeProxy.service.targetPort | | 10249 |
+| kubeProxy.serviceMonitor.enabled | | true |
+| kubeProxy.serviceMonitor.interval | # Scrape interval. If not set, the Prometheus default scrape interval is used. # | "" |
+| kubeProxy.serviceMonitor.sampleLimit | # SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. # | 0 |
+| kubeProxy.serviceMonitor.targetLimit | # TargetLimit defines a limit on the number of scraped targets that will be accepted. # | 0 |
+| kubeProxy.serviceMonitor.labelLimit | # Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer. # | 0 |
+| kubeProxy.serviceMonitor.labelNameLengthLimit | # Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer. # | 0 |
+| kubeProxy.serviceMonitor.labelValueLengthLimit | # Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer. # | 0 |
+| kubeProxy.serviceMonitor.proxyUrl | # proxyUrl: URL of a proxy that should be used for scraping. # | "" |
+| kubeProxy.serviceMonitor.port | # port: Name of the port the metrics will be scraped from # | http-metrics |
+| kubeProxy.serviceMonitor.jobLabel | | jobLabel |
+| kubeProxy.serviceMonitor.selector | | {} |
+| kubeProxy.serviceMonitor.https | # Enable scraping kube-proxy over https. # Requires proper certs (not self-signed) and delegated authentication/authorization checks # | false |
+| kubeProxy.serviceMonitor.metricRelabelings | # MetricRelabelConfigs to apply to samples after scraping, but before ingestion. # ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig # | [] |
+| kubeProxy.serviceMonitor.relabelings | # RelabelConfigs to apply to samples before scraping # ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig # | [] |
+| kubeProxy.serviceMonitor.additionalLabels | # Additional labels # | {} |
+| kubeStateMetrics.enabled | | false |
+| kube-state-metrics.namespaceOverride | | "" |
+| kube-state-metrics.rbac.create | | true |
+| kube-state-metrics.releaseLabel | | true |
+| kube-state-metrics.prometheus.monitor.enabled | | true |
+| kube-state-metrics.prometheus.monitor.interval | # Scrape interval. If not set, the Prometheus default scrape interval is used. # | "" |
+| kube-state-metrics.prometheus.monitor.sampleLimit | # SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. # | 0 |
+| kube-state-metrics.prometheus.monitor.targetLimit | # TargetLimit defines a limit on the number of scraped targets that will be accepted. # | 0 |
+| kube-state-metrics.prometheus.monitor.labelLimit | # Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer. # | 0 |
+| kube-state-metrics.prometheus.monitor.labelNameLengthLimit | # Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer. # | 0 |
+| kube-state-metrics.prometheus.monitor.labelValueLengthLimit | # Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer. # | 0 |
+| kube-state-metrics.prometheus.monitor.scrapeTimeout | # Scrape Timeout. If not set, the Prometheus default scrape timeout is used. # | "" |
+| kube-state-metrics.prometheus.monitor.proxyUrl | # proxyUrl: URL of a proxy that should be used for scraping. # | "" |
+| kube-state-metrics.prometheus.monitor.honorLabels | Keep labels from scraped data, overriding server-side labels # | true |
+| kube-state-metrics.prometheus.monitor.metricRelabelings | # MetricRelabelConfigs to apply to samples after scraping, but before ingestion. # ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig # | [] |
+| kube-state-metrics.prometheus.monitor.relabelings | # RelabelConfigs to apply to samples before scraping # ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig # | [] |
+| kube-state-metrics.selfMonitor.enabled | | false |
+| nodeExporter.enabled | | false |
+| prometheus-node-exporter.namespaceOverride | | "" |
+| prometheus-node-exporter.podLabels.jobLabel | | node-exporter |
+| prometheus-node-exporter.releaseLabel | | true |
+| prometheus-node-exporter.service.labels.jobLabel | | node-exporter |
+| prometheus-node-exporter.service.portName | | http-metrics |
+| prometheus-node-exporter.prometheus.monitor.enabled | | true |
+| prometheus-node-exporter.prometheus.monitor.jobLabel | | jobLabel |
+| prometheus-node-exporter.prometheus.monitor.interval | # Scrape interval. If not set, the Prometheus default scrape interval is used. # | "" |
+| prometheus-node-exporter.prometheus.monitor.sampleLimit | # SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. # | 0 |
+| prometheus-node-exporter.prometheus.monitor.targetLimit | # TargetLimit defines a limit on the number of scraped targets that will be accepted. # | 0 |
+| prometheus-node-exporter.prometheus.monitor.labelLimit | # Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer. # | 0 |
+| prometheus-node-exporter.prometheus.monitor.labelNameLengthLimit | # Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer. # | 0 |
+| prometheus-node-exporter.prometheus.monitor.labelValueLengthLimit | # Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer. # | 0 |
+| prometheus-node-exporter.prometheus.monitor.scrapeTimeout | # How long until a scrape request times out. If not set, the Prometheus default scape timeout is used. # | "" |
+| prometheus-node-exporter.prometheus.monitor.proxyUrl | # proxyUrl: URL of a proxy that should be used for scraping. # | "" |
+| prometheus-node-exporter.prometheus.monitor.metricRelabelings | # MetricRelabelConfigs to apply to samples after scraping, but before ingestion. # ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig # | [] |
+| prometheus-node-exporter.prometheus.monitor.relabelings | # RelabelConfigs to apply to samples before scraping # ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig # | [] |
+| prometheus-node-exporter.rbac.pspEnabled | # If true, create PSPs for node-exporter # | false |
+| extraObjects | # Array of extra manifests to deploy # This will deploy arbitrary manifests as part of the helm relase | [] |
+
+
+Specify each parameter using the `--set key=value[,key=value]` argument to `helm upgrade -i`. For example:
+
+```bash
+$ helm upgrade -i opentelemetry-kube-stack appscode/opentelemetry-kube-stack -n monitoring --create-namespace --version=0.14.12 --set clusterName="unknown_k8s_cluster"
+```
+
+Alternatively, a YAML file that specifies the values for the parameters can be provided while
+installing the chart. For example:
+
+```bash
+$ helm upgrade -i opentelemetry-kube-stack appscode/opentelemetry-kube-stack -n monitoring --create-namespace --version=0.14.12 --values values.yaml
+```
diff --git a/charts/opentelemetry-kube-stack/charts/kube-state-metrics-6.3.0.tgz b/charts/opentelemetry-kube-stack/charts/kube-state-metrics-6.3.0.tgz
new file mode 100644
index 00000000..14c0d52a
Binary files /dev/null and b/charts/opentelemetry-kube-stack/charts/kube-state-metrics-6.3.0.tgz differ
diff --git a/charts/opentelemetry-kube-stack/charts/opentelemetry-operator-0.105.1.tgz b/charts/opentelemetry-kube-stack/charts/opentelemetry-operator-0.105.1.tgz
new file mode 100644
index 00000000..435f2a83
Binary files /dev/null and b/charts/opentelemetry-kube-stack/charts/opentelemetry-operator-0.105.1.tgz differ
diff --git a/charts/opentelemetry-kube-stack/charts/otel-crds/Chart.yaml b/charts/opentelemetry-kube-stack/charts/otel-crds/Chart.yaml
new file mode 100644
index 00000000..c9a8efef
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/charts/otel-crds/Chart.yaml
@@ -0,0 +1,3 @@
+apiVersion: v2
+name: otel-crds
+version: 0.0.0
diff --git a/charts/opentelemetry-kube-stack/charts/otel-crds/README.md b/charts/opentelemetry-kube-stack/charts/otel-crds/README.md
new file mode 100644
index 00000000..6d2819f7
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/charts/otel-crds/README.md
@@ -0,0 +1,22 @@
+# OpenTelemetry Collector CRDs
+
+This chart contains the CRDs for _*installation*_ only right now for the opentelemetry-operator. This allows the OpenTelemetry Kubernetes Stack chart to work on install. You can see more discussion about this [here](https://github.com/open-telemetry/opentelemetry-helm-charts/issues/677) and [here](https://github.com/open-telemetry/opentelemetry-helm-charts/pull/1203).
+
+This approach is inspired by the kube-prometheus-stack approach which you can see discussion on [here](https://github.com/prometheus-community/helm-charts/issues/3548).
+
+> [!NOTE]
+> This chart explicitly _does not_ support the conversion webhook that is currently in the opentelemetry-operator chart. This is because the opentelemetry-kube-stack chart will only work with v1beta1 CRDs. This chart is not meant for use with v1alpha1 Collector CRDs.
+
+# Upgrade Notes
+
+Right now, upgrades are NOT handled by this chart, however that could change in the future. This is what is run to bring in the CRDs today.
+
+> [!NOTE]
+> The prometheus operator version should be equal to what is documented in the opentelemetry operator's compatability matrix [here](https://github.com/open-telemetry/opentelemetry-operator?tab=readme-ov-file#opentelemetry-operator-vs-kubernetes-vs-cert-manager-vs-prometheus-operator)
+
+```bash
+wget https://raw.githubusercontent.com/open-telemetry/opentelemetry-operator/main/config/crd/bases/opentelemetry.io_opentelemetrycollectors.yaml
+wget https://raw.githubusercontent.com/open-telemetry/opentelemetry-operator/main/config/crd/bases/opentelemetry.io_opampbridges.yaml
+wget https://raw.githubusercontent.com/open-telemetry/opentelemetry-operator/main/config/crd/bases/opentelemetry.io_instrumentations.yaml
+wget https://raw.githubusercontent.com/open-telemetry/opentelemetry-operator/refs/heads/main/config/crd/bases/opentelemetry.io_targetallocators.yaml
+```
diff --git a/charts/opentelemetry-kube-stack/charts/otel-crds/crds/opentelemetry.io_instrumentations.yaml b/charts/opentelemetry-kube-stack/charts/otel-crds/crds/opentelemetry.io_instrumentations.yaml
new file mode 100644
index 00000000..bc3f89ea
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/charts/otel-crds/crds/opentelemetry.io_instrumentations.yaml
@@ -0,0 +1,2055 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.20.0
+ name: instrumentations.opentelemetry.io
+spec:
+ group: opentelemetry.io
+ names:
+ kind: Instrumentation
+ listKind: InstrumentationList
+ plural: instrumentations
+ shortNames:
+ - otelinst
+ - otelinsts
+ singular: instrumentation
+ scope: Namespaced
+ versions:
+ - additionalPrinterColumns:
+ - jsonPath: .metadata.creationTimestamp
+ name: Age
+ type: date
+ - jsonPath: .spec.exporter.endpoint
+ name: Endpoint
+ type: string
+ - jsonPath: .spec.sampler.type
+ name: Sampler
+ type: string
+ - jsonPath: .spec.sampler.argument
+ name: Sampler Arg
+ type: string
+ name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ type: string
+ kind:
+ type: string
+ metadata:
+ type: object
+ spec:
+ properties:
+ apacheHttpd:
+ properties:
+ attrs:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ configPath:
+ type: string
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ image:
+ type: string
+ resourceRequirements:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ version:
+ type: string
+ volumeClaimTemplate:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ accessModes:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ dataSource:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ x-kubernetes-map-type: atomic
+ dataSourceRef:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ resources:
+ properties:
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ selector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ storageClassName:
+ type: string
+ volumeAttributesClassName:
+ type: string
+ volumeMode:
+ type: string
+ volumeName:
+ type: string
+ type: object
+ required:
+ - spec
+ type: object
+ volumeLimitSize:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ defaults:
+ properties:
+ useLabelsForResourceAttributes:
+ type: boolean
+ type: object
+ dotnet:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ image:
+ type: string
+ resourceRequirements:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ volumeClaimTemplate:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ accessModes:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ dataSource:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ x-kubernetes-map-type: atomic
+ dataSourceRef:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ resources:
+ properties:
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ selector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ storageClassName:
+ type: string
+ volumeAttributesClassName:
+ type: string
+ volumeMode:
+ type: string
+ volumeName:
+ type: string
+ type: object
+ required:
+ - spec
+ type: object
+ volumeLimitSize:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ exporter:
+ properties:
+ endpoint:
+ type: string
+ tls:
+ properties:
+ ca_file:
+ type: string
+ cert_file:
+ type: string
+ configMapName:
+ type: string
+ key_file:
+ type: string
+ secretName:
+ type: string
+ type: object
+ type: object
+ go:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ image:
+ type: string
+ resourceRequirements:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ volumeClaimTemplate:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ accessModes:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ dataSource:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ x-kubernetes-map-type: atomic
+ dataSourceRef:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ resources:
+ properties:
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ selector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ storageClassName:
+ type: string
+ volumeAttributesClassName:
+ type: string
+ volumeMode:
+ type: string
+ volumeName:
+ type: string
+ type: object
+ required:
+ - spec
+ type: object
+ volumeLimitSize:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ imagePullPolicy:
+ type: string
+ java:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ extensions:
+ items:
+ properties:
+ dir:
+ type: string
+ image:
+ type: string
+ required:
+ - dir
+ - image
+ type: object
+ type: array
+ image:
+ type: string
+ resources:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ volumeClaimTemplate:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ accessModes:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ dataSource:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ x-kubernetes-map-type: atomic
+ dataSourceRef:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ resources:
+ properties:
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ selector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ storageClassName:
+ type: string
+ volumeAttributesClassName:
+ type: string
+ volumeMode:
+ type: string
+ volumeName:
+ type: string
+ type: object
+ required:
+ - spec
+ type: object
+ volumeLimitSize:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ nginx:
+ properties:
+ attrs:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ configFile:
+ type: string
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ image:
+ type: string
+ resourceRequirements:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ volumeClaimTemplate:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ accessModes:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ dataSource:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ x-kubernetes-map-type: atomic
+ dataSourceRef:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ resources:
+ properties:
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ selector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ storageClassName:
+ type: string
+ volumeAttributesClassName:
+ type: string
+ volumeMode:
+ type: string
+ volumeName:
+ type: string
+ type: object
+ required:
+ - spec
+ type: object
+ volumeLimitSize:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ nodejs:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ image:
+ type: string
+ resourceRequirements:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ volumeClaimTemplate:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ accessModes:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ dataSource:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ x-kubernetes-map-type: atomic
+ dataSourceRef:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ resources:
+ properties:
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ selector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ storageClassName:
+ type: string
+ volumeAttributesClassName:
+ type: string
+ volumeMode:
+ type: string
+ volumeName:
+ type: string
+ type: object
+ required:
+ - spec
+ type: object
+ volumeLimitSize:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ propagators:
+ items:
+ enum:
+ - tracecontext
+ - baggage
+ - b3
+ - b3multi
+ - jaeger
+ - xray
+ - ottrace
+ - none
+ type: string
+ type: array
+ python:
+ properties:
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ image:
+ type: string
+ resourceRequirements:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ volumeClaimTemplate:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ accessModes:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ dataSource:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ x-kubernetes-map-type: atomic
+ dataSourceRef:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ resources:
+ properties:
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ selector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ storageClassName:
+ type: string
+ volumeAttributesClassName:
+ type: string
+ volumeMode:
+ type: string
+ volumeName:
+ type: string
+ type: object
+ required:
+ - spec
+ type: object
+ volumeLimitSize:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ resource:
+ properties:
+ addK8sUIDAttributes:
+ type: boolean
+ resourceAttributes:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ sampler:
+ properties:
+ argument:
+ type: string
+ type:
+ enum:
+ - always_on
+ - always_off
+ - traceidratio
+ - parentbased_always_on
+ - parentbased_always_off
+ - parentbased_traceidratio
+ - jaeger_remote
+ - xray
+ type: string
+ type: object
+ type: object
+ status:
+ type: object
+ type: object
+ served: true
+ storage: true
+ subresources:
+ status: {}
diff --git a/charts/opentelemetry-kube-stack/charts/otel-crds/crds/opentelemetry.io_opampbridges.yaml b/charts/opentelemetry-kube-stack/charts/otel-crds/crds/opentelemetry.io_opampbridges.yaml
new file mode 100644
index 00000000..3e88decb
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/charts/otel-crds/crds/opentelemetry.io_opampbridges.yaml
@@ -0,0 +1,1802 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.20.0
+ name: opampbridges.opentelemetry.io
+spec:
+ group: opentelemetry.io
+ names:
+ kind: OpAMPBridge
+ listKind: OpAMPBridgeList
+ plural: opampbridges
+ singular: opampbridge
+ scope: Namespaced
+ versions:
+ - additionalPrinterColumns:
+ - jsonPath: .metadata.creationTimestamp
+ name: Age
+ type: date
+ - description: OpenTelemetry Version
+ jsonPath: .status.version
+ name: Version
+ type: string
+ - jsonPath: .spec.endpoint
+ name: Endpoint
+ type: string
+ name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ type: string
+ kind:
+ type: string
+ metadata:
+ type: object
+ spec:
+ properties:
+ affinity:
+ properties:
+ nodeAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ preference:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchFields:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ x-kubernetes-map-type: atomic
+ weight:
+ format: int32
+ type: integer
+ required:
+ - preference
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ properties:
+ nodeSelectorTerms:
+ items:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchFields:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ x-kubernetes-map-type: atomic
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - nodeSelectorTerms
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ podAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ podAffinityTerm:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ weight:
+ format: int32
+ type: integer
+ required:
+ - podAffinityTerm
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ podAntiAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ podAffinityTerm:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ weight:
+ format: int32
+ type: integer
+ required:
+ - podAffinityTerm
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ type: object
+ capabilities:
+ additionalProperties:
+ type: boolean
+ type: object
+ componentsAllowed:
+ additionalProperties:
+ items:
+ type: string
+ type: array
+ type: object
+ description:
+ properties:
+ non_identifying_attributes:
+ additionalProperties:
+ type: string
+ type: object
+ required:
+ - non_identifying_attributes
+ type: object
+ endpoint:
+ type: string
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ envFrom:
+ items:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ prefix:
+ type: string
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ type: array
+ headers:
+ additionalProperties:
+ type: string
+ type: object
+ hostNetwork:
+ type: boolean
+ image:
+ type: string
+ imagePullPolicy:
+ type: string
+ ipFamilies:
+ items:
+ type: string
+ type: array
+ ipFamilyPolicy:
+ type: string
+ nodeSelector:
+ additionalProperties:
+ type: string
+ type: object
+ podAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ podDnsConfig:
+ properties:
+ nameservers:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ options:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ searches:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ podSecurityContext:
+ properties:
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ fsGroup:
+ format: int64
+ type: integer
+ fsGroupChangePolicy:
+ type: string
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxChangePolicy:
+ type: string
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ supplementalGroups:
+ items:
+ format: int64
+ type: integer
+ type: array
+ x-kubernetes-list-type: atomic
+ supplementalGroupsPolicy:
+ type: string
+ sysctls:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ ports:
+ items:
+ properties:
+ appProtocol:
+ type: string
+ name:
+ type: string
+ nodePort:
+ format: int32
+ type: integer
+ port:
+ format: int32
+ type: integer
+ protocol:
+ default: TCP
+ type: string
+ targetPort:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ priorityClassName:
+ type: string
+ replicas:
+ format: int32
+ maximum: 1
+ type: integer
+ resources:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ securityContext:
+ properties:
+ allowPrivilegeEscalation:
+ type: boolean
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ capabilities:
+ properties:
+ add:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ drop:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ privileged:
+ type: boolean
+ procMount:
+ type: string
+ readOnlyRootFilesystem:
+ type: boolean
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ serviceAccount:
+ type: string
+ tolerations:
+ items:
+ properties:
+ effect:
+ type: string
+ key:
+ type: string
+ operator:
+ type: string
+ tolerationSeconds:
+ format: int64
+ type: integer
+ value:
+ type: string
+ type: object
+ type: array
+ topologySpreadConstraints:
+ items:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ maxSkew:
+ format: int32
+ type: integer
+ minDomains:
+ format: int32
+ type: integer
+ nodeAffinityPolicy:
+ type: string
+ nodeTaintsPolicy:
+ type: string
+ topologyKey:
+ type: string
+ whenUnsatisfiable:
+ type: string
+ required:
+ - maxSkew
+ - topologyKey
+ - whenUnsatisfiable
+ type: object
+ type: array
+ upgradeStrategy:
+ enum:
+ - automatic
+ - none
+ type: string
+ volumeMounts:
+ items:
+ properties:
+ mountPath:
+ type: string
+ mountPropagation:
+ type: string
+ name:
+ type: string
+ readOnly:
+ type: boolean
+ recursiveReadOnly:
+ type: string
+ subPath:
+ type: string
+ subPathExpr:
+ type: string
+ required:
+ - mountPath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ volumes:
+ items:
+ properties:
+ awsElasticBlockStore:
+ properties:
+ fsType:
+ type: string
+ partition:
+ format: int32
+ type: integer
+ readOnly:
+ type: boolean
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ azureDisk:
+ properties:
+ cachingMode:
+ type: string
+ diskName:
+ type: string
+ diskURI:
+ type: string
+ fsType:
+ default: ext4
+ type: string
+ kind:
+ type: string
+ readOnly:
+ default: false
+ type: boolean
+ required:
+ - diskName
+ - diskURI
+ type: object
+ azureFile:
+ properties:
+ readOnly:
+ type: boolean
+ secretName:
+ type: string
+ shareName:
+ type: string
+ required:
+ - secretName
+ - shareName
+ type: object
+ cephfs:
+ properties:
+ monitors:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ secretFile:
+ type: string
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ user:
+ type: string
+ required:
+ - monitors
+ type: object
+ cinder:
+ properties:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ configMap:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ csi:
+ properties:
+ driver:
+ type: string
+ fsType:
+ type: string
+ nodePublishSecretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ readOnly:
+ type: boolean
+ volumeAttributes:
+ additionalProperties:
+ type: string
+ type: object
+ required:
+ - driver
+ type: object
+ downwardAPI:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
+ items:
+ properties:
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ emptyDir:
+ properties:
+ medium:
+ type: string
+ sizeLimit:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ ephemeral:
+ properties:
+ volumeClaimTemplate:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ accessModes:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ dataSource:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ x-kubernetes-map-type: atomic
+ dataSourceRef:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ resources:
+ properties:
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ selector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ storageClassName:
+ type: string
+ volumeAttributesClassName:
+ type: string
+ volumeMode:
+ type: string
+ volumeName:
+ type: string
+ type: object
+ required:
+ - spec
+ type: object
+ type: object
+ fc:
+ properties:
+ fsType:
+ type: string
+ lun:
+ format: int32
+ type: integer
+ readOnly:
+ type: boolean
+ targetWWNs:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ wwids:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ flexVolume:
+ properties:
+ driver:
+ type: string
+ fsType:
+ type: string
+ options:
+ additionalProperties:
+ type: string
+ type: object
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - driver
+ type: object
+ flocker:
+ properties:
+ datasetName:
+ type: string
+ datasetUUID:
+ type: string
+ type: object
+ gcePersistentDisk:
+ properties:
+ fsType:
+ type: string
+ partition:
+ format: int32
+ type: integer
+ pdName:
+ type: string
+ readOnly:
+ type: boolean
+ required:
+ - pdName
+ type: object
+ gitRepo:
+ properties:
+ directory:
+ type: string
+ repository:
+ type: string
+ revision:
+ type: string
+ required:
+ - repository
+ type: object
+ glusterfs:
+ properties:
+ endpoints:
+ type: string
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ required:
+ - endpoints
+ - path
+ type: object
+ hostPath:
+ properties:
+ path:
+ type: string
+ type:
+ type: string
+ required:
+ - path
+ type: object
+ image:
+ properties:
+ pullPolicy:
+ type: string
+ reference:
+ type: string
+ type: object
+ iscsi:
+ properties:
+ chapAuthDiscovery:
+ type: boolean
+ chapAuthSession:
+ type: boolean
+ fsType:
+ type: string
+ initiatorName:
+ type: string
+ iqn:
+ type: string
+ iscsiInterface:
+ default: default
+ type: string
+ lun:
+ format: int32
+ type: integer
+ portals:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ targetPortal:
+ type: string
+ required:
+ - iqn
+ - lun
+ - targetPortal
+ type: object
+ name:
+ type: string
+ nfs:
+ properties:
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ server:
+ type: string
+ required:
+ - path
+ - server
+ type: object
+ persistentVolumeClaim:
+ properties:
+ claimName:
+ type: string
+ readOnly:
+ type: boolean
+ required:
+ - claimName
+ type: object
+ photonPersistentDisk:
+ properties:
+ fsType:
+ type: string
+ pdID:
+ type: string
+ required:
+ - pdID
+ type: object
+ portworxVolume:
+ properties:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ projected:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ sources:
+ items:
+ properties:
+ clusterTrustBundle:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ name:
+ type: string
+ optional:
+ type: boolean
+ path:
+ type: string
+ signerName:
+ type: string
+ required:
+ - path
+ type: object
+ configMap:
+ properties:
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ downwardAPI:
+ properties:
+ items:
+ items:
+ properties:
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ podCertificate:
+ properties:
+ certificateChainPath:
+ type: string
+ credentialBundlePath:
+ type: string
+ keyPath:
+ type: string
+ keyType:
+ type: string
+ maxExpirationSeconds:
+ format: int32
+ type: integer
+ signerName:
+ type: string
+ required:
+ - keyType
+ - signerName
+ type: object
+ secret:
+ properties:
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ serviceAccountToken:
+ properties:
+ audience:
+ type: string
+ expirationSeconds:
+ format: int64
+ type: integer
+ path:
+ type: string
+ required:
+ - path
+ type: object
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ quobyte:
+ properties:
+ group:
+ type: string
+ readOnly:
+ type: boolean
+ registry:
+ type: string
+ tenant:
+ type: string
+ user:
+ type: string
+ volume:
+ type: string
+ required:
+ - registry
+ - volume
+ type: object
+ rbd:
+ properties:
+ fsType:
+ type: string
+ image:
+ type: string
+ keyring:
+ default: /etc/ceph/keyring
+ type: string
+ monitors:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ pool:
+ default: rbd
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ user:
+ default: admin
+ type: string
+ required:
+ - image
+ - monitors
+ type: object
+ scaleIO:
+ properties:
+ fsType:
+ default: xfs
+ type: string
+ gateway:
+ type: string
+ protectionDomain:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ sslEnabled:
+ type: boolean
+ storageMode:
+ default: ThinProvisioned
+ type: string
+ storagePool:
+ type: string
+ system:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - gateway
+ - secretRef
+ - system
+ type: object
+ secret:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ optional:
+ type: boolean
+ secretName:
+ type: string
+ type: object
+ storageos:
+ properties:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ volumeName:
+ type: string
+ volumeNamespace:
+ type: string
+ type: object
+ vsphereVolume:
+ properties:
+ fsType:
+ type: string
+ storagePolicyID:
+ type: string
+ storagePolicyName:
+ type: string
+ volumePath:
+ type: string
+ required:
+ - volumePath
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - capabilities
+ - endpoint
+ type: object
+ status:
+ properties:
+ version:
+ type: string
+ type: object
+ type: object
+ served: true
+ storage: true
+ subresources:
+ status: {}
diff --git a/charts/opentelemetry-kube-stack/charts/otel-crds/crds/opentelemetry.io_opentelemetrycollectors.yaml b/charts/opentelemetry-kube-stack/charts/otel-crds/crds/opentelemetry.io_opentelemetrycollectors.yaml
new file mode 100644
index 00000000..4c115dae
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/charts/otel-crds/crds/opentelemetry.io_opentelemetrycollectors.yaml
@@ -0,0 +1,9700 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.20.0
+ name: opentelemetrycollectors.opentelemetry.io
+spec:
+ group: opentelemetry.io
+ names:
+ kind: OpenTelemetryCollector
+ listKind: OpenTelemetryCollectorList
+ plural: opentelemetrycollectors
+ shortNames:
+ - otelcol
+ - otelcols
+ singular: opentelemetrycollector
+ scope: Namespaced
+ versions:
+ - additionalPrinterColumns:
+ - description: Deployment Mode
+ jsonPath: .spec.mode
+ name: Mode
+ type: string
+ - description: OpenTelemetry Version
+ jsonPath: .status.version
+ name: Version
+ type: string
+ - jsonPath: .status.scale.statusReplicas
+ name: Ready
+ type: string
+ - jsonPath: .metadata.creationTimestamp
+ name: Age
+ type: date
+ - jsonPath: .status.image
+ name: Image
+ type: string
+ - description: Management State
+ jsonPath: .spec.managementState
+ name: Management
+ type: string
+ deprecated: true
+ deprecationWarning: OpenTelemetryCollector v1alpha1 is deprecated. Migrate to
+ v1beta1.
+ name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ type: string
+ kind:
+ type: string
+ metadata:
+ type: object
+ spec:
+ properties:
+ additionalContainers:
+ items:
+ properties:
+ args:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ envFrom:
+ items:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ prefix:
+ type: string
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ image:
+ type: string
+ imagePullPolicy:
+ type: string
+ lifecycle:
+ properties:
+ postStart:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ preStop:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ stopSignal:
+ type: string
+ type: object
+ livenessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ name:
+ type: string
+ ports:
+ items:
+ properties:
+ containerPort:
+ format: int32
+ type: integer
+ hostIP:
+ type: string
+ hostPort:
+ format: int32
+ type: integer
+ name:
+ type: string
+ protocol:
+ default: TCP
+ type: string
+ required:
+ - containerPort
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - containerPort
+ - protocol
+ x-kubernetes-list-type: map
+ readinessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ resizePolicy:
+ items:
+ properties:
+ resourceName:
+ type: string
+ restartPolicy:
+ type: string
+ required:
+ - resourceName
+ - restartPolicy
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ resources:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ restartPolicy:
+ type: string
+ restartPolicyRules:
+ items:
+ properties:
+ action:
+ type: string
+ exitCodes:
+ properties:
+ operator:
+ type: string
+ values:
+ items:
+ format: int32
+ type: integer
+ type: array
+ x-kubernetes-list-type: set
+ required:
+ - operator
+ type: object
+ required:
+ - action
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ securityContext:
+ properties:
+ allowPrivilegeEscalation:
+ type: boolean
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ capabilities:
+ properties:
+ add:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ drop:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ privileged:
+ type: boolean
+ procMount:
+ type: string
+ readOnlyRootFilesystem:
+ type: boolean
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ startupProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ stdin:
+ type: boolean
+ stdinOnce:
+ type: boolean
+ terminationMessagePath:
+ type: string
+ terminationMessagePolicy:
+ type: string
+ tty:
+ type: boolean
+ volumeDevices:
+ items:
+ properties:
+ devicePath:
+ type: string
+ name:
+ type: string
+ required:
+ - devicePath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - devicePath
+ x-kubernetes-list-type: map
+ volumeMounts:
+ items:
+ properties:
+ mountPath:
+ type: string
+ mountPropagation:
+ type: string
+ name:
+ type: string
+ readOnly:
+ type: boolean
+ recursiveReadOnly:
+ type: string
+ subPath:
+ type: string
+ subPathExpr:
+ type: string
+ required:
+ - mountPath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - mountPath
+ x-kubernetes-list-type: map
+ workingDir:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ affinity:
+ properties:
+ nodeAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ preference:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchFields:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ x-kubernetes-map-type: atomic
+ weight:
+ format: int32
+ type: integer
+ required:
+ - preference
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ properties:
+ nodeSelectorTerms:
+ items:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchFields:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ x-kubernetes-map-type: atomic
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - nodeSelectorTerms
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ podAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ podAffinityTerm:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ weight:
+ format: int32
+ type: integer
+ required:
+ - podAffinityTerm
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ podAntiAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ podAffinityTerm:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ weight:
+ format: int32
+ type: integer
+ required:
+ - podAffinityTerm
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ type: object
+ args:
+ additionalProperties:
+ type: string
+ type: object
+ autoscaler:
+ properties:
+ behavior:
+ properties:
+ scaleDown:
+ properties:
+ policies:
+ items:
+ properties:
+ periodSeconds:
+ format: int32
+ type: integer
+ type:
+ type: string
+ value:
+ format: int32
+ type: integer
+ required:
+ - periodSeconds
+ - type
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ selectPolicy:
+ type: string
+ stabilizationWindowSeconds:
+ format: int32
+ type: integer
+ tolerance:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ scaleUp:
+ properties:
+ policies:
+ items:
+ properties:
+ periodSeconds:
+ format: int32
+ type: integer
+ type:
+ type: string
+ value:
+ format: int32
+ type: integer
+ required:
+ - periodSeconds
+ - type
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ selectPolicy:
+ type: string
+ stabilizationWindowSeconds:
+ format: int32
+ type: integer
+ tolerance:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ maxReplicas:
+ format: int32
+ type: integer
+ metrics:
+ items:
+ properties:
+ pods:
+ properties:
+ metric:
+ properties:
+ name:
+ type: string
+ selector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - name
+ type: object
+ target:
+ properties:
+ averageUtilization:
+ format: int32
+ type: integer
+ averageValue:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type:
+ type: string
+ value:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ required:
+ - type
+ type: object
+ required:
+ - metric
+ - target
+ type: object
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ type: array
+ minReplicas:
+ format: int32
+ type: integer
+ targetCPUUtilization:
+ format: int32
+ type: integer
+ targetMemoryUtilization:
+ format: int32
+ type: integer
+ type: object
+ config:
+ type: string
+ configmaps:
+ items:
+ properties:
+ mountpath:
+ type: string
+ name:
+ type: string
+ required:
+ - mountpath
+ - name
+ type: object
+ type: array
+ deploymentUpdateStrategy:
+ properties:
+ rollingUpdate:
+ properties:
+ maxSurge:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ maxUnavailable:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ type: object
+ type:
+ type: string
+ type: object
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ envFrom:
+ items:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ prefix:
+ type: string
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ type: array
+ hostNetwork:
+ type: boolean
+ image:
+ type: string
+ imagePullPolicy:
+ type: string
+ ingress:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ hostname:
+ type: string
+ ingressClassName:
+ type: string
+ route:
+ properties:
+ termination:
+ enum:
+ - insecure
+ - edge
+ - passthrough
+ - reencrypt
+ type: string
+ type: object
+ ruleType:
+ enum:
+ - path
+ - subdomain
+ type: string
+ tls:
+ items:
+ properties:
+ hosts:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ secretName:
+ type: string
+ type: object
+ type: array
+ type:
+ enum:
+ - ingress
+ - route
+ type: string
+ type: object
+ initContainers:
+ items:
+ properties:
+ args:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ envFrom:
+ items:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ prefix:
+ type: string
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ image:
+ type: string
+ imagePullPolicy:
+ type: string
+ lifecycle:
+ properties:
+ postStart:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ preStop:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ stopSignal:
+ type: string
+ type: object
+ livenessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ name:
+ type: string
+ ports:
+ items:
+ properties:
+ containerPort:
+ format: int32
+ type: integer
+ hostIP:
+ type: string
+ hostPort:
+ format: int32
+ type: integer
+ name:
+ type: string
+ protocol:
+ default: TCP
+ type: string
+ required:
+ - containerPort
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - containerPort
+ - protocol
+ x-kubernetes-list-type: map
+ readinessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ resizePolicy:
+ items:
+ properties:
+ resourceName:
+ type: string
+ restartPolicy:
+ type: string
+ required:
+ - resourceName
+ - restartPolicy
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ resources:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ restartPolicy:
+ type: string
+ restartPolicyRules:
+ items:
+ properties:
+ action:
+ type: string
+ exitCodes:
+ properties:
+ operator:
+ type: string
+ values:
+ items:
+ format: int32
+ type: integer
+ type: array
+ x-kubernetes-list-type: set
+ required:
+ - operator
+ type: object
+ required:
+ - action
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ securityContext:
+ properties:
+ allowPrivilegeEscalation:
+ type: boolean
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ capabilities:
+ properties:
+ add:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ drop:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ privileged:
+ type: boolean
+ procMount:
+ type: string
+ readOnlyRootFilesystem:
+ type: boolean
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ startupProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ stdin:
+ type: boolean
+ stdinOnce:
+ type: boolean
+ terminationMessagePath:
+ type: string
+ terminationMessagePolicy:
+ type: string
+ tty:
+ type: boolean
+ volumeDevices:
+ items:
+ properties:
+ devicePath:
+ type: string
+ name:
+ type: string
+ required:
+ - devicePath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - devicePath
+ x-kubernetes-list-type: map
+ volumeMounts:
+ items:
+ properties:
+ mountPath:
+ type: string
+ mountPropagation:
+ type: string
+ name:
+ type: string
+ readOnly:
+ type: boolean
+ recursiveReadOnly:
+ type: string
+ subPath:
+ type: string
+ subPathExpr:
+ type: string
+ required:
+ - mountPath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - mountPath
+ x-kubernetes-list-type: map
+ workingDir:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ lifecycle:
+ properties:
+ postStart:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ preStop:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ stopSignal:
+ type: string
+ type: object
+ livenessProbe:
+ properties:
+ failureThreshold:
+ format: int32
+ type: integer
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ managementState:
+ default: managed
+ enum:
+ - managed
+ - unmanaged
+ type: string
+ maxReplicas:
+ format: int32
+ type: integer
+ minReplicas:
+ format: int32
+ type: integer
+ mode:
+ enum:
+ - daemonset
+ - deployment
+ - sidecar
+ - statefulset
+ type: string
+ nodeSelector:
+ additionalProperties:
+ type: string
+ type: object
+ observability:
+ properties:
+ metrics:
+ properties:
+ DisablePrometheusAnnotations:
+ type: boolean
+ enableMetrics:
+ type: boolean
+ type: object
+ type: object
+ podAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ podDisruptionBudget:
+ properties:
+ maxUnavailable:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ minAvailable:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ type: object
+ podSecurityContext:
+ properties:
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ fsGroup:
+ format: int64
+ type: integer
+ fsGroupChangePolicy:
+ type: string
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxChangePolicy:
+ type: string
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ supplementalGroups:
+ items:
+ format: int64
+ type: integer
+ type: array
+ x-kubernetes-list-type: atomic
+ supplementalGroupsPolicy:
+ type: string
+ sysctls:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ ports:
+ items:
+ properties:
+ appProtocol:
+ type: string
+ hostPort:
+ format: int32
+ type: integer
+ name:
+ type: string
+ nodePort:
+ format: int32
+ type: integer
+ port:
+ format: int32
+ type: integer
+ protocol:
+ default: TCP
+ type: string
+ targetPort:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ priorityClassName:
+ type: string
+ replicas:
+ default: 1
+ format: int32
+ type: integer
+ resources:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ securityContext:
+ properties:
+ allowPrivilegeEscalation:
+ type: boolean
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ capabilities:
+ properties:
+ add:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ drop:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ privileged:
+ type: boolean
+ procMount:
+ type: string
+ readOnlyRootFilesystem:
+ type: boolean
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ serviceAccount:
+ type: string
+ serviceName:
+ type: string
+ shareProcessNamespace:
+ type: boolean
+ targetAllocator:
+ properties:
+ affinity:
+ properties:
+ nodeAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ preference:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchFields:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ x-kubernetes-map-type: atomic
+ weight:
+ format: int32
+ type: integer
+ required:
+ - preference
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ properties:
+ nodeSelectorTerms:
+ items:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchFields:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ x-kubernetes-map-type: atomic
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - nodeSelectorTerms
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ podAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ podAffinityTerm:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ weight:
+ format: int32
+ type: integer
+ required:
+ - podAffinityTerm
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ podAntiAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ podAffinityTerm:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ weight:
+ format: int32
+ type: integer
+ required:
+ - podAffinityTerm
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ type: object
+ allocationStrategy:
+ default: consistent-hashing
+ enum:
+ - least-weighted
+ - consistent-hashing
+ - per-node
+ type: string
+ enabled:
+ type: boolean
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ filterStrategy:
+ default: relabel-config
+ type: string
+ image:
+ type: string
+ nodeSelector:
+ additionalProperties:
+ type: string
+ type: object
+ observability:
+ properties:
+ metrics:
+ properties:
+ DisablePrometheusAnnotations:
+ type: boolean
+ enableMetrics:
+ type: boolean
+ type: object
+ type: object
+ podDisruptionBudget:
+ properties:
+ maxUnavailable:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ minAvailable:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ type: object
+ podSecurityContext:
+ properties:
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ fsGroup:
+ format: int64
+ type: integer
+ fsGroupChangePolicy:
+ type: string
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxChangePolicy:
+ type: string
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ supplementalGroups:
+ items:
+ format: int64
+ type: integer
+ type: array
+ x-kubernetes-list-type: atomic
+ supplementalGroupsPolicy:
+ type: string
+ sysctls:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ prometheusCR:
+ properties:
+ enabled:
+ type: boolean
+ podMonitorSelector:
+ additionalProperties:
+ type: string
+ type: object
+ scrapeClasses:
+ items:
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ x-kubernetes-preserve-unknown-fields: true
+ scrapeInterval:
+ default: 30s
+ format: duration
+ type: string
+ serviceMonitorSelector:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ replicas:
+ format: int32
+ type: integer
+ resources:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ securityContext:
+ properties:
+ allowPrivilegeEscalation:
+ type: boolean
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ capabilities:
+ properties:
+ add:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ drop:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ privileged:
+ type: boolean
+ procMount:
+ type: string
+ readOnlyRootFilesystem:
+ type: boolean
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ serviceAccount:
+ type: string
+ tolerations:
+ items:
+ properties:
+ effect:
+ type: string
+ key:
+ type: string
+ operator:
+ type: string
+ tolerationSeconds:
+ format: int64
+ type: integer
+ value:
+ type: string
+ type: object
+ type: array
+ topologySpreadConstraints:
+ items:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ maxSkew:
+ format: int32
+ type: integer
+ minDomains:
+ format: int32
+ type: integer
+ nodeAffinityPolicy:
+ type: string
+ nodeTaintsPolicy:
+ type: string
+ topologyKey:
+ type: string
+ whenUnsatisfiable:
+ type: string
+ required:
+ - maxSkew
+ - topologyKey
+ - whenUnsatisfiable
+ type: object
+ type: array
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ tolerations:
+ items:
+ properties:
+ effect:
+ type: string
+ key:
+ type: string
+ operator:
+ type: string
+ tolerationSeconds:
+ format: int64
+ type: integer
+ value:
+ type: string
+ type: object
+ type: array
+ topologySpreadConstraints:
+ items:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ maxSkew:
+ format: int32
+ type: integer
+ minDomains:
+ format: int32
+ type: integer
+ nodeAffinityPolicy:
+ type: string
+ nodeTaintsPolicy:
+ type: string
+ topologyKey:
+ type: string
+ whenUnsatisfiable:
+ type: string
+ required:
+ - maxSkew
+ - topologyKey
+ - whenUnsatisfiable
+ type: object
+ type: array
+ trafficDistribution:
+ type: string
+ updateStrategy:
+ properties:
+ rollingUpdate:
+ properties:
+ maxSurge:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ maxUnavailable:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ type: object
+ type:
+ type: string
+ type: object
+ upgradeStrategy:
+ enum:
+ - automatic
+ - none
+ type: string
+ volumeClaimTemplates:
+ items:
+ properties:
+ apiVersion:
+ type: string
+ kind:
+ type: string
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ accessModes:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ dataSource:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ x-kubernetes-map-type: atomic
+ dataSourceRef:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ resources:
+ properties:
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ selector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ storageClassName:
+ type: string
+ volumeAttributesClassName:
+ type: string
+ volumeMode:
+ type: string
+ volumeName:
+ type: string
+ type: object
+ status:
+ properties:
+ accessModes:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ allocatedResourceStatuses:
+ additionalProperties:
+ type: string
+ type: object
+ x-kubernetes-map-type: granular
+ allocatedResources:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ capacity:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ conditions:
+ items:
+ properties:
+ lastProbeTime:
+ format: date-time
+ type: string
+ lastTransitionTime:
+ format: date-time
+ type: string
+ message:
+ type: string
+ reason:
+ type: string
+ status:
+ type: string
+ type:
+ type: string
+ required:
+ - status
+ - type
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - type
+ x-kubernetes-list-type: map
+ currentVolumeAttributesClassName:
+ type: string
+ modifyVolumeStatus:
+ properties:
+ status:
+ type: string
+ targetVolumeAttributesClassName:
+ type: string
+ required:
+ - status
+ type: object
+ phase:
+ type: string
+ type: object
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ volumeMounts:
+ items:
+ properties:
+ mountPath:
+ type: string
+ mountPropagation:
+ type: string
+ name:
+ type: string
+ readOnly:
+ type: boolean
+ recursiveReadOnly:
+ type: string
+ subPath:
+ type: string
+ subPathExpr:
+ type: string
+ required:
+ - mountPath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ volumes:
+ items:
+ properties:
+ awsElasticBlockStore:
+ properties:
+ fsType:
+ type: string
+ partition:
+ format: int32
+ type: integer
+ readOnly:
+ type: boolean
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ azureDisk:
+ properties:
+ cachingMode:
+ type: string
+ diskName:
+ type: string
+ diskURI:
+ type: string
+ fsType:
+ default: ext4
+ type: string
+ kind:
+ type: string
+ readOnly:
+ default: false
+ type: boolean
+ required:
+ - diskName
+ - diskURI
+ type: object
+ azureFile:
+ properties:
+ readOnly:
+ type: boolean
+ secretName:
+ type: string
+ shareName:
+ type: string
+ required:
+ - secretName
+ - shareName
+ type: object
+ cephfs:
+ properties:
+ monitors:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ secretFile:
+ type: string
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ user:
+ type: string
+ required:
+ - monitors
+ type: object
+ cinder:
+ properties:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ configMap:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ csi:
+ properties:
+ driver:
+ type: string
+ fsType:
+ type: string
+ nodePublishSecretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ readOnly:
+ type: boolean
+ volumeAttributes:
+ additionalProperties:
+ type: string
+ type: object
+ required:
+ - driver
+ type: object
+ downwardAPI:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
+ items:
+ properties:
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ emptyDir:
+ properties:
+ medium:
+ type: string
+ sizeLimit:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ ephemeral:
+ properties:
+ volumeClaimTemplate:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ accessModes:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ dataSource:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ x-kubernetes-map-type: atomic
+ dataSourceRef:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ resources:
+ properties:
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ selector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ storageClassName:
+ type: string
+ volumeAttributesClassName:
+ type: string
+ volumeMode:
+ type: string
+ volumeName:
+ type: string
+ type: object
+ required:
+ - spec
+ type: object
+ type: object
+ fc:
+ properties:
+ fsType:
+ type: string
+ lun:
+ format: int32
+ type: integer
+ readOnly:
+ type: boolean
+ targetWWNs:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ wwids:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ flexVolume:
+ properties:
+ driver:
+ type: string
+ fsType:
+ type: string
+ options:
+ additionalProperties:
+ type: string
+ type: object
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - driver
+ type: object
+ flocker:
+ properties:
+ datasetName:
+ type: string
+ datasetUUID:
+ type: string
+ type: object
+ gcePersistentDisk:
+ properties:
+ fsType:
+ type: string
+ partition:
+ format: int32
+ type: integer
+ pdName:
+ type: string
+ readOnly:
+ type: boolean
+ required:
+ - pdName
+ type: object
+ gitRepo:
+ properties:
+ directory:
+ type: string
+ repository:
+ type: string
+ revision:
+ type: string
+ required:
+ - repository
+ type: object
+ glusterfs:
+ properties:
+ endpoints:
+ type: string
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ required:
+ - endpoints
+ - path
+ type: object
+ hostPath:
+ properties:
+ path:
+ type: string
+ type:
+ type: string
+ required:
+ - path
+ type: object
+ image:
+ properties:
+ pullPolicy:
+ type: string
+ reference:
+ type: string
+ type: object
+ iscsi:
+ properties:
+ chapAuthDiscovery:
+ type: boolean
+ chapAuthSession:
+ type: boolean
+ fsType:
+ type: string
+ initiatorName:
+ type: string
+ iqn:
+ type: string
+ iscsiInterface:
+ default: default
+ type: string
+ lun:
+ format: int32
+ type: integer
+ portals:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ targetPortal:
+ type: string
+ required:
+ - iqn
+ - lun
+ - targetPortal
+ type: object
+ name:
+ type: string
+ nfs:
+ properties:
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ server:
+ type: string
+ required:
+ - path
+ - server
+ type: object
+ persistentVolumeClaim:
+ properties:
+ claimName:
+ type: string
+ readOnly:
+ type: boolean
+ required:
+ - claimName
+ type: object
+ photonPersistentDisk:
+ properties:
+ fsType:
+ type: string
+ pdID:
+ type: string
+ required:
+ - pdID
+ type: object
+ portworxVolume:
+ properties:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ projected:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ sources:
+ items:
+ properties:
+ clusterTrustBundle:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ name:
+ type: string
+ optional:
+ type: boolean
+ path:
+ type: string
+ signerName:
+ type: string
+ required:
+ - path
+ type: object
+ configMap:
+ properties:
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ downwardAPI:
+ properties:
+ items:
+ items:
+ properties:
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ podCertificate:
+ properties:
+ certificateChainPath:
+ type: string
+ credentialBundlePath:
+ type: string
+ keyPath:
+ type: string
+ keyType:
+ type: string
+ maxExpirationSeconds:
+ format: int32
+ type: integer
+ signerName:
+ type: string
+ required:
+ - keyType
+ - signerName
+ type: object
+ secret:
+ properties:
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ serviceAccountToken:
+ properties:
+ audience:
+ type: string
+ expirationSeconds:
+ format: int64
+ type: integer
+ path:
+ type: string
+ required:
+ - path
+ type: object
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ quobyte:
+ properties:
+ group:
+ type: string
+ readOnly:
+ type: boolean
+ registry:
+ type: string
+ tenant:
+ type: string
+ user:
+ type: string
+ volume:
+ type: string
+ required:
+ - registry
+ - volume
+ type: object
+ rbd:
+ properties:
+ fsType:
+ type: string
+ image:
+ type: string
+ keyring:
+ default: /etc/ceph/keyring
+ type: string
+ monitors:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ pool:
+ default: rbd
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ user:
+ default: admin
+ type: string
+ required:
+ - image
+ - monitors
+ type: object
+ scaleIO:
+ properties:
+ fsType:
+ default: xfs
+ type: string
+ gateway:
+ type: string
+ protectionDomain:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ sslEnabled:
+ type: boolean
+ storageMode:
+ default: ThinProvisioned
+ type: string
+ storagePool:
+ type: string
+ system:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - gateway
+ - secretRef
+ - system
+ type: object
+ secret:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ optional:
+ type: boolean
+ secretName:
+ type: string
+ type: object
+ storageos:
+ properties:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ volumeName:
+ type: string
+ volumeNamespace:
+ type: string
+ type: object
+ vsphereVolume:
+ properties:
+ fsType:
+ type: string
+ storagePolicyID:
+ type: string
+ storagePolicyName:
+ type: string
+ volumePath:
+ type: string
+ required:
+ - volumePath
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - config
+ - managementState
+ type: object
+ status:
+ properties:
+ image:
+ type: string
+ messages:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ replicas:
+ format: int32
+ type: integer
+ scale:
+ properties:
+ replicas:
+ format: int32
+ type: integer
+ selector:
+ type: string
+ statusReplicas:
+ type: string
+ type: object
+ version:
+ type: string
+ type: object
+ type: object
+ served: true
+ storage: false
+ subresources:
+ scale:
+ labelSelectorPath: .status.scale.selector
+ specReplicasPath: .spec.replicas
+ statusReplicasPath: .status.scale.replicas
+ status: {}
+ - additionalPrinterColumns:
+ - description: Deployment Mode
+ jsonPath: .spec.mode
+ name: Mode
+ type: string
+ - description: OpenTelemetry Version
+ jsonPath: .status.version
+ name: Version
+ type: string
+ - jsonPath: .status.scale.statusReplicas
+ name: Ready
+ type: string
+ - jsonPath: .metadata.creationTimestamp
+ name: Age
+ type: date
+ - jsonPath: .status.image
+ name: Image
+ type: string
+ - description: Management State
+ jsonPath: .spec.managementState
+ name: Management
+ type: string
+ name: v1beta1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ type: string
+ kind:
+ type: string
+ metadata:
+ type: object
+ spec:
+ properties:
+ additionalContainers:
+ items:
+ properties:
+ args:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ envFrom:
+ items:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ prefix:
+ type: string
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ image:
+ type: string
+ imagePullPolicy:
+ type: string
+ lifecycle:
+ properties:
+ postStart:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ preStop:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ stopSignal:
+ type: string
+ type: object
+ livenessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ name:
+ type: string
+ ports:
+ items:
+ properties:
+ containerPort:
+ format: int32
+ type: integer
+ hostIP:
+ type: string
+ hostPort:
+ format: int32
+ type: integer
+ name:
+ type: string
+ protocol:
+ default: TCP
+ type: string
+ required:
+ - containerPort
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - containerPort
+ - protocol
+ x-kubernetes-list-type: map
+ readinessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ resizePolicy:
+ items:
+ properties:
+ resourceName:
+ type: string
+ restartPolicy:
+ type: string
+ required:
+ - resourceName
+ - restartPolicy
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ resources:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ restartPolicy:
+ type: string
+ restartPolicyRules:
+ items:
+ properties:
+ action:
+ type: string
+ exitCodes:
+ properties:
+ operator:
+ type: string
+ values:
+ items:
+ format: int32
+ type: integer
+ type: array
+ x-kubernetes-list-type: set
+ required:
+ - operator
+ type: object
+ required:
+ - action
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ securityContext:
+ properties:
+ allowPrivilegeEscalation:
+ type: boolean
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ capabilities:
+ properties:
+ add:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ drop:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ privileged:
+ type: boolean
+ procMount:
+ type: string
+ readOnlyRootFilesystem:
+ type: boolean
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ startupProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ stdin:
+ type: boolean
+ stdinOnce:
+ type: boolean
+ terminationMessagePath:
+ type: string
+ terminationMessagePolicy:
+ type: string
+ tty:
+ type: boolean
+ volumeDevices:
+ items:
+ properties:
+ devicePath:
+ type: string
+ name:
+ type: string
+ required:
+ - devicePath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - devicePath
+ x-kubernetes-list-type: map
+ volumeMounts:
+ items:
+ properties:
+ mountPath:
+ type: string
+ mountPropagation:
+ type: string
+ name:
+ type: string
+ readOnly:
+ type: boolean
+ recursiveReadOnly:
+ type: string
+ subPath:
+ type: string
+ subPathExpr:
+ type: string
+ required:
+ - mountPath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - mountPath
+ x-kubernetes-list-type: map
+ workingDir:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ affinity:
+ properties:
+ nodeAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ preference:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchFields:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ x-kubernetes-map-type: atomic
+ weight:
+ format: int32
+ type: integer
+ required:
+ - preference
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ properties:
+ nodeSelectorTerms:
+ items:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchFields:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ x-kubernetes-map-type: atomic
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - nodeSelectorTerms
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ podAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ podAffinityTerm:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ weight:
+ format: int32
+ type: integer
+ required:
+ - podAffinityTerm
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ podAntiAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ podAffinityTerm:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ weight:
+ format: int32
+ type: integer
+ required:
+ - podAffinityTerm
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ type: object
+ args:
+ additionalProperties:
+ type: string
+ type: object
+ autoscaler:
+ properties:
+ behavior:
+ properties:
+ scaleDown:
+ properties:
+ policies:
+ items:
+ properties:
+ periodSeconds:
+ format: int32
+ type: integer
+ type:
+ type: string
+ value:
+ format: int32
+ type: integer
+ required:
+ - periodSeconds
+ - type
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ selectPolicy:
+ type: string
+ stabilizationWindowSeconds:
+ format: int32
+ type: integer
+ tolerance:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ scaleUp:
+ properties:
+ policies:
+ items:
+ properties:
+ periodSeconds:
+ format: int32
+ type: integer
+ type:
+ type: string
+ value:
+ format: int32
+ type: integer
+ required:
+ - periodSeconds
+ - type
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ selectPolicy:
+ type: string
+ stabilizationWindowSeconds:
+ format: int32
+ type: integer
+ tolerance:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ maxReplicas:
+ format: int32
+ minimum: 1
+ type: integer
+ metrics:
+ items:
+ properties:
+ pods:
+ properties:
+ metric:
+ properties:
+ name:
+ type: string
+ selector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - name
+ type: object
+ target:
+ properties:
+ averageUtilization:
+ format: int32
+ type: integer
+ averageValue:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type:
+ type: string
+ value:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ required:
+ - type
+ type: object
+ required:
+ - metric
+ - target
+ type: object
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ type: array
+ minReplicas:
+ format: int32
+ minimum: 1
+ type: integer
+ targetCPUUtilization:
+ format: int32
+ minimum: 1
+ type: integer
+ targetMemoryUtilization:
+ format: int32
+ minimum: 1
+ type: integer
+ type: object
+ config:
+ properties:
+ connectors:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ exporters:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ extensions:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ processors:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ receivers:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ service:
+ properties:
+ extensions:
+ items:
+ type: string
+ type: array
+ pipelines:
+ additionalProperties:
+ properties:
+ exporters:
+ items:
+ type: string
+ type: array
+ processors:
+ items:
+ type: string
+ type: array
+ receivers:
+ items:
+ type: string
+ type: array
+ required:
+ - exporters
+ - receivers
+ type: object
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ telemetry:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ required:
+ - pipelines
+ type: object
+ required:
+ - exporters
+ - receivers
+ - service
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ configVersions:
+ default: 3
+ minimum: 1
+ type: integer
+ configmaps:
+ items:
+ properties:
+ mountpath:
+ type: string
+ name:
+ type: string
+ required:
+ - mountpath
+ - name
+ type: object
+ type: array
+ daemonSetUpdateStrategy:
+ properties:
+ rollingUpdate:
+ properties:
+ maxSurge:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ maxUnavailable:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ type: object
+ type:
+ type: string
+ type: object
+ deploymentUpdateStrategy:
+ properties:
+ rollingUpdate:
+ properties:
+ maxSurge:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ maxUnavailable:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ type: object
+ type:
+ type: string
+ type: object
+ dnsPolicy:
+ type: string
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ envFrom:
+ items:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ prefix:
+ type: string
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ type: array
+ hostNetwork:
+ type: boolean
+ hostPID:
+ type: boolean
+ image:
+ type: string
+ imagePullPolicy:
+ type: string
+ ingress:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ hostname:
+ type: string
+ ingressClassName:
+ type: string
+ route:
+ properties:
+ termination:
+ enum:
+ - insecure
+ - edge
+ - passthrough
+ - reencrypt
+ type: string
+ type: object
+ ruleType:
+ enum:
+ - path
+ - subdomain
+ type: string
+ tls:
+ items:
+ properties:
+ hosts:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ secretName:
+ type: string
+ type: object
+ type: array
+ type:
+ enum:
+ - ingress
+ - route
+ type: string
+ type: object
+ initContainers:
+ items:
+ properties:
+ args:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ envFrom:
+ items:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ prefix:
+ type: string
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ image:
+ type: string
+ imagePullPolicy:
+ type: string
+ lifecycle:
+ properties:
+ postStart:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ preStop:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ stopSignal:
+ type: string
+ type: object
+ livenessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ name:
+ type: string
+ ports:
+ items:
+ properties:
+ containerPort:
+ format: int32
+ type: integer
+ hostIP:
+ type: string
+ hostPort:
+ format: int32
+ type: integer
+ name:
+ type: string
+ protocol:
+ default: TCP
+ type: string
+ required:
+ - containerPort
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - containerPort
+ - protocol
+ x-kubernetes-list-type: map
+ readinessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ resizePolicy:
+ items:
+ properties:
+ resourceName:
+ type: string
+ restartPolicy:
+ type: string
+ required:
+ - resourceName
+ - restartPolicy
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ resources:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ restartPolicy:
+ type: string
+ restartPolicyRules:
+ items:
+ properties:
+ action:
+ type: string
+ exitCodes:
+ properties:
+ operator:
+ type: string
+ values:
+ items:
+ format: int32
+ type: integer
+ type: array
+ x-kubernetes-list-type: set
+ required:
+ - operator
+ type: object
+ required:
+ - action
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ securityContext:
+ properties:
+ allowPrivilegeEscalation:
+ type: boolean
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ capabilities:
+ properties:
+ add:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ drop:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ privileged:
+ type: boolean
+ procMount:
+ type: string
+ readOnlyRootFilesystem:
+ type: boolean
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ startupProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ stdin:
+ type: boolean
+ stdinOnce:
+ type: boolean
+ terminationMessagePath:
+ type: string
+ terminationMessagePolicy:
+ type: string
+ tty:
+ type: boolean
+ volumeDevices:
+ items:
+ properties:
+ devicePath:
+ type: string
+ name:
+ type: string
+ required:
+ - devicePath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - devicePath
+ x-kubernetes-list-type: map
+ volumeMounts:
+ items:
+ properties:
+ mountPath:
+ type: string
+ mountPropagation:
+ type: string
+ name:
+ type: string
+ readOnly:
+ type: boolean
+ recursiveReadOnly:
+ type: string
+ subPath:
+ type: string
+ subPathExpr:
+ type: string
+ required:
+ - mountPath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - mountPath
+ x-kubernetes-list-type: map
+ workingDir:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ ipFamilies:
+ items:
+ type: string
+ type: array
+ ipFamilyPolicy:
+ default: SingleStack
+ type: string
+ lifecycle:
+ properties:
+ postStart:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ preStop:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ stopSignal:
+ type: string
+ type: object
+ livenessProbe:
+ properties:
+ failureThreshold:
+ format: int32
+ minimum: 1
+ type: integer
+ initialDelaySeconds:
+ format: int32
+ minimum: 0
+ type: integer
+ periodSeconds:
+ format: int32
+ minimum: 1
+ type: integer
+ successThreshold:
+ format: int32
+ minimum: 1
+ type: integer
+ terminationGracePeriodSeconds:
+ format: int64
+ minimum: 1
+ type: integer
+ timeoutSeconds:
+ format: int32
+ minimum: 1
+ type: integer
+ type: object
+ managementState:
+ default: managed
+ enum:
+ - managed
+ - unmanaged
+ type: string
+ mode:
+ enum:
+ - daemonset
+ - deployment
+ - sidecar
+ - statefulset
+ type: string
+ networkPolicy:
+ properties:
+ enabled:
+ type: boolean
+ type: object
+ nodeSelector:
+ additionalProperties:
+ type: string
+ type: object
+ observability:
+ properties:
+ metrics:
+ properties:
+ disablePrometheusAnnotations:
+ type: boolean
+ enableMetrics:
+ type: boolean
+ extraLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ type: object
+ persistentVolumeClaimRetentionPolicy:
+ properties:
+ whenDeleted:
+ type: string
+ whenScaled:
+ type: string
+ type: object
+ podAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ podDisruptionBudget:
+ properties:
+ maxUnavailable:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ minAvailable:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ type: object
+ podDnsConfig:
+ properties:
+ nameservers:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ options:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ searches:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ podSecurityContext:
+ properties:
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ fsGroup:
+ format: int64
+ type: integer
+ fsGroupChangePolicy:
+ type: string
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxChangePolicy:
+ type: string
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ supplementalGroups:
+ items:
+ format: int64
+ type: integer
+ type: array
+ x-kubernetes-list-type: atomic
+ supplementalGroupsPolicy:
+ type: string
+ sysctls:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ ports:
+ items:
+ properties:
+ appProtocol:
+ type: string
+ hostPort:
+ format: int32
+ maximum: 65535
+ minimum: 0
+ type: integer
+ name:
+ type: string
+ nodePort:
+ format: int32
+ type: integer
+ port:
+ format: int32
+ type: integer
+ protocol:
+ default: TCP
+ type: string
+ targetPort:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ priorityClassName:
+ type: string
+ readinessProbe:
+ properties:
+ failureThreshold:
+ format: int32
+ minimum: 1
+ type: integer
+ initialDelaySeconds:
+ format: int32
+ minimum: 0
+ type: integer
+ periodSeconds:
+ format: int32
+ minimum: 1
+ type: integer
+ successThreshold:
+ format: int32
+ minimum: 1
+ type: integer
+ terminationGracePeriodSeconds:
+ format: int64
+ minimum: 1
+ type: integer
+ timeoutSeconds:
+ format: int32
+ minimum: 1
+ type: integer
+ type: object
+ replicas:
+ default: 1
+ format: int32
+ type: integer
+ resources:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ securityContext:
+ properties:
+ allowPrivilegeEscalation:
+ type: boolean
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ capabilities:
+ properties:
+ add:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ drop:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ privileged:
+ type: boolean
+ procMount:
+ type: string
+ readOnlyRootFilesystem:
+ type: boolean
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ serviceAccount:
+ type: string
+ serviceName:
+ type: string
+ shareProcessNamespace:
+ type: boolean
+ startupProbe:
+ properties:
+ failureThreshold:
+ format: int32
+ minimum: 1
+ type: integer
+ initialDelaySeconds:
+ format: int32
+ minimum: 0
+ type: integer
+ periodSeconds:
+ format: int32
+ minimum: 1
+ type: integer
+ successThreshold:
+ format: int32
+ minimum: 1
+ type: integer
+ terminationGracePeriodSeconds:
+ format: int64
+ minimum: 1
+ type: integer
+ timeoutSeconds:
+ format: int32
+ minimum: 1
+ type: integer
+ type: object
+ targetAllocator:
+ properties:
+ affinity:
+ properties:
+ nodeAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ preference:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchFields:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ x-kubernetes-map-type: atomic
+ weight:
+ format: int32
+ type: integer
+ required:
+ - preference
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ properties:
+ nodeSelectorTerms:
+ items:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchFields:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ x-kubernetes-map-type: atomic
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - nodeSelectorTerms
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ podAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ podAffinityTerm:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ weight:
+ format: int32
+ type: integer
+ required:
+ - podAffinityTerm
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ podAntiAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ podAffinityTerm:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ weight:
+ format: int32
+ type: integer
+ required:
+ - podAffinityTerm
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ type: object
+ allocationStrategy:
+ default: consistent-hashing
+ enum:
+ - least-weighted
+ - consistent-hashing
+ - per-node
+ type: string
+ collectorNotReadyGracePeriod:
+ default: 30s
+ format: duration
+ type: string
+ collectorTargetReloadInterval:
+ default: 30s
+ format: duration
+ type: string
+ enabled:
+ type: boolean
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ filterStrategy:
+ default: relabel-config
+ enum:
+ - ""
+ - relabel-config
+ type: string
+ image:
+ type: string
+ nodeSelector:
+ additionalProperties:
+ type: string
+ type: object
+ observability:
+ properties:
+ metrics:
+ properties:
+ disablePrometheusAnnotations:
+ type: boolean
+ enableMetrics:
+ type: boolean
+ extraLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ type: object
+ podDisruptionBudget:
+ properties:
+ maxUnavailable:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ minAvailable:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ type: object
+ podSecurityContext:
+ properties:
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ fsGroup:
+ format: int64
+ type: integer
+ fsGroupChangePolicy:
+ type: string
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxChangePolicy:
+ type: string
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ supplementalGroups:
+ items:
+ format: int64
+ type: integer
+ type: array
+ x-kubernetes-list-type: atomic
+ supplementalGroupsPolicy:
+ type: string
+ sysctls:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ prometheusCR:
+ properties:
+ allowNamespaces:
+ items:
+ type: string
+ type: array
+ denyNamespaces:
+ items:
+ type: string
+ type: array
+ enabled:
+ type: boolean
+ podMonitorSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ probeSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ scrapeClasses:
+ items:
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ x-kubernetes-preserve-unknown-fields: true
+ scrapeConfigSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ scrapeInterval:
+ default: 30s
+ format: duration
+ type: string
+ serviceMonitorSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ replicas:
+ format: int32
+ type: integer
+ resources:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ securityContext:
+ properties:
+ allowPrivilegeEscalation:
+ type: boolean
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ capabilities:
+ properties:
+ add:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ drop:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ privileged:
+ type: boolean
+ procMount:
+ type: string
+ readOnlyRootFilesystem:
+ type: boolean
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ serviceAccount:
+ type: string
+ tolerations:
+ items:
+ properties:
+ effect:
+ type: string
+ key:
+ type: string
+ operator:
+ type: string
+ tolerationSeconds:
+ format: int64
+ type: integer
+ value:
+ type: string
+ type: object
+ type: array
+ topologySpreadConstraints:
+ items:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ maxSkew:
+ format: int32
+ type: integer
+ minDomains:
+ format: int32
+ type: integer
+ nodeAffinityPolicy:
+ type: string
+ nodeTaintsPolicy:
+ type: string
+ topologyKey:
+ type: string
+ whenUnsatisfiable:
+ type: string
+ required:
+ - maxSkew
+ - topologyKey
+ - whenUnsatisfiable
+ type: object
+ type: array
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ tolerations:
+ items:
+ properties:
+ effect:
+ type: string
+ key:
+ type: string
+ operator:
+ type: string
+ tolerationSeconds:
+ format: int64
+ type: integer
+ value:
+ type: string
+ type: object
+ type: array
+ topologySpreadConstraints:
+ items:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ maxSkew:
+ format: int32
+ type: integer
+ minDomains:
+ format: int32
+ type: integer
+ nodeAffinityPolicy:
+ type: string
+ nodeTaintsPolicy:
+ type: string
+ topologyKey:
+ type: string
+ whenUnsatisfiable:
+ type: string
+ required:
+ - maxSkew
+ - topologyKey
+ - whenUnsatisfiable
+ type: object
+ type: array
+ trafficDistribution:
+ type: string
+ upgradeStrategy:
+ enum:
+ - automatic
+ - none
+ type: string
+ volumeClaimTemplates:
+ items:
+ properties:
+ apiVersion:
+ type: string
+ kind:
+ type: string
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ accessModes:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ dataSource:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ x-kubernetes-map-type: atomic
+ dataSourceRef:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ resources:
+ properties:
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ selector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ storageClassName:
+ type: string
+ volumeAttributesClassName:
+ type: string
+ volumeMode:
+ type: string
+ volumeName:
+ type: string
+ type: object
+ status:
+ properties:
+ accessModes:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ allocatedResourceStatuses:
+ additionalProperties:
+ type: string
+ type: object
+ x-kubernetes-map-type: granular
+ allocatedResources:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ capacity:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ conditions:
+ items:
+ properties:
+ lastProbeTime:
+ format: date-time
+ type: string
+ lastTransitionTime:
+ format: date-time
+ type: string
+ message:
+ type: string
+ reason:
+ type: string
+ status:
+ type: string
+ type:
+ type: string
+ required:
+ - status
+ - type
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - type
+ x-kubernetes-list-type: map
+ currentVolumeAttributesClassName:
+ type: string
+ modifyVolumeStatus:
+ properties:
+ status:
+ type: string
+ targetVolumeAttributesClassName:
+ type: string
+ required:
+ - status
+ type: object
+ phase:
+ type: string
+ type: object
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ volumeMounts:
+ items:
+ properties:
+ mountPath:
+ type: string
+ mountPropagation:
+ type: string
+ name:
+ type: string
+ readOnly:
+ type: boolean
+ recursiveReadOnly:
+ type: string
+ subPath:
+ type: string
+ subPathExpr:
+ type: string
+ required:
+ - mountPath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ volumes:
+ items:
+ properties:
+ awsElasticBlockStore:
+ properties:
+ fsType:
+ type: string
+ partition:
+ format: int32
+ type: integer
+ readOnly:
+ type: boolean
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ azureDisk:
+ properties:
+ cachingMode:
+ type: string
+ diskName:
+ type: string
+ diskURI:
+ type: string
+ fsType:
+ default: ext4
+ type: string
+ kind:
+ type: string
+ readOnly:
+ default: false
+ type: boolean
+ required:
+ - diskName
+ - diskURI
+ type: object
+ azureFile:
+ properties:
+ readOnly:
+ type: boolean
+ secretName:
+ type: string
+ shareName:
+ type: string
+ required:
+ - secretName
+ - shareName
+ type: object
+ cephfs:
+ properties:
+ monitors:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ secretFile:
+ type: string
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ user:
+ type: string
+ required:
+ - monitors
+ type: object
+ cinder:
+ properties:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ configMap:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ csi:
+ properties:
+ driver:
+ type: string
+ fsType:
+ type: string
+ nodePublishSecretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ readOnly:
+ type: boolean
+ volumeAttributes:
+ additionalProperties:
+ type: string
+ type: object
+ required:
+ - driver
+ type: object
+ downwardAPI:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
+ items:
+ properties:
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ emptyDir:
+ properties:
+ medium:
+ type: string
+ sizeLimit:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ ephemeral:
+ properties:
+ volumeClaimTemplate:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ accessModes:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ dataSource:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ x-kubernetes-map-type: atomic
+ dataSourceRef:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ resources:
+ properties:
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ selector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ storageClassName:
+ type: string
+ volumeAttributesClassName:
+ type: string
+ volumeMode:
+ type: string
+ volumeName:
+ type: string
+ type: object
+ required:
+ - spec
+ type: object
+ type: object
+ fc:
+ properties:
+ fsType:
+ type: string
+ lun:
+ format: int32
+ type: integer
+ readOnly:
+ type: boolean
+ targetWWNs:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ wwids:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ flexVolume:
+ properties:
+ driver:
+ type: string
+ fsType:
+ type: string
+ options:
+ additionalProperties:
+ type: string
+ type: object
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - driver
+ type: object
+ flocker:
+ properties:
+ datasetName:
+ type: string
+ datasetUUID:
+ type: string
+ type: object
+ gcePersistentDisk:
+ properties:
+ fsType:
+ type: string
+ partition:
+ format: int32
+ type: integer
+ pdName:
+ type: string
+ readOnly:
+ type: boolean
+ required:
+ - pdName
+ type: object
+ gitRepo:
+ properties:
+ directory:
+ type: string
+ repository:
+ type: string
+ revision:
+ type: string
+ required:
+ - repository
+ type: object
+ glusterfs:
+ properties:
+ endpoints:
+ type: string
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ required:
+ - endpoints
+ - path
+ type: object
+ hostPath:
+ properties:
+ path:
+ type: string
+ type:
+ type: string
+ required:
+ - path
+ type: object
+ image:
+ properties:
+ pullPolicy:
+ type: string
+ reference:
+ type: string
+ type: object
+ iscsi:
+ properties:
+ chapAuthDiscovery:
+ type: boolean
+ chapAuthSession:
+ type: boolean
+ fsType:
+ type: string
+ initiatorName:
+ type: string
+ iqn:
+ type: string
+ iscsiInterface:
+ default: default
+ type: string
+ lun:
+ format: int32
+ type: integer
+ portals:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ targetPortal:
+ type: string
+ required:
+ - iqn
+ - lun
+ - targetPortal
+ type: object
+ name:
+ type: string
+ nfs:
+ properties:
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ server:
+ type: string
+ required:
+ - path
+ - server
+ type: object
+ persistentVolumeClaim:
+ properties:
+ claimName:
+ type: string
+ readOnly:
+ type: boolean
+ required:
+ - claimName
+ type: object
+ photonPersistentDisk:
+ properties:
+ fsType:
+ type: string
+ pdID:
+ type: string
+ required:
+ - pdID
+ type: object
+ portworxVolume:
+ properties:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ projected:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ sources:
+ items:
+ properties:
+ clusterTrustBundle:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ name:
+ type: string
+ optional:
+ type: boolean
+ path:
+ type: string
+ signerName:
+ type: string
+ required:
+ - path
+ type: object
+ configMap:
+ properties:
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ downwardAPI:
+ properties:
+ items:
+ items:
+ properties:
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ podCertificate:
+ properties:
+ certificateChainPath:
+ type: string
+ credentialBundlePath:
+ type: string
+ keyPath:
+ type: string
+ keyType:
+ type: string
+ maxExpirationSeconds:
+ format: int32
+ type: integer
+ signerName:
+ type: string
+ required:
+ - keyType
+ - signerName
+ type: object
+ secret:
+ properties:
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ serviceAccountToken:
+ properties:
+ audience:
+ type: string
+ expirationSeconds:
+ format: int64
+ type: integer
+ path:
+ type: string
+ required:
+ - path
+ type: object
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ quobyte:
+ properties:
+ group:
+ type: string
+ readOnly:
+ type: boolean
+ registry:
+ type: string
+ tenant:
+ type: string
+ user:
+ type: string
+ volume:
+ type: string
+ required:
+ - registry
+ - volume
+ type: object
+ rbd:
+ properties:
+ fsType:
+ type: string
+ image:
+ type: string
+ keyring:
+ default: /etc/ceph/keyring
+ type: string
+ monitors:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ pool:
+ default: rbd
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ user:
+ default: admin
+ type: string
+ required:
+ - image
+ - monitors
+ type: object
+ scaleIO:
+ properties:
+ fsType:
+ default: xfs
+ type: string
+ gateway:
+ type: string
+ protectionDomain:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ sslEnabled:
+ type: boolean
+ storageMode:
+ default: ThinProvisioned
+ type: string
+ storagePool:
+ type: string
+ system:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - gateway
+ - secretRef
+ - system
+ type: object
+ secret:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ optional:
+ type: boolean
+ secretName:
+ type: string
+ type: object
+ storageos:
+ properties:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ volumeName:
+ type: string
+ volumeNamespace:
+ type: string
+ type: object
+ vsphereVolume:
+ properties:
+ fsType:
+ type: string
+ storagePolicyID:
+ type: string
+ storagePolicyName:
+ type: string
+ volumePath:
+ type: string
+ required:
+ - volumePath
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - config
+ type: object
+ x-kubernetes-validations:
+ - message: the OpenTelemetry Collector mode is set to sidecar, which does
+ not support the attribute 'tolerations'
+ rule: '!(self.mode == ''sidecar'' && size(self.tolerations) > 0) ||
+ !has(self.tolerations)'
+ - message: the OpenTelemetry Collector mode is set to sidecar, which does
+ not support the attribute 'priorityClassName'
+ rule: '!(self.mode == ''sidecar'' && self.priorityClassName != '''')
+ || !has(self.priorityClassName)'
+ - message: the OpenTelemetry Collector mode is set to sidecar, which does
+ not support the attribute 'affinity'
+ rule: '!(self.mode == ''sidecar'' && self.affinity != null) || !has(self.affinity)'
+ - message: the OpenTelemetry Collector mode is set to sidecar, which does
+ not support the attribute 'additionalContainers'
+ rule: '!(self.mode == ''sidecar'' && size(self.additionalContainers)
+ > 0) || !has(self.additionalContainers)'
+ status:
+ properties:
+ image:
+ type: string
+ scale:
+ properties:
+ replicas:
+ format: int32
+ type: integer
+ selector:
+ type: string
+ statusReplicas:
+ type: string
+ type: object
+ version:
+ type: string
+ type: object
+ type: object
+ served: true
+ storage: true
+ subresources:
+ scale:
+ labelSelectorPath: .status.scale.selector
+ specReplicasPath: .spec.replicas
+ statusReplicasPath: .status.scale.replicas
+ status: {}
diff --git a/charts/opentelemetry-kube-stack/charts/otel-crds/crds/opentelemetry.io_targetallocators.yaml b/charts/opentelemetry-kube-stack/charts/otel-crds/crds/opentelemetry.io_targetallocators.yaml
new file mode 100644
index 00000000..d6c05b71
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/charts/otel-crds/crds/opentelemetry.io_targetallocators.yaml
@@ -0,0 +1,3713 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.20.0
+ name: targetallocators.opentelemetry.io
+spec:
+ group: opentelemetry.io
+ names:
+ kind: TargetAllocator
+ listKind: TargetAllocatorList
+ plural: targetallocators
+ singular: targetallocator
+ scope: Namespaced
+ versions:
+ - additionalPrinterColumns:
+ - jsonPath: .metadata.creationTimestamp
+ name: Age
+ type: date
+ - jsonPath: .status.image
+ name: Image
+ type: string
+ - description: Management State
+ jsonPath: .spec.managementState
+ name: Management
+ type: string
+ name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ type: string
+ kind:
+ type: string
+ metadata:
+ type: object
+ spec:
+ properties:
+ additionalContainers:
+ items:
+ properties:
+ args:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ envFrom:
+ items:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ prefix:
+ type: string
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ image:
+ type: string
+ imagePullPolicy:
+ type: string
+ lifecycle:
+ properties:
+ postStart:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ preStop:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ stopSignal:
+ type: string
+ type: object
+ livenessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ name:
+ type: string
+ ports:
+ items:
+ properties:
+ containerPort:
+ format: int32
+ type: integer
+ hostIP:
+ type: string
+ hostPort:
+ format: int32
+ type: integer
+ name:
+ type: string
+ protocol:
+ default: TCP
+ type: string
+ required:
+ - containerPort
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - containerPort
+ - protocol
+ x-kubernetes-list-type: map
+ readinessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ resizePolicy:
+ items:
+ properties:
+ resourceName:
+ type: string
+ restartPolicy:
+ type: string
+ required:
+ - resourceName
+ - restartPolicy
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ resources:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ restartPolicy:
+ type: string
+ restartPolicyRules:
+ items:
+ properties:
+ action:
+ type: string
+ exitCodes:
+ properties:
+ operator:
+ type: string
+ values:
+ items:
+ format: int32
+ type: integer
+ type: array
+ x-kubernetes-list-type: set
+ required:
+ - operator
+ type: object
+ required:
+ - action
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ securityContext:
+ properties:
+ allowPrivilegeEscalation:
+ type: boolean
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ capabilities:
+ properties:
+ add:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ drop:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ privileged:
+ type: boolean
+ procMount:
+ type: string
+ readOnlyRootFilesystem:
+ type: boolean
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ startupProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ stdin:
+ type: boolean
+ stdinOnce:
+ type: boolean
+ terminationMessagePath:
+ type: string
+ terminationMessagePolicy:
+ type: string
+ tty:
+ type: boolean
+ volumeDevices:
+ items:
+ properties:
+ devicePath:
+ type: string
+ name:
+ type: string
+ required:
+ - devicePath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - devicePath
+ x-kubernetes-list-type: map
+ volumeMounts:
+ items:
+ properties:
+ mountPath:
+ type: string
+ mountPropagation:
+ type: string
+ name:
+ type: string
+ readOnly:
+ type: boolean
+ recursiveReadOnly:
+ type: string
+ subPath:
+ type: string
+ subPathExpr:
+ type: string
+ required:
+ - mountPath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - mountPath
+ x-kubernetes-list-type: map
+ workingDir:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ affinity:
+ properties:
+ nodeAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ preference:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchFields:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ x-kubernetes-map-type: atomic
+ weight:
+ format: int32
+ type: integer
+ required:
+ - preference
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ properties:
+ nodeSelectorTerms:
+ items:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchFields:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ x-kubernetes-map-type: atomic
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - nodeSelectorTerms
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ podAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ podAffinityTerm:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ weight:
+ format: int32
+ type: integer
+ required:
+ - podAffinityTerm
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ podAntiAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ podAffinityTerm:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ weight:
+ format: int32
+ type: integer
+ required:
+ - podAffinityTerm
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ type: object
+ allocationStrategy:
+ default: consistent-hashing
+ enum:
+ - least-weighted
+ - consistent-hashing
+ - per-node
+ type: string
+ args:
+ additionalProperties:
+ type: string
+ type: object
+ collectorNotReadyGracePeriod:
+ default: 30s
+ format: duration
+ type: string
+ dnsPolicy:
+ type: string
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ envFrom:
+ items:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ prefix:
+ type: string
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ type: array
+ filterStrategy:
+ default: relabel-config
+ enum:
+ - ""
+ - relabel-config
+ type: string
+ global:
+ type: object
+ hostNetwork:
+ type: boolean
+ hostPID:
+ type: boolean
+ image:
+ type: string
+ imagePullPolicy:
+ type: string
+ initContainers:
+ items:
+ properties:
+ args:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ envFrom:
+ items:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ prefix:
+ type: string
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ image:
+ type: string
+ imagePullPolicy:
+ type: string
+ lifecycle:
+ properties:
+ postStart:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ preStop:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ stopSignal:
+ type: string
+ type: object
+ livenessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ name:
+ type: string
+ ports:
+ items:
+ properties:
+ containerPort:
+ format: int32
+ type: integer
+ hostIP:
+ type: string
+ hostPort:
+ format: int32
+ type: integer
+ name:
+ type: string
+ protocol:
+ default: TCP
+ type: string
+ required:
+ - containerPort
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - containerPort
+ - protocol
+ x-kubernetes-list-type: map
+ readinessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ resizePolicy:
+ items:
+ properties:
+ resourceName:
+ type: string
+ restartPolicy:
+ type: string
+ required:
+ - resourceName
+ - restartPolicy
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ resources:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ restartPolicy:
+ type: string
+ restartPolicyRules:
+ items:
+ properties:
+ action:
+ type: string
+ exitCodes:
+ properties:
+ operator:
+ type: string
+ values:
+ items:
+ format: int32
+ type: integer
+ type: array
+ x-kubernetes-list-type: set
+ required:
+ - operator
+ type: object
+ required:
+ - action
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ securityContext:
+ properties:
+ allowPrivilegeEscalation:
+ type: boolean
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ capabilities:
+ properties:
+ add:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ drop:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ privileged:
+ type: boolean
+ procMount:
+ type: string
+ readOnlyRootFilesystem:
+ type: boolean
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ startupProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ stdin:
+ type: boolean
+ stdinOnce:
+ type: boolean
+ terminationMessagePath:
+ type: string
+ terminationMessagePolicy:
+ type: string
+ tty:
+ type: boolean
+ volumeDevices:
+ items:
+ properties:
+ devicePath:
+ type: string
+ name:
+ type: string
+ required:
+ - devicePath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - devicePath
+ x-kubernetes-list-type: map
+ volumeMounts:
+ items:
+ properties:
+ mountPath:
+ type: string
+ mountPropagation:
+ type: string
+ name:
+ type: string
+ readOnly:
+ type: boolean
+ recursiveReadOnly:
+ type: string
+ subPath:
+ type: string
+ subPathExpr:
+ type: string
+ required:
+ - mountPath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - mountPath
+ x-kubernetes-list-type: map
+ workingDir:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ ipFamilies:
+ items:
+ type: string
+ type: array
+ ipFamilyPolicy:
+ default: SingleStack
+ type: string
+ lifecycle:
+ properties:
+ postStart:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ preStop:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ stopSignal:
+ type: string
+ type: object
+ livenessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ managementState:
+ default: managed
+ enum:
+ - managed
+ - unmanaged
+ type: string
+ networkPolicy:
+ properties:
+ enabled:
+ type: boolean
+ type: object
+ nodeSelector:
+ additionalProperties:
+ type: string
+ type: object
+ observability:
+ properties:
+ metrics:
+ properties:
+ disablePrometheusAnnotations:
+ type: boolean
+ enableMetrics:
+ type: boolean
+ extraLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ type: object
+ podAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ podDisruptionBudget:
+ properties:
+ maxUnavailable:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ minAvailable:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ type: object
+ podDnsConfig:
+ properties:
+ nameservers:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ options:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ searches:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ podSecurityContext:
+ properties:
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ fsGroup:
+ format: int64
+ type: integer
+ fsGroupChangePolicy:
+ type: string
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxChangePolicy:
+ type: string
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ supplementalGroups:
+ items:
+ format: int64
+ type: integer
+ type: array
+ x-kubernetes-list-type: atomic
+ supplementalGroupsPolicy:
+ type: string
+ sysctls:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ ports:
+ items:
+ properties:
+ appProtocol:
+ type: string
+ hostPort:
+ format: int32
+ maximum: 65535
+ minimum: 0
+ type: integer
+ name:
+ type: string
+ nodePort:
+ format: int32
+ type: integer
+ port:
+ format: int32
+ type: integer
+ protocol:
+ default: TCP
+ type: string
+ targetPort:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ priorityClassName:
+ type: string
+ prometheusCR:
+ properties:
+ allowNamespaces:
+ items:
+ type: string
+ type: array
+ denyNamespaces:
+ items:
+ type: string
+ type: array
+ enabled:
+ type: boolean
+ podMonitorSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ probeSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ scrapeClasses:
+ items:
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ x-kubernetes-preserve-unknown-fields: true
+ scrapeConfigSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ scrapeInterval:
+ default: 30s
+ format: duration
+ type: string
+ serviceMonitorSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ readinessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ replicas:
+ default: 1
+ format: int32
+ type: integer
+ resources:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ scrapeConfigs:
+ items:
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ x-kubernetes-preserve-unknown-fields: true
+ securityContext:
+ properties:
+ allowPrivilegeEscalation:
+ type: boolean
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ capabilities:
+ properties:
+ add:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ drop:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ privileged:
+ type: boolean
+ procMount:
+ type: string
+ readOnlyRootFilesystem:
+ type: boolean
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ serviceAccount:
+ type: string
+ shareProcessNamespace:
+ type: boolean
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ tolerations:
+ items:
+ properties:
+ effect:
+ type: string
+ key:
+ type: string
+ operator:
+ type: string
+ tolerationSeconds:
+ format: int64
+ type: integer
+ value:
+ type: string
+ type: object
+ type: array
+ topologySpreadConstraints:
+ items:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ maxSkew:
+ format: int32
+ type: integer
+ minDomains:
+ format: int32
+ type: integer
+ nodeAffinityPolicy:
+ type: string
+ nodeTaintsPolicy:
+ type: string
+ topologyKey:
+ type: string
+ whenUnsatisfiable:
+ type: string
+ required:
+ - maxSkew
+ - topologyKey
+ - whenUnsatisfiable
+ type: object
+ type: array
+ trafficDistribution:
+ type: string
+ volumeMounts:
+ items:
+ properties:
+ mountPath:
+ type: string
+ mountPropagation:
+ type: string
+ name:
+ type: string
+ readOnly:
+ type: boolean
+ recursiveReadOnly:
+ type: string
+ subPath:
+ type: string
+ subPathExpr:
+ type: string
+ required:
+ - mountPath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ volumes:
+ items:
+ properties:
+ awsElasticBlockStore:
+ properties:
+ fsType:
+ type: string
+ partition:
+ format: int32
+ type: integer
+ readOnly:
+ type: boolean
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ azureDisk:
+ properties:
+ cachingMode:
+ type: string
+ diskName:
+ type: string
+ diskURI:
+ type: string
+ fsType:
+ default: ext4
+ type: string
+ kind:
+ type: string
+ readOnly:
+ default: false
+ type: boolean
+ required:
+ - diskName
+ - diskURI
+ type: object
+ azureFile:
+ properties:
+ readOnly:
+ type: boolean
+ secretName:
+ type: string
+ shareName:
+ type: string
+ required:
+ - secretName
+ - shareName
+ type: object
+ cephfs:
+ properties:
+ monitors:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ secretFile:
+ type: string
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ user:
+ type: string
+ required:
+ - monitors
+ type: object
+ cinder:
+ properties:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ configMap:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ csi:
+ properties:
+ driver:
+ type: string
+ fsType:
+ type: string
+ nodePublishSecretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ readOnly:
+ type: boolean
+ volumeAttributes:
+ additionalProperties:
+ type: string
+ type: object
+ required:
+ - driver
+ type: object
+ downwardAPI:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
+ items:
+ properties:
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ emptyDir:
+ properties:
+ medium:
+ type: string
+ sizeLimit:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ ephemeral:
+ properties:
+ volumeClaimTemplate:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ accessModes:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ dataSource:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ x-kubernetes-map-type: atomic
+ dataSourceRef:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ resources:
+ properties:
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ selector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ storageClassName:
+ type: string
+ volumeAttributesClassName:
+ type: string
+ volumeMode:
+ type: string
+ volumeName:
+ type: string
+ type: object
+ required:
+ - spec
+ type: object
+ type: object
+ fc:
+ properties:
+ fsType:
+ type: string
+ lun:
+ format: int32
+ type: integer
+ readOnly:
+ type: boolean
+ targetWWNs:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ wwids:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ flexVolume:
+ properties:
+ driver:
+ type: string
+ fsType:
+ type: string
+ options:
+ additionalProperties:
+ type: string
+ type: object
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - driver
+ type: object
+ flocker:
+ properties:
+ datasetName:
+ type: string
+ datasetUUID:
+ type: string
+ type: object
+ gcePersistentDisk:
+ properties:
+ fsType:
+ type: string
+ partition:
+ format: int32
+ type: integer
+ pdName:
+ type: string
+ readOnly:
+ type: boolean
+ required:
+ - pdName
+ type: object
+ gitRepo:
+ properties:
+ directory:
+ type: string
+ repository:
+ type: string
+ revision:
+ type: string
+ required:
+ - repository
+ type: object
+ glusterfs:
+ properties:
+ endpoints:
+ type: string
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ required:
+ - endpoints
+ - path
+ type: object
+ hostPath:
+ properties:
+ path:
+ type: string
+ type:
+ type: string
+ required:
+ - path
+ type: object
+ image:
+ properties:
+ pullPolicy:
+ type: string
+ reference:
+ type: string
+ type: object
+ iscsi:
+ properties:
+ chapAuthDiscovery:
+ type: boolean
+ chapAuthSession:
+ type: boolean
+ fsType:
+ type: string
+ initiatorName:
+ type: string
+ iqn:
+ type: string
+ iscsiInterface:
+ default: default
+ type: string
+ lun:
+ format: int32
+ type: integer
+ portals:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ targetPortal:
+ type: string
+ required:
+ - iqn
+ - lun
+ - targetPortal
+ type: object
+ name:
+ type: string
+ nfs:
+ properties:
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ server:
+ type: string
+ required:
+ - path
+ - server
+ type: object
+ persistentVolumeClaim:
+ properties:
+ claimName:
+ type: string
+ readOnly:
+ type: boolean
+ required:
+ - claimName
+ type: object
+ photonPersistentDisk:
+ properties:
+ fsType:
+ type: string
+ pdID:
+ type: string
+ required:
+ - pdID
+ type: object
+ portworxVolume:
+ properties:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ projected:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ sources:
+ items:
+ properties:
+ clusterTrustBundle:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ name:
+ type: string
+ optional:
+ type: boolean
+ path:
+ type: string
+ signerName:
+ type: string
+ required:
+ - path
+ type: object
+ configMap:
+ properties:
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ downwardAPI:
+ properties:
+ items:
+ items:
+ properties:
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ podCertificate:
+ properties:
+ certificateChainPath:
+ type: string
+ credentialBundlePath:
+ type: string
+ keyPath:
+ type: string
+ keyType:
+ type: string
+ maxExpirationSeconds:
+ format: int32
+ type: integer
+ signerName:
+ type: string
+ required:
+ - keyType
+ - signerName
+ type: object
+ secret:
+ properties:
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ serviceAccountToken:
+ properties:
+ audience:
+ type: string
+ expirationSeconds:
+ format: int64
+ type: integer
+ path:
+ type: string
+ required:
+ - path
+ type: object
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ quobyte:
+ properties:
+ group:
+ type: string
+ readOnly:
+ type: boolean
+ registry:
+ type: string
+ tenant:
+ type: string
+ user:
+ type: string
+ volume:
+ type: string
+ required:
+ - registry
+ - volume
+ type: object
+ rbd:
+ properties:
+ fsType:
+ type: string
+ image:
+ type: string
+ keyring:
+ default: /etc/ceph/keyring
+ type: string
+ monitors:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ pool:
+ default: rbd
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ user:
+ default: admin
+ type: string
+ required:
+ - image
+ - monitors
+ type: object
+ scaleIO:
+ properties:
+ fsType:
+ default: xfs
+ type: string
+ gateway:
+ type: string
+ protectionDomain:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ sslEnabled:
+ type: boolean
+ storageMode:
+ default: ThinProvisioned
+ type: string
+ storagePool:
+ type: string
+ system:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - gateway
+ - secretRef
+ - system
+ type: object
+ secret:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ optional:
+ type: boolean
+ secretName:
+ type: string
+ type: object
+ storageos:
+ properties:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ volumeName:
+ type: string
+ volumeNamespace:
+ type: string
+ type: object
+ vsphereVolume:
+ properties:
+ fsType:
+ type: string
+ storagePolicyID:
+ type: string
+ storagePolicyName:
+ type: string
+ volumePath:
+ type: string
+ required:
+ - volumePath
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ status:
+ properties:
+ image:
+ type: string
+ version:
+ type: string
+ type: object
+ type: object
+ served: true
+ storage: true
+ subresources:
+ status: {}
diff --git a/charts/opentelemetry-kube-stack/charts/prometheus-crds/Chart.yaml b/charts/opentelemetry-kube-stack/charts/prometheus-crds/Chart.yaml
new file mode 100644
index 00000000..31947b92
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/charts/prometheus-crds/Chart.yaml
@@ -0,0 +1,3 @@
+apiVersion: v2
+name: prometheus-crds
+version: 0.0.0
diff --git a/charts/opentelemetry-kube-stack/charts/prometheus-crds/README.md b/charts/opentelemetry-kube-stack/charts/prometheus-crds/README.md
new file mode 100644
index 00000000..07e34513
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/charts/prometheus-crds/README.md
@@ -0,0 +1,20 @@
+# OpenTelemetry Collector CRDs
+
+This chart contains the CRDs for _*installation*_ only right now for the opentelemetry-operator. This allows the OpenTelemetry Kubernetes Stack chart to work on install. You can see more discussion about this [here](https://github.com/open-telemetry/opentelemetry-helm-charts/issues/677) and [here](https://github.com/open-telemetry/opentelemetry-helm-charts/pull/1203).
+
+This approach is inspired by the kube-prometheus-stack approach which you can see discussion on [here](https://github.com/prometheus-community/helm-charts/issues/3548).
+
+> [!NOTE]
+> This chart explicitly _does not_ support the conversion webhook that is currently in the opentelemetry-operator chart. This is because the opentelemetry-kube-stack chart will only work with v1beta1 CRDs. This chart is not meant for use with v1alpha1 Collector CRDs.
+
+# Upgrade Notes
+
+Right now, upgrades are NOT handled by this chart, however that could change in the future. This is what is run to bring in the CRDs today.
+
+> [!NOTE]
+> The prometheus operator version should be equal to what is documented in the opentelemetry operator's compatability matrix [here](https://github.com/open-telemetry/opentelemetry-operator?tab=readme-ov-file#opentelemetry-operator-vs-kubernetes-vs-cert-manager-vs-prometheus-operator)
+
+```bash
+wget https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.74.0/example/prometheus-operator-crd/monitoring.coreos.com_podmonitors.yaml
+wget https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.74.0/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml
+```
diff --git a/charts/opentelemetry-kube-stack/charts/prometheus-crds/crds/monitoring.coreos.com_podmonitors.yaml b/charts/opentelemetry-kube-stack/charts/prometheus-crds/crds/monitoring.coreos.com_podmonitors.yaml
new file mode 100644
index 00000000..6a820a61
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/charts/prometheus-crds/crds/monitoring.coreos.com_podmonitors.yaml
@@ -0,0 +1,904 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.14.0
+ operator.prometheus.io/version: 0.74.0
+ name: podmonitors.monitoring.coreos.com
+spec:
+ group: monitoring.coreos.com
+ names:
+ categories:
+ - prometheus-operator
+ kind: PodMonitor
+ listKind: PodMonitorList
+ plural: podmonitors
+ shortNames:
+ - pmon
+ singular: podmonitor
+ scope: Namespaced
+ versions:
+ - name: v1
+ schema:
+ openAPIV3Schema:
+ description: PodMonitor defines monitoring for a set of pods.
+ properties:
+ apiVersion:
+ description: |-
+ APIVersion defines the versioned schema of this representation of an object.
+ Servers should convert recognized schemas to the latest internal value, and
+ may reject unrecognized values.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+ type: string
+ kind:
+ description: |-
+ Kind is a string value representing the REST resource this object represents.
+ Servers may infer this from the endpoint the client submits requests to.
+ Cannot be updated.
+ In CamelCase.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Specification of desired Pod selection for target discovery
+ by Prometheus.
+ properties:
+ attachMetadata:
+ description: |-
+ `attachMetadata` defines additional metadata which is added to the
+ discovered targets.
+
+
+ It requires Prometheus >= v2.37.0.
+ properties:
+ node:
+ description: |-
+ When set to true, Prometheus must have the `get` permission on the
+ `Nodes` objects.
+ type: boolean
+ type: object
+ bodySizeLimit:
+ description: |-
+ When defined, bodySizeLimit specifies a job level limit on the size
+ of uncompressed response body that will be accepted by Prometheus.
+
+
+ It requires Prometheus >= v2.28.0.
+ pattern: (^0|([0-9]*[.])?[0-9]+((K|M|G|T|E|P)i?)?B)$
+ type: string
+ jobLabel:
+ description: |-
+ The label to use to retrieve the job name from.
+ `jobLabel` selects the label from the associated Kubernetes `Pod`
+ object which will be used as the `job` label for all metrics.
+
+
+ For example if `jobLabel` is set to `foo` and the Kubernetes `Pod`
+ object is labeled with `foo: bar`, then Prometheus adds the `job="bar"`
+ label to all ingested metrics.
+
+
+ If the value of this field is empty, the `job` label of the metrics
+ defaults to the namespace and name of the PodMonitor object (e.g. `/`).
+ type: string
+ keepDroppedTargets:
+ description: |-
+ Per-scrape limit on the number of targets dropped by relabeling
+ that will be kept in memory. 0 means no limit.
+
+
+ It requires Prometheus >= v2.47.0.
+ format: int64
+ type: integer
+ labelLimit:
+ description: |-
+ Per-scrape limit on number of labels that will be accepted for a sample.
+
+
+ It requires Prometheus >= v2.27.0.
+ format: int64
+ type: integer
+ labelNameLengthLimit:
+ description: |-
+ Per-scrape limit on length of labels name that will be accepted for a sample.
+
+
+ It requires Prometheus >= v2.27.0.
+ format: int64
+ type: integer
+ labelValueLengthLimit:
+ description: |-
+ Per-scrape limit on length of labels value that will be accepted for a sample.
+
+
+ It requires Prometheus >= v2.27.0.
+ format: int64
+ type: integer
+ namespaceSelector:
+ description: |-
+ Selector to select which namespaces the Kubernetes `Pods` objects
+ are discovered from.
+ properties:
+ any:
+ description: |-
+ Boolean describing whether all namespaces are selected in contrast to a
+ list restricting them.
+ type: boolean
+ matchNames:
+ description: List of namespace names to select from.
+ items:
+ type: string
+ type: array
+ type: object
+ podMetricsEndpoints:
+ description: List of endpoints part of this PodMonitor.
+ items:
+ description: |-
+ PodMetricsEndpoint defines an endpoint serving Prometheus metrics to be scraped by
+ Prometheus.
+ properties:
+ authorization:
+ description: |-
+ `authorization` configures the Authorization header credentials to use when
+ scraping the target.
+
+
+ Cannot be set at the same time as `basicAuth`, or `oauth2`.
+ properties:
+ credentials:
+ description: Selects a key of a Secret in the namespace
+ that contains the credentials for authentication.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type:
+ description: |-
+ Defines the authentication type. The value is case-insensitive.
+
+
+ "Basic" is not a supported value.
+
+
+ Default: "Bearer"
+ type: string
+ type: object
+ basicAuth:
+ description: |-
+ `basicAuth` configures the Basic Authentication credentials to use when
+ scraping the target.
+
+
+ Cannot be set at the same time as `authorization`, or `oauth2`.
+ properties:
+ password:
+ description: |-
+ `password` specifies a key of a Secret containing the password for
+ authentication.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ username:
+ description: |-
+ `username` specifies a key of a Secret containing the username for
+ authentication.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ bearerTokenSecret:
+ description: |-
+ `bearerTokenSecret` specifies a key of a Secret containing the bearer
+ token for scraping targets. The secret needs to be in the same namespace
+ as the PodMonitor object and readable by the Prometheus Operator.
+
+
+ Deprecated: use `authorization` instead.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ enableHttp2:
+ description: '`enableHttp2` can be used to disable HTTP2 when
+ scraping the target.'
+ type: boolean
+ filterRunning:
+ description: |-
+ When true, the pods which are not running (e.g. either in Failed or
+ Succeeded state) are dropped during the target discovery.
+
+
+ If unset, the filtering is enabled.
+
+
+ More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase
+ type: boolean
+ followRedirects:
+ description: |-
+ `followRedirects` defines whether the scrape requests should follow HTTP
+ 3xx redirects.
+ type: boolean
+ honorLabels:
+ description: |-
+ When true, `honorLabels` preserves the metric's labels when they collide
+ with the target's labels.
+ type: boolean
+ honorTimestamps:
+ description: |-
+ `honorTimestamps` controls whether Prometheus preserves the timestamps
+ when exposed by the target.
+ type: boolean
+ interval:
+ description: |-
+ Interval at which Prometheus scrapes the metrics from the target.
+
+
+ If empty, Prometheus uses the global scrape interval.
+ pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$
+ type: string
+ metricRelabelings:
+ description: |-
+ `metricRelabelings` configures the relabeling rules to apply to the
+ samples before ingestion.
+ items:
+ description: |-
+ RelabelConfig allows dynamic rewriting of the label set for targets, alerts,
+ scraped samples and remote write samples.
+
+
+ More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
+ properties:
+ action:
+ default: replace
+ description: |-
+ Action to perform based on the regex matching.
+
+
+ `Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0.
+ `DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0.
+
+
+ Default: "Replace"
+ enum:
+ - replace
+ - Replace
+ - keep
+ - Keep
+ - drop
+ - Drop
+ - hashmod
+ - HashMod
+ - labelmap
+ - LabelMap
+ - labeldrop
+ - LabelDrop
+ - labelkeep
+ - LabelKeep
+ - lowercase
+ - Lowercase
+ - uppercase
+ - Uppercase
+ - keepequal
+ - KeepEqual
+ - dropequal
+ - DropEqual
+ type: string
+ modulus:
+ description: |-
+ Modulus to take of the hash of the source label values.
+
+
+ Only applicable when the action is `HashMod`.
+ format: int64
+ type: integer
+ regex:
+ description: Regular expression against which the extracted
+ value is matched.
+ type: string
+ replacement:
+ description: |-
+ Replacement value against which a Replace action is performed if the
+ regular expression matches.
+
+
+ Regex capture groups are available.
+ type: string
+ separator:
+ description: Separator is the string between concatenated
+ SourceLabels.
+ type: string
+ sourceLabels:
+ description: |-
+ The source labels select values from existing labels. Their content is
+ concatenated using the configured Separator and matched against the
+ configured regular expression.
+ items:
+ description: |-
+ LabelName is a valid Prometheus label name which may only contain ASCII
+ letters, numbers, as well as underscores.
+ pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
+ type: string
+ type: array
+ targetLabel:
+ description: |-
+ Label to which the resulting string is written in a replacement.
+
+
+ It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,
+ `KeepEqual` and `DropEqual` actions.
+
+
+ Regex capture groups are available.
+ type: string
+ type: object
+ type: array
+ oauth2:
+ description: |-
+ `oauth2` configures the OAuth2 settings to use when scraping the target.
+
+
+ It requires Prometheus >= 2.27.0.
+
+
+ Cannot be set at the same time as `authorization`, or `basicAuth`.
+ properties:
+ clientId:
+ description: |-
+ `clientId` specifies a key of a Secret or ConfigMap containing the
+ OAuth2 client's ID.
+ properties:
+ configMap:
+ description: ConfigMap containing data to use for the
+ targets.
+ properties:
+ key:
+ description: The key to select.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the ConfigMap or its
+ key must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ secret:
+ description: Secret containing data to use for the targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key
+ must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ clientSecret:
+ description: |-
+ `clientSecret` specifies a key of a Secret containing the OAuth2
+ client's secret.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ endpointParams:
+ additionalProperties:
+ type: string
+ description: |-
+ `endpointParams` configures the HTTP parameters to append to the token
+ URL.
+ type: object
+ scopes:
+ description: '`scopes` defines the OAuth2 scopes used for
+ the token request.'
+ items:
+ type: string
+ type: array
+ tokenUrl:
+ description: '`tokenURL` configures the URL to fetch the
+ token from.'
+ minLength: 1
+ type: string
+ required:
+ - clientId
+ - clientSecret
+ - tokenUrl
+ type: object
+ params:
+ additionalProperties:
+ items:
+ type: string
+ type: array
+ description: '`params` define optional HTTP URL parameters.'
+ type: object
+ path:
+ description: |-
+ HTTP path from which to scrape for metrics.
+
+
+ If empty, Prometheus uses the default value (e.g. `/metrics`).
+ type: string
+ port:
+ description: |-
+ Name of the Pod port which this endpoint refers to.
+
+
+ It takes precedence over `targetPort`.
+ type: string
+ proxyUrl:
+ description: |-
+ `proxyURL` configures the HTTP Proxy URL (e.g.
+ "http://proxyserver:2195") to go through when scraping the target.
+ type: string
+ relabelings:
+ description: |-
+ `relabelings` configures the relabeling rules to apply the target's
+ metadata labels.
+
+
+ The Operator automatically adds relabelings for a few standard Kubernetes fields.
+
+
+ The original scrape job's name is available via the `__tmp_prometheus_job_name` label.
+
+
+ More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
+ items:
+ description: |-
+ RelabelConfig allows dynamic rewriting of the label set for targets, alerts,
+ scraped samples and remote write samples.
+
+
+ More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
+ properties:
+ action:
+ default: replace
+ description: |-
+ Action to perform based on the regex matching.
+
+
+ `Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0.
+ `DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0.
+
+
+ Default: "Replace"
+ enum:
+ - replace
+ - Replace
+ - keep
+ - Keep
+ - drop
+ - Drop
+ - hashmod
+ - HashMod
+ - labelmap
+ - LabelMap
+ - labeldrop
+ - LabelDrop
+ - labelkeep
+ - LabelKeep
+ - lowercase
+ - Lowercase
+ - uppercase
+ - Uppercase
+ - keepequal
+ - KeepEqual
+ - dropequal
+ - DropEqual
+ type: string
+ modulus:
+ description: |-
+ Modulus to take of the hash of the source label values.
+
+
+ Only applicable when the action is `HashMod`.
+ format: int64
+ type: integer
+ regex:
+ description: Regular expression against which the extracted
+ value is matched.
+ type: string
+ replacement:
+ description: |-
+ Replacement value against which a Replace action is performed if the
+ regular expression matches.
+
+
+ Regex capture groups are available.
+ type: string
+ separator:
+ description: Separator is the string between concatenated
+ SourceLabels.
+ type: string
+ sourceLabels:
+ description: |-
+ The source labels select values from existing labels. Their content is
+ concatenated using the configured Separator and matched against the
+ configured regular expression.
+ items:
+ description: |-
+ LabelName is a valid Prometheus label name which may only contain ASCII
+ letters, numbers, as well as underscores.
+ pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
+ type: string
+ type: array
+ targetLabel:
+ description: |-
+ Label to which the resulting string is written in a replacement.
+
+
+ It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,
+ `KeepEqual` and `DropEqual` actions.
+
+
+ Regex capture groups are available.
+ type: string
+ type: object
+ type: array
+ scheme:
+ description: |-
+ HTTP scheme to use for scraping.
+
+
+ `http` and `https` are the expected values unless you rewrite the
+ `__scheme__` label via relabeling.
+
+
+ If empty, Prometheus uses the default value `http`.
+ enum:
+ - http
+ - https
+ type: string
+ scrapeTimeout:
+ description: |-
+ Timeout after which Prometheus considers the scrape to be failed.
+
+
+ If empty, Prometheus uses the global scrape timeout unless it is less
+ than the target's scrape interval value in which the latter is used.
+ pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$
+ type: string
+ targetPort:
+ anyOf:
+ - type: integer
+ - type: string
+ description: |-
+ Name or number of the target port of the `Pod` object behind the Service, the
+ port must be specified with container port property.
+
+
+ Deprecated: use 'port' instead.
+ x-kubernetes-int-or-string: true
+ tlsConfig:
+ description: TLS configuration to use when scraping the target.
+ properties:
+ ca:
+ description: Certificate authority used when verifying server
+ certificates.
+ properties:
+ configMap:
+ description: ConfigMap containing data to use for the
+ targets.
+ properties:
+ key:
+ description: The key to select.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the ConfigMap or its
+ key must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ secret:
+ description: Secret containing data to use for the targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key
+ must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ cert:
+ description: Client certificate to present when doing client-authentication.
+ properties:
+ configMap:
+ description: ConfigMap containing data to use for the
+ targets.
+ properties:
+ key:
+ description: The key to select.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the ConfigMap or its
+ key must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ secret:
+ description: Secret containing data to use for the targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key
+ must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ insecureSkipVerify:
+ description: Disable target certificate validation.
+ type: boolean
+ keySecret:
+ description: Secret containing the client key file for the
+ targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ serverName:
+ description: Used to verify the hostname for the targets.
+ type: string
+ type: object
+ trackTimestampsStaleness:
+ description: |-
+ `trackTimestampsStaleness` defines whether Prometheus tracks staleness of
+ the metrics that have an explicit timestamp present in scraped data.
+ Has no effect if `honorTimestamps` is false.
+
+
+ It requires Prometheus >= v2.48.0.
+ type: boolean
+ type: object
+ type: array
+ podTargetLabels:
+ description: |-
+ `podTargetLabels` defines the labels which are transferred from the
+ associated Kubernetes `Pod` object onto the ingested metrics.
+ items:
+ type: string
+ type: array
+ sampleLimit:
+ description: |-
+ `sampleLimit` defines a per-scrape limit on the number of scraped samples
+ that will be accepted.
+ format: int64
+ type: integer
+ scrapeClass:
+ description: The scrape class to apply.
+ minLength: 1
+ type: string
+ scrapeProtocols:
+ description: |-
+ `scrapeProtocols` defines the protocols to negotiate during a scrape. It tells clients the
+ protocols supported by Prometheus in order of preference (from most to least preferred).
+
+
+ If unset, Prometheus uses its default value.
+
+
+ It requires Prometheus >= v2.49.0.
+ items:
+ description: |-
+ ScrapeProtocol represents a protocol used by Prometheus for scraping metrics.
+ Supported values are:
+ * `OpenMetricsText0.0.1`
+ * `OpenMetricsText1.0.0`
+ * `PrometheusProto`
+ * `PrometheusText0.0.4`
+ enum:
+ - PrometheusProto
+ - OpenMetricsText0.0.1
+ - OpenMetricsText1.0.0
+ - PrometheusText0.0.4
+ type: string
+ type: array
+ x-kubernetes-list-type: set
+ selector:
+ description: Label selector to select the Kubernetes `Pod` objects.
+ properties:
+ matchExpressions:
+ description: matchExpressions is a list of label selector requirements.
+ The requirements are ANDed.
+ items:
+ description: |-
+ A label selector requirement is a selector that contains values, a key, and an operator that
+ relates the key and values.
+ properties:
+ key:
+ description: key is the label key that the selector applies
+ to.
+ type: string
+ operator:
+ description: |-
+ operator represents a key's relationship to a set of values.
+ Valid operators are In, NotIn, Exists and DoesNotExist.
+ type: string
+ values:
+ description: |-
+ values is an array of string values. If the operator is In or NotIn,
+ the values array must be non-empty. If the operator is Exists or DoesNotExist,
+ the values array must be empty. This array is replaced during a strategic
+ merge patch.
+ items:
+ type: string
+ type: array
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ matchLabels:
+ additionalProperties:
+ type: string
+ description: |-
+ matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
+ map is equivalent to an element of matchExpressions, whose key field is "key", the
+ operator is "In", and the values array contains only "value". The requirements are ANDed.
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ targetLimit:
+ description: |-
+ `targetLimit` defines a limit on the number of scraped targets that will
+ be accepted.
+ format: int64
+ type: integer
+ required:
+ - selector
+ type: object
+ required:
+ - spec
+ type: object
+ served: true
+ storage: true
diff --git a/charts/opentelemetry-kube-stack/charts/prometheus-crds/crds/monitoring.coreos.com_probes.yaml b/charts/opentelemetry-kube-stack/charts/prometheus-crds/crds/monitoring.coreos.com_probes.yaml
new file mode 100644
index 00000000..0b18a1ab
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/charts/prometheus-crds/crds/monitoring.coreos.com_probes.yaml
@@ -0,0 +1,880 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.14.0
+ operator.prometheus.io/version: 0.74.0
+ name: probes.monitoring.coreos.com
+spec:
+ group: monitoring.coreos.com
+ names:
+ categories:
+ - prometheus-operator
+ kind: Probe
+ listKind: ProbeList
+ plural: probes
+ shortNames:
+ - prb
+ singular: probe
+ scope: Namespaced
+ versions:
+ - name: v1
+ schema:
+ openAPIV3Schema:
+ description: Probe defines monitoring for a set of static targets or ingresses.
+ properties:
+ apiVersion:
+ description: |-
+ APIVersion defines the versioned schema of this representation of an object.
+ Servers should convert recognized schemas to the latest internal value, and
+ may reject unrecognized values.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+ type: string
+ kind:
+ description: |-
+ Kind is a string value representing the REST resource this object represents.
+ Servers may infer this from the endpoint the client submits requests to.
+ Cannot be updated.
+ In CamelCase.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: Specification of desired Ingress selection for target discovery
+ by Prometheus.
+ properties:
+ authorization:
+ description: Authorization section for this endpoint
+ properties:
+ credentials:
+ description: Selects a key of a Secret in the namespace that contains
+ the credentials for authentication.
+ properties:
+ key:
+ description: The key of the secret to select from. Must be
+ a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must be
+ defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type:
+ description: |-
+ Defines the authentication type. The value is case-insensitive.
+
+
+ "Basic" is not a supported value.
+
+
+ Default: "Bearer"
+ type: string
+ type: object
+ basicAuth:
+ description: |-
+ BasicAuth allow an endpoint to authenticate over basic authentication.
+ More info: https://prometheus.io/docs/operating/configuration/#endpoint
+ properties:
+ password:
+ description: |-
+ `password` specifies a key of a Secret containing the password for
+ authentication.
+ properties:
+ key:
+ description: The key of the secret to select from. Must be
+ a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must be
+ defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ username:
+ description: |-
+ `username` specifies a key of a Secret containing the username for
+ authentication.
+ properties:
+ key:
+ description: The key of the secret to select from. Must be
+ a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must be
+ defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ bearerTokenSecret:
+ description: |-
+ Secret to mount to read bearer token for scraping targets. The secret
+ needs to be in the same namespace as the probe and accessible by
+ the Prometheus Operator.
+ properties:
+ key:
+ description: The key of the secret to select from. Must be a
+ valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ interval:
+ description: |-
+ Interval at which targets are probed using the configured prober.
+ If not specified Prometheus' global scrape interval is used.
+ pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$
+ type: string
+ jobName:
+ description: The job name assigned to scraped metrics by default.
+ type: string
+ keepDroppedTargets:
+ description: |-
+ Per-scrape limit on the number of targets dropped by relabeling
+ that will be kept in memory. 0 means no limit.
+
+
+ It requires Prometheus >= v2.47.0.
+ format: int64
+ type: integer
+ labelLimit:
+ description: |-
+ Per-scrape limit on number of labels that will be accepted for a sample.
+ Only valid in Prometheus versions 2.27.0 and newer.
+ format: int64
+ type: integer
+ labelNameLengthLimit:
+ description: |-
+ Per-scrape limit on length of labels name that will be accepted for a sample.
+ Only valid in Prometheus versions 2.27.0 and newer.
+ format: int64
+ type: integer
+ labelValueLengthLimit:
+ description: |-
+ Per-scrape limit on length of labels value that will be accepted for a sample.
+ Only valid in Prometheus versions 2.27.0 and newer.
+ format: int64
+ type: integer
+ metricRelabelings:
+ description: MetricRelabelConfigs to apply to samples before ingestion.
+ items:
+ description: |-
+ RelabelConfig allows dynamic rewriting of the label set for targets, alerts,
+ scraped samples and remote write samples.
+
+
+ More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
+ properties:
+ action:
+ default: replace
+ description: |-
+ Action to perform based on the regex matching.
+
+
+ `Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0.
+ `DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0.
+
+
+ Default: "Replace"
+ enum:
+ - replace
+ - Replace
+ - keep
+ - Keep
+ - drop
+ - Drop
+ - hashmod
+ - HashMod
+ - labelmap
+ - LabelMap
+ - labeldrop
+ - LabelDrop
+ - labelkeep
+ - LabelKeep
+ - lowercase
+ - Lowercase
+ - uppercase
+ - Uppercase
+ - keepequal
+ - KeepEqual
+ - dropequal
+ - DropEqual
+ type: string
+ modulus:
+ description: |-
+ Modulus to take of the hash of the source label values.
+
+
+ Only applicable when the action is `HashMod`.
+ format: int64
+ type: integer
+ regex:
+ description: Regular expression against which the extracted
+ value is matched.
+ type: string
+ replacement:
+ description: |-
+ Replacement value against which a Replace action is performed if the
+ regular expression matches.
+
+
+ Regex capture groups are available.
+ type: string
+ separator:
+ description: Separator is the string between concatenated SourceLabels.
+ type: string
+ sourceLabels:
+ description: |-
+ The source labels select values from existing labels. Their content is
+ concatenated using the configured Separator and matched against the
+ configured regular expression.
+ items:
+ description: |-
+ LabelName is a valid Prometheus label name which may only contain ASCII
+ letters, numbers, as well as underscores.
+ pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
+ type: string
+ type: array
+ targetLabel:
+ description: |-
+ Label to which the resulting string is written in a replacement.
+
+
+ It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,
+ `KeepEqual` and `DropEqual` actions.
+
+
+ Regex capture groups are available.
+ type: string
+ type: object
+ type: array
+ module:
+ description: |-
+ The module to use for probing specifying how to probe the target.
+ Example module configuring in the blackbox exporter:
+ https://github.com/prometheus/blackbox_exporter/blob/master/example.yml
+ type: string
+ oauth2:
+ description: OAuth2 for the URL. Only valid in Prometheus versions
+ 2.27.0 and newer.
+ properties:
+ clientId:
+ description: |-
+ `clientId` specifies a key of a Secret or ConfigMap containing the
+ OAuth2 client's ID.
+ properties:
+ configMap:
+ description: ConfigMap containing data to use for the targets.
+ properties:
+ key:
+ description: The key to select.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the ConfigMap or its key
+ must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ secret:
+ description: Secret containing data to use for the targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ clientSecret:
+ description: |-
+ `clientSecret` specifies a key of a Secret containing the OAuth2
+ client's secret.
+ properties:
+ key:
+ description: The key of the secret to select from. Must be
+ a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must be
+ defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ endpointParams:
+ additionalProperties:
+ type: string
+ description: |-
+ `endpointParams` configures the HTTP parameters to append to the token
+ URL.
+ type: object
+ scopes:
+ description: '`scopes` defines the OAuth2 scopes used for the
+ token request.'
+ items:
+ type: string
+ type: array
+ tokenUrl:
+ description: '`tokenURL` configures the URL to fetch the token
+ from.'
+ minLength: 1
+ type: string
+ required:
+ - clientId
+ - clientSecret
+ - tokenUrl
+ type: object
+ prober:
+ description: |-
+ Specification for the prober to use for probing targets.
+ The prober.URL parameter is required. Targets cannot be probed if left empty.
+ properties:
+ path:
+ default: /probe
+ description: |-
+ Path to collect metrics from.
+ Defaults to `/probe`.
+ type: string
+ proxyUrl:
+ description: Optional ProxyURL.
+ type: string
+ scheme:
+ description: |-
+ HTTP scheme to use for scraping.
+ `http` and `https` are the expected values unless you rewrite the `__scheme__` label via relabeling.
+ If empty, Prometheus uses the default value `http`.
+ enum:
+ - http
+ - https
+ type: string
+ url:
+ description: Mandatory URL of the prober.
+ type: string
+ required:
+ - url
+ type: object
+ sampleLimit:
+ description: SampleLimit defines per-scrape limit on number of scraped
+ samples that will be accepted.
+ format: int64
+ type: integer
+ scrapeClass:
+ description: The scrape class to apply.
+ minLength: 1
+ type: string
+ scrapeProtocols:
+ description: |-
+ `scrapeProtocols` defines the protocols to negotiate during a scrape. It tells clients the
+ protocols supported by Prometheus in order of preference (from most to least preferred).
+
+
+ If unset, Prometheus uses its default value.
+
+
+ It requires Prometheus >= v2.49.0.
+ items:
+ description: |-
+ ScrapeProtocol represents a protocol used by Prometheus for scraping metrics.
+ Supported values are:
+ * `OpenMetricsText0.0.1`
+ * `OpenMetricsText1.0.0`
+ * `PrometheusProto`
+ * `PrometheusText0.0.4`
+ enum:
+ - PrometheusProto
+ - OpenMetricsText0.0.1
+ - OpenMetricsText1.0.0
+ - PrometheusText0.0.4
+ type: string
+ type: array
+ x-kubernetes-list-type: set
+ scrapeTimeout:
+ description: |-
+ Timeout for scraping metrics from the Prometheus exporter.
+ If not specified, the Prometheus global scrape timeout is used.
+ pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$
+ type: string
+ targetLimit:
+ description: TargetLimit defines a limit on the number of scraped
+ targets that will be accepted.
+ format: int64
+ type: integer
+ targets:
+ description: Targets defines a set of static or dynamically discovered
+ targets to probe.
+ properties:
+ ingress:
+ description: |-
+ ingress defines the Ingress objects to probe and the relabeling
+ configuration.
+ If `staticConfig` is also defined, `staticConfig` takes precedence.
+ properties:
+ namespaceSelector:
+ description: From which namespaces to select Ingress objects.
+ properties:
+ any:
+ description: |-
+ Boolean describing whether all namespaces are selected in contrast to a
+ list restricting them.
+ type: boolean
+ matchNames:
+ description: List of namespace names to select from.
+ items:
+ type: string
+ type: array
+ type: object
+ relabelingConfigs:
+ description: |-
+ RelabelConfigs to apply to the label set of the target before it gets
+ scraped.
+ The original ingress address is available via the
+ `__tmp_prometheus_ingress_address` label. It can be used to customize the
+ probed URL.
+ The original scrape job's name is available via the `__tmp_prometheus_job_name` label.
+ More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
+ items:
+ description: |-
+ RelabelConfig allows dynamic rewriting of the label set for targets, alerts,
+ scraped samples and remote write samples.
+
+
+ More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
+ properties:
+ action:
+ default: replace
+ description: |-
+ Action to perform based on the regex matching.
+
+
+ `Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0.
+ `DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0.
+
+
+ Default: "Replace"
+ enum:
+ - replace
+ - Replace
+ - keep
+ - Keep
+ - drop
+ - Drop
+ - hashmod
+ - HashMod
+ - labelmap
+ - LabelMap
+ - labeldrop
+ - LabelDrop
+ - labelkeep
+ - LabelKeep
+ - lowercase
+ - Lowercase
+ - uppercase
+ - Uppercase
+ - keepequal
+ - KeepEqual
+ - dropequal
+ - DropEqual
+ type: string
+ modulus:
+ description: |-
+ Modulus to take of the hash of the source label values.
+
+
+ Only applicable when the action is `HashMod`.
+ format: int64
+ type: integer
+ regex:
+ description: Regular expression against which the extracted
+ value is matched.
+ type: string
+ replacement:
+ description: |-
+ Replacement value against which a Replace action is performed if the
+ regular expression matches.
+
+
+ Regex capture groups are available.
+ type: string
+ separator:
+ description: Separator is the string between concatenated
+ SourceLabels.
+ type: string
+ sourceLabels:
+ description: |-
+ The source labels select values from existing labels. Their content is
+ concatenated using the configured Separator and matched against the
+ configured regular expression.
+ items:
+ description: |-
+ LabelName is a valid Prometheus label name which may only contain ASCII
+ letters, numbers, as well as underscores.
+ pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
+ type: string
+ type: array
+ targetLabel:
+ description: |-
+ Label to which the resulting string is written in a replacement.
+
+
+ It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,
+ `KeepEqual` and `DropEqual` actions.
+
+
+ Regex capture groups are available.
+ type: string
+ type: object
+ type: array
+ selector:
+ description: Selector to select the Ingress objects.
+ properties:
+ matchExpressions:
+ description: matchExpressions is a list of label selector
+ requirements. The requirements are ANDed.
+ items:
+ description: |-
+ A label selector requirement is a selector that contains values, a key, and an operator that
+ relates the key and values.
+ properties:
+ key:
+ description: key is the label key that the selector
+ applies to.
+ type: string
+ operator:
+ description: |-
+ operator represents a key's relationship to a set of values.
+ Valid operators are In, NotIn, Exists and DoesNotExist.
+ type: string
+ values:
+ description: |-
+ values is an array of string values. If the operator is In or NotIn,
+ the values array must be non-empty. If the operator is Exists or DoesNotExist,
+ the values array must be empty. This array is replaced during a strategic
+ merge patch.
+ items:
+ type: string
+ type: array
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ matchLabels:
+ additionalProperties:
+ type: string
+ description: |-
+ matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
+ map is equivalent to an element of matchExpressions, whose key field is "key", the
+ operator is "In", and the values array contains only "value". The requirements are ANDed.
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ staticConfig:
+ description: |-
+ staticConfig defines the static list of targets to probe and the
+ relabeling configuration.
+ If `ingress` is also defined, `staticConfig` takes precedence.
+ More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#static_config.
+ properties:
+ labels:
+ additionalProperties:
+ type: string
+ description: Labels assigned to all metrics scraped from the
+ targets.
+ type: object
+ relabelingConfigs:
+ description: |-
+ RelabelConfigs to apply to the label set of the targets before it gets
+ scraped.
+ More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
+ items:
+ description: |-
+ RelabelConfig allows dynamic rewriting of the label set for targets, alerts,
+ scraped samples and remote write samples.
+
+
+ More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
+ properties:
+ action:
+ default: replace
+ description: |-
+ Action to perform based on the regex matching.
+
+
+ `Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0.
+ `DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0.
+
+
+ Default: "Replace"
+ enum:
+ - replace
+ - Replace
+ - keep
+ - Keep
+ - drop
+ - Drop
+ - hashmod
+ - HashMod
+ - labelmap
+ - LabelMap
+ - labeldrop
+ - LabelDrop
+ - labelkeep
+ - LabelKeep
+ - lowercase
+ - Lowercase
+ - uppercase
+ - Uppercase
+ - keepequal
+ - KeepEqual
+ - dropequal
+ - DropEqual
+ type: string
+ modulus:
+ description: |-
+ Modulus to take of the hash of the source label values.
+
+
+ Only applicable when the action is `HashMod`.
+ format: int64
+ type: integer
+ regex:
+ description: Regular expression against which the extracted
+ value is matched.
+ type: string
+ replacement:
+ description: |-
+ Replacement value against which a Replace action is performed if the
+ regular expression matches.
+
+
+ Regex capture groups are available.
+ type: string
+ separator:
+ description: Separator is the string between concatenated
+ SourceLabels.
+ type: string
+ sourceLabels:
+ description: |-
+ The source labels select values from existing labels. Their content is
+ concatenated using the configured Separator and matched against the
+ configured regular expression.
+ items:
+ description: |-
+ LabelName is a valid Prometheus label name which may only contain ASCII
+ letters, numbers, as well as underscores.
+ pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
+ type: string
+ type: array
+ targetLabel:
+ description: |-
+ Label to which the resulting string is written in a replacement.
+
+
+ It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,
+ `KeepEqual` and `DropEqual` actions.
+
+
+ Regex capture groups are available.
+ type: string
+ type: object
+ type: array
+ static:
+ description: The list of hosts to probe.
+ items:
+ type: string
+ type: array
+ type: object
+ type: object
+ tlsConfig:
+ description: TLS configuration to use when scraping the endpoint.
+ properties:
+ ca:
+ description: Certificate authority used when verifying server
+ certificates.
+ properties:
+ configMap:
+ description: ConfigMap containing data to use for the targets.
+ properties:
+ key:
+ description: The key to select.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the ConfigMap or its key
+ must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ secret:
+ description: Secret containing data to use for the targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ cert:
+ description: Client certificate to present when doing client-authentication.
+ properties:
+ configMap:
+ description: ConfigMap containing data to use for the targets.
+ properties:
+ key:
+ description: The key to select.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the ConfigMap or its key
+ must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ secret:
+ description: Secret containing data to use for the targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ insecureSkipVerify:
+ description: Disable target certificate validation.
+ type: boolean
+ keySecret:
+ description: Secret containing the client key file for the targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must be
+ a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must be
+ defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ serverName:
+ description: Used to verify the hostname for the targets.
+ type: string
+ type: object
+ type: object
+ required:
+ - spec
+ type: object
+ served: true
+ storage: true
diff --git a/charts/opentelemetry-kube-stack/charts/prometheus-crds/crds/monitoring.coreos.com_scrapeconfigs.yaml b/charts/opentelemetry-kube-stack/charts/prometheus-crds/crds/monitoring.coreos.com_scrapeconfigs.yaml
new file mode 100644
index 00000000..fc792987
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/charts/prometheus-crds/crds/monitoring.coreos.com_scrapeconfigs.yaml
@@ -0,0 +1,4831 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.14.0
+ operator.prometheus.io/version: 0.74.0
+ name: scrapeconfigs.monitoring.coreos.com
+spec:
+ group: monitoring.coreos.com
+ names:
+ categories:
+ - prometheus-operator
+ kind: ScrapeConfig
+ listKind: ScrapeConfigList
+ plural: scrapeconfigs
+ shortNames:
+ - scfg
+ singular: scrapeconfig
+ scope: Namespaced
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ description: |-
+ ScrapeConfig defines a namespaced Prometheus scrape_config to be aggregated across
+ multiple namespaces into the Prometheus configuration.
+ properties:
+ apiVersion:
+ description: |-
+ APIVersion defines the versioned schema of this representation of an object.
+ Servers should convert recognized schemas to the latest internal value, and
+ may reject unrecognized values.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+ type: string
+ kind:
+ description: |-
+ Kind is a string value representing the REST resource this object represents.
+ Servers may infer this from the endpoint the client submits requests to.
+ Cannot be updated.
+ In CamelCase.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: ScrapeConfigSpec is a specification of the desired configuration
+ for a scrape configuration.
+ properties:
+ NomadSDConfigs:
+ description: NomadSDConfigs defines a list of Nomad service discovery
+ configurations.
+ items:
+ description: |-
+ NomadSDConfig configurations allow retrieving scrape targets from Nomad's Service API.
+ See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#nomad_sd_config
+ properties:
+ allowStale:
+ description: |-
+ The information to access the Nomad API. It is to be defined
+ as the Nomad documentation requires.
+ type: boolean
+ authorization:
+ description: Authorization header to use on every scrape request.
+ properties:
+ credentials:
+ description: Selects a key of a Secret in the namespace
+ that contains the credentials for authentication.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type:
+ description: |-
+ Defines the authentication type. The value is case-insensitive.
+
+
+ "Basic" is not a supported value.
+
+
+ Default: "Bearer"
+ type: string
+ type: object
+ basicAuth:
+ description: BasicAuth information to use on every scrape request.
+ properties:
+ password:
+ description: |-
+ `password` specifies a key of a Secret containing the password for
+ authentication.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ username:
+ description: |-
+ `username` specifies a key of a Secret containing the username for
+ authentication.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ enableHTTP2:
+ description: Whether to enable HTTP2.
+ type: boolean
+ followRedirects:
+ description: Configure whether HTTP requests follow HTTP 3xx
+ redirects.
+ type: boolean
+ namespace:
+ type: string
+ noProxy:
+ description: |-
+ `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names
+ that should be excluded from proxying. IP and domain names can
+ contain port numbers.
+
+
+ It requires Prometheus >= v2.43.0.
+ type: string
+ oauth2:
+ description: |-
+ Optional OAuth 2.0 configuration.
+ Cannot be set at the same time as `authorization` or `basic_auth`.
+ properties:
+ clientId:
+ description: |-
+ `clientId` specifies a key of a Secret or ConfigMap containing the
+ OAuth2 client's ID.
+ properties:
+ configMap:
+ description: ConfigMap containing data to use for the
+ targets.
+ properties:
+ key:
+ description: The key to select.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the ConfigMap or its
+ key must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ secret:
+ description: Secret containing data to use for the targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key
+ must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ clientSecret:
+ description: |-
+ `clientSecret` specifies a key of a Secret containing the OAuth2
+ client's secret.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ endpointParams:
+ additionalProperties:
+ type: string
+ description: |-
+ `endpointParams` configures the HTTP parameters to append to the token
+ URL.
+ type: object
+ scopes:
+ description: '`scopes` defines the OAuth2 scopes used for
+ the token request.'
+ items:
+ type: string
+ type: array
+ tokenUrl:
+ description: '`tokenURL` configures the URL to fetch the
+ token from.'
+ minLength: 1
+ type: string
+ required:
+ - clientId
+ - clientSecret
+ - tokenUrl
+ type: object
+ proxyConnectHeader:
+ additionalProperties:
+ items:
+ description: SecretKeySelector selects a key of a Secret.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: array
+ description: |-
+ ProxyConnectHeader optionally specifies headers to send to
+ proxies during CONNECT requests.
+
+
+ It requires Prometheus >= v2.43.0.
+ type: object
+ x-kubernetes-map-type: atomic
+ proxyFromEnvironment:
+ description: |-
+ Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).
+ If unset, Prometheus uses its default value.
+
+
+ It requires Prometheus >= v2.43.0.
+ type: boolean
+ proxyUrl:
+ description: |-
+ `proxyURL` defines the HTTP proxy server to use.
+
+
+ It requires Prometheus >= v2.43.0.
+ pattern: ^http(s)?://.+$
+ type: string
+ refreshInterval:
+ description: |-
+ Duration is a valid time duration that can be parsed by Prometheus model.ParseDuration() function.
+ Supported units: y, w, d, h, m, s, ms
+ Examples: `30s`, `1m`, `1h20m15s`, `15d`
+ pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$
+ type: string
+ region:
+ type: string
+ server:
+ minLength: 1
+ type: string
+ tagSeparator:
+ type: string
+ tlsConfig:
+ description: TLS configuration applying to the target HTTP endpoint.
+ properties:
+ ca:
+ description: Certificate authority used when verifying server
+ certificates.
+ properties:
+ configMap:
+ description: ConfigMap containing data to use for the
+ targets.
+ properties:
+ key:
+ description: The key to select.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the ConfigMap or its
+ key must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ secret:
+ description: Secret containing data to use for the targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key
+ must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ cert:
+ description: Client certificate to present when doing client-authentication.
+ properties:
+ configMap:
+ description: ConfigMap containing data to use for the
+ targets.
+ properties:
+ key:
+ description: The key to select.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the ConfigMap or its
+ key must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ secret:
+ description: Secret containing data to use for the targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key
+ must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ insecureSkipVerify:
+ description: Disable target certificate validation.
+ type: boolean
+ keySecret:
+ description: Secret containing the client key file for the
+ targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ serverName:
+ description: Used to verify the hostname for the targets.
+ type: string
+ type: object
+ required:
+ - server
+ type: object
+ type: array
+ authorization:
+ description: Authorization header to use on every scrape request.
+ properties:
+ credentials:
+ description: Selects a key of a Secret in the namespace that contains
+ the credentials for authentication.
+ properties:
+ key:
+ description: The key of the secret to select from. Must be
+ a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must be
+ defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type:
+ description: |-
+ Defines the authentication type. The value is case-insensitive.
+
+
+ "Basic" is not a supported value.
+
+
+ Default: "Bearer"
+ type: string
+ type: object
+ azureSDConfigs:
+ description: AzureSDConfigs defines a list of Azure service discovery
+ configurations.
+ items:
+ description: |-
+ AzureSDConfig allow retrieving scrape targets from Azure VMs.
+ See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#azure_sd_config
+ properties:
+ authenticationMethod:
+ description: |-
+ # The authentication method, either `OAuth` or `ManagedIdentity` or `SDK`.
+ See https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/overview
+ SDK authentication method uses environment variables by default.
+ See https://learn.microsoft.com/en-us/azure/developer/go/azure-sdk-authentication
+ enum:
+ - OAuth
+ - ManagedIdentity
+ - SDK
+ type: string
+ clientID:
+ description: Optional client ID. Only required with the OAuth
+ authentication method.
+ type: string
+ clientSecret:
+ description: Optional client secret. Only required with the
+ OAuth authentication method.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ environment:
+ description: The Azure environment.
+ type: string
+ port:
+ description: |-
+ The port to scrape metrics from. If using the public IP address, this must
+ instead be specified in the relabeling rule.
+ type: integer
+ refreshInterval:
+ description: RefreshInterval configures the refresh interval
+ at which Prometheus will re-read the instance list.
+ pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$
+ type: string
+ resourceGroup:
+ description: Optional resource group name. Limits discovery
+ to this resource group.
+ type: string
+ subscriptionID:
+ description: The subscription ID. Always required.
+ minLength: 1
+ type: string
+ tenantID:
+ description: Optional tenant ID. Only required with the OAuth
+ authentication method.
+ type: string
+ required:
+ - subscriptionID
+ type: object
+ type: array
+ basicAuth:
+ description: BasicAuth information to use on every scrape request.
+ properties:
+ password:
+ description: |-
+ `password` specifies a key of a Secret containing the password for
+ authentication.
+ properties:
+ key:
+ description: The key of the secret to select from. Must be
+ a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must be
+ defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ username:
+ description: |-
+ `username` specifies a key of a Secret containing the username for
+ authentication.
+ properties:
+ key:
+ description: The key of the secret to select from. Must be
+ a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must be
+ defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ consulSDConfigs:
+ description: ConsulSDConfigs defines a list of Consul service discovery
+ configurations.
+ items:
+ description: |-
+ ConsulSDConfig defines a Consul service discovery configuration
+ See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#consul_sd_config
+ properties:
+ allowStale:
+ description: |-
+ Allow stale Consul results (see https://www.consul.io/api/features/consistency.html). Will reduce load on Consul.
+ If unset, Prometheus uses its default value.
+ type: boolean
+ authorization:
+ description: Authorization header configuration to authenticate
+ against the Consul Server.
+ properties:
+ credentials:
+ description: Selects a key of a Secret in the namespace
+ that contains the credentials for authentication.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type:
+ description: |-
+ Defines the authentication type. The value is case-insensitive.
+
+
+ "Basic" is not a supported value.
+
+
+ Default: "Bearer"
+ type: string
+ type: object
+ basicAuth:
+ description: |-
+ BasicAuth information to authenticate against the Consul Server.
+ More info: https://prometheus.io/docs/operating/configuration/#endpoints
+ properties:
+ password:
+ description: |-
+ `password` specifies a key of a Secret containing the password for
+ authentication.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ username:
+ description: |-
+ `username` specifies a key of a Secret containing the username for
+ authentication.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ datacenter:
+ description: Consul Datacenter name, if not provided it will
+ use the local Consul Agent Datacenter.
+ type: string
+ enableHTTP2:
+ description: |-
+ Whether to enable HTTP2.
+ If unset, Prometheus uses its default value.
+ type: boolean
+ followRedirects:
+ description: |-
+ Configure whether HTTP requests follow HTTP 3xx redirects.
+ If unset, Prometheus uses its default value.
+ type: boolean
+ namespace:
+ description: Namespaces are only supported in Consul Enterprise.
+ type: string
+ noProxy:
+ description: |-
+ `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names
+ that should be excluded from proxying. IP and domain names can
+ contain port numbers.
+
+
+ It requires Prometheus >= v2.43.0.
+ type: string
+ nodeMeta:
+ additionalProperties:
+ type: string
+ description: Node metadata key/value pairs to filter nodes for
+ a given service.
+ type: object
+ x-kubernetes-map-type: atomic
+ oauth2:
+ description: Optional OAuth 2.0 configuration.
+ properties:
+ clientId:
+ description: |-
+ `clientId` specifies a key of a Secret or ConfigMap containing the
+ OAuth2 client's ID.
+ properties:
+ configMap:
+ description: ConfigMap containing data to use for the
+ targets.
+ properties:
+ key:
+ description: The key to select.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the ConfigMap or its
+ key must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ secret:
+ description: Secret containing data to use for the targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key
+ must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ clientSecret:
+ description: |-
+ `clientSecret` specifies a key of a Secret containing the OAuth2
+ client's secret.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ endpointParams:
+ additionalProperties:
+ type: string
+ description: |-
+ `endpointParams` configures the HTTP parameters to append to the token
+ URL.
+ type: object
+ scopes:
+ description: '`scopes` defines the OAuth2 scopes used for
+ the token request.'
+ items:
+ type: string
+ type: array
+ tokenUrl:
+ description: '`tokenURL` configures the URL to fetch the
+ token from.'
+ minLength: 1
+ type: string
+ required:
+ - clientId
+ - clientSecret
+ - tokenUrl
+ type: object
+ partition:
+ description: Admin Partitions are only supported in Consul Enterprise.
+ type: string
+ proxyConnectHeader:
+ additionalProperties:
+ items:
+ description: SecretKeySelector selects a key of a Secret.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: array
+ description: |-
+ ProxyConnectHeader optionally specifies headers to send to
+ proxies during CONNECT requests.
+
+
+ It requires Prometheus >= v2.43.0.
+ type: object
+ x-kubernetes-map-type: atomic
+ proxyFromEnvironment:
+ description: |-
+ Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).
+ If unset, Prometheus uses its default value.
+
+
+ It requires Prometheus >= v2.43.0.
+ type: boolean
+ proxyUrl:
+ description: |-
+ `proxyURL` defines the HTTP proxy server to use.
+
+
+ It requires Prometheus >= v2.43.0.
+ pattern: ^http(s)?://.+$
+ type: string
+ refreshInterval:
+ description: |-
+ The time after which the provided names are refreshed.
+ On large setup it might be a good idea to increase this value because the catalog will change all the time.
+ If unset, Prometheus uses its default value.
+ pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$
+ type: string
+ scheme:
+ description: HTTP Scheme default "http"
+ enum:
+ - HTTP
+ - HTTPS
+ type: string
+ server:
+ description: A valid string consisting of a hostname or IP followed
+ by an optional port number.
+ minLength: 1
+ type: string
+ services:
+ description: A list of services for which targets are retrieved.
+ If omitted, all services are scraped.
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ tagSeparator:
+ description: |-
+ The string by which Consul tags are joined into the tag label.
+ If unset, Prometheus uses its default value.
+ type: string
+ tags:
+ description: An optional list of tags used to filter nodes for
+ a given service. Services must contain all tags in the list.
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ tlsConfig:
+ description: TLS Config
+ properties:
+ ca:
+ description: Certificate authority used when verifying server
+ certificates.
+ properties:
+ configMap:
+ description: ConfigMap containing data to use for the
+ targets.
+ properties:
+ key:
+ description: The key to select.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the ConfigMap or its
+ key must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ secret:
+ description: Secret containing data to use for the targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key
+ must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ cert:
+ description: Client certificate to present when doing client-authentication.
+ properties:
+ configMap:
+ description: ConfigMap containing data to use for the
+ targets.
+ properties:
+ key:
+ description: The key to select.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the ConfigMap or its
+ key must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ secret:
+ description: Secret containing data to use for the targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key
+ must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ insecureSkipVerify:
+ description: Disable target certificate validation.
+ type: boolean
+ keySecret:
+ description: Secret containing the client key file for the
+ targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ serverName:
+ description: Used to verify the hostname for the targets.
+ type: string
+ type: object
+ tokenRef:
+ description: Consul ACL TokenRef, if not provided it will use
+ the ACL from the local Consul Agent.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - server
+ type: object
+ type: array
+ digitalOceanSDConfigs:
+ description: DigitalOceanSDConfigs defines a list of DigitalOcean
+ service discovery configurations.
+ items:
+ description: |-
+ DigitalOceanSDConfig allow retrieving scrape targets from DigitalOcean's Droplets API.
+ This service discovery uses the public IPv4 address by default, by that can be changed with relabeling
+ See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#digitalocean_sd_config
+ properties:
+ authorization:
+ description: |-
+ Authorization header configuration to authenticate against the DigitalOcean API.
+ Cannot be set at the same time as `oauth2`.
+ properties:
+ credentials:
+ description: Selects a key of a Secret in the namespace
+ that contains the credentials for authentication.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type:
+ description: |-
+ Defines the authentication type. The value is case-insensitive.
+
+
+ "Basic" is not a supported value.
+
+
+ Default: "Bearer"
+ type: string
+ type: object
+ enableHTTP2:
+ description: Whether to enable HTTP2.
+ type: boolean
+ followRedirects:
+ description: Configure whether HTTP requests follow HTTP 3xx
+ redirects.
+ type: boolean
+ noProxy:
+ description: |-
+ `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names
+ that should be excluded from proxying. IP and domain names can
+ contain port numbers.
+
+
+ It requires Prometheus >= v2.43.0.
+ type: string
+ oauth2:
+ description: |-
+ Optional OAuth 2.0 configuration.
+ Cannot be set at the same time as `authorization`.
+ properties:
+ clientId:
+ description: |-
+ `clientId` specifies a key of a Secret or ConfigMap containing the
+ OAuth2 client's ID.
+ properties:
+ configMap:
+ description: ConfigMap containing data to use for the
+ targets.
+ properties:
+ key:
+ description: The key to select.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the ConfigMap or its
+ key must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ secret:
+ description: Secret containing data to use for the targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key
+ must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ clientSecret:
+ description: |-
+ `clientSecret` specifies a key of a Secret containing the OAuth2
+ client's secret.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ endpointParams:
+ additionalProperties:
+ type: string
+ description: |-
+ `endpointParams` configures the HTTP parameters to append to the token
+ URL.
+ type: object
+ scopes:
+ description: '`scopes` defines the OAuth2 scopes used for
+ the token request.'
+ items:
+ type: string
+ type: array
+ tokenUrl:
+ description: '`tokenURL` configures the URL to fetch the
+ token from.'
+ minLength: 1
+ type: string
+ required:
+ - clientId
+ - clientSecret
+ - tokenUrl
+ type: object
+ port:
+ description: The port to scrape metrics from.
+ type: integer
+ proxyConnectHeader:
+ additionalProperties:
+ items:
+ description: SecretKeySelector selects a key of a Secret.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: array
+ description: |-
+ ProxyConnectHeader optionally specifies headers to send to
+ proxies during CONNECT requests.
+
+
+ It requires Prometheus >= v2.43.0.
+ type: object
+ x-kubernetes-map-type: atomic
+ proxyFromEnvironment:
+ description: |-
+ Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).
+ If unset, Prometheus uses its default value.
+
+
+ It requires Prometheus >= v2.43.0.
+ type: boolean
+ proxyUrl:
+ description: |-
+ `proxyURL` defines the HTTP proxy server to use.
+
+
+ It requires Prometheus >= v2.43.0.
+ pattern: ^http(s)?://.+$
+ type: string
+ refreshInterval:
+ description: Refresh interval to re-read the instance list.
+ pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$
+ type: string
+ tlsConfig:
+ description: TLS configuration applying to the target HTTP endpoint.
+ properties:
+ ca:
+ description: Certificate authority used when verifying server
+ certificates.
+ properties:
+ configMap:
+ description: ConfigMap containing data to use for the
+ targets.
+ properties:
+ key:
+ description: The key to select.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the ConfigMap or its
+ key must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ secret:
+ description: Secret containing data to use for the targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key
+ must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ cert:
+ description: Client certificate to present when doing client-authentication.
+ properties:
+ configMap:
+ description: ConfigMap containing data to use for the
+ targets.
+ properties:
+ key:
+ description: The key to select.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the ConfigMap or its
+ key must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ secret:
+ description: Secret containing data to use for the targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key
+ must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ insecureSkipVerify:
+ description: Disable target certificate validation.
+ type: boolean
+ keySecret:
+ description: Secret containing the client key file for the
+ targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ serverName:
+ description: Used to verify the hostname for the targets.
+ type: string
+ type: object
+ type: object
+ type: array
+ dnsSDConfigs:
+ description: DNSSDConfigs defines a list of DNS service discovery
+ configurations.
+ items:
+ description: |-
+ DNSSDConfig allows specifying a set of DNS domain names which are periodically queried to discover a list of targets.
+ The DNS servers to be contacted are read from /etc/resolv.conf.
+ See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#dns_sd_config
+ properties:
+ names:
+ description: A list of DNS domain names to be queried.
+ items:
+ type: string
+ minItems: 1
+ type: array
+ port:
+ description: |-
+ The port number used if the query type is not SRV
+ Ignored for SRV records
+ type: integer
+ refreshInterval:
+ description: |-
+ RefreshInterval configures the time after which the provided names are refreshed.
+ If not set, Prometheus uses its default value.
+ pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$
+ type: string
+ type:
+ description: |-
+ The type of DNS query to perform. One of SRV, A, AAAA, MX or NS.
+ If not set, Prometheus uses its default value.
+
+
+ When set to NS, It requires Prometheus >= 2.49.0.
+ enum:
+ - SRV
+ - A
+ - AAAA
+ - MX
+ - NS
+ type: string
+ required:
+ - names
+ type: object
+ type: array
+ dockerSDConfigs:
+ description: DockerSDConfigs defines a list of Docker service discovery
+ configurations.
+ items:
+ description: |-
+ Docker SD configurations allow retrieving scrape targets from Docker Engine hosts.
+ This SD discovers "containers" and will create a target for each network IP and
+ port the container is configured to expose.
+ See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#docker_sd_config
+ properties:
+ authorization:
+ description: |-
+ Authorization header configuration to authenticate against the Docker API.
+ Cannot be set at the same time as `oauth2`.
+ properties:
+ credentials:
+ description: Selects a key of a Secret in the namespace
+ that contains the credentials for authentication.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type:
+ description: |-
+ Defines the authentication type. The value is case-insensitive.
+
+
+ "Basic" is not a supported value.
+
+
+ Default: "Bearer"
+ type: string
+ type: object
+ basicAuth:
+ description: BasicAuth information to use on every scrape request.
+ properties:
+ password:
+ description: |-
+ `password` specifies a key of a Secret containing the password for
+ authentication.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ username:
+ description: |-
+ `username` specifies a key of a Secret containing the username for
+ authentication.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ enableHTTP2:
+ description: Whether to enable HTTP2.
+ type: boolean
+ filters:
+ description: Optional filters to limit the discovery process
+ to a subset of the available resources.
+ items:
+ description: DockerFilter is the configuration to limit the
+ discovery process to a subset of available resources.
+ properties:
+ name:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ required:
+ - name
+ - values
+ type: object
+ type: array
+ followRedirects:
+ description: Configure whether HTTP requests follow HTTP 3xx
+ redirects.
+ type: boolean
+ host:
+ description: Address of the docker daemon
+ minLength: 1
+ type: string
+ hostNetworkingHost:
+ description: The host to use if the container is in host networking
+ mode.
+ type: string
+ noProxy:
+ description: |-
+ `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names
+ that should be excluded from proxying. IP and domain names can
+ contain port numbers.
+
+
+ It requires Prometheus >= v2.43.0.
+ type: string
+ oauth2:
+ description: |-
+ Optional OAuth 2.0 configuration.
+ Cannot be set at the same time as `authorization`.
+ properties:
+ clientId:
+ description: |-
+ `clientId` specifies a key of a Secret or ConfigMap containing the
+ OAuth2 client's ID.
+ properties:
+ configMap:
+ description: ConfigMap containing data to use for the
+ targets.
+ properties:
+ key:
+ description: The key to select.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the ConfigMap or its
+ key must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ secret:
+ description: Secret containing data to use for the targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key
+ must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ clientSecret:
+ description: |-
+ `clientSecret` specifies a key of a Secret containing the OAuth2
+ client's secret.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ endpointParams:
+ additionalProperties:
+ type: string
+ description: |-
+ `endpointParams` configures the HTTP parameters to append to the token
+ URL.
+ type: object
+ scopes:
+ description: '`scopes` defines the OAuth2 scopes used for
+ the token request.'
+ items:
+ type: string
+ type: array
+ tokenUrl:
+ description: '`tokenURL` configures the URL to fetch the
+ token from.'
+ minLength: 1
+ type: string
+ required:
+ - clientId
+ - clientSecret
+ - tokenUrl
+ type: object
+ port:
+ description: The port to scrape metrics from.
+ type: integer
+ proxyConnectHeader:
+ additionalProperties:
+ items:
+ description: SecretKeySelector selects a key of a Secret.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: array
+ description: |-
+ ProxyConnectHeader optionally specifies headers to send to
+ proxies during CONNECT requests.
+
+
+ It requires Prometheus >= v2.43.0.
+ type: object
+ x-kubernetes-map-type: atomic
+ proxyFromEnvironment:
+ description: |-
+ Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).
+ If unset, Prometheus uses its default value.
+
+
+ It requires Prometheus >= v2.43.0.
+ type: boolean
+ proxyUrl:
+ description: |-
+ `proxyURL` defines the HTTP proxy server to use.
+
+
+ It requires Prometheus >= v2.43.0.
+ pattern: ^http(s)?://.+$
+ type: string
+ refreshInterval:
+ description: Time after which the container is refreshed.
+ pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$
+ type: string
+ tlsConfig:
+ description: TLS configuration applying to the target HTTP endpoint.
+ properties:
+ ca:
+ description: Certificate authority used when verifying server
+ certificates.
+ properties:
+ configMap:
+ description: ConfigMap containing data to use for the
+ targets.
+ properties:
+ key:
+ description: The key to select.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the ConfigMap or its
+ key must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ secret:
+ description: Secret containing data to use for the targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key
+ must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ cert:
+ description: Client certificate to present when doing client-authentication.
+ properties:
+ configMap:
+ description: ConfigMap containing data to use for the
+ targets.
+ properties:
+ key:
+ description: The key to select.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the ConfigMap or its
+ key must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ secret:
+ description: Secret containing data to use for the targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key
+ must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ insecureSkipVerify:
+ description: Disable target certificate validation.
+ type: boolean
+ keySecret:
+ description: Secret containing the client key file for the
+ targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ serverName:
+ description: Used to verify the hostname for the targets.
+ type: string
+ type: object
+ required:
+ - host
+ type: object
+ type: array
+ ec2SDConfigs:
+ description: EC2SDConfigs defines a list of EC2 service discovery
+ configurations.
+ items:
+ description: |-
+ EC2SDConfig allow retrieving scrape targets from AWS EC2 instances.
+ The private IP address is used by default, but may be changed to the public IP address with relabeling.
+ The IAM credentials used must have the ec2:DescribeInstances permission to discover scrape targets
+ See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#ec2_sd_config
+ properties:
+ accessKey:
+ description: AccessKey is the AWS API key.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ filters:
+ description: |-
+ Filters can be used optionally to filter the instance list by other criteria.
+ Available filter criteria can be found here:
+ https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html
+ Filter API documentation: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Filter.html
+ items:
+ description: EC2Filter is the configuration for filtering
+ EC2 instances.
+ properties:
+ name:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ required:
+ - name
+ - values
+ type: object
+ type: array
+ port:
+ description: |-
+ The port to scrape metrics from. If using the public IP address, this must
+ instead be specified in the relabeling rule.
+ type: integer
+ refreshInterval:
+ description: RefreshInterval configures the refresh interval
+ at which Prometheus will re-read the instance list.
+ pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$
+ type: string
+ region:
+ description: The AWS region
+ type: string
+ roleARN:
+ description: AWS Role ARN, an alternative to using AWS API keys.
+ type: string
+ secretKey:
+ description: SecretKey is the AWS API secret.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ type: array
+ enableCompression:
+ description: |-
+ When false, Prometheus will request uncompressed response from the scraped target.
+
+
+ It requires Prometheus >= v2.49.0.
+
+
+ If unset, Prometheus uses true by default.
+ type: boolean
+ eurekaSDConfigs:
+ description: EurekaSDConfigs defines a list of Eureka service discovery
+ configurations.
+ items:
+ description: |-
+ Eureka SD configurations allow retrieving scrape targets using the Eureka REST API.
+ Prometheus will periodically check the REST endpoint and create a target for every app instance.
+ See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#eureka_sd_config
+ properties:
+ authorization:
+ description: Authorization header to use on every scrape request.
+ properties:
+ credentials:
+ description: Selects a key of a Secret in the namespace
+ that contains the credentials for authentication.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type:
+ description: |-
+ Defines the authentication type. The value is case-insensitive.
+
+
+ "Basic" is not a supported value.
+
+
+ Default: "Bearer"
+ type: string
+ type: object
+ basicAuth:
+ description: BasicAuth information to use on every scrape request.
+ properties:
+ password:
+ description: |-
+ `password` specifies a key of a Secret containing the password for
+ authentication.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ username:
+ description: |-
+ `username` specifies a key of a Secret containing the username for
+ authentication.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ enableHTTP2:
+ description: Whether to enable HTTP2.
+ type: boolean
+ followRedirects:
+ description: Configure whether HTTP requests follow HTTP 3xx
+ redirects.
+ type: boolean
+ noProxy:
+ description: |-
+ `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names
+ that should be excluded from proxying. IP and domain names can
+ contain port numbers.
+
+
+ It requires Prometheus >= v2.43.0.
+ type: string
+ oauth2:
+ description: |-
+ Optional OAuth 2.0 configuration.
+ Cannot be set at the same time as `authorization` or `basic_auth`.
+ properties:
+ clientId:
+ description: |-
+ `clientId` specifies a key of a Secret or ConfigMap containing the
+ OAuth2 client's ID.
+ properties:
+ configMap:
+ description: ConfigMap containing data to use for the
+ targets.
+ properties:
+ key:
+ description: The key to select.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the ConfigMap or its
+ key must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ secret:
+ description: Secret containing data to use for the targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key
+ must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ clientSecret:
+ description: |-
+ `clientSecret` specifies a key of a Secret containing the OAuth2
+ client's secret.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ endpointParams:
+ additionalProperties:
+ type: string
+ description: |-
+ `endpointParams` configures the HTTP parameters to append to the token
+ URL.
+ type: object
+ scopes:
+ description: '`scopes` defines the OAuth2 scopes used for
+ the token request.'
+ items:
+ type: string
+ type: array
+ tokenUrl:
+ description: '`tokenURL` configures the URL to fetch the
+ token from.'
+ minLength: 1
+ type: string
+ required:
+ - clientId
+ - clientSecret
+ - tokenUrl
+ type: object
+ proxyConnectHeader:
+ additionalProperties:
+ items:
+ description: SecretKeySelector selects a key of a Secret.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: array
+ description: |-
+ ProxyConnectHeader optionally specifies headers to send to
+ proxies during CONNECT requests.
+
+
+ It requires Prometheus >= v2.43.0.
+ type: object
+ x-kubernetes-map-type: atomic
+ proxyFromEnvironment:
+ description: |-
+ Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).
+ If unset, Prometheus uses its default value.
+
+
+ It requires Prometheus >= v2.43.0.
+ type: boolean
+ proxyUrl:
+ description: |-
+ `proxyURL` defines the HTTP proxy server to use.
+
+
+ It requires Prometheus >= v2.43.0.
+ pattern: ^http(s)?://.+$
+ type: string
+ refreshInterval:
+ description: Refresh interval to re-read the instance list.
+ pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$
+ type: string
+ server:
+ description: The URL to connect to the Eureka server.
+ minLength: 1
+ type: string
+ tlsConfig:
+ description: TLS configuration applying to the target HTTP endpoint.
+ properties:
+ ca:
+ description: Certificate authority used when verifying server
+ certificates.
+ properties:
+ configMap:
+ description: ConfigMap containing data to use for the
+ targets.
+ properties:
+ key:
+ description: The key to select.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the ConfigMap or its
+ key must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ secret:
+ description: Secret containing data to use for the targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key
+ must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ cert:
+ description: Client certificate to present when doing client-authentication.
+ properties:
+ configMap:
+ description: ConfigMap containing data to use for the
+ targets.
+ properties:
+ key:
+ description: The key to select.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the ConfigMap or its
+ key must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ secret:
+ description: Secret containing data to use for the targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key
+ must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ insecureSkipVerify:
+ description: Disable target certificate validation.
+ type: boolean
+ keySecret:
+ description: Secret containing the client key file for the
+ targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ serverName:
+ description: Used to verify the hostname for the targets.
+ type: string
+ type: object
+ required:
+ - server
+ type: object
+ type: array
+ fileSDConfigs:
+ description: FileSDConfigs defines a list of file service discovery
+ configurations.
+ items:
+ description: |-
+ FileSDConfig defines a Prometheus file service discovery configuration
+ See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#file_sd_config
+ properties:
+ files:
+ description: |-
+ List of files to be used for file discovery. Recommendation: use absolute paths. While relative paths work, the
+ prometheus-operator project makes no guarantees about the working directory where the configuration file is
+ stored.
+ Files must be mounted using Prometheus.ConfigMaps or Prometheus.Secrets.
+ items:
+ description: SDFile represents a file used for service discovery
+ pattern: ^[^*]*(\*[^/]*)?\.(json|yml|yaml|JSON|YML|YAML)$
+ type: string
+ minItems: 1
+ type: array
+ refreshInterval:
+ description: RefreshInterval configures the refresh interval
+ at which Prometheus will reload the content of the files.
+ pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$
+ type: string
+ required:
+ - files
+ type: object
+ type: array
+ gceSDConfigs:
+ description: GCESDConfigs defines a list of GCE service discovery
+ configurations.
+ items:
+ description: |-
+ GCESDConfig configures scrape targets from GCP GCE instances.
+ The private IP address is used by default, but may be changed to
+ the public IP address with relabeling.
+ See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#gce_sd_config
+
+
+ The GCE service discovery will load the Google Cloud credentials
+ from the file specified by the GOOGLE_APPLICATION_CREDENTIALS environment variable.
+ See https://cloud.google.com/kubernetes-engine/docs/tutorials/authenticating-to-cloud-platform
+
+
+ A pre-requisite for using GCESDConfig is that a Secret containing valid
+ Google Cloud credentials is mounted into the Prometheus or PrometheusAgent
+ pod via the `.spec.secrets` field and that the GOOGLE_APPLICATION_CREDENTIALS
+ environment variable is set to /etc/prometheus/secrets//.
+ properties:
+ filter:
+ description: |-
+ Filter can be used optionally to filter the instance list by other criteria
+ Syntax of this filter is described in the filter query parameter section:
+ https://cloud.google.com/compute/docs/reference/latest/instances/list
+ type: string
+ port:
+ description: |-
+ The port to scrape metrics from. If using the public IP address, this must
+ instead be specified in the relabeling rule.
+ type: integer
+ project:
+ description: The Google Cloud Project ID
+ minLength: 1
+ type: string
+ refreshInterval:
+ description: RefreshInterval configures the refresh interval
+ at which Prometheus will re-read the instance list.
+ pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$
+ type: string
+ tagSeparator:
+ description: The tag separator is used to separate the tags
+ on concatenation
+ type: string
+ zone:
+ description: The zone of the scrape targets. If you need multiple
+ zones use multiple GCESDConfigs.
+ minLength: 1
+ type: string
+ required:
+ - project
+ - zone
+ type: object
+ type: array
+ hetznerSDConfigs:
+ description: HetznerSDConfigs defines a list of Hetzner service discovery
+ configurations.
+ items:
+ description: |-
+ HetznerSDConfig allow retrieving scrape targets from Hetzner Cloud API and Robot API.
+ This service discovery uses the public IPv4 address by default, but that can be changed with relabeling
+ See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#hetzner_sd_config
+ properties:
+ authorization:
+ description: |-
+ Authorization header configuration, required when role is hcloud.
+ Role robot does not support bearer token authentication.
+ properties:
+ credentials:
+ description: Selects a key of a Secret in the namespace
+ that contains the credentials for authentication.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type:
+ description: |-
+ Defines the authentication type. The value is case-insensitive.
+
+
+ "Basic" is not a supported value.
+
+
+ Default: "Bearer"
+ type: string
+ type: object
+ basicAuth:
+ description: |-
+ BasicAuth information to use on every scrape request, required when role is robot.
+ Role hcloud does not support basic auth.
+ properties:
+ password:
+ description: |-
+ `password` specifies a key of a Secret containing the password for
+ authentication.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ username:
+ description: |-
+ `username` specifies a key of a Secret containing the username for
+ authentication.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ enableHTTP2:
+ description: Whether to enable HTTP2.
+ type: boolean
+ followRedirects:
+ description: Configure whether HTTP requests follow HTTP 3xx
+ redirects.
+ type: boolean
+ noProxy:
+ description: |-
+ `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names
+ that should be excluded from proxying. IP and domain names can
+ contain port numbers.
+
+
+ It requires Prometheus >= v2.43.0.
+ type: string
+ oauth2:
+ description: |-
+ Optional OAuth 2.0 configuration.
+ Cannot be used at the same time as `basic_auth` or `authorization`.
+ properties:
+ clientId:
+ description: |-
+ `clientId` specifies a key of a Secret or ConfigMap containing the
+ OAuth2 client's ID.
+ properties:
+ configMap:
+ description: ConfigMap containing data to use for the
+ targets.
+ properties:
+ key:
+ description: The key to select.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the ConfigMap or its
+ key must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ secret:
+ description: Secret containing data to use for the targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key
+ must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ clientSecret:
+ description: |-
+ `clientSecret` specifies a key of a Secret containing the OAuth2
+ client's secret.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ endpointParams:
+ additionalProperties:
+ type: string
+ description: |-
+ `endpointParams` configures the HTTP parameters to append to the token
+ URL.
+ type: object
+ scopes:
+ description: '`scopes` defines the OAuth2 scopes used for
+ the token request.'
+ items:
+ type: string
+ type: array
+ tokenUrl:
+ description: '`tokenURL` configures the URL to fetch the
+ token from.'
+ minLength: 1
+ type: string
+ required:
+ - clientId
+ - clientSecret
+ - tokenUrl
+ type: object
+ port:
+ description: The port to scrape metrics from.
+ type: integer
+ proxyConnectHeader:
+ additionalProperties:
+ items:
+ description: SecretKeySelector selects a key of a Secret.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: array
+ description: |-
+ ProxyConnectHeader optionally specifies headers to send to
+ proxies during CONNECT requests.
+
+
+ It requires Prometheus >= v2.43.0.
+ type: object
+ x-kubernetes-map-type: atomic
+ proxyFromEnvironment:
+ description: |-
+ Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).
+ If unset, Prometheus uses its default value.
+
+
+ It requires Prometheus >= v2.43.0.
+ type: boolean
+ proxyUrl:
+ description: |-
+ `proxyURL` defines the HTTP proxy server to use.
+
+
+ It requires Prometheus >= v2.43.0.
+ pattern: ^http(s)?://.+$
+ type: string
+ refreshInterval:
+ description: The time after which the servers are refreshed.
+ pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$
+ type: string
+ role:
+ description: The Hetzner role of entities that should be discovered.
+ enum:
+ - hcloud
+ - Hcloud
+ - robot
+ - Robot
+ type: string
+ tlsConfig:
+ description: TLS configuration to use on every scrape request.
+ properties:
+ ca:
+ description: Certificate authority used when verifying server
+ certificates.
+ properties:
+ configMap:
+ description: ConfigMap containing data to use for the
+ targets.
+ properties:
+ key:
+ description: The key to select.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the ConfigMap or its
+ key must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ secret:
+ description: Secret containing data to use for the targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key
+ must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ cert:
+ description: Client certificate to present when doing client-authentication.
+ properties:
+ configMap:
+ description: ConfigMap containing data to use for the
+ targets.
+ properties:
+ key:
+ description: The key to select.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the ConfigMap or its
+ key must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ secret:
+ description: Secret containing data to use for the targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key
+ must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ insecureSkipVerify:
+ description: Disable target certificate validation.
+ type: boolean
+ keySecret:
+ description: Secret containing the client key file for the
+ targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ serverName:
+ description: Used to verify the hostname for the targets.
+ type: string
+ type: object
+ required:
+ - role
+ type: object
+ type: array
+ honorLabels:
+ description: HonorLabels chooses the metric's labels on collisions
+ with target labels.
+ type: boolean
+ honorTimestamps:
+ description: HonorTimestamps controls whether Prometheus respects
+ the timestamps present in scraped data.
+ type: boolean
+ httpSDConfigs:
+ description: HTTPSDConfigs defines a list of HTTP service discovery
+ configurations.
+ items:
+ description: |-
+ HTTPSDConfig defines a prometheus HTTP service discovery configuration
+ See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#http_sd_config
+ properties:
+ authorization:
+ description: Authorization header configuration to authenticate
+ against the target HTTP endpoint.
+ properties:
+ credentials:
+ description: Selects a key of a Secret in the namespace
+ that contains the credentials for authentication.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type:
+ description: |-
+ Defines the authentication type. The value is case-insensitive.
+
+
+ "Basic" is not a supported value.
+
+
+ Default: "Bearer"
+ type: string
+ type: object
+ basicAuth:
+ description: |-
+ BasicAuth information to authenticate against the target HTTP endpoint.
+ More info: https://prometheus.io/docs/operating/configuration/#endpoints
+ properties:
+ password:
+ description: |-
+ `password` specifies a key of a Secret containing the password for
+ authentication.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ username:
+ description: |-
+ `username` specifies a key of a Secret containing the username for
+ authentication.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ noProxy:
+ description: |-
+ `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names
+ that should be excluded from proxying. IP and domain names can
+ contain port numbers.
+
+
+ It requires Prometheus >= v2.43.0.
+ type: string
+ proxyConnectHeader:
+ additionalProperties:
+ items:
+ description: SecretKeySelector selects a key of a Secret.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: array
+ description: |-
+ ProxyConnectHeader optionally specifies headers to send to
+ proxies during CONNECT requests.
+
+
+ It requires Prometheus >= v2.43.0.
+ type: object
+ x-kubernetes-map-type: atomic
+ proxyFromEnvironment:
+ description: |-
+ Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).
+ If unset, Prometheus uses its default value.
+
+
+ It requires Prometheus >= v2.43.0.
+ type: boolean
+ proxyUrl:
+ description: |-
+ `proxyURL` defines the HTTP proxy server to use.
+
+
+ It requires Prometheus >= v2.43.0.
+ pattern: ^http(s)?://.+$
+ type: string
+ refreshInterval:
+ description: |-
+ RefreshInterval configures the refresh interval at which Prometheus will re-query the
+ endpoint to update the target list.
+ pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$
+ type: string
+ tlsConfig:
+ description: TLS configuration applying to the target HTTP endpoint.
+ properties:
+ ca:
+ description: Certificate authority used when verifying server
+ certificates.
+ properties:
+ configMap:
+ description: ConfigMap containing data to use for the
+ targets.
+ properties:
+ key:
+ description: The key to select.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the ConfigMap or its
+ key must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ secret:
+ description: Secret containing data to use for the targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key
+ must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ cert:
+ description: Client certificate to present when doing client-authentication.
+ properties:
+ configMap:
+ description: ConfigMap containing data to use for the
+ targets.
+ properties:
+ key:
+ description: The key to select.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the ConfigMap or its
+ key must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ secret:
+ description: Secret containing data to use for the targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key
+ must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ insecureSkipVerify:
+ description: Disable target certificate validation.
+ type: boolean
+ keySecret:
+ description: Secret containing the client key file for the
+ targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ serverName:
+ description: Used to verify the hostname for the targets.
+ type: string
+ type: object
+ url:
+ description: URL from which the targets are fetched.
+ minLength: 1
+ pattern: ^http(s)?://.+$
+ type: string
+ required:
+ - url
+ type: object
+ type: array
+ keepDroppedTargets:
+ description: |-
+ Per-scrape limit on the number of targets dropped by relabeling
+ that will be kept in memory. 0 means no limit.
+
+
+ It requires Prometheus >= v2.47.0.
+ format: int64
+ type: integer
+ kubernetesSDConfigs:
+ description: KubernetesSDConfigs defines a list of Kubernetes service
+ discovery configurations.
+ items:
+ description: |-
+ KubernetesSDConfig allows retrieving scrape targets from Kubernetes' REST API.
+ See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#kubernetes_sd_config
+ properties:
+ apiServer:
+ description: |-
+ The API server address consisting of a hostname or IP address followed
+ by an optional port number.
+ If left empty, Prometheus is assumed to run inside
+ of the cluster. It will discover API servers automatically and use the pod's
+ CA certificate and bearer token file at /var/run/secrets/kubernetes.io/serviceaccount/.
+ type: string
+ attachMetadata:
+ description: |-
+ Optional metadata to attach to discovered targets.
+ It requires Prometheus >= v2.35.0 for `pod` role and
+ Prometheus >= v2.37.0 for `endpoints` and `endpointslice` roles.
+ properties:
+ node:
+ description: |-
+ Attaches node metadata to discovered targets.
+ When set to true, Prometheus must have the `get` permission on the
+ `Nodes` objects.
+ Only valid for Pod, Endpoint and Endpointslice roles.
+ type: boolean
+ type: object
+ authorization:
+ description: |-
+ Authorization header to use on every scrape request.
+ Cannot be set at the same time as `basicAuth`, or `oauth2`.
+ properties:
+ credentials:
+ description: Selects a key of a Secret in the namespace
+ that contains the credentials for authentication.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type:
+ description: |-
+ Defines the authentication type. The value is case-insensitive.
+
+
+ "Basic" is not a supported value.
+
+
+ Default: "Bearer"
+ type: string
+ type: object
+ basicAuth:
+ description: |-
+ BasicAuth information to use on every scrape request.
+ Cannot be set at the same time as `authorization`, or `oauth2`.
+ properties:
+ password:
+ description: |-
+ `password` specifies a key of a Secret containing the password for
+ authentication.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ username:
+ description: |-
+ `username` specifies a key of a Secret containing the username for
+ authentication.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ enableHTTP2:
+ description: Whether to enable HTTP2.
+ type: boolean
+ followRedirects:
+ description: Configure whether HTTP requests follow HTTP 3xx
+ redirects.
+ type: boolean
+ namespaces:
+ description: Optional namespace discovery. If omitted, Prometheus
+ discovers targets across all namespaces.
+ properties:
+ names:
+ description: |-
+ List of namespaces where to watch for resources.
+ If empty and `ownNamespace` isn't true, Prometheus watches for resources in all namespaces.
+ items:
+ type: string
+ type: array
+ ownNamespace:
+ description: Includes the namespace in which the Prometheus
+ pod exists to the list of watched namesapces.
+ type: boolean
+ type: object
+ noProxy:
+ description: |-
+ `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names
+ that should be excluded from proxying. IP and domain names can
+ contain port numbers.
+
+
+ It requires Prometheus >= v2.43.0.
+ type: string
+ oauth2:
+ description: |-
+ Optional OAuth 2.0 configuration.
+ Cannot be set at the same time as `authorization`, or `basicAuth`.
+ properties:
+ clientId:
+ description: |-
+ `clientId` specifies a key of a Secret or ConfigMap containing the
+ OAuth2 client's ID.
+ properties:
+ configMap:
+ description: ConfigMap containing data to use for the
+ targets.
+ properties:
+ key:
+ description: The key to select.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the ConfigMap or its
+ key must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ secret:
+ description: Secret containing data to use for the targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key
+ must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ clientSecret:
+ description: |-
+ `clientSecret` specifies a key of a Secret containing the OAuth2
+ client's secret.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ endpointParams:
+ additionalProperties:
+ type: string
+ description: |-
+ `endpointParams` configures the HTTP parameters to append to the token
+ URL.
+ type: object
+ scopes:
+ description: '`scopes` defines the OAuth2 scopes used for
+ the token request.'
+ items:
+ type: string
+ type: array
+ tokenUrl:
+ description: '`tokenURL` configures the URL to fetch the
+ token from.'
+ minLength: 1
+ type: string
+ required:
+ - clientId
+ - clientSecret
+ - tokenUrl
+ type: object
+ proxyConnectHeader:
+ additionalProperties:
+ items:
+ description: SecretKeySelector selects a key of a Secret.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: array
+ description: |-
+ ProxyConnectHeader optionally specifies headers to send to
+ proxies during CONNECT requests.
+
+
+ It requires Prometheus >= v2.43.0.
+ type: object
+ x-kubernetes-map-type: atomic
+ proxyFromEnvironment:
+ description: |-
+ Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).
+ If unset, Prometheus uses its default value.
+
+
+ It requires Prometheus >= v2.43.0.
+ type: boolean
+ proxyUrl:
+ description: |-
+ `proxyURL` defines the HTTP proxy server to use.
+
+
+ It requires Prometheus >= v2.43.0.
+ pattern: ^http(s)?://.+$
+ type: string
+ role:
+ description: Role of the Kubernetes entities that should be
+ discovered.
+ enum:
+ - Node
+ - node
+ - Service
+ - service
+ - Pod
+ - pod
+ - Endpoints
+ - endpoints
+ - EndpointSlice
+ - endpointslice
+ - Ingress
+ - ingress
+ type: string
+ selectors:
+ description: Selector to select objects.
+ items:
+ description: K8SSelectorConfig is Kubernetes Selector Config
+ properties:
+ field:
+ type: string
+ label:
+ type: string
+ role:
+ description: Role is role of the service in Kubernetes.
+ enum:
+ - Node
+ - node
+ - Service
+ - service
+ - Pod
+ - pod
+ - Endpoints
+ - endpoints
+ - EndpointSlice
+ - endpointslice
+ - Ingress
+ - ingress
+ type: string
+ required:
+ - role
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - role
+ x-kubernetes-list-type: map
+ tlsConfig:
+ description: TLS configuration to use on every scrape request.
+ properties:
+ ca:
+ description: Certificate authority used when verifying server
+ certificates.
+ properties:
+ configMap:
+ description: ConfigMap containing data to use for the
+ targets.
+ properties:
+ key:
+ description: The key to select.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the ConfigMap or its
+ key must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ secret:
+ description: Secret containing data to use for the targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key
+ must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ cert:
+ description: Client certificate to present when doing client-authentication.
+ properties:
+ configMap:
+ description: ConfigMap containing data to use for the
+ targets.
+ properties:
+ key:
+ description: The key to select.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the ConfigMap or its
+ key must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ secret:
+ description: Secret containing data to use for the targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key
+ must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ insecureSkipVerify:
+ description: Disable target certificate validation.
+ type: boolean
+ keySecret:
+ description: Secret containing the client key file for the
+ targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ serverName:
+ description: Used to verify the hostname for the targets.
+ type: string
+ type: object
+ required:
+ - role
+ type: object
+ type: array
+ kumaSDConfigs:
+ description: KumaSDConfigs defines a list of Kuma service discovery
+ configurations.
+ items:
+ description: |-
+ KumaSDConfig allow retrieving scrape targets from Kuma's control plane.
+ See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#kuma_sd_config
+ properties:
+ authorization:
+ description: Authorization header to use on every scrape request.
+ properties:
+ credentials:
+ description: Selects a key of a Secret in the namespace
+ that contains the credentials for authentication.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type:
+ description: |-
+ Defines the authentication type. The value is case-insensitive.
+
+
+ "Basic" is not a supported value.
+
+
+ Default: "Bearer"
+ type: string
+ type: object
+ basicAuth:
+ description: BasicAuth information to use on every scrape request.
+ properties:
+ password:
+ description: |-
+ `password` specifies a key of a Secret containing the password for
+ authentication.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ username:
+ description: |-
+ `username` specifies a key of a Secret containing the username for
+ authentication.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ clientID:
+ description: Client id is used by Kuma Control Plane to compute
+ Monitoring Assignment for specific Prometheus backend.
+ type: string
+ enableHTTP2:
+ description: Whether to enable HTTP2.
+ type: boolean
+ fetchTimeout:
+ description: The time after which the monitoring assignments
+ are refreshed.
+ pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$
+ type: string
+ followRedirects:
+ description: Configure whether HTTP requests follow HTTP 3xx
+ redirects.
+ type: boolean
+ noProxy:
+ description: |-
+ `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names
+ that should be excluded from proxying. IP and domain names can
+ contain port numbers.
+
+
+ It requires Prometheus >= v2.43.0.
+ type: string
+ oauth2:
+ description: |-
+ Optional OAuth 2.0 configuration.
+ Cannot be set at the same time as `authorization`, or `basicAuth`.
+ properties:
+ clientId:
+ description: |-
+ `clientId` specifies a key of a Secret or ConfigMap containing the
+ OAuth2 client's ID.
+ properties:
+ configMap:
+ description: ConfigMap containing data to use for the
+ targets.
+ properties:
+ key:
+ description: The key to select.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the ConfigMap or its
+ key must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ secret:
+ description: Secret containing data to use for the targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key
+ must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ clientSecret:
+ description: |-
+ `clientSecret` specifies a key of a Secret containing the OAuth2
+ client's secret.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ endpointParams:
+ additionalProperties:
+ type: string
+ description: |-
+ `endpointParams` configures the HTTP parameters to append to the token
+ URL.
+ type: object
+ scopes:
+ description: '`scopes` defines the OAuth2 scopes used for
+ the token request.'
+ items:
+ type: string
+ type: array
+ tokenUrl:
+ description: '`tokenURL` configures the URL to fetch the
+ token from.'
+ minLength: 1
+ type: string
+ required:
+ - clientId
+ - clientSecret
+ - tokenUrl
+ type: object
+ proxyConnectHeader:
+ additionalProperties:
+ items:
+ description: SecretKeySelector selects a key of a Secret.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: array
+ description: |-
+ ProxyConnectHeader optionally specifies headers to send to
+ proxies during CONNECT requests.
+
+
+ It requires Prometheus >= v2.43.0.
+ type: object
+ x-kubernetes-map-type: atomic
+ proxyFromEnvironment:
+ description: |-
+ Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).
+ If unset, Prometheus uses its default value.
+
+
+ It requires Prometheus >= v2.43.0.
+ type: boolean
+ proxyUrl:
+ description: |-
+ `proxyURL` defines the HTTP proxy server to use.
+
+
+ It requires Prometheus >= v2.43.0.
+ pattern: ^http(s)?://.+$
+ type: string
+ refreshInterval:
+ description: The time to wait between polling update requests.
+ pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$
+ type: string
+ server:
+ description: Address of the Kuma Control Plane's MADS xDS server.
+ minLength: 1
+ type: string
+ tlsConfig:
+ description: TLS configuration to use on every scrape request
+ properties:
+ ca:
+ description: Certificate authority used when verifying server
+ certificates.
+ properties:
+ configMap:
+ description: ConfigMap containing data to use for the
+ targets.
+ properties:
+ key:
+ description: The key to select.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the ConfigMap or its
+ key must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ secret:
+ description: Secret containing data to use for the targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key
+ must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ cert:
+ description: Client certificate to present when doing client-authentication.
+ properties:
+ configMap:
+ description: ConfigMap containing data to use for the
+ targets.
+ properties:
+ key:
+ description: The key to select.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the ConfigMap or its
+ key must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ secret:
+ description: Secret containing data to use for the targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key
+ must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ insecureSkipVerify:
+ description: Disable target certificate validation.
+ type: boolean
+ keySecret:
+ description: Secret containing the client key file for the
+ targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ serverName:
+ description: Used to verify the hostname for the targets.
+ type: string
+ type: object
+ required:
+ - server
+ type: object
+ type: array
+ labelLimit:
+ description: |-
+ Per-scrape limit on number of labels that will be accepted for a sample.
+ Only valid in Prometheus versions 2.27.0 and newer.
+ format: int64
+ type: integer
+ labelNameLengthLimit:
+ description: |-
+ Per-scrape limit on length of labels name that will be accepted for a sample.
+ Only valid in Prometheus versions 2.27.0 and newer.
+ format: int64
+ type: integer
+ labelValueLengthLimit:
+ description: |-
+ Per-scrape limit on length of labels value that will be accepted for a sample.
+ Only valid in Prometheus versions 2.27.0 and newer.
+ format: int64
+ type: integer
+ metricRelabelings:
+ description: MetricRelabelConfigs to apply to samples before ingestion.
+ items:
+ description: |-
+ RelabelConfig allows dynamic rewriting of the label set for targets, alerts,
+ scraped samples and remote write samples.
+
+
+ More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
+ properties:
+ action:
+ default: replace
+ description: |-
+ Action to perform based on the regex matching.
+
+
+ `Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0.
+ `DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0.
+
+
+ Default: "Replace"
+ enum:
+ - replace
+ - Replace
+ - keep
+ - Keep
+ - drop
+ - Drop
+ - hashmod
+ - HashMod
+ - labelmap
+ - LabelMap
+ - labeldrop
+ - LabelDrop
+ - labelkeep
+ - LabelKeep
+ - lowercase
+ - Lowercase
+ - uppercase
+ - Uppercase
+ - keepequal
+ - KeepEqual
+ - dropequal
+ - DropEqual
+ type: string
+ modulus:
+ description: |-
+ Modulus to take of the hash of the source label values.
+
+
+ Only applicable when the action is `HashMod`.
+ format: int64
+ type: integer
+ regex:
+ description: Regular expression against which the extracted
+ value is matched.
+ type: string
+ replacement:
+ description: |-
+ Replacement value against which a Replace action is performed if the
+ regular expression matches.
+
+
+ Regex capture groups are available.
+ type: string
+ separator:
+ description: Separator is the string between concatenated SourceLabels.
+ type: string
+ sourceLabels:
+ description: |-
+ The source labels select values from existing labels. Their content is
+ concatenated using the configured Separator and matched against the
+ configured regular expression.
+ items:
+ description: |-
+ LabelName is a valid Prometheus label name which may only contain ASCII
+ letters, numbers, as well as underscores.
+ pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
+ type: string
+ type: array
+ targetLabel:
+ description: |-
+ Label to which the resulting string is written in a replacement.
+
+
+ It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,
+ `KeepEqual` and `DropEqual` actions.
+
+
+ Regex capture groups are available.
+ type: string
+ type: object
+ type: array
+ metricsPath:
+ description: MetricsPath HTTP path to scrape for metrics. If empty,
+ Prometheus uses the default value (e.g. /metrics).
+ type: string
+ noProxy:
+ description: |-
+ `noProxy` is a comma-separated string that can contain IPs, CIDR notation, domain names
+ that should be excluded from proxying. IP and domain names can
+ contain port numbers.
+
+
+ It requires Prometheus >= v2.43.0.
+ type: string
+ openstackSDConfigs:
+ description: OpenStackSDConfigs defines a list of OpenStack service
+ discovery configurations.
+ items:
+ description: |-
+ OpenStackSDConfig allow retrieving scrape targets from OpenStack Nova instances.
+ See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#openstack_sd_config
+ properties:
+ allTenants:
+ description: |-
+ Whether the service discovery should list all instances for all projects.
+ It is only relevant for the 'instance' role and usually requires admin permissions.
+ type: boolean
+ applicationCredentialId:
+ description: ApplicationCredentialID
+ type: string
+ applicationCredentialName:
+ description: |-
+ The ApplicationCredentialID or ApplicationCredentialName fields are
+ required if using an application credential to authenticate. Some providers
+ allow you to create an application credential to authenticate rather than a
+ password.
+ type: string
+ applicationCredentialSecret:
+ description: |-
+ The applicationCredentialSecret field is required if using an application
+ credential to authenticate.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ availability:
+ description: Availability of the endpoint to connect to.
+ enum:
+ - Public
+ - public
+ - Admin
+ - admin
+ - Internal
+ - internal
+ type: string
+ domainID:
+ description: DomainID
+ type: string
+ domainName:
+ description: |-
+ At most one of domainId and domainName must be provided if using username
+ with Identity V3. Otherwise, either are optional.
+ type: string
+ identityEndpoint:
+ description: |-
+ IdentityEndpoint specifies the HTTP endpoint that is required to work with
+ the Identity API of the appropriate version.
+ type: string
+ password:
+ description: |-
+ Password for the Identity V2 and V3 APIs. Consult with your provider's
+ control panel to discover your account's preferred method of authentication.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ port:
+ description: |-
+ The port to scrape metrics from. If using the public IP address, this must
+ instead be specified in the relabeling rule.
+ type: integer
+ projectID:
+ description: ' ProjectID'
+ type: string
+ projectName:
+ description: |-
+ The ProjectId and ProjectName fields are optional for the Identity V2 API.
+ Some providers allow you to specify a ProjectName instead of the ProjectId.
+ Some require both. Your provider's authentication policies will determine
+ how these fields influence authentication.
+ type: string
+ refreshInterval:
+ description: Refresh interval to re-read the instance list.
+ pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$
+ type: string
+ region:
+ description: The OpenStack Region.
+ minLength: 1
+ type: string
+ role:
+ description: The OpenStack role of entities that should be discovered.
+ enum:
+ - Instance
+ - instance
+ - Hypervisor
+ - hypervisor
+ type: string
+ tlsConfig:
+ description: TLS configuration applying to the target HTTP endpoint.
+ properties:
+ ca:
+ description: Certificate authority used when verifying server
+ certificates.
+ properties:
+ configMap:
+ description: ConfigMap containing data to use for the
+ targets.
+ properties:
+ key:
+ description: The key to select.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the ConfigMap or its
+ key must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ secret:
+ description: Secret containing data to use for the targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key
+ must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ cert:
+ description: Client certificate to present when doing client-authentication.
+ properties:
+ configMap:
+ description: ConfigMap containing data to use for the
+ targets.
+ properties:
+ key:
+ description: The key to select.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the ConfigMap or its
+ key must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ secret:
+ description: Secret containing data to use for the targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key
+ must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ insecureSkipVerify:
+ description: Disable target certificate validation.
+ type: boolean
+ keySecret:
+ description: Secret containing the client key file for the
+ targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ serverName:
+ description: Used to verify the hostname for the targets.
+ type: string
+ type: object
+ userid:
+ description: UserID
+ type: string
+ username:
+ description: |-
+ Username is required if using Identity V2 API. Consult with your provider's
+ control panel to discover your account's username.
+ In Identity V3, either userid or a combination of username
+ and domainId or domainName are needed
+ type: string
+ required:
+ - region
+ - role
+ type: object
+ type: array
+ params:
+ additionalProperties:
+ items:
+ type: string
+ type: array
+ description: Optional HTTP URL parameters
+ type: object
+ x-kubernetes-map-type: atomic
+ proxyConnectHeader:
+ additionalProperties:
+ items:
+ description: SecretKeySelector selects a key of a Secret.
+ properties:
+ key:
+ description: The key of the secret to select from. Must be
+ a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must be
+ defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: array
+ description: |-
+ ProxyConnectHeader optionally specifies headers to send to
+ proxies during CONNECT requests.
+
+
+ It requires Prometheus >= v2.43.0.
+ type: object
+ x-kubernetes-map-type: atomic
+ proxyFromEnvironment:
+ description: |-
+ Whether to use the proxy configuration defined by environment variables (HTTP_PROXY, HTTPS_PROXY, and NO_PROXY).
+ If unset, Prometheus uses its default value.
+
+
+ It requires Prometheus >= v2.43.0.
+ type: boolean
+ proxyUrl:
+ description: |-
+ `proxyURL` defines the HTTP proxy server to use.
+
+
+ It requires Prometheus >= v2.43.0.
+ pattern: ^http(s)?://.+$
+ type: string
+ relabelings:
+ description: |-
+ RelabelConfigs defines how to rewrite the target's labels before scraping.
+ Prometheus Operator automatically adds relabelings for a few standard Kubernetes fields.
+ The original scrape job's name is available via the `__tmp_prometheus_job_name` label.
+ More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
+ items:
+ description: |-
+ RelabelConfig allows dynamic rewriting of the label set for targets, alerts,
+ scraped samples and remote write samples.
+
+
+ More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
+ properties:
+ action:
+ default: replace
+ description: |-
+ Action to perform based on the regex matching.
+
+
+ `Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0.
+ `DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0.
+
+
+ Default: "Replace"
+ enum:
+ - replace
+ - Replace
+ - keep
+ - Keep
+ - drop
+ - Drop
+ - hashmod
+ - HashMod
+ - labelmap
+ - LabelMap
+ - labeldrop
+ - LabelDrop
+ - labelkeep
+ - LabelKeep
+ - lowercase
+ - Lowercase
+ - uppercase
+ - Uppercase
+ - keepequal
+ - KeepEqual
+ - dropequal
+ - DropEqual
+ type: string
+ modulus:
+ description: |-
+ Modulus to take of the hash of the source label values.
+
+
+ Only applicable when the action is `HashMod`.
+ format: int64
+ type: integer
+ regex:
+ description: Regular expression against which the extracted
+ value is matched.
+ type: string
+ replacement:
+ description: |-
+ Replacement value against which a Replace action is performed if the
+ regular expression matches.
+
+
+ Regex capture groups are available.
+ type: string
+ separator:
+ description: Separator is the string between concatenated SourceLabels.
+ type: string
+ sourceLabels:
+ description: |-
+ The source labels select values from existing labels. Their content is
+ concatenated using the configured Separator and matched against the
+ configured regular expression.
+ items:
+ description: |-
+ LabelName is a valid Prometheus label name which may only contain ASCII
+ letters, numbers, as well as underscores.
+ pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
+ type: string
+ type: array
+ targetLabel:
+ description: |-
+ Label to which the resulting string is written in a replacement.
+
+
+ It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,
+ `KeepEqual` and `DropEqual` actions.
+
+
+ Regex capture groups are available.
+ type: string
+ type: object
+ type: array
+ sampleLimit:
+ description: SampleLimit defines per-scrape limit on number of scraped
+ samples that will be accepted.
+ format: int64
+ type: integer
+ scheme:
+ description: |-
+ Configures the protocol scheme used for requests.
+ If empty, Prometheus uses HTTP by default.
+ enum:
+ - HTTP
+ - HTTPS
+ type: string
+ scrapeClass:
+ description: The scrape class to apply.
+ minLength: 1
+ type: string
+ scrapeInterval:
+ description: ScrapeInterval is the interval between consecutive scrapes.
+ pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$
+ type: string
+ scrapeProtocols:
+ description: |-
+ The protocols to negotiate during a scrape. It tells clients the
+ protocols supported by Prometheus in order of preference (from most to least preferred).
+
+
+ If unset, Prometheus uses its default value.
+
+
+ It requires Prometheus >= v2.49.0.
+ items:
+ description: |-
+ ScrapeProtocol represents a protocol used by Prometheus for scraping metrics.
+ Supported values are:
+ * `OpenMetricsText0.0.1`
+ * `OpenMetricsText1.0.0`
+ * `PrometheusProto`
+ * `PrometheusText0.0.4`
+ enum:
+ - PrometheusProto
+ - OpenMetricsText0.0.1
+ - OpenMetricsText1.0.0
+ - PrometheusText0.0.4
+ type: string
+ type: array
+ x-kubernetes-list-type: set
+ scrapeTimeout:
+ description: ScrapeTimeout is the number of seconds to wait until
+ a scrape request times out.
+ pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$
+ type: string
+ staticConfigs:
+ description: StaticConfigs defines a list of static targets with a
+ common label set.
+ items:
+ description: |-
+ StaticConfig defines a Prometheus static configuration.
+ See https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config
+ properties:
+ labels:
+ additionalProperties:
+ type: string
+ description: Labels assigned to all metrics scraped from the
+ targets.
+ type: object
+ x-kubernetes-map-type: atomic
+ targets:
+ description: List of targets for this static configuration.
+ items:
+ description: Target represents a target for Prometheus to
+ scrape
+ type: string
+ type: array
+ type: object
+ type: array
+ targetLimit:
+ description: TargetLimit defines a limit on the number of scraped
+ targets that will be accepted.
+ format: int64
+ type: integer
+ tlsConfig:
+ description: TLS configuration to use on every scrape request
+ properties:
+ ca:
+ description: Certificate authority used when verifying server
+ certificates.
+ properties:
+ configMap:
+ description: ConfigMap containing data to use for the targets.
+ properties:
+ key:
+ description: The key to select.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the ConfigMap or its key
+ must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ secret:
+ description: Secret containing data to use for the targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ cert:
+ description: Client certificate to present when doing client-authentication.
+ properties:
+ configMap:
+ description: ConfigMap containing data to use for the targets.
+ properties:
+ key:
+ description: The key to select.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the ConfigMap or its key
+ must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ secret:
+ description: Secret containing data to use for the targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ insecureSkipVerify:
+ description: Disable target certificate validation.
+ type: boolean
+ keySecret:
+ description: Secret containing the client key file for the targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must be
+ a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must be
+ defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ serverName:
+ description: Used to verify the hostname for the targets.
+ type: string
+ type: object
+ trackTimestampsStaleness:
+ description: |-
+ TrackTimestampsStaleness whether Prometheus tracks staleness of
+ the metrics that have an explicit timestamp present in scraped data.
+ Has no effect if `honorTimestamps` is false.
+ It requires Prometheus >= v2.48.0.
+ type: boolean
+ type: object
+ required:
+ - spec
+ type: object
+ served: true
+ storage: true
diff --git a/charts/opentelemetry-kube-stack/charts/prometheus-crds/crds/monitoring.coreos.com_servicemonitors.yaml b/charts/opentelemetry-kube-stack/charts/prometheus-crds/crds/monitoring.coreos.com_servicemonitors.yaml
new file mode 100644
index 00000000..5219ea48
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/charts/prometheus-crds/crds/monitoring.coreos.com_servicemonitors.yaml
@@ -0,0 +1,928 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.14.0
+ operator.prometheus.io/version: 0.74.0
+ name: servicemonitors.monitoring.coreos.com
+spec:
+ group: monitoring.coreos.com
+ names:
+ categories:
+ - prometheus-operator
+ kind: ServiceMonitor
+ listKind: ServiceMonitorList
+ plural: servicemonitors
+ shortNames:
+ - smon
+ singular: servicemonitor
+ scope: Namespaced
+ versions:
+ - name: v1
+ schema:
+ openAPIV3Schema:
+ description: ServiceMonitor defines monitoring for a set of services.
+ properties:
+ apiVersion:
+ description: |-
+ APIVersion defines the versioned schema of this representation of an object.
+ Servers should convert recognized schemas to the latest internal value, and
+ may reject unrecognized values.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+ type: string
+ kind:
+ description: |-
+ Kind is a string value representing the REST resource this object represents.
+ Servers may infer this from the endpoint the client submits requests to.
+ Cannot be updated.
+ In CamelCase.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: |-
+ Specification of desired Service selection for target discovery by
+ Prometheus.
+ properties:
+ attachMetadata:
+ description: |-
+ `attachMetadata` defines additional metadata which is added to the
+ discovered targets.
+
+
+ It requires Prometheus >= v2.37.0.
+ properties:
+ node:
+ description: |-
+ When set to true, Prometheus must have the `get` permission on the
+ `Nodes` objects.
+ type: boolean
+ type: object
+ bodySizeLimit:
+ description: |-
+ When defined, bodySizeLimit specifies a job level limit on the size
+ of uncompressed response body that will be accepted by Prometheus.
+
+
+ It requires Prometheus >= v2.28.0.
+ pattern: (^0|([0-9]*[.])?[0-9]+((K|M|G|T|E|P)i?)?B)$
+ type: string
+ endpoints:
+ description: List of endpoints part of this ServiceMonitor.
+ items:
+ description: |-
+ Endpoint defines an endpoint serving Prometheus metrics to be scraped by
+ Prometheus.
+ properties:
+ authorization:
+ description: |-
+ `authorization` configures the Authorization header credentials to use when
+ scraping the target.
+
+
+ Cannot be set at the same time as `basicAuth`, or `oauth2`.
+ properties:
+ credentials:
+ description: Selects a key of a Secret in the namespace
+ that contains the credentials for authentication.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type:
+ description: |-
+ Defines the authentication type. The value is case-insensitive.
+
+
+ "Basic" is not a supported value.
+
+
+ Default: "Bearer"
+ type: string
+ type: object
+ basicAuth:
+ description: |-
+ `basicAuth` configures the Basic Authentication credentials to use when
+ scraping the target.
+
+
+ Cannot be set at the same time as `authorization`, or `oauth2`.
+ properties:
+ password:
+ description: |-
+ `password` specifies a key of a Secret containing the password for
+ authentication.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ username:
+ description: |-
+ `username` specifies a key of a Secret containing the username for
+ authentication.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ bearerTokenFile:
+ description: |-
+ File to read bearer token for scraping the target.
+
+
+ Deprecated: use `authorization` instead.
+ type: string
+ bearerTokenSecret:
+ description: |-
+ `bearerTokenSecret` specifies a key of a Secret containing the bearer
+ token for scraping targets. The secret needs to be in the same namespace
+ as the ServiceMonitor object and readable by the Prometheus Operator.
+
+
+ Deprecated: use `authorization` instead.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ enableHttp2:
+ description: '`enableHttp2` can be used to disable HTTP2 when
+ scraping the target.'
+ type: boolean
+ filterRunning:
+ description: |-
+ When true, the pods which are not running (e.g. either in Failed or
+ Succeeded state) are dropped during the target discovery.
+
+
+ If unset, the filtering is enabled.
+
+
+ More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase
+ type: boolean
+ followRedirects:
+ description: |-
+ `followRedirects` defines whether the scrape requests should follow HTTP
+ 3xx redirects.
+ type: boolean
+ honorLabels:
+ description: |-
+ When true, `honorLabels` preserves the metric's labels when they collide
+ with the target's labels.
+ type: boolean
+ honorTimestamps:
+ description: |-
+ `honorTimestamps` controls whether Prometheus preserves the timestamps
+ when exposed by the target.
+ type: boolean
+ interval:
+ description: |-
+ Interval at which Prometheus scrapes the metrics from the target.
+
+
+ If empty, Prometheus uses the global scrape interval.
+ pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$
+ type: string
+ metricRelabelings:
+ description: |-
+ `metricRelabelings` configures the relabeling rules to apply to the
+ samples before ingestion.
+ items:
+ description: |-
+ RelabelConfig allows dynamic rewriting of the label set for targets, alerts,
+ scraped samples and remote write samples.
+
+
+ More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
+ properties:
+ action:
+ default: replace
+ description: |-
+ Action to perform based on the regex matching.
+
+
+ `Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0.
+ `DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0.
+
+
+ Default: "Replace"
+ enum:
+ - replace
+ - Replace
+ - keep
+ - Keep
+ - drop
+ - Drop
+ - hashmod
+ - HashMod
+ - labelmap
+ - LabelMap
+ - labeldrop
+ - LabelDrop
+ - labelkeep
+ - LabelKeep
+ - lowercase
+ - Lowercase
+ - uppercase
+ - Uppercase
+ - keepequal
+ - KeepEqual
+ - dropequal
+ - DropEqual
+ type: string
+ modulus:
+ description: |-
+ Modulus to take of the hash of the source label values.
+
+
+ Only applicable when the action is `HashMod`.
+ format: int64
+ type: integer
+ regex:
+ description: Regular expression against which the extracted
+ value is matched.
+ type: string
+ replacement:
+ description: |-
+ Replacement value against which a Replace action is performed if the
+ regular expression matches.
+
+
+ Regex capture groups are available.
+ type: string
+ separator:
+ description: Separator is the string between concatenated
+ SourceLabels.
+ type: string
+ sourceLabels:
+ description: |-
+ The source labels select values from existing labels. Their content is
+ concatenated using the configured Separator and matched against the
+ configured regular expression.
+ items:
+ description: |-
+ LabelName is a valid Prometheus label name which may only contain ASCII
+ letters, numbers, as well as underscores.
+ pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
+ type: string
+ type: array
+ targetLabel:
+ description: |-
+ Label to which the resulting string is written in a replacement.
+
+
+ It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,
+ `KeepEqual` and `DropEqual` actions.
+
+
+ Regex capture groups are available.
+ type: string
+ type: object
+ type: array
+ oauth2:
+ description: |-
+ `oauth2` configures the OAuth2 settings to use when scraping the target.
+
+
+ It requires Prometheus >= 2.27.0.
+
+
+ Cannot be set at the same time as `authorization`, or `basicAuth`.
+ properties:
+ clientId:
+ description: |-
+ `clientId` specifies a key of a Secret or ConfigMap containing the
+ OAuth2 client's ID.
+ properties:
+ configMap:
+ description: ConfigMap containing data to use for the
+ targets.
+ properties:
+ key:
+ description: The key to select.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the ConfigMap or its
+ key must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ secret:
+ description: Secret containing data to use for the targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key
+ must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ clientSecret:
+ description: |-
+ `clientSecret` specifies a key of a Secret containing the OAuth2
+ client's secret.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ endpointParams:
+ additionalProperties:
+ type: string
+ description: |-
+ `endpointParams` configures the HTTP parameters to append to the token
+ URL.
+ type: object
+ scopes:
+ description: '`scopes` defines the OAuth2 scopes used for
+ the token request.'
+ items:
+ type: string
+ type: array
+ tokenUrl:
+ description: '`tokenURL` configures the URL to fetch the
+ token from.'
+ minLength: 1
+ type: string
+ required:
+ - clientId
+ - clientSecret
+ - tokenUrl
+ type: object
+ params:
+ additionalProperties:
+ items:
+ type: string
+ type: array
+ description: params define optional HTTP URL parameters.
+ type: object
+ path:
+ description: |-
+ HTTP path from which to scrape for metrics.
+
+
+ If empty, Prometheus uses the default value (e.g. `/metrics`).
+ type: string
+ port:
+ description: |-
+ Name of the Service port which this endpoint refers to.
+
+
+ It takes precedence over `targetPort`.
+ type: string
+ proxyUrl:
+ description: |-
+ `proxyURL` configures the HTTP Proxy URL (e.g.
+ "http://proxyserver:2195") to go through when scraping the target.
+ type: string
+ relabelings:
+ description: |-
+ `relabelings` configures the relabeling rules to apply the target's
+ metadata labels.
+
+
+ The Operator automatically adds relabelings for a few standard Kubernetes fields.
+
+
+ The original scrape job's name is available via the `__tmp_prometheus_job_name` label.
+
+
+ More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
+ items:
+ description: |-
+ RelabelConfig allows dynamic rewriting of the label set for targets, alerts,
+ scraped samples and remote write samples.
+
+
+ More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config
+ properties:
+ action:
+ default: replace
+ description: |-
+ Action to perform based on the regex matching.
+
+
+ `Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0.
+ `DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0.
+
+
+ Default: "Replace"
+ enum:
+ - replace
+ - Replace
+ - keep
+ - Keep
+ - drop
+ - Drop
+ - hashmod
+ - HashMod
+ - labelmap
+ - LabelMap
+ - labeldrop
+ - LabelDrop
+ - labelkeep
+ - LabelKeep
+ - lowercase
+ - Lowercase
+ - uppercase
+ - Uppercase
+ - keepequal
+ - KeepEqual
+ - dropequal
+ - DropEqual
+ type: string
+ modulus:
+ description: |-
+ Modulus to take of the hash of the source label values.
+
+
+ Only applicable when the action is `HashMod`.
+ format: int64
+ type: integer
+ regex:
+ description: Regular expression against which the extracted
+ value is matched.
+ type: string
+ replacement:
+ description: |-
+ Replacement value against which a Replace action is performed if the
+ regular expression matches.
+
+
+ Regex capture groups are available.
+ type: string
+ separator:
+ description: Separator is the string between concatenated
+ SourceLabels.
+ type: string
+ sourceLabels:
+ description: |-
+ The source labels select values from existing labels. Their content is
+ concatenated using the configured Separator and matched against the
+ configured regular expression.
+ items:
+ description: |-
+ LabelName is a valid Prometheus label name which may only contain ASCII
+ letters, numbers, as well as underscores.
+ pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
+ type: string
+ type: array
+ targetLabel:
+ description: |-
+ Label to which the resulting string is written in a replacement.
+
+
+ It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`,
+ `KeepEqual` and `DropEqual` actions.
+
+
+ Regex capture groups are available.
+ type: string
+ type: object
+ type: array
+ scheme:
+ description: |-
+ HTTP scheme to use for scraping.
+
+
+ `http` and `https` are the expected values unless you rewrite the
+ `__scheme__` label via relabeling.
+
+
+ If empty, Prometheus uses the default value `http`.
+ enum:
+ - http
+ - https
+ type: string
+ scrapeTimeout:
+ description: |-
+ Timeout after which Prometheus considers the scrape to be failed.
+
+
+ If empty, Prometheus uses the global scrape timeout unless it is less
+ than the target's scrape interval value in which the latter is used.
+ pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$
+ type: string
+ targetPort:
+ anyOf:
+ - type: integer
+ - type: string
+ description: |-
+ Name or number of the target port of the `Pod` object behind the
+ Service. The port must be specified with the container's port property.
+ x-kubernetes-int-or-string: true
+ tlsConfig:
+ description: TLS configuration to use when scraping the target.
+ properties:
+ ca:
+ description: Certificate authority used when verifying server
+ certificates.
+ properties:
+ configMap:
+ description: ConfigMap containing data to use for the
+ targets.
+ properties:
+ key:
+ description: The key to select.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the ConfigMap or its
+ key must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ secret:
+ description: Secret containing data to use for the targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key
+ must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ caFile:
+ description: Path to the CA cert in the Prometheus container
+ to use for the targets.
+ type: string
+ cert:
+ description: Client certificate to present when doing client-authentication.
+ properties:
+ configMap:
+ description: ConfigMap containing data to use for the
+ targets.
+ properties:
+ key:
+ description: The key to select.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the ConfigMap or its
+ key must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ secret:
+ description: Secret containing data to use for the targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key
+ must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ certFile:
+ description: Path to the client cert file in the Prometheus
+ container for the targets.
+ type: string
+ insecureSkipVerify:
+ description: Disable target certificate validation.
+ type: boolean
+ keyFile:
+ description: Path to the client key file in the Prometheus
+ container for the targets.
+ type: string
+ keySecret:
+ description: Secret containing the client key file for the
+ targets.
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ TODO: Add other useful fields. apiVersion, kind, uid?
+ type: string
+ optional:
+ description: Specify whether the Secret or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ serverName:
+ description: Used to verify the hostname for the targets.
+ type: string
+ type: object
+ trackTimestampsStaleness:
+ description: |-
+ `trackTimestampsStaleness` defines whether Prometheus tracks staleness of
+ the metrics that have an explicit timestamp present in scraped data.
+ Has no effect if `honorTimestamps` is false.
+
+
+ It requires Prometheus >= v2.48.0.
+ type: boolean
+ type: object
+ type: array
+ jobLabel:
+ description: |-
+ `jobLabel` selects the label from the associated Kubernetes `Service`
+ object which will be used as the `job` label for all metrics.
+
+
+ For example if `jobLabel` is set to `foo` and the Kubernetes `Service`
+ object is labeled with `foo: bar`, then Prometheus adds the `job="bar"`
+ label to all ingested metrics.
+
+
+ If the value of this field is empty or if the label doesn't exist for
+ the given Service, the `job` label of the metrics defaults to the name
+ of the associated Kubernetes `Service`.
+ type: string
+ keepDroppedTargets:
+ description: |-
+ Per-scrape limit on the number of targets dropped by relabeling
+ that will be kept in memory. 0 means no limit.
+
+
+ It requires Prometheus >= v2.47.0.
+ format: int64
+ type: integer
+ labelLimit:
+ description: |-
+ Per-scrape limit on number of labels that will be accepted for a sample.
+
+
+ It requires Prometheus >= v2.27.0.
+ format: int64
+ type: integer
+ labelNameLengthLimit:
+ description: |-
+ Per-scrape limit on length of labels name that will be accepted for a sample.
+
+
+ It requires Prometheus >= v2.27.0.
+ format: int64
+ type: integer
+ labelValueLengthLimit:
+ description: |-
+ Per-scrape limit on length of labels value that will be accepted for a sample.
+
+
+ It requires Prometheus >= v2.27.0.
+ format: int64
+ type: integer
+ namespaceSelector:
+ description: |-
+ Selector to select which namespaces the Kubernetes `Endpoints` objects
+ are discovered from.
+ properties:
+ any:
+ description: |-
+ Boolean describing whether all namespaces are selected in contrast to a
+ list restricting them.
+ type: boolean
+ matchNames:
+ description: List of namespace names to select from.
+ items:
+ type: string
+ type: array
+ type: object
+ podTargetLabels:
+ description: |-
+ `podTargetLabels` defines the labels which are transferred from the
+ associated Kubernetes `Pod` object onto the ingested metrics.
+ items:
+ type: string
+ type: array
+ sampleLimit:
+ description: |-
+ `sampleLimit` defines a per-scrape limit on the number of scraped samples
+ that will be accepted.
+ format: int64
+ type: integer
+ scrapeClass:
+ description: The scrape class to apply.
+ minLength: 1
+ type: string
+ scrapeProtocols:
+ description: |-
+ `scrapeProtocols` defines the protocols to negotiate during a scrape. It tells clients the
+ protocols supported by Prometheus in order of preference (from most to least preferred).
+
+
+ If unset, Prometheus uses its default value.
+
+
+ It requires Prometheus >= v2.49.0.
+ items:
+ description: |-
+ ScrapeProtocol represents a protocol used by Prometheus for scraping metrics.
+ Supported values are:
+ * `OpenMetricsText0.0.1`
+ * `OpenMetricsText1.0.0`
+ * `PrometheusProto`
+ * `PrometheusText0.0.4`
+ enum:
+ - PrometheusProto
+ - OpenMetricsText0.0.1
+ - OpenMetricsText1.0.0
+ - PrometheusText0.0.4
+ type: string
+ type: array
+ x-kubernetes-list-type: set
+ selector:
+ description: Label selector to select the Kubernetes `Endpoints` objects.
+ properties:
+ matchExpressions:
+ description: matchExpressions is a list of label selector requirements.
+ The requirements are ANDed.
+ items:
+ description: |-
+ A label selector requirement is a selector that contains values, a key, and an operator that
+ relates the key and values.
+ properties:
+ key:
+ description: key is the label key that the selector applies
+ to.
+ type: string
+ operator:
+ description: |-
+ operator represents a key's relationship to a set of values.
+ Valid operators are In, NotIn, Exists and DoesNotExist.
+ type: string
+ values:
+ description: |-
+ values is an array of string values. If the operator is In or NotIn,
+ the values array must be non-empty. If the operator is Exists or DoesNotExist,
+ the values array must be empty. This array is replaced during a strategic
+ merge patch.
+ items:
+ type: string
+ type: array
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ matchLabels:
+ additionalProperties:
+ type: string
+ description: |-
+ matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
+ map is equivalent to an element of matchExpressions, whose key field is "key", the
+ operator is "In", and the values array contains only "value". The requirements are ANDed.
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ targetLabels:
+ description: |-
+ `targetLabels` defines the labels which are transferred from the
+ associated Kubernetes `Service` object onto the ingested metrics.
+ items:
+ type: string
+ type: array
+ targetLimit:
+ description: |-
+ `targetLimit` defines a limit on the number of scraped targets that will
+ be accepted.
+ format: int64
+ type: integer
+ required:
+ - selector
+ type: object
+ required:
+ - spec
+ type: object
+ served: true
+ storage: true
diff --git a/charts/opentelemetry-kube-stack/charts/prometheus-node-exporter-4.48.0.tgz b/charts/opentelemetry-kube-stack/charts/prometheus-node-exporter-4.48.0.tgz
new file mode 100644
index 00000000..27668e80
Binary files /dev/null and b/charts/opentelemetry-kube-stack/charts/prometheus-node-exporter-4.48.0.tgz differ
diff --git a/charts/opentelemetry-kube-stack/daemon_scrape_configs.yaml b/charts/opentelemetry-kube-stack/daemon_scrape_configs.yaml
new file mode 100644
index 00000000..e1f91812
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/daemon_scrape_configs.yaml
@@ -0,0 +1,176 @@
+# Collect all metrics from pods on the daemon set's node with at least this annotation
+# prometheus.io/scrape: 'true'
+# This can be further customized by setting the following annotations:
+# prometheus.io/scheme: 'https'
+# prometheus.io/path: '/data/metrics'
+# prometheus.io/port: '80'
+- job_name: kubernetes-pods
+ scrape_interval: 30s
+ kubernetes_sd_configs:
+ - role: pod
+ selectors:
+ - role: pod
+ # only scrape data from pods running on the same node as collector
+ field: "spec.nodeName=${env:OTEL_K8S_NODE_NAME}"
+ relabel_configs:
+ - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
+ action: keep
+ regex: true
+ - source_labels:
+ [__meta_kubernetes_pod_annotation_prometheus_io_scrape_slow]
+ action: drop
+ regex: true
+ - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scheme]
+ action: replace
+ regex: (https?)
+ target_label: __scheme__
+ - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
+ action: replace
+ target_label: __metrics_path__
+ regex: (.+)
+ - source_labels:
+ [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
+ action: replace
+ regex: ([^:]+)(?::\d+)?;(\d+)
+ # NOTE: otel collector uses env var replacement. $$ is used as a literal $.
+ replacement: $$1:$$2
+ target_label: __address__
+ - action: labelmap
+ regex: __meta_kubernetes_pod_annotation_prometheus_io_param_(.+)
+ replacement: __param_$$1
+ - action: labelmap
+ regex: __meta_kubernetes_pod_label_(.+)
+ - source_labels: [__meta_kubernetes_namespace]
+ action: replace
+ target_label: namespace
+ - source_labels: [__meta_kubernetes_pod_name]
+ action: replace
+ target_label: pod
+ - source_labels: [__meta_kubernetes_pod_phase]
+ regex: Pending|Succeeded|Failed|Completed
+ action: drop
+ - action: replace
+ source_labels: [__meta_kubernetes_pod_label_app_kubernetes_io_name]
+ target_label: job
+# This job is setup to scrape the node metrics on the same host as the daemonset
+# https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/29053
+- job_name: node-exporter
+ scrape_interval: 30s
+ relabel_configs:
+ - action: labelmap
+ regex: __meta_kubernetes_node_label_(.+)
+ - action: replace
+ regex: "(.*)"
+ replacement: "$$1"
+ separator: ";"
+ source_labels:
+ - job
+ target_label: __tmp_prometheus_job_name
+ static_configs:
+ - targets:
+ - ${env:OTEL_K8S_NODE_IP}:9100
+# We still need to scrape kubelet's CAdvisor which isn't supported in any otel collector receiver
+# https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/29053
+- authorization:
+ credentials_file: "/var/run/secrets/kubernetes.io/serviceaccount/token"
+ type: Bearer
+ follow_redirects: true
+ honor_labels: true
+ honor_timestamps: true
+ job_name: kubelet
+ kubernetes_sd_configs:
+ - follow_redirects: true
+ role: node
+ selectors:
+ - role: node
+ # only scrape data from pods running on the same node as collector
+ field: "metadata.name=${env:OTEL_K8S_NODE_NAME}"
+ metric_relabel_configs:
+ - action: drop
+ regex: container_cpu_(load_average_10s|system_seconds_total|user_seconds_total)
+ replacement: "$$1"
+ separator: ";"
+ source_labels:
+ - __name__
+ - action: drop
+ regex: container_fs_(io_current|reads_merged_total|sector_reads_total|sector_writes_total|writes_merged_total)
+ replacement: "$$1"
+ separator: ";"
+ source_labels:
+ - __name__
+ - action: drop
+ regex: container_memory_(mapped_file|swap)
+ replacement: "$$1"
+ separator: ";"
+ source_labels:
+ - __name__
+ - action: drop
+ regex: container_(file_descriptors|tasks_state|threads_max)
+ replacement: "$$1"
+ separator: ";"
+ source_labels:
+ - __name__
+ - action: drop
+ regex: container_spec.*
+ replacement: "$$1"
+ separator: ";"
+ source_labels:
+ - __name__
+ - action: drop
+ regex: ".+;"
+ replacement: "$$1"
+ separator: ";"
+ source_labels:
+ - id
+ - pod
+ metrics_path: "/metrics/cadvisor"
+ relabel_configs:
+ - action: replace
+ regex: "(.*)"
+ replacement: "$$1"
+ separator: ";"
+ source_labels:
+ - job
+ target_label: __tmp_prometheus_job_name
+ - action: replace
+ replacement: "kubelet"
+ target_label: job
+ - action: replace
+ regex: "(.*)"
+ replacement: "$$1"
+ separator: ";"
+ source_labels:
+ - __meta_kubernetes_node_name
+ target_label: node
+ - action: replace
+ regex: "(.*)"
+ replacement: https-metrics
+ separator: ";"
+ target_label: endpoint
+ - action: replace
+ regex: "(.*)"
+ replacement: "$$1"
+ separator: ";"
+ source_labels:
+ - __metrics_path__
+ target_label: metrics_path
+ - action: hashmod
+ modulus: 1
+ regex: "(.*)"
+ replacement: "$$1"
+ separator: ";"
+ source_labels:
+ - __address__
+ target_label: __tmp_hash
+ - action: keep
+ regex: "$(SHARD)"
+ replacement: "$$1"
+ separator: ";"
+ source_labels:
+ - __tmp_hash
+ scheme: https
+ scrape_interval: 15s
+ scrape_timeout: 10s
+ tls_config:
+ ca_file: "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt"
+ insecure_skip_verify: true
diff --git a/charts/opentelemetry-kube-stack/doc.yaml b/charts/opentelemetry-kube-stack/doc.yaml
new file mode 100644
index 00000000..00f9757a
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/doc.yaml
@@ -0,0 +1,18 @@
+---
+project:
+ name: OpenTelemetry Stack
+ shortName: OpenTelemetry Stack
+ url: https://github.com/ops-center
+ description: OpenTelemetry Stack
+ app: OpenTelemetry Stack
+repository:
+ url: https://charts.appscode.com/stable/
+ name: appscode
+chart:
+ name: opentelemetry-kube-stack
+ values: -- generate from values file --
+ valuesExample: -- generate from values file --
+prerequisites: [Kubernetes 1.25+]
+release:
+ name: opentelemetry-kube-stack
+ namespace: monitoring
diff --git a/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/bridge.yaml b/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/bridge.yaml
new file mode 100644
index 00000000..c0b4fc43
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/bridge.yaml
@@ -0,0 +1,60 @@
+---
+# Source: opentelemetry-kube-stack/templates/bridge.yaml
+apiVersion: opentelemetry.io/v1alpha1
+kind: OpAMPBridge
+metadata:
+ name: example
+ labels:
+ helm.sh/chart: opentelemetry-kube-stack-0.14.11
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ release: "example"
+spec:
+ endpoint: http://opamp-server:8080
+ capabilities:
+ AcceptsOpAMPConnectionSettings: true
+ AcceptsOtherConnectionSettings: true
+ AcceptsRemoteConfig: true
+ AcceptsRestartCommand: true
+ ReportsEffectiveConfig: true
+ ReportsHealth: true
+ ReportsOwnLogs: true
+ ReportsOwnMetrics: true
+ ReportsOwnTraces: true
+ ReportsRemoteConfig: true
+ ReportsStatus: true
+ replicas: 1
+ image: "ghcr.io/open-telemetry/opentelemetry-operator/operator-opamp-bridge:0.144.0"
+ upgradeStrategy: automatic
+ securityContext:
+ runAsNonRoot: true
+ runAsUser: 1000
+ resources:
+ limits:
+ cpu: 250m
+ memory: 256Mi
+ requests:
+ cpu: 250m
+ memory: 256Mi
+ env:
+ - name: OTEL_K8S_NODE_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: spec.nodeName
+ - name: OTEL_K8S_NAMESPACE
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.namespace
+ - name: OTEL_K8S_POD_NAME
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.name
+ - name: OTEL_K8S_POD_IP
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: status.podIP
+ - name: OTEL_RESOURCE_ATTRIBUTES
+ value: "k8s.cluster.name=demo"
diff --git a/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/clusterrole.yaml b/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/clusterrole.yaml
new file mode 100644
index 00000000..515a6975
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/clusterrole.yaml
@@ -0,0 +1,175 @@
+---
+# Source: opentelemetry-kube-stack/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ name: example-collector
+rules:
+- apiGroups: [""]
+ resources:
+ - namespaces
+ - nodes
+ - nodes/proxy
+ - nodes/metrics
+ - nodes/stats
+ - services
+ - endpoints
+ - pods
+ - events
+ - secrets
+ - persistentvolumeclaims
+ - persistentvolumes
+ verbs: ["get", "list", "watch"]
+- apiGroups: ["monitoring.coreos.com"]
+ resources:
+ - servicemonitors
+ - podmonitors
+ - scrapeconfigs
+ - probes
+ verbs: ["get", "list", "watch"]
+- apiGroups:
+ - extensions
+ resources:
+ - ingresses
+ verbs: ["get", "list", "watch"]
+- apiGroups:
+ - apps
+ resources:
+ - daemonsets
+ - deployments
+ - replicasets
+ - statefulsets
+ verbs: ["get", "list", "watch"]
+- apiGroups:
+ - networking.k8s.io
+ resources:
+ - ingresses
+ verbs: ["get", "list", "watch"]
+- apiGroups: ["discovery.k8s.io"]
+ resources:
+ - endpointslices
+ verbs: ["get", "list", "watch"]
+- nonResourceURLs: ["/metrics", "/metrics/cadvisor"]
+ verbs: ["get"]
+
+- verbs:
+ - get
+ - list
+ - watch
+ - create
+ - update
+ - patch
+ - delete
+ apiGroups:
+ - coordination.k8s.io
+ resources:
+ - leases
+- apiGroups:
+ - ""
+ resources:
+ - events
+ - namespaces
+ - namespaces/status
+ - nodes
+ - nodes/spec
+ - pods
+ - pods/status
+ - replicationcontrollers
+ - replicationcontrollers/status
+ - resourcequotas
+ - services
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups:
+ - apps
+ resources:
+ - daemonsets
+ - deployments
+ - replicasets
+ - statefulsets
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups:
+ - extensions
+ resources:
+ - daemonsets
+ - deployments
+ - replicasets
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups:
+ - batch
+ resources:
+ - jobs
+ - cronjobs
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups:
+ - autoscaling
+ resources:
+ - horizontalpodautoscalers
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups: ["events.k8s.io"]
+ resources: ["events"]
+ verbs: ["watch", "list"]
+---
+# Source: opentelemetry-kube-stack/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ name: example-bridge
+rules:
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opentelemetrycollectors
+ verbs:
+ - "*"
+ - apiGroups:
+ - ""
+ resources:
+ - pods
+ verbs:
+ - 'list'
+ - 'get'
+---
+# Source: opentelemetry-kube-stack/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ name: example-daemon
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: example-collector
+subjects:
+- kind: ServiceAccount
+ # quirk of the Operator
+ name: "example-daemon-collector"
+ namespace: default
+---
+# Source: opentelemetry-kube-stack/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ name: example
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: "example-bridge"
+subjects:
+ - kind: ServiceAccount
+ # quirk of the Operator
+ name: "example-opamp-bridge"
+ namespace: "default"
diff --git a/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/collector.yaml b/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/collector.yaml
new file mode 100644
index 00000000..a6b9f00c
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/collector.yaml
@@ -0,0 +1,533 @@
+---
+# Source: opentelemetry-kube-stack/templates/collector.yaml
+apiVersion: opentelemetry.io/v1beta1
+kind: OpenTelemetryCollector
+metadata:
+ name: example-daemon
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-kube-stack-0.14.11
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ release: "example"
+ opentelemetry.io/opamp-reporting: "true"
+spec:
+ managementState: managed
+ mode: daemonset
+ config:
+ exporters:
+ debug: {}
+ otlp:
+ endpoint: ingest.example.com:443
+ headers:
+ access-token: ${ACCESS_TOKEN}
+ extensions:
+ k8s_leader_elector/k8s_cluster:
+ auth_type: serviceAccount
+ lease_name: k8s.cluster.receiver.opentelemetry.io
+ lease_namespace: default
+ k8s_leader_elector/k8s_objects:
+ auth_type: serviceAccount
+ lease_name: k8s.objects.receiver.opentelemetry.io
+ lease_namespace: default
+ processors:
+ batch:
+ send_batch_max_size: 1500
+ send_batch_size: 1000
+ timeout: 1s
+ k8sattributes:
+ extract:
+ labels:
+ - from: pod
+ key: app.kubernetes.io/instance
+ tag_name: k8s.app.instance
+ - from: pod
+ key: app.kubernetes.io/component
+ tag_name: k8s.app.component
+ metadata:
+ - k8s.namespace.name
+ - k8s.pod.name
+ - k8s.pod.uid
+ - k8s.node.name
+ - k8s.pod.start_time
+ - k8s.deployment.name
+ - k8s.replicaset.name
+ - k8s.replicaset.uid
+ - k8s.daemonset.name
+ - k8s.daemonset.uid
+ - k8s.job.name
+ - k8s.job.uid
+ - k8s.container.name
+ - k8s.cronjob.name
+ - k8s.statefulset.name
+ - k8s.statefulset.uid
+ - container.image.tag
+ - container.image.name
+ - k8s.cluster.uid
+ - service.namespace
+ - service.name
+ - service.version
+ - service.instance.id
+ otel_annotations: true
+ filter:
+ node_from_env_var: OTEL_K8S_NODE_NAME
+ passthrough: false
+ pod_association:
+ - sources:
+ - from: resource_attribute
+ name: k8s.pod.uid
+ - sources:
+ - from: resource_attribute
+ name: k8s.pod.name
+ - from: resource_attribute
+ name: k8s.namespace.name
+ - from: resource_attribute
+ name: k8s.node.name
+ - sources:
+ - from: resource_attribute
+ name: k8s.pod.ip
+ - sources:
+ - from: resource_attribute
+ name: k8s.pod.name
+ - from: resource_attribute
+ name: k8s.namespace.name
+ - sources:
+ - from: connection
+ resource/hostname:
+ attributes:
+ - action: insert
+ from_attribute: k8s.node.name
+ key: host.name
+ resourcedetection/env:
+ detectors:
+ - env
+ - k8snode
+ override: false
+ timeout: 2s
+ receivers:
+ filelog:
+ exclude: []
+ include:
+ - /var/log/pods/*/*/*.log
+ include_file_name: false
+ include_file_path: true
+ operators:
+ - id: container-parser
+ max_log_size: 102400
+ type: container
+ retry_on_failure:
+ enabled: true
+ start_at: end
+ hostmetrics:
+ collection_interval: 10s
+ root_path: /hostfs
+ scrapers:
+ cpu:
+ metrics:
+ system.cpu.logical.count:
+ enabled: true
+ system.cpu.utilization:
+ enabled: true
+ disk: {}
+ filesystem:
+ exclude_fs_types:
+ fs_types:
+ - autofs
+ - binfmt_misc
+ - bpf
+ - cgroup2
+ - configfs
+ - debugfs
+ - devpts
+ - devtmpfs
+ - fusectl
+ - hugetlbfs
+ - iso9660
+ - mqueue
+ - nsfs
+ - overlay
+ - proc
+ - procfs
+ - pstore
+ - rpc_pipefs
+ - securityfs
+ - selinuxfs
+ - squashfs
+ - sysfs
+ - tracefs
+ match_type: strict
+ exclude_mount_points:
+ match_type: regexp
+ mount_points:
+ - /dev/*
+ - /proc/*
+ - /sys/*
+ - /run/k3s/containerd/*
+ - /var/lib/docker/*
+ - /var/lib/kubelet/*
+ - /snap/*
+ metrics:
+ system.filesystem.utilization:
+ enabled: true
+ load: {}
+ memory:
+ metrics:
+ system.memory.limit:
+ enabled: true
+ system.memory.utilization:
+ enabled: true
+ network: {}
+ paging:
+ metrics:
+ system.paging.usage:
+ enabled: true
+ system:
+ metrics:
+ system.uptime:
+ enabled: true
+ k8s_cluster:
+ allocatable_types_to_report:
+ - cpu
+ - memory
+ - storage
+ auth_type: serviceAccount
+ collection_interval: 10s
+ k8s_leader_elector: k8s_leader_elector/k8s_cluster
+ node_conditions_to_report:
+ - Ready
+ - MemoryPressure
+ - DiskPressure
+ - NetworkUnavailable
+ k8sobjects:
+ k8s_leader_elector: k8s_leader_elector/k8s_objects
+ objects:
+ - exclude_watch_type:
+ - DELETED
+ group: events.k8s.io
+ mode: watch
+ name: events
+ kubeletstats:
+ auth_type: serviceAccount
+ collection_interval: 15s
+ endpoint: https://${env:OTEL_K8S_NODE_IP}:10250
+ extra_metadata_labels:
+ - container.id
+ - k8s.volume.type
+ insecure_skip_verify: true
+ k8s_api_config:
+ auth_type: serviceAccount
+ metric_groups:
+ - node
+ - pod
+ - volume
+ - container
+ metrics:
+ container.cpu.usage:
+ enabled: true
+ k8s.node.cpu.usage:
+ enabled: true
+ k8s.node.uptime:
+ enabled: true
+ k8s.pod.cpu.usage:
+ enabled: true
+ k8s.pod.uptime:
+ enabled: true
+ otlp:
+ protocols:
+ grpc:
+ endpoint: 0.0.0.0:4317
+ http:
+ endpoint: 0.0.0.0:4318
+ prometheus:
+ config:
+ scrape_configs:
+ - job_name: kubernetes-pods
+ kubernetes_sd_configs:
+ - role: pod
+ selectors:
+ - field: spec.nodeName=${env:OTEL_K8S_NODE_NAME}
+ role: pod
+ relabel_configs:
+ - action: keep
+ regex: true
+ source_labels:
+ - __meta_kubernetes_pod_annotation_prometheus_io_scrape
+ - action: drop
+ regex: true
+ source_labels:
+ - __meta_kubernetes_pod_annotation_prometheus_io_scrape_slow
+ - action: replace
+ regex: (https?)
+ source_labels:
+ - __meta_kubernetes_pod_annotation_prometheus_io_scheme
+ target_label: __scheme__
+ - action: replace
+ regex: (.+)
+ source_labels:
+ - __meta_kubernetes_pod_annotation_prometheus_io_path
+ target_label: __metrics_path__
+ - action: replace
+ regex: ([^:]+)(?::\d+)?;(\d+)
+ replacement: $$1:$$2
+ source_labels:
+ - __address__
+ - __meta_kubernetes_pod_annotation_prometheus_io_port
+ target_label: __address__
+ - action: labelmap
+ regex: __meta_kubernetes_pod_annotation_prometheus_io_param_(.+)
+ replacement: __param_$$1
+ - action: labelmap
+ regex: __meta_kubernetes_pod_label_(.+)
+ - action: replace
+ source_labels:
+ - __meta_kubernetes_namespace
+ target_label: namespace
+ - action: replace
+ source_labels:
+ - __meta_kubernetes_pod_name
+ target_label: pod
+ - action: drop
+ regex: Pending|Succeeded|Failed|Completed
+ source_labels:
+ - __meta_kubernetes_pod_phase
+ - action: replace
+ source_labels:
+ - __meta_kubernetes_pod_label_app_kubernetes_io_name
+ target_label: job
+ scrape_interval: 30s
+ - job_name: node-exporter
+ relabel_configs:
+ - action: labelmap
+ regex: __meta_kubernetes_node_label_(.+)
+ - action: replace
+ regex: (.*)
+ replacement: $$1
+ separator: ;
+ source_labels:
+ - job
+ target_label: __tmp_prometheus_job_name
+ scrape_interval: 30s
+ static_configs:
+ - targets:
+ - ${env:OTEL_K8S_NODE_IP}:9100
+ - authorization:
+ credentials_file: /var/run/secrets/kubernetes.io/serviceaccount/token
+ type: Bearer
+ follow_redirects: true
+ honor_labels: true
+ honor_timestamps: true
+ job_name: kubelet
+ kubernetes_sd_configs:
+ - follow_redirects: true
+ role: node
+ selectors:
+ - field: metadata.name=${env:OTEL_K8S_NODE_NAME}
+ role: node
+ metric_relabel_configs:
+ - action: drop
+ regex: container_cpu_(load_average_10s|system_seconds_total|user_seconds_total)
+ replacement: $$1
+ separator: ;
+ source_labels:
+ - __name__
+ - action: drop
+ regex: container_fs_(io_current|reads_merged_total|sector_reads_total|sector_writes_total|writes_merged_total)
+ replacement: $$1
+ separator: ;
+ source_labels:
+ - __name__
+ - action: drop
+ regex: container_memory_(mapped_file|swap)
+ replacement: $$1
+ separator: ;
+ source_labels:
+ - __name__
+ - action: drop
+ regex: container_(file_descriptors|tasks_state|threads_max)
+ replacement: $$1
+ separator: ;
+ source_labels:
+ - __name__
+ - action: drop
+ regex: container_spec.*
+ replacement: $$1
+ separator: ;
+ source_labels:
+ - __name__
+ - action: drop
+ regex: .+;
+ replacement: $$1
+ separator: ;
+ source_labels:
+ - id
+ - pod
+ metrics_path: /metrics/cadvisor
+ relabel_configs:
+ - action: replace
+ regex: (.*)
+ replacement: $$1
+ separator: ;
+ source_labels:
+ - job
+ target_label: __tmp_prometheus_job_name
+ - action: replace
+ replacement: kubelet
+ target_label: job
+ - action: replace
+ regex: (.*)
+ replacement: $$1
+ separator: ;
+ source_labels:
+ - __meta_kubernetes_node_name
+ target_label: node
+ - action: replace
+ regex: (.*)
+ replacement: https-metrics
+ separator: ;
+ target_label: endpoint
+ - action: replace
+ regex: (.*)
+ replacement: $$1
+ separator: ;
+ source_labels:
+ - __metrics_path__
+ target_label: metrics_path
+ - action: hashmod
+ modulus: 1
+ regex: (.*)
+ replacement: $$1
+ separator: ;
+ source_labels:
+ - __address__
+ target_label: __tmp_hash
+ - action: keep
+ regex: $(SHARD)
+ replacement: $$1
+ separator: ;
+ source_labels:
+ - __tmp_hash
+ scheme: https
+ scrape_interval: 15s
+ scrape_timeout: 10s
+ tls_config:
+ ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
+ insecure_skip_verify: true
+ service:
+ extensions:
+ - k8s_leader_elector/k8s_objects
+ - k8s_leader_elector/k8s_cluster
+ pipelines:
+ logs:
+ exporters:
+ - debug
+ - otlp
+ processors:
+ - k8sattributes
+ - resourcedetection/env
+ - resource/hostname
+ - batch
+ receivers:
+ - otlp
+ - filelog
+ - k8sobjects
+ metrics:
+ exporters:
+ - debug
+ - otlp
+ processors:
+ - k8sattributes
+ - resourcedetection/env
+ - resource/hostname
+ - batch
+ receivers:
+ - prometheus
+ - otlp
+ - hostmetrics
+ - kubeletstats
+ - k8s_cluster
+ traces:
+ exporters:
+ - debug
+ - otlp
+ processors:
+ - k8sattributes
+ - resourcedetection/env
+ - resource/hostname
+ - batch
+ receivers:
+ - otlp
+ imagePullPolicy: IfNotPresent
+ upgradeStrategy: automatic
+ terminationGracePeriodSeconds: 30
+ resources:
+ limits:
+ cpu: 200m
+ memory: 500Mi
+ requests:
+ cpu: 100m
+ memory: 250Mi
+ securityContext:
+ {}
+ volumeMounts:
+ - name: varlogpods
+ mountPath: /var/log/pods
+ readOnly: true
+ - name: varlibdockercontainers
+ mountPath: /var/lib/docker/containers
+ readOnly: true
+ - name: hostfs
+ mountPath: /hostfs
+ readOnly: true
+ mountPropagation: HostToContainer
+ ports:
+ - appProtocol: grpc
+ hostPort: 4317
+ name: otlp-grpc
+ port: 4317
+ protocol: TCP
+ env:
+ - name: K8S_NODE_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: spec.nodeName
+ - name: OTEL_K8S_NODE_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: spec.nodeName
+ - name: OTEL_K8S_NODE_IP
+ valueFrom:
+ fieldRef:
+ fieldPath: status.hostIP
+ - name: OTEL_K8S_NAMESPACE
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.namespace
+ - name: OTEL_K8S_POD_NAME
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.name
+ - name: OTEL_K8S_POD_IP
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: status.podIP
+ - name: OTEL_RESOURCE_ATTRIBUTES
+ value: "k8s.pod.name=$(OTEL_K8S_POD_NAME),k8s.namespace.name=$(OTEL_K8S_NAMESPACE),k8s.node.name=$(OTEL_K8S_NODE_NAME),host.name=$(OTEL_K8S_NODE_NAME),k8s.node.ip=$(OTEL_K8S_NODE_IP),k8s.pod.ip=$(OTEL_K8S_POD_IP),k8s.cluster.name=demo"
+
+ - name: ACCESS_TOKEN
+ valueFrom:
+ secretKeyRef:
+ key: access_token
+ name: otel-collector-secret
+ volumes:
+ - name: varlogpods
+ hostPath:
+ path: /var/log/pods
+ - name: varlibdockercontainers
+ hostPath:
+ path: /var/lib/docker/containers
+ - name: hostfs
+ hostPath:
+ path: /
diff --git a/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/hooks.yaml b/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/hooks.yaml
new file mode 100644
index 00000000..f528b802
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/hooks.yaml
@@ -0,0 +1,64 @@
+---
+# Source: opentelemetry-kube-stack/templates/hooks.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: delete-resources-sa
+ annotations:
+ "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
+---
+# Source: opentelemetry-kube-stack/templates/hooks.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: Role
+metadata:
+ name: delete-resources-role
+ annotations:
+ "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
+rules:
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - instrumentations
+ - opampbridges
+ - opentelemetrycollectors
+ verbs:
+ - get
+ - list
+ - delete
+---
+# Source: opentelemetry-kube-stack/templates/hooks.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: RoleBinding
+metadata:
+ name: delete-resources-rolebinding
+ annotations:
+ "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: Role
+ name: delete-resources-role
+subjects:
+ - kind: ServiceAccount
+ name: delete-resources-sa
+---
+# Source: opentelemetry-kube-stack/templates/hooks.yaml
+apiVersion: batch/v1
+kind: Job
+metadata:
+ name: opentelemetry-kube-stack-pre-delete-job
+ annotations:
+ "helm.sh/hook": pre-delete
+ "helm.sh/hook-delete-policy": hook-succeeded,hook-failed
+spec:
+ template:
+ spec:
+ restartPolicy: Never
+ serviceAccountName: delete-resources-sa
+ containers:
+ - name: delete-resources
+ image: "rancher/kubectl:v1.34.1"
+ args:
+ - "delete"
+ - "instrumentations,opampbridges,opentelemetrycollectors"
+ - "-l"
+ - "helm.sh/chart=opentelemetry-kube-stack-0.14.11"
diff --git a/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/instrumentation.yaml b/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/instrumentation.yaml
new file mode 100644
index 00000000..704b84d8
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/instrumentation.yaml
@@ -0,0 +1,34 @@
+---
+# Source: opentelemetry-kube-stack/templates/instrumentation.yaml
+apiVersion: opentelemetry.io/v1alpha1
+kind: Instrumentation
+metadata:
+ name: example
+ labels:
+ helm.sh/chart: opentelemetry-kube-stack-0.14.11
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ release: "example"
+spec:
+ exporter:
+ endpoint: http://${OTEL_K8S_NODE_NAME}:4317
+ propagators:
+ - tracecontext
+ - baggage
+ - b3
+ - b3multi
+ - jaeger
+ - xray
+ - ottrace
+ env:
+ - name: OTEL_K8S_NODE_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: spec.nodeName
+ resource:
+ addK8sUIDAttributes: true
+ resourceAttributes: {}
+ python:
+ env:
+ - name: OTEL_EXPORTER_OTLP_ENDPOINT
+ value: http://${OTEL_K8S_NODE_NAME}:4318
diff --git a/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/opentelemetry-operator/admission-webhooks/operator-webhook-with-cert-manager.yaml b/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/opentelemetry-operator/admission-webhooks/operator-webhook-with-cert-manager.yaml
new file mode 100644
index 00000000..1b4f51a7
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/opentelemetry-operator/admission-webhooks/operator-webhook-with-cert-manager.yaml
@@ -0,0 +1,192 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/admission-webhooks/operator-webhook-with-cert-manager.yaml
+apiVersion: admissionregistration.k8s.io/v1
+kind: MutatingWebhookConfiguration
+metadata:
+ annotations:
+ cert-manager.io/inject-ca-from: default/example-opentelemetry-operator-serving-cert
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ name: example-opentelemetry-operator-mutation
+webhooks:
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /mutate-opentelemetry-io-v1alpha1-instrumentation
+ port: 443
+ failurePolicy: Ignore
+ name: minstrumentation.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1alpha1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - instrumentations
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /mutate-opentelemetry-io-v1beta1-opentelemetrycollector
+ port: 443
+ failurePolicy: Ignore
+ name: mopentelemetrycollectorbeta.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1beta1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - opentelemetrycollectors
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /mutate-v1-pod
+ port: 443
+ failurePolicy: Ignore
+ name: mpod.kb.io
+ rules:
+ - apiGroups:
+ - ""
+ apiVersions:
+ - v1
+ operations:
+ - CREATE
+ resources:
+ - pods
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/admission-webhooks/operator-webhook-with-cert-manager.yaml
+apiVersion: admissionregistration.k8s.io/v1
+kind: ValidatingWebhookConfiguration
+metadata:
+ annotations:
+ cert-manager.io/inject-ca-from: default/example-opentelemetry-operator-serving-cert
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ name: example-opentelemetry-operator-validation
+webhooks:
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /validate-opentelemetry-io-v1alpha1-instrumentation
+ port: 443
+ failurePolicy: Ignore
+ name: vinstrumentationcreateupdate.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1alpha1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - instrumentations
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /validate-opentelemetry-io-v1alpha1-instrumentation
+ port: 443
+ failurePolicy: Ignore
+ name: vinstrumentationdelete.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1alpha1
+ operations:
+ - DELETE
+ resources:
+ - instrumentations
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /validate-opentelemetry-io-v1beta1-opentelemetrycollector
+ port: 443
+ failurePolicy: Ignore
+ name: vopentelemetrycollectorcreateupdatebeta.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1beta1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - opentelemetrycollectors
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /validate-opentelemetry-io-v1beta1-opentelemetrycollector
+ port: 443
+ failurePolicy: Ignore
+ name: vopentelemetrycollectordeletebeta.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1beta1
+ operations:
+ - DELETE
+ resources:
+ - opentelemetrycollectors
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
diff --git a/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/opentelemetry-operator/admission-webhooks/operator-webhook.yaml b/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/opentelemetry-operator/admission-webhooks/operator-webhook.yaml
new file mode 100644
index 00000000..5b9ff551
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/opentelemetry-operator/admission-webhooks/operator-webhook.yaml
@@ -0,0 +1,3 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/admission-webhooks/operator-webhook.yaml
+---
diff --git a/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/opentelemetry-operator/certmanager.yaml b/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/opentelemetry-operator/certmanager.yaml
new file mode 100644
index 00000000..a8922eee
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/opentelemetry-operator/certmanager.yaml
@@ -0,0 +1,43 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/certmanager.yaml
+apiVersion: cert-manager.io/v1
+kind: Certificate
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ name: example-opentelemetry-operator-serving-cert
+ namespace: default
+spec:
+ dnsNames:
+ - example-opentelemetry-operator-webhook.default.svc
+ - example-opentelemetry-operator-webhook.default.svc.cluster.local
+ issuerRef:
+ kind: Issuer
+ name: example-opentelemetry-operator-selfsigned-issuer
+ secretName: example-opentelemetry-operator-controller-manager-service-cert
+ subject:
+ organizationalUnits:
+ - example-opentelemetry-operator
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/certmanager.yaml
+apiVersion: cert-manager.io/v1
+kind: Issuer
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ name: example-opentelemetry-operator-selfsigned-issuer
+ namespace: default
+spec:
+ selfSigned: {}
diff --git a/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/opentelemetry-operator/clusterrole.yaml b/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/opentelemetry-operator/clusterrole.yaml
new file mode 100644
index 00000000..4ae76fec
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/opentelemetry-operator/clusterrole.yaml
@@ -0,0 +1,402 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-manager
+rules:
+ - apiGroups:
+ - ""
+ resources:
+ - configmaps
+ - persistentvolumeclaims
+ - persistentvolumes
+ - pods
+ - serviceaccounts
+ - services
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - events
+ verbs:
+ - create
+ - get
+ - list
+ - patch
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - namespaces
+ verbs:
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - namespaces/status
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - nodes/spec
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - pods/status
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - replicationcontrollers
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - replicationcontrollers/status
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - resourcequotas
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - apps
+ resources:
+ - daemonsets
+ - deployments
+ - statefulsets
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - apps
+ - extensions
+ resources:
+ - replicasets
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - extensions
+ resources:
+ - daemonsets
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - extensions
+ resources:
+ - deployments
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - autoscaling
+ resources:
+ - horizontalpodautoscalers
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - batch
+ resources:
+ - jobs
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - batch
+ resources:
+ - cronjobs
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - nodes/proxy
+ verbs:
+ - get
+ - apiGroups:
+ - ""
+ resources:
+ - nodes/stats
+ verbs:
+ - get
+ - apiGroups:
+ - config.openshift.io
+ resources:
+ - infrastructures
+ - infrastructures/status
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - coordination.k8s.io
+ resources:
+ - leases
+ verbs:
+ - create
+ - get
+ - list
+ - update
+ - apiGroups:
+ - events.k8s.io
+ resources:
+ - events
+ verbs:
+ - list
+ - watch
+ - apiGroups:
+ - monitoring.coreos.com
+ resources:
+ - podmonitors
+ - servicemonitors
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - networking.k8s.io
+ resources:
+ - ingresses
+ - networkpolicies
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - instrumentations
+ verbs:
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges/finalizers
+ verbs:
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges/status
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opentelemetrycollectors
+ verbs:
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opentelemetrycollectors/finalizers
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opentelemetrycollectors/status
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - policy
+ resources:
+ - poddisruptionbudgets
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - route.openshift.io
+ resources:
+ - routes
+ - routes/custom-host
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - targetallocators
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - targetallocators/status
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - targetallocators/finalizers
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - cert-manager.io
+ resources:
+ - issuers
+ - certificaterequests
+ - certificates
+ verbs:
+ - create
+ - get
+ - list
+ - watch
+ - update
+ - patch
+ - delete
+ - apiGroups:
+ - authorization.k8s.io
+ resources:
+ - subjectaccessreviews
+ verbs:
+ - create
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-metrics
+rules:
+ - nonResourceURLs:
+ - /metrics
+ verbs:
+ - get
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-proxy
+rules:
+ - apiGroups:
+ - authentication.k8s.io
+ resources:
+ - tokenreviews
+ verbs:
+ - create
diff --git a/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/opentelemetry-operator/clusterrolebinding.yaml b/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/opentelemetry-operator/clusterrolebinding.yaml
new file mode 100644
index 00000000..831b2df7
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/opentelemetry-operator/clusterrolebinding.yaml
@@ -0,0 +1,44 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrolebinding.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-manager
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: example-opentelemetry-operator-manager
+subjects:
+ - kind: ServiceAccount
+ name: opentelemetry-operator
+ namespace: default
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrolebinding.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-proxy
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: example-opentelemetry-operator-proxy
+subjects:
+ - kind: ServiceAccount
+ name: opentelemetry-operator
+ namespace: default
diff --git a/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/opentelemetry-operator/deployment.yaml b/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/opentelemetry-operator/deployment.yaml
new file mode 100644
index 00000000..ca0ddf47
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/opentelemetry-operator/deployment.yaml
@@ -0,0 +1,122 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/deployment.yaml
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator
+ namespace: default
+spec:
+ replicas: 1
+ revisionHistoryLimit: 10
+ selector:
+ matchLabels:
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/component: controller-manager
+ template:
+ metadata:
+ annotations:
+ kubectl.kubernetes.io/default-container: manager
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ spec:
+ automountServiceAccountToken: true
+ hostNetwork: false
+ containers:
+ - args:
+ - --metrics-addr=0.0.0.0:8080
+ - --enable-leader-election
+ - --health-probe-addr=:8081
+ - --webhook-port=9443
+ - --collector-image=otel/opentelemetry-collector-k8s:0.144.0
+ command:
+ - /manager
+ env:
+ - name: SERVICE_ACCOUNT_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: spec.serviceAccountName
+ - name: ENABLE_WEBHOOKS
+ value: "true"
+ image: "ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator:0.144.0"
+ name: manager
+ imagePullPolicy: IfNotPresent
+ ports:
+ - containerPort: 8080
+ name: metrics
+ protocol: TCP
+ - containerPort: 9443
+ name: webhook-server
+ protocol: TCP
+ livenessProbe:
+ httpGet:
+ path: /healthz
+ port: 8081
+ initialDelaySeconds: 15
+ periodSeconds: 20
+ readinessProbe:
+ httpGet:
+ path: /readyz
+ port: 8081
+ initialDelaySeconds: 5
+ periodSeconds: 10
+ resources:
+ {}
+ volumeMounts:
+ - mountPath: /tmp/k8s-webhook-server/serving-certs
+ name: cert
+ readOnly: true
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
+
+ - args:
+ - --secure-listen-address=0.0.0.0:8443
+ - --upstream=http://127.0.0.1:8080/
+ - --v=0
+ image: "quay.io/brancz/kube-rbac-proxy:v0.20.0"
+ name: kube-rbac-proxy
+ ports:
+ - containerPort: 8443
+ name: https
+ protocol: TCP
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
+ nodeSelector:
+ kubernetes.io/os: linux
+ serviceAccountName: opentelemetry-operator
+ terminationGracePeriodSeconds: 10
+ volumes:
+ - name: cert
+ secret:
+ defaultMode: 420
+ secretName: example-opentelemetry-operator-controller-manager-service-cert
+ securityContext:
+ fsGroup: 65532
+ runAsGroup: 65532
+ runAsNonRoot: true
+ runAsUser: 65532
diff --git a/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/opentelemetry-operator/role.yaml b/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/opentelemetry-operator/role.yaml
new file mode 100644
index 00000000..88ccd2b0
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/opentelemetry-operator/role.yaml
@@ -0,0 +1,199 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/role.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: Role
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-leader-election
+ namespace: default
+rules:
+ - apiGroups:
+ - ""
+ resources:
+ - configmaps
+ - pods
+ - serviceaccounts
+ - services
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - events
+ verbs:
+ - create
+ - patch
+ - apiGroups:
+ - ""
+ resources:
+ - namespaces
+ - secrets
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - apps
+ resources:
+ - daemonsets
+ - deployments
+ - statefulsets
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - apps
+ resources:
+ - replicasets
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - autoscaling
+ resources:
+ - horizontalpodautoscalers
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - batch
+ resources:
+ - jobs
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - config.openshift.io
+ resources:
+ - infrastructures
+ - infrastructures/status
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - coordination.k8s.io
+ resources:
+ - leases
+ verbs:
+ - create
+ - get
+ - list
+ - update
+ - apiGroups:
+ - monitoring.coreos.com
+ resources:
+ - podmonitors
+ - servicemonitors
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - networking.k8s.io
+ resources:
+ - ingresses
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - instrumentations
+ - opentelemetrycollectors
+ verbs:
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges
+ - targetallocators
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges/finalizers
+ verbs:
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges/status
+ - opentelemetrycollectors/finalizers
+ - opentelemetrycollectors/status
+ - targetallocators/status
+ - targetallocators/finalizers
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - policy
+ resources:
+ - poddisruptionbudgets
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - route.openshift.io
+ resources:
+ - routes
+ - routes/custom-host
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
diff --git a/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/opentelemetry-operator/rolebinding.yaml b/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/opentelemetry-operator/rolebinding.yaml
new file mode 100644
index 00000000..fa556fae
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/opentelemetry-operator/rolebinding.yaml
@@ -0,0 +1,23 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/rolebinding.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: RoleBinding
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-leader-election
+ namespace: default
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: Role
+ name: example-opentelemetry-operator-leader-election
+subjects:
+ - kind: ServiceAccount
+ name: opentelemetry-operator
+ namespace: default
diff --git a/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/opentelemetry-operator/service.yaml b/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/opentelemetry-operator/service.yaml
new file mode 100644
index 00000000..9f7f7220
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/opentelemetry-operator/service.yaml
@@ -0,0 +1,51 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/service.yaml
+apiVersion: v1
+kind: Service
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator
+ namespace: default
+spec:
+ ports:
+ - name: https
+ port: 8443
+ protocol: TCP
+ targetPort: https
+ - name: metrics
+ port: 8080
+ protocol: TCP
+ targetPort: metrics
+ selector:
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/component: controller-manager
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/service.yaml
+apiVersion: v1
+kind: Service
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+spec:
+ ports:
+ - port: 443
+ protocol: TCP
+ targetPort: webhook-server
+ selector:
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/component: controller-manager
diff --git a/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/opentelemetry-operator/serviceaccount.yaml b/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/opentelemetry-operator/serviceaccount.yaml
new file mode 100644
index 00000000..f49d54b3
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/opentelemetry-operator/serviceaccount.yaml
@@ -0,0 +1,16 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+automountServiceAccountToken: true
+metadata:
+ name: opentelemetry-operator
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
diff --git a/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/opentelemetry-operator/tests/test-certmanager-connection.yaml b/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/opentelemetry-operator/tests/test-certmanager-connection.yaml
new file mode 100644
index 00000000..8c13f151
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/opentelemetry-operator/tests/test-certmanager-connection.yaml
@@ -0,0 +1,53 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/tests/test-certmanager-connection.yaml
+apiVersion: v1
+kind: Pod
+metadata:
+ name: "example-opentelemetry-operator-cert-manager"
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ annotations:
+ "helm.sh/hook": test
+spec:
+ containers:
+ - name: wget
+ image: "busybox:latest"
+ env:
+ - name: CERT_MANAGER_CLUSTERIP
+ value: "cert-manager-webhook"
+ - name: CERT_MANAGER_PORT
+ value: "443"
+ command:
+ - sh
+ - -c
+ # The following shell script tests if the cert-manager service is up. If the service is up, when we try
+ # to wget its exposed port, we will get an HTTP error 400.
+ - |
+ wget_output=$(wget -q "$CERT_MANAGER_CLUSTERIP:$CERT_MANAGER_PORT")
+ if wget_output=="wget: server returned error: HTTP/1.0 400 Bad Request"
+ then exit 0
+ else exit 1
+ fi
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
+ restartPolicy: Never
+ nodeSelector:
+ kubernetes.io/os: linux
+ securityContext:
+ fsGroup: 65532
+ runAsGroup: 65532
+ runAsNonRoot: true
+ runAsUser: 65532
diff --git a/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/opentelemetry-operator/tests/test-service-connection.yaml b/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/opentelemetry-operator/tests/test-service-connection.yaml
new file mode 100644
index 00000000..59ef1413
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/opentelemetry-operator/tests/test-service-connection.yaml
@@ -0,0 +1,106 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/tests/test-service-connection.yaml
+apiVersion: v1
+kind: Pod
+metadata:
+ name: "example-opentelemetry-operator-metrics"
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ annotations:
+ "helm.sh/hook": test
+spec:
+ containers:
+ - name: wget
+ image: "busybox:latest"
+ env:
+ - name: MANAGER_METRICS_SERVICE_CLUSTERIP
+ value: "example-opentelemetry-operator"
+ - name: MANAGER_METRICS_SERVICE_PORT
+ value: "8443"
+ command:
+ - sh
+ - -c
+ # The following shell script tests if the controller-manager-metrics-service is up.
+ # If the service is up, when we try to wget its exposed port, we will get an HTTP error 400.
+ - |
+ wget_output=$(wget -q "$MANAGER_METRICS_SERVICE_CLUSTERIP:$MANAGER_METRICS_SERVICE_PORT")
+ if wget_output=="wget: server returned error: HTTP/1.0 400 Bad Request"
+ then exit 0
+ else exit 1
+ fi
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
+ restartPolicy: Never
+ nodeSelector:
+ kubernetes.io/os: linux
+ securityContext:
+ fsGroup: 65532
+ runAsGroup: 65532
+ runAsNonRoot: true
+ runAsUser: 65532
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/tests/test-service-connection.yaml
+apiVersion: v1
+kind: Pod
+metadata:
+ name: "example-opentelemetry-operator-webhook"
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ annotations:
+ "helm.sh/hook": test
+spec:
+ containers:
+ - name: wget
+ image: "busybox:latest"
+ env:
+ - name: WEBHOOK_SERVICE_CLUSTERIP
+ value: "example-opentelemetry-operator-webhook"
+ - name: WEBHOOK_SERVICE_PORT
+ value: "443"
+ command:
+ - sh
+ - -c
+ # The following shell script tests if the webhook service is up. If the service is up, when we try
+ # to wget its exposed port, we will get an HTTP error 400.
+ - |
+ wget_output=$(wget -q "$WEBHOOK_SERVICE_CLUSTERIP:$WEBHOOK_SERVICE_PORT")
+ if wget_output=="wget: server returned error: HTTP/1.0 400 Bad Request"
+ then exit 0
+ else exit 1
+ fi
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
+ restartPolicy: Never
+ nodeSelector:
+ kubernetes.io/os: linux
+ securityContext:
+ fsGroup: 65532
+ runAsGroup: 65532
+ runAsNonRoot: true
+ runAsUser: 65532
diff --git a/charts/opentelemetry-kube-stack/examples/cloud-demo/values.yaml b/charts/opentelemetry-kube-stack/examples/cloud-demo/values.yaml
new file mode 100644
index 00000000..51b6adc3
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/cloud-demo/values.yaml
@@ -0,0 +1,62 @@
+clusterName: demo
+collectors:
+ daemon:
+ ports:
+ - appProtocol: grpc
+ name: otlp-grpc
+ port: 4317
+ protocol: TCP
+ hostPort: 4317 # Force the hostPort
+ env:
+ - name: ACCESS_TOKEN
+ valueFrom:
+ secretKeyRef:
+ key: access_token
+ name: otel-collector-secret
+ config:
+ exporters:
+ otlp:
+ endpoint: ingest.example.com:443
+ headers:
+ "access-token": "${ACCESS_TOKEN}"
+ service:
+ pipelines:
+ metrics:
+ exporters: [debug, otlp]
+ traces:
+ exporters: [debug, otlp]
+ logs:
+ exporters: [debug, otlp]
+ cluster:
+ env:
+ - name: ACCESS_TOKEN
+ valueFrom:
+ secretKeyRef:
+ key: access_token
+ name: otel-collector-secret
+ config:
+ exporters:
+ otlp:
+ endpoint: ingest.example.com:443
+ headers:
+ "access-token": "${ACCESS_TOKEN}"
+ service:
+ pipelines:
+ metrics:
+ exporters: [debug, otlp]
+instrumentation:
+ enabled: true
+ env:
+ - name: OTEL_K8S_NODE_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: spec.nodeName
+ exporter:
+ endpoint: http://${OTEL_K8S_NODE_NAME}:4317
+ python:
+ env:
+ - name: OTEL_EXPORTER_OTLP_ENDPOINT
+ value: http://${OTEL_K8S_NODE_NAME}:4318
+opAMPBridge:
+ enabled: true
+ addReportingLabel: true
diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/clusterrole.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/clusterrole.yaml
new file mode 100644
index 00000000..2c535f47
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/clusterrole.yaml
@@ -0,0 +1,68 @@
+---
+# Source: opentelemetry-kube-stack/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ name: example-collector
+rules:
+- apiGroups: [""]
+ resources:
+ - namespaces
+ - nodes
+ - nodes/proxy
+ - nodes/metrics
+ - nodes/stats
+ - services
+ - endpoints
+ - pods
+ - events
+ - secrets
+ - persistentvolumeclaims
+ - persistentvolumes
+ verbs: ["get", "list", "watch"]
+- apiGroups: ["monitoring.coreos.com"]
+ resources:
+ - servicemonitors
+ - podmonitors
+ - scrapeconfigs
+ - probes
+ verbs: ["get", "list", "watch"]
+- apiGroups:
+ - extensions
+ resources:
+ - ingresses
+ verbs: ["get", "list", "watch"]
+- apiGroups:
+ - apps
+ resources:
+ - daemonsets
+ - deployments
+ - replicasets
+ - statefulsets
+ verbs: ["get", "list", "watch"]
+- apiGroups:
+ - networking.k8s.io
+ resources:
+ - ingresses
+ verbs: ["get", "list", "watch"]
+- apiGroups: ["discovery.k8s.io"]
+ resources:
+ - endpointslices
+ verbs: ["get", "list", "watch"]
+- nonResourceURLs: ["/metrics", "/metrics/cadvisor"]
+ verbs: ["get"]
+---
+# Source: opentelemetry-kube-stack/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ name: example-daemon
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: example-collector
+subjects:
+- kind: ServiceAccount
+ # quirk of the Operator
+ name: "example-daemon-collector"
+ namespace: default
diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/collector.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/collector.yaml
new file mode 100644
index 00000000..1f0d3bb9
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/collector.yaml
@@ -0,0 +1,126 @@
+---
+# Source: opentelemetry-kube-stack/templates/collector.yaml
+apiVersion: opentelemetry.io/v1beta1
+kind: OpenTelemetryCollector
+metadata:
+ name: example-daemon
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-kube-stack-0.14.11
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ release: "example"
+spec:
+ managementState: managed
+ mode: daemonset
+ config:
+ exporters:
+ debug: {}
+ extensions:
+ k8s_observer:
+ auth_type: serviceAccount
+ node: ${env:K8S_NODE_NAME}
+ processors:
+ batch:
+ send_batch_max_size: 1500
+ send_batch_size: 1000
+ timeout: 1s
+ resource/hostname:
+ attributes:
+ - action: insert
+ from_attribute: k8s.node.name
+ key: host.name
+ resourcedetection/env:
+ detectors:
+ - env
+ - k8snode
+ override: false
+ timeout: 2s
+ receivers:
+ otlp:
+ protocols:
+ grpc:
+ endpoint: 0.0.0.0:4317
+ http:
+ endpoint: 0.0.0.0:4318
+ receiver_creator/logs:
+ discovery:
+ default_annotations:
+ io.opentelemetry.discovery.logs/enabled: "true"
+ enabled: true
+ watch_observers:
+ - k8s_observer
+ service:
+ extensions:
+ - k8s_observer
+ pipelines:
+ logs:
+ exporters:
+ - debug
+ processors:
+ - resourcedetection/env
+ - resource/hostname
+ - batch
+ receivers:
+ - otlp
+ - receiver_creator/logs
+ metrics:
+ exporters:
+ - debug
+ processors:
+ - resourcedetection/env
+ - resource/hostname
+ - batch
+ receivers:
+ - otlp
+ traces:
+ exporters:
+ - debug
+ processors:
+ - resourcedetection/env
+ - resource/hostname
+ - batch
+ receivers:
+ - otlp
+ imagePullPolicy: IfNotPresent
+ upgradeStrategy: automatic
+ terminationGracePeriodSeconds: 30
+ resources:
+ limits:
+ cpu: 200m
+ memory: 500Mi
+ requests:
+ cpu: 100m
+ memory: 250Mi
+ securityContext:
+ {}
+ env:
+ - name: K8S_NODE_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: spec.nodeName
+ - name: OTEL_K8S_NODE_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: spec.nodeName
+ - name: OTEL_K8S_NODE_IP
+ valueFrom:
+ fieldRef:
+ fieldPath: status.hostIP
+ - name: OTEL_K8S_NAMESPACE
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.namespace
+ - name: OTEL_K8S_POD_NAME
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.name
+ - name: OTEL_K8S_POD_IP
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: status.podIP
+ - name: OTEL_RESOURCE_ATTRIBUTES
+ value: "k8s.pod.name=$(OTEL_K8S_POD_NAME),k8s.namespace.name=$(OTEL_K8S_NAMESPACE),k8s.node.name=$(OTEL_K8S_NODE_NAME),host.name=$(OTEL_K8S_NODE_NAME),k8s.node.ip=$(OTEL_K8S_NODE_IP),k8s.pod.ip=$(OTEL_K8S_POD_IP),k8s.cluster.name=unknown_k8s_cluster"
diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/hooks.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/hooks.yaml
new file mode 100644
index 00000000..f528b802
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/hooks.yaml
@@ -0,0 +1,64 @@
+---
+# Source: opentelemetry-kube-stack/templates/hooks.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: delete-resources-sa
+ annotations:
+ "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
+---
+# Source: opentelemetry-kube-stack/templates/hooks.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: Role
+metadata:
+ name: delete-resources-role
+ annotations:
+ "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
+rules:
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - instrumentations
+ - opampbridges
+ - opentelemetrycollectors
+ verbs:
+ - get
+ - list
+ - delete
+---
+# Source: opentelemetry-kube-stack/templates/hooks.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: RoleBinding
+metadata:
+ name: delete-resources-rolebinding
+ annotations:
+ "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: Role
+ name: delete-resources-role
+subjects:
+ - kind: ServiceAccount
+ name: delete-resources-sa
+---
+# Source: opentelemetry-kube-stack/templates/hooks.yaml
+apiVersion: batch/v1
+kind: Job
+metadata:
+ name: opentelemetry-kube-stack-pre-delete-job
+ annotations:
+ "helm.sh/hook": pre-delete
+ "helm.sh/hook-delete-policy": hook-succeeded,hook-failed
+spec:
+ template:
+ spec:
+ restartPolicy: Never
+ serviceAccountName: delete-resources-sa
+ containers:
+ - name: delete-resources
+ image: "rancher/kubectl:v1.34.1"
+ args:
+ - "delete"
+ - "instrumentations,opampbridges,opentelemetrycollectors"
+ - "-l"
+ - "helm.sh/chart=opentelemetry-kube-stack-0.14.11"
diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/opentelemetry-operator/admission-webhooks/operator-webhook-with-cert-manager.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/opentelemetry-operator/admission-webhooks/operator-webhook-with-cert-manager.yaml
new file mode 100644
index 00000000..1b4f51a7
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/opentelemetry-operator/admission-webhooks/operator-webhook-with-cert-manager.yaml
@@ -0,0 +1,192 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/admission-webhooks/operator-webhook-with-cert-manager.yaml
+apiVersion: admissionregistration.k8s.io/v1
+kind: MutatingWebhookConfiguration
+metadata:
+ annotations:
+ cert-manager.io/inject-ca-from: default/example-opentelemetry-operator-serving-cert
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ name: example-opentelemetry-operator-mutation
+webhooks:
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /mutate-opentelemetry-io-v1alpha1-instrumentation
+ port: 443
+ failurePolicy: Ignore
+ name: minstrumentation.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1alpha1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - instrumentations
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /mutate-opentelemetry-io-v1beta1-opentelemetrycollector
+ port: 443
+ failurePolicy: Ignore
+ name: mopentelemetrycollectorbeta.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1beta1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - opentelemetrycollectors
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /mutate-v1-pod
+ port: 443
+ failurePolicy: Ignore
+ name: mpod.kb.io
+ rules:
+ - apiGroups:
+ - ""
+ apiVersions:
+ - v1
+ operations:
+ - CREATE
+ resources:
+ - pods
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/admission-webhooks/operator-webhook-with-cert-manager.yaml
+apiVersion: admissionregistration.k8s.io/v1
+kind: ValidatingWebhookConfiguration
+metadata:
+ annotations:
+ cert-manager.io/inject-ca-from: default/example-opentelemetry-operator-serving-cert
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ name: example-opentelemetry-operator-validation
+webhooks:
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /validate-opentelemetry-io-v1alpha1-instrumentation
+ port: 443
+ failurePolicy: Ignore
+ name: vinstrumentationcreateupdate.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1alpha1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - instrumentations
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /validate-opentelemetry-io-v1alpha1-instrumentation
+ port: 443
+ failurePolicy: Ignore
+ name: vinstrumentationdelete.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1alpha1
+ operations:
+ - DELETE
+ resources:
+ - instrumentations
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /validate-opentelemetry-io-v1beta1-opentelemetrycollector
+ port: 443
+ failurePolicy: Ignore
+ name: vopentelemetrycollectorcreateupdatebeta.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1beta1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - opentelemetrycollectors
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /validate-opentelemetry-io-v1beta1-opentelemetrycollector
+ port: 443
+ failurePolicy: Ignore
+ name: vopentelemetrycollectordeletebeta.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1beta1
+ operations:
+ - DELETE
+ resources:
+ - opentelemetrycollectors
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/opentelemetry-operator/admission-webhooks/operator-webhook.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/opentelemetry-operator/admission-webhooks/operator-webhook.yaml
new file mode 100644
index 00000000..5b9ff551
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/opentelemetry-operator/admission-webhooks/operator-webhook.yaml
@@ -0,0 +1,3 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/admission-webhooks/operator-webhook.yaml
+---
diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/opentelemetry-operator/certmanager.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/opentelemetry-operator/certmanager.yaml
new file mode 100644
index 00000000..a8922eee
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/opentelemetry-operator/certmanager.yaml
@@ -0,0 +1,43 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/certmanager.yaml
+apiVersion: cert-manager.io/v1
+kind: Certificate
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ name: example-opentelemetry-operator-serving-cert
+ namespace: default
+spec:
+ dnsNames:
+ - example-opentelemetry-operator-webhook.default.svc
+ - example-opentelemetry-operator-webhook.default.svc.cluster.local
+ issuerRef:
+ kind: Issuer
+ name: example-opentelemetry-operator-selfsigned-issuer
+ secretName: example-opentelemetry-operator-controller-manager-service-cert
+ subject:
+ organizationalUnits:
+ - example-opentelemetry-operator
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/certmanager.yaml
+apiVersion: cert-manager.io/v1
+kind: Issuer
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ name: example-opentelemetry-operator-selfsigned-issuer
+ namespace: default
+spec:
+ selfSigned: {}
diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/opentelemetry-operator/clusterrole.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/opentelemetry-operator/clusterrole.yaml
new file mode 100644
index 00000000..4ae76fec
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/opentelemetry-operator/clusterrole.yaml
@@ -0,0 +1,402 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-manager
+rules:
+ - apiGroups:
+ - ""
+ resources:
+ - configmaps
+ - persistentvolumeclaims
+ - persistentvolumes
+ - pods
+ - serviceaccounts
+ - services
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - events
+ verbs:
+ - create
+ - get
+ - list
+ - patch
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - namespaces
+ verbs:
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - namespaces/status
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - nodes/spec
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - pods/status
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - replicationcontrollers
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - replicationcontrollers/status
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - resourcequotas
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - apps
+ resources:
+ - daemonsets
+ - deployments
+ - statefulsets
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - apps
+ - extensions
+ resources:
+ - replicasets
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - extensions
+ resources:
+ - daemonsets
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - extensions
+ resources:
+ - deployments
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - autoscaling
+ resources:
+ - horizontalpodautoscalers
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - batch
+ resources:
+ - jobs
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - batch
+ resources:
+ - cronjobs
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - nodes/proxy
+ verbs:
+ - get
+ - apiGroups:
+ - ""
+ resources:
+ - nodes/stats
+ verbs:
+ - get
+ - apiGroups:
+ - config.openshift.io
+ resources:
+ - infrastructures
+ - infrastructures/status
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - coordination.k8s.io
+ resources:
+ - leases
+ verbs:
+ - create
+ - get
+ - list
+ - update
+ - apiGroups:
+ - events.k8s.io
+ resources:
+ - events
+ verbs:
+ - list
+ - watch
+ - apiGroups:
+ - monitoring.coreos.com
+ resources:
+ - podmonitors
+ - servicemonitors
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - networking.k8s.io
+ resources:
+ - ingresses
+ - networkpolicies
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - instrumentations
+ verbs:
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges/finalizers
+ verbs:
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges/status
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opentelemetrycollectors
+ verbs:
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opentelemetrycollectors/finalizers
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opentelemetrycollectors/status
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - policy
+ resources:
+ - poddisruptionbudgets
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - route.openshift.io
+ resources:
+ - routes
+ - routes/custom-host
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - targetallocators
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - targetallocators/status
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - targetallocators/finalizers
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - cert-manager.io
+ resources:
+ - issuers
+ - certificaterequests
+ - certificates
+ verbs:
+ - create
+ - get
+ - list
+ - watch
+ - update
+ - patch
+ - delete
+ - apiGroups:
+ - authorization.k8s.io
+ resources:
+ - subjectaccessreviews
+ verbs:
+ - create
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-metrics
+rules:
+ - nonResourceURLs:
+ - /metrics
+ verbs:
+ - get
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-proxy
+rules:
+ - apiGroups:
+ - authentication.k8s.io
+ resources:
+ - tokenreviews
+ verbs:
+ - create
diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/opentelemetry-operator/clusterrolebinding.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/opentelemetry-operator/clusterrolebinding.yaml
new file mode 100644
index 00000000..831b2df7
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/opentelemetry-operator/clusterrolebinding.yaml
@@ -0,0 +1,44 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrolebinding.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-manager
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: example-opentelemetry-operator-manager
+subjects:
+ - kind: ServiceAccount
+ name: opentelemetry-operator
+ namespace: default
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrolebinding.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-proxy
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: example-opentelemetry-operator-proxy
+subjects:
+ - kind: ServiceAccount
+ name: opentelemetry-operator
+ namespace: default
diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/opentelemetry-operator/deployment.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/opentelemetry-operator/deployment.yaml
new file mode 100644
index 00000000..ca0ddf47
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/opentelemetry-operator/deployment.yaml
@@ -0,0 +1,122 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/deployment.yaml
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator
+ namespace: default
+spec:
+ replicas: 1
+ revisionHistoryLimit: 10
+ selector:
+ matchLabels:
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/component: controller-manager
+ template:
+ metadata:
+ annotations:
+ kubectl.kubernetes.io/default-container: manager
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ spec:
+ automountServiceAccountToken: true
+ hostNetwork: false
+ containers:
+ - args:
+ - --metrics-addr=0.0.0.0:8080
+ - --enable-leader-election
+ - --health-probe-addr=:8081
+ - --webhook-port=9443
+ - --collector-image=otel/opentelemetry-collector-k8s:0.144.0
+ command:
+ - /manager
+ env:
+ - name: SERVICE_ACCOUNT_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: spec.serviceAccountName
+ - name: ENABLE_WEBHOOKS
+ value: "true"
+ image: "ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator:0.144.0"
+ name: manager
+ imagePullPolicy: IfNotPresent
+ ports:
+ - containerPort: 8080
+ name: metrics
+ protocol: TCP
+ - containerPort: 9443
+ name: webhook-server
+ protocol: TCP
+ livenessProbe:
+ httpGet:
+ path: /healthz
+ port: 8081
+ initialDelaySeconds: 15
+ periodSeconds: 20
+ readinessProbe:
+ httpGet:
+ path: /readyz
+ port: 8081
+ initialDelaySeconds: 5
+ periodSeconds: 10
+ resources:
+ {}
+ volumeMounts:
+ - mountPath: /tmp/k8s-webhook-server/serving-certs
+ name: cert
+ readOnly: true
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
+
+ - args:
+ - --secure-listen-address=0.0.0.0:8443
+ - --upstream=http://127.0.0.1:8080/
+ - --v=0
+ image: "quay.io/brancz/kube-rbac-proxy:v0.20.0"
+ name: kube-rbac-proxy
+ ports:
+ - containerPort: 8443
+ name: https
+ protocol: TCP
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
+ nodeSelector:
+ kubernetes.io/os: linux
+ serviceAccountName: opentelemetry-operator
+ terminationGracePeriodSeconds: 10
+ volumes:
+ - name: cert
+ secret:
+ defaultMode: 420
+ secretName: example-opentelemetry-operator-controller-manager-service-cert
+ securityContext:
+ fsGroup: 65532
+ runAsGroup: 65532
+ runAsNonRoot: true
+ runAsUser: 65532
diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/opentelemetry-operator/role.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/opentelemetry-operator/role.yaml
new file mode 100644
index 00000000..88ccd2b0
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/opentelemetry-operator/role.yaml
@@ -0,0 +1,199 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/role.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: Role
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-leader-election
+ namespace: default
+rules:
+ - apiGroups:
+ - ""
+ resources:
+ - configmaps
+ - pods
+ - serviceaccounts
+ - services
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - events
+ verbs:
+ - create
+ - patch
+ - apiGroups:
+ - ""
+ resources:
+ - namespaces
+ - secrets
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - apps
+ resources:
+ - daemonsets
+ - deployments
+ - statefulsets
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - apps
+ resources:
+ - replicasets
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - autoscaling
+ resources:
+ - horizontalpodautoscalers
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - batch
+ resources:
+ - jobs
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - config.openshift.io
+ resources:
+ - infrastructures
+ - infrastructures/status
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - coordination.k8s.io
+ resources:
+ - leases
+ verbs:
+ - create
+ - get
+ - list
+ - update
+ - apiGroups:
+ - monitoring.coreos.com
+ resources:
+ - podmonitors
+ - servicemonitors
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - networking.k8s.io
+ resources:
+ - ingresses
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - instrumentations
+ - opentelemetrycollectors
+ verbs:
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges
+ - targetallocators
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges/finalizers
+ verbs:
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges/status
+ - opentelemetrycollectors/finalizers
+ - opentelemetrycollectors/status
+ - targetallocators/status
+ - targetallocators/finalizers
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - policy
+ resources:
+ - poddisruptionbudgets
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - route.openshift.io
+ resources:
+ - routes
+ - routes/custom-host
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/opentelemetry-operator/rolebinding.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/opentelemetry-operator/rolebinding.yaml
new file mode 100644
index 00000000..fa556fae
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/opentelemetry-operator/rolebinding.yaml
@@ -0,0 +1,23 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/rolebinding.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: RoleBinding
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-leader-election
+ namespace: default
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: Role
+ name: example-opentelemetry-operator-leader-election
+subjects:
+ - kind: ServiceAccount
+ name: opentelemetry-operator
+ namespace: default
diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/opentelemetry-operator/service.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/opentelemetry-operator/service.yaml
new file mode 100644
index 00000000..9f7f7220
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/opentelemetry-operator/service.yaml
@@ -0,0 +1,51 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/service.yaml
+apiVersion: v1
+kind: Service
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator
+ namespace: default
+spec:
+ ports:
+ - name: https
+ port: 8443
+ protocol: TCP
+ targetPort: https
+ - name: metrics
+ port: 8080
+ protocol: TCP
+ targetPort: metrics
+ selector:
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/component: controller-manager
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/service.yaml
+apiVersion: v1
+kind: Service
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+spec:
+ ports:
+ - port: 443
+ protocol: TCP
+ targetPort: webhook-server
+ selector:
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/component: controller-manager
diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/opentelemetry-operator/serviceaccount.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/opentelemetry-operator/serviceaccount.yaml
new file mode 100644
index 00000000..f49d54b3
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/opentelemetry-operator/serviceaccount.yaml
@@ -0,0 +1,16 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+automountServiceAccountToken: true
+metadata:
+ name: opentelemetry-operator
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/opentelemetry-operator/tests/test-certmanager-connection.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/opentelemetry-operator/tests/test-certmanager-connection.yaml
new file mode 100644
index 00000000..8c13f151
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/opentelemetry-operator/tests/test-certmanager-connection.yaml
@@ -0,0 +1,53 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/tests/test-certmanager-connection.yaml
+apiVersion: v1
+kind: Pod
+metadata:
+ name: "example-opentelemetry-operator-cert-manager"
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ annotations:
+ "helm.sh/hook": test
+spec:
+ containers:
+ - name: wget
+ image: "busybox:latest"
+ env:
+ - name: CERT_MANAGER_CLUSTERIP
+ value: "cert-manager-webhook"
+ - name: CERT_MANAGER_PORT
+ value: "443"
+ command:
+ - sh
+ - -c
+ # The following shell script tests if the cert-manager service is up. If the service is up, when we try
+ # to wget its exposed port, we will get an HTTP error 400.
+ - |
+ wget_output=$(wget -q "$CERT_MANAGER_CLUSTERIP:$CERT_MANAGER_PORT")
+ if wget_output=="wget: server returned error: HTTP/1.0 400 Bad Request"
+ then exit 0
+ else exit 1
+ fi
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
+ restartPolicy: Never
+ nodeSelector:
+ kubernetes.io/os: linux
+ securityContext:
+ fsGroup: 65532
+ runAsGroup: 65532
+ runAsNonRoot: true
+ runAsUser: 65532
diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/opentelemetry-operator/tests/test-service-connection.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/opentelemetry-operator/tests/test-service-connection.yaml
new file mode 100644
index 00000000..59ef1413
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/opentelemetry-operator/tests/test-service-connection.yaml
@@ -0,0 +1,106 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/tests/test-service-connection.yaml
+apiVersion: v1
+kind: Pod
+metadata:
+ name: "example-opentelemetry-operator-metrics"
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ annotations:
+ "helm.sh/hook": test
+spec:
+ containers:
+ - name: wget
+ image: "busybox:latest"
+ env:
+ - name: MANAGER_METRICS_SERVICE_CLUSTERIP
+ value: "example-opentelemetry-operator"
+ - name: MANAGER_METRICS_SERVICE_PORT
+ value: "8443"
+ command:
+ - sh
+ - -c
+ # The following shell script tests if the controller-manager-metrics-service is up.
+ # If the service is up, when we try to wget its exposed port, we will get an HTTP error 400.
+ - |
+ wget_output=$(wget -q "$MANAGER_METRICS_SERVICE_CLUSTERIP:$MANAGER_METRICS_SERVICE_PORT")
+ if wget_output=="wget: server returned error: HTTP/1.0 400 Bad Request"
+ then exit 0
+ else exit 1
+ fi
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
+ restartPolicy: Never
+ nodeSelector:
+ kubernetes.io/os: linux
+ securityContext:
+ fsGroup: 65532
+ runAsGroup: 65532
+ runAsNonRoot: true
+ runAsUser: 65532
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/tests/test-service-connection.yaml
+apiVersion: v1
+kind: Pod
+metadata:
+ name: "example-opentelemetry-operator-webhook"
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ annotations:
+ "helm.sh/hook": test
+spec:
+ containers:
+ - name: wget
+ image: "busybox:latest"
+ env:
+ - name: WEBHOOK_SERVICE_CLUSTERIP
+ value: "example-opentelemetry-operator-webhook"
+ - name: WEBHOOK_SERVICE_PORT
+ value: "443"
+ command:
+ - sh
+ - -c
+ # The following shell script tests if the webhook service is up. If the service is up, when we try
+ # to wget its exposed port, we will get an HTTP error 400.
+ - |
+ wget_output=$(wget -q "$WEBHOOK_SERVICE_CLUSTERIP:$WEBHOOK_SERVICE_PORT")
+ if wget_output=="wget: server returned error: HTTP/1.0 400 Bad Request"
+ then exit 0
+ else exit 1
+ fi
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
+ restartPolicy: Never
+ nodeSelector:
+ kubernetes.io/os: linux
+ securityContext:
+ fsGroup: 65532
+ runAsGroup: 65532
+ runAsNonRoot: true
+ runAsUser: 65532
diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/values.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/values.yaml
new file mode 100644
index 00000000..dce26675
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/values.yaml
@@ -0,0 +1,22 @@
+collectors:
+ daemon:
+ # disable Prometheus scrapping
+ scrape_configs_file: ""
+ presets:
+ logsCollection:
+ enabled: false
+ kubeletMetrics:
+ enabled: false
+ hostMetrics:
+ enabled: false
+ kubernetesAttributes:
+ enabled: false
+ kubernetesEvents:
+ enabled: false
+ clusterMetrics:
+ enabled: false
+ annotationDiscovery:
+ logs:
+ enabled: true
+ metrics:
+ enabled: false
diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/clusterrole.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/clusterrole.yaml
new file mode 100644
index 00000000..2c535f47
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/clusterrole.yaml
@@ -0,0 +1,68 @@
+---
+# Source: opentelemetry-kube-stack/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ name: example-collector
+rules:
+- apiGroups: [""]
+ resources:
+ - namespaces
+ - nodes
+ - nodes/proxy
+ - nodes/metrics
+ - nodes/stats
+ - services
+ - endpoints
+ - pods
+ - events
+ - secrets
+ - persistentvolumeclaims
+ - persistentvolumes
+ verbs: ["get", "list", "watch"]
+- apiGroups: ["monitoring.coreos.com"]
+ resources:
+ - servicemonitors
+ - podmonitors
+ - scrapeconfigs
+ - probes
+ verbs: ["get", "list", "watch"]
+- apiGroups:
+ - extensions
+ resources:
+ - ingresses
+ verbs: ["get", "list", "watch"]
+- apiGroups:
+ - apps
+ resources:
+ - daemonsets
+ - deployments
+ - replicasets
+ - statefulsets
+ verbs: ["get", "list", "watch"]
+- apiGroups:
+ - networking.k8s.io
+ resources:
+ - ingresses
+ verbs: ["get", "list", "watch"]
+- apiGroups: ["discovery.k8s.io"]
+ resources:
+ - endpointslices
+ verbs: ["get", "list", "watch"]
+- nonResourceURLs: ["/metrics", "/metrics/cadvisor"]
+ verbs: ["get"]
+---
+# Source: opentelemetry-kube-stack/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ name: example-daemon
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: example-collector
+subjects:
+- kind: ServiceAccount
+ # quirk of the Operator
+ name: "example-daemon-collector"
+ namespace: default
diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/collector.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/collector.yaml
new file mode 100644
index 00000000..816bf3ef
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/collector.yaml
@@ -0,0 +1,124 @@
+---
+# Source: opentelemetry-kube-stack/templates/collector.yaml
+apiVersion: opentelemetry.io/v1beta1
+kind: OpenTelemetryCollector
+metadata:
+ name: example-daemon
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-kube-stack-0.14.11
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ release: "example"
+spec:
+ managementState: managed
+ mode: daemonset
+ config:
+ exporters:
+ debug: {}
+ extensions:
+ k8s_observer:
+ auth_type: serviceAccount
+ node: ${env:K8S_NODE_NAME}
+ processors:
+ batch:
+ send_batch_max_size: 1500
+ send_batch_size: 1000
+ timeout: 1s
+ resource/hostname:
+ attributes:
+ - action: insert
+ from_attribute: k8s.node.name
+ key: host.name
+ resourcedetection/env:
+ detectors:
+ - env
+ - k8snode
+ override: false
+ timeout: 2s
+ receivers:
+ otlp:
+ protocols:
+ grpc:
+ endpoint: 0.0.0.0:4317
+ http:
+ endpoint: 0.0.0.0:4318
+ receiver_creator/metrics:
+ discovery:
+ enabled: true
+ watch_observers:
+ - k8s_observer
+ service:
+ extensions:
+ - k8s_observer
+ pipelines:
+ logs:
+ exporters:
+ - debug
+ processors:
+ - resourcedetection/env
+ - resource/hostname
+ - batch
+ receivers:
+ - otlp
+ metrics:
+ exporters:
+ - debug
+ processors:
+ - resourcedetection/env
+ - resource/hostname
+ - batch
+ receivers:
+ - otlp
+ - receiver_creator/metrics
+ traces:
+ exporters:
+ - debug
+ processors:
+ - resourcedetection/env
+ - resource/hostname
+ - batch
+ receivers:
+ - otlp
+ imagePullPolicy: IfNotPresent
+ upgradeStrategy: automatic
+ terminationGracePeriodSeconds: 30
+ resources:
+ limits:
+ cpu: 200m
+ memory: 500Mi
+ requests:
+ cpu: 100m
+ memory: 250Mi
+ securityContext:
+ {}
+ env:
+ - name: K8S_NODE_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: spec.nodeName
+ - name: OTEL_K8S_NODE_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: spec.nodeName
+ - name: OTEL_K8S_NODE_IP
+ valueFrom:
+ fieldRef:
+ fieldPath: status.hostIP
+ - name: OTEL_K8S_NAMESPACE
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.namespace
+ - name: OTEL_K8S_POD_NAME
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.name
+ - name: OTEL_K8S_POD_IP
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: status.podIP
+ - name: OTEL_RESOURCE_ATTRIBUTES
+ value: "k8s.pod.name=$(OTEL_K8S_POD_NAME),k8s.namespace.name=$(OTEL_K8S_NAMESPACE),k8s.node.name=$(OTEL_K8S_NODE_NAME),host.name=$(OTEL_K8S_NODE_NAME),k8s.node.ip=$(OTEL_K8S_NODE_IP),k8s.pod.ip=$(OTEL_K8S_POD_IP),k8s.cluster.name=unknown_k8s_cluster"
diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/hooks.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/hooks.yaml
new file mode 100644
index 00000000..f528b802
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/hooks.yaml
@@ -0,0 +1,64 @@
+---
+# Source: opentelemetry-kube-stack/templates/hooks.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: delete-resources-sa
+ annotations:
+ "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
+---
+# Source: opentelemetry-kube-stack/templates/hooks.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: Role
+metadata:
+ name: delete-resources-role
+ annotations:
+ "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
+rules:
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - instrumentations
+ - opampbridges
+ - opentelemetrycollectors
+ verbs:
+ - get
+ - list
+ - delete
+---
+# Source: opentelemetry-kube-stack/templates/hooks.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: RoleBinding
+metadata:
+ name: delete-resources-rolebinding
+ annotations:
+ "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: Role
+ name: delete-resources-role
+subjects:
+ - kind: ServiceAccount
+ name: delete-resources-sa
+---
+# Source: opentelemetry-kube-stack/templates/hooks.yaml
+apiVersion: batch/v1
+kind: Job
+metadata:
+ name: opentelemetry-kube-stack-pre-delete-job
+ annotations:
+ "helm.sh/hook": pre-delete
+ "helm.sh/hook-delete-policy": hook-succeeded,hook-failed
+spec:
+ template:
+ spec:
+ restartPolicy: Never
+ serviceAccountName: delete-resources-sa
+ containers:
+ - name: delete-resources
+ image: "rancher/kubectl:v1.34.1"
+ args:
+ - "delete"
+ - "instrumentations,opampbridges,opentelemetrycollectors"
+ - "-l"
+ - "helm.sh/chart=opentelemetry-kube-stack-0.14.11"
diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/opentelemetry-operator/admission-webhooks/operator-webhook-with-cert-manager.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/opentelemetry-operator/admission-webhooks/operator-webhook-with-cert-manager.yaml
new file mode 100644
index 00000000..1b4f51a7
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/opentelemetry-operator/admission-webhooks/operator-webhook-with-cert-manager.yaml
@@ -0,0 +1,192 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/admission-webhooks/operator-webhook-with-cert-manager.yaml
+apiVersion: admissionregistration.k8s.io/v1
+kind: MutatingWebhookConfiguration
+metadata:
+ annotations:
+ cert-manager.io/inject-ca-from: default/example-opentelemetry-operator-serving-cert
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ name: example-opentelemetry-operator-mutation
+webhooks:
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /mutate-opentelemetry-io-v1alpha1-instrumentation
+ port: 443
+ failurePolicy: Ignore
+ name: minstrumentation.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1alpha1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - instrumentations
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /mutate-opentelemetry-io-v1beta1-opentelemetrycollector
+ port: 443
+ failurePolicy: Ignore
+ name: mopentelemetrycollectorbeta.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1beta1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - opentelemetrycollectors
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /mutate-v1-pod
+ port: 443
+ failurePolicy: Ignore
+ name: mpod.kb.io
+ rules:
+ - apiGroups:
+ - ""
+ apiVersions:
+ - v1
+ operations:
+ - CREATE
+ resources:
+ - pods
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/admission-webhooks/operator-webhook-with-cert-manager.yaml
+apiVersion: admissionregistration.k8s.io/v1
+kind: ValidatingWebhookConfiguration
+metadata:
+ annotations:
+ cert-manager.io/inject-ca-from: default/example-opentelemetry-operator-serving-cert
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ name: example-opentelemetry-operator-validation
+webhooks:
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /validate-opentelemetry-io-v1alpha1-instrumentation
+ port: 443
+ failurePolicy: Ignore
+ name: vinstrumentationcreateupdate.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1alpha1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - instrumentations
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /validate-opentelemetry-io-v1alpha1-instrumentation
+ port: 443
+ failurePolicy: Ignore
+ name: vinstrumentationdelete.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1alpha1
+ operations:
+ - DELETE
+ resources:
+ - instrumentations
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /validate-opentelemetry-io-v1beta1-opentelemetrycollector
+ port: 443
+ failurePolicy: Ignore
+ name: vopentelemetrycollectorcreateupdatebeta.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1beta1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - opentelemetrycollectors
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /validate-opentelemetry-io-v1beta1-opentelemetrycollector
+ port: 443
+ failurePolicy: Ignore
+ name: vopentelemetrycollectordeletebeta.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1beta1
+ operations:
+ - DELETE
+ resources:
+ - opentelemetrycollectors
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/opentelemetry-operator/admission-webhooks/operator-webhook.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/opentelemetry-operator/admission-webhooks/operator-webhook.yaml
new file mode 100644
index 00000000..5b9ff551
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/opentelemetry-operator/admission-webhooks/operator-webhook.yaml
@@ -0,0 +1,3 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/admission-webhooks/operator-webhook.yaml
+---
diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/opentelemetry-operator/certmanager.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/opentelemetry-operator/certmanager.yaml
new file mode 100644
index 00000000..a8922eee
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/opentelemetry-operator/certmanager.yaml
@@ -0,0 +1,43 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/certmanager.yaml
+apiVersion: cert-manager.io/v1
+kind: Certificate
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ name: example-opentelemetry-operator-serving-cert
+ namespace: default
+spec:
+ dnsNames:
+ - example-opentelemetry-operator-webhook.default.svc
+ - example-opentelemetry-operator-webhook.default.svc.cluster.local
+ issuerRef:
+ kind: Issuer
+ name: example-opentelemetry-operator-selfsigned-issuer
+ secretName: example-opentelemetry-operator-controller-manager-service-cert
+ subject:
+ organizationalUnits:
+ - example-opentelemetry-operator
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/certmanager.yaml
+apiVersion: cert-manager.io/v1
+kind: Issuer
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ name: example-opentelemetry-operator-selfsigned-issuer
+ namespace: default
+spec:
+ selfSigned: {}
diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/opentelemetry-operator/clusterrole.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/opentelemetry-operator/clusterrole.yaml
new file mode 100644
index 00000000..4ae76fec
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/opentelemetry-operator/clusterrole.yaml
@@ -0,0 +1,402 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-manager
+rules:
+ - apiGroups:
+ - ""
+ resources:
+ - configmaps
+ - persistentvolumeclaims
+ - persistentvolumes
+ - pods
+ - serviceaccounts
+ - services
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - events
+ verbs:
+ - create
+ - get
+ - list
+ - patch
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - namespaces
+ verbs:
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - namespaces/status
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - nodes/spec
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - pods/status
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - replicationcontrollers
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - replicationcontrollers/status
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - resourcequotas
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - apps
+ resources:
+ - daemonsets
+ - deployments
+ - statefulsets
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - apps
+ - extensions
+ resources:
+ - replicasets
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - extensions
+ resources:
+ - daemonsets
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - extensions
+ resources:
+ - deployments
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - autoscaling
+ resources:
+ - horizontalpodautoscalers
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - batch
+ resources:
+ - jobs
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - batch
+ resources:
+ - cronjobs
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - nodes/proxy
+ verbs:
+ - get
+ - apiGroups:
+ - ""
+ resources:
+ - nodes/stats
+ verbs:
+ - get
+ - apiGroups:
+ - config.openshift.io
+ resources:
+ - infrastructures
+ - infrastructures/status
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - coordination.k8s.io
+ resources:
+ - leases
+ verbs:
+ - create
+ - get
+ - list
+ - update
+ - apiGroups:
+ - events.k8s.io
+ resources:
+ - events
+ verbs:
+ - list
+ - watch
+ - apiGroups:
+ - monitoring.coreos.com
+ resources:
+ - podmonitors
+ - servicemonitors
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - networking.k8s.io
+ resources:
+ - ingresses
+ - networkpolicies
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - instrumentations
+ verbs:
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges/finalizers
+ verbs:
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges/status
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opentelemetrycollectors
+ verbs:
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opentelemetrycollectors/finalizers
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opentelemetrycollectors/status
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - policy
+ resources:
+ - poddisruptionbudgets
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - route.openshift.io
+ resources:
+ - routes
+ - routes/custom-host
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - targetallocators
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - targetallocators/status
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - targetallocators/finalizers
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - cert-manager.io
+ resources:
+ - issuers
+ - certificaterequests
+ - certificates
+ verbs:
+ - create
+ - get
+ - list
+ - watch
+ - update
+ - patch
+ - delete
+ - apiGroups:
+ - authorization.k8s.io
+ resources:
+ - subjectaccessreviews
+ verbs:
+ - create
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-metrics
+rules:
+ - nonResourceURLs:
+ - /metrics
+ verbs:
+ - get
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-proxy
+rules:
+ - apiGroups:
+ - authentication.k8s.io
+ resources:
+ - tokenreviews
+ verbs:
+ - create
diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/opentelemetry-operator/clusterrolebinding.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/opentelemetry-operator/clusterrolebinding.yaml
new file mode 100644
index 00000000..831b2df7
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/opentelemetry-operator/clusterrolebinding.yaml
@@ -0,0 +1,44 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrolebinding.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-manager
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: example-opentelemetry-operator-manager
+subjects:
+ - kind: ServiceAccount
+ name: opentelemetry-operator
+ namespace: default
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrolebinding.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-proxy
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: example-opentelemetry-operator-proxy
+subjects:
+ - kind: ServiceAccount
+ name: opentelemetry-operator
+ namespace: default
diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/opentelemetry-operator/deployment.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/opentelemetry-operator/deployment.yaml
new file mode 100644
index 00000000..ca0ddf47
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/opentelemetry-operator/deployment.yaml
@@ -0,0 +1,122 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/deployment.yaml
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator
+ namespace: default
+spec:
+ replicas: 1
+ revisionHistoryLimit: 10
+ selector:
+ matchLabels:
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/component: controller-manager
+ template:
+ metadata:
+ annotations:
+ kubectl.kubernetes.io/default-container: manager
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ spec:
+ automountServiceAccountToken: true
+ hostNetwork: false
+ containers:
+ - args:
+ - --metrics-addr=0.0.0.0:8080
+ - --enable-leader-election
+ - --health-probe-addr=:8081
+ - --webhook-port=9443
+ - --collector-image=otel/opentelemetry-collector-k8s:0.144.0
+ command:
+ - /manager
+ env:
+ - name: SERVICE_ACCOUNT_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: spec.serviceAccountName
+ - name: ENABLE_WEBHOOKS
+ value: "true"
+ image: "ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator:0.144.0"
+ name: manager
+ imagePullPolicy: IfNotPresent
+ ports:
+ - containerPort: 8080
+ name: metrics
+ protocol: TCP
+ - containerPort: 9443
+ name: webhook-server
+ protocol: TCP
+ livenessProbe:
+ httpGet:
+ path: /healthz
+ port: 8081
+ initialDelaySeconds: 15
+ periodSeconds: 20
+ readinessProbe:
+ httpGet:
+ path: /readyz
+ port: 8081
+ initialDelaySeconds: 5
+ periodSeconds: 10
+ resources:
+ {}
+ volumeMounts:
+ - mountPath: /tmp/k8s-webhook-server/serving-certs
+ name: cert
+ readOnly: true
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
+
+ - args:
+ - --secure-listen-address=0.0.0.0:8443
+ - --upstream=http://127.0.0.1:8080/
+ - --v=0
+ image: "quay.io/brancz/kube-rbac-proxy:v0.20.0"
+ name: kube-rbac-proxy
+ ports:
+ - containerPort: 8443
+ name: https
+ protocol: TCP
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
+ nodeSelector:
+ kubernetes.io/os: linux
+ serviceAccountName: opentelemetry-operator
+ terminationGracePeriodSeconds: 10
+ volumes:
+ - name: cert
+ secret:
+ defaultMode: 420
+ secretName: example-opentelemetry-operator-controller-manager-service-cert
+ securityContext:
+ fsGroup: 65532
+ runAsGroup: 65532
+ runAsNonRoot: true
+ runAsUser: 65532
diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/opentelemetry-operator/role.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/opentelemetry-operator/role.yaml
new file mode 100644
index 00000000..88ccd2b0
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/opentelemetry-operator/role.yaml
@@ -0,0 +1,199 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/role.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: Role
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-leader-election
+ namespace: default
+rules:
+ - apiGroups:
+ - ""
+ resources:
+ - configmaps
+ - pods
+ - serviceaccounts
+ - services
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - events
+ verbs:
+ - create
+ - patch
+ - apiGroups:
+ - ""
+ resources:
+ - namespaces
+ - secrets
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - apps
+ resources:
+ - daemonsets
+ - deployments
+ - statefulsets
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - apps
+ resources:
+ - replicasets
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - autoscaling
+ resources:
+ - horizontalpodautoscalers
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - batch
+ resources:
+ - jobs
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - config.openshift.io
+ resources:
+ - infrastructures
+ - infrastructures/status
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - coordination.k8s.io
+ resources:
+ - leases
+ verbs:
+ - create
+ - get
+ - list
+ - update
+ - apiGroups:
+ - monitoring.coreos.com
+ resources:
+ - podmonitors
+ - servicemonitors
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - networking.k8s.io
+ resources:
+ - ingresses
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - instrumentations
+ - opentelemetrycollectors
+ verbs:
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges
+ - targetallocators
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges/finalizers
+ verbs:
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges/status
+ - opentelemetrycollectors/finalizers
+ - opentelemetrycollectors/status
+ - targetallocators/status
+ - targetallocators/finalizers
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - policy
+ resources:
+ - poddisruptionbudgets
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - route.openshift.io
+ resources:
+ - routes
+ - routes/custom-host
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/opentelemetry-operator/rolebinding.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/opentelemetry-operator/rolebinding.yaml
new file mode 100644
index 00000000..fa556fae
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/opentelemetry-operator/rolebinding.yaml
@@ -0,0 +1,23 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/rolebinding.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: RoleBinding
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-leader-election
+ namespace: default
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: Role
+ name: example-opentelemetry-operator-leader-election
+subjects:
+ - kind: ServiceAccount
+ name: opentelemetry-operator
+ namespace: default
diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/opentelemetry-operator/service.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/opentelemetry-operator/service.yaml
new file mode 100644
index 00000000..9f7f7220
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/opentelemetry-operator/service.yaml
@@ -0,0 +1,51 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/service.yaml
+apiVersion: v1
+kind: Service
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator
+ namespace: default
+spec:
+ ports:
+ - name: https
+ port: 8443
+ protocol: TCP
+ targetPort: https
+ - name: metrics
+ port: 8080
+ protocol: TCP
+ targetPort: metrics
+ selector:
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/component: controller-manager
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/service.yaml
+apiVersion: v1
+kind: Service
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+spec:
+ ports:
+ - port: 443
+ protocol: TCP
+ targetPort: webhook-server
+ selector:
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/component: controller-manager
diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/opentelemetry-operator/serviceaccount.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/opentelemetry-operator/serviceaccount.yaml
new file mode 100644
index 00000000..f49d54b3
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/opentelemetry-operator/serviceaccount.yaml
@@ -0,0 +1,16 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+automountServiceAccountToken: true
+metadata:
+ name: opentelemetry-operator
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/opentelemetry-operator/tests/test-certmanager-connection.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/opentelemetry-operator/tests/test-certmanager-connection.yaml
new file mode 100644
index 00000000..8c13f151
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/opentelemetry-operator/tests/test-certmanager-connection.yaml
@@ -0,0 +1,53 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/tests/test-certmanager-connection.yaml
+apiVersion: v1
+kind: Pod
+metadata:
+ name: "example-opentelemetry-operator-cert-manager"
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ annotations:
+ "helm.sh/hook": test
+spec:
+ containers:
+ - name: wget
+ image: "busybox:latest"
+ env:
+ - name: CERT_MANAGER_CLUSTERIP
+ value: "cert-manager-webhook"
+ - name: CERT_MANAGER_PORT
+ value: "443"
+ command:
+ - sh
+ - -c
+ # The following shell script tests if the cert-manager service is up. If the service is up, when we try
+ # to wget its exposed port, we will get an HTTP error 400.
+ - |
+ wget_output=$(wget -q "$CERT_MANAGER_CLUSTERIP:$CERT_MANAGER_PORT")
+ if wget_output=="wget: server returned error: HTTP/1.0 400 Bad Request"
+ then exit 0
+ else exit 1
+ fi
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
+ restartPolicy: Never
+ nodeSelector:
+ kubernetes.io/os: linux
+ securityContext:
+ fsGroup: 65532
+ runAsGroup: 65532
+ runAsNonRoot: true
+ runAsUser: 65532
diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/opentelemetry-operator/tests/test-service-connection.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/opentelemetry-operator/tests/test-service-connection.yaml
new file mode 100644
index 00000000..59ef1413
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/opentelemetry-operator/tests/test-service-connection.yaml
@@ -0,0 +1,106 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/tests/test-service-connection.yaml
+apiVersion: v1
+kind: Pod
+metadata:
+ name: "example-opentelemetry-operator-metrics"
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ annotations:
+ "helm.sh/hook": test
+spec:
+ containers:
+ - name: wget
+ image: "busybox:latest"
+ env:
+ - name: MANAGER_METRICS_SERVICE_CLUSTERIP
+ value: "example-opentelemetry-operator"
+ - name: MANAGER_METRICS_SERVICE_PORT
+ value: "8443"
+ command:
+ - sh
+ - -c
+ # The following shell script tests if the controller-manager-metrics-service is up.
+ # If the service is up, when we try to wget its exposed port, we will get an HTTP error 400.
+ - |
+ wget_output=$(wget -q "$MANAGER_METRICS_SERVICE_CLUSTERIP:$MANAGER_METRICS_SERVICE_PORT")
+ if wget_output=="wget: server returned error: HTTP/1.0 400 Bad Request"
+ then exit 0
+ else exit 1
+ fi
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
+ restartPolicy: Never
+ nodeSelector:
+ kubernetes.io/os: linux
+ securityContext:
+ fsGroup: 65532
+ runAsGroup: 65532
+ runAsNonRoot: true
+ runAsUser: 65532
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/tests/test-service-connection.yaml
+apiVersion: v1
+kind: Pod
+metadata:
+ name: "example-opentelemetry-operator-webhook"
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ annotations:
+ "helm.sh/hook": test
+spec:
+ containers:
+ - name: wget
+ image: "busybox:latest"
+ env:
+ - name: WEBHOOK_SERVICE_CLUSTERIP
+ value: "example-opentelemetry-operator-webhook"
+ - name: WEBHOOK_SERVICE_PORT
+ value: "443"
+ command:
+ - sh
+ - -c
+ # The following shell script tests if the webhook service is up. If the service is up, when we try
+ # to wget its exposed port, we will get an HTTP error 400.
+ - |
+ wget_output=$(wget -q "$WEBHOOK_SERVICE_CLUSTERIP:$WEBHOOK_SERVICE_PORT")
+ if wget_output=="wget: server returned error: HTTP/1.0 400 Bad Request"
+ then exit 0
+ else exit 1
+ fi
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
+ restartPolicy: Never
+ nodeSelector:
+ kubernetes.io/os: linux
+ securityContext:
+ fsGroup: 65532
+ runAsGroup: 65532
+ runAsNonRoot: true
+ runAsUser: 65532
diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/values.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/values.yaml
new file mode 100644
index 00000000..9148e2a5
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/values.yaml
@@ -0,0 +1,22 @@
+collectors:
+ daemon:
+ # disable Prometheus scrapping
+ scrape_configs_file: ""
+ presets:
+ logsCollection:
+ enabled: false
+ kubeletMetrics:
+ enabled: false
+ hostMetrics:
+ enabled: false
+ kubernetesAttributes:
+ enabled: false
+ kubernetesEvents:
+ enabled: false
+ clusterMetrics:
+ enabled: false
+ annotationDiscovery:
+ logs:
+ enabled: false
+ metrics:
+ enabled: true
diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/clusterrole.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/clusterrole.yaml
new file mode 100644
index 00000000..2c535f47
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/clusterrole.yaml
@@ -0,0 +1,68 @@
+---
+# Source: opentelemetry-kube-stack/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ name: example-collector
+rules:
+- apiGroups: [""]
+ resources:
+ - namespaces
+ - nodes
+ - nodes/proxy
+ - nodes/metrics
+ - nodes/stats
+ - services
+ - endpoints
+ - pods
+ - events
+ - secrets
+ - persistentvolumeclaims
+ - persistentvolumes
+ verbs: ["get", "list", "watch"]
+- apiGroups: ["monitoring.coreos.com"]
+ resources:
+ - servicemonitors
+ - podmonitors
+ - scrapeconfigs
+ - probes
+ verbs: ["get", "list", "watch"]
+- apiGroups:
+ - extensions
+ resources:
+ - ingresses
+ verbs: ["get", "list", "watch"]
+- apiGroups:
+ - apps
+ resources:
+ - daemonsets
+ - deployments
+ - replicasets
+ - statefulsets
+ verbs: ["get", "list", "watch"]
+- apiGroups:
+ - networking.k8s.io
+ resources:
+ - ingresses
+ verbs: ["get", "list", "watch"]
+- apiGroups: ["discovery.k8s.io"]
+ resources:
+ - endpointslices
+ verbs: ["get", "list", "watch"]
+- nonResourceURLs: ["/metrics", "/metrics/cadvisor"]
+ verbs: ["get"]
+---
+# Source: opentelemetry-kube-stack/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ name: example-daemon
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: example-collector
+subjects:
+- kind: ServiceAccount
+ # quirk of the Operator
+ name: "example-daemon-collector"
+ namespace: default
diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/collector.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/collector.yaml
new file mode 100644
index 00000000..aecee1a8
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/collector.yaml
@@ -0,0 +1,132 @@
+---
+# Source: opentelemetry-kube-stack/templates/collector.yaml
+apiVersion: opentelemetry.io/v1beta1
+kind: OpenTelemetryCollector
+metadata:
+ name: example-daemon
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-kube-stack-0.14.11
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ release: "example"
+spec:
+ managementState: managed
+ mode: daemonset
+ config:
+ exporters:
+ debug: {}
+ extensions:
+ k8s_observer:
+ auth_type: serviceAccount
+ node: ${env:K8S_NODE_NAME}
+ processors:
+ batch:
+ send_batch_max_size: 1500
+ send_batch_size: 1000
+ timeout: 1s
+ resource/hostname:
+ attributes:
+ - action: insert
+ from_attribute: k8s.node.name
+ key: host.name
+ resourcedetection/env:
+ detectors:
+ - env
+ - k8snode
+ override: false
+ timeout: 2s
+ receivers:
+ otlp:
+ protocols:
+ grpc:
+ endpoint: 0.0.0.0:4317
+ http:
+ endpoint: 0.0.0.0:4318
+ receiver_creator/logs:
+ discovery:
+ default_annotations:
+ io.opentelemetry.discovery.logs/enabled: "true"
+ enabled: true
+ watch_observers:
+ - k8s_observer
+ receiver_creator/metrics:
+ discovery:
+ enabled: true
+ watch_observers:
+ - k8s_observer
+ service:
+ extensions:
+ - k8s_observer
+ pipelines:
+ logs:
+ exporters:
+ - debug
+ processors:
+ - resourcedetection/env
+ - resource/hostname
+ - batch
+ receivers:
+ - otlp
+ - receiver_creator/logs
+ metrics:
+ exporters:
+ - debug
+ processors:
+ - resourcedetection/env
+ - resource/hostname
+ - batch
+ receivers:
+ - otlp
+ - receiver_creator/metrics
+ traces:
+ exporters:
+ - debug
+ processors:
+ - resourcedetection/env
+ - resource/hostname
+ - batch
+ receivers:
+ - otlp
+ imagePullPolicy: IfNotPresent
+ upgradeStrategy: automatic
+ terminationGracePeriodSeconds: 30
+ resources:
+ limits:
+ cpu: 200m
+ memory: 500Mi
+ requests:
+ cpu: 100m
+ memory: 250Mi
+ securityContext:
+ {}
+ env:
+ - name: K8S_NODE_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: spec.nodeName
+ - name: OTEL_K8S_NODE_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: spec.nodeName
+ - name: OTEL_K8S_NODE_IP
+ valueFrom:
+ fieldRef:
+ fieldPath: status.hostIP
+ - name: OTEL_K8S_NAMESPACE
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.namespace
+ - name: OTEL_K8S_POD_NAME
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.name
+ - name: OTEL_K8S_POD_IP
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: status.podIP
+ - name: OTEL_RESOURCE_ATTRIBUTES
+ value: "k8s.pod.name=$(OTEL_K8S_POD_NAME),k8s.namespace.name=$(OTEL_K8S_NAMESPACE),k8s.node.name=$(OTEL_K8S_NODE_NAME),host.name=$(OTEL_K8S_NODE_NAME),k8s.node.ip=$(OTEL_K8S_NODE_IP),k8s.pod.ip=$(OTEL_K8S_POD_IP),k8s.cluster.name=unknown_k8s_cluster"
diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/hooks.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/hooks.yaml
new file mode 100644
index 00000000..f528b802
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/hooks.yaml
@@ -0,0 +1,64 @@
+---
+# Source: opentelemetry-kube-stack/templates/hooks.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: delete-resources-sa
+ annotations:
+ "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
+---
+# Source: opentelemetry-kube-stack/templates/hooks.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: Role
+metadata:
+ name: delete-resources-role
+ annotations:
+ "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
+rules:
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - instrumentations
+ - opampbridges
+ - opentelemetrycollectors
+ verbs:
+ - get
+ - list
+ - delete
+---
+# Source: opentelemetry-kube-stack/templates/hooks.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: RoleBinding
+metadata:
+ name: delete-resources-rolebinding
+ annotations:
+ "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: Role
+ name: delete-resources-role
+subjects:
+ - kind: ServiceAccount
+ name: delete-resources-sa
+---
+# Source: opentelemetry-kube-stack/templates/hooks.yaml
+apiVersion: batch/v1
+kind: Job
+metadata:
+ name: opentelemetry-kube-stack-pre-delete-job
+ annotations:
+ "helm.sh/hook": pre-delete
+ "helm.sh/hook-delete-policy": hook-succeeded,hook-failed
+spec:
+ template:
+ spec:
+ restartPolicy: Never
+ serviceAccountName: delete-resources-sa
+ containers:
+ - name: delete-resources
+ image: "rancher/kubectl:v1.34.1"
+ args:
+ - "delete"
+ - "instrumentations,opampbridges,opentelemetrycollectors"
+ - "-l"
+ - "helm.sh/chart=opentelemetry-kube-stack-0.14.11"
diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/opentelemetry-operator/admission-webhooks/operator-webhook-with-cert-manager.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/opentelemetry-operator/admission-webhooks/operator-webhook-with-cert-manager.yaml
new file mode 100644
index 00000000..1b4f51a7
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/opentelemetry-operator/admission-webhooks/operator-webhook-with-cert-manager.yaml
@@ -0,0 +1,192 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/admission-webhooks/operator-webhook-with-cert-manager.yaml
+apiVersion: admissionregistration.k8s.io/v1
+kind: MutatingWebhookConfiguration
+metadata:
+ annotations:
+ cert-manager.io/inject-ca-from: default/example-opentelemetry-operator-serving-cert
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ name: example-opentelemetry-operator-mutation
+webhooks:
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /mutate-opentelemetry-io-v1alpha1-instrumentation
+ port: 443
+ failurePolicy: Ignore
+ name: minstrumentation.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1alpha1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - instrumentations
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /mutate-opentelemetry-io-v1beta1-opentelemetrycollector
+ port: 443
+ failurePolicy: Ignore
+ name: mopentelemetrycollectorbeta.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1beta1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - opentelemetrycollectors
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /mutate-v1-pod
+ port: 443
+ failurePolicy: Ignore
+ name: mpod.kb.io
+ rules:
+ - apiGroups:
+ - ""
+ apiVersions:
+ - v1
+ operations:
+ - CREATE
+ resources:
+ - pods
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/admission-webhooks/operator-webhook-with-cert-manager.yaml
+apiVersion: admissionregistration.k8s.io/v1
+kind: ValidatingWebhookConfiguration
+metadata:
+ annotations:
+ cert-manager.io/inject-ca-from: default/example-opentelemetry-operator-serving-cert
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ name: example-opentelemetry-operator-validation
+webhooks:
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /validate-opentelemetry-io-v1alpha1-instrumentation
+ port: 443
+ failurePolicy: Ignore
+ name: vinstrumentationcreateupdate.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1alpha1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - instrumentations
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /validate-opentelemetry-io-v1alpha1-instrumentation
+ port: 443
+ failurePolicy: Ignore
+ name: vinstrumentationdelete.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1alpha1
+ operations:
+ - DELETE
+ resources:
+ - instrumentations
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /validate-opentelemetry-io-v1beta1-opentelemetrycollector
+ port: 443
+ failurePolicy: Ignore
+ name: vopentelemetrycollectorcreateupdatebeta.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1beta1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - opentelemetrycollectors
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /validate-opentelemetry-io-v1beta1-opentelemetrycollector
+ port: 443
+ failurePolicy: Ignore
+ name: vopentelemetrycollectordeletebeta.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1beta1
+ operations:
+ - DELETE
+ resources:
+ - opentelemetrycollectors
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/opentelemetry-operator/admission-webhooks/operator-webhook.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/opentelemetry-operator/admission-webhooks/operator-webhook.yaml
new file mode 100644
index 00000000..5b9ff551
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/opentelemetry-operator/admission-webhooks/operator-webhook.yaml
@@ -0,0 +1,3 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/admission-webhooks/operator-webhook.yaml
+---
diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/opentelemetry-operator/certmanager.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/opentelemetry-operator/certmanager.yaml
new file mode 100644
index 00000000..a8922eee
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/opentelemetry-operator/certmanager.yaml
@@ -0,0 +1,43 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/certmanager.yaml
+apiVersion: cert-manager.io/v1
+kind: Certificate
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ name: example-opentelemetry-operator-serving-cert
+ namespace: default
+spec:
+ dnsNames:
+ - example-opentelemetry-operator-webhook.default.svc
+ - example-opentelemetry-operator-webhook.default.svc.cluster.local
+ issuerRef:
+ kind: Issuer
+ name: example-opentelemetry-operator-selfsigned-issuer
+ secretName: example-opentelemetry-operator-controller-manager-service-cert
+ subject:
+ organizationalUnits:
+ - example-opentelemetry-operator
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/certmanager.yaml
+apiVersion: cert-manager.io/v1
+kind: Issuer
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ name: example-opentelemetry-operator-selfsigned-issuer
+ namespace: default
+spec:
+ selfSigned: {}
diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/opentelemetry-operator/clusterrole.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/opentelemetry-operator/clusterrole.yaml
new file mode 100644
index 00000000..4ae76fec
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/opentelemetry-operator/clusterrole.yaml
@@ -0,0 +1,402 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-manager
+rules:
+ - apiGroups:
+ - ""
+ resources:
+ - configmaps
+ - persistentvolumeclaims
+ - persistentvolumes
+ - pods
+ - serviceaccounts
+ - services
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - events
+ verbs:
+ - create
+ - get
+ - list
+ - patch
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - namespaces
+ verbs:
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - namespaces/status
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - nodes/spec
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - pods/status
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - replicationcontrollers
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - replicationcontrollers/status
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - resourcequotas
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - apps
+ resources:
+ - daemonsets
+ - deployments
+ - statefulsets
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - apps
+ - extensions
+ resources:
+ - replicasets
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - extensions
+ resources:
+ - daemonsets
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - extensions
+ resources:
+ - deployments
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - autoscaling
+ resources:
+ - horizontalpodautoscalers
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - batch
+ resources:
+ - jobs
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - batch
+ resources:
+ - cronjobs
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - nodes/proxy
+ verbs:
+ - get
+ - apiGroups:
+ - ""
+ resources:
+ - nodes/stats
+ verbs:
+ - get
+ - apiGroups:
+ - config.openshift.io
+ resources:
+ - infrastructures
+ - infrastructures/status
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - coordination.k8s.io
+ resources:
+ - leases
+ verbs:
+ - create
+ - get
+ - list
+ - update
+ - apiGroups:
+ - events.k8s.io
+ resources:
+ - events
+ verbs:
+ - list
+ - watch
+ - apiGroups:
+ - monitoring.coreos.com
+ resources:
+ - podmonitors
+ - servicemonitors
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - networking.k8s.io
+ resources:
+ - ingresses
+ - networkpolicies
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - instrumentations
+ verbs:
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges/finalizers
+ verbs:
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges/status
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opentelemetrycollectors
+ verbs:
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opentelemetrycollectors/finalizers
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opentelemetrycollectors/status
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - policy
+ resources:
+ - poddisruptionbudgets
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - route.openshift.io
+ resources:
+ - routes
+ - routes/custom-host
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - targetallocators
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - targetallocators/status
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - targetallocators/finalizers
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - cert-manager.io
+ resources:
+ - issuers
+ - certificaterequests
+ - certificates
+ verbs:
+ - create
+ - get
+ - list
+ - watch
+ - update
+ - patch
+ - delete
+ - apiGroups:
+ - authorization.k8s.io
+ resources:
+ - subjectaccessreviews
+ verbs:
+ - create
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-metrics
+rules:
+ - nonResourceURLs:
+ - /metrics
+ verbs:
+ - get
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-proxy
+rules:
+ - apiGroups:
+ - authentication.k8s.io
+ resources:
+ - tokenreviews
+ verbs:
+ - create
diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/opentelemetry-operator/clusterrolebinding.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/opentelemetry-operator/clusterrolebinding.yaml
new file mode 100644
index 00000000..831b2df7
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/opentelemetry-operator/clusterrolebinding.yaml
@@ -0,0 +1,44 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrolebinding.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-manager
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: example-opentelemetry-operator-manager
+subjects:
+ - kind: ServiceAccount
+ name: opentelemetry-operator
+ namespace: default
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrolebinding.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-proxy
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: example-opentelemetry-operator-proxy
+subjects:
+ - kind: ServiceAccount
+ name: opentelemetry-operator
+ namespace: default
diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/opentelemetry-operator/deployment.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/opentelemetry-operator/deployment.yaml
new file mode 100644
index 00000000..ca0ddf47
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/opentelemetry-operator/deployment.yaml
@@ -0,0 +1,122 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/deployment.yaml
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator
+ namespace: default
+spec:
+ replicas: 1
+ revisionHistoryLimit: 10
+ selector:
+ matchLabels:
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/component: controller-manager
+ template:
+ metadata:
+ annotations:
+ kubectl.kubernetes.io/default-container: manager
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ spec:
+ automountServiceAccountToken: true
+ hostNetwork: false
+ containers:
+ - args:
+ - --metrics-addr=0.0.0.0:8080
+ - --enable-leader-election
+ - --health-probe-addr=:8081
+ - --webhook-port=9443
+ - --collector-image=otel/opentelemetry-collector-k8s:0.144.0
+ command:
+ - /manager
+ env:
+ - name: SERVICE_ACCOUNT_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: spec.serviceAccountName
+ - name: ENABLE_WEBHOOKS
+ value: "true"
+ image: "ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator:0.144.0"
+ name: manager
+ imagePullPolicy: IfNotPresent
+ ports:
+ - containerPort: 8080
+ name: metrics
+ protocol: TCP
+ - containerPort: 9443
+ name: webhook-server
+ protocol: TCP
+ livenessProbe:
+ httpGet:
+ path: /healthz
+ port: 8081
+ initialDelaySeconds: 15
+ periodSeconds: 20
+ readinessProbe:
+ httpGet:
+ path: /readyz
+ port: 8081
+ initialDelaySeconds: 5
+ periodSeconds: 10
+ resources:
+ {}
+ volumeMounts:
+ - mountPath: /tmp/k8s-webhook-server/serving-certs
+ name: cert
+ readOnly: true
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
+
+ - args:
+ - --secure-listen-address=0.0.0.0:8443
+ - --upstream=http://127.0.0.1:8080/
+ - --v=0
+ image: "quay.io/brancz/kube-rbac-proxy:v0.20.0"
+ name: kube-rbac-proxy
+ ports:
+ - containerPort: 8443
+ name: https
+ protocol: TCP
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
+ nodeSelector:
+ kubernetes.io/os: linux
+ serviceAccountName: opentelemetry-operator
+ terminationGracePeriodSeconds: 10
+ volumes:
+ - name: cert
+ secret:
+ defaultMode: 420
+ secretName: example-opentelemetry-operator-controller-manager-service-cert
+ securityContext:
+ fsGroup: 65532
+ runAsGroup: 65532
+ runAsNonRoot: true
+ runAsUser: 65532
diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/opentelemetry-operator/role.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/opentelemetry-operator/role.yaml
new file mode 100644
index 00000000..88ccd2b0
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/opentelemetry-operator/role.yaml
@@ -0,0 +1,199 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/role.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: Role
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-leader-election
+ namespace: default
+rules:
+ - apiGroups:
+ - ""
+ resources:
+ - configmaps
+ - pods
+ - serviceaccounts
+ - services
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - events
+ verbs:
+ - create
+ - patch
+ - apiGroups:
+ - ""
+ resources:
+ - namespaces
+ - secrets
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - apps
+ resources:
+ - daemonsets
+ - deployments
+ - statefulsets
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - apps
+ resources:
+ - replicasets
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - autoscaling
+ resources:
+ - horizontalpodautoscalers
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - batch
+ resources:
+ - jobs
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - config.openshift.io
+ resources:
+ - infrastructures
+ - infrastructures/status
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - coordination.k8s.io
+ resources:
+ - leases
+ verbs:
+ - create
+ - get
+ - list
+ - update
+ - apiGroups:
+ - monitoring.coreos.com
+ resources:
+ - podmonitors
+ - servicemonitors
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - networking.k8s.io
+ resources:
+ - ingresses
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - instrumentations
+ - opentelemetrycollectors
+ verbs:
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges
+ - targetallocators
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges/finalizers
+ verbs:
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges/status
+ - opentelemetrycollectors/finalizers
+ - opentelemetrycollectors/status
+ - targetallocators/status
+ - targetallocators/finalizers
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - policy
+ resources:
+ - poddisruptionbudgets
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - route.openshift.io
+ resources:
+ - routes
+ - routes/custom-host
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/opentelemetry-operator/rolebinding.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/opentelemetry-operator/rolebinding.yaml
new file mode 100644
index 00000000..fa556fae
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/opentelemetry-operator/rolebinding.yaml
@@ -0,0 +1,23 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/rolebinding.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: RoleBinding
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-leader-election
+ namespace: default
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: Role
+ name: example-opentelemetry-operator-leader-election
+subjects:
+ - kind: ServiceAccount
+ name: opentelemetry-operator
+ namespace: default
diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/opentelemetry-operator/service.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/opentelemetry-operator/service.yaml
new file mode 100644
index 00000000..9f7f7220
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/opentelemetry-operator/service.yaml
@@ -0,0 +1,51 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/service.yaml
+apiVersion: v1
+kind: Service
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator
+ namespace: default
+spec:
+ ports:
+ - name: https
+ port: 8443
+ protocol: TCP
+ targetPort: https
+ - name: metrics
+ port: 8080
+ protocol: TCP
+ targetPort: metrics
+ selector:
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/component: controller-manager
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/service.yaml
+apiVersion: v1
+kind: Service
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+spec:
+ ports:
+ - port: 443
+ protocol: TCP
+ targetPort: webhook-server
+ selector:
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/component: controller-manager
diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/opentelemetry-operator/serviceaccount.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/opentelemetry-operator/serviceaccount.yaml
new file mode 100644
index 00000000..f49d54b3
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/opentelemetry-operator/serviceaccount.yaml
@@ -0,0 +1,16 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+automountServiceAccountToken: true
+metadata:
+ name: opentelemetry-operator
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/opentelemetry-operator/tests/test-certmanager-connection.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/opentelemetry-operator/tests/test-certmanager-connection.yaml
new file mode 100644
index 00000000..8c13f151
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/opentelemetry-operator/tests/test-certmanager-connection.yaml
@@ -0,0 +1,53 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/tests/test-certmanager-connection.yaml
+apiVersion: v1
+kind: Pod
+metadata:
+ name: "example-opentelemetry-operator-cert-manager"
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ annotations:
+ "helm.sh/hook": test
+spec:
+ containers:
+ - name: wget
+ image: "busybox:latest"
+ env:
+ - name: CERT_MANAGER_CLUSTERIP
+ value: "cert-manager-webhook"
+ - name: CERT_MANAGER_PORT
+ value: "443"
+ command:
+ - sh
+ - -c
+ # The following shell script tests if the cert-manager service is up. If the service is up, when we try
+ # to wget its exposed port, we will get an HTTP error 400.
+ - |
+ wget_output=$(wget -q "$CERT_MANAGER_CLUSTERIP:$CERT_MANAGER_PORT")
+ if wget_output=="wget: server returned error: HTTP/1.0 400 Bad Request"
+ then exit 0
+ else exit 1
+ fi
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
+ restartPolicy: Never
+ nodeSelector:
+ kubernetes.io/os: linux
+ securityContext:
+ fsGroup: 65532
+ runAsGroup: 65532
+ runAsNonRoot: true
+ runAsUser: 65532
diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/opentelemetry-operator/tests/test-service-connection.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/opentelemetry-operator/tests/test-service-connection.yaml
new file mode 100644
index 00000000..59ef1413
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/opentelemetry-operator/tests/test-service-connection.yaml
@@ -0,0 +1,106 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/tests/test-service-connection.yaml
+apiVersion: v1
+kind: Pod
+metadata:
+ name: "example-opentelemetry-operator-metrics"
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ annotations:
+ "helm.sh/hook": test
+spec:
+ containers:
+ - name: wget
+ image: "busybox:latest"
+ env:
+ - name: MANAGER_METRICS_SERVICE_CLUSTERIP
+ value: "example-opentelemetry-operator"
+ - name: MANAGER_METRICS_SERVICE_PORT
+ value: "8443"
+ command:
+ - sh
+ - -c
+ # The following shell script tests if the controller-manager-metrics-service is up.
+ # If the service is up, when we try to wget its exposed port, we will get an HTTP error 400.
+ - |
+ wget_output=$(wget -q "$MANAGER_METRICS_SERVICE_CLUSTERIP:$MANAGER_METRICS_SERVICE_PORT")
+ if wget_output=="wget: server returned error: HTTP/1.0 400 Bad Request"
+ then exit 0
+ else exit 1
+ fi
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
+ restartPolicy: Never
+ nodeSelector:
+ kubernetes.io/os: linux
+ securityContext:
+ fsGroup: 65532
+ runAsGroup: 65532
+ runAsNonRoot: true
+ runAsUser: 65532
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/tests/test-service-connection.yaml
+apiVersion: v1
+kind: Pod
+metadata:
+ name: "example-opentelemetry-operator-webhook"
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ annotations:
+ "helm.sh/hook": test
+spec:
+ containers:
+ - name: wget
+ image: "busybox:latest"
+ env:
+ - name: WEBHOOK_SERVICE_CLUSTERIP
+ value: "example-opentelemetry-operator-webhook"
+ - name: WEBHOOK_SERVICE_PORT
+ value: "443"
+ command:
+ - sh
+ - -c
+ # The following shell script tests if the webhook service is up. If the service is up, when we try
+ # to wget its exposed port, we will get an HTTP error 400.
+ - |
+ wget_output=$(wget -q "$WEBHOOK_SERVICE_CLUSTERIP:$WEBHOOK_SERVICE_PORT")
+ if wget_output=="wget: server returned error: HTTP/1.0 400 Bad Request"
+ then exit 0
+ else exit 1
+ fi
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
+ restartPolicy: Never
+ nodeSelector:
+ kubernetes.io/os: linux
+ securityContext:
+ fsGroup: 65532
+ runAsGroup: 65532
+ runAsNonRoot: true
+ runAsUser: 65532
diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/values.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/values.yaml
new file mode 100644
index 00000000..1f1df7b4
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/values.yaml
@@ -0,0 +1,22 @@
+collectors:
+ daemon:
+ # disable Prometheus scrapping
+ scrape_configs_file: ""
+ presets:
+ logsCollection:
+ enabled: false
+ kubeletMetrics:
+ enabled: false
+ hostMetrics:
+ enabled: false
+ kubernetesAttributes:
+ enabled: false
+ kubernetesEvents:
+ enabled: false
+ clusterMetrics:
+ enabled: false
+ annotationDiscovery:
+ logs:
+ enabled: true
+ metrics:
+ enabled: true
diff --git a/charts/opentelemetry-kube-stack/examples/default/rendered/clusterrole.yaml b/charts/opentelemetry-kube-stack/examples/default/rendered/clusterrole.yaml
new file mode 100644
index 00000000..3379a6a1
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/default/rendered/clusterrole.yaml
@@ -0,0 +1,140 @@
+---
+# Source: opentelemetry-kube-stack/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ name: example-collector
+rules:
+- apiGroups: [""]
+ resources:
+ - namespaces
+ - nodes
+ - nodes/proxy
+ - nodes/metrics
+ - nodes/stats
+ - services
+ - endpoints
+ - pods
+ - events
+ - secrets
+ - persistentvolumeclaims
+ - persistentvolumes
+ verbs: ["get", "list", "watch"]
+- apiGroups: ["monitoring.coreos.com"]
+ resources:
+ - servicemonitors
+ - podmonitors
+ - scrapeconfigs
+ - probes
+ verbs: ["get", "list", "watch"]
+- apiGroups:
+ - extensions
+ resources:
+ - ingresses
+ verbs: ["get", "list", "watch"]
+- apiGroups:
+ - apps
+ resources:
+ - daemonsets
+ - deployments
+ - replicasets
+ - statefulsets
+ verbs: ["get", "list", "watch"]
+- apiGroups:
+ - networking.k8s.io
+ resources:
+ - ingresses
+ verbs: ["get", "list", "watch"]
+- apiGroups: ["discovery.k8s.io"]
+ resources:
+ - endpointslices
+ verbs: ["get", "list", "watch"]
+- nonResourceURLs: ["/metrics", "/metrics/cadvisor"]
+ verbs: ["get"]
+
+- verbs:
+ - get
+ - list
+ - watch
+ - create
+ - update
+ - patch
+ - delete
+ apiGroups:
+ - coordination.k8s.io
+ resources:
+ - leases
+- apiGroups:
+ - ""
+ resources:
+ - events
+ - namespaces
+ - namespaces/status
+ - nodes
+ - nodes/spec
+ - pods
+ - pods/status
+ - replicationcontrollers
+ - replicationcontrollers/status
+ - resourcequotas
+ - services
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups:
+ - apps
+ resources:
+ - daemonsets
+ - deployments
+ - replicasets
+ - statefulsets
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups:
+ - extensions
+ resources:
+ - daemonsets
+ - deployments
+ - replicasets
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups:
+ - batch
+ resources:
+ - jobs
+ - cronjobs
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups:
+ - autoscaling
+ resources:
+ - horizontalpodautoscalers
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups: ["events.k8s.io"]
+ resources: ["events"]
+ verbs: ["watch", "list"]
+---
+# Source: opentelemetry-kube-stack/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ name: example-daemon
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: example-collector
+subjects:
+- kind: ServiceAccount
+ # quirk of the Operator
+ name: "example-daemon-collector"
+ namespace: default
diff --git a/charts/opentelemetry-kube-stack/examples/default/rendered/collector.yaml b/charts/opentelemetry-kube-stack/examples/default/rendered/collector.yaml
new file mode 100644
index 00000000..4fdced5b
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/default/rendered/collector.yaml
@@ -0,0 +1,514 @@
+---
+# Source: opentelemetry-kube-stack/templates/collector.yaml
+apiVersion: opentelemetry.io/v1beta1
+kind: OpenTelemetryCollector
+metadata:
+ name: example-daemon
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-kube-stack-0.14.11
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ release: "example"
+spec:
+ managementState: managed
+ mode: daemonset
+ config:
+ exporters:
+ debug: {}
+ extensions:
+ k8s_leader_elector/k8s_cluster:
+ auth_type: serviceAccount
+ lease_name: k8s.cluster.receiver.opentelemetry.io
+ lease_namespace: default
+ k8s_leader_elector/k8s_objects:
+ auth_type: serviceAccount
+ lease_name: k8s.objects.receiver.opentelemetry.io
+ lease_namespace: default
+ processors:
+ batch:
+ send_batch_max_size: 1500
+ send_batch_size: 1000
+ timeout: 1s
+ k8sattributes:
+ extract:
+ labels:
+ - from: pod
+ key: app.kubernetes.io/instance
+ tag_name: k8s.app.instance
+ - from: pod
+ key: app.kubernetes.io/component
+ tag_name: k8s.app.component
+ metadata:
+ - k8s.namespace.name
+ - k8s.pod.name
+ - k8s.pod.uid
+ - k8s.node.name
+ - k8s.pod.start_time
+ - k8s.deployment.name
+ - k8s.replicaset.name
+ - k8s.replicaset.uid
+ - k8s.daemonset.name
+ - k8s.daemonset.uid
+ - k8s.job.name
+ - k8s.job.uid
+ - k8s.container.name
+ - k8s.cronjob.name
+ - k8s.statefulset.name
+ - k8s.statefulset.uid
+ - container.image.tag
+ - container.image.name
+ - k8s.cluster.uid
+ - service.namespace
+ - service.name
+ - service.version
+ - service.instance.id
+ otel_annotations: true
+ filter:
+ node_from_env_var: OTEL_K8S_NODE_NAME
+ passthrough: false
+ pod_association:
+ - sources:
+ - from: resource_attribute
+ name: k8s.pod.uid
+ - sources:
+ - from: resource_attribute
+ name: k8s.pod.name
+ - from: resource_attribute
+ name: k8s.namespace.name
+ - from: resource_attribute
+ name: k8s.node.name
+ - sources:
+ - from: resource_attribute
+ name: k8s.pod.ip
+ - sources:
+ - from: resource_attribute
+ name: k8s.pod.name
+ - from: resource_attribute
+ name: k8s.namespace.name
+ - sources:
+ - from: connection
+ resource/hostname:
+ attributes:
+ - action: insert
+ from_attribute: k8s.node.name
+ key: host.name
+ resourcedetection/env:
+ detectors:
+ - env
+ - k8snode
+ override: false
+ timeout: 2s
+ receivers:
+ filelog:
+ exclude: []
+ include:
+ - /var/log/pods/*/*/*.log
+ include_file_name: false
+ include_file_path: true
+ operators:
+ - id: container-parser
+ max_log_size: 102400
+ type: container
+ retry_on_failure:
+ enabled: true
+ start_at: end
+ hostmetrics:
+ collection_interval: 10s
+ root_path: /hostfs
+ scrapers:
+ cpu:
+ metrics:
+ system.cpu.logical.count:
+ enabled: true
+ system.cpu.utilization:
+ enabled: true
+ disk: {}
+ filesystem:
+ exclude_fs_types:
+ fs_types:
+ - autofs
+ - binfmt_misc
+ - bpf
+ - cgroup2
+ - configfs
+ - debugfs
+ - devpts
+ - devtmpfs
+ - fusectl
+ - hugetlbfs
+ - iso9660
+ - mqueue
+ - nsfs
+ - overlay
+ - proc
+ - procfs
+ - pstore
+ - rpc_pipefs
+ - securityfs
+ - selinuxfs
+ - squashfs
+ - sysfs
+ - tracefs
+ match_type: strict
+ exclude_mount_points:
+ match_type: regexp
+ mount_points:
+ - /dev/*
+ - /proc/*
+ - /sys/*
+ - /run/k3s/containerd/*
+ - /var/lib/docker/*
+ - /var/lib/kubelet/*
+ - /snap/*
+ metrics:
+ system.filesystem.utilization:
+ enabled: true
+ load: {}
+ memory:
+ metrics:
+ system.memory.limit:
+ enabled: true
+ system.memory.utilization:
+ enabled: true
+ network: {}
+ paging:
+ metrics:
+ system.paging.usage:
+ enabled: true
+ system:
+ metrics:
+ system.uptime:
+ enabled: true
+ k8s_cluster:
+ allocatable_types_to_report:
+ - cpu
+ - memory
+ - storage
+ auth_type: serviceAccount
+ collection_interval: 10s
+ k8s_leader_elector: k8s_leader_elector/k8s_cluster
+ node_conditions_to_report:
+ - Ready
+ - MemoryPressure
+ - DiskPressure
+ - NetworkUnavailable
+ k8sobjects:
+ k8s_leader_elector: k8s_leader_elector/k8s_objects
+ objects:
+ - exclude_watch_type:
+ - DELETED
+ group: events.k8s.io
+ mode: watch
+ name: events
+ kubeletstats:
+ auth_type: serviceAccount
+ collection_interval: 15s
+ endpoint: https://${env:OTEL_K8S_NODE_IP}:10250
+ extra_metadata_labels:
+ - container.id
+ - k8s.volume.type
+ insecure_skip_verify: true
+ k8s_api_config:
+ auth_type: serviceAccount
+ metric_groups:
+ - node
+ - pod
+ - volume
+ - container
+ metrics:
+ container.cpu.usage:
+ enabled: true
+ k8s.node.cpu.usage:
+ enabled: true
+ k8s.node.uptime:
+ enabled: true
+ k8s.pod.cpu.usage:
+ enabled: true
+ k8s.pod.uptime:
+ enabled: true
+ otlp:
+ protocols:
+ grpc:
+ endpoint: 0.0.0.0:4317
+ http:
+ endpoint: 0.0.0.0:4318
+ prometheus:
+ config:
+ scrape_configs:
+ - job_name: kubernetes-pods
+ kubernetes_sd_configs:
+ - role: pod
+ selectors:
+ - field: spec.nodeName=${env:OTEL_K8S_NODE_NAME}
+ role: pod
+ relabel_configs:
+ - action: keep
+ regex: true
+ source_labels:
+ - __meta_kubernetes_pod_annotation_prometheus_io_scrape
+ - action: drop
+ regex: true
+ source_labels:
+ - __meta_kubernetes_pod_annotation_prometheus_io_scrape_slow
+ - action: replace
+ regex: (https?)
+ source_labels:
+ - __meta_kubernetes_pod_annotation_prometheus_io_scheme
+ target_label: __scheme__
+ - action: replace
+ regex: (.+)
+ source_labels:
+ - __meta_kubernetes_pod_annotation_prometheus_io_path
+ target_label: __metrics_path__
+ - action: replace
+ regex: ([^:]+)(?::\d+)?;(\d+)
+ replacement: $$1:$$2
+ source_labels:
+ - __address__
+ - __meta_kubernetes_pod_annotation_prometheus_io_port
+ target_label: __address__
+ - action: labelmap
+ regex: __meta_kubernetes_pod_annotation_prometheus_io_param_(.+)
+ replacement: __param_$$1
+ - action: labelmap
+ regex: __meta_kubernetes_pod_label_(.+)
+ - action: replace
+ source_labels:
+ - __meta_kubernetes_namespace
+ target_label: namespace
+ - action: replace
+ source_labels:
+ - __meta_kubernetes_pod_name
+ target_label: pod
+ - action: drop
+ regex: Pending|Succeeded|Failed|Completed
+ source_labels:
+ - __meta_kubernetes_pod_phase
+ - action: replace
+ source_labels:
+ - __meta_kubernetes_pod_label_app_kubernetes_io_name
+ target_label: job
+ scrape_interval: 30s
+ - job_name: node-exporter
+ relabel_configs:
+ - action: labelmap
+ regex: __meta_kubernetes_node_label_(.+)
+ - action: replace
+ regex: (.*)
+ replacement: $$1
+ separator: ;
+ source_labels:
+ - job
+ target_label: __tmp_prometheus_job_name
+ scrape_interval: 30s
+ static_configs:
+ - targets:
+ - ${env:OTEL_K8S_NODE_IP}:9100
+ - authorization:
+ credentials_file: /var/run/secrets/kubernetes.io/serviceaccount/token
+ type: Bearer
+ follow_redirects: true
+ honor_labels: true
+ honor_timestamps: true
+ job_name: kubelet
+ kubernetes_sd_configs:
+ - follow_redirects: true
+ role: node
+ selectors:
+ - field: metadata.name=${env:OTEL_K8S_NODE_NAME}
+ role: node
+ metric_relabel_configs:
+ - action: drop
+ regex: container_cpu_(load_average_10s|system_seconds_total|user_seconds_total)
+ replacement: $$1
+ separator: ;
+ source_labels:
+ - __name__
+ - action: drop
+ regex: container_fs_(io_current|reads_merged_total|sector_reads_total|sector_writes_total|writes_merged_total)
+ replacement: $$1
+ separator: ;
+ source_labels:
+ - __name__
+ - action: drop
+ regex: container_memory_(mapped_file|swap)
+ replacement: $$1
+ separator: ;
+ source_labels:
+ - __name__
+ - action: drop
+ regex: container_(file_descriptors|tasks_state|threads_max)
+ replacement: $$1
+ separator: ;
+ source_labels:
+ - __name__
+ - action: drop
+ regex: container_spec.*
+ replacement: $$1
+ separator: ;
+ source_labels:
+ - __name__
+ - action: drop
+ regex: .+;
+ replacement: $$1
+ separator: ;
+ source_labels:
+ - id
+ - pod
+ metrics_path: /metrics/cadvisor
+ relabel_configs:
+ - action: replace
+ regex: (.*)
+ replacement: $$1
+ separator: ;
+ source_labels:
+ - job
+ target_label: __tmp_prometheus_job_name
+ - action: replace
+ replacement: kubelet
+ target_label: job
+ - action: replace
+ regex: (.*)
+ replacement: $$1
+ separator: ;
+ source_labels:
+ - __meta_kubernetes_node_name
+ target_label: node
+ - action: replace
+ regex: (.*)
+ replacement: https-metrics
+ separator: ;
+ target_label: endpoint
+ - action: replace
+ regex: (.*)
+ replacement: $$1
+ separator: ;
+ source_labels:
+ - __metrics_path__
+ target_label: metrics_path
+ - action: hashmod
+ modulus: 1
+ regex: (.*)
+ replacement: $$1
+ separator: ;
+ source_labels:
+ - __address__
+ target_label: __tmp_hash
+ - action: keep
+ regex: $(SHARD)
+ replacement: $$1
+ separator: ;
+ source_labels:
+ - __tmp_hash
+ scheme: https
+ scrape_interval: 15s
+ scrape_timeout: 10s
+ tls_config:
+ ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
+ insecure_skip_verify: true
+ service:
+ extensions:
+ - k8s_leader_elector/k8s_objects
+ - k8s_leader_elector/k8s_cluster
+ pipelines:
+ logs:
+ exporters:
+ - debug
+ processors:
+ - k8sattributes
+ - resourcedetection/env
+ - resource/hostname
+ - batch
+ receivers:
+ - otlp
+ - filelog
+ - k8sobjects
+ metrics:
+ exporters:
+ - debug
+ processors:
+ - k8sattributes
+ - resourcedetection/env
+ - resource/hostname
+ - batch
+ receivers:
+ - prometheus
+ - otlp
+ - hostmetrics
+ - kubeletstats
+ - k8s_cluster
+ traces:
+ exporters:
+ - debug
+ processors:
+ - k8sattributes
+ - resourcedetection/env
+ - resource/hostname
+ - batch
+ receivers:
+ - otlp
+ imagePullPolicy: IfNotPresent
+ upgradeStrategy: automatic
+ terminationGracePeriodSeconds: 30
+ resources:
+ limits:
+ cpu: 200m
+ memory: 500Mi
+ requests:
+ cpu: 100m
+ memory: 250Mi
+ securityContext:
+ {}
+ volumeMounts:
+ - name: varlogpods
+ mountPath: /var/log/pods
+ readOnly: true
+ - name: varlibdockercontainers
+ mountPath: /var/lib/docker/containers
+ readOnly: true
+ - name: hostfs
+ mountPath: /hostfs
+ readOnly: true
+ mountPropagation: HostToContainer
+ env:
+ - name: K8S_NODE_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: spec.nodeName
+ - name: OTEL_K8S_NODE_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: spec.nodeName
+ - name: OTEL_K8S_NODE_IP
+ valueFrom:
+ fieldRef:
+ fieldPath: status.hostIP
+ - name: OTEL_K8S_NAMESPACE
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.namespace
+ - name: OTEL_K8S_POD_NAME
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.name
+ - name: OTEL_K8S_POD_IP
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: status.podIP
+ - name: OTEL_RESOURCE_ATTRIBUTES
+ value: "k8s.pod.name=$(OTEL_K8S_POD_NAME),k8s.namespace.name=$(OTEL_K8S_NAMESPACE),k8s.node.name=$(OTEL_K8S_NODE_NAME),host.name=$(OTEL_K8S_NODE_NAME),k8s.node.ip=$(OTEL_K8S_NODE_IP),k8s.pod.ip=$(OTEL_K8S_POD_IP),k8s.cluster.name=unknown_k8s_cluster"
+
+ volumes:
+ - name: varlogpods
+ hostPath:
+ path: /var/log/pods
+ - name: varlibdockercontainers
+ hostPath:
+ path: /var/lib/docker/containers
+ - name: hostfs
+ hostPath:
+ path: /
diff --git a/charts/opentelemetry-kube-stack/examples/default/rendered/hooks.yaml b/charts/opentelemetry-kube-stack/examples/default/rendered/hooks.yaml
new file mode 100644
index 00000000..f528b802
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/default/rendered/hooks.yaml
@@ -0,0 +1,64 @@
+---
+# Source: opentelemetry-kube-stack/templates/hooks.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: delete-resources-sa
+ annotations:
+ "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
+---
+# Source: opentelemetry-kube-stack/templates/hooks.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: Role
+metadata:
+ name: delete-resources-role
+ annotations:
+ "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
+rules:
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - instrumentations
+ - opampbridges
+ - opentelemetrycollectors
+ verbs:
+ - get
+ - list
+ - delete
+---
+# Source: opentelemetry-kube-stack/templates/hooks.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: RoleBinding
+metadata:
+ name: delete-resources-rolebinding
+ annotations:
+ "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: Role
+ name: delete-resources-role
+subjects:
+ - kind: ServiceAccount
+ name: delete-resources-sa
+---
+# Source: opentelemetry-kube-stack/templates/hooks.yaml
+apiVersion: batch/v1
+kind: Job
+metadata:
+ name: opentelemetry-kube-stack-pre-delete-job
+ annotations:
+ "helm.sh/hook": pre-delete
+ "helm.sh/hook-delete-policy": hook-succeeded,hook-failed
+spec:
+ template:
+ spec:
+ restartPolicy: Never
+ serviceAccountName: delete-resources-sa
+ containers:
+ - name: delete-resources
+ image: "rancher/kubectl:v1.34.1"
+ args:
+ - "delete"
+ - "instrumentations,opampbridges,opentelemetrycollectors"
+ - "-l"
+ - "helm.sh/chart=opentelemetry-kube-stack-0.14.11"
diff --git a/charts/opentelemetry-kube-stack/examples/default/rendered/opentelemetry-operator/admission-webhooks/operator-webhook-with-cert-manager.yaml b/charts/opentelemetry-kube-stack/examples/default/rendered/opentelemetry-operator/admission-webhooks/operator-webhook-with-cert-manager.yaml
new file mode 100644
index 00000000..1b4f51a7
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/default/rendered/opentelemetry-operator/admission-webhooks/operator-webhook-with-cert-manager.yaml
@@ -0,0 +1,192 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/admission-webhooks/operator-webhook-with-cert-manager.yaml
+apiVersion: admissionregistration.k8s.io/v1
+kind: MutatingWebhookConfiguration
+metadata:
+ annotations:
+ cert-manager.io/inject-ca-from: default/example-opentelemetry-operator-serving-cert
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ name: example-opentelemetry-operator-mutation
+webhooks:
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /mutate-opentelemetry-io-v1alpha1-instrumentation
+ port: 443
+ failurePolicy: Ignore
+ name: minstrumentation.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1alpha1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - instrumentations
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /mutate-opentelemetry-io-v1beta1-opentelemetrycollector
+ port: 443
+ failurePolicy: Ignore
+ name: mopentelemetrycollectorbeta.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1beta1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - opentelemetrycollectors
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /mutate-v1-pod
+ port: 443
+ failurePolicy: Ignore
+ name: mpod.kb.io
+ rules:
+ - apiGroups:
+ - ""
+ apiVersions:
+ - v1
+ operations:
+ - CREATE
+ resources:
+ - pods
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/admission-webhooks/operator-webhook-with-cert-manager.yaml
+apiVersion: admissionregistration.k8s.io/v1
+kind: ValidatingWebhookConfiguration
+metadata:
+ annotations:
+ cert-manager.io/inject-ca-from: default/example-opentelemetry-operator-serving-cert
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ name: example-opentelemetry-operator-validation
+webhooks:
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /validate-opentelemetry-io-v1alpha1-instrumentation
+ port: 443
+ failurePolicy: Ignore
+ name: vinstrumentationcreateupdate.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1alpha1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - instrumentations
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /validate-opentelemetry-io-v1alpha1-instrumentation
+ port: 443
+ failurePolicy: Ignore
+ name: vinstrumentationdelete.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1alpha1
+ operations:
+ - DELETE
+ resources:
+ - instrumentations
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /validate-opentelemetry-io-v1beta1-opentelemetrycollector
+ port: 443
+ failurePolicy: Ignore
+ name: vopentelemetrycollectorcreateupdatebeta.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1beta1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - opentelemetrycollectors
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /validate-opentelemetry-io-v1beta1-opentelemetrycollector
+ port: 443
+ failurePolicy: Ignore
+ name: vopentelemetrycollectordeletebeta.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1beta1
+ operations:
+ - DELETE
+ resources:
+ - opentelemetrycollectors
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
diff --git a/charts/opentelemetry-kube-stack/examples/default/rendered/opentelemetry-operator/admission-webhooks/operator-webhook.yaml b/charts/opentelemetry-kube-stack/examples/default/rendered/opentelemetry-operator/admission-webhooks/operator-webhook.yaml
new file mode 100644
index 00000000..5b9ff551
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/default/rendered/opentelemetry-operator/admission-webhooks/operator-webhook.yaml
@@ -0,0 +1,3 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/admission-webhooks/operator-webhook.yaml
+---
diff --git a/charts/opentelemetry-kube-stack/examples/default/rendered/opentelemetry-operator/certmanager.yaml b/charts/opentelemetry-kube-stack/examples/default/rendered/opentelemetry-operator/certmanager.yaml
new file mode 100644
index 00000000..a8922eee
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/default/rendered/opentelemetry-operator/certmanager.yaml
@@ -0,0 +1,43 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/certmanager.yaml
+apiVersion: cert-manager.io/v1
+kind: Certificate
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ name: example-opentelemetry-operator-serving-cert
+ namespace: default
+spec:
+ dnsNames:
+ - example-opentelemetry-operator-webhook.default.svc
+ - example-opentelemetry-operator-webhook.default.svc.cluster.local
+ issuerRef:
+ kind: Issuer
+ name: example-opentelemetry-operator-selfsigned-issuer
+ secretName: example-opentelemetry-operator-controller-manager-service-cert
+ subject:
+ organizationalUnits:
+ - example-opentelemetry-operator
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/certmanager.yaml
+apiVersion: cert-manager.io/v1
+kind: Issuer
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ name: example-opentelemetry-operator-selfsigned-issuer
+ namespace: default
+spec:
+ selfSigned: {}
diff --git a/charts/opentelemetry-kube-stack/examples/default/rendered/opentelemetry-operator/clusterrole.yaml b/charts/opentelemetry-kube-stack/examples/default/rendered/opentelemetry-operator/clusterrole.yaml
new file mode 100644
index 00000000..4ae76fec
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/default/rendered/opentelemetry-operator/clusterrole.yaml
@@ -0,0 +1,402 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-manager
+rules:
+ - apiGroups:
+ - ""
+ resources:
+ - configmaps
+ - persistentvolumeclaims
+ - persistentvolumes
+ - pods
+ - serviceaccounts
+ - services
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - events
+ verbs:
+ - create
+ - get
+ - list
+ - patch
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - namespaces
+ verbs:
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - namespaces/status
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - nodes/spec
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - pods/status
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - replicationcontrollers
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - replicationcontrollers/status
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - resourcequotas
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - apps
+ resources:
+ - daemonsets
+ - deployments
+ - statefulsets
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - apps
+ - extensions
+ resources:
+ - replicasets
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - extensions
+ resources:
+ - daemonsets
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - extensions
+ resources:
+ - deployments
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - autoscaling
+ resources:
+ - horizontalpodautoscalers
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - batch
+ resources:
+ - jobs
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - batch
+ resources:
+ - cronjobs
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - nodes/proxy
+ verbs:
+ - get
+ - apiGroups:
+ - ""
+ resources:
+ - nodes/stats
+ verbs:
+ - get
+ - apiGroups:
+ - config.openshift.io
+ resources:
+ - infrastructures
+ - infrastructures/status
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - coordination.k8s.io
+ resources:
+ - leases
+ verbs:
+ - create
+ - get
+ - list
+ - update
+ - apiGroups:
+ - events.k8s.io
+ resources:
+ - events
+ verbs:
+ - list
+ - watch
+ - apiGroups:
+ - monitoring.coreos.com
+ resources:
+ - podmonitors
+ - servicemonitors
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - networking.k8s.io
+ resources:
+ - ingresses
+ - networkpolicies
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - instrumentations
+ verbs:
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges/finalizers
+ verbs:
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges/status
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opentelemetrycollectors
+ verbs:
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opentelemetrycollectors/finalizers
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opentelemetrycollectors/status
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - policy
+ resources:
+ - poddisruptionbudgets
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - route.openshift.io
+ resources:
+ - routes
+ - routes/custom-host
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - targetallocators
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - targetallocators/status
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - targetallocators/finalizers
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - cert-manager.io
+ resources:
+ - issuers
+ - certificaterequests
+ - certificates
+ verbs:
+ - create
+ - get
+ - list
+ - watch
+ - update
+ - patch
+ - delete
+ - apiGroups:
+ - authorization.k8s.io
+ resources:
+ - subjectaccessreviews
+ verbs:
+ - create
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-metrics
+rules:
+ - nonResourceURLs:
+ - /metrics
+ verbs:
+ - get
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-proxy
+rules:
+ - apiGroups:
+ - authentication.k8s.io
+ resources:
+ - tokenreviews
+ verbs:
+ - create
diff --git a/charts/opentelemetry-kube-stack/examples/default/rendered/opentelemetry-operator/clusterrolebinding.yaml b/charts/opentelemetry-kube-stack/examples/default/rendered/opentelemetry-operator/clusterrolebinding.yaml
new file mode 100644
index 00000000..831b2df7
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/default/rendered/opentelemetry-operator/clusterrolebinding.yaml
@@ -0,0 +1,44 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrolebinding.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-manager
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: example-opentelemetry-operator-manager
+subjects:
+ - kind: ServiceAccount
+ name: opentelemetry-operator
+ namespace: default
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrolebinding.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-proxy
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: example-opentelemetry-operator-proxy
+subjects:
+ - kind: ServiceAccount
+ name: opentelemetry-operator
+ namespace: default
diff --git a/charts/opentelemetry-kube-stack/examples/default/rendered/opentelemetry-operator/deployment.yaml b/charts/opentelemetry-kube-stack/examples/default/rendered/opentelemetry-operator/deployment.yaml
new file mode 100644
index 00000000..ca0ddf47
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/default/rendered/opentelemetry-operator/deployment.yaml
@@ -0,0 +1,122 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/deployment.yaml
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator
+ namespace: default
+spec:
+ replicas: 1
+ revisionHistoryLimit: 10
+ selector:
+ matchLabels:
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/component: controller-manager
+ template:
+ metadata:
+ annotations:
+ kubectl.kubernetes.io/default-container: manager
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ spec:
+ automountServiceAccountToken: true
+ hostNetwork: false
+ containers:
+ - args:
+ - --metrics-addr=0.0.0.0:8080
+ - --enable-leader-election
+ - --health-probe-addr=:8081
+ - --webhook-port=9443
+ - --collector-image=otel/opentelemetry-collector-k8s:0.144.0
+ command:
+ - /manager
+ env:
+ - name: SERVICE_ACCOUNT_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: spec.serviceAccountName
+ - name: ENABLE_WEBHOOKS
+ value: "true"
+ image: "ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator:0.144.0"
+ name: manager
+ imagePullPolicy: IfNotPresent
+ ports:
+ - containerPort: 8080
+ name: metrics
+ protocol: TCP
+ - containerPort: 9443
+ name: webhook-server
+ protocol: TCP
+ livenessProbe:
+ httpGet:
+ path: /healthz
+ port: 8081
+ initialDelaySeconds: 15
+ periodSeconds: 20
+ readinessProbe:
+ httpGet:
+ path: /readyz
+ port: 8081
+ initialDelaySeconds: 5
+ periodSeconds: 10
+ resources:
+ {}
+ volumeMounts:
+ - mountPath: /tmp/k8s-webhook-server/serving-certs
+ name: cert
+ readOnly: true
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
+
+ - args:
+ - --secure-listen-address=0.0.0.0:8443
+ - --upstream=http://127.0.0.1:8080/
+ - --v=0
+ image: "quay.io/brancz/kube-rbac-proxy:v0.20.0"
+ name: kube-rbac-proxy
+ ports:
+ - containerPort: 8443
+ name: https
+ protocol: TCP
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
+ nodeSelector:
+ kubernetes.io/os: linux
+ serviceAccountName: opentelemetry-operator
+ terminationGracePeriodSeconds: 10
+ volumes:
+ - name: cert
+ secret:
+ defaultMode: 420
+ secretName: example-opentelemetry-operator-controller-manager-service-cert
+ securityContext:
+ fsGroup: 65532
+ runAsGroup: 65532
+ runAsNonRoot: true
+ runAsUser: 65532
diff --git a/charts/opentelemetry-kube-stack/examples/default/rendered/opentelemetry-operator/role.yaml b/charts/opentelemetry-kube-stack/examples/default/rendered/opentelemetry-operator/role.yaml
new file mode 100644
index 00000000..88ccd2b0
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/default/rendered/opentelemetry-operator/role.yaml
@@ -0,0 +1,199 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/role.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: Role
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-leader-election
+ namespace: default
+rules:
+ - apiGroups:
+ - ""
+ resources:
+ - configmaps
+ - pods
+ - serviceaccounts
+ - services
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - events
+ verbs:
+ - create
+ - patch
+ - apiGroups:
+ - ""
+ resources:
+ - namespaces
+ - secrets
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - apps
+ resources:
+ - daemonsets
+ - deployments
+ - statefulsets
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - apps
+ resources:
+ - replicasets
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - autoscaling
+ resources:
+ - horizontalpodautoscalers
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - batch
+ resources:
+ - jobs
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - config.openshift.io
+ resources:
+ - infrastructures
+ - infrastructures/status
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - coordination.k8s.io
+ resources:
+ - leases
+ verbs:
+ - create
+ - get
+ - list
+ - update
+ - apiGroups:
+ - monitoring.coreos.com
+ resources:
+ - podmonitors
+ - servicemonitors
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - networking.k8s.io
+ resources:
+ - ingresses
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - instrumentations
+ - opentelemetrycollectors
+ verbs:
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges
+ - targetallocators
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges/finalizers
+ verbs:
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges/status
+ - opentelemetrycollectors/finalizers
+ - opentelemetrycollectors/status
+ - targetallocators/status
+ - targetallocators/finalizers
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - policy
+ resources:
+ - poddisruptionbudgets
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - route.openshift.io
+ resources:
+ - routes
+ - routes/custom-host
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
diff --git a/charts/opentelemetry-kube-stack/examples/default/rendered/opentelemetry-operator/rolebinding.yaml b/charts/opentelemetry-kube-stack/examples/default/rendered/opentelemetry-operator/rolebinding.yaml
new file mode 100644
index 00000000..fa556fae
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/default/rendered/opentelemetry-operator/rolebinding.yaml
@@ -0,0 +1,23 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/rolebinding.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: RoleBinding
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-leader-election
+ namespace: default
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: Role
+ name: example-opentelemetry-operator-leader-election
+subjects:
+ - kind: ServiceAccount
+ name: opentelemetry-operator
+ namespace: default
diff --git a/charts/opentelemetry-kube-stack/examples/default/rendered/opentelemetry-operator/service.yaml b/charts/opentelemetry-kube-stack/examples/default/rendered/opentelemetry-operator/service.yaml
new file mode 100644
index 00000000..9f7f7220
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/default/rendered/opentelemetry-operator/service.yaml
@@ -0,0 +1,51 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/service.yaml
+apiVersion: v1
+kind: Service
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator
+ namespace: default
+spec:
+ ports:
+ - name: https
+ port: 8443
+ protocol: TCP
+ targetPort: https
+ - name: metrics
+ port: 8080
+ protocol: TCP
+ targetPort: metrics
+ selector:
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/component: controller-manager
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/service.yaml
+apiVersion: v1
+kind: Service
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+spec:
+ ports:
+ - port: 443
+ protocol: TCP
+ targetPort: webhook-server
+ selector:
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/component: controller-manager
diff --git a/charts/opentelemetry-kube-stack/examples/default/rendered/opentelemetry-operator/serviceaccount.yaml b/charts/opentelemetry-kube-stack/examples/default/rendered/opentelemetry-operator/serviceaccount.yaml
new file mode 100644
index 00000000..f49d54b3
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/default/rendered/opentelemetry-operator/serviceaccount.yaml
@@ -0,0 +1,16 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+automountServiceAccountToken: true
+metadata:
+ name: opentelemetry-operator
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
diff --git a/charts/opentelemetry-kube-stack/examples/default/rendered/opentelemetry-operator/tests/test-certmanager-connection.yaml b/charts/opentelemetry-kube-stack/examples/default/rendered/opentelemetry-operator/tests/test-certmanager-connection.yaml
new file mode 100644
index 00000000..8c13f151
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/default/rendered/opentelemetry-operator/tests/test-certmanager-connection.yaml
@@ -0,0 +1,53 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/tests/test-certmanager-connection.yaml
+apiVersion: v1
+kind: Pod
+metadata:
+ name: "example-opentelemetry-operator-cert-manager"
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ annotations:
+ "helm.sh/hook": test
+spec:
+ containers:
+ - name: wget
+ image: "busybox:latest"
+ env:
+ - name: CERT_MANAGER_CLUSTERIP
+ value: "cert-manager-webhook"
+ - name: CERT_MANAGER_PORT
+ value: "443"
+ command:
+ - sh
+ - -c
+ # The following shell script tests if the cert-manager service is up. If the service is up, when we try
+ # to wget its exposed port, we will get an HTTP error 400.
+ - |
+ wget_output=$(wget -q "$CERT_MANAGER_CLUSTERIP:$CERT_MANAGER_PORT")
+ if wget_output=="wget: server returned error: HTTP/1.0 400 Bad Request"
+ then exit 0
+ else exit 1
+ fi
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
+ restartPolicy: Never
+ nodeSelector:
+ kubernetes.io/os: linux
+ securityContext:
+ fsGroup: 65532
+ runAsGroup: 65532
+ runAsNonRoot: true
+ runAsUser: 65532
diff --git a/charts/opentelemetry-kube-stack/examples/default/rendered/opentelemetry-operator/tests/test-service-connection.yaml b/charts/opentelemetry-kube-stack/examples/default/rendered/opentelemetry-operator/tests/test-service-connection.yaml
new file mode 100644
index 00000000..59ef1413
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/default/rendered/opentelemetry-operator/tests/test-service-connection.yaml
@@ -0,0 +1,106 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/tests/test-service-connection.yaml
+apiVersion: v1
+kind: Pod
+metadata:
+ name: "example-opentelemetry-operator-metrics"
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ annotations:
+ "helm.sh/hook": test
+spec:
+ containers:
+ - name: wget
+ image: "busybox:latest"
+ env:
+ - name: MANAGER_METRICS_SERVICE_CLUSTERIP
+ value: "example-opentelemetry-operator"
+ - name: MANAGER_METRICS_SERVICE_PORT
+ value: "8443"
+ command:
+ - sh
+ - -c
+ # The following shell script tests if the controller-manager-metrics-service is up.
+ # If the service is up, when we try to wget its exposed port, we will get an HTTP error 400.
+ - |
+ wget_output=$(wget -q "$MANAGER_METRICS_SERVICE_CLUSTERIP:$MANAGER_METRICS_SERVICE_PORT")
+ if wget_output=="wget: server returned error: HTTP/1.0 400 Bad Request"
+ then exit 0
+ else exit 1
+ fi
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
+ restartPolicy: Never
+ nodeSelector:
+ kubernetes.io/os: linux
+ securityContext:
+ fsGroup: 65532
+ runAsGroup: 65532
+ runAsNonRoot: true
+ runAsUser: 65532
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/tests/test-service-connection.yaml
+apiVersion: v1
+kind: Pod
+metadata:
+ name: "example-opentelemetry-operator-webhook"
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ annotations:
+ "helm.sh/hook": test
+spec:
+ containers:
+ - name: wget
+ image: "busybox:latest"
+ env:
+ - name: WEBHOOK_SERVICE_CLUSTERIP
+ value: "example-opentelemetry-operator-webhook"
+ - name: WEBHOOK_SERVICE_PORT
+ value: "443"
+ command:
+ - sh
+ - -c
+ # The following shell script tests if the webhook service is up. If the service is up, when we try
+ # to wget its exposed port, we will get an HTTP error 400.
+ - |
+ wget_output=$(wget -q "$WEBHOOK_SERVICE_CLUSTERIP:$WEBHOOK_SERVICE_PORT")
+ if wget_output=="wget: server returned error: HTTP/1.0 400 Bad Request"
+ then exit 0
+ else exit 1
+ fi
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
+ restartPolicy: Never
+ nodeSelector:
+ kubernetes.io/os: linux
+ securityContext:
+ fsGroup: 65532
+ runAsGroup: 65532
+ runAsNonRoot: true
+ runAsUser: 65532
diff --git a/charts/opentelemetry-kube-stack/examples/default/values.yaml b/charts/opentelemetry-kube-stack/examples/default/values.yaml
new file mode 100644
index 00000000..e69de29b
diff --git a/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/README.md b/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/README.md
new file mode 100644
index 00000000..7c374e95
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/README.md
@@ -0,0 +1,12 @@
+# Isolated Multi-Collector Deployment example
+
+This configuration involves deploying multiple OpenTelemetry collectors which potentially could be placed on the same node, each serving different purposes while maintaining complete storage and resource isolation:
+
+- **Agent Collector** - handles telemetry (primarily logs) collection from applications and infrastructure in the cluster
+- **Gateway Collector** - manages aggregation, processing, and forwarding of telemetry data to external systems for retention, audit etc.
+- **Ingress Collector** - responsible for receiving and processing external telemetry data from remote sources or third-party systems tied to workloads in the cluster
+
+Each collector operates with its own dedicated queue storage paths and configuration files to prevent conflicts and ensure independent operation.
+
+> [!WARNING]
+> While it's recommended to use Persistent Volume Claims (PVC) for deployment collectors in production environments, this scenario uses node local storage to simplify the configuration example and demonstrate how the storage paths would be structured across multiple collector instances. The key requirement is ensuring proper separation of file storage directories and processing resources to avoid data corruption or operational interference between collector instances.
diff --git a/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/clusterrole.yaml b/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/clusterrole.yaml
new file mode 100644
index 00000000..2ed6efe9
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/clusterrole.yaml
@@ -0,0 +1,140 @@
+---
+# Source: opentelemetry-kube-stack/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ name: example-collector
+rules:
+- apiGroups: [""]
+ resources:
+ - namespaces
+ - nodes
+ - nodes/proxy
+ - nodes/metrics
+ - nodes/stats
+ - services
+ - endpoints
+ - pods
+ - events
+ - secrets
+ - persistentvolumeclaims
+ - persistentvolumes
+ verbs: ["get", "list", "watch"]
+- apiGroups: ["monitoring.coreos.com"]
+ resources:
+ - servicemonitors
+ - podmonitors
+ - scrapeconfigs
+ - probes
+ verbs: ["get", "list", "watch"]
+- apiGroups:
+ - extensions
+ resources:
+ - ingresses
+ verbs: ["get", "list", "watch"]
+- apiGroups:
+ - apps
+ resources:
+ - daemonsets
+ - deployments
+ - replicasets
+ - statefulsets
+ verbs: ["get", "list", "watch"]
+- apiGroups:
+ - networking.k8s.io
+ resources:
+ - ingresses
+ verbs: ["get", "list", "watch"]
+- apiGroups: ["discovery.k8s.io"]
+ resources:
+ - endpointslices
+ verbs: ["get", "list", "watch"]
+- nonResourceURLs: ["/metrics", "/metrics/cadvisor"]
+ verbs: ["get"]
+
+- verbs:
+ - get
+ - list
+ - watch
+ - create
+ - update
+ - patch
+ - delete
+ apiGroups:
+ - coordination.k8s.io
+ resources:
+ - leases
+- apiGroups:
+ - ""
+ resources:
+ - events
+ - namespaces
+ - namespaces/status
+ - nodes
+ - nodes/spec
+ - pods
+ - pods/status
+ - replicationcontrollers
+ - replicationcontrollers/status
+ - resourcequotas
+ - services
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups:
+ - apps
+ resources:
+ - daemonsets
+ - deployments
+ - replicasets
+ - statefulsets
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups:
+ - extensions
+ resources:
+ - daemonsets
+ - deployments
+ - replicasets
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups:
+ - batch
+ resources:
+ - jobs
+ - cronjobs
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups:
+ - autoscaling
+ resources:
+ - horizontalpodautoscalers
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups: ["events.k8s.io"]
+ resources: ["events"]
+ verbs: ["watch", "list"]
+---
+# Source: opentelemetry-kube-stack/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ name: agent
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: example-collector
+subjects:
+- kind: ServiceAccount
+ # quirk of the Operator
+ name: "agent-collector"
+ namespace: default
diff --git a/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/collector.yaml b/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/collector.yaml
new file mode 100644
index 00000000..f2de6de4
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/collector.yaml
@@ -0,0 +1,486 @@
+---
+# Source: opentelemetry-kube-stack/templates/collector.yaml
+apiVersion: opentelemetry.io/v1beta1
+kind: OpenTelemetryCollector
+metadata:
+ name: agent
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-kube-stack-0.14.11
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ release: "example"
+spec:
+ managementState: managed
+ mode: daemonset
+ config:
+ exporters:
+ otlp:
+ endpoint: gateway-collector.default.svc:4317
+ sending_queue:
+ storage: file_storage/queues
+ tls:
+ insecure: true
+ extensions:
+ file_storage/queues:
+ create_directory: true
+ directory: /var/lib/otelcol/agent/queues
+ k8s_leader_elector/k8s_objects:
+ auth_type: serviceAccount
+ lease_name: k8s.objects.receiver.opentelemetry.io
+ lease_namespace: default
+ processors:
+ k8sattributes:
+ extract:
+ labels:
+ - from: pod
+ key: app.kubernetes.io/instance
+ tag_name: k8s.app.instance
+ - from: pod
+ key: app.kubernetes.io/component
+ tag_name: k8s.app.component
+ metadata:
+ - k8s.namespace.name
+ - k8s.pod.name
+ - k8s.pod.uid
+ - k8s.node.name
+ - k8s.pod.start_time
+ - k8s.deployment.name
+ - k8s.replicaset.name
+ - k8s.replicaset.uid
+ - k8s.daemonset.name
+ - k8s.daemonset.uid
+ - k8s.job.name
+ - k8s.job.uid
+ - k8s.container.name
+ - k8s.cronjob.name
+ - k8s.statefulset.name
+ - k8s.statefulset.uid
+ - container.image.tag
+ - container.image.name
+ - k8s.cluster.uid
+ - service.namespace
+ - service.name
+ - service.version
+ - service.instance.id
+ otel_annotations: true
+ filter:
+ node_from_env_var: OTEL_K8S_NODE_NAME
+ passthrough: false
+ pod_association:
+ - sources:
+ - from: resource_attribute
+ name: k8s.pod.uid
+ - sources:
+ - from: resource_attribute
+ name: k8s.pod.name
+ - from: resource_attribute
+ name: k8s.namespace.name
+ - from: resource_attribute
+ name: k8s.node.name
+ - sources:
+ - from: resource_attribute
+ name: k8s.pod.ip
+ - sources:
+ - from: resource_attribute
+ name: k8s.pod.name
+ - from: resource_attribute
+ name: k8s.namespace.name
+ - sources:
+ - from: connection
+ receivers:
+ filelog:
+ exclude:
+ - /var/log/pods/default_agent*_*/otc-container/*.log
+ include:
+ - /var/log/pods/*/*/*.log
+ include_file_name: false
+ include_file_path: true
+ operators:
+ - id: container-parser
+ max_log_size: 102400
+ type: container
+ retry_on_failure:
+ enabled: true
+ start_at: end
+ k8sobjects:
+ k8s_leader_elector: k8s_leader_elector/k8s_objects
+ objects:
+ - exclude_watch_type:
+ - DELETED
+ group: events.k8s.io
+ mode: watch
+ name: events
+ otlp:
+ protocols:
+ grpc:
+ endpoint: ${env:OTEL_K8S_POD_IP}:4317
+ service:
+ extensions:
+ - file_storage/queues
+ - k8s_leader_elector/k8s_objects
+ pipelines:
+ logs:
+ exporters:
+ - otlp
+ processors:
+ - k8sattributes
+ receivers:
+ - otlp
+ - filelog
+ - k8sobjects
+ metrics:
+ exporters:
+ - otlp
+ processors:
+ - k8sattributes
+ receivers:
+ - otlp
+ traces:
+ exporters:
+ - otlp
+ processors:
+ - k8sattributes
+ receivers:
+ - otlp
+ imagePullPolicy: IfNotPresent
+ upgradeStrategy: automatic
+ terminationGracePeriodSeconds: 30
+ resources:
+ limits:
+ cpu: 200m
+ memory: 500Mi
+ requests:
+ cpu: 100m
+ memory: 250Mi
+ securityContext:
+ runAsGroup: 0
+ runAsUser: 0
+ affinity:
+ podAntiAffinity:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ - podAffinityTerm:
+ labelSelector:
+ matchLabels:
+ app.kubernetes.io/component: opentelemetry-collector
+ app.kubernetes.io/instance: 'default.agent'
+ topologyKey: kubernetes.io/hostname
+ weight: 100
+ volumeMounts:
+ - name: varlogpods
+ mountPath: /var/log/pods
+ readOnly: true
+ - name: varlibdockercontainers
+ mountPath: /var/lib/docker/containers
+ readOnly: true
+ - mountPath: /var/lib/otelcol/agent
+ name: varlibotelcol
+ env:
+ - name: K8S_NODE_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: spec.nodeName
+ - name: OTEL_K8S_NODE_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: spec.nodeName
+ - name: OTEL_K8S_NODE_IP
+ valueFrom:
+ fieldRef:
+ fieldPath: status.hostIP
+ - name: OTEL_K8S_NAMESPACE
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.namespace
+ - name: OTEL_K8S_POD_NAME
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.name
+ - name: OTEL_K8S_POD_IP
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: status.podIP
+ - name: OTEL_RESOURCE_ATTRIBUTES
+ value: "k8s.pod.name=$(OTEL_K8S_POD_NAME),k8s.namespace.name=$(OTEL_K8S_NAMESPACE),k8s.node.name=$(OTEL_K8S_NODE_NAME),host.name=$(OTEL_K8S_NODE_NAME),k8s.node.ip=$(OTEL_K8S_NODE_IP),k8s.pod.ip=$(OTEL_K8S_POD_IP),k8s.cluster.name=demo"
+
+ tolerations:
+ - effect: NoExecute
+ operator: Exists
+ - effect: NoSchedule
+ operator: Exists
+ - effect: PreferNoSchedule
+ operator: Exists
+ volumes:
+ - name: varlogpods
+ hostPath:
+ path: /var/log/pods
+ - name: varlibdockercontainers
+ hostPath:
+ path: /var/lib/docker/containers
+ - hostPath:
+ path: /var/lib/otelcol/agent
+ type: DirectoryOrCreate
+ name: varlibotelcol
+---
+# Source: opentelemetry-kube-stack/templates/collector.yaml
+apiVersion: opentelemetry.io/v1beta1
+kind: OpenTelemetryCollector
+metadata:
+ name: gateway
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-kube-stack-0.14.11
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ release: "example"
+spec:
+ managementState: managed
+ mode: deployment
+ config:
+ exporters:
+ otlp:
+ endpoint: ingest.example.com:4318
+ sending_queue:
+ storage: file_storage/queues
+ tls:
+ insecure: true
+ extensions:
+ file_storage/queues:
+ create_directory: true
+ directory: /var/lib/otelcol/gateway/queues
+ processors:
+ resource/common:
+ attributes:
+ - action: insert
+ key: k8s.cluster.name
+ value: 'demo'
+ receivers:
+ otlp:
+ protocols:
+ grpc:
+ endpoint: ${env:OTEL_K8S_POD_IP}:4317
+ service:
+ extensions:
+ - file_storage/queues
+ pipelines:
+ logs:
+ exporters:
+ - otlp
+ processors:
+ - resource/common
+ receivers:
+ - otlp
+ metrics:
+ exporters:
+ - otlp
+ processors:
+ - resource/common
+ receivers:
+ - otlp
+ traces:
+ exporters:
+ - otlp
+ processors:
+ - resource/common
+ receivers:
+ - otlp
+ replicas:
+ imagePullPolicy: IfNotPresent
+ upgradeStrategy: automatic
+ terminationGracePeriodSeconds: 30
+ resources:
+ limits:
+ cpu: "1"
+ memory: 2Gi
+ requests:
+ cpu: 500m
+ memory: 1Gi
+ securityContext:
+ runAsGroup: 0
+ runAsUser: 0
+ affinity:
+ podAntiAffinity:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ - podAffinityTerm:
+ labelSelector:
+ matchLabels:
+ app.kubernetes.io/component: opentelemetry-collector
+ app.kubernetes.io/instance: 'default.gateway'
+ topologyKey: kubernetes.io/hostname
+ weight: 100
+ volumeMounts:
+ - mountPath: /var/lib/otelcol/gateway
+ name: varlibotelcol
+ env:
+ - name: K8S_NODE_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: spec.nodeName
+ - name: OTEL_K8S_NODE_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: spec.nodeName
+ - name: OTEL_K8S_NODE_IP
+ valueFrom:
+ fieldRef:
+ fieldPath: status.hostIP
+ - name: OTEL_K8S_NAMESPACE
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.namespace
+ - name: OTEL_K8S_POD_NAME
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.name
+ - name: OTEL_K8S_POD_IP
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: status.podIP
+ - name: OTEL_RESOURCE_ATTRIBUTES
+ value: "k8s.pod.name=$(OTEL_K8S_POD_NAME),k8s.namespace.name=$(OTEL_K8S_NAMESPACE),k8s.node.name=$(OTEL_K8S_NODE_NAME),host.name=$(OTEL_K8S_NODE_NAME),k8s.node.ip=$(OTEL_K8S_NODE_IP),k8s.pod.ip=$(OTEL_K8S_POD_IP),k8s.cluster.name=demo"
+
+ tolerations:
+ - effect: NoExecute
+ operator: Exists
+ - effect: NoSchedule
+ operator: Exists
+ - effect: PreferNoSchedule
+ operator: Exists
+ volumes:
+ - hostPath:
+ path: /var/lib/otelcol/gateway
+ type: DirectoryOrCreate
+ name: varlibotelcol
+---
+# Source: opentelemetry-kube-stack/templates/collector.yaml
+apiVersion: opentelemetry.io/v1beta1
+kind: OpenTelemetryCollector
+metadata:
+ name: ingress
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-kube-stack-0.14.11
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ release: "example"
+spec:
+ managementState: managed
+ mode: deployment
+ config:
+ exporters:
+ otlp:
+ endpoint: gateway-collector.default.svc:4317
+ sending_queue:
+ storage: file_storage/queues
+ tls:
+ insecure: true
+ extensions:
+ file_storage/queues:
+ create_directory: true
+ directory: /var/lib/otelcol/ingress/queues
+ oidc:
+ audience: 12345678-1234-5678-1234-567812345678
+ issuer_url: https://login.microsoftonline.com/87654321-8765-4321-8765-432187654321/v2.0
+ receivers:
+ otlp:
+ protocols:
+ http:
+ auth:
+ authenticator: oidc
+ endpoint: ${env:OTEL_K8S_POD_IP}:4318
+ service:
+ extensions:
+ - file_storage/queues
+ - oidc
+ pipelines:
+ logs:
+ exporters:
+ - otlp
+ receivers:
+ - otlp
+ metrics:
+ exporters:
+ - otlp
+ receivers:
+ - otlp
+ traces:
+ exporters:
+ - otlp
+ receivers:
+ - otlp
+ replicas:
+ imagePullPolicy: IfNotPresent
+ upgradeStrategy: automatic
+ terminationGracePeriodSeconds: 30
+ resources:
+ limits:
+ cpu: 200m
+ memory: 500Mi
+ requests:
+ cpu: 100m
+ memory: 250Mi
+ securityContext:
+ runAsGroup: 0
+ runAsUser: 0
+ affinity:
+ podAntiAffinity:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ - podAffinityTerm:
+ labelSelector:
+ matchLabels:
+ app.kubernetes.io/component: opentelemetry-collector
+ app.kubernetes.io/instance: 'default.ingress'
+ topologyKey: kubernetes.io/hostname
+ weight: 100
+ volumeMounts:
+ - mountPath: /var/lib/otelcol/ingress
+ name: varlibotelcol
+ env:
+ - name: K8S_NODE_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: spec.nodeName
+ - name: OTEL_K8S_NODE_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: spec.nodeName
+ - name: OTEL_K8S_NODE_IP
+ valueFrom:
+ fieldRef:
+ fieldPath: status.hostIP
+ - name: OTEL_K8S_NAMESPACE
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.namespace
+ - name: OTEL_K8S_POD_NAME
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.name
+ - name: OTEL_K8S_POD_IP
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: status.podIP
+ - name: OTEL_RESOURCE_ATTRIBUTES
+ value: "k8s.pod.name=$(OTEL_K8S_POD_NAME),k8s.namespace.name=$(OTEL_K8S_NAMESPACE),k8s.node.name=$(OTEL_K8S_NODE_NAME),host.name=$(OTEL_K8S_NODE_NAME),k8s.node.ip=$(OTEL_K8S_NODE_IP),k8s.pod.ip=$(OTEL_K8S_POD_IP),k8s.cluster.name=demo"
+
+ tolerations:
+ - effect: NoExecute
+ operator: Exists
+ - effect: NoSchedule
+ operator: Exists
+ - effect: PreferNoSchedule
+ operator: Exists
+ volumes:
+ - hostPath:
+ path: /var/lib/otelcol/ingress
+ type: DirectoryOrCreate
+ name: varlibotelcol
diff --git a/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/hooks.yaml b/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/hooks.yaml
new file mode 100644
index 00000000..f528b802
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/hooks.yaml
@@ -0,0 +1,64 @@
+---
+# Source: opentelemetry-kube-stack/templates/hooks.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: delete-resources-sa
+ annotations:
+ "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
+---
+# Source: opentelemetry-kube-stack/templates/hooks.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: Role
+metadata:
+ name: delete-resources-role
+ annotations:
+ "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
+rules:
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - instrumentations
+ - opampbridges
+ - opentelemetrycollectors
+ verbs:
+ - get
+ - list
+ - delete
+---
+# Source: opentelemetry-kube-stack/templates/hooks.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: RoleBinding
+metadata:
+ name: delete-resources-rolebinding
+ annotations:
+ "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: Role
+ name: delete-resources-role
+subjects:
+ - kind: ServiceAccount
+ name: delete-resources-sa
+---
+# Source: opentelemetry-kube-stack/templates/hooks.yaml
+apiVersion: batch/v1
+kind: Job
+metadata:
+ name: opentelemetry-kube-stack-pre-delete-job
+ annotations:
+ "helm.sh/hook": pre-delete
+ "helm.sh/hook-delete-policy": hook-succeeded,hook-failed
+spec:
+ template:
+ spec:
+ restartPolicy: Never
+ serviceAccountName: delete-resources-sa
+ containers:
+ - name: delete-resources
+ image: "rancher/kubectl:v1.34.1"
+ args:
+ - "delete"
+ - "instrumentations,opampbridges,opentelemetrycollectors"
+ - "-l"
+ - "helm.sh/chart=opentelemetry-kube-stack-0.14.11"
diff --git a/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/opentelemetry-operator/admission-webhooks/operator-webhook-with-cert-manager.yaml b/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/opentelemetry-operator/admission-webhooks/operator-webhook-with-cert-manager.yaml
new file mode 100644
index 00000000..1b4f51a7
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/opentelemetry-operator/admission-webhooks/operator-webhook-with-cert-manager.yaml
@@ -0,0 +1,192 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/admission-webhooks/operator-webhook-with-cert-manager.yaml
+apiVersion: admissionregistration.k8s.io/v1
+kind: MutatingWebhookConfiguration
+metadata:
+ annotations:
+ cert-manager.io/inject-ca-from: default/example-opentelemetry-operator-serving-cert
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ name: example-opentelemetry-operator-mutation
+webhooks:
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /mutate-opentelemetry-io-v1alpha1-instrumentation
+ port: 443
+ failurePolicy: Ignore
+ name: minstrumentation.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1alpha1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - instrumentations
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /mutate-opentelemetry-io-v1beta1-opentelemetrycollector
+ port: 443
+ failurePolicy: Ignore
+ name: mopentelemetrycollectorbeta.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1beta1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - opentelemetrycollectors
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /mutate-v1-pod
+ port: 443
+ failurePolicy: Ignore
+ name: mpod.kb.io
+ rules:
+ - apiGroups:
+ - ""
+ apiVersions:
+ - v1
+ operations:
+ - CREATE
+ resources:
+ - pods
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/admission-webhooks/operator-webhook-with-cert-manager.yaml
+apiVersion: admissionregistration.k8s.io/v1
+kind: ValidatingWebhookConfiguration
+metadata:
+ annotations:
+ cert-manager.io/inject-ca-from: default/example-opentelemetry-operator-serving-cert
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ name: example-opentelemetry-operator-validation
+webhooks:
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /validate-opentelemetry-io-v1alpha1-instrumentation
+ port: 443
+ failurePolicy: Ignore
+ name: vinstrumentationcreateupdate.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1alpha1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - instrumentations
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /validate-opentelemetry-io-v1alpha1-instrumentation
+ port: 443
+ failurePolicy: Ignore
+ name: vinstrumentationdelete.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1alpha1
+ operations:
+ - DELETE
+ resources:
+ - instrumentations
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /validate-opentelemetry-io-v1beta1-opentelemetrycollector
+ port: 443
+ failurePolicy: Ignore
+ name: vopentelemetrycollectorcreateupdatebeta.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1beta1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - opentelemetrycollectors
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /validate-opentelemetry-io-v1beta1-opentelemetrycollector
+ port: 443
+ failurePolicy: Ignore
+ name: vopentelemetrycollectordeletebeta.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1beta1
+ operations:
+ - DELETE
+ resources:
+ - opentelemetrycollectors
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
diff --git a/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/opentelemetry-operator/admission-webhooks/operator-webhook.yaml b/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/opentelemetry-operator/admission-webhooks/operator-webhook.yaml
new file mode 100644
index 00000000..5b9ff551
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/opentelemetry-operator/admission-webhooks/operator-webhook.yaml
@@ -0,0 +1,3 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/admission-webhooks/operator-webhook.yaml
+---
diff --git a/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/opentelemetry-operator/certmanager.yaml b/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/opentelemetry-operator/certmanager.yaml
new file mode 100644
index 00000000..a8922eee
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/opentelemetry-operator/certmanager.yaml
@@ -0,0 +1,43 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/certmanager.yaml
+apiVersion: cert-manager.io/v1
+kind: Certificate
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ name: example-opentelemetry-operator-serving-cert
+ namespace: default
+spec:
+ dnsNames:
+ - example-opentelemetry-operator-webhook.default.svc
+ - example-opentelemetry-operator-webhook.default.svc.cluster.local
+ issuerRef:
+ kind: Issuer
+ name: example-opentelemetry-operator-selfsigned-issuer
+ secretName: example-opentelemetry-operator-controller-manager-service-cert
+ subject:
+ organizationalUnits:
+ - example-opentelemetry-operator
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/certmanager.yaml
+apiVersion: cert-manager.io/v1
+kind: Issuer
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ name: example-opentelemetry-operator-selfsigned-issuer
+ namespace: default
+spec:
+ selfSigned: {}
diff --git a/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/opentelemetry-operator/clusterrole.yaml b/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/opentelemetry-operator/clusterrole.yaml
new file mode 100644
index 00000000..4ae76fec
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/opentelemetry-operator/clusterrole.yaml
@@ -0,0 +1,402 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-manager
+rules:
+ - apiGroups:
+ - ""
+ resources:
+ - configmaps
+ - persistentvolumeclaims
+ - persistentvolumes
+ - pods
+ - serviceaccounts
+ - services
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - events
+ verbs:
+ - create
+ - get
+ - list
+ - patch
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - namespaces
+ verbs:
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - namespaces/status
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - nodes/spec
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - pods/status
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - replicationcontrollers
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - replicationcontrollers/status
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - resourcequotas
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - apps
+ resources:
+ - daemonsets
+ - deployments
+ - statefulsets
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - apps
+ - extensions
+ resources:
+ - replicasets
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - extensions
+ resources:
+ - daemonsets
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - extensions
+ resources:
+ - deployments
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - autoscaling
+ resources:
+ - horizontalpodautoscalers
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - batch
+ resources:
+ - jobs
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - batch
+ resources:
+ - cronjobs
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - nodes/proxy
+ verbs:
+ - get
+ - apiGroups:
+ - ""
+ resources:
+ - nodes/stats
+ verbs:
+ - get
+ - apiGroups:
+ - config.openshift.io
+ resources:
+ - infrastructures
+ - infrastructures/status
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - coordination.k8s.io
+ resources:
+ - leases
+ verbs:
+ - create
+ - get
+ - list
+ - update
+ - apiGroups:
+ - events.k8s.io
+ resources:
+ - events
+ verbs:
+ - list
+ - watch
+ - apiGroups:
+ - monitoring.coreos.com
+ resources:
+ - podmonitors
+ - servicemonitors
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - networking.k8s.io
+ resources:
+ - ingresses
+ - networkpolicies
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - instrumentations
+ verbs:
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges/finalizers
+ verbs:
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges/status
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opentelemetrycollectors
+ verbs:
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opentelemetrycollectors/finalizers
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opentelemetrycollectors/status
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - policy
+ resources:
+ - poddisruptionbudgets
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - route.openshift.io
+ resources:
+ - routes
+ - routes/custom-host
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - targetallocators
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - targetallocators/status
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - targetallocators/finalizers
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - cert-manager.io
+ resources:
+ - issuers
+ - certificaterequests
+ - certificates
+ verbs:
+ - create
+ - get
+ - list
+ - watch
+ - update
+ - patch
+ - delete
+ - apiGroups:
+ - authorization.k8s.io
+ resources:
+ - subjectaccessreviews
+ verbs:
+ - create
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-metrics
+rules:
+ - nonResourceURLs:
+ - /metrics
+ verbs:
+ - get
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-proxy
+rules:
+ - apiGroups:
+ - authentication.k8s.io
+ resources:
+ - tokenreviews
+ verbs:
+ - create
diff --git a/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/opentelemetry-operator/clusterrolebinding.yaml b/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/opentelemetry-operator/clusterrolebinding.yaml
new file mode 100644
index 00000000..831b2df7
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/opentelemetry-operator/clusterrolebinding.yaml
@@ -0,0 +1,44 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrolebinding.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-manager
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: example-opentelemetry-operator-manager
+subjects:
+ - kind: ServiceAccount
+ name: opentelemetry-operator
+ namespace: default
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrolebinding.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-proxy
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: example-opentelemetry-operator-proxy
+subjects:
+ - kind: ServiceAccount
+ name: opentelemetry-operator
+ namespace: default
diff --git a/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/opentelemetry-operator/deployment.yaml b/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/opentelemetry-operator/deployment.yaml
new file mode 100644
index 00000000..ca0ddf47
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/opentelemetry-operator/deployment.yaml
@@ -0,0 +1,122 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/deployment.yaml
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator
+ namespace: default
+spec:
+ replicas: 1
+ revisionHistoryLimit: 10
+ selector:
+ matchLabels:
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/component: controller-manager
+ template:
+ metadata:
+ annotations:
+ kubectl.kubernetes.io/default-container: manager
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ spec:
+ automountServiceAccountToken: true
+ hostNetwork: false
+ containers:
+ - args:
+ - --metrics-addr=0.0.0.0:8080
+ - --enable-leader-election
+ - --health-probe-addr=:8081
+ - --webhook-port=9443
+ - --collector-image=otel/opentelemetry-collector-k8s:0.144.0
+ command:
+ - /manager
+ env:
+ - name: SERVICE_ACCOUNT_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: spec.serviceAccountName
+ - name: ENABLE_WEBHOOKS
+ value: "true"
+ image: "ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator:0.144.0"
+ name: manager
+ imagePullPolicy: IfNotPresent
+ ports:
+ - containerPort: 8080
+ name: metrics
+ protocol: TCP
+ - containerPort: 9443
+ name: webhook-server
+ protocol: TCP
+ livenessProbe:
+ httpGet:
+ path: /healthz
+ port: 8081
+ initialDelaySeconds: 15
+ periodSeconds: 20
+ readinessProbe:
+ httpGet:
+ path: /readyz
+ port: 8081
+ initialDelaySeconds: 5
+ periodSeconds: 10
+ resources:
+ {}
+ volumeMounts:
+ - mountPath: /tmp/k8s-webhook-server/serving-certs
+ name: cert
+ readOnly: true
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
+
+ - args:
+ - --secure-listen-address=0.0.0.0:8443
+ - --upstream=http://127.0.0.1:8080/
+ - --v=0
+ image: "quay.io/brancz/kube-rbac-proxy:v0.20.0"
+ name: kube-rbac-proxy
+ ports:
+ - containerPort: 8443
+ name: https
+ protocol: TCP
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
+ nodeSelector:
+ kubernetes.io/os: linux
+ serviceAccountName: opentelemetry-operator
+ terminationGracePeriodSeconds: 10
+ volumes:
+ - name: cert
+ secret:
+ defaultMode: 420
+ secretName: example-opentelemetry-operator-controller-manager-service-cert
+ securityContext:
+ fsGroup: 65532
+ runAsGroup: 65532
+ runAsNonRoot: true
+ runAsUser: 65532
diff --git a/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/opentelemetry-operator/role.yaml b/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/opentelemetry-operator/role.yaml
new file mode 100644
index 00000000..88ccd2b0
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/opentelemetry-operator/role.yaml
@@ -0,0 +1,199 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/role.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: Role
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-leader-election
+ namespace: default
+rules:
+ - apiGroups:
+ - ""
+ resources:
+ - configmaps
+ - pods
+ - serviceaccounts
+ - services
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - events
+ verbs:
+ - create
+ - patch
+ - apiGroups:
+ - ""
+ resources:
+ - namespaces
+ - secrets
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - apps
+ resources:
+ - daemonsets
+ - deployments
+ - statefulsets
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - apps
+ resources:
+ - replicasets
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - autoscaling
+ resources:
+ - horizontalpodautoscalers
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - batch
+ resources:
+ - jobs
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - config.openshift.io
+ resources:
+ - infrastructures
+ - infrastructures/status
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - coordination.k8s.io
+ resources:
+ - leases
+ verbs:
+ - create
+ - get
+ - list
+ - update
+ - apiGroups:
+ - monitoring.coreos.com
+ resources:
+ - podmonitors
+ - servicemonitors
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - networking.k8s.io
+ resources:
+ - ingresses
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - instrumentations
+ - opentelemetrycollectors
+ verbs:
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges
+ - targetallocators
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges/finalizers
+ verbs:
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges/status
+ - opentelemetrycollectors/finalizers
+ - opentelemetrycollectors/status
+ - targetallocators/status
+ - targetallocators/finalizers
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - policy
+ resources:
+ - poddisruptionbudgets
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - route.openshift.io
+ resources:
+ - routes
+ - routes/custom-host
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
diff --git a/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/opentelemetry-operator/rolebinding.yaml b/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/opentelemetry-operator/rolebinding.yaml
new file mode 100644
index 00000000..fa556fae
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/opentelemetry-operator/rolebinding.yaml
@@ -0,0 +1,23 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/rolebinding.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: RoleBinding
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-leader-election
+ namespace: default
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: Role
+ name: example-opentelemetry-operator-leader-election
+subjects:
+ - kind: ServiceAccount
+ name: opentelemetry-operator
+ namespace: default
diff --git a/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/opentelemetry-operator/service.yaml b/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/opentelemetry-operator/service.yaml
new file mode 100644
index 00000000..9f7f7220
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/opentelemetry-operator/service.yaml
@@ -0,0 +1,51 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/service.yaml
+apiVersion: v1
+kind: Service
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator
+ namespace: default
+spec:
+ ports:
+ - name: https
+ port: 8443
+ protocol: TCP
+ targetPort: https
+ - name: metrics
+ port: 8080
+ protocol: TCP
+ targetPort: metrics
+ selector:
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/component: controller-manager
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/service.yaml
+apiVersion: v1
+kind: Service
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+spec:
+ ports:
+ - port: 443
+ protocol: TCP
+ targetPort: webhook-server
+ selector:
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/component: controller-manager
diff --git a/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/opentelemetry-operator/serviceaccount.yaml b/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/opentelemetry-operator/serviceaccount.yaml
new file mode 100644
index 00000000..f49d54b3
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/opentelemetry-operator/serviceaccount.yaml
@@ -0,0 +1,16 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+automountServiceAccountToken: true
+metadata:
+ name: opentelemetry-operator
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
diff --git a/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/opentelemetry-operator/tests/test-certmanager-connection.yaml b/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/opentelemetry-operator/tests/test-certmanager-connection.yaml
new file mode 100644
index 00000000..8c13f151
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/opentelemetry-operator/tests/test-certmanager-connection.yaml
@@ -0,0 +1,53 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/tests/test-certmanager-connection.yaml
+apiVersion: v1
+kind: Pod
+metadata:
+ name: "example-opentelemetry-operator-cert-manager"
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ annotations:
+ "helm.sh/hook": test
+spec:
+ containers:
+ - name: wget
+ image: "busybox:latest"
+ env:
+ - name: CERT_MANAGER_CLUSTERIP
+ value: "cert-manager-webhook"
+ - name: CERT_MANAGER_PORT
+ value: "443"
+ command:
+ - sh
+ - -c
+ # The following shell script tests if the cert-manager service is up. If the service is up, when we try
+ # to wget its exposed port, we will get an HTTP error 400.
+ - |
+ wget_output=$(wget -q "$CERT_MANAGER_CLUSTERIP:$CERT_MANAGER_PORT")
+ if wget_output=="wget: server returned error: HTTP/1.0 400 Bad Request"
+ then exit 0
+ else exit 1
+ fi
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
+ restartPolicy: Never
+ nodeSelector:
+ kubernetes.io/os: linux
+ securityContext:
+ fsGroup: 65532
+ runAsGroup: 65532
+ runAsNonRoot: true
+ runAsUser: 65532
diff --git a/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/opentelemetry-operator/tests/test-service-connection.yaml b/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/opentelemetry-operator/tests/test-service-connection.yaml
new file mode 100644
index 00000000..59ef1413
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/opentelemetry-operator/tests/test-service-connection.yaml
@@ -0,0 +1,106 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/tests/test-service-connection.yaml
+apiVersion: v1
+kind: Pod
+metadata:
+ name: "example-opentelemetry-operator-metrics"
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ annotations:
+ "helm.sh/hook": test
+spec:
+ containers:
+ - name: wget
+ image: "busybox:latest"
+ env:
+ - name: MANAGER_METRICS_SERVICE_CLUSTERIP
+ value: "example-opentelemetry-operator"
+ - name: MANAGER_METRICS_SERVICE_PORT
+ value: "8443"
+ command:
+ - sh
+ - -c
+ # The following shell script tests if the controller-manager-metrics-service is up.
+ # If the service is up, when we try to wget its exposed port, we will get an HTTP error 400.
+ - |
+ wget_output=$(wget -q "$MANAGER_METRICS_SERVICE_CLUSTERIP:$MANAGER_METRICS_SERVICE_PORT")
+ if wget_output=="wget: server returned error: HTTP/1.0 400 Bad Request"
+ then exit 0
+ else exit 1
+ fi
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
+ restartPolicy: Never
+ nodeSelector:
+ kubernetes.io/os: linux
+ securityContext:
+ fsGroup: 65532
+ runAsGroup: 65532
+ runAsNonRoot: true
+ runAsUser: 65532
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/tests/test-service-connection.yaml
+apiVersion: v1
+kind: Pod
+metadata:
+ name: "example-opentelemetry-operator-webhook"
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ annotations:
+ "helm.sh/hook": test
+spec:
+ containers:
+ - name: wget
+ image: "busybox:latest"
+ env:
+ - name: WEBHOOK_SERVICE_CLUSTERIP
+ value: "example-opentelemetry-operator-webhook"
+ - name: WEBHOOK_SERVICE_PORT
+ value: "443"
+ command:
+ - sh
+ - -c
+ # The following shell script tests if the webhook service is up. If the service is up, when we try
+ # to wget its exposed port, we will get an HTTP error 400.
+ - |
+ wget_output=$(wget -q "$WEBHOOK_SERVICE_CLUSTERIP:$WEBHOOK_SERVICE_PORT")
+ if wget_output=="wget: server returned error: HTTP/1.0 400 Bad Request"
+ then exit 0
+ else exit 1
+ fi
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
+ restartPolicy: Never
+ nodeSelector:
+ kubernetes.io/os: linux
+ securityContext:
+ fsGroup: 65532
+ runAsGroup: 65532
+ runAsNonRoot: true
+ runAsUser: 65532
diff --git a/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/values.yaml b/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/values.yaml
new file mode 100644
index 00000000..d9cfa850
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/values.yaml
@@ -0,0 +1,151 @@
+clusterName: demo
+collectors:
+ daemon:
+ enabled: false
+ agent:
+ enabled: true
+ config:
+ receivers:
+ otlp:
+ protocols:
+ grpc:
+ endpoint: ${env:OTEL_K8S_POD_IP}:4317
+ fullnameOverride: agent
+ mode: daemonset
+ presets:
+ logsCollection:
+ enabled: true
+ includeCollectorLogs: false
+ kubernetesAttributes:
+ enabled: true
+ kubernetesEvents:
+ enabled: true
+ gateway:
+ enabled: true
+ clusterRoleBinding:
+ enabled: false
+ config:
+ processors:
+ resource/common:
+ attributes:
+ - key: k8s.cluster.name
+ value: "{{ .clusterName }}"
+ action: insert
+ receivers:
+ otlp:
+ protocols:
+ grpc:
+ endpoint: ${env:OTEL_K8S_POD_IP}:4317
+ exporters:
+ otlp:
+ endpoint: ingest.example.com:4318
+ service:
+ pipelines:
+ logs:
+ processors:
+ - resource/common
+ metrics:
+ processors:
+ - resource/common
+ traces:
+ processors:
+ - resource/common
+ fullnameOverride: gateway
+ resources:
+ limits:
+ cpu: "1"
+ memory: 2Gi
+ requests:
+ cpu: 500m
+ memory: 1Gi
+ ingress:
+ enabled: true
+ clusterRoleBinding:
+ enabled: false
+ config:
+ extensions:
+ oidc:
+ audience: 12345678-1234-5678-1234-567812345678
+ issuer_url: >-
+ https://login.microsoftonline.com/87654321-8765-4321-8765-432187654321/v2.0
+ receivers:
+ otlp:
+ protocols:
+ http:
+ auth:
+ authenticator: oidc
+ endpoint: ${env:OTEL_K8S_POD_IP}:4318
+ service:
+ extensions:
+ - file_storage/queues
+ - oidc
+ fullnameOverride: ingress
+defaultCRConfig:
+ enabled: true
+ affinity:
+ podAntiAffinity:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ - podAffinityTerm:
+ labelSelector:
+ matchLabels:
+ app.kubernetes.io/component: opentelemetry-collector
+ app.kubernetes.io/instance: "{{ .namespace }}.{{ include \"opentelemetry-kube-stack.collectorFullname\" . }}"
+ topologyKey: kubernetes.io/hostname
+ weight: 100
+ config:
+ exporters:
+ otlp:
+ endpoint: gateway-collector.{{ .namespace }}.svc:4317
+ sending_queue:
+ storage: file_storage/queues
+ tls:
+ insecure: true
+ extensions:
+ file_storage/queues:
+ create_directory: true
+ directory: /var/lib/otelcol/{{ include "opentelemetry-kube-stack.collectorFullname" . }}/queues
+ service:
+ extensions:
+ - file_storage/queues
+ pipelines:
+ logs:
+ exporters:
+ - otlp
+ receivers:
+ - otlp
+ metrics:
+ exporters:
+ - otlp
+ receivers:
+ - otlp
+ traces:
+ exporters:
+ - otlp
+ receivers:
+ - otlp
+ resources:
+ limits:
+ cpu: 200m
+ memory: 500Mi
+ requests:
+ cpu: 100m
+ memory: 250Mi
+ scrape_configs_file: ""
+ securityContext:
+ runAsGroup: 0
+ runAsUser: 0
+ tolerations:
+ - effect: NoExecute
+ operator: Exists
+ - effect: NoSchedule
+ operator: Exists
+ - effect: PreferNoSchedule
+ operator: Exists
+ volumeMounts:
+ - mountPath: /var/lib/otelcol/{{ include "opentelemetry-kube-stack.collectorFullname" . }}
+ name: varlibotelcol
+ volumes:
+ - hostPath:
+ path: /var/lib/otelcol/{{ include "opentelemetry-kube-stack.collectorFullname" . }}
+ type: DirectoryOrCreate
+ name: varlibotelcol
diff --git a/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/README.md b/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/README.md
new file mode 100644
index 00000000..b582b98c
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/README.md
@@ -0,0 +1,5 @@
+# No leader election extension example
+This example contains files to allow a user to use 2 different collectors to monitor the cluster metrics and k8s api info when leader election extension is not an option (because the collector compillation doesn't include it or because of RBAC limitations).
+This can be done configuring a second collector to host the receivers and setting `disableLeaderElection: true` for `kubernetesEvents` and `clusterMetrics` presets.
+
+**Disclaimer**: This setup is functional but k8s API metrics and events receivers **ARE NOT in a High Availability** configuration as both run as part of a second collector deployed as `deployment` with single replica to avoid the necessity of using leader election in any way.
\ No newline at end of file
diff --git a/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/clusterrole.yaml b/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/clusterrole.yaml
new file mode 100644
index 00000000..ba20b50e
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/clusterrole.yaml
@@ -0,0 +1,143 @@
+---
+# Source: opentelemetry-kube-stack/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ name: example-collector
+rules:
+- apiGroups: [""]
+ resources:
+ - namespaces
+ - nodes
+ - nodes/proxy
+ - nodes/metrics
+ - nodes/stats
+ - services
+ - endpoints
+ - pods
+ - events
+ - secrets
+ - persistentvolumeclaims
+ - persistentvolumes
+ verbs: ["get", "list", "watch"]
+- apiGroups: ["monitoring.coreos.com"]
+ resources:
+ - servicemonitors
+ - podmonitors
+ - scrapeconfigs
+ - probes
+ verbs: ["get", "list", "watch"]
+- apiGroups:
+ - extensions
+ resources:
+ - ingresses
+ verbs: ["get", "list", "watch"]
+- apiGroups:
+ - apps
+ resources:
+ - daemonsets
+ - deployments
+ - replicasets
+ - statefulsets
+ verbs: ["get", "list", "watch"]
+- apiGroups:
+ - networking.k8s.io
+ resources:
+ - ingresses
+ verbs: ["get", "list", "watch"]
+- apiGroups: ["discovery.k8s.io"]
+ resources:
+ - endpointslices
+ verbs: ["get", "list", "watch"]
+- nonResourceURLs: ["/metrics", "/metrics/cadvisor"]
+ verbs: ["get"]
+
+- apiGroups:
+ - ""
+ resources:
+ - events
+ - namespaces
+ - namespaces/status
+ - nodes
+ - nodes/spec
+ - pods
+ - pods/status
+ - replicationcontrollers
+ - replicationcontrollers/status
+ - resourcequotas
+ - services
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups:
+ - apps
+ resources:
+ - daemonsets
+ - deployments
+ - replicasets
+ - statefulsets
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups:
+ - extensions
+ resources:
+ - daemonsets
+ - deployments
+ - replicasets
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups:
+ - batch
+ resources:
+ - jobs
+ - cronjobs
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups:
+ - autoscaling
+ resources:
+ - horizontalpodautoscalers
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups: ["events.k8s.io"]
+ resources: ["events"]
+ verbs: ["watch", "list"]
+---
+# Source: opentelemetry-kube-stack/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ name: example-cluster-stats
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: example-collector
+subjects:
+- kind: ServiceAccount
+ # quirk of the Operator
+ name: "example-cluster-stats-collector"
+ namespace: default
+---
+# Source: opentelemetry-kube-stack/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ name: example-daemon
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: example-collector
+subjects:
+- kind: ServiceAccount
+ # quirk of the Operator
+ name: "example-daemon-collector"
+ namespace: default
diff --git a/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/collector.yaml b/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/collector.yaml
new file mode 100644
index 00000000..243a253c
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/collector.yaml
@@ -0,0 +1,646 @@
+---
+# Source: opentelemetry-kube-stack/templates/collector.yaml
+apiVersion: opentelemetry.io/v1beta1
+kind: OpenTelemetryCollector
+metadata:
+ name: example-cluster-stats
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-kube-stack-0.14.11
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ release: "example"
+spec:
+ managementState: managed
+ mode: deployment
+ config:
+ exporters:
+ debug: {}
+ processors:
+ batch:
+ send_batch_max_size: 1500
+ send_batch_size: 1000
+ timeout: 1s
+ k8sattributes:
+ extract:
+ labels:
+ - from: pod
+ key: app.kubernetes.io/instance
+ tag_name: k8s.app.instance
+ - from: pod
+ key: app.kubernetes.io/component
+ tag_name: k8s.app.component
+ metadata:
+ - k8s.namespace.name
+ - k8s.pod.name
+ - k8s.pod.uid
+ - k8s.node.name
+ - k8s.pod.start_time
+ - k8s.deployment.name
+ - k8s.replicaset.name
+ - k8s.replicaset.uid
+ - k8s.daemonset.name
+ - k8s.daemonset.uid
+ - k8s.job.name
+ - k8s.job.uid
+ - k8s.container.name
+ - k8s.cronjob.name
+ - k8s.statefulset.name
+ - k8s.statefulset.uid
+ - container.image.tag
+ - container.image.name
+ - k8s.cluster.uid
+ - service.namespace
+ - service.name
+ - service.version
+ - service.instance.id
+ otel_annotations: true
+ passthrough: false
+ pod_association:
+ - sources:
+ - from: resource_attribute
+ name: k8s.pod.uid
+ - sources:
+ - from: resource_attribute
+ name: k8s.pod.name
+ - from: resource_attribute
+ name: k8s.namespace.name
+ - from: resource_attribute
+ name: k8s.node.name
+ - sources:
+ - from: resource_attribute
+ name: k8s.pod.ip
+ - sources:
+ - from: resource_attribute
+ name: k8s.pod.name
+ - from: resource_attribute
+ name: k8s.namespace.name
+ - sources:
+ - from: connection
+ resourcedetection/env:
+ detectors:
+ - env
+ override: false
+ timeout: 2s
+ receivers:
+ k8s_cluster:
+ allocatable_types_to_report:
+ - cpu
+ - memory
+ - storage
+ auth_type: serviceAccount
+ collection_interval: 10s
+ node_conditions_to_report:
+ - Ready
+ - MemoryPressure
+ - DiskPressure
+ - NetworkUnavailable
+ k8sobjects:
+ objects:
+ - exclude_watch_type:
+ - DELETED
+ group: events.k8s.io
+ mode: watch
+ name: events
+ service:
+ pipelines:
+ logs:
+ exporters:
+ - debug
+ processors:
+ - k8sattributes
+ - resourcedetection/env
+ - batch
+ receivers:
+ - k8sobjects
+ metrics:
+ exporters:
+ - debug
+ processors:
+ - k8sattributes
+ - resourcedetection/env
+ - batch
+ receivers:
+ - k8s_cluster
+ replicas: 1
+ imagePullPolicy: IfNotPresent
+ upgradeStrategy: automatic
+ terminationGracePeriodSeconds: 30
+ resources:
+ limits:
+ cpu: 200m
+ memory: 500Mi
+ requests:
+ cpu: 100m
+ memory: 250Mi
+ securityContext:
+ {}
+ env:
+ - name: K8S_NODE_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: spec.nodeName
+ - name: OTEL_K8S_NODE_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: spec.nodeName
+ - name: OTEL_K8S_NODE_IP
+ valueFrom:
+ fieldRef:
+ fieldPath: status.hostIP
+ - name: OTEL_K8S_NAMESPACE
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.namespace
+ - name: OTEL_K8S_POD_NAME
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.name
+ - name: OTEL_K8S_POD_IP
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: status.podIP
+ - name: OTEL_RESOURCE_ATTRIBUTES
+ value: "k8s.pod.name=$(OTEL_K8S_POD_NAME),k8s.namespace.name=$(OTEL_K8S_NAMESPACE),k8s.node.name=$(OTEL_K8S_NODE_NAME),host.name=$(OTEL_K8S_NODE_NAME),k8s.node.ip=$(OTEL_K8S_NODE_IP),k8s.pod.ip=$(OTEL_K8S_POD_IP),k8s.cluster.name=unknown_k8s_cluster"
+---
+# Source: opentelemetry-kube-stack/templates/collector.yaml
+apiVersion: opentelemetry.io/v1beta1
+kind: OpenTelemetryCollector
+metadata:
+ name: example-daemon
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-kube-stack-0.14.11
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ release: "example"
+spec:
+ managementState: managed
+ mode: daemonset
+ config:
+ exporters:
+ debug: {}
+ processors:
+ batch:
+ send_batch_max_size: 1500
+ send_batch_size: 1000
+ timeout: 1s
+ k8sattributes:
+ extract:
+ labels:
+ - from: pod
+ key: app.kubernetes.io/instance
+ tag_name: k8s.app.instance
+ - from: pod
+ key: app.kubernetes.io/component
+ tag_name: k8s.app.component
+ metadata:
+ - k8s.namespace.name
+ - k8s.pod.name
+ - k8s.pod.uid
+ - k8s.node.name
+ - k8s.pod.start_time
+ - k8s.deployment.name
+ - k8s.replicaset.name
+ - k8s.replicaset.uid
+ - k8s.daemonset.name
+ - k8s.daemonset.uid
+ - k8s.job.name
+ - k8s.job.uid
+ - k8s.container.name
+ - k8s.cronjob.name
+ - k8s.statefulset.name
+ - k8s.statefulset.uid
+ - container.image.tag
+ - container.image.name
+ - k8s.cluster.uid
+ - service.namespace
+ - service.name
+ - service.version
+ - service.instance.id
+ otel_annotations: true
+ filter:
+ node_from_env_var: OTEL_K8S_NODE_NAME
+ passthrough: false
+ pod_association:
+ - sources:
+ - from: resource_attribute
+ name: k8s.pod.uid
+ - sources:
+ - from: resource_attribute
+ name: k8s.pod.name
+ - from: resource_attribute
+ name: k8s.namespace.name
+ - from: resource_attribute
+ name: k8s.node.name
+ - sources:
+ - from: resource_attribute
+ name: k8s.pod.ip
+ - sources:
+ - from: resource_attribute
+ name: k8s.pod.name
+ - from: resource_attribute
+ name: k8s.namespace.name
+ - sources:
+ - from: connection
+ resource/hostname:
+ attributes:
+ - action: insert
+ from_attribute: k8s.node.name
+ key: host.name
+ resourcedetection/env:
+ detectors:
+ - env
+ - k8snode
+ override: false
+ timeout: 2s
+ receivers:
+ filelog:
+ exclude: []
+ include:
+ - /var/log/pods/*/*/*.log
+ include_file_name: false
+ include_file_path: true
+ operators:
+ - id: container-parser
+ max_log_size: 102400
+ type: container
+ retry_on_failure:
+ enabled: true
+ start_at: end
+ hostmetrics:
+ collection_interval: 10s
+ root_path: /hostfs
+ scrapers:
+ cpu:
+ metrics:
+ system.cpu.logical.count:
+ enabled: true
+ system.cpu.utilization:
+ enabled: true
+ disk: {}
+ filesystem:
+ exclude_fs_types:
+ fs_types:
+ - autofs
+ - binfmt_misc
+ - bpf
+ - cgroup2
+ - configfs
+ - debugfs
+ - devpts
+ - devtmpfs
+ - fusectl
+ - hugetlbfs
+ - iso9660
+ - mqueue
+ - nsfs
+ - overlay
+ - proc
+ - procfs
+ - pstore
+ - rpc_pipefs
+ - securityfs
+ - selinuxfs
+ - squashfs
+ - sysfs
+ - tracefs
+ match_type: strict
+ exclude_mount_points:
+ match_type: regexp
+ mount_points:
+ - /dev/*
+ - /proc/*
+ - /sys/*
+ - /run/k3s/containerd/*
+ - /var/lib/docker/*
+ - /var/lib/kubelet/*
+ - /snap/*
+ metrics:
+ system.filesystem.utilization:
+ enabled: true
+ load: {}
+ memory:
+ metrics:
+ system.memory.limit:
+ enabled: true
+ system.memory.utilization:
+ enabled: true
+ network: {}
+ paging:
+ metrics:
+ system.paging.usage:
+ enabled: true
+ system:
+ metrics:
+ system.uptime:
+ enabled: true
+ kubeletstats:
+ auth_type: serviceAccount
+ collection_interval: 15s
+ endpoint: https://${env:OTEL_K8S_NODE_IP}:10250
+ extra_metadata_labels:
+ - container.id
+ - k8s.volume.type
+ insecure_skip_verify: true
+ k8s_api_config:
+ auth_type: serviceAccount
+ metric_groups:
+ - node
+ - pod
+ - volume
+ - container
+ metrics:
+ container.cpu.usage:
+ enabled: true
+ k8s.node.cpu.usage:
+ enabled: true
+ k8s.node.uptime:
+ enabled: true
+ k8s.pod.cpu.usage:
+ enabled: true
+ k8s.pod.uptime:
+ enabled: true
+ otlp:
+ protocols:
+ grpc:
+ endpoint: 0.0.0.0:4317
+ http:
+ endpoint: 0.0.0.0:4318
+ prometheus:
+ config:
+ scrape_configs:
+ - job_name: kubernetes-pods
+ kubernetes_sd_configs:
+ - role: pod
+ selectors:
+ - field: spec.nodeName=${env:OTEL_K8S_NODE_NAME}
+ role: pod
+ relabel_configs:
+ - action: keep
+ regex: true
+ source_labels:
+ - __meta_kubernetes_pod_annotation_prometheus_io_scrape
+ - action: drop
+ regex: true
+ source_labels:
+ - __meta_kubernetes_pod_annotation_prometheus_io_scrape_slow
+ - action: replace
+ regex: (https?)
+ source_labels:
+ - __meta_kubernetes_pod_annotation_prometheus_io_scheme
+ target_label: __scheme__
+ - action: replace
+ regex: (.+)
+ source_labels:
+ - __meta_kubernetes_pod_annotation_prometheus_io_path
+ target_label: __metrics_path__
+ - action: replace
+ regex: ([^:]+)(?::\d+)?;(\d+)
+ replacement: $$1:$$2
+ source_labels:
+ - __address__
+ - __meta_kubernetes_pod_annotation_prometheus_io_port
+ target_label: __address__
+ - action: labelmap
+ regex: __meta_kubernetes_pod_annotation_prometheus_io_param_(.+)
+ replacement: __param_$$1
+ - action: labelmap
+ regex: __meta_kubernetes_pod_label_(.+)
+ - action: replace
+ source_labels:
+ - __meta_kubernetes_namespace
+ target_label: namespace
+ - action: replace
+ source_labels:
+ - __meta_kubernetes_pod_name
+ target_label: pod
+ - action: drop
+ regex: Pending|Succeeded|Failed|Completed
+ source_labels:
+ - __meta_kubernetes_pod_phase
+ - action: replace
+ source_labels:
+ - __meta_kubernetes_pod_label_app_kubernetes_io_name
+ target_label: job
+ scrape_interval: 30s
+ - job_name: node-exporter
+ relabel_configs:
+ - action: labelmap
+ regex: __meta_kubernetes_node_label_(.+)
+ - action: replace
+ regex: (.*)
+ replacement: $$1
+ separator: ;
+ source_labels:
+ - job
+ target_label: __tmp_prometheus_job_name
+ scrape_interval: 30s
+ static_configs:
+ - targets:
+ - ${env:OTEL_K8S_NODE_IP}:9100
+ - authorization:
+ credentials_file: /var/run/secrets/kubernetes.io/serviceaccount/token
+ type: Bearer
+ follow_redirects: true
+ honor_labels: true
+ honor_timestamps: true
+ job_name: kubelet
+ kubernetes_sd_configs:
+ - follow_redirects: true
+ role: node
+ selectors:
+ - field: metadata.name=${env:OTEL_K8S_NODE_NAME}
+ role: node
+ metric_relabel_configs:
+ - action: drop
+ regex: container_cpu_(load_average_10s|system_seconds_total|user_seconds_total)
+ replacement: $$1
+ separator: ;
+ source_labels:
+ - __name__
+ - action: drop
+ regex: container_fs_(io_current|reads_merged_total|sector_reads_total|sector_writes_total|writes_merged_total)
+ replacement: $$1
+ separator: ;
+ source_labels:
+ - __name__
+ - action: drop
+ regex: container_memory_(mapped_file|swap)
+ replacement: $$1
+ separator: ;
+ source_labels:
+ - __name__
+ - action: drop
+ regex: container_(file_descriptors|tasks_state|threads_max)
+ replacement: $$1
+ separator: ;
+ source_labels:
+ - __name__
+ - action: drop
+ regex: container_spec.*
+ replacement: $$1
+ separator: ;
+ source_labels:
+ - __name__
+ - action: drop
+ regex: .+;
+ replacement: $$1
+ separator: ;
+ source_labels:
+ - id
+ - pod
+ metrics_path: /metrics/cadvisor
+ relabel_configs:
+ - action: replace
+ regex: (.*)
+ replacement: $$1
+ separator: ;
+ source_labels:
+ - job
+ target_label: __tmp_prometheus_job_name
+ - action: replace
+ replacement: kubelet
+ target_label: job
+ - action: replace
+ regex: (.*)
+ replacement: $$1
+ separator: ;
+ source_labels:
+ - __meta_kubernetes_node_name
+ target_label: node
+ - action: replace
+ regex: (.*)
+ replacement: https-metrics
+ separator: ;
+ target_label: endpoint
+ - action: replace
+ regex: (.*)
+ replacement: $$1
+ separator: ;
+ source_labels:
+ - __metrics_path__
+ target_label: metrics_path
+ - action: hashmod
+ modulus: 1
+ regex: (.*)
+ replacement: $$1
+ separator: ;
+ source_labels:
+ - __address__
+ target_label: __tmp_hash
+ - action: keep
+ regex: $(SHARD)
+ replacement: $$1
+ separator: ;
+ source_labels:
+ - __tmp_hash
+ scheme: https
+ scrape_interval: 15s
+ scrape_timeout: 10s
+ tls_config:
+ ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
+ insecure_skip_verify: true
+ service:
+ pipelines:
+ logs:
+ exporters:
+ - debug
+ processors:
+ - k8sattributes
+ - resourcedetection/env
+ - resource/hostname
+ - batch
+ receivers:
+ - otlp
+ - filelog
+ metrics:
+ exporters:
+ - debug
+ processors:
+ - k8sattributes
+ - resourcedetection/env
+ - resource/hostname
+ - batch
+ receivers:
+ - prometheus
+ - otlp
+ - hostmetrics
+ - kubeletstats
+ traces:
+ exporters:
+ - debug
+ processors:
+ - k8sattributes
+ - resourcedetection/env
+ - resource/hostname
+ - batch
+ receivers:
+ - otlp
+ imagePullPolicy: IfNotPresent
+ upgradeStrategy: automatic
+ terminationGracePeriodSeconds: 30
+ resources:
+ limits:
+ cpu: 200m
+ memory: 500Mi
+ requests:
+ cpu: 100m
+ memory: 250Mi
+ securityContext:
+ {}
+ volumeMounts:
+ - name: varlogpods
+ mountPath: /var/log/pods
+ readOnly: true
+ - name: varlibdockercontainers
+ mountPath: /var/lib/docker/containers
+ readOnly: true
+ - name: hostfs
+ mountPath: /hostfs
+ readOnly: true
+ mountPropagation: HostToContainer
+ env:
+ - name: K8S_NODE_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: spec.nodeName
+ - name: OTEL_K8S_NODE_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: spec.nodeName
+ - name: OTEL_K8S_NODE_IP
+ valueFrom:
+ fieldRef:
+ fieldPath: status.hostIP
+ - name: OTEL_K8S_NAMESPACE
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.namespace
+ - name: OTEL_K8S_POD_NAME
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.name
+ - name: OTEL_K8S_POD_IP
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: status.podIP
+ - name: OTEL_RESOURCE_ATTRIBUTES
+ value: "k8s.pod.name=$(OTEL_K8S_POD_NAME),k8s.namespace.name=$(OTEL_K8S_NAMESPACE),k8s.node.name=$(OTEL_K8S_NODE_NAME),host.name=$(OTEL_K8S_NODE_NAME),k8s.node.ip=$(OTEL_K8S_NODE_IP),k8s.pod.ip=$(OTEL_K8S_POD_IP),k8s.cluster.name=unknown_k8s_cluster"
+
+ volumes:
+ - name: varlogpods
+ hostPath:
+ path: /var/log/pods
+ - name: varlibdockercontainers
+ hostPath:
+ path: /var/lib/docker/containers
+ - name: hostfs
+ hostPath:
+ path: /
diff --git a/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/hooks.yaml b/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/hooks.yaml
new file mode 100644
index 00000000..f528b802
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/hooks.yaml
@@ -0,0 +1,64 @@
+---
+# Source: opentelemetry-kube-stack/templates/hooks.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: delete-resources-sa
+ annotations:
+ "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
+---
+# Source: opentelemetry-kube-stack/templates/hooks.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: Role
+metadata:
+ name: delete-resources-role
+ annotations:
+ "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
+rules:
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - instrumentations
+ - opampbridges
+ - opentelemetrycollectors
+ verbs:
+ - get
+ - list
+ - delete
+---
+# Source: opentelemetry-kube-stack/templates/hooks.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: RoleBinding
+metadata:
+ name: delete-resources-rolebinding
+ annotations:
+ "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: Role
+ name: delete-resources-role
+subjects:
+ - kind: ServiceAccount
+ name: delete-resources-sa
+---
+# Source: opentelemetry-kube-stack/templates/hooks.yaml
+apiVersion: batch/v1
+kind: Job
+metadata:
+ name: opentelemetry-kube-stack-pre-delete-job
+ annotations:
+ "helm.sh/hook": pre-delete
+ "helm.sh/hook-delete-policy": hook-succeeded,hook-failed
+spec:
+ template:
+ spec:
+ restartPolicy: Never
+ serviceAccountName: delete-resources-sa
+ containers:
+ - name: delete-resources
+ image: "rancher/kubectl:v1.34.1"
+ args:
+ - "delete"
+ - "instrumentations,opampbridges,opentelemetrycollectors"
+ - "-l"
+ - "helm.sh/chart=opentelemetry-kube-stack-0.14.11"
diff --git a/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/opentelemetry-operator/admission-webhooks/operator-webhook-with-cert-manager.yaml b/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/opentelemetry-operator/admission-webhooks/operator-webhook-with-cert-manager.yaml
new file mode 100644
index 00000000..1b4f51a7
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/opentelemetry-operator/admission-webhooks/operator-webhook-with-cert-manager.yaml
@@ -0,0 +1,192 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/admission-webhooks/operator-webhook-with-cert-manager.yaml
+apiVersion: admissionregistration.k8s.io/v1
+kind: MutatingWebhookConfiguration
+metadata:
+ annotations:
+ cert-manager.io/inject-ca-from: default/example-opentelemetry-operator-serving-cert
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ name: example-opentelemetry-operator-mutation
+webhooks:
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /mutate-opentelemetry-io-v1alpha1-instrumentation
+ port: 443
+ failurePolicy: Ignore
+ name: minstrumentation.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1alpha1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - instrumentations
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /mutate-opentelemetry-io-v1beta1-opentelemetrycollector
+ port: 443
+ failurePolicy: Ignore
+ name: mopentelemetrycollectorbeta.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1beta1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - opentelemetrycollectors
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /mutate-v1-pod
+ port: 443
+ failurePolicy: Ignore
+ name: mpod.kb.io
+ rules:
+ - apiGroups:
+ - ""
+ apiVersions:
+ - v1
+ operations:
+ - CREATE
+ resources:
+ - pods
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/admission-webhooks/operator-webhook-with-cert-manager.yaml
+apiVersion: admissionregistration.k8s.io/v1
+kind: ValidatingWebhookConfiguration
+metadata:
+ annotations:
+ cert-manager.io/inject-ca-from: default/example-opentelemetry-operator-serving-cert
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ name: example-opentelemetry-operator-validation
+webhooks:
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /validate-opentelemetry-io-v1alpha1-instrumentation
+ port: 443
+ failurePolicy: Ignore
+ name: vinstrumentationcreateupdate.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1alpha1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - instrumentations
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /validate-opentelemetry-io-v1alpha1-instrumentation
+ port: 443
+ failurePolicy: Ignore
+ name: vinstrumentationdelete.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1alpha1
+ operations:
+ - DELETE
+ resources:
+ - instrumentations
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /validate-opentelemetry-io-v1beta1-opentelemetrycollector
+ port: 443
+ failurePolicy: Ignore
+ name: vopentelemetrycollectorcreateupdatebeta.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1beta1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - opentelemetrycollectors
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /validate-opentelemetry-io-v1beta1-opentelemetrycollector
+ port: 443
+ failurePolicy: Ignore
+ name: vopentelemetrycollectordeletebeta.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1beta1
+ operations:
+ - DELETE
+ resources:
+ - opentelemetrycollectors
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
diff --git a/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/opentelemetry-operator/admission-webhooks/operator-webhook.yaml b/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/opentelemetry-operator/admission-webhooks/operator-webhook.yaml
new file mode 100644
index 00000000..5b9ff551
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/opentelemetry-operator/admission-webhooks/operator-webhook.yaml
@@ -0,0 +1,3 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/admission-webhooks/operator-webhook.yaml
+---
diff --git a/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/opentelemetry-operator/certmanager.yaml b/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/opentelemetry-operator/certmanager.yaml
new file mode 100644
index 00000000..a8922eee
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/opentelemetry-operator/certmanager.yaml
@@ -0,0 +1,43 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/certmanager.yaml
+apiVersion: cert-manager.io/v1
+kind: Certificate
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ name: example-opentelemetry-operator-serving-cert
+ namespace: default
+spec:
+ dnsNames:
+ - example-opentelemetry-operator-webhook.default.svc
+ - example-opentelemetry-operator-webhook.default.svc.cluster.local
+ issuerRef:
+ kind: Issuer
+ name: example-opentelemetry-operator-selfsigned-issuer
+ secretName: example-opentelemetry-operator-controller-manager-service-cert
+ subject:
+ organizationalUnits:
+ - example-opentelemetry-operator
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/certmanager.yaml
+apiVersion: cert-manager.io/v1
+kind: Issuer
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ name: example-opentelemetry-operator-selfsigned-issuer
+ namespace: default
+spec:
+ selfSigned: {}
diff --git a/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/opentelemetry-operator/clusterrole.yaml b/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/opentelemetry-operator/clusterrole.yaml
new file mode 100644
index 00000000..4ae76fec
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/opentelemetry-operator/clusterrole.yaml
@@ -0,0 +1,402 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-manager
+rules:
+ - apiGroups:
+ - ""
+ resources:
+ - configmaps
+ - persistentvolumeclaims
+ - persistentvolumes
+ - pods
+ - serviceaccounts
+ - services
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - events
+ verbs:
+ - create
+ - get
+ - list
+ - patch
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - namespaces
+ verbs:
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - namespaces/status
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - nodes/spec
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - pods/status
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - replicationcontrollers
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - replicationcontrollers/status
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - resourcequotas
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - apps
+ resources:
+ - daemonsets
+ - deployments
+ - statefulsets
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - apps
+ - extensions
+ resources:
+ - replicasets
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - extensions
+ resources:
+ - daemonsets
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - extensions
+ resources:
+ - deployments
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - autoscaling
+ resources:
+ - horizontalpodautoscalers
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - batch
+ resources:
+ - jobs
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - batch
+ resources:
+ - cronjobs
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - nodes/proxy
+ verbs:
+ - get
+ - apiGroups:
+ - ""
+ resources:
+ - nodes/stats
+ verbs:
+ - get
+ - apiGroups:
+ - config.openshift.io
+ resources:
+ - infrastructures
+ - infrastructures/status
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - coordination.k8s.io
+ resources:
+ - leases
+ verbs:
+ - create
+ - get
+ - list
+ - update
+ - apiGroups:
+ - events.k8s.io
+ resources:
+ - events
+ verbs:
+ - list
+ - watch
+ - apiGroups:
+ - monitoring.coreos.com
+ resources:
+ - podmonitors
+ - servicemonitors
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - networking.k8s.io
+ resources:
+ - ingresses
+ - networkpolicies
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - instrumentations
+ verbs:
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges/finalizers
+ verbs:
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges/status
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opentelemetrycollectors
+ verbs:
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opentelemetrycollectors/finalizers
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opentelemetrycollectors/status
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - policy
+ resources:
+ - poddisruptionbudgets
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - route.openshift.io
+ resources:
+ - routes
+ - routes/custom-host
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - targetallocators
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - targetallocators/status
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - targetallocators/finalizers
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - cert-manager.io
+ resources:
+ - issuers
+ - certificaterequests
+ - certificates
+ verbs:
+ - create
+ - get
+ - list
+ - watch
+ - update
+ - patch
+ - delete
+ - apiGroups:
+ - authorization.k8s.io
+ resources:
+ - subjectaccessreviews
+ verbs:
+ - create
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-metrics
+rules:
+ - nonResourceURLs:
+ - /metrics
+ verbs:
+ - get
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-proxy
+rules:
+ - apiGroups:
+ - authentication.k8s.io
+ resources:
+ - tokenreviews
+ verbs:
+ - create
diff --git a/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/opentelemetry-operator/clusterrolebinding.yaml b/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/opentelemetry-operator/clusterrolebinding.yaml
new file mode 100644
index 00000000..831b2df7
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/opentelemetry-operator/clusterrolebinding.yaml
@@ -0,0 +1,44 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrolebinding.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-manager
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: example-opentelemetry-operator-manager
+subjects:
+ - kind: ServiceAccount
+ name: opentelemetry-operator
+ namespace: default
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrolebinding.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-proxy
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: example-opentelemetry-operator-proxy
+subjects:
+ - kind: ServiceAccount
+ name: opentelemetry-operator
+ namespace: default
diff --git a/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/opentelemetry-operator/deployment.yaml b/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/opentelemetry-operator/deployment.yaml
new file mode 100644
index 00000000..ca0ddf47
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/opentelemetry-operator/deployment.yaml
@@ -0,0 +1,122 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/deployment.yaml
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator
+ namespace: default
+spec:
+ replicas: 1
+ revisionHistoryLimit: 10
+ selector:
+ matchLabels:
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/component: controller-manager
+ template:
+ metadata:
+ annotations:
+ kubectl.kubernetes.io/default-container: manager
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ spec:
+ automountServiceAccountToken: true
+ hostNetwork: false
+ containers:
+ - args:
+ - --metrics-addr=0.0.0.0:8080
+ - --enable-leader-election
+ - --health-probe-addr=:8081
+ - --webhook-port=9443
+ - --collector-image=otel/opentelemetry-collector-k8s:0.144.0
+ command:
+ - /manager
+ env:
+ - name: SERVICE_ACCOUNT_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: spec.serviceAccountName
+ - name: ENABLE_WEBHOOKS
+ value: "true"
+ image: "ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator:0.144.0"
+ name: manager
+ imagePullPolicy: IfNotPresent
+ ports:
+ - containerPort: 8080
+ name: metrics
+ protocol: TCP
+ - containerPort: 9443
+ name: webhook-server
+ protocol: TCP
+ livenessProbe:
+ httpGet:
+ path: /healthz
+ port: 8081
+ initialDelaySeconds: 15
+ periodSeconds: 20
+ readinessProbe:
+ httpGet:
+ path: /readyz
+ port: 8081
+ initialDelaySeconds: 5
+ periodSeconds: 10
+ resources:
+ {}
+ volumeMounts:
+ - mountPath: /tmp/k8s-webhook-server/serving-certs
+ name: cert
+ readOnly: true
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
+
+ - args:
+ - --secure-listen-address=0.0.0.0:8443
+ - --upstream=http://127.0.0.1:8080/
+ - --v=0
+ image: "quay.io/brancz/kube-rbac-proxy:v0.20.0"
+ name: kube-rbac-proxy
+ ports:
+ - containerPort: 8443
+ name: https
+ protocol: TCP
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
+ nodeSelector:
+ kubernetes.io/os: linux
+ serviceAccountName: opentelemetry-operator
+ terminationGracePeriodSeconds: 10
+ volumes:
+ - name: cert
+ secret:
+ defaultMode: 420
+ secretName: example-opentelemetry-operator-controller-manager-service-cert
+ securityContext:
+ fsGroup: 65532
+ runAsGroup: 65532
+ runAsNonRoot: true
+ runAsUser: 65532
diff --git a/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/opentelemetry-operator/role.yaml b/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/opentelemetry-operator/role.yaml
new file mode 100644
index 00000000..88ccd2b0
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/opentelemetry-operator/role.yaml
@@ -0,0 +1,199 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/role.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: Role
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-leader-election
+ namespace: default
+rules:
+ - apiGroups:
+ - ""
+ resources:
+ - configmaps
+ - pods
+ - serviceaccounts
+ - services
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - events
+ verbs:
+ - create
+ - patch
+ - apiGroups:
+ - ""
+ resources:
+ - namespaces
+ - secrets
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - apps
+ resources:
+ - daemonsets
+ - deployments
+ - statefulsets
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - apps
+ resources:
+ - replicasets
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - autoscaling
+ resources:
+ - horizontalpodautoscalers
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - batch
+ resources:
+ - jobs
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - config.openshift.io
+ resources:
+ - infrastructures
+ - infrastructures/status
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - coordination.k8s.io
+ resources:
+ - leases
+ verbs:
+ - create
+ - get
+ - list
+ - update
+ - apiGroups:
+ - monitoring.coreos.com
+ resources:
+ - podmonitors
+ - servicemonitors
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - networking.k8s.io
+ resources:
+ - ingresses
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - instrumentations
+ - opentelemetrycollectors
+ verbs:
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges
+ - targetallocators
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges/finalizers
+ verbs:
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges/status
+ - opentelemetrycollectors/finalizers
+ - opentelemetrycollectors/status
+ - targetallocators/status
+ - targetallocators/finalizers
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - policy
+ resources:
+ - poddisruptionbudgets
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - route.openshift.io
+ resources:
+ - routes
+ - routes/custom-host
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
diff --git a/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/opentelemetry-operator/rolebinding.yaml b/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/opentelemetry-operator/rolebinding.yaml
new file mode 100644
index 00000000..fa556fae
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/opentelemetry-operator/rolebinding.yaml
@@ -0,0 +1,23 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/rolebinding.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: RoleBinding
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-leader-election
+ namespace: default
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: Role
+ name: example-opentelemetry-operator-leader-election
+subjects:
+ - kind: ServiceAccount
+ name: opentelemetry-operator
+ namespace: default
diff --git a/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/opentelemetry-operator/service.yaml b/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/opentelemetry-operator/service.yaml
new file mode 100644
index 00000000..9f7f7220
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/opentelemetry-operator/service.yaml
@@ -0,0 +1,51 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/service.yaml
+apiVersion: v1
+kind: Service
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator
+ namespace: default
+spec:
+ ports:
+ - name: https
+ port: 8443
+ protocol: TCP
+ targetPort: https
+ - name: metrics
+ port: 8080
+ protocol: TCP
+ targetPort: metrics
+ selector:
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/component: controller-manager
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/service.yaml
+apiVersion: v1
+kind: Service
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+spec:
+ ports:
+ - port: 443
+ protocol: TCP
+ targetPort: webhook-server
+ selector:
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/component: controller-manager
diff --git a/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/opentelemetry-operator/serviceaccount.yaml b/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/opentelemetry-operator/serviceaccount.yaml
new file mode 100644
index 00000000..f49d54b3
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/opentelemetry-operator/serviceaccount.yaml
@@ -0,0 +1,16 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+automountServiceAccountToken: true
+metadata:
+ name: opentelemetry-operator
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
diff --git a/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/opentelemetry-operator/tests/test-certmanager-connection.yaml b/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/opentelemetry-operator/tests/test-certmanager-connection.yaml
new file mode 100644
index 00000000..8c13f151
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/opentelemetry-operator/tests/test-certmanager-connection.yaml
@@ -0,0 +1,53 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/tests/test-certmanager-connection.yaml
+apiVersion: v1
+kind: Pod
+metadata:
+ name: "example-opentelemetry-operator-cert-manager"
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ annotations:
+ "helm.sh/hook": test
+spec:
+ containers:
+ - name: wget
+ image: "busybox:latest"
+ env:
+ - name: CERT_MANAGER_CLUSTERIP
+ value: "cert-manager-webhook"
+ - name: CERT_MANAGER_PORT
+ value: "443"
+ command:
+ - sh
+ - -c
+ # The following shell script tests if the cert-manager service is up. If the service is up, when we try
+ # to wget its exposed port, we will get an HTTP error 400.
+ - |
+ wget_output=$(wget -q "$CERT_MANAGER_CLUSTERIP:$CERT_MANAGER_PORT")
+ if wget_output=="wget: server returned error: HTTP/1.0 400 Bad Request"
+ then exit 0
+ else exit 1
+ fi
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
+ restartPolicy: Never
+ nodeSelector:
+ kubernetes.io/os: linux
+ securityContext:
+ fsGroup: 65532
+ runAsGroup: 65532
+ runAsNonRoot: true
+ runAsUser: 65532
diff --git a/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/opentelemetry-operator/tests/test-service-connection.yaml b/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/opentelemetry-operator/tests/test-service-connection.yaml
new file mode 100644
index 00000000..59ef1413
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/opentelemetry-operator/tests/test-service-connection.yaml
@@ -0,0 +1,106 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/tests/test-service-connection.yaml
+apiVersion: v1
+kind: Pod
+metadata:
+ name: "example-opentelemetry-operator-metrics"
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ annotations:
+ "helm.sh/hook": test
+spec:
+ containers:
+ - name: wget
+ image: "busybox:latest"
+ env:
+ - name: MANAGER_METRICS_SERVICE_CLUSTERIP
+ value: "example-opentelemetry-operator"
+ - name: MANAGER_METRICS_SERVICE_PORT
+ value: "8443"
+ command:
+ - sh
+ - -c
+ # The following shell script tests if the controller-manager-metrics-service is up.
+ # If the service is up, when we try to wget its exposed port, we will get an HTTP error 400.
+ - |
+ wget_output=$(wget -q "$MANAGER_METRICS_SERVICE_CLUSTERIP:$MANAGER_METRICS_SERVICE_PORT")
+ if wget_output=="wget: server returned error: HTTP/1.0 400 Bad Request"
+ then exit 0
+ else exit 1
+ fi
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
+ restartPolicy: Never
+ nodeSelector:
+ kubernetes.io/os: linux
+ securityContext:
+ fsGroup: 65532
+ runAsGroup: 65532
+ runAsNonRoot: true
+ runAsUser: 65532
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/tests/test-service-connection.yaml
+apiVersion: v1
+kind: Pod
+metadata:
+ name: "example-opentelemetry-operator-webhook"
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ annotations:
+ "helm.sh/hook": test
+spec:
+ containers:
+ - name: wget
+ image: "busybox:latest"
+ env:
+ - name: WEBHOOK_SERVICE_CLUSTERIP
+ value: "example-opentelemetry-operator-webhook"
+ - name: WEBHOOK_SERVICE_PORT
+ value: "443"
+ command:
+ - sh
+ - -c
+ # The following shell script tests if the webhook service is up. If the service is up, when we try
+ # to wget its exposed port, we will get an HTTP error 400.
+ - |
+ wget_output=$(wget -q "$WEBHOOK_SERVICE_CLUSTERIP:$WEBHOOK_SERVICE_PORT")
+ if wget_output=="wget: server returned error: HTTP/1.0 400 Bad Request"
+ then exit 0
+ else exit 1
+ fi
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
+ restartPolicy: Never
+ nodeSelector:
+ kubernetes.io/os: linux
+ securityContext:
+ fsGroup: 65532
+ runAsGroup: 65532
+ runAsNonRoot: true
+ runAsUser: 65532
diff --git a/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/values.yaml b/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/values.yaml
new file mode 100644
index 00000000..0792c5ff
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/values.yaml
@@ -0,0 +1,52 @@
+collectors:
+ daemon:
+ presets:
+ clusterMetrics:
+ enabled: false
+ kubernetesEvents:
+ enabled: false
+
+ cluster:
+ suffix: cluster-stats
+ replicas: 1
+ mode: deployment
+ enabled: true
+ resources:
+ limits:
+ cpu: 200m
+ memory: 500Mi
+ requests:
+ cpu: 100m
+ memory: 250Mi
+ presets:
+ kubernetesAttributes:
+ enabled: true
+ kubernetesEvents:
+ enabled: true
+ disableLeaderElection: true
+ clusterMetrics:
+ enabled: true
+ disableLeaderElection: true
+ config:
+ receivers: {}
+ processors:
+ batch:
+ send_batch_size: 1000
+ timeout: 1s
+ send_batch_max_size: 1500
+ resourcedetection/env:
+ detectors: [env]
+ timeout: 2s
+ override: false
+ exporters:
+ debug: {}
+ service:
+ pipelines:
+ metrics:
+ receivers: [k8s_cluster]
+ processors: [resourcedetection/env, batch]
+ exporters: [debug]
+ logs:
+ receivers: [k8sobjects]
+ processors: [resourcedetection/env, batch]
+ exporters: [debug]
diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/README.md b/charts/opentelemetry-kube-stack/examples/prometheus-otel/README.md
new file mode 100644
index 00000000..abae0bc2
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/README.md
@@ -0,0 +1,5 @@
+# Prometheus Replacement example
+This example contains files to allow a user to replace an installation of kube-prometheus-stack. The opentelemetry-kube-stack chart aims to make the replacement process straightforward by utilizing the target allocator to pull any servicemonitors and podmonitors.
+
+> [!INFO]
+> This chart has most of the same configurations as the kube-prometheus-stack chart, but requires that kubelet monitoring is done via a manual scrape config. This is because of how the prometheus-operator manages endpoints for the Kubelet service. If you'd like to avoid a scrape-config altogether, it's recommended to use the kubelet receiver in the opentelemetry collector.
diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/kubelet_scrape_configs.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/kubelet_scrape_configs.yaml
new file mode 100644
index 00000000..f6a27c2a
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/kubelet_scrape_configs.yaml
@@ -0,0 +1,244 @@
+# This is used for scrape kubelet
+{{- if .kubelet.enabled }}
+- authorization:
+ credentials_file: "/var/run/secrets/kubernetes.io/serviceaccount/token"
+ type: Bearer
+ follow_redirects: true
+ honor_labels: {{ .kubelet.serviceMonitor.honorLabels }}
+ honor_timestamps: {{ .kubelet.serviceMonitor.honorTimestamps }}
+ job_name: serviceMonitor/{{ .namespace }}/{{ .Chart.Name }}-kubelet/0
+ kubernetes_sd_configs:
+ - follow_redirects: true
+ kubeconfig_file: ''
+ role: node
+ metrics_path: "/metrics"
+ relabel_configs:
+ - action: replace
+ regex: "(.*)"
+ replacement: "$$1"
+ separator: ";"
+ source_labels:
+ - job
+ target_label: __tmp_prometheus_job_name
+ - action: replace
+ replacement: "kubelet"
+ target_label: job
+ - action: replace
+ regex: "(.*)"
+ replacement: "$$1"
+ separator: ";"
+ source_labels:
+ - __meta_kubernetes_node_name
+ target_label: node
+ - action: replace
+ regex: "(.*)"
+ replacement: https-metrics
+ separator: ";"
+ target_label: endpoint
+ - action: replace
+ regex: "(.*)"
+ replacement: "$$1"
+ separator: ";"
+ source_labels:
+ - __metrics_path__
+ target_label: metrics_path
+ - action: hashmod
+ modulus: 1
+ regex: "(.*)"
+ replacement: "$$1"
+ separator: ";"
+ source_labels:
+ - __address__
+ target_label: __tmp_hash
+ - action: keep
+ regex: "$(SHARD)"
+ replacement: "$$1"
+ separator: ";"
+ source_labels:
+ - __tmp_hash
+ {{- if .kubelet.serviceMonitor.https }}
+ scheme: https
+ {{- else }}
+ schema: http
+ {{- end }}
+ scrape_interval: {{ .kubelet.serviceMonitor.interval | default "30s" }}
+ scrape_timeout: {{ .kubelet.serviceMonitor.scrapeTimeout | default "10s" }}
+ tls_config:
+ ca_file: "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt"
+ insecure_skip_verify: true
+{{- if .kubelet.serviceMonitor.cAdvisor }}
+- authorization:
+ credentials_file: "/var/run/secrets/kubernetes.io/serviceaccount/token"
+ type: Bearer
+ follow_redirects: true
+ honor_labels: true
+ honor_timestamps: true
+ job_name: serviceMonitor/{{ .namespace }}/{{ .Chart.Name }}-kubelet/1
+ kubernetes_sd_configs:
+ - follow_redirects: true
+ kubeconfig_file: ''
+ role: node
+ metric_relabel_configs:
+ - action: drop
+ regex: container_cpu_(cfs_throttled_seconds_total|load_average_10s|system_seconds_total|user_seconds_total)
+ replacement: "$$1"
+ separator: ";"
+ source_labels:
+ - __name__
+ - action: drop
+ regex: container_fs_(io_current|io_time_seconds_total|io_time_weighted_seconds_total|reads_merged_total|sector_reads_total|sector_writes_total|writes_merged_total)
+ replacement: "$$1"
+ separator: ";"
+ source_labels:
+ - __name__
+ - action: drop
+ regex: container_memory_(mapped_file|swap)
+ replacement: "$$1"
+ separator: ";"
+ source_labels:
+ - __name__
+ - action: drop
+ regex: container_(file_descriptors|tasks_state|threads_max)
+ replacement: "$$1"
+ separator: ";"
+ source_labels:
+ - __name__
+ - action: drop
+ regex: container_spec.*
+ replacement: "$$1"
+ separator: ";"
+ source_labels:
+ - __name__
+ - action: drop
+ regex: ".+;"
+ replacement: "$$1"
+ separator: ";"
+ source_labels:
+ - id
+ - pod
+ metrics_path: "/metrics/cadvisor"
+ relabel_configs:
+ - action: replace
+ regex: "(.*)"
+ replacement: "$$1"
+ separator: ";"
+ source_labels:
+ - job
+ target_label: __tmp_prometheus_job_name
+ - action: replace
+ replacement: "kubelet"
+ target_label: job
+ - action: replace
+ regex: "(.*)"
+ replacement: "$$1"
+ separator: ";"
+ source_labels:
+ - __meta_kubernetes_node_name
+ target_label: node
+ - action: replace
+ regex: "(.*)"
+ replacement: https-metrics
+ separator: ";"
+ target_label: endpoint
+ - action: replace
+ regex: "(.*)"
+ replacement: "$$1"
+ separator: ";"
+ source_labels:
+ - __metrics_path__
+ target_label: metrics_path
+ - action: hashmod
+ modulus: 1
+ regex: "(.*)"
+ replacement: "$$1"
+ separator: ";"
+ source_labels:
+ - __address__
+ target_label: __tmp_hash
+ - action: keep
+ regex: "$(SHARD)"
+ replacement: "$$1"
+ separator: ";"
+ source_labels:
+ - __tmp_hash
+ {{- if .kubelet.serviceMonitor.https }}
+ scheme: https
+ {{- else }}
+ schema: http
+ {{- end }}
+ scrape_interval: {{ .kubelet.serviceMonitor.scrapeTimeout | default "30s" }}
+ scrape_timeout: 10s
+ tls_config:
+ ca_file: "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt"
+ insecure_skip_verify: true
+
+{{- end }}
+{{- if .kubelet.serviceMonitor.probes }}
+- authorization:
+ credentials_file: "/var/run/secrets/kubernetes.io/serviceaccount/token"
+ type: Bearer
+ follow_redirects: true
+ honor_labels: true
+ honor_timestamps: true
+ job_name: serviceMonitor/{{ .namespace }}/{{ .Chart.Name }}-kubelet/2
+ kubernetes_sd_configs:
+ - follow_redirects: true
+ kubeconfig_file: ''
+ role: node
+ metrics_path: "/metrics/probes"
+ relabel_configs:
+ - action: replace
+ regex: "(.*)"
+ replacement: "$$1"
+ separator: ";"
+ source_labels:
+ - job
+ target_label: __tmp_prometheus_job_name
+ - action: replace
+ replacement: "kubelet"
+ target_label: job
+ - action: replace
+ regex: "(.*)"
+ replacement: "$$1"
+ separator: ";"
+ source_labels:
+ - __meta_kubernetes_node_name
+ target_label: node
+ - action: replace
+ regex: "(.*)"
+ replacement: https-metrics
+ separator: ";"
+ target_label: endpoint
+ - action: replace
+ regex: "(.*)"
+ replacement: "$$1"
+ separator: ";"
+ source_labels:
+ - __metrics_path__
+ target_label: metrics_path
+ - action: hashmod
+ modulus: 1
+ regex: "(.*)"
+ replacement: "$$1"
+ separator: ";"
+ source_labels:
+ - __address__
+ target_label: __tmp_hash
+ - action: keep
+ regex: "$(SHARD)"
+ replacement: "$$1"
+ separator: ";"
+ source_labels:
+ - __tmp_hash
+ {{- if .kubelet.serviceMonitor.https }}
+ scheme: https
+ {{- else }}
+ schema: http
+ {{- end }}
+ scrape_interval: {{ .kubelet.serviceMonitor.scrapeTimeout | default "30s" }}
+ scrape_timeout: 10s
+ tls_config:
+ ca_file: "/var/run/secrets/kubernetes.io/serviceaccount/ca.crt"
+ insecure_skip_verify: true
+{{- end }}
+{{- end }}
diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/clusterrole.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/clusterrole.yaml
new file mode 100644
index 00000000..2f258ac6
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/clusterrole.yaml
@@ -0,0 +1,71 @@
+---
+# Source: opentelemetry-kube-stack/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ name: example-collector
+rules:
+- apiGroups: [""]
+ resources:
+ - namespaces
+ - nodes
+ - nodes/proxy
+ - nodes/metrics
+ - nodes/stats
+ - services
+ - endpoints
+ - pods
+ - events
+ - secrets
+ - persistentvolumeclaims
+ - persistentvolumes
+ verbs: ["get", "list", "watch"]
+- apiGroups: ["monitoring.coreos.com"]
+ resources:
+ - servicemonitors
+ - podmonitors
+ - scrapeconfigs
+ - probes
+ verbs: ["get", "list", "watch"]
+- apiGroups:
+ - extensions
+ resources:
+ - ingresses
+ verbs: ["get", "list", "watch"]
+- apiGroups:
+ - apps
+ resources:
+ - daemonsets
+ - deployments
+ - replicasets
+ - statefulsets
+ verbs: ["get", "list", "watch"]
+- apiGroups:
+ - networking.k8s.io
+ resources:
+ - ingresses
+ verbs: ["get", "list", "watch"]
+- apiGroups: ["discovery.k8s.io"]
+ resources:
+ - endpointslices
+ verbs: ["get", "list", "watch"]
+- nonResourceURLs: ["/metrics", "/metrics/cadvisor"]
+ verbs: ["get"]
+---
+# Source: opentelemetry-kube-stack/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ name: example-daemon
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: example-collector
+subjects:
+- kind: ServiceAccount
+ # quirk of the Operator
+ name: "example-daemon-collector"
+ namespace: default
+- kind: ServiceAccount
+ name: example-daemon-targetallocator
+ namespace: default
diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/collector.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/collector.yaml
new file mode 100644
index 00000000..4610a5e2
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/collector.yaml
@@ -0,0 +1,136 @@
+---
+# Source: opentelemetry-kube-stack/templates/collector.yaml
+apiVersion: opentelemetry.io/v1beta1
+kind: OpenTelemetryCollector
+metadata:
+ name: example-daemon
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-kube-stack-0.14.11
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ release: "example"
+ otel-collector-type: daemonset-example
+spec:
+ managementState: managed
+ mode: daemonset
+ config:
+ exporters:
+ debug: {}
+ otlp:
+ endpoint: ingest.example.com:443
+ headers:
+ access-token: ${ACCESS_TOKEN}
+ processors:
+ batch:
+ send_batch_max_size: 1500
+ send_batch_size: 1000
+ timeout: 1s
+ resource/hostname:
+ attributes:
+ - action: insert
+ from_attribute: k8s.node.name
+ key: host.name
+ resourcedetection/env:
+ detectors:
+ - env
+ - k8snode
+ override: false
+ timeout: 2s
+ receivers:
+ otlp:
+ protocols:
+ grpc:
+ endpoint: 0.0.0.0:4317
+ http:
+ endpoint: 0.0.0.0:4318
+ prometheus:
+ config:
+ scrape_configs: []
+ service:
+ pipelines:
+ logs:
+ exporters:
+ - debug
+ processors:
+ - resourcedetection/env
+ - resource/hostname
+ - batch
+ receivers:
+ - otlp
+ metrics:
+ exporters:
+ - debug
+ - otlp
+ processors:
+ - resourcedetection/env
+ - resource/hostname
+ - batch
+ receivers:
+ - prometheus
+ traces:
+ exporters:
+ - debug
+ processors:
+ - resourcedetection/env
+ - resource/hostname
+ - batch
+ receivers:
+ - otlp
+ imagePullPolicy: IfNotPresent
+ upgradeStrategy: automatic
+ terminationGracePeriodSeconds: 30
+ resources:
+ limits:
+ cpu: 200m
+ memory: 500Mi
+ requests:
+ cpu: 100m
+ memory: 250Mi
+ securityContext:
+ {}
+ targetAllocator:
+ allocationStrategy: per-node
+ enabled: true
+ image: ghcr.io/open-telemetry/opentelemetry-operator/target-allocator:main
+ prometheusCR:
+ enabled: true
+ podMonitorSelector: {}
+ scrapeInterval: 30s
+ serviceMonitorSelector: {}
+ env:
+ - name: K8S_NODE_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: spec.nodeName
+ - name: OTEL_K8S_NODE_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: spec.nodeName
+ - name: OTEL_K8S_NODE_IP
+ valueFrom:
+ fieldRef:
+ fieldPath: status.hostIP
+ - name: OTEL_K8S_NAMESPACE
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.namespace
+ - name: OTEL_K8S_POD_NAME
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.name
+ - name: OTEL_K8S_POD_IP
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: status.podIP
+ - name: OTEL_RESOURCE_ATTRIBUTES
+ value: "k8s.pod.name=$(OTEL_K8S_POD_NAME),k8s.namespace.name=$(OTEL_K8S_NAMESPACE),k8s.node.name=$(OTEL_K8S_NODE_NAME),host.name=$(OTEL_K8S_NODE_NAME),k8s.node.ip=$(OTEL_K8S_NODE_IP),k8s.pod.ip=$(OTEL_K8S_POD_IP),k8s.cluster.name=demo"
+
+ - name: ACCESS_TOKEN
+ valueFrom:
+ secretKeyRef:
+ key: access_token
+ name: otel-collector-secret
diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-api-server/servicemonitor.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-api-server/servicemonitor.yaml
new file mode 100644
index 00000000..9115c33b
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-api-server/servicemonitor.yaml
@@ -0,0 +1,37 @@
+---
+# Source: opentelemetry-kube-stack/templates/exporters/kube-api-server/servicemonitor.yaml
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+ name: example-apiserver
+ namespace: default
+ labels:
+ app: opentelemetry-kube-stack-apiserver
+ helm.sh/chart: opentelemetry-kube-stack-0.14.11
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ release: "example"
+spec:
+
+ endpoints:
+ - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
+ port: https
+ scheme: https
+ metricRelabelings:
+ - action: drop
+ regex: apiserver_request_duration_seconds_bucket;(0.15|0.2|0.3|0.35|0.4|0.45|0.6|0.7|0.8|0.9|1.25|1.5|1.75|2|3|3.5|4|4.5|6|7|8|9|15|25|40|50)
+ sourceLabels:
+ - __name__
+ - le
+ tlsConfig:
+ caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
+ serverName: kubernetes
+ insecureSkipVerify: false
+ jobLabel: component
+ namespaceSelector:
+ matchNames:
+ - default
+ selector:
+ matchLabels:
+ component: apiserver
+ provider: kubernetes
diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-controller-manager/service.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-controller-manager/service.yaml
new file mode 100644
index 00000000..5c8abc85
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-controller-manager/service.yaml
@@ -0,0 +1,24 @@
+---
+# Source: opentelemetry-kube-stack/templates/exporters/kube-controller-manager/service.yaml
+apiVersion: v1
+kind: Service
+metadata:
+ name: example-kube-controller-manager
+ labels:
+ app: opentelemetry-kube-stack-kube-controller-manager
+ jobLabel: kube-controller-manager
+ helm.sh/chart: opentelemetry-kube-stack-0.14.11
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ release: "example"
+ namespace: kube-system
+spec:
+ clusterIP: None
+ ports:
+ - name: http-metrics
+ port: 10257
+ protocol: TCP
+ targetPort: 10257
+ selector:
+ component: kube-controller-manager
+ type: ClusterIP
diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-controller-manager/servicemonitor.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-controller-manager/servicemonitor.yaml
new file mode 100644
index 00000000..61c01994
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-controller-manager/servicemonitor.yaml
@@ -0,0 +1,30 @@
+---
+# Source: opentelemetry-kube-stack/templates/exporters/kube-controller-manager/servicemonitor.yaml
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+ name: example-kube-controller-manager
+ namespace: default
+ labels:
+ app: opentelemetry-kube-stack-kube-controller-manager
+ helm.sh/chart: opentelemetry-kube-stack-0.14.11
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ release: "example"
+spec:
+ jobLabel: jobLabel
+
+ selector:
+ matchLabels:
+ app: opentelemetry-kube-stack-kube-controller-manager
+ release: "example"
+ namespaceSelector:
+ matchNames:
+ - "kube-system"
+ endpoints:
+ - port: http-metrics
+ bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
+ scheme: https
+ tlsConfig:
+ caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
+ insecureSkipVerify: true
diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-dns/service.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-dns/service.yaml
new file mode 100644
index 00000000..813b1c5e
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-dns/service.yaml
@@ -0,0 +1,27 @@
+---
+# Source: opentelemetry-kube-stack/templates/exporters/kube-dns/service.yaml
+apiVersion: v1
+kind: Service
+metadata:
+ name: example-kube-dns
+ labels:
+ app: opentelemetry-kube-stack-kube-dns
+ jobLabel: kube-dns
+ helm.sh/chart: opentelemetry-kube-stack-0.14.11
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ release: "example"
+ namespace: kube-system
+spec:
+ clusterIP: None
+ ports:
+ - name: http-metrics-dnsmasq
+ port: 10054
+ protocol: TCP
+ targetPort: 10054
+ - name: http-metrics-skydns
+ port: 10055
+ protocol: TCP
+ targetPort: 10055
+ selector:
+ k8s-app: kube-dns
diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-dns/servicemonitor.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-dns/servicemonitor.yaml
new file mode 100644
index 00000000..d6c650b8
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-dns/servicemonitor.yaml
@@ -0,0 +1,28 @@
+---
+# Source: opentelemetry-kube-stack/templates/exporters/kube-dns/servicemonitor.yaml
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+ name: example-kube-dns
+ namespace: default
+ labels:
+ app: opentelemetry-kube-stack-kube-dns
+ helm.sh/chart: opentelemetry-kube-stack-0.14.11
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ release: "example"
+spec:
+ jobLabel: jobLabel
+
+ selector:
+ matchLabels:
+ app: opentelemetry-kube-stack-kube-dns
+ release: "example"
+ namespaceSelector:
+ matchNames:
+ - "kube-system"
+ endpoints:
+ - port: http-metrics-dnsmasq
+ bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
+ - port: http-metrics-skydns
+ bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-etcd/service.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-etcd/service.yaml
new file mode 100644
index 00000000..69d557e1
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-etcd/service.yaml
@@ -0,0 +1,24 @@
+---
+# Source: opentelemetry-kube-stack/templates/exporters/kube-etcd/service.yaml
+apiVersion: v1
+kind: Service
+metadata:
+ name: example-kube-etcd
+ labels:
+ app: opentelemetry-kube-stack-kube-etcd
+ jobLabel: kube-etcd
+ helm.sh/chart: opentelemetry-kube-stack-0.14.11
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ release: "example"
+ namespace: kube-system
+spec:
+ clusterIP: None
+ ports:
+ - name: http-metrics
+ port: 2381
+ protocol: TCP
+ targetPort: 2381
+ selector:
+ component: etcd
+ type: ClusterIP
diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-etcd/servicemonitor.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-etcd/servicemonitor.yaml
new file mode 100644
index 00000000..9fa22225
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-etcd/servicemonitor.yaml
@@ -0,0 +1,26 @@
+---
+# Source: opentelemetry-kube-stack/templates/exporters/kube-etcd/servicemonitor.yaml
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+ name: example-kube-etcd
+ namespace: default
+ labels:
+ app: opentelemetry-kube-stack-kube-etcd
+ helm.sh/chart: opentelemetry-kube-stack-0.14.11
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ release: "example"
+spec:
+ jobLabel: jobLabel
+
+ selector:
+ matchLabels:
+ app: opentelemetry-kube-stack-kube-etcd
+ release: "example"
+ namespaceSelector:
+ matchNames:
+ - "kube-system"
+ endpoints:
+ - port: http-metrics
+ bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-proxy/service.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-proxy/service.yaml
new file mode 100644
index 00000000..7ef51cf0
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-proxy/service.yaml
@@ -0,0 +1,24 @@
+---
+# Source: opentelemetry-kube-stack/templates/exporters/kube-proxy/service.yaml
+apiVersion: v1
+kind: Service
+metadata:
+ name: example-kube-proxy
+ labels:
+ app: opentelemetry-kube-stack-kube-proxy
+ jobLabel: kube-proxy
+ helm.sh/chart: opentelemetry-kube-stack-0.14.11
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ release: "example"
+ namespace: kube-system
+spec:
+ clusterIP: None
+ ports:
+ - name: http-metrics
+ port: 10249
+ protocol: TCP
+ targetPort: 10249
+ selector:
+ k8s-app: kube-proxy
+ type: ClusterIP
diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-proxy/servicemonitor.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-proxy/servicemonitor.yaml
new file mode 100644
index 00000000..d0c3ba0b
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-proxy/servicemonitor.yaml
@@ -0,0 +1,26 @@
+---
+# Source: opentelemetry-kube-stack/templates/exporters/kube-proxy/servicemonitor.yaml
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+ name: example-kube-proxy
+ namespace: default
+ labels:
+ app: opentelemetry-kube-stack-kube-proxy
+ helm.sh/chart: opentelemetry-kube-stack-0.14.11
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ release: "example"
+spec:
+ jobLabel: jobLabel
+
+ selector:
+ matchLabels:
+ app: opentelemetry-kube-stack-kube-proxy
+ release: "example"
+ namespaceSelector:
+ matchNames:
+ - "kube-system"
+ endpoints:
+ - port: http-metrics
+ bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-scheduler/service.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-scheduler/service.yaml
new file mode 100644
index 00000000..6f7c6444
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-scheduler/service.yaml
@@ -0,0 +1,24 @@
+---
+# Source: opentelemetry-kube-stack/templates/exporters/kube-scheduler/service.yaml
+apiVersion: v1
+kind: Service
+metadata:
+ name: example-kube-scheduler
+ labels:
+ app: opentelemetry-kube-stack-kube-scheduler
+ jobLabel: kube-scheduler
+ helm.sh/chart: opentelemetry-kube-stack-0.14.11
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ release: "example"
+ namespace: kube-system
+spec:
+ clusterIP: None
+ ports:
+ - name: http-metrics
+ port: 10259
+ protocol: TCP
+ targetPort: 10259
+ selector:
+ component: kube-scheduler
+ type: ClusterIP
diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-scheduler/servicemonitor.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-scheduler/servicemonitor.yaml
new file mode 100644
index 00000000..af126dce
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-scheduler/servicemonitor.yaml
@@ -0,0 +1,30 @@
+---
+# Source: opentelemetry-kube-stack/templates/exporters/kube-scheduler/servicemonitor.yaml
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+ name: example-kube-scheduler
+ namespace: default
+ labels:
+ app: opentelemetry-kube-stack-kube-scheduler
+ helm.sh/chart: opentelemetry-kube-stack-0.14.11
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ release: "example"
+spec:
+ jobLabel: jobLabel
+
+ selector:
+ matchLabels:
+ app: opentelemetry-kube-stack-kube-scheduler
+ release: "example"
+ namespaceSelector:
+ matchNames:
+ - "kube-system"
+ endpoints:
+ - port: http-metrics
+ bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
+ scheme: https
+ tlsConfig:
+ caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
+ insecureSkipVerify: true
diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/hooks.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/hooks.yaml
new file mode 100644
index 00000000..f528b802
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/hooks.yaml
@@ -0,0 +1,64 @@
+---
+# Source: opentelemetry-kube-stack/templates/hooks.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: delete-resources-sa
+ annotations:
+ "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
+---
+# Source: opentelemetry-kube-stack/templates/hooks.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: Role
+metadata:
+ name: delete-resources-role
+ annotations:
+ "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
+rules:
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - instrumentations
+ - opampbridges
+ - opentelemetrycollectors
+ verbs:
+ - get
+ - list
+ - delete
+---
+# Source: opentelemetry-kube-stack/templates/hooks.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: RoleBinding
+metadata:
+ name: delete-resources-rolebinding
+ annotations:
+ "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: Role
+ name: delete-resources-role
+subjects:
+ - kind: ServiceAccount
+ name: delete-resources-sa
+---
+# Source: opentelemetry-kube-stack/templates/hooks.yaml
+apiVersion: batch/v1
+kind: Job
+metadata:
+ name: opentelemetry-kube-stack-pre-delete-job
+ annotations:
+ "helm.sh/hook": pre-delete
+ "helm.sh/hook-delete-policy": hook-succeeded,hook-failed
+spec:
+ template:
+ spec:
+ restartPolicy: Never
+ serviceAccountName: delete-resources-sa
+ containers:
+ - name: delete-resources
+ image: "rancher/kubectl:v1.34.1"
+ args:
+ - "delete"
+ - "instrumentations,opampbridges,opentelemetrycollectors"
+ - "-l"
+ - "helm.sh/chart=opentelemetry-kube-stack-0.14.11"
diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/kube-state-metrics/clusterrolebinding.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/kube-state-metrics/clusterrolebinding.yaml
new file mode 100644
index 00000000..5abd8337
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/kube-state-metrics/clusterrolebinding.yaml
@@ -0,0 +1,23 @@
+---
+# Source: opentelemetry-kube-stack/charts/kube-state-metrics/templates/clusterrolebinding.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ labels:
+ helm.sh/chart: kube-state-metrics-6.3.0
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/component: metrics
+ app.kubernetes.io/part-of: kube-state-metrics
+ app.kubernetes.io/name: kube-state-metrics
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/version: "2.17.0"
+ release: example
+ name: example-kube-state-metrics
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: example-kube-state-metrics
+subjects:
+- kind: ServiceAccount
+ name: example-kube-state-metrics
+ namespace: default
diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/kube-state-metrics/deployment.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/kube-state-metrics/deployment.yaml
new file mode 100644
index 00000000..8e7389c0
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/kube-state-metrics/deployment.yaml
@@ -0,0 +1,88 @@
+---
+# Source: opentelemetry-kube-stack/charts/kube-state-metrics/templates/deployment.yaml
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: example-kube-state-metrics
+ namespace: default
+ labels:
+ helm.sh/chart: kube-state-metrics-6.3.0
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/component: metrics
+ app.kubernetes.io/part-of: kube-state-metrics
+ app.kubernetes.io/name: kube-state-metrics
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/version: "2.17.0"
+ release: example
+spec:
+ selector:
+ matchLabels:
+ app.kubernetes.io/name: kube-state-metrics
+ app.kubernetes.io/instance: example
+ replicas: 1
+ strategy:
+ type: RollingUpdate
+ revisionHistoryLimit: 10
+ template:
+ metadata:
+ labels:
+ helm.sh/chart: kube-state-metrics-6.3.0
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/component: metrics
+ app.kubernetes.io/part-of: kube-state-metrics
+ app.kubernetes.io/name: kube-state-metrics
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/version: "2.17.0"
+ release: example
+ spec:
+ automountServiceAccountToken: true
+ hostNetwork: false
+ serviceAccountName: example-kube-state-metrics
+ securityContext:
+ fsGroup: 65534
+ runAsGroup: 65534
+ runAsNonRoot: true
+ runAsUser: 65534
+ seccompProfile:
+ type: RuntimeDefault
+ dnsPolicy: ClusterFirst
+ containers:
+ - name: kube-state-metrics
+ args:
+ - --port=8080
+ - --resources=certificatesigningrequests,configmaps,cronjobs,daemonsets,deployments,endpoints,horizontalpodautoscalers,ingresses,jobs,leases,limitranges,mutatingwebhookconfigurations,namespaces,networkpolicies,nodes,persistentvolumeclaims,persistentvolumes,poddisruptionbudgets,pods,replicasets,replicationcontrollers,resourcequotas,secrets,services,statefulsets,storageclasses,validatingwebhookconfigurations,volumeattachments
+ imagePullPolicy: IfNotPresent
+ image: registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.17.0
+ ports:
+ - containerPort: 8080
+ name: http
+ livenessProbe:
+ failureThreshold: 3
+ httpGet:
+ httpHeaders:
+ path: /livez
+ port: 8080
+ scheme: HTTP
+ initialDelaySeconds: 5
+ periodSeconds: 10
+ successThreshold: 1
+ timeoutSeconds: 5
+ readinessProbe:
+ failureThreshold: 3
+ httpGet:
+ httpHeaders:
+ path: /readyz
+ port: 8081
+ scheme: HTTP
+ initialDelaySeconds: 5
+ periodSeconds: 10
+ successThreshold: 1
+ timeoutSeconds: 5
+ resources:
+ {}
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ readOnlyRootFilesystem: true
diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/kube-state-metrics/role.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/kube-state-metrics/role.yaml
new file mode 100644
index 00000000..e7c53da3
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/kube-state-metrics/role.yaml
@@ -0,0 +1,156 @@
+---
+# Source: opentelemetry-kube-stack/charts/kube-state-metrics/templates/role.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ labels:
+ helm.sh/chart: kube-state-metrics-6.3.0
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/component: metrics
+ app.kubernetes.io/part-of: kube-state-metrics
+ app.kubernetes.io/name: kube-state-metrics
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/version: "2.17.0"
+ release: example
+ name: example-kube-state-metrics
+rules:
+
+- apiGroups: ["certificates.k8s.io"]
+ resources:
+ - certificatesigningrequests
+ verbs: ["list", "watch"]
+
+- apiGroups: [""]
+ resources:
+ - configmaps
+ verbs: ["list", "watch"]
+
+- apiGroups: ["batch"]
+ resources:
+ - cronjobs
+ verbs: ["list", "watch"]
+
+- apiGroups: ["apps"]
+ resources:
+ - daemonsets
+ verbs: ["list", "watch"]
+
+- apiGroups: ["apps"]
+ resources:
+ - deployments
+ verbs: ["list", "watch"]
+
+- apiGroups: [""]
+ resources:
+ - endpoints
+ verbs: ["list", "watch"]
+
+- apiGroups: ["autoscaling"]
+ resources:
+ - horizontalpodautoscalers
+ verbs: ["list", "watch"]
+
+- apiGroups: ["networking.k8s.io"]
+ resources:
+ - ingresses
+ verbs: ["list", "watch"]
+
+- apiGroups: ["batch"]
+ resources:
+ - jobs
+ verbs: ["list", "watch"]
+
+- apiGroups: ["coordination.k8s.io"]
+ resources:
+ - leases
+ verbs: ["list", "watch"]
+
+- apiGroups: [""]
+ resources:
+ - limitranges
+ verbs: ["list", "watch"]
+
+- apiGroups: ["admissionregistration.k8s.io"]
+ resources:
+ - mutatingwebhookconfigurations
+ verbs: ["list", "watch"]
+
+- apiGroups: [""]
+ resources:
+ - namespaces
+ verbs: ["list", "watch"]
+
+- apiGroups: ["networking.k8s.io"]
+ resources:
+ - networkpolicies
+ verbs: ["list", "watch"]
+
+- apiGroups: [""]
+ resources:
+ - nodes
+ verbs: ["list", "watch"]
+
+- apiGroups: [""]
+ resources:
+ - persistentvolumeclaims
+ verbs: ["list", "watch"]
+
+- apiGroups: [""]
+ resources:
+ - persistentvolumes
+ verbs: ["list", "watch"]
+
+- apiGroups: ["policy"]
+ resources:
+ - poddisruptionbudgets
+ verbs: ["list", "watch"]
+
+- apiGroups: [""]
+ resources:
+ - pods
+ verbs: ["list", "watch"]
+
+- apiGroups: ["apps"]
+ resources:
+ - replicasets
+ verbs: ["list", "watch"]
+
+- apiGroups: [""]
+ resources:
+ - replicationcontrollers
+ verbs: ["list", "watch"]
+
+- apiGroups: [""]
+ resources:
+ - resourcequotas
+ verbs: ["list", "watch"]
+
+- apiGroups: [""]
+ resources:
+ - secrets
+ verbs: ["list", "watch"]
+
+- apiGroups: [""]
+ resources:
+ - services
+ verbs: ["list", "watch"]
+
+- apiGroups: ["apps"]
+ resources:
+ - statefulsets
+ verbs: ["list", "watch"]
+
+- apiGroups: ["storage.k8s.io"]
+ resources:
+ - storageclasses
+ verbs: ["list", "watch"]
+
+- apiGroups: ["admissionregistration.k8s.io"]
+ resources:
+ - validatingwebhookconfigurations
+ verbs: ["list", "watch"]
+
+- apiGroups: ["storage.k8s.io"]
+ resources:
+ - volumeattachments
+ verbs: ["list", "watch"]
diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/kube-state-metrics/service.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/kube-state-metrics/service.yaml
new file mode 100644
index 00000000..bac884f9
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/kube-state-metrics/service.yaml
@@ -0,0 +1,29 @@
+---
+# Source: opentelemetry-kube-stack/charts/kube-state-metrics/templates/service.yaml
+apiVersion: v1
+kind: Service
+metadata:
+ name: example-kube-state-metrics
+ namespace: default
+ labels:
+ helm.sh/chart: kube-state-metrics-6.3.0
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/component: metrics
+ app.kubernetes.io/part-of: kube-state-metrics
+ app.kubernetes.io/name: kube-state-metrics
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/version: "2.17.0"
+ release: example
+ annotations:
+ prometheus.io/scrape: 'true'
+spec:
+ type: "ClusterIP"
+ ports:
+ - name: http
+ protocol: TCP
+ port: 8080
+ targetPort: http
+
+ selector:
+ app.kubernetes.io/name: kube-state-metrics
+ app.kubernetes.io/instance: example
diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/kube-state-metrics/serviceaccount.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/kube-state-metrics/serviceaccount.yaml
new file mode 100644
index 00000000..188ece64
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/kube-state-metrics/serviceaccount.yaml
@@ -0,0 +1,17 @@
+---
+# Source: opentelemetry-kube-stack/charts/kube-state-metrics/templates/serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+automountServiceAccountToken: true
+metadata:
+ labels:
+ helm.sh/chart: kube-state-metrics-6.3.0
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/component: metrics
+ app.kubernetes.io/part-of: kube-state-metrics
+ app.kubernetes.io/name: kube-state-metrics
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/version: "2.17.0"
+ release: example
+ name: example-kube-state-metrics
+ namespace: default
diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/kube-state-metrics/servicemonitor.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/kube-state-metrics/servicemonitor.yaml
new file mode 100644
index 00000000..8e1c1ac4
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/kube-state-metrics/servicemonitor.yaml
@@ -0,0 +1,25 @@
+---
+# Source: opentelemetry-kube-stack/charts/kube-state-metrics/templates/servicemonitor.yaml
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+ name: example-kube-state-metrics
+ namespace: default
+ labels:
+ helm.sh/chart: kube-state-metrics-6.3.0
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/component: metrics
+ app.kubernetes.io/part-of: kube-state-metrics
+ app.kubernetes.io/name: kube-state-metrics
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/version: "2.17.0"
+ release: example
+spec:
+ jobLabel: app.kubernetes.io/name
+ selector:
+ matchLabels:
+ app.kubernetes.io/name: kube-state-metrics
+ app.kubernetes.io/instance: example
+ endpoints:
+ - port: http
+ honorLabels: true
diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/opentelemetry-operator/admission-webhooks/operator-webhook-with-cert-manager.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/opentelemetry-operator/admission-webhooks/operator-webhook-with-cert-manager.yaml
new file mode 100644
index 00000000..1b4f51a7
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/opentelemetry-operator/admission-webhooks/operator-webhook-with-cert-manager.yaml
@@ -0,0 +1,192 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/admission-webhooks/operator-webhook-with-cert-manager.yaml
+apiVersion: admissionregistration.k8s.io/v1
+kind: MutatingWebhookConfiguration
+metadata:
+ annotations:
+ cert-manager.io/inject-ca-from: default/example-opentelemetry-operator-serving-cert
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ name: example-opentelemetry-operator-mutation
+webhooks:
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /mutate-opentelemetry-io-v1alpha1-instrumentation
+ port: 443
+ failurePolicy: Ignore
+ name: minstrumentation.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1alpha1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - instrumentations
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /mutate-opentelemetry-io-v1beta1-opentelemetrycollector
+ port: 443
+ failurePolicy: Ignore
+ name: mopentelemetrycollectorbeta.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1beta1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - opentelemetrycollectors
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /mutate-v1-pod
+ port: 443
+ failurePolicy: Ignore
+ name: mpod.kb.io
+ rules:
+ - apiGroups:
+ - ""
+ apiVersions:
+ - v1
+ operations:
+ - CREATE
+ resources:
+ - pods
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/admission-webhooks/operator-webhook-with-cert-manager.yaml
+apiVersion: admissionregistration.k8s.io/v1
+kind: ValidatingWebhookConfiguration
+metadata:
+ annotations:
+ cert-manager.io/inject-ca-from: default/example-opentelemetry-operator-serving-cert
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ name: example-opentelemetry-operator-validation
+webhooks:
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /validate-opentelemetry-io-v1alpha1-instrumentation
+ port: 443
+ failurePolicy: Ignore
+ name: vinstrumentationcreateupdate.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1alpha1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - instrumentations
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /validate-opentelemetry-io-v1alpha1-instrumentation
+ port: 443
+ failurePolicy: Ignore
+ name: vinstrumentationdelete.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1alpha1
+ operations:
+ - DELETE
+ resources:
+ - instrumentations
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /validate-opentelemetry-io-v1beta1-opentelemetrycollector
+ port: 443
+ failurePolicy: Ignore
+ name: vopentelemetrycollectorcreateupdatebeta.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1beta1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - opentelemetrycollectors
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /validate-opentelemetry-io-v1beta1-opentelemetrycollector
+ port: 443
+ failurePolicy: Ignore
+ name: vopentelemetrycollectordeletebeta.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1beta1
+ operations:
+ - DELETE
+ resources:
+ - opentelemetrycollectors
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/opentelemetry-operator/admission-webhooks/operator-webhook.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/opentelemetry-operator/admission-webhooks/operator-webhook.yaml
new file mode 100644
index 00000000..5b9ff551
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/opentelemetry-operator/admission-webhooks/operator-webhook.yaml
@@ -0,0 +1,3 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/admission-webhooks/operator-webhook.yaml
+---
diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/opentelemetry-operator/certmanager.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/opentelemetry-operator/certmanager.yaml
new file mode 100644
index 00000000..a8922eee
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/opentelemetry-operator/certmanager.yaml
@@ -0,0 +1,43 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/certmanager.yaml
+apiVersion: cert-manager.io/v1
+kind: Certificate
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ name: example-opentelemetry-operator-serving-cert
+ namespace: default
+spec:
+ dnsNames:
+ - example-opentelemetry-operator-webhook.default.svc
+ - example-opentelemetry-operator-webhook.default.svc.cluster.local
+ issuerRef:
+ kind: Issuer
+ name: example-opentelemetry-operator-selfsigned-issuer
+ secretName: example-opentelemetry-operator-controller-manager-service-cert
+ subject:
+ organizationalUnits:
+ - example-opentelemetry-operator
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/certmanager.yaml
+apiVersion: cert-manager.io/v1
+kind: Issuer
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ name: example-opentelemetry-operator-selfsigned-issuer
+ namespace: default
+spec:
+ selfSigned: {}
diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/opentelemetry-operator/clusterrole.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/opentelemetry-operator/clusterrole.yaml
new file mode 100644
index 00000000..4ae76fec
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/opentelemetry-operator/clusterrole.yaml
@@ -0,0 +1,402 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-manager
+rules:
+ - apiGroups:
+ - ""
+ resources:
+ - configmaps
+ - persistentvolumeclaims
+ - persistentvolumes
+ - pods
+ - serviceaccounts
+ - services
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - events
+ verbs:
+ - create
+ - get
+ - list
+ - patch
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - namespaces
+ verbs:
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - namespaces/status
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - nodes/spec
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - pods/status
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - replicationcontrollers
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - replicationcontrollers/status
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - resourcequotas
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - apps
+ resources:
+ - daemonsets
+ - deployments
+ - statefulsets
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - apps
+ - extensions
+ resources:
+ - replicasets
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - extensions
+ resources:
+ - daemonsets
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - extensions
+ resources:
+ - deployments
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - autoscaling
+ resources:
+ - horizontalpodautoscalers
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - batch
+ resources:
+ - jobs
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - batch
+ resources:
+ - cronjobs
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - nodes/proxy
+ verbs:
+ - get
+ - apiGroups:
+ - ""
+ resources:
+ - nodes/stats
+ verbs:
+ - get
+ - apiGroups:
+ - config.openshift.io
+ resources:
+ - infrastructures
+ - infrastructures/status
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - coordination.k8s.io
+ resources:
+ - leases
+ verbs:
+ - create
+ - get
+ - list
+ - update
+ - apiGroups:
+ - events.k8s.io
+ resources:
+ - events
+ verbs:
+ - list
+ - watch
+ - apiGroups:
+ - monitoring.coreos.com
+ resources:
+ - podmonitors
+ - servicemonitors
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - networking.k8s.io
+ resources:
+ - ingresses
+ - networkpolicies
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - instrumentations
+ verbs:
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges/finalizers
+ verbs:
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges/status
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opentelemetrycollectors
+ verbs:
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opentelemetrycollectors/finalizers
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opentelemetrycollectors/status
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - policy
+ resources:
+ - poddisruptionbudgets
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - route.openshift.io
+ resources:
+ - routes
+ - routes/custom-host
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - targetallocators
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - targetallocators/status
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - targetallocators/finalizers
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - cert-manager.io
+ resources:
+ - issuers
+ - certificaterequests
+ - certificates
+ verbs:
+ - create
+ - get
+ - list
+ - watch
+ - update
+ - patch
+ - delete
+ - apiGroups:
+ - authorization.k8s.io
+ resources:
+ - subjectaccessreviews
+ verbs:
+ - create
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-metrics
+rules:
+ - nonResourceURLs:
+ - /metrics
+ verbs:
+ - get
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-proxy
+rules:
+ - apiGroups:
+ - authentication.k8s.io
+ resources:
+ - tokenreviews
+ verbs:
+ - create
diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/opentelemetry-operator/clusterrolebinding.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/opentelemetry-operator/clusterrolebinding.yaml
new file mode 100644
index 00000000..831b2df7
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/opentelemetry-operator/clusterrolebinding.yaml
@@ -0,0 +1,44 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrolebinding.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-manager
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: example-opentelemetry-operator-manager
+subjects:
+ - kind: ServiceAccount
+ name: opentelemetry-operator
+ namespace: default
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrolebinding.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-proxy
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: example-opentelemetry-operator-proxy
+subjects:
+ - kind: ServiceAccount
+ name: opentelemetry-operator
+ namespace: default
diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/opentelemetry-operator/deployment.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/opentelemetry-operator/deployment.yaml
new file mode 100644
index 00000000..ca0ddf47
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/opentelemetry-operator/deployment.yaml
@@ -0,0 +1,122 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/deployment.yaml
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator
+ namespace: default
+spec:
+ replicas: 1
+ revisionHistoryLimit: 10
+ selector:
+ matchLabels:
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/component: controller-manager
+ template:
+ metadata:
+ annotations:
+ kubectl.kubernetes.io/default-container: manager
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ spec:
+ automountServiceAccountToken: true
+ hostNetwork: false
+ containers:
+ - args:
+ - --metrics-addr=0.0.0.0:8080
+ - --enable-leader-election
+ - --health-probe-addr=:8081
+ - --webhook-port=9443
+ - --collector-image=otel/opentelemetry-collector-k8s:0.144.0
+ command:
+ - /manager
+ env:
+ - name: SERVICE_ACCOUNT_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: spec.serviceAccountName
+ - name: ENABLE_WEBHOOKS
+ value: "true"
+ image: "ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator:0.144.0"
+ name: manager
+ imagePullPolicy: IfNotPresent
+ ports:
+ - containerPort: 8080
+ name: metrics
+ protocol: TCP
+ - containerPort: 9443
+ name: webhook-server
+ protocol: TCP
+ livenessProbe:
+ httpGet:
+ path: /healthz
+ port: 8081
+ initialDelaySeconds: 15
+ periodSeconds: 20
+ readinessProbe:
+ httpGet:
+ path: /readyz
+ port: 8081
+ initialDelaySeconds: 5
+ periodSeconds: 10
+ resources:
+ {}
+ volumeMounts:
+ - mountPath: /tmp/k8s-webhook-server/serving-certs
+ name: cert
+ readOnly: true
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
+
+ - args:
+ - --secure-listen-address=0.0.0.0:8443
+ - --upstream=http://127.0.0.1:8080/
+ - --v=0
+ image: "quay.io/brancz/kube-rbac-proxy:v0.20.0"
+ name: kube-rbac-proxy
+ ports:
+ - containerPort: 8443
+ name: https
+ protocol: TCP
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
+ nodeSelector:
+ kubernetes.io/os: linux
+ serviceAccountName: opentelemetry-operator
+ terminationGracePeriodSeconds: 10
+ volumes:
+ - name: cert
+ secret:
+ defaultMode: 420
+ secretName: example-opentelemetry-operator-controller-manager-service-cert
+ securityContext:
+ fsGroup: 65532
+ runAsGroup: 65532
+ runAsNonRoot: true
+ runAsUser: 65532
diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/opentelemetry-operator/role.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/opentelemetry-operator/role.yaml
new file mode 100644
index 00000000..88ccd2b0
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/opentelemetry-operator/role.yaml
@@ -0,0 +1,199 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/role.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: Role
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-leader-election
+ namespace: default
+rules:
+ - apiGroups:
+ - ""
+ resources:
+ - configmaps
+ - pods
+ - serviceaccounts
+ - services
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - events
+ verbs:
+ - create
+ - patch
+ - apiGroups:
+ - ""
+ resources:
+ - namespaces
+ - secrets
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - apps
+ resources:
+ - daemonsets
+ - deployments
+ - statefulsets
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - apps
+ resources:
+ - replicasets
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - autoscaling
+ resources:
+ - horizontalpodautoscalers
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - batch
+ resources:
+ - jobs
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - config.openshift.io
+ resources:
+ - infrastructures
+ - infrastructures/status
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - coordination.k8s.io
+ resources:
+ - leases
+ verbs:
+ - create
+ - get
+ - list
+ - update
+ - apiGroups:
+ - monitoring.coreos.com
+ resources:
+ - podmonitors
+ - servicemonitors
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - networking.k8s.io
+ resources:
+ - ingresses
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - instrumentations
+ - opentelemetrycollectors
+ verbs:
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges
+ - targetallocators
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges/finalizers
+ verbs:
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges/status
+ - opentelemetrycollectors/finalizers
+ - opentelemetrycollectors/status
+ - targetallocators/status
+ - targetallocators/finalizers
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - policy
+ resources:
+ - poddisruptionbudgets
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - route.openshift.io
+ resources:
+ - routes
+ - routes/custom-host
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/opentelemetry-operator/rolebinding.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/opentelemetry-operator/rolebinding.yaml
new file mode 100644
index 00000000..fa556fae
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/opentelemetry-operator/rolebinding.yaml
@@ -0,0 +1,23 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/rolebinding.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: RoleBinding
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-leader-election
+ namespace: default
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: Role
+ name: example-opentelemetry-operator-leader-election
+subjects:
+ - kind: ServiceAccount
+ name: opentelemetry-operator
+ namespace: default
diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/opentelemetry-operator/service.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/opentelemetry-operator/service.yaml
new file mode 100644
index 00000000..9f7f7220
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/opentelemetry-operator/service.yaml
@@ -0,0 +1,51 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/service.yaml
+apiVersion: v1
+kind: Service
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator
+ namespace: default
+spec:
+ ports:
+ - name: https
+ port: 8443
+ protocol: TCP
+ targetPort: https
+ - name: metrics
+ port: 8080
+ protocol: TCP
+ targetPort: metrics
+ selector:
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/component: controller-manager
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/service.yaml
+apiVersion: v1
+kind: Service
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+spec:
+ ports:
+ - port: 443
+ protocol: TCP
+ targetPort: webhook-server
+ selector:
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/component: controller-manager
diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/opentelemetry-operator/serviceaccount.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/opentelemetry-operator/serviceaccount.yaml
new file mode 100644
index 00000000..f49d54b3
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/opentelemetry-operator/serviceaccount.yaml
@@ -0,0 +1,16 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+automountServiceAccountToken: true
+metadata:
+ name: opentelemetry-operator
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/opentelemetry-operator/tests/test-certmanager-connection.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/opentelemetry-operator/tests/test-certmanager-connection.yaml
new file mode 100644
index 00000000..8c13f151
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/opentelemetry-operator/tests/test-certmanager-connection.yaml
@@ -0,0 +1,53 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/tests/test-certmanager-connection.yaml
+apiVersion: v1
+kind: Pod
+metadata:
+ name: "example-opentelemetry-operator-cert-manager"
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ annotations:
+ "helm.sh/hook": test
+spec:
+ containers:
+ - name: wget
+ image: "busybox:latest"
+ env:
+ - name: CERT_MANAGER_CLUSTERIP
+ value: "cert-manager-webhook"
+ - name: CERT_MANAGER_PORT
+ value: "443"
+ command:
+ - sh
+ - -c
+ # The following shell script tests if the cert-manager service is up. If the service is up, when we try
+ # to wget its exposed port, we will get an HTTP error 400.
+ - |
+ wget_output=$(wget -q "$CERT_MANAGER_CLUSTERIP:$CERT_MANAGER_PORT")
+ if wget_output=="wget: server returned error: HTTP/1.0 400 Bad Request"
+ then exit 0
+ else exit 1
+ fi
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
+ restartPolicy: Never
+ nodeSelector:
+ kubernetes.io/os: linux
+ securityContext:
+ fsGroup: 65532
+ runAsGroup: 65532
+ runAsNonRoot: true
+ runAsUser: 65532
diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/opentelemetry-operator/tests/test-service-connection.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/opentelemetry-operator/tests/test-service-connection.yaml
new file mode 100644
index 00000000..59ef1413
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/opentelemetry-operator/tests/test-service-connection.yaml
@@ -0,0 +1,106 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/tests/test-service-connection.yaml
+apiVersion: v1
+kind: Pod
+metadata:
+ name: "example-opentelemetry-operator-metrics"
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ annotations:
+ "helm.sh/hook": test
+spec:
+ containers:
+ - name: wget
+ image: "busybox:latest"
+ env:
+ - name: MANAGER_METRICS_SERVICE_CLUSTERIP
+ value: "example-opentelemetry-operator"
+ - name: MANAGER_METRICS_SERVICE_PORT
+ value: "8443"
+ command:
+ - sh
+ - -c
+ # The following shell script tests if the controller-manager-metrics-service is up.
+ # If the service is up, when we try to wget its exposed port, we will get an HTTP error 400.
+ - |
+ wget_output=$(wget -q "$MANAGER_METRICS_SERVICE_CLUSTERIP:$MANAGER_METRICS_SERVICE_PORT")
+ if wget_output=="wget: server returned error: HTTP/1.0 400 Bad Request"
+ then exit 0
+ else exit 1
+ fi
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
+ restartPolicy: Never
+ nodeSelector:
+ kubernetes.io/os: linux
+ securityContext:
+ fsGroup: 65532
+ runAsGroup: 65532
+ runAsNonRoot: true
+ runAsUser: 65532
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/tests/test-service-connection.yaml
+apiVersion: v1
+kind: Pod
+metadata:
+ name: "example-opentelemetry-operator-webhook"
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ annotations:
+ "helm.sh/hook": test
+spec:
+ containers:
+ - name: wget
+ image: "busybox:latest"
+ env:
+ - name: WEBHOOK_SERVICE_CLUSTERIP
+ value: "example-opentelemetry-operator-webhook"
+ - name: WEBHOOK_SERVICE_PORT
+ value: "443"
+ command:
+ - sh
+ - -c
+ # The following shell script tests if the webhook service is up. If the service is up, when we try
+ # to wget its exposed port, we will get an HTTP error 400.
+ - |
+ wget_output=$(wget -q "$WEBHOOK_SERVICE_CLUSTERIP:$WEBHOOK_SERVICE_PORT")
+ if wget_output=="wget: server returned error: HTTP/1.0 400 Bad Request"
+ then exit 0
+ else exit 1
+ fi
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
+ restartPolicy: Never
+ nodeSelector:
+ kubernetes.io/os: linux
+ securityContext:
+ fsGroup: 65532
+ runAsGroup: 65532
+ runAsNonRoot: true
+ runAsUser: 65532
diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/prometheus-node-exporter/daemonset.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/prometheus-node-exporter/daemonset.yaml
new file mode 100644
index 00000000..c27c5df9
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/prometheus-node-exporter/daemonset.yaml
@@ -0,0 +1,133 @@
+---
+# Source: opentelemetry-kube-stack/charts/prometheus-node-exporter/templates/daemonset.yaml
+apiVersion: apps/v1
+kind: DaemonSet
+metadata:
+ name: example-prometheus-node-exporter
+ namespace: default
+ labels:
+ helm.sh/chart: prometheus-node-exporter-4.48.0
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/component: metrics
+ app.kubernetes.io/part-of: prometheus-node-exporter
+ app.kubernetes.io/name: prometheus-node-exporter
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/version: "1.9.1"
+ release: example
+spec:
+ selector:
+ matchLabels:
+ app.kubernetes.io/name: prometheus-node-exporter
+ app.kubernetes.io/instance: example
+ revisionHistoryLimit: 10
+ updateStrategy:
+ rollingUpdate:
+ maxUnavailable: 1
+ type: RollingUpdate
+ template:
+ metadata:
+ annotations:
+ cluster-autoscaler.kubernetes.io/safe-to-evict: "true"
+ labels:
+ helm.sh/chart: prometheus-node-exporter-4.48.0
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/component: metrics
+ app.kubernetes.io/part-of: prometheus-node-exporter
+ app.kubernetes.io/name: prometheus-node-exporter
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/version: "1.9.1"
+ release: example
+ jobLabel: node-exporter
+ spec:
+ automountServiceAccountToken: false
+ securityContext:
+ fsGroup: 65534
+ runAsGroup: 65534
+ runAsNonRoot: true
+ runAsUser: 65534
+ serviceAccountName: example-prometheus-node-exporter
+ containers:
+ - name: node-exporter
+ image: quay.io/prometheus/node-exporter:v1.9.1
+ imagePullPolicy: IfNotPresent
+ args:
+ - --path.procfs=/host/proc
+ - --path.sysfs=/host/sys
+ - --path.rootfs=/host/root
+ - --path.udev.data=/host/root/run/udev/data
+ - --web.listen-address=[$(HOST_IP)]:9100
+ - --collector.filesystem.mount-points-exclude=^/(dev|proc|sys|var/lib/docker/.+|var/lib/kubelet/.+)($|/)
+ - --collector.filesystem.fs-types-exclude=^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|sysfs|tracefs)$
+ securityContext:
+ readOnlyRootFilesystem: true
+ env:
+ - name: HOST_IP
+ value: 0.0.0.0
+ ports:
+ - name: http-metrics
+ containerPort: 9100
+ protocol: TCP
+ livenessProbe:
+ failureThreshold: 3
+ httpGet:
+ httpHeaders:
+ path: /
+ port: http-metrics
+ scheme: HTTP
+ initialDelaySeconds: 0
+ periodSeconds: 10
+ successThreshold: 1
+ timeoutSeconds: 1
+ readinessProbe:
+ failureThreshold: 3
+ httpGet:
+ httpHeaders:
+ path: /
+ port: http-metrics
+ scheme: HTTP
+ initialDelaySeconds: 0
+ periodSeconds: 10
+ successThreshold: 1
+ timeoutSeconds: 1
+ volumeMounts:
+ - name: proc
+ mountPath: /host/proc
+ readOnly: true
+ - name: sys
+ mountPath: /host/sys
+ readOnly: true
+ - name: root
+ mountPath: /host/root
+ mountPropagation: HostToContainer
+ readOnly: true
+ hostNetwork: true
+ hostPID: true
+ hostIPC: false
+ affinity:
+ nodeAffinity:
+ requiredDuringSchedulingIgnoredDuringExecution:
+ nodeSelectorTerms:
+ - matchExpressions:
+ - key: eks.amazonaws.com/compute-type
+ operator: NotIn
+ values:
+ - fargate
+ - key: type
+ operator: NotIn
+ values:
+ - virtual-kubelet
+ nodeSelector:
+ kubernetes.io/os: linux
+ tolerations:
+ - effect: NoSchedule
+ operator: Exists
+ volumes:
+ - name: proc
+ hostPath:
+ path: /proc
+ - name: sys
+ hostPath:
+ path: /sys
+ - name: root
+ hostPath:
+ path: /
diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/prometheus-node-exporter/service.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/prometheus-node-exporter/service.yaml
new file mode 100644
index 00000000..d4fb44a8
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/prometheus-node-exporter/service.yaml
@@ -0,0 +1,29 @@
+---
+# Source: opentelemetry-kube-stack/charts/prometheus-node-exporter/templates/service.yaml
+apiVersion: v1
+kind: Service
+metadata:
+ name: example-prometheus-node-exporter
+ namespace: default
+ labels:
+ helm.sh/chart: prometheus-node-exporter-4.48.0
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/component: metrics
+ app.kubernetes.io/part-of: prometheus-node-exporter
+ app.kubernetes.io/name: prometheus-node-exporter
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/version: "1.9.1"
+ release: example
+ jobLabel: node-exporter
+ annotations:
+ prometheus.io/scrape: "true"
+spec:
+ type: ClusterIP
+ ports:
+ - port: 9100
+ targetPort: 9100
+ protocol: TCP
+ name: http-metrics
+ selector:
+ app.kubernetes.io/name: prometheus-node-exporter
+ app.kubernetes.io/instance: example
diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/prometheus-node-exporter/serviceaccount.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/prometheus-node-exporter/serviceaccount.yaml
new file mode 100644
index 00000000..a3b0f1ed
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/prometheus-node-exporter/serviceaccount.yaml
@@ -0,0 +1,17 @@
+---
+# Source: opentelemetry-kube-stack/charts/prometheus-node-exporter/templates/serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: example-prometheus-node-exporter
+ namespace: default
+ labels:
+ helm.sh/chart: prometheus-node-exporter-4.48.0
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/component: metrics
+ app.kubernetes.io/part-of: prometheus-node-exporter
+ app.kubernetes.io/name: prometheus-node-exporter
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/version: "1.9.1"
+ release: example
+automountServiceAccountToken: false
diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/prometheus-node-exporter/servicemonitor.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/prometheus-node-exporter/servicemonitor.yaml
new file mode 100644
index 00000000..1e188084
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/prometheus-node-exporter/servicemonitor.yaml
@@ -0,0 +1,28 @@
+---
+# Source: opentelemetry-kube-stack/charts/prometheus-node-exporter/templates/servicemonitor.yaml
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+ name: example-prometheus-node-exporter
+ namespace: default
+ labels:
+ helm.sh/chart: prometheus-node-exporter-4.48.0
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/component: metrics
+ app.kubernetes.io/part-of: prometheus-node-exporter
+ app.kubernetes.io/name: prometheus-node-exporter
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/version: "1.9.1"
+ release: example
+spec:
+ jobLabel: jobLabel
+
+ selector:
+ matchLabels:
+ app.kubernetes.io/name: prometheus-node-exporter
+ app.kubernetes.io/instance: example
+ attachMetadata:
+ node: false
+ endpoints:
+ - port: http-metrics
+ scheme: http
diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/values.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/values.yaml
new file mode 100644
index 00000000..b643dbd7
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/values.yaml
@@ -0,0 +1,72 @@
+clusterName: demo
+collectors:
+ daemon:
+ enabled: true
+ # because this file is inside the examples folder, we need to reference it directly.
+ scrape_configs_file: "examples/prometheus-otel/kubelet_scrape_configs.yaml"
+ # Adding an additional label for this collctor.
+ labels:
+ otel-collector-type: daemonset-example
+ targetAllocator:
+ enabled: true
+ image: ghcr.io/open-telemetry/opentelemetry-operator/target-allocator:main
+ allocationStrategy: per-node
+ prometheusCR:
+ enabled: true
+ podMonitorSelector: {}
+ scrapeInterval: "30s"
+ serviceMonitorSelector: {}
+ config:
+ exporters:
+ otlp:
+ endpoint: ingest.example.com:443
+ headers:
+ "access-token": "${ACCESS_TOKEN}"
+ service:
+ pipelines:
+ metrics:
+ receivers: [prometheus]
+ exporters: [debug, otlp]
+ env:
+ - name: ACCESS_TOKEN
+ valueFrom:
+ secretKeyRef:
+ key: access_token
+ name: otel-collector-secret
+ presets:
+ logsCollection:
+ enabled: false
+ kubeletMetrics:
+ enabled: false
+ hostMetrics:
+ enabled: false
+ kubernetesAttributes:
+ enabled: false
+ kubernetesEvents:
+ enabled: false
+ clusterMetrics:
+ enabled: false
+instrumentation:
+ enabled: false
+opAMPBridge:
+ enabled: false
+kubernetesServiceMonitors:
+ enabled: true
+kubeApiServer:
+ enabled: true
+kubelet:
+ enabled: true
+kubeControllerManager:
+ enabled: true
+kubeDns:
+ enabled: true
+kubeEtcd:
+ enabled: true
+kubeScheduler:
+ enabled: true
+kubeProxy:
+ enabled: true
+kubeStateMetrics:
+ enabled: true
+nodeExporter:
+ enabled: true
diff --git a/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/README.md b/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/README.md
new file mode 100644
index 00000000..363c05ef
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/README.md
@@ -0,0 +1,4 @@
+# Secret CSI Driver example
+This example contains an example of how to use secrets from Secrets CSI Driver within the collector instance. This requires that the Secrets CSI Driver is configured with enough permissions to create secrets in Kubernetes API.
+
+
diff --git a/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/clusterrole.yaml b/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/clusterrole.yaml
new file mode 100644
index 00000000..3379a6a1
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/clusterrole.yaml
@@ -0,0 +1,140 @@
+---
+# Source: opentelemetry-kube-stack/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ name: example-collector
+rules:
+- apiGroups: [""]
+ resources:
+ - namespaces
+ - nodes
+ - nodes/proxy
+ - nodes/metrics
+ - nodes/stats
+ - services
+ - endpoints
+ - pods
+ - events
+ - secrets
+ - persistentvolumeclaims
+ - persistentvolumes
+ verbs: ["get", "list", "watch"]
+- apiGroups: ["monitoring.coreos.com"]
+ resources:
+ - servicemonitors
+ - podmonitors
+ - scrapeconfigs
+ - probes
+ verbs: ["get", "list", "watch"]
+- apiGroups:
+ - extensions
+ resources:
+ - ingresses
+ verbs: ["get", "list", "watch"]
+- apiGroups:
+ - apps
+ resources:
+ - daemonsets
+ - deployments
+ - replicasets
+ - statefulsets
+ verbs: ["get", "list", "watch"]
+- apiGroups:
+ - networking.k8s.io
+ resources:
+ - ingresses
+ verbs: ["get", "list", "watch"]
+- apiGroups: ["discovery.k8s.io"]
+ resources:
+ - endpointslices
+ verbs: ["get", "list", "watch"]
+- nonResourceURLs: ["/metrics", "/metrics/cadvisor"]
+ verbs: ["get"]
+
+- verbs:
+ - get
+ - list
+ - watch
+ - create
+ - update
+ - patch
+ - delete
+ apiGroups:
+ - coordination.k8s.io
+ resources:
+ - leases
+- apiGroups:
+ - ""
+ resources:
+ - events
+ - namespaces
+ - namespaces/status
+ - nodes
+ - nodes/spec
+ - pods
+ - pods/status
+ - replicationcontrollers
+ - replicationcontrollers/status
+ - resourcequotas
+ - services
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups:
+ - apps
+ resources:
+ - daemonsets
+ - deployments
+ - replicasets
+ - statefulsets
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups:
+ - extensions
+ resources:
+ - daemonsets
+ - deployments
+ - replicasets
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups:
+ - batch
+ resources:
+ - jobs
+ - cronjobs
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups:
+ - autoscaling
+ resources:
+ - horizontalpodautoscalers
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups: ["events.k8s.io"]
+ resources: ["events"]
+ verbs: ["watch", "list"]
+---
+# Source: opentelemetry-kube-stack/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ name: example-daemon
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: example-collector
+subjects:
+- kind: ServiceAccount
+ # quirk of the Operator
+ name: "example-daemon-collector"
+ namespace: default
diff --git a/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/collector.yaml b/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/collector.yaml
new file mode 100644
index 00000000..0ccddbca
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/collector.yaml
@@ -0,0 +1,514 @@
+---
+# Source: opentelemetry-kube-stack/templates/collector.yaml
+apiVersion: opentelemetry.io/v1beta1
+kind: OpenTelemetryCollector
+metadata:
+ name: example-daemon
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-kube-stack-0.14.11
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ release: "example"
+spec:
+ managementState: managed
+ mode: daemonset
+ config:
+ exporters:
+ debug: {}
+ extensions:
+ k8s_leader_elector/k8s_cluster:
+ auth_type: serviceAccount
+ lease_name: k8s.cluster.receiver.opentelemetry.io
+ lease_namespace: default
+ k8s_leader_elector/k8s_objects:
+ auth_type: serviceAccount
+ lease_name: k8s.objects.receiver.opentelemetry.io
+ lease_namespace: default
+ processors:
+ batch:
+ send_batch_max_size: 1500
+ send_batch_size: 1000
+ timeout: 1s
+ k8sattributes:
+ extract:
+ labels:
+ - from: pod
+ key: app.kubernetes.io/instance
+ tag_name: k8s.app.instance
+ - from: pod
+ key: app.kubernetes.io/component
+ tag_name: k8s.app.component
+ metadata:
+ - k8s.namespace.name
+ - k8s.pod.name
+ - k8s.pod.uid
+ - k8s.node.name
+ - k8s.pod.start_time
+ - k8s.deployment.name
+ - k8s.replicaset.name
+ - k8s.replicaset.uid
+ - k8s.daemonset.name
+ - k8s.daemonset.uid
+ - k8s.job.name
+ - k8s.job.uid
+ - k8s.container.name
+ - k8s.cronjob.name
+ - k8s.statefulset.name
+ - k8s.statefulset.uid
+ - container.image.tag
+ - container.image.name
+ - k8s.cluster.uid
+ - service.namespace
+ - service.name
+ - service.version
+ - service.instance.id
+ otel_annotations: true
+ filter:
+ node_from_env_var: OTEL_K8S_NODE_NAME
+ passthrough: false
+ pod_association:
+ - sources:
+ - from: resource_attribute
+ name: k8s.pod.uid
+ - sources:
+ - from: resource_attribute
+ name: k8s.pod.name
+ - from: resource_attribute
+ name: k8s.namespace.name
+ - from: resource_attribute
+ name: k8s.node.name
+ - sources:
+ - from: resource_attribute
+ name: k8s.pod.ip
+ - sources:
+ - from: resource_attribute
+ name: k8s.pod.name
+ - from: resource_attribute
+ name: k8s.namespace.name
+ - sources:
+ - from: connection
+ resource/hostname:
+ attributes:
+ - action: insert
+ from_attribute: k8s.node.name
+ key: host.name
+ resourcedetection/env:
+ detectors:
+ - env
+ - k8snode
+ override: false
+ timeout: 2s
+ receivers:
+ filelog:
+ exclude: []
+ include:
+ - /var/log/pods/*/*/*.log
+ include_file_name: false
+ include_file_path: true
+ operators:
+ - id: container-parser
+ max_log_size: 102400
+ type: container
+ retry_on_failure:
+ enabled: true
+ start_at: end
+ hostmetrics:
+ collection_interval: 10s
+ root_path: /hostfs
+ scrapers:
+ cpu:
+ metrics:
+ system.cpu.logical.count:
+ enabled: true
+ system.cpu.utilization:
+ enabled: true
+ disk: {}
+ filesystem:
+ exclude_fs_types:
+ fs_types:
+ - autofs
+ - binfmt_misc
+ - bpf
+ - cgroup2
+ - configfs
+ - debugfs
+ - devpts
+ - devtmpfs
+ - fusectl
+ - hugetlbfs
+ - iso9660
+ - mqueue
+ - nsfs
+ - overlay
+ - proc
+ - procfs
+ - pstore
+ - rpc_pipefs
+ - securityfs
+ - selinuxfs
+ - squashfs
+ - sysfs
+ - tracefs
+ match_type: strict
+ exclude_mount_points:
+ match_type: regexp
+ mount_points:
+ - /dev/*
+ - /proc/*
+ - /sys/*
+ - /run/k3s/containerd/*
+ - /var/lib/docker/*
+ - /var/lib/kubelet/*
+ - /snap/*
+ metrics:
+ system.filesystem.utilization:
+ enabled: true
+ load: {}
+ memory:
+ metrics:
+ system.memory.limit:
+ enabled: true
+ system.memory.utilization:
+ enabled: true
+ network: {}
+ paging:
+ metrics:
+ system.paging.usage:
+ enabled: true
+ system:
+ metrics:
+ system.uptime:
+ enabled: true
+ k8s_cluster:
+ allocatable_types_to_report:
+ - cpu
+ - memory
+ - storage
+ auth_type: serviceAccount
+ collection_interval: 10s
+ k8s_leader_elector: k8s_leader_elector/k8s_cluster
+ node_conditions_to_report:
+ - Ready
+ - MemoryPressure
+ - DiskPressure
+ - NetworkUnavailable
+ k8sobjects:
+ k8s_leader_elector: k8s_leader_elector/k8s_objects
+ objects:
+ - exclude_watch_type:
+ - DELETED
+ group: events.k8s.io
+ mode: watch
+ name: events
+ kubeletstats:
+ auth_type: serviceAccount
+ collection_interval: 15s
+ endpoint: https://${env:OTEL_K8S_NODE_IP}:10250
+ extra_metadata_labels:
+ - container.id
+ - k8s.volume.type
+ insecure_skip_verify: true
+ k8s_api_config:
+ auth_type: serviceAccount
+ metric_groups:
+ - node
+ - pod
+ - volume
+ - container
+ metrics:
+ container.cpu.usage:
+ enabled: true
+ k8s.node.cpu.usage:
+ enabled: true
+ k8s.node.uptime:
+ enabled: true
+ k8s.pod.cpu.usage:
+ enabled: true
+ k8s.pod.uptime:
+ enabled: true
+ otlp:
+ protocols:
+ grpc:
+ endpoint: 0.0.0.0:4317
+ http:
+ endpoint: 0.0.0.0:4318
+ prometheus:
+ config:
+ scrape_configs:
+ - job_name: kubernetes-pods
+ kubernetes_sd_configs:
+ - role: pod
+ selectors:
+ - field: spec.nodeName=${env:OTEL_K8S_NODE_NAME}
+ role: pod
+ relabel_configs:
+ - action: keep
+ regex: true
+ source_labels:
+ - __meta_kubernetes_pod_annotation_prometheus_io_scrape
+ - action: drop
+ regex: true
+ source_labels:
+ - __meta_kubernetes_pod_annotation_prometheus_io_scrape_slow
+ - action: replace
+ regex: (https?)
+ source_labels:
+ - __meta_kubernetes_pod_annotation_prometheus_io_scheme
+ target_label: __scheme__
+ - action: replace
+ regex: (.+)
+ source_labels:
+ - __meta_kubernetes_pod_annotation_prometheus_io_path
+ target_label: __metrics_path__
+ - action: replace
+ regex: ([^:]+)(?::\d+)?;(\d+)
+ replacement: $$1:$$2
+ source_labels:
+ - __address__
+ - __meta_kubernetes_pod_annotation_prometheus_io_port
+ target_label: __address__
+ - action: labelmap
+ regex: __meta_kubernetes_pod_annotation_prometheus_io_param_(.+)
+ replacement: __param_$$1
+ - action: labelmap
+ regex: __meta_kubernetes_pod_label_(.+)
+ - action: replace
+ source_labels:
+ - __meta_kubernetes_namespace
+ target_label: namespace
+ - action: replace
+ source_labels:
+ - __meta_kubernetes_pod_name
+ target_label: pod
+ - action: drop
+ regex: Pending|Succeeded|Failed|Completed
+ source_labels:
+ - __meta_kubernetes_pod_phase
+ - action: replace
+ source_labels:
+ - __meta_kubernetes_pod_label_app_kubernetes_io_name
+ target_label: job
+ scrape_interval: 30s
+ - job_name: node-exporter
+ relabel_configs:
+ - action: labelmap
+ regex: __meta_kubernetes_node_label_(.+)
+ - action: replace
+ regex: (.*)
+ replacement: $$1
+ separator: ;
+ source_labels:
+ - job
+ target_label: __tmp_prometheus_job_name
+ scrape_interval: 30s
+ static_configs:
+ - targets:
+ - ${env:OTEL_K8S_NODE_IP}:9100
+ - authorization:
+ credentials_file: /var/run/secrets/kubernetes.io/serviceaccount/token
+ type: Bearer
+ follow_redirects: true
+ honor_labels: true
+ honor_timestamps: true
+ job_name: kubelet
+ kubernetes_sd_configs:
+ - follow_redirects: true
+ role: node
+ selectors:
+ - field: metadata.name=${env:OTEL_K8S_NODE_NAME}
+ role: node
+ metric_relabel_configs:
+ - action: drop
+ regex: container_cpu_(load_average_10s|system_seconds_total|user_seconds_total)
+ replacement: $$1
+ separator: ;
+ source_labels:
+ - __name__
+ - action: drop
+ regex: container_fs_(io_current|reads_merged_total|sector_reads_total|sector_writes_total|writes_merged_total)
+ replacement: $$1
+ separator: ;
+ source_labels:
+ - __name__
+ - action: drop
+ regex: container_memory_(mapped_file|swap)
+ replacement: $$1
+ separator: ;
+ source_labels:
+ - __name__
+ - action: drop
+ regex: container_(file_descriptors|tasks_state|threads_max)
+ replacement: $$1
+ separator: ;
+ source_labels:
+ - __name__
+ - action: drop
+ regex: container_spec.*
+ replacement: $$1
+ separator: ;
+ source_labels:
+ - __name__
+ - action: drop
+ regex: .+;
+ replacement: $$1
+ separator: ;
+ source_labels:
+ - id
+ - pod
+ metrics_path: /metrics/cadvisor
+ relabel_configs:
+ - action: replace
+ regex: (.*)
+ replacement: $$1
+ separator: ;
+ source_labels:
+ - job
+ target_label: __tmp_prometheus_job_name
+ - action: replace
+ replacement: kubelet
+ target_label: job
+ - action: replace
+ regex: (.*)
+ replacement: $$1
+ separator: ;
+ source_labels:
+ - __meta_kubernetes_node_name
+ target_label: node
+ - action: replace
+ regex: (.*)
+ replacement: https-metrics
+ separator: ;
+ target_label: endpoint
+ - action: replace
+ regex: (.*)
+ replacement: $$1
+ separator: ;
+ source_labels:
+ - __metrics_path__
+ target_label: metrics_path
+ - action: hashmod
+ modulus: 1
+ regex: (.*)
+ replacement: $$1
+ separator: ;
+ source_labels:
+ - __address__
+ target_label: __tmp_hash
+ - action: keep
+ regex: $(SHARD)
+ replacement: $$1
+ separator: ;
+ source_labels:
+ - __tmp_hash
+ scheme: https
+ scrape_interval: 15s
+ scrape_timeout: 10s
+ tls_config:
+ ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
+ insecure_skip_verify: true
+ service:
+ extensions:
+ - k8s_leader_elector/k8s_objects
+ - k8s_leader_elector/k8s_cluster
+ pipelines:
+ logs:
+ exporters:
+ - debug
+ processors:
+ - k8sattributes
+ - resourcedetection/env
+ - resource/hostname
+ - batch
+ receivers:
+ - otlp
+ - filelog
+ - k8sobjects
+ metrics:
+ exporters:
+ - debug
+ processors:
+ - k8sattributes
+ - resourcedetection/env
+ - resource/hostname
+ - batch
+ receivers:
+ - prometheus
+ - otlp
+ - hostmetrics
+ - kubeletstats
+ - k8s_cluster
+ traces:
+ exporters:
+ - debug
+ processors:
+ - k8sattributes
+ - resourcedetection/env
+ - resource/hostname
+ - batch
+ receivers:
+ - otlp
+ imagePullPolicy: IfNotPresent
+ upgradeStrategy: automatic
+ terminationGracePeriodSeconds: 30
+ resources:
+ limits:
+ cpu: 200m
+ memory: 500Mi
+ requests:
+ cpu: 100m
+ memory: 250Mi
+ securityContext:
+ {}
+ volumeMounts:
+ - name: varlogpods
+ mountPath: /var/log/pods
+ readOnly: true
+ - name: varlibdockercontainers
+ mountPath: /var/lib/docker/containers
+ readOnly: true
+ - name: hostfs
+ mountPath: /hostfs
+ readOnly: true
+ mountPropagation: HostToContainer
+ env:
+ - name: K8S_NODE_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: spec.nodeName
+ - name: OTEL_K8S_NODE_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: spec.nodeName
+ - name: OTEL_K8S_NODE_IP
+ valueFrom:
+ fieldRef:
+ fieldPath: status.hostIP
+ - name: OTEL_K8S_NAMESPACE
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.namespace
+ - name: OTEL_K8S_POD_NAME
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.name
+ - name: OTEL_K8S_POD_IP
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: status.podIP
+ - name: OTEL_RESOURCE_ATTRIBUTES
+ value: "k8s.pod.name=$(OTEL_K8S_POD_NAME),k8s.namespace.name=$(OTEL_K8S_NAMESPACE),k8s.node.name=$(OTEL_K8S_NODE_NAME),host.name=$(OTEL_K8S_NODE_NAME),k8s.node.ip=$(OTEL_K8S_NODE_IP),k8s.pod.ip=$(OTEL_K8S_POD_IP),k8s.cluster.name=demo"
+
+ volumes:
+ - name: varlogpods
+ hostPath:
+ path: /var/log/pods
+ - name: varlibdockercontainers
+ hostPath:
+ path: /var/lib/docker/containers
+ - name: hostfs
+ hostPath:
+ path: /
diff --git a/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/extramanifests.yaml b/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/extramanifests.yaml
new file mode 100644
index 00000000..fa01c2bd
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/extramanifests.yaml
@@ -0,0 +1,20 @@
+---
+# Source: opentelemetry-kube-stack/templates/extramanifests.yaml
+apiVersion: secrets-store.csi.x-k8s.io/v1
+kind: SecretProviderClass
+metadata:
+ name: collector-credentials
+spec:
+ parameters:
+ objects: |
+ - secretPath: data/collector-credentials
+ objectName: token
+ secretKey: token
+ vaultAddress: https://your-vault.com
+ provider: vault
+ secretObjects:
+ - data:
+ - key: ACCESS_TOKEN
+ objectName: token
+ secretName: collector-credentials-secret
+ type: Opaque
diff --git a/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/hooks.yaml b/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/hooks.yaml
new file mode 100644
index 00000000..f528b802
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/hooks.yaml
@@ -0,0 +1,64 @@
+---
+# Source: opentelemetry-kube-stack/templates/hooks.yaml
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: delete-resources-sa
+ annotations:
+ "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
+---
+# Source: opentelemetry-kube-stack/templates/hooks.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: Role
+metadata:
+ name: delete-resources-role
+ annotations:
+ "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
+rules:
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - instrumentations
+ - opampbridges
+ - opentelemetrycollectors
+ verbs:
+ - get
+ - list
+ - delete
+---
+# Source: opentelemetry-kube-stack/templates/hooks.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: RoleBinding
+metadata:
+ name: delete-resources-rolebinding
+ annotations:
+ "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: Role
+ name: delete-resources-role
+subjects:
+ - kind: ServiceAccount
+ name: delete-resources-sa
+---
+# Source: opentelemetry-kube-stack/templates/hooks.yaml
+apiVersion: batch/v1
+kind: Job
+metadata:
+ name: opentelemetry-kube-stack-pre-delete-job
+ annotations:
+ "helm.sh/hook": pre-delete
+ "helm.sh/hook-delete-policy": hook-succeeded,hook-failed
+spec:
+ template:
+ spec:
+ restartPolicy: Never
+ serviceAccountName: delete-resources-sa
+ containers:
+ - name: delete-resources
+ image: "rancher/kubectl:v1.34.1"
+ args:
+ - "delete"
+ - "instrumentations,opampbridges,opentelemetrycollectors"
+ - "-l"
+ - "helm.sh/chart=opentelemetry-kube-stack-0.14.11"
diff --git a/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/opentelemetry-operator/admission-webhooks/operator-webhook-with-cert-manager.yaml b/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/opentelemetry-operator/admission-webhooks/operator-webhook-with-cert-manager.yaml
new file mode 100644
index 00000000..1b4f51a7
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/opentelemetry-operator/admission-webhooks/operator-webhook-with-cert-manager.yaml
@@ -0,0 +1,192 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/admission-webhooks/operator-webhook-with-cert-manager.yaml
+apiVersion: admissionregistration.k8s.io/v1
+kind: MutatingWebhookConfiguration
+metadata:
+ annotations:
+ cert-manager.io/inject-ca-from: default/example-opentelemetry-operator-serving-cert
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ name: example-opentelemetry-operator-mutation
+webhooks:
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /mutate-opentelemetry-io-v1alpha1-instrumentation
+ port: 443
+ failurePolicy: Ignore
+ name: minstrumentation.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1alpha1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - instrumentations
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /mutate-opentelemetry-io-v1beta1-opentelemetrycollector
+ port: 443
+ failurePolicy: Ignore
+ name: mopentelemetrycollectorbeta.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1beta1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - opentelemetrycollectors
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /mutate-v1-pod
+ port: 443
+ failurePolicy: Ignore
+ name: mpod.kb.io
+ rules:
+ - apiGroups:
+ - ""
+ apiVersions:
+ - v1
+ operations:
+ - CREATE
+ resources:
+ - pods
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/admission-webhooks/operator-webhook-with-cert-manager.yaml
+apiVersion: admissionregistration.k8s.io/v1
+kind: ValidatingWebhookConfiguration
+metadata:
+ annotations:
+ cert-manager.io/inject-ca-from: default/example-opentelemetry-operator-serving-cert
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ name: example-opentelemetry-operator-validation
+webhooks:
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /validate-opentelemetry-io-v1alpha1-instrumentation
+ port: 443
+ failurePolicy: Ignore
+ name: vinstrumentationcreateupdate.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1alpha1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - instrumentations
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /validate-opentelemetry-io-v1alpha1-instrumentation
+ port: 443
+ failurePolicy: Ignore
+ name: vinstrumentationdelete.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1alpha1
+ operations:
+ - DELETE
+ resources:
+ - instrumentations
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /validate-opentelemetry-io-v1beta1-opentelemetrycollector
+ port: 443
+ failurePolicy: Ignore
+ name: vopentelemetrycollectorcreateupdatebeta.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1beta1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - opentelemetrycollectors
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
+ - admissionReviewVersions:
+ - v1
+ clientConfig:
+ service:
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+ path: /validate-opentelemetry-io-v1beta1-opentelemetrycollector
+ port: 443
+ failurePolicy: Ignore
+ name: vopentelemetrycollectordeletebeta.kb.io
+ rules:
+ - apiGroups:
+ - opentelemetry.io
+ apiVersions:
+ - v1beta1
+ operations:
+ - DELETE
+ resources:
+ - opentelemetrycollectors
+ scope: Namespaced
+ sideEffects: None
+ timeoutSeconds: 10
diff --git a/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/opentelemetry-operator/admission-webhooks/operator-webhook.yaml b/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/opentelemetry-operator/admission-webhooks/operator-webhook.yaml
new file mode 100644
index 00000000..5b9ff551
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/opentelemetry-operator/admission-webhooks/operator-webhook.yaml
@@ -0,0 +1,3 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/admission-webhooks/operator-webhook.yaml
+---
diff --git a/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/opentelemetry-operator/certmanager.yaml b/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/opentelemetry-operator/certmanager.yaml
new file mode 100644
index 00000000..a8922eee
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/opentelemetry-operator/certmanager.yaml
@@ -0,0 +1,43 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/certmanager.yaml
+apiVersion: cert-manager.io/v1
+kind: Certificate
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ name: example-opentelemetry-operator-serving-cert
+ namespace: default
+spec:
+ dnsNames:
+ - example-opentelemetry-operator-webhook.default.svc
+ - example-opentelemetry-operator-webhook.default.svc.cluster.local
+ issuerRef:
+ kind: Issuer
+ name: example-opentelemetry-operator-selfsigned-issuer
+ secretName: example-opentelemetry-operator-controller-manager-service-cert
+ subject:
+ organizationalUnits:
+ - example-opentelemetry-operator
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/certmanager.yaml
+apiVersion: cert-manager.io/v1
+kind: Issuer
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ name: example-opentelemetry-operator-selfsigned-issuer
+ namespace: default
+spec:
+ selfSigned: {}
diff --git a/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/opentelemetry-operator/clusterrole.yaml b/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/opentelemetry-operator/clusterrole.yaml
new file mode 100644
index 00000000..4ae76fec
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/opentelemetry-operator/clusterrole.yaml
@@ -0,0 +1,402 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-manager
+rules:
+ - apiGroups:
+ - ""
+ resources:
+ - configmaps
+ - persistentvolumeclaims
+ - persistentvolumes
+ - pods
+ - serviceaccounts
+ - services
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - events
+ verbs:
+ - create
+ - get
+ - list
+ - patch
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - namespaces
+ verbs:
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - namespaces/status
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - nodes/spec
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - pods/status
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - replicationcontrollers
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - replicationcontrollers/status
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - resourcequotas
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - apps
+ resources:
+ - daemonsets
+ - deployments
+ - statefulsets
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - apps
+ - extensions
+ resources:
+ - replicasets
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - extensions
+ resources:
+ - daemonsets
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - extensions
+ resources:
+ - deployments
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - autoscaling
+ resources:
+ - horizontalpodautoscalers
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - batch
+ resources:
+ - jobs
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - batch
+ resources:
+ - cronjobs
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - nodes/proxy
+ verbs:
+ - get
+ - apiGroups:
+ - ""
+ resources:
+ - nodes/stats
+ verbs:
+ - get
+ - apiGroups:
+ - config.openshift.io
+ resources:
+ - infrastructures
+ - infrastructures/status
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - coordination.k8s.io
+ resources:
+ - leases
+ verbs:
+ - create
+ - get
+ - list
+ - update
+ - apiGroups:
+ - events.k8s.io
+ resources:
+ - events
+ verbs:
+ - list
+ - watch
+ - apiGroups:
+ - monitoring.coreos.com
+ resources:
+ - podmonitors
+ - servicemonitors
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - networking.k8s.io
+ resources:
+ - ingresses
+ - networkpolicies
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - instrumentations
+ verbs:
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges/finalizers
+ verbs:
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges/status
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opentelemetrycollectors
+ verbs:
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opentelemetrycollectors/finalizers
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opentelemetrycollectors/status
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - policy
+ resources:
+ - poddisruptionbudgets
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - route.openshift.io
+ resources:
+ - routes
+ - routes/custom-host
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - targetallocators
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - targetallocators/status
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - targetallocators/finalizers
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - cert-manager.io
+ resources:
+ - issuers
+ - certificaterequests
+ - certificates
+ verbs:
+ - create
+ - get
+ - list
+ - watch
+ - update
+ - patch
+ - delete
+ - apiGroups:
+ - authorization.k8s.io
+ resources:
+ - subjectaccessreviews
+ verbs:
+ - create
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-metrics
+rules:
+ - nonResourceURLs:
+ - /metrics
+ verbs:
+ - get
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrole.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-proxy
+rules:
+ - apiGroups:
+ - authentication.k8s.io
+ resources:
+ - tokenreviews
+ verbs:
+ - create
diff --git a/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/opentelemetry-operator/clusterrolebinding.yaml b/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/opentelemetry-operator/clusterrolebinding.yaml
new file mode 100644
index 00000000..831b2df7
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/opentelemetry-operator/clusterrolebinding.yaml
@@ -0,0 +1,44 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrolebinding.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-manager
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: example-opentelemetry-operator-manager
+subjects:
+ - kind: ServiceAccount
+ name: opentelemetry-operator
+ namespace: default
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrolebinding.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-proxy
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: example-opentelemetry-operator-proxy
+subjects:
+ - kind: ServiceAccount
+ name: opentelemetry-operator
+ namespace: default
diff --git a/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/opentelemetry-operator/deployment.yaml b/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/opentelemetry-operator/deployment.yaml
new file mode 100644
index 00000000..ca0ddf47
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/opentelemetry-operator/deployment.yaml
@@ -0,0 +1,122 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/deployment.yaml
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator
+ namespace: default
+spec:
+ replicas: 1
+ revisionHistoryLimit: 10
+ selector:
+ matchLabels:
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/component: controller-manager
+ template:
+ metadata:
+ annotations:
+ kubectl.kubernetes.io/default-container: manager
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ spec:
+ automountServiceAccountToken: true
+ hostNetwork: false
+ containers:
+ - args:
+ - --metrics-addr=0.0.0.0:8080
+ - --enable-leader-election
+ - --health-probe-addr=:8081
+ - --webhook-port=9443
+ - --collector-image=otel/opentelemetry-collector-k8s:0.144.0
+ command:
+ - /manager
+ env:
+ - name: SERVICE_ACCOUNT_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: spec.serviceAccountName
+ - name: ENABLE_WEBHOOKS
+ value: "true"
+ image: "ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator:0.144.0"
+ name: manager
+ imagePullPolicy: IfNotPresent
+ ports:
+ - containerPort: 8080
+ name: metrics
+ protocol: TCP
+ - containerPort: 9443
+ name: webhook-server
+ protocol: TCP
+ livenessProbe:
+ httpGet:
+ path: /healthz
+ port: 8081
+ initialDelaySeconds: 15
+ periodSeconds: 20
+ readinessProbe:
+ httpGet:
+ path: /readyz
+ port: 8081
+ initialDelaySeconds: 5
+ periodSeconds: 10
+ resources:
+ {}
+ volumeMounts:
+ - mountPath: /tmp/k8s-webhook-server/serving-certs
+ name: cert
+ readOnly: true
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
+
+ - args:
+ - --secure-listen-address=0.0.0.0:8443
+ - --upstream=http://127.0.0.1:8080/
+ - --v=0
+ image: "quay.io/brancz/kube-rbac-proxy:v0.20.0"
+ name: kube-rbac-proxy
+ ports:
+ - containerPort: 8443
+ name: https
+ protocol: TCP
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
+ nodeSelector:
+ kubernetes.io/os: linux
+ serviceAccountName: opentelemetry-operator
+ terminationGracePeriodSeconds: 10
+ volumes:
+ - name: cert
+ secret:
+ defaultMode: 420
+ secretName: example-opentelemetry-operator-controller-manager-service-cert
+ securityContext:
+ fsGroup: 65532
+ runAsGroup: 65532
+ runAsNonRoot: true
+ runAsUser: 65532
diff --git a/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/opentelemetry-operator/role.yaml b/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/opentelemetry-operator/role.yaml
new file mode 100644
index 00000000..88ccd2b0
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/opentelemetry-operator/role.yaml
@@ -0,0 +1,199 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/role.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: Role
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-leader-election
+ namespace: default
+rules:
+ - apiGroups:
+ - ""
+ resources:
+ - configmaps
+ - pods
+ - serviceaccounts
+ - services
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - events
+ verbs:
+ - create
+ - patch
+ - apiGroups:
+ - ""
+ resources:
+ - namespaces
+ - secrets
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - apps
+ resources:
+ - daemonsets
+ - deployments
+ - statefulsets
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - apps
+ resources:
+ - replicasets
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - autoscaling
+ resources:
+ - horizontalpodautoscalers
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - batch
+ resources:
+ - jobs
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - config.openshift.io
+ resources:
+ - infrastructures
+ - infrastructures/status
+ verbs:
+ - get
+ - list
+ - watch
+ - apiGroups:
+ - coordination.k8s.io
+ resources:
+ - leases
+ verbs:
+ - create
+ - get
+ - list
+ - update
+ - apiGroups:
+ - monitoring.coreos.com
+ resources:
+ - podmonitors
+ - servicemonitors
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - networking.k8s.io
+ resources:
+ - ingresses
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - instrumentations
+ - opentelemetrycollectors
+ verbs:
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges
+ - targetallocators
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges/finalizers
+ verbs:
+ - update
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opampbridges/status
+ - opentelemetrycollectors/finalizers
+ - opentelemetrycollectors/status
+ - targetallocators/status
+ - targetallocators/finalizers
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - policy
+ resources:
+ - poddisruptionbudgets
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - route.openshift.io
+ resources:
+ - routes
+ - routes/custom-host
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
diff --git a/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/opentelemetry-operator/rolebinding.yaml b/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/opentelemetry-operator/rolebinding.yaml
new file mode 100644
index 00000000..fa556fae
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/opentelemetry-operator/rolebinding.yaml
@@ -0,0 +1,23 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/rolebinding.yaml
+apiVersion: rbac.authorization.k8s.io/v1
+kind: RoleBinding
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-leader-election
+ namespace: default
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: Role
+ name: example-opentelemetry-operator-leader-election
+subjects:
+ - kind: ServiceAccount
+ name: opentelemetry-operator
+ namespace: default
diff --git a/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/opentelemetry-operator/service.yaml b/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/opentelemetry-operator/service.yaml
new file mode 100644
index 00000000..9f7f7220
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/opentelemetry-operator/service.yaml
@@ -0,0 +1,51 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/service.yaml
+apiVersion: v1
+kind: Service
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator
+ namespace: default
+spec:
+ ports:
+ - name: https
+ port: 8443
+ protocol: TCP
+ targetPort: https
+ - name: metrics
+ port: 8080
+ protocol: TCP
+ targetPort: metrics
+ selector:
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/component: controller-manager
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/service.yaml
+apiVersion: v1
+kind: Service
+metadata:
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ name: example-opentelemetry-operator-webhook
+ namespace: default
+spec:
+ ports:
+ - port: 443
+ protocol: TCP
+ targetPort: webhook-server
+ selector:
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/component: controller-manager
diff --git a/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/opentelemetry-operator/serviceaccount.yaml b/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/opentelemetry-operator/serviceaccount.yaml
new file mode 100644
index 00000000..f49d54b3
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/opentelemetry-operator/serviceaccount.yaml
@@ -0,0 +1,16 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/serviceaccount.yaml
+apiVersion: v1
+kind: ServiceAccount
+automountServiceAccountToken: true
+metadata:
+ name: opentelemetry-operator
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
diff --git a/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/opentelemetry-operator/tests/test-certmanager-connection.yaml b/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/opentelemetry-operator/tests/test-certmanager-connection.yaml
new file mode 100644
index 00000000..8c13f151
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/opentelemetry-operator/tests/test-certmanager-connection.yaml
@@ -0,0 +1,53 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/tests/test-certmanager-connection.yaml
+apiVersion: v1
+kind: Pod
+metadata:
+ name: "example-opentelemetry-operator-cert-manager"
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: webhook
+ annotations:
+ "helm.sh/hook": test
+spec:
+ containers:
+ - name: wget
+ image: "busybox:latest"
+ env:
+ - name: CERT_MANAGER_CLUSTERIP
+ value: "cert-manager-webhook"
+ - name: CERT_MANAGER_PORT
+ value: "443"
+ command:
+ - sh
+ - -c
+ # The following shell script tests if the cert-manager service is up. If the service is up, when we try
+ # to wget its exposed port, we will get an HTTP error 400.
+ - |
+ wget_output=$(wget -q "$CERT_MANAGER_CLUSTERIP:$CERT_MANAGER_PORT")
+ if wget_output=="wget: server returned error: HTTP/1.0 400 Bad Request"
+ then exit 0
+ else exit 1
+ fi
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
+ restartPolicy: Never
+ nodeSelector:
+ kubernetes.io/os: linux
+ securityContext:
+ fsGroup: 65532
+ runAsGroup: 65532
+ runAsNonRoot: true
+ runAsUser: 65532
diff --git a/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/opentelemetry-operator/tests/test-service-connection.yaml b/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/opentelemetry-operator/tests/test-service-connection.yaml
new file mode 100644
index 00000000..59ef1413
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/opentelemetry-operator/tests/test-service-connection.yaml
@@ -0,0 +1,106 @@
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/tests/test-service-connection.yaml
+apiVersion: v1
+kind: Pod
+metadata:
+ name: "example-opentelemetry-operator-metrics"
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ annotations:
+ "helm.sh/hook": test
+spec:
+ containers:
+ - name: wget
+ image: "busybox:latest"
+ env:
+ - name: MANAGER_METRICS_SERVICE_CLUSTERIP
+ value: "example-opentelemetry-operator"
+ - name: MANAGER_METRICS_SERVICE_PORT
+ value: "8443"
+ command:
+ - sh
+ - -c
+ # The following shell script tests if the controller-manager-metrics-service is up.
+ # If the service is up, when we try to wget its exposed port, we will get an HTTP error 400.
+ - |
+ wget_output=$(wget -q "$MANAGER_METRICS_SERVICE_CLUSTERIP:$MANAGER_METRICS_SERVICE_PORT")
+ if wget_output=="wget: server returned error: HTTP/1.0 400 Bad Request"
+ then exit 0
+ else exit 1
+ fi
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
+ restartPolicy: Never
+ nodeSelector:
+ kubernetes.io/os: linux
+ securityContext:
+ fsGroup: 65532
+ runAsGroup: 65532
+ runAsNonRoot: true
+ runAsUser: 65532
+---
+# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/tests/test-service-connection.yaml
+apiVersion: v1
+kind: Pod
+metadata:
+ name: "example-opentelemetry-operator-webhook"
+ namespace: default
+ labels:
+ helm.sh/chart: opentelemetry-operator-0.105.1
+ app.kubernetes.io/name: opentelemetry-operator
+ app.kubernetes.io/version: "0.144.0"
+ app.kubernetes.io/managed-by: Helm
+ app.kubernetes.io/part-of: opentelemetry-operator
+ app.kubernetes.io/instance: example
+ app.kubernetes.io/component: controller-manager
+ annotations:
+ "helm.sh/hook": test
+spec:
+ containers:
+ - name: wget
+ image: "busybox:latest"
+ env:
+ - name: WEBHOOK_SERVICE_CLUSTERIP
+ value: "example-opentelemetry-operator-webhook"
+ - name: WEBHOOK_SERVICE_PORT
+ value: "443"
+ command:
+ - sh
+ - -c
+ # The following shell script tests if the webhook service is up. If the service is up, when we try
+ # to wget its exposed port, we will get an HTTP error 400.
+ - |
+ wget_output=$(wget -q "$WEBHOOK_SERVICE_CLUSTERIP:$WEBHOOK_SERVICE_PORT")
+ if wget_output=="wget: server returned error: HTTP/1.0 400 Bad Request"
+ then exit 0
+ else exit 1
+ fi
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsNonRoot: true
+ seccompProfile:
+ type: RuntimeDefault
+ restartPolicy: Never
+ nodeSelector:
+ kubernetes.io/os: linux
+ securityContext:
+ fsGroup: 65532
+ runAsGroup: 65532
+ runAsNonRoot: true
+ runAsUser: 65532
diff --git a/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/values.yaml b/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/values.yaml
new file mode 100644
index 00000000..fd89baef
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/values.yaml
@@ -0,0 +1,46 @@
+clusterName: demo
+collectors:
+ cluster:
+ # Environment variables are added from the generated secret
+ envFrom:
+ - secretRef:
+ name: collector-credentials-secret
+ # The Secrets CSI Driver volume is mounted in the collector
+ volumeMounts:
+ - name: secrets-csi
+ readOnly: true
+ mountPath: /mnt/secrets-store
+ # Volume definition, using the SecretProviderClass deployed as extra
+ volumes:
+ - name: secrets-csi
+ csi:
+ driver: secrets-store.csi.k8s.io
+ readOnly: true
+ volumeAttributes:
+ secretProviderClass: collector-credentials
+ config:
+ exporters:
+ otlp:
+ endpoint: ingest.example.com:443
+ headers:
+ "access-token": "${env:ACCESS_TOKEN}"
+
+extraObjects:
+ - apiVersion: secrets-store.csi.x-k8s.io/v1
+ kind: SecretProviderClass
+ metadata:
+ name: collector-credentials
+ spec:
+ parameters:
+ objects: >
+ - secretPath: data/collector-credentials
+ objectName: token
+ secretKey: token
+ vaultAddress: https://your-vault.com
+ provider: vault
+ secretObjects:
+ - data:
+ - key: ACCESS_TOKEN
+ objectName: token
+ secretName: collector-credentials-secret
+ type: Opaque
diff --git a/charts/opentelemetry-kube-stack/templates/NOTES.txt b/charts/opentelemetry-kube-stack/templates/NOTES.txt
new file mode 100644
index 00000000..ae22b370
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/templates/NOTES.txt
@@ -0,0 +1,66 @@
+OpenTelemetry Kube Stack Helm Chart installation completed successfully!
+
+With the features you've enabled, you can:
+
+{{- if .Values.instrumentation.enabled }}
+
+* Auto-instrument and auto-configure applications:
+ Add this annotation to your pod specs to inject the OTel SDK and automatic configuration:
+ instrumentation.opentelemetry.io/inject-: {{ .Release.Namespace }}/{{ include "opentelemetry-kube-stack.instrumentation" . }}
+ Replace with: dotnet, go, java, nodejs, python, etc.
+
+* Manually instrument and auto-configure applications:
+ Bundle the OTel SDK in your application containers, then add this annotation for auto-configuration
+ through environment variable injection:
+ instrumentation.opentelemetry.io/inject-sdk: {{ .Release.Namespace }}/{{ include "opentelemetry-kube-stack.instrumentation" . }}
+
+{{ end -}}
+* Manually instrument and manually configure applications:
+ Bundle the OTel SDK in your application containers and manually configure them using:
+{{- range $_, $collector := $.Values.collectors -}}
+{{- if $.Values.defaultCRConfig.enabled }}
+{{- $collector = (mergeOverwrite (deepCopy $.Values.defaultCRConfig) $collector) }}
+{{- end }}
+{{- $merged := (dict "Template" $.Template "Files" $.Files "Chart" $.Chart "clusterRole" $.Values.clusterRole "collector" $collector "Release" $.Release "fullnameOverride" $.Values.fullnameOverride "presets" $.Values.presets "namespace" (include "opentelemetry-kube-stack.namespace" $) "kubelet" $.Values.kubelet "clusterName" $.Values.clusterName) }}
+{{- $fullname := (include "opentelemetry-kube-stack.collectorFullname" $merged) }}
+{{- range $_, $protocol := list "grpc" "http" -}}
+{{ $endpoint := dig "receivers" "otlp" "protocols" $protocol "endpoint" "" $collector.config}}
+{{- if and $collector.enabled (ne $endpoint "") -}}
+{{- $port := regexFind ":[0-9]+$" $endpoint }}
+ - {{ $protocol }}: {{ $fullname }}-collector.{{ include "opentelemetry-kube-stack.namespace" $ }}.svc.cluster.local{{ $port }}
+{{- end -}}
+{{- end }}
+
+Learn more about application automatic instrumentation:
+https://opentelemetry.io/docs/platforms/kubernetes/operator/automatic/#add-annotations-to-existing-deployments
+{{ end -}}
+
+{{- range $name, $collector := .Values.collectors }}
+{{- if $.Values.defaultCRConfig.enabled }}
+{{- $collector = (mergeOverwrite (deepCopy $.Values.defaultCRConfig) $collector) }}
+{{- end }}
+{{- if $collector.updateStrategy }}
+
+[WARNING] Collector '{{ $name }}': the 'updateStrategy' value is no longer supported in OpenTelemetryCollector v1beta1.
+ Please migrate to use the `daemonSetUpdateStrategy` value.
+{{- end }}
+{{- end }}
+
+{{- $operatorValues := index .Values "opentelemetry-operator" }}
+{{- $operatorEnabled := dig "enabled" true $operatorValues }}
+{{- $certManagerEnabled := dig "admissionWebhooks" "certManager" "enabled" true $operatorValues }}
+{{- $autoGenerateCertEnabled := dig "admissionWebhooks" "autoGenerateCert" "enabled" true $operatorValues }}
+{{- $certPeriodDays := dig "admissionWebhooks" "autoGenerateCert" "certPeriodDays" 365 $operatorValues }}
+{{- $recreateCert := dig "admissionWebhooks" "autoGenerateCert" "recreate" true $operatorValues }}
+{{- if and $operatorEnabled (not $certManagerEnabled) $autoGenerateCertEnabled }}
+
+[WARNING] The OpenTelemetry Operator is using auto-generated certificates (valid for {{ $certPeriodDays }} days from installation).
+ After expiration, the Operator's admission webhooks will stop working and the Operator will become non-functional.
+ {{- if $recreateCert }}
+ Certificates can be renewed by running `helm upgrade`.
+ {{- end }}
+ For production environments, it is strongly recommended to use cert-manager instead of auto-generated certificates.
+ More details: https://github.com/open-telemetry/opentelemetry-helm-charts/blob/main/charts/opentelemetry-operator/README.md#tls-certificate-requirement
+{{- end }}
+
+ Happy observing!
diff --git a/charts/opentelemetry-kube-stack/templates/_config.tpl b/charts/opentelemetry-kube-stack/templates/_config.tpl
new file mode 100644
index 00000000..e05e20c0
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/templates/_config.tpl
@@ -0,0 +1,481 @@
+{{/*
+Constructs the final config for the given collector
+
+This allows a user to supply a scrape_configs_file. This file is templated and loaded as a yaml array.
+If a user has already supplied a prometheus receiver config, the file's config is appended. Finally,
+the config is written as YAML.
+*/}}
+{{- define "opentelemetry-kube-stack.config" -}}
+{{- $collector := .collector }}
+{{- $config := .collector.config }}
+{{- if .collector.scrape_configs_file }}
+{{- $config = (include "opentelemetry-kube-stack.collector.appendPrometheusScrapeFile" . | fromYaml) }}
+{{- $_ := set $collector "config" $config }}
+{{- end }}
+{{- if .collector.presets.logsCollection.enabled }}
+{{- $_ := set $collector "exclude" (list (printf "/var/log/pods/%s_%s*_*/otc-container/*.log" .namespace (include "opentelemetry-kube-stack.collectorFullname" .))) }}
+{{- $config = (include "opentelemetry-kube-stack.collector.applyLogsCollectionConfig" (dict "collector" $collector) | fromYaml) -}}
+{{- $_ := set $collector "config" $config }}
+{{- end }}
+{{- if or .collector.presets.annotationDiscovery.logs.enabled .collector.presets.annotationDiscovery.metrics.enabled }}
+{{- $config = (include "opentelemetry-kube-stack.applyAnnotationDiscoveryConfig" (dict "collector" $collector) | fromYaml) }}
+{{- $_ := set $collector "config" $config }}
+{{- end }}
+{{- if .collector.presets.hostMetrics.enabled }}
+{{- $config = (include "opentelemetry-kube-stack.collector.applyHostMetricsConfig" (dict "collector" $collector) | fromYaml) -}}
+{{- $_ := set $collector "config" $config }}
+{{- end }}
+{{- if .collector.presets.kubernetesAttributes.enabled }}
+{{- $config = (include "opentelemetry-kube-stack.collector.applyKubernetesAttributesConfig" (dict "collector" $collector) | fromYaml) -}}
+{{- $_ := set $collector "config" $config }}
+{{- end }}
+{{- if .collector.presets.kubeletMetrics.enabled }}
+{{- $config = (include "opentelemetry-kube-stack.collector.applyKubeletMetricsConfig" (dict "collector" $collector) | fromYaml) -}}
+{{- $_ := set $collector "config" $config }}
+{{- end }}
+{{- if .collector.presets.kubernetesEvents.enabled }}
+{{- $config = (include "opentelemetry-kube-stack.collector.applyKubernetesEventsConfig" (dict "collector" $collector "namespace" .namespace) | fromYaml) -}}
+{{- $_ := set $collector "config" $config }}
+{{- end }}
+{{- if .collector.presets.clusterMetrics.enabled }}
+{{- $config = (include "opentelemetry-kube-stack.collector.applyClusterMetricsConfig" (dict "collector" $collector "namespace" .namespace) | fromYaml) -}}
+{{- $_ := set $collector "config" $config }}
+{{- end }}
+{{- if or .collector.presets.resourceDetection.eks.enabled .collector.presets.resourceDetection.aks.enabled .collector.presets.resourceDetection.gcp.enabled }}
+{{- $config = (include "opentelemetry-kube-stack.collector.applyResourceDetectionConfig" (dict "collector" $collector) | fromYaml) -}}
+{{- $_ := set $collector "config" $config }}
+{{- end }}
+{{- tpl (toYaml $collector.config) . | nindent 4 }}
+{{- end }}
+
+{{/*
+This helper allows a user to load in an external scrape configs file directly from prometheus.
+The helper will load and then append the scrape configs list to an existing prometheus scraper.
+If no prometheus configuration is present, the prometheus configuration is added.
+
+This helper ultimately assists users in getting started with Kubernetes infra metrics from scratch
+OR helps them easily port prometheus to the otel-kube-stack chart with no changes to their prometheus config.
+*/}}
+{{- define "opentelemetry-kube-stack.collector.appendPrometheusScrapeFile" -}}
+{{- $loaded_file := (.Files.Get .collector.scrape_configs_file) }}
+{{- $loaded_config := (fromYamlArray (tpl $loaded_file .)) }}
+{{- $prom_override := (dict "receivers" (dict "prometheus" (dict "config" (dict "scrape_configs" $loaded_config)))) }}
+{{- if (dig "receivers" "prometheus" "config" "scrape_configs" false .collector.config) }}
+{{- $merged_prom_scrape_configs := (concat .collector.config.receivers.prometheus.config.scrape_configs $loaded_config) }}
+{{- $prom_override = (dict "receivers" (dict "prometheus" (dict "config" (dict "scrape_configs" $merged_prom_scrape_configs)))) }}
+{{- end }}
+{{- if and (dig "service" "pipelines" "metrics" false .collector.config) (not (has "prometheus" (dig "service" "pipelines" "metrics" "receivers" list .collector.config))) }}
+{{- $_ := set .collector.config.service.pipelines.metrics "receivers" (prepend (.collector.config.service.pipelines.metrics.receivers | default list) "prometheus" | uniq) }}
+{{- end }}
+{{- (mergeOverwrite .collector.config $prom_override) | toYaml }}
+{{- end }}
+
+{{- define "opentelemetry-kube-stack.applyAnnotationDiscoveryConfig" -}}
+{{- $config := mustMergeOverwrite (include "opentelemetry-kube-stack.collector.annotationDiscoveryConfig" .collector | fromYaml) .collector.config }}
+{{- $_ := set $config.service "extensions" (append ($config.service.extensions | default list) "k8s_observer" | uniq) }}
+{{- if .collector.presets.annotationDiscovery.logs.enabled }}
+{{- $_ := set $config.service.pipelines.logs "receivers" (append $config.service.pipelines.logs.receivers "receiver_creator/logs" | uniq) }}
+{{- end }}
+{{- if .collector.presets.annotationDiscovery.metrics.enabled }}
+{{- $_ := set $config.service.pipelines.metrics "receivers" (append $config.service.pipelines.metrics.receivers "receiver_creator/metrics" | uniq) }}
+{{- end }}
+{{- $config | toYaml }}
+{{- end }}
+
+{{- define "opentelemetry-kube-stack.collector.annotationDiscoveryConfig" -}}
+extensions:
+ k8s_observer:
+ auth_type: serviceAccount
+ node: ${env:K8S_NODE_NAME}
+
+receivers:
+ {{- if .presets.annotationDiscovery.logs.enabled }}
+ receiver_creator/logs:
+ watch_observers:
+ - k8s_observer
+ discovery:
+ enabled: true
+ default_annotations:
+ io.opentelemetry.discovery.logs/enabled: "true"
+ {{- end }}
+ {{- if .presets.annotationDiscovery.metrics.enabled }}
+ receiver_creator/metrics:
+ watch_observers:
+ - k8s_observer
+ discovery:
+ enabled: true
+ {{- end }}
+{{- end }}
+
+{{- define "opentelemetry-kube-stack.collector.applyKubernetesAttributesConfig" -}}
+{{- $config := mustMergeOverwrite (include "opentelemetry-kube-stack.collector.kubernetesAttributesConfig" .collector | fromYaml) .collector.config }}
+{{- if and (dig "service" "pipelines" "logs" false $config) (not (has "k8sattributes" (dig "service" "pipelines" "logs" "processors" list $config))) }}
+{{- $_ := set $config.service.pipelines.logs "processors" (prepend ($config.service.pipelines.logs.processors | default list) "k8sattributes" | uniq) }}
+{{- end }}
+{{- if and (dig "service" "pipelines" "metrics" false $config) (not (has "k8sattributes" (dig "service" "pipelines" "metrics" "processors" list $config))) }}
+{{- $_ := set $config.service.pipelines.metrics "processors" (prepend ($config.service.pipelines.metrics.processors | default list) "k8sattributes" | uniq) }}
+{{- end }}
+{{- if and (dig "service" "pipelines" "traces" false $config) (not (has "k8sattributes" (dig "service" "pipelines" "traces" "processors" list $config))) }}
+{{- $_ := set $config.service.pipelines.traces "processors" (prepend ($config.service.pipelines.traces.processors | default list) "k8sattributes" | uniq) }}
+{{- end }}
+{{- $config | toYaml }}
+{{- end }}
+
+{{- define "opentelemetry-kube-stack.collector.kubernetesAttributesConfig" -}}
+processors:
+ k8sattributes:
+ {{- if eq .mode "daemonset" }}
+ filter:
+ node_from_env_var: OTEL_K8S_NODE_NAME
+ {{- end }}
+ passthrough: false
+ pod_association:
+ - sources:
+ - from: resource_attribute
+ name: k8s.pod.uid
+ - sources:
+ - from: resource_attribute
+ name: k8s.pod.name
+ - from: resource_attribute
+ name: k8s.namespace.name
+ - from: resource_attribute
+ name: k8s.node.name
+ - sources:
+ - from: resource_attribute
+ name: k8s.pod.ip
+ - sources:
+ - from: resource_attribute
+ name: k8s.pod.name
+ - from: resource_attribute
+ name: k8s.namespace.name
+ - sources:
+ - from: connection
+ extract:
+ otel_annotations: true
+ metadata:
+ - k8s.namespace.name
+ - k8s.pod.name
+ - k8s.pod.uid
+ - k8s.node.name
+ - k8s.pod.start_time
+ - k8s.deployment.name
+ - k8s.replicaset.name
+ - k8s.replicaset.uid
+ - k8s.daemonset.name
+ - k8s.daemonset.uid
+ - k8s.job.name
+ - k8s.job.uid
+ - k8s.container.name
+ - k8s.cronjob.name
+ - k8s.statefulset.name
+ - k8s.statefulset.uid
+ - container.image.tag
+ - container.image.name
+ - k8s.cluster.uid
+ - service.namespace
+ - service.name
+ - service.version
+ - service.instance.id
+ labels:
+ - tag_name: k8s.app.instance
+ key: app.kubernetes.io/instance
+ from: pod
+ - tag_name: k8s.app.component
+ key: app.kubernetes.io/component
+ from: pod
+ {{- if .presets.kubernetesAttributes.extractAllPodLabels }}
+ - tag_name: $$1
+ key_regex: (.*)
+ from: pod
+ {{- end }}
+ {{- if .presets.kubernetesAttributes.extractAllPodAnnotations }}
+ annotations:
+ - tag_name: $$1
+ key_regex: (.*)
+ from: pod
+ {{- end }}
+{{- end }}
+
+{{- define "opentelemetry-kube-stack.collector.applyHostMetricsConfig" -}}
+{{- $config := mustMergeOverwrite (include "opentelemetry-kube-stack.collector.hostMetricsConfig" .collector | fromYaml) .collector.config }}
+{{- if and (dig "service" "pipelines" "metrics" false $config) (not (has "hostmetrics" (dig "service" "pipelines" "metrics" "receivers" list $config))) }}
+{{- $_ := set $config.service.pipelines.metrics "receivers" (append ($config.service.pipelines.metrics.receivers | default list) "hostmetrics" | uniq) }}
+{{- end }}
+{{- $config | toYaml }}
+{{- end }}
+
+{{- define "opentelemetry-kube-stack.collector.hostMetricsConfig" -}}
+receivers:
+ hostmetrics:
+ root_path: /hostfs
+ collection_interval: 10s
+ scrapers:
+ cpu:
+ metrics:
+ system.cpu.utilization:
+ enabled: true
+ system.cpu.logical.count:
+ enabled: true
+ load: {}
+ memory:
+ metrics:
+ system.memory.utilization:
+ enabled: true
+ system.memory.limit:
+ enabled: true
+ paging:
+ metrics:
+ system.paging.usage:
+ enabled: true
+ disk: {}
+ filesystem:
+ metrics:
+ system.filesystem.utilization:
+ enabled: true
+ exclude_mount_points:
+ mount_points:
+ - /dev/*
+ - /proc/*
+ - /sys/*
+ - /run/k3s/containerd/*
+ - /var/lib/docker/*
+ - /var/lib/kubelet/*
+ - /snap/*
+ match_type: regexp
+ exclude_fs_types:
+ fs_types:
+ - autofs
+ - binfmt_misc
+ - bpf
+ - cgroup2
+ - configfs
+ - debugfs
+ - devpts
+ - devtmpfs
+ - fusectl
+ - hugetlbfs
+ - iso9660
+ - mqueue
+ - nsfs
+ - overlay
+ - proc
+ - procfs
+ - pstore
+ - rpc_pipefs
+ - securityfs
+ - selinuxfs
+ - squashfs
+ - sysfs
+ - tracefs
+ match_type: strict
+ network: {}
+ system:
+ metrics:
+ system.uptime:
+ enabled: true
+{{- end }}
+
+{{- define "opentelemetry-kube-stack.collector.applyClusterMetricsConfig" -}}
+{{- $electorName := "k8s_cluster" }}
+{{- $config := mustMergeOverwrite (include "opentelemetry-kube-stack.collector.clusterMetricsConfig" (dict "collector" .collector "namespace" .namespace "electorName" $electorName) | fromYaml) .collector.config }}
+{{- if and (dig "service" "pipelines" "metrics" false $config) (not (has "k8s_cluster" (dig "service" "pipelines" "metrics" "receivers" list $config))) }}
+{{- $_ := set $config.service.pipelines.metrics "receivers" (append ($config.service.pipelines.metrics.receivers | default list) "k8s_cluster" | uniq) }}
+{{- $disableLeaderElection := .collector.presets.clusterMetrics.disableLeaderElection }}
+{{- if not $disableLeaderElection }}
+{{- $_ := set $config.service "extensions" (append ($config.service.extensions | default list) (printf "k8s_leader_elector/%s" $electorName) | uniq) }}
+{{- end }}
+{{- end }}
+{{- $config | toYaml }}
+{{- end }}
+
+{{- define "opentelemetry-kube-stack.collector.clusterMetricsConfig" -}}
+{{- $disableLeaderElection := .collector.presets.clusterMetrics.disableLeaderElection}}
+{{- if not $disableLeaderElection}}
+{{- include "opentelemetry-kube-stack.collector.leaderElectionConfig" (dict "name" .electorName "leaseName" "k8s.cluster.receiver.opentelemetry.io" "leaseNamespace" .namespace)}}
+{{- end}}
+receivers:
+ k8s_cluster:
+ {{- if not $disableLeaderElection}}
+ k8s_leader_elector: k8s_leader_elector/{{ .electorName }}
+ {{- end}}
+ collection_interval: 10s
+ auth_type: serviceAccount
+ node_conditions_to_report: [Ready, MemoryPressure, DiskPressure, NetworkUnavailable]
+ allocatable_types_to_report: [cpu, memory, storage]
+{{- end }}
+
+{{- define "opentelemetry-kube-stack.collector.applyKubeletMetricsConfig" -}}
+{{- $config := mustMergeOverwrite (include "opentelemetry-kube-stack.collector.kubeletMetricsConfig" .collector | fromYaml) .collector.config }}
+{{- if and (dig "service" "pipelines" "metrics" false $config) (not (has "kubeletstats" (dig "service" "pipelines" "metrics" "receivers" list $config))) }}
+{{- $_ := set $config.service.pipelines.metrics "receivers" (append ($config.service.pipelines.metrics.receivers | default list) "kubeletstats" | uniq) }}
+{{- end }}
+{{- $config | toYaml }}
+{{- end }}
+
+{{- define "opentelemetry-kube-stack.collector.kubeletMetricsConfig" -}}
+receivers:
+ kubeletstats:
+ collection_interval: "15s"
+ auth_type: "serviceAccount"
+ insecure_skip_verify: true
+ # For this scrape to work, the RBAC must have `nodes/stats` GET access.
+ endpoint: "https://${env:OTEL_K8S_NODE_IP}:10250"
+ extra_metadata_labels:
+ - container.id
+ - k8s.volume.type
+ metric_groups:
+ - node
+ - pod
+ - volume
+ - container
+ k8s_api_config:
+ auth_type: serviceAccount
+ metrics:
+ # k8s.pod.cpu.utilization is being deprecated
+ k8s.pod.cpu.usage:
+ enabled: true
+ container.cpu.usage:
+ enabled: true
+ k8s.node.cpu.usage:
+ enabled: true
+ k8s.node.uptime:
+ enabled: true
+ k8s.pod.uptime:
+ enabled: true
+{{- end }}
+
+{{- define "opentelemetry-kube-stack.collector.applyLogsCollectionConfig" -}}
+{{- $config := mustMergeOverwrite (include "opentelemetry-kube-stack.collector.logsCollectionConfig" .collector | fromYaml) .collector.config }}
+{{- if and (dig "service" "pipelines" "logs" false $config) (not (has "filelog" (dig "service" "pipelines" "logs" "receivers" list $config))) }}
+{{- $_ := set $config.service.pipelines.logs "receivers" (append ($config.service.pipelines.logs.receivers | default list) "filelog" | uniq) }}
+{{- end }}
+{{- if .collector.presets.logsCollection.storeCheckpoints}}
+{{- $_ := set $config.service "extensions" (append ($config.service.extensions | default list) "file_storage" | uniq) }}
+{{- end }}
+{{- $config | toYaml }}
+{{- end }}
+
+{{- define "opentelemetry-kube-stack.collector.logsCollectionConfig" -}}
+{{- if .presets.logsCollection.storeCheckpoints }}
+extensions:
+ file_storage:
+ directory: /var/lib/otelcol
+{{- end }}
+receivers:
+ filelog:
+ include:
+ - /var/log/pods/*/*/*.log
+ {{- if .presets.logsCollection.includeCollectorLogs }}
+ exclude: []
+ {{- else }}
+ # Exclude collector container's logs. The file format is /var/log/pods/__//.log
+ exclude:
+ {{- toYaml .exclude | nindent 4 }}
+ {{- end }}
+ start_at: end
+ retry_on_failure:
+ enabled: true
+ {{- if .presets.logsCollection.storeCheckpoints}}
+ storage: file_storage
+ {{- end }}
+ include_file_path: true
+ include_file_name: false
+ operators:
+ # parse container logs
+ - type: container
+ id: container-parser
+ max_log_size: {{ .presets.logsCollection.maxRecombineLogSize }}
+{{- end }}
+
+{{- define "opentelemetry-kube-stack.collector.applyKubernetesEventsConfig" -}}
+{{- $electorName := "k8s_objects" }}
+{{- $config := mustMergeOverwrite (include "opentelemetry-kube-stack.collector.kubernetesEventsConfig" (dict "collector" .collector "namespace" .namespace "electorName" $electorName) | fromYaml) .collector.config }}
+{{- if and (dig "service" "pipelines" "logs" false $config) (not (has "k8sobjects" (dig "service" "pipelines" "logs" "receivers" list $config))) }}
+{{- $_ := set $config.service.pipelines.logs "receivers" (append ($config.service.pipelines.logs.receivers | default list) "k8sobjects" | uniq) }}
+{{- $disableLeaderElection := .collector.presets.kubernetesEvents.disableLeaderElection }}
+{{- if not $disableLeaderElection }}
+{{- $_ := set $config.service "extensions" (append ($config.service.extensions | default list) (printf "k8s_leader_elector/%s" $electorName) | uniq) }}
+{{- end }}
+{{- end }}
+{{- $config | toYaml }}
+{{- end }}
+
+{{- define "opentelemetry-kube-stack.collector.kubernetesEventsConfig" -}}
+{{- $disableLeaderElection := .collector.presets.kubernetesEvents.disableLeaderElection}}
+{{- if not $disableLeaderElection}}
+{{- include "opentelemetry-kube-stack.collector.leaderElectionConfig" (dict "name" .electorName "leaseName" "k8s.objects.receiver.opentelemetry.io" "leaseNamespace" .namespace)}}
+{{- end}}
+receivers:
+ k8sobjects:
+ {{- if not $disableLeaderElection}}
+ k8s_leader_elector: k8s_leader_elector/{{ .electorName }}
+ {{- end}}
+ objects:
+ - name: events
+ mode: "watch"
+ group: "events.k8s.io"
+ exclude_watch_type:
+ - "DELETED"
+{{- end }}
+
+{{- define "opentelemetry-kube-stack.collector.leaderElectionConfig" -}}
+extensions:
+ k8s_leader_elector/{{ .name }}:
+ auth_type: serviceAccount
+ lease_name: {{ .leaseName }}
+ lease_namespace: {{ .leaseNamespace }}
+{{- end }}
+
+{{- define "opentelemetry-kube-stack.collector.applyResourceDetectionConfig" -}}
+
+{{- $config := .collector.config }}
+{{- $processors := get $config "processors" | default dict }}
+{{- $resourceDetectionProcessor := get $processors "resourcedetection/env" | default dict }}
+{{- $detectors := get $resourceDetectionProcessor "detectors" | default list }}
+
+{{- if .collector.presets.resourceDetection.aks.enabled }}
+{{- $aksResourceDetectionProcessor := include "opentelemetry-kube-stack.collector.resourceDetectionAksDetectorConfig" . | fromYaml }}
+{{- $resourceDetectionProcessor = mustMergeOverwrite $resourceDetectionProcessor $aksResourceDetectionProcessor }}
+{{- $detectors = append $detectors "aks" | uniq }}
+{{- end }}
+
+{{- if .collector.presets.resourceDetection.eks.enabled }}
+{{- $eksResourceDetectionProcessor := include "opentelemetry-kube-stack.collector.resourceDetectionEksDetectorConfig" . | fromYaml }}
+{{- $resourceDetectionProcessor = mustMergeOverwrite $resourceDetectionProcessor $eksResourceDetectionProcessor }}
+{{- $detectors = append $detectors "eks" | uniq }}
+{{- end }}
+
+{{- if .collector.presets.resourceDetection.gcp.enabled }}
+{{- $gcpResourceDetectionProcessor := include "opentelemetry-kube-stack.collector.resourceDetectionGcpDetectorConfig" . | fromYaml }}
+{{- $resourceDetectionProcessor = mustMergeOverwrite $resourceDetectionProcessor $gcpResourceDetectionProcessor }}
+{{- $detectors = append $detectors "gcp" | uniq }}
+{{- end }}
+{{- $_ := set $resourceDetectionProcessor "detectors" $detectors }}
+
+{{- $_ := set $processors "resourcedetection/env" $resourceDetectionProcessor }}
+{{- $_ := set $config "processors" $processors }}
+{{- $config | toYaml }}
+{{- end }}
+
+{{- define "opentelemetry-kube-stack.collector.resourceDetectionEksDetectorConfig" -}}
+timeout: 15s
+eks:
+ # K8S_NODE_NAME is configured by the collector deployment, no need to overwrite `node_from_env_var`
+ resource_attributes:
+ k8s.cluster.name:
+ enabled: true
+{{- end -}}
+
+{{- define "opentelemetry-kube-stack.collector.resourceDetectionAksDetectorConfig" -}}
+aks:
+ resource_attributes:
+ k8s.cluster.name:
+ enabled: true
+{{- end -}}
+
+{{- define "opentelemetry-kube-stack.collector.resourceDetectionGcpDetectorConfig" -}}
+gcp:
+ resource_attributes:
+ k8s.cluster.name:
+ enabled: true
+{{- end -}}
diff --git a/charts/opentelemetry-kube-stack/templates/_helpers.tpl b/charts/opentelemetry-kube-stack/templates/_helpers.tpl
new file mode 100644
index 00000000..ddc1fc8a
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/templates/_helpers.tpl
@@ -0,0 +1,324 @@
+{{/*
+Expand the name of the chart.
+*/}}
+{{- define "opentelemetry-kube-stack.name" -}}
+{{- default .Chart.Name | trunc 63 | trimSuffix "-" }}
+{{- end }}
+
+{{/*
+Create a default fully qualified app name.
+We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
+If release name contains chart name it will be used as a full name.
+*/}}
+{{- define "opentelemetry-kube-stack.fullname" -}}
+{{- if .fullnameOverride }}
+{{- .fullnameOverride | trunc 63 | trimSuffix "-" }}
+{{- else }}
+{{- .Release.Name | trunc 63 | trimSuffix "-" }}
+{{- end }}
+{{- end }}
+
+
+{{/*
+Add the opamp labels if they're enabled
+*/}}
+{{- define "opentelemetry-kube-stack.collectorOpAMPLabels" -}}
+{{- if and .opAMPBridge.enabled .opAMPBridge.addReportingLabel }}
+opentelemetry.io/opamp-reporting: "true"
+{{- end }}
+{{- if and .opAMPBridge.enabled .opAMPBridge.addManagedLabel }}
+opentelemetry.io/opamp-managed: "true"
+{{- end }}
+{{- end }}
+
+{{/*
+Allow the release namespace to be overridden
+*/}}
+{{- define "opentelemetry-kube-stack.namespace" -}}
+ {{- if .Values.namespaceOverride -}}
+ {{- .Values.namespaceOverride -}}
+ {{- else -}}
+ {{- .Release.Namespace -}}
+ {{- end -}}
+{{- end -}}
+
+{{/*
+Print a map of key values in a YAML block. This is useful for labels and annotations.
+*/}}
+{{- define "opentelemetry-kube-stack.renderkv" -}}
+{{- with . -}}
+{{- range $key, $value := . -}}
+{{- printf "\n%s: %s" $key $value }}
+{{- end -}}
+{{- end -}}
+{{- end }}
+
+{{/*
+Render a deduped list of environment variables and 'extraEnvs'
+*/}}
+{{- define "opentelemetry-kube-stack.renderenvs" -}}
+{{- $envMap := dict }}
+{{- $valueFromMap := dict }}
+{{- range $item := .extraEnvs }}
+{{- if $item.value }}
+{{- $_ := set $envMap $item.name $item.value }}
+{{- else }}
+{{- $_ := set $valueFromMap $item.name $item.valueFrom }}
+{{- end }}
+{{- end }}
+{{- range $item := .env }}
+{{- if $item.value }}
+{{- $_ := set $envMap $item.name $item.value }}
+{{- else }}
+{{- $_ := set $valueFromMap $item.name $item.valueFrom }}
+{{- end }}
+{{- end }}
+{{- range $key, $value := $envMap }}
+- name: {{ $key }}
+ value: {{ $value | quote }}
+{{- end }}
+{{- range $key, $value := $valueFromMap }}
+- name: {{ $key }}
+ valueFrom:
+ {{- $value | toYaml | nindent 4 }}
+{{- end }}
+{{- end }}
+
+{{/*
+Create the name of the instrumentation to use
+*/}}
+{{- define "opentelemetry-kube-stack.instrumentation" -}}
+{{- default .Release.Name .Values.instrumentation.name }}
+{{- end }}
+
+{{/*
+Create the name of the bridge to create
+*/}}
+{{- define "opentelemetry-opamp-bridge.fullname" -}}
+{{- default .Release.Name .opAMPBridge.name }}
+{{- end }}
+
+{{/*
+Create the name of the clusterRole to use for the opampbridge
+*/}}
+{{- define "opentelemetry-opamp-bridge.clusterRoleName" -}}
+{{- default (printf "%s-bridge" .Release.Name) .Values.opAMPBridge.clusterRole.name }}
+{{- end }}
+
+{{/*
+Create chart name and version as used by the chart label.
+*/}}
+{{- define "opentelemetry-kube-stack.chart" -}}
+{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
+{{- end }}
+
+{{/*
+Common labels
+*/}}
+{{- define "opentelemetry-kube-stack.labels" -}}
+helm.sh/chart: {{ include "opentelemetry-kube-stack.chart" . }}
+{{- if .Chart.AppVersion }}
+app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
+{{- end }}
+app.kubernetes.io/managed-by: {{ .Release.Service }}
+release: {{ .Release.Name | quote }}
+{{- end }}
+
+{{/*
+Create a default fully qualified app name.
+We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
+If release name contains chart name it will be used as a full name.
+*/}}
+{{- define "opentelemetry-kube-stack.collectorFullname" -}}
+{{- if .fullnameOverride }}
+{{- .fullnameOverride | trunc 63 | trimSuffix "-" }}
+{{- else if .collector.fullnameOverride }}
+{{- .collector.fullnameOverride | trunc 63 | trimSuffix "-" }}
+{{- else }}
+{{- $suffix := default .Chart.Name (coalesce .collector.suffix "") }}
+{{- if contains $suffix .Release.Name }}
+{{- .Release.Name | trunc 63 | trimSuffix "-" }}
+{{- else }}
+{{- printf "%s-%s" .Release.Name $suffix | trunc 63 | trimSuffix "-" }}
+{{- end }}
+{{- end }}
+{{- end }}
+
+{{/*
+Create the name of the clusterRole to use
+*/}}
+{{- define "opentelemetry-kube-stack.clusterRoleName" -}}
+{{- default (printf "%s-collector" .Release.Name) .Values.clusterRole.name }}
+{{- end }}
+
+{{/*
+Create the name of the clusterRoleBinding to use
+*/}}
+{{- define "opentelemetry-kube-stack.clusterRoleBindingName" -}}
+{{- default (include "opentelemetry-kube-stack.fullname" .) .Values.clusterRole.clusterRoleBinding.name }}
+{{- end }}
+
+{{/*
+Optionally include the RBAC for the k8sCluster receiver
+*/}}
+{{- define "opentelemetry-kube-stack.k8scluster.rules" -}}
+{{- if $.Values.clusterRole.rules }}
+{{ toYaml $.Values.clusterRole.rules }}
+{{- end }}
+{{- $clusterMetricsEnabled := false }}
+{{- $eventsEnabled := false }}
+{{- $useLeaderElection := false }}
+{{ range $_, $collector := $.Values.collectors -}}
+{{- $clusterMetricsEnabled = (any $clusterMetricsEnabled (dig "config" "receivers" "k8s_cluster" false $collector)) }}
+{{- if (dig "presets" "clusterMetrics" "enabled" false $collector) }}
+{{- $clusterMetricsEnabled = true }}
+{{- $useLeaderElection = (any $useLeaderElection (not (dig "presets" "clusterMetrics" "disableLeaderElection" false $collector))) }}
+{{- end }}
+{{- $eventsEnabled = (any $eventsEnabled (dig "config" "receivers" "k8s_cluster" false $collector)) }}
+{{- if (dig "presets" "kubernetesEvents" "enabled" false $collector) }}
+{{- $eventsEnabled = true }}
+{{- $useLeaderElection = (any $useLeaderElection (not (dig "presets" "kubernetesEvents" "disableLeaderElection" false $collector))) }}
+{{- end }}
+{{- end }}
+{{- if $useLeaderElection }}
+- verbs:
+ - get
+ - list
+ - watch
+ - create
+ - update
+ - patch
+ - delete
+ apiGroups:
+ - coordination.k8s.io
+ resources:
+ - leases
+{{- end }}
+{{- if $clusterMetricsEnabled }}
+- apiGroups:
+ - ""
+ resources:
+ - events
+ - namespaces
+ - namespaces/status
+ - nodes
+ - nodes/spec
+ - pods
+ - pods/status
+ - replicationcontrollers
+ - replicationcontrollers/status
+ - resourcequotas
+ - services
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups:
+ - apps
+ resources:
+ - daemonsets
+ - deployments
+ - replicasets
+ - statefulsets
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups:
+ - extensions
+ resources:
+ - daemonsets
+ - deployments
+ - replicasets
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups:
+ - batch
+ resources:
+ - jobs
+ - cronjobs
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups:
+ - autoscaling
+ resources:
+ - horizontalpodautoscalers
+ verbs:
+ - get
+ - list
+ - watch
+{{- end }}
+{{- if $eventsEnabled }}
+- apiGroups: ["events.k8s.io"]
+ resources: ["events"]
+ verbs: ["watch", "list"]
+{{- end }}
+{{- end }}
+
+{{/*
+Helpers for prometheus servicemonitors
+*/}}
+{{/* Prometheus specific stuff. */}}
+{{/* Allow KubeVersion to be overridden. */}}
+{{- define "opentelemetry-kube-stack.kubeVersion" -}}
+ {{- default .Capabilities.KubeVersion.Version .Values.kubeVersionOverride -}}
+{{- end -}}
+
+{{/* Get value based on current Kubernetes version */}}
+{{- define "opentelemetry-kube-stack.kubeVersionDefaultValue" -}}
+ {{- $values := index . 0 -}}
+ {{- $kubeVersion := index . 1 -}}
+ {{- $old := index . 2 -}}
+ {{- $new := index . 3 -}}
+ {{- $default := index . 4 -}}
+ {{- if kindIs "invalid" $default -}}
+ {{- if semverCompare $kubeVersion (include "opentelemetry-kube-stack.kubeVersion" $values) -}}
+ {{- print $new -}}
+ {{- else -}}
+ {{- print $old -}}
+ {{- end -}}
+ {{- else -}}
+ {{- print $default }}
+ {{- end -}}
+{{- end -}}
+
+{{/* Get value for kube-controller-manager depending on insecure scraping availability */}}
+{{- define "opentelemetry-kube-stack.kubeControllerManager.insecureScrape" -}}
+ {{- $values := index . 0 -}}
+ {{- $insecure := index . 1 -}}
+ {{- $secure := index . 2 -}}
+ {{- $userValue := index . 3 -}}
+ {{- include "opentelemetry-kube-stack.kubeVersionDefaultValue" (list $values ">= 1.22-0" $insecure $secure $userValue) -}}
+{{- end -}}
+
+{{/* Get value for kube-scheduler depending on insecure scraping availability */}}
+{{- define "opentelemetry-kube-stack.kubeScheduler.insecureScrape" -}}
+ {{- $values := index . 0 -}}
+ {{- $insecure := index . 1 -}}
+ {{- $secure := index . 2 -}}
+ {{- $userValue := index . 3 -}}
+ {{- include "opentelemetry-kube-stack.kubeVersionDefaultValue" (list $values ">= 1.23-0" $insecure $secure $userValue) -}}
+{{- end -}}
+
+{{/* Sets default scrape limits for servicemonitor */}}
+{{- define "opentelemetry-kube-stack.servicemonitor.scrapeLimits" -}}
+{{- with .sampleLimit }}
+sampleLimit: {{ . }}
+{{- end }}
+{{- with .targetLimit }}
+targetLimit: {{ . }}
+{{- end }}
+{{- with .labelLimit }}
+labelLimit: {{ . }}
+{{- end }}
+{{- with .labelNameLengthLimit }}
+labelNameLengthLimit: {{ . }}
+{{- end }}
+{{- with .labelValueLengthLimit }}
+labelValueLengthLimit: {{ . }}
+{{- end }}
+{{- end -}}
diff --git a/charts/opentelemetry-kube-stack/templates/bridge.yaml b/charts/opentelemetry-kube-stack/templates/bridge.yaml
new file mode 100644
index 00000000..de690cf1
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/templates/bridge.yaml
@@ -0,0 +1,131 @@
+{{- if .Values.opAMPBridge.enabled }}
+{{- $merged := (dict "Chart" $.Chart "clusterRole" $.Values.clusterRole "opAMPBridge" $.Values.opAMPBridge "Release" $.Release "fullnameOverride" $.Values.fullnameOverride) }}
+---
+apiVersion: opentelemetry.io/v1alpha1
+kind: OpAMPBridge
+metadata:
+ name: {{ include "opentelemetry-opamp-bridge.fullname" $merged }}
+ labels:
+ {{- include "opentelemetry-kube-stack.labels" $ | nindent 4 }}
+ {{- include "opentelemetry-kube-stack.renderkv" .Values.opAMPBridge.labels | indent 4 }}
+ {{- with .Values.opAMPBridge.annotations }}
+ annotations:
+ {{- include "opentelemetry-kube-stack.renderkv" . | nindent 4 }}
+ {{- end }}
+spec:
+ endpoint: {{ required "opamp endpoint required" $.Values.opAMPBridge.endpoint }}
+ {{- with $.Values.opAMPBridge.description }}
+ description:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with $.Values.opAMPBridge.headers }}
+ headers:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with $.Values.opAMPBridge.capabilities }}
+ capabilities:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with $.Values.opAMPBridge.componentsAllowed }}
+ componentsAllowed:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with $.Values.opAMPBridge.nodeSelector }}
+ nodeSelector:
+ {{- toYaml . | nindent 4}}
+ {{- end }}
+ replicas: 1
+ {{- if $.Values.opAMPBridge.serviceAccount }}
+ serviceAccount: {{ $.Values.opAMPBridge.serviceAccount }}
+ {{- end }}
+ {{- if $.Values.opAMPBridge.image.digest }}
+ image: "{{ $.Values.opAMPBridge.image.repository }}@{{ $.Values.opAMPBridge.image.digest }}"
+ {{- else }}
+ image: "{{ $.Values.opAMPBridge.image.repository }}:{{ $.Values.opAMPBridge.image.tag | default $.Chart.AppVersion }}"
+ {{- end }}
+ {{- if $.Values.opAMPBridge.upgradeStrategy }}
+ upgradeStrategy: {{ $.Values.opAMPBridge.upgradeStrategy }}
+ {{- end }}
+ {{- if $.Values.opAMPBridge.imagePullPolicy }}
+ imagePullPolicy: {{ $.Values.opAMPBridge.imagePullPolicy }}
+ {{- end }}
+ {{- if $.Values.opAMPBridge.hostNetwork }}
+ hostNetwork: {{ $.Values.opAMPBridge.hostNetwork }}
+ {{- end }}
+ {{- if $.Values.opAMPBridge.priorityClassName }}
+ priorityClassName: {{ $.Values.opAMPBridge.priorityClassName }}
+ {{- end }}
+ {{- with $.Values.opAMPBridge.securityContext }}
+ securityContext:
+ {{- toYaml . | nindent 4}}
+ {{- end }}
+ {{- with $.Values.opAMPBridge.podAnnotations }}
+ podAnnotations:
+ {{- toYaml . | nindent 4}}
+ {{- end }}
+ {{- with $.Values.opAMPBridge.resources }}
+ resources:
+ {{- toYaml . | nindent 4}}
+ {{- end }}
+ {{- with $.Values.opAMPBridge.affinity }}
+ affinity:
+ {{- toYaml . | nindent 4}}
+ {{- end }}
+ {{- if $.Values.opAMPBridge.tolerations }}
+ tolerations:
+ {{- with $.Values.opAMPBridge.tolerations }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- end }}
+ {{- if $.Values.opAMPBridge.volumes }}
+ volumes:
+ {{- with $.Values.opAMPBridge.volumes }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- end }}
+ {{- if $.Values.opAMPBridge.topologySpreadConstraints }}
+ topologySpreadConstraints:
+ {{- with $.Values.opAMPBridge.topologySpreadConstraints }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- end }}
+ {{- if $.Values.opAMPBridge.volumeMounts }}
+ volumeMounts:
+ {{- with $.Values.opAMPBridge.volumeMounts }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- end }}
+ {{- if $.Values.opAMPBridge.ports }}
+ ports:
+ {{- with $.Values.opAMPBridge.ports }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- end }}
+ env:
+ - name: OTEL_K8S_NODE_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: spec.nodeName
+ - name: OTEL_K8S_NAMESPACE
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.namespace
+ - name: OTEL_K8S_POD_NAME
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.name
+ - name: OTEL_K8S_POD_IP
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: status.podIP
+ - name: OTEL_RESOURCE_ATTRIBUTES
+ value: "k8s.cluster.name={{ $.Values.clusterName }}"
+ {{- include "opentelemetry-kube-stack.renderenvs" (dict "extraEnvs" $.Values.extraEnvs "env" .Values.opAMPBridge.env) | nindent 2 }}
+ {{- with $.Values.opAMPBridge.envFrom }}
+ envFrom:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+{{- end }}
diff --git a/charts/opentelemetry-kube-stack/templates/clusterrole.yaml b/charts/opentelemetry-kube-stack/templates/clusterrole.yaml
new file mode 100644
index 00000000..2e852495
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/templates/clusterrole.yaml
@@ -0,0 +1,137 @@
+{{- if .Values.clusterRole.enabled }}
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ name: {{ include "opentelemetry-kube-stack.clusterRoleName" . }}
+rules:
+- apiGroups: [""]
+ resources:
+ - namespaces
+ - nodes
+{{- if semverCompare ">=1.33-0" .Capabilities.KubeVersion.Version }}
+ - nodes/pods
+{{- else }}
+ - nodes/proxy
+{{- end }}
+ - nodes/metrics
+ - nodes/stats
+ - services
+ - endpoints
+ - pods
+ - events
+ - secrets
+ - persistentvolumeclaims
+ - persistentvolumes
+ verbs: ["get", "list", "watch"]
+- apiGroups: ["monitoring.coreos.com"]
+ resources:
+ - servicemonitors
+ - podmonitors
+ - scrapeconfigs
+ - probes
+ verbs: ["get", "list", "watch"]
+- apiGroups:
+ - extensions
+ resources:
+ - ingresses
+ verbs: ["get", "list", "watch"]
+- apiGroups:
+ - apps
+ resources:
+ - daemonsets
+ - deployments
+ - replicasets
+ - statefulsets
+ verbs: ["get", "list", "watch"]
+- apiGroups:
+ - networking.k8s.io
+ resources:
+ - ingresses
+ verbs: ["get", "list", "watch"]
+- apiGroups: ["discovery.k8s.io"]
+ resources:
+ - endpointslices
+ verbs: ["get", "list", "watch"]
+- nonResourceURLs: ["/metrics", "/metrics/cadvisor"]
+ verbs: ["get"]
+{{- include "opentelemetry-kube-stack.k8scluster.rules" . }}
+{{- end }}
+{{ range $_, $collector := $.Values.collectors -}}
+{{- if $collector.enabled -}}
+{{- if $.Values.defaultCRConfig.enabled }}
+{{- $collector = (mergeOverwrite (deepCopy $.Values.defaultCRConfig) $collector) }}
+{{- end }}
+{{- $merged := (dict "Template" $.Template "Files" $.Files "Chart" $.Chart "clusterRole" $.Values.clusterRole "collector" $collector "Release" $.Release "fullnameOverride" $.Values.fullnameOverride "presets" $.Values.presets) }}
+{{- $fullname := (include "opentelemetry-kube-stack.collectorFullname" $merged) }}
+{{- if and $collector.enabled $collector.clusterRoleBinding.enabled }}
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ name: {{ $fullname }}
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: {{ include "opentelemetry-kube-stack.clusterRoleName" $ }}
+subjects:
+- kind: ServiceAccount
+ # quirk of the Operator
+{{- if $collector.serviceAccount }}
+ name: "{{ $collector.serviceAccount }}"
+{{- else }}
+ name: "{{ $fullname }}-collector"
+{{- end }}
+ namespace: {{ $.Release.Namespace }}
+{{- if $collector.targetAllocator.enabled }}
+- kind: ServiceAccount
+{{- if $collector.targetAllocator.serviceAccount }}
+ name: "{{ $collector.targetAllocator.serviceAccount }}"
+{{- else }}
+ name: {{ $fullname }}-targetallocator
+{{- end }}
+ namespace: {{ $.Release.Namespace }}
+{{- end }}
+{{- end }}
+{{- end }}
+{{- end }}
+{{- if and $.Values.opAMPBridge.enabled $.Values.opAMPBridge.clusterRole.enabled }}
+{{- $merged := (dict "Chart" $.Chart "clusterRole" $.Values.clusterRole "opAMPBridge" $.Values.opAMPBridge "Release" $.Release "fullnameOverride" $.Values.fullnameOverride) }}
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ name: {{ include "opentelemetry-opamp-bridge.clusterRoleName" . }}
+rules:
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - opentelemetrycollectors
+ verbs:
+ - "*"
+ - apiGroups:
+ - ""
+ resources:
+ - pods
+ verbs:
+ - 'list'
+ - 'get'
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ name: {{ include "opentelemetry-opamp-bridge.fullname" $merged }}
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: "{{ include "opentelemetry-opamp-bridge.clusterRoleName" . }}"
+subjects:
+ - kind: ServiceAccount
+ # quirk of the Operator
+ {{- if $.Values.opAMPBridge.serviceAccount }}
+ name: "{{ $.Values.opAMPBridge.serviceAccount }}"
+ {{- else }}
+ name: "{{ (include "opentelemetry-opamp-bridge.fullname" $merged) }}-opamp-bridge"
+ {{- end }}
+ namespace: "{{ $.Release.Namespace }}"
+{{- end }}
diff --git a/charts/opentelemetry-kube-stack/templates/collector.yaml b/charts/opentelemetry-kube-stack/templates/collector.yaml
new file mode 100644
index 00000000..5ca16faa
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/templates/collector.yaml
@@ -0,0 +1,255 @@
+{{ range $_, $collector := $.Values.collectors -}}
+{{- if $collector.enabled -}}
+{{- if $.Values.defaultCRConfig.enabled }}
+{{- $collector = (mergeOverwrite (deepCopy $.Values.defaultCRConfig) $collector) }}
+{{- end }}
+{{- $merged := (dict "Template" $.Template "Files" $.Files "Chart" $.Chart "clusterRole" $.Values.clusterRole "collector" $collector "Release" $.Release "fullnameOverride" $.Values.fullnameOverride "presets" $.Values.presets "namespace" (include "opentelemetry-kube-stack.namespace" $) "kubelet" $.Values.kubelet "clusterName" $.Values.clusterName) }}
+{{- $fullname := (include "opentelemetry-kube-stack.collectorFullname" $merged) }}
+---
+apiVersion: opentelemetry.io/v1beta1
+kind: OpenTelemetryCollector
+metadata:
+ name: {{ $fullname }}
+ namespace: {{ include "opentelemetry-kube-stack.namespace" $ }}
+ labels:
+ {{- include "opentelemetry-kube-stack.labels" $ | nindent 4 }}
+ {{- include "opentelemetry-kube-stack.renderkv" $collector.labels | indent 4 }}
+ {{- include "opentelemetry-kube-stack.collectorOpAMPLabels" $.Values | indent 4 }}
+ {{- with $collector.annotations }}
+ annotations:
+ {{- include "opentelemetry-kube-stack.renderkv" . | nindent 4 }}
+ {{- end }}
+spec:
+ managementState: {{ $collector.managementState }}
+ mode: {{ $collector.mode }}
+ config:
+ {{- include "opentelemetry-kube-stack.config" $merged }}
+ {{- if and (not (eq $collector.mode "daemonset" )) (not $collector.autoscaler) }}
+ replicas: {{ $collector.replicas }}
+ {{- end }}
+ {{- if $collector.serviceAccount }}
+ serviceAccount: {{ $collector.serviceAccount }}
+ {{- end }}
+ {{- if $collector.image.digest }}
+ image: "{{ $collector.image.repository }}@{{ $collector.image.digest }}"
+ {{- else if $collector.image.tag }}
+ image: "{{ $collector.image.repository }}:{{ $collector.image.tag }}"
+ {{- end }}
+ imagePullPolicy: {{ $collector.image.pullPolicy }}
+ upgradeStrategy: {{ $collector.upgradeStrategy }}
+ {{- if $collector.hostNetwork }}
+ hostNetwork: {{ $collector.hostNetwork }}
+ {{- end }}
+ {{- if $collector.hostPID }}
+ hostPID: {{ $collector.hostPID }}
+ {{- end }}
+ {{- if $collector.shareProcessNamespace }}
+ shareProcessNamespace: {{ $collector.shareProcessNamespace }}
+ {{- end }}
+ {{- if $collector.priorityClassName }}
+ priorityClassName: {{ $collector.priorityClassName }}
+ {{- end }}
+ terminationGracePeriodSeconds: {{ $collector.terminationGracePeriodSeconds }}
+ {{- with $collector.resources }}
+ resources:
+ {{- toYaml . | nindent 4}}
+ {{- end }}
+ {{- with $collector.nodeSelector }}
+ nodeSelector:
+ {{- toYaml . | nindent 4}}
+ {{- end }}
+ {{- with $collector.command }}
+ command:
+ {{- toYaml . | nindent 4}}
+ {{- end }}
+ {{- with $collector.args }}
+ args:
+ {{- toYaml . | nindent 4}}
+ {{- end }}
+ {{- with $collector.autoscaler }}
+ autoscaler:
+ {{- toYaml . | nindent 4}}
+ {{- end }}
+ {{- with $collector.podDisruptionBudget }}
+ podDisruptionBudget:
+ {{- toYaml . | nindent 4}}
+ {{- end }}
+ securityContext:
+ {{- if and (not ($collector.securityContext)) ($collector.presets.logsCollection.storeCheckpoints) }}
+ runAsUser: 0
+ runAsGroup: 0
+ {{- else -}}
+ {{- toYaml $collector.securityContext | nindent 4 }}
+ {{- end }}
+ {{- with $collector.podSecurityContext }}
+ podSecurityContext:
+ {{- toYaml . | nindent 4}}
+ {{- end }}
+ {{- with $collector.podAnnotations }}
+ podAnnotations:
+ {{- toYaml . | nindent 4}}
+ {{- end }}
+ {{- with $collector.targetAllocator }}
+ targetAllocator:
+ {{- toYaml . | nindent 4}}
+ {{- end }}
+ {{- with $collector.ingress }}
+ ingress:
+ {{- toYaml . | nindent 4}}
+ {{- end }}
+ {{- with $collector.affinity }}
+ affinity:
+ {{- tpl (toYaml .) $merged | nindent 4}}
+ {{- end }}
+ {{- with $collector.lifecycle }}
+ lifecycle:
+ {{- toYaml . | nindent 4}}
+ {{- end }}
+ {{- with $collector.livenessProbe }}
+ livenessProbe:
+ {{- toYaml . | nindent 4}}
+ {{- end }}
+ {{- with $collector.observability }}
+ observability:
+ {{- toYaml . | nindent 4}}
+ {{- end }}
+ {{- with $collector.updateStrategy }}
+ updateStrategy:
+ {{- toYaml . | nindent 4}}
+ {{- end }}
+ {{- if eq $collector.mode "daemonset" }}
+ {{- with $collector.daemonSetUpdateStrategy }}
+ daemonSetUpdateStrategy:
+ {{- toYaml . | nindent 4}}
+ {{- end }}
+ {{- end }}
+ {{- if eq $collector.mode "deployment" }}
+ {{- with $collector.deploymentUpdateStrategy }}
+ deploymentUpdateStrategy:
+ {{- toYaml . | nindent 4}}
+ {{- end }}
+ {{- end }}
+ {{- if eq $collector.mode "statefulset" }}
+ {{- with $collector.persistentVolumeClaimRetentionPolicy }}
+ persistentVolumeClaimRetentionPolicy:
+ {{- toYaml . | nindent 4}}
+ {{- end }}
+ {{- end }}
+ {{- if or ($collector.presets.logsCollection.enabled) ($collector.presets.logsCollection.storeCheckpoints) ($collector.presets.hostMetrics.enabled) ($collector.volumeMounts) }}
+ volumeMounts:
+ {{- if $collector.presets.logsCollection.enabled }}
+ - name: varlogpods
+ mountPath: /var/log/pods
+ readOnly: true
+ - name: varlibdockercontainers
+ mountPath: /var/lib/docker/containers
+ readOnly: true
+ {{- end }}
+ {{- if $collector.presets.logsCollection.storeCheckpoints}}
+ - name: varlibotelcol
+ mountPath: /var/lib/otelcol
+ {{- end }}
+ {{- if $collector.presets.hostMetrics.enabled }}
+ - name: hostfs
+ mountPath: /hostfs
+ readOnly: true
+ mountPropagation: HostToContainer
+ {{- end }}
+ {{- with $collector.volumeMounts }}
+ {{- tpl (toYaml .) $merged | nindent 2 }}
+ {{- end }}
+ {{- end }}
+ {{- with $collector.ports }}
+ ports:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ env:
+ - name: K8S_NODE_NAME {{/* used by detectors such as the EKS resource detector */}}
+ valueFrom:
+ fieldRef:
+ fieldPath: spec.nodeName
+ - name: OTEL_K8S_NODE_NAME
+ valueFrom:
+ fieldRef:
+ fieldPath: spec.nodeName
+ - name: OTEL_K8S_NODE_IP
+ valueFrom:
+ fieldRef:
+ fieldPath: status.hostIP
+ - name: OTEL_K8S_NAMESPACE
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.namespace
+ - name: OTEL_K8S_POD_NAME
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: metadata.name
+ - name: OTEL_K8S_POD_IP
+ valueFrom:
+ fieldRef:
+ apiVersion: v1
+ fieldPath: status.podIP
+ - name: OTEL_RESOURCE_ATTRIBUTES
+ value: "k8s.pod.name=$(OTEL_K8S_POD_NAME),k8s.namespace.name=$(OTEL_K8S_NAMESPACE),k8s.node.name=$(OTEL_K8S_NODE_NAME),host.name=$(OTEL_K8S_NODE_NAME),k8s.node.ip=$(OTEL_K8S_NODE_IP),k8s.pod.ip=$(OTEL_K8S_POD_IP){{- if $.Values.clusterName }},k8s.cluster.name={{ $.Values.clusterName }}{{- end }}"
+ {{- include "opentelemetry-kube-stack.renderenvs" (dict "extraEnvs" $.Values.extraEnvs "env" $collector.env) | nindent 2 }}
+ {{- with $collector.envFrom }}
+ envFrom:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with $collector.volumeClaimTemplates }}
+ volumeClaimTemplates:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with $collector.tolerations }}
+ tolerations:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with $collector.hostAliases }}
+ hostAliases:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- if or ($collector.presets.logsCollection.enabled) ($collector.presets.logsCollection.storeCheckpoints) ($collector.presets.hostMetrics.enabled) ($collector.volumes) }}
+ volumes:
+ {{- if $collector.presets.logsCollection.enabled }}
+ - name: varlogpods
+ hostPath:
+ path: /var/log/pods
+ {{- if $collector.presets.logsCollection.storeCheckpoints }}
+ - name: varlibotelcol
+ hostPath:
+ path: /var/lib/otelcol
+ type: DirectoryOrCreate
+ {{- end }}
+ - name: varlibdockercontainers
+ hostPath:
+ path: /var/lib/docker/containers
+ {{- end }}
+ {{- if $collector.presets.hostMetrics.enabled }}
+ - name: hostfs
+ hostPath:
+ path: /
+ {{- end }}
+ {{- with $collector.volumes }}
+ {{- tpl (toYaml .) $merged | nindent 2 }}
+ {{- end }}
+ {{- end }}
+ {{- with $collector.initContainers }}
+ initContainers:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with $collector.additionalContainers }}
+ additionalContainers:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with $collector.topologySpreadConstraints }}
+ topologySpreadConstraints:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with $collector.configmaps }}
+ configmaps:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- end }}
+{{- end }}
diff --git a/charts/opentelemetry-kube-stack/templates/exporters/core-dns/service.yaml b/charts/opentelemetry-kube-stack/templates/exporters/core-dns/service.yaml
new file mode 100644
index 00000000..04e1c9d1
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/templates/exporters/core-dns/service.yaml
@@ -0,0 +1,24 @@
+{{- if and .Values.coreDns.enabled .Values.coreDns.service.enabled .Values.kubernetesServiceMonitors.enabled }}
+apiVersion: v1
+kind: Service
+metadata:
+ name: {{ template "opentelemetry-kube-stack.fullname" . }}-coredns
+ labels:
+ app: {{ template "opentelemetry-kube-stack.name" . }}-coredns
+ jobLabel: coredns
+{{ include "opentelemetry-kube-stack.labels" . | indent 4 }}
+ namespace: kube-system
+spec:
+ clusterIP: None
+ ports:
+ - name: {{ .Values.coreDns.serviceMonitor.port }}
+ port: {{ .Values.coreDns.service.port }}
+ protocol: TCP
+ targetPort: {{ .Values.coreDns.service.targetPort }}
+ selector:
+ {{- if .Values.coreDns.service.selector }}
+{{ toYaml .Values.coreDns.service.selector | indent 4 }}
+ {{- else}}
+ k8s-app: kube-dns
+ {{- end}}
+{{- end }}
diff --git a/charts/opentelemetry-kube-stack/templates/exporters/core-dns/servicemonitor.yaml b/charts/opentelemetry-kube-stack/templates/exporters/core-dns/servicemonitor.yaml
new file mode 100644
index 00000000..fdb2cd94
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/templates/exporters/core-dns/servicemonitor.yaml
@@ -0,0 +1,48 @@
+{{- if and .Values.coreDns.enabled .Values.coreDns.serviceMonitor.enabled .Values.kubernetesServiceMonitors.enabled }}
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+ name: {{ template "opentelemetry-kube-stack.fullname" . }}-coredns
+ {{- if .Values.kubernetesServiceMonitors.ignoreNamespaceSelectors }}
+ namespace: kube-system
+ {{- else }}
+ namespace: {{ template "opentelemetry-kube-stack.namespace" . }}
+ {{- end }}
+ labels:
+ app: {{ template "opentelemetry-kube-stack.name" . }}-coredns
+ {{- with .Values.coreDns.serviceMonitor.additionalLabels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+{{ include "opentelemetry-kube-stack.labels" . | indent 4 }}
+spec:
+ jobLabel: {{ .Values.coreDns.serviceMonitor.jobLabel }}
+ {{- include "opentelemetry-kube-stack.servicemonitor.scrapeLimits" .Values.coreDns.serviceMonitor | nindent 2 }}
+ selector:
+ {{- if .Values.coreDns.serviceMonitor.selector }}
+ {{ tpl (toYaml .Values.coreDns.serviceMonitor.selector | nindent 4) . }}
+ {{- else }}
+ matchLabels:
+ app: {{ template "opentelemetry-kube-stack.name" . }}-coredns
+ release: {{ $.Release.Name | quote }}
+ {{- end }}
+ namespaceSelector:
+ matchNames:
+ - "kube-system"
+ endpoints:
+ - port: {{ .Values.coreDns.serviceMonitor.port }}
+ {{- if .Values.coreDns.serviceMonitor.interval}}
+ interval: {{ .Values.coreDns.serviceMonitor.interval }}
+ {{- end }}
+ {{- if .Values.coreDns.serviceMonitor.proxyUrl }}
+ proxyUrl: {{ .Values.coreDns.serviceMonitor.proxyUrl}}
+ {{- end }}
+ bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
+{{- if .Values.coreDns.serviceMonitor.metricRelabelings }}
+ metricRelabelings:
+{{ tpl (toYaml .Values.coreDns.serviceMonitor.metricRelabelings | indent 4) . }}
+{{- end }}
+{{- if .Values.coreDns.serviceMonitor.relabelings }}
+ relabelings:
+{{ tpl (toYaml .Values.coreDns.serviceMonitor.relabelings | indent 4) . }}
+{{- end }}
+{{- end }}
diff --git a/charts/opentelemetry-kube-stack/templates/exporters/kube-api-server/servicemonitor.yaml b/charts/opentelemetry-kube-stack/templates/exporters/kube-api-server/servicemonitor.yaml
new file mode 100644
index 00000000..85a2657d
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/templates/exporters/kube-api-server/servicemonitor.yaml
@@ -0,0 +1,47 @@
+{{- if and .Values.kubeApiServer.enabled .Values.kubernetesServiceMonitors.enabled }}
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+ name: {{ template "opentelemetry-kube-stack.fullname" . }}-apiserver
+ {{- if .Values.kubernetesServiceMonitors.ignoreNamespaceSelectors }}
+ namespace: default
+ {{- else }}
+ namespace: {{ template "opentelemetry-kube-stack.namespace" . }}
+ {{- end }}
+ labels:
+ app: {{ template "opentelemetry-kube-stack.name" . }}-apiserver
+ {{- with .Values.kubeApiServer.serviceMonitor.additionalLabels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+{{ include "opentelemetry-kube-stack.labels" . | indent 4 }}
+spec:
+ {{- include "opentelemetry-kube-stack.servicemonitor.scrapeLimits" .Values.kubeApiServer.serviceMonitor | nindent 2 }}
+ endpoints:
+ - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
+ {{- if .Values.kubeApiServer.serviceMonitor.interval }}
+ interval: {{ .Values.kubeApiServer.serviceMonitor.interval }}
+ {{- end }}
+ {{- if .Values.kubeApiServer.serviceMonitor.proxyUrl }}
+ proxyUrl: {{ .Values.kubeApiServer.serviceMonitor.proxyUrl }}
+ {{- end }}
+ port: https
+ scheme: https
+{{- if .Values.kubeApiServer.serviceMonitor.metricRelabelings }}
+ metricRelabelings:
+{{ tpl (toYaml .Values.kubeApiServer.serviceMonitor.metricRelabelings | indent 6) . }}
+{{- end }}
+{{- if .Values.kubeApiServer.serviceMonitor.relabelings }}
+ relabelings:
+{{ tpl (toYaml .Values.kubeApiServer.serviceMonitor.relabelings | indent 6) . }}
+{{- end }}
+ tlsConfig:
+ caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
+ serverName: {{ .Values.kubeApiServer.tlsConfig.serverName }}
+ insecureSkipVerify: {{ .Values.kubeApiServer.tlsConfig.insecureSkipVerify }}
+ jobLabel: {{ .Values.kubeApiServer.serviceMonitor.jobLabel }}
+ namespaceSelector:
+ matchNames:
+ - default
+ selector:
+{{ toYaml .Values.kubeApiServer.serviceMonitor.selector | indent 4 }}
+{{- end}}
diff --git a/charts/opentelemetry-kube-stack/templates/exporters/kube-controller-manager/endpoints.yaml b/charts/opentelemetry-kube-stack/templates/exporters/kube-controller-manager/endpoints.yaml
new file mode 100644
index 00000000..d792766a
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/templates/exporters/kube-controller-manager/endpoints.yaml
@@ -0,0 +1,22 @@
+{{- if and .Values.kubeControllerManager.enabled .Values.kubeControllerManager.endpoints .Values.kubernetesServiceMonitors.enabled }}
+apiVersion: v1
+kind: Endpoints
+metadata:
+ name: {{ template "opentelemetry-kube-stack.fullname" . }}-kube-controller-manager
+ labels:
+ app: {{ template "opentelemetry-kube-stack.name" . }}-kube-controller-manager
+ k8s-app: kube-controller-manager
+{{ include "opentelemetry-kube-stack.labels" . | indent 4 }}
+ namespace: kube-system
+subsets:
+ - addresses:
+ {{- range .Values.kubeControllerManager.endpoints }}
+ - ip: {{ . }}
+ {{- end }}
+ ports:
+ - name: {{ .Values.kubeControllerManager.serviceMonitor.port }}
+ {{- $kubeControllerManagerDefaultInsecurePort := 10252 }}
+ {{- $kubeControllerManagerDefaultSecurePort := 10257 }}
+ port: {{ include "opentelemetry-kube-stack.kubeControllerManager.insecureScrape" (list . $kubeControllerManagerDefaultInsecurePort $kubeControllerManagerDefaultSecurePort .Values.kubeControllerManager.service.port) }}
+ protocol: TCP
+{{- end }}
diff --git a/charts/opentelemetry-kube-stack/templates/exporters/kube-controller-manager/service.yaml b/charts/opentelemetry-kube-stack/templates/exporters/kube-controller-manager/service.yaml
new file mode 100644
index 00000000..103eeb5d
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/templates/exporters/kube-controller-manager/service.yaml
@@ -0,0 +1,29 @@
+{{- if and .Values.kubeControllerManager.enabled .Values.kubeControllerManager.service.enabled .Values.kubernetesServiceMonitors.enabled }}
+apiVersion: v1
+kind: Service
+metadata:
+ name: {{ template "opentelemetry-kube-stack.fullname" . }}-kube-controller-manager
+ labels:
+ app: {{ template "opentelemetry-kube-stack.name" . }}-kube-controller-manager
+ jobLabel: kube-controller-manager
+{{ include "opentelemetry-kube-stack.labels" . | indent 4 }}
+ namespace: kube-system
+spec:
+ clusterIP: None
+ ports:
+ - name: {{ .Values.kubeControllerManager.serviceMonitor.port }}
+ {{- $kubeControllerManagerDefaultInsecurePort := 10252 }}
+ {{- $kubeControllerManagerDefaultSecurePort := 10257 }}
+ port: {{ include "opentelemetry-kube-stack.kubeControllerManager.insecureScrape" (list . $kubeControllerManagerDefaultInsecurePort $kubeControllerManagerDefaultSecurePort .Values.kubeControllerManager.service.port) }}
+ protocol: TCP
+ targetPort: {{ include "opentelemetry-kube-stack.kubeControllerManager.insecureScrape" (list . $kubeControllerManagerDefaultInsecurePort $kubeControllerManagerDefaultSecurePort .Values.kubeControllerManager.service.targetPort) }}
+{{- if .Values.kubeControllerManager.endpoints }}{{- else }}
+ selector:
+ {{- if .Values.kubeControllerManager.service.selector }}
+{{ toYaml .Values.kubeControllerManager.service.selector | indent 4 }}
+ {{- else}}
+ component: kube-controller-manager
+ {{- end}}
+{{- end }}
+ type: ClusterIP
+{{- end }}
diff --git a/charts/opentelemetry-kube-stack/templates/exporters/kube-controller-manager/servicemonitor.yaml b/charts/opentelemetry-kube-stack/templates/exporters/kube-controller-manager/servicemonitor.yaml
new file mode 100644
index 00000000..306442e2
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/templates/exporters/kube-controller-manager/servicemonitor.yaml
@@ -0,0 +1,59 @@
+{{- if and .Values.kubeControllerManager.enabled .Values.kubeControllerManager.serviceMonitor.enabled .Values.kubernetesServiceMonitors.enabled }}
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+ name: {{ template "opentelemetry-kube-stack.fullname" . }}-kube-controller-manager
+ {{- if .Values.kubernetesServiceMonitors.ignoreNamespaceSelectors }}
+ namespace: kube-system
+ {{- else }}
+ namespace: {{ template "opentelemetry-kube-stack.namespace" . }}
+ {{- end }}
+ labels:
+ app: {{ template "opentelemetry-kube-stack.name" . }}-kube-controller-manager
+ {{- with .Values.kubeControllerManager.serviceMonitor.additionalLabels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+{{ include "opentelemetry-kube-stack.labels" . | indent 4 }}
+spec:
+ jobLabel: {{ .Values.kubeControllerManager.serviceMonitor.jobLabel }}
+ {{- include "opentelemetry-kube-stack.servicemonitor.scrapeLimits" .Values.kubeControllerManager.serviceMonitor | nindent 2 }}
+ selector:
+ {{- if .Values.kubeControllerManager.serviceMonitor.selector }}
+ {{ tpl (toYaml .Values.kubeControllerManager.serviceMonitor.selector | nindent 4) . }}
+ {{- else }}
+ matchLabels:
+ app: {{ template "opentelemetry-kube-stack.name" . }}-kube-controller-manager
+ release: {{ $.Release.Name | quote }}
+ {{- end }}
+ namespaceSelector:
+ matchNames:
+ - "kube-system"
+ endpoints:
+ - port: {{ .Values.kubeControllerManager.serviceMonitor.port }}
+ {{- if .Values.kubeControllerManager.serviceMonitor.interval }}
+ interval: {{ .Values.kubeControllerManager.serviceMonitor.interval }}
+ {{- end }}
+ bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
+ {{- if .Values.kubeControllerManager.serviceMonitor.proxyUrl }}
+ proxyUrl: {{ .Values.kubeControllerManager.serviceMonitor.proxyUrl}}
+ {{- end }}
+ {{- if eq (include "opentelemetry-kube-stack.kubeControllerManager.insecureScrape" (list . false true .Values.kubeControllerManager.serviceMonitor.https )) "true" }}
+ scheme: https
+ tlsConfig:
+ caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
+ {{- if eq (include "opentelemetry-kube-stack.kubeControllerManager.insecureScrape" (list . nil true .Values.kubeControllerManager.serviceMonitor.insecureSkipVerify)) "true" }}
+ insecureSkipVerify: true
+ {{- end }}
+ {{- if .Values.kubeControllerManager.serviceMonitor.serverName }}
+ serverName: {{ .Values.kubeControllerManager.serviceMonitor.serverName }}
+ {{- end }}
+ {{- end }}
+{{- if .Values.kubeControllerManager.serviceMonitor.metricRelabelings }}
+ metricRelabelings:
+{{ tpl (toYaml .Values.kubeControllerManager.serviceMonitor.metricRelabelings | indent 4) . }}
+{{- end }}
+{{- if .Values.kubeControllerManager.serviceMonitor.relabelings }}
+ relabelings:
+{{ tpl (toYaml .Values.kubeControllerManager.serviceMonitor.relabelings | indent 4) . }}
+{{- end }}
+{{- end }}
diff --git a/charts/opentelemetry-kube-stack/templates/exporters/kube-dns/service.yaml b/charts/opentelemetry-kube-stack/templates/exporters/kube-dns/service.yaml
new file mode 100644
index 00000000..4f35cfcd
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/templates/exporters/kube-dns/service.yaml
@@ -0,0 +1,28 @@
+{{- if and .Values.kubeDns.enabled .Values.kubernetesServiceMonitors.enabled }}
+apiVersion: v1
+kind: Service
+metadata:
+ name: {{ template "opentelemetry-kube-stack.fullname" . }}-kube-dns
+ labels:
+ app: {{ template "opentelemetry-kube-stack.name" . }}-kube-dns
+ jobLabel: kube-dns
+{{ include "opentelemetry-kube-stack.labels" . | indent 4 }}
+ namespace: kube-system
+spec:
+ clusterIP: None
+ ports:
+ - name: http-metrics-dnsmasq
+ port: {{ .Values.kubeDns.service.dnsmasq.port }}
+ protocol: TCP
+ targetPort: {{ .Values.kubeDns.service.dnsmasq.targetPort }}
+ - name: http-metrics-skydns
+ port: {{ .Values.kubeDns.service.skydns.port }}
+ protocol: TCP
+ targetPort: {{ .Values.kubeDns.service.skydns.targetPort }}
+ selector:
+ {{- if .Values.kubeDns.service.selector }}
+{{ toYaml .Values.kubeDns.service.selector | indent 4 }}
+ {{- else}}
+ k8s-app: kube-dns
+ {{- end}}
+{{- end }}
diff --git a/charts/opentelemetry-kube-stack/templates/exporters/kube-dns/servicemonitor.yaml b/charts/opentelemetry-kube-stack/templates/exporters/kube-dns/servicemonitor.yaml
new file mode 100644
index 00000000..ce66d9be
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/templates/exporters/kube-dns/servicemonitor.yaml
@@ -0,0 +1,61 @@
+{{- if and .Values.kubeDns.enabled .Values.kubernetesServiceMonitors.enabled }}
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+ name: {{ template "opentelemetry-kube-stack.fullname" . }}-kube-dns
+ {{- if .Values.kubernetesServiceMonitors.ignoreNamespaceSelectors }}
+ namespace: kube-system
+ {{- else }}
+ namespace: {{ template "opentelemetry-kube-stack.namespace" . }}
+ {{- end }}
+ labels:
+ app: {{ template "opentelemetry-kube-stack.name" . }}-kube-dns
+ {{- with .Values.kubeDns.serviceMonitor.additionalLabels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+{{ include "opentelemetry-kube-stack.labels" . | indent 4 }}
+spec:
+ jobLabel: {{ .Values.kubeDns.serviceMonitor.jobLabel }}
+ {{- include "opentelemetry-kube-stack.servicemonitor.scrapeLimits" .Values.kubeDns.serviceMonitor | nindent 2 }}
+ selector:
+ {{- if .Values.kubeDns.serviceMonitor.selector }}
+ {{ tpl (toYaml .Values.kubeDns.serviceMonitor.selector | nindent 4) . }}
+ {{- else }}
+ matchLabels:
+ app: {{ template "opentelemetry-kube-stack.name" . }}-kube-dns
+ release: {{ $.Release.Name | quote }}
+ {{- end }}
+ namespaceSelector:
+ matchNames:
+ - "kube-system"
+ endpoints:
+ - port: http-metrics-dnsmasq
+ {{- if .Values.kubeDns.serviceMonitor.interval }}
+ interval: {{ .Values.kubeDns.serviceMonitor.interval }}
+ {{- end }}
+ bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
+ {{- if .Values.kubeDns.serviceMonitor.proxyUrl }}
+ proxyUrl: {{ .Values.kubeDns.serviceMonitor.proxyUrl}}
+ {{- end }}
+{{- if .Values.kubeDns.serviceMonitor.dnsmasqMetricRelabelings }}
+ metricRelabelings:
+{{ tpl (toYaml .Values.kubeDns.serviceMonitor.dnsmasqMetricRelabelings | indent 4) . }}
+{{- end }}
+{{- if .Values.kubeDns.serviceMonitor.dnsmasqRelabelings }}
+ relabelings:
+{{ toYaml .Values.kubeDns.serviceMonitor.dnsmasqRelabelings | indent 4 }}
+{{- end }}
+ - port: http-metrics-skydns
+ {{- if .Values.kubeDns.serviceMonitor.interval }}
+ interval: {{ .Values.kubeDns.serviceMonitor.interval }}
+ {{- end }}
+ bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
+{{- if .Values.kubeDns.serviceMonitor.metricRelabelings }}
+ metricRelabelings:
+{{ tpl (toYaml .Values.kubeDns.serviceMonitor.metricRelabelings | indent 4) . }}
+{{- end }}
+{{- if .Values.kubeDns.serviceMonitor.relabelings }}
+ relabelings:
+{{ tpl (toYaml .Values.kubeDns.serviceMonitor.relabelings | indent 4) . }}
+{{- end }}
+{{- end }}
diff --git a/charts/opentelemetry-kube-stack/templates/exporters/kube-etcd/endpoints.yaml b/charts/opentelemetry-kube-stack/templates/exporters/kube-etcd/endpoints.yaml
new file mode 100644
index 00000000..669f538b
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/templates/exporters/kube-etcd/endpoints.yaml
@@ -0,0 +1,20 @@
+{{- if and .Values.kubeEtcd.enabled .Values.kubeEtcd.endpoints .Values.kubernetesServiceMonitors.enabled }}
+apiVersion: v1
+kind: Endpoints
+metadata:
+ name: {{ template "opentelemetry-kube-stack.fullname" . }}-kube-etcd
+ labels:
+ app: {{ template "opentelemetry-kube-stack.name" . }}-kube-etcd
+ k8s-app: etcd-server
+{{ include "opentelemetry-kube-stack.labels" . | indent 4 }}
+ namespace: kube-system
+subsets:
+ - addresses:
+ {{- range .Values.kubeEtcd.endpoints }}
+ - ip: {{ . }}
+ {{- end }}
+ ports:
+ - name: {{ .Values.kubeEtcd.serviceMonitor.port }}
+ port: {{ .Values.kubeEtcd.service.port }}
+ protocol: TCP
+{{- end }}
diff --git a/charts/opentelemetry-kube-stack/templates/exporters/kube-etcd/service.yaml b/charts/opentelemetry-kube-stack/templates/exporters/kube-etcd/service.yaml
new file mode 100644
index 00000000..f0d15545
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/templates/exporters/kube-etcd/service.yaml
@@ -0,0 +1,27 @@
+{{- if and .Values.kubeEtcd.enabled .Values.kubeEtcd.service.enabled .Values.kubernetesServiceMonitors.enabled }}
+apiVersion: v1
+kind: Service
+metadata:
+ name: {{ template "opentelemetry-kube-stack.fullname" . }}-kube-etcd
+ labels:
+ app: {{ template "opentelemetry-kube-stack.name" . }}-kube-etcd
+ jobLabel: kube-etcd
+{{ include "opentelemetry-kube-stack.labels" . | indent 4 }}
+ namespace: kube-system
+spec:
+ clusterIP: None
+ ports:
+ - name: {{ .Values.kubeEtcd.serviceMonitor.port }}
+ port: {{ .Values.kubeEtcd.service.port }}
+ protocol: TCP
+ targetPort: {{ .Values.kubeEtcd.service.targetPort }}
+{{- if .Values.kubeEtcd.endpoints }}{{- else }}
+ selector:
+ {{- if .Values.kubeEtcd.service.selector }}
+{{ toYaml .Values.kubeEtcd.service.selector | indent 4 }}
+ {{- else}}
+ component: etcd
+ {{- end}}
+{{- end }}
+ type: ClusterIP
+{{- end -}}
diff --git a/charts/opentelemetry-kube-stack/templates/exporters/kube-etcd/servicemonitor.yaml b/charts/opentelemetry-kube-stack/templates/exporters/kube-etcd/servicemonitor.yaml
new file mode 100644
index 00000000..65f7f484
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/templates/exporters/kube-etcd/servicemonitor.yaml
@@ -0,0 +1,65 @@
+{{- if and .Values.kubeEtcd.enabled .Values.kubeEtcd.serviceMonitor.enabled .Values.kubernetesServiceMonitors.enabled }}
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+ name: {{ template "opentelemetry-kube-stack.fullname" . }}-kube-etcd
+ {{- if .Values.kubernetesServiceMonitors.ignoreNamespaceSelectors }}
+ namespace: kube-system
+ {{- else }}
+ namespace: {{ template "opentelemetry-kube-stack.namespace" . }}
+ {{- end }}
+ labels:
+ app: {{ template "opentelemetry-kube-stack.name" . }}-kube-etcd
+ {{- with .Values.kubeEtcd.serviceMonitor.additionalLabels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+{{ include "opentelemetry-kube-stack.labels" . | indent 4 }}
+spec:
+ jobLabel: {{ .Values.kubeEtcd.serviceMonitor.jobLabel }}
+ {{- include "opentelemetry-kube-stack.servicemonitor.scrapeLimits" .Values.kubeEtcd.serviceMonitor | nindent 4 }}
+ selector:
+ {{- if .Values.kubeEtcd.serviceMonitor.selector }}
+ {{ tpl (toYaml .Values.kubeEtcd.serviceMonitor.selector | nindent 4) . }}
+ {{- else }}
+ matchLabels:
+ app: {{ template "opentelemetry-kube-stack.name" . }}-kube-etcd
+ release: {{ $.Release.Name | quote }}
+ {{- end }}
+ namespaceSelector:
+ matchNames:
+ - "kube-system"
+ endpoints:
+ - port: {{ .Values.kubeEtcd.serviceMonitor.port }}
+ {{- if .Values.kubeEtcd.serviceMonitor.interval }}
+ interval: {{ .Values.kubeEtcd.serviceMonitor.interval }}
+ {{- end }}
+ bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
+ {{- if .Values.kubeEtcd.serviceMonitor.proxyUrl }}
+ proxyUrl: {{ .Values.kubeEtcd.serviceMonitor.proxyUrl}}
+ {{- end }}
+ {{- if eq .Values.kubeEtcd.serviceMonitor.scheme "https" }}
+ scheme: https
+ tlsConfig:
+ {{- if .Values.kubeEtcd.serviceMonitor.serverName }}
+ serverName: {{ .Values.kubeEtcd.serviceMonitor.serverName }}
+ {{- end }}
+ {{- if .Values.kubeEtcd.serviceMonitor.caFile }}
+ caFile: {{ .Values.kubeEtcd.serviceMonitor.caFile }}
+ {{- end }}
+ {{- if .Values.kubeEtcd.serviceMonitor.certFile }}
+ certFile: {{ .Values.kubeEtcd.serviceMonitor.certFile }}
+ {{- end }}
+ {{- if .Values.kubeEtcd.serviceMonitor.keyFile }}
+ keyFile: {{ .Values.kubeEtcd.serviceMonitor.keyFile }}
+ {{- end}}
+ insecureSkipVerify: {{ .Values.kubeEtcd.serviceMonitor.insecureSkipVerify }}
+ {{- end }}
+{{- if .Values.kubeEtcd.serviceMonitor.metricRelabelings }}
+ metricRelabelings:
+{{ tpl (toYaml .Values.kubeEtcd.serviceMonitor.metricRelabelings | indent 4) . }}
+{{- end }}
+{{- if .Values.kubeEtcd.serviceMonitor.relabelings }}
+ relabelings:
+{{ tpl (toYaml .Values.kubeEtcd.serviceMonitor.relabelings | indent 4) . }}
+{{- end }}
+{{- end }}
diff --git a/charts/opentelemetry-kube-stack/templates/exporters/kube-proxy/endpoints.yaml b/charts/opentelemetry-kube-stack/templates/exporters/kube-proxy/endpoints.yaml
new file mode 100644
index 00000000..42c7225a
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/templates/exporters/kube-proxy/endpoints.yaml
@@ -0,0 +1,20 @@
+{{- if and .Values.kubeProxy.enabled .Values.kubeProxy.endpoints .Values.kubernetesServiceMonitors.enabled }}
+apiVersion: v1
+kind: Endpoints
+metadata:
+ name: {{ template "opentelemetry-kube-stack.fullname" . }}-kube-proxy
+ labels:
+ app: {{ template "opentelemetry-kube-stack.name" . }}-kube-proxy
+ k8s-app: kube-proxy
+{{ include "opentelemetry-kube-stack.labels" . | indent 4 }}
+ namespace: kube-system
+subsets:
+ - addresses:
+ {{- range .Values.kubeProxy.endpoints }}
+ - ip: {{ . }}
+ {{- end }}
+ ports:
+ - name: {{ .Values.kubeProxy.serviceMonitor.port }}
+ port: {{ .Values.kubeProxy.service.port }}
+ protocol: TCP
+{{- end }}
diff --git a/charts/opentelemetry-kube-stack/templates/exporters/kube-proxy/service.yaml b/charts/opentelemetry-kube-stack/templates/exporters/kube-proxy/service.yaml
new file mode 100644
index 00000000..886d87eb
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/templates/exporters/kube-proxy/service.yaml
@@ -0,0 +1,27 @@
+{{- if and .Values.kubeProxy.enabled .Values.kubeProxy.service.enabled .Values.kubernetesServiceMonitors.enabled }}
+apiVersion: v1
+kind: Service
+metadata:
+ name: {{ template "opentelemetry-kube-stack.fullname" . }}-kube-proxy
+ labels:
+ app: {{ template "opentelemetry-kube-stack.name" . }}-kube-proxy
+ jobLabel: kube-proxy
+{{ include "opentelemetry-kube-stack.labels" . | indent 4 }}
+ namespace: kube-system
+spec:
+ clusterIP: None
+ ports:
+ - name: {{ .Values.kubeProxy.serviceMonitor.port }}
+ port: {{ .Values.kubeProxy.service.port }}
+ protocol: TCP
+ targetPort: {{ .Values.kubeProxy.service.targetPort }}
+{{- if .Values.kubeProxy.endpoints }}{{- else }}
+ selector:
+ {{- if .Values.kubeProxy.service.selector }}
+{{ toYaml .Values.kubeProxy.service.selector | indent 4 }}
+ {{- else}}
+ k8s-app: kube-proxy
+ {{- end}}
+{{- end }}
+ type: ClusterIP
+{{- end -}}
diff --git a/charts/opentelemetry-kube-stack/templates/exporters/kube-proxy/servicemonitor.yaml b/charts/opentelemetry-kube-stack/templates/exporters/kube-proxy/servicemonitor.yaml
new file mode 100644
index 00000000..b15e89a4
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/templates/exporters/kube-proxy/servicemonitor.yaml
@@ -0,0 +1,53 @@
+{{- if and .Values.kubeProxy.enabled .Values.kubeProxy.serviceMonitor.enabled .Values.kubernetesServiceMonitors.enabled }}
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+ name: {{ template "opentelemetry-kube-stack.fullname" . }}-kube-proxy
+ {{- if .Values.kubernetesServiceMonitors.ignoreNamespaceSelectors }}
+ namespace: kube-system
+ {{- else }}
+ namespace: {{ template "opentelemetry-kube-stack.namespace" . }}
+ {{- end }}
+ labels:
+ app: {{ template "opentelemetry-kube-stack.name" . }}-kube-proxy
+ {{- with .Values.kubeProxy.serviceMonitor.additionalLabels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+{{ include "opentelemetry-kube-stack.labels" . | indent 4 }}
+spec:
+ jobLabel: {{ .Values.kubeProxy.serviceMonitor.jobLabel }}
+ {{- include "opentelemetry-kube-stack.servicemonitor.scrapeLimits" .Values.kubeProxy.serviceMonitor | nindent 2 }}
+ selector:
+ {{- if .Values.kubeProxy.serviceMonitor.selector }}
+ {{ tpl (toYaml .Values.kubeProxy.serviceMonitor.selector | nindent 4) . }}
+ {{- else }}
+ matchLabels:
+ app: {{ template "opentelemetry-kube-stack.name" . }}-kube-proxy
+ release: {{ $.Release.Name | quote }}
+ {{- end }}
+ namespaceSelector:
+ matchNames:
+ - "kube-system"
+ endpoints:
+ - port: {{ .Values.kubeProxy.serviceMonitor.port }}
+ {{- if .Values.kubeProxy.serviceMonitor.interval }}
+ interval: {{ .Values.kubeProxy.serviceMonitor.interval }}
+ {{- end }}
+ bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
+ {{- if .Values.kubeProxy.serviceMonitor.proxyUrl }}
+ proxyUrl: {{ .Values.kubeProxy.serviceMonitor.proxyUrl}}
+ {{- end }}
+ {{- if .Values.kubeProxy.serviceMonitor.https }}
+ scheme: https
+ tlsConfig:
+ caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
+ {{- end}}
+{{- if .Values.kubeProxy.serviceMonitor.metricRelabelings }}
+ metricRelabelings:
+{{ tpl (toYaml .Values.kubeProxy.serviceMonitor.metricRelabelings | indent 4) . }}
+{{- end }}
+{{- if .Values.kubeProxy.serviceMonitor.relabelings }}
+ relabelings:
+{{ tpl (toYaml .Values.kubeProxy.serviceMonitor.relabelings | indent 4) . }}
+{{- end }}
+{{- end }}
diff --git a/charts/opentelemetry-kube-stack/templates/exporters/kube-scheduler/endpoints.yaml b/charts/opentelemetry-kube-stack/templates/exporters/kube-scheduler/endpoints.yaml
new file mode 100644
index 00000000..b7baccc3
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/templates/exporters/kube-scheduler/endpoints.yaml
@@ -0,0 +1,22 @@
+{{- if and .Values.kubeScheduler.enabled .Values.kubeScheduler.endpoints .Values.kubernetesServiceMonitors.enabled }}
+apiVersion: v1
+kind: Endpoints
+metadata:
+ name: {{ template "opentelemetry-kube-stack.fullname" . }}-kube-scheduler
+ labels:
+ app: {{ template "opentelemetry-kube-stack.name" . }}-kube-scheduler
+ k8s-app: kube-scheduler
+{{ include "opentelemetry-kube-stack.labels" . | indent 4 }}
+ namespace: kube-system
+subsets:
+ - addresses:
+ {{- range .Values.kubeScheduler.endpoints }}
+ - ip: {{ . }}
+ {{- end }}
+ ports:
+ - name: {{ .Values.kubeScheduler.serviceMonitor.port }}
+ {{- $kubeSchedulerDefaultInsecurePort := 10251 }}
+ {{- $kubeSchedulerDefaultSecurePort := 10259 }}
+ port: {{ include "opentelemetry-kube-stack.kubeScheduler.insecureScrape" (list . $kubeSchedulerDefaultInsecurePort $kubeSchedulerDefaultSecurePort .Values.kubeScheduler.service.port) }}
+ protocol: TCP
+{{- end }}
diff --git a/charts/opentelemetry-kube-stack/templates/exporters/kube-scheduler/service.yaml b/charts/opentelemetry-kube-stack/templates/exporters/kube-scheduler/service.yaml
new file mode 100644
index 00000000..c4912eb2
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/templates/exporters/kube-scheduler/service.yaml
@@ -0,0 +1,29 @@
+{{- if and .Values.kubeScheduler.enabled .Values.kubeScheduler.service.enabled .Values.kubernetesServiceMonitors.enabled }}
+apiVersion: v1
+kind: Service
+metadata:
+ name: {{ template "opentelemetry-kube-stack.fullname" . }}-kube-scheduler
+ labels:
+ app: {{ template "opentelemetry-kube-stack.name" . }}-kube-scheduler
+ jobLabel: kube-scheduler
+{{ include "opentelemetry-kube-stack.labels" . | indent 4 }}
+ namespace: kube-system
+spec:
+ clusterIP: None
+ ports:
+ - name: {{ .Values.kubeScheduler.serviceMonitor.port }}
+ {{- $kubeSchedulerDefaultInsecurePort := 10251 }}
+ {{- $kubeSchedulerDefaultSecurePort := 10259 }}
+ port: {{ include "opentelemetry-kube-stack.kubeScheduler.insecureScrape" (list . $kubeSchedulerDefaultInsecurePort $kubeSchedulerDefaultSecurePort .Values.kubeScheduler.service.port) }}
+ protocol: TCP
+ targetPort: {{ include "opentelemetry-kube-stack.kubeScheduler.insecureScrape" (list . $kubeSchedulerDefaultInsecurePort $kubeSchedulerDefaultSecurePort .Values.kubeScheduler.service.targetPort) }}
+{{- if .Values.kubeScheduler.endpoints }}{{- else }}
+ selector:
+ {{- if .Values.kubeScheduler.service.selector }}
+{{ toYaml .Values.kubeScheduler.service.selector | indent 4 }}
+ {{- else}}
+ component: kube-scheduler
+ {{- end}}
+{{- end }}
+ type: ClusterIP
+{{- end -}}
diff --git a/charts/opentelemetry-kube-stack/templates/exporters/kube-scheduler/servicemonitor.yaml b/charts/opentelemetry-kube-stack/templates/exporters/kube-scheduler/servicemonitor.yaml
new file mode 100644
index 00000000..8b192010
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/templates/exporters/kube-scheduler/servicemonitor.yaml
@@ -0,0 +1,59 @@
+{{- if and .Values.kubeScheduler.enabled .Values.kubeScheduler.serviceMonitor.enabled .Values.kubernetesServiceMonitors.enabled }}
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+ name: {{ template "opentelemetry-kube-stack.fullname" . }}-kube-scheduler
+ {{- if .Values.kubernetesServiceMonitors.ignoreNamespaceSelectors }}
+ namespace: kube-system
+ {{- else }}
+ namespace: {{ template "opentelemetry-kube-stack.namespace" . }}
+ {{- end }}
+ labels:
+ app: {{ template "opentelemetry-kube-stack.name" . }}-kube-scheduler
+ {{- with .Values.kubeScheduler.serviceMonitor.additionalLabels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+{{ include "opentelemetry-kube-stack.labels" . | indent 4 }}
+spec:
+ jobLabel: {{ .Values.kubeScheduler.serviceMonitor.jobLabel }}
+ {{- include "opentelemetry-kube-stack.servicemonitor.scrapeLimits" .Values.kubeScheduler.serviceMonitor | nindent 2 }}
+ selector:
+ {{- if .Values.kubeScheduler.serviceMonitor.selector }}
+ {{ tpl (toYaml .Values.kubeScheduler.serviceMonitor.selector | nindent 4) . }}
+ {{- else }}
+ matchLabels:
+ app: {{ template "opentelemetry-kube-stack.name" . }}-kube-scheduler
+ release: {{ $.Release.Name | quote }}
+ {{- end }}
+ namespaceSelector:
+ matchNames:
+ - "kube-system"
+ endpoints:
+ - port: {{ .Values.kubeScheduler.serviceMonitor.port }}
+ {{- if .Values.kubeScheduler.serviceMonitor.interval }}
+ interval: {{ .Values.kubeScheduler.serviceMonitor.interval }}
+ {{- end }}
+ bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
+ {{- if .Values.kubeScheduler.serviceMonitor.proxyUrl }}
+ proxyUrl: {{ .Values.kubeScheduler.serviceMonitor.proxyUrl}}
+ {{- end }}
+ {{- if eq (include "opentelemetry-kube-stack.kubeScheduler.insecureScrape" (list . false true .Values.kubeScheduler.serviceMonitor.https )) "true" }}
+ scheme: https
+ tlsConfig:
+ caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
+ {{- if eq (include "opentelemetry-kube-stack.kubeScheduler.insecureScrape" (list . nil true .Values.kubeScheduler.serviceMonitor.insecureSkipVerify)) "true" }}
+ insecureSkipVerify: true
+ {{- end }}
+ {{- if .Values.kubeScheduler.serviceMonitor.serverName }}
+ serverName: {{ .Values.kubeScheduler.serviceMonitor.serverName }}
+ {{- end}}
+ {{- end}}
+{{- if .Values.kubeScheduler.serviceMonitor.metricRelabelings }}
+ metricRelabelings:
+{{ tpl (toYaml .Values.kubeScheduler.serviceMonitor.metricRelabelings | indent 4) . }}
+{{- end }}
+{{- if .Values.kubeScheduler.serviceMonitor.relabelings }}
+ relabelings:
+{{ tpl (toYaml .Values.kubeScheduler.serviceMonitor.relabelings | indent 4) . }}
+{{- end }}
+{{- end }}
diff --git a/charts/opentelemetry-kube-stack/templates/extramanifests.yaml b/charts/opentelemetry-kube-stack/templates/extramanifests.yaml
new file mode 100644
index 00000000..2855904e
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/templates/extramanifests.yaml
@@ -0,0 +1,4 @@
+{{ range .Values.extraObjects }}
+---
+{{ tpl (toYaml .) $ }}
+{{ end }}
\ No newline at end of file
diff --git a/charts/opentelemetry-kube-stack/templates/hooks.yaml b/charts/opentelemetry-kube-stack/templates/hooks.yaml
new file mode 100644
index 00000000..031412d8
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/templates/hooks.yaml
@@ -0,0 +1,77 @@
+{{- if .Values.cleanupJob.enabled }}
+{{- if not .Values.cleanupJob.existingServiceAccount}}
+---
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+ name: delete-resources-sa
+ annotations:
+ "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
+{{- end}}
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: Role
+metadata:
+ name: delete-resources-role
+ annotations:
+ "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
+rules:
+ - apiGroups:
+ - opentelemetry.io
+ resources:
+ - instrumentations
+ - opampbridges
+ - opentelemetrycollectors
+ verbs:
+ - get
+ - list
+ - delete
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: RoleBinding
+metadata:
+ name: delete-resources-rolebinding
+ annotations:
+ "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: Role
+ name: delete-resources-role
+subjects:
+{{- if not .Values.cleanupJob.existingServiceAccount}}
+ - kind: ServiceAccount
+ name: delete-resources-sa
+{{- else}}
+ - kind: ServiceAccount
+ name: {{ .Values.cleanupJob.existingServiceAccount }}
+{{- end}}
+---
+apiVersion: batch/v1
+kind: Job
+metadata:
+ name: {{ include "opentelemetry-kube-stack.name" . }}-pre-delete-job
+ annotations:
+ "helm.sh/hook": pre-delete
+ "helm.sh/hook-delete-policy": hook-succeeded,hook-failed
+spec:
+ template:
+ spec:
+ restartPolicy: Never
+ {{- if not .Values.cleanupJob.existingServiceAccount}}
+ serviceAccountName: delete-resources-sa
+ {{- else}}
+ serviceAccountName: {{ .Values.cleanupJob.existingServiceAccount }}
+ {{- end}}
+ containers:
+ - name: delete-resources
+ {{- if $.Values.cleanupJob.image.digest }}
+ image: "{{ $.Values.cleanupJob.image.repository }}@{{ $.Values.cleanupJob.image.digest }}"
+ {{- else }}
+ image: "{{ $.Values.cleanupJob.image.repository }}:{{ $.Values.cleanupJob.image.tag }}"
+ {{- end }}
+ args:
+ - "delete"
+ - "instrumentations,opampbridges,opentelemetrycollectors"
+ - "-l"
+ - "helm.sh/chart={{ include "opentelemetry-kube-stack.chart" . }}"
+{{- end }}
diff --git a/charts/opentelemetry-kube-stack/templates/instrumentation.yaml b/charts/opentelemetry-kube-stack/templates/instrumentation.yaml
new file mode 100644
index 00000000..1bd4ddc1
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/templates/instrumentation.yaml
@@ -0,0 +1,60 @@
+{{- if .Values.instrumentation.enabled }}
+---
+apiVersion: opentelemetry.io/v1alpha1
+kind: Instrumentation
+metadata:
+ name: {{ include "opentelemetry-kube-stack.instrumentation" . }}
+ labels:
+ {{- include "opentelemetry-kube-stack.labels" $ | nindent 4 }}
+ {{- include "opentelemetry-kube-stack.renderkv" .Values.instrumentation.labels | indent 4 }}
+ {{- with .Values.instrumentation.annotations }}
+ annotations:
+ {{- include "opentelemetry-kube-stack.renderkv" . | indent 4 }}
+ {{- end }}
+spec:
+ exporter:
+ endpoint: {{ .Values.instrumentation.exporter.endpoint }}
+ propagators:
+ {{- toYaml .Values.instrumentation.propagators | nindent 4 }}
+ {{- with .Values.instrumentation.sampler }}
+ sampler:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- $envOutput := include "opentelemetry-kube-stack.renderenvs" (dict "extraEnvs" $.Values.extraEnvs "env" .Values.instrumentation.env) | trim -}}
+ {{- if $envOutput }}
+ env:
+ {{- $envOutput | nindent 4 }}
+ {{- end }}
+ {{- with .Values.instrumentation.resource }}
+ resource:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.instrumentation.java }}
+ java:
+ {{- toYaml . | nindent 4}}
+ {{- end }}
+ {{- with .Values.instrumentation.nodejs }}
+ nodejs:
+ {{- toYaml . | nindent 4}}
+ {{- end }}
+ {{- with .Values.instrumentation.python }}
+ python:
+ {{- toYaml . | nindent 4}}
+ {{- end }}
+ {{- with .Values.instrumentation.dotnet }}
+ dotnet:
+ {{- toYaml . | nindent 4}}
+ {{- end }}
+ {{- with .Values.instrumentation.go }}
+ go:
+ {{- toYaml . | nindent 4}}
+ {{- end }}
+ {{- with .Values.instrumentation.apacheHttpd }}
+ apacheHtpd:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.instrumentation.nginx }}
+ nginx:
+ {{- toYaml . | nindent 4}}
+ {{- end }}
+{{- end }}
diff --git a/charts/opentelemetry-kube-stack/values.schema.json b/charts/opentelemetry-kube-stack/values.schema.json
new file mode 100644
index 00000000..477246d6
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/values.schema.json
@@ -0,0 +1,4350 @@
+{
+ "$schema": "http://json-schema.org/schema#",
+ "$defs": {
+ "AWSElasticBlockStoreVolumeSource": {
+ "properties": {
+ "volumeID": {
+ "type": "string"
+ },
+ "fsType": {
+ "type": "string"
+ },
+ "partition": {
+ "type": "integer"
+ },
+ "readOnly": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "volumeID"
+ ]
+ },
+ "Affinity": {
+ "properties": {
+ "nodeAffinity": {
+ "$ref": "#/$defs/NodeAffinity"
+ },
+ "podAffinity": {
+ "$ref": "#/$defs/PodAffinity"
+ },
+ "podAntiAffinity": {
+ "$ref": "#/$defs/PodAntiAffinity"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "AutoscalerSpec": {
+ "properties": {
+ "minReplicas": {
+ "type": "integer"
+ },
+ "maxReplicas": {
+ "type": "integer"
+ },
+ "behavior": {
+ "$ref": "#/$defs/HorizontalPodAutoscalerBehavior"
+ },
+ "metrics": {
+ "items": {
+ "$ref": "#/$defs/MetricSpec"
+ },
+ "type": "array"
+ },
+ "targetCPUUtilization": {
+ "type": "integer"
+ },
+ "targetMemoryUtilization": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "AzureDiskVolumeSource": {
+ "properties": {
+ "diskName": {
+ "type": "string"
+ },
+ "diskURI": {
+ "type": "string"
+ },
+ "cachingMode": {
+ "type": "string"
+ },
+ "fsType": {
+ "type": "string"
+ },
+ "readOnly": {
+ "type": "boolean"
+ },
+ "kind": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "diskName",
+ "diskURI"
+ ]
+ },
+ "AzureFileVolumeSource": {
+ "properties": {
+ "secretName": {
+ "type": "string"
+ },
+ "shareName": {
+ "type": "string"
+ },
+ "readOnly": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "secretName",
+ "shareName"
+ ]
+ },
+ "CSIVolumeSource": {
+ "properties": {
+ "driver": {
+ "type": "string"
+ },
+ "readOnly": {
+ "type": "boolean"
+ },
+ "fsType": {
+ "type": "string"
+ },
+ "volumeAttributes": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "nodePublishSecretRef": {
+ "$ref": "#/$defs/LocalObjectReference"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "driver"
+ ]
+ },
+ "Capabilities": {
+ "properties": {
+ "add": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "drop": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "CephFSVolumeSource": {
+ "properties": {
+ "monitors": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "path": {
+ "type": "string"
+ },
+ "user": {
+ "type": "string"
+ },
+ "secretFile": {
+ "type": "string"
+ },
+ "secretRef": {
+ "$ref": "#/$defs/LocalObjectReference"
+ },
+ "readOnly": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "monitors"
+ ]
+ },
+ "CinderVolumeSource": {
+ "properties": {
+ "volumeID": {
+ "type": "string"
+ },
+ "fsType": {
+ "type": "string"
+ },
+ "readOnly": {
+ "type": "boolean"
+ },
+ "secretRef": {
+ "$ref": "#/$defs/LocalObjectReference"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "volumeID"
+ ]
+ },
+ "ClusterTrustBundleProjection": {
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "signerName": {
+ "type": "string"
+ },
+ "labelSelector": {
+ "$ref": "#/$defs/LabelSelector"
+ },
+ "optional": {
+ "type": "boolean"
+ },
+ "path": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "path"
+ ]
+ },
+ "ConfigMapEnvSource": {
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "optional": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "ConfigMapKeySelector": {
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "key": {
+ "type": "string"
+ },
+ "optional": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "key"
+ ]
+ },
+ "ConfigMapProjection": {
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "items": {
+ "items": {
+ "$ref": "#/$defs/KeyToPath"
+ },
+ "type": "array"
+ },
+ "optional": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "ConfigMapVolumeSource": {
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "items": {
+ "items": {
+ "$ref": "#/$defs/KeyToPath"
+ },
+ "type": "array"
+ },
+ "defaultMode": {
+ "type": "integer"
+ },
+ "optional": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "ConfigMapsSpec": {
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "mountPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "name",
+ "mountPath"
+ ]
+ },
+ "Container": {
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "image": {
+ "type": "string"
+ },
+ "command": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "args": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "workingDir": {
+ "type": "string"
+ },
+ "ports": {
+ "items": {
+ "$ref": "#/$defs/ContainerPort"
+ },
+ "type": "array"
+ },
+ "envFrom": {
+ "items": {
+ "$ref": "#/$defs/EnvFromSource"
+ },
+ "type": "array"
+ },
+ "env": {
+ "items": {
+ "$ref": "#/$defs/EnvVar"
+ },
+ "type": "array"
+ },
+ "resources": {
+ "$ref": "#/$defs/ResourceRequirements"
+ },
+ "resizePolicy": {
+ "items": {
+ "$ref": "#/$defs/ContainerResizePolicy"
+ },
+ "type": "array"
+ },
+ "restartPolicy": {
+ "type": "string"
+ },
+ "volumeMounts": {
+ "items": {
+ "$ref": "#/$defs/VolumeMount"
+ },
+ "type": "array"
+ },
+ "volumeDevices": {
+ "items": {
+ "$ref": "#/$defs/VolumeDevice"
+ },
+ "type": "array"
+ },
+ "livenessProbe": {
+ "$ref": "#/$defs/Probe"
+ },
+ "readinessProbe": {
+ "$ref": "#/$defs/Probe"
+ },
+ "startupProbe": {
+ "$ref": "#/$defs/Probe"
+ },
+ "lifecycle": {
+ "$ref": "#/$defs/Lifecycle"
+ },
+ "terminationMessagePath": {
+ "type": "string"
+ },
+ "terminationMessagePolicy": {
+ "type": "string"
+ },
+ "imagePullPolicy": {
+ "type": "string"
+ },
+ "securityContext": {
+ "$ref": "#/$defs/SecurityContext"
+ },
+ "stdin": {
+ "type": "boolean"
+ },
+ "stdinOnce": {
+ "type": "boolean"
+ },
+ "tty": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "name"
+ ]
+ },
+ "ContainerPort": {
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "hostPort": {
+ "type": "integer"
+ },
+ "containerPort": {
+ "type": "integer"
+ },
+ "protocol": {
+ "type": "string"
+ },
+ "hostIP": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "containerPort"
+ ]
+ },
+ "ContainerResizePolicy": {
+ "properties": {
+ "resourceName": {
+ "type": "string"
+ },
+ "restartPolicy": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "resourceName",
+ "restartPolicy"
+ ]
+ },
+ "DaemonSetUpdateStrategy": {
+ "properties": {
+ "type": {
+ "type": "string"
+ },
+ "rollingUpdate": {
+ "$ref": "#/$defs/RollingUpdateDaemonSet"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "DeploymentUpdateStrategy": {
+ "properties": {
+ "type": {
+ "type": "string"
+ },
+ "rollingUpdate": {
+ "$ref": "#/$defs/RollingUpdateDeployment"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "DownwardAPIProjection": {
+ "properties": {
+ "items": {
+ "items": {
+ "$ref": "#/$defs/DownwardAPIVolumeFile"
+ },
+ "type": "array"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "DownwardAPIVolumeFile": {
+ "properties": {
+ "path": {
+ "type": "string"
+ },
+ "fieldRef": {
+ "$ref": "#/$defs/ObjectFieldSelector"
+ },
+ "resourceFieldRef": {
+ "$ref": "#/$defs/ResourceFieldSelector"
+ },
+ "mode": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "path"
+ ]
+ },
+ "DownwardAPIVolumeSource": {
+ "properties": {
+ "items": {
+ "items": {
+ "$ref": "#/$defs/DownwardAPIVolumeFile"
+ },
+ "type": "array"
+ },
+ "defaultMode": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "EmptyDirVolumeSource": {
+ "properties": {
+ "medium": {
+ "type": "string"
+ },
+ "sizeLimit": {
+ "$ref": "#/$defs/Quantity"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "EnvFromSource": {
+ "properties": {
+ "prefix": {
+ "type": "string"
+ },
+ "configMapRef": {
+ "$ref": "#/$defs/ConfigMapEnvSource"
+ },
+ "secretRef": {
+ "$ref": "#/$defs/SecretEnvSource"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "EnvVar": {
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "value": {
+ "type": [
+ "string",
+ "number"
+ ]
+ },
+ "valueFrom": {
+ "$ref": "#/$defs/EnvVarSource"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "name"
+ ]
+ },
+ "EnvVarSource": {
+ "properties": {
+ "fieldRef": {
+ "$ref": "#/$defs/ObjectFieldSelector"
+ },
+ "resourceFieldRef": {
+ "$ref": "#/$defs/ResourceFieldSelector"
+ },
+ "configMapKeyRef": {
+ "$ref": "#/$defs/ConfigMapKeySelector"
+ },
+ "secretKeyRef": {
+ "$ref": "#/$defs/SecretKeySelector"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "EphemeralVolumeSource": {
+ "properties": {
+ "volumeClaimTemplate": {
+ "$ref": "#/$defs/PersistentVolumeClaimTemplate"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "ExecAction": {
+ "properties": {
+ "command": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "FCVolumeSource": {
+ "properties": {
+ "targetWWNs": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "lun": {
+ "type": "integer"
+ },
+ "fsType": {
+ "type": "string"
+ },
+ "readOnly": {
+ "type": "boolean"
+ },
+ "wwids": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "FieldsV1": {
+ "properties": {},
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "FlexVolumeSource": {
+ "properties": {
+ "driver": {
+ "type": "string"
+ },
+ "fsType": {
+ "type": "string"
+ },
+ "secretRef": {
+ "$ref": "#/$defs/LocalObjectReference"
+ },
+ "readOnly": {
+ "type": "boolean"
+ },
+ "options": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "type": "object"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "driver"
+ ]
+ },
+ "FlockerVolumeSource": {
+ "properties": {
+ "datasetName": {
+ "type": "string"
+ },
+ "datasetUUID": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "GCEPersistentDiskVolumeSource": {
+ "properties": {
+ "pdName": {
+ "type": "string"
+ },
+ "fsType": {
+ "type": "string"
+ },
+ "partition": {
+ "type": "integer"
+ },
+ "readOnly": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "pdName"
+ ]
+ },
+ "GitRepoVolumeSource": {
+ "properties": {
+ "repository": {
+ "type": "string"
+ },
+ "revision": {
+ "type": "string"
+ },
+ "directory": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "repository"
+ ]
+ },
+ "GlusterfsVolumeSource": {
+ "properties": {
+ "endpoints": {
+ "type": "string"
+ },
+ "path": {
+ "type": "string"
+ },
+ "readOnly": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "endpoints",
+ "path"
+ ]
+ },
+ "HPAScalingPolicy": {
+ "properties": {
+ "type": {
+ "type": "string"
+ },
+ "value": {
+ "type": "integer"
+ },
+ "periodSeconds": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "type",
+ "value",
+ "periodSeconds"
+ ]
+ },
+ "HPAScalingRules": {
+ "properties": {
+ "stabilizationWindowSeconds": {
+ "type": "integer"
+ },
+ "selectPolicy": {
+ "type": "string"
+ },
+ "policies": {
+ "items": {
+ "$ref": "#/$defs/HPAScalingPolicy"
+ },
+ "type": "array"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "HTTPGetAction": {
+ "properties": {
+ "path": {
+ "type": "string"
+ },
+ "port": {
+ "type": [
+ "string",
+ "integer"
+ ]
+ },
+ "host": {
+ "type": "string"
+ },
+ "scheme": {
+ "type": "string"
+ },
+ "httpHeaders": {
+ "items": {
+ "$ref": "#/$defs/HTTPHeader"
+ },
+ "type": "array"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "port"
+ ]
+ },
+ "HTTPHeader": {
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "name",
+ "value"
+ ]
+ },
+ "HorizontalPodAutoscalerBehavior": {
+ "properties": {
+ "scaleUp": {
+ "$ref": "#/$defs/HPAScalingRules"
+ },
+ "scaleDown": {
+ "$ref": "#/$defs/HPAScalingRules"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "HostPathVolumeSource": {
+ "properties": {
+ "path": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "path"
+ ]
+ },
+ "ISCSIVolumeSource": {
+ "properties": {
+ "targetPortal": {
+ "type": "string"
+ },
+ "iqn": {
+ "type": "string"
+ },
+ "lun": {
+ "type": "integer"
+ },
+ "iscsiInterface": {
+ "type": "string"
+ },
+ "fsType": {
+ "type": "string"
+ },
+ "readOnly": {
+ "type": "boolean"
+ },
+ "portals": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "chapAuthDiscovery": {
+ "type": "boolean"
+ },
+ "chapAuthSession": {
+ "type": "boolean"
+ },
+ "secretRef": {
+ "$ref": "#/$defs/LocalObjectReference"
+ },
+ "initiatorName": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "targetPortal",
+ "iqn",
+ "lun"
+ ]
+ },
+ "Ingress": {
+ "properties": {
+ "type": {
+ "type": "string"
+ },
+ "ruleType": {
+ "type": "string"
+ },
+ "hostname": {
+ "type": "string"
+ },
+ "annotations": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "tls": {
+ "items": {
+ "$ref": "#/$defs/IngressTLS"
+ },
+ "type": "array"
+ },
+ "ingressClassName": {
+ "type": "string"
+ },
+ "route": {
+ "$ref": "#/$defs/OpenShiftRoute"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "IngressTLS": {
+ "properties": {
+ "hosts": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "secretName": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "IntOrString": {
+ "properties": {
+ "Type": {
+ "type": "integer"
+ },
+ "IntVal": {
+ "type": "integer"
+ },
+ "StrVal": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "Type",
+ "IntVal",
+ "StrVal"
+ ]
+ },
+ "KeyToPath": {
+ "properties": {
+ "key": {
+ "type": "string"
+ },
+ "path": {
+ "type": "string"
+ },
+ "mode": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "key",
+ "path"
+ ]
+ },
+ "LabelSelector": {
+ "properties": {
+ "matchLabels": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "matchExpressions": {
+ "items": {
+ "$ref": "#/$defs/LabelSelectorRequirement"
+ },
+ "type": "array"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "LabelSelectorRequirement": {
+ "properties": {
+ "key": {
+ "type": "string"
+ },
+ "operator": {
+ "type": "string"
+ },
+ "values": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "key",
+ "operator"
+ ]
+ },
+ "Lifecycle": {
+ "properties": {
+ "postStart": {
+ "$ref": "#/$defs/LifecycleHandler"
+ },
+ "preStop": {
+ "$ref": "#/$defs/LifecycleHandler"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "LifecycleHandler": {
+ "properties": {
+ "exec": {
+ "$ref": "#/$defs/ExecAction"
+ },
+ "httpGet": {
+ "$ref": "#/$defs/HTTPGetAction"
+ },
+ "tcpSocket": {
+ "$ref": "#/$defs/TCPSocketAction"
+ },
+ "sleep": {
+ "$ref": "#/$defs/SleepAction"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "LocalObjectReference": {
+ "properties": {
+ "name": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "ManagedFieldsEntry": {
+ "properties": {
+ "manager": {
+ "type": "string"
+ },
+ "operation": {
+ "type": "string"
+ },
+ "apiVersion": {
+ "type": "string"
+ },
+ "time": {
+ "$ref": "#/$defs/Time"
+ },
+ "fieldsType": {
+ "type": "string"
+ },
+ "fieldsV1": {
+ "$ref": "#/$defs/FieldsV1"
+ },
+ "subresource": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "MetricIdentifier": {
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "selector": {
+ "$ref": "#/$defs/LabelSelector"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "name"
+ ]
+ },
+ "MetricSpec": {
+ "properties": {
+ "type": {
+ "type": "string"
+ },
+ "pods": {
+ "$ref": "#/$defs/PodsMetricSource"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "type"
+ ]
+ },
+ "MetricTarget": {
+ "properties": {
+ "type": {
+ "type": "string"
+ },
+ "value": {
+ "$ref": "#/$defs/Quantity"
+ },
+ "averageValue": {
+ "$ref": "#/$defs/Quantity"
+ },
+ "averageUtilization": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "type"
+ ]
+ },
+ "MetricsConfigSpec": {
+ "properties": {
+ "enableMetrics": {
+ "type": "boolean"
+ },
+ "disablePrometheusAnnotations": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "ModifyVolumeStatus": {
+ "properties": {
+ "targetVolumeAttributesClassName": {
+ "type": "string"
+ },
+ "status": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "status"
+ ]
+ },
+ "NFSVolumeSource": {
+ "properties": {
+ "server": {
+ "type": "string"
+ },
+ "path": {
+ "type": "string"
+ },
+ "readOnly": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "server",
+ "path"
+ ]
+ },
+ "NodeAffinity": {
+ "properties": {
+ "requiredDuringSchedulingIgnoredDuringExecution": {
+ "$ref": "#/$defs/NodeSelector"
+ },
+ "preferredDuringSchedulingIgnoredDuringExecution": {
+ "items": {
+ "$ref": "#/$defs/PreferredSchedulingTerm"
+ },
+ "type": "array"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "NodeSelector": {
+ "properties": {
+ "nodeSelectorTerms": {
+ "items": {
+ "$ref": "#/$defs/NodeSelectorTerm"
+ },
+ "type": "array"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "nodeSelectorTerms"
+ ]
+ },
+ "NodeSelectorRequirement": {
+ "properties": {
+ "key": {
+ "type": "string"
+ },
+ "operator": {
+ "type": "string"
+ },
+ "values": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "key",
+ "operator"
+ ]
+ },
+ "NodeSelectorTerm": {
+ "properties": {
+ "matchExpressions": {
+ "items": {
+ "$ref": "#/$defs/NodeSelectorRequirement"
+ },
+ "type": "array"
+ },
+ "matchFields": {
+ "items": {
+ "$ref": "#/$defs/NodeSelectorRequirement"
+ },
+ "type": "array"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "ObjectFieldSelector": {
+ "properties": {
+ "apiVersion": {
+ "type": "string"
+ },
+ "fieldPath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "fieldPath"
+ ]
+ },
+ "ObjectMeta": {
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "generateName": {
+ "type": "string"
+ },
+ "namespace": {
+ "type": "string"
+ },
+ "selfLink": {
+ "type": "string"
+ },
+ "uid": {
+ "type": "string"
+ },
+ "resourceVersion": {
+ "type": "string"
+ },
+ "generation": {
+ "type": "integer"
+ },
+ "creationTimestamp": {
+ "$ref": "#/$defs/Time"
+ },
+ "deletionTimestamp": {
+ "$ref": "#/$defs/Time"
+ },
+ "deletionGracePeriodSeconds": {
+ "type": "integer"
+ },
+ "labels": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "annotations": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "ownerReferences": {
+ "items": {
+ "$ref": "#/$defs/OwnerReference"
+ },
+ "type": "array"
+ },
+ "finalizers": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "managedFields": {
+ "items": {
+ "$ref": "#/$defs/ManagedFieldsEntry"
+ },
+ "type": "array"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "ObservabilitySpec": {
+ "properties": {
+ "metrics": {
+ "$ref": "#/$defs/MetricsConfigSpec"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "OpenShiftRoute": {
+ "properties": {
+ "termination": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "OpenTelemetryCollectorSpec": {
+ "properties": {
+ "presets": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "logsCollection": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "enabled": {
+ "description": "Specifies whether the collector should collect logs.",
+ "type": "boolean"
+ },
+ "includeCollectorLogs": {
+ "description": "Specifies whether the collector should collect its own logs.",
+ "type": "boolean"
+ },
+ "storeCheckpoints": {
+ "description": "Specifies whether logs checkpoints should be stored in /var/lib/otelcol/ host directory.",
+ "type": "boolean"
+ },
+ "maxRecombineLogSize": {
+ "description": "Specifies the max recombine log size.",
+ "type": "integer"
+ }
+ }
+ },
+ "hostMetrics": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "enabled": {
+ "description": "Specifies whether the collector should collect host metrics.",
+ "type": "boolean"
+ }
+ }
+ },
+ "kubeletMetrics": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "enabled": {
+ "description": "Specifies whether the collector should collect kubelet metrics.",
+ "type": "boolean"
+ }
+ }
+ },
+ "kubernetesAttributes": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "enabled": {
+ "description": "Specifies whether the collector should add Kubernetes metdata to resource attributes.",
+ "type": "boolean"
+ },
+ "extractAllPodLabels": {
+ "description": "Specifies whether the k8sattributes processor should extract all pod labels.",
+ "type": "boolean"
+ },
+ "extractAllPodAnnotations": {
+ "description": "Specifies whether the k8sattributes processor should extract all pod annotations.",
+ "type": "boolean"
+ }
+ }
+ },
+ "kubernetesEvents": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "enabled": {
+ "description": "Specifies whether the collector should collect Kubernetes objects.",
+ "type": "boolean"
+ },
+ "disableLeaderElection": {
+ "description": "Specifies whether the collector should use leader election extension to collect Kubernetes objects.",
+ "type": "boolean"
+ }
+ }
+ },
+ "clusterMetrics": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "enabled": {
+ "description": "Specifies whether the collector should collect cluster metrics.",
+ "type": "boolean"
+ },
+ "disableLeaderElection": {
+ "description": "Specifies whether the collector should use leader election extension to collect cluster metrics.",
+ "type": "boolean"
+ }
+ }
+ },
+ "annotationDiscovery": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "logs": {
+ "enabled": {
+ "description": "Specifies whether the collector should collect logs. When enabled, the default_annotation 'io.opentelemetry.discovery.logs/enabled: \"true\"' is set.",
+ "type": "boolean"
+ }
+ },
+ "metrics": {
+ "enabled": {
+ "description": "Specifies whether the collector should collect metrics.",
+ "type": "boolean"
+ }
+ }
+ }
+ },
+ "resourceDetection": {
+ "type": "object",
+ "additionalProperties": false,
+ "description": "Configures resource detection processors. Each detector can be enabled individually. Base detectors 'env' and 'k8snode' are always included.",
+ "properties": {
+ "eks": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "enabled": {
+ "description": "Enables the EKS resource detector to detect k8s.cluster.name and AWS resource attributes.",
+ "type": "boolean"
+ }
+ }
+ },
+ "aks": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "enabled": {
+ "description": "Enables the AKS resource detector to detect k8s.cluster.name and Azure resource attributes.",
+ "type": "boolean"
+ }
+ }
+ },
+ "gcp": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "enabled": {
+ "description": "Enables the GCP resource detector to detect k8s.cluster.name and GCP resource attributes.",
+ "type": "boolean"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "enabled": {
+ "type": "boolean"
+ },
+ "clusterRoleBinding": {
+ "type": "object",
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "default": "true"
+ },
+ "clusterRoleName": {
+ "type": "string"
+ }
+ }
+ },
+ "suffix": {
+ "type": "string"
+ },
+ "fullnameOverride": {
+ "type": "string"
+ },
+ "annotations": {
+ "type": "object"
+ },
+ "labels": {
+ "type": "object"
+ },
+ "managementState": {
+ "type": "string"
+ },
+ "scrape_configs_file": {
+ "type": "string",
+ "default": ""
+ },
+ "resources": {
+ "$ref": "#/$defs/ResourceRequirements"
+ },
+ "nodeSelector": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "args": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "replicas": {
+ "type": "integer"
+ },
+ "minReplicas": {
+ "type": "integer"
+ },
+ "maxReplicas": {
+ "type": "integer"
+ },
+ "autoscaler": {
+ "$ref": "#/$defs/AutoscalerSpec"
+ },
+ "podDisruptionBudget": {
+ "$ref": "#/$defs/PodDisruptionBudgetSpec"
+ },
+ "securityContext": {
+ "$ref": "#/$defs/SecurityContext"
+ },
+ "podSecurityContext": {
+ "$ref": "#/$defs/PodSecurityContext"
+ },
+ "podAnnotations": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "targetAllocator": {
+ "$ref": "#/$defs/OpenTelemetryTargetAllocator"
+ },
+ "mode": {
+ "type": "string"
+ },
+ "serviceAccount": {
+ "type": "string"
+ },
+ "image": {
+ "description": "Image use in both standalone and agent configs",
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "registry": {
+ "type": "string"
+ },
+ "repository": {
+ "type": "string"
+ },
+ "tag": {
+ "type": "string"
+ },
+ "digest": {
+ "type": "string"
+ },
+ "pullPolicy": {
+ "type": "string",
+ "enum": [
+ "IfNotPresent",
+ "Always",
+ "Never"
+ ]
+ }
+ }
+ },
+ "upgradeStrategy": {
+ "type": "string"
+ },
+ "config": {
+ "type": "object"
+ },
+ "volumeMounts": {
+ "items": {
+ "$ref": "#/$defs/VolumeMount"
+ },
+ "type": "array"
+ },
+ "ports": {
+ "items": {
+ "$ref": "#/$defs/PortsSpec"
+ },
+ "type": "array"
+ },
+ "env": {
+ "items": {
+ "$ref": "#/$defs/EnvVar"
+ },
+ "type": "array"
+ },
+ "envFrom": {
+ "items": {
+ "$ref": "#/$defs/EnvFromSource"
+ },
+ "type": "array"
+ },
+ "volumeClaimTemplates": {
+ "items": {
+ "$ref": "#/$defs/PersistentVolumeClaim"
+ },
+ "type": "array"
+ },
+ "tolerations": {
+ "items": {
+ "$ref": "#/$defs/Toleration"
+ },
+ "type": "array"
+ },
+ "volumes": {
+ "items": {
+ "$ref": "#/$defs/Volume"
+ },
+ "type": "array"
+ },
+ "ingress": {
+ "$ref": "#/$defs/Ingress"
+ },
+ "hostNetwork": {
+ "type": "boolean"
+ },
+ "hostPID": {
+ "type": "boolean"
+ },
+ "shareProcessNamespace": {
+ "type": "boolean"
+ },
+ "priorityClassName": {
+ "type": "string"
+ },
+ "affinity": {
+ "$ref": "#/$defs/Affinity"
+ },
+ "lifecycle": {
+ "$ref": "#/$defs/Lifecycle"
+ },
+ "terminationGracePeriodSeconds": {
+ "type": "integer"
+ },
+ "livenessProbe": {
+ "$ref": "#/$defs/Probe"
+ },
+ "initContainers": {
+ "items": {
+ "$ref": "#/$defs/Container"
+ },
+ "type": "array"
+ },
+ "additionalContainers": {
+ "items": {
+ "$ref": "#/$defs/Container"
+ },
+ "type": "array"
+ },
+ "observability": {
+ "$ref": "#/$defs/ObservabilitySpec"
+ },
+ "topologySpreadConstraints": {
+ "items": {
+ "$ref": "#/$defs/TopologySpreadConstraint"
+ },
+ "type": "array"
+ },
+ "configmaps": {
+ "items": {
+ "$ref": "#/$defs/ConfigMapsSpec"
+ },
+ "type": "array"
+ },
+ "updateStrategy": {
+ "$ref": "#/$defs/DaemonSetUpdateStrategy"
+ },
+ "daemonSetUpdateStrategy": {
+ "$ref": "#/$defs/DaemonSetUpdateStrategy"
+ },
+ "deploymentUpdateStrategy": {
+ "$ref": "#/$defs/DeploymentUpdateStrategy"
+ }
+ },
+ "additionalProperties": true,
+ "type": "object"
+ },
+ "OpenTelemetryTargetAllocator": {
+ "properties": {
+ "replicas": {
+ "type": "integer"
+ },
+ "nodeSelector": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "resources": {
+ "$ref": "#/$defs/ResourceRequirements"
+ },
+ "allocationStrategy": {
+ "type": "string"
+ },
+ "filterStrategy": {
+ "type": "string"
+ },
+ "serviceAccount": {
+ "type": "string"
+ },
+ "image": {
+ "type": "string"
+ },
+ "enabled": {
+ "type": "boolean"
+ },
+ "affinity": {
+ "$ref": "#/$defs/Affinity"
+ },
+ "prometheusCR": {
+ "$ref": "#/$defs/OpenTelemetryTargetAllocatorPrometheusCR"
+ },
+ "securityContext": {
+ "$ref": "#/$defs/SecurityContext"
+ },
+ "podSecurityContext": {
+ "$ref": "#/$defs/PodSecurityContext"
+ },
+ "topologySpreadConstraints": {
+ "items": {
+ "$ref": "#/$defs/TopologySpreadConstraint"
+ },
+ "type": "array"
+ },
+ "tolerations": {
+ "items": {
+ "$ref": "#/$defs/Toleration"
+ },
+ "type": "array"
+ },
+ "env": {
+ "items": {
+ "$ref": "#/$defs/EnvVar"
+ },
+ "type": "array"
+ },
+ "observability": {
+ "$ref": "#/$defs/ObservabilitySpec"
+ },
+ "podDisruptionBudget": {
+ "$ref": "#/$defs/PodDisruptionBudgetSpec"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "OpenTelemetryTargetAllocatorPrometheusCR": {
+ "properties": {
+ "enabled": {
+ "type": "boolean"
+ },
+ "scrapeInterval": {
+ "type": "string"
+ },
+ "podMonitorSelector": {
+ "$ref": "#/$defs/LabelSelector"
+ },
+ "serviceMonitorSelector": {
+ "$ref": "#/$defs/LabelSelector"
+ },
+ "probeSelector": {
+ "$ref": "#/$defs/LabelSelector"
+ },
+ "scrapeConfigSelector": {
+ "$ref": "#/$defs/LabelSelector"
+ },
+ "allowNamespaces": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of namespaces to allow for scraping"
+ },
+ "denyNamespaces": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of namespaces to exclude from scraping"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "OwnerReference": {
+ "properties": {
+ "apiVersion": {
+ "type": "string"
+ },
+ "kind": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "uid": {
+ "type": "string"
+ },
+ "controller": {
+ "type": "boolean"
+ },
+ "blockOwnerDeletion": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "apiVersion",
+ "kind",
+ "name",
+ "uid"
+ ]
+ },
+ "PersistentVolumeClaim": {
+ "properties": {
+ "kind": {
+ "type": "string"
+ },
+ "apiVersion": {
+ "type": "string"
+ },
+ "metadata": {
+ "$ref": "#/$defs/ObjectMeta"
+ },
+ "spec": {
+ "$ref": "#/$defs/PersistentVolumeClaimSpec"
+ },
+ "status": {
+ "$ref": "#/$defs/PersistentVolumeClaimStatus"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "PersistentVolumeClaimCondition": {
+ "properties": {
+ "type": {
+ "type": "string"
+ },
+ "status": {
+ "type": "string"
+ },
+ "lastProbeTime": {
+ "$ref": "#/$defs/Time"
+ },
+ "lastTransitionTime": {
+ "$ref": "#/$defs/Time"
+ },
+ "reason": {
+ "type": "string"
+ },
+ "message": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "type",
+ "status"
+ ]
+ },
+ "PersistentVolumeClaimSpec": {
+ "properties": {
+ "accessModes": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "selector": {
+ "$ref": "#/$defs/LabelSelector"
+ },
+ "resources": {
+ "$ref": "#/$defs/VolumeResourceRequirements"
+ },
+ "volumeName": {
+ "type": "string"
+ },
+ "storageClassName": {
+ "type": "string"
+ },
+ "volumeMode": {
+ "type": "string"
+ },
+ "dataSource": {
+ "$ref": "#/$defs/TypedLocalObjectReference"
+ },
+ "dataSourceRef": {
+ "$ref": "#/$defs/TypedObjectReference"
+ },
+ "volumeAttributesClassName": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "PersistentVolumeClaimStatus": {
+ "properties": {
+ "phase": {
+ "type": "string"
+ },
+ "accessModes": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "capacity": {
+ "$ref": "#/$defs/ResourceList"
+ },
+ "conditions": {
+ "items": {
+ "$ref": "#/$defs/PersistentVolumeClaimCondition"
+ },
+ "type": "array"
+ },
+ "allocatedResources": {
+ "$ref": "#/$defs/ResourceList"
+ },
+ "allocatedResourceStatuses": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "currentVolumeAttributesClassName": {
+ "type": "string"
+ },
+ "modifyVolumeStatus": {
+ "$ref": "#/$defs/ModifyVolumeStatus"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "PersistentVolumeClaimTemplate": {
+ "properties": {
+ "metadata": {
+ "$ref": "#/$defs/ObjectMeta"
+ },
+ "spec": {
+ "$ref": "#/$defs/PersistentVolumeClaimSpec"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "spec"
+ ]
+ },
+ "PersistentVolumeClaimVolumeSource": {
+ "properties": {
+ "claimName": {
+ "type": "string"
+ },
+ "readOnly": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "claimName"
+ ]
+ },
+ "PhotonPersistentDiskVolumeSource": {
+ "properties": {
+ "pdID": {
+ "type": "string"
+ },
+ "fsType": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "pdID"
+ ]
+ },
+ "PodAffinity": {
+ "properties": {
+ "requiredDuringSchedulingIgnoredDuringExecution": {
+ "items": {
+ "$ref": "#/$defs/PodAffinityTerm"
+ },
+ "type": "array"
+ },
+ "preferredDuringSchedulingIgnoredDuringExecution": {
+ "items": {
+ "$ref": "#/$defs/WeightedPodAffinityTerm"
+ },
+ "type": "array"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "PodAffinityTerm": {
+ "properties": {
+ "labelSelector": {
+ "$ref": "#/$defs/LabelSelector"
+ },
+ "namespaces": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "topologyKey": {
+ "type": "string"
+ },
+ "namespaceSelector": {
+ "$ref": "#/$defs/LabelSelector"
+ },
+ "matchLabelKeys": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "mismatchLabelKeys": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "topologyKey"
+ ]
+ },
+ "PodAntiAffinity": {
+ "properties": {
+ "requiredDuringSchedulingIgnoredDuringExecution": {
+ "items": {
+ "$ref": "#/$defs/PodAffinityTerm"
+ },
+ "type": "array"
+ },
+ "preferredDuringSchedulingIgnoredDuringExecution": {
+ "items": {
+ "$ref": "#/$defs/WeightedPodAffinityTerm"
+ },
+ "type": "array"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "PodDisruptionBudgetSpec": {
+ "properties": {
+ "minAvailable": {
+ "type": [
+ "string",
+ "integer"
+ ]
+ },
+ "maxUnavailable": {
+ "type": [
+ "string",
+ "integer"
+ ]
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "PodSecurityContext": {
+ "properties": {
+ "seLinuxOptions": {
+ "$ref": "#/$defs/SELinuxOptions"
+ },
+ "windowsOptions": {
+ "$ref": "#/$defs/WindowsSecurityContextOptions"
+ },
+ "runAsUser": {
+ "type": "integer"
+ },
+ "runAsGroup": {
+ "type": "integer"
+ },
+ "runAsNonRoot": {
+ "type": "boolean"
+ },
+ "supplementalGroups": {
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ "fsGroup": {
+ "type": "integer"
+ },
+ "sysctls": {
+ "items": {
+ "$ref": "#/$defs/Sysctl"
+ },
+ "type": "array"
+ },
+ "fsGroupChangePolicy": {
+ "type": "string"
+ },
+ "seccompProfile": {
+ "$ref": "#/$defs/SeccompProfile"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "PodsMetricSource": {
+ "properties": {
+ "metric": {
+ "$ref": "#/$defs/MetricIdentifier"
+ },
+ "target": {
+ "$ref": "#/$defs/MetricTarget"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "metric",
+ "target"
+ ]
+ },
+ "PortworxVolumeSource": {
+ "properties": {
+ "volumeID": {
+ "type": "string"
+ },
+ "fsType": {
+ "type": "string"
+ },
+ "readOnly": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "volumeID"
+ ]
+ },
+ "PreferredSchedulingTerm": {
+ "properties": {
+ "weight": {
+ "type": "integer"
+ },
+ "preference": {
+ "$ref": "#/$defs/NodeSelectorTerm"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "weight",
+ "preference"
+ ]
+ },
+ "Probe": {
+ "properties": {
+ "initialDelaySeconds": {
+ "type": "integer"
+ },
+ "timeoutSeconds": {
+ "type": "integer"
+ },
+ "periodSeconds": {
+ "type": "integer"
+ },
+ "successThreshold": {
+ "type": "integer"
+ },
+ "failureThreshold": {
+ "type": "integer"
+ },
+ "terminationGracePeriodSeconds": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "ProjectedVolumeSource": {
+ "properties": {
+ "sources": {
+ "items": {
+ "$ref": "#/$defs/VolumeProjection"
+ },
+ "type": "array"
+ },
+ "defaultMode": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "sources"
+ ]
+ },
+ "Quantity": {
+ "oneOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "number"
+ }
+ ]
+ },
+ "QuobyteVolumeSource": {
+ "properties": {
+ "registry": {
+ "type": "string"
+ },
+ "volume": {
+ "type": "string"
+ },
+ "readOnly": {
+ "type": "boolean"
+ },
+ "user": {
+ "type": "string"
+ },
+ "group": {
+ "type": "string"
+ },
+ "tenant": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "registry",
+ "volume"
+ ]
+ },
+ "RBDVolumeSource": {
+ "properties": {
+ "monitors": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "image": {
+ "type": "string"
+ },
+ "fsType": {
+ "type": "string"
+ },
+ "pool": {
+ "type": "string"
+ },
+ "user": {
+ "type": "string"
+ },
+ "keyring": {
+ "type": "string"
+ },
+ "secretRef": {
+ "$ref": "#/$defs/LocalObjectReference"
+ },
+ "readOnly": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "monitors",
+ "image"
+ ]
+ },
+ "ResourceClaim": {
+ "properties": {
+ "name": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "name"
+ ]
+ },
+ "ResourceFieldSelector": {
+ "properties": {
+ "containerName": {
+ "type": "string"
+ },
+ "resource": {
+ "type": "string"
+ },
+ "divisor": {
+ "$ref": "#/$defs/Quantity"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "resource"
+ ]
+ },
+ "ResourceList": {
+ "additionalProperties": {
+ "$ref": "#/$defs/Quantity"
+ },
+ "type": "object"
+ },
+ "ResourceRequirements": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "limits": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "cpu": {
+ "type": [
+ "string",
+ "integer"
+ ]
+ },
+ "memory": {
+ "type": "string"
+ }
+ }
+ },
+ "requests": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "cpu": {
+ "type": [
+ "string",
+ "integer"
+ ]
+ },
+ "memory": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ "RollingUpdateDaemonSet": {
+ "properties": {
+ "maxUnavailable": {
+ "type": [
+ "string",
+ "integer"
+ ]
+ },
+ "maxSurge": {
+ "type": [
+ "string",
+ "integer"
+ ]
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "RollingUpdateDeployment": {
+ "properties": {
+ "maxUnavailable": {
+ "type": [
+ "string",
+ "integer"
+ ]
+ },
+ "maxSurge": {
+ "type": [
+ "string",
+ "integer"
+ ]
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "SELinuxOptions": {
+ "properties": {
+ "user": {
+ "type": "string"
+ },
+ "role": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string"
+ },
+ "level": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "ScaleIOVolumeSource": {
+ "properties": {
+ "gateway": {
+ "type": "string"
+ },
+ "system": {
+ "type": "string"
+ },
+ "secretRef": {
+ "$ref": "#/$defs/LocalObjectReference"
+ },
+ "sslEnabled": {
+ "type": "boolean"
+ },
+ "protectionDomain": {
+ "type": "string"
+ },
+ "storagePool": {
+ "type": "string"
+ },
+ "storageMode": {
+ "type": "string"
+ },
+ "volumeName": {
+ "type": "string"
+ },
+ "fsType": {
+ "type": "string"
+ },
+ "readOnly": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "gateway",
+ "system",
+ "secretRef"
+ ]
+ },
+ "SeccompProfile": {
+ "properties": {
+ "type": {
+ "type": "string"
+ },
+ "localhostProfile": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "type"
+ ]
+ },
+ "SecretEnvSource": {
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "optional": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "SecretKeySelector": {
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "key": {
+ "type": "string"
+ },
+ "optional": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "key"
+ ]
+ },
+ "SecretProjection": {
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "items": {
+ "items": {
+ "$ref": "#/$defs/KeyToPath"
+ },
+ "type": "array"
+ },
+ "optional": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "SecretVolumeSource": {
+ "properties": {
+ "secretName": {
+ "type": "string"
+ },
+ "items": {
+ "items": {
+ "$ref": "#/$defs/KeyToPath"
+ },
+ "type": "array"
+ },
+ "defaultMode": {
+ "type": "integer"
+ },
+ "optional": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "SecurityContext": {
+ "properties": {
+ "capabilities": {
+ "$ref": "#/$defs/Capabilities"
+ },
+ "privileged": {
+ "type": "boolean"
+ },
+ "seLinuxOptions": {
+ "$ref": "#/$defs/SELinuxOptions"
+ },
+ "windowsOptions": {
+ "$ref": "#/$defs/WindowsSecurityContextOptions"
+ },
+ "runAsUser": {
+ "type": "integer"
+ },
+ "runAsGroup": {
+ "type": "integer"
+ },
+ "runAsNonRoot": {
+ "type": "boolean"
+ },
+ "readOnlyRootFilesystem": {
+ "type": "boolean"
+ },
+ "allowPrivilegeEscalation": {
+ "type": "boolean"
+ },
+ "procMount": {
+ "type": "string"
+ },
+ "seccompProfile": {
+ "$ref": "#/$defs/SeccompProfile"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "ServiceAccountTokenProjection": {
+ "properties": {
+ "audience": {
+ "type": "string"
+ },
+ "expirationSeconds": {
+ "type": "integer"
+ },
+ "path": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "path"
+ ]
+ },
+ "PortsSpec": {
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "protocol": {
+ "type": "string"
+ },
+ "appProtocol": {
+ "type": "string"
+ },
+ "port": {
+ "type": "integer"
+ },
+ "targetPort": {
+ "type": [
+ "string",
+ "integer"
+ ]
+ },
+ "hostPort": {
+ "type": "integer"
+ },
+ "nodePort": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "port"
+ ]
+ },
+ "ServicePort": {
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "protocol": {
+ "type": "string"
+ },
+ "appProtocol": {
+ "type": "string"
+ },
+ "port": {
+ "type": "integer"
+ },
+ "targetPort": {
+ "type": [
+ "string",
+ "integer"
+ ]
+ },
+ "nodePort": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "port"
+ ]
+ },
+ "SleepAction": {
+ "properties": {
+ "seconds": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "seconds"
+ ]
+ },
+ "StorageOSVolumeSource": {
+ "properties": {
+ "volumeName": {
+ "type": "string"
+ },
+ "volumeNamespace": {
+ "type": "string"
+ },
+ "fsType": {
+ "type": "string"
+ },
+ "readOnly": {
+ "type": "boolean"
+ },
+ "secretRef": {
+ "$ref": "#/$defs/LocalObjectReference"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "Sysctl": {
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "name",
+ "value"
+ ]
+ },
+ "TCPSocketAction": {
+ "properties": {
+ "port": {
+ "type": [
+ "string",
+ "integer"
+ ]
+ },
+ "host": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "port"
+ ]
+ },
+ "Time": {
+ "properties": {},
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "Toleration": {
+ "properties": {
+ "key": {
+ "type": "string"
+ },
+ "operator": {
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ },
+ "effect": {
+ "type": "string"
+ },
+ "tolerationSeconds": {
+ "type": "integer"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "TopologySpreadConstraint": {
+ "properties": {
+ "maxSkew": {
+ "type": "integer"
+ },
+ "topologyKey": {
+ "type": "string"
+ },
+ "whenUnsatisfiable": {
+ "type": "string"
+ },
+ "labelSelector": {
+ "$ref": "#/$defs/LabelSelector"
+ },
+ "minDomains": {
+ "type": "integer"
+ },
+ "nodeAffinityPolicy": {
+ "type": "string"
+ },
+ "nodeTaintsPolicy": {
+ "type": "string"
+ },
+ "matchLabelKeys": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "maxSkew",
+ "topologyKey",
+ "whenUnsatisfiable"
+ ]
+ },
+ "TypedLocalObjectReference": {
+ "properties": {
+ "apiGroup": {
+ "type": "string"
+ },
+ "kind": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "apiGroup",
+ "kind",
+ "name"
+ ]
+ },
+ "TypedObjectReference": {
+ "properties": {
+ "apiGroup": {
+ "type": "string"
+ },
+ "kind": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "namespace": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "apiGroup",
+ "kind",
+ "name"
+ ]
+ },
+ "Volume": {
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "hostPath": {
+ "$ref": "#/$defs/HostPathVolumeSource"
+ },
+ "emptyDir": {
+ "$ref": "#/$defs/EmptyDirVolumeSource"
+ },
+ "gcePersistentDisk": {
+ "$ref": "#/$defs/GCEPersistentDiskVolumeSource"
+ },
+ "awsElasticBlockStore": {
+ "$ref": "#/$defs/AWSElasticBlockStoreVolumeSource"
+ },
+ "gitRepo": {
+ "$ref": "#/$defs/GitRepoVolumeSource"
+ },
+ "secret": {
+ "$ref": "#/$defs/SecretVolumeSource"
+ },
+ "nfs": {
+ "$ref": "#/$defs/NFSVolumeSource"
+ },
+ "iscsi": {
+ "$ref": "#/$defs/ISCSIVolumeSource"
+ },
+ "glusterfs": {
+ "$ref": "#/$defs/GlusterfsVolumeSource"
+ },
+ "persistentVolumeClaim": {
+ "$ref": "#/$defs/PersistentVolumeClaimVolumeSource"
+ },
+ "rbd": {
+ "$ref": "#/$defs/RBDVolumeSource"
+ },
+ "flexVolume": {
+ "$ref": "#/$defs/FlexVolumeSource"
+ },
+ "cinder": {
+ "$ref": "#/$defs/CinderVolumeSource"
+ },
+ "cephfs": {
+ "$ref": "#/$defs/CephFSVolumeSource"
+ },
+ "flocker": {
+ "$ref": "#/$defs/FlockerVolumeSource"
+ },
+ "downwardAPI": {
+ "$ref": "#/$defs/DownwardAPIVolumeSource"
+ },
+ "fc": {
+ "$ref": "#/$defs/FCVolumeSource"
+ },
+ "azureFile": {
+ "$ref": "#/$defs/AzureFileVolumeSource"
+ },
+ "configMap": {
+ "$ref": "#/$defs/ConfigMapVolumeSource"
+ },
+ "vsphereVolume": {
+ "$ref": "#/$defs/VsphereVirtualDiskVolumeSource"
+ },
+ "quobyte": {
+ "$ref": "#/$defs/QuobyteVolumeSource"
+ },
+ "azureDisk": {
+ "$ref": "#/$defs/AzureDiskVolumeSource"
+ },
+ "photonPersistentDisk": {
+ "$ref": "#/$defs/PhotonPersistentDiskVolumeSource"
+ },
+ "projected": {
+ "$ref": "#/$defs/ProjectedVolumeSource"
+ },
+ "portworxVolume": {
+ "$ref": "#/$defs/PortworxVolumeSource"
+ },
+ "scaleIO": {
+ "$ref": "#/$defs/ScaleIOVolumeSource"
+ },
+ "storageos": {
+ "$ref": "#/$defs/StorageOSVolumeSource"
+ },
+ "csi": {
+ "$ref": "#/$defs/CSIVolumeSource"
+ },
+ "ephemeral": {
+ "$ref": "#/$defs/EphemeralVolumeSource"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "name"
+ ]
+ },
+ "VolumeDevice": {
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "devicePath": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "name",
+ "devicePath"
+ ]
+ },
+ "VolumeMount": {
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "readOnly": {
+ "type": "boolean"
+ },
+ "mountPath": {
+ "type": "string"
+ },
+ "subPath": {
+ "type": "string"
+ },
+ "mountPropagation": {
+ "type": "string"
+ },
+ "subPathExpr": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "name",
+ "mountPath"
+ ]
+ },
+ "VolumeProjection": {
+ "properties": {
+ "secret": {
+ "$ref": "#/$defs/SecretProjection"
+ },
+ "downwardAPI": {
+ "$ref": "#/$defs/DownwardAPIProjection"
+ },
+ "configMap": {
+ "$ref": "#/$defs/ConfigMapProjection"
+ },
+ "serviceAccountToken": {
+ "$ref": "#/$defs/ServiceAccountTokenProjection"
+ },
+ "clusterTrustBundle": {
+ "$ref": "#/$defs/ClusterTrustBundleProjection"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "VolumeResourceRequirements": {
+ "properties": {
+ "limits": {
+ "type": "object"
+ },
+ "requests": {
+ "type": "object"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "VsphereVirtualDiskVolumeSource": {
+ "properties": {
+ "volumePath": {
+ "type": "string"
+ },
+ "fsType": {
+ "type": "string"
+ },
+ "storagePolicyName": {
+ "type": "string"
+ },
+ "storagePolicyID": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "volumePath"
+ ]
+ },
+ "WeightedPodAffinityTerm": {
+ "properties": {
+ "weight": {
+ "type": "integer"
+ },
+ "podAffinityTerm": {
+ "$ref": "#/$defs/PodAffinityTerm"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "weight",
+ "podAffinityTerm"
+ ]
+ },
+ "WindowsSecurityContextOptions": {
+ "properties": {
+ "gmsaCredentialSpecName": {
+ "type": "string"
+ },
+ "gmsaCredentialSpec": {
+ "type": "string"
+ },
+ "runAsUserName": {
+ "type": "string"
+ },
+ "hostProcess": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "InstrumentationSpec": {
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "labels": {
+ "type": "object"
+ },
+ "annotations": {
+ "type": "object"
+ },
+ "enabled": {
+ "type": "boolean"
+ },
+ "exporter": {
+ "$ref": "#/$defs/Exporter"
+ },
+ "resource": {
+ "$ref": "#/$defs/Resource"
+ },
+ "propagators": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "sampler": {
+ "$ref": "#/$defs/Sampler"
+ },
+ "env": {
+ "items": {
+ "$ref": "#/$defs/EnvVar"
+ },
+ "type": "array"
+ },
+ "java": {
+ "$ref": "#/$defs/Java"
+ },
+ "nodejs": {
+ "$ref": "#/$defs/NodeJS"
+ },
+ "python": {
+ "$ref": "#/$defs/Python"
+ },
+ "dotnet": {
+ "$ref": "#/$defs/DotNet"
+ },
+ "go": {
+ "$ref": "#/$defs/Go"
+ },
+ "apacheHttpd": {
+ "$ref": "#/$defs/ApacheHttpd"
+ },
+ "nginx": {
+ "$ref": "#/$defs/Nginx"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "Java": {
+ "properties": {
+ "image": {
+ "type": "string"
+ },
+ "volumeLimitSize": {
+ "type": "string"
+ },
+ "env": {
+ "items": {
+ "$ref": "#/$defs/EnvVar"
+ },
+ "type": "array"
+ },
+ "resources": {
+ "$ref": "#/$defs/ResourceRequirements"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "Nginx": {
+ "properties": {
+ "image": {
+ "type": "string"
+ },
+ "volumeLimitSize": {
+ "type": "string"
+ },
+ "env": {
+ "items": {
+ "$ref": "#/$defs/EnvVar"
+ },
+ "type": "array"
+ },
+ "attrs": {
+ "items": {
+ "$ref": "#/$defs/EnvVar"
+ },
+ "type": "array"
+ },
+ "configFile": {
+ "type": "string"
+ },
+ "resourceRequirements": {
+ "$ref": "#/$defs/ResourceRequirements"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "NodeJS": {
+ "properties": {
+ "image": {
+ "type": "string"
+ },
+ "volumeLimitSize": {
+ "type": "string"
+ },
+ "env": {
+ "items": {
+ "$ref": "#/$defs/EnvVar"
+ },
+ "type": "array"
+ },
+ "resourceRequirements": {
+ "$ref": "#/$defs/ResourceRequirements"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "Python": {
+ "properties": {
+ "image": {
+ "type": "string"
+ },
+ "volumeLimitSize": {
+ "type": "string"
+ },
+ "env": {
+ "items": {
+ "$ref": "#/$defs/EnvVar"
+ },
+ "type": "array"
+ },
+ "resourceRequirements": {
+ "$ref": "#/$defs/ResourceRequirements"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "Resource": {
+ "properties": {
+ "resourceAttributes": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "addK8sUIDAttributes": {
+ "type": "boolean"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "Sampler": {
+ "properties": {
+ "type": {
+ "type": "string"
+ },
+ "argument": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "ApacheHttpd": {
+ "properties": {
+ "image": {
+ "type": "string"
+ },
+ "volumeLimitSize": {
+ "type": "string"
+ },
+ "env": {
+ "items": {
+ "$ref": "#/$defs/EnvVar"
+ },
+ "type": "array"
+ },
+ "attrs": {
+ "items": {
+ "$ref": "#/$defs/EnvVar"
+ },
+ "type": "array"
+ },
+ "version": {
+ "type": "string"
+ },
+ "configPath": {
+ "type": "string"
+ },
+ "resourceRequirements": {
+ "$ref": "#/$defs/ResourceRequirements"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "DotNet": {
+ "properties": {
+ "image": {
+ "type": "string"
+ },
+ "volumeLimitSize": {
+ "type": "string"
+ },
+ "env": {
+ "items": {
+ "$ref": "#/$defs/EnvVar"
+ },
+ "type": "array"
+ },
+ "resourceRequirements": {
+ "$ref": "#/$defs/ResourceRequirements"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "Exporter": {
+ "properties": {
+ "endpoint": {
+ "type": "string"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "Go": {
+ "properties": {
+ "image": {
+ "type": "string"
+ },
+ "volumeLimitSize": {
+ "type": "string"
+ },
+ "env": {
+ "items": {
+ "$ref": "#/$defs/EnvVar"
+ },
+ "type": "array"
+ },
+ "resourceRequirements": {
+ "$ref": "#/$defs/ResourceRequirements"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object"
+ },
+ "OpAMPBridgeSpec": {
+ "properties": {
+ "clusterRole": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "enabled": {
+ "type": "boolean"
+ },
+ "annotations": {
+ "type": "object"
+ },
+ "name": {
+ "type": "string"
+ },
+ "rules": {
+ "type": "array",
+ "items": {
+ "type": "object"
+ }
+ }
+ },
+ "required": [
+ "enabled"
+ ]
+ },
+ "enabled": {
+ "type": "boolean"
+ },
+ "addReportingLabel": {
+ "type": "boolean"
+ },
+ "addManagedLabel": {
+ "type": "boolean"
+ },
+ "endpoint": {
+ "type": "string"
+ },
+ "description": {
+ "type": "object"
+ },
+ "annotations": {
+ "type": "object"
+ },
+ "labels": {
+ "type": "object"
+ },
+ "headers": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "capabilities": {
+ "additionalProperties": {
+ "type": "boolean"
+ },
+ "type": "object"
+ },
+ "componentsAllowed": {
+ "additionalProperties": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "type": "object"
+ },
+ "resources": {
+ "$ref": "#/$defs/ResourceRequirements"
+ },
+ "nodeSelector": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "securityContext": {
+ "$ref": "#/$defs/SecurityContext"
+ },
+ "podSecurityContext": {
+ "$ref": "#/$defs/PodSecurityContext"
+ },
+ "podAnnotations": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "serviceAccount": {
+ "type": "string"
+ },
+ "image": {
+ "description": "Image use in both standalone and agent configs",
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "registry": {
+ "type": "string"
+ },
+ "repository": {
+ "type": "string"
+ },
+ "tag": {
+ "type": "string"
+ },
+ "digest": {
+ "type": "string"
+ },
+ "pullPolicy": {
+ "type": "string",
+ "enum": [
+ "IfNotPresent",
+ "Always",
+ "Never"
+ ]
+ }
+ }
+ },
+ "upgradeStrategy": {
+ "type": "string"
+ },
+ "volumeMounts": {
+ "items": {
+ "$ref": "#/$defs/VolumeMount"
+ },
+ "type": "array"
+ },
+ "ports": {
+ "items": {
+ "$ref": "#/$defs/ServicePort"
+ },
+ "type": "array"
+ },
+ "env": {
+ "items": {
+ "$ref": "#/$defs/EnvVar"
+ },
+ "type": "array"
+ },
+ "envFrom": {
+ "items": {
+ "$ref": "#/$defs/EnvFromSource"
+ },
+ "type": "array"
+ },
+ "tolerations": {
+ "items": {
+ "$ref": "#/$defs/Toleration"
+ },
+ "type": "array"
+ },
+ "volumes": {
+ "items": {
+ "$ref": "#/$defs/Volume"
+ },
+ "type": "array"
+ },
+ "hostNetwork": {
+ "type": "boolean"
+ },
+ "hostPID": {
+ "type": "boolean"
+ },
+ "priorityClassName": {
+ "type": "string"
+ },
+ "affinity": {
+ "$ref": "#/$defs/Affinity"
+ },
+ "topologySpreadConstraints": {
+ "items": {
+ "$ref": "#/$defs/TopologySpreadConstraint"
+ },
+ "type": "array"
+ }
+ },
+ "additionalProperties": false,
+ "type": "object",
+ "required": [
+ "endpoint",
+ "capabilities",
+ "upgradeStrategy"
+ ]
+ },
+ "AdditionalLabels": {
+ "type": "object",
+ "additionalProperties": true,
+ "title": "AdditionalLabels"
+ },
+ "EnableConfigBlock": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "enabled": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "enabled"
+ ],
+ "title": "EnableConfigBlock"
+ },
+ "AttachMetadata": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "node": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "node"
+ ],
+ "title": "AttachMetadata"
+ },
+ "KubeAPIServer": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "enabled": {
+ "type": "boolean"
+ },
+ "tlsConfig": {
+ "$ref": "#/$defs/TLSConfig"
+ },
+ "serviceMonitor": {
+ "$ref": "#/$defs/Monitor"
+ }
+ },
+ "required": [
+ "enabled",
+ "serviceMonitor",
+ "tlsConfig"
+ ],
+ "title": "KubeAPIServer"
+ },
+ "TLSConfig": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "serverName": {
+ "type": "string"
+ },
+ "insecureSkipVerify": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "insecureSkipVerify",
+ "serverName"
+ ],
+ "title": "TLSConfig"
+ },
+ "KubeDNS": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "enabled": {
+ "type": "boolean"
+ },
+ "service": {
+ "$ref": "#/$defs/KubeDNSService"
+ },
+ "serviceMonitor": {
+ "$ref": "#/$defs/KubeServiceMonitor"
+ }
+ },
+ "required": [
+ "enabled",
+ "service",
+ "serviceMonitor"
+ ],
+ "title": "KubeDNS"
+ },
+ "KubeDNSService": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "dnsmasq": {
+ "$ref": "#/$defs/Dnsmasq"
+ },
+ "skydns": {
+ "$ref": "#/$defs/Dnsmasq"
+ }
+ },
+ "required": [
+ "dnsmasq",
+ "skydns"
+ ],
+ "title": "KubeDNSService"
+ },
+ "Dnsmasq": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "port": {
+ "type": "integer"
+ },
+ "targetPort": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "port",
+ "targetPort"
+ ],
+ "title": "Dnsmasq"
+ },
+ "Kubelet": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "enabled": {
+ "type": "boolean"
+ },
+ "namespace": {
+ "type": "string"
+ },
+ "serviceMonitor": {
+ "$ref": "#/$defs/KubeletServiceMonitor"
+ }
+ },
+ "required": [
+ "enabled",
+ "namespace",
+ "serviceMonitor"
+ ],
+ "title": "Kubelet"
+ },
+ "KubeletServiceMonitor": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "attachMetadata": {
+ "$ref": "#/$defs/AttachMetadata"
+ },
+ "interval": {
+ "type": "string"
+ },
+ "honorLabels": {
+ "type": "boolean"
+ },
+ "honorTimestamps": {
+ "type": "boolean"
+ },
+ "https": {
+ "type": "boolean"
+ },
+ "cAdvisor": {
+ "type": "boolean"
+ },
+ "probes": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "cAdvisor",
+ "honorLabels",
+ "honorTimestamps",
+ "https",
+ "interval",
+ "probes"
+ ],
+ "title": "KubeletServiceMonitor"
+ },
+ "KubeServiceMonitorDefinition": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "enabled": {
+ "type": "boolean"
+ },
+ "endpoints": {
+ "type": "array",
+ "items": {}
+ },
+ "service": {
+ "$ref": "#/$defs/KubeService"
+ },
+ "serviceMonitor": {
+ "$ref": "#/$defs/KubeServiceMonitor"
+ }
+ },
+ "required": [
+ "enabled",
+ "endpoints",
+ "service",
+ "serviceMonitor"
+ ],
+ "title": "KubeServiceMonitorDefinition"
+ },
+ "KubeService": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "enabled": {
+ "type": "boolean"
+ },
+ "selector": {
+ "type": "object",
+ "patternProperties": {
+ "^[a-zA-Z0-9-]+$": {
+ "type": "string",
+ "description": "Selector labels used to match the service to pods."
+ }
+ },
+ "description": "Labels to select pods for the service."
+ },
+ "port": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "targetPort": {
+ "anyOf": [
+ {
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "enabled"
+ ],
+ "title": "KubeService"
+ },
+ "KubeServiceMonitor": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "enabled": {
+ "type": "boolean"
+ },
+ "interval": {
+ "type": "string"
+ },
+ "sampleLimit": {
+ "type": "integer"
+ },
+ "targetLimit": {
+ "type": "integer"
+ },
+ "labelLimit": {
+ "type": "integer"
+ },
+ "labelNameLengthLimit": {
+ "type": "integer"
+ },
+ "labelValueLengthLimit": {
+ "type": "integer"
+ },
+ "proxyUrl": {
+ "type": "string"
+ },
+ "port": {
+ "type": "string"
+ },
+ "jobLabel": {
+ "type": "string"
+ },
+ "selector": {
+ "$ref": "#/$defs/AdditionalLabels"
+ },
+ "metricRelabelings": {
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/MetricRelabeling"
+ }
+ },
+ "relabelings": {
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/MetricRelabeling"
+ }
+ },
+ "additionalLabels": {
+ "$ref": "#/$defs/AdditionalLabels"
+ },
+ "https": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "insecureSkipVerify": {
+ "anyOf": [
+ {
+ "type": "boolean"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "serverName": {
+ "anyOf": [
+ {
+ "type": "null"
+ },
+ {
+ "type": "string"
+ }
+ ]
+ },
+ "dnsmasqMetricRelabelings": {
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/MetricRelabeling"
+ }
+ },
+ "dnsmasqRelabelings": {
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/MetricRelabeling"
+ }
+ },
+ "scheme": {
+ "type": "string"
+ },
+ "caFile": {
+ "type": "string"
+ },
+ "certFile": {
+ "type": "string"
+ },
+ "keyFile": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "additionalLabels",
+ "interval",
+ "jobLabel",
+ "labelLimit",
+ "labelNameLengthLimit",
+ "labelValueLengthLimit",
+ "metricRelabelings",
+ "proxyUrl",
+ "relabelings",
+ "sampleLimit",
+ "selector",
+ "targetLimit"
+ ],
+ "title": "KubeServiceMonitor"
+ },
+ "KubeStateMetrics": {
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "enabled": {
+ "type": "boolean"
+ },
+ "namespaceOverride": {
+ "type": "string"
+ },
+ "rbac": {
+ "$ref": "#/$defs/KubeStateMetricsRbac"
+ },
+ "releaseLabel": {
+ "type": "boolean"
+ },
+ "prometheus": {
+ "$ref": "#/$defs/Prometheus"
+ },
+ "selfMonitor": {
+ "$ref": "#/$defs/EnableConfigBlock"
+ }
+ },
+ "required": [
+ "namespaceOverride",
+ "prometheus",
+ "rbac",
+ "releaseLabel",
+ "selfMonitor"
+ ],
+ "title": "KubeStateMetrics"
+ },
+ "Prometheus": {
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "monitor": {
+ "$ref": "#/$defs/Monitor"
+ }
+ },
+ "required": [
+ "monitor"
+ ],
+ "title": "Prometheus"
+ },
+ "Monitor": {
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "enabled": {
+ "type": "boolean"
+ },
+ "interval": {
+ "type": "string"
+ },
+ "sampleLimit": {
+ "type": "integer"
+ },
+ "targetLimit": {
+ "type": "integer"
+ },
+ "labelLimit": {
+ "type": "integer"
+ },
+ "labelNameLengthLimit": {
+ "type": "integer"
+ },
+ "labelValueLengthLimit": {
+ "type": "integer"
+ },
+ "scrapeTimeout": {
+ "type": "string"
+ },
+ "proxyUrl": {
+ "type": "string"
+ },
+ "honorLabels": {
+ "type": "boolean"
+ },
+ "metricRelabelings": {
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/MetricRelabeling"
+ }
+ },
+ "relabelings": {
+ "type": "array",
+ "items": {
+ "$ref": "#/$defs/MetricRelabeling"
+ }
+ },
+ "jobLabel": {
+ "type": "string"
+ },
+ "selector": {
+ "$ref": "#/$defs/Selector"
+ },
+ "additionalLabels": {
+ "$ref": "#/$defs/AdditionalLabels"
+ }
+ },
+ "required": [
+ "interval",
+ "labelLimit",
+ "labelNameLengthLimit",
+ "labelValueLengthLimit",
+ "metricRelabelings",
+ "proxyUrl",
+ "relabelings",
+ "sampleLimit",
+ "targetLimit"
+ ],
+ "title": "Monitor"
+ },
+ "MetricRelabeling": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "action": {
+ "type": "string"
+ },
+ "regex": {
+ "type": "string"
+ },
+ "sourceLabels": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "targetLabel": {
+ "type": "string"
+ },
+ "replacement": {
+ "type": "string"
+ },
+ "separator": {
+ "type": "string"
+ },
+ "modulus": {
+ "type": "integer"
+ }
+ },
+ "title": "MetricRelabeling"
+ },
+ "Selector": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "matchLabels": {
+ "$ref": "#/$defs/MatchLabels"
+ }
+ },
+ "required": [
+ "matchLabels"
+ ],
+ "title": "Selector"
+ },
+ "MatchLabels": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "component": {
+ "type": "string"
+ },
+ "provider": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "component",
+ "provider"
+ ],
+ "title": "MatchLabels"
+ },
+ "KubeStateMetricsRbac": {
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "create": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "create"
+ ],
+ "title": "KubeStateMetricsRbac"
+ },
+ "PrometheusNodeExporter": {
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "enabled": {
+ "type": "boolean"
+ },
+ "namespaceOverride": {
+ "type": "string"
+ },
+ "podLabels": {
+ "$ref": "#/$defs/PodLabels"
+ },
+ "releaseLabel": {
+ "type": "boolean"
+ },
+ "extraArgs": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "service": {
+ "$ref": "#/$defs/PrometheusNodeExporterService"
+ },
+ "prometheus": {
+ "$ref": "#/$defs/Prometheus"
+ },
+ "rbac": {
+ "$ref": "#/$defs/PrometheusNodeExporterRbac"
+ }
+ },
+ "required": [
+ "extraArgs",
+ "namespaceOverride",
+ "podLabels",
+ "prometheus",
+ "rbac",
+ "releaseLabel",
+ "service"
+ ],
+ "title": "PrometheusNodeExporter"
+ },
+ "PodLabels": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "jobLabel": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "jobLabel"
+ ],
+ "title": "PodLabels"
+ },
+ "PrometheusNodeExporterRbac": {
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "pspEnabled": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "pspEnabled"
+ ],
+ "title": "PrometheusNodeExporterRbac"
+ },
+ "PrometheusNodeExporterService": {
+ "type": "object",
+ "additionalProperties": true,
+ "properties": {
+ "portName": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "portName"
+ ],
+ "title": "PrometheusNodeExporterService"
+ }
+ },
+ "properties": {
+ "cleanupJob": {
+ "type": "object",
+ "properties": {
+ "enabled": {
+ "type": "boolean"
+ }
+ }
+ },
+ "crds": {
+ "type": "object",
+ "properties": {
+ "install": {
+ "type": "boolean"
+ }
+ }
+ },
+ "fullnameOverride": {
+ "type": "string"
+ },
+ "namespaceOverride": {
+ "type": "string"
+ },
+ "defaultCRConfig": {
+ "$ref": "#/$defs/OpenTelemetryCollectorSpec"
+ },
+ "collectors": {
+ "type": "object",
+ "patternProperties": {
+ "^[a-z]+[a-zA-Z0-9]+$": {
+ "$ref": "#/$defs/OpenTelemetryCollectorSpec"
+ }
+ }
+ },
+ "clusterName": {
+ "type": "string"
+ },
+ "clusterRole": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "enabled": {
+ "type": "boolean"
+ },
+ "annotations": {
+ "type": "object"
+ },
+ "name": {
+ "type": "string"
+ },
+ "rules": {
+ "type": "array",
+ "items": {
+ "type": "object"
+ }
+ }
+ },
+ "required": [
+ "enabled"
+ ]
+ },
+ "opAMPBridge": {
+ "$ref": "#/$defs/OpAMPBridgeSpec"
+ },
+ "instrumentation": {
+ "$ref": "#/$defs/InstrumentationSpec"
+ },
+ "extraEnvs": {
+ "type": "array",
+ "items": {
+ "type": "object"
+ }
+ },
+ "opentelemetry-operator": {
+ "type": "object"
+ },
+ "kubernetesServiceMonitors": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": {
+ "enabled": {
+ "type": "boolean"
+ },
+ "ignoreNamespaceSelectors": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "enabled",
+ "ignoreNamespaceSelectors"
+ ]
+ },
+ "kubeApiServer": {
+ "$ref": "#/$defs/KubeAPIServer"
+ },
+ "kubelet": {
+ "$ref": "#/$defs/Kubelet"
+ },
+ "kubeControllerManager": {
+ "$ref": "#/$defs/KubeServiceMonitorDefinition"
+ },
+ "coreDns": {
+ "$ref": "#/$defs/KubeServiceMonitorDefinition"
+ },
+ "kubeDns": {
+ "$ref": "#/$defs/KubeDNS"
+ },
+ "kubeEtcd": {
+ "$ref": "#/$defs/KubeServiceMonitorDefinition"
+ },
+ "kubeScheduler": {
+ "$ref": "#/$defs/KubeServiceMonitorDefinition"
+ },
+ "kubeProxy": {
+ "$ref": "#/$defs/KubeServiceMonitorDefinition"
+ },
+ "kubeStateMetrics": {
+ "$ref": "#/$defs/EnableConfigBlock"
+ },
+ "nodeExporter": {
+ "$ref": "#/$defs/EnableConfigBlock"
+ },
+ "kube-state-metrics": {
+ "$ref": "#/$defs/KubeStateMetrics"
+ },
+ "prometheus-node-exporter": {
+ "$ref": "#/$defs/PrometheusNodeExporter"
+ }
+ }
+}
diff --git a/charts/opentelemetry-kube-stack/values.yaml b/charts/opentelemetry-kube-stack/values.yaml
new file mode 100644
index 00000000..2429e109
--- /dev/null
+++ b/charts/opentelemetry-kube-stack/values.yaml
@@ -0,0 +1,1804 @@
+# Top level field indicating an override for fullname
+fullnameOverride: ""
+# Top level field indicating an override for the namespace
+namespaceOverride: ""
+
+# Top level field specifying the name of the Kubernetes cluster.
+# When using a Managed Kubernetes Service, it's recommended to use the cluster name assigned by the service for
+# better integration.
+clusterName: "unknown_k8s_cluster"
+
+# Extra environment variables to add to each collector, bridge and instrumentation
+extraEnvs: []
+
+# Enables a cleanup job to make sure the CRs are uninstalled before the operator
+cleanupJob:
+ # It is recommended to always keep this enabled so that running helm uninstall works properly.
+ # For non-helm installations i.e. ones created via helm template, it may make sense to disable this.
+ # For those installations, ensure that uninstallation for the operator happens _after_ the deletion of the CRs.
+ enabled: true
+ # Image details for the kubectl
+ image:
+ repository: rancher/kubectl
+ tag: v1.34.1
+ # When digest is set to a non-empty value, images will be pulled by digest (regardless of tag value).
+ digest: ""
+ # To use the existingServiceAccount
+ existingServiceAccount: ""
+
+# Should the CRDs be installed by this chart.
+crds:
+ # Control whether the opentelemetry.io CRDS should be installed.
+ installOtel: true
+ # Control whether the monitoring.coreos CRDS should be installed.
+ installPrometheus: true
+
+# Top level field related to the OpenTelemetry Operator
+opentelemetry-operator:
+ # Field indicating whether the operator is enabled or not
+ enabled: true
+ manager:
+ collectorImage:
+ repository: otel/opentelemetry-collector-k8s
+ # Sub-field for admission webhooks configuration
+ admissionWebhooks:
+ # Policy for handling failures
+ # Setting this allows for an installation of the otel operator at the same time as the custom resources it manages.
+ failurePolicy: "Ignore"
+
+ # This is disabled by default, as doing so creates a race condition with helm.
+ # https://github.com/open-telemetry/opentelemetry-helm-charts/issues/677
+ # Users of this chart should _never_ set this to be true. If a user wishes
+ # to install the CRDs through the opentelemetry-operator chart, it is recommended
+ # to install the opentelemetry-operator chart separately and prior to the installation
+ # of this chart.
+ crds:
+ create: false
+
+# This is the default configuration for all collectors generated by the chart.
+# Any collectors in the `collectors` are overlayed on top of this configuration.
+defaultCRConfig:
+ enabled: true
+
+ # Suffix for the collector pool, by default the release name is prepended
+ suffix: "collector"
+
+ # fullnameOverride allows overriding the collector's name
+ fullnameOverride: ""
+
+ # Annotations for the collector
+ annotations: {}
+ # io.opentelemetry.com/resource: hello
+
+ # Labels for the collector
+ labels: {}
+ # app: otc
+
+ # scrape_configs_file allows the user to load an external file into
+ # the collector's prometheus scrape_configs. This is added to assist users
+ # coming from the prometheus ecosystem by allowing users to simply copy and paste
+ # directly from prometheus into this file to use the same config.
+ scrape_configs_file: ""
+
+ # Management state of the collector
+ managementState: managed
+
+ # Configuration for cluster role binding
+ clusterRoleBinding:
+ enabled: true
+ clusterRoleName: ""
+
+ # Number of replicas for the collector
+ # replicas: 1
+
+ # Mode of deployment for the collector
+ mode: deployment
+
+ # Service account associated with the collector
+ serviceAccount: ""
+
+ # Image details for the collector
+ image:
+ # If you want to use the core image `otel/opentelemetry-collector`, you also need to change `command.name` value to `otelcol`.
+ repository: otel/opentelemetry-collector-k8s
+ pullPolicy: IfNotPresent
+ # By default, the version set for the collector will match the version of the operator being run.
+ tag: ""
+ # When digest is set to a non-empty value, images will be pulled by digest (regardless of tag value).
+ digest: ""
+
+ # Upgrade strategy for the collector
+ upgradeStrategy: automatic
+
+ # Configuration options for the collector
+ config: {}
+ # receivers:
+ # otlp:
+ # protocols:
+ # grpc:
+ # endpoint: ${env:MY_POD_IP}:4317
+ # http:
+ # endpoint: ${env:MY_POD_IP}:4318
+ # exporters:
+ # otlp:
+ # endpoint: "otel-collector.default:4317"
+ # tls:
+ # insecure: true
+ # sending_queue:
+ # num_consumers: 4
+ # queue_size: 100
+ # retry_on_failure:
+ # enabled: true
+ # processors:
+ # batch:
+ # memory_limiter:
+ # # 80% of maximum memory up to 2G
+ # limit_mib: 400
+ # # 25% of limit up to 2G
+ # spike_limit_mib: 100
+ # check_interval: 5s
+ # extensions:
+ # zpages: {}
+ # service:
+ # extensions: [zpages]
+ # pipelines:
+ # traces:
+ # receivers: [otlp]
+ # processors: [memory_limiter, batch]
+ # exporters: [otlp]
+
+ # Whether to use host network for the collector
+ hostNetwork: false
+
+ # Enable sharing the host's PID namespace with the pod.
+ # WARNING: This grants visibility into all host processes and should only be enabled when required.
+ hostPID: false
+
+ # Whether to share process namespace for the collector
+ shareProcessNamespace: false
+
+ # Priority class name for the collector
+ priorityClassName: ""
+
+ # Termination grace period for the collector
+ terminationGracePeriodSeconds: 30
+
+ # Resource requests and limits for the collector
+ resources:
+ requests:
+ memory: "64Mi"
+ cpu: "250m"
+ limits:
+ memory: "128Mi"
+ cpu: "250m"
+
+ # Node selector for the collector
+ nodeSelector: {}
+ # nodeType: worker
+
+ # Command to override the collector's entrypoint
+ command: []
+ # - /bin/sh
+ # - -c
+ # - |
+ # . /node-env/env.sh
+ # exec /otelcol-contrib --config=/conf/collector.yaml
+
+ # Arguments for the collector
+ args: {}
+ # arg1: value1
+ # arg2: value2
+
+ # Autoscaler configuration for the collector
+ autoscaler: {}
+ # minReplicas: 1
+ # maxReplicas: 10
+ # targetCPUUtilization: 50
+
+ # Pod disruption budget for the collector
+ podDisruptionBudget: {}
+ # maxUnavailable: 1
+
+ # Security context for the collector
+ securityContext: {}
+ # runAsUser: 1000
+ # capabilities:
+ # drop:
+ # - ALL
+
+ # Pod security context for the collector
+ podSecurityContext: {}
+ # runAsUser: 1000
+
+ # Annotations for the collector's pods
+ podAnnotations: {}
+ # prometheus.io/scrape: "true"
+
+ # Target allocator configuration
+ targetAllocator: {}
+ # replicas: 1
+ # nodeSelector:
+ # nodeType: worker
+ # resources:
+ # requests:
+ # memory: "64Mi"
+ # cpu: "250m"
+ # limits:
+ # memory: "128Mi"
+ # cpu: "500m"
+ # allocationStrategy: consistent-hashing
+ # filterStrategy: relabel-config
+ # serviceAccount: my-service-account
+ # image: myregistry/myimage:latest
+ # enabled: true
+ # affinity:
+ # nodeAffinity:
+ # requiredDuringSchedulingIgnoredDuringExecution:
+ # nodeSelectorTerms:
+ # - matchExpressions:
+ # - key: kubernetes.io/e2e-az-name
+ # operator: In
+ # values:
+ # - e2e-az1
+ # - e2e-az2
+ # # Configuration for Prometheus Custom Resources
+ # prometheusCR:
+ # enabled: true
+ # scrapeInterval: 30s
+ # podMonitorSelector:
+ # key1: value1
+ # key2: value2
+ # serviceMonitorSelector:
+ # key1: value1
+ # key2: value2
+ # probeSelector:
+ # key1: value1
+ # key2: value2
+ # scrapeConfigSelector:
+ # key1: value1
+ # key2: value2
+ # # List of namespaces to allow for scraping
+ # allowNamespaces:
+ # - namespace-1
+ # - namespace-2
+ # # List of namespaces to exclude from scraping
+ # denyNamespaces:
+ # - namespace-3
+ # - namespace-4
+ # securityContext:
+ # runAsUser: 1000
+ # capabilities:
+ # drop:
+ # - ALL
+ # podSecurityContext:
+ # runAsUser: 1000
+ # # Topology spread constraints for the target allocator
+ # topologySpreadConstraints:
+ # - maxSkew: 1
+ # topologyKey: kubernetes.io/hostname
+ # whenUnsatisfiable: DoNotSchedule
+ # # Tolerations for the collector
+ # tolerations:
+ # - key: "key"
+ # operator: "Equal"
+ # value: "value"
+ # effect: "NoSchedule"
+ # # Environment variables for the target allocator
+ # env:
+ # - name: ENV_VAR1
+ # value: value1
+ # - name: ENV_VAR2
+ # value: value2
+ # # Observability configuration for the target allocator
+ # observability:
+ # metrics:
+ # enableMetrics: true
+
+ # Affinity configuration for the collector
+ affinity: {}
+ # nodeAffinity:
+ # requiredDuringSchedulingIgnoredDuringExecution:
+ # nodeSelectorTerms:
+ # - matchExpressions:
+ # - key: kubernetes.io/e2e-az-name
+ # operator: In
+ # values:
+ # - e2e-az1
+ # - e2e-az2
+
+ # Lifecycle configuration for the collector
+ lifecycle: {}
+ # preStop:
+ # exec:
+ # command:
+ # [
+ # "/bin/sh",
+ # "-c",
+ # "echo Hello from the preStop handler > /dev/termination-log",
+ # ]
+
+ # Liveness probe configuration for the collector
+ livenessProbe: {}
+ # initialDelaySeconds: 3
+ # periodSeconds: 5
+ # timeoutSeconds: 2
+ # failureThreshold: 5
+
+ # Observability configuration for the collector
+ observability: {}
+ # metrics:
+ # enableMetrics: true
+
+ # NOTE: the updateStrategy value is deprecated. Use daemonSetUpdateStrategy instead.
+ updateStrategy: {}
+ # type: RollingUpdate
+
+ # Update strategy for the DaemonSet collector
+ daemonSetUpdateStrategy: {}
+ # type: RollingUpdate
+
+ # Update strategy for the Deployment collector
+ deploymentUpdateStrategy: {}
+ # type: RollingUpdate
+
+ # Retention policy for the PersistentVolumeClaim https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
+ persistentVolumeClaimRetentionPolicy:
+ {}
+ # whenDeleted: Retain
+ # whenScaled: Retain
+
+ # Volume mounts for the collector
+ volumeMounts: []
+ # - name: data
+ # mountPath: /data
+
+ # Ports configuration for the collector
+ # The operator automatically calculates ports for known receivers and exporters
+ # Set any custom ports here.
+ ports: []
+ # - name: http
+ # protocol: TCP
+ # port: 80
+ # targetPort: 8080
+
+ # Environment variables for the collector
+ env: []
+ # - name: ENV_VAR1
+ # value: value1
+ # - name: ENV_VAR2
+ # value: value2
+
+ # Volume claim templates for the collector
+ volumeClaimTemplates: []
+ # - metadata:
+ # name: storage
+ # spec:
+ # accessModes: ["ReadWriteOnce"]
+ # resources:
+ # requests:
+ # storage: 1Gi
+
+ # Tolerations for the collector
+ tolerations: []
+ # - key: "key"
+ # operator: "Equal"
+ # value: "value"
+ # effect: "NoSchedule"
+
+ # Volumes for the collector
+ volumes: []
+ # - name: config-volume
+ # configMap:
+ # name: config
+
+ # Init containers for the collector
+ initContainers: []
+ # - name: init-nginx
+ # image: nginx
+
+ # Additional containers for the collector
+ additionalContainers: []
+ # - name: additional-container
+ # image: busybox
+
+ # Topology spread constraints for the collector
+ topologySpreadConstraints: []
+ # - maxSkew: 1
+ # topologyKey: kubernetes.io/hostname
+ # whenUnsatisfiable: DoNotSchedule
+ # labelSelector:
+ # matchLabels:
+ # app: my-app
+
+ # Config maps for the collector
+ configmaps: []
+ # - name: config
+ # mountPath: /etc/config
+
+ # Handles basic configuration of components that
+ # also require k8s modifications to work correctly.
+ # .Values.config can be used to modify/add to a preset
+ # component configuration, but CANNOT be used to remove
+ # preset configuration. If you require removal of any
+ # sections of a preset configuration, you cannot use
+ # the preset. Instead, configure the component manually in
+ # .Values.config and use the other fields supplied in the
+ # values.yaml to configure k8s as necessary.
+ presets:
+ # Configures the collector to collect logs.
+ # Adds the filelog receiver to the logs pipeline
+ # and adds the necessary volumes and volume mounts.
+ # Best used with mode = daemonset.
+ # See https://opentelemetry.io/docs/kubernetes/collector/components/#filelog-receiver for details on the receiver.
+ logsCollection:
+ enabled: false
+ includeCollectorLogs: true
+ # Enabling this writes checkpoints in /var/lib/otelcol/ host directory.
+ # Note this changes collector's user to root, so that it can write to host directory.
+ storeCheckpoints: false
+ # The maximum bytes size of the recombined field.
+ # Once the size exceeds the limit, all received entries of the source will be combined and flushed.
+ maxRecombineLogSize: 102400
+ # Configures the collector to collect host metrics.
+ # Adds the hostmetrics receiver to the metrics pipeline
+ # and adds the necessary volumes and volume mounts.
+ # Best used with mode = daemonset.
+ # See https://opentelemetry.io/docs/kubernetes/collector/components/#host-metrics-receiver for details on the receiver.
+ hostMetrics:
+ enabled: false
+ # Configures the Kubernetes Processor to add Kubernetes metadata.
+ # Adds the k8sattributes processor to all the pipelines
+ # and adds the necessary rules to ClusteRole.
+ # Best used with mode = daemonset.
+ # See https://opentelemetry.io/docs/kubernetes/collector/components/#kubernetes-attributes-processor for details on the receiver.
+ kubernetesAttributes:
+ enabled: false
+ # When enabled the processor will extra all labels for an associated pod and add them as resource attributes.
+ # The label's exact name will be the key.
+ extractAllPodLabels: false
+ # When enabled the processor will extra all annotations for an associated pod and add them as resource attributes.
+ # The annotation's exact name will be the key.
+ extractAllPodAnnotations: false
+ # Configures the collector to collect node, pod, and container metrics from the API server on a kubelet..
+ # Adds the kubeletstats receiver to the metrics pipeline
+ # and adds the necessary rules to ClusteRole.
+ # Best used with mode = daemonset.
+ # See https://opentelemetry.io/docs/kubernetes/collector/components/#kubeletstats-receiver for details on the receiver.
+ kubeletMetrics:
+ enabled: false
+ # Configures the collector to collect kubernetes events.
+ # Adds the k8sobjects receiver to the logs pipeline
+ # and collects kubernetes events by default.
+ # Best used with mode = deployment or statefulset.
+ # MUST be used by a collector with a single replica.
+ # See https://opentelemetry.io/docs/kubernetes/collector/components/#kubernetes-objects-receiver for details on the receiver.
+ kubernetesEvents:
+ enabled: false
+ # Configures the Kubernetes Cluster Receiver to collect cluster-level metrics.
+ # Adds the k8s_cluster receiver to the metrics pipeline
+ # and adds the necessary rules to ClusteRole.
+ # Best used with mode = deployment or statefulset.
+ # MUST be used by a collector with a single replica.
+ # See https://opentelemetry.io/docs/kubernetes/collector/components/#kubernetes-cluster-receiver for details on the receiver.
+ clusterMetrics:
+ enabled: false
+ # Configures the collector to collect logs and metrics from pods with specific annotations.
+ # This preset can not be used together with the `logsCollection` preset.
+ # Adds the receiver_creator receiver to the logs and metrics pipelines
+ # and adds the necessary rules to ClusterRole.
+ # Best used with mode = daemonset.
+ # See https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/receiver/receivercreator/README.md#generate-receiver-configurations-from-provided-hints for details on the receiver.
+ annotationDiscovery:
+ logs:
+ enabled: false
+ metrics:
+ enabled: false
+ resourceDetection:
+ # Each detector can be enabled individually. Base detectors 'env' and 'k8snode' are always included when any detector is enabled.
+ # Typically used to resolve the 'k8s.cluster.name' resource attribute.
+ eks:
+ enabled: false
+ aks:
+ enabled: false
+ gcp:
+ enabled: false
+# Collectors is a map of collector configurations of the form:
+# collectors:
+# collectorName:
+# enabled: true
+# name: "example"
+# Each collector configuration is layered on top of the `defaultCRConfig`, overriding a default if set.
+# This configuration allows for multiple layers of overrides for different clusters. For example, you could
+# create a collector called test with an OTLP exporter in your values.yaml, and then override the endpoint's
+# destination in a file called values-staging.yaml.
+collectors:
+ daemon:
+ suffix: daemon
+ mode: daemonset
+ enabled: true
+ resources:
+ limits:
+ cpu: 200m
+ memory: 500Mi
+ requests:
+ cpu: 100m
+ memory: 250Mi
+ # A scrape config file to instruct the daemon collector to pull metrics from any matching targets on the same node with
+ # prometheus.io/scrape=true
+ # This config also scrapes a running node exporter and the kubelet CAdvisor metrics which aren't currently supported.
+ scrape_configs_file: "daemon_scrape_configs.yaml"
+ presets:
+ logsCollection:
+ enabled: true
+ kubeletMetrics:
+ enabled: true
+ hostMetrics:
+ enabled: true
+ kubernetesAttributes:
+ enabled: true
+ kubernetesEvents:
+ enabled: true
+ clusterMetrics:
+ enabled: true
+ annotationDiscovery:
+ logs:
+ enabled: false
+ metrics:
+ enabled: false
+ resourceDetection:
+ aks:
+ enabled: false
+ gcp:
+ enabled: false
+ eks:
+ enabled: false
+ config:
+ receivers:
+ otlp:
+ protocols:
+ grpc:
+ endpoint: 0.0.0.0:4317
+ http:
+ endpoint: 0.0.0.0:4318
+ processors:
+ resourcedetection/env:
+ detectors: [env, k8snode]
+ timeout: 2s
+ override: false
+ resource/hostname:
+ attributes:
+ - key: host.name
+ from_attribute: k8s.node.name
+ action: insert
+ batch:
+ send_batch_size: 1000
+ timeout: 1s
+ send_batch_max_size: 1500
+ exporters:
+ debug: {}
+
+ service:
+ pipelines:
+ traces:
+ receivers:
+ - otlp
+ processors:
+ - resourcedetection/env
+ - resource/hostname
+ - batch
+ exporters:
+ - debug
+ metrics:
+ receivers:
+ - otlp
+ processors:
+ - resourcedetection/env
+ - resource/hostname
+ - batch
+ exporters:
+ - debug
+ logs:
+ receivers:
+ - otlp
+ processors:
+ - resourcedetection/env
+ - resource/hostname
+ - batch
+ exporters:
+ - debug
+
+# Cluster role configuration
+clusterRole:
+ # Whether the cluster role is enabled or not
+ enabled: true
+
+ # Annotations for the cluster role
+ annotations: {}
+
+ # Rules for the cluster role
+ rules: []
+
+# Instrumentation configuration
+instrumentation:
+ # Whether instrumentation is enabled or not
+ enabled: false
+ labels: {}
+ annotations: {}
+
+ # Exporter configuration
+ exporter:
+ # This is the default collector's service
+ # Upon creation of a tracing collector, edit this endpoint.
+ endpoint: http://collector-collector:4317
+
+ # Resource configuration
+ resource:
+ resourceAttributes: {}
+ # environment: dev
+ addK8sUIDAttributes: true
+
+ # Propagators configuration
+ propagators:
+ - tracecontext
+ - baggage
+ - b3
+ - b3multi
+ - jaeger
+ - xray
+ - ottrace
+
+ # Sampler configuration
+ sampler: {}
+ # type: parentbased_always_on
+ # argument: "0.25"
+
+ # Environment variables for instrumentation
+ env: []
+ # - name: ENV_VAR1
+ # value: value1
+ # - name: ENV_VAR2
+ # value: value2
+
+ # Java agent configuration
+ java: {}
+ # image: myregistry/java-agent:latest
+ # volumeLimitSize: 200Mi
+ # env:
+ # - name: JAVA_ENV_VAR
+ # value: java_value
+ # resources:
+ # requests:
+ # memory: "64Mi"
+ # cpu: "250m"
+ # limits:
+ # memory: "128Mi"
+ # cpu: "500m"
+
+ # NodeJS agent configuration
+ nodejs: {}
+ # image: myregistry/nodejs-agent:latest
+ # volumeLimitSize: 200Mi
+ # env:
+ # - name: NODEJS_ENV_VAR
+ # value: nodejs_value
+ # resourceRequirements:
+ # requests:
+ # memory: "64Mi"
+ # cpu: "250m"
+ # limits:
+ # memory: "128Mi"
+ # cpu: "500m"
+
+ # Python agent configuration
+ python: {}
+ # image: myregistry/python-agent:latest
+ # volumeLimitSize: 200Mi
+ # env:
+ # - name: PYTHON_ENV_VAR
+ # value: python_value
+ # # Required if endpoint is set to 4317.
+ # # Python autoinstrumentation uses http/proto by default
+ # # so data must be sent to 4318 instead of 4317.
+ # - name: OTEL_EXPORTER_OTLP_ENDPOINT
+ # value: http://otel-collector:4318
+ # resourceRequirements:
+ # requests:
+ # memory: "64Mi"
+ # cpu: "250m"
+ # limits:
+ # memory: "128Mi"
+ # cpu: "500m"
+
+ # .NET agent configuration
+ dotnet: {}
+ # image: myregistry/dotnet-agent:latest
+ # volumeLimitSize: 200Mi
+ # env:
+ # - name: DOTNET_ENV_VAR
+ # value: dotnet_value
+ # # Required if endpoint is set to 4317.
+ # # Dotnet autoinstrumentation uses http/proto by default
+ # # See https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation/blob/888e2cd216c77d12e56b54ee91dafbc4e7452a52/docs/config.md#otlp
+ # - name: OTEL_EXPORTER_OTLP_ENDPOINT
+ # value: http://otel-collector:4318
+ # resourceRequirements:
+ # requests:
+ # memory: "64Mi"
+ # cpu: "250m"
+ # limits:
+ # memory: "128Mi"
+ # cpu: "500m"
+
+ # Go agent configuration
+ go: {}
+ # image: myregistry/go-agent:latest
+ # volumeLimitSize: 200Mi
+ # env:
+ # - name: GO_ENV_VAR
+ # value: go_value
+ # # Required if endpoint is set to 4317.
+ # # Dotnet autoinstrumentation uses http/proto by default
+ # # See https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation/blob/888e2cd216c77d12e56b54ee91dafbc4e7452a52/docs/config.md#otlp
+ # - name: OTEL_EXPORTER_OTLP_ENDPOINT
+ # value: http://otel-collector:4318
+ # resourceRequirements:
+ # requests:
+ # memory: "64Mi"
+ # cpu: "250m"
+ # limits:
+ # memory: "128Mi"
+ # cpu: "500m"
+
+ # Apache HTTPd agent configuration
+ apacheHttpd: {}
+ # image: myregistry/apache-agent:latest
+ # volumeLimitSize: 200Mi
+ # env:
+ # - name: APACHE_ENV_VAR
+ # value: apache_value
+ # attrs:
+ # - name: ATTRIBUTE_VAR
+ # value: attribute_value
+ # version: "2.4"
+ # configPath: "/usr/local/apache2/conf"
+ # resourceRequirements:
+ # requests:
+ # memory: "64Mi"
+ # cpu: "250m"
+ # limits:
+ # memory: "128Mi"
+ # cpu: "500m"
+
+ # NGINX agent configuration
+ nginx: {}
+ # image: myregistry/nginx-agent:latest
+ # volumeLimitSize: 200Mi
+ # env:
+ # - name: NGINX_ENV_VAR
+ # value: nginx_value
+ # attrs:
+ # - name: ATTRIBUTE_VAR
+ # value: attribute_value
+ # configFile: "/etc/nginx/nginx.conf"
+ # resourceRequirements:
+ # requests:
+ # memory: "64Mi"
+ # cpu: "250m"
+ # limits:
+ # memory: "128Mi"
+ # cpu: "500m"
+
+# OpAMP bridge configuration. The OpAMP Bridge is an OpenTelemetry component
+# that enables enhanced configuration and health monitoring for OpenTelemetry collectors
+# deployed in Kubernetes. The Bridge pulls collector CRDs from the Kubernetes cluster and
+# reports their configuration and status to a remote OpAMP Server. The Bridge will only pull
+# collectors labeled with either
+# * opentelemetry.io/opamp-reporting: true
+# * opentelemetry.io/opamp-managed: true
+# You can learn more about the Bridge's design here:
+# https://docs.google.com/document/d/1M8VLNe_sv1MIfu5bUR5OV_vrMBnAI7IJN-7-IAr37JY
+opAMPBridge:
+ # Whether OpAMP bridge is enabled or not
+ enabled: false
+
+ # Adds `opentelemetry.io/opamp-reporting: true` to all collectors
+ addReportingLabel: true
+ # Adds `opentelemetry.io/opamp-managed: true` to all collectors
+ addManagedLabel: false
+
+ # Endpoint for OpAMP server
+ endpoint: http://opamp-server:8080
+
+ # Description for additional information like non_identifying_attributes
+ description: {}
+
+ # Headers configuration for OpAMP bridge
+ headers: {}
+ # Authorization: Bearer your_access_token
+ # Custom-Header: Custom-Value
+
+ # Capabilities of OpAMP bridge
+ # You can learn more about OpAMP's capabilities here:
+ # https://github.com/open-telemetry/opamp-spec/blob/main/specification.md#agenttoservercapabilities
+ capabilities:
+ AcceptsOpAMPConnectionSettings: true
+ AcceptsOtherConnectionSettings: true
+ AcceptsRemoteConfig: true
+ AcceptsRestartCommand: true
+ ReportsEffectiveConfig: true
+ ReportsHealth: true
+ ReportsOwnLogs: true
+ ReportsOwnMetrics: true
+ ReportsOwnTraces: true
+ ReportsRemoteConfig: true
+ ReportsStatus: true
+
+ # Components allowed for OpAMP bridge
+ componentsAllowed: {}
+ # receiver:
+ # - otlp
+ # - prometheus
+ # processor:
+ # - batch
+ # - memory_limiter
+ # exporter:
+ # - prometheusremotewrite
+
+ # Resources configuration for OpAMP bridge
+ resources:
+ limits:
+ cpu: "250m"
+ memory: "256Mi"
+ requests:
+ cpu: "250m"
+ memory: "256Mi"
+
+ # Security context for OpAMP bridge
+ securityContext:
+ runAsNonRoot: true
+ runAsUser: 1000
+
+ # Pod security context for OpAMP bridge
+ podSecurityContext:
+ fsGroup: 1000
+
+ # Pod annotations for OpAMP bridge
+ podAnnotations: {}
+ # prometheus.io/scrape: "true"
+ # prometheus.io/port: "8080"
+
+ # Service account for OpAMP bridge
+ serviceAccount: ""
+
+ # Image for OpAMP bridge
+ image:
+ repository: ghcr.io/open-telemetry/opentelemetry-operator/operator-opamp-bridge
+ pullPolicy: IfNotPresent
+ # By default, the version set for the bridge will match the version of the operator being run.
+ tag: ""
+ # When digest is set to a non-empty value, images will be pulled by digest (regardless of tag value).
+ digest: ""
+
+ # Upgrade strategy for OpAMP bridge
+ upgradeStrategy: automatic
+
+ # Volume mounts for OpAMP bridge
+ volumeMounts: []
+ # - name: data
+ # mountPath: /data
+
+ # Ports configuration for OpAMP bridge
+ ports: []
+ # - name: http
+ # port: 8080
+ # protocol: TCP
+
+ # Environment variables for OpAMP bridge
+ env: []
+ # - name: ENVIRONMENT
+ # value: production
+
+ # Environment variables from config map for OpAMP bridge
+ envFrom: []
+ # - configMapRef:
+ # name: opamp-config
+
+ # Tolerations for OpAMP bridge
+ tolerations: []
+ # - key: "opamp"
+ # operator: "Equal"
+ # value: "true"
+ # effect: "NoSchedule"
+
+ # Volumes for OpAMP bridge
+ volumes: []
+ # - name: data
+ # emptyDir: {}
+
+ # Whether to use host network for OpAMP bridge
+ hostNetwork: false
+
+ # Priority class name for OpAMP bridge
+ priorityClassName: ""
+
+ # Affinity configuration for OpAMP bridge
+ affinity: {}
+ # nodeAffinity:
+ # requiredDuringSchedulingIgnoredDuringExecution:
+ # nodeSelectorTerms:
+ # - matchExpressions:
+ # - key: opamp
+ # operator: In
+ # values:
+ # - "true"
+
+ # Topology spread constraints for OpAMP bridge
+ topologySpreadConstraints: []
+ # - maxSkew: 1
+ # topologyKey: "kubernetes.io/hostname"
+ # whenUnsatisfiable: "DoNotSchedule"
+ # labelSelector:
+ # matchLabels:
+ # opamp: "true"
+
+ # Bridge cluster role configuration
+ # In order to function the bridge is given its default role to
+ # list and get pods and opentelemetry collectors
+ clusterRole:
+ # Whether the bridge cluster role is enabled or not
+ enabled: true
+
+ # Annotations for the bridge cluster role
+ annotations: {}
+
+ # Rules for the bridge cluster role
+ rules: []
+
+############################
+# Prometheus Configuration #
+# (optional) #
+############################
+# This configuration sections allows for a direct replacement of the kube-prometheus-stack
+# chart where the collector scrapes the same metrics as the default prometheus installation.
+
+## Flag to disable all the kubernetes component scrapers
+##
+kubernetesServiceMonitors:
+ enabled: false
+ ignoreNamespaceSelectors: false
+
+## Component scraping the kube api server
+##
+kubeApiServer:
+ enabled: false
+ tlsConfig:
+ serverName: kubernetes
+ insecureSkipVerify: false
+ serviceMonitor:
+ ## Scrape interval. If not set, the Prometheus default scrape interval is used.
+ ##
+ interval: ""
+
+ ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
+ ##
+ sampleLimit: 0
+
+ ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
+ ##
+ targetLimit: 0
+
+ ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
+ ##
+ labelLimit: 0
+
+ ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
+ ##
+ labelNameLengthLimit: 0
+
+ ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
+ ##
+ labelValueLengthLimit: 0
+
+ ## proxyUrl: URL of a proxy that should be used for scraping.
+ ##
+ proxyUrl: ""
+
+ jobLabel: component
+ selector:
+ matchLabels:
+ component: apiserver
+ provider: kubernetes
+
+ ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
+ ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
+ ##
+ metricRelabelings:
+ # Drop excessively noisy apiserver buckets.
+ - action: drop
+ regex: apiserver_request_duration_seconds_bucket;(0.15|0.2|0.3|0.35|0.4|0.45|0.6|0.7|0.8|0.9|1.25|1.5|1.75|2|3|3.5|4|4.5|6|7|8|9|15|25|40|50)
+ sourceLabels:
+ - __name__
+ - le
+ # - action: keep
+ # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
+ # sourceLabels: [__name__]
+
+ ## RelabelConfigs to apply to samples before scraping
+ ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
+ ##
+ relabelings: []
+ # - sourceLabels:
+ # - __meta_kubernetes_namespace
+ # - __meta_kubernetes_service_name
+ # - __meta_kubernetes_endpoint_port_name
+ # action: keep
+ # regex: default;kubernetes;https
+ # - targetLabel: __address__
+ # replacement: kubernetes.default.svc:443
+
+ ## Additional labels
+ ##
+ additionalLabels: {}
+ # foo: bar
+
+## Component scraping the kubelet and kubelet-hosted cAdvisor
+## the configuration for this is currently only in kubelet_scrape_configs.yaml
+## This is because kubelet doesn't have a service and can only be scraped manually.
+kubelet:
+ enabled: false
+ namespace: kube-system
+
+ serviceMonitor:
+ ## Scrape interval. If not set, the Prometheus default scrape interval is used.
+ ##
+ interval: ""
+
+ ## If true, Prometheus use (respect) labels provided by exporter.
+ ##
+ honorLabels: true
+
+ ## If true, Prometheus ingests metrics with timestamp provided by exporter. If false, Prometheus ingests metrics with timestamp of scrape.
+ ##
+ honorTimestamps: true
+
+ ## Enable scraping the kubelet over https. For requirements to enable this see
+ ## https://github.com/prometheus-operator/prometheus-operator/issues/926
+ ##
+ https: true
+
+ ## Enable scraping /metrics/cadvisor from kubelet's service
+ ##
+ cAdvisor: true
+
+ ## Enable scraping /metrics/probes from kubelet's service
+ ##
+ probes: true
+
+## Component scraping the kube controller manager
+##
+kubeControllerManager:
+ enabled: false
+
+ ## If your kube controller manager is not deployed as a pod, specify IPs it can be found on
+ ##
+ endpoints: []
+ # - 10.141.4.22
+ # - 10.141.4.23
+ # - 10.141.4.24
+
+ ## If using kubeControllerManager.endpoints only the port and targetPort are used
+ ##
+ service:
+ enabled: true
+ ## If null or unset, the value is determined dynamically based on target Kubernetes version due to change
+ ## of default port in Kubernetes 1.22.
+ ##
+ port: null
+ targetPort: null
+ # selector:
+ # component: kube-controller-manager
+
+ serviceMonitor:
+ enabled: true
+ ## Scrape interval. If not set, the Prometheus default scrape interval is used.
+ ##
+ interval: ""
+
+ ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
+ ##
+ sampleLimit: 0
+
+ ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
+ ##
+ targetLimit: 0
+
+ ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
+ ##
+ labelLimit: 0
+
+ ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
+ ##
+ labelNameLengthLimit: 0
+
+ ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
+ ##
+ labelValueLengthLimit: 0
+
+ ## proxyUrl: URL of a proxy that should be used for scraping.
+ ##
+ proxyUrl: ""
+
+ ## port: Name of the port the metrics will be scraped from
+ ##
+ port: http-metrics
+
+ jobLabel: jobLabel
+ selector: {}
+ # matchLabels:
+ # component: kube-controller-manager
+
+ ## Enable scraping kube-controller-manager over https.
+ ## Requires proper certs (not self-signed) and delegated authentication/authorization checks.
+ ## If null or unset, the value is determined dynamically based on target Kubernetes version.
+ ##
+ https: null
+
+ # Skip TLS certificate validation when scraping
+ insecureSkipVerify: null
+
+ # Name of the server to use when validating TLS certificate
+ serverName: null
+
+ ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
+ ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
+ ##
+ metricRelabelings: []
+ # - action: keep
+ # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
+ # sourceLabels: [__name__]
+
+ ## RelabelConfigs to apply to samples before scraping
+ ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
+ ##
+ relabelings: []
+ # - sourceLabels: [__meta_kubernetes_pod_node_name]
+ # separator: ;
+ # regex: ^(.*)$
+ # targetLabel: nodename
+ # replacement: $1
+ # action: replace
+
+ ## Additional labels
+ ##
+ additionalLabels: {}
+ # foo: bar
+
+## Component scraping coreDns. Use either this or kubeDns
+##
+coreDns:
+ enabled: false
+ endpoints: []
+ service:
+ enabled: true
+ port: 9153
+ targetPort: 9153
+ # selector:
+ # k8s-app: kube-dns
+ serviceMonitor:
+ enabled: true
+ ## Scrape interval. If not set, the Prometheus default scrape interval is used.
+ ##
+ interval: ""
+
+ ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
+ ##
+ sampleLimit: 0
+
+ ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
+ ##
+ targetLimit: 0
+
+ ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
+ ##
+ labelLimit: 0
+
+ ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
+ ##
+ labelNameLengthLimit: 0
+
+ ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
+ ##
+ labelValueLengthLimit: 0
+
+ ## proxyUrl: URL of a proxy that should be used for scraping.
+ ##
+ proxyUrl: ""
+
+ ## port: Name of the port the metrics will be scraped from
+ ##
+ port: http-metrics
+
+ jobLabel: jobLabel
+ selector: {}
+ # matchLabels:
+ # k8s-app: kube-dns
+
+ ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
+ ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
+ ##
+ metricRelabelings: []
+ # - action: keep
+ # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
+ # sourceLabels: [__name__]
+
+ ## RelabelConfigs to apply to samples before scraping
+ ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
+ ##
+ relabelings: []
+ # - sourceLabels: [__meta_kubernetes_pod_node_name]
+ # separator: ;
+ # regex: ^(.*)$
+ # targetLabel: nodename
+ # replacement: $1
+ # action: replace
+
+ ## Additional labels
+ ##
+ additionalLabels: {}
+ # foo: bar
+
+## Component scraping kubeDns. Use either this or coreDns
+##
+kubeDns:
+ enabled: false
+ service:
+ dnsmasq:
+ port: 10054
+ targetPort: 10054
+ skydns:
+ port: 10055
+ targetPort: 10055
+ # selector:
+ # k8s-app: kube-dns
+ serviceMonitor:
+ ## Scrape interval. If not set, the Prometheus default scrape interval is used.
+ ##
+ interval: ""
+
+ ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
+ ##
+ sampleLimit: 0
+
+ ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
+ ##
+ targetLimit: 0
+
+ ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
+ ##
+ labelLimit: 0
+
+ ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
+ ##
+ labelNameLengthLimit: 0
+
+ ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
+ ##
+ labelValueLengthLimit: 0
+
+ ## proxyUrl: URL of a proxy that should be used for scraping.
+ ##
+ proxyUrl: ""
+
+ jobLabel: jobLabel
+ selector: {}
+ # matchLabels:
+ # k8s-app: kube-dns
+
+ ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
+ ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
+ ##
+ metricRelabelings: []
+ # - action: keep
+ # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
+ # sourceLabels: [__name__]
+
+ ## RelabelConfigs to apply to samples before scraping
+ ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
+ ##
+ relabelings: []
+ # - sourceLabels: [__meta_kubernetes_pod_node_name]
+ # separator: ;
+ # regex: ^(.*)$
+ # targetLabel: nodename
+ # replacement: $1
+ # action: replace
+
+ ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
+ ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
+ ##
+ dnsmasqMetricRelabelings: []
+ # - action: keep
+ # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
+ # sourceLabels: [__name__]
+
+ ## RelabelConfigs to apply to samples before scraping
+ ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
+ ##
+ dnsmasqRelabelings: []
+ # - sourceLabels: [__meta_kubernetes_pod_node_name]
+ # separator: ;
+ # regex: ^(.*)$
+ # targetLabel: nodename
+ # replacement: $1
+ # action: replace
+
+ ## Additional labels
+ ##
+ additionalLabels: {}
+ # foo: bar
+
+## Component scraping etcd
+##
+kubeEtcd:
+ enabled: false
+
+ ## If your etcd is not deployed as a pod, specify IPs it can be found on
+ ##
+ endpoints: []
+ # - 10.141.4.22
+ # - 10.141.4.23
+ # - 10.141.4.24
+
+ ## Etcd service. If using kubeEtcd.endpoints only the port and targetPort are used
+ ##
+ service:
+ enabled: true
+ port: 2381
+ targetPort: 2381
+ # selector:
+ # component: etcd
+
+ ## Configure secure access to the etcd cluster by loading a secret into prometheus and
+ ## specifying security configuration below. For example, with a secret named etcd-client-cert
+ ##
+ ## serviceMonitor:
+ ## scheme: https
+ ## insecureSkipVerify: false
+ ## serverName: localhost
+ ## caFile: /etc/prometheus/secrets/etcd-client-cert/etcd-ca
+ ## certFile: /etc/prometheus/secrets/etcd-client-cert/etcd-client
+ ## keyFile: /etc/prometheus/secrets/etcd-client-cert/etcd-client-key
+ ##
+ serviceMonitor:
+ enabled: true
+ ## Scrape interval. If not set, the Prometheus default scrape interval is used.
+ ##
+ interval: ""
+
+ ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
+ ##
+ sampleLimit: 0
+
+ ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
+ ##
+ targetLimit: 0
+
+ ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
+ ##
+ labelLimit: 0
+
+ ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
+ ##
+ labelNameLengthLimit: 0
+
+ ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
+ ##
+ labelValueLengthLimit: 0
+
+ ## proxyUrl: URL of a proxy that should be used for scraping.
+ ##
+ proxyUrl: ""
+ scheme: http
+ insecureSkipVerify: false
+ serverName: ""
+ caFile: ""
+ certFile: ""
+ keyFile: ""
+
+ ## port: Name of the port the metrics will be scraped from
+ ##
+ port: http-metrics
+
+ jobLabel: jobLabel
+ selector: {}
+ # matchLabels:
+ # component: etcd
+
+ ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
+ ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
+ ##
+ metricRelabelings: []
+ # - action: keep
+ # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
+ # sourceLabels: [__name__]
+
+ ## RelabelConfigs to apply to samples before scraping
+ ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
+ ##
+ relabelings: []
+ # - sourceLabels: [__meta_kubernetes_pod_node_name]
+ # separator: ;
+ # regex: ^(.*)$
+ # targetLabel: nodename
+ # replacement: $1
+ # action: replace
+
+ ## Additional labels
+ ##
+ additionalLabels: {}
+ # foo: bar
+
+## Component scraping kube scheduler
+##
+kubeScheduler:
+ enabled: false
+
+ ## If your kube scheduler is not deployed as a pod, specify IPs it can be found on
+ ##
+ endpoints: []
+ # - 10.141.4.22
+ # - 10.141.4.23
+ # - 10.141.4.24
+
+ ## If using kubeScheduler.endpoints only the port and targetPort are used
+ ##
+ service:
+ enabled: true
+ ## If null or unset, the value is determined dynamically based on target Kubernetes version due to change
+ ## of default port in Kubernetes 1.23.
+ ##
+ port: null
+ targetPort: null
+ # selector:
+ # component: kube-scheduler
+
+ serviceMonitor:
+ enabled: true
+ ## Scrape interval. If not set, the Prometheus default scrape interval is used.
+ ##
+ interval: ""
+
+ ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
+ ##
+ sampleLimit: 0
+
+ ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
+ ##
+ targetLimit: 0
+
+ ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
+ ##
+ labelLimit: 0
+
+ ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
+ ##
+ labelNameLengthLimit: 0
+
+ ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
+ ##
+ labelValueLengthLimit: 0
+
+ ## proxyUrl: URL of a proxy that should be used for scraping.
+ ##
+ proxyUrl: ""
+ ## Enable scraping kube-scheduler over https.
+ ## Requires proper certs (not self-signed) and delegated authentication/authorization checks.
+ ## If null or unset, the value is determined dynamically based on target Kubernetes version.
+ ##
+ https: null
+
+ ## port: Name of the port the metrics will be scraped from
+ ##
+ port: http-metrics
+
+ jobLabel: jobLabel
+ selector: {}
+ # matchLabels:
+ # component: kube-scheduler
+
+ ## Skip TLS certificate validation when scraping
+ insecureSkipVerify: null
+
+ ## Name of the server to use when validating TLS certificate
+ serverName: null
+
+ ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
+ ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
+ ##
+ metricRelabelings: []
+ # - action: keep
+ # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
+ # sourceLabels: [__name__]
+
+ ## RelabelConfigs to apply to samples before scraping
+ ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
+ ##
+ relabelings: []
+ # - sourceLabels: [__meta_kubernetes_pod_node_name]
+ # separator: ;
+ # regex: ^(.*)$
+ # targetLabel: nodename
+ # replacement: $1
+ # action: replace
+
+ ## Additional labels
+ ##
+ additionalLabels: {}
+ # foo: bar
+
+## Component scraping kube proxy
+##
+kubeProxy:
+ enabled: false
+
+ ## If your kube proxy is not deployed as a pod, specify IPs it can be found on
+ ##
+ endpoints: []
+ # - 10.141.4.22
+ # - 10.141.4.23
+ # - 10.141.4.24
+
+ service:
+ enabled: true
+ port: 10249
+ targetPort: 10249
+ # selector:
+ # k8s-app: kube-proxy
+
+ serviceMonitor:
+ enabled: true
+ ## Scrape interval. If not set, the Prometheus default scrape interval is used.
+ ##
+ interval: ""
+
+ ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
+ ##
+ sampleLimit: 0
+
+ ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
+ ##
+ targetLimit: 0
+
+ ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
+ ##
+ labelLimit: 0
+
+ ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
+ ##
+ labelNameLengthLimit: 0
+
+ ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
+ ##
+ labelValueLengthLimit: 0
+
+ ## proxyUrl: URL of a proxy that should be used for scraping.
+ ##
+ proxyUrl: ""
+
+ ## port: Name of the port the metrics will be scraped from
+ ##
+ port: http-metrics
+
+ jobLabel: jobLabel
+ selector: {}
+ # matchLabels:
+ # k8s-app: kube-proxy
+
+ ## Enable scraping kube-proxy over https.
+ ## Requires proper certs (not self-signed) and delegated authentication/authorization checks
+ ##
+ https: false
+
+ ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
+ ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
+ ##
+ metricRelabelings: []
+ # - action: keep
+ # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
+ # sourceLabels: [__name__]
+
+ ## RelabelConfigs to apply to samples before scraping
+ ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
+ ##
+ relabelings: []
+ # - action: keep
+ # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
+ # sourceLabels: [__name__]
+
+ ## Additional labels
+ ##
+ additionalLabels: {}
+ # foo: bar
+
+## Controls whether the kube-state-metrics chart should be created.
+## This block matches the configuration for the kube-prometheus-stack chart for compatibility.
+kubeStateMetrics:
+ enabled: false
+
+## Configuration for kube-state-metrics subchart
+## The Kube-State-Metrics agent collects cluster-level metrics
+## Read more here about the chart:
+## https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-state-metrics
+kube-state-metrics:
+ namespaceOverride: ""
+ rbac:
+ create: true
+ releaseLabel: true
+ prometheus:
+ monitor:
+ enabled: true
+
+ ## Scrape interval. If not set, the Prometheus default scrape interval is used.
+ ##
+ interval: ""
+
+ ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
+ ##
+ sampleLimit: 0
+
+ ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
+ ##
+ targetLimit: 0
+
+ ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
+ ##
+ labelLimit: 0
+
+ ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
+ ##
+ labelNameLengthLimit: 0
+
+ ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
+ ##
+ labelValueLengthLimit: 0
+
+ ## Scrape Timeout. If not set, the Prometheus default scrape timeout is used.
+ ##
+ scrapeTimeout: ""
+
+ ## proxyUrl: URL of a proxy that should be used for scraping.
+ ##
+ proxyUrl: ""
+
+ # Keep labels from scraped data, overriding server-side labels
+ ##
+ honorLabels: true
+
+ ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
+ ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
+ ##
+ metricRelabelings: []
+ # - action: keep
+ # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
+ # sourceLabels: [__name__]
+
+ ## RelabelConfigs to apply to samples before scraping
+ ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
+ ##
+ relabelings: []
+ # - sourceLabels: [__meta_kubernetes_pod_node_name]
+ # separator: ;
+ # regex: ^(.*)$
+ # targetLabel: nodename
+ # replacement: $1
+ # action: replace
+
+ selfMonitor:
+ enabled: false
+
+## Controls whether the prometheus-node-exporter chart should be created.
+## This block matches the configuration for the kube-prometheus-stack chart for compatibility.
+nodeExporter:
+ enabled: false
+
+## Configuration for prometheus-node-exporter subchart
+## This will install a daemonset that pulls metric data from each node
+## Read more here about the chart:
+## https://github.com/prometheus-community/helm-charts/tree/main/charts/prometheus-node-exporter
+prometheus-node-exporter:
+ namespaceOverride: ""
+ podLabels:
+ jobLabel: node-exporter
+ releaseLabel: true
+ extraArgs:
+ - --collector.filesystem.mount-points-exclude=^/(dev|proc|sys|var/lib/docker/.+|var/lib/kubelet/.+)($|/)
+ - --collector.filesystem.fs-types-exclude=^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|sysfs|tracefs)$
+ service:
+ ## Add the 'node-exporter' label to be used by serviceMonitor to match standard common usage in rules and grafana dashboards
+ labels:
+ jobLabel: node-exporter
+ portName: http-metrics
+ prometheus:
+ monitor:
+ enabled: true
+
+ jobLabel: jobLabel
+
+ ## Scrape interval. If not set, the Prometheus default scrape interval is used.
+ ##
+ interval: ""
+
+ ## SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
+ ##
+ sampleLimit: 0
+
+ ## TargetLimit defines a limit on the number of scraped targets that will be accepted.
+ ##
+ targetLimit: 0
+
+ ## Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
+ ##
+ labelLimit: 0
+
+ ## Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
+ ##
+ labelNameLengthLimit: 0
+
+ ## Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
+ ##
+ labelValueLengthLimit: 0
+
+ ## How long until a scrape request times out. If not set, the Prometheus default scape timeout is used.
+ ##
+ scrapeTimeout: ""
+
+ ## proxyUrl: URL of a proxy that should be used for scraping.
+ ##
+ proxyUrl: ""
+
+ ## MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
+ ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
+ ##
+ metricRelabelings: []
+ # - sourceLabels: [__name__]
+ # separator: ;
+ # regex: ^node_mountstats_nfs_(event|operations|transport)_.+
+ # replacement: $1
+ # action: drop
+
+ ## RelabelConfigs to apply to samples before scraping
+ ## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
+ ##
+ relabelings: []
+ # - sourceLabels: [__meta_kubernetes_pod_node_name]
+ # separator: ;
+ # regex: ^(.*)$
+ # targetLabel: nodename
+ # replacement: $1
+ # action: replace
+ rbac:
+ ## If true, create PSPs for node-exporter
+ ##
+ pspEnabled: false
+
+## Array of extra manifests to deploy
+## This will deploy arbitrary manifests as part of the helm relase
+extraObjects: []
+# - apiVersion: secrets-store.csi.x-k8s.io/v1
+# kind: SecretProviderClass
+# metadata:
+# name: my-secret-provider
+# spec:
+# parameters:
+# objects: >
+# - secretPath: xxxxxxx/yyyy
+# objectName: "imagePullSecret"
+# secretKey: registry-credentials
+# vaultAddress: xxxxxxx
+# provider: vault
+# secretObjects:
+# - data:
+# - key: .dockerconfigjson
+# objectName: imagePullSecret
+# secretName: demo-image-pull-secrets
+# type: kubernetes.io/dockerconfigjson
diff --git a/charts/perses/Chart.yaml b/charts/perses/Chart.yaml
index 217807f2..889f2eb6 100644
--- a/charts/perses/Chart.yaml
+++ b/charts/perses/Chart.yaml
@@ -3,7 +3,7 @@ name: perses
description: Perses helm chart
icon: https://avatars.githubusercontent.com/u/77209215?s=200&v=4
type: application
-version: 0.17.1
+version: v2026.5.22
appVersion: "v0.52.0"
sources:
- https://github.com/perses/perses
diff --git a/charts/perses/README.md b/charts/perses/README.md
index 16838ec0..4dcd654d 100644
--- a/charts/perses/README.md
+++ b/charts/perses/README.md
@@ -7,8 +7,8 @@
```bash
$ helm repo add appscode https://charts.appscode.com/stable/
$ helm repo update
-$ helm search repo appscode/perses --version=0.17.1
-$ helm upgrade -i perses appscode/perses -n monitoring --create-namespace --version=0.17.1
+$ helm search repo appscode/perses --version=v2026.5.22
+$ helm upgrade -i perses appscode/perses -n monitoring --create-namespace --version=v2026.5.22
```
## Introduction
@@ -24,7 +24,7 @@ This chart deploys a Perses on a [Kubernetes](http://kubernetes.io) cluster usin
To install/upgrade the chart with the release name `perses`:
```bash
-$ helm upgrade -i perses appscode/perses -n monitoring --create-namespace --version=0.17.1
+$ helm upgrade -i perses appscode/perses -n monitoring --create-namespace --version=v2026.5.22
```
The command deploys a Perses on the Kubernetes cluster in the default configuration. The [configuration](#configuration) section lists the parameters that can be configured during installation.
@@ -49,8 +49,8 @@ The following table lists the configurable parameters of the `perses` chart and
|--------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------|
| nameOverride | -- Override name of the chart used in Kubernetes object names. | "" |
| fullnameOverride | -- Override fully qualified app name | "" |
-| image.name | -- Perses image repository and name | "rokibulhasan114/perses" |
-| image.version | -- Overrides the image tag whose default is the chart appVersion. | "v0.0.1" |
+| image.name | -- Perses image repository and name | "ghcr.io/opnpulse/perses" |
+| image.version | -- Overrides the image tag whose default is the chart appVersion. | "v2026.4.24" |
| image.pullPolicy | -- Default image pull policy | Always |
| additionalLabels | | {} |
| serviceAccount.create | -- Specifies whether a service account should be created | true |
@@ -154,12 +154,12 @@ The following table lists the configurable parameters of the `perses` chart and
Specify each parameter using the `--set key=value[,key=value]` argument to `helm upgrade -i`. For example:
```bash
-$ helm upgrade -i perses appscode/perses -n monitoring --create-namespace --version=0.17.1 --set image.name="rokibulhasan114/perses"
+$ helm upgrade -i perses appscode/perses -n monitoring --create-namespace --version=v2026.5.22 --set image.name="ghcr.io/opnpulse/perses"
```
Alternatively, a YAML file that specifies the values for the parameters can be provided while
installing the chart. For example:
```bash
-$ helm upgrade -i perses appscode/perses -n monitoring --create-namespace --version=0.17.1 --values values.yaml
+$ helm upgrade -i perses appscode/perses -n monitoring --create-namespace --version=v2026.5.22 --values values.yaml
```
diff --git a/charts/perses/templates/deployment.yaml b/charts/perses/templates/deployment.yaml
index 6347e318..ffe13a14 100644
--- a/charts/perses/templates/deployment.yaml
+++ b/charts/perses/templates/deployment.yaml
@@ -141,6 +141,10 @@ spec:
capabilities:
drop:
- ALL
+ runAsNonRoot: true
+ runAsUser: 65534
+ seccompProfile:
+ type: RuntimeDefault
volumes:
{{- if .Values.volumes }}
{{- tpl (toYaml .Values.volumes | nindent 8) . }}
diff --git a/charts/perses/templates/statefulset.yaml b/charts/perses/templates/statefulset.yaml
index 2c74aedd..8000e60b 100644
--- a/charts/perses/templates/statefulset.yaml
+++ b/charts/perses/templates/statefulset.yaml
@@ -149,6 +149,15 @@ spec:
resources:
{{- toYaml . | nindent 10 }}
{{- end }}
+ securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ runAsNonRoot: true
+ runAsUser: 65534
+ seccompProfile:
+ type: RuntimeDefault
volumes:
{{- if .Values.volumes }}
{{- tpl (toYaml .Values.volumes | nindent 8) . }}
diff --git a/charts/perses/values.yaml b/charts/perses/values.yaml
index bfa89850..d355de69 100644
--- a/charts/perses/values.yaml
+++ b/charts/perses/values.yaml
@@ -12,10 +12,10 @@ fullnameOverride: ""
##
image:
# -- Perses image repository and name
- name: "rokibulhasan114/perses"
+ name: "ghcr.io/opnpulse/perses"
# -- Overrides the image tag whose default is the chart appVersion.
- version: "v0.0.1"
+ version: "v2026.4.24"
# -- Default image pull policy
pullPolicy: Always
@@ -272,7 +272,7 @@ config:
- /etc/perses/provisioning
interval: 10m
-# -- Persistence configuration for Perses provisioning.
+# -- Persistence configuration for Perses provisioning.
# For more information on provisioning feature, see: https://perses.dev/perses/docs/configuration/provisioning/
# When enabled, a PersistentVolumeClaim (PVC) is created via StatefulSet volumeClaimTemplates.
# The PVC will be named: provisioning--
@@ -439,4 +439,4 @@ extraObjects:
distro:
openshift: false
- ubi: ""
\ No newline at end of file
+ ubi: ""
diff --git a/charts/prom-label-proxy/Chart.yaml b/charts/prom-label-proxy/Chart.yaml
index f8d7a52f..021585af 100644
--- a/charts/prom-label-proxy/Chart.yaml
+++ b/charts/prom-label-proxy/Chart.yaml
@@ -2,7 +2,7 @@ apiVersion: v2
name: prom-label-proxy
description: A proxy that enforces a given label in a given PromQL query.
type: application
-version: 0.17.1
+version: v2026.5.22
# renovate: github=prometheus-community/prom-label-proxy
appVersion: v0.12.1
home: "https://github.com/prometheus-community/prom-label-proxy"
diff --git a/charts/prom-label-proxy/README.md b/charts/prom-label-proxy/README.md
index 36345644..4220dd84 100644
--- a/charts/prom-label-proxy/README.md
+++ b/charts/prom-label-proxy/README.md
@@ -7,8 +7,8 @@
```bash
$ helm repo add appscode https://charts.appscode.com/stable/
$ helm repo update
-$ helm search repo appscode/prom-label-proxy --version=0.17.1
-$ helm upgrade -i prom-label-proxy appscode/prom-label-proxy -n monitoring --create-namespace --version=0.17.1
+$ helm search repo appscode/prom-label-proxy --version=v2026.5.22
+$ helm upgrade -i prom-label-proxy appscode/prom-label-proxy -n monitoring --create-namespace --version=v2026.5.22
```
## Introduction
@@ -24,7 +24,7 @@ This chart deploys a Prom Label Proxy on a [Kubernetes](http://kubernetes.io) cl
To install/upgrade the chart with the release name `prom-label-proxy`:
```bash
-$ helm upgrade -i prom-label-proxy appscode/prom-label-proxy -n monitoring --create-namespace --version=0.17.1
+$ helm upgrade -i prom-label-proxy appscode/prom-label-proxy -n monitoring --create-namespace --version=v2026.5.22
```
The command deploys a Prom Label Proxy on the Kubernetes cluster in the default configuration. The [configuration](#configuration) section lists the parameters that can be configured during installation.
@@ -45,136 +45,118 @@ The command removes all the Kubernetes components associated with the chart and
The following table lists the configurable parameters of the `prom-label-proxy` chart and their default values.
-| Parameter | Description | Default |
-|--------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------|
-| replicaCount | -- Number of prom-label-proxy replicas to deploy | 1 |
-| image.pullPolicy | | IfNotPresent |
-| image.repository | -- prom-label-proxy image registry | quay.io/prometheuscommunity/prom-label-proxy |
-| image.tag | -- prom-label-proxy image tag (immutable tags are recommended). @default -- `.Chart.AppVersion` | "" |
-| imagePullSecrets | -- registry secret names as an array | [] |
-| nameOverride | -- String to partially override prom-label-proxy.fullname template (will maintain the release name) | "" |
-| namespaceOverride | -- Override the namespace | "" |
-| fullnameOverride | -- String to fully override amazon-eks-pod-identity.fullname template | "" |
-| serviceAccount.create | -- Enable creation of ServiceAccount for nginx pod | true |
-| serviceAccount.name | -- The name of the ServiceAccount to use. @default -- A name is generated using the `prom-label-proxy.fullname` template | '' |
-| serviceAccount.annotations | -- Annotations for service account. Evaluated as a template. | {} |
-| podAnnotations | -- Annotations for prom-label-proxy pods | {} |
-| podLabels | -- Labels for prom-label-proxy pods | {} |
-| podSecurityContext | -- prom-label-proxy pods' Security Context. | {} |
-| securityContext.runAsUser | | 65534 |
-| securityContext.runAsGroup | | 65534 |
-| securityContext.runAsNonRoot | | true |
-| securityContext.readOnlyRootFilesystem | | true |
-| service.port | | 8080 |
-| service.type | -- Service type | ClusterIP |
-| service.annotations | -- Service annotations are passed through helm tpl function. # ref: https://helm.sh/docs/developing_charts/#using-the-tpl-function | {} |
-| livenessProbe.httpGet.path | -- This is the liveness check endpoint | /healthz |
-| livenessProbe.httpGet.port | | http |
-| readinessProbe.httpGet.path | -- This is the readiness check endpoint | /healthz |
-| readinessProbe.httpGet.port | | http |
-| resources.limits.cpu | | 200m |
-| resources.limits.memory | | 128Mi |
-| resources.requests.cpu | | 100m |
-| resources.requests.memory | | 64Mi |
-| autoscaling.enabled | | false |
-| autoscaling.minReplicas | | 1 |
-| autoscaling.maxReplicas | | 2 |
-| autoscaling.targetCPUUtilizationPercentage | | 80 |
-| affinity | -- Affinity for pod assignment | {} |
-| nodeSelector | -- Node labels for pod assignment. Evaluated as a template. | {} |
-| tolerations | -- Tolerations for pod assignment. Evaluated as a template. | [] |
-| ingress.enabled | | false |
-| ingress.className | | "" |
-| ingress.labels | | {} |
-| ingress.annotations | | {} |
-| ingress.tls | | [] |
-| config.listenAddress | -- listen address | 0.0.0.0:8080 |
-| config.upstream | -- The upstream URL to proxy to | "http://prometheus:9090" |
-| config.label | -- The label to enforce in all proxies PromQL queries. | "tenant_id" |
-| metrics.enabled | If enabled, supply metrics. | false |
-| metrics.listenAddress | Listen address for metrics. | 0.0.0.0:9090 |
-| metrics.serviceMonitor.enabled | If enabled, create ServiceMonitor. | false |
-| metrics.serviceMonitor.port | Service port for metrics. | 9090 |
-| metrics.serviceMonitor.additionalLabels | Additional labels for ServiceMonitor. | {} |
-| metrics.serviceMonitor.jobLabel | JobLabel selects the label from the associated Kubernetes service which will be used as the job label for all metrics. | "" |
-| metrics.serviceMonitor.targetLabels | TargetLabels transfers labels from the Kubernetes Service onto the created metrics. | [] |
-| metrics.serviceMonitor.podTargetLabels | PodTargetLabels transfers labels on the Kubernetes Pod onto the created metrics. | [] |
-| metrics.serviceMonitor.sampleLimit | SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. | 0 |
-| metrics.serviceMonitor.targetLimit | TargetLimit defines a limit on the number of scraped targets that will be accepted. | 0 |
-| metrics.serviceMonitor.labelLimit | Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer. | 0 |
-| metrics.serviceMonitor.labelNameLengthLimit | Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer. | 0 |
-| metrics.serviceMonitor.labelValueLengthLimit | Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer. | 0 |
-| metrics.serviceMonitor.attachMetadata | Attaches node metadata to discovered targets. Requires Prometheus v2.37.0 and above. | {} |
-| metrics.serviceMonitor.additionalConfigs | Additional settings for ServiceMonitor. | {} |
-| metrics.serviceMonitor.honorLabels | HonorLabels chooses the metric's labels on collisions with target labels. | false |
-| metrics.serviceMonitor.honorTimestamps | HonorTimestamps controls whether Prometheus respects the timestamps present in scraped data. | null |
-| metrics.serviceMonitor.interval | Interval at which metrics should be scraped. | "" |
-| metrics.serviceMonitor.scrapeTimeout | Timeout after which the scrape is ended. | "" |
-| metrics.serviceMonitor.relabelings | RelabelConfigs to apply to samples before scraping ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig | [] |
-| metrics.serviceMonitor.metricRelabelings | MetricRelabelConfigs to apply to samples after scraping, but before ingestion. ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig | [] |
-| metrics.serviceMonitor.additionalEndpointConfigs | Additional settings for Endpoint. | {} |
-| kubeRBACProxy.enabled | | false |
-| kubeRBACProxy.config | Configuration see [here](https://github.com/brancz/kube-rbac-proxy?tab=readme-ov-file#usage) | {} |
-| kubeRBACProxy.image.repository | | quay.io/brancz/kube-rbac-proxy |
-| kubeRBACProxy.image.tag | | v0.20.2 |
-| kubeRBACProxy.image.pullPolicy | | IfNotPresent |
-| kubeRBACProxy.extraArgs | List of additional cli arguments to configure kube-rbac-prxy for example: --tls-cipher-suites, --log-file, etc. all the possible args can be found here: https://github.com/brancz/kube-rbac-proxy#usage | [] |
-| kubeRBACProxy.port | targetPort of service | 8100 |
-| kubeRBACProxy.containerSecurityContext.readOnlyRootFilesystem | | true |
-| kubeRBACProxy.containerSecurityContext.allowPrivilegeEscalation | | false |
-| kubeRBACProxy.resources | | {} |
-| kubeRBACProxy.volumeMounts | # volumeMounts enables mounting custom volumes in rbac-proxy containers # Useful for TLS certificates and keys | [] |
-| extraManifests | # Extra manifests to deploy. Can be of type dict or list. # If dict, keys are ignored and only values are used. # Items contained within extraObjects can be defined as dict or string and are passed through tpl. | null |
-| clickhouse.enabled | | false |
-| clickhouse.version | Global ClickHouse version and deletion policy | 24.4.1 |
-| clickhouse.deletionPolicy | | WipeOut |
-| clickhouse.deploymentMode | | standalone |
-| clickhouse.storage.storageClassName | | '' |
-| clickhouse.storage.resources.requests.storage | | 1Gi |
-| clickhouse.clusterTopology.clickHouseKeeper.externallyManaged | | false |
-| clickhouse.clusterTopology.clickHouseKeeper.replicas | | 1 |
-| clickhouse.clusterTopology.clickHouseKeeper.storage.storageClassName | | '' |
-| clickhouse.clusterTopology.clickHouseKeeper.storage.resources.requests.storage | | 1Gi |
-| clickhouse.clusterTopology.cluster.name | | cluster |
-| clickhouse.clusterTopology.cluster.shards | | 2 |
-| clickhouse.clusterTopology.cluster.replicas | | 2 |
-| clickhouse.clusterTopology.cluster.storage.storageClassName | | '' |
-| clickhouse.clusterTopology.cluster.storage.resources.requests.storage | | 1Gi |
-| clickhouse.tls.clientCaCertificateRefs | | [] |
-| clickhouse.s3.endpoint | | "" |
-| clickhouse.s3.accessKeyId | | "" |
-| clickhouse.s3.secretAccessKey | | "" |
-| clickhouse.s3.region | | "us-east-1" |
-| clickhouse.s3.skipVerify | | 1 |
-| infra.host | | chart-example.local |
-| infra.hostType | | domain |
-| infra.tls.issuer | | "ca" # ca,letsencrypt,letsencrypt-staging,external |
-| infra.tls.ca.cert | | "" |
-| infra.tls.ca.key | | "" |
-| infra.tls.acme.email | | ops@appscode.com |
-| infra.tls.acme.solver | | Gateway |
-| infra.tls.acme.gatewayName | | backend |
-| infra.tls.certificate.cert | | "" |
-| infra.tls.certificate.key | | "" |
-| infra.tls.jks.keystore | | |
-| infra.tls.jks.truststore | | |
-| infra.tls.jks.password | | "" |
-| infra.dns.provider | | "external" # external,cloudflare,route53,cloudDNS |
-| infra.dns.auth | | {} |
-| infra.gatewayClassName | | "ace" |
-| distro.openshift | | false |
-| distro.ubi | | "" |
+| Parameter | Description | Default |
+|-----------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------|
+| replicaCount | -- Number of prom-label-proxy replicas to deploy | 1 |
+| image.pullPolicy | | Always |
+| image.repository | -- prom-label-proxy image registry | ghcr.io/opnpulse/prom-label-proxy |
+| image.tag | -- prom-label-proxy image tag (immutable tags are recommended). @default -- `.Chart.AppVersion` | "v2026.4.24" |
+| imagePullSecrets | -- registry secret names as an array | [] |
+| nameOverride | -- String to partially override prom-label-proxy.fullname template (will maintain the release name) | "" |
+| namespaceOverride | -- Override the namespace | "" |
+| fullnameOverride | -- String to fully override amazon-eks-pod-identity.fullname template | "" |
+| serviceAccount.create | -- Enable creation of ServiceAccount for nginx pod | true |
+| serviceAccount.name | -- The name of the ServiceAccount to use. @default -- A name is generated using the `prom-label-proxy.fullname` template | '' |
+| serviceAccount.annotations | -- Annotations for service account. Evaluated as a template. | {} |
+| podAnnotations | -- Annotations for prom-label-proxy pods | {} |
+| podLabels | -- Labels for prom-label-proxy pods | {} |
+| podSecurityContext | -- prom-label-proxy pods' Security Context. | {} |
+| securityContext.runAsUser | | 65534 |
+| securityContext.runAsGroup | | 65534 |
+| securityContext.runAsNonRoot | | true |
+| securityContext.readOnlyRootFilesystem | | true |
+| service.port | | 8080 |
+| service.type | -- Service type | ClusterIP |
+| service.annotations | -- Service annotations are passed through helm tpl function. # ref: https://helm.sh/docs/developing_charts/#using-the-tpl-function | {} |
+| livenessProbe.httpGet.path | -- This is the liveness check endpoint | /healthz |
+| livenessProbe.httpGet.port | | http |
+| livenessProbe.httpGet.scheme | | HTTPS |
+| readinessProbe.httpGet.path | -- This is the readiness check endpoint | /healthz |
+| readinessProbe.httpGet.port | | http |
+| readinessProbe.httpGet.scheme | | HTTPS |
+| resources.limits.cpu | | 200m |
+| resources.limits.memory | | 128Mi |
+| resources.requests.cpu | | 100m |
+| resources.requests.memory | | 64Mi |
+| autoscaling.enabled | | false |
+| autoscaling.minReplicas | | 1 |
+| autoscaling.maxReplicas | | 2 |
+| autoscaling.targetCPUUtilizationPercentage | | 80 |
+| affinity | -- Affinity for pod assignment | {} |
+| nodeSelector | -- Node labels for pod assignment. Evaluated as a template. | {} |
+| tolerations | -- Tolerations for pod assignment. Evaluated as a template. | [] |
+| ingress.enabled | | false |
+| ingress.className | | "" |
+| ingress.labels | | {} |
+| ingress.annotations | | {} |
+| ingress.tls | | [] |
+| config.listenAddress | -- listen address | 0.0.0.0:8080 |
+| config.upstream | -- The upstream URL to proxy to | "http://prometheus:9090" |
+| config.label | -- The label to enforce in all proxies PromQL queries. | "tenant_id" |
+| metrics.enabled | If enabled, supply metrics. | false |
+| metrics.listenAddress | Listen address for metrics. | 0.0.0.0:9090 |
+| metrics.serviceMonitor.enabled | If enabled, create ServiceMonitor. | false |
+| metrics.serviceMonitor.port | Service port for metrics. | 9090 |
+| metrics.serviceMonitor.additionalLabels | Additional labels for ServiceMonitor. | {} |
+| metrics.serviceMonitor.jobLabel | JobLabel selects the label from the associated Kubernetes service which will be used as the job label for all metrics. | "" |
+| metrics.serviceMonitor.targetLabels | TargetLabels transfers labels from the Kubernetes Service onto the created metrics. | [] |
+| metrics.serviceMonitor.podTargetLabels | PodTargetLabels transfers labels on the Kubernetes Pod onto the created metrics. | [] |
+| metrics.serviceMonitor.sampleLimit | SampleLimit defines per-scrape limit on number of scraped samples that will be accepted. | 0 |
+| metrics.serviceMonitor.targetLimit | TargetLimit defines a limit on the number of scraped targets that will be accepted. | 0 |
+| metrics.serviceMonitor.labelLimit | Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer. | 0 |
+| metrics.serviceMonitor.labelNameLengthLimit | Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer. | 0 |
+| metrics.serviceMonitor.labelValueLengthLimit | Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer. | 0 |
+| metrics.serviceMonitor.attachMetadata | Attaches node metadata to discovered targets. Requires Prometheus v2.37.0 and above. | {} |
+| metrics.serviceMonitor.additionalConfigs | Additional settings for ServiceMonitor. | {} |
+| metrics.serviceMonitor.honorLabels | HonorLabels chooses the metric's labels on collisions with target labels. | false |
+| metrics.serviceMonitor.honorTimestamps | HonorTimestamps controls whether Prometheus respects the timestamps present in scraped data. | null |
+| metrics.serviceMonitor.interval | Interval at which metrics should be scraped. | "" |
+| metrics.serviceMonitor.scrapeTimeout | Timeout after which the scrape is ended. | "" |
+| metrics.serviceMonitor.relabelings | RelabelConfigs to apply to samples before scraping ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig | [] |
+| metrics.serviceMonitor.metricRelabelings | MetricRelabelConfigs to apply to samples after scraping, but before ingestion. ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api-reference/api.md#relabelconfig | [] |
+| metrics.serviceMonitor.additionalEndpointConfigs | Additional settings for Endpoint. | {} |
+| kubeRBACProxy.enabled | | false |
+| kubeRBACProxy.config | Configuration see [here](https://github.com/brancz/kube-rbac-proxy?tab=readme-ov-file#usage) | {} |
+| kubeRBACProxy.image.repository | | quay.io/brancz/kube-rbac-proxy |
+| kubeRBACProxy.image.tag | | v0.20.2 |
+| kubeRBACProxy.image.pullPolicy | | IfNotPresent |
+| kubeRBACProxy.extraArgs | List of additional cli arguments to configure kube-rbac-prxy for example: --tls-cipher-suites, --log-file, etc. all the possible args can be found here: https://github.com/brancz/kube-rbac-proxy#usage | [] |
+| kubeRBACProxy.port | targetPort of service | 8100 |
+| kubeRBACProxy.containerSecurityContext.readOnlyRootFilesystem | | true |
+| kubeRBACProxy.containerSecurityContext.allowPrivilegeEscalation | | false |
+| kubeRBACProxy.resources | | {} |
+| kubeRBACProxy.volumeMounts | # volumeMounts enables mounting custom volumes in rbac-proxy containers # Useful for TLS certificates and keys | [] |
+| extraManifests | # Extra manifests to deploy. Can be of type dict or list. # If dict, keys are ignored and only values are used. # Items contained within extraObjects can be defined as dict or string and are passed through tpl. | null |
+| infra.host | | chart-example.local |
+| infra.hostType | | domain |
+| infra.tls.issuer | | "ca" # ca,letsencrypt,letsencrypt-staging,external |
+| infra.tls.ca.cert | | "" |
+| infra.tls.ca.key | | "" |
+| infra.tls.acme.email | | ops@appscode.com |
+| infra.tls.acme.solver | | Gateway |
+| infra.tls.acme.gatewayName | | backend |
+| infra.tls.certificate.cert | | "" |
+| infra.tls.certificate.key | | "" |
+| infra.tls.jks.keystore | | "" |
+| infra.tls.jks.truststore | | "" |
+| infra.tls.jks.password | | "" |
+| infra.dns.provider | | "external" # external,cloudflare,route53,cloudDNS |
+| infra.dns.auth | | {} |
+| infra.tenantSpreadPolicy | | "" |
+| platform.baseURL | | "" |
+| distro.openshift | | false |
+| distro.ubi | | "" |
Specify each parameter using the `--set key=value[,key=value]` argument to `helm upgrade -i`. For example:
```bash
-$ helm upgrade -i prom-label-proxy appscode/prom-label-proxy -n monitoring --create-namespace --version=0.17.1 --set replicaCount=1
+$ helm upgrade -i prom-label-proxy appscode/prom-label-proxy -n monitoring --create-namespace --version=v2026.5.22 --set replicaCount=1
```
Alternatively, a YAML file that specifies the values for the parameters can be provided while
installing the chart. For example:
```bash
-$ helm upgrade -i prom-label-proxy appscode/prom-label-proxy -n monitoring --create-namespace --version=0.17.1 --values values.yaml
+$ helm upgrade -i prom-label-proxy appscode/prom-label-proxy -n monitoring --create-namespace --version=v2026.5.22 --values values.yaml
```
diff --git a/charts/prom-label-proxy/crds/monitoring.k8s.appscode.com_tenants.yaml b/charts/prom-label-proxy/crds/monitoring.k8s.appscode.com_tenants.yaml
new file mode 100644
index 00000000..1a53c138
--- /dev/null
+++ b/charts/prom-label-proxy/crds/monitoring.k8s.appscode.com_tenants.yaml
@@ -0,0 +1,168 @@
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.17.2
+ name: tenants.monitoring.k8s.appscode.com
+spec:
+ group: monitoring.k8s.appscode.com
+ names:
+ kind: Tenant
+ listKind: TenantList
+ plural: tenants
+ singular: tenant
+ scope: Cluster
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ type: string
+ kind:
+ type: string
+ metadata:
+ type: object
+ spec:
+ properties:
+ enableTenant:
+ type: boolean
+ externalLabels:
+ additionalProperties:
+ type: string
+ type: object
+ ingestConfig:
+ properties:
+ dedicated:
+ type: boolean
+ hashringConfig:
+ properties:
+ externalLabels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ replicas:
+ format: int32
+ type: integer
+ storageSize:
+ type: string
+ tenancyConfig:
+ properties:
+ defaultTenantID:
+ default: default-tenant
+ type: string
+ splitTenantLabelName:
+ type: string
+ tenantCertificateField:
+ enum:
+ - organization
+ - organizationalUnit
+ - commonName
+ type: string
+ tenantHeader:
+ default: THANOS-TENANT
+ type: string
+ tenantLabelName:
+ default: tenant_id
+ type: string
+ tenantMatcherType:
+ default: exact
+ enum:
+ - exact
+ - glob
+ type: string
+ tenants:
+ items:
+ type: string
+ type: array
+ type: object
+ tsdbConfig:
+ properties:
+ retention:
+ default: 24h
+ type: string
+ required:
+ - retention
+ type: object
+ required:
+ - storageSize
+ type: object
+ type: object
+ logs:
+ properties:
+ retention:
+ pattern: ^(-?(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)|([0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\.[0-9]+)?(Z|[+-][0-9]{2}:[0-9]{2})))$
+ type: string
+ targetEndpoint:
+ type: string
+ required:
+ - retention
+ - targetEndpoint
+ type: object
+ metrics:
+ properties:
+ retention:
+ properties:
+ fiveMinutes:
+ pattern: ^(-?(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)|([0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\.[0-9]+)?(Z|[+-][0-9]{2}:[0-9]{2})))$
+ type: string
+ oneHour:
+ pattern: ^(-?(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)|([0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\.[0-9]+)?(Z|[+-][0-9]{2}:[0-9]{2})))$
+ type: string
+ raw:
+ pattern: ^(-?(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)|([0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\.[0-9]+)?(Z|[+-][0-9]{2}:[0-9]{2})))$
+ type: string
+ type: object
+ targetEndpoint:
+ type: string
+ required:
+ - retention
+ - targetEndpoint
+ type: object
+ owner:
+ type: string
+ revoked:
+ type: boolean
+ telemetryStackRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ tenantID:
+ type: string
+ tenantName:
+ type: string
+ traces:
+ properties:
+ retention:
+ pattern: ^(-?(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)|([0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\.[0-9]+)?(Z|[+-][0-9]{2}:[0-9]{2})))$
+ type: string
+ targetEndpoint:
+ type: string
+ required:
+ - retention
+ - targetEndpoint
+ type: object
+ required:
+ - telemetryStackRef
+ - tenantID
+ type: object
+ status:
+ properties:
+ boundIngester:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ type: object
+ served: true
+ storage: true
+ subresources:
+ status: {}
diff --git a/charts/prom-label-proxy/templates/clickhouse/clickhouse.yaml b/charts/prom-label-proxy/templates/clickhouse/clickhouse.yaml
deleted file mode 100644
index 97a31c4d..00000000
--- a/charts/prom-label-proxy/templates/clickhouse/clickhouse.yaml
+++ /dev/null
@@ -1,61 +0,0 @@
-{{ if .Values.clickhouse.enabled }}
-apiVersion: kubedb.com/v1alpha2
-kind: ClickHouse
-metadata:
- name: {{ include "prom-label-proxy.fullname" . }}-clickhouse
- namespace: {{ template "prom-label-proxy.namespace" . }}
-spec:
- version: {{ .Values.clickhouse.version | quote }}
- deletionPolicy: {{ .Values.clickhouse.deletionPolicy | quote }}
-
-{{- if eq .Values.clickhouse.deploymentMode "cluster" }}
- clusterTopology:
- clickHouseKeeper:
- externallyManaged: {{ .Values.clickhouse.clusterTopology.clickHouseKeeper.externallyManaged }}
- spec:
- replicas: {{ .Values.clickhouse.clusterTopology.clickHouseKeeper.replicas }}
- storage:
- {{- if .Values.clickhouse.clusterTopology.clickHouseKeeper.storage.storageClassName }}
- storageClassName: {{ .Values.clickhouse.clusterTopology.clickHouseKeeper.storage.storageClassName | quote }}
- {{- end }}
- accessModes:
- {{- toYaml .Values.clickhouse.clusterTopology.clickHouseKeeper.storage.accessModes | nindent 12 }}
- resources:
- {{- toYaml .Values.clickhouse.clusterTopology.clickHouseKeeper.storage.resources | nindent 12 }}
- cluster:
- - name: {{ .Values.clickhouse.clusterTopology.cluster.name | quote }}
- shards: {{ .Values.clickhouse.clusterTopology.cluster.shards }}
- replicas: {{ .Values.clickhouse.clusterTopology.cluster.replicas }}
- podTemplate:
- {{- toYaml .Values.clickhouse.clusterTopology.cluster.podTemplate | nindent 10 }}
- storage:
- {{- if .Values.clickhouse.clusterTopology.cluster.storage.storageClassName }}
- storageClassName: {{ .Values.clickhouse.clusterTopology.cluster.storage.storageClassName | quote }}
- {{- end }}
- accessModes:
- {{- toYaml .Values.clickhouse.clusterTopology.cluster.storage.accessModes | nindent 12 }}
- resources:
- {{- toYaml .Values.clickhouse.clusterTopology.cluster.storage.resources | nindent 12 }}
-{{- else }}
- {{- if .Values.clickhouse.tls.clientCaCertificateRefs }}
- tls:
- clientCaCertificateRefs:
- {{- range .Values.clickhouse.tls.clientCaCertificateRefs }}
- - name: {{ .name | quote }}
- key: {{ .key | quote }}
- {{- end }}
- {{- end }}
- {{- if .Values.clickhouse.s3.endpoint }}
- configuration:
- secretName: {{ include "prom-label-proxy.fullname" . }}-clickhouse-storage-config
- {{- end }}
- storage:
- {{- if .Values.clickhouse.storage.storageClassName }}
- storageClassName: {{ .Values.clickhouse.storage.storageClassName | quote }}
- {{- end }}
- accessModes:
- {{- toYaml .Values.clickhouse.storage.accessModes | nindent 6 }}
- resources:
- {{- toYaml .Values.clickhouse.storage.resources | nindent 6 }}
-{{- end }}
-{{- end }}
\ No newline at end of file
diff --git a/charts/prom-label-proxy/templates/clickhouse/storage-config-secret.yaml b/charts/prom-label-proxy/templates/clickhouse/storage-config-secret.yaml
deleted file mode 100644
index 695c1079..00000000
--- a/charts/prom-label-proxy/templates/clickhouse/storage-config-secret.yaml
+++ /dev/null
@@ -1,42 +0,0 @@
-{{- if and .Values.clickhouse.enabled .Values.clickhouse.s3.endpoint }}
-apiVersion: v1
-kind: Secret
-metadata:
- name: {{ include "prom-label-proxy.fullname" . }}-clickhouse-storage-config
- namespace: {{ template "prom-label-proxy.namespace" . }}
- labels:
- {{- include "prom-label-proxy.labels" . | nindent 4 }}
-type: Opaque
-stringData:
- storage.xml: |
-
-
-
-
- /var/lib/clickhouse/hot/
-
-
- s3
- {{ .Values.clickhouse.s3.endpoint }}
- {{ .Values.clickhouse.s3.accessKeyId }}
- {{ .Values.clickhouse.s3.secretAccessKey }}
- {{ .Values.clickhouse.s3.region }}
- /var/lib/clickhouse/disks/s3_disk/
- {{ .Values.clickhouse.s3.skipVerify }}
-
-
-
-
-
-
- local
-
-
- s3
-
-
-
-
-
-
-{{- end }}
diff --git a/charts/prom-label-proxy/templates/deployment.yaml b/charts/prom-label-proxy/templates/deployment.yaml
index 19bb46ae..33021002 100644
--- a/charts/prom-label-proxy/templates/deployment.yaml
+++ b/charts/prom-label-proxy/templates/deployment.yaml
@@ -55,7 +55,7 @@ spec:
imagePullPolicy: {{ .Values.image.pullPolicy }}
args:
- "--insecure-listen-address={{ tpl .Values.config.listenAddress $ }}"
- - "--upstream={{ tpl .Values.config.upstream $ }}"
+ - --upstream=http://thanos-query-telemetry-stack.monitoring.svc:9090/
- "--label={{ tpl .Values.config.label $ }}"
{{- if .Values.metrics.enabled }}
- "--internal-listen-address={{ tpl .Values.metrics.listenAddress $ }}"
@@ -64,7 +64,6 @@ spec:
- --tls-key-file=/etc/proxy-tls/tls.key
- --tls-ca-file=/etc/proxy-tls/ca.crt
- --require-client-cert=true
- - --cert-auth-ou=EnableTenant=true
{{- with .Values.config.extraArgs }}
{{- tpl (typeIs "string" . | ternary . (. | toYaml)) $ | nindent 12 }}
{{- end }}
@@ -73,20 +72,22 @@ spec:
valueFrom:
secretKeyRef:
key: username
- name: ch-auth
+ name: telemetry-stack-clickhouse-auth
+ optional: true
- name: CLICKHOUSE_PASSWORD
valueFrom:
secretKeyRef:
key: password
- name: ch-auth
+ name: telemetry-stack-clickhouse-auth
+ optional: true
- name: LOGS_URL
- value: http://ch.monitoring.svc:8123
+ value: http://telemetry-stack-clickhouse.monitoring.svc:8123
- name: TRACES_URL
- value: http://ch.monitoring.svc:8123
+ value: http://telemetry-stack-clickhouse.monitoring.svc:8123
- name: METRICS_URL
- value: http://thanos-receive-router-ts-1.monitoring.svc:19291
+ value: http://thanos-receive-router-telemetry-stack.monitoring.svc:19291
- name: PLATFORM_APISERVER_DOMAIN
- value: https://10.2.0.104/
+ value: {{ .Values.platform.baseURL }}
ports:
- name: http
containerPort: {{ $configListenPort }}
@@ -118,30 +119,6 @@ spec:
{{- if .Values.kubeRBACProxy.config }}
- --config-file=/etc/kube-rbac-proxy-config/config-file.yaml
{{- end }}
- - --tls-cert-file=/etc/proxy-tls/tls.crt
- - --tls-key-file=/etc/proxy-tls/tls.key
- - --tls-ca-file=/etc/proxy-tls/ca.crt
- - --require-client-cert=true
- - --cert-auth-ou=EnableTenant=true
- env:
- - name: CLICKHOUSE_USER
- valueFrom:
- secretKeyRef:
- key: username
- name: ch-auth
- - name: CLICKHOUSE_PASSWORD
- valueFrom:
- secretKeyRef:
- key: password
- name: ch-auth
- - name: LOGS_URL
- value: http://ch.monitoring.svc:8123
- - name: TRACES_URL
- value: http://ch.monitoring.svc:8123
- - name: PLATFORM_APISERVER_DOMAIN
- value: https://20.219.233.233/
- - name: THANOS_RECEIVER_URL
- value: http://thanos-receive-router-ts-1.monitoring.svc:19291
volumeMounts:
- name: kube-rbac-proxy-config
mountPath: /etc/kube-rbac-proxy-config
diff --git a/charts/prom-label-proxy/templates/gateway-tls/certificate.yaml b/charts/prom-label-proxy/templates/gateway-tls/certificate.yaml
index f18f05e9..6d200a01 100644
--- a/charts/prom-label-proxy/templates/gateway-tls/certificate.yaml
+++ b/charts/prom-label-proxy/templates/gateway-tls/certificate.yaml
@@ -31,6 +31,7 @@ spec:
- key agreement
- digital signature
- server auth
+ - client auth
{{- if .Values.infra.tls.jks.password }}
keystores:
jks:
diff --git a/charts/prom-label-proxy/templates/gw.yaml b/charts/prom-label-proxy/templates/gw.yaml
index e5db56dd..d5ea1a95 100644
--- a/charts/prom-label-proxy/templates/gw.yaml
+++ b/charts/prom-label-proxy/templates/gw.yaml
@@ -4,7 +4,7 @@ metadata:
name: {{ include "prom-label-proxy.name" . }}-gw
namespace: {{ template "prom-label-proxy.namespace" . }}
spec:
- gatewayClassName: {{ .Values.infra.gatewayClassName }}
+ gatewayClassName: ace
listeners:
- name: https
port: 443
@@ -15,6 +15,11 @@ spec:
- kind: Secret
name: {{ include "prom-label-proxy.name" . }}-gw-cert
namespace: {{ template "prom-label-proxy.namespace" . }}
+ - name: mtls
+ port: 10001
+ protocol: TLS
+ tls:
+ mode: Passthrough
---
@@ -36,9 +41,6 @@ spec:
- path:
type: PathPrefix
value: /telemetry
- - path:
- type: PathPrefix
- value: /api/v1
backendRefs:
- name: {{ include "prom-label-proxy.name" . }}
port: 8080
@@ -60,4 +62,26 @@ spec:
- group: ""
kind: Secret
name: {{ include "prom-label-proxy.name" . }}-gw-cert
- hostname: {{ include "prom-label-proxy.name" . }}.{{ template "prom-label-proxy.namespace" . }}.svc.cluster.local
\ No newline at end of file
+ hostname: {{ include "prom-label-proxy.name" . }}.{{ template "prom-label-proxy.namespace" . }}.svc.cluster.local
+
+---
+
+apiVersion: gateway.networking.k8s.io/v1alpha2
+kind: TLSRoute
+metadata:
+ name: prom-label-proxy-mtls-route
+ namespace: monitoring
+spec:
+ parentRefs:
+ - name: prom-label-proxy-gw
+ namespace: monitoring
+ sectionName: mtls
+ hostnames:
+ - {{ include "prom-label-proxy.name" . }}.{{ template "prom-label-proxy.namespace" . }}.svc.cluster.local
+ {{- if eq .Values.infra.hostType "domain" }}
+ - {{ .Values.infra.host }}
+ {{- end }}
+ rules:
+ - backendRefs:
+ - name: {{ include "prom-label-proxy.fullname" . }}-passthrough
+ port: 8080
diff --git a/charts/prom-label-proxy/templates/service.yaml b/charts/prom-label-proxy/templates/service.yaml
index d87291ab..09c8f6a6 100644
--- a/charts/prom-label-proxy/templates/service.yaml
+++ b/charts/prom-label-proxy/templates/service.yaml
@@ -31,3 +31,26 @@ spec:
{{- end }}
selector:
{{- include "prom-label-proxy.selectorLabels" . | nindent 4 }}
+
+---
+
+apiVersion: v1
+kind: Service
+metadata:
+ name: {{ include "prom-label-proxy.fullname" . }}-passthrough
+ namespace: {{ template "prom-label-proxy.namespace" . }}
+ labels:
+ {{- include "prom-label-proxy.labels" . | nindent 4 }}
+ {{- with .Values.service.annotations }}
+ annotations:
+ {{- tpl (toYaml .) $ | nindent 4 }}
+ {{- end }}
+spec:
+ selector:
+ {{- include "prom-label-proxy.selectorLabels" . | nindent 4 }}
+ ports:
+ - name: tls
+ port: 8080
+ protocol: TCP
+ targetPort: http
+ type: ClusterIP
\ No newline at end of file
diff --git a/charts/prom-label-proxy/templates/tenant-permission.yaml b/charts/prom-label-proxy/templates/tenant-permission.yaml
new file mode 100644
index 00000000..00429917
--- /dev/null
+++ b/charts/prom-label-proxy/templates/tenant-permission.yaml
@@ -0,0 +1,21 @@
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ name: prom-label-proxy-tenant-reader
+rules:
+ - apiGroups: ["monitoring.k8s.appscode.com"]
+ resources: ["tenants"]
+ verbs: ["get", "list", "watch"]
+---
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ name: prom-label-proxy-tenant-reader
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: prom-label-proxy-tenant-reader
+subjects:
+ - kind: ServiceAccount
+ name: {{ template "prom-label-proxy.serviceAccountName" . }}
+ namespace: {{ template "prom-label-proxy.namespace" . }}
diff --git a/charts/prom-label-proxy/values.yaml b/charts/prom-label-proxy/values.yaml
index 4d6494e5..8ce7cb46 100644
--- a/charts/prom-label-proxy/values.yaml
+++ b/charts/prom-label-proxy/values.yaml
@@ -2,12 +2,12 @@
replicaCount: 1
image:
- pullPolicy: IfNotPresent
+ pullPolicy: Always
# -- prom-label-proxy image registry
- repository: quay.io/prometheuscommunity/prom-label-proxy
+ repository: ghcr.io/opnpulse/prom-label-proxy
# -- prom-label-proxy image tag (immutable tags are recommended).
# @default -- `.Chart.AppVersion`
- tag: ""
+ tag: "v2026.4.24"
# -- registry secret names as an array
imagePullSecrets: []
@@ -59,12 +59,14 @@ livenessProbe:
# -- This is the liveness check endpoint
path: /healthz
port: http
+ scheme: HTTPS
readinessProbe:
httpGet:
# -- This is the readiness check endpoint
path: /healthz
port: http
+ scheme: HTTPS
resources:
# -- The resources limits for the prom-label-proxy container
@@ -294,72 +296,6 @@ extraManifests: null
# plaintext: Zm9vYmFy
# templated: '{{ print "foobar" | upper | b64enc }}'
-clickhouse:
- enabled: false
- # Global ClickHouse version and deletion policy
- version: 24.4.1
- deletionPolicy: WipeOut
- deploymentMode: standalone
- # Standalone deployment storage settings
- storage:
- storageClassName: ''
- accessModes: [ReadWriteOnce]
- resources:
- requests:
- storage: 1Gi
- # Cluster deployment settings
- clusterTopology:
- clickHouseKeeper:
- externallyManaged: false
- replicas: 1
- storage:
- storageClassName: ''
- accessModes: [ReadWriteOnce]
- resources:
- requests:
- storage: 1Gi
- # Note: The spec.cluster section is an array with a maximum of one item.
- cluster:
- name: cluster
- shards: 2
- replicas: 2
- podTemplate:
- spec:
- containers:
- - name: clickhouse
- resources:
- limits:
- memory: 4Gi
- requests:
- cpu: 500m
- memory: 2Gi
- initContainers:
- - name: clickhouse-init
- resources:
- limits:
- memory: 1Gi
- requests:
- cpu: 500m
- memory: 1Gi
- storage:
- storageClassName: ''
- accessModes: [ReadWriteOnce]
- resources:
- requests:
- storage: 1Gi
- # TLS configuration for ClickHouse client CA certificate
- tls:
- clientCaCertificateRefs: []
- # - name: "tls-ssl-minio"
- # key: public.crt
- # S3-compatible storage configuration for ClickHouse tiered storage
- s3:
- endpoint: ""
- accessKeyId: ""
- secretAccessKey: ""
- region: "us-east-1"
- skipVerify: 1
-
infra:
host: chart-example.local
hostType: domain
@@ -376,15 +312,17 @@ infra:
cert: ""
key: ""
jks:
- keystore:
- truststore:
+ keystore: ""
+ truststore: ""
password: ""
dns:
provider: "external" # external,cloudflare,route53,cloudDNS
auth: {}
- gatewayClassName: "ace"
+ tenantSpreadPolicy: ""
+
+platform:
+ baseURL: ""
distro:
openshift: false
ubi: ""
-
diff --git a/charts/tenant-operator/Chart.yaml b/charts/tenant-operator/Chart.yaml
index 5dc01037..7996c79f 100755
--- a/charts/tenant-operator/Chart.yaml
+++ b/charts/tenant-operator/Chart.yaml
@@ -2,8 +2,8 @@ apiVersion: v2
name: tenant-operator
description: A Helm chart for Tenant Operator
type: application
-version: v2026.4.30
-appVersion: v0.1.0
+version: v2026.5.22
+appVersion: v0.0.1
home: https://github.com/opnpluse/tenant-operator
icon: https://cdn.appscode.com/images/products/kubedb/kubedb-icon.png
sources:
diff --git a/charts/tenant-operator/README.md b/charts/tenant-operator/README.md
index dd9cd1d6..ba97226c 100644
--- a/charts/tenant-operator/README.md
+++ b/charts/tenant-operator/README.md
@@ -7,8 +7,8 @@
```bash
$ helm repo add appscode https://charts.appscode.com/stable/
$ helm repo update
-$ helm search repo appscode/tenant-operator --version=v2026.4.30
-$ helm upgrade -i tenant-operator appscode/tenant-operator -n kubeops --create-namespace --version=v2026.4.30
+$ helm search repo appscode/tenant-operator --version=v2026.5.22
+$ helm upgrade -i tenant-operator appscode/tenant-operator -n kubeops --create-namespace --version=v2026.5.22
```
## Introduction
@@ -24,7 +24,7 @@ This chart deploys a Rancher aware proxy of ACE api on a [Kubernetes](http://kub
To install/upgrade the chart with the release name `tenant-operator`:
```bash
-$ helm upgrade -i tenant-operator appscode/tenant-operator -n kubeops --create-namespace --version=v2026.4.30
+$ helm upgrade -i tenant-operator appscode/tenant-operator -n kubeops --create-namespace --version=v2026.5.22
```
The command deploys a Rancher aware proxy of ACE api on the Kubernetes cluster in the default configuration. The [configuration](#configuration) section lists the parameters that can be configured during installation.
@@ -51,7 +51,7 @@ The following table lists the configurable parameters of the `tenant-operator` c
| fullnameOverride | Overrides fullname template | "" |
| replicaCount | Number of UI Server replicas to create (only 1 is supported) | 1 |
| registryFQDN | Docker registry fqdn used to pull KubeDB related images Set this to use docker registry hosted at ${registryFQDN}/${registry}/${image} | ghcr.io |
-| image.registry | Docker registry used to pull operator image | appscode |
+| image.registry | Docker registry used to pull operator image | opnpulse |
| image.repository | Name of operator container image | tenant-operator |
| image.tag | Operator container image tag | "" |
| image.securityContext | Security options this container should run with | {"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"readOnlyRootFilesystem":true,"runAsNonRoot":true,"runAsUser":65534,"seccompProfile":{"type":"RuntimeDefault"}} |
@@ -86,12 +86,12 @@ The following table lists the configurable parameters of the `tenant-operator` c
Specify each parameter using the `--set key=value[,key=value]` argument to `helm upgrade -i`. For example:
```bash
-$ helm upgrade -i tenant-operator appscode/tenant-operator -n kubeops --create-namespace --version=v2026.4.30 --set replicaCount=1
+$ helm upgrade -i tenant-operator appscode/tenant-operator -n kubeops --create-namespace --version=v2026.5.22 --set replicaCount=1
```
Alternatively, a YAML file that specifies the values for the parameters can be provided while
installing the chart. For example:
```bash
-$ helm upgrade -i tenant-operator appscode/tenant-operator -n kubeops --create-namespace --version=v2026.4.30 --values values.yaml
+$ helm upgrade -i tenant-operator appscode/tenant-operator -n kubeops --create-namespace --version=v2026.5.22 --values values.yaml
```
diff --git a/charts/tenant-operator/crds/monitoring.k8s.appscode.com_telemetrystacks.yaml b/charts/tenant-operator/crds/monitoring.k8s.appscode.com_telemetrystacks.yaml
index 259aa782..775c0d7c 100644
--- a/charts/tenant-operator/crds/monitoring.k8s.appscode.com_telemetrystacks.yaml
+++ b/charts/tenant-operator/crds/monitoring.k8s.appscode.com_telemetrystacks.yaml
@@ -30,259 +30,6618 @@ spec:
properties:
clickhouse:
properties:
- databaseRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- kind:
- type: string
- name:
- type: string
- namespace:
- type: string
- resourceVersion:
- type: string
- uid:
- type: string
- type: object
- x-kubernetes-map-type: atomic
- required:
- - databaseRef
- type: object
- required:
- - clickhouse
- type: object
- metrics:
- properties:
- thanos:
- properties:
- compact:
+ clusterTopology:
properties:
- additionalArgs:
- items:
- type: string
- type: array
- additionalContainers:
- items:
- properties:
- args:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- command:
- items:
+ clickHouseKeeper:
+ properties:
+ externallyManaged:
+ type: boolean
+ replicas:
+ format: int32
+ type: integer
+ storage:
+ properties:
+ accessModes:
+ items:
+ type: string
+ type: array
+ resources:
+ properties:
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ storageClassName:
type: string
- type: array
- x-kubernetes-list-type: atomic
- env:
- items:
+ type: object
+ required:
+ - storage
+ type: object
+ cluster:
+ properties:
+ name:
+ type: string
+ podTemplate:
+ properties:
+ metadata:
properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
name:
type: string
- value:
+ namespace:
type: string
- valueFrom:
- properties:
- configMapKeyRef:
- properties:
- key:
- type: string
- name:
- default: ""
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- x-kubernetes-map-type: atomic
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- x-kubernetes-map-type: atomic
- resourceFieldRef:
- properties:
- containerName:
- type: string
- divisor:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- resource:
- type: string
- required:
- - resource
- type: object
- x-kubernetes-map-type: atomic
- secretKeyRef:
- properties:
- key:
- type: string
- name:
- default: ""
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- x-kubernetes-map-type: atomic
- type: object
- required:
- - name
type: object
- type: array
- x-kubernetes-list-map-keys:
- - name
- x-kubernetes-list-type: map
- envFrom:
- items:
+ spec:
properties:
- configMapRef:
- properties:
- name:
- default: ""
- type: string
- optional:
- type: boolean
- type: object
- x-kubernetes-map-type: atomic
- prefix:
- type: string
- secretRef:
+ activeDeadlineSeconds:
+ format: int64
+ type: integer
+ affinity:
properties:
- name:
- default: ""
- type: string
- optional:
- type: boolean
- type: object
- x-kubernetes-map-type: atomic
- type: object
- type: array
- x-kubernetes-list-type: atomic
- image:
- type: string
- imagePullPolicy:
- type: string
- lifecycle:
- properties:
- postStart:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
+ nodeAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ preference:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchFields:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ x-kubernetes-map-type: atomic
+ weight:
+ format: int32
+ type: integer
+ required:
+ - preference
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
properties:
- name:
- type: string
- value:
- type: string
+ nodeSelectorTerms:
+ items:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchFields:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ x-kubernetes-map-type: atomic
+ type: array
+ x-kubernetes-list-type: atomic
required:
- - name
- - value
+ - nodeSelectorTerms
type: object
- type: array
- x-kubernetes-list-type: atomic
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- sleep:
- properties:
- seconds:
- format: int64
- type: integer
- required:
- - seconds
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- preStop:
- properties:
- exec:
+ x-kubernetes-map-type: atomic
+ type: object
+ podAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ podAffinityTerm:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ weight:
+ format: int32
+ type: integer
+ required:
+ - podAffinityTerm
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ podAntiAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ podAffinityTerm:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ weight:
+ format: int32
+ type: integer
+ required:
+ - podAffinityTerm
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ type: object
+ automountServiceAccountToken:
+ type: boolean
+ containers:
+ items:
properties:
+ args:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
command:
items:
type: string
type: array
x-kubernetes-list-type: atomic
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
+ env:
items:
properties:
name:
type: string
value:
type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
required:
- name
- - value
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ envFrom:
+ items:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ prefix:
+ type: string
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
type: object
type: array
x-kubernetes-list-type: atomic
- path:
+ image:
type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
+ imagePullPolicy:
type: string
- required:
- - port
- type: object
- sleep:
- properties:
- seconds:
- format: int64
- type: integer
- required:
+ lifecycle:
+ properties:
+ postStart:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ preStop:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ stopSignal:
+ type: string
+ type: object
+ livenessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ name:
+ type: string
+ ports:
+ items:
+ properties:
+ containerPort:
+ format: int32
+ type: integer
+ hostIP:
+ type: string
+ hostPort:
+ format: int32
+ type: integer
+ name:
+ type: string
+ protocol:
+ default: TCP
+ type: string
+ required:
+ - containerPort
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - containerPort
+ - protocol
+ x-kubernetes-list-type: map
+ readinessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ resizePolicy:
+ items:
+ properties:
+ resourceName:
+ type: string
+ restartPolicy:
+ type: string
+ required:
+ - resourceName
+ - restartPolicy
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ resources:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ restartPolicy:
+ type: string
+ restartPolicyRules:
+ items:
+ properties:
+ action:
+ type: string
+ exitCodes:
+ properties:
+ operator:
+ type: string
+ values:
+ items:
+ format: int32
+ type: integer
+ type: array
+ x-kubernetes-list-type: set
+ required:
+ - operator
+ type: object
+ required:
+ - action
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ securityContext:
+ properties:
+ allowPrivilegeEscalation:
+ type: boolean
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ capabilities:
+ properties:
+ add:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ drop:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ privileged:
+ type: boolean
+ procMount:
+ type: string
+ readOnlyRootFilesystem:
+ type: boolean
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ startupProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ stdin:
+ type: boolean
+ stdinOnce:
+ type: boolean
+ terminationMessagePath:
+ type: string
+ terminationMessagePolicy:
+ type: string
+ tty:
+ type: boolean
+ volumeDevices:
+ items:
+ properties:
+ devicePath:
+ type: string
+ name:
+ type: string
+ required:
+ - devicePath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - devicePath
+ x-kubernetes-list-type: map
+ volumeMounts:
+ items:
+ properties:
+ mountPath:
+ type: string
+ mountPropagation:
+ type: string
+ name:
+ type: string
+ readOnly:
+ type: boolean
+ recursiveReadOnly:
+ type: string
+ subPath:
+ type: string
+ subPathExpr:
+ type: string
+ required:
+ - mountPath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - mountPath
+ x-kubernetes-list-type: map
+ workingDir:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ dnsConfig:
+ properties:
+ nameservers:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ options:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ searches:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ dnsPolicy:
+ type: string
+ enableServiceLinks:
+ type: boolean
+ ephemeralContainers:
+ items:
+ properties:
+ args:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ envFrom:
+ items:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ prefix:
+ type: string
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ image:
+ type: string
+ imagePullPolicy:
+ type: string
+ lifecycle:
+ properties:
+ postStart:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ preStop:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ stopSignal:
+ type: string
+ type: object
+ livenessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ name:
+ type: string
+ ports:
+ items:
+ properties:
+ containerPort:
+ format: int32
+ type: integer
+ hostIP:
+ type: string
+ hostPort:
+ format: int32
+ type: integer
+ name:
+ type: string
+ protocol:
+ default: TCP
+ type: string
+ required:
+ - containerPort
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - containerPort
+ - protocol
+ x-kubernetes-list-type: map
+ readinessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ resizePolicy:
+ items:
+ properties:
+ resourceName:
+ type: string
+ restartPolicy:
+ type: string
+ required:
+ - resourceName
+ - restartPolicy
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ resources:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ restartPolicy:
+ type: string
+ restartPolicyRules:
+ items:
+ properties:
+ action:
+ type: string
+ exitCodes:
+ properties:
+ operator:
+ type: string
+ values:
+ items:
+ format: int32
+ type: integer
+ type: array
+ x-kubernetes-list-type: set
+ required:
+ - operator
+ type: object
+ required:
+ - action
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ securityContext:
+ properties:
+ allowPrivilegeEscalation:
+ type: boolean
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ capabilities:
+ properties:
+ add:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ drop:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ privileged:
+ type: boolean
+ procMount:
+ type: string
+ readOnlyRootFilesystem:
+ type: boolean
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ startupProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ stdin:
+ type: boolean
+ stdinOnce:
+ type: boolean
+ targetContainerName:
+ type: string
+ terminationMessagePath:
+ type: string
+ terminationMessagePolicy:
+ type: string
+ tty:
+ type: boolean
+ volumeDevices:
+ items:
+ properties:
+ devicePath:
+ type: string
+ name:
+ type: string
+ required:
+ - devicePath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - devicePath
+ x-kubernetes-list-type: map
+ volumeMounts:
+ items:
+ properties:
+ mountPath:
+ type: string
+ mountPropagation:
+ type: string
+ name:
+ type: string
+ readOnly:
+ type: boolean
+ recursiveReadOnly:
+ type: string
+ subPath:
+ type: string
+ subPathExpr:
+ type: string
+ required:
+ - mountPath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - mountPath
+ x-kubernetes-list-type: map
+ workingDir:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ hostAliases:
+ items:
+ properties:
+ hostnames:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ ip:
+ type: string
+ required:
+ - ip
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - ip
+ x-kubernetes-list-type: map
+ hostIPC:
+ type: boolean
+ hostNetwork:
+ type: boolean
+ hostPID:
+ type: boolean
+ hostUsers:
+ type: boolean
+ hostname:
+ type: string
+ hostnameOverride:
+ type: string
+ imagePullSecrets:
+ items:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ initContainers:
+ items:
+ properties:
+ args:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ envFrom:
+ items:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ prefix:
+ type: string
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ image:
+ type: string
+ imagePullPolicy:
+ type: string
+ lifecycle:
+ properties:
+ postStart:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ preStop:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ stopSignal:
+ type: string
+ type: object
+ livenessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ name:
+ type: string
+ ports:
+ items:
+ properties:
+ containerPort:
+ format: int32
+ type: integer
+ hostIP:
+ type: string
+ hostPort:
+ format: int32
+ type: integer
+ name:
+ type: string
+ protocol:
+ default: TCP
+ type: string
+ required:
+ - containerPort
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - containerPort
+ - protocol
+ x-kubernetes-list-type: map
+ readinessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ resizePolicy:
+ items:
+ properties:
+ resourceName:
+ type: string
+ restartPolicy:
+ type: string
+ required:
+ - resourceName
+ - restartPolicy
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ resources:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ restartPolicy:
+ type: string
+ restartPolicyRules:
+ items:
+ properties:
+ action:
+ type: string
+ exitCodes:
+ properties:
+ operator:
+ type: string
+ values:
+ items:
+ format: int32
+ type: integer
+ type: array
+ x-kubernetes-list-type: set
+ required:
+ - operator
+ type: object
+ required:
+ - action
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ securityContext:
+ properties:
+ allowPrivilegeEscalation:
+ type: boolean
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ capabilities:
+ properties:
+ add:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ drop:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ privileged:
+ type: boolean
+ procMount:
+ type: string
+ readOnlyRootFilesystem:
+ type: boolean
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ startupProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ stdin:
+ type: boolean
+ stdinOnce:
+ type: boolean
+ terminationMessagePath:
+ type: string
+ terminationMessagePolicy:
+ type: string
+ tty:
+ type: boolean
+ volumeDevices:
+ items:
+ properties:
+ devicePath:
+ type: string
+ name:
+ type: string
+ required:
+ - devicePath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - devicePath
+ x-kubernetes-list-type: map
+ volumeMounts:
+ items:
+ properties:
+ mountPath:
+ type: string
+ mountPropagation:
+ type: string
+ name:
+ type: string
+ readOnly:
+ type: boolean
+ recursiveReadOnly:
+ type: string
+ subPath:
+ type: string
+ subPathExpr:
+ type: string
+ required:
+ - mountPath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - mountPath
+ x-kubernetes-list-type: map
+ workingDir:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ nodeName:
+ type: string
+ nodeSelector:
+ additionalProperties:
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ os:
+ properties:
+ name:
+ type: string
+ required:
+ - name
+ type: object
+ overhead:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ preemptionPolicy:
+ type: string
+ priority:
+ format: int32
+ type: integer
+ priorityClassName:
+ type: string
+ readinessGates:
+ items:
+ properties:
+ conditionType:
+ type: string
+ required:
+ - conditionType
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ resourceClaims:
+ items:
+ properties:
+ name:
+ type: string
+ resourceClaimName:
+ type: string
+ resourceClaimTemplateName:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ resources:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ restartPolicy:
+ type: string
+ runtimeClassName:
+ type: string
+ schedulerName:
+ type: string
+ schedulingGates:
+ items:
+ properties:
+ name:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ securityContext:
+ properties:
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ fsGroup:
+ format: int64
+ type: integer
+ fsGroupChangePolicy:
+ type: string
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxChangePolicy:
+ type: string
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ supplementalGroups:
+ items:
+ format: int64
+ type: integer
+ type: array
+ x-kubernetes-list-type: atomic
+ supplementalGroupsPolicy:
+ type: string
+ sysctls:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ serviceAccount:
+ type: string
+ serviceAccountName:
+ type: string
+ setHostnameAsFQDN:
+ type: boolean
+ shareProcessNamespace:
+ type: boolean
+ subdomain:
+ type: string
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ tolerations:
+ items:
+ properties:
+ effect:
+ type: string
+ key:
+ type: string
+ operator:
+ type: string
+ tolerationSeconds:
+ format: int64
+ type: integer
+ value:
+ type: string
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ topologySpreadConstraints:
+ items:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ maxSkew:
+ format: int32
+ type: integer
+ minDomains:
+ format: int32
+ type: integer
+ nodeAffinityPolicy:
+ type: string
+ nodeTaintsPolicy:
+ type: string
+ topologyKey:
+ type: string
+ whenUnsatisfiable:
+ type: string
+ required:
+ - maxSkew
+ - topologyKey
+ - whenUnsatisfiable
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - topologyKey
+ - whenUnsatisfiable
+ x-kubernetes-list-type: map
+ volumes:
+ items:
+ properties:
+ awsElasticBlockStore:
+ properties:
+ fsType:
+ type: string
+ partition:
+ format: int32
+ type: integer
+ readOnly:
+ type: boolean
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ azureDisk:
+ properties:
+ cachingMode:
+ type: string
+ diskName:
+ type: string
+ diskURI:
+ type: string
+ fsType:
+ default: ext4
+ type: string
+ kind:
+ type: string
+ readOnly:
+ default: false
+ type: boolean
+ required:
+ - diskName
+ - diskURI
+ type: object
+ azureFile:
+ properties:
+ readOnly:
+ type: boolean
+ secretName:
+ type: string
+ shareName:
+ type: string
+ required:
+ - secretName
+ - shareName
+ type: object
+ cephfs:
+ properties:
+ monitors:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ secretFile:
+ type: string
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ user:
+ type: string
+ required:
+ - monitors
+ type: object
+ cinder:
+ properties:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ configMap:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ csi:
+ properties:
+ driver:
+ type: string
+ fsType:
+ type: string
+ nodePublishSecretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ readOnly:
+ type: boolean
+ volumeAttributes:
+ additionalProperties:
+ type: string
+ type: object
+ required:
+ - driver
+ type: object
+ downwardAPI:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
+ items:
+ properties:
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ emptyDir:
+ properties:
+ medium:
+ type: string
+ sizeLimit:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ ephemeral:
+ properties:
+ volumeClaimTemplate:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ accessModes:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ dataSource:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ x-kubernetes-map-type: atomic
+ dataSourceRef:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ resources:
+ properties:
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ selector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ storageClassName:
+ type: string
+ volumeAttributesClassName:
+ type: string
+ volumeMode:
+ type: string
+ volumeName:
+ type: string
+ type: object
+ required:
+ - spec
+ type: object
+ type: object
+ fc:
+ properties:
+ fsType:
+ type: string
+ lun:
+ format: int32
+ type: integer
+ readOnly:
+ type: boolean
+ targetWWNs:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ wwids:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ flexVolume:
+ properties:
+ driver:
+ type: string
+ fsType:
+ type: string
+ options:
+ additionalProperties:
+ type: string
+ type: object
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - driver
+ type: object
+ flocker:
+ properties:
+ datasetName:
+ type: string
+ datasetUUID:
+ type: string
+ type: object
+ gcePersistentDisk:
+ properties:
+ fsType:
+ type: string
+ partition:
+ format: int32
+ type: integer
+ pdName:
+ type: string
+ readOnly:
+ type: boolean
+ required:
+ - pdName
+ type: object
+ gitRepo:
+ properties:
+ directory:
+ type: string
+ repository:
+ type: string
+ revision:
+ type: string
+ required:
+ - repository
+ type: object
+ glusterfs:
+ properties:
+ endpoints:
+ type: string
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ required:
+ - endpoints
+ - path
+ type: object
+ hostPath:
+ properties:
+ path:
+ type: string
+ type:
+ type: string
+ required:
+ - path
+ type: object
+ image:
+ properties:
+ pullPolicy:
+ type: string
+ reference:
+ type: string
+ type: object
+ iscsi:
+ properties:
+ chapAuthDiscovery:
+ type: boolean
+ chapAuthSession:
+ type: boolean
+ fsType:
+ type: string
+ initiatorName:
+ type: string
+ iqn:
+ type: string
+ iscsiInterface:
+ default: default
+ type: string
+ lun:
+ format: int32
+ type: integer
+ portals:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ targetPortal:
+ type: string
+ required:
+ - iqn
+ - lun
+ - targetPortal
+ type: object
+ name:
+ type: string
+ nfs:
+ properties:
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ server:
+ type: string
+ required:
+ - path
+ - server
+ type: object
+ persistentVolumeClaim:
+ properties:
+ claimName:
+ type: string
+ readOnly:
+ type: boolean
+ required:
+ - claimName
+ type: object
+ photonPersistentDisk:
+ properties:
+ fsType:
+ type: string
+ pdID:
+ type: string
+ required:
+ - pdID
+ type: object
+ portworxVolume:
+ properties:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ projected:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ sources:
+ items:
+ properties:
+ clusterTrustBundle:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ name:
+ type: string
+ optional:
+ type: boolean
+ path:
+ type: string
+ signerName:
+ type: string
+ required:
+ - path
+ type: object
+ configMap:
+ properties:
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ downwardAPI:
+ properties:
+ items:
+ items:
+ properties:
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ podCertificate:
+ properties:
+ certificateChainPath:
+ type: string
+ credentialBundlePath:
+ type: string
+ keyPath:
+ type: string
+ keyType:
+ type: string
+ maxExpirationSeconds:
+ format: int32
+ type: integer
+ signerName:
+ type: string
+ userAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ required:
+ - keyType
+ - signerName
+ type: object
+ secret:
+ properties:
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ serviceAccountToken:
+ properties:
+ audience:
+ type: string
+ expirationSeconds:
+ format: int64
+ type: integer
+ path:
+ type: string
+ required:
+ - path
+ type: object
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ quobyte:
+ properties:
+ group:
+ type: string
+ readOnly:
+ type: boolean
+ registry:
+ type: string
+ tenant:
+ type: string
+ user:
+ type: string
+ volume:
+ type: string
+ required:
+ - registry
+ - volume
+ type: object
+ rbd:
+ properties:
+ fsType:
+ type: string
+ image:
+ type: string
+ keyring:
+ default: /etc/ceph/keyring
+ type: string
+ monitors:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ pool:
+ default: rbd
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ user:
+ default: admin
+ type: string
+ required:
+ - image
+ - monitors
+ type: object
+ scaleIO:
+ properties:
+ fsType:
+ default: xfs
+ type: string
+ gateway:
+ type: string
+ protectionDomain:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ sslEnabled:
+ type: boolean
+ storageMode:
+ default: ThinProvisioned
+ type: string
+ storagePool:
+ type: string
+ system:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - gateway
+ - secretRef
+ - system
+ type: object
+ secret:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ optional:
+ type: boolean
+ secretName:
+ type: string
+ type: object
+ storageos:
+ properties:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ volumeName:
+ type: string
+ volumeNamespace:
+ type: string
+ type: object
+ vsphereVolume:
+ properties:
+ fsType:
+ type: string
+ storagePolicyID:
+ type: string
+ storagePolicyName:
+ type: string
+ volumePath:
+ type: string
+ required:
+ - volumePath
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ workloadRef:
+ properties:
+ name:
+ type: string
+ podGroup:
+ type: string
+ podGroupReplicaKey:
+ type: string
+ required:
+ - name
+ - podGroup
+ type: object
+ required:
+ - containers
+ type: object
+ type: object
+ replicas:
+ format: int32
+ type: integer
+ shards:
+ format: int32
+ type: integer
+ storage:
+ properties:
+ accessModes:
+ items:
+ type: string
+ type: array
+ resources:
+ properties:
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ storageClassName:
+ type: string
+ type: object
+ required:
+ - storage
+ type: object
+ required:
+ - clickHouseKeeper
+ - cluster
+ type: object
+ databaseRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ resourceVersion:
+ type: string
+ uid:
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ deletionPolicy:
+ type: string
+ deploymentMode:
+ type: string
+ enabled:
+ type: boolean
+ s3:
+ properties:
+ accessKey:
+ type: string
+ bucket:
+ type: string
+ endpoint:
+ type: string
+ prefix:
+ type: string
+ region:
+ type: string
+ secretKey:
+ type: string
+ skipVerify:
+ type: integer
+ type: object
+ storage:
+ properties:
+ accessModes:
+ items:
+ type: string
+ type: array
+ resources:
+ properties:
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ storageClassName:
+ type: string
+ type: object
+ tls:
+ properties:
+ clientCaCertificateRefs:
+ items:
+ properties:
+ key:
+ type: string
+ name:
+ type: string
+ required:
+ - key
+ - name
+ type: object
+ type: array
+ type: object
+ version:
+ type: string
+ type: object
+ required:
+ - clickhouse
+ type: object
+ metrics:
+ properties:
+ thanos:
+ properties:
+ compact:
+ properties:
+ additionalArgs:
+ items:
+ type: string
+ type: array
+ additionalContainers:
+ items:
+ properties:
+ args:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ envFrom:
+ items:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ prefix:
+ type: string
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ image:
+ type: string
+ imagePullPolicy:
+ type: string
+ lifecycle:
+ properties:
+ postStart:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ preStop:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ stopSignal:
+ type: string
+ type: object
+ livenessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ name:
+ type: string
+ ports:
+ items:
+ properties:
+ containerPort:
+ format: int32
+ type: integer
+ hostIP:
+ type: string
+ hostPort:
+ format: int32
+ type: integer
+ name:
+ type: string
+ protocol:
+ default: TCP
+ type: string
+ required:
+ - containerPort
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - containerPort
+ - protocol
+ x-kubernetes-list-type: map
+ readinessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ resizePolicy:
+ items:
+ properties:
+ resourceName:
+ type: string
+ restartPolicy:
+ type: string
+ required:
+ - resourceName
+ - restartPolicy
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ resources:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ restartPolicy:
+ type: string
+ restartPolicyRules:
+ items:
+ properties:
+ action:
+ type: string
+ exitCodes:
+ properties:
+ operator:
+ type: string
+ values:
+ items:
+ format: int32
+ type: integer
+ type: array
+ x-kubernetes-list-type: set
+ required:
+ - operator
+ type: object
+ required:
+ - action
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ securityContext:
+ properties:
+ allowPrivilegeEscalation:
+ type: boolean
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ capabilities:
+ properties:
+ add:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ drop:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ privileged:
+ type: boolean
+ procMount:
+ type: string
+ readOnlyRootFilesystem:
+ type: boolean
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ startupProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ stdin:
+ type: boolean
+ stdinOnce:
+ type: boolean
+ terminationMessagePath:
+ type: string
+ terminationMessagePolicy:
+ type: string
+ tty:
+ type: boolean
+ volumeDevices:
+ items:
+ properties:
+ devicePath:
+ type: string
+ name:
+ type: string
+ required:
+ - devicePath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - devicePath
+ x-kubernetes-list-type: map
+ volumeMounts:
+ items:
+ properties:
+ mountPath:
+ type: string
+ mountPropagation:
+ type: string
+ name:
+ type: string
+ readOnly:
+ type: boolean
+ recursiveReadOnly:
+ type: string
+ subPath:
+ type: string
+ subPathExpr:
+ type: string
+ required:
+ - mountPath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - mountPath
+ x-kubernetes-list-type: map
+ workingDir:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ additionalEnv:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ additionalPorts:
+ items:
+ properties:
+ containerPort:
+ format: int32
+ type: integer
+ hostIP:
+ type: string
+ hostPort:
+ format: int32
+ type: integer
+ name:
+ type: string
+ protocol:
+ default: TCP
+ type: string
+ required:
+ - containerPort
+ type: object
+ type: array
+ additionalServicePorts:
+ items:
+ properties:
+ appProtocol:
+ type: string
+ name:
+ type: string
+ nodePort:
+ format: int32
+ type: integer
+ port:
+ format: int32
+ type: integer
+ protocol:
+ default: TCP
+ type: string
+ targetPort:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: array
+ additionalVolumeMounts:
+ items:
+ properties:
+ mountPath:
+ type: string
+ mountPropagation:
+ type: string
+ name:
+ type: string
+ readOnly:
+ type: boolean
+ recursiveReadOnly:
+ type: string
+ subPath:
+ type: string
+ subPathExpr:
+ type: string
+ required:
+ - mountPath
+ - name
+ type: object
+ type: array
+ additionalVolumes:
+ items:
+ properties:
+ awsElasticBlockStore:
+ properties:
+ fsType:
+ type: string
+ partition:
+ format: int32
+ type: integer
+ readOnly:
+ type: boolean
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ azureDisk:
+ properties:
+ cachingMode:
+ type: string
+ diskName:
+ type: string
+ diskURI:
+ type: string
+ fsType:
+ default: ext4
+ type: string
+ kind:
+ type: string
+ readOnly:
+ default: false
+ type: boolean
+ required:
+ - diskName
+ - diskURI
+ type: object
+ azureFile:
+ properties:
+ readOnly:
+ type: boolean
+ secretName:
+ type: string
+ shareName:
+ type: string
+ required:
+ - secretName
+ - shareName
+ type: object
+ cephfs:
+ properties:
+ monitors:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ secretFile:
+ type: string
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ user:
+ type: string
+ required:
+ - monitors
+ type: object
+ cinder:
+ properties:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ configMap:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ csi:
+ properties:
+ driver:
+ type: string
+ fsType:
+ type: string
+ nodePublishSecretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ readOnly:
+ type: boolean
+ volumeAttributes:
+ additionalProperties:
+ type: string
+ type: object
+ required:
+ - driver
+ type: object
+ downwardAPI:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
+ items:
+ properties:
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ emptyDir:
+ properties:
+ medium:
+ type: string
+ sizeLimit:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ ephemeral:
+ properties:
+ volumeClaimTemplate:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ accessModes:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ dataSource:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ x-kubernetes-map-type: atomic
+ dataSourceRef:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ resources:
+ properties:
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ selector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ storageClassName:
+ type: string
+ volumeAttributesClassName:
+ type: string
+ volumeMode:
+ type: string
+ volumeName:
+ type: string
+ type: object
+ required:
+ - spec
+ type: object
+ type: object
+ fc:
+ properties:
+ fsType:
+ type: string
+ lun:
+ format: int32
+ type: integer
+ readOnly:
+ type: boolean
+ targetWWNs:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ wwids:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ flexVolume:
+ properties:
+ driver:
+ type: string
+ fsType:
+ type: string
+ options:
+ additionalProperties:
+ type: string
+ type: object
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - driver
+ type: object
+ flocker:
+ properties:
+ datasetName:
+ type: string
+ datasetUUID:
+ type: string
+ type: object
+ gcePersistentDisk:
+ properties:
+ fsType:
+ type: string
+ partition:
+ format: int32
+ type: integer
+ pdName:
+ type: string
+ readOnly:
+ type: boolean
+ required:
+ - pdName
+ type: object
+ gitRepo:
+ properties:
+ directory:
+ type: string
+ repository:
+ type: string
+ revision:
+ type: string
+ required:
+ - repository
+ type: object
+ glusterfs:
+ properties:
+ endpoints:
+ type: string
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ required:
+ - endpoints
+ - path
+ type: object
+ hostPath:
+ properties:
+ path:
+ type: string
+ type:
+ type: string
+ required:
+ - path
+ type: object
+ image:
+ properties:
+ pullPolicy:
+ type: string
+ reference:
+ type: string
+ type: object
+ iscsi:
+ properties:
+ chapAuthDiscovery:
+ type: boolean
+ chapAuthSession:
+ type: boolean
+ fsType:
+ type: string
+ initiatorName:
+ type: string
+ iqn:
+ type: string
+ iscsiInterface:
+ default: default
+ type: string
+ lun:
+ format: int32
+ type: integer
+ portals:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ targetPortal:
+ type: string
+ required:
+ - iqn
+ - lun
+ - targetPortal
+ type: object
+ name:
+ type: string
+ nfs:
+ properties:
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ server:
+ type: string
+ required:
+ - path
+ - server
+ type: object
+ persistentVolumeClaim:
+ properties:
+ claimName:
+ type: string
+ readOnly:
+ type: boolean
+ required:
+ - claimName
+ type: object
+ photonPersistentDisk:
+ properties:
+ fsType:
+ type: string
+ pdID:
+ type: string
+ required:
+ - pdID
+ type: object
+ portworxVolume:
+ properties:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ projected:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ sources:
+ items:
+ properties:
+ clusterTrustBundle:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ name:
+ type: string
+ optional:
+ type: boolean
+ path:
+ type: string
+ signerName:
+ type: string
+ required:
+ - path
+ type: object
+ configMap:
+ properties:
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ downwardAPI:
+ properties:
+ items:
+ items:
+ properties:
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ podCertificate:
+ properties:
+ certificateChainPath:
+ type: string
+ credentialBundlePath:
+ type: string
+ keyPath:
+ type: string
+ keyType:
+ type: string
+ maxExpirationSeconds:
+ format: int32
+ type: integer
+ signerName:
+ type: string
+ userAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ required:
+ - keyType
+ - signerName
+ type: object
+ secret:
+ properties:
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ serviceAccountToken:
+ properties:
+ audience:
+ type: string
+ expirationSeconds:
+ format: int64
+ type: integer
+ path:
+ type: string
+ required:
+ - path
+ type: object
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ quobyte:
+ properties:
+ group:
+ type: string
+ readOnly:
+ type: boolean
+ registry:
+ type: string
+ tenant:
+ type: string
+ user:
+ type: string
+ volume:
+ type: string
+ required:
+ - registry
+ - volume
+ type: object
+ rbd:
+ properties:
+ fsType:
+ type: string
+ image:
+ type: string
+ keyring:
+ default: /etc/ceph/keyring
+ type: string
+ monitors:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ pool:
+ default: rbd
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ user:
+ default: admin
+ type: string
+ required:
+ - image
+ - monitors
+ type: object
+ scaleIO:
+ properties:
+ fsType:
+ default: xfs
+ type: string
+ gateway:
+ type: string
+ protectionDomain:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ sslEnabled:
+ type: boolean
+ storageMode:
+ default: ThinProvisioned
+ type: string
+ storagePool:
+ type: string
+ system:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - gateway
+ - secretRef
+ - system
+ type: object
+ secret:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ optional:
+ type: boolean
+ secretName:
+ type: string
+ type: object
+ storageos:
+ properties:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ volumeName:
+ type: string
+ volumeNamespace:
+ type: string
+ type: object
+ vsphereVolume:
+ properties:
+ fsType:
+ type: string
+ storagePolicyID:
+ type: string
+ storagePolicyName:
+ type: string
+ volumePath:
+ type: string
+ required:
+ - volumePath
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ affinity:
+ properties:
+ nodeAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ preference:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchFields:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ x-kubernetes-map-type: atomic
+ weight:
+ format: int32
+ type: integer
+ required:
+ - preference
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ properties:
+ nodeSelectorTerms:
+ items:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchFields:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ x-kubernetes-map-type: atomic
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - nodeSelectorTerms
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ podAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ podAffinityTerm:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ weight:
+ format: int32
+ type: integer
+ required:
+ - podAffinityTerm
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ podAntiAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ podAffinityTerm:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ weight:
+ format: int32
+ type: integer
+ required:
+ - podAffinityTerm
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ type: object
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ baseImage:
+ type: string
+ configMaps:
+ items:
+ type: string
+ type: array
+ imagePullPolicy:
+ default: IfNotPresent
+ enum:
+ - Always
+ - Never
+ - IfNotPresent
+ type: string
+ imagePullSecrets:
+ items:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ logFormat:
+ default: logfmt
+ enum:
+ - logfmt
+ - json
+ type: string
+ logLevel:
+ enum:
+ - debug
+ - info
+ - warn
+ - error
+ type: string
+ nodeSelector:
+ additionalProperties:
+ type: string
+ type: object
+ podDisruptionBudgetConfig:
+ default:
+ enable: true
+ properties:
+ enable:
+ type: boolean
+ type: object
+ resourceRequirements:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ retentionConfig:
+ items:
+ properties:
+ fiveMinutes:
+ pattern: ^(-?(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)|([0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\.[0-9]+)?(Z|[+-][0-9]{2}:[0-9]{2})))$
+ type: string
+ oneHour:
+ pattern: ^(-?(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)|([0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\.[0-9]+)?(Z|[+-][0-9]{2}:[0-9]{2})))$
+ type: string
+ raw:
+ pattern: ^(-?(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)|([0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\.[0-9]+)?(Z|[+-][0-9]{2}:[0-9]{2})))$
+ type: string
+ type: object
+ type: array
+ secrets:
+ items:
+ type: string
+ type: array
+ securityContext:
+ properties:
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ fsGroup:
+ format: int64
+ type: integer
+ fsGroupChangePolicy:
+ type: string
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxChangePolicy:
+ type: string
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ supplementalGroups:
+ items:
+ format: int64
+ type: integer
+ type: array
+ x-kubernetes-list-type: atomic
+ supplementalGroupsPolicy:
+ type: string
+ sysctls:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ shardingConfig:
+ items:
+ properties:
+ externalLabelSharding:
+ items:
+ properties:
+ label:
+ type: string
+ value:
+ type: string
+ required:
+ - label
+ - value
+ type: object
+ type: array
+ shardName:
+ type: string
+ required:
+ - shardName
+ type: object
+ type: array
+ storageSize:
+ type: string
+ tolerations:
+ items:
+ properties:
+ effect:
+ type: string
+ key:
+ type: string
+ operator:
+ type: string
+ tolerationSeconds:
+ format: int64
+ type: integer
+ value:
+ type: string
+ type: object
+ type: array
+ version:
+ type: string
+ required:
+ - storageSize
+ type: object
+ query:
+ properties:
+ additionalArgs:
+ items:
+ type: string
+ type: array
+ additionalContainers:
+ items:
+ properties:
+ args:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ envFrom:
+ items:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ prefix:
+ type: string
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ image:
+ type: string
+ imagePullPolicy:
+ type: string
+ lifecycle:
+ properties:
+ postStart:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ preStop:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
- seconds
type: object
tcpSocket:
@@ -537,6 +6896,29 @@ spec:
type: object
restartPolicy:
type: string
+ restartPolicyRules:
+ items:
+ properties:
+ action:
+ type: string
+ exitCodes:
+ properties:
+ operator:
+ type: string
+ values:
+ items:
+ format: int32
+ type: integer
+ type: array
+ x-kubernetes-list-type: set
+ required:
+ - operator
+ type: object
+ required:
+ - action
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
securityContext:
properties:
allowPrivilegeEscalation:
@@ -778,6 +7160,23 @@ spec:
- fieldPath
type: object
x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
resourceFieldRef:
properties:
containerName:
@@ -1490,6 +7889,29 @@ spec:
type: array
x-kubernetes-list-type: atomic
type: object
+ podCertificate:
+ properties:
+ certificateChainPath:
+ type: string
+ credentialBundlePath:
+ type: string
+ keyPath:
+ type: string
+ keyType:
+ type: string
+ maxExpirationSeconds:
+ format: int32
+ type: integer
+ signerName:
+ type: string
+ userAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ required:
+ - keyType
+ - signerName
+ type: object
secret:
properties:
items:
@@ -2116,8 +8538,42 @@ spec:
x-kubernetes-list-type: atomic
type: object
type: object
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
baseImage:
type: string
+ configMaps:
+ items:
+ type: string
+ type: array
+ customStoreLabelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
imagePullPolicy:
default: IfNotPresent
enum:
@@ -2134,6 +8590,10 @@ spec:
type: object
x-kubernetes-map-type: atomic
type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
logFormat:
default: logfmt
enum:
@@ -2151,228 +8611,605 @@ spec:
additionalProperties:
type: string
type: object
- resourceRequirements:
+ podDisruptionBudgetConfig:
+ default:
+ enable: true
properties:
- claims:
- items:
- properties:
- name:
- type: string
- request:
- type: string
- required:
- - name
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - name
- x-kubernetes-list-type: map
- limits:
- additionalProperties:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- type: object
- requests:
- additionalProperties:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- type: object
+ enable:
+ type: boolean
type: object
- retentionConfig:
- items:
- properties:
- fiveMinutes:
- pattern: ^(-?(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)|([0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\.[0-9]+)?(Z|[+-][0-9]{2}:[0-9]{2})))$
- type: string
- oneHour:
- pattern: ^(-?(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)|([0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\.[0-9]+)?(Z|[+-][0-9]{2}:[0-9]{2})))$
- type: string
- raw:
- pattern: ^(-?(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)|([0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\.[0-9]+)?(Z|[+-][0-9]{2}:[0-9]{2})))$
- type: string
- type: object
- type: array
- shardingConfig:
- items:
- properties:
- externalLabelSharding:
- items:
- properties:
- label:
- type: string
- value:
- type: string
- required:
- - label
- - value
- type: object
- type: array
- shardName:
- type: string
- required:
- - shardName
- type: object
- type: array
- storageSize:
- type: string
- tolerations:
- items:
- properties:
- effect:
- type: string
- key:
- type: string
- operator:
- type: string
- tolerationSeconds:
- format: int64
- type: integer
- value:
- type: string
- type: object
- type: array
- version:
- type: string
- required:
- - storageSize
- type: object
- objectStorageConfig:
- properties:
- key:
- type: string
- secretName:
- type: string
- required:
- - key
- - secretName
- type: object
- query:
- properties:
- additionalArgs:
- items:
- type: string
- type: array
- additionalContainers:
- items:
- properties:
- args:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- command:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- env:
- items:
- properties:
- name:
+ queryFrontend:
+ properties:
+ additionalArgs:
+ items:
+ type: string
+ type: array
+ additionalContainers:
+ items:
+ properties:
+ args:
+ items:
type: string
- value:
+ type: array
+ x-kubernetes-list-type: atomic
+ command:
+ items:
type: string
- valueFrom:
+ type: array
+ x-kubernetes-list-type: atomic
+ env:
+ items:
properties:
- configMapKeyRef:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ envFrom:
+ items:
+ properties:
+ configMapRef:
properties:
- key:
- type: string
name:
default: ""
type: string
optional:
type: boolean
- required:
- - key
type: object
x-kubernetes-map-type: atomic
- fieldRef:
+ prefix:
+ type: string
+ secretRef:
properties:
- apiVersion:
- type: string
- fieldPath:
+ name:
+ default: ""
type: string
- required:
- - fieldPath
+ optional:
+ type: boolean
type: object
x-kubernetes-map-type: atomic
- resourceFieldRef:
- properties:
- containerName:
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ image:
+ type: string
+ imagePullPolicy:
+ type: string
+ lifecycle:
+ properties:
+ postStart:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ preStop:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ stopSignal:
+ type: string
+ type: object
+ livenessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
type: string
- divisor:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- resource:
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ name:
+ type: string
+ ports:
+ items:
+ properties:
+ containerPort:
+ format: int32
+ type: integer
+ hostIP:
+ type: string
+ hostPort:
+ format: int32
+ type: integer
+ name:
+ type: string
+ protocol:
+ default: TCP
+ type: string
+ required:
+ - containerPort
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - containerPort
+ - protocol
+ x-kubernetes-list-type: map
+ readinessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
type: string
- required:
- - resource
- type: object
- x-kubernetes-map-type: atomic
- secretKeyRef:
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ resizePolicy:
+ items:
+ properties:
+ resourceName:
+ type: string
+ restartPolicy:
+ type: string
+ required:
+ - resourceName
+ - restartPolicy
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ resources:
+ properties:
+ claims:
+ items:
properties:
- key:
- type: string
name:
- default: ""
type: string
- optional:
- type: boolean
+ request:
+ type: string
required:
- - key
+ - name
type: object
- x-kubernetes-map-type: atomic
- type: object
- required:
- - name
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - name
- x-kubernetes-list-type: map
- envFrom:
- items:
- properties:
- configMapRef:
- properties:
- name:
- default: ""
- type: string
- optional:
- type: boolean
- type: object
- x-kubernetes-map-type: atomic
- prefix:
- type: string
- secretRef:
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ restartPolicy:
+ type: string
+ restartPolicyRules:
+ items:
properties:
- name:
- default: ""
+ action:
type: string
- optional:
- type: boolean
+ exitCodes:
+ properties:
+ operator:
+ type: string
+ values:
+ items:
+ format: int32
+ type: integer
+ type: array
+ x-kubernetes-list-type: set
+ required:
+ - operator
+ type: object
+ required:
+ - action
type: object
- x-kubernetes-map-type: atomic
- type: object
- type: array
- x-kubernetes-list-type: atomic
- image:
- type: string
- imagePullPolicy:
- type: string
- lifecycle:
- properties:
- postStart:
+ type: array
+ x-kubernetes-list-type: atomic
+ securityContext:
+ properties:
+ allowPrivilegeEscalation:
+ type: boolean
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ capabilities:
+ properties:
+ add:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ drop:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ privileged:
+ type: boolean
+ procMount:
+ type: string
+ readOnlyRootFilesystem:
+ type: boolean
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ startupProbe:
properties:
exec:
properties:
@@ -2382,6 +9219,20 @@ spec:
type: array
x-kubernetes-list-type: atomic
type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
httpGet:
properties:
host:
@@ -2411,14 +9262,15 @@ spec:
required:
- port
type: object
- sleep:
- properties:
- seconds:
- format: int64
- type: integer
- required:
- - seconds
- type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
tcpSocket:
properties:
host:
@@ -2431,923 +9283,1048 @@ spec:
required:
- port
type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
type: object
- preStop:
+ stdin:
+ type: boolean
+ stdinOnce:
+ type: boolean
+ terminationMessagePath:
+ type: string
+ terminationMessagePolicy:
+ type: string
+ tty:
+ type: boolean
+ volumeDevices:
+ items:
+ properties:
+ devicePath:
+ type: string
+ name:
+ type: string
+ required:
+ - devicePath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - devicePath
+ x-kubernetes-list-type: map
+ volumeMounts:
+ items:
+ properties:
+ mountPath:
+ type: string
+ mountPropagation:
+ type: string
+ name:
+ type: string
+ readOnly:
+ type: boolean
+ recursiveReadOnly:
+ type: string
+ subPath:
+ type: string
+ subPathExpr:
+ type: string
+ required:
+ - mountPath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - mountPath
+ x-kubernetes-list-type: map
+ workingDir:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ additionalEnv:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- type: object
- httpGet:
+ configMapKeyRef:
properties:
- host:
+ key:
type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- x-kubernetes-list-type: atomic
- path:
+ name:
+ default: ""
type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
type: string
required:
- - port
+ - fieldPath
type: object
- sleep:
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
properties:
- seconds:
- format: int64
- type: integer
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
required:
- - seconds
+ - key
+ - path
+ - volumeName
type: object
- tcpSocket:
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
properties:
- host:
+ containerName:
type: string
- port:
+ divisor:
anyOf:
- type: integer
- type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
+ resource:
+ type: string
required:
- - port
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
type: object
+ x-kubernetes-map-type: atomic
type: object
- stopSignal:
+ required:
+ - name
+ type: object
+ type: array
+ additionalPorts:
+ items:
+ properties:
+ containerPort:
+ format: int32
+ type: integer
+ hostIP:
+ type: string
+ hostPort:
+ format: int32
+ type: integer
+ name:
type: string
+ protocol:
+ default: TCP
+ type: string
+ required:
+ - containerPort
type: object
- livenessProbe:
+ type: array
+ additionalServicePorts:
+ items:
properties:
- exec:
+ appProtocol:
+ type: string
+ name:
+ type: string
+ nodePort:
+ format: int32
+ type: integer
+ port:
+ format: int32
+ type: integer
+ protocol:
+ default: TCP
+ type: string
+ targetPort:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: array
+ additionalVolumeMounts:
+ items:
+ properties:
+ mountPath:
+ type: string
+ mountPropagation:
+ type: string
+ name:
+ type: string
+ readOnly:
+ type: boolean
+ recursiveReadOnly:
+ type: string
+ subPath:
+ type: string
+ subPathExpr:
+ type: string
+ required:
+ - mountPath
+ - name
+ type: object
+ type: array
+ additionalVolumes:
+ items:
+ properties:
+ awsElasticBlockStore:
properties:
- command:
+ fsType:
+ type: string
+ partition:
+ format: int32
+ type: integer
+ readOnly:
+ type: boolean
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ azureDisk:
+ properties:
+ cachingMode:
+ type: string
+ diskName:
+ type: string
+ diskURI:
+ type: string
+ fsType:
+ default: ext4
+ type: string
+ kind:
+ type: string
+ readOnly:
+ default: false
+ type: boolean
+ required:
+ - diskName
+ - diskURI
+ type: object
+ azureFile:
+ properties:
+ readOnly:
+ type: boolean
+ secretName:
+ type: string
+ shareName:
+ type: string
+ required:
+ - secretName
+ - shareName
+ type: object
+ cephfs:
+ properties:
+ monitors:
items:
type: string
type: array
x-kubernetes-list-type: atomic
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ secretFile:
+ type: string
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ user:
+ type: string
+ required:
+ - monitors
type: object
- failureThreshold:
- format: int32
- type: integer
- grpc:
+ cinder:
properties:
- port:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ configMap:
+ properties:
+ defaultMode:
format: int32
type: integer
- service:
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ name:
default: ""
type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ csi:
+ properties:
+ driver:
+ type: string
+ fsType:
+ type: string
+ nodePublishSecretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ readOnly:
+ type: boolean
+ volumeAttributes:
+ additionalProperties:
+ type: string
+ type: object
required:
- - port
+ - driver
type: object
- httpGet:
+ downwardAPI:
properties:
- host:
- type: string
- httpHeaders:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
items:
properties:
- name:
- type: string
- value:
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ mode:
+ format: int32
+ type: integer
+ path:
type: string
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
required:
- - name
- - value
+ - path
type: object
type: array
x-kubernetes-list-type: atomic
- path:
+ type: object
+ emptyDir:
+ properties:
+ medium:
type: string
- port:
+ sizeLimit:
anyOf:
- type: integer
- type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
+ ephemeral:
properties:
- host:
+ volumeClaimTemplate:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ accessModes:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ dataSource:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ x-kubernetes-map-type: atomic
+ dataSourceRef:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ resources:
+ properties:
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ selector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ storageClassName:
+ type: string
+ volumeAttributesClassName:
+ type: string
+ volumeMode:
+ type: string
+ volumeName:
+ type: string
+ type: object
+ required:
+ - spec
+ type: object
+ type: object
+ fc:
+ properties:
+ fsType:
type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
+ lun:
+ format: int32
+ type: integer
+ readOnly:
+ type: boolean
+ targetWWNs:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ wwids:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
type: object
- terminationGracePeriodSeconds:
- format: int64
- type: integer
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- name:
- type: string
- ports:
- items:
- properties:
- containerPort:
- format: int32
- type: integer
- hostIP:
- type: string
- hostPort:
- format: int32
- type: integer
- name:
- type: string
- protocol:
- default: TCP
- type: string
- required:
- - containerPort
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - containerPort
- - protocol
- x-kubernetes-list-type: map
- readinessProbe:
- properties:
- exec:
+ flexVolume:
+ properties:
+ driver:
+ type: string
+ fsType:
+ type: string
+ options:
+ additionalProperties:
+ type: string
+ type: object
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - driver
+ type: object
+ flocker:
properties:
- command:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
+ datasetName:
+ type: string
+ datasetUUID:
+ type: string
type: object
- failureThreshold:
- format: int32
- type: integer
- grpc:
+ gcePersistentDisk:
properties:
- port:
+ fsType:
+ type: string
+ partition:
format: int32
type: integer
- service:
- default: ""
+ pdName:
type: string
+ readOnly:
+ type: boolean
required:
- - port
+ - pdName
type: object
- httpGet:
+ gitRepo:
properties:
- host:
+ directory:
type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- x-kubernetes-list-type: atomic
- path:
+ repository:
type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
+ revision:
type: string
required:
- - port
+ - repository
type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
+ glusterfs:
properties:
- host:
+ endpoints:
type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
+ path:
+ type: string
+ readOnly:
+ type: boolean
required:
- - port
- type: object
- terminationGracePeriodSeconds:
- format: int64
- type: integer
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- resizePolicy:
- items:
- properties:
- resourceName:
- type: string
- restartPolicy:
- type: string
- required:
- - resourceName
- - restartPolicy
- type: object
- type: array
- x-kubernetes-list-type: atomic
- resources:
- properties:
- claims:
- items:
- properties:
- name:
- type: string
- request:
- type: string
- required:
- - name
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - name
- x-kubernetes-list-type: map
- limits:
- additionalProperties:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- type: object
- requests:
- additionalProperties:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
+ - endpoints
+ - path
type: object
- type: object
- restartPolicy:
- type: string
- securityContext:
- properties:
- allowPrivilegeEscalation:
- type: boolean
- appArmorProfile:
+ hostPath:
properties:
- localhostProfile:
+ path:
type: string
type:
type: string
required:
- - type
- type: object
- capabilities:
- properties:
- add:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- drop:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
+ - path
type: object
- privileged:
- type: boolean
- procMount:
- type: string
- readOnlyRootFilesystem:
- type: boolean
- runAsGroup:
- format: int64
- type: integer
- runAsNonRoot:
- type: boolean
- runAsUser:
- format: int64
- type: integer
- seLinuxOptions:
+ image:
properties:
- level:
- type: string
- role:
- type: string
- type:
+ pullPolicy:
type: string
- user:
+ reference:
type: string
type: object
- seccompProfile:
+ iscsi:
properties:
- localhostProfile:
- type: string
- type:
+ chapAuthDiscovery:
+ type: boolean
+ chapAuthSession:
+ type: boolean
+ fsType:
type: string
- required:
- - type
- type: object
- windowsOptions:
- properties:
- gmsaCredentialSpec:
+ initiatorName:
type: string
- gmsaCredentialSpecName:
+ iqn:
type: string
- hostProcess:
- type: boolean
- runAsUserName:
+ iscsiInterface:
+ default: default
type: string
- type: object
- type: object
- startupProbe:
- properties:
- exec:
- properties:
- command:
+ lun:
+ format: int32
+ type: integer
+ portals:
items:
type: string
type: array
x-kubernetes-list-type: atomic
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ targetPortal:
+ type: string
+ required:
+ - iqn
+ - lun
+ - targetPortal
type: object
- failureThreshold:
- format: int32
- type: integer
- grpc:
+ name:
+ type: string
+ nfs:
properties:
- port:
- format: int32
- type: integer
- service:
- default: ""
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ server:
type: string
required:
- - port
+ - path
+ - server
type: object
- httpGet:
+ persistentVolumeClaim:
properties:
- host:
+ claimName:
type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- x-kubernetes-list-type: atomic
- path:
+ readOnly:
+ type: boolean
+ required:
+ - claimName
+ type: object
+ photonPersistentDisk:
+ properties:
+ fsType:
type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
+ pdID:
type: string
required:
- - port
+ - pdID
type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
+ portworxVolume:
properties:
- host:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ volumeID:
type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
required:
- - port
+ - volumeID
type: object
- terminationGracePeriodSeconds:
- format: int64
- type: integer
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- stdin:
- type: boolean
- stdinOnce:
- type: boolean
- terminationMessagePath:
- type: string
- terminationMessagePolicy:
- type: string
- tty:
- type: boolean
- volumeDevices:
- items:
- properties:
- devicePath:
- type: string
- name:
- type: string
- required:
- - devicePath
- - name
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - devicePath
- x-kubernetes-list-type: map
- volumeMounts:
- items:
- properties:
- mountPath:
- type: string
- mountPropagation:
- type: string
- name:
- type: string
- readOnly:
- type: boolean
- recursiveReadOnly:
- type: string
- subPath:
- type: string
- subPathExpr:
- type: string
- required:
- - mountPath
- - name
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - mountPath
- x-kubernetes-list-type: map
- workingDir:
- type: string
- required:
- - name
- type: object
- type: array
- additionalEnv:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- valueFrom:
- properties:
- configMapKeyRef:
+ projected:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ sources:
+ items:
+ properties:
+ clusterTrustBundle:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ name:
+ type: string
+ optional:
+ type: boolean
+ path:
+ type: string
+ signerName:
+ type: string
+ required:
+ - path
+ type: object
+ configMap:
+ properties:
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ downwardAPI:
+ properties:
+ items:
+ items:
+ properties:
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ podCertificate:
+ properties:
+ certificateChainPath:
+ type: string
+ credentialBundlePath:
+ type: string
+ keyPath:
+ type: string
+ keyType:
+ type: string
+ maxExpirationSeconds:
+ format: int32
+ type: integer
+ signerName:
+ type: string
+ userAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ required:
+ - keyType
+ - signerName
+ type: object
+ secret:
+ properties:
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ serviceAccountToken:
+ properties:
+ audience:
+ type: string
+ expirationSeconds:
+ format: int64
+ type: integer
+ path:
+ type: string
+ required:
+ - path
+ type: object
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ quobyte:
properties:
- key:
- type: string
- name:
- default: ""
+ group:
type: string
- optional:
+ readOnly:
type: boolean
- required:
- - key
- type: object
- x-kubernetes-map-type: atomic
- fieldRef:
- properties:
- apiVersion:
+ registry:
type: string
- fieldPath:
+ tenant:
type: string
- required:
- - fieldPath
- type: object
- x-kubernetes-map-type: atomic
- resourceFieldRef:
- properties:
- containerName:
+ user:
type: string
- divisor:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- resource:
+ volume:
type: string
required:
- - resource
+ - registry
+ - volume
type: object
- x-kubernetes-map-type: atomic
- secretKeyRef:
+ rbd:
properties:
- key:
+ fsType:
type: string
- name:
- default: ""
+ image:
type: string
- optional:
+ keyring:
+ default: /etc/ceph/keyring
+ type: string
+ monitors:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ pool:
+ default: rbd
+ type: string
+ readOnly:
type: boolean
- required:
- - key
- type: object
- x-kubernetes-map-type: atomic
- type: object
- required:
- - name
- type: object
- type: array
- additionalPorts:
- items:
- properties:
- containerPort:
- format: int32
- type: integer
- hostIP:
- type: string
- hostPort:
- format: int32
- type: integer
- name:
- type: string
- protocol:
- default: TCP
- type: string
- required:
- - containerPort
- type: object
- type: array
- additionalServicePorts:
- items:
- properties:
- appProtocol:
- type: string
- name:
- type: string
- nodePort:
- format: int32
- type: integer
- port:
- format: int32
- type: integer
- protocol:
- default: TCP
- type: string
- targetPort:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: array
- additionalVolumeMounts:
- items:
- properties:
- mountPath:
- type: string
- mountPropagation:
- type: string
- name:
- type: string
- readOnly:
- type: boolean
- recursiveReadOnly:
- type: string
- subPath:
- type: string
- subPathExpr:
- type: string
- required:
- - mountPath
- - name
- type: object
- type: array
- additionalVolumes:
- items:
- properties:
- awsElasticBlockStore:
- properties:
- fsType:
- type: string
- partition:
- format: int32
- type: integer
- readOnly:
- type: boolean
- volumeID:
- type: string
- required:
- - volumeID
- type: object
- azureDisk:
- properties:
- cachingMode:
- type: string
- diskName:
- type: string
- diskURI:
- type: string
- fsType:
- default: ext4
- type: string
- kind:
- type: string
- readOnly:
- default: false
- type: boolean
- required:
- - diskName
- - diskURI
- type: object
- azureFile:
- properties:
- readOnly:
- type: boolean
- secretName:
- type: string
- shareName:
- type: string
- required:
- - secretName
- - shareName
- type: object
- cephfs:
- properties:
- monitors:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- path:
- type: string
- readOnly:
- type: boolean
- secretFile:
- type: string
- secretRef:
- properties:
- name:
- default: ""
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ user:
+ default: admin
type: string
+ required:
+ - image
+ - monitors
type: object
- x-kubernetes-map-type: atomic
- user:
- type: string
- required:
- - monitors
- type: object
- cinder:
- properties:
- fsType:
- type: string
- readOnly:
- type: boolean
- secretRef:
+ scaleIO:
properties:
- name:
- default: ""
+ fsType:
+ default: xfs
type: string
- type: object
- x-kubernetes-map-type: atomic
- volumeID:
- type: string
- required:
- - volumeID
- type: object
- configMap:
- properties:
- defaultMode:
- format: int32
- type: integer
- items:
- items:
- properties:
- key:
- type: string
- mode:
- format: int32
- type: integer
- path:
- type: string
- required:
- - key
- - path
- type: object
- type: array
- x-kubernetes-list-type: atomic
- name:
- default: ""
- type: string
- optional:
- type: boolean
- type: object
- x-kubernetes-map-type: atomic
- csi:
- properties:
- driver:
- type: string
- fsType:
- type: string
- nodePublishSecretRef:
- properties:
- name:
- default: ""
+ gateway:
type: string
+ protectionDomain:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ sslEnabled:
+ type: boolean
+ storageMode:
+ default: ThinProvisioned
+ type: string
+ storagePool:
+ type: string
+ system:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - gateway
+ - secretRef
+ - system
type: object
- x-kubernetes-map-type: atomic
- readOnly:
- type: boolean
- volumeAttributes:
- additionalProperties:
- type: string
- type: object
- required:
- - driver
- type: object
- downwardAPI:
- properties:
- defaultMode:
- format: int32
- type: integer
- items:
- items:
- properties:
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- x-kubernetes-map-type: atomic
- mode:
- format: int32
- type: integer
- path:
- type: string
- resourceFieldRef:
+ secret:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
+ items:
properties:
- containerName:
+ key:
type: string
- divisor:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- resource:
+ mode:
+ format: int32
+ type: integer
+ path:
type: string
required:
- - resource
+ - key
+ - path
type: object
- x-kubernetes-map-type: atomic
- required:
- - path
- type: object
- type: array
- x-kubernetes-list-type: atomic
- type: object
- emptyDir:
- properties:
- medium:
- type: string
- sizeLimit:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- type: object
- ephemeral:
- properties:
- volumeClaimTemplate:
+ type: array
+ x-kubernetes-list-type: atomic
+ optional:
+ type: boolean
+ secretName:
+ type: string
+ type: object
+ storageos:
properties:
- metadata:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
properties:
- annotations:
- additionalProperties:
- type: string
- type: object
- finalizers:
- items:
- type: string
- type: array
- labels:
- additionalProperties:
- type: string
- type: object
name:
- type: string
- namespace:
+ default: ""
type: string
type: object
- spec:
- properties:
- accessModes:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- dataSource:
- properties:
- apiGroup:
- type: string
- kind:
- type: string
- name:
- type: string
- required:
- - kind
- - name
- type: object
- x-kubernetes-map-type: atomic
- dataSourceRef:
- properties:
- apiGroup:
- type: string
- kind:
- type: string
- name:
- type: string
- namespace:
- type: string
- required:
- - kind
- - name
- type: object
- resources:
- properties:
- limits:
- additionalProperties:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- type: object
- requests:
- additionalProperties:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- type: object
- type: object
- selector:
+ x-kubernetes-map-type: atomic
+ volumeName:
+ type: string
+ volumeNamespace:
+ type: string
+ type: object
+ vsphereVolume:
+ properties:
+ fsType:
+ type: string
+ storagePolicyID:
+ type: string
+ storagePolicyName:
+ type: string
+ volumePath:
+ type: string
+ required:
+ - volumePath
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ affinity:
+ properties:
+ nodeAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ preference:
properties:
matchExpressions:
items:
@@ -3367,1091 +10344,1258 @@ spec:
type: object
type: array
x-kubernetes-list-type: atomic
- matchLabels:
- additionalProperties:
- type: string
- type: object
+ matchFields:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
type: object
x-kubernetes-map-type: atomic
- storageClassName:
- type: string
- volumeAttributesClassName:
- type: string
- volumeMode:
- type: string
- volumeName:
- type: string
- type: object
- required:
- - spec
- type: object
- type: object
- fc:
- properties:
- fsType:
- type: string
- lun:
- format: int32
- type: integer
- readOnly:
- type: boolean
- targetWWNs:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- wwids:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- type: object
- flexVolume:
- properties:
- driver:
- type: string
- fsType:
- type: string
- options:
- additionalProperties:
- type: string
- type: object
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- default: ""
- type: string
- type: object
- x-kubernetes-map-type: atomic
- required:
- - driver
- type: object
- flocker:
- properties:
- datasetName:
- type: string
- datasetUUID:
- type: string
- type: object
- gcePersistentDisk:
- properties:
- fsType:
- type: string
- partition:
- format: int32
- type: integer
- pdName:
- type: string
- readOnly:
- type: boolean
- required:
- - pdName
- type: object
- gitRepo:
- properties:
- directory:
- type: string
- repository:
- type: string
- revision:
- type: string
- required:
- - repository
- type: object
- glusterfs:
- properties:
- endpoints:
- type: string
- path:
- type: string
- readOnly:
- type: boolean
- required:
- - endpoints
- - path
- type: object
- hostPath:
- properties:
- path:
- type: string
- type:
- type: string
- required:
- - path
- type: object
- image:
- properties:
- pullPolicy:
- type: string
- reference:
- type: string
- type: object
- iscsi:
- properties:
- chapAuthDiscovery:
- type: boolean
- chapAuthSession:
- type: boolean
- fsType:
- type: string
- initiatorName:
- type: string
- iqn:
- type: string
- iscsiInterface:
- default: default
- type: string
- lun:
- format: int32
- type: integer
- portals:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- default: ""
- type: string
- type: object
- x-kubernetes-map-type: atomic
- targetPortal:
- type: string
- required:
- - iqn
- - lun
- - targetPortal
- type: object
- name:
- type: string
- nfs:
- properties:
- path:
- type: string
- readOnly:
- type: boolean
- server:
- type: string
- required:
- - path
- - server
- type: object
- persistentVolumeClaim:
- properties:
- claimName:
- type: string
- readOnly:
- type: boolean
- required:
- - claimName
- type: object
- photonPersistentDisk:
- properties:
- fsType:
- type: string
- pdID:
- type: string
- required:
- - pdID
- type: object
- portworxVolume:
- properties:
- fsType:
- type: string
- readOnly:
- type: boolean
- volumeID:
- type: string
- required:
- - volumeID
- type: object
- projected:
- properties:
- defaultMode:
- format: int32
- type: integer
- sources:
- items:
+ weight:
+ format: int32
+ type: integer
+ required:
+ - preference
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
properties:
- clusterTrustBundle:
- properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
+ nodeSelectorTerms:
+ items:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
type: string
- operator:
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchFields:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
type: string
- values:
- items:
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ x-kubernetes-map-type: atomic
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - nodeSelectorTerms
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ podAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ podAffinityTerm:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
type: object
- type: array
- x-kubernetes-list-type: atomic
- matchLabels:
- additionalProperties:
- type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ weight:
+ format: int32
+ type: integer
+ required:
+ - podAffinityTerm
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
type: object
- type: object
- x-kubernetes-map-type: atomic
- name:
- type: string
- optional:
- type: boolean
- path:
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
type: string
- signerName:
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
type: string
- required:
- - path
- type: object
- configMap:
- properties:
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
items:
- items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ podAntiAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ podAffinityTerm:
+ properties:
+ labelSelector:
properties:
- key:
- type: string
- mode:
- format: int32
- type: integer
- path:
- type: string
- required:
- - key
- - path
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
type: object
- type: array
- x-kubernetes-list-type: atomic
- name:
- default: ""
- type: string
- optional:
- type: boolean
- type: object
- x-kubernetes-map-type: atomic
- downwardAPI:
- properties:
- items:
- items:
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
properties:
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
type: object
- x-kubernetes-map-type: atomic
- mode:
- format: int32
- type: integer
- path:
- type: string
- resourceFieldRef:
- properties:
- containerName:
- type: string
- divisor:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- resource:
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ weight:
+ format: int32
+ type: integer
+ required:
+ - podAffinityTerm
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
type: string
- required:
- - resource
- type: object
- x-kubernetes-map-type: atomic
- required:
- - path
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
type: object
- type: array
- x-kubernetes-list-type: atomic
- type: object
- secret:
- properties:
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
items:
- items:
- properties:
- key:
- type: string
- mode:
- format: int32
- type: integer
- path:
- type: string
- required:
- - key
- - path
- type: object
- type: array
- x-kubernetes-list-type: atomic
- name:
- default: ""
type: string
- optional:
- type: boolean
- type: object
- x-kubernetes-map-type: atomic
- serviceAccountToken:
- properties:
- audience:
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
type: string
- expirationSeconds:
- format: int64
- type: integer
- path:
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
type: string
- required:
- - path
- type: object
- type: object
- type: array
- x-kubernetes-list-type: atomic
- type: object
- quobyte:
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ type: object
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ baseImage:
+ type: string
+ compressResponses:
+ type: boolean
+ configMaps:
+ items:
+ type: string
+ type: array
+ imagePullPolicy:
+ default: IfNotPresent
+ enum:
+ - Always
+ - Never
+ - IfNotPresent
+ type: string
+ imagePullSecrets:
+ items:
properties:
- group:
- type: string
- readOnly:
- type: boolean
- registry:
- type: string
- tenant:
- type: string
- user:
- type: string
- volume:
+ name:
+ default: ""
type: string
- required:
- - registry
- - volume
type: object
- rbd:
- properties:
- fsType:
- type: string
- image:
- type: string
- keyring:
- default: /etc/ceph/keyring
- type: string
- monitors:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- pool:
- default: rbd
- type: string
- readOnly:
- type: boolean
- secretRef:
+ x-kubernetes-map-type: atomic
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ labelsMaxRetries:
+ format: int32
+ type: integer
+ logFormat:
+ default: logfmt
+ enum:
+ - logfmt
+ - json
+ type: string
+ logLevel:
+ enum:
+ - debug
+ - info
+ - warn
+ - error
+ type: string
+ logQueriesLongerThan:
+ type: string
+ nodeSelector:
+ additionalProperties:
+ type: string
+ type: object
+ podDisruptionBudgetConfig:
+ default:
+ enable: true
+ properties:
+ enable:
+ type: boolean
+ type: object
+ queryLabelSelector:
+ properties:
+ matchExpressions:
+ items:
properties:
- name:
- default: ""
+ key:
type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
type: object
- x-kubernetes-map-type: atomic
- user:
- default: admin
- type: string
- required:
- - image
- - monitors
- type: object
- scaleIO:
- properties:
- fsType:
- default: xfs
- type: string
- gateway:
- type: string
- protectionDomain:
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
type: string
- readOnly:
- type: boolean
- secretRef:
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ queryRangeMaxRetries:
+ format: int32
+ type: integer
+ replicas:
+ format: int32
+ type: integer
+ resourceRequirements:
+ properties:
+ claims:
+ items:
properties:
name:
- default: ""
type: string
+ request:
+ type: string
+ required:
+ - name
type: object
- x-kubernetes-map-type: atomic
- sslEnabled:
- type: boolean
- storageMode:
- default: ThinProvisioned
- type: string
- storagePool:
- type: string
- system:
- type: string
- volumeName:
- type: string
- required:
- - gateway
- - secretRef
- - system
- type: object
- secret:
- properties:
- defaultMode:
- format: int32
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ secrets:
+ items:
+ type: string
+ type: array
+ securityContext:
+ properties:
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ fsGroup:
+ format: int64
+ type: integer
+ fsGroupChangePolicy:
+ type: string
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxChangePolicy:
+ type: string
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ supplementalGroups:
+ items:
+ format: int64
type: integer
+ type: array
+ x-kubernetes-list-type: atomic
+ supplementalGroupsPolicy:
+ type: string
+ sysctls:
items:
- items:
- properties:
- key:
- type: string
- mode:
- format: int32
- type: integer
- path:
- type: string
- required:
- - key
- - path
- type: object
- type: array
- x-kubernetes-list-type: atomic
- optional:
- type: boolean
- secretName:
- type: string
- type: object
- storageos:
- properties:
- fsType:
- type: string
- readOnly:
- type: boolean
- secretRef:
properties:
name:
- default: ""
type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
type: object
- x-kubernetes-map-type: atomic
- volumeName:
+ type: array
+ x-kubernetes-list-type: atomic
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ tolerations:
+ items:
+ properties:
+ effect:
type: string
- volumeNamespace:
+ key:
type: string
- type: object
- vsphereVolume:
- properties:
- fsType:
+ operator:
type: string
- storagePolicyID:
+ tolerationSeconds:
+ format: int64
+ type: integer
+ value:
type: string
- storagePolicyName:
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ replicaLabels:
+ items:
+ type: string
+ type: array
+ replicas:
+ format: int32
+ type: integer
+ resourceRequirements:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
type: string
- volumePath:
+ request:
type: string
required:
- - volumePath
+ - name
type: object
- required:
- - name
- type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ secrets:
+ items:
+ type: string
type: array
- affinity:
+ securityContext:
properties:
- nodeAffinity:
+ appArmorProfile:
properties:
- preferredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- preference:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
- type: array
- x-kubernetes-list-type: atomic
- matchFields:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
- type: array
- x-kubernetes-list-type: atomic
- type: object
- x-kubernetes-map-type: atomic
- weight:
- format: int32
- type: integer
- required:
- - preference
- - weight
- type: object
- type: array
- x-kubernetes-list-type: atomic
- requiredDuringSchedulingIgnoredDuringExecution:
- properties:
- nodeSelectorTerms:
- items:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
- type: array
- x-kubernetes-list-type: atomic
- matchFields:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
- type: array
- x-kubernetes-list-type: atomic
- type: object
- x-kubernetes-map-type: atomic
- type: array
- x-kubernetes-list-type: atomic
- required:
- - nodeSelectorTerms
- type: object
- x-kubernetes-map-type: atomic
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
type: object
- podAffinity:
+ fsGroup:
+ format: int64
+ type: integer
+ fsGroupChangePolicy:
+ type: string
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxChangePolicy:
+ type: string
+ seLinuxOptions:
properties:
- preferredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- podAffinityTerm:
- properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
- type: array
- x-kubernetes-list-type: atomic
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- x-kubernetes-map-type: atomic
- matchLabelKeys:
- items:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ supplementalGroups:
+ items:
+ format: int64
+ type: integer
+ type: array
+ x-kubernetes-list-type: atomic
+ supplementalGroupsPolicy:
+ type: string
+ sysctls:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ tolerations:
+ items:
+ properties:
+ effect:
+ type: string
+ key:
+ type: string
+ operator:
+ type: string
+ tolerationSeconds:
+ format: int64
+ type: integer
+ value:
+ type: string
+ type: object
+ type: array
+ version:
+ type: string
+ type: object
+ receive:
+ properties:
+ additionalArgs:
+ items:
+ type: string
+ type: array
+ additionalContainers:
+ items:
+ properties:
+ args:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
type: string
- type: array
- x-kubernetes-list-type: atomic
- mismatchLabelKeys:
- items:
+ name:
+ default: ""
type: string
- type: array
- x-kubernetes-list-type: atomic
- namespaceSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
- type: array
- x-kubernetes-list-type: atomic
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- x-kubernetes-map-type: atomic
- namespaces:
- items:
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
type: string
- type: array
- x-kubernetes-list-type: atomic
- topologyKey:
- type: string
- required:
- - topologyKey
- type: object
- weight:
- format: int32
- type: integer
- required:
- - podAffinityTerm
- - weight
- type: object
- type: array
- x-kubernetes-list-type: atomic
- requiredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
- type: array
- x-kubernetes-list-type: atomic
- matchLabels:
- additionalProperties:
+ fieldPath:
type: string
- type: object
- type: object
- x-kubernetes-map-type: atomic
- matchLabelKeys:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- mismatchLabelKeys:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- namespaceSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
- type: array
- x-kubernetes-list-type: atomic
- matchLabels:
- additionalProperties:
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
type: string
- type: object
- type: object
- x-kubernetes-map-type: atomic
- namespaces:
- items:
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ envFrom:
+ items:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ default: ""
type: string
- type: array
- x-kubernetes-list-type: atomic
- topologyKey:
- type: string
- required:
- - topologyKey
- type: object
- type: array
- x-kubernetes-list-type: atomic
- type: object
- podAntiAffinity:
- properties:
- preferredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- podAffinityTerm:
- properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
- type: array
- x-kubernetes-list-type: atomic
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- x-kubernetes-map-type: atomic
- matchLabelKeys:
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ prefix:
+ type: string
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ image:
+ type: string
+ imagePullPolicy:
+ type: string
+ lifecycle:
+ properties:
+ postStart:
+ properties:
+ exec:
+ properties:
+ command:
items:
type: string
type: array
x-kubernetes-list-type: atomic
- mismatchLabelKeys:
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- namespaceSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
- type: array
- x-kubernetes-list-type: atomic
- matchLabels:
- additionalProperties:
+ properties:
+ name:
type: string
- type: object
- type: object
- x-kubernetes-map-type: atomic
- namespaces:
- items:
- type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
type: array
x-kubernetes-list-type: atomic
- topologyKey:
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
type: string
required:
- - topologyKey
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
type: object
- weight:
- format: int32
- type: integer
- required:
- - podAffinityTerm
- - weight
type: object
- type: array
- x-kubernetes-list-type: atomic
- requiredDuringSchedulingIgnoredDuringExecution:
- items:
+ preStop:
properties:
- labelSelector:
+ exec:
properties:
- matchExpressions:
+ command:
items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
+ type: string
type: array
x-kubernetes-list-type: atomic
- matchLabels:
- additionalProperties:
- type: string
- type: object
type: object
- x-kubernetes-map-type: atomic
- matchLabelKeys:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- mismatchLabelKeys:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- namespaceSelector:
+ httpGet:
properties:
- matchExpressions:
+ host:
+ type: string
+ httpHeaders:
items:
properties:
- key:
+ name:
type: string
- operator:
+ value:
type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
required:
- - key
- - operator
+ - name
+ - value
type: object
type: array
x-kubernetes-list-type: atomic
- matchLabels:
- additionalProperties:
- type: string
- type: object
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
type: object
- x-kubernetes-map-type: atomic
- namespaces:
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ stopSignal:
+ type: string
+ type: object
+ livenessProbe:
+ properties:
+ exec:
+ properties:
+ command:
items:
type: string
type: array
x-kubernetes-list-type: atomic
- topologyKey:
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
required:
- - topologyKey
+ - port
type: object
- type: array
- x-kubernetes-list-type: atomic
- type: object
- type: object
- baseImage:
- type: string
- customStoreLabelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
type: object
- type: array
- x-kubernetes-list-type: atomic
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- x-kubernetes-map-type: atomic
- imagePullPolicy:
- default: IfNotPresent
- enum:
- - Always
- - Never
- - IfNotPresent
- type: string
- imagePullSecrets:
- items:
- properties:
name:
- default: ""
type: string
- type: object
- x-kubernetes-map-type: atomic
- type: array
- logFormat:
- default: logfmt
- enum:
- - logfmt
- - json
- type: string
- logLevel:
- enum:
- - debug
- - info
- - warn
- - error
- type: string
- nodeSelector:
- additionalProperties:
- type: string
- type: object
- queryFrontend:
- properties:
- additionalArgs:
- items:
- type: string
- type: array
- additionalContainers:
- items:
- properties:
- args:
- items:
+ ports:
+ items:
+ properties:
+ containerPort:
+ format: int32
+ type: integer
+ hostIP:
type: string
- type: array
- x-kubernetes-list-type: atomic
- command:
- items:
+ hostPort:
+ format: int32
+ type: integer
+ name:
type: string
- type: array
- x-kubernetes-list-type: atomic
- env:
- items:
- properties:
- name:
- type: string
- value:
+ protocol:
+ default: TCP
+ type: string
+ required:
+ - containerPort
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - containerPort
+ - protocol
+ x-kubernetes-list-type: map
+ readinessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
type: string
- valueFrom:
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
properties:
- configMapKeyRef:
- properties:
- key:
- type: string
- name:
- default: ""
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- x-kubernetes-map-type: atomic
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- x-kubernetes-map-type: atomic
- resourceFieldRef:
- properties:
- containerName:
- type: string
- divisor:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- resource:
- type: string
- required:
- - resource
- type: object
- x-kubernetes-map-type: atomic
- secretKeyRef:
- properties:
- key:
- type: string
- name:
- default: ""
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- x-kubernetes-map-type: atomic
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ resizePolicy:
+ items:
+ properties:
+ resourceName:
+ type: string
+ restartPolicy:
+ type: string
+ required:
+ - resourceName
+ - restartPolicy
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ resources:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
required:
- name
type: object
@@ -4459,1545 +11603,1342 @@ spec:
x-kubernetes-list-map-keys:
- name
x-kubernetes-list-type: map
- envFrom:
- items:
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ restartPolicy:
+ type: string
+ restartPolicyRules:
+ items:
+ properties:
+ action:
+ type: string
+ exitCodes:
properties:
- configMapRef:
- properties:
- name:
- default: ""
- type: string
- optional:
- type: boolean
- type: object
- x-kubernetes-map-type: atomic
- prefix:
+ operator:
type: string
- secretRef:
- properties:
- name:
- default: ""
- type: string
- optional:
- type: boolean
- type: object
- x-kubernetes-map-type: atomic
+ values:
+ items:
+ format: int32
+ type: integer
+ type: array
+ x-kubernetes-list-type: set
+ required:
+ - operator
type: object
- type: array
- x-kubernetes-list-type: atomic
- image:
- type: string
- imagePullPolicy:
+ required:
+ - action
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ securityContext:
+ properties:
+ allowPrivilegeEscalation:
+ type: boolean
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ capabilities:
+ properties:
+ add:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ drop:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ privileged:
+ type: boolean
+ procMount:
type: string
- lifecycle:
+ readOnlyRootFilesystem:
+ type: boolean
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxOptions:
properties:
- postStart:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- x-kubernetes-list-type: atomic
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- sleep:
- properties:
- seconds:
- format: int64
- type: integer
- required:
- - seconds
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- preStop:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- x-kubernetes-list-type: atomic
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- sleep:
- properties:
- seconds:
- format: int64
- type: integer
- required:
- - seconds
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- stopSignal:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
type: string
+ required:
+ - type
type: object
- livenessProbe:
+ windowsOptions:
properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- type: object
- failureThreshold:
- format: int32
- type: integer
- grpc:
- properties:
- port:
- format: int32
- type: integer
- service:
- default: ""
- type: string
- required:
- - port
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- x-kubernetes-list-type: atomic
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- terminationGracePeriodSeconds:
- format: int64
- type: integer
- timeoutSeconds:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ startupProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
format: int32
type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ stdin:
+ type: boolean
+ stdinOnce:
+ type: boolean
+ terminationMessagePath:
+ type: string
+ terminationMessagePolicy:
+ type: string
+ tty:
+ type: boolean
+ volumeDevices:
+ items:
+ properties:
+ devicePath:
+ type: string
+ name:
+ type: string
+ required:
+ - devicePath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - devicePath
+ x-kubernetes-list-type: map
+ volumeMounts:
+ items:
+ properties:
+ mountPath:
+ type: string
+ mountPropagation:
+ type: string
+ name:
+ type: string
+ readOnly:
+ type: boolean
+ recursiveReadOnly:
+ type: string
+ subPath:
+ type: string
+ subPathExpr:
+ type: string
+ required:
+ - mountPath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - mountPath
+ x-kubernetes-list-type: map
+ workingDir:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ additionalEnv:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
type: object
- name:
- type: string
- ports:
- items:
- properties:
- containerPort:
- format: int32
- type: integer
- hostIP:
- type: string
- hostPort:
- format: int32
- type: integer
- name:
- type: string
- protocol:
- default: TCP
- type: string
- required:
- - containerPort
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - containerPort
- - protocol
- x-kubernetes-list-type: map
- readinessProbe:
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- type: object
- failureThreshold:
- format: int32
- type: integer
- grpc:
- properties:
- port:
- format: int32
- type: integer
- service:
- default: ""
- type: string
- required:
- - port
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- x-kubernetes-list-type: atomic
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- terminationGracePeriodSeconds:
- format: int64
- type: integer
- timeoutSeconds:
- format: int32
- type: integer
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
type: object
- resizePolicy:
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ additionalPorts:
+ items:
+ properties:
+ containerPort:
+ format: int32
+ type: integer
+ hostIP:
+ type: string
+ hostPort:
+ format: int32
+ type: integer
+ name:
+ type: string
+ protocol:
+ default: TCP
+ type: string
+ required:
+ - containerPort
+ type: object
+ type: array
+ additionalServicePorts:
+ items:
+ properties:
+ appProtocol:
+ type: string
+ name:
+ type: string
+ nodePort:
+ format: int32
+ type: integer
+ port:
+ format: int32
+ type: integer
+ protocol:
+ default: TCP
+ type: string
+ targetPort:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: array
+ additionalVolumeMounts:
+ items:
+ properties:
+ mountPath:
+ type: string
+ mountPropagation:
+ type: string
+ name:
+ type: string
+ readOnly:
+ type: boolean
+ recursiveReadOnly:
+ type: string
+ subPath:
+ type: string
+ subPathExpr:
+ type: string
+ required:
+ - mountPath
+ - name
+ type: object
+ type: array
+ additionalVolumes:
+ items:
+ properties:
+ awsElasticBlockStore:
+ properties:
+ fsType:
+ type: string
+ partition:
+ format: int32
+ type: integer
+ readOnly:
+ type: boolean
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ azureDisk:
+ properties:
+ cachingMode:
+ type: string
+ diskName:
+ type: string
+ diskURI:
+ type: string
+ fsType:
+ default: ext4
+ type: string
+ kind:
+ type: string
+ readOnly:
+ default: false
+ type: boolean
+ required:
+ - diskName
+ - diskURI
+ type: object
+ azureFile:
+ properties:
+ readOnly:
+ type: boolean
+ secretName:
+ type: string
+ shareName:
+ type: string
+ required:
+ - secretName
+ - shareName
+ type: object
+ cephfs:
+ properties:
+ monitors:
items:
- properties:
- resourceName:
- type: string
- restartPolicy:
- type: string
- required:
- - resourceName
- - restartPolicy
- type: object
+ type: string
type: array
x-kubernetes-list-type: atomic
- resources:
- properties:
- claims:
- items:
- properties:
- name:
- type: string
- request:
- type: string
- required:
- - name
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - name
- x-kubernetes-list-type: map
- limits:
- additionalProperties:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- type: object
- requests:
- additionalProperties:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- type: object
- type: object
- restartPolicy:
+ path:
type: string
- securityContext:
+ readOnly:
+ type: boolean
+ secretFile:
+ type: string
+ secretRef:
properties:
- allowPrivilegeEscalation:
- type: boolean
- appArmorProfile:
- properties:
- localhostProfile:
- type: string
- type:
- type: string
- required:
- - type
- type: object
- capabilities:
- properties:
- add:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- drop:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- type: object
- privileged:
- type: boolean
- procMount:
+ name:
+ default: ""
type: string
- readOnlyRootFilesystem:
- type: boolean
- runAsGroup:
- format: int64
- type: integer
- runAsNonRoot:
- type: boolean
- runAsUser:
- format: int64
- type: integer
- seLinuxOptions:
- properties:
- level:
- type: string
- role:
- type: string
- type:
- type: string
- user:
- type: string
- type: object
- seccompProfile:
- properties:
- localhostProfile:
- type: string
- type:
- type: string
- required:
- - type
- type: object
- windowsOptions:
- properties:
- gmsaCredentialSpec:
- type: string
- gmsaCredentialSpecName:
- type: string
- hostProcess:
- type: boolean
- runAsUserName:
- type: string
- type: object
- type: object
- startupProbe:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- type: object
- failureThreshold:
- format: int32
- type: integer
- grpc:
- properties:
- port:
- format: int32
- type: integer
- service:
- default: ""
- type: string
- required:
- - port
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- x-kubernetes-list-type: atomic
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- terminationGracePeriodSeconds:
- format: int64
- type: integer
- timeoutSeconds:
- format: int32
- type: integer
type: object
- stdin:
- type: boolean
- stdinOnce:
- type: boolean
- terminationMessagePath:
+ x-kubernetes-map-type: atomic
+ user:
type: string
- terminationMessagePolicy:
+ required:
+ - monitors
+ type: object
+ cinder:
+ properties:
+ fsType:
type: string
- tty:
+ readOnly:
type: boolean
- volumeDevices:
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ configMap:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
items:
properties:
- devicePath:
+ key:
type: string
- name:
+ mode:
+ format: int32
+ type: integer
+ path:
type: string
required:
- - devicePath
- - name
+ - key
+ - path
type: object
type: array
- x-kubernetes-list-map-keys:
- - devicePath
- x-kubernetes-list-type: map
- volumeMounts:
+ x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ csi:
+ properties:
+ driver:
+ type: string
+ fsType:
+ type: string
+ nodePublishSecretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ readOnly:
+ type: boolean
+ volumeAttributes:
+ additionalProperties:
+ type: string
+ type: object
+ required:
+ - driver
+ type: object
+ downwardAPI:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
items:
properties:
- mountPath:
- type: string
- mountPropagation:
- type: string
- name:
- type: string
- readOnly:
- type: boolean
- recursiveReadOnly:
- type: string
- subPath:
- type: string
- subPathExpr:
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ mode:
+ format: int32
+ type: integer
+ path:
type: string
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
required:
- - mountPath
- - name
+ - path
type: object
type: array
- x-kubernetes-list-map-keys:
- - mountPath
- x-kubernetes-list-type: map
- workingDir:
- type: string
- required:
- - name
+ x-kubernetes-list-type: atomic
type: object
- type: array
- additionalEnv:
- items:
+ emptyDir:
properties:
- name:
- type: string
- value:
+ medium:
type: string
- valueFrom:
+ sizeLimit:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ ephemeral:
+ properties:
+ volumeClaimTemplate:
properties:
- configMapKeyRef:
+ metadata:
properties:
- key:
- type: string
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
name:
- default: ""
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- x-kubernetes-map-type: atomic
- fieldRef:
- properties:
- apiVersion:
type: string
- fieldPath:
+ namespace:
type: string
- required:
- - fieldPath
type: object
- x-kubernetes-map-type: atomic
- resourceFieldRef:
+ spec:
properties:
- containerName:
- type: string
- divisor:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- resource:
+ accessModes:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ dataSource:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ x-kubernetes-map-type: atomic
+ dataSourceRef:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ resources:
+ properties:
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ selector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ storageClassName:
type: string
- required:
- - resource
- type: object
- x-kubernetes-map-type: atomic
- secretKeyRef:
- properties:
- key:
+ volumeAttributesClassName:
type: string
- name:
- default: ""
+ volumeMode:
+ type: string
+ volumeName:
type: string
- optional:
- type: boolean
- required:
- - key
type: object
- x-kubernetes-map-type: atomic
+ required:
+ - spec
type: object
- required:
- - name
type: object
- type: array
- additionalPorts:
- items:
+ fc:
properties:
- containerPort:
- format: int32
- type: integer
- hostIP:
+ fsType:
type: string
- hostPort:
+ lun:
format: int32
type: integer
- name:
+ readOnly:
+ type: boolean
+ targetWWNs:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ wwids:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ flexVolume:
+ properties:
+ driver:
type: string
- protocol:
- default: TCP
+ fsType:
type: string
+ options:
+ additionalProperties:
+ type: string
+ type: object
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
required:
- - containerPort
+ - driver
type: object
- type: array
- additionalServicePorts:
- items:
+ flocker:
properties:
- appProtocol:
+ datasetName:
type: string
- name:
+ datasetUUID:
type: string
- nodePort:
- format: int32
- type: integer
- port:
+ type: object
+ gcePersistentDisk:
+ properties:
+ fsType:
+ type: string
+ partition:
format: int32
type: integer
- protocol:
- default: TCP
+ pdName:
type: string
- targetPort:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
+ readOnly:
+ type: boolean
required:
- - port
+ - pdName
type: object
- type: array
- additionalVolumeMounts:
- items:
+ gitRepo:
properties:
- mountPath:
+ directory:
type: string
- mountPropagation:
+ repository:
type: string
- name:
+ revision:
+ type: string
+ required:
+ - repository
+ type: object
+ glusterfs:
+ properties:
+ endpoints:
+ type: string
+ path:
type: string
readOnly:
type: boolean
- recursiveReadOnly:
- type: string
- subPath:
+ required:
+ - endpoints
+ - path
+ type: object
+ hostPath:
+ properties:
+ path:
type: string
- subPathExpr:
+ type:
type: string
required:
- - mountPath
- - name
+ - path
type: object
- type: array
- additionalVolumes:
- items:
+ image:
properties:
- awsElasticBlockStore:
- properties:
- fsType:
- type: string
- partition:
- format: int32
- type: integer
- readOnly:
- type: boolean
- volumeID:
- type: string
- required:
- - volumeID
- type: object
- azureDisk:
- properties:
- cachingMode:
- type: string
- diskName:
- type: string
- diskURI:
- type: string
- fsType:
- default: ext4
- type: string
- kind:
- type: string
- readOnly:
- default: false
- type: boolean
- required:
- - diskName
- - diskURI
- type: object
- azureFile:
- properties:
- readOnly:
- type: boolean
- secretName:
- type: string
- shareName:
- type: string
- required:
- - secretName
- - shareName
- type: object
- cephfs:
- properties:
- monitors:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- path:
- type: string
- readOnly:
- type: boolean
- secretFile:
- type: string
- secretRef:
- properties:
- name:
- default: ""
- type: string
- type: object
- x-kubernetes-map-type: atomic
- user:
- type: string
- required:
- - monitors
- type: object
- cinder:
- properties:
- fsType:
- type: string
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- default: ""
- type: string
- type: object
- x-kubernetes-map-type: atomic
- volumeID:
- type: string
- required:
- - volumeID
- type: object
- configMap:
- properties:
- defaultMode:
- format: int32
- type: integer
- items:
- items:
- properties:
- key:
- type: string
- mode:
- format: int32
- type: integer
- path:
- type: string
- required:
- - key
- - path
- type: object
- type: array
- x-kubernetes-list-type: atomic
+ pullPolicy:
+ type: string
+ reference:
+ type: string
+ type: object
+ iscsi:
+ properties:
+ chapAuthDiscovery:
+ type: boolean
+ chapAuthSession:
+ type: boolean
+ fsType:
+ type: string
+ initiatorName:
+ type: string
+ iqn:
+ type: string
+ iscsiInterface:
+ default: default
+ type: string
+ lun:
+ format: int32
+ type: integer
+ portals:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
name:
default: ""
type: string
- optional:
- type: boolean
type: object
x-kubernetes-map-type: atomic
- csi:
- properties:
- driver:
- type: string
- fsType:
- type: string
- nodePublishSecretRef:
- properties:
- name:
- default: ""
- type: string
- type: object
- x-kubernetes-map-type: atomic
- readOnly:
- type: boolean
- volumeAttributes:
- additionalProperties:
- type: string
- type: object
- required:
- - driver
- type: object
- downwardAPI:
- properties:
- defaultMode:
- format: int32
- type: integer
- items:
- items:
+ targetPortal:
+ type: string
+ required:
+ - iqn
+ - lun
+ - targetPortal
+ type: object
+ name:
+ type: string
+ nfs:
+ properties:
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ server:
+ type: string
+ required:
+ - path
+ - server
+ type: object
+ persistentVolumeClaim:
+ properties:
+ claimName:
+ type: string
+ readOnly:
+ type: boolean
+ required:
+ - claimName
+ type: object
+ photonPersistentDisk:
+ properties:
+ fsType:
+ type: string
+ pdID:
+ type: string
+ required:
+ - pdID
+ type: object
+ portworxVolume:
+ properties:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ projected:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ sources:
+ items:
+ properties:
+ clusterTrustBundle:
properties:
- fieldRef:
+ labelSelector:
properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
type: object
x-kubernetes-map-type: atomic
- mode:
- format: int32
- type: integer
+ name:
+ type: string
+ optional:
+ type: boolean
path:
type: string
- resourceFieldRef:
- properties:
- containerName:
- type: string
- divisor:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- resource:
- type: string
- required:
- - resource
- type: object
- x-kubernetes-map-type: atomic
+ signerName:
+ type: string
required:
- path
type: object
- type: array
- x-kubernetes-list-type: atomic
- type: object
- emptyDir:
- properties:
- medium:
- type: string
- sizeLimit:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- type: object
- ephemeral:
- properties:
- volumeClaimTemplate:
- properties:
- metadata:
- properties:
- annotations:
- additionalProperties:
- type: string
- type: object
- finalizers:
- items:
- type: string
- type: array
- labels:
- additionalProperties:
- type: string
- type: object
- name:
- type: string
- namespace:
- type: string
- type: object
- spec:
- properties:
- accessModes:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- dataSource:
+ configMap:
+ properties:
+ items:
+ items:
properties:
- apiGroup:
+ key:
type: string
- kind:
+ mode:
+ format: int32
+ type: integer
+ path:
type: string
- name:
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ downwardAPI:
+ properties:
+ items:
+ items:
+ properties:
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ mode:
+ format: int32
+ type: integer
+ path:
type: string
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
required:
- - kind
- - name
+ - path
type: object
- x-kubernetes-map-type: atomic
- dataSourceRef:
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ podCertificate:
+ properties:
+ certificateChainPath:
+ type: string
+ credentialBundlePath:
+ type: string
+ keyPath:
+ type: string
+ keyType:
+ type: string
+ maxExpirationSeconds:
+ format: int32
+ type: integer
+ signerName:
+ type: string
+ userAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ required:
+ - keyType
+ - signerName
+ type: object
+ secret:
+ properties:
+ items:
+ items:
properties:
- apiGroup:
- type: string
- kind:
- type: string
- name:
+ key:
type: string
- namespace:
+ mode:
+ format: int32
+ type: integer
+ path:
type: string
required:
- - kind
- - name
- type: object
- resources:
- properties:
- limits:
- additionalProperties:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- type: object
- requests:
- additionalProperties:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- type: object
- type: object
- selector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
- type: array
- x-kubernetes-list-type: atomic
- matchLabels:
- additionalProperties:
- type: string
- type: object
+ - key
+ - path
type: object
- x-kubernetes-map-type: atomic
- storageClassName:
- type: string
- volumeAttributesClassName:
- type: string
- volumeMode:
- type: string
- volumeName:
- type: string
- type: object
- required:
- - spec
- type: object
- type: object
- fc:
- properties:
- fsType:
- type: string
- lun:
- format: int32
- type: integer
- readOnly:
- type: boolean
- targetWWNs:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- wwids:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- type: object
- flexVolume:
- properties:
- driver:
- type: string
- fsType:
- type: string
- options:
- additionalProperties:
- type: string
- type: object
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- default: ""
- type: string
- type: object
- x-kubernetes-map-type: atomic
- required:
- - driver
- type: object
- flocker:
- properties:
- datasetName:
- type: string
- datasetUUID:
- type: string
- type: object
- gcePersistentDisk:
- properties:
- fsType:
- type: string
- partition:
- format: int32
- type: integer
- pdName:
- type: string
- readOnly:
- type: boolean
- required:
- - pdName
- type: object
- gitRepo:
- properties:
- directory:
- type: string
- repository:
- type: string
- revision:
- type: string
- required:
- - repository
- type: object
- glusterfs:
- properties:
- endpoints:
- type: string
- path:
- type: string
- readOnly:
- type: boolean
- required:
- - endpoints
- - path
- type: object
- hostPath:
- properties:
- path:
- type: string
- type:
- type: string
- required:
- - path
- type: object
- image:
- properties:
- pullPolicy:
- type: string
- reference:
- type: string
- type: object
- iscsi:
- properties:
- chapAuthDiscovery:
- type: boolean
- chapAuthSession:
- type: boolean
- fsType:
- type: string
- initiatorName:
- type: string
- iqn:
- type: string
- iscsiInterface:
- default: default
- type: string
- lun:
- format: int32
- type: integer
- portals:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- default: ""
- type: string
- type: object
- x-kubernetes-map-type: atomic
- targetPortal:
- type: string
- required:
- - iqn
- - lun
- - targetPortal
- type: object
- name:
+ type: array
+ x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ serviceAccountToken:
+ properties:
+ audience:
+ type: string
+ expirationSeconds:
+ format: int64
+ type: integer
+ path:
+ type: string
+ required:
+ - path
+ type: object
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ quobyte:
+ properties:
+ group:
type: string
- nfs:
- properties:
- path:
- type: string
- readOnly:
- type: boolean
- server:
- type: string
- required:
- - path
- - server
- type: object
- persistentVolumeClaim:
+ readOnly:
+ type: boolean
+ registry:
+ type: string
+ tenant:
+ type: string
+ user:
+ type: string
+ volume:
+ type: string
+ required:
+ - registry
+ - volume
+ type: object
+ rbd:
+ properties:
+ fsType:
+ type: string
+ image:
+ type: string
+ keyring:
+ default: /etc/ceph/keyring
+ type: string
+ monitors:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ pool:
+ default: rbd
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
properties:
- claimName:
+ name:
+ default: ""
type: string
- readOnly:
- type: boolean
- required:
- - claimName
type: object
- photonPersistentDisk:
+ x-kubernetes-map-type: atomic
+ user:
+ default: admin
+ type: string
+ required:
+ - image
+ - monitors
+ type: object
+ scaleIO:
+ properties:
+ fsType:
+ default: xfs
+ type: string
+ gateway:
+ type: string
+ protectionDomain:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
properties:
- fsType:
- type: string
- pdID:
+ name:
+ default: ""
type: string
- required:
- - pdID
type: object
- portworxVolume:
+ x-kubernetes-map-type: atomic
+ sslEnabled:
+ type: boolean
+ storageMode:
+ default: ThinProvisioned
+ type: string
+ storagePool:
+ type: string
+ system:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - gateway
+ - secretRef
+ - system
+ type: object
+ secret:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ optional:
+ type: boolean
+ secretName:
+ type: string
+ type: object
+ storageos:
+ properties:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
properties:
- fsType:
- type: string
- readOnly:
- type: boolean
- volumeID:
+ name:
+ default: ""
type: string
- required:
- - volumeID
type: object
- projected:
- properties:
- defaultMode:
- format: int32
- type: integer
- sources:
- items:
- properties:
- clusterTrustBundle:
- properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
- type: array
- x-kubernetes-list-type: atomic
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- x-kubernetes-map-type: atomic
- name:
- type: string
- optional:
- type: boolean
- path:
- type: string
- signerName:
- type: string
- required:
- - path
- type: object
- configMap:
- properties:
- items:
- items:
- properties:
- key:
- type: string
- mode:
- format: int32
- type: integer
- path:
- type: string
- required:
- - key
- - path
- type: object
- type: array
- x-kubernetes-list-type: atomic
- name:
- default: ""
- type: string
- optional:
- type: boolean
- type: object
- x-kubernetes-map-type: atomic
- downwardAPI:
+ x-kubernetes-map-type: atomic
+ volumeName:
+ type: string
+ volumeNamespace:
+ type: string
+ type: object
+ vsphereVolume:
+ properties:
+ fsType:
+ type: string
+ storagePolicyID:
+ type: string
+ storagePolicyName:
+ type: string
+ volumePath:
+ type: string
+ required:
+ - volumePath
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ affinity:
+ properties:
+ nodeAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ preference:
+ properties:
+ matchExpressions:
+ items:
properties:
- items:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
items:
- properties:
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- x-kubernetes-map-type: atomic
- mode:
- format: int32
- type: integer
- path:
- type: string
- resourceFieldRef:
- properties:
- containerName:
- type: string
- divisor:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- resource:
- type: string
- required:
- - resource
- type: object
- x-kubernetes-map-type: atomic
- required:
- - path
- type: object
+ type: string
type: array
x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
type: object
- secret:
+ type: array
+ x-kubernetes-list-type: atomic
+ matchFields:
+ items:
properties:
- items:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
items:
- properties:
- key:
- type: string
- mode:
- format: int32
- type: integer
- path:
- type: string
- required:
- - key
- - path
- type: object
+ type: string
type: array
x-kubernetes-list-type: atomic
- name:
- default: ""
- type: string
- optional:
- type: boolean
- type: object
- x-kubernetes-map-type: atomic
- serviceAccountToken:
- properties:
- audience:
- type: string
- expirationSeconds:
- format: int64
- type: integer
- path:
- type: string
required:
- - path
+ - key
+ - operator
type: object
- type: object
- type: array
- x-kubernetes-list-type: atomic
- type: object
- quobyte:
- properties:
- group:
- type: string
- readOnly:
- type: boolean
- registry:
- type: string
- tenant:
- type: string
- user:
- type: string
- volume:
- type: string
- required:
- - registry
- - volume
- type: object
- rbd:
- properties:
- fsType:
- type: string
- image:
- type: string
- keyring:
- default: /etc/ceph/keyring
- type: string
- monitors:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- pool:
- default: rbd
- type: string
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- default: ""
- type: string
- type: object
- x-kubernetes-map-type: atomic
- user:
- default: admin
- type: string
- required:
- - image
- - monitors
- type: object
- scaleIO:
- properties:
- fsType:
- default: xfs
- type: string
- gateway:
- type: string
- protectionDomain:
- type: string
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- default: ""
- type: string
+ type: array
+ x-kubernetes-list-type: atomic
type: object
x-kubernetes-map-type: atomic
- sslEnabled:
- type: boolean
- storageMode:
- default: ThinProvisioned
- type: string
- storagePool:
- type: string
- system:
- type: string
- volumeName:
- type: string
- required:
- - gateway
- - secretRef
- - system
- type: object
- secret:
- properties:
- defaultMode:
+ weight:
format: int32
type: integer
- items:
- items:
- properties:
- key:
- type: string
- mode:
- format: int32
- type: integer
- path:
- type: string
- required:
- - key
- - path
- type: object
- type: array
- x-kubernetes-list-type: atomic
- optional:
- type: boolean
- secretName:
- type: string
+ required:
+ - preference
+ - weight
type: object
- storageos:
- properties:
- fsType:
- type: string
- readOnly:
- type: boolean
- secretRef:
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ properties:
+ nodeSelectorTerms:
+ items:
properties:
- name:
- default: ""
- type: string
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchFields:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
type: object
x-kubernetes-map-type: atomic
- volumeName:
- type: string
- volumeNamespace:
- type: string
- type: object
- vsphereVolume:
- properties:
- fsType:
- type: string
- storagePolicyID:
- type: string
- storagePolicyName:
- type: string
- volumePath:
- type: string
- required:
- - volumePath
- type: object
- required:
- - name
- type: object
- type: array
- affinity:
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - nodeSelectorTerms
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ podAffinity:
properties:
- nodeAffinity:
- properties:
- preferredDuringSchedulingIgnoredDuringExecution:
- items:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ podAffinityTerm:
properties:
- preference:
+ labelSelector:
properties:
matchExpressions:
items:
@@ -6017,7 +12958,25 @@ spec:
type: object
type: array
x-kubernetes-list-type: atomic
- matchFields:
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
items:
properties:
key:
@@ -6035,21 +12994,117 @@ spec:
type: object
type: array
x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
type: object
x-kubernetes-map-type: atomic
- weight:
- format: int32
- type: integer
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
required:
- - preference
- - weight
+ - topologyKey
type: object
- type: array
- x-kubernetes-list-type: atomic
- requiredDuringSchedulingIgnoredDuringExecution:
- properties:
- nodeSelectorTerms:
- items:
+ weight:
+ format: int32
+ type: integer
+ required:
+ - podAffinityTerm
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ podAntiAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ podAffinityTerm:
+ properties:
+ labelSelector:
properties:
matchExpressions:
items:
@@ -6069,6046 +13124,7286 @@ spec:
type: object
type: array
x-kubernetes-list-type: atomic
- matchFields:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
- type: array
- x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
type: object
x-kubernetes-map-type: atomic
- type: array
- x-kubernetes-list-type: atomic
- required:
- - nodeSelectorTerms
- type: object
- x-kubernetes-map-type: atomic
- type: object
- podAffinity:
- properties:
- preferredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- podAffinityTerm:
- properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
- type: array
- x-kubernetes-list-type: atomic
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- x-kubernetes-map-type: atomic
- matchLabelKeys:
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
items:
- type: string
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
type: array
x-kubernetes-list-type: atomic
- mismatchLabelKeys:
- items:
+ matchLabels:
+ additionalProperties:
type: string
- type: array
- x-kubernetes-list-type: atomic
- namespaceSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
- type: array
- x-kubernetes-list-type: atomic
- matchLabels:
- additionalProperties:
- type: string
- type: object
type: object
- x-kubernetes-map-type: atomic
- namespaces:
- items:
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ weight:
+ format: int32
+ type: integer
+ required:
+ - podAffinityTerm
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ type: object
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ baseImage:
+ type: string
+ configMaps:
+ items:
+ type: string
+ type: array
+ imagePullPolicy:
+ default: IfNotPresent
+ enum:
+ - Always
+ - Never
+ - IfNotPresent
+ type: string
+ imagePullSecrets:
+ items:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ type: array
+ ingesterSpec:
+ properties:
+ additionalArgs:
+ items:
+ type: string
+ type: array
+ additionalContainers:
+ items:
+ properties:
+ args:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
type: string
- type: array
- x-kubernetes-list-type: atomic
- topologyKey:
- type: string
- required:
- - topologyKey
- type: object
- weight:
- format: int32
- type: integer
- required:
- - podAffinityTerm
- - weight
- type: object
- type: array
- x-kubernetes-list-type: atomic
- requiredDuringSchedulingIgnoredDuringExecution:
- items:
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ envFrom:
+ items:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ prefix:
+ type: string
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ image:
+ type: string
+ imagePullPolicy:
+ type: string
+ lifecycle:
+ properties:
+ postStart:
properties:
- labelSelector:
+ exec:
properties:
- matchExpressions:
+ command:
items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
+ type: string
type: array
x-kubernetes-list-type: atomic
- matchLabels:
- additionalProperties:
- type: string
- type: object
type: object
- x-kubernetes-map-type: atomic
- matchLabelKeys:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- mismatchLabelKeys:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- namespaceSelector:
+ httpGet:
properties:
- matchExpressions:
+ host:
+ type: string
+ httpHeaders:
items:
properties:
- key:
+ name:
type: string
- operator:
+ value:
type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
required:
- - key
- - operator
+ - name
+ - value
type: object
type: array
x-kubernetes-list-type: atomic
- matchLabels:
- additionalProperties:
- type: string
- type: object
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
type: object
- x-kubernetes-map-type: atomic
- namespaces:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- topologyKey:
- type: string
- required:
- - topologyKey
- type: object
- type: array
- x-kubernetes-list-type: atomic
- type: object
- podAntiAffinity:
- properties:
- preferredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- podAffinityTerm:
+ sleep:
properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
- type: array
- x-kubernetes-list-type: atomic
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- x-kubernetes-map-type: atomic
- matchLabelKeys:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- mismatchLabelKeys:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- namespaceSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
- type: array
- x-kubernetes-list-type: atomic
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- x-kubernetes-map-type: atomic
- namespaces:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- topologyKey:
- type: string
+ seconds:
+ format: int64
+ type: integer
required:
- - topologyKey
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
type: object
- weight:
- format: int32
- type: integer
- required:
- - podAffinityTerm
- - weight
type: object
- type: array
- x-kubernetes-list-type: atomic
- requiredDuringSchedulingIgnoredDuringExecution:
- items:
+ preStop:
properties:
- labelSelector:
+ exec:
properties:
- matchExpressions:
+ command:
items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
+ type: string
type: array
x-kubernetes-list-type: atomic
- matchLabels:
- additionalProperties:
- type: string
- type: object
type: object
- x-kubernetes-map-type: atomic
- matchLabelKeys:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- mismatchLabelKeys:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- namespaceSelector:
+ httpGet:
properties:
- matchExpressions:
+ host:
+ type: string
+ httpHeaders:
items:
properties:
- key:
+ name:
type: string
- operator:
+ value:
type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
required:
- - key
- - operator
+ - name
+ - value
type: object
type: array
x-kubernetes-list-type: atomic
- matchLabels:
- additionalProperties:
- type: string
- type: object
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
type: object
- x-kubernetes-map-type: atomic
- namespaces:
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ stopSignal:
+ type: string
+ type: object
+ livenessProbe:
+ properties:
+ exec:
+ properties:
+ command:
items:
type: string
type: array
x-kubernetes-list-type: atomic
- topologyKey:
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
type: string
required:
- - topologyKey
+ - port
type: object
- type: array
- x-kubernetes-list-type: atomic
- type: object
- type: object
- baseImage:
- type: string
- compressResponses:
- type: boolean
- imagePullPolicy:
- default: IfNotPresent
- enum:
- - Always
- - Never
- - IfNotPresent
- type: string
- imagePullSecrets:
- items:
- properties:
- name:
- default: ""
- type: string
- type: object
- x-kubernetes-map-type: atomic
- type: array
- labelsMaxRetries:
- type: integer
- logFormat:
- default: logfmt
- enum:
- - logfmt
- - json
- type: string
- logLevel:
- enum:
- - debug
- - info
- - warn
- - error
- type: string
- logQueriesLongerThan:
- type: string
- nodeSelector:
- additionalProperties:
- type: string
- type: object
- queryLabelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
- type: array
- x-kubernetes-list-type: atomic
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- x-kubernetes-map-type: atomic
- queryRangeMaxRetries:
- type: integer
- replicas:
- type: integer
- resourceRequirements:
- properties:
- claims:
- items:
- properties:
- name:
- type: string
- request:
- type: string
- required:
- - name
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
type: object
- type: array
- x-kubernetes-list-map-keys:
- - name
- x-kubernetes-list-type: map
- limits:
- additionalProperties:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- type: object
- requests:
- additionalProperties:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- type: object
- type: object
- tolerations:
- items:
- properties:
- effect:
- type: string
- key:
- type: string
- operator:
- type: string
- tolerationSeconds:
- format: int64
- type: integer
- value:
- type: string
- type: object
- type: array
- version:
- type: string
- type: object
- replicaLabels:
- items:
- type: string
- type: array
- resourceRequirements:
- properties:
- claims:
- items:
- properties:
name:
type: string
- request:
- type: string
- required:
- - name
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - name
- x-kubernetes-list-type: map
- limits:
- additionalProperties:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- type: object
- requests:
- additionalProperties:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- type: object
- type: object
- tolerations:
- items:
- properties:
- effect:
- type: string
- key:
- type: string
- operator:
- type: string
- tolerationSeconds:
- format: int64
- type: integer
- value:
- type: string
- type: object
- type: array
- version:
- type: string
- type: object
- receive:
- properties:
- additionalArgs:
- items:
- type: string
- type: array
- additionalContainers:
- items:
- properties:
- args:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- command:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- env:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- valueFrom:
+ ports:
+ items:
properties:
- configMapKeyRef:
- properties:
- key:
- type: string
- name:
- default: ""
+ containerPort:
+ format: int32
+ type: integer
+ hostIP:
+ type: string
+ hostPort:
+ format: int32
+ type: integer
+ name:
+ type: string
+ protocol:
+ default: TCP
+ type: string
+ required:
+ - containerPort
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - containerPort
+ - protocol
+ x-kubernetes-list-type: map
+ readinessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- x-kubernetes-map-type: atomic
- fieldRef:
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ resizePolicy:
+ items:
+ properties:
+ resourceName:
+ type: string
+ restartPolicy:
+ type: string
+ required:
+ - resourceName
+ - restartPolicy
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ resources:
+ properties:
+ claims:
+ items:
properties:
- apiVersion:
+ name:
type: string
- fieldPath:
+ request:
type: string
required:
- - fieldPath
+ - name
type: object
- x-kubernetes-map-type: atomic
- resourceFieldRef:
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ restartPolicy:
+ type: string
+ restartPolicyRules:
+ items:
+ properties:
+ action:
+ type: string
+ exitCodes:
properties:
- containerName:
- type: string
- divisor:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- resource:
+ operator:
type: string
+ values:
+ items:
+ format: int32
+ type: integer
+ type: array
+ x-kubernetes-list-type: set
required:
- - resource
+ - operator
type: object
- x-kubernetes-map-type: atomic
- secretKeyRef:
- properties:
- key:
+ required:
+ - action
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ securityContext:
+ properties:
+ allowPrivilegeEscalation:
+ type: boolean
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ capabilities:
+ properties:
+ add:
+ items:
type: string
- name:
- default: ""
+ type: array
+ x-kubernetes-list-type: atomic
+ drop:
+ items:
type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- x-kubernetes-map-type: atomic
- type: object
- required:
- - name
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - name
- x-kubernetes-list-type: map
- envFrom:
- items:
- properties:
- configMapRef:
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ privileged:
+ type: boolean
+ procMount:
+ type: string
+ readOnlyRootFilesystem:
+ type: boolean
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ startupProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ stdin:
+ type: boolean
+ stdinOnce:
+ type: boolean
+ terminationMessagePath:
+ type: string
+ terminationMessagePolicy:
+ type: string
+ tty:
+ type: boolean
+ volumeDevices:
+ items:
properties:
+ devicePath:
+ type: string
name:
- default: ""
type: string
- optional:
- type: boolean
+ required:
+ - devicePath
+ - name
type: object
- x-kubernetes-map-type: atomic
- prefix:
- type: string
- secretRef:
+ type: array
+ x-kubernetes-list-map-keys:
+ - devicePath
+ x-kubernetes-list-type: map
+ volumeMounts:
+ items:
properties:
+ mountPath:
+ type: string
+ mountPropagation:
+ type: string
name:
- default: ""
type: string
- optional:
+ readOnly:
type: boolean
+ recursiveReadOnly:
+ type: string
+ subPath:
+ type: string
+ subPathExpr:
+ type: string
+ required:
+ - mountPath
+ - name
type: object
- x-kubernetes-map-type: atomic
- type: object
- type: array
- x-kubernetes-list-type: atomic
- image:
- type: string
- imagePullPolicy:
- type: string
- lifecycle:
+ type: array
+ x-kubernetes-list-map-keys:
+ - mountPath
+ x-kubernetes-list-type: map
+ workingDir:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ additionalEnv:
+ items:
properties:
- postStart:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
properties:
- exec:
+ configMapKeyRef:
properties:
- command:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
type: object
- httpGet:
+ x-kubernetes-map-type: atomic
+ fieldRef:
properties:
- host:
+ apiVersion:
type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- x-kubernetes-list-type: atomic
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
path:
type: string
- port:
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
anyOf:
- type: integer
- type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
- scheme:
+ resource:
type: string
required:
- - port
+ - resource
type: object
- sleep:
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
properties:
- seconds:
- format: int64
- type: integer
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
required:
- - seconds
+ - key
type: object
- tcpSocket:
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ additionalPorts:
+ items:
+ properties:
+ containerPort:
+ format: int32
+ type: integer
+ hostIP:
+ type: string
+ hostPort:
+ format: int32
+ type: integer
+ name:
+ type: string
+ protocol:
+ default: TCP
+ type: string
+ required:
+ - containerPort
+ type: object
+ type: array
+ additionalServicePorts:
+ items:
+ properties:
+ appProtocol:
+ type: string
+ name:
+ type: string
+ nodePort:
+ format: int32
+ type: integer
+ port:
+ format: int32
+ type: integer
+ protocol:
+ default: TCP
+ type: string
+ targetPort:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: array
+ additionalVolumeMounts:
+ items:
+ properties:
+ mountPath:
+ type: string
+ mountPropagation:
+ type: string
+ name:
+ type: string
+ readOnly:
+ type: boolean
+ recursiveReadOnly:
+ type: string
+ subPath:
+ type: string
+ subPathExpr:
+ type: string
+ required:
+ - mountPath
+ - name
+ type: object
+ type: array
+ additionalVolumes:
+ items:
+ properties:
+ awsElasticBlockStore:
+ properties:
+ fsType:
+ type: string
+ partition:
+ format: int32
+ type: integer
+ readOnly:
+ type: boolean
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ azureDisk:
+ properties:
+ cachingMode:
+ type: string
+ diskName:
+ type: string
+ diskURI:
+ type: string
+ fsType:
+ default: ext4
+ type: string
+ kind:
+ type: string
+ readOnly:
+ default: false
+ type: boolean
+ required:
+ - diskName
+ - diskURI
+ type: object
+ azureFile:
+ properties:
+ readOnly:
+ type: boolean
+ secretName:
+ type: string
+ shareName:
+ type: string
+ required:
+ - secretName
+ - shareName
+ type: object
+ cephfs:
+ properties:
+ monitors:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ secretFile:
+ type: string
+ secretRef:
properties:
- host:
+ name:
+ default: ""
type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
type: object
+ x-kubernetes-map-type: atomic
+ user:
+ type: string
+ required:
+ - monitors
type: object
- preStop:
+ cinder:
properties:
- exec:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
properties:
- command:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
type: object
- httpGet:
+ x-kubernetes-map-type: atomic
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ configMap:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ csi:
+ properties:
+ driver:
+ type: string
+ fsType:
+ type: string
+ nodePublishSecretRef:
properties:
- host:
+ name:
+ default: ""
type: string
- httpHeaders:
- items:
+ type: object
+ x-kubernetes-map-type: atomic
+ readOnly:
+ type: boolean
+ volumeAttributes:
+ additionalProperties:
+ type: string
+ type: object
+ required:
+ - driver
+ type: object
+ downwardAPI:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
+ items:
+ properties:
+ fieldRef:
properties:
- name:
+ apiVersion:
type: string
- value:
+ fieldPath:
type: string
required:
- - name
- - value
+ - fieldPath
type: object
- type: array
- x-kubernetes-list-type: atomic
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- sleep:
- properties:
- seconds:
- format: int64
- type: integer
- required:
- - seconds
- type: object
- tcpSocket:
+ x-kubernetes-map-type: atomic
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ emptyDir:
+ properties:
+ medium:
+ type: string
+ sizeLimit:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ ephemeral:
+ properties:
+ volumeClaimTemplate:
properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ accessModes:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ dataSource:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ x-kubernetes-map-type: atomic
+ dataSourceRef:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ resources:
+ properties:
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ selector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ storageClassName:
+ type: string
+ volumeAttributesClassName:
+ type: string
+ volumeMode:
+ type: string
+ volumeName:
+ type: string
+ type: object
required:
- - port
+ - spec
type: object
type: object
- stopSignal:
- type: string
- type: object
- livenessProbe:
- properties:
- exec:
+ fc:
properties:
- command:
+ fsType:
+ type: string
+ lun:
+ format: int32
+ type: integer
+ readOnly:
+ type: boolean
+ targetWWNs:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ wwids:
items:
type: string
type: array
x-kubernetes-list-type: atomic
type: object
- failureThreshold:
- format: int32
- type: integer
- grpc:
+ flexVolume:
properties:
- port:
+ driver:
+ type: string
+ fsType:
+ type: string
+ options:
+ additionalProperties:
+ type: string
+ type: object
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - driver
+ type: object
+ flocker:
+ properties:
+ datasetName:
+ type: string
+ datasetUUID:
+ type: string
+ type: object
+ gcePersistentDisk:
+ properties:
+ fsType:
+ type: string
+ partition:
format: int32
type: integer
- service:
- default: ""
+ pdName:
type: string
+ readOnly:
+ type: boolean
required:
- - port
+ - pdName
type: object
- httpGet:
+ gitRepo:
properties:
- host:
+ directory:
type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- x-kubernetes-list-type: atomic
- path:
+ repository:
type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
+ revision:
type: string
required:
- - port
+ - repository
type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
+ glusterfs:
properties:
- host:
+ endpoints:
type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
+ path:
+ type: string
+ readOnly:
+ type: boolean
required:
- - port
+ - endpoints
+ - path
type: object
- terminationGracePeriodSeconds:
- format: int64
- type: integer
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- name:
- type: string
- ports:
- items:
- properties:
- containerPort:
- format: int32
- type: integer
- hostIP:
- type: string
- hostPort:
- format: int32
- type: integer
- name:
- type: string
- protocol:
- default: TCP
- type: string
- required:
- - containerPort
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - containerPort
- - protocol
- x-kubernetes-list-type: map
- readinessProbe:
- properties:
- exec:
+ hostPath:
properties:
- command:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
+ path:
+ type: string
+ type:
+ type: string
+ required:
+ - path
type: object
- failureThreshold:
- format: int32
- type: integer
- grpc:
+ image:
properties:
- port:
- format: int32
- type: integer
- service:
- default: ""
+ pullPolicy:
+ type: string
+ reference:
type: string
- required:
- - port
type: object
- httpGet:
+ iscsi:
properties:
- host:
+ chapAuthDiscovery:
+ type: boolean
+ chapAuthSession:
+ type: boolean
+ fsType:
type: string
- httpHeaders:
+ initiatorName:
+ type: string
+ iqn:
+ type: string
+ iscsiInterface:
+ default: default
+ type: string
+ lun:
+ format: int32
+ type: integer
+ portals:
items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
+ type: string
type: array
x-kubernetes-list-type: atomic
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ targetPortal:
+ type: string
+ required:
+ - iqn
+ - lun
+ - targetPortal
+ type: object
+ name:
+ type: string
+ nfs:
+ properties:
path:
type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
+ readOnly:
+ type: boolean
+ server:
type: string
required:
- - port
+ - path
+ - server
type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
+ persistentVolumeClaim:
properties:
- host:
+ claimName:
type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
+ readOnly:
+ type: boolean
required:
- - port
- type: object
- terminationGracePeriodSeconds:
- format: int64
- type: integer
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- resizePolicy:
- items:
- properties:
- resourceName:
- type: string
- restartPolicy:
- type: string
- required:
- - resourceName
- - restartPolicy
- type: object
- type: array
- x-kubernetes-list-type: atomic
- resources:
- properties:
- claims:
- items:
- properties:
- name:
- type: string
- request:
- type: string
- required:
- - name
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - name
- x-kubernetes-list-type: map
- limits:
- additionalProperties:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
+ - claimName
type: object
- requests:
- additionalProperties:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
+ photonPersistentDisk:
+ properties:
+ fsType:
+ type: string
+ pdID:
+ type: string
+ required:
+ - pdID
type: object
- type: object
- restartPolicy:
- type: string
- securityContext:
- properties:
- allowPrivilegeEscalation:
- type: boolean
- appArmorProfile:
+ portworxVolume:
properties:
- localhostProfile:
+ fsType:
type: string
- type:
+ readOnly:
+ type: boolean
+ volumeID:
type: string
required:
- - type
+ - volumeID
type: object
- capabilities:
+ projected:
properties:
- add:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- drop:
+ defaultMode:
+ format: int32
+ type: integer
+ sources:
items:
- type: string
+ properties:
+ clusterTrustBundle:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ name:
+ type: string
+ optional:
+ type: boolean
+ path:
+ type: string
+ signerName:
+ type: string
+ required:
+ - path
+ type: object
+ configMap:
+ properties:
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ downwardAPI:
+ properties:
+ items:
+ items:
+ properties:
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ podCertificate:
+ properties:
+ certificateChainPath:
+ type: string
+ credentialBundlePath:
+ type: string
+ keyPath:
+ type: string
+ keyType:
+ type: string
+ maxExpirationSeconds:
+ format: int32
+ type: integer
+ signerName:
+ type: string
+ userAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ required:
+ - keyType
+ - signerName
+ type: object
+ secret:
+ properties:
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ serviceAccountToken:
+ properties:
+ audience:
+ type: string
+ expirationSeconds:
+ format: int64
+ type: integer
+ path:
+ type: string
+ required:
+ - path
+ type: object
+ type: object
type: array
x-kubernetes-list-type: atomic
type: object
- privileged:
- type: boolean
- procMount:
- type: string
- readOnlyRootFilesystem:
- type: boolean
- runAsGroup:
- format: int64
- type: integer
- runAsNonRoot:
- type: boolean
- runAsUser:
- format: int64
- type: integer
- seLinuxOptions:
+ quobyte:
properties:
- level:
+ group:
type: string
- role:
+ readOnly:
+ type: boolean
+ registry:
type: string
- type:
+ tenant:
type: string
user:
type: string
- type: object
- seccompProfile:
- properties:
- localhostProfile:
- type: string
- type:
+ volume:
type: string
required:
- - type
+ - registry
+ - volume
type: object
- windowsOptions:
+ rbd:
properties:
- gmsaCredentialSpec:
+ fsType:
type: string
- gmsaCredentialSpecName:
+ image:
type: string
- hostProcess:
- type: boolean
- runAsUserName:
+ keyring:
+ default: /etc/ceph/keyring
type: string
- type: object
- type: object
- startupProbe:
- properties:
- exec:
- properties:
- command:
+ monitors:
items:
type: string
type: array
x-kubernetes-list-type: atomic
- type: object
- failureThreshold:
- format: int32
- type: integer
- grpc:
- properties:
- port:
- format: int32
- type: integer
- service:
- default: ""
+ pool:
+ default: rbd
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ user:
+ default: admin
type: string
required:
- - port
+ - image
+ - monitors
type: object
- httpGet:
+ scaleIO:
properties:
- host:
+ fsType:
+ default: xfs
type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- x-kubernetes-list-type: atomic
- path:
+ gateway:
type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
+ protectionDomain:
type: string
- required:
- - port
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ sslEnabled:
+ type: boolean
+ storageMode:
+ default: ThinProvisioned
type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- terminationGracePeriodSeconds:
- format: int64
- type: integer
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- stdin:
- type: boolean
- stdinOnce:
- type: boolean
- terminationMessagePath:
- type: string
- terminationMessagePolicy:
- type: string
- tty:
- type: boolean
- volumeDevices:
- items:
- properties:
- devicePath:
- type: string
- name:
- type: string
- required:
- - devicePath
- - name
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - devicePath
- x-kubernetes-list-type: map
- volumeMounts:
- items:
- properties:
- mountPath:
- type: string
- mountPropagation:
- type: string
- name:
- type: string
- readOnly:
- type: boolean
- recursiveReadOnly:
- type: string
- subPath:
- type: string
- subPathExpr:
- type: string
- required:
- - mountPath
- - name
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - mountPath
- x-kubernetes-list-type: map
- workingDir:
- type: string
- required:
- - name
- type: object
- type: array
- additionalEnv:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- valueFrom:
- properties:
- configMapKeyRef:
- properties:
- key:
+ storagePool:
+ type: string
+ system:
type: string
- name:
- default: ""
+ volumeName:
type: string
- optional:
- type: boolean
required:
- - key
+ - gateway
+ - secretRef
+ - system
type: object
- x-kubernetes-map-type: atomic
- fieldRef:
+ secret:
properties:
- apiVersion:
- type: string
- fieldPath:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ optional:
+ type: boolean
+ secretName:
type: string
- required:
- - fieldPath
type: object
- x-kubernetes-map-type: atomic
- resourceFieldRef:
+ storageos:
properties:
- containerName:
+ fsType:
type: string
- divisor:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- resource:
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ volumeName:
+ type: string
+ volumeNamespace:
type: string
- required:
- - resource
type: object
- x-kubernetes-map-type: atomic
- secretKeyRef:
+ vsphereVolume:
properties:
- key:
+ fsType:
type: string
- name:
- default: ""
+ storagePolicyID:
+ type: string
+ storagePolicyName:
+ type: string
+ volumePath:
type: string
- optional:
- type: boolean
required:
- - key
+ - volumePath
type: object
- x-kubernetes-map-type: atomic
+ required:
+ - name
type: object
- required:
- - name
- type: object
- type: array
- additionalPorts:
- items:
- properties:
- containerPort:
- format: int32
- type: integer
- hostIP:
- type: string
- hostPort:
- format: int32
- type: integer
- name:
- type: string
- protocol:
- default: TCP
- type: string
- required:
- - containerPort
- type: object
- type: array
- additionalServicePorts:
- items:
- properties:
- appProtocol:
- type: string
- name:
- type: string
- nodePort:
- format: int32
- type: integer
- port:
- format: int32
- type: integer
- protocol:
- default: TCP
- type: string
- targetPort:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: array
- additionalVolumeMounts:
- items:
- properties:
- mountPath:
- type: string
- mountPropagation:
- type: string
- name:
- type: string
- readOnly:
- type: boolean
- recursiveReadOnly:
- type: string
- subPath:
- type: string
- subPathExpr:
+ type: array
+ configMaps:
+ items:
type: string
- required:
- - mountPath
- - name
- type: object
- type: array
- additionalVolumes:
- items:
- properties:
- awsElasticBlockStore:
+ type: array
+ defaultHashringStorageSize:
+ default: 10Gi
+ type: string
+ hashrings:
+ items:
properties:
- fsType:
+ externalLabels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
type: string
- partition:
+ replicas:
format: int32
type: integer
- readOnly:
- type: boolean
- volumeID:
- type: string
- required:
- - volumeID
- type: object
- azureDisk:
- properties:
- cachingMode:
- type: string
- diskName:
- type: string
- diskURI:
- type: string
- fsType:
- default: ext4
- type: string
- kind:
+ storageSize:
type: string
- readOnly:
- default: false
- type: boolean
+ tenancyConfig:
+ properties:
+ defaultTenantID:
+ default: default-tenant
+ type: string
+ splitTenantLabelName:
+ type: string
+ tenantCertificateField:
+ enum:
+ - organization
+ - organizationalUnit
+ - commonName
+ type: string
+ tenantHeader:
+ default: THANOS-TENANT
+ type: string
+ tenantLabelName:
+ default: tenant_id
+ type: string
+ tenantMatcherType:
+ default: exact
+ enum:
+ - exact
+ - glob
+ type: string
+ tenants:
+ items:
+ type: string
+ type: array
+ type: object
+ tsdbConfig:
+ properties:
+ retention:
+ default: 24h
+ type: string
+ required:
+ - retention
+ type: object
required:
- - diskName
- - diskURI
+ - storageSize
type: object
- azureFile:
+ type: array
+ secrets:
+ items:
+ type: string
+ type: array
+ required:
+ - hashrings
+ type: object
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ logFormat:
+ default: logfmt
+ enum:
+ - logfmt
+ - json
+ type: string
+ logLevel:
+ enum:
+ - debug
+ - info
+ - warn
+ - error
+ type: string
+ nodeSelector:
+ additionalProperties:
+ type: string
+ type: object
+ podDisruptionBudgetConfig:
+ default:
+ enable: true
+ properties:
+ enable:
+ type: boolean
+ type: object
+ resourceRequirements:
+ properties:
+ claims:
+ items:
properties:
- readOnly:
- type: boolean
- secretName:
+ name:
type: string
- shareName:
+ request:
type: string
required:
- - secretName
- - shareName
+ - name
type: object
- cephfs:
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ routerSpec:
+ properties:
+ additionalArgs:
+ items:
+ type: string
+ type: array
+ additionalContainers:
+ items:
properties:
- monitors:
+ args:
items:
type: string
type: array
x-kubernetes-list-type: atomic
- path:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ envFrom:
+ items:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ prefix:
+ type: string
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ image:
type: string
- readOnly:
- type: boolean
- secretFile:
+ imagePullPolicy:
type: string
- secretRef:
+ lifecycle:
properties:
- name:
- default: ""
+ postStart:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ preStop:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ stopSignal:
type: string
type: object
- x-kubernetes-map-type: atomic
- user:
- type: string
- required:
- - monitors
- type: object
- cinder:
- properties:
- fsType:
- type: string
- readOnly:
- type: boolean
- secretRef:
+ livenessProbe:
properties:
- name:
- default: ""
- type: string
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
type: object
- x-kubernetes-map-type: atomic
- volumeID:
+ name:
type: string
- required:
- - volumeID
- type: object
- configMap:
- properties:
- defaultMode:
- format: int32
- type: integer
- items:
+ ports:
items:
properties:
- key:
- type: string
- mode:
+ containerPort:
format: int32
type: integer
- path:
+ hostIP:
type: string
- required:
- - key
- - path
- type: object
- type: array
- x-kubernetes-list-type: atomic
- name:
- default: ""
- type: string
- optional:
- type: boolean
- type: object
- x-kubernetes-map-type: atomic
- csi:
- properties:
- driver:
- type: string
- fsType:
- type: string
- nodePublishSecretRef:
- properties:
- name:
- default: ""
- type: string
- type: object
- x-kubernetes-map-type: atomic
- readOnly:
- type: boolean
- volumeAttributes:
- additionalProperties:
- type: string
- type: object
- required:
- - driver
- type: object
- downwardAPI:
- properties:
- defaultMode:
- format: int32
- type: integer
- items:
- items:
- properties:
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- x-kubernetes-map-type: atomic
- mode:
+ hostPort:
format: int32
type: integer
- path:
+ name:
+ type: string
+ protocol:
+ default: TCP
type: string
- resourceFieldRef:
- properties:
- containerName:
- type: string
- divisor:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- resource:
- type: string
- required:
- - resource
- type: object
- x-kubernetes-map-type: atomic
required:
- - path
+ - containerPort
type: object
type: array
- x-kubernetes-list-type: atomic
- type: object
- emptyDir:
- properties:
- medium:
- type: string
- sizeLimit:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- type: object
- ephemeral:
- properties:
- volumeClaimTemplate:
+ x-kubernetes-list-map-keys:
+ - containerPort
+ - protocol
+ x-kubernetes-list-type: map
+ readinessProbe:
properties:
- metadata:
+ exec:
properties:
- annotations:
- additionalProperties:
- type: string
- type: object
- finalizers:
+ command:
items:
type: string
type: array
- labels:
- additionalProperties:
- type: string
- type: object
- name:
- type: string
- namespace:
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
type: string
+ required:
+ - port
type: object
- spec:
+ httpGet:
properties:
- accessModes:
+ host:
+ type: string
+ httpHeaders:
items:
- type: string
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
type: array
x-kubernetes-list-type: atomic
- dataSource:
- properties:
- apiGroup:
- type: string
- kind:
- type: string
- name:
- type: string
- required:
- - kind
- - name
- type: object
- x-kubernetes-map-type: atomic
- dataSourceRef:
- properties:
- apiGroup:
- type: string
- kind:
- type: string
- name:
- type: string
- namespace:
- type: string
- required:
- - kind
- - name
- type: object
- resources:
- properties:
- limits:
- additionalProperties:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- type: object
- requests:
- additionalProperties:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- type: object
- type: object
- selector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
- type: array
- x-kubernetes-list-type: atomic
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- x-kubernetes-map-type: atomic
- storageClassName:
- type: string
- volumeAttributesClassName:
- type: string
- volumeMode:
+ path:
type: string
- volumeName:
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
type: string
+ required:
+ - port
type: object
- required:
- - spec
- type: object
- type: object
- fc:
- properties:
- fsType:
- type: string
- lun:
- format: int32
- type: integer
- readOnly:
- type: boolean
- targetWWNs:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- wwids:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- type: object
- flexVolume:
- properties:
- driver:
- type: string
- fsType:
- type: string
- options:
- additionalProperties:
- type: string
- type: object
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- default: ""
- type: string
- type: object
- x-kubernetes-map-type: atomic
- required:
- - driver
- type: object
- flocker:
- properties:
- datasetName:
- type: string
- datasetUUID:
- type: string
- type: object
- gcePersistentDisk:
- properties:
- fsType:
- type: string
- partition:
- format: int32
- type: integer
- pdName:
- type: string
- readOnly:
- type: boolean
- required:
- - pdName
- type: object
- gitRepo:
- properties:
- directory:
- type: string
- repository:
- type: string
- revision:
- type: string
- required:
- - repository
- type: object
- glusterfs:
- properties:
- endpoints:
- type: string
- path:
- type: string
- readOnly:
- type: boolean
- required:
- - endpoints
- - path
- type: object
- hostPath:
- properties:
- path:
- type: string
- type:
- type: string
- required:
- - path
- type: object
- image:
- properties:
- pullPolicy:
- type: string
- reference:
- type: string
- type: object
- iscsi:
- properties:
- chapAuthDiscovery:
- type: boolean
- chapAuthSession:
- type: boolean
- fsType:
- type: string
- initiatorName:
- type: string
- iqn:
- type: string
- iscsiInterface:
- default: default
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ resizePolicy:
+ items:
+ properties:
+ resourceName:
+ type: string
+ restartPolicy:
+ type: string
+ required:
+ - resourceName
+ - restartPolicy
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ resources:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ restartPolicy:
type: string
- lun:
- format: int32
- type: integer
- portals:
+ restartPolicyRules:
items:
- type: string
+ properties:
+ action:
+ type: string
+ exitCodes:
+ properties:
+ operator:
+ type: string
+ values:
+ items:
+ format: int32
+ type: integer
+ type: array
+ x-kubernetes-list-type: set
+ required:
+ - operator
+ type: object
+ required:
+ - action
+ type: object
type: array
x-kubernetes-list-type: atomic
- readOnly:
- type: boolean
- secretRef:
+ securityContext:
properties:
- name:
- default: ""
+ allowPrivilegeEscalation:
+ type: boolean
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ capabilities:
+ properties:
+ add:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ drop:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ privileged:
+ type: boolean
+ procMount:
type: string
+ readOnlyRootFilesystem:
+ type: boolean
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
type: object
- x-kubernetes-map-type: atomic
- targetPortal:
- type: string
- required:
- - iqn
- - lun
- - targetPortal
- type: object
- name:
- type: string
- nfs:
- properties:
- path:
- type: string
- readOnly:
+ startupProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ stdin:
type: boolean
- server:
+ stdinOnce:
+ type: boolean
+ terminationMessagePath:
type: string
- required:
- - path
- - server
- type: object
- persistentVolumeClaim:
- properties:
- claimName:
+ terminationMessagePolicy:
type: string
- readOnly:
+ tty:
type: boolean
- required:
- - claimName
- type: object
- photonPersistentDisk:
- properties:
- fsType:
- type: string
- pdID:
+ volumeDevices:
+ items:
+ properties:
+ devicePath:
+ type: string
+ name:
+ type: string
+ required:
+ - devicePath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - devicePath
+ x-kubernetes-list-type: map
+ volumeMounts:
+ items:
+ properties:
+ mountPath:
+ type: string
+ mountPropagation:
+ type: string
+ name:
+ type: string
+ readOnly:
+ type: boolean
+ recursiveReadOnly:
+ type: string
+ subPath:
+ type: string
+ subPathExpr:
+ type: string
+ required:
+ - mountPath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - mountPath
+ x-kubernetes-list-type: map
+ workingDir:
type: string
required:
- - pdID
+ - name
type: object
- portworxVolume:
+ type: array
+ additionalEnv:
+ items:
properties:
- fsType:
+ name:
type: string
- readOnly:
- type: boolean
- volumeID:
+ value:
type: string
- required:
- - volumeID
- type: object
- projected:
- properties:
- defaultMode:
- format: int32
- type: integer
- sources:
- items:
- properties:
- clusterTrustBundle:
- properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
- type: array
- x-kubernetes-list-type: atomic
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- x-kubernetes-map-type: atomic
- name:
- type: string
- optional:
- type: boolean
- path:
- type: string
- signerName:
- type: string
- required:
- - path
- type: object
- configMap:
- properties:
- items:
- items:
- properties:
- key:
- type: string
- mode:
- format: int32
- type: integer
- path:
- type: string
- required:
- - key
- - path
- type: object
- type: array
- x-kubernetes-list-type: atomic
- name:
- default: ""
- type: string
- optional:
- type: boolean
- type: object
- x-kubernetes-map-type: atomic
- downwardAPI:
- properties:
- items:
- items:
- properties:
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- x-kubernetes-map-type: atomic
- mode:
- format: int32
- type: integer
- path:
- type: string
- resourceFieldRef:
- properties:
- containerName:
- type: string
- divisor:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- resource:
- type: string
- required:
- - resource
- type: object
- x-kubernetes-map-type: atomic
- required:
- - path
- type: object
- type: array
- x-kubernetes-list-type: atomic
- type: object
- secret:
- properties:
- items:
- items:
- properties:
- key:
- type: string
- mode:
- format: int32
- type: integer
- path:
- type: string
- required:
- - key
- - path
- type: object
- type: array
- x-kubernetes-list-type: atomic
- name:
- default: ""
- type: string
- optional:
- type: boolean
- type: object
- x-kubernetes-map-type: atomic
- serviceAccountToken:
- properties:
- audience:
- type: string
- expirationSeconds:
- format: int64
- type: integer
- path:
- type: string
- required:
- - path
- type: object
- type: object
- type: array
- x-kubernetes-list-type: atomic
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
type: object
- quobyte:
+ type: array
+ additionalPorts:
+ items:
properties:
- group:
- type: string
- readOnly:
- type: boolean
- registry:
- type: string
- tenant:
+ containerPort:
+ format: int32
+ type: integer
+ hostIP:
type: string
- user:
+ hostPort:
+ format: int32
+ type: integer
+ name:
type: string
- volume:
+ protocol:
+ default: TCP
type: string
required:
- - registry
- - volume
+ - containerPort
type: object
- rbd:
+ type: array
+ additionalServicePorts:
+ items:
properties:
- fsType:
- type: string
- image:
- type: string
- keyring:
- default: /etc/ceph/keyring
+ appProtocol:
type: string
- monitors:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- pool:
- default: rbd
+ name:
type: string
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- default: ""
- type: string
- type: object
- x-kubernetes-map-type: atomic
- user:
- default: admin
+ nodePort:
+ format: int32
+ type: integer
+ port:
+ format: int32
+ type: integer
+ protocol:
+ default: TCP
type: string
+ targetPort:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
required:
- - image
- - monitors
+ - port
type: object
- scaleIO:
+ type: array
+ additionalVolumeMounts:
+ items:
properties:
- fsType:
- default: xfs
+ mountPath:
type: string
- gateway:
+ mountPropagation:
type: string
- protectionDomain:
+ name:
type: string
readOnly:
type: boolean
- secretRef:
- properties:
- name:
- default: ""
- type: string
- type: object
- x-kubernetes-map-type: atomic
- sslEnabled:
- type: boolean
- storageMode:
- default: ThinProvisioned
- type: string
- storagePool:
+ recursiveReadOnly:
type: string
- system:
+ subPath:
type: string
- volumeName:
+ subPathExpr:
type: string
required:
- - gateway
- - secretRef
- - system
- type: object
- secret:
- properties:
- defaultMode:
- format: int32
- type: integer
- items:
- items:
- properties:
- key:
- type: string
- mode:
- format: int32
- type: integer
- path:
- type: string
- required:
- - key
- - path
- type: object
- type: array
- x-kubernetes-list-type: atomic
- optional:
- type: boolean
- secretName:
- type: string
+ - mountPath
+ - name
type: object
- storageos:
+ type: array
+ additionalVolumes:
+ items:
properties:
- fsType:
- type: string
- readOnly:
- type: boolean
- secretRef:
+ awsElasticBlockStore:
properties:
- name:
- default: ""
+ fsType:
+ type: string
+ partition:
+ format: int32
+ type: integer
+ readOnly:
+ type: boolean
+ volumeID:
type: string
+ required:
+ - volumeID
type: object
- x-kubernetes-map-type: atomic
- volumeName:
- type: string
- volumeNamespace:
- type: string
- type: object
- vsphereVolume:
- properties:
- fsType:
- type: string
- storagePolicyID:
- type: string
- storagePolicyName:
- type: string
- volumePath:
- type: string
- required:
- - volumePath
- type: object
- required:
- - name
- type: object
- type: array
- affinity:
- properties:
- nodeAffinity:
- properties:
- preferredDuringSchedulingIgnoredDuringExecution:
- items:
+ azureDisk:
+ properties:
+ cachingMode:
+ type: string
+ diskName:
+ type: string
+ diskURI:
+ type: string
+ fsType:
+ default: ext4
+ type: string
+ kind:
+ type: string
+ readOnly:
+ default: false
+ type: boolean
+ required:
+ - diskName
+ - diskURI
+ type: object
+ azureFile:
+ properties:
+ readOnly:
+ type: boolean
+ secretName:
+ type: string
+ shareName:
+ type: string
+ required:
+ - secretName
+ - shareName
+ type: object
+ cephfs:
properties:
- preference:
+ monitors:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ secretFile:
+ type: string
+ secretRef:
properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
- type: array
- x-kubernetes-list-type: atomic
- matchFields:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
- type: array
- x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
type: object
x-kubernetes-map-type: atomic
- weight:
- format: int32
- type: integer
+ user:
+ type: string
required:
- - preference
- - weight
+ - monitors
type: object
- type: array
- x-kubernetes-list-type: atomic
- requiredDuringSchedulingIgnoredDuringExecution:
- properties:
- nodeSelectorTerms:
- items:
+ cinder:
+ properties:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
- type: array
- x-kubernetes-list-type: atomic
- matchFields:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
- type: array
- x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
type: object
x-kubernetes-map-type: atomic
- type: array
- x-kubernetes-list-type: atomic
- required:
- - nodeSelectorTerms
- type: object
- x-kubernetes-map-type: atomic
- type: object
- podAffinity:
- properties:
- preferredDuringSchedulingIgnoredDuringExecution:
- items:
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ configMap:
properties:
- podAffinityTerm:
- properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
- type: array
- x-kubernetes-list-type: atomic
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- x-kubernetes-map-type: atomic
- matchLabelKeys:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- mismatchLabelKeys:
- items:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
+ items:
+ properties:
+ key:
type: string
- type: array
- x-kubernetes-list-type: atomic
- namespaceSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
- type: array
- x-kubernetes-list-type: atomic
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- x-kubernetes-map-type: atomic
- namespaces:
- items:
+ mode:
+ format: int32
+ type: integer
+ path:
type: string
- type: array
- x-kubernetes-list-type: atomic
- topologyKey:
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ csi:
+ properties:
+ driver:
+ type: string
+ fsType:
+ type: string
+ nodePublishSecretRef:
+ properties:
+ name:
+ default: ""
type: string
- required:
- - topologyKey
type: object
- weight:
- format: int32
- type: integer
+ x-kubernetes-map-type: atomic
+ readOnly:
+ type: boolean
+ volumeAttributes:
+ additionalProperties:
+ type: string
+ type: object
required:
- - podAffinityTerm
- - weight
+ - driver
type: object
- type: array
- x-kubernetes-list-type: atomic
- requiredDuringSchedulingIgnoredDuringExecution:
- items:
+ downwardAPI:
properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
+ items:
+ properties:
+ fieldRef:
properties:
- key:
+ apiVersion:
type: string
- operator:
+ fieldPath:
type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
required:
- - key
- - operator
+ - fieldPath
type: object
- type: array
- x-kubernetes-list-type: atomic
- matchLabels:
- additionalProperties:
+ x-kubernetes-map-type: atomic
+ mode:
+ format: int32
+ type: integer
+ path:
type: string
- type: object
- type: object
- x-kubernetes-map-type: atomic
- matchLabelKeys:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- mismatchLabelKeys:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- namespaceSelector:
- properties:
- matchExpressions:
- items:
+ resourceFieldRef:
properties:
- key:
+ containerName:
type: string
- operator:
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
required:
- - key
- - operator
+ - resource
type: object
- type: array
- x-kubernetes-list-type: atomic
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- x-kubernetes-map-type: atomic
- namespaces:
- items:
- type: string
+ x-kubernetes-map-type: atomic
+ required:
+ - path
+ type: object
type: array
x-kubernetes-list-type: atomic
- topologyKey:
+ type: object
+ emptyDir:
+ properties:
+ medium:
type: string
- required:
- - topologyKey
+ sizeLimit:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
type: object
- type: array
- x-kubernetes-list-type: atomic
- type: object
- podAntiAffinity:
- properties:
- preferredDuringSchedulingIgnoredDuringExecution:
- items:
+ ephemeral:
properties:
- podAffinityTerm:
+ volumeClaimTemplate:
properties:
- labelSelector:
+ metadata:
properties:
- matchExpressions:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
+ type: string
type: array
- x-kubernetes-list-type: atomic
- matchLabels:
+ labels:
additionalProperties:
type: string
type: object
+ name:
+ type: string
+ namespace:
+ type: string
type: object
- x-kubernetes-map-type: atomic
- matchLabelKeys:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- mismatchLabelKeys:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- namespaceSelector:
+ spec:
properties:
- matchExpressions:
+ accessModes:
items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
+ type: string
type: array
x-kubernetes-list-type: atomic
- matchLabels:
- additionalProperties:
- type: string
+ dataSource:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ required:
+ - kind
+ - name
type: object
- type: object
- x-kubernetes-map-type: atomic
- namespaces:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- topologyKey:
- type: string
+ x-kubernetes-map-type: atomic
+ dataSourceRef:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ resources:
+ properties:
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ selector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ storageClassName:
+ type: string
+ volumeAttributesClassName:
+ type: string
+ volumeMode:
+ type: string
+ volumeName:
+ type: string
+ type: object
required:
- - topologyKey
+ - spec
type: object
- weight:
- format: int32
- type: integer
- required:
- - podAffinityTerm
- - weight
type: object
- type: array
- x-kubernetes-list-type: atomic
- requiredDuringSchedulingIgnoredDuringExecution:
- items:
+ fc:
properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
- type: array
- x-kubernetes-list-type: atomic
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- x-kubernetes-map-type: atomic
- matchLabelKeys:
+ fsType:
+ type: string
+ lun:
+ format: int32
+ type: integer
+ readOnly:
+ type: boolean
+ targetWWNs:
items:
type: string
type: array
x-kubernetes-list-type: atomic
- mismatchLabelKeys:
+ wwids:
items:
type: string
type: array
x-kubernetes-list-type: atomic
- namespaceSelector:
+ type: object
+ flexVolume:
+ properties:
+ driver:
+ type: string
+ fsType:
+ type: string
+ options:
+ additionalProperties:
+ type: string
+ type: object
+ readOnly:
+ type: boolean
+ secretRef:
properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
- type: array
- x-kubernetes-list-type: atomic
- matchLabels:
- additionalProperties:
- type: string
- type: object
+ name:
+ default: ""
+ type: string
type: object
x-kubernetes-map-type: atomic
- namespaces:
+ required:
+ - driver
+ type: object
+ flocker:
+ properties:
+ datasetName:
+ type: string
+ datasetUUID:
+ type: string
+ type: object
+ gcePersistentDisk:
+ properties:
+ fsType:
+ type: string
+ partition:
+ format: int32
+ type: integer
+ pdName:
+ type: string
+ readOnly:
+ type: boolean
+ required:
+ - pdName
+ type: object
+ gitRepo:
+ properties:
+ directory:
+ type: string
+ repository:
+ type: string
+ revision:
+ type: string
+ required:
+ - repository
+ type: object
+ glusterfs:
+ properties:
+ endpoints:
+ type: string
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ required:
+ - endpoints
+ - path
+ type: object
+ hostPath:
+ properties:
+ path:
+ type: string
+ type:
+ type: string
+ required:
+ - path
+ type: object
+ image:
+ properties:
+ pullPolicy:
+ type: string
+ reference:
+ type: string
+ type: object
+ iscsi:
+ properties:
+ chapAuthDiscovery:
+ type: boolean
+ chapAuthSession:
+ type: boolean
+ fsType:
+ type: string
+ initiatorName:
+ type: string
+ iqn:
+ type: string
+ iscsiInterface:
+ default: default
+ type: string
+ lun:
+ format: int32
+ type: integer
+ portals:
items:
type: string
type: array
x-kubernetes-list-type: atomic
- topologyKey:
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ targetPortal:
type: string
required:
- - topologyKey
+ - iqn
+ - lun
+ - targetPortal
type: object
- type: array
- x-kubernetes-list-type: atomic
- type: object
- type: object
- baseImage:
- type: string
- imagePullPolicy:
- default: IfNotPresent
- enum:
- - Always
- - Never
- - IfNotPresent
- type: string
- imagePullSecrets:
- items:
- properties:
- name:
- default: ""
- type: string
- type: object
- x-kubernetes-map-type: atomic
- type: array
- ingesterSpec:
- properties:
- additionalArgs:
- items:
- type: string
- type: array
- additionalContainers:
- items:
- properties:
- args:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- command:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- env:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- valueFrom:
+ name:
+ type: string
+ nfs:
+ properties:
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ server:
+ type: string
+ required:
+ - path
+ - server
+ type: object
+ persistentVolumeClaim:
+ properties:
+ claimName:
+ type: string
+ readOnly:
+ type: boolean
+ required:
+ - claimName
+ type: object
+ photonPersistentDisk:
+ properties:
+ fsType:
+ type: string
+ pdID:
+ type: string
+ required:
+ - pdID
+ type: object
+ portworxVolume:
+ properties:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ projected:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ sources:
+ items:
properties:
- configMapKeyRef:
+ clusterTrustBundle:
properties:
- key:
- type: string
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
name:
- default: ""
type: string
optional:
type: boolean
- required:
- - key
- type: object
- x-kubernetes-map-type: atomic
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- x-kubernetes-map-type: atomic
- resourceFieldRef:
- properties:
- containerName:
+ path:
type: string
- divisor:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- resource:
+ signerName:
type: string
required:
- - resource
+ - path
type: object
- x-kubernetes-map-type: atomic
- secretKeyRef:
+ configMap:
properties:
- key:
- type: string
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
name:
default: ""
type: string
optional:
type: boolean
- required:
- - key
type: object
x-kubernetes-map-type: atomic
- type: object
- required:
- - name
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - name
- x-kubernetes-list-type: map
- envFrom:
- items:
- properties:
- configMapRef:
- properties:
- name:
- default: ""
- type: string
- optional:
- type: boolean
- type: object
- x-kubernetes-map-type: atomic
- prefix:
- type: string
- secretRef:
- properties:
- name:
- default: ""
- type: string
- optional:
- type: boolean
- type: object
- x-kubernetes-map-type: atomic
- type: object
- type: array
- x-kubernetes-list-type: atomic
- image:
- type: string
- imagePullPolicy:
- type: string
- lifecycle:
- properties:
- postStart:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- x-kubernetes-list-type: atomic
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- sleep:
- properties:
- seconds:
- format: int64
- type: integer
- required:
- - seconds
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- preStop:
- properties:
- exec:
- properties:
- command:
+ downwardAPI:
+ properties:
items:
+ items:
+ properties:
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ podCertificate:
+ properties:
+ certificateChainPath:
type: string
- type: array
- x-kubernetes-list-type: atomic
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
+ credentialBundlePath:
+ type: string
+ keyPath:
+ type: string
+ keyType:
+ type: string
+ maxExpirationSeconds:
+ format: int32
+ type: integer
+ signerName:
+ type: string
+ userAnnotations:
+ additionalProperties:
+ type: string
type: object
- type: array
- x-kubernetes-list-type: atomic
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- sleep:
- properties:
- seconds:
- format: int64
- type: integer
- required:
- - seconds
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- stopSignal:
- type: string
- type: object
- livenessProbe:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- type: object
- failureThreshold:
- format: int32
- type: integer
- grpc:
- properties:
- port:
- format: int32
- type: integer
- service:
- default: ""
- type: string
- required:
- - port
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
+ required:
+ - keyType
+ - signerName
+ type: object
+ secret:
properties:
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
name:
+ default: ""
type: string
- value:
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ serviceAccountToken:
+ properties:
+ audience:
+ type: string
+ expirationSeconds:
+ format: int64
+ type: integer
+ path:
type: string
required:
- - name
- - value
+ - path
type: object
- type: array
- x-kubernetes-list-type: atomic
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- terminationGracePeriodSeconds:
- format: int64
- type: integer
- timeoutSeconds:
- format: int32
- type: integer
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
type: object
- name:
- type: string
- ports:
- items:
- properties:
- containerPort:
- format: int32
- type: integer
- hostIP:
- type: string
- hostPort:
- format: int32
- type: integer
- name:
- type: string
- protocol:
- default: TCP
- type: string
- required:
- - containerPort
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - containerPort
- - protocol
- x-kubernetes-list-type: map
- readinessProbe:
+ quobyte:
properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- type: object
- failureThreshold:
- format: int32
- type: integer
- grpc:
+ group:
+ type: string
+ readOnly:
+ type: boolean
+ registry:
+ type: string
+ tenant:
+ type: string
+ user:
+ type: string
+ volume:
+ type: string
+ required:
+ - registry
+ - volume
+ type: object
+ rbd:
+ properties:
+ fsType:
+ type: string
+ image:
+ type: string
+ keyring:
+ default: /etc/ceph/keyring
+ type: string
+ monitors:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ pool:
+ default: rbd
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
properties:
- port:
- format: int32
- type: integer
- service:
+ name:
default: ""
type: string
- required:
- - port
type: object
- httpGet:
+ x-kubernetes-map-type: atomic
+ user:
+ default: admin
+ type: string
+ required:
+ - image
+ - monitors
+ type: object
+ scaleIO:
+ properties:
+ fsType:
+ default: xfs
+ type: string
+ gateway:
+ type: string
+ protectionDomain:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- x-kubernetes-list-type: atomic
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
+ name:
+ default: ""
type: string
- required:
- - port
type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
+ x-kubernetes-map-type: atomic
+ sslEnabled:
+ type: boolean
+ storageMode:
+ default: ThinProvisioned
+ type: string
+ storagePool:
+ type: string
+ system:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - gateway
+ - secretRef
+ - system
+ type: object
+ secret:
+ properties:
+ defaultMode:
format: int32
type: integer
- tcpSocket:
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ optional:
+ type: boolean
+ secretName:
+ type: string
+ type: object
+ storageos:
+ properties:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
properties:
- host:
+ name:
+ default: ""
type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
type: object
- terminationGracePeriodSeconds:
- format: int64
- type: integer
- timeoutSeconds:
- format: int32
- type: integer
+ x-kubernetes-map-type: atomic
+ volumeName:
+ type: string
+ volumeNamespace:
+ type: string
type: object
- resizePolicy:
- items:
+ vsphereVolume:
+ properties:
+ fsType:
+ type: string
+ storagePolicyID:
+ type: string
+ storagePolicyName:
+ type: string
+ volumePath:
+ type: string
+ required:
+ - volumePath
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ configMaps:
+ items:
+ type: string
+ type: array
+ externalLabels:
+ additionalProperties:
+ type: string
+ type: object
+ imagePullPolicy:
+ type: string
+ logFormat:
+ type: string
+ replicas:
+ format: int32
+ type: integer
+ replicationFactor:
+ format: int32
+ type: integer
+ secrets:
+ items:
+ type: string
+ type: array
+ required:
+ - replicas
+ - replicationFactor
+ type: object
+ secrets:
+ items:
+ type: string
+ type: array
+ securityContext:
+ properties:
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ fsGroup:
+ format: int64
+ type: integer
+ fsGroupChangePolicy:
+ type: string
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxChangePolicy:
+ type: string
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ supplementalGroups:
+ items:
+ format: int64
+ type: integer
+ type: array
+ x-kubernetes-list-type: atomic
+ supplementalGroupsPolicy:
+ type: string
+ sysctls:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ tolerations:
+ items:
+ properties:
+ effect:
+ type: string
+ key:
+ type: string
+ operator:
+ type: string
+ tolerationSeconds:
+ format: int64
+ type: integer
+ value:
+ type: string
+ type: object
+ type: array
+ version:
+ type: string
+ required:
+ - ingesterSpec
+ - routerSpec
+ type: object
+ ruler:
+ properties:
+ additionalArgs:
+ items:
+ type: string
+ type: array
+ additionalContainers:
+ items:
+ properties:
+ args:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
properties:
- resourceName:
- type: string
- restartPolicy:
- type: string
- required:
- - resourceName
- - restartPolicy
- type: object
- type: array
- x-kubernetes-list-type: atomic
- resources:
- properties:
- claims:
- items:
+ configMapKeyRef:
properties:
+ key:
+ type: string
name:
+ default: ""
type: string
- request:
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
type: string
required:
- - name
+ - fieldPath
type: object
- type: array
- x-kubernetes-list-map-keys:
- - name
- x-kubernetes-list-type: map
- limits:
- additionalProperties:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- type: object
- requests:
- additionalProperties:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- type: object
- type: object
- restartPolicy:
- type: string
- securityContext:
- properties:
- allowPrivilegeEscalation:
- type: boolean
- appArmorProfile:
- properties:
- localhostProfile:
- type: string
- type:
- type: string
- required:
- - type
- type: object
- capabilities:
- properties:
- add:
- items:
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
type: string
- type: array
- x-kubernetes-list-type: atomic
- drop:
- items:
+ optional:
+ default: false
+ type: boolean
+ path:
type: string
- type: array
- x-kubernetes-list-type: atomic
- type: object
- privileged:
- type: boolean
- procMount:
- type: string
- readOnlyRootFilesystem:
- type: boolean
- runAsGroup:
- format: int64
- type: integer
- runAsNonRoot:
- type: boolean
- runAsUser:
- format: int64
- type: integer
- seLinuxOptions:
- properties:
- level:
- type: string
- role:
- type: string
- type:
- type: string
- user:
- type: string
- type: object
- seccompProfile:
- properties:
- localhostProfile:
- type: string
- type:
- type: string
- required:
- - type
- type: object
- windowsOptions:
- properties:
- gmsaCredentialSpec:
- type: string
- gmsaCredentialSpecName:
- type: string
- hostProcess:
- type: boolean
- runAsUserName:
- type: string
- type: object
- type: object
- startupProbe:
- properties:
- exec:
- properties:
- command:
- items:
+ volumeName:
type: string
- type: array
- x-kubernetes-list-type: atomic
- type: object
- failureThreshold:
- format: int32
- type: integer
- grpc:
- properties:
- port:
- format: int32
- type: integer
- service:
- default: ""
- type: string
- required:
- - port
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- x-kubernetes-list-type: atomic
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- terminationGracePeriodSeconds:
- format: int64
- type: integer
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- stdin:
- type: boolean
- stdinOnce:
- type: boolean
- terminationMessagePath:
- type: string
- terminationMessagePolicy:
- type: string
- tty:
- type: boolean
- volumeDevices:
- items:
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ envFrom:
+ items:
+ properties:
+ configMapRef:
properties:
- devicePath:
- type: string
name:
+ default: ""
type: string
- required:
- - devicePath
- - name
+ optional:
+ type: boolean
type: object
- type: array
- x-kubernetes-list-map-keys:
- - devicePath
- x-kubernetes-list-type: map
- volumeMounts:
- items:
+ x-kubernetes-map-type: atomic
+ prefix:
+ type: string
+ secretRef:
properties:
- mountPath:
- type: string
- mountPropagation:
- type: string
name:
+ default: ""
type: string
- readOnly:
+ optional:
type: boolean
- recursiveReadOnly:
- type: string
- subPath:
- type: string
- subPathExpr:
- type: string
- required:
- - mountPath
- - name
type: object
- type: array
- x-kubernetes-list-map-keys:
- - mountPath
- x-kubernetes-list-type: map
- workingDir:
- type: string
- required:
- - name
- type: object
- type: array
- additionalEnv:
- items:
+ x-kubernetes-map-type: atomic
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ image:
+ type: string
+ imagePullPolicy:
+ type: string
+ lifecycle:
properties:
- name:
- type: string
- value:
- type: string
- valueFrom:
+ postStart:
properties:
- configMapKeyRef:
- properties:
- key:
- type: string
- name:
- default: ""
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- x-kubernetes-map-type: atomic
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- x-kubernetes-map-type: atomic
- resourceFieldRef:
+ exec:
properties:
- containerName:
- type: string
- divisor:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- resource:
- type: string
- required:
- - resource
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
type: object
- x-kubernetes-map-type: atomic
- secretKeyRef:
+ httpGet:
properties:
- key:
- type: string
- name:
- default: ""
+ host:
type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- x-kubernetes-map-type: atomic
- type: object
- required:
- - name
- type: object
- type: array
- additionalPorts:
- items:
- properties:
- containerPort:
- format: int32
- type: integer
- hostIP:
- type: string
- hostPort:
- format: int32
- type: integer
- name:
- type: string
- protocol:
- default: TCP
- type: string
- required:
- - containerPort
- type: object
- type: array
- additionalServicePorts:
- items:
- properties:
- appProtocol:
- type: string
- name:
- type: string
- nodePort:
- format: int32
- type: integer
- port:
- format: int32
- type: integer
- protocol:
- default: TCP
- type: string
- targetPort:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: array
- additionalVolumeMounts:
- items:
- properties:
- mountPath:
- type: string
- mountPropagation:
- type: string
- name:
- type: string
- readOnly:
- type: boolean
- recursiveReadOnly:
- type: string
- subPath:
- type: string
- subPathExpr:
- type: string
- required:
- - mountPath
- - name
- type: object
- type: array
- additionalVolumes:
- items:
- properties:
- awsElasticBlockStore:
- properties:
- fsType:
- type: string
- partition:
- format: int32
- type: integer
- readOnly:
- type: boolean
- volumeID:
- type: string
- required:
- - volumeID
- type: object
- azureDisk:
- properties:
- cachingMode:
- type: string
- diskName:
- type: string
- diskURI:
- type: string
- fsType:
- default: ext4
- type: string
- kind:
- type: string
- readOnly:
- default: false
- type: boolean
- required:
- - diskName
- - diskURI
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
type: object
- azureFile:
+ preStop:
properties:
- readOnly:
- type: boolean
- secretName:
- type: string
- shareName:
- type: string
- required:
- - secretName
- - shareName
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
type: object
- cephfs:
+ stopSignal:
+ type: string
+ type: object
+ livenessProbe:
+ properties:
+ exec:
properties:
- monitors:
+ command:
items:
type: string
type: array
x-kubernetes-list-type: atomic
- path:
- type: string
- readOnly:
- type: boolean
- secretFile:
- type: string
- secretRef:
- properties:
- name:
- default: ""
- type: string
- type: object
- x-kubernetes-map-type: atomic
- user:
- type: string
- required:
- - monitors
type: object
- cinder:
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
properties:
- fsType:
- type: string
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- default: ""
- type: string
- type: object
- x-kubernetes-map-type: atomic
- volumeID:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
type: string
required:
- - volumeID
+ - port
type: object
- configMap:
+ httpGet:
properties:
- defaultMode:
- format: int32
- type: integer
- items:
+ host:
+ type: string
+ httpHeaders:
items:
properties:
- key:
+ name:
type: string
- mode:
- format: int32
- type: integer
- path:
+ value:
type: string
required:
- - key
- - path
+ - name
+ - value
type: object
type: array
x-kubernetes-list-type: atomic
- name:
- default: ""
+ path:
type: string
- optional:
- type: boolean
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
type: object
- x-kubernetes-map-type: atomic
- csi:
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
properties:
- driver:
- type: string
- fsType:
+ host:
type: string
- nodePublishSecretRef:
- properties:
- name:
- default: ""
- type: string
- type: object
- x-kubernetes-map-type: atomic
- readOnly:
- type: boolean
- volumeAttributes:
- additionalProperties:
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ name:
+ type: string
+ ports:
+ items:
+ properties:
+ containerPort:
+ format: int32
+ type: integer
+ hostIP:
+ type: string
+ hostPort:
+ format: int32
+ type: integer
+ name:
+ type: string
+ protocol:
+ default: TCP
+ type: string
+ required:
+ - containerPort
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - containerPort
+ - protocol
+ x-kubernetes-list-type: map
+ readinessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
type: string
- type: object
- required:
- - driver
+ type: array
+ x-kubernetes-list-type: atomic
type: object
- downwardAPI:
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
properties:
- defaultMode:
+ port:
format: int32
type: integer
- items:
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
items:
properties:
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- x-kubernetes-map-type: atomic
- mode:
- format: int32
- type: integer
- path:
+ name:
+ type: string
+ value:
type: string
- resourceFieldRef:
- properties:
- containerName:
- type: string
- divisor:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- resource:
- type: string
- required:
- - resource
- type: object
- x-kubernetes-map-type: atomic
required:
- - path
+ - name
+ - value
type: object
type: array
x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
type: object
- emptyDir:
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
properties:
- medium:
+ host:
type: string
- sizeLimit:
+ port:
anyOf:
- type: integer
- type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
+ required:
+ - port
type: object
- ephemeral:
- properties:
- volumeClaimTemplate:
- properties:
- metadata:
- properties:
- annotations:
- additionalProperties:
- type: string
- type: object
- finalizers:
- items:
- type: string
- type: array
- labels:
- additionalProperties:
- type: string
- type: object
- name:
- type: string
- namespace:
- type: string
- type: object
- spec:
- properties:
- accessModes:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- dataSource:
- properties:
- apiGroup:
- type: string
- kind:
- type: string
- name:
- type: string
- required:
- - kind
- - name
- type: object
- x-kubernetes-map-type: atomic
- dataSourceRef:
- properties:
- apiGroup:
- type: string
- kind:
- type: string
- name:
- type: string
- namespace:
- type: string
- required:
- - kind
- - name
- type: object
- resources:
- properties:
- limits:
- additionalProperties:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- type: object
- requests:
- additionalProperties:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- type: object
- type: object
- selector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
- type: array
- x-kubernetes-list-type: atomic
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- x-kubernetes-map-type: atomic
- storageClassName:
- type: string
- volumeAttributesClassName:
- type: string
- volumeMode:
- type: string
- volumeName:
- type: string
- type: object
- required:
- - spec
- type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ resizePolicy:
+ items:
+ properties:
+ resourceName:
+ type: string
+ restartPolicy:
+ type: string
+ required:
+ - resourceName
+ - restartPolicy
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ resources:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
type: object
- fc:
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ restartPolicy:
+ type: string
+ restartPolicyRules:
+ items:
+ properties:
+ action:
+ type: string
+ exitCodes:
+ properties:
+ operator:
+ type: string
+ values:
+ items:
+ format: int32
+ type: integer
+ type: array
+ x-kubernetes-list-type: set
+ required:
+ - operator
+ type: object
+ required:
+ - action
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ securityContext:
+ properties:
+ allowPrivilegeEscalation:
+ type: boolean
+ appArmorProfile:
properties:
- fsType:
+ localhostProfile:
type: string
- lun:
- format: int32
- type: integer
- readOnly:
- type: boolean
- targetWWNs:
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ capabilities:
+ properties:
+ add:
items:
type: string
type: array
x-kubernetes-list-type: atomic
- wwids:
+ drop:
items:
type: string
type: array
x-kubernetes-list-type: atomic
type: object
- flexVolume:
+ privileged:
+ type: boolean
+ procMount:
+ type: string
+ readOnlyRootFilesystem:
+ type: boolean
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxOptions:
properties:
- driver:
+ level:
type: string
- fsType:
+ role:
type: string
- options:
- additionalProperties:
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ startupProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
type: string
- type: object
- readOnly:
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ stdin:
+ type: boolean
+ stdinOnce:
+ type: boolean
+ terminationMessagePath:
+ type: string
+ terminationMessagePolicy:
+ type: string
+ tty:
+ type: boolean
+ volumeDevices:
+ items:
+ properties:
+ devicePath:
+ type: string
+ name:
+ type: string
+ required:
+ - devicePath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - devicePath
+ x-kubernetes-list-type: map
+ volumeMounts:
+ items:
+ properties:
+ mountPath:
+ type: string
+ mountPropagation:
+ type: string
+ name:
+ type: string
+ readOnly:
+ type: boolean
+ recursiveReadOnly:
+ type: string
+ subPath:
+ type: string
+ subPathExpr:
+ type: string
+ required:
+ - mountPath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - mountPath
+ x-kubernetes-list-type: map
+ workingDir:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ additionalEnv:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
type: boolean
- secretRef:
- properties:
- name:
- default: ""
- type: string
- type: object
- x-kubernetes-map-type: atomic
required:
- - driver
+ - key
type: object
- flocker:
+ x-kubernetes-map-type: atomic
+ fieldRef:
properties:
- datasetName:
+ apiVersion:
type: string
- datasetUUID:
+ fieldPath:
type: string
+ required:
+ - fieldPath
type: object
- gcePersistentDisk:
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
properties:
- fsType:
- type: string
- partition:
- format: int32
- type: integer
- pdName:
+ key:
type: string
- readOnly:
+ optional:
+ default: false
type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
required:
- - pdName
+ - key
+ - path
+ - volumeName
type: object
- gitRepo:
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
properties:
- directory:
- type: string
- repository:
+ containerName:
type: string
- revision:
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
type: string
required:
- - repository
+ - resource
type: object
- glusterfs:
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
properties:
- endpoints:
+ key:
type: string
- path:
+ name:
+ default: ""
type: string
- readOnly:
+ optional:
type: boolean
required:
- - endpoints
- - path
+ - key
type: object
- hostPath:
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ additionalPorts:
+ items:
+ properties:
+ containerPort:
+ format: int32
+ type: integer
+ hostIP:
+ type: string
+ hostPort:
+ format: int32
+ type: integer
+ name:
+ type: string
+ protocol:
+ default: TCP
+ type: string
+ required:
+ - containerPort
+ type: object
+ type: array
+ additionalServicePorts:
+ items:
+ properties:
+ appProtocol:
+ type: string
+ name:
+ type: string
+ nodePort:
+ format: int32
+ type: integer
+ port:
+ format: int32
+ type: integer
+ protocol:
+ default: TCP
+ type: string
+ targetPort:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: array
+ additionalVolumeMounts:
+ items:
+ properties:
+ mountPath:
+ type: string
+ mountPropagation:
+ type: string
+ name:
+ type: string
+ readOnly:
+ type: boolean
+ recursiveReadOnly:
+ type: string
+ subPath:
+ type: string
+ subPathExpr:
+ type: string
+ required:
+ - mountPath
+ - name
+ type: object
+ type: array
+ additionalVolumes:
+ items:
+ properties:
+ awsElasticBlockStore:
+ properties:
+ fsType:
+ type: string
+ partition:
+ format: int32
+ type: integer
+ readOnly:
+ type: boolean
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ azureDisk:
+ properties:
+ cachingMode:
+ type: string
+ diskName:
+ type: string
+ diskURI:
+ type: string
+ fsType:
+ default: ext4
+ type: string
+ kind:
+ type: string
+ readOnly:
+ default: false
+ type: boolean
+ required:
+ - diskName
+ - diskURI
+ type: object
+ azureFile:
+ properties:
+ readOnly:
+ type: boolean
+ secretName:
+ type: string
+ shareName:
+ type: string
+ required:
+ - secretName
+ - shareName
+ type: object
+ cephfs:
+ properties:
+ monitors:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ secretFile:
+ type: string
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ user:
+ type: string
+ required:
+ - monitors
+ type: object
+ cinder:
+ properties:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ configMap:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ csi:
+ properties:
+ driver:
+ type: string
+ fsType:
+ type: string
+ nodePublishSecretRef:
properties:
- path:
- type: string
- type:
+ name:
+ default: ""
type: string
- required:
- - path
type: object
- image:
- properties:
- pullPolicy:
- type: string
- reference:
- type: string
+ x-kubernetes-map-type: atomic
+ readOnly:
+ type: boolean
+ volumeAttributes:
+ additionalProperties:
+ type: string
type: object
- iscsi:
- properties:
- chapAuthDiscovery:
- type: boolean
- chapAuthSession:
- type: boolean
- fsType:
- type: string
- initiatorName:
- type: string
- iqn:
- type: string
- iscsiInterface:
- default: default
- type: string
- lun:
- format: int32
- type: integer
- portals:
- items:
+ required:
+ - driver
+ type: object
+ downwardAPI:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
+ items:
+ properties:
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ mode:
+ format: int32
+ type: integer
+ path:
type: string
- type: array
- x-kubernetes-list-type: atomic
- readOnly:
- type: boolean
- secretRef:
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ emptyDir:
+ properties:
+ medium:
+ type: string
+ sizeLimit:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ ephemeral:
+ properties:
+ volumeClaimTemplate:
+ properties:
+ metadata:
properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
name:
- default: ""
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ accessModes:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ dataSource:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ x-kubernetes-map-type: atomic
+ dataSourceRef:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ resources:
+ properties:
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ selector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ storageClassName:
+ type: string
+ volumeAttributesClassName:
+ type: string
+ volumeMode:
+ type: string
+ volumeName:
type: string
type: object
- x-kubernetes-map-type: atomic
- targetPortal:
- type: string
required:
- - iqn
- - lun
- - targetPortal
+ - spec
type: object
- name:
+ type: object
+ fc:
+ properties:
+ fsType:
+ type: string
+ lun:
+ format: int32
+ type: integer
+ readOnly:
+ type: boolean
+ targetWWNs:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ wwids:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ flexVolume:
+ properties:
+ driver:
+ type: string
+ fsType:
type: string
- nfs:
- properties:
- path:
- type: string
- readOnly:
- type: boolean
- server:
- type: string
- required:
- - path
- - server
- type: object
- persistentVolumeClaim:
- properties:
- claimName:
- type: string
- readOnly:
- type: boolean
- required:
- - claimName
+ options:
+ additionalProperties:
+ type: string
type: object
- photonPersistentDisk:
+ readOnly:
+ type: boolean
+ secretRef:
properties:
- fsType:
- type: string
- pdID:
+ name:
+ default: ""
type: string
- required:
- - pdID
type: object
- portworxVolume:
+ x-kubernetes-map-type: atomic
+ required:
+ - driver
+ type: object
+ flocker:
+ properties:
+ datasetName:
+ type: string
+ datasetUUID:
+ type: string
+ type: object
+ gcePersistentDisk:
+ properties:
+ fsType:
+ type: string
+ partition:
+ format: int32
+ type: integer
+ pdName:
+ type: string
+ readOnly:
+ type: boolean
+ required:
+ - pdName
+ type: object
+ gitRepo:
+ properties:
+ directory:
+ type: string
+ repository:
+ type: string
+ revision:
+ type: string
+ required:
+ - repository
+ type: object
+ glusterfs:
+ properties:
+ endpoints:
+ type: string
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ required:
+ - endpoints
+ - path
+ type: object
+ hostPath:
+ properties:
+ path:
+ type: string
+ type:
+ type: string
+ required:
+ - path
+ type: object
+ image:
+ properties:
+ pullPolicy:
+ type: string
+ reference:
+ type: string
+ type: object
+ iscsi:
+ properties:
+ chapAuthDiscovery:
+ type: boolean
+ chapAuthSession:
+ type: boolean
+ fsType:
+ type: string
+ initiatorName:
+ type: string
+ iqn:
+ type: string
+ iscsiInterface:
+ default: default
+ type: string
+ lun:
+ format: int32
+ type: integer
+ portals:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ readOnly:
+ type: boolean
+ secretRef:
properties:
- fsType:
- type: string
- readOnly:
- type: boolean
- volumeID:
+ name:
+ default: ""
type: string
- required:
- - volumeID
type: object
- projected:
- properties:
- defaultMode:
- format: int32
- type: integer
- sources:
- items:
+ x-kubernetes-map-type: atomic
+ targetPortal:
+ type: string
+ required:
+ - iqn
+ - lun
+ - targetPortal
+ type: object
+ name:
+ type: string
+ nfs:
+ properties:
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ server:
+ type: string
+ required:
+ - path
+ - server
+ type: object
+ persistentVolumeClaim:
+ properties:
+ claimName:
+ type: string
+ readOnly:
+ type: boolean
+ required:
+ - claimName
+ type: object
+ photonPersistentDisk:
+ properties:
+ fsType:
+ type: string
+ pdID:
+ type: string
+ required:
+ - pdID
+ type: object
+ portworxVolume:
+ properties:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ projected:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ sources:
+ items:
+ properties:
+ clusterTrustBundle:
properties:
- clusterTrustBundle:
- properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
- type: array
- x-kubernetes-list-type: atomic
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- x-kubernetes-map-type: atomic
- name:
- type: string
- optional:
- type: boolean
- path:
- type: string
- signerName:
- type: string
- required:
- - path
- type: object
- configMap:
+ labelSelector:
properties:
- items:
+ matchExpressions:
items:
properties:
key:
type: string
- mode:
- format: int32
- type: integer
- path:
+ operator:
type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
required:
- key
- - path
+ - operator
type: object
type: array
x-kubernetes-list-type: atomic
- name:
- default: ""
- type: string
- optional:
- type: boolean
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
type: object
x-kubernetes-map-type: atomic
- downwardAPI:
- properties:
- items:
- items:
+ name:
+ type: string
+ optional:
+ type: boolean
+ path:
+ type: string
+ signerName:
+ type: string
+ required:
+ - path
+ type: object
+ configMap:
+ properties:
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ downwardAPI:
+ properties:
+ items:
+ items:
+ properties:
+ fieldRef:
properties:
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- x-kubernetes-map-type: atomic
- mode:
- format: int32
- type: integer
- path:
+ apiVersion:
+ type: string
+ fieldPath:
type: string
- resourceFieldRef:
- properties:
- containerName:
- type: string
- divisor:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- resource:
- type: string
- required:
- - resource
- type: object
- x-kubernetes-map-type: atomic
required:
- - path
+ - fieldPath
type: object
- type: array
- x-kubernetes-list-type: atomic
- type: object
- secret:
- properties:
- items:
- items:
+ x-kubernetes-map-type: atomic
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ resourceFieldRef:
properties:
- key:
+ containerName:
type: string
- mode:
- format: int32
- type: integer
- path:
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
type: string
required:
- - key
- - path
+ - resource
type: object
- type: array
- x-kubernetes-list-type: atomic
- name:
- default: ""
- type: string
- optional:
- type: boolean
- type: object
- x-kubernetes-map-type: atomic
- serviceAccountToken:
- properties:
- audience:
- type: string
- expirationSeconds:
- format: int64
- type: integer
- path:
- type: string
- required:
- - path
+ x-kubernetes-map-type: atomic
+ required:
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ podCertificate:
+ properties:
+ certificateChainPath:
+ type: string
+ credentialBundlePath:
+ type: string
+ keyPath:
+ type: string
+ keyType:
+ type: string
+ maxExpirationSeconds:
+ format: int32
+ type: integer
+ signerName:
+ type: string
+ userAnnotations:
+ additionalProperties:
+ type: string
type: object
+ required:
+ - keyType
+ - signerName
type: object
- type: array
- x-kubernetes-list-type: atomic
- type: object
- quobyte:
- properties:
- group:
- type: string
- readOnly:
- type: boolean
- registry:
- type: string
- tenant:
- type: string
- user:
- type: string
- volume:
- type: string
- required:
- - registry
- - volume
- type: object
- rbd:
- properties:
- fsType:
- type: string
- image:
- type: string
- keyring:
- default: /etc/ceph/keyring
- type: string
- monitors:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- pool:
- default: rbd
- type: string
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- default: ""
- type: string
- type: object
- x-kubernetes-map-type: atomic
- user:
- default: admin
- type: string
- required:
- - image
- - monitors
- type: object
- scaleIO:
- properties:
- fsType:
- default: xfs
- type: string
- gateway:
- type: string
- protectionDomain:
- type: string
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- default: ""
- type: string
- type: object
- x-kubernetes-map-type: atomic
- sslEnabled:
- type: boolean
- storageMode:
- default: ThinProvisioned
- type: string
- storagePool:
- type: string
- system:
- type: string
- volumeName:
- type: string
- required:
- - gateway
- - secretRef
- - system
- type: object
- secret:
- properties:
- defaultMode:
- format: int32
- type: integer
- items:
- items:
+ secret:
+ properties:
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ serviceAccountToken:
properties:
- key:
+ audience:
type: string
- mode:
- format: int32
+ expirationSeconds:
+ format: int64
type: integer
path:
type: string
required:
- - key
- path
type: object
- type: array
- x-kubernetes-list-type: atomic
- optional:
- type: boolean
- secretName:
- type: string
- type: object
- storageos:
- properties:
- fsType:
- type: string
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- default: ""
- type: string
- type: object
- x-kubernetes-map-type: atomic
- volumeName:
- type: string
- volumeNamespace:
- type: string
- type: object
- vsphereVolume:
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ quobyte:
+ properties:
+ group:
+ type: string
+ readOnly:
+ type: boolean
+ registry:
+ type: string
+ tenant:
+ type: string
+ user:
+ type: string
+ volume:
+ type: string
+ required:
+ - registry
+ - volume
+ type: object
+ rbd:
+ properties:
+ fsType:
+ type: string
+ image:
+ type: string
+ keyring:
+ default: /etc/ceph/keyring
+ type: string
+ monitors:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ pool:
+ default: rbd
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
properties:
- fsType:
- type: string
- storagePolicyID:
- type: string
- storagePolicyName:
- type: string
- volumePath:
+ name:
+ default: ""
type: string
- required:
- - volumePath
type: object
+ x-kubernetes-map-type: atomic
+ user:
+ default: admin
+ type: string
required:
- - name
+ - image
+ - monitors
type: object
- type: array
- hashrings:
- items:
+ scaleIO:
properties:
- externalLabels:
- additionalProperties:
- type: string
- type: object
- name:
+ fsType:
+ default: xfs
type: string
- replicas:
- type: integer
- storageSize:
+ gateway:
type: string
- tenancyConfig:
+ protectionDomain:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
properties:
- defaultTenantID:
- default: default-tenant
- type: string
- splitTenantLabelName:
- type: string
- tenantCertificateField:
- enum:
- - organization
- - organizationalUnit
- - commonName
- type: string
- tenantHeader:
- default: THANOS-TENANT
- type: string
- tenantLabelName:
- default: tenant_id
- type: string
- tenantMatcherType:
- default: exact
- enum:
- - exact
- - glob
+ name:
+ default: ""
type: string
- tenants:
- items:
- type: string
- type: array
type: object
- tsdbConfig:
+ x-kubernetes-map-type: atomic
+ sslEnabled:
+ type: boolean
+ storageMode:
+ default: ThinProvisioned
+ type: string
+ storagePool:
+ type: string
+ system:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - gateway
+ - secretRef
+ - system
+ type: object
+ secret:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ optional:
+ type: boolean
+ secretName:
+ type: string
+ type: object
+ storageos:
+ properties:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
properties:
- retention:
- default: 24h
+ name:
+ default: ""
type: string
- required:
- - retention
type: object
- required:
- - storageSize
+ x-kubernetes-map-type: atomic
+ volumeName:
+ type: string
+ volumeNamespace:
+ type: string
type: object
- type: array
- required:
- - hashrings
- type: object
- logFormat:
- default: logfmt
- enum:
- - logfmt
- - json
- type: string
- logLevel:
- enum:
- - debug
- - info
- - warn
- - error
- type: string
- nodeSelector:
- additionalProperties:
- type: string
- type: object
- resourceRequirements:
- properties:
- claims:
- items:
+ vsphereVolume:
properties:
- name:
+ fsType:
type: string
- request:
+ storagePolicyID:
+ type: string
+ storagePolicyName:
+ type: string
+ volumePath:
type: string
required:
- - name
+ - volumePath
type: object
- type: array
- x-kubernetes-list-map-keys:
- - name
- x-kubernetes-list-type: map
- limits:
- additionalProperties:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- type: object
- requests:
- additionalProperties:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- type: object
- type: object
- routerSpec:
+ required:
+ - name
+ type: object
+ type: array
+ affinity:
properties:
- additionalArgs:
- items:
- type: string
- type: array
- additionalContainers:
- items:
- properties:
- args:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- command:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- env:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- valueFrom:
- properties:
- configMapKeyRef:
+ nodeAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ preference:
+ properties:
+ matchExpressions:
+ items:
properties:
key:
type: string
- name:
- default: ""
+ operator:
type: string
- optional:
- type: boolean
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
required:
- key
+ - operator
type: object
- x-kubernetes-map-type: atomic
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- x-kubernetes-map-type: atomic
- resourceFieldRef:
+ type: array
+ x-kubernetes-list-type: atomic
+ matchFields:
+ items:
properties:
- containerName:
+ key:
type: string
- divisor:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- resource:
+ operator:
type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
required:
- - resource
+ - key
+ - operator
type: object
- x-kubernetes-map-type: atomic
- secretKeyRef:
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ x-kubernetes-map-type: atomic
+ weight:
+ format: int32
+ type: integer
+ required:
+ - preference
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ properties:
+ nodeSelectorTerms:
+ items:
+ properties:
+ matchExpressions:
+ items:
properties:
key:
type: string
- name:
- default: ""
+ operator:
type: string
- optional:
- type: boolean
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
required:
- key
+ - operator
type: object
- x-kubernetes-map-type: atomic
- type: object
- required:
- - name
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - name
- x-kubernetes-list-type: map
- envFrom:
- items:
- properties:
- configMapRef:
- properties:
- name:
- default: ""
- type: string
- optional:
- type: boolean
- type: object
- x-kubernetes-map-type: atomic
- prefix:
- type: string
- secretRef:
- properties:
- name:
- default: ""
- type: string
- optional:
- type: boolean
- type: object
- x-kubernetes-map-type: atomic
- type: object
- type: array
- x-kubernetes-list-type: atomic
- image:
- type: string
- imagePullPolicy:
- type: string
- lifecycle:
- properties:
- postStart:
- properties:
- exec:
- properties:
- command:
- items:
+ type: array
+ x-kubernetes-list-type: atomic
+ matchFields:
+ items:
+ properties:
+ key:
type: string
- type: array
- x-kubernetes-list-type: atomic
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- x-kubernetes-list-type: atomic
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- sleep:
- properties:
- seconds:
- format: int64
- type: integer
- required:
- - seconds
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
type: object
- preStop:
+ x-kubernetes-map-type: atomic
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - nodeSelectorTerms
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ podAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ podAffinityTerm:
properties:
- exec:
+ labelSelector:
properties:
- command:
+ matchExpressions:
items:
- type: string
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
type: array
x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
type: object
- httpGet:
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
properties:
- host:
- type: string
- httpHeaders:
+ matchExpressions:
items:
properties:
- name:
+ key:
type: string
- value:
+ operator:
type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
required:
- - name
- - value
+ - key
+ - operator
type: object
type: array
x-kubernetes-list-type: atomic
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- sleep:
- properties:
- seconds:
- format: int64
- type: integer
- required:
- - seconds
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
type: object
- type: object
- stopSignal:
- type: string
- type: object
- livenessProbe:
- properties:
- exec:
- properties:
- command:
+ x-kubernetes-map-type: atomic
+ namespaces:
items:
type: string
type: array
x-kubernetes-list-type: atomic
- type: object
- failureThreshold:
- format: int32
- type: integer
- grpc:
- properties:
- port:
- format: int32
- type: integer
- service:
- default: ""
- type: string
- required:
- - port
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- x-kubernetes-list-type: atomic
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
+ topologyKey:
type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
required:
- - port
+ - topologyKey
type: object
- terminationGracePeriodSeconds:
- format: int64
- type: integer
- timeoutSeconds:
+ weight:
format: int32
type: integer
+ required:
+ - podAffinityTerm
+ - weight
type: object
- name:
- type: string
- ports:
- items:
- properties:
- containerPort:
- format: int32
- type: integer
- hostIP:
- type: string
- hostPort:
- format: int32
- type: integer
- name:
- type: string
- protocol:
- default: TCP
- type: string
- required:
- - containerPort
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - containerPort
- - protocol
- x-kubernetes-list-type: map
- readinessProbe:
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ items:
properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- type: object
- failureThreshold:
- format: int32
- type: integer
- grpc:
- properties:
- port:
- format: int32
- type: integer
- service:
- default: ""
- type: string
- required:
- - port
- type: object
- httpGet:
+ labelSelector:
properties:
- host:
- type: string
- httpHeaders:
+ matchExpressions:
items:
properties:
- name:
+ key:
type: string
- value:
+ operator:
type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
required:
- - name
- - value
+ - key
+ - operator
type: object
type: array
x-kubernetes-list-type: atomic
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
type: object
- terminationGracePeriodSeconds:
- format: int64
- type: integer
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- resizePolicy:
- items:
- properties:
- resourceName:
- type: string
- restartPolicy:
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
type: string
- required:
- - resourceName
- - restartPolicy
- type: object
- type: array
- x-kubernetes-list-type: atomic
- resources:
- properties:
- claims:
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
items:
- properties:
- name:
- type: string
- request:
- type: string
- required:
- - name
- type: object
+ type: string
type: array
- x-kubernetes-list-map-keys:
- - name
- x-kubernetes-list-type: map
- limits:
- additionalProperties:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- type: object
- requests:
- additionalProperties:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
type: object
- restartPolicy:
- type: string
- securityContext:
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ podAntiAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
properties:
- allowPrivilegeEscalation:
- type: boolean
- appArmorProfile:
- properties:
- localhostProfile:
- type: string
- type:
- type: string
- required:
- - type
- type: object
- capabilities:
+ podAffinityTerm:
properties:
- add:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
items:
type: string
type: array
x-kubernetes-list-type: atomic
- drop:
+ mismatchLabelKeys:
items:
type: string
type: array
x-kubernetes-list-type: atomic
- type: object
- privileged:
- type: boolean
- procMount:
- type: string
- readOnlyRootFilesystem:
- type: boolean
- runAsGroup:
- format: int64
- type: integer
- runAsNonRoot:
- type: boolean
- runAsUser:
- format: int64
- type: integer
- seLinuxOptions:
- properties:
- level:
- type: string
- role:
- type: string
- type:
- type: string
- user:
- type: string
- type: object
- seccompProfile:
- properties:
- localhostProfile:
- type: string
- type:
- type: string
- required:
- - type
- type: object
- windowsOptions:
- properties:
- gmsaCredentialSpec:
- type: string
- gmsaCredentialSpecName:
- type: string
- hostProcess:
- type: boolean
- runAsUserName:
- type: string
- type: object
- type: object
- startupProbe:
- properties:
- exec:
- properties:
- command:
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
items:
type: string
type: array
x-kubernetes-list-type: atomic
- type: object
- failureThreshold:
- format: int32
- type: integer
- grpc:
- properties:
- port:
- format: int32
- type: integer
- service:
- default: ""
+ topologyKey:
type: string
required:
- - port
+ - topologyKey
type: object
- httpGet:
+ weight:
+ format: int32
+ type: integer
+ required:
+ - podAffinityTerm
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ labelSelector:
properties:
- host:
- type: string
- httpHeaders:
+ matchExpressions:
items:
properties:
- name:
+ key:
type: string
- value:
+ operator:
type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
required:
- - name
- - value
+ - key
+ - operator
type: object
type: array
x-kubernetes-list-type: atomic
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
type: object
- terminationGracePeriodSeconds:
- format: int64
- type: integer
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- stdin:
- type: boolean
- stdinOnce:
- type: boolean
- terminationMessagePath:
- type: string
- terminationMessagePolicy:
- type: string
- tty:
- type: boolean
- volumeDevices:
- items:
- properties:
- devicePath:
- type: string
- name:
- type: string
- required:
- - devicePath
- - name
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - devicePath
- x-kubernetes-list-type: map
- volumeMounts:
- items:
- properties:
- mountPath:
- type: string
- mountPropagation:
- type: string
- name:
- type: string
- readOnly:
- type: boolean
- recursiveReadOnly:
- type: string
- subPath:
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
type: string
- subPathExpr:
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
type: string
- required:
- - mountPath
- - name
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - mountPath
- x-kubernetes-list-type: map
- workingDir:
- type: string
- required:
- - name
- type: object
- type: array
- additionalEnv:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- valueFrom:
- properties:
- configMapKeyRef:
- properties:
- key:
- type: string
- name:
- default: ""
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- x-kubernetes-map-type: atomic
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- x-kubernetes-map-type: atomic
- resourceFieldRef:
- properties:
- containerName:
- type: string
- divisor:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- resource:
- type: string
- required:
- - resource
- type: object
- x-kubernetes-map-type: atomic
- secretKeyRef:
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
properties:
- key:
- type: string
- name:
- default: ""
- type: string
- optional:
- type: boolean
- required:
- - key
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
type: object
x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
type: object
- required:
- - name
- type: object
- type: array
- additionalPorts:
- items:
- properties:
- containerPort:
- format: int32
- type: integer
- hostIP:
- type: string
- hostPort:
- format: int32
- type: integer
- name:
- type: string
- protocol:
- default: TCP
- type: string
- required:
- - containerPort
- type: object
- type: array
- additionalServicePorts:
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ type: object
+ alertmanagerURL:
+ type: string
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ baseImage:
+ type: string
+ configMaps:
+ items:
+ type: string
+ type: array
+ evaluationInterval:
+ default: 1m
+ pattern: ^(-?(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)|([0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\.[0-9]+)?(Z|[+-][0-9]{2}:[0-9]{2})))$
+ type: string
+ externalLabels:
+ additionalProperties:
+ type: string
+ type: object
+ imagePullPolicy:
+ default: IfNotPresent
+ enum:
+ - Always
+ - Never
+ - IfNotPresent
+ type: string
+ imagePullSecrets:
+ items:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ logFormat:
+ default: logfmt
+ enum:
+ - logfmt
+ - json
+ type: string
+ logLevel:
+ enum:
+ - debug
+ - info
+ - warn
+ - error
+ type: string
+ nodeSelector:
+ additionalProperties:
+ type: string
+ type: object
+ podDisruptionBudgetConfig:
+ default:
+ enable: true
+ properties:
+ enable:
+ type: boolean
+ type: object
+ queryLabelSelector:
+ properties:
+ matchExpressions:
items:
properties:
- appProtocol:
- type: string
- name:
+ key:
type: string
- nodePort:
- format: int32
- type: integer
- port:
- format: int32
- type: integer
- protocol:
- default: TCP
+ operator:
type: string
- targetPort:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
required:
- - port
+ - key
+ - operator
type: object
type: array
- additionalVolumeMounts:
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ replicas:
+ default: 1
+ format: int32
+ type: integer
+ resourceRequirements:
+ properties:
+ claims:
items:
properties:
- mountPath:
- type: string
- mountPropagation:
- type: string
name:
type: string
- readOnly:
- type: boolean
- recursiveReadOnly:
- type: string
- subPath:
- type: string
- subPathExpr:
+ request:
type: string
required:
- - mountPath
- name
type: object
type: array
- additionalVolumes:
- items:
- properties:
- awsElasticBlockStore:
- properties:
- fsType:
- type: string
- partition:
- format: int32
- type: integer
- readOnly:
- type: boolean
- volumeID:
- type: string
- required:
- - volumeID
- type: object
- azureDisk:
- properties:
- cachingMode:
- type: string
- diskName:
- type: string
- diskURI:
- type: string
- fsType:
- default: ext4
- type: string
- kind:
- type: string
- readOnly:
- default: false
- type: boolean
- required:
- - diskName
- - diskURI
- type: object
- azureFile:
- properties:
- readOnly:
- type: boolean
- secretName:
- type: string
- shareName:
- type: string
- required:
- - secretName
- - shareName
- type: object
- cephfs:
- properties:
- monitors:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- path:
- type: string
- readOnly:
- type: boolean
- secretFile:
- type: string
- secretRef:
- properties:
- name:
- default: ""
- type: string
- type: object
- x-kubernetes-map-type: atomic
- user:
- type: string
- required:
- - monitors
- type: object
- cinder:
- properties:
- fsType:
- type: string
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- default: ""
- type: string
- type: object
- x-kubernetes-map-type: atomic
- volumeID:
- type: string
- required:
- - volumeID
- type: object
- configMap:
- properties:
- defaultMode:
- format: int32
- type: integer
- items:
- items:
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ retention:
+ default: 2h
+ pattern: ^(-?(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)|([0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\.[0-9]+)?(Z|[+-][0-9]{2}:[0-9]{2})))$
+ type: string
+ ruleConfigSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ ruleTenancyConfig:
+ properties:
+ enforcedTenantIdentifier:
+ type: string
+ tenantSpecifierLabel:
+ type: string
+ type: object
+ secrets:
+ items:
+ type: string
+ type: array
+ securityContext:
+ properties:
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ fsGroup:
+ format: int64
+ type: integer
+ fsGroupChangePolicy:
+ type: string
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxChangePolicy:
+ type: string
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ supplementalGroups:
+ items:
+ format: int64
+ type: integer
+ type: array
+ x-kubernetes-list-type: atomic
+ supplementalGroupsPolicy:
+ type: string
+ sysctls:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ storageSize:
+ type: string
+ tolerations:
+ items:
+ properties:
+ effect:
+ type: string
+ key:
+ type: string
+ operator:
+ type: string
+ tolerationSeconds:
+ format: int64
+ type: integer
+ value:
+ type: string
+ type: object
+ type: array
+ version:
+ type: string
+ required:
+ - alertmanagerURL
+ - storageSize
+ type: object
+ s3:
+ properties:
+ accessKey:
+ type: string
+ bucket:
+ type: string
+ caFile:
+ type: string
+ endpoint:
+ type: string
+ prefix:
+ type: string
+ region:
+ type: string
+ secretKey:
+ type: string
+ type: object
+ store:
+ properties:
+ additionalArgs:
+ items:
+ type: string
+ type: array
+ additionalContainers:
+ items:
+ properties:
+ args:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
properties:
key:
type: string
- mode:
- format: int32
- type: integer
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
path:
type: string
+ volumeName:
+ type: string
required:
- key
- path
+ - volumeName
type: object
- type: array
- x-kubernetes-list-type: atomic
- name:
- default: ""
- type: string
- optional:
- type: boolean
- type: object
- x-kubernetes-map-type: atomic
- csi:
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ envFrom:
+ items:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ prefix:
+ type: string
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ image:
+ type: string
+ imagePullPolicy:
+ type: string
+ lifecycle:
+ properties:
+ postStart:
properties:
- driver:
- type: string
- fsType:
- type: string
- nodePublishSecretRef:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
properties:
- name:
- default: ""
+ host:
type: string
- type: object
- x-kubernetes-map-type: atomic
- readOnly:
- type: boolean
- volumeAttributes:
- additionalProperties:
- type: string
- type: object
- required:
- - driver
- type: object
- downwardAPI:
- properties:
- defaultMode:
- format: int32
- type: integer
- items:
- items:
- properties:
- fieldRef:
+ httpHeaders:
+ items:
properties:
- apiVersion:
+ name:
type: string
- fieldPath:
+ value:
type: string
required:
- - fieldPath
+ - name
+ - value
type: object
- x-kubernetes-map-type: atomic
- mode:
- format: int32
- type: integer
- path:
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ preStop:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
type: string
- resourceFieldRef:
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
properties:
- containerName:
+ name:
type: string
- divisor:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- resource:
+ value:
type: string
required:
- - resource
+ - name
+ - value
type: object
- x-kubernetes-map-type: atomic
- required:
- - path
- type: object
- type: array
- x-kubernetes-list-type: atomic
- type: object
- emptyDir:
- properties:
- medium:
- type: string
- sizeLimit:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- type: object
- ephemeral:
- properties:
- volumeClaimTemplate:
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
properties:
- metadata:
- properties:
- annotations:
- additionalProperties:
- type: string
- type: object
- finalizers:
- items:
- type: string
- type: array
- labels:
- additionalProperties:
- type: string
- type: object
- name:
- type: string
- namespace:
- type: string
- type: object
- spec:
- properties:
- accessModes:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- dataSource:
- properties:
- apiGroup:
- type: string
- kind:
- type: string
- name:
- type: string
- required:
- - kind
- - name
- type: object
- x-kubernetes-map-type: atomic
- dataSourceRef:
- properties:
- apiGroup:
- type: string
- kind:
- type: string
- name:
- type: string
- namespace:
- type: string
- required:
- - kind
- - name
- type: object
- resources:
- properties:
- limits:
- additionalProperties:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- type: object
- requests:
- additionalProperties:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- type: object
- type: object
- selector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
- type: array
- x-kubernetes-list-type: atomic
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- x-kubernetes-map-type: atomic
- storageClassName:
- type: string
- volumeAttributesClassName:
- type: string
- volumeMode:
- type: string
- volumeName:
- type: string
- type: object
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
required:
- - spec
+ - port
type: object
type: object
- fc:
+ stopSignal:
+ type: string
+ type: object
+ livenessProbe:
+ properties:
+ exec:
properties:
- fsType:
- type: string
- lun:
- format: int32
- type: integer
- readOnly:
- type: boolean
- targetWWNs:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- wwids:
+ command:
items:
type: string
type: array
x-kubernetes-list-type: atomic
type: object
- flexVolume:
- properties:
- driver:
- type: string
- fsType:
- type: string
- options:
- additionalProperties:
- type: string
- type: object
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- default: ""
- type: string
- type: object
- x-kubernetes-map-type: atomic
- required:
- - driver
- type: object
- flocker:
- properties:
- datasetName:
- type: string
- datasetUUID:
- type: string
- type: object
- gcePersistentDisk:
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
properties:
- fsType:
- type: string
- partition:
+ port:
format: int32
type: integer
- pdName:
- type: string
- readOnly:
- type: boolean
- required:
- - pdName
- type: object
- gitRepo:
- properties:
- directory:
- type: string
- repository:
- type: string
- revision:
+ service:
+ default: ""
type: string
required:
- - repository
+ - port
type: object
- glusterfs:
+ httpGet:
properties:
- endpoints:
- type: string
- path:
+ host:
type: string
- readOnly:
- type: boolean
- required:
- - endpoints
- - path
- type: object
- hostPath:
- properties:
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
path:
type: string
- type:
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
type: string
required:
- - path
+ - port
type: object
- image:
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
properties:
- pullPolicy:
- type: string
- reference:
+ host:
type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
type: object
- iscsi:
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ name:
+ type: string
+ ports:
+ items:
+ properties:
+ containerPort:
+ format: int32
+ type: integer
+ hostIP:
+ type: string
+ hostPort:
+ format: int32
+ type: integer
+ name:
+ type: string
+ protocol:
+ default: TCP
+ type: string
+ required:
+ - containerPort
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - containerPort
+ - protocol
+ x-kubernetes-list-type: map
+ readinessProbe:
+ properties:
+ exec:
properties:
- chapAuthDiscovery:
- type: boolean
- chapAuthSession:
- type: boolean
- fsType:
- type: string
- initiatorName:
- type: string
- iqn:
- type: string
- iscsiInterface:
- default: default
- type: string
- lun:
- format: int32
- type: integer
- portals:
+ command:
items:
type: string
type: array
x-kubernetes-list-type: atomic
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- default: ""
- type: string
- type: object
- x-kubernetes-map-type: atomic
- targetPortal:
- type: string
- required:
- - iqn
- - lun
- - targetPortal
type: object
- name:
- type: string
- nfs:
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
properties:
- path:
- type: string
- readOnly:
- type: boolean
- server:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
type: string
required:
- - path
- - server
+ - port
type: object
- persistentVolumeClaim:
+ httpGet:
properties:
- claimName:
+ host:
type: string
- readOnly:
- type: boolean
- required:
- - claimName
- type: object
- photonPersistentDisk:
- properties:
- fsType:
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
type: string
- pdID:
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
type: string
required:
- - pdID
+ - port
type: object
- portworxVolume:
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
properties:
- fsType:
- type: string
- readOnly:
- type: boolean
- volumeID:
+ host:
type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
required:
- - volumeID
+ - port
type: object
- projected:
- properties:
- defaultMode:
- format: int32
- type: integer
- sources:
- items:
- properties:
- clusterTrustBundle:
- properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
- type: array
- x-kubernetes-list-type: atomic
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- x-kubernetes-map-type: atomic
- name:
- type: string
- optional:
- type: boolean
- path:
- type: string
- signerName:
- type: string
- required:
- - path
- type: object
- configMap:
- properties:
- items:
- items:
- properties:
- key:
- type: string
- mode:
- format: int32
- type: integer
- path:
- type: string
- required:
- - key
- - path
- type: object
- type: array
- x-kubernetes-list-type: atomic
- name:
- default: ""
- type: string
- optional:
- type: boolean
- type: object
- x-kubernetes-map-type: atomic
- downwardAPI:
- properties:
- items:
- items:
- properties:
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- x-kubernetes-map-type: atomic
- mode:
- format: int32
- type: integer
- path:
- type: string
- resourceFieldRef:
- properties:
- containerName:
- type: string
- divisor:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- resource:
- type: string
- required:
- - resource
- type: object
- x-kubernetes-map-type: atomic
- required:
- - path
- type: object
- type: array
- x-kubernetes-list-type: atomic
- type: object
- secret:
- properties:
- items:
- items:
- properties:
- key:
- type: string
- mode:
- format: int32
- type: integer
- path:
- type: string
- required:
- - key
- - path
- type: object
- type: array
- x-kubernetes-list-type: atomic
- name:
- default: ""
- type: string
- optional:
- type: boolean
- type: object
- x-kubernetes-map-type: atomic
- serviceAccountToken:
- properties:
- audience:
- type: string
- expirationSeconds:
- format: int64
- type: integer
- path:
- type: string
- required:
- - path
- type: object
- type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ resizePolicy:
+ items:
+ properties:
+ resourceName:
+ type: string
+ restartPolicy:
+ type: string
+ required:
+ - resourceName
+ - restartPolicy
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ resources:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ restartPolicy:
+ type: string
+ restartPolicyRules:
+ items:
+ properties:
+ action:
+ type: string
+ exitCodes:
+ properties:
+ operator:
+ type: string
+ values:
+ items:
+ format: int32
+ type: integer
+ type: array
+ x-kubernetes-list-type: set
+ required:
+ - operator
+ type: object
+ required:
+ - action
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ securityContext:
+ properties:
+ allowPrivilegeEscalation:
+ type: boolean
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ capabilities:
+ properties:
+ add:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ drop:
+ items:
+ type: string
type: array
x-kubernetes-list-type: atomic
type: object
- quobyte:
+ privileged:
+ type: boolean
+ procMount:
+ type: string
+ readOnlyRootFilesystem:
+ type: boolean
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxOptions:
properties:
- group:
+ level:
type: string
- readOnly:
- type: boolean
- registry:
+ role:
type: string
- tenant:
+ type:
type: string
user:
type: string
- volume:
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
type: string
required:
- - registry
- - volume
+ - type
type: object
- rbd:
+ windowsOptions:
properties:
- fsType:
+ gmsaCredentialSpec:
type: string
- image:
+ gmsaCredentialSpecName:
type: string
- keyring:
- default: /etc/ceph/keyring
+ hostProcess:
+ type: boolean
+ runAsUserName:
type: string
- monitors:
+ type: object
+ type: object
+ startupProbe:
+ properties:
+ exec:
+ properties:
+ command:
items:
type: string
type: array
x-kubernetes-list-type: atomic
- pool:
- default: rbd
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
type: string
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- default: ""
- type: string
- type: object
- x-kubernetes-map-type: atomic
- user:
- default: admin
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
type: string
required:
- - image
- - monitors
+ - port
type: object
- scaleIO:
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
properties:
- fsType:
- default: xfs
+ host:
type: string
- gateway:
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ stdin:
+ type: boolean
+ stdinOnce:
+ type: boolean
+ terminationMessagePath:
+ type: string
+ terminationMessagePolicy:
+ type: string
+ tty:
+ type: boolean
+ volumeDevices:
+ items:
+ properties:
+ devicePath:
+ type: string
+ name:
+ type: string
+ required:
+ - devicePath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - devicePath
+ x-kubernetes-list-type: map
+ volumeMounts:
+ items:
+ properties:
+ mountPath:
+ type: string
+ mountPropagation:
+ type: string
+ name:
+ type: string
+ readOnly:
+ type: boolean
+ recursiveReadOnly:
+ type: string
+ subPath:
+ type: string
+ subPathExpr:
+ type: string
+ required:
+ - mountPath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - mountPath
+ x-kubernetes-list-type: map
+ workingDir:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ additionalEnv:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
type: string
- protectionDomain:
+ name:
+ default: ""
type: string
- readOnly:
+ optional:
type: boolean
- secretRef:
- properties:
- name:
- default: ""
- type: string
- type: object
- x-kubernetes-map-type: atomic
- sslEnabled:
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
type: boolean
- storageMode:
- default: ThinProvisioned
+ path:
type: string
- storagePool:
+ volumeName:
type: string
- system:
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
type: string
- volumeName:
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
type: string
required:
- - gateway
- - secretRef
- - system
+ - resource
type: object
- secret:
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
properties:
- defaultMode:
- format: int32
- type: integer
- items:
- items:
- properties:
- key:
- type: string
- mode:
- format: int32
- type: integer
- path:
- type: string
- required:
- - key
- - path
- type: object
- type: array
- x-kubernetes-list-type: atomic
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
optional:
type: boolean
- secretName:
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ additionalPorts:
+ items:
+ properties:
+ containerPort:
+ format: int32
+ type: integer
+ hostIP:
+ type: string
+ hostPort:
+ format: int32
+ type: integer
+ name:
+ type: string
+ protocol:
+ default: TCP
+ type: string
+ required:
+ - containerPort
+ type: object
+ type: array
+ additionalServicePorts:
+ items:
+ properties:
+ appProtocol:
+ type: string
+ name:
+ type: string
+ nodePort:
+ format: int32
+ type: integer
+ port:
+ format: int32
+ type: integer
+ protocol:
+ default: TCP
+ type: string
+ targetPort:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: array
+ additionalVolumeMounts:
+ items:
+ properties:
+ mountPath:
+ type: string
+ mountPropagation:
+ type: string
+ name:
+ type: string
+ readOnly:
+ type: boolean
+ recursiveReadOnly:
+ type: string
+ subPath:
+ type: string
+ subPathExpr:
+ type: string
+ required:
+ - mountPath
+ - name
+ type: object
+ type: array
+ additionalVolumes:
+ items:
+ properties:
+ awsElasticBlockStore:
+ properties:
+ fsType:
+ type: string
+ partition:
+ format: int32
+ type: integer
+ readOnly:
+ type: boolean
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ azureDisk:
+ properties:
+ cachingMode:
+ type: string
+ diskName:
+ type: string
+ diskURI:
+ type: string
+ fsType:
+ default: ext4
+ type: string
+ kind:
+ type: string
+ readOnly:
+ default: false
+ type: boolean
+ required:
+ - diskName
+ - diskURI
+ type: object
+ azureFile:
+ properties:
+ readOnly:
+ type: boolean
+ secretName:
+ type: string
+ shareName:
+ type: string
+ required:
+ - secretName
+ - shareName
+ type: object
+ cephfs:
+ properties:
+ monitors:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ secretFile:
+ type: string
+ secretRef:
+ properties:
+ name:
+ default: ""
type: string
type: object
- storageos:
+ x-kubernetes-map-type: atomic
+ user:
+ type: string
+ required:
+ - monitors
+ type: object
+ cinder:
+ properties:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ configMap:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ csi:
+ properties:
+ driver:
+ type: string
+ fsType:
+ type: string
+ nodePublishSecretRef:
properties:
- fsType:
- type: string
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- default: ""
- type: string
- type: object
- x-kubernetes-map-type: atomic
- volumeName:
- type: string
- volumeNamespace:
+ name:
+ default: ""
type: string
type: object
- vsphereVolume:
- properties:
- fsType:
- type: string
- storagePolicyID:
- type: string
- storagePolicyName:
- type: string
- volumePath:
- type: string
- required:
- - volumePath
+ x-kubernetes-map-type: atomic
+ readOnly:
+ type: boolean
+ volumeAttributes:
+ additionalProperties:
+ type: string
type: object
required:
- - name
+ - driver
type: object
- type: array
- externalLabels:
- additionalProperties:
- type: string
- type: object
- imagePullPolicy:
- type: string
- logFormat:
- type: string
- replicas:
- type: integer
- replicationFactor:
- type: integer
- required:
- - replicas
- - replicationFactor
- type: object
- tolerations:
- items:
- properties:
- effect:
- type: string
- key:
- type: string
- operator:
- type: string
- tolerationSeconds:
- format: int64
- type: integer
- value:
- type: string
- type: object
- type: array
- version:
- type: string
- required:
- - ingesterSpec
- - routerSpec
- type: object
- store:
- properties:
- additionalArgs:
- items:
- type: string
- type: array
- additionalContainers:
- items:
- properties:
- args:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- command:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- env:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- valueFrom:
+ downwardAPI:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
+ items:
properties:
- configMapKeyRef:
- properties:
- key:
- type: string
- name:
- default: ""
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- x-kubernetes-map-type: atomic
fieldRef:
properties:
apiVersion:
@@ -12119,6 +20414,11 @@ spec:
- fieldPath
type: object
x-kubernetes-map-type: atomic
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
resourceFieldRef:
properties:
containerName:
@@ -12126,1026 +20426,3048 @@ spec:
divisor:
anyOf:
- type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- resource:
- type: string
- required:
- - resource
- type: object
- x-kubernetes-map-type: atomic
- secretKeyRef:
- properties:
- key:
- type: string
- name:
- default: ""
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- x-kubernetes-map-type: atomic
- type: object
- required:
- - name
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - name
- x-kubernetes-list-type: map
- envFrom:
- items:
- properties:
- configMapRef:
- properties:
- name:
- default: ""
- type: string
- optional:
- type: boolean
- type: object
- x-kubernetes-map-type: atomic
- prefix:
- type: string
- secretRef:
- properties:
- name:
- default: ""
- type: string
- optional:
- type: boolean
- type: object
- x-kubernetes-map-type: atomic
- type: object
- type: array
- x-kubernetes-list-type: atomic
- image:
- type: string
- imagePullPolicy:
- type: string
- lifecycle:
- properties:
- postStart:
- properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- x-kubernetes-list-type: atomic
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- sleep:
- properties:
- seconds:
- format: int64
- type: integer
- required:
- - seconds
- type: object
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- type: object
- preStop:
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ emptyDir:
+ properties:
+ medium:
+ type: string
+ sizeLimit:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ ephemeral:
+ properties:
+ volumeClaimTemplate:
properties:
- exec:
+ metadata:
properties:
- command:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
items:
type: string
type: array
- x-kubernetes-list-type: atomic
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
type: object
- httpGet:
+ spec:
properties:
- host:
- type: string
- httpHeaders:
+ accessModes:
items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
+ type: string
type: array
x-kubernetes-list-type: atomic
- path:
+ dataSource:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ x-kubernetes-map-type: atomic
+ dataSourceRef:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ resources:
+ properties:
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ selector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ storageClassName:
type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
+ volumeAttributesClassName:
type: string
- required:
- - port
- type: object
- sleep:
- properties:
- seconds:
- format: int64
- type: integer
- required:
- - seconds
- type: object
- tcpSocket:
- properties:
- host:
+ volumeMode:
+ type: string
+ volumeName:
type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
type: object
+ required:
+ - spec
type: object
- stopSignal:
+ type: object
+ fc:
+ properties:
+ fsType:
+ type: string
+ lun:
+ format: int32
+ type: integer
+ readOnly:
+ type: boolean
+ targetWWNs:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ wwids:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ flexVolume:
+ properties:
+ driver:
+ type: string
+ fsType:
+ type: string
+ options:
+ additionalProperties:
+ type: string
+ type: object
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - driver
+ type: object
+ flocker:
+ properties:
+ datasetName:
+ type: string
+ datasetUUID:
+ type: string
+ type: object
+ gcePersistentDisk:
+ properties:
+ fsType:
+ type: string
+ partition:
+ format: int32
+ type: integer
+ pdName:
+ type: string
+ readOnly:
+ type: boolean
+ required:
+ - pdName
+ type: object
+ gitRepo:
+ properties:
+ directory:
+ type: string
+ repository:
+ type: string
+ revision:
+ type: string
+ required:
+ - repository
+ type: object
+ glusterfs:
+ properties:
+ endpoints:
+ type: string
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ required:
+ - endpoints
+ - path
+ type: object
+ hostPath:
+ properties:
+ path:
type: string
+ type:
+ type: string
+ required:
+ - path
type: object
- livenessProbe:
+ image:
properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- type: object
- failureThreshold:
+ pullPolicy:
+ type: string
+ reference:
+ type: string
+ type: object
+ iscsi:
+ properties:
+ chapAuthDiscovery:
+ type: boolean
+ chapAuthSession:
+ type: boolean
+ fsType:
+ type: string
+ initiatorName:
+ type: string
+ iqn:
+ type: string
+ iscsiInterface:
+ default: default
+ type: string
+ lun:
format: int32
type: integer
- grpc:
+ portals:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ readOnly:
+ type: boolean
+ secretRef:
properties:
- port:
- format: int32
- type: integer
- service:
+ name:
default: ""
type: string
- required:
- - port
type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
+ x-kubernetes-map-type: atomic
+ targetPortal:
+ type: string
+ required:
+ - iqn
+ - lun
+ - targetPortal
+ type: object
+ name:
+ type: string
+ nfs:
+ properties:
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ server:
+ type: string
+ required:
+ - path
+ - server
+ type: object
+ persistentVolumeClaim:
+ properties:
+ claimName:
+ type: string
+ readOnly:
+ type: boolean
+ required:
+ - claimName
+ type: object
+ photonPersistentDisk:
+ properties:
+ fsType:
+ type: string
+ pdID:
+ type: string
+ required:
+ - pdID
+ type: object
+ portworxVolume:
+ properties:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ projected:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ sources:
+ items:
+ properties:
+ clusterTrustBundle:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ name:
+ type: string
+ optional:
+ type: boolean
+ path:
+ type: string
+ signerName:
+ type: string
+ required:
+ - path
+ type: object
+ configMap:
+ properties:
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ downwardAPI:
+ properties:
+ items:
+ items:
+ properties:
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ podCertificate:
+ properties:
+ certificateChainPath:
+ type: string
+ credentialBundlePath:
+ type: string
+ keyPath:
+ type: string
+ keyType:
+ type: string
+ maxExpirationSeconds:
+ format: int32
+ type: integer
+ signerName:
+ type: string
+ userAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ required:
+ - keyType
+ - signerName
+ type: object
+ secret:
properties:
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
name:
+ default: ""
type: string
- value:
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ serviceAccountToken:
+ properties:
+ audience:
+ type: string
+ expirationSeconds:
+ format: int64
+ type: integer
+ path:
type: string
required:
- - name
- - value
+ - path
type: object
- type: array
- x-kubernetes-list-type: atomic
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- terminationGracePeriodSeconds:
- format: int64
- type: integer
- timeoutSeconds:
- format: int32
- type: integer
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
type: object
- name:
- type: string
- ports:
- items:
- properties:
- containerPort:
- format: int32
- type: integer
- hostIP:
- type: string
- hostPort:
- format: int32
- type: integer
- name:
- type: string
- protocol:
- default: TCP
- type: string
- required:
- - containerPort
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - containerPort
- - protocol
- x-kubernetes-list-type: map
- readinessProbe:
+ quobyte:
properties:
- exec:
- properties:
- command:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- type: object
- failureThreshold:
- format: int32
- type: integer
- grpc:
+ group:
+ type: string
+ readOnly:
+ type: boolean
+ registry:
+ type: string
+ tenant:
+ type: string
+ user:
+ type: string
+ volume:
+ type: string
+ required:
+ - registry
+ - volume
+ type: object
+ rbd:
+ properties:
+ fsType:
+ type: string
+ image:
+ type: string
+ keyring:
+ default: /etc/ceph/keyring
+ type: string
+ monitors:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ pool:
+ default: rbd
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
properties:
- port:
- format: int32
- type: integer
- service:
+ name:
default: ""
type: string
- required:
- - port
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
- type: array
- x-kubernetes-list-type: atomic
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
+ x-kubernetes-map-type: atomic
+ user:
+ default: admin
+ type: string
+ required:
+ - image
+ - monitors
+ type: object
+ scaleIO:
+ properties:
+ fsType:
+ default: xfs
+ type: string
+ gateway:
+ type: string
+ protectionDomain:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
properties:
- host:
+ name:
+ default: ""
type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
type: object
- terminationGracePeriodSeconds:
- format: int64
- type: integer
- timeoutSeconds:
- format: int32
- type: integer
+ x-kubernetes-map-type: atomic
+ sslEnabled:
+ type: boolean
+ storageMode:
+ default: ThinProvisioned
+ type: string
+ storagePool:
+ type: string
+ system:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - gateway
+ - secretRef
+ - system
type: object
- resizePolicy:
- items:
- properties:
- resourceName:
- type: string
- restartPolicy:
- type: string
- required:
- - resourceName
- - restartPolicy
- type: object
- type: array
- x-kubernetes-list-type: atomic
- resources:
+ secret:
properties:
- claims:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
items:
properties:
- name:
+ key:
type: string
- request:
+ mode:
+ format: int32
+ type: integer
+ path:
type: string
required:
- - name
+ - key
+ - path
type: object
type: array
- x-kubernetes-list-map-keys:
- - name
- x-kubernetes-list-type: map
- limits:
- additionalProperties:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- type: object
- requests:
- additionalProperties:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- type: object
+ x-kubernetes-list-type: atomic
+ optional:
+ type: boolean
+ secretName:
+ type: string
type: object
- restartPolicy:
- type: string
- securityContext:
+ storageos:
properties:
- allowPrivilegeEscalation:
+ fsType:
+ type: string
+ readOnly:
type: boolean
- appArmorProfile:
+ secretRef:
properties:
- localhostProfile:
- type: string
- type:
+ name:
+ default: ""
type: string
- required:
- - type
- type: object
- capabilities:
- properties:
- add:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- drop:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
type: object
- privileged:
- type: boolean
- procMount:
+ x-kubernetes-map-type: atomic
+ volumeName:
type: string
- readOnlyRootFilesystem:
- type: boolean
- runAsGroup:
- format: int64
- type: integer
- runAsNonRoot:
- type: boolean
- runAsUser:
- format: int64
- type: integer
- seLinuxOptions:
+ volumeNamespace:
+ type: string
+ type: object
+ vsphereVolume:
+ properties:
+ fsType:
+ type: string
+ storagePolicyID:
+ type: string
+ storagePolicyName:
+ type: string
+ volumePath:
+ type: string
+ required:
+ - volumePath
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ affinity:
+ properties:
+ nodeAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
properties:
- level:
- type: string
- role:
- type: string
- type:
- type: string
- user:
- type: string
+ preference:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchFields:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ x-kubernetes-map-type: atomic
+ weight:
+ format: int32
+ type: integer
+ required:
+ - preference
+ - weight
type: object
- seccompProfile:
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ properties:
+ nodeSelectorTerms:
+ items:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchFields:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ x-kubernetes-map-type: atomic
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - nodeSelectorTerms
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ podAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
properties:
- localhostProfile:
- type: string
- type:
- type: string
+ podAffinityTerm:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ weight:
+ format: int32
+ type: integer
required:
- - type
- type: object
- windowsOptions:
- properties:
- gmsaCredentialSpec:
- type: string
- gmsaCredentialSpecName:
- type: string
- hostProcess:
- type: boolean
- runAsUserName:
- type: string
+ - podAffinityTerm
+ - weight
type: object
- type: object
- startupProbe:
- properties:
- exec:
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ items:
properties:
- command:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
items:
type: string
type: array
x-kubernetes-list-type: atomic
- type: object
- failureThreshold:
- format: int32
- type: integer
- grpc:
- properties:
- port:
- format: int32
- type: integer
- service:
- default: ""
- type: string
- required:
- - port
- type: object
- httpGet:
- properties:
- host:
- type: string
- httpHeaders:
+ mismatchLabelKeys:
items:
- properties:
- name:
- type: string
- value:
- type: string
- required:
- - name
- - value
- type: object
+ type: string
type: array
x-kubernetes-list-type: atomic
- path:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- scheme:
- type: string
- required:
- - port
- type: object
- initialDelaySeconds:
- format: int32
- type: integer
- periodSeconds:
- format: int32
- type: integer
- successThreshold:
- format: int32
- type: integer
- tcpSocket:
- properties:
- host:
- type: string
- port:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
- terminationGracePeriodSeconds:
- format: int64
- type: integer
- timeoutSeconds:
- format: int32
- type: integer
- type: object
- stdin:
- type: boolean
- stdinOnce:
- type: boolean
- terminationMessagePath:
- type: string
- terminationMessagePolicy:
- type: string
- tty:
- type: boolean
- volumeDevices:
- items:
- properties:
- devicePath:
- type: string
- name:
- type: string
- required:
- - devicePath
- - name
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - devicePath
- x-kubernetes-list-type: map
- volumeMounts:
- items:
- properties:
- mountPath:
- type: string
- mountPropagation:
- type: string
- name:
- type: string
- readOnly:
- type: boolean
- recursiveReadOnly:
- type: string
- subPath:
- type: string
- subPathExpr:
- type: string
- required:
- - mountPath
- - name
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - mountPath
- x-kubernetes-list-type: map
- workingDir:
- type: string
- required:
- - name
- type: object
- type: array
- additionalEnv:
- items:
- properties:
- name:
- type: string
- value:
- type: string
- valueFrom:
- properties:
- configMapKeyRef:
- properties:
- key:
- type: string
- name:
- default: ""
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- x-kubernetes-map-type: atomic
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
type: string
required:
- - fieldPath
+ - topologyKey
type: object
- x-kubernetes-map-type: atomic
- resourceFieldRef:
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ podAntiAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
properties:
- containerName:
- type: string
- divisor:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- resource:
- type: string
+ podAffinityTerm:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ weight:
+ format: int32
+ type: integer
required:
- - resource
+ - podAffinityTerm
+ - weight
type: object
- x-kubernetes-map-type: atomic
- secretKeyRef:
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ items:
properties:
- key:
- type: string
- name:
- default: ""
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- x-kubernetes-map-type: atomic
- type: object
- required:
- - name
- type: object
- type: array
- additionalPorts:
- items:
- properties:
- containerPort:
- format: int32
- type: integer
- hostIP:
- type: string
- hostPort:
- format: int32
- type: integer
- name:
- type: string
- protocol:
- default: TCP
- type: string
- required:
- - containerPort
- type: object
- type: array
- additionalServicePorts:
- items:
- properties:
- appProtocol:
- type: string
- name:
- type: string
- nodePort:
- format: int32
- type: integer
- port:
- format: int32
- type: integer
- protocol:
- default: TCP
- type: string
- targetPort:
- anyOf:
- - type: integer
- - type: string
- x-kubernetes-int-or-string: true
- required:
- - port
- type: object
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ type: object
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ baseImage:
+ type: string
+ configMaps:
+ items:
+ type: string
type: array
- additionalVolumeMounts:
+ ignoreDeletionMarksDelay:
+ type: string
+ imagePullPolicy:
+ default: IfNotPresent
+ enum:
+ - Always
+ - Never
+ - IfNotPresent
+ type: string
+ imagePullSecrets:
items:
properties:
- mountPath:
- type: string
- mountPropagation:
- type: string
name:
+ default: ""
type: string
- readOnly:
- type: boolean
- recursiveReadOnly:
- type: string
- subPath:
- type: string
- subPathExpr:
- type: string
- required:
- - mountPath
- - name
type: object
+ x-kubernetes-map-type: atomic
type: array
- additionalVolumes:
- items:
- properties:
- awsElasticBlockStore:
- properties:
- fsType:
- type: string
- partition:
- format: int32
- type: integer
- readOnly:
- type: boolean
- volumeID:
- type: string
- required:
- - volumeID
- type: object
- azureDisk:
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ logFormat:
+ default: logfmt
+ enum:
+ - logfmt
+ - json
+ type: string
+ logLevel:
+ enum:
+ - debug
+ - info
+ - warn
+ - error
+ type: string
+ nodeSelector:
+ additionalProperties:
+ type: string
+ type: object
+ podDisruptionBudgetConfig:
+ default:
+ enable: true
+ properties:
+ enable:
+ type: boolean
+ type: object
+ resourceRequirements:
+ properties:
+ claims:
+ items:
properties:
- cachingMode:
- type: string
- diskName:
- type: string
- diskURI:
- type: string
- fsType:
- default: ext4
+ name:
type: string
- kind:
+ request:
type: string
- readOnly:
- default: false
- type: boolean
required:
- - diskName
- - diskURI
+ - name
type: object
- azureFile:
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ secrets:
+ items:
+ type: string
+ type: array
+ securityContext:
+ properties:
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ fsGroup:
+ format: int64
+ type: integer
+ fsGroupChangePolicy:
+ type: string
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxChangePolicy:
+ type: string
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ supplementalGroups:
+ items:
+ format: int64
+ type: integer
+ type: array
+ x-kubernetes-list-type: atomic
+ supplementalGroupsPolicy:
+ type: string
+ sysctls:
+ items:
properties:
- readOnly:
- type: boolean
- secretName:
+ name:
type: string
- shareName:
+ value:
type: string
required:
- - secretName
- - shareName
+ - name
+ - value
type: object
- cephfs:
- properties:
- monitors:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- path:
- type: string
- readOnly:
- type: boolean
- secretFile:
+ type: array
+ x-kubernetes-list-type: atomic
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ shardingStrategy:
+ properties:
+ shards:
+ format: int32
+ type: integer
+ type:
+ type: string
+ required:
+ - shards
+ - type
+ type: object
+ storageSize:
+ type: string
+ tolerations:
+ items:
+ properties:
+ effect:
+ type: string
+ key:
+ type: string
+ operator:
+ type: string
+ tolerationSeconds:
+ format: int64
+ type: integer
+ value:
+ type: string
+ type: object
+ type: array
+ version:
+ type: string
+ required:
+ - storageSize
+ type: object
+ required:
+ - compact
+ - query
+ - receive
+ - ruler
+ - store
+ type: object
+ required:
+ - thanos
+ type: object
+ traces:
+ properties:
+ clickhouse:
+ properties:
+ clusterTopology:
+ properties:
+ clickHouseKeeper:
+ properties:
+ externallyManaged:
+ type: boolean
+ replicas:
+ format: int32
+ type: integer
+ storage:
+ properties:
+ accessModes:
+ items:
type: string
- secretRef:
- properties:
- name:
- default: ""
+ type: array
+ resources:
+ properties:
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ storageClassName:
+ type: string
+ type: object
+ required:
+ - storage
+ type: object
+ cluster:
+ properties:
+ name:
+ type: string
+ podTemplate:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
type: string
- type: object
- x-kubernetes-map-type: atomic
- user:
- type: string
- required:
- - monitors
- type: object
- cinder:
- properties:
- fsType:
- type: string
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- default: ""
+ type: object
+ finalizers:
+ items:
type: string
- type: object
- x-kubernetes-map-type: atomic
- volumeID:
- type: string
- required:
- - volumeID
- type: object
- configMap:
- properties:
- defaultMode:
- format: int32
- type: integer
- items:
- items:
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ activeDeadlineSeconds:
+ format: int64
+ type: integer
+ affinity:
properties:
- key:
- type: string
- mode:
- format: int32
- type: integer
- path:
- type: string
- required:
- - key
- - path
+ nodeAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ preference:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchFields:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ x-kubernetes-map-type: atomic
+ weight:
+ format: int32
+ type: integer
+ required:
+ - preference
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ properties:
+ nodeSelectorTerms:
+ items:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchFields:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ x-kubernetes-map-type: atomic
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - nodeSelectorTerms
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ podAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ podAffinityTerm:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ weight:
+ format: int32
+ type: integer
+ required:
+ - podAffinityTerm
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ podAntiAffinity:
+ properties:
+ preferredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ podAffinityTerm:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ weight:
+ format: int32
+ type: integer
+ required:
+ - podAffinityTerm
+ - weight
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ requiredDuringSchedulingIgnoredDuringExecution:
+ items:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ matchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ mismatchLabelKeys:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ namespaceSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ namespaces:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ topologyKey:
+ type: string
+ required:
+ - topologyKey
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
type: object
- type: array
- x-kubernetes-list-type: atomic
- name:
- default: ""
- type: string
- optional:
- type: boolean
- type: object
- x-kubernetes-map-type: atomic
- csi:
- properties:
- driver:
- type: string
- fsType:
- type: string
- nodePublishSecretRef:
- properties:
- name:
- default: ""
- type: string
- type: object
- x-kubernetes-map-type: atomic
- readOnly:
- type: boolean
- volumeAttributes:
- additionalProperties:
- type: string
- type: object
- required:
- - driver
- type: object
- downwardAPI:
- properties:
- defaultMode:
- format: int32
- type: integer
- items:
- items:
+ automountServiceAccountToken:
+ type: boolean
+ containers:
+ items:
+ properties:
+ args:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ envFrom:
+ items:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ prefix:
+ type: string
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ image:
+ type: string
+ imagePullPolicy:
+ type: string
+ lifecycle:
+ properties:
+ postStart:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ preStop:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ stopSignal:
+ type: string
+ type: object
+ livenessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ name:
+ type: string
+ ports:
+ items:
+ properties:
+ containerPort:
+ format: int32
+ type: integer
+ hostIP:
+ type: string
+ hostPort:
+ format: int32
+ type: integer
+ name:
+ type: string
+ protocol:
+ default: TCP
+ type: string
+ required:
+ - containerPort
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - containerPort
+ - protocol
+ x-kubernetes-list-type: map
+ readinessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ resizePolicy:
+ items:
+ properties:
+ resourceName:
+ type: string
+ restartPolicy:
+ type: string
+ required:
+ - resourceName
+ - restartPolicy
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ resources:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ restartPolicy:
+ type: string
+ restartPolicyRules:
+ items:
+ properties:
+ action:
+ type: string
+ exitCodes:
+ properties:
+ operator:
+ type: string
+ values:
+ items:
+ format: int32
+ type: integer
+ type: array
+ x-kubernetes-list-type: set
+ required:
+ - operator
+ type: object
+ required:
+ - action
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ securityContext:
+ properties:
+ allowPrivilegeEscalation:
+ type: boolean
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ capabilities:
+ properties:
+ add:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ drop:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ privileged:
+ type: boolean
+ procMount:
+ type: string
+ readOnlyRootFilesystem:
+ type: boolean
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ startupProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ stdin:
+ type: boolean
+ stdinOnce:
+ type: boolean
+ terminationMessagePath:
+ type: string
+ terminationMessagePolicy:
+ type: string
+ tty:
+ type: boolean
+ volumeDevices:
+ items:
+ properties:
+ devicePath:
+ type: string
+ name:
+ type: string
+ required:
+ - devicePath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - devicePath
+ x-kubernetes-list-type: map
+ volumeMounts:
+ items:
+ properties:
+ mountPath:
+ type: string
+ mountPropagation:
+ type: string
+ name:
+ type: string
+ readOnly:
+ type: boolean
+ recursiveReadOnly:
+ type: string
+ subPath:
+ type: string
+ subPathExpr:
+ type: string
+ required:
+ - mountPath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - mountPath
+ x-kubernetes-list-type: map
+ workingDir:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ dnsConfig:
properties:
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- x-kubernetes-map-type: atomic
- mode:
- format: int32
- type: integer
- path:
- type: string
- resourceFieldRef:
- properties:
- containerName:
- type: string
- divisor:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- resource:
- type: string
- required:
- - resource
- type: object
- x-kubernetes-map-type: atomic
- required:
- - path
- type: object
- type: array
- x-kubernetes-list-type: atomic
- type: object
- emptyDir:
- properties:
- medium:
- type: string
- sizeLimit:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- type: object
- ephemeral:
- properties:
- volumeClaimTemplate:
- properties:
- metadata:
- properties:
- annotations:
- additionalProperties:
- type: string
+ nameservers:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ options:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
type: object
- finalizers:
+ type: array
+ x-kubernetes-list-type: atomic
+ searches:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ dnsPolicy:
+ type: string
+ enableServiceLinks:
+ type: boolean
+ ephemeralContainers:
+ items:
+ properties:
+ args:
items:
type: string
type: array
- labels:
- additionalProperties:
+ x-kubernetes-list-type: atomic
+ command:
+ items:
type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ envFrom:
+ items:
+ properties:
+ configMapRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ prefix:
+ type: string
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ image:
+ type: string
+ imagePullPolicy:
+ type: string
+ lifecycle:
+ properties:
+ postStart:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ preStop:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ stopSignal:
+ type: string
+ type: object
+ livenessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ name:
+ type: string
+ ports:
+ items:
+ properties:
+ containerPort:
+ format: int32
+ type: integer
+ hostIP:
+ type: string
+ hostPort:
+ format: int32
+ type: integer
+ name:
+ type: string
+ protocol:
+ default: TCP
+ type: string
+ required:
+ - containerPort
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - containerPort
+ - protocol
+ x-kubernetes-list-type: map
+ readinessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
type: object
- name:
- type: string
- namespace:
- type: string
- type: object
- spec:
- properties:
- accessModes:
+ resizePolicy:
items:
- type: string
+ properties:
+ resourceName:
+ type: string
+ restartPolicy:
+ type: string
+ required:
+ - resourceName
+ - restartPolicy
+ type: object
type: array
x-kubernetes-list-type: atomic
- dataSource:
- properties:
- apiGroup:
- type: string
- kind:
- type: string
- name:
- type: string
- required:
- - kind
- - name
- type: object
- x-kubernetes-map-type: atomic
- dataSourceRef:
- properties:
- apiGroup:
- type: string
- kind:
- type: string
- name:
- type: string
- namespace:
- type: string
- required:
- - kind
- - name
- type: object
resources:
properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
limits:
additionalProperties:
anyOf:
@@ -13163,642 +23485,1228 @@ spec:
x-kubernetes-int-or-string: true
type: object
type: object
- selector:
+ restartPolicy:
+ type: string
+ restartPolicyRules:
+ items:
+ properties:
+ action:
+ type: string
+ exitCodes:
+ properties:
+ operator:
+ type: string
+ values:
+ items:
+ format: int32
+ type: integer
+ type: array
+ x-kubernetes-list-type: set
+ required:
+ - operator
+ type: object
+ required:
+ - action
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ securityContext:
properties:
- matchExpressions:
- items:
+ allowPrivilegeEscalation:
+ type: boolean
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ capabilities:
+ properties:
+ add:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ drop:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ privileged:
+ type: boolean
+ procMount:
+ type: string
+ readOnlyRootFilesystem:
+ type: boolean
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ startupProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ stdin:
+ type: boolean
+ stdinOnce:
+ type: boolean
+ targetContainerName:
+ type: string
+ terminationMessagePath:
+ type: string
+ terminationMessagePolicy:
+ type: string
+ tty:
+ type: boolean
+ volumeDevices:
+ items:
+ properties:
+ devicePath:
+ type: string
+ name:
+ type: string
+ required:
+ - devicePath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - devicePath
+ x-kubernetes-list-type: map
+ volumeMounts:
+ items:
+ properties:
+ mountPath:
+ type: string
+ mountPropagation:
+ type: string
+ name:
+ type: string
+ readOnly:
+ type: boolean
+ recursiveReadOnly:
+ type: string
+ subPath:
+ type: string
+ subPathExpr:
+ type: string
+ required:
+ - mountPath
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - mountPath
+ x-kubernetes-list-type: map
+ workingDir:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ hostAliases:
+ items:
+ properties:
+ hostnames:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ ip:
+ type: string
+ required:
+ - ip
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - ip
+ x-kubernetes-list-type: map
+ hostIPC:
+ type: boolean
+ hostNetwork:
+ type: boolean
+ hostPID:
+ type: boolean
+ hostUsers:
+ type: boolean
+ hostname:
+ type: string
+ hostnameOverride:
+ type: string
+ imagePullSecrets:
+ items:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ initContainers:
+ items:
+ properties:
+ args:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ env:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ valueFrom:
+ properties:
+ configMapKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ envFrom:
+ items:
+ properties:
+ configMapRef:
properties:
- key:
- type: string
- operator:
+ name:
+ default: ""
type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
+ optional:
+ type: boolean
type: object
- type: array
- x-kubernetes-list-type: atomic
- matchLabels:
- additionalProperties:
+ x-kubernetes-map-type: atomic
+ prefix:
type: string
- type: object
- type: object
- x-kubernetes-map-type: atomic
- storageClassName:
- type: string
- volumeAttributesClassName:
- type: string
- volumeMode:
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ image:
type: string
- volumeName:
+ imagePullPolicy:
type: string
- type: object
- required:
- - spec
- type: object
- type: object
- fc:
- properties:
- fsType:
- type: string
- lun:
- format: int32
- type: integer
- readOnly:
- type: boolean
- targetWWNs:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- wwids:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- type: object
- flexVolume:
- properties:
- driver:
- type: string
- fsType:
- type: string
- options:
- additionalProperties:
- type: string
- type: object
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- default: ""
- type: string
- type: object
- x-kubernetes-map-type: atomic
- required:
- - driver
- type: object
- flocker:
- properties:
- datasetName:
- type: string
- datasetUUID:
- type: string
- type: object
- gcePersistentDisk:
- properties:
- fsType:
- type: string
- partition:
- format: int32
- type: integer
- pdName:
- type: string
- readOnly:
- type: boolean
- required:
- - pdName
- type: object
- gitRepo:
- properties:
- directory:
- type: string
- repository:
- type: string
- revision:
- type: string
- required:
- - repository
- type: object
- glusterfs:
- properties:
- endpoints:
- type: string
- path:
- type: string
- readOnly:
- type: boolean
- required:
- - endpoints
- - path
- type: object
- hostPath:
- properties:
- path:
- type: string
- type:
- type: string
- required:
- - path
- type: object
- image:
- properties:
- pullPolicy:
- type: string
- reference:
- type: string
- type: object
- iscsi:
- properties:
- chapAuthDiscovery:
- type: boolean
- chapAuthSession:
- type: boolean
- fsType:
- type: string
- initiatorName:
- type: string
- iqn:
- type: string
- iscsiInterface:
- default: default
- type: string
- lun:
- format: int32
- type: integer
- portals:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- default: ""
- type: string
- type: object
- x-kubernetes-map-type: atomic
- targetPortal:
- type: string
- required:
- - iqn
- - lun
- - targetPortal
- type: object
- name:
- type: string
- nfs:
- properties:
- path:
- type: string
- readOnly:
- type: boolean
- server:
- type: string
- required:
- - path
- - server
- type: object
- persistentVolumeClaim:
- properties:
- claimName:
- type: string
- readOnly:
- type: boolean
- required:
- - claimName
- type: object
- photonPersistentDisk:
- properties:
- fsType:
- type: string
- pdID:
- type: string
- required:
- - pdID
- type: object
- portworxVolume:
- properties:
- fsType:
- type: string
- readOnly:
- type: boolean
- volumeID:
- type: string
- required:
- - volumeID
- type: object
- projected:
- properties:
- defaultMode:
- format: int32
- type: integer
- sources:
- items:
- properties:
- clusterTrustBundle:
- properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
+ lifecycle:
+ properties:
+ postStart:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
properties:
- key:
+ host:
type: string
- operator:
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
type: string
- values:
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ preStop:
+ properties:
+ exec:
+ properties:
+ command:
items:
type: string
type: array
x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
required:
- - key
- - operator
+ - port
type: object
- type: array
- x-kubernetes-list-type: atomic
- matchLabels:
- additionalProperties:
+ sleep:
+ properties:
+ seconds:
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ stopSignal:
+ type: string
+ type: object
+ livenessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
+ format: int32
+ type: integer
+ service:
+ default: ""
type: string
- type: object
- type: object
- x-kubernetes-map-type: atomic
- name:
- type: string
- optional:
- type: boolean
- path:
- type: string
- signerName:
- type: string
- required:
- - path
- type: object
- configMap:
- properties:
- items:
- items:
+ required:
+ - port
+ type: object
+ httpGet:
properties:
- key:
+ host:
type: string
- mode:
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ name:
+ type: string
+ ports:
+ items:
+ properties:
+ containerPort:
+ format: int32
+ type: integer
+ hostIP:
+ type: string
+ hostPort:
+ format: int32
+ type: integer
+ name:
+ type: string
+ protocol:
+ default: TCP
+ type: string
+ required:
+ - containerPort
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - containerPort
+ - protocol
+ x-kubernetes-list-type: map
+ readinessProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
format: int32
type: integer
+ service:
+ default: ""
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
path:
type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
required:
- - key
- - path
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ resizePolicy:
+ items:
+ properties:
+ resourceName:
+ type: string
+ restartPolicy:
+ type: string
+ required:
+ - resourceName
+ - restartPolicy
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ resources:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ restartPolicy:
+ type: string
+ restartPolicyRules:
+ items:
+ properties:
+ action:
+ type: string
+ exitCodes:
+ properties:
+ operator:
+ type: string
+ values:
+ items:
+ format: int32
+ type: integer
+ type: array
+ x-kubernetes-list-type: set
+ required:
+ - operator
+ type: object
+ required:
+ - action
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ securityContext:
+ properties:
+ allowPrivilegeEscalation:
+ type: boolean
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ capabilities:
+ properties:
+ add:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ drop:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ privileged:
+ type: boolean
+ procMount:
+ type: string
+ readOnlyRootFilesystem:
+ type: boolean
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
type: object
- type: array
- x-kubernetes-list-type: atomic
- name:
- default: ""
- type: string
- optional:
- type: boolean
- type: object
- x-kubernetes-map-type: atomic
- downwardAPI:
- properties:
- items:
- items:
+ seccompProfile:
properties:
- fieldRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- required:
- - fieldPath
- type: object
- x-kubernetes-map-type: atomic
- mode:
- format: int32
- type: integer
- path:
+ localhostProfile:
+ type: string
+ type:
type: string
- resourceFieldRef:
- properties:
- containerName:
- type: string
- divisor:
- anyOf:
- - type: integer
- - type: string
- pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
- x-kubernetes-int-or-string: true
- resource:
- type: string
- required:
- - resource
- type: object
- x-kubernetes-map-type: atomic
required:
- - path
+ - type
type: object
- type: array
- x-kubernetes-list-type: atomic
- type: object
- secret:
- properties:
- items:
- items:
+ windowsOptions:
properties:
- key:
+ gmsaCredentialSpec:
type: string
- mode:
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ startupProbe:
+ properties:
+ exec:
+ properties:
+ command:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ format: int32
+ type: integer
+ grpc:
+ properties:
+ port:
format: int32
type: integer
- path:
+ service:
+ default: ""
type: string
required:
- - key
- - path
+ - port
type: object
- type: array
- x-kubernetes-list-type: atomic
- name:
- default: ""
- type: string
- optional:
- type: boolean
- type: object
- x-kubernetes-map-type: atomic
- serviceAccountToken:
- properties:
- audience:
- type: string
- expirationSeconds:
- format: int64
- type: integer
- path:
- type: string
- required:
- - path
- type: object
- type: object
- type: array
- x-kubernetes-list-type: atomic
- type: object
- quobyte:
- properties:
- group:
- type: string
- readOnly:
- type: boolean
- registry:
- type: string
- tenant:
- type: string
- user:
- type: string
- volume:
- type: string
- required:
- - registry
- - volume
- type: object
- rbd:
- properties:
- fsType:
- type: string
- image:
- type: string
- keyring:
- default: /etc/ceph/keyring
- type: string
- monitors:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- pool:
- default: rbd
- type: string
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- default: ""
- type: string
- type: object
- x-kubernetes-map-type: atomic
- user:
- default: admin
- type: string
- required:
- - image
- - monitors
- type: object
- scaleIO:
- properties:
- fsType:
- default: xfs
- type: string
- gateway:
- type: string
- protectionDomain:
- type: string
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- default: ""
- type: string
- type: object
- x-kubernetes-map-type: atomic
- sslEnabled:
- type: boolean
- storageMode:
- default: ThinProvisioned
- type: string
- storagePool:
- type: string
- system:
- type: string
- volumeName:
- type: string
- required:
- - gateway
- - secretRef
- - system
- type: object
- secret:
- properties:
- defaultMode:
- format: int32
- type: integer
- items:
- items:
- properties:
- key:
- type: string
- mode:
- format: int32
- type: integer
- path:
- type: string
- required:
- - key
- - path
- type: object
- type: array
- x-kubernetes-list-type: atomic
- optional:
- type: boolean
- secretName:
- type: string
- type: object
- storageos:
- properties:
- fsType:
- type: string
- readOnly:
- type: boolean
- secretRef:
- properties:
- name:
- default: ""
- type: string
- type: object
- x-kubernetes-map-type: atomic
- volumeName:
- type: string
- volumeNamespace:
- type: string
- type: object
- vsphereVolume:
- properties:
- fsType:
- type: string
- storagePolicyID:
- type: string
- storagePolicyName:
- type: string
- volumePath:
- type: string
- required:
- - volumePath
- type: object
- required:
- - name
- type: object
- type: array
- affinity:
- properties:
- nodeAffinity:
- properties:
- preferredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- preference:
- properties:
- matchExpressions:
+ httpGet:
+ properties:
+ host:
+ type: string
+ httpHeaders:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ scheme:
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ format: int32
+ type: integer
+ periodSeconds:
+ format: int32
+ type: integer
+ successThreshold:
+ format: int32
+ type: integer
+ tcpSocket:
+ properties:
+ host:
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ timeoutSeconds:
+ format: int32
+ type: integer
+ type: object
+ stdin:
+ type: boolean
+ stdinOnce:
+ type: boolean
+ terminationMessagePath:
+ type: string
+ terminationMessagePolicy:
+ type: string
+ tty:
+ type: boolean
+ volumeDevices:
items:
properties:
- key:
+ devicePath:
type: string
- operator:
+ name:
type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
required:
- - key
- - operator
+ - devicePath
+ - name
type: object
type: array
- x-kubernetes-list-type: atomic
- matchFields:
+ x-kubernetes-list-map-keys:
+ - devicePath
+ x-kubernetes-list-type: map
+ volumeMounts:
items:
properties:
- key:
+ mountPath:
type: string
- operator:
+ mountPropagation:
type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
- type: array
- x-kubernetes-list-type: atomic
- type: object
- x-kubernetes-map-type: atomic
- weight:
- format: int32
- type: integer
- required:
- - preference
- - weight
- type: object
- type: array
- x-kubernetes-list-type: atomic
- requiredDuringSchedulingIgnoredDuringExecution:
- properties:
- nodeSelectorTerms:
- items:
- properties:
- matchExpressions:
- items:
- properties:
- key:
+ name:
type: string
- operator:
+ readOnly:
+ type: boolean
+ recursiveReadOnly:
type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
- type: array
- x-kubernetes-list-type: atomic
- matchFields:
- items:
- properties:
- key:
+ subPath:
type: string
- operator:
+ subPathExpr:
type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
required:
- - key
- - operator
+ - mountPath
+ - name
type: object
type: array
- x-kubernetes-list-type: atomic
+ x-kubernetes-list-map-keys:
+ - mountPath
+ x-kubernetes-list-type: map
+ workingDir:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ nodeName:
+ type: string
+ nodeSelector:
+ additionalProperties:
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ os:
+ properties:
+ name:
+ type: string
+ required:
+ - name
+ type: object
+ overhead:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ preemptionPolicy:
+ type: string
+ priority:
+ format: int32
+ type: integer
+ priorityClassName:
+ type: string
+ readinessGates:
+ items:
+ properties:
+ conditionType:
+ type: string
+ required:
+ - conditionType
type: object
- x-kubernetes-map-type: atomic
type: array
x-kubernetes-list-type: atomic
- required:
- - nodeSelectorTerms
- type: object
- x-kubernetes-map-type: atomic
- type: object
- podAffinity:
- properties:
- preferredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- podAffinityTerm:
+ resourceClaims:
+ items:
+ properties:
+ name:
+ type: string
+ resourceClaimName:
+ type: string
+ resourceClaimTemplateName:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ resources:
+ properties:
+ claims:
+ items:
+ properties:
+ name:
+ type: string
+ request:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ restartPolicy:
+ type: string
+ runtimeClassName:
+ type: string
+ schedulerName:
+ type: string
+ schedulingGates:
+ items:
+ properties:
+ name:
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ securityContext:
+ properties:
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ fsGroup:
+ format: int64
+ type: integer
+ fsGroupChangePolicy:
+ type: string
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxChangePolicy:
+ type: string
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ supplementalGroups:
+ items:
+ format: int64
+ type: integer
+ type: array
+ x-kubernetes-list-type: atomic
+ supplementalGroupsPolicy:
+ type: string
+ sysctls:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ serviceAccount:
+ type: string
+ serviceAccountName:
+ type: string
+ setHostnameAsFQDN:
+ type: boolean
+ shareProcessNamespace:
+ type: boolean
+ subdomain:
+ type: string
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
+ tolerations:
+ items:
+ properties:
+ effect:
+ type: string
+ key:
+ type: string
+ operator:
+ type: string
+ tolerationSeconds:
+ format: int64
+ type: integer
+ value:
+ type: string
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ topologySpreadConstraints:
+ items:
properties:
labelSelector:
properties:
@@ -13831,354 +24739,960 @@ spec:
type: string
type: array
x-kubernetes-list-type: atomic
- mismatchLabelKeys:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- namespaceSelector:
+ maxSkew:
+ format: int32
+ type: integer
+ minDomains:
+ format: int32
+ type: integer
+ nodeAffinityPolicy:
+ type: string
+ nodeTaintsPolicy:
+ type: string
+ topologyKey:
+ type: string
+ whenUnsatisfiable:
+ type: string
+ required:
+ - maxSkew
+ - topologyKey
+ - whenUnsatisfiable
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - topologyKey
+ - whenUnsatisfiable
+ x-kubernetes-list-type: map
+ volumes:
+ items:
+ properties:
+ awsElasticBlockStore:
properties:
- matchExpressions:
+ fsType:
+ type: string
+ partition:
+ format: int32
+ type: integer
+ readOnly:
+ type: boolean
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ azureDisk:
+ properties:
+ cachingMode:
+ type: string
+ diskName:
+ type: string
+ diskURI:
+ type: string
+ fsType:
+ default: ext4
+ type: string
+ kind:
+ type: string
+ readOnly:
+ default: false
+ type: boolean
+ required:
+ - diskName
+ - diskURI
+ type: object
+ azureFile:
+ properties:
+ readOnly:
+ type: boolean
+ secretName:
+ type: string
+ shareName:
+ type: string
+ required:
+ - secretName
+ - shareName
+ type: object
+ cephfs:
+ properties:
+ monitors:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ secretFile:
+ type: string
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ user:
+ type: string
+ required:
+ - monitors
+ type: object
+ cinder:
+ properties:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ configMap:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
items:
properties:
key:
type: string
- operator:
+ mode:
+ format: int32
+ type: integer
+ path:
type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
required:
- key
- - operator
+ - path
type: object
type: array
x-kubernetes-list-type: atomic
- matchLabels:
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ csi:
+ properties:
+ driver:
+ type: string
+ fsType:
+ type: string
+ nodePublishSecretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ readOnly:
+ type: boolean
+ volumeAttributes:
additionalProperties:
type: string
type: object
+ required:
+ - driver
type: object
- x-kubernetes-map-type: atomic
- namespaces:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- topologyKey:
- type: string
- required:
- - topologyKey
- type: object
- weight:
- format: int32
- type: integer
- required:
- - podAffinityTerm
- - weight
- type: object
- type: array
- x-kubernetes-list-type: atomic
- requiredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
- type: array
- x-kubernetes-list-type: atomic
- matchLabels:
- additionalProperties:
- type: string
+ downwardAPI:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
+ items:
+ properties:
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
type: object
- type: object
- x-kubernetes-map-type: atomic
- matchLabelKeys:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- mismatchLabelKeys:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- namespaceSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
- type: array
- x-kubernetes-list-type: atomic
- matchLabels:
- additionalProperties:
- type: string
+ emptyDir:
+ properties:
+ medium:
+ type: string
+ sizeLimit:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
type: object
- type: object
- x-kubernetes-map-type: atomic
- namespaces:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- topologyKey:
- type: string
- required:
- - topologyKey
- type: object
- type: array
- x-kubernetes-list-type: atomic
- type: object
- podAntiAffinity:
- properties:
- preferredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- podAffinityTerm:
- properties:
- labelSelector:
+ ephemeral:
+ properties:
+ volumeClaimTemplate:
+ properties:
+ metadata:
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
+ finalizers:
+ items:
+ type: string
+ type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
+ name:
+ type: string
+ namespace:
+ type: string
+ type: object
+ spec:
+ properties:
+ accessModes:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ dataSource:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ x-kubernetes-map-type: atomic
+ dataSourceRef:
+ properties:
+ apiGroup:
+ type: string
+ kind:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ required:
+ - kind
+ - name
+ type: object
+ resources:
+ properties:
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ selector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ storageClassName:
+ type: string
+ volumeAttributesClassName:
+ type: string
+ volumeMode:
+ type: string
+ volumeName:
+ type: string
+ type: object
+ required:
+ - spec
+ type: object
+ type: object
+ fc:
properties:
- matchExpressions:
+ fsType:
+ type: string
+ lun:
+ format: int32
+ type: integer
+ readOnly:
+ type: boolean
+ targetWWNs:
items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
+ type: string
type: array
x-kubernetes-list-type: atomic
- matchLabels:
+ wwids:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ flexVolume:
+ properties:
+ driver:
+ type: string
+ fsType:
+ type: string
+ options:
additionalProperties:
type: string
type: object
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - driver
type: object
- x-kubernetes-map-type: atomic
- matchLabelKeys:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- mismatchLabelKeys:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- namespaceSelector:
+ flocker:
properties:
- matchExpressions:
+ datasetName:
+ type: string
+ datasetUUID:
+ type: string
+ type: object
+ gcePersistentDisk:
+ properties:
+ fsType:
+ type: string
+ partition:
+ format: int32
+ type: integer
+ pdName:
+ type: string
+ readOnly:
+ type: boolean
+ required:
+ - pdName
+ type: object
+ gitRepo:
+ properties:
+ directory:
+ type: string
+ repository:
+ type: string
+ revision:
+ type: string
+ required:
+ - repository
+ type: object
+ glusterfs:
+ properties:
+ endpoints:
+ type: string
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ required:
+ - endpoints
+ - path
+ type: object
+ hostPath:
+ properties:
+ path:
+ type: string
+ type:
+ type: string
+ required:
+ - path
+ type: object
+ image:
+ properties:
+ pullPolicy:
+ type: string
+ reference:
+ type: string
+ type: object
+ iscsi:
+ properties:
+ chapAuthDiscovery:
+ type: boolean
+ chapAuthSession:
+ type: boolean
+ fsType:
+ type: string
+ initiatorName:
+ type: string
+ iqn:
+ type: string
+ iscsiInterface:
+ default: default
+ type: string
+ lun:
+ format: int32
+ type: integer
+ portals:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ targetPortal:
+ type: string
+ required:
+ - iqn
+ - lun
+ - targetPortal
+ type: object
+ name:
+ type: string
+ nfs:
+ properties:
+ path:
+ type: string
+ readOnly:
+ type: boolean
+ server:
+ type: string
+ required:
+ - path
+ - server
+ type: object
+ persistentVolumeClaim:
+ properties:
+ claimName:
+ type: string
+ readOnly:
+ type: boolean
+ required:
+ - claimName
+ type: object
+ photonPersistentDisk:
+ properties:
+ fsType:
+ type: string
+ pdID:
+ type: string
+ required:
+ - pdID
+ type: object
+ portworxVolume:
+ properties:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ volumeID:
+ type: string
+ required:
+ - volumeID
+ type: object
+ projected:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ sources:
items:
properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
+ clusterTrustBundle:
+ properties:
+ labelSelector:
+ properties:
+ matchExpressions:
+ items:
+ properties:
+ key:
+ type: string
+ operator:
+ type: string
+ values:
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ required:
+ - key
+ - operator
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ matchLabels:
+ additionalProperties:
+ type: string
+ type: object
+ type: object
+ x-kubernetes-map-type: atomic
+ name:
+ type: string
+ optional:
+ type: boolean
+ path:
+ type: string
+ signerName:
+ type: string
+ required:
+ - path
+ type: object
+ configMap:
+ properties:
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ downwardAPI:
+ properties:
+ items:
+ items:
+ properties:
+ fieldRef:
+ properties:
+ apiVersion:
+ type: string
+ fieldPath:
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ resourceFieldRef:
+ properties:
+ containerName:
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ required:
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ podCertificate:
+ properties:
+ certificateChainPath:
+ type: string
+ credentialBundlePath:
+ type: string
+ keyPath:
+ type: string
+ keyType:
+ type: string
+ maxExpirationSeconds:
+ format: int32
+ type: integer
+ signerName:
+ type: string
+ userAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ required:
+ - keyType
+ - signerName
+ type: object
+ secret:
+ properties:
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ serviceAccountToken:
+ properties:
+ audience:
+ type: string
+ expirationSeconds:
+ format: int64
+ type: integer
+ path:
+ type: string
+ required:
+ - path
+ type: object
type: object
type: array
x-kubernetes-list-type: atomic
- matchLabels:
- additionalProperties:
+ type: object
+ quobyte:
+ properties:
+ group:
+ type: string
+ readOnly:
+ type: boolean
+ registry:
+ type: string
+ tenant:
+ type: string
+ user:
+ type: string
+ volume:
+ type: string
+ required:
+ - registry
+ - volume
+ type: object
+ rbd:
+ properties:
+ fsType:
+ type: string
+ image:
+ type: string
+ keyring:
+ default: /etc/ceph/keyring
+ type: string
+ monitors:
+ items:
type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ pool:
+ default: rbd
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
type: object
+ x-kubernetes-map-type: atomic
+ user:
+ default: admin
+ type: string
+ required:
+ - image
+ - monitors
type: object
- x-kubernetes-map-type: atomic
- namespaces:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- topologyKey:
- type: string
- required:
- - topologyKey
- type: object
- weight:
- format: int32
- type: integer
- required:
- - podAffinityTerm
- - weight
- type: object
- type: array
- x-kubernetes-list-type: atomic
- requiredDuringSchedulingIgnoredDuringExecution:
- items:
- properties:
- labelSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
+ scaleIO:
+ properties:
+ fsType:
+ default: xfs
+ type: string
+ gateway:
+ type: string
+ protectionDomain:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ sslEnabled:
+ type: boolean
+ storageMode:
+ default: ThinProvisioned
+ type: string
+ storagePool:
+ type: string
+ system:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - gateway
+ - secretRef
+ - system
+ type: object
+ secret:
+ properties:
+ defaultMode:
+ format: int32
+ type: integer
+ items:
+ items:
+ properties:
+ key:
+ type: string
+ mode:
+ format: int32
+ type: integer
+ path:
+ type: string
+ required:
+ - key
+ - path
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ optional:
+ type: boolean
+ secretName:
+ type: string
+ type: object
+ storageos:
+ properties:
+ fsType:
+ type: string
+ readOnly:
+ type: boolean
+ secretRef:
+ properties:
+ name:
+ default: ""
type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
- type: array
- x-kubernetes-list-type: atomic
- matchLabels:
- additionalProperties:
- type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ volumeName:
+ type: string
+ volumeNamespace:
+ type: string
type: object
+ vsphereVolume:
+ properties:
+ fsType:
+ type: string
+ storagePolicyID:
+ type: string
+ storagePolicyName:
+ type: string
+ volumePath:
+ type: string
+ required:
+ - volumePath
+ type: object
+ required:
+ - name
type: object
- x-kubernetes-map-type: atomic
- matchLabelKeys:
- items:
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ workloadRef:
+ properties:
+ name:
type: string
- type: array
- x-kubernetes-list-type: atomic
- mismatchLabelKeys:
- items:
+ podGroup:
type: string
- type: array
- x-kubernetes-list-type: atomic
- namespaceSelector:
- properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
- type: array
- x-kubernetes-list-type: atomic
- matchLabels:
- additionalProperties:
- type: string
- type: object
- type: object
- x-kubernetes-map-type: atomic
- namespaces:
- items:
+ podGroupReplicaKey:
type: string
- type: array
- x-kubernetes-list-type: atomic
- topologyKey:
- type: string
- required:
- - topologyKey
- type: object
+ required:
+ - name
+ - podGroup
+ type: object
+ required:
+ - containers
+ type: object
+ type: object
+ replicas:
+ format: int32
+ type: integer
+ shards:
+ format: int32
+ type: integer
+ storage:
+ properties:
+ accessModes:
+ items:
+ type: string
type: array
- x-kubernetes-list-type: atomic
+ resources:
+ properties:
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ type: object
+ type: object
+ storageClassName:
+ type: string
type: object
+ required:
+ - storage
type: object
- baseImage:
+ required:
+ - clickHouseKeeper
+ - cluster
+ type: object
+ databaseRef:
+ properties:
+ apiVersion:
type: string
- ignoreDeletionMarksDelay:
+ fieldPath:
type: string
- imagePullPolicy:
- default: IfNotPresent
- enum:
- - Always
- - Never
- - IfNotPresent
+ kind:
type: string
- imagePullSecrets:
- items:
- properties:
- name:
- default: ""
- type: string
- type: object
- x-kubernetes-map-type: atomic
- type: array
- logFormat:
- default: logfmt
- enum:
- - logfmt
- - json
+ name:
type: string
- logLevel:
- enum:
- - debug
- - info
- - warn
- - error
+ namespace:
type: string
- nodeSelector:
- additionalProperties:
+ resourceVersion:
+ type: string
+ uid:
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ deletionPolicy:
+ type: string
+ deploymentMode:
+ type: string
+ enabled:
+ type: boolean
+ s3:
+ properties:
+ accessKey:
+ type: string
+ bucket:
+ type: string
+ endpoint:
+ type: string
+ prefix:
+ type: string
+ region:
+ type: string
+ secretKey:
+ type: string
+ skipVerify:
+ type: integer
+ type: object
+ storage:
+ properties:
+ accessModes:
+ items:
type: string
- type: object
- resourceRequirements:
+ type: array
+ resources:
properties:
- claims:
- items:
- properties:
- name:
- type: string
- request:
- type: string
- required:
- - name
- type: object
- type: array
- x-kubernetes-list-map-keys:
- - name
- x-kubernetes-list-type: map
limits:
additionalProperties:
anyOf:
@@ -14196,69 +25710,26 @@ spec:
x-kubernetes-int-or-string: true
type: object
type: object
- shardingStrategy:
- properties:
- shards:
- type: integer
- type:
- type: string
- required:
- - shards
- - type
- type: object
- storageSize:
+ storageClassName:
type: string
- tolerations:
+ type: object
+ tls:
+ properties:
+ clientCaCertificateRefs:
items:
properties:
- effect:
- type: string
key:
type: string
- operator:
- type: string
- tolerationSeconds:
- format: int64
- type: integer
- value:
+ name:
type: string
+ required:
+ - key
+ - name
type: object
type: array
- version:
- type: string
- required:
- - storageSize
- type: object
- required:
- - objectStorageConfig
- type: object
- required:
- - thanos
- type: object
- traces:
- properties:
- clickhouse:
- properties:
- databaseRef:
- properties:
- apiVersion:
- type: string
- fieldPath:
- type: string
- kind:
- type: string
- name:
- type: string
- namespace:
- type: string
- resourceVersion:
- type: string
- uid:
- type: string
type: object
- x-kubernetes-map-type: atomic
- required:
- - databaseRef
+ version:
+ type: string
type: object
required:
- clickhouse
diff --git a/charts/tenant-operator/crds/monitoring.k8s.appscode.com_tenants.yaml b/charts/tenant-operator/crds/monitoring.k8s.appscode.com_tenants.yaml
index e4c9fc5a..1a53c138 100644
--- a/charts/tenant-operator/crds/monitoring.k8s.appscode.com_tenants.yaml
+++ b/charts/tenant-operator/crds/monitoring.k8s.appscode.com_tenants.yaml
@@ -26,6 +26,8 @@ spec:
type: object
spec:
properties:
+ enableTenant:
+ type: boolean
externalLabels:
additionalProperties:
type: string
@@ -43,6 +45,7 @@ spec:
name:
type: string
replicas:
+ format: int32
type: integer
storageSize:
type: string
@@ -119,6 +122,10 @@ spec:
- retention
- targetEndpoint
type: object
+ owner:
+ type: string
+ revoked:
+ type: boolean
telemetryStackRef:
properties:
name:
@@ -128,6 +135,8 @@ spec:
x-kubernetes-map-type: atomic
tenantID:
type: string
+ tenantName:
+ type: string
traces:
properties:
retention:
diff --git a/charts/tenant-operator/templates/deployment.yaml b/charts/tenant-operator/templates/deployment.yaml
index 061c2e3e..83fb5b21 100644
--- a/charts/tenant-operator/templates/deployment.yaml
+++ b/charts/tenant-operator/templates/deployment.yaml
@@ -43,7 +43,7 @@ spec:
securityContext:
{{- toYaml .Values.image.securityContext | nindent 12 }}
{{- end }}
- image: rokibulhasan114/tenant-operator:v0.0.1
+ image: {{ include "image.registry" . }}/{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}{{ include "operator.ubi" . }}
imagePullPolicy: {{ .Values.imagePullPolicy }}
command:
- /manager
diff --git a/charts/tenant-operator/values.yaml b/charts/tenant-operator/values.yaml
index 5c7175c3..5e684bb5 100644
--- a/charts/tenant-operator/values.yaml
+++ b/charts/tenant-operator/values.yaml
@@ -13,7 +13,7 @@ replicaCount: 1
registryFQDN: ghcr.io
image:
# Docker registry used to pull operator image
- registry: appscode
+ registry: opnpulse
# Name of operator container image
repository: tenant-operator
# Operator container image tag
diff --git a/charts/thanos-operator/Chart.yaml b/charts/thanos-operator/Chart.yaml
index 89b92260..e080f41f 100644
--- a/charts/thanos-operator/Chart.yaml
+++ b/charts/thanos-operator/Chart.yaml
@@ -3,7 +3,7 @@ name: thanos-operator
description: A Helm chart to distribute thanos-operator
type: application
-version: 0.1.0
+version: v2026.5.22
appVersion: "0.1.0"
keywords:
diff --git a/charts/thanos-operator/README.md b/charts/thanos-operator/README.md
index 6b37f41a..2f923aba 100644
--- a/charts/thanos-operator/README.md
+++ b/charts/thanos-operator/README.md
@@ -7,8 +7,8 @@
```bash
$ helm repo add appscode https://charts.appscode.com/stable/
$ helm repo update
-$ helm search repo appscode/thanos-operator --version=0.1.0
-$ helm upgrade -i thanos-operator appscode/thanos-operator -n kubeops --create-namespace --version=0.1.0
+$ helm search repo appscode/thanos-operator --version=v2026.5.22
+$ helm upgrade -i thanos-operator appscode/thanos-operator -n kubeops --create-namespace --version=v2026.5.22
```
## Introduction
@@ -24,7 +24,7 @@ This chart deploys a Thanos Operator on a [Kubernetes](http://kubernetes.io) clu
To install/upgrade the chart with the release name `thanos-operator`:
```bash
-$ helm upgrade -i thanos-operator appscode/thanos-operator -n kubeops --create-namespace --version=0.1.0
+$ helm upgrade -i thanos-operator appscode/thanos-operator -n kubeops --create-namespace --version=v2026.5.22
```
The command deploys a Thanos Operator on the Kubernetes cluster in the default configuration. The [configuration](#configuration) section lists the parameters that can be configured during installation.
@@ -45,47 +45,43 @@ The command removes all the Kubernetes components associated with the chart and
The following table lists the configurable parameters of the `thanos-operator` chart and their default values.
-| Parameter | Description | Default |
-|--------------------------------------------------|-----------------------------------------------------------------------------------------------------------------|---------------------------------------------|
-| manager.replicas | | 1 |
-| manager.image.repository | | quay.io/thanos/thanos-operator |
-| manager.image.tag | | main-2025-10-23-e28d488 |
-| manager.image.pullPolicy | | IfNotPresent |
-| manager.env | # Environment variables # | [] |
-| manager.envOverrides | # Env overrides (--set manager.envOverrides.VAR=value) # Same name in env above: this value takes precedence. # | {} |
-| manager.imagePullSecrets | # Image pull secrets # | [] |
-| manager.podSecurityContext.runAsNonRoot | | true |
-| manager.securityContext.allowPrivilegeEscalation | | false |
-| manager.resources.limits.cpu | | 500m |
-| manager.resources.limits.memory | | 128Mi |
-| manager.resources.requests.cpu | | 10m |
-| manager.resources.requests.memory | | 64Mi |
-| manager.affinity | # Manager pod's affinity # | {} |
-| manager.nodeSelector | # Manager pod's node selector # | {} |
-| manager.tolerations | # Manager pod's tolerations # | [] |
-| rbacHelpers.enable | Install convenience admin/editor/viewer roles for CRDs | false |
-| crd.enable | Install CRDs with the chart | false |
-| crd.keep | Keep CRDs when uninstalling | true |
-| metrics.enable | | true |
-| metrics.port | Metrics server port | 8443 |
-| certManager.enable | | false |
-| prometheus.enable | | false |
-| objectStorage.bucket | | "" |
-| objectStorage.endpoint | | "" |
-| objectStorage.accessKey | | "" |
-| objectStorage.secretKey | | "" |
-| objectStorage.prefix | | "metrics" |
+| Parameter | Description | Default |
+|--------------------------------------------------|-----------------------------------------------------------------------------------------------------------------|-----------------------------------------------|
+| manager.replicas | | 1 |
+| manager.image.repository | | ghcr.io/opnpulse/thanos-operator |
+| manager.image.tag | | v2026.4.24 |
+| manager.image.pullPolicy | | IfNotPresent |
+| manager.env | # Environment variables # | [] |
+| manager.envOverrides | # Env overrides (--set manager.envOverrides.VAR=value) # Same name in env above: this value takes precedence. # | {} |
+| manager.imagePullSecrets | # Image pull secrets # | [] |
+| manager.podSecurityContext.runAsNonRoot | | true |
+| manager.securityContext.allowPrivilegeEscalation | | false |
+| manager.securityContext.seccompProfile.type | | RuntimeDefault |
+| manager.resources.limits.cpu | | 500m |
+| manager.resources.limits.memory | | 128Mi |
+| manager.resources.requests.cpu | | 10m |
+| manager.resources.requests.memory | | 64Mi |
+| manager.affinity | # Manager pod's affinity # | {} |
+| manager.nodeSelector | # Manager pod's node selector # | {} |
+| manager.tolerations | # Manager pod's tolerations # | [] |
+| rbacHelpers.enable | Install convenience admin/editor/viewer roles for CRDs | false |
+| crd.enable | Install CRDs with the chart | false |
+| crd.keep | Keep CRDs when uninstalling | true |
+| metrics.enable | | true |
+| metrics.port | Metrics server port | 8443 |
+| certManager.enable | | false |
+| prometheus.enable | | false |
Specify each parameter using the `--set key=value[,key=value]` argument to `helm upgrade -i`. For example:
```bash
-$ helm upgrade -i thanos-operator appscode/thanos-operator -n kubeops --create-namespace --version=0.1.0 --set manager.replicas=1
+$ helm upgrade -i thanos-operator appscode/thanos-operator -n kubeops --create-namespace --version=v2026.5.22 --set manager.replicas=1
```
Alternatively, a YAML file that specifies the values for the parameters can be provided while
installing the chart. For example:
```bash
-$ helm upgrade -i thanos-operator appscode/thanos-operator -n kubeops --create-namespace --version=0.1.0 --values values.yaml
+$ helm upgrade -i thanos-operator appscode/thanos-operator -n kubeops --create-namespace --version=v2026.5.22 --values values.yaml
```
diff --git a/charts/thanos-operator/templates/crd/monitoring.thanos.io_thanoscompacts.yaml b/charts/thanos-operator/templates/crd/monitoring.thanos.io_thanoscompacts.yaml
index 414f20b1..951ea324 100644
--- a/charts/thanos-operator/templates/crd/monitoring.thanos.io_thanoscompacts.yaml
+++ b/charts/thanos-operator/templates/crd/monitoring.thanos.io_thanoscompacts.yaml
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.16.1
+ controller-gen.kubebuilder.io/version: v0.19.0
name: thanoscompacts.monitoring.thanos.io
spec:
group: monitoring.thanos.io
@@ -75,6 +75,23 @@ spec:
- fieldPath
type: object
x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
resourceFieldRef:
properties:
containerName:
@@ -503,6 +520,29 @@ spec:
type: object
restartPolicy:
type: string
+ restartPolicyRules:
+ items:
+ properties:
+ action:
+ type: string
+ exitCodes:
+ properties:
+ operator:
+ type: string
+ values:
+ items:
+ format: int32
+ type: integer
+ type: array
+ x-kubernetes-list-type: set
+ required:
+ - operator
+ type: object
+ required:
+ - action
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
securityContext:
properties:
allowPrivilegeEscalation:
@@ -744,6 +784,23 @@ spec:
- fieldPath
type: object
x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
resourceFieldRef:
properties:
containerName:
@@ -1456,6 +1513,29 @@ spec:
type: array
x-kubernetes-list-type: atomic
type: object
+ podCertificate:
+ properties:
+ certificateChainPath:
+ type: string
+ credentialBundlePath:
+ type: string
+ keyPath:
+ type: string
+ keyType:
+ type: string
+ maxExpirationSeconds:
+ format: int32
+ type: integer
+ signerName:
+ type: string
+ userAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ required:
+ - keyType
+ - signerName
+ type: object
secret:
properties:
items:
@@ -2082,6 +2162,10 @@ spec:
x-kubernetes-list-type: atomic
type: object
type: object
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
baseImage:
type: string
blockConfig:
@@ -2155,39 +2239,6 @@ spec:
format: int32
type: integer
type: object
- featureGates:
- default:
- serviceMonitor:
- enable: true
- properties:
- podDisruptionBudget:
- default:
- enable: true
- properties:
- enable:
- type: boolean
- maxUnavailable:
- format: int32
- type: integer
- minAvailable:
- format: int32
- type: integer
- type: object
- prometheusRuleEnabled:
- default: true
- type: boolean
- serviceMonitor:
- default:
- enable: true
- properties:
- enable:
- type: boolean
- labels:
- additionalProperties:
- type: string
- type: object
- type: object
- type: object
imagePullPolicy:
default: IfNotPresent
enum:
@@ -2221,6 +2272,9 @@ spec:
- warn
- error
type: string
+ minReadySeconds:
+ format: int32
+ type: integer
nodeSelector:
additionalProperties:
type: string
@@ -2240,6 +2294,35 @@ spec:
x-kubernetes-map-type: atomic
paused:
type: boolean
+ persistentVolumeClaimRetentionPolicy:
+ default:
+ whenDeleted: Delete
+ whenScaled: Delete
+ properties:
+ whenDeleted:
+ enum:
+ - Retain
+ - Delete
+ type: string
+ whenScaled:
+ enum:
+ - Retain
+ - Delete
+ type: string
+ type: object
+ podDisruptionBudgetConfig:
+ default:
+ enable: true
+ properties:
+ enable:
+ type: boolean
+ type: object
+ podManagementPolicy:
+ default: OrderedReady
+ enum:
+ - OrderedReady
+ - Parallel
+ type: string
resourceRequirements:
properties:
claims:
@@ -2292,6 +2375,85 @@ spec:
- oneHour
- raw
type: object
+ securityContext:
+ properties:
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ fsGroup:
+ format: int64
+ type: integer
+ fsGroupChangePolicy:
+ type: string
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxChangePolicy:
+ type: string
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ supplementalGroups:
+ items:
+ format: int64
+ type: integer
+ type: array
+ x-kubernetes-list-type: atomic
+ supplementalGroupsPolicy:
+ type: string
+ sysctls:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
shardingConfig:
items:
properties:
@@ -2317,9 +2479,19 @@ spec:
x-kubernetes-list-map-keys:
- shardName
x-kubernetes-list-type: map
- storageSize:
- pattern: ^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$
- type: string
+ storage:
+ properties:
+ size:
+ pattern: ^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$
+ type: string
+ storageClass:
+ type: string
+ required:
+ - size
+ type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
timeRangeConfig:
properties:
maxTime:
@@ -2347,10 +2519,22 @@ spec:
type: array
version:
type: string
+ verticalCompactionConfig:
+ properties:
+ deduplicationFunc:
+ enum:
+ - ""
+ - penalty
+ type: string
+ replicaLabels:
+ items:
+ type: string
+ type: array
+ type: object
required:
- objectStorageConfig
- retentionConfig
- - storageSize
+ - storage
type: object
status:
properties:
diff --git a/charts/thanos-operator/templates/crd/monitoring.thanos.io_thanosqueries.yaml b/charts/thanos-operator/templates/crd/monitoring.thanos.io_thanosqueries.yaml
index b2ff04f4..d8cf2f75 100644
--- a/charts/thanos-operator/templates/crd/monitoring.thanos.io_thanosqueries.yaml
+++ b/charts/thanos-operator/templates/crd/monitoring.thanos.io_thanosqueries.yaml
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.16.1
+ controller-gen.kubebuilder.io/version: v0.19.0
name: thanosqueries.monitoring.thanos.io
spec:
group: monitoring.thanos.io
@@ -75,6 +75,23 @@ spec:
- fieldPath
type: object
x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
resourceFieldRef:
properties:
containerName:
@@ -503,6 +520,29 @@ spec:
type: object
restartPolicy:
type: string
+ restartPolicyRules:
+ items:
+ properties:
+ action:
+ type: string
+ exitCodes:
+ properties:
+ operator:
+ type: string
+ values:
+ items:
+ format: int32
+ type: integer
+ type: array
+ x-kubernetes-list-type: set
+ required:
+ - operator
+ type: object
+ required:
+ - action
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
securityContext:
properties:
allowPrivilegeEscalation:
@@ -744,6 +784,23 @@ spec:
- fieldPath
type: object
x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
resourceFieldRef:
properties:
containerName:
@@ -1456,6 +1513,29 @@ spec:
type: array
x-kubernetes-list-type: atomic
type: object
+ podCertificate:
+ properties:
+ certificateChainPath:
+ type: string
+ credentialBundlePath:
+ type: string
+ keyPath:
+ type: string
+ keyType:
+ type: string
+ maxExpirationSeconds:
+ format: int32
+ type: integer
+ signerName:
+ type: string
+ userAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ required:
+ - keyType
+ - signerName
+ type: object
secret:
properties:
items:
@@ -2082,6 +2162,10 @@ spec:
x-kubernetes-list-type: atomic
type: object
type: object
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
baseImage:
type: string
customStoreLabelSelector:
@@ -2110,39 +2194,6 @@ spec:
type: object
type: object
x-kubernetes-map-type: atomic
- featureGates:
- default:
- serviceMonitor:
- enable: true
- properties:
- podDisruptionBudget:
- default:
- enable: true
- properties:
- enable:
- type: boolean
- maxUnavailable:
- format: int32
- type: integer
- minAvailable:
- format: int32
- type: integer
- type: object
- prometheusRuleEnabled:
- default: true
- type: boolean
- serviceMonitor:
- default:
- enable: true
- properties:
- enable:
- type: boolean
- labels:
- additionalProperties:
- type: string
- type: object
- type: object
- type: object
grpcProxyStrategy:
default: eager
enum:
@@ -2188,6 +2239,13 @@ spec:
type: object
paused:
type: boolean
+ podDisruptionBudgetConfig:
+ default:
+ enable: true
+ properties:
+ enable:
+ type: boolean
+ type: object
queryFrontend:
properties:
additionalArgs:
@@ -2239,6 +2297,23 @@ spec:
- fieldPath
type: object
x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
resourceFieldRef:
properties:
containerName:
@@ -2667,6 +2742,29 @@ spec:
type: object
restartPolicy:
type: string
+ restartPolicyRules:
+ items:
+ properties:
+ action:
+ type: string
+ exitCodes:
+ properties:
+ operator:
+ type: string
+ values:
+ items:
+ format: int32
+ type: integer
+ type: array
+ x-kubernetes-list-type: set
+ required:
+ - operator
+ type: object
+ required:
+ - action
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
securityContext:
properties:
allowPrivilegeEscalation:
@@ -2908,6 +3006,23 @@ spec:
- fieldPath
type: object
x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
resourceFieldRef:
properties:
containerName:
@@ -3620,6 +3735,29 @@ spec:
type: array
x-kubernetes-list-type: atomic
type: object
+ podCertificate:
+ properties:
+ certificateChainPath:
+ type: string
+ credentialBundlePath:
+ type: string
+ keyPath:
+ type: string
+ keyType:
+ type: string
+ maxExpirationSeconds:
+ format: int32
+ type: integer
+ signerName:
+ type: string
+ userAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ required:
+ - keyType
+ - signerName
+ type: object
secret:
properties:
items:
@@ -4246,6 +4384,10 @@ spec:
x-kubernetes-list-type: atomic
type: object
type: object
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
baseImage:
type: string
compressResponses:
@@ -4267,6 +4409,10 @@ spec:
type: object
x-kubernetes-map-type: atomic
type: array
+ labels:
+ additionalProperties:
+ type: string
+ type: object
labelsDefaultTimeRange:
pattern: ^(-?(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)|([0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\.[0-9]+)?(Z|[+-][0-9]{2}:[0-9]{2})))$
type: string
@@ -4297,6 +4443,13 @@ spec:
additionalProperties:
type: string
type: object
+ podDisruptionBudgetConfig:
+ default:
+ enable: true
+ properties:
+ enable:
+ type: boolean
+ type: object
queryLabelSelector:
default:
matchLabels:
@@ -4396,6 +4549,85 @@ spec:
x-kubernetes-int-or-string: true
type: object
type: object
+ securityContext:
+ properties:
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ fsGroup:
+ format: int64
+ type: integer
+ fsGroupChangePolicy:
+ type: string
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxChangePolicy:
+ type: string
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ supplementalGroups:
+ items:
+ format: int64
+ type: integer
+ type: array
+ x-kubernetes-list-type: atomic
+ supplementalGroupsPolicy:
+ type: string
+ sysctls:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
tolerations:
items:
properties:
@@ -4459,6 +4691,85 @@ spec:
x-kubernetes-int-or-string: true
type: object
type: object
+ securityContext:
+ properties:
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ fsGroup:
+ format: int64
+ type: integer
+ fsGroupChangePolicy:
+ type: string
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxChangePolicy:
+ type: string
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ supplementalGroups:
+ items:
+ format: int64
+ type: integer
+ type: array
+ x-kubernetes-list-type: atomic
+ supplementalGroupsPolicy:
+ type: string
+ sysctls:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
telemetryQuantiles:
properties:
duration:
diff --git a/charts/thanos-operator/templates/crd/monitoring.thanos.io_thanosreceives.yaml b/charts/thanos-operator/templates/crd/monitoring.thanos.io_thanosreceives.yaml
index 25997e7e..f56f7fb8 100644
--- a/charts/thanos-operator/templates/crd/monitoring.thanos.io_thanosreceives.yaml
+++ b/charts/thanos-operator/templates/crd/monitoring.thanos.io_thanosreceives.yaml
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.16.1
+ controller-gen.kubebuilder.io/version: v0.19.0
name: thanosreceives.monitoring.thanos.io
spec:
group: monitoring.thanos.io
@@ -26,39 +26,6 @@ spec:
type: object
spec:
properties:
- featureGates:
- default:
- serviceMonitor:
- enable: true
- properties:
- podDisruptionBudget:
- default:
- enable: true
- properties:
- enable:
- type: boolean
- maxUnavailable:
- format: int32
- type: integer
- minAvailable:
- format: int32
- type: integer
- type: object
- prometheusRuleEnabled:
- default: true
- type: boolean
- serviceMonitor:
- default:
- enable: true
- properties:
- enable:
- type: boolean
- labels:
- additionalProperties:
- type: string
- type: object
- type: object
- type: object
ingesterSpec:
properties:
additionalArgs:
@@ -110,6 +77,23 @@ spec:
- fieldPath
type: object
x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
resourceFieldRef:
properties:
containerName:
@@ -538,6 +522,29 @@ spec:
type: object
restartPolicy:
type: string
+ restartPolicyRules:
+ items:
+ properties:
+ action:
+ type: string
+ exitCodes:
+ properties:
+ operator:
+ type: string
+ values:
+ items:
+ format: int32
+ type: integer
+ type: array
+ x-kubernetes-list-type: set
+ required:
+ - operator
+ type: object
+ required:
+ - action
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
securityContext:
properties:
allowPrivilegeEscalation:
@@ -779,6 +786,23 @@ spec:
- fieldPath
type: object
x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
resourceFieldRef:
properties:
containerName:
@@ -1491,6 +1515,29 @@ spec:
type: array
x-kubernetes-list-type: atomic
type: object
+ podCertificate:
+ properties:
+ certificateChainPath:
+ type: string
+ credentialBundlePath:
+ type: string
+ keyPath:
+ type: string
+ keyType:
+ type: string
+ maxExpirationSeconds:
+ format: int32
+ type: integer
+ signerName:
+ type: string
+ userAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ required:
+ - keyType
+ - signerName
+ type: object
secret:
properties:
items:
@@ -2133,6 +2180,10 @@ spec:
x-kubernetes-list-type: atomic
type: object
type: object
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
asyncForwardWorkerCount:
default: 5
format: int64
@@ -2146,6 +2197,18 @@ spec:
replica: $(POD_NAME)
minProperties: 1
type: object
+ grpcCompression:
+ default: snappy
+ enum:
+ - none
+ - snappy
+ type: string
+ hashingAlgorithm:
+ default: ketama
+ enum:
+ - ketama
+ - hashmod
+ type: string
imagePullPolicy:
default: IfNotPresent
enum:
@@ -2201,6 +2264,13 @@ spec:
- key
type: object
x-kubernetes-map-type: atomic
+ podDisruptionBudgetConfig:
+ default:
+ enable: true
+ properties:
+ enable:
+ type: boolean
+ type: object
replicas:
default: 1
format: int32
@@ -2239,9 +2309,95 @@ spec:
x-kubernetes-int-or-string: true
type: object
type: object
- storageSize:
- pattern: ^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$
- type: string
+ securityContext:
+ properties:
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ fsGroup:
+ format: int64
+ type: integer
+ fsGroupChangePolicy:
+ type: string
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxChangePolicy:
+ type: string
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ supplementalGroups:
+ items:
+ format: int64
+ type: integer
+ type: array
+ x-kubernetes-list-type: atomic
+ supplementalGroupsPolicy:
+ type: string
+ sysctls:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ storage:
+ properties:
+ size:
+ pattern: ^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$
+ type: string
+ storageClass:
+ type: string
+ required:
+ - size
+ type: object
storeLimitsOptions:
properties:
storeLimitsRequestSamples:
@@ -2318,7 +2474,7 @@ spec:
- externalLabels
- name
- replicas
- - storageSize
+ - storage
- tsdbConfig
type: object
maxItems: 100
@@ -2330,8 +2486,33 @@ spec:
- defaultObjectStorageConfig
- hashrings
type: object
+ minReadySeconds:
+ format: int32
+ type: integer
paused:
type: boolean
+ persistentVolumeClaimRetentionPolicy:
+ default:
+ whenDeleted: Delete
+ whenScaled: Delete
+ properties:
+ whenDeleted:
+ enum:
+ - Retain
+ - Delete
+ type: string
+ whenScaled:
+ enum:
+ - Retain
+ - Delete
+ type: string
+ type: object
+ podManagementPolicy:
+ default: OrderedReady
+ enum:
+ - OrderedReady
+ - Parallel
+ type: string
routerSpec:
properties:
additionalArgs:
@@ -2383,6 +2564,23 @@ spec:
- fieldPath
type: object
x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
resourceFieldRef:
properties:
containerName:
@@ -2811,6 +3009,29 @@ spec:
type: object
restartPolicy:
type: string
+ restartPolicyRules:
+ items:
+ properties:
+ action:
+ type: string
+ exitCodes:
+ properties:
+ operator:
+ type: string
+ values:
+ items:
+ format: int32
+ type: integer
+ type: array
+ x-kubernetes-list-type: set
+ required:
+ - operator
+ type: object
+ required:
+ - action
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
securityContext:
properties:
allowPrivilegeEscalation:
@@ -3052,6 +3273,23 @@ spec:
- fieldPath
type: object
x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
resourceFieldRef:
properties:
containerName:
@@ -3764,6 +4002,29 @@ spec:
type: array
x-kubernetes-list-type: atomic
type: object
+ podCertificate:
+ properties:
+ certificateChainPath:
+ type: string
+ credentialBundlePath:
+ type: string
+ keyPath:
+ type: string
+ keyType:
+ type: string
+ maxExpirationSeconds:
+ format: int32
+ type: integer
+ signerName:
+ type: string
+ userAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ required:
+ - keyType
+ - signerName
+ type: object
secret:
properties:
items:
@@ -4390,6 +4651,10 @@ spec:
x-kubernetes-list-type: atomic
type: object
type: object
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
baseImage:
type: string
externalLabels:
@@ -4399,6 +4664,12 @@ spec:
receive: "true"
minProperties: 1
type: object
+ hashringPolicy:
+ default: static
+ enum:
+ - static
+ - dynamic
+ type: string
imagePullPolicy:
default: IfNotPresent
enum:
@@ -4436,6 +4707,13 @@ spec:
additionalProperties:
type: string
type: object
+ podDisruptionBudgetConfig:
+ default:
+ enable: true
+ properties:
+ enable:
+ type: boolean
+ type: object
replicas:
default: 1
format: int32
@@ -4449,6 +4727,12 @@ spec:
- 5
format: int32
type: integer
+ replicationProtocol:
+ default: grpc
+ enum:
+ - grpc
+ - capnproto
+ type: string
resourceRequirements:
properties:
claims:
@@ -4482,6 +4766,85 @@ spec:
x-kubernetes-int-or-string: true
type: object
type: object
+ securityContext:
+ properties:
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ fsGroup:
+ format: int64
+ type: integer
+ fsGroupChangePolicy:
+ type: string
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxChangePolicy:
+ type: string
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ supplementalGroups:
+ items:
+ format: int64
+ type: integer
+ type: array
+ x-kubernetes-list-type: atomic
+ supplementalGroupsPolicy:
+ type: string
+ sysctls:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
tolerations:
items:
properties:
@@ -4505,6 +4868,9 @@ spec:
- replicas
- replicationFactor
type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
required:
- ingesterSpec
- routerSpec
diff --git a/charts/thanos-operator/templates/crd/monitoring.thanos.io_thanosrulers.yaml b/charts/thanos-operator/templates/crd/monitoring.thanos.io_thanosrulers.yaml
index 6e92aae3..3aae2df2 100644
--- a/charts/thanos-operator/templates/crd/monitoring.thanos.io_thanosrulers.yaml
+++ b/charts/thanos-operator/templates/crd/monitoring.thanos.io_thanosrulers.yaml
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.16.1
+ controller-gen.kubebuilder.io/version: v0.19.0
name: thanosrulers.monitoring.thanos.io
spec:
group: monitoring.thanos.io
@@ -75,6 +75,23 @@ spec:
- fieldPath
type: object
x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
resourceFieldRef:
properties:
containerName:
@@ -503,6 +520,29 @@ spec:
type: object
restartPolicy:
type: string
+ restartPolicyRules:
+ items:
+ properties:
+ action:
+ type: string
+ exitCodes:
+ properties:
+ operator:
+ type: string
+ values:
+ items:
+ format: int32
+ type: integer
+ type: array
+ x-kubernetes-list-type: set
+ required:
+ - operator
+ type: object
+ required:
+ - action
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
securityContext:
properties:
allowPrivilegeEscalation:
@@ -744,6 +784,23 @@ spec:
- fieldPath
type: object
x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
resourceFieldRef:
properties:
containerName:
@@ -1456,6 +1513,29 @@ spec:
type: array
x-kubernetes-list-type: atomic
type: object
+ podCertificate:
+ properties:
+ certificateChainPath:
+ type: string
+ credentialBundlePath:
+ type: string
+ keyPath:
+ type: string
+ keyType:
+ type: string
+ maxExpirationSeconds:
+ format: int32
+ type: integer
+ signerName:
+ type: string
+ userAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ required:
+ - keyType
+ - signerName
+ type: object
secret:
properties:
items:
@@ -2089,21 +2169,12 @@ spec:
alertmanagerURL:
pattern: ^((dns\+)?(dnssrv\+)?(http|https):\/\/)[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,}(:[0-9]{1,5})?$
type: string
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
baseImage:
type: string
- defaultObjectStorageConfig:
- properties:
- key:
- type: string
- name:
- default: ""
- type: string
- optional:
- type: boolean
- required:
- - key
- type: object
- x-kubernetes-map-type: atomic
evaluationInterval:
default: 1m
pattern: ^(-?(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)|([0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\.[0-9]+)?(Z|[+-][0-9]{2}:[0-9]{2})))$
@@ -2115,40 +2186,6 @@ spec:
rule_replica: $(NAME)
minProperties: 1
type: object
- featureGates:
- default:
- prometheusRuleEnabled: true
- serviceMonitor:
- enable: true
- properties:
- podDisruptionBudget:
- default:
- enable: true
- properties:
- enable:
- type: boolean
- maxUnavailable:
- format: int32
- type: integer
- minAvailable:
- format: int32
- type: integer
- type: object
- prometheusRuleEnabled:
- default: true
- type: boolean
- serviceMonitor:
- default:
- enable: true
- properties:
- enable:
- type: boolean
- labels:
- additionalProperties:
- type: string
- type: object
- type: object
- type: object
imagePullPolicy:
default: IfNotPresent
enum:
@@ -2182,45 +2219,57 @@ spec:
- warn
- error
type: string
+ minReadySeconds:
+ format: int32
+ type: integer
nodeSelector:
additionalProperties:
type: string
type: object
+ objectStorageConfig:
+ properties:
+ key:
+ type: string
+ name:
+ default: ""
+ type: string
+ optional:
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
paused:
type: boolean
- prometheusRuleSelector:
+ persistentVolumeClaimRetentionPolicy:
default:
- matchLabels:
- operator.thanos.io/prometheus-rule: "true"
+ whenDeleted: Delete
+ whenScaled: Delete
properties:
- matchExpressions:
- items:
- properties:
- key:
- type: string
- operator:
- type: string
- values:
- items:
- type: string
- type: array
- x-kubernetes-list-type: atomic
- required:
- - key
- - operator
- type: object
- type: array
- x-kubernetes-list-type: atomic
- matchLabels:
- additionalProperties:
- type: string
- type: object
+ whenDeleted:
+ enum:
+ - Retain
+ - Delete
+ type: string
+ whenScaled:
+ enum:
+ - Retain
+ - Delete
+ type: string
type: object
- x-kubernetes-map-type: atomic
- x-kubernetes-validations:
- - message: PrometheusRuleSelector must have at least one label selector
- rule: self.matchLabels.size() >= 1 || self.matchExpressions.size()
- >= 1
+ podDisruptionBudgetConfig:
+ default:
+ enable: true
+ properties:
+ enable:
+ type: boolean
+ type: object
+ podManagementPolicy:
+ default: OrderedReady
+ enum:
+ - OrderedReady
+ - Parallel
+ type: string
queryLabelSelector:
properties:
matchExpressions:
@@ -2290,6 +2339,9 @@ spec:
pattern: ^(-?(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)|([0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\.[0-9]+)?(Z|[+-][0-9]{2}:[0-9]{2})))$
type: string
ruleConfigSelector:
+ default:
+ matchLabels:
+ operator.thanos.io/prometheus-rule: "true"
properties:
matchExpressions:
items:
@@ -2315,19 +2367,109 @@ spec:
type: object
type: object
x-kubernetes-map-type: atomic
+ x-kubernetes-validations:
+ - message: ruleConfigSelector must have at least one label selector
+ rule: self.matchLabels.size() >= 1 || self.matchExpressions.size()
+ >= 1
ruleTenancyConfig:
properties:
- tenantLabel:
+ enforcedTenantIdentifier:
type: string
- tenantValueLabel:
+ tenantSpecifierLabel:
+ type: string
+ type: object
+ securityContext:
+ properties:
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ fsGroup:
+ format: int64
+ type: integer
+ fsGroupChangePolicy:
+ type: string
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxChangePolicy:
+ type: string
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ supplementalGroups:
+ items:
+ format: int64
+ type: integer
+ type: array
+ x-kubernetes-list-type: atomic
+ supplementalGroupsPolicy:
+ type: string
+ sysctls:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
+ storage:
+ properties:
+ size:
+ pattern: ^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$
+ type: string
+ storageClass:
type: string
required:
- - tenantLabel
- - tenantValueLabel
+ - size
type: object
- storageSize:
- pattern: ^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$
- type: string
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
tolerations:
items:
properties:
@@ -2348,12 +2490,12 @@ spec:
type: string
required:
- alertmanagerURL
- - defaultObjectStorageConfig
- externalLabels
- - prometheusRuleSelector
+ - objectStorageConfig
- replicas
- retention
- - storageSize
+ - ruleConfigSelector
+ - storage
type: object
status:
properties:
diff --git a/charts/thanos-operator/templates/crd/monitoring.thanos.io_thanosstores.yaml b/charts/thanos-operator/templates/crd/monitoring.thanos.io_thanosstores.yaml
index 551b0e63..c436473f 100644
--- a/charts/thanos-operator/templates/crd/monitoring.thanos.io_thanosstores.yaml
+++ b/charts/thanos-operator/templates/crd/monitoring.thanos.io_thanosstores.yaml
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.16.1
+ controller-gen.kubebuilder.io/version: v0.19.0
name: thanosstores.monitoring.thanos.io
spec:
group: monitoring.thanos.io
@@ -75,6 +75,23 @@ spec:
- fieldPath
type: object
x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
resourceFieldRef:
properties:
containerName:
@@ -503,6 +520,29 @@ spec:
type: object
restartPolicy:
type: string
+ restartPolicyRules:
+ items:
+ properties:
+ action:
+ type: string
+ exitCodes:
+ properties:
+ operator:
+ type: string
+ values:
+ items:
+ format: int32
+ type: integer
+ type: array
+ x-kubernetes-list-type: set
+ required:
+ - operator
+ type: object
+ required:
+ - action
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
securityContext:
properties:
allowPrivilegeEscalation:
@@ -744,6 +784,23 @@ spec:
- fieldPath
type: object
x-kubernetes-map-type: atomic
+ fileKeyRef:
+ properties:
+ key:
+ type: string
+ optional:
+ default: false
+ type: boolean
+ path:
+ type: string
+ volumeName:
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
resourceFieldRef:
properties:
containerName:
@@ -1456,6 +1513,29 @@ spec:
type: array
x-kubernetes-list-type: atomic
type: object
+ podCertificate:
+ properties:
+ certificateChainPath:
+ type: string
+ credentialBundlePath:
+ type: string
+ keyPath:
+ type: string
+ keyType:
+ type: string
+ maxExpirationSeconds:
+ format: int32
+ type: integer
+ signerName:
+ type: string
+ userAnnotations:
+ additionalProperties:
+ type: string
+ type: object
+ required:
+ - keyType
+ - signerName
+ type: object
secret:
properties:
items:
@@ -2082,6 +2162,10 @@ spec:
x-kubernetes-list-type: atomic
type: object
type: object
+ annotations:
+ additionalProperties:
+ type: string
+ type: object
baseImage:
type: string
blockConfig:
@@ -2126,39 +2210,6 @@ spec:
type: string
type: object
type: object
- featureGates:
- default:
- serviceMonitor:
- enable: true
- properties:
- podDisruptionBudget:
- default:
- enable: true
- properties:
- enable:
- type: boolean
- maxUnavailable:
- format: int32
- type: integer
- minAvailable:
- format: int32
- type: integer
- type: object
- prometheusRuleEnabled:
- default: true
- type: boolean
- serviceMonitor:
- default:
- enable: true
- properties:
- enable:
- type: boolean
- labels:
- additionalProperties:
- type: string
- type: object
- type: object
- type: object
ignoreDeletionMarksDelay:
default: 24h
pattern: ^(-?(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)|([0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\.[0-9]+)?(Z|[+-][0-9]{2}:[0-9]{2})))$
@@ -2237,6 +2288,9 @@ spec:
- warn
- error
type: string
+ minReadySeconds:
+ format: int32
+ type: integer
nodeSelector:
additionalProperties:
type: string
@@ -2256,6 +2310,35 @@ spec:
x-kubernetes-map-type: atomic
paused:
type: boolean
+ persistentVolumeClaimRetentionPolicy:
+ default:
+ whenDeleted: Delete
+ whenScaled: Delete
+ properties:
+ whenDeleted:
+ enum:
+ - Retain
+ - Delete
+ type: string
+ whenScaled:
+ enum:
+ - Retain
+ - Delete
+ type: string
+ type: object
+ podDisruptionBudgetConfig:
+ default:
+ enable: true
+ properties:
+ enable:
+ type: boolean
+ type: object
+ podManagementPolicy:
+ default: OrderedReady
+ enum:
+ - OrderedReady
+ - Parallel
+ type: string
replicas:
default: 1
format: int32
@@ -2294,6 +2377,85 @@ spec:
x-kubernetes-int-or-string: true
type: object
type: object
+ securityContext:
+ properties:
+ appArmorProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ fsGroup:
+ format: int64
+ type: integer
+ fsGroupChangePolicy:
+ type: string
+ runAsGroup:
+ format: int64
+ type: integer
+ runAsNonRoot:
+ type: boolean
+ runAsUser:
+ format: int64
+ type: integer
+ seLinuxChangePolicy:
+ type: string
+ seLinuxOptions:
+ properties:
+ level:
+ type: string
+ role:
+ type: string
+ type:
+ type: string
+ user:
+ type: string
+ type: object
+ seccompProfile:
+ properties:
+ localhostProfile:
+ type: string
+ type:
+ type: string
+ required:
+ - type
+ type: object
+ supplementalGroups:
+ items:
+ format: int64
+ type: integer
+ type: array
+ x-kubernetes-list-type: atomic
+ supplementalGroupsPolicy:
+ type: string
+ sysctls:
+ items:
+ properties:
+ name:
+ type: string
+ value:
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ windowsOptions:
+ properties:
+ gmsaCredentialSpec:
+ type: string
+ gmsaCredentialSpecName:
+ type: string
+ hostProcess:
+ type: boolean
+ runAsUserName:
+ type: string
+ type: object
+ type: object
shardingStrategy:
properties:
shards:
@@ -2309,9 +2471,16 @@ spec:
required:
- type
type: object
- storageSize:
- pattern: ^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$
- type: string
+ storage:
+ properties:
+ size:
+ pattern: ^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$
+ type: string
+ storageClass:
+ type: string
+ required:
+ - size
+ type: object
storeLimitsOptions:
properties:
storeLimitsRequestSamples:
@@ -2323,6 +2492,9 @@ spec:
format: int64
type: integer
type: object
+ terminationGracePeriodSeconds:
+ format: int64
+ type: integer
timeRangeConfig:
properties:
maxTime:
@@ -2354,7 +2526,7 @@ spec:
- objectStorageConfig
- replicas
- shardingStrategy
- - storageSize
+ - storage
type: object
status:
properties:
diff --git a/charts/thanos-operator/templates/manager/thanos-object-storage-secret.yaml b/charts/thanos-operator/templates/manager/thanos-object-storage-secret.yaml
deleted file mode 100644
index 5de2e2ca..00000000
--- a/charts/thanos-operator/templates/manager/thanos-object-storage-secret.yaml
+++ /dev/null
@@ -1,18 +0,0 @@
-kind: Secret
-apiVersion: v1
-metadata:
- name: thanos-object-storage-secret
- namespace: {{ .Release.Namespace }}
-stringData:
- thanos.yaml: |
- type: S3
- config:
- bucket: {{ .Values.objectStorage.bucket | quote }}
- endpoint: {{ .Values.objectStorage.endpoint | quote }}
- access_key: {{ .Values.objectStorage.accessKey | quote }}
- secret_key: {{ .Values.objectStorage.secretKey | quote }}
- http_config:
- tls_config:
- ca_file: /etc/thanos/certs/public.crt
- prefix: {{ .Values.objectStorage.prefix | quote }}
-type: Opaque
diff --git a/charts/thanos-operator/values.yaml b/charts/thanos-operator/values.yaml
index f0734a98..c52c9a67 100644
--- a/charts/thanos-operator/values.yaml
+++ b/charts/thanos-operator/values.yaml
@@ -12,8 +12,8 @@ manager:
replicas: 1
image:
- repository: quay.io/thanos/thanos-operator
- tag: main-2025-10-23-e28d488
+ repository: ghcr.io/opnpulse/thanos-operator
+ tag: v2026.4.24
pullPolicy: IfNotPresent
## Arguments
@@ -21,14 +21,14 @@ manager:
args:
- --leader-elect
- --metrics-secure
- - --zap-encoder=console
- - --zap-log-level=debug
- # - --log.format=logfmt
- # - --log.level=debug
- # - --enable-feature=service-monitor
- # - --enable-feature=prometheus-rule
- # - --enable-feature=kube-resource-sync
+ - --log.format=logfmt
+ - --log.level=debug
+ - --enable-feature=service-monitor
+ - --enable-feature=prometheus-rule
+ - --enable-feature=kube-resource-sync
# - --enable-feature=otel-sidecar
+ # - --zap-encoder=console
+ # - --zap-log-level=debug
## Environment variables
##
@@ -55,6 +55,8 @@ manager:
capabilities:
drop:
- ALL
+ seccompProfile:
+ type: RuntimeDefault
## Resource limits and requests
##
@@ -115,9 +117,3 @@ prometheus:
## S3-compatible object storage configuration for Thanos.
## When enabled, creates the thanos-object-storage-secret.
##
-objectStorage:
- bucket: ""
- endpoint: ""
- accessKey: ""
- secretKey: ""
- prefix: "metrics"
diff --git a/go.mod b/go.mod
index 5782f0f7..846b1bf8 100644
--- a/go.mod
+++ b/go.mod
@@ -1,9 +1,10 @@
module go.open-pulse.dev/installer
-go 1.25
+go 1.25.6
require (
github.com/google/gofuzz v1.2.0
+ go.bytebuilders.dev/catalog v0.0.22
k8s.io/api v0.34.3
k8s.io/apiextensions-apiserver v0.34.3
k8s.io/apimachinery v0.34.3
@@ -13,9 +14,9 @@ require (
)
require (
- dario.cat/mergo v1.0.1 // indirect
+ dario.cat/mergo v1.0.2 // indirect
github.com/Masterminds/goutils v1.1.1 // indirect
- github.com/Masterminds/semver/v3 v3.3.1 // indirect
+ github.com/Masterminds/semver/v3 v3.4.0 // indirect
github.com/Masterminds/sprig/v3 v3.3.0 // indirect
github.com/beorn7/perks v1.0.1 // indirect
github.com/cespare/xxhash/v2 v2.3.0 // indirect
@@ -25,16 +26,28 @@ require (
github.com/docker/cli v29.2.0+incompatible // indirect
github.com/docker/distribution v2.8.3+incompatible // indirect
github.com/docker/docker-credential-helpers v0.9.4 // indirect
- github.com/emicklei/go-restful/v3 v3.12.2 // indirect
+ github.com/emicklei/go-restful/v3 v3.13.0 // indirect
+ github.com/envoyproxy/gateway v1.6.3 // indirect
github.com/evanphx/json-patch v5.9.11+incompatible // indirect
github.com/evanphx/json-patch/v5 v5.9.11 // indirect
github.com/fatih/structs v1.1.0 // indirect
github.com/fsnotify/fsnotify v1.9.0 // indirect
github.com/fxamacker/cbor/v2 v2.9.0 // indirect
github.com/go-logr/logr v1.4.3 // indirect
- github.com/go-openapi/jsonpointer v0.21.1 // indirect
- github.com/go-openapi/jsonreference v0.21.0 // indirect
- github.com/go-openapi/swag v0.23.1 // indirect
+ github.com/go-openapi/jsonpointer v0.22.1 // indirect
+ github.com/go-openapi/jsonreference v0.21.2 // indirect
+ github.com/go-openapi/swag v0.25.1 // indirect
+ github.com/go-openapi/swag/cmdutils v0.25.1 // indirect
+ github.com/go-openapi/swag/conv v0.25.1 // indirect
+ github.com/go-openapi/swag/fileutils v0.25.1 // indirect
+ github.com/go-openapi/swag/jsonname v0.25.1 // indirect
+ github.com/go-openapi/swag/jsonutils v0.25.1 // indirect
+ github.com/go-openapi/swag/loading v0.25.1 // indirect
+ github.com/go-openapi/swag/mangling v0.25.1 // indirect
+ github.com/go-openapi/swag/netutils v0.25.1 // indirect
+ github.com/go-openapi/swag/stringutils v0.25.1 // indirect
+ github.com/go-openapi/swag/typeutils v0.25.1 // indirect
+ github.com/go-openapi/swag/yamlutils v0.25.1 // indirect
github.com/gobeam/stringy v0.0.5 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/google/btree v1.1.3 // indirect
@@ -44,12 +57,9 @@ require (
github.com/google/uuid v1.6.0 // indirect
github.com/huandu/xstrings v1.5.0 // indirect
github.com/imdario/mergo v0.3.16 // indirect
- github.com/josharian/intern v1.0.0 // indirect
github.com/json-iterator/go v1.1.12 // indirect
- github.com/klauspost/compress v1.18.1 // indirect
- github.com/klauspost/cpuid/v2 v2.0.9 // indirect
- github.com/mailru/easyjson v0.9.0 // indirect
- github.com/mattn/go-isatty v0.0.20 // indirect
+ github.com/klauspost/compress v1.18.2 // indirect
+ github.com/klauspost/cpuid/v2 v2.2.5 // indirect
github.com/mitchellh/copystructure v1.2.0 // indirect
github.com/mitchellh/go-homedir v1.1.0 // indirect
github.com/mitchellh/mapstructure v1.5.0 // indirect
@@ -61,15 +71,15 @@ require (
github.com/opencontainers/image-spec v1.1.1 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
- github.com/prometheus/client_golang v1.22.0 // indirect
- github.com/prometheus/client_model v0.6.1 // indirect
- github.com/prometheus/common v0.62.0 // indirect
- github.com/prometheus/procfs v0.15.1 // indirect
- github.com/sergi/go-diff v1.2.0 // indirect
+ github.com/prometheus/client_golang v1.23.2 // indirect
+ github.com/prometheus/client_model v0.6.2 // indirect
+ github.com/prometheus/common v0.67.2 // indirect
+ github.com/prometheus/procfs v0.17.0 // indirect
+ github.com/sergi/go-diff v1.3.1 // indirect
github.com/shopspring/decimal v1.4.0 // indirect
github.com/sirupsen/logrus v1.9.3 // indirect
- github.com/spf13/cast v1.7.0 // indirect
- github.com/spf13/pflag v1.0.9 // indirect
+ github.com/spf13/cast v1.10.0 // indirect
+ github.com/spf13/pflag v1.0.10 // indirect
github.com/vbatts/tar-split v0.12.2 // indirect
github.com/x448/float16 v0.8.4 // indirect
github.com/yudai/gojsondiff v1.0.0 // indirect
@@ -77,32 +87,35 @@ require (
github.com/zeebo/xxh3 v1.0.2 // indirect
go.yaml.in/yaml/v2 v2.4.3 // indirect
go.yaml.in/yaml/v3 v3.0.4 // indirect
- golang.org/x/crypto v0.46.0 // indirect
- golang.org/x/net v0.47.0 // indirect
- golang.org/x/oauth2 v0.33.0 // indirect
- golang.org/x/sync v0.19.0 // indirect
- golang.org/x/sys v0.40.0 // indirect
- golang.org/x/term v0.38.0 // indirect
- golang.org/x/text v0.32.0 // indirect
- golang.org/x/time v0.11.0 // indirect
+ golang.org/x/crypto v0.49.0 // indirect
+ golang.org/x/net v0.52.0 // indirect
+ golang.org/x/oauth2 v0.34.0 // indirect
+ golang.org/x/sync v0.20.0 // indirect
+ golang.org/x/sys v0.42.0 // indirect
+ golang.org/x/term v0.41.0 // indirect
+ golang.org/x/text v0.35.0 // indirect
+ golang.org/x/time v0.14.0 // indirect
gomodules.xyz/go-sh v0.1.0 // indirect
gomodules.xyz/jsonpatch/v2 v2.5.0 // indirect
- google.golang.org/protobuf v1.36.6 // indirect
- gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
+ google.golang.org/protobuf v1.36.11 // indirect
+ gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
- gopkg.in/yaml.v3 v3.0.1 // indirect
+ gopkg.in/yaml.v2 v2.4.0 // indirect
k8s.io/client-go v0.34.3 // indirect
k8s.io/klog/v2 v2.130.1 // indirect
- k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b // indirect
+ k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912 // indirect
k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 // indirect
kmodules.xyz/client-go v0.34.3 // indirect
kmodules.xyz/go-containerregistry v0.0.15 // indirect
+ kubeops.dev/external-dns-operator v0.3.1-0.20260409053434-d3838ac10fdf // indirect
kubeops.dev/scanner v0.0.19 // indirect
sigs.k8s.io/controller-runtime v0.22.4 // indirect
+ sigs.k8s.io/gateway-api v1.4.1 // indirect
sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 // indirect
sigs.k8s.io/randfill v1.0.0 // indirect
sigs.k8s.io/structured-merge-diff/v6 v6.3.0 // indirect
sigs.k8s.io/yaml v1.6.0 // indirect
+ voyagermesh.dev/installer v0.0.0-20260422083412-9fb2b415ba60 // indirect
x-helm.dev/apimachinery v0.0.18 // indirect
)
diff --git a/go.sum b/go.sum
index a2ee1e4b..3138c64c 100644
--- a/go.sum
+++ b/go.sum
@@ -1,9 +1,9 @@
-dario.cat/mergo v1.0.1 h1:Ra4+bf83h2ztPIQYNP99R6m+Y7KfnARDfID+a+vLl4s=
-dario.cat/mergo v1.0.1/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk=
+dario.cat/mergo v1.0.2 h1:85+piFYR1tMbRrLcDwR18y4UKJ3aH1Tbzi24VRW1TK8=
+dario.cat/mergo v1.0.2/go.mod h1:E/hbnu0NxMFBjpMIE34DRGLWqDy0g5FuKDhCb31ngxA=
github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI=
github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU=
-github.com/Masterminds/semver/v3 v3.3.1 h1:QtNSWtVZ3nBfk8mAOu/B6v7FMJ+NHTIgUPi7rj+4nv4=
-github.com/Masterminds/semver/v3 v3.3.1/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM=
+github.com/Masterminds/semver/v3 v3.4.0 h1:Zog+i5UMtVoCU8oKka5P7i9q9HgrJeGzI9SA1Xbatp0=
+github.com/Masterminds/semver/v3 v3.4.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM=
github.com/Masterminds/sprig/v3 v3.3.0 h1:mQh0Yrg1XPo6vjYXgtf5OtijNAKJRNcTdOOGZe3tPhs=
github.com/Masterminds/sprig/v3 v3.3.0/go.mod h1:Zy1iXRYNqNLUolqCpL4uhk6SHUMAOSCzdgBfDb35Lz0=
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
@@ -24,8 +24,10 @@ github.com/docker/distribution v2.8.3+incompatible h1:AtKxIZ36LoNK51+Z6RpzLpddBi
github.com/docker/distribution v2.8.3+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
github.com/docker/docker-credential-helpers v0.9.4 h1:76ItO69/AP/V4yT9V4uuuItG0B1N8hvt0T0c0NN/DzI=
github.com/docker/docker-credential-helpers v0.9.4/go.mod h1:v1S+hepowrQXITkEfw6o4+BMbGot02wiKpzWhGUZK6c=
-github.com/emicklei/go-restful/v3 v3.12.2 h1:DhwDP0vY3k8ZzE0RunuJy8GhNpPL6zqLkDf9B/a0/xU=
-github.com/emicklei/go-restful/v3 v3.12.2/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
+github.com/emicklei/go-restful/v3 v3.13.0 h1:C4Bl2xDndpU6nJ4bc1jXd+uTmYPVUwkD6bFY/oTyCes=
+github.com/emicklei/go-restful/v3 v3.13.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
+github.com/envoyproxy/gateway v1.6.3 h1:HPO5vUHpw/h3H83UaN8xtSxNXfYUrkSDnUeJ+jvz1aM=
+github.com/envoyproxy/gateway v1.6.3/go.mod h1:YXE9a1t4gOpzH6rreY7RzoZrQCIbYSRGvKRnZU3K3E8=
github.com/evanphx/json-patch v5.9.11+incompatible h1:ixHHqfcGvxhWkniF1tWxBHA0yb4Z+d1UQi45df52xW8=
github.com/evanphx/json-patch v5.9.11+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
github.com/evanphx/json-patch/v5 v5.9.11 h1:/8HVnzMq13/3x9TPvjG08wUGqBTmZBsCWzjTM0wiaDU=
@@ -42,12 +44,36 @@ github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI=
github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ=
github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg=
-github.com/go-openapi/jsonpointer v0.21.1 h1:whnzv/pNXtK2FbX/W9yJfRmE2gsmkfahjMKB0fZvcic=
-github.com/go-openapi/jsonpointer v0.21.1/go.mod h1:50I1STOfbY1ycR8jGz8DaMeLCdXiI6aDteEdRNNzpdk=
-github.com/go-openapi/jsonreference v0.21.0 h1:Rs+Y7hSXT83Jacb7kFyjn4ijOuVGSvOdF2+tg1TRrwQ=
-github.com/go-openapi/jsonreference v0.21.0/go.mod h1:LmZmgsrTkVg9LG4EaHeY8cBDslNPMo06cago5JNLkm4=
-github.com/go-openapi/swag v0.23.1 h1:lpsStH0n2ittzTnbaSloVZLuB5+fvSY/+hnagBjSNZU=
-github.com/go-openapi/swag v0.23.1/go.mod h1:STZs8TbRvEQQKUA+JZNAm3EWlgaOBGpyFDqQnDHMef0=
+github.com/go-openapi/jsonpointer v0.22.1 h1:sHYI1He3b9NqJ4wXLoJDKmUmHkWy/L7rtEo92JUxBNk=
+github.com/go-openapi/jsonpointer v0.22.1/go.mod h1:pQT9OsLkfz1yWoMgYFy4x3U5GY5nUlsOn1qSBH5MkCM=
+github.com/go-openapi/jsonreference v0.21.2 h1:Wxjda4M/BBQllegefXrY/9aq1fxBA8sI5M/lFU6tSWU=
+github.com/go-openapi/jsonreference v0.21.2/go.mod h1:pp3PEjIsJ9CZDGCNOyXIQxsNuroxm8FAJ/+quA0yKzQ=
+github.com/go-openapi/swag v0.25.1 h1:6uwVsx+/OuvFVPqfQmOOPsqTcm5/GkBhNwLqIR916n8=
+github.com/go-openapi/swag v0.25.1/go.mod h1:bzONdGlT0fkStgGPd3bhZf1MnuPkf2YAys6h+jZipOo=
+github.com/go-openapi/swag/cmdutils v0.25.1 h1:nDke3nAFDArAa631aitksFGj2omusks88GF1VwdYqPY=
+github.com/go-openapi/swag/cmdutils v0.25.1/go.mod h1:pdae/AFo6WxLl5L0rq87eRzVPm/XRHM3MoYgRMvG4A0=
+github.com/go-openapi/swag/conv v0.25.1 h1:+9o8YUg6QuqqBM5X6rYL/p1dpWeZRhoIt9x7CCP+he0=
+github.com/go-openapi/swag/conv v0.25.1/go.mod h1:Z1mFEGPfyIKPu0806khI3zF+/EUXde+fdeksUl2NiDs=
+github.com/go-openapi/swag/fileutils v0.25.1 h1:rSRXapjQequt7kqalKXdcpIegIShhTPXx7yw0kek2uU=
+github.com/go-openapi/swag/fileutils v0.25.1/go.mod h1:+NXtt5xNZZqmpIpjqcujqojGFek9/w55b3ecmOdtg8M=
+github.com/go-openapi/swag/jsonname v0.25.1 h1:Sgx+qbwa4ej6AomWC6pEfXrA6uP2RkaNjA9BR8a1RJU=
+github.com/go-openapi/swag/jsonname v0.25.1/go.mod h1:71Tekow6UOLBD3wS7XhdT98g5J5GR13NOTQ9/6Q11Zo=
+github.com/go-openapi/swag/jsonutils v0.25.1 h1:AihLHaD0brrkJoMqEZOBNzTLnk81Kg9cWr+SPtxtgl8=
+github.com/go-openapi/swag/jsonutils v0.25.1/go.mod h1:JpEkAjxQXpiaHmRO04N1zE4qbUEg3b7Udll7AMGTNOo=
+github.com/go-openapi/swag/jsonutils/fixtures_test v0.25.1 h1:DSQGcdB6G0N9c/KhtpYc71PzzGEIc/fZ1no35x4/XBY=
+github.com/go-openapi/swag/jsonutils/fixtures_test v0.25.1/go.mod h1:kjmweouyPwRUEYMSrbAidoLMGeJ5p6zdHi9BgZiqmsg=
+github.com/go-openapi/swag/loading v0.25.1 h1:6OruqzjWoJyanZOim58iG2vj934TysYVptyaoXS24kw=
+github.com/go-openapi/swag/loading v0.25.1/go.mod h1:xoIe2EG32NOYYbqxvXgPzne989bWvSNoWoyQVWEZicc=
+github.com/go-openapi/swag/mangling v0.25.1 h1:XzILnLzhZPZNtmxKaz/2xIGPQsBsvmCjrJOWGNz/ync=
+github.com/go-openapi/swag/mangling v0.25.1/go.mod h1:CdiMQ6pnfAgyQGSOIYnZkXvqhnnwOn997uXZMAd/7mQ=
+github.com/go-openapi/swag/netutils v0.25.1 h1:2wFLYahe40tDUHfKT1GRC4rfa5T1B4GWZ+msEFA4Fl4=
+github.com/go-openapi/swag/netutils v0.25.1/go.mod h1:CAkkvqnUJX8NV96tNhEQvKz8SQo2KF0f7LleiJwIeRE=
+github.com/go-openapi/swag/stringutils v0.25.1 h1:Xasqgjvk30eUe8VKdmyzKtjkVjeiXx1Iz0zDfMNpPbw=
+github.com/go-openapi/swag/stringutils v0.25.1/go.mod h1:JLdSAq5169HaiDUbTvArA2yQxmgn4D6h4A+4HqVvAYg=
+github.com/go-openapi/swag/typeutils v0.25.1 h1:rD/9HsEQieewNt6/k+JBwkxuAHktFtH3I3ysiFZqukA=
+github.com/go-openapi/swag/typeutils v0.25.1/go.mod h1:9McMC/oCdS4BKwk2shEB7x17P6HmMmA6dQRtAkSnNb8=
+github.com/go-openapi/swag/yamlutils v0.25.1 h1:mry5ez8joJwzvMbaTGLhw8pXUnhDK91oSJLDPF1bmGk=
+github.com/go-openapi/swag/yamlutils v0.25.1/go.mod h1:cm9ywbzncy3y6uPm/97ysW8+wZ09qsks+9RS8fLWKqg=
github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI=
github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8=
github.com/gobeam/stringy v0.0.5 h1:TvxQGSAqr/qF0SBVxa8Q67WWIo7bCWS0bM101WOd52g=
@@ -65,24 +91,22 @@ github.com/google/go-containerregistry v0.20.7/go.mod h1:Lx5LCZQjLH1QBaMPeGwsME9
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0=
github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
-github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db h1:097atOisP2aRj7vFgYQBbFN4U4JNXUNYpxael3UzMyo=
-github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144=
+github.com/google/pprof v0.0.0-20250607225305-033d6d78b36a h1://KbezygeMJZCSHH+HgUZiTeSoiuFspbMg1ge+eFj18=
+github.com/google/pprof v0.0.0-20250607225305-033d6d78b36a/go.mod h1:5hDyRhoBCxViHszMt12TnOpEI4VVi+U8Gm9iphldiMA=
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/huandu/xstrings v1.5.0 h1:2ag3IFq9ZDANvthTwTiqSSZLjDc+BedvHPAp5tJy2TI=
github.com/huandu/xstrings v1.5.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
github.com/imdario/mergo v0.3.6 h1:xTNEAn+kxVO7dTZGu0CegyqKZmoWFI0rF8UxjlB2d28=
github.com/imdario/mergo v0.3.6/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
-github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
-github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
-github.com/klauspost/compress v1.18.1 h1:bcSGx7UbpBqMChDtsF28Lw6v/G94LPrrbMbdC3JH2co=
-github.com/klauspost/compress v1.18.1/go.mod h1:ZQFFVG+MdnR0P+l6wpXgIL4NTtwiKIdBnrBd8Nrxr+0=
-github.com/klauspost/cpuid/v2 v2.0.9 h1:lgaqFMSdTdQYdZ04uHyN2d/eKdOMyi2YLSvlQIBFYa4=
-github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
+github.com/klauspost/compress v1.18.2 h1:iiPHWW0YrcFgpBYhsA6D1+fqHssJscY/Tm/y2Uqnapk=
+github.com/klauspost/compress v1.18.2/go.mod h1:R0h/fSBs8DE4ENlcrlib3PsXS61voFxhIs2DeRhCvJ4=
+github.com/klauspost/cpuid/v2 v2.2.5 h1:0E5MSMDEoAulmXNFquVs//DdoomxaoTY1kUhbc/qbZg=
+github.com/klauspost/cpuid/v2 v2.2.5/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
@@ -92,8 +116,6 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
-github.com/mailru/easyjson v0.9.0 h1:PrnmzHw7262yW8sTBwxi1PdJA3Iw/EKBa8psRf7d9a4=
-github.com/mailru/easyjson v0.9.0/go.mod h1:1+xMtQp2MRNVL/V1bOzuP3aP8VNwRW55fQUto+XFtTU=
github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE=
github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8=
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
@@ -118,10 +140,10 @@ github.com/nxadm/tail v1.4.11 h1:8feyoE3OzPrcshW5/MJ4sGESc5cqmGkGCWlco4l0bqY=
github.com/nxadm/tail v1.4.11/go.mod h1:OTaG3NK980DZzxbRq6lEuzgU+mug70nY11sMd4JXXHc=
github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=
github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU=
-github.com/onsi/ginkgo/v2 v2.22.0 h1:Yed107/8DjTr0lKCNt7Dn8yQ6ybuDRQoMGrNFKzMfHg=
-github.com/onsi/ginkgo/v2 v2.22.0/go.mod h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C+NkhLQo=
-github.com/onsi/gomega v1.36.1 h1:bJDPBO7ibjxcbHMgSCoo4Yj18UWbKDlLwX1x9sybDcw=
-github.com/onsi/gomega v1.36.1/go.mod h1:PvZbdDc8J6XJEpDK4HCuRBm8a6Fzp9/DmhC9C7yFlog=
+github.com/onsi/ginkgo/v2 v2.23.4 h1:ktYTpKJAVZnDT4VjxSbiBenUjmlL/5QkBEocaWXiQus=
+github.com/onsi/ginkgo/v2 v2.23.4/go.mod h1:Bt66ApGPBFzHyR+JO10Zbt0Gsp4uWxu5mIOTusL46e8=
+github.com/onsi/gomega v1.38.2 h1:eZCjf2xjZAqe+LeWvKb5weQ+NcPwX84kqJ0cZNxok2A=
+github.com/onsi/gomega v1.38.2/go.mod h1:W2MJcYxRGV63b418Ai34Ud0hEdTVXq9NW9+Sx6uXf3k=
github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=
github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
github.com/opencontainers/image-spec v1.1.1 h1:y0fUlFfIZhPF1W537XOLg0/fcx6zcHCJwooC2xJA040=
@@ -131,26 +153,26 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/prometheus/client_golang v1.22.0 h1:rb93p9lokFEsctTys46VnV1kLCDpVZ0a/Y92Vm0Zc6Q=
-github.com/prometheus/client_golang v1.22.0/go.mod h1:R7ljNsLXhuQXYZYtw6GAE9AZg8Y7vEW5scdCXrWRXC0=
-github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E=
-github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY=
-github.com/prometheus/common v0.62.0 h1:xasJaQlnWAeyHdUBeGjXmutelfJHWMRr+Fg4QszZ2Io=
-github.com/prometheus/common v0.62.0/go.mod h1:vyBcEuLSvWos9B1+CyL7JZ2up+uFzXhkqml0W5zIY1I=
-github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc=
-github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk=
+github.com/prometheus/client_golang v1.23.2 h1:Je96obch5RDVy3FDMndoUsjAhG5Edi49h0RJWRi/o0o=
+github.com/prometheus/client_golang v1.23.2/go.mod h1:Tb1a6LWHB3/SPIzCoaDXI4I8UHKeFTEQ1YCr+0Gyqmg=
+github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk=
+github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE=
+github.com/prometheus/common v0.67.2 h1:PcBAckGFTIHt2+L3I33uNRTlKTplNzFctXcWhPyAEN8=
+github.com/prometheus/common v0.67.2/go.mod h1:63W3KZb1JOKgcjlIr64WW/LvFGAqKPj0atm+knVGEko=
+github.com/prometheus/procfs v0.17.0 h1:FuLQ+05u4ZI+SS/w9+BWEM2TXiHKsUQ9TADiRH7DuK0=
+github.com/prometheus/procfs v0.17.0/go.mod h1:oPQLaDAMRbA+u8H5Pbfq+dl3VDAvHxMUOVhe0wYB2zw=
github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII=
github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o=
-github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ=
-github.com/sergi/go-diff v1.2.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
+github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8=
+github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I=
github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k=
github.com/shopspring/decimal v1.4.0/go.mod h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+DMd9qYNcwME=
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
-github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w=
-github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo=
-github.com/spf13/pflag v1.0.9 h1:9exaQaMOCwffKiiiYk6/BndUBv+iRViNW+4lEMi0PvY=
-github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
+github.com/spf13/cast v1.10.0 h1:h2x0u2shc1QuLHfxi+cTJvs30+ZAHOGRic8uyGTDWxY=
+github.com/spf13/cast v1.10.0/go.mod h1:jNfB8QC9IA6ZuY2ZjDp0KtFO2LZZlg4S/7bzP6qqeHo=
+github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk=
+github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY=
github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
@@ -175,6 +197,10 @@ github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ=
github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0=
github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0=
github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA=
+go.bytebuilders.dev/catalog v0.0.22 h1:VX55dYTGYbTmnNPtd1KnIVsn/O6Jl4Kbz4qYWVTloOA=
+go.bytebuilders.dev/catalog v0.0.22/go.mod h1:JeefcRl8d/ejVYitcnnEMXx1eYCI1pjulhWpE5dri7s=
+go.uber.org/automaxprocs v1.6.0 h1:O3y2/QNTOdbF+e/dpXNNW7Rx2hZ4sTIPyybbxyNqTUs=
+go.uber.org/automaxprocs v1.6.0/go.mod h1:ifeIMSnPZuznNm6jmdzmU3/bfk01Fe2fotchwEFJ8r8=
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
@@ -188,44 +214,44 @@ go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/crypto v0.46.0 h1:cKRW/pmt1pKAfetfu+RCEvjvZkA9RimPbh7bhFjGVBU=
-golang.org/x/crypto v0.46.0/go.mod h1:Evb/oLKmMraqjZ2iQTwDwvCtJkczlDuTmdJXoZVzqU0=
+golang.org/x/crypto v0.49.0 h1:+Ng2ULVvLHnJ/ZFEq4KdcDd/cfjrrjjNSXNzxg0Y4U4=
+golang.org/x/crypto v0.49.0/go.mod h1:ErX4dUh2UM+CFYiXZRTcMpEcN8b/1gxEuv3nODoYtCA=
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/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-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
-golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY=
-golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU=
-golang.org/x/oauth2 v0.33.0 h1:4Q+qn+E5z8gPRJfmRy7C2gGG3T4jIprK6aSYgTXGRpo=
-golang.org/x/oauth2 v0.33.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA=
+golang.org/x/net v0.52.0 h1:He/TN1l0e4mmR3QqHMT2Xab3Aj3L9qjbhRm78/6jrW0=
+golang.org/x/net v0.52.0/go.mod h1:R1MAz7uMZxVMualyPXb+VaqGSa3LIaUqk0eEt3w36Sw=
+golang.org/x/oauth2 v0.34.0 h1:hqK/t4AKgbqWkdkcAeI8XLmbK+4m4G5YeQRrmiotGlw=
+golang.org/x/oauth2 v0.34.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4=
-golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
+golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4=
+golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0=
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-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.40.0 h1:DBZZqJ2Rkml6QMQsZywtnjnnGvHza6BTfYFWY9kjEWQ=
-golang.org/x/sys v0.40.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
-golang.org/x/term v0.38.0 h1:PQ5pkm/rLO6HnxFR7N2lJHOZX6Kez5Y1gDSJla6jo7Q=
-golang.org/x/term v0.38.0/go.mod h1:bSEAKrOT1W+VSu9TSCMtoGEOUcKxOKgl3LE5QEF/xVg=
+golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.42.0 h1:omrd2nAlyT5ESRdCLYdm3+fMfNFE/+Rf4bDIQImRJeo=
+golang.org/x/sys v0.42.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
+golang.org/x/term v0.41.0 h1:QCgPso/Q3RTJx2Th4bDLqML4W6iJiaXFq2/ftQF13YU=
+golang.org/x/term v0.41.0/go.mod h1:3pfBgksrReYfZ5lvYM0kSO0LIkAl4Yl2bXOkKP7Ec2A=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.32.0 h1:ZD01bjUt1FQ9WJ0ClOL5vxgxOI/sVCNgX1YtKwcY0mU=
-golang.org/x/text v0.32.0/go.mod h1:o/rUWzghvpD5TXrTIBuJU77MTaN0ljMWE47kxGJQ7jY=
-golang.org/x/time v0.11.0 h1:/bpjEDfN9tkoN/ryeYHnv5hcMlc8ncjMcM4XBk5NWV0=
-golang.org/x/time v0.11.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg=
+golang.org/x/text v0.35.0 h1:JOVx6vVDFokkpaq1AEptVzLTpDe9KGpj5tR4/X+ybL8=
+golang.org/x/text v0.35.0/go.mod h1:khi/HExzZJ2pGnjenulevKNX1W67CUy0AsXcNubPGCA=
+golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI=
+golang.org/x/time v0.14.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
-golang.org/x/tools v0.39.0 h1:ik4ho21kwuQln40uelmciQPp9SipgNDdrafrYA4TmQQ=
-golang.org/x/tools v0.39.0/go.mod h1:JnefbkDPyD8UU2kI5fuf8ZX4/yUeh9W877ZeBONxUqQ=
+golang.org/x/tools v0.42.0 h1:uNgphsn75Tdz5Ji2q36v/nsFSfR/9BRFvqhGBaJGd5k=
+golang.org/x/tools v0.42.0/go.mod h1:Ma6lCIwGZvHK6XtgbswSoWroEkhugApmsXyrUmBhfr0=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
@@ -240,20 +266,19 @@ gomodules.xyz/pointer v0.1.0 h1:sG2UKrYVSo6E3r4itAjXfPfe4fuXMi0KdyTHpR3vGCg=
gomodules.xyz/pointer v0.1.0/go.mod h1:sPLsC0+yLTRecUiC5yVlyvXhZ6LAGojNCRWNNqoplvo=
gomodules.xyz/testing v0.0.4 h1:XGKt4B64mBe7P9kPR0Rz1nCQpWoSpBEFdTGkfU1RLe4=
gomodules.xyz/testing v0.0.4/go.mod h1:hD6aXtv9eVycPwS01zv+QTl5BrK2DXQgr6bHqnrW+44=
-google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY=
-google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY=
+google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE=
+google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
-gopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4=
-gopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M=
+gopkg.in/evanphx/json-patch.v4 v4.13.0 h1:czT3CmqEaQ1aanPc5SdlgQrrEIb8w/wwCvWWnfEbYzo=
+gopkg.in/evanphx/json-patch.v4 v4.13.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M=
gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
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.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
@@ -271,8 +296,8 @@ k8s.io/client-go v0.34.3 h1:wtYtpzy/OPNYf7WyNBTj3iUA0XaBHVqhv4Iv3tbrF5A=
k8s.io/client-go v0.34.3/go.mod h1:OxxeYagaP9Kdf78UrKLa3YZixMCfP6bgPwPwNBQBzpM=
k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=
k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
-k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b h1:MloQ9/bdJyIu9lb1PzujOPolHyvO06MXG5TUIj2mNAA=
-k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b/go.mod h1:UZ2yyWbFTpuhSbFhv24aGNOdoRdJZgsIObGBUaYVsts=
+k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912 h1:Y3gxNAuB0OBLImH611+UDZcmKS3g6CthxToOb37KgwE=
+k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912/go.mod h1:kdmbQkyfwUagLfXIad1y2TdrjPFWp2Q89B3qkRwf/pQ=
k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 h1:SjGebBtkBqHFOli+05xYbK8YF1Dzkbzn+gDM4X9T4Ck=
k8s.io/utils v0.0.0-20251002143259-bc988d571ff4/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
kmodules.xyz/client-go v0.34.3 h1:2K2Tjwwy62QOpgIpuRB0STDAt2e7omkKt06oC8YV+/U=
@@ -285,10 +310,14 @@ kmodules.xyz/resource-metadata v0.43.0 h1:MSUeMku47f1NhpTptkbWZbyGqp1oASTh/I2sBJ
kmodules.xyz/resource-metadata v0.43.0/go.mod h1:bqm4/ZqHxA04H1/Mz79YhHgrePSKJfUVL7cpG8teKsA=
kmodules.xyz/schema-checker v0.4.2 h1:tAbxEtM759GxDM/3sQi/+OKKwUsEF+Ih4KReV3Eb/Xw=
kmodules.xyz/schema-checker v0.4.2/go.mod h1:N7ETPwfY4LbTHbydC9jjssPmYKKgZ8DC0IuLCU55wwc=
+kubeops.dev/external-dns-operator v0.3.1-0.20260409053434-d3838ac10fdf h1:mx8EWPxhDZkNM+knVHjEVxxUYDOwOCR18Rf85vHCA78=
+kubeops.dev/external-dns-operator v0.3.1-0.20260409053434-d3838ac10fdf/go.mod h1:hJgsshVGN68A4eXPjGYCuKaWLgYbaYFCD9E+vydYJoE=
kubeops.dev/scanner v0.0.19 h1:J8C94k4j3NY3Y8UGHcG4nCZtmpSqPneCmkuvGNUOv4s=
kubeops.dev/scanner v0.0.19/go.mod h1:FAKPsS+FhrOPwsbwXJOE1vLvIFWBcBcSXpaAztezvu4=
sigs.k8s.io/controller-runtime v0.22.4 h1:GEjV7KV3TY8e+tJ2LCTxUTanW4z/FmNB7l327UfMq9A=
sigs.k8s.io/controller-runtime v0.22.4/go.mod h1:+QX1XUpTXN4mLoblf4tqr5CQcyHPAki2HLXqQMY6vh8=
+sigs.k8s.io/gateway-api v1.4.1 h1:NPxFutNkKNa8UfLd2CMlEuhIPMQgDQ6DXNKG9sHbJU8=
+sigs.k8s.io/gateway-api v1.4.1/go.mod h1:AR5RSqciWP98OPckEjOjh2XJhAe2Na4LHyXD2FUY7Qk=
sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 h1:IpInykpT6ceI+QxKBbEflcR5EXP7sU1kvOlxwZh5txg=
sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg=
sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU=
@@ -297,5 +326,7 @@ sigs.k8s.io/structured-merge-diff/v6 v6.3.0 h1:jTijUJbW353oVOd9oTlifJqOGEkUw2jB/
sigs.k8s.io/structured-merge-diff/v6 v6.3.0/go.mod h1:M3W8sfWvn2HhQDIbGWj3S099YozAsymCo/wrT5ohRUE=
sigs.k8s.io/yaml v1.6.0 h1:G8fkbMSAFqgEFgh4b1wmtzDnioxFCUgTZhlbj5P9QYs=
sigs.k8s.io/yaml v1.6.0/go.mod h1:796bPqUfzR/0jLAl6XjHl3Ck7MiyVv8dbTdyT3/pMf4=
+voyagermesh.dev/installer v0.0.0-20260422083412-9fb2b415ba60 h1:jrdyQ3lK3zxiE8P42Li8O37n5DZXvk+yxtakNKWF9F4=
+voyagermesh.dev/installer v0.0.0-20260422083412-9fb2b415ba60/go.mod h1:htuE0aMmX0+gT/L47MkQ0nMy2v9Dv2uXCpr+XQoo7jQ=
x-helm.dev/apimachinery v0.0.18 h1:UHrC0PGjeSRSRECXRaVUl4fIIwwyQSnNFCCAevSI14w=
x-helm.dev/apimachinery v0.0.18/go.mod h1:C+M2A9cVmNhqP6ZGft4opUm1cPiWLHukKV5kWNkzXZs=
diff --git a/hack/scripts/ct.sh b/hack/scripts/ct.sh
index 4b2babbf..ff4a647e 100755
--- a/hack/scripts/ct.sh
+++ b/hack/scripts/ct.sh
@@ -23,7 +23,12 @@ for dir in charts/*/; do
echo $dir
if [ $num_files -le 1 ] ||
[[ "$dir" = "cluster-connector" ]] ||
- [[ "$dir" = "pgoutbox" ]]; then
+ [[ "$dir" = "pgoutbox" ]] ||
+ [[ "$dir" = "inbox-agent" ]] ||
+ [[ "$dir" = "inbox-server" ]] ||
+ [[ "$dir" = "inbox-server-distributed" ]] ||
+ [[ "$dir" = "perses" ]] ||
+ [[ "$dir" = "prom-label-proxy" ]]; then
make ct CT_COMMAND=lint TEST_CHARTS=charts/$dir
elif [[ "$dir" = "cert-manager-csi-driver-cacerts" ]]; then
ns=app-$(date +%s | head -c 6)
diff --git a/hack/scripts/update-chart-dependencies.sh b/hack/scripts/update-chart-dependencies.sh
index 223b05b9..162192a4 100755
--- a/hack/scripts/update-chart-dependencies.sh
+++ b/hack/scripts/update-chart-dependencies.sh
@@ -17,3 +17,9 @@
set -e
helm repo add appscode https://charts.appscode.com/stable/ || true
+
+for chart in charts/*/; do
+ if [ -f "${chart}Chart.yaml" ] && grep -q "^dependencies:" "${chart}Chart.yaml"; then
+ helm dependency update "$chart"
+ fi
+done
diff --git a/tests/check-charts_test.go b/tests/check-charts_test.go
index 91dd5858..ff0c942d 100644
--- a/tests/check-charts_test.go
+++ b/tests/check-charts_test.go
@@ -25,8 +25,10 @@ import (
"kmodules.xyz/image-packer/pkg/lib"
)
-var ignoreMissingList = []string{
- "ghcr.io/appscode/config-syncer:v0.15.4",
+var ignoreMissingList = []string{}
+
+var archSkipList = []string{
+ "ghcr.io/cloudoperators/greenhouse-extensions-integration-test:main",
}
func Test_CheckImageArchitectures(t *testing.T) {
@@ -37,7 +39,7 @@ func Test_CheckImageArchitectures(t *testing.T) {
if err := lib.CheckImageArchitectures([]string{
filepath.Join(dir, "catalog", "imagelist.yaml"),
- }, nil, ignoreMissingList); err != nil {
+ }, archSkipList, ignoreMissingList); err != nil {
t.Errorf("CheckImageArchitectures() error = %v", err)
}
}
@@ -60,7 +62,7 @@ func Test_CheckUBIImageArchitectures(t *testing.T) {
values := map[string]string{
"sidekick": ubiOperator,
}
- if err := lib.CheckHelmChartImageArchitectures(filepath.Join(dir, "charts"), values, nil, ignoreMissingList); err != nil {
+ if err := lib.CheckHelmChartImageArchitectures(filepath.Join(dir, "charts"), values, archSkipList, ignoreMissingList); err != nil {
t.Errorf("CheckUBIImageArchitectures() error = %v", err)
}
}
diff --git a/vendor/dario.cat/mergo/FUNDING.json b/vendor/dario.cat/mergo/FUNDING.json
new file mode 100644
index 00000000..0585e1fe
--- /dev/null
+++ b/vendor/dario.cat/mergo/FUNDING.json
@@ -0,0 +1,7 @@
+{
+ "drips": {
+ "ethereum": {
+ "ownedBy": "0x6160020e7102237aC41bdb156e94401692D76930"
+ }
+ }
+}
diff --git a/vendor/dario.cat/mergo/README.md b/vendor/dario.cat/mergo/README.md
index 0b3c4888..0e4a59af 100644
--- a/vendor/dario.cat/mergo/README.md
+++ b/vendor/dario.cat/mergo/README.md
@@ -85,7 +85,6 @@ Mergo is used by [thousands](https://deps.dev/go/dario.cat%2Fmergo/v1.0.0/depend
* [goreleaser/goreleaser](https://github.com/goreleaser/goreleaser)
* [go-micro/go-micro](https://github.com/go-micro/go-micro)
* [grafana/loki](https://github.com/grafana/loki)
-* [kubernetes/kubernetes](https://github.com/kubernetes/kubernetes)
* [masterminds/sprig](github.com/Masterminds/sprig)
* [moby/moby](https://github.com/moby/moby)
* [slackhq/nebula](https://github.com/slackhq/nebula)
@@ -191,10 +190,6 @@ func main() {
}
```
-Note: if test are failing due missing package, please execute:
-
- go get gopkg.in/yaml.v3
-
### Transformers
Transformers allow to merge specific types differently than in the default behavior. In other words, now you can customize how some types are merged. For example, `time.Time` is a struct; it doesn't have zero value but IsZero can return true because it has fields with zero value. How can we merge a non-zero `time.Time`?
diff --git a/vendor/dario.cat/mergo/SECURITY.md b/vendor/dario.cat/mergo/SECURITY.md
index a5de61f7..3788fcc1 100644
--- a/vendor/dario.cat/mergo/SECURITY.md
+++ b/vendor/dario.cat/mergo/SECURITY.md
@@ -4,8 +4,8 @@
| Version | Supported |
| ------- | ------------------ |
-| 0.3.x | :white_check_mark: |
-| < 0.3 | :x: |
+| 1.x.x | :white_check_mark: |
+| < 1.0 | :x: |
## Security contact information
diff --git a/vendor/github.com/Masterminds/semver/v3/CHANGELOG.md b/vendor/github.com/Masterminds/semver/v3/CHANGELOG.md
index f95a504f..fabe5e43 100644
--- a/vendor/github.com/Masterminds/semver/v3/CHANGELOG.md
+++ b/vendor/github.com/Masterminds/semver/v3/CHANGELOG.md
@@ -1,5 +1,31 @@
# Changelog
+## 3.4.0 (2025-06-27)
+
+### Added
+
+- #268: Added property to Constraints to include prereleases for Check and Validate
+
+### Changed
+
+- #263: Updated Go testing for 1.24, 1.23, and 1.22
+- #269: Updated the error message handling for message case and wrapping errors
+- #266: Restore the ability to have leading 0's when parsing with NewVersion.
+ Opt-out of this by setting CoerceNewVersion to false.
+
+### Fixed
+
+- #257: Fixed the CodeQL link (thanks @dmitris)
+- #262: Restored detailed errors when failed to parse with NewVersion. Opt-out
+ of this by setting DetailedNewVersionErrors to false for faster performance.
+- #267: Handle pre-releases for an "and" group if one constraint includes them
+
+## 3.3.1 (2024-11-19)
+
+### Fixed
+
+- #253: Fix for allowing some version that were invalid
+
## 3.3.0 (2024-08-27)
### Added
@@ -137,7 +163,7 @@ functions. These are described in the added and changed sections below.
- #78: Fix unchecked error in example code (thanks @ravron)
- #70: Fix the handling of pre-releases and the 0.0.0 release edge case
- #97: Fixed copyright file for proper display on GitHub
-- #107: Fix handling prerelease when sorting alphanum and num
+- #107: Fix handling prerelease when sorting alphanum and num
- #109: Fixed where Validate sometimes returns wrong message on error
## 1.4.2 (2018-04-10)
diff --git a/vendor/github.com/Masterminds/semver/v3/README.md b/vendor/github.com/Masterminds/semver/v3/README.md
index ed569360..2f56c676 100644
--- a/vendor/github.com/Masterminds/semver/v3/README.md
+++ b/vendor/github.com/Masterminds/semver/v3/README.md
@@ -50,6 +50,18 @@ other versions, convert the version back into a string, and get the original
string. Getting the original string is useful if the semantic version was coerced
into a valid form.
+There are package level variables that affect how `NewVersion` handles parsing.
+
+- `CoerceNewVersion` is `true` by default. When set to `true` it coerces non-compliant
+ versions into SemVer. For example, allowing a leading 0 in a major, minor, or patch
+ part. This enables the use of CalVer in versions even when not compliant with SemVer.
+ When set to `false` less coercion work is done.
+- `DetailedNewVersionErrors` provides more detailed errors. It only has an affect when
+ `CoerceNewVersion` is set to `false`. When `DetailedNewVersionErrors` is set to `true`
+ it can provide some more insight into why a version is invalid. Setting
+ `DetailedNewVersionErrors` to `false` is faster on performance but provides less
+ detailed error messages if a version fails to parse.
+
## Sorting Semantic Versions
A set of versions can be sorted using the `sort` package from the standard library.
@@ -160,6 +172,10 @@ means `>=1.2.3-BETA` will return `1.2.3-alpha`. What you might expect from case
sensitivity doesn't apply here. This is due to ASCII sort ordering which is what
the spec specifies.
+The `Constraints` instance returned from `semver.NewConstraint()` has a property
+`IncludePrerelease` that, when set to true, will return prerelease versions when calls
+to `Check()` and `Validate()` are made.
+
### Hyphen Range Comparisons
There are multiple methods to handle ranges and the first is hyphens ranges.
@@ -250,7 +266,7 @@ or [create a pull request](https://github.com/Masterminds/semver/pulls).
Security is an important consideration for this project. The project currently
uses the following tools to help discover security issues:
-* [CodeQL](https://github.com/Masterminds/semver)
+* [CodeQL](https://codeql.github.com)
* [gosec](https://github.com/securego/gosec)
* Daily Fuzz testing
diff --git a/vendor/github.com/Masterminds/semver/v3/constraints.go b/vendor/github.com/Masterminds/semver/v3/constraints.go
index 8461c7ed..8b7a10f8 100644
--- a/vendor/github.com/Masterminds/semver/v3/constraints.go
+++ b/vendor/github.com/Masterminds/semver/v3/constraints.go
@@ -12,6 +12,13 @@ import (
// checked against.
type Constraints struct {
constraints [][]*constraint
+ containsPre []bool
+
+ // IncludePrerelease specifies if pre-releases should be included in
+ // the results. Note, if a constraint range has a prerelease than
+ // prereleases will be included for that AND group even if this is
+ // set to false.
+ IncludePrerelease bool
}
// NewConstraint returns a Constraints instance that a Version instance can
@@ -22,11 +29,10 @@ func NewConstraint(c string) (*Constraints, error) {
c = rewriteRange(c)
ors := strings.Split(c, "||")
- or := make([][]*constraint, len(ors))
+ lenors := len(ors)
+ or := make([][]*constraint, lenors)
+ hasPre := make([]bool, lenors)
for k, v := range ors {
-
- // TODO: Find a way to validate and fetch all the constraints in a simpler form
-
// Validate the segment
if !validConstraintRegex.MatchString(v) {
return nil, fmt.Errorf("improper constraint: %s", v)
@@ -43,12 +49,22 @@ func NewConstraint(c string) (*Constraints, error) {
return nil, err
}
+ // If one of the constraints has a prerelease record this.
+ // This information is used when checking all in an "and"
+ // group to ensure they all check for prereleases.
+ if pc.con.pre != "" {
+ hasPre[k] = true
+ }
+
result[i] = pc
}
or[k] = result
}
- o := &Constraints{constraints: or}
+ o := &Constraints{
+ constraints: or,
+ containsPre: hasPre,
+ }
return o, nil
}
@@ -57,10 +73,10 @@ func (cs Constraints) Check(v *Version) bool {
// TODO(mattfarina): For v4 of this library consolidate the Check and Validate
// functions as the underlying functions make that possible now.
// loop over the ORs and check the inner ANDs
- for _, o := range cs.constraints {
+ for i, o := range cs.constraints {
joy := true
for _, c := range o {
- if check, _ := c.check(v); !check {
+ if check, _ := c.check(v, (cs.IncludePrerelease || cs.containsPre[i])); !check {
joy = false
break
}
@@ -83,12 +99,12 @@ func (cs Constraints) Validate(v *Version) (bool, []error) {
// Capture the prerelease message only once. When it happens the first time
// this var is marked
var prerelesase bool
- for _, o := range cs.constraints {
+ for i, o := range cs.constraints {
joy := true
for _, c := range o {
// Before running the check handle the case there the version is
// a prerelease and the check is not searching for prereleases.
- if c.con.pre == "" && v.pre != "" {
+ if !(cs.IncludePrerelease || cs.containsPre[i]) && v.pre != "" {
if !prerelesase {
em := fmt.Errorf("%s is a prerelease version and the constraint is only looking for release versions", v)
e = append(e, em)
@@ -98,7 +114,7 @@ func (cs Constraints) Validate(v *Version) (bool, []error) {
} else {
- if _, err := c.check(v); err != nil {
+ if _, err := c.check(v, (cs.IncludePrerelease || cs.containsPre[i])); err != nil {
e = append(e, err)
joy = false
}
@@ -227,8 +243,8 @@ type constraint struct {
}
// Check if a version meets the constraint
-func (c *constraint) check(v *Version) (bool, error) {
- return constraintOps[c.origfunc](v, c)
+func (c *constraint) check(v *Version, includePre bool) (bool, error) {
+ return constraintOps[c.origfunc](v, c, includePre)
}
// String prints an individual constraint into a string
@@ -236,7 +252,7 @@ func (c *constraint) string() string {
return c.origfunc + c.orig
}
-type cfunc func(v *Version, c *constraint) (bool, error)
+type cfunc func(v *Version, c *constraint, includePre bool) (bool, error)
func parseConstraint(c string) (*constraint, error) {
if len(c) > 0 {
@@ -272,7 +288,7 @@ func parseConstraint(c string) (*constraint, error) {
// The constraintRegex should catch any regex parsing errors. So,
// we should never get here.
- return nil, errors.New("constraint Parser Error")
+ return nil, errors.New("constraint parser error")
}
cs.con = con
@@ -290,7 +306,7 @@ func parseConstraint(c string) (*constraint, error) {
// The constraintRegex should catch any regex parsing errors. So,
// we should never get here.
- return nil, errors.New("constraint Parser Error")
+ return nil, errors.New("constraint parser error")
}
cs := &constraint{
@@ -305,16 +321,14 @@ func parseConstraint(c string) (*constraint, error) {
}
// Constraint functions
-func constraintNotEqual(v *Version, c *constraint) (bool, error) {
- if c.dirty {
-
- // If there is a pre-release on the version but the constraint isn't looking
- // for them assume that pre-releases are not compatible. See issue 21 for
- // more details.
- if v.Prerelease() != "" && c.con.Prerelease() == "" {
- return false, fmt.Errorf("%s is a prerelease version and the constraint is only looking for release versions", v)
- }
+func constraintNotEqual(v *Version, c *constraint, includePre bool) (bool, error) {
+ // The existence of prereleases is checked at the group level and passed in.
+ // Exit early if the version has a prerelease but those are to be ignored.
+ if v.Prerelease() != "" && !includePre {
+ return false, fmt.Errorf("%s is a prerelease version and the constraint is only looking for release versions", v)
+ }
+ if c.dirty {
if c.con.Major() != v.Major() {
return true, nil
}
@@ -345,12 +359,11 @@ func constraintNotEqual(v *Version, c *constraint) (bool, error) {
return true, nil
}
-func constraintGreaterThan(v *Version, c *constraint) (bool, error) {
+func constraintGreaterThan(v *Version, c *constraint, includePre bool) (bool, error) {
- // If there is a pre-release on the version but the constraint isn't looking
- // for them assume that pre-releases are not compatible. See issue 21 for
- // more details.
- if v.Prerelease() != "" && c.con.Prerelease() == "" {
+ // The existence of prereleases is checked at the group level and passed in.
+ // Exit early if the version has a prerelease but those are to be ignored.
+ if v.Prerelease() != "" && !includePre {
return false, fmt.Errorf("%s is a prerelease version and the constraint is only looking for release versions", v)
}
@@ -391,11 +404,10 @@ func constraintGreaterThan(v *Version, c *constraint) (bool, error) {
return false, fmt.Errorf("%s is less than or equal to %s", v, c.orig)
}
-func constraintLessThan(v *Version, c *constraint) (bool, error) {
- // If there is a pre-release on the version but the constraint isn't looking
- // for them assume that pre-releases are not compatible. See issue 21 for
- // more details.
- if v.Prerelease() != "" && c.con.Prerelease() == "" {
+func constraintLessThan(v *Version, c *constraint, includePre bool) (bool, error) {
+ // The existence of prereleases is checked at the group level and passed in.
+ // Exit early if the version has a prerelease but those are to be ignored.
+ if v.Prerelease() != "" && !includePre {
return false, fmt.Errorf("%s is a prerelease version and the constraint is only looking for release versions", v)
}
@@ -406,12 +418,11 @@ func constraintLessThan(v *Version, c *constraint) (bool, error) {
return false, fmt.Errorf("%s is greater than or equal to %s", v, c.orig)
}
-func constraintGreaterThanEqual(v *Version, c *constraint) (bool, error) {
+func constraintGreaterThanEqual(v *Version, c *constraint, includePre bool) (bool, error) {
- // If there is a pre-release on the version but the constraint isn't looking
- // for them assume that pre-releases are not compatible. See issue 21 for
- // more details.
- if v.Prerelease() != "" && c.con.Prerelease() == "" {
+ // The existence of prereleases is checked at the group level and passed in.
+ // Exit early if the version has a prerelease but those are to be ignored.
+ if v.Prerelease() != "" && !includePre {
return false, fmt.Errorf("%s is a prerelease version and the constraint is only looking for release versions", v)
}
@@ -422,11 +433,10 @@ func constraintGreaterThanEqual(v *Version, c *constraint) (bool, error) {
return false, fmt.Errorf("%s is less than %s", v, c.orig)
}
-func constraintLessThanEqual(v *Version, c *constraint) (bool, error) {
- // If there is a pre-release on the version but the constraint isn't looking
- // for them assume that pre-releases are not compatible. See issue 21 for
- // more details.
- if v.Prerelease() != "" && c.con.Prerelease() == "" {
+func constraintLessThanEqual(v *Version, c *constraint, includePre bool) (bool, error) {
+ // The existence of prereleases is checked at the group level and passed in.
+ // Exit early if the version has a prerelease but those are to be ignored.
+ if v.Prerelease() != "" && !includePre {
return false, fmt.Errorf("%s is a prerelease version and the constraint is only looking for release versions", v)
}
@@ -455,11 +465,10 @@ func constraintLessThanEqual(v *Version, c *constraint) (bool, error) {
// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0, <1.3.0
// ~1.2.3, ~>1.2.3 --> >=1.2.3, <1.3.0
// ~1.2.0, ~>1.2.0 --> >=1.2.0, <1.3.0
-func constraintTilde(v *Version, c *constraint) (bool, error) {
- // If there is a pre-release on the version but the constraint isn't looking
- // for them assume that pre-releases are not compatible. See issue 21 for
- // more details.
- if v.Prerelease() != "" && c.con.Prerelease() == "" {
+func constraintTilde(v *Version, c *constraint, includePre bool) (bool, error) {
+ // The existence of prereleases is checked at the group level and passed in.
+ // Exit early if the version has a prerelease but those are to be ignored.
+ if v.Prerelease() != "" && !includePre {
return false, fmt.Errorf("%s is a prerelease version and the constraint is only looking for release versions", v)
}
@@ -487,16 +496,15 @@ func constraintTilde(v *Version, c *constraint) (bool, error) {
// When there is a .x (dirty) status it automatically opts in to ~. Otherwise
// it's a straight =
-func constraintTildeOrEqual(v *Version, c *constraint) (bool, error) {
- // If there is a pre-release on the version but the constraint isn't looking
- // for them assume that pre-releases are not compatible. See issue 21 for
- // more details.
- if v.Prerelease() != "" && c.con.Prerelease() == "" {
+func constraintTildeOrEqual(v *Version, c *constraint, includePre bool) (bool, error) {
+ // The existence of prereleases is checked at the group level and passed in.
+ // Exit early if the version has a prerelease but those are to be ignored.
+ if v.Prerelease() != "" && !includePre {
return false, fmt.Errorf("%s is a prerelease version and the constraint is only looking for release versions", v)
}
if c.dirty {
- return constraintTilde(v, c)
+ return constraintTilde(v, c, includePre)
}
eq := v.Equal(c.con)
@@ -516,11 +524,10 @@ func constraintTildeOrEqual(v *Version, c *constraint) (bool, error) {
// ^0.0.3 --> >=0.0.3 <0.0.4
// ^0.0 --> >=0.0.0 <0.1.0
// ^0 --> >=0.0.0 <1.0.0
-func constraintCaret(v *Version, c *constraint) (bool, error) {
- // If there is a pre-release on the version but the constraint isn't looking
- // for them assume that pre-releases are not compatible. See issue 21 for
- // more details.
- if v.Prerelease() != "" && c.con.Prerelease() == "" {
+func constraintCaret(v *Version, c *constraint, includePre bool) (bool, error) {
+ // The existence of prereleases is checked at the group level and passed in.
+ // Exit early if the version has a prerelease but those are to be ignored.
+ if v.Prerelease() != "" && !includePre {
return false, fmt.Errorf("%s is a prerelease version and the constraint is only looking for release versions", v)
}
diff --git a/vendor/github.com/Masterminds/semver/v3/version.go b/vendor/github.com/Masterminds/semver/v3/version.go
index 304edc34..7a3ba738 100644
--- a/vendor/github.com/Masterminds/semver/v3/version.go
+++ b/vendor/github.com/Masterminds/semver/v3/version.go
@@ -14,28 +14,40 @@ import (
// The compiled version of the regex created at init() is cached here so it
// only needs to be created once.
var versionRegex *regexp.Regexp
+var looseVersionRegex *regexp.Regexp
+
+// CoerceNewVersion sets if leading 0's are allowd in the version part. Leading 0's are
+// not allowed in a valid semantic version. When set to true, NewVersion will coerce
+// leading 0's into a valid version.
+var CoerceNewVersion = true
+
+// DetailedNewVersionErrors specifies if detailed errors are returned from the NewVersion
+// function. This is used when CoerceNewVersion is set to false. If set to false
+// ErrInvalidSemVer is returned for an invalid version. This does not apply to
+// StrictNewVersion. Setting this function to false returns errors more quickly.
+var DetailedNewVersionErrors = true
var (
// ErrInvalidSemVer is returned a version is found to be invalid when
// being parsed.
- ErrInvalidSemVer = errors.New("Invalid Semantic Version")
+ ErrInvalidSemVer = errors.New("invalid semantic version")
// ErrEmptyString is returned when an empty string is passed in for parsing.
- ErrEmptyString = errors.New("Version string empty")
+ ErrEmptyString = errors.New("version string empty")
// ErrInvalidCharacters is returned when invalid characters are found as
// part of a version
- ErrInvalidCharacters = errors.New("Invalid characters in version")
+ ErrInvalidCharacters = errors.New("invalid characters in version")
// ErrSegmentStartsZero is returned when a version segment starts with 0.
// This is invalid in SemVer.
- ErrSegmentStartsZero = errors.New("Version segment starts with 0")
+ ErrSegmentStartsZero = errors.New("version segment starts with 0")
// ErrInvalidMetadata is returned when the metadata is an invalid format
- ErrInvalidMetadata = errors.New("Invalid Metadata string")
+ ErrInvalidMetadata = errors.New("invalid metadata string")
// ErrInvalidPrerelease is returned when the pre-release is an invalid format
- ErrInvalidPrerelease = errors.New("Invalid Prerelease string")
+ ErrInvalidPrerelease = errors.New("invalid prerelease string")
)
// semVerRegex is the regular expression used to parse a semantic version.
@@ -45,6 +57,12 @@ const semVerRegex string = `v?(0|[1-9]\d*)(?:\.(0|[1-9]\d*))?(?:\.(0|[1-9]\d*))?
`(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?` +
`(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?`
+// looseSemVerRegex is a regular expression that lets invalid semver expressions through
+// with enough detail that certain errors can be checked for.
+const looseSemVerRegex string = `v?([0-9]+)(\.[0-9]+)?(\.[0-9]+)?` +
+ `(-([0-9A-Za-z\-]+(\.[0-9A-Za-z\-]+)*))?` +
+ `(\+([0-9A-Za-z\-]+(\.[0-9A-Za-z\-]+)*))?`
+
// Version represents a single semantic version.
type Version struct {
major, minor, patch uint64
@@ -55,6 +73,7 @@ type Version struct {
func init() {
versionRegex = regexp.MustCompile("^" + semVerRegex + "$")
+ looseVersionRegex = regexp.MustCompile("^" + looseSemVerRegex + "$")
}
const (
@@ -142,8 +161,27 @@ func StrictNewVersion(v string) (*Version, error) {
// attempts to convert it to SemVer. If you want to validate it was a strict
// semantic version at parse time see StrictNewVersion().
func NewVersion(v string) (*Version, error) {
+ if CoerceNewVersion {
+ return coerceNewVersion(v)
+ }
m := versionRegex.FindStringSubmatch(v)
if m == nil {
+
+ // Disabling detailed errors is first so that it is in the fast path.
+ if !DetailedNewVersionErrors {
+ return nil, ErrInvalidSemVer
+ }
+
+ // Check for specific errors with the semver string and return a more detailed
+ // error.
+ m = looseVersionRegex.FindStringSubmatch(v)
+ if m == nil {
+ return nil, ErrInvalidSemVer
+ }
+ err := validateVersion(m)
+ if err != nil {
+ return nil, err
+ }
return nil, ErrInvalidSemVer
}
@@ -156,13 +194,13 @@ func NewVersion(v string) (*Version, error) {
var err error
sv.major, err = strconv.ParseUint(m[1], 10, 64)
if err != nil {
- return nil, fmt.Errorf("Error parsing version segment: %s", err)
+ return nil, fmt.Errorf("error parsing version segment: %w", err)
}
if m[2] != "" {
sv.minor, err = strconv.ParseUint(m[2], 10, 64)
if err != nil {
- return nil, fmt.Errorf("Error parsing version segment: %s", err)
+ return nil, fmt.Errorf("error parsing version segment: %w", err)
}
} else {
sv.minor = 0
@@ -171,7 +209,61 @@ func NewVersion(v string) (*Version, error) {
if m[3] != "" {
sv.patch, err = strconv.ParseUint(m[3], 10, 64)
if err != nil {
- return nil, fmt.Errorf("Error parsing version segment: %s", err)
+ return nil, fmt.Errorf("error parsing version segment: %w", err)
+ }
+ } else {
+ sv.patch = 0
+ }
+
+ // Perform some basic due diligence on the extra parts to ensure they are
+ // valid.
+
+ if sv.pre != "" {
+ if err = validatePrerelease(sv.pre); err != nil {
+ return nil, err
+ }
+ }
+
+ if sv.metadata != "" {
+ if err = validateMetadata(sv.metadata); err != nil {
+ return nil, err
+ }
+ }
+
+ return sv, nil
+}
+
+func coerceNewVersion(v string) (*Version, error) {
+ m := looseVersionRegex.FindStringSubmatch(v)
+ if m == nil {
+ return nil, ErrInvalidSemVer
+ }
+
+ sv := &Version{
+ metadata: m[8],
+ pre: m[5],
+ original: v,
+ }
+
+ var err error
+ sv.major, err = strconv.ParseUint(m[1], 10, 64)
+ if err != nil {
+ return nil, fmt.Errorf("error parsing version segment: %w", err)
+ }
+
+ if m[2] != "" {
+ sv.minor, err = strconv.ParseUint(strings.TrimPrefix(m[2], "."), 10, 64)
+ if err != nil {
+ return nil, fmt.Errorf("error parsing version segment: %w", err)
+ }
+ } else {
+ sv.minor = 0
+ }
+
+ if m[3] != "" {
+ sv.patch, err = strconv.ParseUint(strings.TrimPrefix(m[3], "."), 10, 64)
+ if err != nil {
+ return nil, fmt.Errorf("error parsing version segment: %w", err)
}
} else {
sv.patch = 0
@@ -615,7 +707,7 @@ func validatePrerelease(p string) error {
eparts := strings.Split(p, ".")
for _, p := range eparts {
if p == "" {
- return ErrInvalidMetadata
+ return ErrInvalidPrerelease
} else if containsOnly(p, num) {
if len(p) > 1 && p[0] == '0' {
return ErrSegmentStartsZero
@@ -643,3 +735,54 @@ func validateMetadata(m string) error {
}
return nil
}
+
+// validateVersion checks for common validation issues but may not catch all errors
+func validateVersion(m []string) error {
+ var err error
+ var v string
+ if m[1] != "" {
+ if len(m[1]) > 1 && m[1][0] == '0' {
+ return ErrSegmentStartsZero
+ }
+ _, err = strconv.ParseUint(m[1], 10, 64)
+ if err != nil {
+ return fmt.Errorf("error parsing version segment: %w", err)
+ }
+ }
+
+ if m[2] != "" {
+ v = strings.TrimPrefix(m[2], ".")
+ if len(v) > 1 && v[0] == '0' {
+ return ErrSegmentStartsZero
+ }
+ _, err = strconv.ParseUint(v, 10, 64)
+ if err != nil {
+ return fmt.Errorf("error parsing version segment: %w", err)
+ }
+ }
+
+ if m[3] != "" {
+ v = strings.TrimPrefix(m[3], ".")
+ if len(v) > 1 && v[0] == '0' {
+ return ErrSegmentStartsZero
+ }
+ _, err = strconv.ParseUint(v, 10, 64)
+ if err != nil {
+ return fmt.Errorf("error parsing version segment: %w", err)
+ }
+ }
+
+ if m[5] != "" {
+ if err = validatePrerelease(m[5]); err != nil {
+ return err
+ }
+ }
+
+ if m[8] != "" {
+ if err = validateMetadata(m[8]); err != nil {
+ return err
+ }
+ }
+
+ return nil
+}
diff --git a/vendor/github.com/emicklei/go-restful/v3/.travis.yml b/vendor/github.com/emicklei/go-restful/v3/.travis.yml
deleted file mode 100644
index 3a0bf5ff..00000000
--- a/vendor/github.com/emicklei/go-restful/v3/.travis.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-language: go
-
-go:
- - 1.x
-
-before_install:
- - go test -v
-
-script:
- - go test -race -coverprofile=coverage.txt -covermode=atomic
-
-after_success:
- - bash <(curl -s https://codecov.io/bash)
\ No newline at end of file
diff --git a/vendor/github.com/emicklei/go-restful/v3/CHANGES.md b/vendor/github.com/emicklei/go-restful/v3/CHANGES.md
index 6f24dfff..4fcd920a 100644
--- a/vendor/github.com/emicklei/go-restful/v3/CHANGES.md
+++ b/vendor/github.com/emicklei/go-restful/v3/CHANGES.md
@@ -1,5 +1,9 @@
# Change history of go-restful
+## [v3.13.0] - 2025-08-14
+
+- optimize performance of path matching in CurlyRouter ( thanks @wenhuang, Wen Huang)
+
## [v3.12.2] - 2025-02-21
- allow empty payloads in post,put,patch, issue #580 ( thanks @liggitt, Jordan Liggitt)
diff --git a/vendor/github.com/emicklei/go-restful/v3/README.md b/vendor/github.com/emicklei/go-restful/v3/README.md
index 3fb40d19..50a79ab6 100644
--- a/vendor/github.com/emicklei/go-restful/v3/README.md
+++ b/vendor/github.com/emicklei/go-restful/v3/README.md
@@ -84,6 +84,7 @@ func (u UserResource) findUser(request *restful.Request, response *restful.Respo
- Configurable (trace) logging
- Customizable gzip/deflate readers and writers using CompressorProvider registration
- Inject your own http.Handler using the `HttpMiddlewareHandlerToFilter` function
+- Added `SetPathTokenCacheEnabled` and `SetCustomVerbCacheEnabled` to disable regexp caching (default=true)
## How to customize
There are several hooks to customize the behavior of the go-restful package.
diff --git a/vendor/github.com/emicklei/go-restful/v3/curly.go b/vendor/github.com/emicklei/go-restful/v3/curly.go
index 6fd2bcd5..eec43bfd 100644
--- a/vendor/github.com/emicklei/go-restful/v3/curly.go
+++ b/vendor/github.com/emicklei/go-restful/v3/curly.go
@@ -9,11 +9,35 @@ import (
"regexp"
"sort"
"strings"
+ "sync"
)
// CurlyRouter expects Routes with paths that contain zero or more parameters in curly brackets.
type CurlyRouter struct{}
+var (
+ regexCache sync.Map // Cache for compiled regex patterns
+ pathTokenCacheEnabled = true // Enable/disable path token regex caching
+)
+
+// SetPathTokenCacheEnabled enables or disables path token regex caching for CurlyRouter.
+// When disabled, regex patterns will be compiled on every request.
+// When enabled (default), compiled regex patterns are cached for better performance.
+func SetPathTokenCacheEnabled(enabled bool) {
+ pathTokenCacheEnabled = enabled
+}
+
+// getCachedRegexp retrieves a compiled regex from the cache if found and valid.
+// Returns the regex and true if found and valid, nil and false otherwise.
+func getCachedRegexp(cache *sync.Map, pattern string) (*regexp.Regexp, bool) {
+ if cached, found := cache.Load(pattern); found {
+ if regex, ok := cached.(*regexp.Regexp); ok {
+ return regex, true
+ }
+ }
+ return nil, false
+}
+
// SelectRoute is part of the Router interface and returns the best match
// for the WebService and its Route for the given Request.
func (c CurlyRouter) SelectRoute(
@@ -113,8 +137,28 @@ func (c CurlyRouter) regularMatchesPathToken(routeToken string, colon int, reque
}
return true, true
}
- matched, err := regexp.MatchString(regPart, requestToken)
- return (matched && err == nil), false
+
+ // Check cache first (if enabled)
+ if pathTokenCacheEnabled {
+ if regex, found := getCachedRegexp(®exCache, regPart); found {
+ matched := regex.MatchString(requestToken)
+ return matched, false
+ }
+ }
+
+ // Compile the regex
+ regex, err := regexp.Compile(regPart)
+ if err != nil {
+ return false, false
+ }
+
+ // Cache the regex (if enabled)
+ if pathTokenCacheEnabled {
+ regexCache.Store(regPart, regex)
+ }
+
+ matched := regex.MatchString(requestToken)
+ return matched, false
}
var jsr311Router = RouterJSR311{}
@@ -168,7 +212,7 @@ func (c CurlyRouter) computeWebserviceScore(requestTokens []string, routeTokens
if matchesToken {
score++ // extra score for regex match
}
- }
+ }
} else {
// not a parameter
if eachRequestToken != eachRouteToken {
diff --git a/vendor/github.com/emicklei/go-restful/v3/custom_verb.go b/vendor/github.com/emicklei/go-restful/v3/custom_verb.go
index bfc17efd..0b98eeb0 100644
--- a/vendor/github.com/emicklei/go-restful/v3/custom_verb.go
+++ b/vendor/github.com/emicklei/go-restful/v3/custom_verb.go
@@ -1,14 +1,28 @@
package restful
+// Copyright 2025 Ernest Micklei. All rights reserved.
+// Use of this source code is governed by a license
+// that can be found in the LICENSE file.
+
import (
"fmt"
"regexp"
+ "sync"
)
var (
- customVerbReg = regexp.MustCompile(":([A-Za-z]+)$")
+ customVerbReg = regexp.MustCompile(":([A-Za-z]+)$")
+ customVerbCache sync.Map // Cache for compiled custom verb regexes
+ customVerbCacheEnabled = true // Enable/disable custom verb regex caching
)
+// SetCustomVerbCacheEnabled enables or disables custom verb regex caching.
+// When disabled, custom verb regex patterns will be compiled on every request.
+// When enabled (default), compiled custom verb regex patterns are cached for better performance.
+func SetCustomVerbCacheEnabled(enabled bool) {
+ customVerbCacheEnabled = enabled
+}
+
func hasCustomVerb(routeToken string) bool {
return customVerbReg.MatchString(routeToken)
}
@@ -20,7 +34,23 @@ func isMatchCustomVerb(routeToken string, pathToken string) bool {
}
customVerb := rs[1]
- specificVerbReg := regexp.MustCompile(fmt.Sprintf(":%s$", customVerb))
+ regexPattern := fmt.Sprintf(":%s$", customVerb)
+
+ // Check cache first (if enabled)
+ if customVerbCacheEnabled {
+ if specificVerbReg, found := getCachedRegexp(&customVerbCache, regexPattern); found {
+ return specificVerbReg.MatchString(pathToken)
+ }
+ }
+
+ // Compile the regex
+ specificVerbReg := regexp.MustCompile(regexPattern)
+
+ // Cache the regex (if enabled)
+ if customVerbCacheEnabled {
+ customVerbCache.Store(regexPattern, specificVerbReg)
+ }
+
return specificVerbReg.MatchString(pathToken)
}
diff --git a/vendor/github.com/emicklei/go-restful/v3/doc.go b/vendor/github.com/emicklei/go-restful/v3/doc.go
index 69b13057..80809225 100644
--- a/vendor/github.com/emicklei/go-restful/v3/doc.go
+++ b/vendor/github.com/emicklei/go-restful/v3/doc.go
@@ -1,7 +1,7 @@
/*
Package restful , a lean package for creating REST-style WebServices without magic.
-WebServices and Routes
+### WebServices and Routes
A WebService has a collection of Route objects that dispatch incoming Http Requests to a function calls.
Typically, a WebService has a root path (e.g. /users) and defines common MIME types for its routes.
@@ -30,14 +30,14 @@ The (*Request, *Response) arguments provide functions for reading information fr
See the example https://github.com/emicklei/go-restful/blob/v3/examples/user-resource/restful-user-resource.go with a full implementation.
-Regular expression matching Routes
+### Regular expression matching Routes
A Route parameter can be specified using the format "uri/{var[:regexp]}" or the special version "uri/{var:*}" for matching the tail of the path.
For example, /persons/{name:[A-Z][A-Z]} can be used to restrict values for the parameter "name" to only contain capital alphabetic characters.
Regular expressions must use the standard Go syntax as described in the regexp package. (https://code.google.com/p/re2/wiki/Syntax)
This feature requires the use of a CurlyRouter.
-Containers
+### Containers
A Container holds a collection of WebServices, Filters and a http.ServeMux for multiplexing http requests.
Using the statements "restful.Add(...) and restful.Filter(...)" will register WebServices and Filters to the Default Container.
@@ -47,7 +47,7 @@ You can create your own Container and create a new http.Server for that particul
container := restful.NewContainer()
server := &http.Server{Addr: ":8081", Handler: container}
-Filters
+### Filters
A filter dynamically intercepts requests and responses to transform or use the information contained in the requests or responses.
You can use filters to perform generic logging, measurement, authentication, redirect, set response headers etc.
@@ -60,22 +60,21 @@ Use the following statement to pass the request,response pair to the next filter
chain.ProcessFilter(req, resp)
-Container Filters
+### Container Filters
These are processed before any registered WebService.
// install a (global) filter for the default container (processed before any webservice)
restful.Filter(globalLogging)
-WebService Filters
+### WebService Filters
These are processed before any Route of a WebService.
// install a webservice filter (processed before any route)
ws.Filter(webserviceLogging).Filter(measureTime)
-
-Route Filters
+### Route Filters
These are processed before calling the function associated with the Route.
@@ -84,7 +83,7 @@ These are processed before calling the function associated with the Route.
See the example https://github.com/emicklei/go-restful/blob/v3/examples/filters/restful-filters.go with full implementations.
-Response Encoding
+### Response Encoding
Two encodings are supported: gzip and deflate. To enable this for all responses:
@@ -95,20 +94,20 @@ Alternatively, you can create a Filter that performs the encoding and install it
See the example https://github.com/emicklei/go-restful/blob/v3/examples/encoding/restful-encoding-filter.go
-OPTIONS support
+### OPTIONS support
By installing a pre-defined container filter, your Webservice(s) can respond to the OPTIONS Http request.
Filter(OPTIONSFilter())
-CORS
+### CORS
By installing the filter of a CrossOriginResourceSharing (CORS), your WebService(s) can handle CORS requests.
cors := CrossOriginResourceSharing{ExposeHeaders: []string{"X-My-Header"}, CookiesAllowed: false, Container: DefaultContainer}
Filter(cors.Filter)
-Error Handling
+### Error Handling
Unexpected things happen. If a request cannot be processed because of a failure, your service needs to tell via the response what happened and why.
For this reason HTTP status codes exist and it is important to use the correct code in every exceptional situation.
@@ -137,11 +136,11 @@ The request does not have or has an unknown Accept Header set for this operation
The request does not have or has an unknown Content-Type Header set for this operation.
-ServiceError
+### ServiceError
In addition to setting the correct (error) Http status code, you can choose to write a ServiceError message on the response.
-Performance options
+### Performance options
This package has several options that affect the performance of your service. It is important to understand them and how you can change it.
@@ -156,30 +155,27 @@ Default value is true
If content encoding is enabled then the default strategy for getting new gzip/zlib writers and readers is to use a sync.Pool.
Because writers are expensive structures, performance is even more improved when using a preloaded cache. You can also inject your own implementation.
-Trouble shooting
+### Trouble shooting
This package has the means to produce detail logging of the complete Http request matching process and filter invocation.
Enabling this feature requires you to set an implementation of restful.StdLogger (e.g. log.Logger) instance such as:
restful.TraceLogger(log.New(os.Stdout, "[restful] ", log.LstdFlags|log.Lshortfile))
-Logging
+### Logging
The restful.SetLogger() method allows you to override the logger used by the package. By default restful
uses the standard library `log` package and logs to stdout. Different logging packages are supported as
long as they conform to `StdLogger` interface defined in the `log` sub-package, writing an adapter for your
preferred package is simple.
-Resources
+### Resources
-[project]: https://github.com/emicklei/go-restful
+(c) 2012-2025, http://ernestmicklei.com. MIT License
+[project]: https://github.com/emicklei/go-restful
[examples]: https://github.com/emicklei/go-restful/blob/master/examples
-
-[design]: http://ernestmicklei.com/2012/11/11/go-restful-api-design/
-
+[design]: http://ernestmicklei.com/2012/11/11/go-restful-api-design/
[showcases]: https://github.com/emicklei/mora, https://github.com/emicklei/landskape
-
-(c) 2012-2015, http://ernestmicklei.com. MIT License
*/
package restful
diff --git a/vendor/github.com/envoyproxy/gateway/LICENSE b/vendor/github.com/envoyproxy/gateway/LICENSE
new file mode 100644
index 00000000..261eeb9e
--- /dev/null
+++ b/vendor/github.com/envoyproxy/gateway/LICENSE
@@ -0,0 +1,201 @@
+ 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/envoyproxy/gateway/api/v1alpha1/api_key_auth_types.go b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/api_key_auth_types.go
new file mode 100644
index 00000000..1986f386
--- /dev/null
+++ b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/api_key_auth_types.go
@@ -0,0 +1,59 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package v1alpha1
+
+import (
+ gwapiv1 "sigs.k8s.io/gateway-api/apis/v1"
+)
+
+const APIKeysSecretKey = "credentials"
+
+// APIKeyAuth defines the configuration for the API Key Authentication.
+type APIKeyAuth struct {
+ // CredentialRefs is the Kubernetes secret which contains the API keys.
+ // This is an Opaque secret.
+ // Each API key is stored in the key representing the client id.
+ // If the secrets have a key for a duplicated client, the first one will be used.
+ CredentialRefs []gwapiv1.SecretObjectReference `json:"credentialRefs"`
+
+ // ExtractFrom is where to fetch the key from the coming request.
+ // The value from the first source that has a key will be used.
+ ExtractFrom []*ExtractFrom `json:"extractFrom"`
+
+ // ForwardClientIDHeader is the name of the header to forward the client identity to the backend
+ // service. The header will be added to the request with the client id as the value.
+ //
+ // +optional
+ ForwardClientIDHeader *string `json:"forwardClientIDHeader,omitempty"`
+
+ // Sanitize indicates whether to remove the API key from the request before forwarding it to the backend service.
+ //
+ // +optional
+ Sanitize *bool `json:"sanitize,omitempty"`
+}
+
+// ExtractFrom is where to fetch the key from the coming request.
+// Only one of header, param or cookie is supposed to be specified.
+type ExtractFrom struct {
+ // Headers is the names of the header to fetch the key from.
+ // If multiple headers are specified, envoy will look for the api key in the order of the list.
+ // This field is optional, but only one of headers, params or cookies is supposed to be specified.
+ //
+ // +optional
+ Headers []string `json:"headers,omitempty"`
+ // Params is the names of the query parameter to fetch the key from.
+ // If multiple params are specified, envoy will look for the api key in the order of the list.
+ // This field is optional, but only one of headers, params or cookies is supposed to be specified.
+ //
+ // +optional
+ Params []string `json:"params,omitempty"`
+ // Cookies is the names of the cookie to fetch the key from.
+ // If multiple cookies are specified, envoy will look for the api key in the order of the list.
+ // This field is optional, but only one of headers, params or cookies is supposed to be specified.
+ //
+ // +optional
+ Cookies []string `json:"cookies,omitempty"`
+}
diff --git a/vendor/github.com/envoyproxy/gateway/api/v1alpha1/authorization_types.go b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/authorization_types.go
new file mode 100644
index 00000000..4cd87977
--- /dev/null
+++ b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/authorization_types.go
@@ -0,0 +1,225 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package v1alpha1
+
+import (
+ gwapiv1 "sigs.k8s.io/gateway-api/apis/v1"
+)
+
+// Authorization defines the authorization configuration.
+//
+// Note: if neither `Rules` nor `DefaultAction` is specified, the default action is to deny all requests.
+type Authorization struct {
+ // Rules defines a list of authorization rules.
+ // These rules are evaluated in order, the first matching rule will be applied,
+ // and the rest will be skipped.
+ //
+ // For example, if there are two rules: the first rule allows the request
+ // and the second rule denies it, when a request matches both rules, it will be allowed.
+ //
+ // +optional
+ Rules []AuthorizationRule `json:"rules,omitempty"`
+
+ // DefaultAction defines the default action to be taken if no rules match.
+ // If not specified, the default action is Deny.
+ // +optional
+ DefaultAction *AuthorizationAction `json:"defaultAction"`
+}
+
+// AuthorizationRule defines a single authorization rule.
+type AuthorizationRule struct {
+ // Name is a user-friendly name for the rule.
+ // If not specified, Envoy Gateway will generate a unique name for the rule.
+ //
+ // +optional
+ // +kubebuilder:validation:MinLength=1
+ // +kubebuilder:validation:MaxLength=253
+ Name *string `json:"name,omitempty"`
+
+ // Action defines the action to be taken if the rule matches.
+ Action AuthorizationAction `json:"action"`
+
+ // Operation specifies the operation of a request, such as HTTP methods.
+ // If not specified, all operations are matched on.
+ //
+ // +optional
+ Operation *Operation `json:"operation,omitempty"`
+
+ // Principal specifies the client identity of a request.
+ // If there are multiple principal types, all principals must match for the rule to match.
+ // For example, if there are two principals: one for client IP and one for JWT claim,
+ // the rule will match only if both the client IP and the JWT claim match.
+ Principal Principal `json:"principal"`
+}
+
+// Operation specifies the operation of a request.
+type Operation struct {
+ // Methods are the HTTP methods of the request.
+ // If multiple methods are specified, all specified methods are allowed or denied, based on the action of the rule.
+ //
+ // +kubebuilder:validation:MinItems=1
+ // +kubebuilder:validation:MaxItems=16
+ Methods []gwapiv1.HTTPMethod `json:"methods"`
+
+ // Other fields may be supported in the future, such as path or host.
+}
+
+// Principal specifies the client identity of a request.
+// A client identity can be a client IP, a JWT claim, username from the Authorization header,
+// or any other identity that can be extracted from a custom header.
+// If there are multiple principal types, all principals must match for the rule to match.
+//
+// +kubebuilder:validation:XValidation:rule="(has(self.clientCIDRs) || has(self.jwt) || has(self.headers))",message="at least one of clientCIDRs, jwt, or headers must be specified"
+type Principal struct {
+ // ClientCIDRs are the IP CIDR ranges of the client.
+ // Valid examples are "192.168.1.0/24" or "2001:db8::/64"
+ //
+ // If multiple CIDR ranges are specified, one of the CIDR ranges must match
+ // the client IP for the rule to match.
+ //
+ // The client IP is inferred from the X-Forwarded-For header, a custom header,
+ // or the proxy protocol.
+ // You can use the `ClientIPDetection` or the `ProxyProtocol` field in
+ // the `ClientTrafficPolicy` to configure how the client IP is detected.
+ //
+ // For TCPRoute targets (raw TCP connections), HTTP headers such as
+ // X-Forwarded-For are not available. The client IP is obtained from the
+ // TCP connection's peer address. If intermediaries (load balancers, NAT)
+ // terminate or proxy TCP, the original client IP will only be available
+ // if the intermediary preserves the source address (for example by
+ // enabling the PROXY protocol or avoiding SNAT). Ensure your L4 proxy is
+ // configured to preserve the source IP to enable correct client-IP
+ // matching for TCPRoute targets.
+ // +optional
+ // +kubebuilder:validation:MinItems=1
+ ClientCIDRs []CIDR `json:"clientCIDRs,omitempty"`
+
+ // JWT authorize the request based on the JWT claims and scopes.
+ // Note: in order to use JWT claims for authorization, you must configure the
+ // JWT authentication in the same `SecurityPolicy`.
+ // +optional
+ JWT *JWTPrincipal `json:"jwt,omitempty"`
+
+ // Headers authorize the request based on user identity extracted from custom headers.
+ // If multiple headers are specified, all headers must match for the rule to match.
+ //
+ // +optional
+ // +kubebuilder:validation:MinItems=1
+ // +kubebuilder:validation:MaxItems=256
+ Headers []AuthorizationHeaderMatch `json:"headers,omitempty"`
+}
+
+// AuthorizationHeaderMatch specifies how to match against the value of an HTTP header within a authorization rule.
+type AuthorizationHeaderMatch struct {
+ // Name of the HTTP header.
+ // The header name is case-insensitive unless PreserveHeaderCase is set to true.
+ // For example, "Foo" and "foo" are considered the same header.
+ //
+ // +kubebuilder:validation:MinLength=1
+ // +kubebuilder:validation:MaxLength=256
+ Name string `json:"name"`
+
+ // Values are the values that the header must match.
+ // If multiple values are specified, the rule will match if any of the values match.
+ //
+ // +kubebuilder:validation:MinItems=1
+ // +kubebuilder:validation:MaxItems=256
+ Values []string `json:"values"`
+
+ // Only exact matches are supported for now. It should be good enough for authorization use cases. If use cases for other
+ // matching types arise, we can add a MatchingType field here.
+}
+
+// JWTPrincipal specifies the client identity of a request based on the JWT claims and scopes.
+// At least one of the claims or scopes must be specified.
+// Claims and scopes are And-ed together if both are specified.
+//
+// +kubebuilder:validation:XValidation:rule="(has(self.claims) || has(self.scopes))",message="at least one of claims or scopes must be specified"
+type JWTPrincipal struct {
+ // Provider is the name of the JWT provider that used to verify the JWT token.
+ // In order to use JWT claims for authorization, you must configure the JWT
+ // authentication with the same provider in the same `SecurityPolicy`.
+ //
+ // +kubebuilder:validation:MinLength=1
+ // +kubebuilder:validation:MaxLength=253
+ Provider string `json:"provider"`
+
+ // Claims are the claims in a JWT token.
+ //
+ // If multiple claims are specified, all claims must match for the rule to match.
+ // For example, if there are two claims: one for the audience and one for the issuer,
+ // the rule will match only if both the audience and the issuer match.
+ //
+ // +optional
+ // +kubebuilder:validation:MinItems=1
+ // +kubebuilder:validation:MaxItems=16
+ Claims []JWTClaim `json:"claims,omitempty"`
+
+ // Scopes are a special type of claim in a JWT token that represents the permissions of the client.
+ //
+ // The value of the scopes field should be a space delimited string that is expected in the scope parameter,
+ // as defined in RFC 6749: https://datatracker.ietf.org/doc/html/rfc6749#page-23.
+ //
+ // If multiple scopes are specified, all scopes must match for the rule to match.
+ //
+ // +optional
+ // +kubebuilder:validation:MinItems=1
+ // +kubebuilder:validation:MaxItems=16
+ Scopes []JWTScope `json:"scopes,omitempty"`
+}
+
+// JWTClaim specifies a claim in a JWT token.
+type JWTClaim struct {
+ // Name is the name of the claim.
+ // If it is a nested claim, use a dot (.) separated string as the name to
+ // represent the full path to the claim.
+ // For example, if the claim is in the "department" field in the "organization" field,
+ // the name should be "organization.department".
+ //
+ // +kubebuilder:validation:MinLength=1
+ // +kubebuilder:validation:MaxLength=253
+ Name string `json:"name"`
+
+ // ValueType is the type of the claim value.
+ // Only String and StringArray types are supported for now.
+ //
+ // +kubebuilder:validation:Enum=String;StringArray
+ // +kubebuilder:default=String
+ // +unionDiscriminator
+ // +optional
+ ValueType *JWTClaimValueType `json:"valueType,omitempty"`
+
+ // Values are the values that the claim must match.
+ // If the claim is a string type, the specified value must match exactly.
+ // If the claim is a string array type, the specified value must match one of the values in the array.
+ // If multiple values are specified, one of the values must match for the rule to match.
+ //
+ // +kubebuilder:validation:MinItems=1
+ // +kubebuilder:validation:MaxItems=128
+ Values []string `json:"values"`
+}
+
+// +kubebuilder:validation:MinLength=1
+// +kubebuilder:validation:MaxLength=253
+type JWTScope string
+
+type JWTClaimValueType string
+
+const (
+ JWTClaimValueTypeString JWTClaimValueType = "String"
+ JWTClaimValueTypeStringArray JWTClaimValueType = "StringArray"
+)
+
+// AuthorizationAction defines the action to be taken if a rule matches.
+// +kubebuilder:validation:Enum=Allow;Deny
+type AuthorizationAction string
+
+const (
+ // AuthorizationActionAllow is the action to allow the request.
+ AuthorizationActionAllow AuthorizationAction = "Allow"
+ // AuthorizationActionDeny is the action to deny the request.
+ AuthorizationActionDeny AuthorizationAction = "Deny"
+)
diff --git a/vendor/github.com/envoyproxy/gateway/api/v1alpha1/backend_types.go b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/backend_types.go
new file mode 100644
index 00000000..9481d2eb
--- /dev/null
+++ b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/backend_types.go
@@ -0,0 +1,295 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package v1alpha1
+
+import (
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ gwapiv1 "sigs.k8s.io/gateway-api/apis/v1"
+)
+
+const (
+ // KindBackend is the name of the Backend kind.
+ KindBackend = "Backend"
+)
+
+// AppProtocolType defines various backend applications protocols supported by Envoy Gateway
+//
+// +kubebuilder:validation:Enum=gateway.envoyproxy.io/h2c;gateway.envoyproxy.io/ws;gateway.envoyproxy.io/wss
+type AppProtocolType string
+
+const (
+ // AppProtocolTypeH2C defines the HTTP/2 application protocol.
+ AppProtocolTypeH2C AppProtocolType = "gateway.envoyproxy.io/h2c"
+ // AppProtocolTypeWS defines the WebSocket over HTTP protocol.
+ AppProtocolTypeWS AppProtocolType = "gateway.envoyproxy.io/ws"
+ // AppProtocolTypeWSS defines the WebSocket over HTTPS protocol.
+ AppProtocolTypeWSS AppProtocolType = "gateway.envoyproxy.io/wss"
+)
+
+// Backend allows the user to configure the endpoints of a backend and
+// the behavior of the connection from Envoy Proxy to the backend.
+//
+// +kubebuilder:object:root=true
+// +kubebuilder:resource:categories=envoy-gateway,shortName=be
+// +kubebuilder:subresource:status
+// +kubebuilder:printcolumn:name="Status",type=string,JSONPath=`.status.conditions[?(@.type=="Accepted")].reason`
+// +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp`
+type Backend struct {
+ metav1.TypeMeta `json:",inline"`
+ metav1.ObjectMeta `json:"metadata,omitempty"`
+
+ // Spec defines the desired state of Backend.
+ Spec BackendSpec `json:"spec"`
+
+ // Status defines the current status of Backend.
+ Status BackendStatus `json:"status,omitempty"`
+}
+
+// BackendEndpoint describes a backend endpoint, which can be either a fully-qualified domain name, IP address or unix domain socket
+// corresponding to Envoy's Address: https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/core/v3/address.proto#config-core-v3-address
+//
+// +kubebuilder:validation:XValidation:rule="(has(self.fqdn) || has(self.ip) || has(self.unix))",message="one of fqdn, ip or unix must be specified"
+// +kubebuilder:validation:XValidation:rule="((has(self.fqdn) && !(has(self.ip) || has(self.unix))) || (has(self.ip) && !(has(self.fqdn) || has(self.unix))) || (has(self.unix) && !(has(self.ip) || has(self.fqdn))))",message="only one of fqdn, ip or unix can be specified"
+type BackendEndpoint struct {
+ // Hostname defines an optional hostname for the backend endpoint.
+ //
+ // +kubebuilder:validation:MinLength=1
+ // +kubebuilder:validation:MaxLength=253
+ // +kubebuilder:validation:Pattern=`^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$`
+ // +optional
+ Hostname *string `json:"hostname,omitempty"`
+
+ // FQDN defines a FQDN endpoint
+ //
+ // +optional
+ FQDN *FQDNEndpoint `json:"fqdn,omitempty"`
+
+ // IP defines an IP endpoint. Supports both IPv4 and IPv6 addresses.
+ //
+ // +optional
+ IP *IPEndpoint `json:"ip,omitempty"`
+
+ // Unix defines the unix domain socket endpoint
+ //
+ // +optional
+ Unix *UnixSocket `json:"unix,omitempty"`
+
+ // Zone defines the service zone of the backend endpoint.
+ //
+ // +optional
+ Zone *string `json:"zone,omitempty"`
+}
+
+// IPEndpoint describes TCP/UDP socket address, corresponding to Envoy's Socket Address
+// https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/core/v3/address.proto#config-core-v3-socketaddress
+type IPEndpoint struct {
+ // Address defines the IP address of the backend endpoint.
+ // Supports both IPv4 and IPv6 addresses.
+ //
+ // +kubebuilder:validation:MinLength=3
+ // +kubebuilder:validation:MaxLength=45
+ // +kubebuilder:validation:Pattern=`^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$|^(([0-9a-fA-F]{1,4}:){1,7}[0-9a-fA-F]{1,4}|::|(([0-9a-fA-F]{1,4}:){0,5})?(:[0-9a-fA-F]{1,4}){1,2})$`
+ Address string `json:"address"`
+
+ // Port defines the port of the backend endpoint.
+ //
+ // +kubebuilder:validation:Minimum=0
+ // +kubebuilder:validation:Maximum=65535
+ Port int32 `json:"port"`
+}
+
+// FQDNEndpoint describes TCP/UDP socket address, corresponding to Envoy's Socket Address
+// https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/core/v3/address.proto#config-core-v3-socketaddress
+type FQDNEndpoint struct {
+ // Hostname defines the FQDN hostname of the backend endpoint.
+ //
+ // +kubebuilder:validation:MinLength=1
+ // +kubebuilder:validation:MaxLength=253
+ // +kubebuilder:validation:Pattern=`^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$`
+ Hostname string `json:"hostname"`
+
+ // Port defines the port of the backend endpoint.
+ //
+ // +kubebuilder:validation:Minimum=0
+ // +kubebuilder:validation:Maximum=65535
+ Port int32 `json:"port"`
+}
+
+// UnixSocket describes TCP/UDP unix domain socket address, corresponding to Envoy's Pipe
+// https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/core/v3/address.proto#config-core-v3-pipe
+type UnixSocket struct {
+ // Path defines the unix domain socket path of the backend endpoint.
+ // The path length must not exceed 108 characters.
+ //
+ // +kubebuilder:validation:XValidation:rule="size(self) <= 108",message="unix domain socket path must not exceed 108 characters"
+ Path string `json:"path"`
+}
+
+// BackendSpec describes the desired state of BackendSpec.
+// +kubebuilder:validation:XValidation:rule="self.type != 'DynamicResolver' || !has(self.endpoints)",message="DynamicResolver type cannot have endpoints specified"
+type BackendSpec struct {
+ // Type defines the type of the backend. Defaults to "Endpoints"
+ //
+ // +kubebuilder:validation:Enum=Endpoints;DynamicResolver
+ // +kubebuilder:default=Endpoints
+ // +optional
+ Type *BackendType `json:"type,omitempty"`
+
+ // Endpoints defines the endpoints to be used when connecting to the backend.
+ //
+ // +kubebuilder:validation:MinItems=1
+ // +kubebuilder:validation:MaxItems=64
+ // +kubebuilder:validation:XValidation:rule="self.all(f, has(f.fqdn)) || !self.exists(f, has(f.fqdn))",message="fqdn addresses cannot be mixed with other address types"
+ Endpoints []BackendEndpoint `json:"endpoints,omitempty"`
+
+ // AppProtocols defines the application protocols to be supported when connecting to the backend.
+ //
+ // +optional
+ AppProtocols []AppProtocolType `json:"appProtocols,omitempty"`
+
+ // Fallback indicates whether the backend is designated as a fallback.
+ // It is highly recommended to configure active or passive health checks to ensure that failover can be detected
+ // when the active backends become unhealthy and to automatically readjust once the primary backends are healthy again.
+ // The overprovisioning factor is set to 1.4, meaning the fallback backends will only start receiving traffic when
+ // the health of the active backends falls below 72%.
+ //
+ // +optional
+ Fallback *bool `json:"fallback,omitempty"`
+
+ // TLS defines the TLS settings for the backend.
+ // If TLS is specified here and a BackendTLSPolicy is also configured for the backend, the final TLS settings will
+ // be a merge of both configurations. In case of overlapping fields, the values defined in the BackendTLSPolicy will
+ // take precedence.
+ //
+ // +optional
+ TLS *BackendTLSSettings `json:"tls,omitempty"`
+}
+
+// BackendTLSSettings holds the TLS settings for the backend.
+// +kubebuilder:validation:XValidation:message="must not contain both CACertificateRefs and WellKnownCACertificates",rule="!(has(self.caCertificateRefs) && size(self.caCertificateRefs) > 0 && has(self.wellKnownCACertificates) && self.wellKnownCACertificates != \"\")"
+// +kubebuilder:validation:XValidation:message="must not contain either CACertificateRefs or WellKnownCACertificates when InsecureSkipVerify is enabled",rule="!((has(self.insecureSkipVerify) && self.insecureSkipVerify) && ((has(self.caCertificateRefs) && size(self.caCertificateRefs) > 0) || (has(self.wellKnownCACertificates) && self.wellKnownCACertificates != \"\")))"
+type BackendTLSSettings struct {
+ // CACertificateRefs contains one or more references to Kubernetes objects that
+ // contain TLS certificates of the Certificate Authorities that can be used
+ // as a trust anchor to validate the certificates presented by the backend.
+ //
+ // A single reference to a Kubernetes ConfigMap or a Kubernetes Secret,
+ // with the CA certificate in a key named `ca.crt` is currently supported.
+ //
+ // If CACertificateRefs is empty or unspecified, then WellKnownCACertificates must be
+ // specified. Only one of CACertificateRefs or WellKnownCACertificates may be specified,
+ // not both.
+ //
+ // +kubebuilder:validation:MaxItems=8
+ // +optional
+ CACertificateRefs []gwapiv1.LocalObjectReference `json:"caCertificateRefs,omitempty"`
+
+ // WellKnownCACertificates specifies whether system CA certificates may be used in
+ // the TLS handshake between the gateway and backend pod.
+ //
+ // If WellKnownCACertificates is unspecified or empty (""), then CACertificateRefs
+ // must be specified with at least one entry for a valid configuration. Only one of
+ // CACertificateRefs or WellKnownCACertificates may be specified, not both.
+ //
+ // +optional
+ WellKnownCACertificates *gwapiv1.WellKnownCACertificatesType `json:"wellKnownCACertificates,omitempty"`
+
+ // InsecureSkipVerify indicates whether the upstream's certificate verification
+ // should be skipped. Defaults to "false".
+ //
+ // +kubebuilder:default=false
+ // +optional
+ InsecureSkipVerify *bool `json:"insecureSkipVerify,omitempty"`
+
+ // SNI is specifies the SNI value used when establishing an upstream TLS connection to the backend.
+ //
+ // Envoy Gateway will use the HTTP host header value for SNI, when all resources referenced in BackendRefs are:
+ // 1. Backend resources that do not set SNI, or
+ // 2. Service/ServiceImport resources that do not have a BackendTLSPolicy attached to them
+ //
+ // When a BackendTLSPolicy attaches to a Backend resource, the BackendTLSPolicy's Hostname value takes precedence
+ // over this value.
+ //
+ // +optional
+ SNI *gwapiv1.PreciseHostname `json:"sni,omitempty"`
+
+ // BackendTLSConfig defines the client certificate/key as well as TLS protocol parameters such as ciphers, TLS versions,
+ // and ALPN that the Envoy uses when connecting to the backend.
+ // When omitted, Envoy will fall back to the EnvoyProxy BackendTLS defaults, if any.
+ //
+ // +optional
+ *BackendTLSConfig `json:",inline"`
+}
+
+// BackendType defines the type of the Backend.
+type BackendType string
+
+const (
+ // BackendTypeEndpoints defines the type of the backend as Endpoints.
+ BackendTypeEndpoints BackendType = "Endpoints"
+ // BackendTypeDynamicResolver defines the type of the backend as DynamicResolver.
+ //
+ // When a backend is of type DynamicResolver, the Envoy will resolve the upstream
+ // ip address and port from the host header of the incoming request. If the ip address
+ // is directly set in the host header, the Envoy will use the ip address and port as the
+ // upstream address. If the hostname is set in the host header, the Envoy will resolve the
+ // ip address and port from the hostname using the DNS resolver.
+ BackendTypeDynamicResolver BackendType = "DynamicResolver"
+)
+
+// BackendConditionType is a type of condition for a backend. This type should be
+// used with a Backend resource Status.Conditions field.
+type BackendConditionType string
+
+// BackendConditionReason is a reason for a backend condition.
+type BackendConditionReason string
+
+const (
+ // BackendConditionAccepted indicates whether the backend has been accepted or
+ // rejected by a targeted resource, and why.
+ //
+ // Possible reasons for this condition to be True are:
+ //
+ // * "Accepted"
+ //
+ // Possible reasons for this condition to be False are:
+ //
+ // * "Invalid"
+ //
+ BackendConditionAccepted BackendConditionType = "Accepted"
+
+ // BackendReasonAccepted is used with the "Accepted" condition when the backend
+ // has been accepted by the targeted resource.
+ BackendReasonAccepted BackendConditionReason = "Accepted"
+
+ // BackendReasonInvalid is used with the "Accepted" condition when the backend
+ // is syntactically or semantically invalid.
+ BackendReasonInvalid BackendConditionReason = "Invalid"
+)
+
+// BackendStatus defines the state of Backend
+type BackendStatus struct {
+ // Conditions describe the current conditions of the Backend.
+ //
+ // +optional
+ // +listType=map
+ // +listMapKey=type
+ // +kubebuilder:validation:MaxItems=8
+ Conditions []metav1.Condition `json:"conditions,omitempty"`
+}
+
+// BackendList contains a list of Backend resources.
+//
+// +kubebuilder:object:root=true
+type BackendList struct {
+ metav1.TypeMeta `json:",inline"`
+ metav1.ListMeta `json:"metadata,omitempty"`
+ Items []Backend `json:"items"`
+}
+
+func init() {
+ SchemeBuilder.Register(&Backend{}, &BackendList{})
+}
diff --git a/vendor/github.com/envoyproxy/gateway/api/v1alpha1/backendtrafficpolicy_types.go b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/backendtrafficpolicy_types.go
new file mode 100644
index 00000000..96798542
--- /dev/null
+++ b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/backendtrafficpolicy_types.go
@@ -0,0 +1,176 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package v1alpha1
+
+import (
+ "k8s.io/apimachinery/pkg/api/resource"
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ gwapiv1 "sigs.k8s.io/gateway-api/apis/v1"
+)
+
+const (
+ // KindBackendTrafficPolicy is the name of the BackendTrafficPolicy kind.
+ KindBackendTrafficPolicy = "BackendTrafficPolicy"
+)
+
+// BackendTrafficPolicy allows the user to configure the behavior of the connection
+// between the Envoy Proxy listener and the backend service.
+//
+// +kubebuilder:object:root=true
+// +kubebuilder:resource:categories=envoy-gateway,shortName=btp
+// +kubebuilder:subresource:status
+// +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp`
+type BackendTrafficPolicy struct {
+ metav1.TypeMeta `json:",inline"`
+ metav1.ObjectMeta `json:"metadata,omitempty"`
+
+ // spec defines the desired state of BackendTrafficPolicy.
+ Spec BackendTrafficPolicySpec `json:"spec"`
+
+ // status defines the current status of BackendTrafficPolicy.
+ Status gwapiv1.PolicyStatus `json:"status,omitempty"`
+}
+
+// BackendTrafficPolicySpec defines the desired state of BackendTrafficPolicy.
+//
+// +kubebuilder:validation:XValidation:rule="(has(self.targetRef) && !has(self.targetRefs)) || (!has(self.targetRef) && has(self.targetRefs)) || (has(self.targetSelectors) && self.targetSelectors.size() > 0) ", message="either targetRef or targetRefs must be used"
+// +kubebuilder:validation:XValidation:rule="has(self.targetRef) ? self.targetRef.group == 'gateway.networking.k8s.io' : true ", message="this policy can only have a targetRef.group of gateway.networking.k8s.io"
+// +kubebuilder:validation:XValidation:rule="has(self.targetRef) ? self.targetRef.kind in ['Gateway', 'HTTPRoute', 'GRPCRoute', 'UDPRoute', 'TCPRoute', 'TLSRoute'] : true", message="this policy can only have a targetRef.kind of Gateway/HTTPRoute/GRPCRoute/TCPRoute/UDPRoute/TLSRoute"
+// +kubebuilder:validation:XValidation:rule="has(self.targetRefs) ? self.targetRefs.all(ref, ref.group == 'gateway.networking.k8s.io') : true ", message="this policy can only have a targetRefs[*].group of gateway.networking.k8s.io"
+// +kubebuilder:validation:XValidation:rule="has(self.targetRefs) ? self.targetRefs.all(ref, ref.kind in ['Gateway', 'HTTPRoute', 'GRPCRoute', 'UDPRoute', 'TCPRoute', 'TLSRoute']) : true ", message="this policy can only have a targetRefs[*].kind of Gateway/HTTPRoute/GRPCRoute/TCPRoute/UDPRoute/TLSRoute"
+// +kubebuilder:validation:XValidation:rule="!has(self.compression) || !has(self.compressor)", message="either compression or compressor can be set, not both"
+type BackendTrafficPolicySpec struct {
+ PolicyTargetReferences `json:",inline"`
+ ClusterSettings `json:",inline"`
+
+ // MergeType determines how this configuration is merged with existing BackendTrafficPolicy
+ // configurations targeting a parent resource. When set, this configuration will be merged
+ // into a parent BackendTrafficPolicy (i.e. the one targeting a Gateway or Listener).
+ // This field cannot be set when targeting a parent resource (Gateway).
+ // If unset, no merging occurs, and only the most specific configuration takes effect.
+ // +optional
+ MergeType *MergeType `json:"mergeType,omitempty"`
+
+ // RateLimit allows the user to limit the number of incoming requests
+ // to a predefined value based on attributes within the traffic flow.
+ // +optional
+ RateLimit *RateLimitSpec `json:"rateLimit,omitempty"`
+
+ // FaultInjection defines the fault injection policy to be applied. This configuration can be used to
+ // inject delays and abort requests to mimic failure scenarios such as service failures and overloads
+ // +optional
+ FaultInjection *FaultInjection `json:"faultInjection,omitempty"`
+
+ // UseClientProtocol configures Envoy to prefer sending requests to backends using
+ // the same HTTP protocol that the incoming request used. Defaults to false, which means
+ // that Envoy will use the protocol indicated by the attached BackendRef.
+ //
+ // +optional
+ UseClientProtocol *bool `json:"useClientProtocol,omitempty"`
+
+ // The compression config for the http streams.
+ // Deprecated: Use Compressor instead.
+ //
+ // +patchMergeKey=type
+ // +patchStrategy=merge
+ //
+ // +optional
+ Compression []*Compression `json:"compression,omitempty" patchMergeKey:"type" patchStrategy:"merge"`
+
+ // The compressor config for the http streams.
+ // This provides more granular control over compression configuration.
+ //
+ // +patchMergeKey=type
+ // +patchStrategy=merge
+ //
+ // +optional
+ Compressor []*Compression `json:"compressor,omitempty" patchMergeKey:"type" patchStrategy:"merge"`
+
+ // ResponseOverride defines the configuration to override specific responses with a custom one.
+ // If multiple configurations are specified, the first one to match wins.
+ //
+ // +optional
+ ResponseOverride []*ResponseOverride `json:"responseOverride,omitempty"`
+ // HTTPUpgrade defines the configuration for HTTP protocol upgrades.
+ // If not specified, the default upgrade configuration(websocket) will be used.
+ //
+ // +patchMergeKey=type
+ // +patchStrategy=merge
+ //
+ // +optional
+ HTTPUpgrade []*ProtocolUpgradeConfig `json:"httpUpgrade,omitempty" patchMergeKey:"type" patchStrategy:"merge"`
+
+ // RequestBuffer allows the gateway to buffer and fully receive each request from a client before continuing to send the request
+ // upstream to the backends. This can be helpful to shield your backend servers from slow clients, and also to enforce a maximum size per request
+ // as any requests larger than the buffer size will be rejected.
+ //
+ // This can have a negative performance impact so should only be enabled when necessary.
+ //
+ // When enabling this option, you should also configure your connection buffer size to account for these request buffers. There will also be an
+ // increase in memory usage for Envoy that should be accounted for in your deployment settings.
+ //
+ // +optional
+ RequestBuffer *RequestBuffer `json:"requestBuffer,omitempty"`
+ // Telemetry configures the telemetry settings for the policy target (Gateway or xRoute).
+ // This will override the telemetry settings in the EnvoyProxy resource.
+ //
+ // +optional
+ Telemetry *BackendTelemetry `json:"telemetry,omitempty"`
+}
+
+type BackendTelemetry struct {
+ // Tracing configures the tracing settings for the backend or HTTPRoute.
+ //
+ // +optional
+ Tracing *Tracing `json:"tracing,omitempty"`
+}
+
+// ProtocolUpgradeConfig specifies the configuration for protocol upgrades.
+//
+// +kubebuilder:validation:XValidation:rule="!has(self.connect) || self.type == 'CONNECT'",message="The connect configuration is only allowed when the type is CONNECT."
+type ProtocolUpgradeConfig struct {
+ // Type is the case-insensitive type of protocol upgrade.
+ // e.g. `websocket`, `CONNECT`, `spdy/3.1` etc.
+ //
+ // +kubebuilder:validation:Required
+ Type string `json:"type"`
+ // Connect specifies the configuration for the CONNECT config.
+ // This is allowed only when type is CONNECT.
+ //
+ // +optional
+ Connect *ConnectConfig `json:"connect,omitempty"`
+}
+
+type ConnectConfig struct {
+ // Terminate the CONNECT request, and forwards the payload as raw TCP data.
+ //
+ // +optional
+ Terminate *bool `json:"terminate,omitempty"`
+}
+
+type RequestBuffer struct {
+ // Limit specifies the maximum allowed size in bytes for each incoming request buffer.
+ // If exceeded, the request will be rejected with HTTP 413 Content Too Large.
+ //
+ // Accepts values in resource.Quantity format (e.g., "10Mi", "500Ki").
+ //
+ // +kubebuilder:validation:XIntOrString
+ // +kubebuilder:validation:Pattern="^[1-9]+[0-9]*([EPTGMK]i|[EPTGMk])?$"
+ Limit resource.Quantity `json:"limit,omitempty"`
+}
+
+// BackendTrafficPolicyList contains a list of BackendTrafficPolicy resources.
+//
+// +kubebuilder:object:root=true
+type BackendTrafficPolicyList struct {
+ metav1.TypeMeta `json:",inline"`
+ metav1.ListMeta `json:"metadata,omitempty"`
+ Items []BackendTrafficPolicy `json:"items"`
+}
+
+func init() {
+ SchemeBuilder.Register(&BackendTrafficPolicy{}, &BackendTrafficPolicyList{})
+}
diff --git a/vendor/github.com/envoyproxy/gateway/api/v1alpha1/basic_auth_types.go b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/basic_auth_types.go
new file mode 100644
index 00000000..ec12473b
--- /dev/null
+++ b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/basic_auth_types.go
@@ -0,0 +1,37 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package v1alpha1
+
+import (
+ gwapiv1 "sigs.k8s.io/gateway-api/apis/v1"
+)
+
+const BasicAuthUsersSecretKey = ".htpasswd"
+
+// BasicAuth defines the configuration for the HTTP Basic Authentication.
+type BasicAuth struct {
+ // The Kubernetes secret which contains the username-password pairs in
+ // htpasswd format, used to verify user credentials in the "Authorization"
+ // header.
+ //
+ // This is an Opaque secret. The username-password pairs should be stored in
+ // the key ".htpasswd". As the key name indicates, the value needs to be the
+ // htpasswd format, for example: "user1:{SHA}hashed_user1_password".
+ // Right now, only SHA hash algorithm is supported.
+ // Reference to https://httpd.apache.org/docs/2.4/programs/htpasswd.html
+ // for more details.
+ //
+ // Note: The secret must be in the same namespace as the SecurityPolicy.
+ Users gwapiv1.SecretObjectReference `json:"users"`
+
+ // This field specifies the header name to forward a successfully authenticated user to
+ // the backend. The header will be added to the request with the username as the value.
+ //
+ // If it is not specified, the username will not be forwarded.
+ //
+ // +optional
+ ForwardUsernameHeader *string `json:"forwardUsernameHeader,omitempty"`
+}
diff --git a/vendor/github.com/envoyproxy/gateway/api/v1alpha1/circuitbreaker_types.go b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/circuitbreaker_types.go
new file mode 100644
index 00000000..dfe99710
--- /dev/null
+++ b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/circuitbreaker_types.go
@@ -0,0 +1,65 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package v1alpha1
+
+// CircuitBreaker defines the Circuit Breaker configuration.
+type CircuitBreaker struct {
+ // The maximum number of connections that Envoy will establish to the referenced backend defined within a xRoute rule.
+ //
+ // +kubebuilder:validation:Minimum=0
+ // +kubebuilder:validation:Maximum=4294967295
+ // +kubebuilder:default=1024
+ // +optional
+ MaxConnections *int64 `json:"maxConnections,omitempty"`
+
+ // The maximum number of pending requests that Envoy will queue to the referenced backend defined within a xRoute rule.
+ //
+ // +kubebuilder:validation:Minimum=0
+ // +kubebuilder:validation:Maximum=4294967295
+ // +kubebuilder:default=1024
+ // +optional
+ MaxPendingRequests *int64 `json:"maxPendingRequests,omitempty"`
+
+ // The maximum number of parallel requests that Envoy will make to the referenced backend defined within a xRoute rule.
+ //
+ // +kubebuilder:validation:Minimum=0
+ // +kubebuilder:validation:Maximum=4294967295
+ // +kubebuilder:default=1024
+ // +optional
+ MaxParallelRequests *int64 `json:"maxParallelRequests,omitempty"`
+
+ // The maximum number of parallel retries that Envoy will make to the referenced backend defined within a xRoute rule.
+ //
+ // +kubebuilder:validation:Minimum=0
+ // +kubebuilder:validation:Maximum=4294967295
+ // +kubebuilder:default=1024
+ // +optional
+ MaxParallelRetries *int64 `json:"maxParallelRetries,omitempty"`
+
+ // The maximum number of requests that Envoy will make over a single connection to the referenced backend defined within a xRoute rule.
+ // Default: unlimited.
+ //
+ // +kubebuilder:validation:Minimum=0
+ // +kubebuilder:validation:Maximum=4294967295
+ // +optional
+ MaxRequestsPerConnection *int64 `json:"maxRequestsPerConnection,omitempty"`
+
+ // PerEndpoint defines Circuit Breakers that will apply per-endpoint for an upstream cluster
+ //
+ // +optional
+ PerEndpoint *PerEndpointCircuitBreakers `json:"perEndpoint,omitempty"`
+}
+
+// PerEndpointCircuitBreakers defines Circuit Breakers that will apply per-endpoint for an upstream cluster
+type PerEndpointCircuitBreakers struct {
+ // MaxConnections configures the maximum number of connections that Envoy will establish per-endpoint to the referenced backend defined within a xRoute rule.
+ //
+ // +kubebuilder:validation:Minimum=0
+ // +kubebuilder:validation:Maximum=4294967295
+ // +kubebuilder:default=1024
+ // +optional
+ MaxConnections *int64 `json:"maxConnections,omitempty"`
+}
diff --git a/vendor/github.com/envoyproxy/gateway/api/v1alpha1/clienttrafficpolicy_types.go b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/clienttrafficpolicy_types.go
new file mode 100644
index 00000000..955b157f
--- /dev/null
+++ b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/clienttrafficpolicy_types.go
@@ -0,0 +1,415 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package v1alpha1
+
+import (
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ gwapiv1 "sigs.k8s.io/gateway-api/apis/v1"
+)
+
+const (
+ // KindClientTrafficPolicy is the name of the ClientTrafficPolicy kind.
+ KindClientTrafficPolicy = "ClientTrafficPolicy"
+)
+
+// +kubebuilder:object:root=true
+// +kubebuilder:resource:categories=envoy-gateway,shortName=ctp
+// +kubebuilder:subresource:status
+// +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp`
+
+// ClientTrafficPolicy allows the user to configure the behavior of the connection
+// between the downstream client and Envoy Proxy listener.
+type ClientTrafficPolicy struct {
+ metav1.TypeMeta `json:",inline"`
+ metav1.ObjectMeta `json:"metadata,omitempty"`
+
+ // Spec defines the desired state of ClientTrafficPolicy.
+ Spec ClientTrafficPolicySpec `json:"spec"`
+
+ // Status defines the current status of ClientTrafficPolicy.
+ Status gwapiv1.PolicyStatus `json:"status,omitempty"`
+}
+
+// ClientTrafficPolicySpec defines the desired state of ClientTrafficPolicy.
+//
+// +kubebuilder:validation:XValidation:rule="(has(self.targetRef) && !has(self.targetRefs)) || (!has(self.targetRef) && has(self.targetRefs)) || (has(self.targetSelectors) && self.targetSelectors.size() > 0) ", message="either targetRef or targetRefs must be used"
+// +kubebuilder:validation:XValidation:rule="has(self.targetRef) ? self.targetRef.group == 'gateway.networking.k8s.io' : true", message="this policy can only have a targetRef.group of gateway.networking.k8s.io"
+// +kubebuilder:validation:XValidation:rule="has(self.targetRef) ? self.targetRef.kind == 'Gateway' : true", message="this policy can only have a targetRef.kind of Gateway"
+// +kubebuilder:validation:XValidation:rule="has(self.targetRefs) ? self.targetRefs.all(ref, ref.group == 'gateway.networking.k8s.io') : true", message="this policy can only have a targetRefs[*].group of gateway.networking.k8s.io"
+// +kubebuilder:validation:XValidation:rule="has(self.targetRefs) ? self.targetRefs.all(ref, ref.kind == 'Gateway') : true", message="this policy can only have a targetRefs[*].kind of Gateway"
+type ClientTrafficPolicySpec struct {
+ PolicyTargetReferences `json:",inline"`
+
+ // TcpKeepalive settings associated with the downstream client connection.
+ // If defined, sets SO_KEEPALIVE on the listener socket to enable TCP Keepalives.
+ // Disabled by default.
+ //
+ // +optional
+ TCPKeepalive *TCPKeepalive `json:"tcpKeepalive,omitempty"`
+ // EnableProxyProtocol interprets the ProxyProtocol header and adds the
+ // Client Address into the X-Forwarded-For header.
+ // Note Proxy Protocol must be present when this field is set, else the connection
+ // is closed.
+ //
+ // Deprecated: Use ProxyProtocol instead.
+ //
+ // +optional
+ EnableProxyProtocol *bool `json:"enableProxyProtocol,omitempty"`
+ // ProxyProtocol configures the Proxy Protocol settings. When configured,
+ // the Proxy Protocol header will be interpreted and the Client Address
+ // will be added into the X-Forwarded-For header.
+ // If both EnableProxyProtocol and ProxyProtocol are set, ProxyProtocol takes precedence.
+ //
+ // +optional
+ ProxyProtocol *ProxyProtocolSettings `json:"proxyProtocol,omitempty"`
+ // ClientIPDetectionSettings provides configuration for determining the original client IP address for requests.
+ //
+ // +optional
+ ClientIPDetection *ClientIPDetectionSettings `json:"clientIPDetection,omitempty"`
+ // TLS settings configure TLS termination settings with the downstream client.
+ //
+ // +optional
+ TLS *ClientTLSSettings `json:"tls,omitempty"`
+ // Path enables managing how the incoming path set by clients can be normalized.
+ //
+ // +optional
+ Path *PathSettings `json:"path,omitempty"`
+ // HeaderSettings provides configuration for header management.
+ //
+ // +optional
+ Headers *HeaderSettings `json:"headers,omitempty"`
+ // Timeout settings for the client connections.
+ //
+ // +optional
+ Timeout *ClientTimeout `json:"timeout,omitempty"`
+ // Connection includes client connection settings.
+ //
+ // +optional
+ Connection *ClientConnection `json:"connection,omitempty"`
+ // HTTP1 provides HTTP/1 configuration on the listener.
+ //
+ // +optional
+ HTTP1 *HTTP1Settings `json:"http1,omitempty"`
+ // HTTP2 provides HTTP/2 configuration on the listener.
+ //
+ // +optional
+ HTTP2 *HTTP2Settings `json:"http2,omitempty"`
+ // HTTP3 provides HTTP/3 configuration on the listener.
+ //
+ // +optional
+ HTTP3 *HTTP3Settings `json:"http3,omitempty"`
+ // HealthCheck provides configuration for determining whether the HTTP/HTTPS listener is healthy.
+ //
+ // +optional
+ HealthCheck *HealthCheckSettings `json:"healthCheck,omitempty"`
+}
+
+// HeaderSettings provides configuration options for headers on the listener.
+//
+// +kubebuilder:validation:XValidation:rule="!(has(self.preserveXRequestID) && has(self.requestID))",message="preserveXRequestID and requestID cannot both be set."
+type HeaderSettings struct {
+ // EnableEnvoyHeaders configures Envoy Proxy to add the "X-Envoy-" headers to requests
+ // and responses.
+ // +optional
+ EnableEnvoyHeaders *bool `json:"enableEnvoyHeaders,omitempty"`
+
+ // DisableRateLimitHeaders configures Envoy Proxy to omit the "X-RateLimit-" response headers
+ // when rate limiting is enabled.
+ // +optional
+ DisableRateLimitHeaders *bool `json:"disableRateLimitHeaders,omitempty"`
+
+ // XForwardedClientCert configures how Envoy Proxy handle the x-forwarded-client-cert (XFCC) HTTP header.
+ //
+ // x-forwarded-client-cert (XFCC) is an HTTP header used to forward the certificate
+ // information of part or all of the clients or proxies that a request has flowed through,
+ // on its way from the client to the server.
+ //
+ // Envoy proxy may choose to sanitize/append/forward the XFCC header before proxying the request.
+ //
+ // If not set, the default behavior is sanitizing the XFCC header.
+ // +optional
+ XForwardedClientCert *XForwardedClientCert `json:"xForwardedClientCert,omitempty"`
+
+ // WithUnderscoresAction configures the action to take when an HTTP header with underscores
+ // is encountered. The default action is to reject the request.
+ // +optional
+ WithUnderscoresAction *WithUnderscoresAction `json:"withUnderscoresAction,omitempty"`
+
+ // PreserveXRequestID configures Envoy to keep the X-Request-ID header if passed for a request that is edge
+ // (Edge request is the request from external clients to front Envoy) and not reset it, which is the current Envoy behaviour.
+ // Defaults to false and cannot be combined with RequestID.
+ // Deprecated: use RequestID=PreserveOrGenerate instead
+ //
+ // +optional
+ PreserveXRequestID *bool `json:"preserveXRequestID,omitempty"`
+
+ // RequestID configures Envoy's behavior for handling the `X-Request-ID` header.
+ // When omitted default behavior is `Generate` which builds the `X-Request-ID` for every request
+ // and ignores pre-existing values from the edge.
+ // (An "edge request" refers to a request from an external client to the Envoy entrypoint.)
+ //
+ // +optional
+ RequestID *RequestIDAction `json:"requestID,omitempty"`
+
+ // EarlyRequestHeaders defines settings for early request header modification, before envoy performs
+ // routing, tracing and built-in header manipulation.
+ //
+ // +optional
+ EarlyRequestHeaders *HTTPHeaderFilter `json:"earlyRequestHeaders,omitempty"`
+
+ // LateResponseHeaders defines settings for global response header modification.
+ //
+ // +optional
+ LateResponseHeaders *HTTPHeaderFilter `json:"lateResponseHeaders,omitempty"`
+}
+
+// WithUnderscoresAction configures the action to take when an HTTP header with underscores
+// is encountered.
+// +kubebuilder:validation:Enum=Allow;RejectRequest;DropHeader
+type WithUnderscoresAction string
+
+const (
+ // WithUnderscoresActionAllow allows headers with underscores to be passed through.
+ WithUnderscoresActionAllow WithUnderscoresAction = "Allow"
+ // WithUnderscoresActionRejectRequest rejects the client request. HTTP/1 requests are rejected with
+ // the 400 status. HTTP/2 requests end with the stream reset.
+ WithUnderscoresActionRejectRequest WithUnderscoresAction = "RejectRequest"
+ // WithUnderscoresActionDropHeader drops the client header with name containing underscores. The header
+ // is dropped before the filter chain is invoked and as such filters will not see
+ // dropped headers.
+ WithUnderscoresActionDropHeader WithUnderscoresAction = "DropHeader"
+)
+
+// RequestIDAction configures Envoy's behavior for handling the `X-Request-ID` header at the edge.
+// An "edge request" refers to a request from an external client to the Envoy entrypoint.
+//
+// +kubebuilder:validation:Enum=PreserveOrGenerate;Preserve;Generate;Disable
+type RequestIDAction string
+
+const (
+ // Preserve `X-Request-ID` if already present or generate if empty
+ RequestIDActionPreserveOrGenerate RequestIDAction = "PreserveOrGenerate"
+ // Preserve `X-Request-ID` if already present, do not generate when empty
+ RequestIDActionPreserve RequestIDAction = "Preserve"
+ // Always generate `X-Request-ID` header, do not preserve `X-Request-ID`
+ // header if it exists. This is the default behavior.
+ RequestIDActionGenerate RequestIDAction = "Generate"
+ // Do not preserve or generate `X-Request-ID` header
+ RequestIDActionDisable RequestIDAction = "Disable"
+)
+
+// XForwardedClientCert configures how Envoy Proxy handle the x-forwarded-client-cert (XFCC) HTTP header.
+// +kubebuilder:validation:XValidation:rule="(has(self.certDetailsToAdd) && self.certDetailsToAdd.size() > 0) ? (self.mode == 'AppendForward' || self.mode == 'SanitizeSet') : true",message="certDetailsToAdd can only be set when mode is AppendForward or SanitizeSet"
+type XForwardedClientCert struct {
+ // Mode defines how XFCC header is handled by Envoy Proxy.
+ // If not set, the default mode is `Sanitize`.
+ // +optional
+ Mode *XFCCForwardMode `json:"mode,omitempty"`
+
+ // CertDetailsToAdd specifies the fields in the client certificate to be forwarded in the XFCC header.
+ //
+ // Hash(the SHA 256 digest of the current client certificate) and By(the Subject Alternative Name)
+ // are always included if the client certificate is forwarded.
+ //
+ // This field is only applicable when the mode is set to `AppendForward` or
+ // `SanitizeSet` and the client connection is mTLS.
+ // +kubebuilder:validation:MaxItems=5
+ // +optional
+ CertDetailsToAdd []XFCCCertData `json:"certDetailsToAdd,omitempty"`
+}
+
+// XFCCForwardMode defines how XFCC header is handled by Envoy Proxy.
+// +kubebuilder:validation:Enum=Sanitize;ForwardOnly;AppendForward;SanitizeSet;AlwaysForwardOnly
+type XFCCForwardMode string
+
+const (
+ // XFCCForwardModeSanitize removes the XFCC header from the request. This is the default mode.
+ XFCCForwardModeSanitize XFCCForwardMode = "Sanitize"
+
+ // XFCCForwardModeForwardOnly forwards the XFCC header in the request if the client connection is mTLS.
+ XFCCForwardModeForwardOnly XFCCForwardMode = "ForwardOnly"
+
+ // XFCCForwardModeAppendForward appends the client certificate information to the request’s XFCC header and forward it if the client connection is mTLS.
+ XFCCForwardModeAppendForward XFCCForwardMode = "AppendForward"
+
+ // XFCCForwardModeSanitizeSet resets the XFCC header with the client certificate information and forward it if the client connection is mTLS.
+ // The existing certificate information in the XFCC header is removed.
+ XFCCForwardModeSanitizeSet XFCCForwardMode = "SanitizeSet"
+
+ // XFCCForwardModeAlwaysForwardOnly always forwards the XFCC header in the request, regardless of whether the client connection is mTLS.
+ XFCCForwardModeAlwaysForwardOnly XFCCForwardMode = "AlwaysForwardOnly"
+)
+
+// XFCCCertData specifies the fields in the client certificate to be forwarded in the XFCC header.
+// +kubebuilder:validation:Enum=Subject;Cert;Chain;DNS;URI
+type XFCCCertData string
+
+const (
+ // XFCCCertDataSubject is the Subject field of the current client certificate.
+ XFCCCertDataSubject XFCCCertData = "Subject"
+ // XFCCCertDataCert is the entire client certificate in URL encoded PEM format.
+ XFCCCertDataCert XFCCCertData = "Cert"
+ // XFCCCertDataChain is the entire client certificate chain (including the leaf certificate) in URL encoded PEM format.
+ XFCCCertDataChain XFCCCertData = "Chain"
+ // XFCCCertDataDNS is the DNS type Subject Alternative Name field of the current client certificate.
+ XFCCCertDataDNS XFCCCertData = "DNS"
+ // XFCCCertDataURI is the URI type Subject Alternative Name field of the current client certificate.
+ XFCCCertDataURI XFCCCertData = "URI"
+)
+
+// ClientIPDetectionSettings provides configuration for determining the original client IP address for requests.
+//
+// +kubebuilder:validation:XValidation:rule="!(has(self.xForwardedFor) && has(self.customHeader))",message="customHeader cannot be used in conjunction with xForwardedFor"
+type ClientIPDetectionSettings struct {
+ // XForwardedForSettings provides configuration for using X-Forwarded-For headers for determining the client IP address.
+ //
+ // +optional
+ XForwardedFor *XForwardedForSettings `json:"xForwardedFor,omitempty"`
+ // CustomHeader provides configuration for determining the client IP address for a request based on
+ // a trusted custom HTTP header. This uses the custom_header original IP detection extension.
+ // Refer to https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/http/original_ip_detection/custom_header/v3/custom_header.proto
+ // for more details.
+ //
+ // +optional
+ CustomHeader *CustomHeaderExtensionSettings `json:"customHeader,omitempty"`
+}
+
+// XForwardedForSettings provides configuration for using X-Forwarded-For headers for determining the client IP address.
+// Refer to https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_conn_man/headers#x-forwarded-for
+// for more details.
+// +kubebuilder:validation:XValidation:rule="(has(self.numTrustedHops) && !has(self.trustedCIDRs)) || (!has(self.numTrustedHops) && has(self.trustedCIDRs))", message="only one of numTrustedHops or trustedCIDRs must be set"
+type XForwardedForSettings struct {
+ // NumTrustedHops specifies how many trusted hops to count from the rightmost side of
+ // the X-Forwarded-For (XFF) header when determining the original client’s IP address.
+ //
+ // If NumTrustedHops is set to N, the client IP is taken from the Nth address from the
+ // right end of the XFF header.
+ //
+ // Example:
+ // XFF = "203.0.113.128, 203.0.113.10, 203.0.113.1"
+ // NumTrustedHops = 2
+ // → Trusted client address = 203.0.113.10
+ //
+ // Only one of NumTrustedHops or TrustedCIDRs should be configured.
+ // +optional
+ NumTrustedHops *uint32 `json:"numTrustedHops,omitempty"`
+
+ // TrustedCIDRs is a list of CIDR ranges to trust when evaluating
+ // the remote IP address to determine the original client’s IP address.
+ // When the remote IP address matches a trusted CIDR and the x-forwarded-for header was sent,
+ // each entry in the x-forwarded-for header is evaluated from right to left
+ // and the first public non-trusted address is used as the original client address.
+ // If all addresses in x-forwarded-for are within the trusted list, the first (leftmost) entry is used.
+ // Only one of NumTrustedHops and TrustedCIDRs must be set.
+ //
+ // +optional
+ // +kubebuilder:validation:MinItems=1
+ TrustedCIDRs []CIDR `json:"trustedCIDRs,omitempty"`
+}
+
+// CustomHeaderExtensionSettings provides configuration for determining the client IP address for a request based on
+// a trusted custom HTTP header. This uses the the custom_header original IP detection extension.
+// Refer to https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/http/original_ip_detection/custom_header/v3/custom_header.proto
+// for more details.
+type CustomHeaderExtensionSettings struct {
+ // Name of the header containing the original downstream remote address, if present.
+ //
+ // +kubebuilder:validation:MinLength=1
+ // +kubebuilder:validation:MaxLength=255
+ // +kubebuilder:validation:Pattern="^[A-Za-z0-9-]+$"
+ //
+ Name string `json:"name"`
+ // FailClosed is a switch used to control the flow of traffic when client IP detection
+ // fails. If set to true, the listener will respond with 403 Forbidden when the client
+ // IP address cannot be determined.
+ //
+ // +optional
+ FailClosed *bool `json:"failClosed,omitempty"`
+}
+
+// HTTP3Settings provides HTTP/3 configuration on the listener.
+type HTTP3Settings struct{}
+
+// HTTP1Settings provides HTTP/1 configuration on the listener.
+type HTTP1Settings struct {
+ // EnableTrailers defines if HTTP/1 trailers should be proxied by Envoy.
+ // +optional
+ EnableTrailers *bool `json:"enableTrailers,omitempty"`
+ // PreserveHeaderCase defines if Envoy should preserve the letter case of headers.
+ // By default, Envoy will lowercase all the headers.
+ // +optional
+ PreserveHeaderCase *bool `json:"preserveHeaderCase,omitempty"`
+ // HTTP10 turns on support for HTTP/1.0 and HTTP/0.9 requests.
+ // +optional
+ HTTP10 *HTTP10Settings `json:"http10,omitempty"`
+ // DisableSafeMaxConnectionDuration controls the close behavior for HTTP/1 connections.
+ // By default, connection closure is delayed until the next request arrives after maxConnectionDuration is exceeded.
+ // It then adds a Connection: close header and gracefully closes the connection after the response completes.
+ // When set to true (disabled), Envoy uses its default drain behavior, closing the connection shortly after maxConnectionDuration elapses.
+ // Has no effect unless maxConnectionDuration is set.
+ //
+ // +optional
+ DisableSafeMaxConnectionDuration *bool `json:"disableSafeMaxConnectionDuration,omitempty"`
+}
+
+// HTTP10Settings provides HTTP/1.0 configuration on the listener.
+type HTTP10Settings struct {
+ // UseDefaultHost specifies whether a default Host header should be injected
+ // into HTTP/1.0 requests that do not include one.
+ //
+ // When set to true, Envoy Gateway injects the hostname associated with the
+ // listener or route into the request, in the following order:
+ //
+ // 1. If the targeted listener has a non-wildcard hostname, use that hostname.
+ // 2. If there is exactly one HTTPRoute with a non-wildcard hostname under
+ // the targeted listener, use that hostname.
+ //
+ // Note: Setting this field to true without a non-wildcard hostname makes the
+ // ClientTrafficPolicy invalid.
+ //
+ // +optional
+ UseDefaultHost *bool `json:"useDefaultHost,omitempty"`
+}
+
+// HealthCheckSettings provides HealthCheck configuration on the HTTP/HTTPS listener.
+type HealthCheckSettings struct {
+ // Path specifies the HTTP path to match on for health check requests.
+ // +kubebuilder:validation:MinLength=1
+ // +kubebuilder:validation:MaxLength=1024
+ Path string `json:"path"`
+}
+
+// ProxyProtocolSettings configures the Proxy Protocol settings. When configured,
+// the Proxy Protocol header will be interpreted and the Client Address
+// will be added into the X-Forwarded-For header.
+// If both EnableProxyProtocol and ProxyProtocol are set, ProxyProtocol takes precedence.
+//
+// +kubebuilder:validation:MinProperties=0
+type ProxyProtocolSettings struct {
+ // Optional allows requests without a Proxy Protocol header to be proxied.
+ // If set to true, the listener will accept requests without a Proxy Protocol header.
+ // If set to false, the listener will reject requests without a Proxy Protocol header.
+ // If not set, the default behavior is to reject requests without a Proxy Protocol header.
+ // Warning: Optional breaks conformance with the specification. Only enable if ALL traffic to the listener comes from a trusted source.
+ // For more information on security implications, see haproxy.org/download/2.1/doc/proxy-protocol.txt
+ //
+ //
+ // +optional
+ Optional *bool `json:"optional,omitempty"`
+}
+
+//+kubebuilder:object:root=true
+
+// ClientTrafficPolicyList contains a list of ClientTrafficPolicy resources.
+type ClientTrafficPolicyList struct {
+ metav1.TypeMeta `json:",inline"`
+ metav1.ListMeta `json:"metadata,omitempty"`
+ Items []ClientTrafficPolicy `json:"items"`
+}
+
+func init() {
+ SchemeBuilder.Register(&ClientTrafficPolicy{}, &ClientTrafficPolicyList{})
+}
diff --git a/vendor/github.com/envoyproxy/gateway/api/v1alpha1/compression_types.go b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/compression_types.go
new file mode 100644
index 00000000..d42793a0
--- /dev/null
+++ b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/compression_types.go
@@ -0,0 +1,58 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package v1alpha1
+
+// CompressorType defines the types of compressor library supported by Envoy Gateway.
+//
+// +kubebuilder:validation:Enum=Gzip;Brotli;Zstd
+type CompressorType string
+
+const (
+ GzipCompressorType CompressorType = "Gzip"
+
+ BrotliCompressorType CompressorType = "Brotli"
+
+ ZstdCompressorType CompressorType = "Zstd"
+)
+
+// GzipCompressor defines the config for the Gzip compressor.
+// The default values can be found here:
+// https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/compression/gzip/compressor/v3/gzip.proto#extension-envoy-compression-gzip-compressor
+type GzipCompressor struct{}
+
+// BrotliCompressor defines the config for the Brotli compressor.
+// The default values can be found here:
+// https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/compression/brotli/compressor/v3/brotli.proto#extension-envoy-compression-brotli-compressor
+type BrotliCompressor struct{}
+
+// ZstdCompressor defines the config for the Zstd compressor.
+// The default values can be found here:
+// https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/compression/zstd/compressor/v3/zstd.proto#extension-envoy-compression-zstd-compressor
+type ZstdCompressor struct{}
+
+// Compression defines the config of enabling compression.
+// This can help reduce the bandwidth at the expense of higher CPU.
+type Compression struct {
+ // CompressorType defines the compressor type to use for compression.
+ //
+ // +required
+ Type CompressorType `json:"type"`
+
+ // The configuration for Brotli compressor.
+ //
+ // +optional
+ Brotli *BrotliCompressor `json:"brotli,omitempty"`
+
+ // The configuration for GZIP compressor.
+ //
+ // +optional
+ Gzip *GzipCompressor `json:"gzip,omitempty"`
+
+ // The configuration for Zstd compressor.
+ //
+ // +optional
+ Zstd *ZstdCompressor `json:"zstd,omitempty"`
+}
diff --git a/vendor/github.com/envoyproxy/gateway/api/v1alpha1/connection_types.go b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/connection_types.go
new file mode 100644
index 00000000..04ffb822
--- /dev/null
+++ b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/connection_types.go
@@ -0,0 +1,143 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package v1alpha1
+
+import (
+ "k8s.io/apimachinery/pkg/api/resource"
+ gwapiv1 "sigs.k8s.io/gateway-api/apis/v1"
+)
+
+// ClientConnection allows users to configure connection-level settings of client
+type ClientConnection struct {
+ // ConnectionLimit defines limits related to connections
+ //
+ // +optional
+ ConnectionLimit *ConnectionLimit `json:"connectionLimit,omitempty"`
+ // BufferLimit provides configuration for the maximum buffer size in bytes for each incoming connection.
+ // BufferLimit applies to connection streaming (maybe non-streaming) channel between processes, it's in user space.
+ // For example, 20Mi, 1Gi, 256Ki etc.
+ // Note that when the suffix is not provided, the value is interpreted as bytes.
+ // Default: 32768 bytes.
+ //
+ // +kubebuilder:validation:XIntOrString
+ // +kubebuilder:validation:Pattern="^[1-9]+[0-9]*([EPTGMK]i|[EPTGMk])?$"
+ // +optional
+ BufferLimit *resource.Quantity `json:"bufferLimit,omitempty"`
+ // SocketBufferLimit provides configuration for the maximum buffer size in bytes for each incoming socket.
+ // SocketBufferLimit applies to socket streaming channel between TCP/IP stacks, it's in kernel space.
+ // For example, 20Mi, 1Gi, 256Ki etc.
+ // Note that when the suffix is not provided, the value is interpreted as bytes.
+ //
+ // +kubebuilder:validation:XIntOrString
+ // +kubebuilder:validation:Pattern="^[1-9]+[0-9]*([EPTGMK]i|[EPTGMk])?$"
+ // +optional
+ // +notImplementedHide
+ SocketBufferLimit *resource.Quantity `json:"socketBufferLimit,omitempty"`
+
+ // MaxAcceptPerSocketEvent provides configuration for the maximum number of connections to accept from the kernel
+ // per socket event. If there are more than MaxAcceptPerSocketEvent connections pending accept, connections over
+ // this threshold will be accepted in later event loop iterations.
+ // Defaults to 1 and can be disabled by setting to 0 for allowing unlimited accepted connections.
+ //
+ // +optional
+ // +kubebuilder:default=1
+ MaxAcceptPerSocketEvent *uint32 `json:"maxAcceptPerSocketEvent,omitempty"`
+}
+
+// BackendConnection allows users to configure connection-level settings of backend
+type BackendConnection struct {
+ // BufferLimit Soft limit on size of the cluster’s connections read and write buffers.
+ // BufferLimit applies to connection streaming (maybe non-streaming) channel between processes, it's in user space.
+ // If unspecified, an implementation defined default is applied (32768 bytes).
+ // For example, 20Mi, 1Gi, 256Ki etc.
+ // Note: that when the suffix is not provided, the value is interpreted as bytes.
+ //
+ // +kubebuilder:validation:XIntOrString
+ // +kubebuilder:validation:Pattern="^[1-9]+[0-9]*([EPTGMK]i|[EPTGMk])?$"
+ // +optional
+ BufferLimit *resource.Quantity `json:"bufferLimit,omitempty"`
+ // SocketBufferLimit provides configuration for the maximum buffer size in bytes for each socket
+ // to backend.
+ // SocketBufferLimit applies to socket streaming channel between TCP/IP stacks, it's in kernel space.
+ // For example, 20Mi, 1Gi, 256Ki etc.
+ // Note that when the suffix is not provided, the value is interpreted as bytes.
+ //
+ // +kubebuilder:validation:XIntOrString
+ // +kubebuilder:validation:Pattern="^[1-9]+[0-9]*([EPTGMK]i|[EPTGMk])?$"
+ // +optional
+ // +notImplementedHide
+ SocketBufferLimit *resource.Quantity `json:"socketBufferLimit,omitempty"`
+
+ // Preconnect configures proactive upstream connections to reduce latency by establishing
+ // connections before they’re needed and avoiding connection establishment overhead.
+ //
+ // If unset, Envoy will fetch connections as needed to serve in-flight requests.
+ //
+ // +optional
+ Preconnect *PreconnectPolicy `json:"preconnect,omitempty"`
+}
+
+// Preconnect configures proactive upstream connections to avoid
+// connection establishment overhead and reduce latency.
+type PreconnectPolicy struct {
+ // PerEndpointPercent configures how many additional connections to maintain per
+ // upstream endpoint, useful for high-QPS or latency sensitive services. Expressed as a
+ // percentage of the connections required by active streams
+ // (e.g. 100 = preconnect disabled, 105 = 1.05x connections per-endpoint, 200 = 2.00×).
+ //
+ // Allowed value range is between 100-300. When both PerEndpointPercent and
+ // PredictivePercent are set, Envoy ensures both are satisfied (max of the two).
+ //
+ // +kubebuilder:validation:Minimum=100
+ // +kubebuilder:validation:Maximum=300
+ // +optional
+ PerEndpointPercent *uint32 `json:"perEndpointPercent,omitempty"`
+
+ // PredictivePercent configures how many additional connections to maintain
+ // across the cluster by anticipating which upstream endpoint the load balancer
+ // will select next, useful for low-QPS services. Relies on deterministic
+ // loadbalancing and is only supported with Random or RoundRobin.
+ // Expressed as a percentage of the connections required by active streams
+ // (e.g. 100 = 1.0 (no preconnect), 105 = 1.05× connections across the cluster, 200 = 2.00×).
+ //
+ // Minimum allowed value is 100. When both PerEndpointPercent and PredictivePercent are
+ // set Envoy ensures both are satisfied per host (max of the two).
+ //
+ // +kubebuilder:validation:Minimum=100
+ // +optional
+ PredictivePercent *uint32 `json:"predictivePercent,omitempty"`
+}
+
+type ConnectionLimit struct {
+ // Value of the maximum concurrent connections limit.
+ // When the limit is reached, incoming connections will be closed after the CloseDelay duration.
+ //
+ // +kubebuilder:validation:Minimum=1
+ Value int64 `json:"value"`
+
+ // CloseDelay defines the delay to use before closing connections that are rejected
+ // once the limit value is reached.
+ // Default: none.
+ //
+ // +optional
+ CloseDelay *gwapiv1.Duration `json:"closeDelay,omitempty"`
+ // MaxConnectionDuration is the maximum amount of time a connection can remain established
+ // (usually via TCP/HTTP Keepalive packets) before being drained and/or closed.
+ // If not specified, there is no limit.
+ //
+ // +optional
+ MaxConnectionDuration *gwapiv1.Duration `json:"maxConnectionDuration,omitempty"`
+ // MaxRequestsPerConnection defines the maximum number of requests allowed over a single connection.
+ // If not specified, there is no limit. Setting this parameter to 1 will effectively disable keep alive.
+ //
+ // +optional
+ MaxRequestsPerConnection *uint32 `json:"maxRequestsPerConnection,omitempty"`
+ // MaxStreamDuration is the maximum amount of time to keep alive an http stream. When the limit is reached
+ // the stream will be reset independent of any other timeouts. If not specified, no value is set.
+ //
+ // +optional
+ MaxStreamDuration *gwapiv1.Duration `json:"maxStreamDuration,omitempty"`
+}
diff --git a/vendor/github.com/envoyproxy/gateway/api/v1alpha1/cors_types.go b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/cors_types.go
new file mode 100644
index 00000000..c3d20675
--- /dev/null
+++ b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/cors_types.go
@@ -0,0 +1,76 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package v1alpha1
+
+import gwapiv1 "sigs.k8s.io/gateway-api/apis/v1"
+
+// Origin is defined by the scheme (protocol), hostname (domain), and port of
+// the URL used to access it. The hostname can be "precise" which is just the
+// domain name or "wildcard" which is a domain name prefixed with a single
+// wildcard label such as "*.example.com".
+// In addition to that a single wildcard (with or without scheme) can be
+// configured to match any origin.
+//
+// For example, the following are valid origins:
+// - https://foo.example.com
+// - https://*.example.com
+// - http://foo.example.com:8080
+// - http://*.example.com:8080
+// - https://*
+//
+// +kubebuilder:validation:MinLength=1
+// +kubebuilder:validation:MaxLength=253
+// +kubebuilder:validation:Pattern=`^(\*|https?:\/\/(\*|(\*\.)?(([\w-]+\.?)+)?[\w-]+)(:\d{1,5})?)$`
+type Origin string
+
+// CORS defines the configuration for Cross-Origin Resource Sharing (CORS).
+type CORS struct {
+ // AllowOrigins defines the origins that are allowed to make requests.
+ // It specifies the allowed origins in the Access-Control-Allow-Origin CORS response header.
+ // The value "*" allows any origin to make requests.
+ //
+ // +optional
+ AllowOrigins []Origin `json:"allowOrigins,omitempty"`
+
+ // AllowMethods defines the methods that are allowed to make requests.
+ // It specifies the allowed methods in the Access-Control-Allow-Methods CORS response header..
+ // The value "*" allows any method to be used.
+ //
+ // +optional
+ AllowMethods []string `json:"allowMethods,omitempty"`
+
+ // AllowHeaders defines the headers that are allowed to be sent with requests.
+ // It specifies the allowed headers in the Access-Control-Allow-Headers CORS response header..
+ // The value "*" allows any header to be sent.
+ //
+ // +optional
+ AllowHeaders []string `json:"allowHeaders,omitempty"`
+
+ // ExposeHeaders defines which response headers should be made accessible to
+ // scripts running in the browser.
+ // It specifies the headers in the Access-Control-Expose-Headers CORS response header..
+ // The value "*" allows any header to be exposed.
+ //
+ // +optional
+ ExposeHeaders []string `json:"exposeHeaders,omitempty"`
+
+ // MaxAge defines how long the results of a preflight request can be cached.
+ // It specifies the value in the Access-Control-Max-Age CORS response header..
+ //
+ // +optional
+ MaxAge *gwapiv1.Duration `json:"maxAge,omitempty"`
+
+ // AllowCredentials indicates whether a request can include user credentials
+ // like cookies, authentication headers, or TLS client certificates.
+ // It specifies the value in the Access-Control-Allow-Credentials CORS response header.
+ //
+ // +optional
+ AllowCredentials *bool `json:"allowCredentials,omitempty"`
+
+ // TODO zhaohuabing: according to CORS spec, wildcard should be treated as a literal value
+ // for CORS requests with credentials.
+ // This needs to be supported in the Envoy CORS filter.
+}
diff --git a/vendor/github.com/envoyproxy/gateway/api/v1alpha1/dns_types.go b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/dns_types.go
new file mode 100644
index 00000000..2dbfd272
--- /dev/null
+++ b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/dns_types.go
@@ -0,0 +1,47 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package v1alpha1
+
+import gwapiv1 "sigs.k8s.io/gateway-api/apis/v1"
+
+// DNSLookupFamily defines the behavior of Envoy when resolving DNS for hostnames
+// +enum
+// +kubebuilder:validation:Enum=IPv4;IPv6;IPv4Preferred;IPv6Preferred;IPv4AndIPv6
+type DNSLookupFamily string
+
+const (
+ // IPv4DNSLookupFamily means the DNS resolver will first perform a lookup for addresses in the IPv4 family.
+ IPv4DNSLookupFamily DNSLookupFamily = "IPv4"
+ // IPv6DNSLookupFamily means the DNS resolver will first perform a lookup for addresses in the IPv6 family.
+ IPv6DNSLookupFamily DNSLookupFamily = "IPv6"
+ // IPv4PreferredDNSLookupFamily means the DNS resolver will first perform a lookup for addresses in the IPv4 family and fallback
+ // to a lookup for addresses in the IPv6 family.
+ IPv4PreferredDNSLookupFamily DNSLookupFamily = "IPv4Preferred"
+ // IPv6PreferredDNSLookupFamily means the DNS resolver will first perform a lookup for addresses in the IPv6 family and fallback
+ // to a lookup for addresses in the IPv4 family.
+ IPv6PreferredDNSLookupFamily DNSLookupFamily = "IPv6Preferred"
+ // IPv4AndIPv6DNSLookupFamily mean the DNS resolver will perform a lookup for both IPv4 and IPv6 families, and return all resolved
+ // addresses. When this is used, Happy Eyeballs will be enabled for upstream connections.
+ IPv4AndIPv6DNSLookupFamily DNSLookupFamily = "IPv4AndIPv6"
+)
+
+type DNS struct {
+ // DNSRefreshRate specifies the rate at which DNS records should be refreshed.
+ // Defaults to 30 seconds.
+ //
+ // +optional
+ DNSRefreshRate *gwapiv1.Duration `json:"dnsRefreshRate,omitempty"`
+ // RespectDNSTTL indicates whether the DNS Time-To-Live (TTL) should be respected.
+ // If the value is set to true, the DNS refresh rate will be set to the resource record’s TTL.
+ // Defaults to true.
+ //
+ // +optional
+ RespectDNSTTL *bool `json:"respectDnsTtl,omitempty"`
+ // LookupFamily determines how Envoy would resolve DNS for Routes where the backend is specified as a fully qualified domain name (FQDN).
+ // If set, this configuration overrides other defaults.
+ // +optional
+ LookupFamily *DNSLookupFamily `json:"lookupFamily,omitempty"`
+}
diff --git a/vendor/github.com/envoyproxy/gateway/api/v1alpha1/doc.go b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/doc.go
new file mode 100644
index 00000000..4e705afd
--- /dev/null
+++ b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/doc.go
@@ -0,0 +1,11 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+// Package v1alpha1 contains API schema definitions for the gateway.envoyproxy.io
+// API group.
+//
+// +kubebuilder:object:generate=true
+// +groupName=gateway.envoyproxy.io
+package v1alpha1
diff --git a/vendor/github.com/envoyproxy/gateway/api/v1alpha1/envoyextensionypolicy_types.go b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/envoyextensionypolicy_types.go
new file mode 100644
index 00000000..67fc0d0f
--- /dev/null
+++ b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/envoyextensionypolicy_types.go
@@ -0,0 +1,79 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package v1alpha1
+
+import (
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ gwapiv1 "sigs.k8s.io/gateway-api/apis/v1"
+)
+
+const (
+ // KindEnvoyExtensionPolicy is the name of the EnvoyExtensionPolicy kind.
+ KindEnvoyExtensionPolicy = "EnvoyExtensionPolicy"
+)
+
+// +kubebuilder:object:root=true
+// +kubebuilder:resource:shortName=eep
+// +kubebuilder:subresource:status
+// +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp`
+
+// EnvoyExtensionPolicy allows the user to configure various envoy extensibility options for the Gateway.
+type EnvoyExtensionPolicy struct {
+ metav1.TypeMeta `json:",inline"`
+ metav1.ObjectMeta `json:"metadata,omitempty"`
+
+ // Spec defines the desired state of EnvoyExtensionPolicy.
+ Spec EnvoyExtensionPolicySpec `json:"spec"`
+
+ // Status defines the current status of EnvoyExtensionPolicy.
+ Status gwapiv1.PolicyStatus `json:"status,omitempty"`
+}
+
+// EnvoyExtensionPolicySpec defines the desired state of EnvoyExtensionPolicy.
+//
+// +kubebuilder:validation:XValidation:rule="(has(self.targetRef) && !has(self.targetRefs)) || (!has(self.targetRef) && has(self.targetRefs)) || (has(self.targetSelectors) && self.targetSelectors.size() > 0) ", message="either targetRef or targetRefs must be used"
+// +kubebuilder:validation:XValidation:rule="has(self.targetRef) ? self.targetRef.group == 'gateway.networking.k8s.io' : true", message="this policy can only have a targetRef.group of gateway.networking.k8s.io"
+// +kubebuilder:validation:XValidation:rule="has(self.targetRef) ? self.targetRef.kind in ['Gateway', 'HTTPRoute', 'GRPCRoute', 'UDPRoute', 'TCPRoute', 'TLSRoute'] : true", message="this policy can only have a targetRef.kind of Gateway/HTTPRoute/GRPCRoute/TCPRoute/UDPRoute/TLSRoute"
+// +kubebuilder:validation:XValidation:rule="has(self.targetRefs) ? self.targetRefs.all(ref, ref.group == 'gateway.networking.k8s.io') : true ", message="this policy can only have a targetRefs[*].group of gateway.networking.k8s.io"
+// +kubebuilder:validation:XValidation:rule="has(self.targetRefs) ? self.targetRefs.all(ref, ref.kind in ['Gateway', 'HTTPRoute', 'GRPCRoute', 'UDPRoute', 'TCPRoute', 'TLSRoute']) : true ", message="this policy can only have a targetRefs[*].kind of Gateway/HTTPRoute/GRPCRoute/TCPRoute/UDPRoute/TLSRoute"
+type EnvoyExtensionPolicySpec struct {
+ PolicyTargetReferences `json:",inline"`
+
+ // Wasm is a list of Wasm extensions to be loaded by the Gateway.
+ // Order matters, as the extensions will be loaded in the order they are
+ // defined in this list.
+ //
+ // +kubebuilder:validation:MaxItems=16
+ // +optional
+ Wasm []Wasm `json:"wasm,omitempty"`
+
+ // ExtProc is an ordered list of external processing filters
+ // that should be added to the envoy filter chain
+ //
+ // +kubebuilder:validation:MaxItems=16
+ // +optional
+ ExtProc []ExtProc `json:"extProc,omitempty"`
+
+ // Lua is an ordered list of Lua filters
+ // that should be added to the envoy filter chain
+ //
+ // +kubebuilder:validation:MaxItems=16
+ // +optional
+ Lua []Lua `json:"lua,omitempty"`
+}
+
+//+kubebuilder:object:root=true
+
+// EnvoyExtensionPolicyList contains a list of EnvoyExtensionPolicy resources.
+type EnvoyExtensionPolicyList struct {
+ metav1.TypeMeta `json:",inline"`
+ metav1.ListMeta `json:"metadata,omitempty"`
+ Items []EnvoyExtensionPolicy `json:"items"`
+}
+
+func init() {
+ SchemeBuilder.Register(&EnvoyExtensionPolicy{}, &EnvoyExtensionPolicyList{})
+}
diff --git a/vendor/github.com/envoyproxy/gateway/api/v1alpha1/envoygateway_helpers.go b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/envoygateway_helpers.go
new file mode 100644
index 00000000..9722656b
--- /dev/null
+++ b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/envoygateway_helpers.go
@@ -0,0 +1,411 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package v1alpha1
+
+import (
+ "net"
+ "strconv"
+
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ "k8s.io/utils/ptr"
+ gwapiv1 "sigs.k8s.io/gateway-api/apis/v1"
+)
+
+// DefaultEnvoyGateway returns a new EnvoyGateway with default configuration parameters.
+func DefaultEnvoyGateway() *EnvoyGateway {
+ return &EnvoyGateway{
+ metav1.TypeMeta{
+ Kind: KindEnvoyGateway,
+ APIVersion: GroupVersion.String(),
+ },
+ EnvoyGatewaySpec{
+ Gateway: DefaultGateway(),
+ Provider: DefaultEnvoyGatewayProvider(),
+ Logging: DefaultEnvoyGatewayLogging(),
+ Admin: DefaultEnvoyGatewayAdmin(),
+ Telemetry: DefaultEnvoyGatewayTelemetry(),
+ XDSServer: DefaultXDSServer(),
+ },
+ }
+}
+
+// SetEnvoyGatewayDefaults sets default EnvoyGateway configuration parameters.
+func (e *EnvoyGateway) SetEnvoyGatewayDefaults() {
+ if e.Kind == "" {
+ e.Kind = KindEnvoyGateway
+ }
+ if e.APIVersion == "" {
+ e.APIVersion = GroupVersion.String()
+ }
+ if e.Provider == nil {
+ e.Provider = DefaultEnvoyGatewayProvider()
+ }
+ if e.Provider.Kubernetes == nil {
+ e.Provider.Kubernetes = &EnvoyGatewayKubernetesProvider{
+ LeaderElection: DefaultLeaderElection(),
+ }
+ }
+ if e.Provider.Kubernetes.LeaderElection == nil {
+ e.Provider.Kubernetes.LeaderElection = DefaultLeaderElection()
+ }
+
+ if e.Provider.Kubernetes.Client == nil {
+ e.Provider.Kubernetes.Client = DefaultKubernetesClient()
+ }
+
+ if e.Gateway == nil {
+ e.Gateway = DefaultGateway()
+ }
+ if e.Logging == nil {
+ e.Logging = DefaultEnvoyGatewayLogging()
+ }
+ if e.Admin == nil {
+ e.Admin = DefaultEnvoyGatewayAdmin()
+ }
+ if e.Telemetry == nil {
+ e.Telemetry = DefaultEnvoyGatewayTelemetry()
+ }
+ if e.XDSServer == nil {
+ e.XDSServer = DefaultXDSServer()
+ }
+}
+
+// GetEnvoyGatewayAdmin returns the EnvoyGatewayAdmin of EnvoyGateway or a default EnvoyGatewayAdmin if unspecified.
+func (e *EnvoyGateway) GetEnvoyGatewayAdmin() *EnvoyGatewayAdmin {
+ if e.Admin != nil {
+ if e.Admin.Address == nil {
+ e.Admin.Address = DefaultEnvoyGatewayAdminAddress()
+ }
+ return e.Admin
+ }
+ e.Admin = DefaultEnvoyGatewayAdmin()
+
+ return e.Admin
+}
+
+// GetEnvoyGatewayAdminAddress returns the EnvoyGateway Admin Address.
+func (e *EnvoyGateway) GetEnvoyGatewayAdminAddress() string {
+ address := e.GetEnvoyGatewayAdmin().Address
+ if address != nil {
+ return net.JoinHostPort(address.Host, strconv.Itoa(address.Port))
+ }
+
+ return ""
+}
+
+// NamespaceMode returns if uses namespace mode.
+func (e *EnvoyGateway) NamespaceMode() bool {
+ return e.Provider != nil &&
+ e.Provider.Kubernetes != nil &&
+ e.Provider.Kubernetes.Watch != nil &&
+ e.Provider.Kubernetes.Watch.Type == KubernetesWatchModeTypeNamespaces &&
+ len(e.Provider.Kubernetes.Watch.Namespaces) > 0
+}
+
+// GatewayNamespaceMode returns true if controller uses gateway namespace mode for infra deployments.
+func (e *EnvoyGateway) GatewayNamespaceMode() bool {
+ return e.Provider != nil &&
+ e.Provider.Kubernetes != nil &&
+ e.Provider.Kubernetes.Deploy != nil &&
+ *e.Provider.Kubernetes.Deploy.Type == KubernetesDeployModeTypeGatewayNamespace
+}
+
+// TopologyInjectorDisabled checks whether the provided EnvoyGateway disables TopologyInjector
+func (e *EnvoyGateway) TopologyInjectorDisabled() bool {
+ if e.Provider != nil &&
+ e.Provider.Kubernetes != nil &&
+ e.Provider.Kubernetes.TopologyInjector != nil {
+ return ptr.Deref(e.Provider.Kubernetes.TopologyInjector.Disable, false)
+ }
+ return false
+}
+
+// defaultRuntimeFlags are the default runtime flags for Envoy Gateway.
+var defaultRuntimeFlags = map[RuntimeFlag]bool{
+ XDSNameSchemeV2: false,
+}
+
+// IsEnabled checks if a runtime flag is enabled in the EnvoyGateway configuration.
+func (f *RuntimeFlags) IsEnabled(flag RuntimeFlag) bool {
+ if f != nil {
+ for _, disable := range f.Disabled {
+ if disable == flag {
+ return false
+ }
+ }
+ for _, enable := range f.Enabled {
+ if enable == flag {
+ return true
+ }
+ }
+ }
+
+ if defaultValue, found := defaultRuntimeFlags[flag]; found {
+ return defaultValue
+ }
+ return false
+}
+
+// DefaultLeaderElection returns a new LeaderElection with default configuration parameters.
+func DefaultLeaderElection() *LeaderElection {
+ return &LeaderElection{
+ RenewDeadline: ptr.To(gwapiv1.Duration("10s")),
+ RetryPeriod: ptr.To(gwapiv1.Duration("2s")),
+ LeaseDuration: ptr.To(gwapiv1.Duration("15s")),
+ Disable: ptr.To(false),
+ }
+}
+
+// DefaultKubernetesClient returns a new DefaultKubernetesClient with default parameters.
+func DefaultKubernetesClient() *KubernetesClient {
+ return &KubernetesClient{
+ RateLimit: &KubernetesClientRateLimit{
+ QPS: ptr.To(DefaultKubernetesClientQPS),
+ Burst: ptr.To(DefaultKubernetesClientBurst),
+ },
+ }
+}
+
+// DefaultGateway returns a new Gateway with default configuration parameters.
+func DefaultGateway() *Gateway {
+ return &Gateway{
+ ControllerName: GatewayControllerName,
+ }
+}
+
+// DefaultXDSServer returns a new XDSServer with default configuration parameters.
+func DefaultXDSServer() *XDSServer {
+ return &XDSServer{}
+}
+
+// DefaultEnvoyGatewayLogging returns a new EnvoyGatewayLogging with default configuration parameters.
+func DefaultEnvoyGatewayLogging() *EnvoyGatewayLogging {
+ return &EnvoyGatewayLogging{
+ Level: map[EnvoyGatewayLogComponent]LogLevel{
+ LogComponentGatewayDefault: LogLevelInfo,
+ },
+ }
+}
+
+// GetEnvoyGatewayTelemetry returns the EnvoyGatewayTelemetry of EnvoyGateway or a default EnvoyGatewayTelemetry if unspecified.
+func (e *EnvoyGateway) GetEnvoyGatewayTelemetry() *EnvoyGatewayTelemetry {
+ if e.Telemetry != nil {
+ if e.Telemetry.Metrics == nil {
+ e.Telemetry.Metrics = DefaultEnvoyGatewayMetrics()
+ }
+ if e.Telemetry.Metrics.Prometheus == nil {
+ e.Telemetry.Metrics.Prometheus = DefaultEnvoyGatewayPrometheus()
+ }
+ return e.Telemetry
+ }
+ e.Telemetry = DefaultEnvoyGatewayTelemetry()
+
+ return e.Telemetry
+}
+
+// DisablePrometheus returns if disable prometheus.
+func (e *EnvoyGateway) DisablePrometheus() bool {
+ return e.GetEnvoyGatewayTelemetry().Metrics.Prometheus.Disable
+}
+
+// DefaultEnvoyGatewayTelemetry returns a new EnvoyGatewayTelemetry with default configuration parameters.
+func DefaultEnvoyGatewayTelemetry() *EnvoyGatewayTelemetry {
+ return &EnvoyGatewayTelemetry{
+ Metrics: DefaultEnvoyGatewayMetrics(),
+ }
+}
+
+// DefaultEnvoyGatewayMetrics returns a new EnvoyGatewayMetrics with default configuration parameters.
+func DefaultEnvoyGatewayMetrics() *EnvoyGatewayMetrics {
+ return &EnvoyGatewayMetrics{
+ Prometheus: DefaultEnvoyGatewayPrometheus(),
+ }
+}
+
+// DefaultEnvoyGatewayPrometheus returns a new EnvoyGatewayMetrics with default configuration parameters.
+func DefaultEnvoyGatewayPrometheus() *EnvoyGatewayPrometheusProvider {
+ return &EnvoyGatewayPrometheusProvider{
+ // Enable prometheus pull by default.
+ Disable: false,
+ }
+}
+
+// DefaultEnvoyGatewayProvider returns a new EnvoyGatewayProvider with default configuration parameters.
+func DefaultEnvoyGatewayProvider() *EnvoyGatewayProvider {
+ return &EnvoyGatewayProvider{
+ Type: ProviderTypeKubernetes,
+ Kubernetes: &EnvoyGatewayKubernetesProvider{
+ LeaderElection: DefaultLeaderElection(),
+ Client: DefaultKubernetesClient(),
+ },
+ }
+}
+
+// GetEnvoyGatewayProvider returns the EnvoyGatewayProvider of EnvoyGateway or a default EnvoyGatewayProvider if unspecified.
+func (e *EnvoyGateway) GetEnvoyGatewayProvider() *EnvoyGatewayProvider {
+ if e.Provider != nil {
+ return e.Provider
+ }
+ e.Provider = DefaultEnvoyGatewayProvider()
+
+ return e.Provider
+}
+
+// DefaultEnvoyGatewayKubeProvider returns a new EnvoyGatewayKubernetesProvider with default settings.
+func DefaultEnvoyGatewayKubeProvider() *EnvoyGatewayKubernetesProvider {
+ return &EnvoyGatewayKubernetesProvider{
+ RateLimitDeployment: DefaultKubernetesDeployment(DefaultRateLimitImage),
+ }
+}
+
+// DefaultEnvoyGatewayAdmin returns a new EnvoyGatewayAdmin with default configuration parameters.
+func DefaultEnvoyGatewayAdmin() *EnvoyGatewayAdmin {
+ return &EnvoyGatewayAdmin{
+ Address: DefaultEnvoyGatewayAdminAddress(),
+ EnableDumpConfig: false,
+ EnablePprof: false,
+ }
+}
+
+// DefaultEnvoyGatewayAdminAddress returns a new EnvoyGatewayAdminAddress with default configuration parameters.
+func DefaultEnvoyGatewayAdminAddress() *EnvoyGatewayAdminAddress {
+ return &EnvoyGatewayAdminAddress{
+ Port: GatewayAdminPort,
+ Host: GatewayAdminHost,
+ }
+}
+
+// GetEnvoyGatewayKubeProvider returns the EnvoyGatewayKubernetesProvider of Provider or
+// a default EnvoyGatewayKubernetesProvider if unspecified. If EnvoyGatewayProvider is not of
+// type "Kubernetes", a nil EnvoyGatewayKubernetesProvider is returned.
+func (r *EnvoyGatewayProvider) GetEnvoyGatewayKubeProvider() *EnvoyGatewayKubernetesProvider {
+ if r.Type != ProviderTypeKubernetes {
+ return nil
+ }
+
+ if r.Kubernetes == nil {
+ r.Kubernetes = DefaultEnvoyGatewayKubeProvider()
+ if r.Kubernetes.LeaderElection == nil {
+ r.Kubernetes.LeaderElection = DefaultLeaderElection()
+ }
+ if r.Kubernetes.Client == nil {
+ r.Kubernetes.Client = DefaultKubernetesClient()
+ }
+ return r.Kubernetes
+ }
+
+ if r.Kubernetes.LeaderElection == nil {
+ r.Kubernetes.LeaderElection = DefaultLeaderElection()
+ }
+
+ if r.Kubernetes.Client == nil {
+ r.Kubernetes.Client = DefaultKubernetesClient()
+ }
+
+ if r.Kubernetes.RateLimitDeployment == nil {
+ r.Kubernetes.RateLimitDeployment = DefaultKubernetesDeployment(DefaultRateLimitImage)
+ }
+
+ r.Kubernetes.RateLimitDeployment.defaultKubernetesDeploymentSpec(DefaultRateLimitImage)
+
+ if r.Kubernetes.RateLimitHpa != nil {
+ r.Kubernetes.RateLimitHpa.setDefault()
+ }
+
+ if r.Kubernetes.ShutdownManager == nil {
+ r.Kubernetes.ShutdownManager = &ShutdownManager{Image: ptr.To(DefaultShutdownManagerImage)}
+ }
+
+ return r.Kubernetes
+}
+
+func (r *EnvoyGatewayProvider) IsRunningOnKubernetes() bool {
+ return r.Type == ProviderTypeKubernetes
+}
+
+func (r *EnvoyGatewayProvider) IsRunningOnHost() bool {
+ return r.Type == ProviderTypeCustom &&
+ r.Custom.Infrastructure != nil &&
+ r.Custom.Infrastructure.Type == InfrastructureProviderTypeHost
+}
+
+// DefaultEnvoyGatewayLoggingLevel returns a new EnvoyGatewayLogging with default configuration parameters.
+// When v1alpha1.LogComponentGatewayDefault specified, all other logging components are ignored.
+func (logging *EnvoyGatewayLogging) DefaultEnvoyGatewayLoggingLevel(level LogLevel) LogLevel {
+ if level != "" {
+ return level
+ }
+
+ if logging.Level[LogComponentGatewayDefault] != "" {
+ return logging.Level[LogComponentGatewayDefault]
+ }
+
+ return LogLevelInfo
+}
+
+// SetEnvoyGatewayLoggingDefaults sets default EnvoyGatewayLogging configuration parameters.
+func (logging *EnvoyGatewayLogging) SetEnvoyGatewayLoggingDefaults() {
+ if logging != nil && logging.Level != nil && logging.Level[LogComponentGatewayDefault] == "" {
+ logging.Level[LogComponentGatewayDefault] = LogLevelInfo
+ }
+}
+
+func (kcr *KubernetesClientRateLimit) GetQPSAndBurst() (float32, int) {
+ if kcr == nil {
+ return float32(DefaultKubernetesClientQPS), int(DefaultKubernetesClientBurst)
+ }
+ qps := ptr.Deref(kcr.QPS, DefaultKubernetesClientQPS)
+ burst := ptr.Deref(kcr.Burst, DefaultKubernetesClientBurst)
+ return float32(qps), int(burst)
+}
+
+// ShouldIncludeClusters returns true if clusters should be included in the translation hook.
+// When TranslationConfig is nil, defaults to true for backward compatibility.
+// When TranslationConfig is explicitly set, uses the configuration.
+func (tc *TranslationConfig) ShouldIncludeClusters() bool {
+ if tc == nil || tc.Cluster == nil {
+ // Default behavior: include clusters for backward compatibility
+ return true
+ }
+
+ return ptr.Deref(tc.Cluster.IncludeAll, true)
+}
+
+// ShouldIncludeSecrets returns true if secrets should be included in the translation hook.
+// When TranslationConfig is nil, defaults to true for backward compatibility.
+// When TranslationConfig is explicitly set, uses the configuration.
+func (tc *TranslationConfig) ShouldIncludeSecrets() bool {
+ if tc == nil || tc.Secret == nil {
+ // Default behavior: include secrets for backward compatibility
+ return true
+ }
+
+ return ptr.Deref(tc.Secret.IncludeAll, true)
+}
+
+// ShouldIncludeListeners returns true if listeners should be included in the translation hook.
+// When TranslationConfig is nil, defaults to false for backward compatibility.
+// When TranslationConfig is explicitly set, uses the configuration.
+func (tc *TranslationConfig) ShouldIncludeListeners() bool {
+ if tc == nil || tc.Listener == nil {
+ // Default behavior: exclude listeners for backward compatibility
+ return false
+ }
+
+ return ptr.Deref(tc.Listener.IncludeAll, false)
+}
+
+// ShouldIncludeRoutes returns true if routes should be included in the translation hook.
+// When TranslationConfig is nil, defaults to false for backward compatibility.
+// When TranslationConfig is explicitly set, uses the configuration.
+func (tc *TranslationConfig) ShouldIncludeRoutes() bool {
+ if tc == nil || tc.Route == nil {
+ // Default behavior: exclude routes for backward compatibility
+ return false
+ }
+
+ return ptr.Deref(tc.Route.IncludeAll, false)
+}
diff --git a/vendor/github.com/envoyproxy/gateway/api/v1alpha1/envoygateway_metrics_types.go b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/envoygateway_metrics_types.go
new file mode 100644
index 00000000..62aeec39
--- /dev/null
+++ b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/envoygateway_metrics_types.go
@@ -0,0 +1,62 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package v1alpha1
+
+import gwapiv1 "sigs.k8s.io/gateway-api/apis/v1"
+
+// EnvoyGatewayMetrics defines control plane push/pull metrics configurations.
+type EnvoyGatewayMetrics struct {
+ // Sinks defines the metric sinks where metrics are sent to.
+ Sinks []EnvoyGatewayMetricSink `json:"sinks,omitempty"`
+ // Prometheus defines the configuration for prometheus endpoint.
+ Prometheus *EnvoyGatewayPrometheusProvider `json:"prometheus,omitempty"`
+}
+
+// EnvoyGatewayMetricSink defines control plane
+// metric sinks where metrics are sent to.
+type EnvoyGatewayMetricSink struct {
+ // Type defines the metric sink type.
+ // EG control plane currently supports OpenTelemetry.
+ // +kubebuilder:validation:Enum=OpenTelemetry
+ // +kubebuilder:default=OpenTelemetry
+ Type MetricSinkType `json:"type"`
+ // OpenTelemetry defines the configuration for OpenTelemetry sink.
+ // It's required if the sink type is OpenTelemetry.
+ OpenTelemetry *EnvoyGatewayOpenTelemetrySink `json:"openTelemetry,omitempty"`
+}
+
+type EnvoyGatewayOpenTelemetrySink struct {
+ // Host define the sink service hostname.
+ Host string `json:"host"`
+ // Protocol define the sink service protocol.
+ // +kubebuilder:validation:Enum=grpc;http
+ Protocol string `json:"protocol"`
+ // Port defines the port the sink service is exposed on.
+ //
+ // +optional
+ // +kubebuilder:validation:Minimum=0
+ // +kubebuilder:default=4317
+ Port int32 `json:"port,omitempty"`
+ // ExportInterval configures the intervening time between exports for a
+ // Sink. This option overrides any value set for the
+ // OTEL_METRIC_EXPORT_INTERVAL environment variable.
+ // If ExportInterval is less than or equal to zero, 60 seconds
+ // is used as the default.
+ ExportInterval *gwapiv1.Duration `json:"exportInterval,omitempty"`
+ // ExportTimeout configures the time a Sink waits for an export to
+ // complete before canceling it. This option overrides any value set for the
+ // OTEL_METRIC_EXPORT_TIMEOUT environment variable.
+ // If ExportTimeout is less than or equal to zero, 30 seconds
+ // is used as the default.
+ ExportTimeout *gwapiv1.Duration `json:"exportTimeout,omitempty"`
+}
+
+// EnvoyGatewayPrometheusProvider will expose prometheus endpoint in pull mode.
+type EnvoyGatewayPrometheusProvider struct {
+ // Disable defines if disables the prometheus metrics in pull mode.
+ //
+ Disable bool `json:"disable,omitempty"`
+}
diff --git a/vendor/github.com/envoyproxy/gateway/api/v1alpha1/envoygateway_types.go b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/envoygateway_types.go
new file mode 100644
index 00000000..48a87bc5
--- /dev/null
+++ b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/envoygateway_types.go
@@ -0,0 +1,859 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package v1alpha1
+
+import (
+ "k8s.io/apimachinery/pkg/api/resource"
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ gwapiv1 "sigs.k8s.io/gateway-api/apis/v1"
+)
+
+const (
+ // KindEnvoyGateway is the name of the EnvoyGateway kind.
+ KindEnvoyGateway = "EnvoyGateway"
+ // GatewayControllerName is the name of the GatewayClass controller.
+ GatewayControllerName = "gateway.envoyproxy.io/gatewayclass-controller"
+ // GatewayAdminPort is the port which envoy gateway admin server is listening on.
+ GatewayAdminPort = 19000
+ // GatewayAdminHost is the host of envoy gateway admin server.
+ GatewayAdminHost = "127.0.0.1"
+ // GatewayMetricsPort is the port which envoy gateway metrics server is listening on.
+ GatewayMetricsPort = 19001
+ // GatewayMetricsHost is the host of envoy gateway metrics server.
+ GatewayMetricsHost = "0.0.0.0"
+ // DefaultKubernetesClientQPS defines the default QPS limit for the Kubernetes client.
+ DefaultKubernetesClientQPS int32 = 50
+ // DefaultKubernetesClientBurst defines the default Burst limit for the Kubernetes client.
+ DefaultKubernetesClientBurst int32 = 100
+)
+
+// +kubebuilder:object:root=true
+
+// EnvoyGateway is the schema for the envoygateways API.
+type EnvoyGateway struct {
+ metav1.TypeMeta `json:",inline"`
+
+ // EnvoyGatewaySpec defines the desired state of EnvoyGateway.
+ EnvoyGatewaySpec `json:",inline"`
+}
+
+// EnvoyGatewaySpec defines the desired state of Envoy Gateway.
+type EnvoyGatewaySpec struct {
+ // Gateway defines desired Gateway API specific configuration. If unset,
+ // default configuration parameters will apply.
+ //
+ // +optional
+ Gateway *Gateway `json:"gateway,omitempty"`
+
+ // Provider defines the desired provider and provider-specific configuration.
+ // If unspecified, the Kubernetes provider is used with default configuration
+ // parameters.
+ //
+ // +optional
+ Provider *EnvoyGatewayProvider `json:"provider,omitempty"`
+
+ // Logging defines logging parameters for Envoy Gateway.
+ //
+ // +optional
+ // +kubebuilder:default={default: info}
+ Logging *EnvoyGatewayLogging `json:"logging,omitempty"`
+
+ // Admin defines the desired admin related abilities.
+ // If unspecified, the Admin is used with default configuration
+ // parameters.
+ //
+ // +optional
+ Admin *EnvoyGatewayAdmin `json:"admin,omitempty"`
+
+ // Telemetry defines the desired control plane telemetry related abilities.
+ // If unspecified, the telemetry is used with default configuration.
+ //
+ // +optional
+ Telemetry *EnvoyGatewayTelemetry `json:"telemetry,omitempty"`
+
+ // XDSServer defines the configuration for the Envoy Gateway xDS gRPC server.
+ // If unspecified, default connection keepalive settings will be used.
+ //
+ // +optional
+ XDSServer *XDSServer `json:"xdsServer,omitempty"`
+
+ // RateLimit defines the configuration associated with the Rate Limit service
+ // deployed by Envoy Gateway required to implement the Global Rate limiting
+ // functionality. The specific rate limit service used here is the reference
+ // implementation in Envoy. For more details visit https://github.com/envoyproxy/ratelimit.
+ // This configuration is unneeded for "Local" rate limiting.
+ //
+ // +optional
+ RateLimit *RateLimit `json:"rateLimit,omitempty"`
+
+ // ExtensionManager defines an extension manager to register for the Envoy Gateway Control Plane.
+ //
+ // +optional
+ ExtensionManager *ExtensionManager `json:"extensionManager,omitempty"`
+
+ // ExtensionAPIs defines the settings related to specific Gateway API Extensions
+ // implemented by Envoy Gateway
+ //
+ // +optional
+ ExtensionAPIs *ExtensionAPISettings `json:"extensionApis,omitempty"`
+
+ // RuntimeFlags defines the runtime flags for Envoy Gateway.
+ // Unlike ExtensionAPIs, these flags are temporary and will be removed in future releases once the related features are stable.
+ RuntimeFlags *RuntimeFlags `json:"runtimeFlags,omitempty"`
+}
+
+// RuntimeFlag defines a runtime flag used to guard breaking changes or risky experimental features in new Envoy Gateway releases.
+// A runtime flag may be enabled or disabled by default and can be toggled through the EnvoyGateway resource.
+// +enum
+// +kubebuilder:validation:Enum=XDSNameSchemeV2
+type RuntimeFlag string
+
+const (
+ // XDSNameSchemeV2 indicates that the xds name scheme v2 is used.
+ // * The listener name will be generated using the protocol and port of the listener.
+ XDSNameSchemeV2 RuntimeFlag = "XDSNameSchemeV2"
+)
+
+// RuntimeFlags provide a mechanism to guard breaking changes or risky experimental features in new Envoy Gateway releases.
+// Each flag may be enabled or disabled by default and can be toggled through the EnvoyGateway resource.
+// The names of these flags will be included in the release notes alongside an explanation of the change.
+// Please note that these flags are temporary and will be removed in future releases once the related features are stable.
+type RuntimeFlags struct {
+ Enabled []RuntimeFlag `json:"enabled,omitempty"`
+ Disabled []RuntimeFlag `json:"disabled,omitempty"`
+}
+
+type KubernetesClient struct {
+ // RateLimit defines the rate limit settings for the Kubernetes client.
+ RateLimit *KubernetesClientRateLimit `json:"rateLimit,omitempty"`
+}
+
+// KubernetesClientRateLimit defines the rate limit settings for the Kubernetes client.
+type KubernetesClientRateLimit struct {
+ // QPS defines the queries per second limit for the Kubernetes client.
+ // +optional
+ // +kubebuilder:validation:Minimum=1
+ // +kubebuilder:default=50
+ QPS *int32 `json:"qps,omitempty"`
+
+ // Burst defines the maximum burst of requests allowed when tokens have accumulated.
+ // +optional
+ // +kubebuilder:validation:Minimum=1
+ // +kubebuilder:default=100
+ Burst *int32 `json:"burst,omitempty"`
+}
+
+// XDSServer defines configuration values for the xDS gRPC server.
+type XDSServer struct {
+ // MaxConnectionAge is the maximum age of an active connection before Envoy Gateway will initiate a graceful close.
+ // If unspecified, Envoy Gateway randomly selects a value between 10h and 12h to stagger reconnects across replicas.
+ //
+ // +optional
+ MaxConnectionAge *gwapiv1.Duration `json:"maxConnectionAge,omitempty"`
+
+ // MaxConnectionAgeGrace is the grace period granted after reaching MaxConnectionAge before the connection is forcibly closed.
+ // The default grace period is 2m.
+ //
+ // +optional
+ MaxConnectionAgeGrace *gwapiv1.Duration `json:"maxConnectionAgeGrace,omitempty"`
+}
+
+// LeaderElection defines the desired leader election settings.
+type LeaderElection struct {
+ // LeaseDuration defines the time non-leader contenders will wait before attempting to claim leadership.
+ // It's based on the timestamp of the last acknowledged signal.
+ // The default setting is 15 seconds.
+ //
+ // +optional
+ LeaseDuration *gwapiv1.Duration `json:"leaseDuration,omitempty"`
+ // RenewDeadline represents the time frame within which the current leader will attempt to renew its leadership
+ // status before relinquishing its position.
+ // The default setting is 10 seconds.
+ //
+ // +optional
+ RenewDeadline *gwapiv1.Duration `json:"renewDeadline,omitempty"`
+ // RetryPeriod denotes the interval at which LeaderElector clients should perform action retries.
+ // The default setting is 2 seconds.
+ //
+ // +optional
+ RetryPeriod *gwapiv1.Duration `json:"retryPeriod,omitempty"`
+ // Disable provides the option to turn off leader election, which is enabled by default.
+ Disable *bool `json:"disable,omitempty"`
+}
+
+// EnvoyGatewayTelemetry defines telemetry configurations for envoy gateway control plane.
+// Control plane will focus on metrics observability telemetry and tracing telemetry later.
+type EnvoyGatewayTelemetry struct {
+ // Metrics defines metrics configuration for envoy gateway.
+ Metrics *EnvoyGatewayMetrics `json:"metrics,omitempty"`
+}
+
+// EnvoyGatewayLogging defines logging for Envoy Gateway.
+type EnvoyGatewayLogging struct {
+ // Level is the logging level. If unspecified, defaults to "info".
+ // EnvoyGatewayLogComponent options: default/provider/gateway-api/xds-translator/xds-server/infrastructure/global-ratelimit.
+ // LogLevel options: debug/info/error/warn.
+ //
+ // +kubebuilder:default={default: info}
+ Level map[EnvoyGatewayLogComponent]LogLevel `json:"level,omitempty"`
+}
+
+// EnvoyGatewayLogComponent defines a component that supports a configured logging level.
+// +kubebuilder:validation:Enum=default;provider;gateway-api;xds-translator;xds-server;xds;infrastructure;global-ratelimit
+type EnvoyGatewayLogComponent string
+
+const (
+ // LogComponentGatewayDefault defines the "default"-wide logging component. When specified,
+ // all other logging components are ignored.
+ LogComponentGatewayDefault EnvoyGatewayLogComponent = "default"
+
+ // LogComponentProviderRunner defines the "provider" runner component.
+ LogComponentProviderRunner EnvoyGatewayLogComponent = "provider"
+
+ // LogComponentGatewayAPIRunner defines the "gateway-api" runner component.
+ LogComponentGatewayAPIRunner EnvoyGatewayLogComponent = "gateway-api"
+
+ // LogComponentXdsTranslatorRunner defines the "xds-translator" runner component.
+ LogComponentXdsTranslatorRunner EnvoyGatewayLogComponent = "xds-translator"
+
+ // LogComponentXdsServerRunner defines the "xds-server" runner component.
+ LogComponentXdsServerRunner EnvoyGatewayLogComponent = "xds-server"
+
+ // LogComponentXdsRunner defines the "xds" runner component.
+ LogComponentXdsRunner EnvoyGatewayLogComponent = "xds"
+
+ // LogComponentInfrastructureRunner defines the "infrastructure" runner component.
+ LogComponentInfrastructureRunner EnvoyGatewayLogComponent = "infrastructure"
+
+ // LogComponentGlobalRateLimitRunner defines the "global-ratelimit" runner component.
+ LogComponentGlobalRateLimitRunner EnvoyGatewayLogComponent = "global-ratelimit"
+)
+
+// Gateway defines the desired Gateway API configuration of Envoy Gateway.
+type Gateway struct {
+ // ControllerName defines the name of the Gateway API controller. If unspecified,
+ // defaults to "gateway.envoyproxy.io/gatewayclass-controller". See the following
+ // for additional details:
+ // https://gateway-api.sigs.k8s.io/reference/1.4/spec/#gatewayclass
+ //
+ // +optional
+ ControllerName string `json:"controllerName,omitempty"`
+}
+
+// ExtensionAPISettings defines the settings specific to Gateway API Extensions.
+type ExtensionAPISettings struct {
+ // EnableEnvoyPatchPolicy enables Envoy Gateway to
+ // reconcile and implement the EnvoyPatchPolicy resources.
+ EnableEnvoyPatchPolicy bool `json:"enableEnvoyPatchPolicy"`
+ // EnableBackend enables Envoy Gateway to
+ // reconcile and implement the Backend resources.
+ EnableBackend bool `json:"enableBackend"`
+ // DisableLua determines if Lua EnvoyExtensionPolicies should be disabled.
+ // If set to true, the Lua EnvoyExtensionPolicy feature will be disabled.
+ DisableLua bool `json:"disableLua"`
+}
+
+// EnvoyGatewayProvider defines the desired configuration of a provider.
+// +union
+type EnvoyGatewayProvider struct {
+ // Type is the type of provider to use. Supported types are "Kubernetes", "Custom".
+ //
+ // +unionDiscriminator
+ Type ProviderType `json:"type"`
+
+ // Kubernetes defines the configuration of the Kubernetes provider. Kubernetes
+ // provides runtime configuration via the Kubernetes API.
+ //
+ // +optional
+ Kubernetes *EnvoyGatewayKubernetesProvider `json:"kubernetes,omitempty"`
+
+ // Custom defines the configuration for the Custom provider. This provider
+ // allows you to define a specific resource provider and an infrastructure
+ // provider.
+ //
+ // +optional
+ Custom *EnvoyGatewayCustomProvider `json:"custom,omitempty"`
+}
+
+// EnvoyGatewayKubernetesProvider defines configuration for the Kubernetes provider.
+type EnvoyGatewayKubernetesProvider struct {
+ // RateLimitDeployment defines the desired state of the Envoy ratelimit deployment resource.
+ // If unspecified, default settings for the managed Envoy ratelimit deployment resource
+ // are applied.
+ //
+ // +optional
+ RateLimitDeployment *KubernetesDeploymentSpec `json:"rateLimitDeployment,omitempty"`
+
+ // RateLimitHpa defines the Horizontal Pod Autoscaler settings for Envoy ratelimit Deployment.
+ // If the HPA is set, Replicas field from RateLimitDeployment will be ignored.
+ //
+ // +optional
+ RateLimitHpa *KubernetesHorizontalPodAutoscalerSpec `json:"rateLimitHpa,omitempty"`
+
+ // RateLimitPDB allows to control the pod disruption budget of rate limit service.
+ //
+ // +optional
+ RateLimitPDB *KubernetesPodDisruptionBudgetSpec `json:"rateLimitPDB,omitempty"`
+
+ // Watch holds configuration of which input resources should be watched and reconciled.
+ // +optional
+ Watch *KubernetesWatchMode `json:"watch,omitempty"`
+ // Deploy holds configuration of how output managed resources such as the Envoy Proxy data plane
+ // should be deployed
+ // +optional
+ // +notImplementedHide
+ Deploy *KubernetesDeployMode `json:"deploy,omitempty"`
+ // LeaderElection specifies the configuration for leader election.
+ // If it's not set up, leader election will be active by default, using Kubernetes' standard settings.
+ // +optional
+ LeaderElection *LeaderElection `json:"leaderElection,omitempty"`
+
+ // ShutdownManager defines the configuration for the shutdown manager.
+ // +optional
+ ShutdownManager *ShutdownManager `json:"shutdownManager,omitempty"`
+ // Client holds the configuration for the Kubernetes client.
+ Client *KubernetesClient `json:"client,omitempty"`
+ // TopologyInjector defines the configuration for topology injector MutatatingWebhookConfiguration
+ // +optional
+ TopologyInjector *EnvoyGatewayTopologyInjector `json:"proxyTopologyInjector,omitempty"`
+
+ // CacheSyncPeriod determines the minimum frequency at which watched resources are synced.
+ // Note that a sync in the provider layer will not lead to a full reconciliation (including translation),
+ // unless there are actual changes in the provider resources.
+ // This option can be used to protect against missed events or issues in Envoy Gateway where resources
+ // are not requeued when they should be, at the cost of increased resource consumption.
+ // Learn more about the implications of this option: https://pkg.go.dev/sigs.k8s.io/controller-runtime/pkg/cache#Options
+ // Default: 10 hours
+ // +optional
+ CacheSyncPeriod *gwapiv1.Duration `json:"cacheSyncPeriod,omitempty"`
+}
+
+const (
+ // KubernetesWatchModeTypeNamespaces indicates that the namespace watch mode is used.
+ KubernetesWatchModeTypeNamespaces = "Namespaces"
+
+ // KubernetesWatchModeTypeNamespaceSelector indicates that namespaceSelector watch
+ // mode is used.
+ KubernetesWatchModeTypeNamespaceSelector = "NamespaceSelector"
+)
+
+// KubernetesWatchModeType defines the type of KubernetesWatchMode
+type KubernetesWatchModeType string
+
+// KubernetesWatchMode holds the configuration for which input resources to watch and reconcile.
+type KubernetesWatchMode struct {
+ // Type indicates what watch mode to use. KubernetesWatchModeTypeNamespaces and
+ // KubernetesWatchModeTypeNamespaceSelector are currently supported
+ // By default, when this field is unset or empty, Envoy Gateway will watch for input namespaced resources
+ // from all namespaces.
+ Type KubernetesWatchModeType `json:"type,omitempty"`
+
+ // Namespaces holds the list of namespaces that Envoy Gateway will watch for namespaced scoped
+ // resources such as Gateway, HTTPRoute and Service.
+ // Note that Envoy Gateway will continue to reconcile relevant cluster scoped resources such as
+ // GatewayClass that it is linked to. Precisely one of Namespaces and NamespaceSelector must be set.
+ Namespaces []string `json:"namespaces,omitempty"`
+
+ // NamespaceSelector holds the label selector used to dynamically select namespaces.
+ // Envoy Gateway will watch for namespaces matching the specified label selector.
+ // Precisely one of Namespaces and NamespaceSelector must be set.
+ NamespaceSelector *metav1.LabelSelector `json:"namespaceSelector,omitempty"`
+}
+
+const (
+ // KubernetesDeployModeTypeControllerNamespace indicates that the controller namespace is used for the infra proxy deployments.
+ KubernetesDeployModeTypeControllerNamespace KubernetesDeployModeType = "ControllerNamespace"
+
+ // KubernetesDeployModeTypeGatewayNamespace indicates that the gateway namespace is used for the infra proxy deployments.
+ KubernetesDeployModeTypeGatewayNamespace KubernetesDeployModeType = "GatewayNamespace"
+)
+
+// KubernetesDeployModeType defines the type of KubernetesDeployMode
+type KubernetesDeployModeType string
+
+// KubernetesDeployMode holds configuration for how to deploy managed resources such as the Envoy Proxy
+// data plane fleet.
+type KubernetesDeployMode struct {
+ // Type indicates what deployment mode to use. "ControllerNamespace" and
+ // "GatewayNamespace" are currently supported.
+ // By default, when this field is unset or empty, Envoy Gateway will deploy Envoy Proxy fleet in the Controller namespace.
+ // +optional
+ // +kubebuilder:default=ControllerNamespace
+ // +kubebuilder:validation:Enum=ControllerNamespace;GatewayNamespace
+ Type *KubernetesDeployModeType `json:"type,omitempty"`
+}
+
+// EnvoyGatewayCustomProvider defines configuration for the Custom provider.
+type EnvoyGatewayCustomProvider struct {
+ // Resource defines the desired resource provider.
+ // This provider is used to specify the provider to be used
+ // to retrieve the resource configurations such as Gateway API
+ // resources
+ Resource EnvoyGatewayResourceProvider `json:"resource"`
+ // Infrastructure defines the desired infrastructure provider.
+ // This provider is used to specify the provider to be used
+ // to provide an environment to deploy the out resources like
+ // the Envoy Proxy data plane.
+ //
+ // Infrastructure is optional, if provider is not specified,
+ // No infrastructure provider is available.
+ // +optional
+ Infrastructure *EnvoyGatewayInfrastructureProvider `json:"infrastructure,omitempty"`
+}
+
+// ResourceProviderType defines the types of custom resource providers supported by Envoy Gateway.
+//
+// +kubebuilder:validation:Enum=File
+type ResourceProviderType string
+
+const (
+ // ResourceProviderTypeFile defines the "File" provider.
+ ResourceProviderTypeFile ResourceProviderType = "File"
+)
+
+// EnvoyGatewayResourceProvider defines configuration for the Custom Resource provider.
+type EnvoyGatewayResourceProvider struct {
+ // Type is the type of resource provider to use. Supported types are "File".
+ //
+ // +unionDiscriminator
+ Type ResourceProviderType `json:"type"`
+ // File defines the configuration of the File provider. File provides runtime
+ // configuration defined by one or more files.
+ //
+ // +optional
+ File *EnvoyGatewayFileResourceProvider `json:"file,omitempty"`
+}
+
+// EnvoyGatewayFileResourceProvider defines configuration for the File Resource provider.
+type EnvoyGatewayFileResourceProvider struct {
+ // Paths are the paths to a directory or file containing the resource configuration.
+ // Recursive subdirectories are not currently supported.
+ Paths []string `json:"paths"`
+}
+
+// InfrastructureProviderType defines the types of custom infrastructure providers supported by Envoy Gateway.
+//
+// +kubebuilder:validation:Enum=Host
+type InfrastructureProviderType string
+
+const (
+ // InfrastructureProviderTypeHost defines the "Host" provider.
+ InfrastructureProviderTypeHost InfrastructureProviderType = "Host"
+)
+
+// EnvoyGatewayInfrastructureProvider defines configuration for the Custom Infrastructure provider.
+type EnvoyGatewayInfrastructureProvider struct {
+ // Type is the type of infrastructure providers to use. Supported types are "Host".
+ //
+ // +unionDiscriminator
+ Type InfrastructureProviderType `json:"type"`
+ // Host defines the configuration of the Host provider. Host provides runtime
+ // deployment of the data plane as a child process on the host environment.
+ //
+ // +optional
+ Host *EnvoyGatewayHostInfrastructureProvider `json:"host,omitempty"`
+}
+
+// EnvoyGatewayHostInfrastructureProvider defines configuration for the Host Infrastructure provider.
+type EnvoyGatewayHostInfrastructureProvider struct {
+ // ConfigHome is the directory for configuration files.
+ // Defaults to ~/.config/envoy-gateway
+ // +optional
+ ConfigHome *string `json:"configHome,omitempty"`
+
+ // DataHome is the directory for persistent data (Envoy binaries).
+ // Defaults to ~/.local/share/envoy-gateway
+ // +optional
+ DataHome *string `json:"dataHome,omitempty"`
+
+ // StateHome is the directory for persistent state (logs).
+ // Defaults to ~/.local/state/envoy-gateway
+ // +optional
+ StateHome *string `json:"stateHome,omitempty"`
+
+ // RuntimeDir is the directory for ephemeral runtime files.
+ // Defaults to /tmp/envoy-gateway-${UID}
+ // +optional
+ RuntimeDir *string `json:"runtimeDir,omitempty"`
+}
+
+// RateLimit defines the configuration associated with the Rate Limit Service
+// used for Global Rate Limiting.
+type RateLimit struct {
+ // Backend holds the configuration associated with the
+ // database backend used by the rate limit service to store
+ // state associated with global ratelimiting.
+ Backend RateLimitDatabaseBackend `json:"backend"`
+
+ // Timeout specifies the timeout period for the proxy to access the ratelimit server
+ // If not set, timeout is 20ms.
+ //
+ // +optional
+ Timeout *gwapiv1.Duration `json:"timeout,omitempty"`
+
+ // FailClosed is a switch used to control the flow of traffic
+ // when the response from the ratelimit server cannot be obtained.
+ // If FailClosed is false, let the traffic pass,
+ // otherwise, don't let the traffic pass and return 500.
+ // If not set, FailClosed is False.
+ FailClosed bool `json:"failClosed"`
+
+ // Telemetry defines telemetry configuration for RateLimit.
+ // +optional
+ Telemetry *RateLimitTelemetry `json:"telemetry,omitempty"`
+}
+
+type RateLimitTelemetry struct {
+ // Metrics defines metrics configuration for RateLimit.
+ Metrics *RateLimitMetrics `json:"metrics,omitempty"`
+
+ // Tracing defines traces configuration for RateLimit.
+ Tracing *RateLimitTracing `json:"tracing,omitempty"`
+}
+
+type RateLimitMetrics struct {
+ // Prometheus defines the configuration for prometheus endpoint.
+ Prometheus *RateLimitMetricsPrometheusProvider `json:"prometheus,omitempty"`
+}
+
+type RateLimitMetricsPrometheusProvider struct {
+ // Disable the Prometheus endpoint.
+ Disable bool `json:"disable,omitempty"`
+}
+
+type RateLimitTracing struct {
+ // SamplingRate controls the rate at which traffic will be
+ // selected for tracing if no prior sampling decision has been made.
+ // Defaults to 100, valid values [0-100]. 100 indicates 100% sampling.
+ // +optional
+ SamplingRate *uint32 `json:"samplingRate,omitempty"`
+
+ // Provider defines the rateLimit tracing provider.
+ // Only OpenTelemetry is supported currently.
+ Provider *RateLimitTracingProvider `json:"provider,omitempty"`
+}
+
+type RateLimitTracingProviderType string
+
+const (
+ RateLimitTracingProviderTypeOpenTelemetry TracingProviderType = "OpenTelemetry"
+)
+
+// RateLimitTracingProvider defines the tracing provider configuration of RateLimit
+type RateLimitTracingProvider struct {
+ // Type defines the tracing provider type.
+ // Since to RateLimit Exporter currently using OpenTelemetry, only OpenTelemetry is supported
+ Type *RateLimitTracingProviderType `json:"type,omitempty"`
+
+ // URL is the endpoint of the trace collector that supports the OTLP protocol
+ URL string `json:"url"`
+}
+
+// RateLimitDatabaseBackend defines the configuration associated with
+// the database backend used by the rate limit service.
+// +union
+type RateLimitDatabaseBackend struct {
+ // Type is the type of database backend to use. Supported types are:
+ // * Redis: Connects to a Redis database.
+ //
+ // +unionDiscriminator
+ Type RateLimitDatabaseBackendType `json:"type"`
+ // Redis defines the settings needed to connect to a Redis database.
+ //
+ // +optional
+ Redis *RateLimitRedisSettings `json:"redis,omitempty"`
+}
+
+// RateLimitDatabaseBackendType specifies the types of database backend
+// to be used by the rate limit service.
+// +kubebuilder:validation:Enum=Redis
+type RateLimitDatabaseBackendType string
+
+const (
+ // RedisBackendType uses a redis database for the rate limit service.
+ RedisBackendType RateLimitDatabaseBackendType = "Redis"
+)
+
+// RedisTLSSettings defines the TLS configuration for connecting to redis database.
+type RedisTLSSettings struct {
+ // CertificateRef defines the client certificate reference for TLS connections.
+ // Currently only a Kubernetes Secret of type TLS is supported.
+ // +optional
+ CertificateRef *gwapiv1.SecretObjectReference `json:"certificateRef,omitempty"`
+}
+
+// RateLimitRedisSettings defines the configuration for connecting to redis database.
+type RateLimitRedisSettings struct {
+ // URL of the Redis Database.
+ // This can reference a single Redis host or a comma delimited list for Sentinel and Cluster deployments of Redis.
+ URL string `json:"url"`
+
+ // TLS defines TLS configuration for connecting to redis database.
+ //
+ // +optional
+ TLS *RedisTLSSettings `json:"tls,omitempty"`
+}
+
+// ExtensionManager defines the configuration for registering an extension manager to
+// the Envoy Gateway control plane.
+type ExtensionManager struct {
+ // Resources defines the set of K8s resources the extension will handle as route
+ // filter resources
+ //
+ // +optional
+ Resources []GroupVersionKind `json:"resources,omitempty"`
+
+ // PolicyResources defines the set of K8S resources the extension server will handle
+ // as directly attached GatewayAPI policies
+ //
+ // +optional
+ PolicyResources []GroupVersionKind `json:"policyResources,omitempty"`
+
+ // BackendResources defines the set of K8s resources the extension will handle as
+ // custom backendRef resources. These resources can be referenced in HTTPRoute
+ // backendRefs to enable support for custom backend types (e.g., S3, Lambda, etc.)
+ // that are not natively supported by Envoy Gateway.
+ //
+ // +optional
+ BackendResources []GroupVersionKind `json:"backendResources,omitempty"`
+
+ // Hooks defines the set of hooks the extension supports
+ //
+ // +kubebuilder:validation:Required
+ Hooks *ExtensionHooks `json:"hooks,omitempty"`
+
+ // Service defines the configuration of the extension service that the Envoy
+ // Gateway Control Plane will call through extension hooks.
+ //
+ // +kubebuilder:validation:Required
+ Service *ExtensionService `json:"service,omitempty"`
+
+ // FailOpen defines if Envoy Gateway should ignore errors returned from the Extension Service hooks.
+ //
+ // When set to false, Envoy Gateway does not ignore extension Service hook errors. As a result,
+ // xDS updates are skipped for the relevant envoy proxy fleet and the previous state is preserved.
+ //
+ // When set to true, if the Extension Service hooks return an error, no changes will be applied to the
+ // source of the configuration which was sent to the extension server. The errors are ignored and the resulting
+ // xDS configuration is updated in the xDS snapshot.
+ //
+ // Default: false
+ //
+ // +optional
+ FailOpen bool `json:"failOpen,omitempty"`
+
+ // MaxMessageSize defines the maximum message size in bytes that can be
+ // sent to or received from the Extension Service.
+ // Default: 4M
+ //
+ // +kubebuilder:validation:XIntOrString
+ // +kubebuilder:validation:Pattern="^[1-9]+[0-9]*([EPTGMK]i|[EPTGMk])?$"
+ // +optional
+ MaxMessageSize *resource.Quantity `json:"maxMessageSize,omitempty"`
+}
+
+// ExtensionHooks defines extension hooks across all supported runners
+type ExtensionHooks struct {
+ // XDSTranslator defines all the supported extension hooks for the xds-translator runner
+ XDSTranslator *XDSTranslatorHooks `json:"xdsTranslator,omitempty"`
+}
+
+// XDSTranslatorHooks contains all the pre and post hooks for the xds-translator runner.
+type XDSTranslatorHooks struct {
+ Pre []XDSTranslatorHook `json:"pre,omitempty"`
+ Post []XDSTranslatorHook `json:"post,omitempty"`
+
+ // Translation defines the configuration for the translation hook.
+ Translation *TranslationConfig `json:"translation,omitempty"`
+}
+
+// TranslationConfig defines the configuration for the translation hook.
+type TranslationConfig struct {
+ // Listener defines the configuration for the listener translation hook.
+ //
+ // +optional
+ Listener *ListenerTranslationConfig `json:"listener,omitempty"`
+ // Route defines the configuration for the route translation hook.
+ //
+ // +optional
+ Route *RouteTranslationConfig `json:"route,omitempty"`
+ // Cluster defines the configuration for the cluster translation hook.
+ //
+ // +optional
+ Cluster *ClusterTranslationConfig `json:"cluster,omitempty"`
+ // Secret defines the configuration for the secret translation hook.
+ //
+ // +optional
+ Secret *SecretTranslationConfig `json:"secret,omitempty"`
+}
+
+type ListenerTranslationConfig struct {
+ // IncludeAll defines whether all listeners should be included in the translation hook.
+ // Default is false.
+ //
+ // +optional
+ IncludeAll *bool `json:"includeAll,omitempty"`
+}
+
+type RouteTranslationConfig struct {
+ // IncludeAll defines whether all routes should be included in the translation hook.
+ // Default is false.
+ //
+ // +optional
+ IncludeAll *bool `json:"includeAll,omitempty"`
+}
+
+type ClusterTranslationConfig struct {
+ // IncludeAll defines whether all clusters should be included in the translation hook.
+ // Default is true for backward compatibility.
+ //
+ // +optional
+ IncludeAll *bool `json:"includeAll,omitempty"`
+}
+
+type SecretTranslationConfig struct {
+ // IncludeAll defines whether all secrets should be included in the translation hook.
+ // Default is true for backward compatibility.
+ //
+ // +optional
+ IncludeAll *bool `json:"includeAll,omitempty"`
+}
+
+// ExtensionService defines the configuration for connecting to a registered extension service.
+type ExtensionService struct {
+ // BackendEndpoint points to where the extension server can be found.
+ BackendEndpoint `json:",inline"`
+
+ // Host define the extension service hostname.
+ // Deprecated: use the appropriate transport attribute instead (FQDN,IP,Unix)
+ //
+ // +optional
+ Host string `json:"host,omitempty"`
+
+ // Port defines the port the extension service is exposed on.
+ // Deprecated: use the appropriate transport attribute instead (FQDN,IP,Unix)
+ //
+ // +optional
+ // +kubebuilder:validation:Minimum=0
+ // +kubebuilder:default=80
+ Port int32 `json:"port,omitempty"`
+
+ // TLS defines TLS configuration for communication between Envoy Gateway and
+ // the extension service.
+ //
+ // +optional
+ TLS *ExtensionTLS `json:"tls,omitempty"`
+
+ // Retry defines the retry policy for to use when errors are encountered in communication with
+ // the extension service.
+ //
+ // +optional
+ Retry *ExtensionServiceRetry `json:"retry,omitempty"`
+}
+
+// ExtensionTLS defines the TLS configuration when connecting to an extension service.
+type ExtensionTLS struct {
+ // CertificateRef is a reference to a Kubernetes Secret with a CA certificate in a key named "tls.crt".
+ //
+ // The CA certificate is used by Envoy Gateway to verify the server certificate presented by the extension server.
+ //
+ // +kubebuilder:validation:Required
+ CertificateRef gwapiv1.SecretObjectReference `json:"certificateRef"`
+
+ // ClientCertificateRef is a reference to a Kubernetes Secret with a client certificate and key
+ // for client certificate authentication (mTLS). The secret must contain both "tls.crt" and "tls.key" keys.
+ //
+ // When specified, Envoy Gateway will present this client certificate to the extension server
+ // for mTLS authentication. If not specified, only server certificate validation is performed.
+ //
+ // +optional
+ // +notImplementedHide
+ ClientCertificateRef *gwapiv1.SecretObjectReference `json:"clientCertificateRef,omitempty"`
+}
+
+// GRPCStatus defines grpc status codes as defined in https://github.com/grpc/grpc/blob/master/doc/statuscodes.md.
+// +kubebuilder:validation:Enum=CANCELLED;UNKNOWN;INVALID_ARGUMENT;DEADLINE_EXCEEDED;NOT_FOUND;ALREADY_EXISTS;PERMISSION_DENIED;RESOURCE_EXHAUSTED;FAILED_PRECONDITION;ABORTED;OUT_OF_RANGE;UNIMPLEMENTED;INTERNAL;UNAVAILABLE;DATA_LOSS;UNAUTHENTICATED
+type RetryableGRPCStatusCode string
+
+// ExtensionServiceRetry defines the retry policy for to use when errors are encountered in communication with the extension service.
+type ExtensionServiceRetry struct {
+ // MaxAttempts defines the maximum number of retry attempts.
+ // Default: 4
+ //
+ // +optional
+ MaxAttempts *int `json:"maxAttempts,omitempty"`
+
+ // InitialBackoff defines the initial backoff in seconds for retries, details: https://github.com/grpc/proposal/blob/master/A6-client-retries.md#integration-with-service-config.
+ // Default: 0.1s
+ //
+ // +optional
+ InitialBackoff *gwapiv1.Duration `json:"initialBackoff,omitempty"`
+
+ // MaxBackoff defines the maximum backoff in seconds for retries.
+ // Default: 1s
+ //
+ // +optional
+ MaxBackoff *gwapiv1.Duration `json:"maxBackoff,omitempty"`
+
+ // BackoffMultiplier defines the multiplier to use for exponential backoff for retries.
+ // Default: 2.0
+ //
+ // +optional
+ BackoffMultiplier *gwapiv1.Fraction `json:"backoffMultiplier,omitempty"`
+
+ // RetryableStatusCodes defines the grpc status code for which retries will be attempted.
+ // Default: [ "UNAVAILABLE" ]
+ //
+ // +optional
+ RetryableStatusCodes []RetryableGRPCStatusCode `json:"RetryableStatusCodes,omitempty"`
+}
+
+// EnvoyGatewayAdmin defines the Envoy Gateway Admin configuration.
+type EnvoyGatewayAdmin struct {
+ // Address defines the address of Envoy Gateway Admin Server.
+ //
+ // +optional
+ Address *EnvoyGatewayAdminAddress `json:"address,omitempty"`
+ // EnableDumpConfig defines if enable dump config in Envoy Gateway logs.
+ //
+ // +optional
+ EnableDumpConfig bool `json:"enableDumpConfig,omitempty"`
+ // EnablePprof defines if enable pprof in Envoy Gateway Admin Server.
+ //
+ // +optional
+ EnablePprof bool `json:"enablePprof,omitempty"`
+}
+
+// EnvoyGatewayAdminAddress defines the Envoy Gateway Admin Address configuration.
+type EnvoyGatewayAdminAddress struct {
+ // Port defines the port the admin server is exposed on.
+ //
+ // +optional
+ // +kubebuilder:validation:Minimum=0
+ // +kubebuilder:default=19000
+ Port int `json:"port,omitempty"`
+ // Host defines the admin server hostname.
+ //
+ // +optional
+ // +kubebuilder:default="127.0.0.1"
+ Host string `json:"host,omitempty"`
+}
+
+// ShutdownManager defines the configuration for the shutdown manager.
+type ShutdownManager struct {
+ // Image specifies the ShutdownManager container image to be used, instead of the default image.
+ Image *string `json:"image,omitempty"`
+}
+
+// EnvoyGatewayTopologyInjector defines the configuration for topology injector MutatatingWebhookConfiguration
+type EnvoyGatewayTopologyInjector struct {
+ // +optional
+ Disable *bool `json:"disabled,omitempty"`
+}
+
+func init() {
+ SchemeBuilder.Register(&EnvoyGateway{})
+}
diff --git a/vendor/github.com/envoyproxy/gateway/api/v1alpha1/envoypatchpolicy_types.go b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/envoypatchpolicy_types.go
new file mode 100644
index 00000000..ebf4a08c
--- /dev/null
+++ b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/envoypatchpolicy_types.go
@@ -0,0 +1,180 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package v1alpha1
+
+import (
+ apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ gwapiv1 "sigs.k8s.io/gateway-api/apis/v1"
+)
+
+const (
+ // KindEnvoyPatchPolicy is the name of the EnvoyPatchPolicy kind.
+ KindEnvoyPatchPolicy = "EnvoyPatchPolicy"
+)
+
+// +kubebuilder:object:root=true
+// +kubebuilder:resource:categories=envoy-gateway,shortName=epp
+// +kubebuilder:subresource:status
+// +kubebuilder:printcolumn:name="Status",type=string,JSONPath=`.status.conditions[?(@.type=="Programmed")].reason`
+// +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp`
+
+// EnvoyPatchPolicy allows the user to modify the generated Envoy xDS
+// resources by Envoy Gateway using this patch API
+type EnvoyPatchPolicy struct {
+ metav1.TypeMeta `json:",inline"`
+ metav1.ObjectMeta `json:"metadata,omitempty"`
+
+ // Spec defines the desired state of EnvoyPatchPolicy.
+ Spec EnvoyPatchPolicySpec `json:"spec"`
+
+ // Status defines the current status of EnvoyPatchPolicy.
+ Status gwapiv1.PolicyStatus `json:"status,omitempty"`
+}
+
+// EnvoyPatchPolicySpec defines the desired state of EnvoyPatchPolicy.
+// +union
+type EnvoyPatchPolicySpec struct {
+ // Type decides the type of patch.
+ // Valid EnvoyPatchType values are "JSONPatch".
+ //
+ // +unionDiscriminator
+ Type EnvoyPatchType `json:"type"`
+ // JSONPatch defines the JSONPatch configuration.
+ //
+ // +optional
+ JSONPatches []EnvoyJSONPatchConfig `json:"jsonPatches,omitempty"`
+ // TargetRef is the name of the Gateway API resource this policy
+ // is being attached to.
+ // By default, attaching to Gateway is supported and
+ // when mergeGateways is enabled it should attach to GatewayClass.
+ // This Policy and the TargetRef MUST be in the same namespace
+ // for this Policy to have effect and be applied to the Gateway
+ // TargetRef
+ TargetRef gwapiv1.LocalPolicyTargetReference `json:"targetRef"`
+ // Priority of the EnvoyPatchPolicy.
+ // If multiple EnvoyPatchPolicies are applied to the same
+ // TargetRef, they will be applied in the ascending order of
+ // the priority i.e. int32.min has the highest priority and
+ // int32.max has the lowest priority.
+ // Defaults to 0.
+ Priority int32 `json:"priority,omitempty"`
+}
+
+// EnvoyPatchType specifies the types of Envoy patching mechanisms.
+// +kubebuilder:validation:Enum=JSONPatch
+type EnvoyPatchType string
+
+const (
+ // JSONPatchEnvoyPatchType allows the user to patch the generated xDS resources using JSONPatch semantics.
+ // For more details on the semantics, please refer to https://datatracker.ietf.org/doc/html/rfc6902
+ JSONPatchEnvoyPatchType EnvoyPatchType = "JSONPatch"
+)
+
+// EnvoyJSONPatchConfig defines the configuration for patching a Envoy xDS Resource
+// using JSONPatch semantic
+type EnvoyJSONPatchConfig struct {
+ // Type is the typed URL of the Envoy xDS Resource
+ Type EnvoyResourceType `json:"type"`
+ // Name is the name of the resource
+ Name string `json:"name"`
+ // Patch defines the JSON Patch Operation
+ Operation JSONPatchOperation `json:"operation"`
+}
+
+// EnvoyResourceType specifies the type URL of the Envoy resource.
+// +kubebuilder:validation:Enum=type.googleapis.com/envoy.config.listener.v3.Listener;type.googleapis.com/envoy.config.route.v3.RouteConfiguration;type.googleapis.com/envoy.config.cluster.v3.Cluster;type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment;type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.Secret
+type EnvoyResourceType string
+
+const (
+ // ListenerEnvoyResourceType defines the Type URL of the Listener resource
+ ListenerEnvoyResourceType EnvoyResourceType = "type.googleapis.com/envoy.config.listener.v3.Listener"
+ // RouteConfigurationEnvoyResourceType defines the Type URL of the RouteConfiguration resource
+ RouteConfigurationEnvoyResourceType EnvoyResourceType = "type.googleapis.com/envoy.config.route.v3.RouteConfiguration"
+ // ClusterEnvoyResourceType defines the Type URL of the Cluster resource
+ ClusterEnvoyResourceType EnvoyResourceType = "type.googleapis.com/envoy.config.cluster.v3.Cluster"
+ // ClusterLoadAssignmentEnvoyResourceType defines the Type URL of the ClusterLoadAssignment resource
+ ClusterLoadAssignmentEnvoyResourceType EnvoyResourceType = "type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment"
+ // SecretEnvoyResourceType defines the Type URL of the Secret resource
+ SecretEnvoyResourceType EnvoyResourceType = "type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.Secret"
+)
+
+// JSONPatchOperationType specifies the JSON Patch operations that can be performed.
+// +kubebuilder:validation:Enum=add;remove;replace;move;copy;test
+type JSONPatchOperationType string
+
+// JSONPatchOperation defines the JSON Patch Operation as defined in
+// https://datatracker.ietf.org/doc/html/rfc6902
+type JSONPatchOperation struct {
+ // Op is the type of operation to perform
+ Op JSONPatchOperationType `json:"op"`
+ // Path is a JSONPointer expression. Refer to https://datatracker.ietf.org/doc/html/rfc6901 for more details.
+ // It specifies the location of the target document/field where the operation will be performed
+ // +optional
+ Path *string `json:"path,omitempty"`
+ // JSONPath is a JSONPath expression. Refer to https://datatracker.ietf.org/doc/rfc9535/ for more details.
+ // It produces one or more JSONPointer expressions based on the given JSON document.
+ // If no JSONPointer is found, it will result in an error.
+ // If the 'Path' property is also set, it will be appended to the resulting JSONPointer expressions from the JSONPath evaluation.
+ // This is useful when creating a property that does not yet exist in the JSON document.
+ // The final JSONPointer expressions specifies the locations in the target document/field where the operation will be applied.
+ // +optional
+ JSONPath *string `json:"jsonPath,omitempty"`
+ // From is the source location of the value to be copied or moved. Only valid
+ // for move or copy operations
+ // Refer to https://datatracker.ietf.org/doc/html/rfc6901 for more details.
+ // +optional
+ From *string `json:"from,omitempty"`
+ // Value is the new value of the path location. The value is only used by
+ // the `add` and `replace` operations.
+ // +optional
+ Value *apiextensionsv1.JSON `json:"value,omitempty"`
+}
+
+const (
+ // PolicyConditionProgrammed indicates whether the policy has been translated
+ // and ready to be programmed into the data plane.
+ //
+ // Possible reasons for this condition to be True are:
+ //
+ // * "Programmed"
+ //
+ // Possible reasons for this condition to be False are:
+ //
+ // * "Invalid"
+ // * "ResourceNotFound"
+ //
+ PolicyConditionProgrammed gwapiv1.PolicyConditionType = "Programmed"
+
+ // PolicyReasonProgrammed is used with the "Programmed" condition when the policy
+ // is ready to be programmed into the data plane.
+ PolicyReasonProgrammed gwapiv1.PolicyConditionReason = "Programmed"
+
+ // PolicyReasonInvalid is used with the "Programmed" condition when the patch
+ // is syntactically or semantically invalid.
+ PolicyReasonInvalid gwapiv1.PolicyConditionReason = "Invalid"
+
+ // PolicyReasonResourceNotFound is used with the "Programmed" condition when the
+ // policy cannot find the resource type to patch to.
+ PolicyReasonResourceNotFound gwapiv1.PolicyConditionReason = "ResourceNotFound"
+
+ // PolicyReasonDisabled is used with the "Accepted" condition when the policy
+ // feature is disabled by the configuration.
+ PolicyReasonDisabled gwapiv1.PolicyConditionReason = "Disabled"
+)
+
+//+kubebuilder:object:root=true
+
+// EnvoyPatchPolicyList contains a list of EnvoyPatchPolicy resources.
+type EnvoyPatchPolicyList struct {
+ metav1.TypeMeta `json:",inline"`
+ metav1.ListMeta `json:"metadata,omitempty"`
+ Items []EnvoyPatchPolicy `json:"items"`
+}
+
+func init() {
+ SchemeBuilder.Register(&EnvoyPatchPolicy{}, &EnvoyPatchPolicyList{})
+}
diff --git a/vendor/github.com/envoyproxy/gateway/api/v1alpha1/envoyproxy_accesslogging_types.go b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/envoyproxy_accesslogging_types.go
new file mode 100644
index 00000000..9a1b0042
--- /dev/null
+++ b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/envoyproxy_accesslogging_types.go
@@ -0,0 +1,211 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package v1alpha1
+
+type ProxyAccessLog struct {
+ // Disable disables access logging for managed proxies if set to true.
+ //
+ // +optional
+ Disable *bool `json:"disable,omitempty"`
+ // Settings defines accesslog settings for managed proxies.
+ // If unspecified, will send default format to stdout.
+ // +optional
+ // +kubebuilder:validation:MinItems=1
+ // +kubebuilder:validation:MaxItems=50
+ Settings []ProxyAccessLogSetting `json:"settings,omitempty"`
+}
+
+type ProxyAccessLogSetting struct {
+ // Format defines the format of accesslog.
+ // This will be ignored if sink type is ALS.
+ // +optional
+ Format *ProxyAccessLogFormat `json:"format,omitempty"`
+ // Matches defines the match conditions for accesslog in CEL expression.
+ // An accesslog will be emitted only when one or more match conditions are evaluated to true.
+ // Invalid [CEL](https://www.envoyproxy.io/docs/envoy/latest/xds/type/v3/cel.proto.html#common-expression-language-cel-proto) expressions will be ignored.
+ // +kubebuilder:validation:MaxItems=10
+ Matches []string `json:"matches,omitempty"`
+ // Sinks defines the sinks of accesslog.
+ // +kubebuilder:validation:MinItems=1
+ // +kubebuilder:validation:MaxItems=50
+ Sinks []ProxyAccessLogSink `json:"sinks"`
+ // Type defines the component emitting the accesslog, such as Listener and Route.
+ // If type not defined, the setting would apply to:
+ // (1) All Routes.
+ // (2) Listeners if and only if Envoy does not find a matching route for a request.
+ // If type is defined, the accesslog settings would apply to the relevant component (as-is).
+ // +kubebuilder:validation:Enum=Listener;Route
+ // +optional
+ Type *ProxyAccessLogType `json:"type,omitempty"`
+}
+
+type ProxyAccessLogType string
+
+const (
+ // ProxyAccessLogTypeListener defines the accesslog for Listeners.
+ // https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/listener/v3/listener.proto#envoy-v3-api-field-config-listener-v3-listener-access-log
+ ProxyAccessLogTypeListener ProxyAccessLogType = "Listener"
+ // ProxyAccessLogTypeRoute defines the accesslog for HTTP, GRPC, UDP and TCP Routes.
+ // https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/udp/udp_proxy/v3/udp_proxy.proto#envoy-v3-api-field-extensions-filters-udp-udp-proxy-v3-udpproxyconfig-access-log
+ // https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/network/tcp_proxy/v3/tcp_proxy.proto#envoy-v3-api-field-extensions-filters-network-tcp-proxy-v3-tcpproxy-access-log
+ // https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto#envoy-v3-api-field-extensions-filters-network-http-connection-manager-v3-httpconnectionmanager-access-log
+ ProxyAccessLogTypeRoute ProxyAccessLogType = "Route"
+)
+
+type ProxyAccessLogFormatType string
+
+const (
+ // ProxyAccessLogFormatTypeText defines the text accesslog format.
+ ProxyAccessLogFormatTypeText ProxyAccessLogFormatType = "Text"
+ // ProxyAccessLogFormatTypeJSON defines the JSON accesslog format.
+ ProxyAccessLogFormatTypeJSON ProxyAccessLogFormatType = "JSON"
+ // TODO: support format type "mix" in the future.
+)
+
+// ProxyAccessLogFormat defines the format of accesslog.
+// By default accesslogs are written to standard output.
+// +union
+//
+// +kubebuilder:validation:XValidation:rule="self.type == 'Text' ? has(self.text) : !has(self.text)",message="If AccessLogFormat type is Text, text field needs to be set."
+// +kubebuilder:validation:XValidation:rule="self.type == 'JSON' ? has(self.json) : !has(self.json)",message="If AccessLogFormat type is JSON, json field needs to be set."
+type ProxyAccessLogFormat struct {
+ // Type defines the type of accesslog format.
+ // +kubebuilder:validation:Enum=Text;JSON
+ // +unionDiscriminator
+ Type ProxyAccessLogFormatType `json:"type,omitempty"`
+ // Text defines the text accesslog format, following Envoy accesslog formatting,
+ // It's required when the format type is "Text".
+ // Envoy [command operators](https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators) may be used in the format.
+ // The [format string documentation](https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#config-access-log-format-strings) provides more information.
+ // +optional
+ Text *string `json:"text,omitempty"`
+ // JSON is additional attributes that describe the specific event occurrence.
+ // Structured format for the envoy access logs. Envoy [command operators](https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators)
+ // can be used as values for fields within the Struct.
+ // It's required when the format type is "JSON".
+ // +optional
+ JSON map[string]string `json:"json,omitempty"`
+}
+
+type ProxyAccessLogSinkType string
+
+const (
+ // ProxyAccessLogSinkTypeALS defines the gRPC Access Log Service (ALS) sink.
+ // The service must implement the Envoy gRPC Access Log Service streaming API:
+ // https://www.envoyproxy.io/docs/envoy/latest/api-v3/service/accesslog/v3/als.proto
+ ProxyAccessLogSinkTypeALS ProxyAccessLogSinkType = "ALS"
+ // ProxyAccessLogSinkTypeFile defines the file accesslog sink.
+ ProxyAccessLogSinkTypeFile ProxyAccessLogSinkType = "File"
+ // ProxyAccessLogSinkTypeOpenTelemetry defines the OpenTelemetry accesslog sink.
+ // When the provider is Kubernetes, EnvoyGateway always sends `k8s.namespace.name`
+ // and `k8s.pod.name` as additional attributes.
+ ProxyAccessLogSinkTypeOpenTelemetry ProxyAccessLogSinkType = "OpenTelemetry"
+)
+
+// ProxyAccessLogSink defines the sink of accesslog.
+// +union
+//
+// +kubebuilder:validation:XValidation:rule="self.type == 'ALS' ? has(self.als) : !has(self.als)",message="If AccessLogSink type is ALS, als field needs to be set."
+// +kubebuilder:validation:XValidation:rule="self.type == 'File' ? has(self.file) : !has(self.file)",message="If AccessLogSink type is File, file field needs to be set."
+// +kubebuilder:validation:XValidation:rule="self.type == 'OpenTelemetry' ? has(self.openTelemetry) : !has(self.openTelemetry)",message="If AccessLogSink type is OpenTelemetry, openTelemetry field needs to be set."
+type ProxyAccessLogSink struct {
+ // Type defines the type of accesslog sink.
+ // +kubebuilder:validation:Enum=ALS;File;OpenTelemetry
+ // +unionDiscriminator
+ Type ProxyAccessLogSinkType `json:"type,omitempty"`
+ // ALS defines the gRPC Access Log Service (ALS) sink.
+ // +optional
+ ALS *ALSEnvoyProxyAccessLog `json:"als,omitempty"`
+ // File defines the file accesslog sink.
+ // +optional
+ File *FileEnvoyProxyAccessLog `json:"file,omitempty"`
+ // OpenTelemetry defines the OpenTelemetry accesslog sink.
+ // +optional
+ OpenTelemetry *OpenTelemetryEnvoyProxyAccessLog `json:"openTelemetry,omitempty"`
+}
+
+type ALSEnvoyProxyAccessLogType string
+
+const (
+ // ALSEnvoyProxyAccessLogTypeHTTP defines the HTTP access log type and will populate StreamAccessLogsMessage.http_logs.
+ ALSEnvoyProxyAccessLogTypeHTTP ALSEnvoyProxyAccessLogType = "HTTP"
+ // ALSEnvoyProxyAccessLogTypeTCP defines the TCP access log type and will populate StreamAccessLogsMessage.tcp_logs.
+ ALSEnvoyProxyAccessLogTypeTCP ALSEnvoyProxyAccessLogType = "TCP"
+)
+
+// ALSEnvoyProxyAccessLog defines the gRPC Access Log Service (ALS) sink.
+// The service must implement the Envoy gRPC Access Log Service streaming API:
+// https://www.envoyproxy.io/docs/envoy/latest/api-v3/service/accesslog/v3/als.proto
+// Access log format information is passed in the form of gRPC metadata when the
+// stream is established.
+//
+// +kubebuilder:validation:XValidation:rule="self.type == 'HTTP' || !has(self.http)",message="The http field may only be set when type is HTTP."
+// +kubebuilder:validation:XValidation:message="BackendRefs must be used, backendRef is not supported.",rule="!has(self.backendRef)"
+// +kubebuilder:validation:XValidation:message="must have at least one backend in backendRefs",rule="has(self.backendRefs) && self.backendRefs.size() > 0"
+// +kubebuilder:validation:XValidation:message="BackendRefs only support Service and Backend kind.",rule="has(self.backendRefs) ? self.backendRefs.all(f, f.kind == 'Service' || f.kind == 'Backend') : true"
+// +kubebuilder:validation:XValidation:message="BackendRefs only support Core and gateway.envoyproxy.io group.",rule="has(self.backendRefs) ? (self.backendRefs.all(f, f.group == \"\" || f.group == 'gateway.envoyproxy.io')) : true"
+type ALSEnvoyProxyAccessLog struct {
+ BackendCluster `json:",inline"`
+
+ // LogName defines the friendly name of the access log to be returned in
+ // StreamAccessLogsMessage.Identifier. This allows the access log server
+ // to differentiate between different access logs coming from the same Envoy.
+ // +optional
+ // +kubebuilder:validation:MinLength=1
+ LogName *string `json:"logName,omitempty"`
+ // Type defines the type of accesslog. Supported types are "HTTP" and "TCP".
+ // +kubebuilder:validation:Enum=HTTP;TCP
+ Type ALSEnvoyProxyAccessLogType `json:"type"`
+ // HTTP defines additional configuration specific to HTTP access logs.
+ // +optional
+ HTTP *ALSEnvoyProxyHTTPAccessLogConfig `json:"http,omitempty"`
+}
+
+type ALSEnvoyProxyHTTPAccessLogConfig struct {
+ // RequestHeaders defines request headers to include in log entries sent to the access log service.
+ // +optional
+ RequestHeaders []string `json:"requestHeaders,omitempty"`
+ // ResponseHeaders defines response headers to include in log entries sent to the access log service.
+ // +optional
+ ResponseHeaders []string `json:"responseHeaders,omitempty"`
+ // ResponseTrailers defines response trailers to include in log entries sent to the access log service.
+ // +optional
+ ResponseTrailers []string `json:"responseTrailers,omitempty"`
+}
+
+type FileEnvoyProxyAccessLog struct {
+ // Path defines the file path used to expose envoy access log(e.g. /dev/stdout).
+ // +kubebuilder:validation:MinLength=1
+ Path string `json:"path,omitempty"`
+}
+
+// OpenTelemetryEnvoyProxyAccessLog defines the OpenTelemetry access log sink.
+//
+// +kubebuilder:validation:XValidation:message="host or backendRefs needs to be set",rule="has(self.host) || self.backendRefs.size() > 0"
+// +kubebuilder:validation:XValidation:message="BackendRefs must be used, backendRef is not supported.",rule="!has(self.backendRef)"
+// +kubebuilder:validation:XValidation:message="BackendRefs only support Service and Backend kind.",rule="has(self.backendRefs) ? self.backendRefs.all(f, f.kind == 'Service' || f.kind == 'Backend') : true"
+// +kubebuilder:validation:XValidation:message="BackendRefs only support Core and gateway.envoyproxy.io group.",rule="has(self.backendRefs) ? (self.backendRefs.all(f, f.group == \"\" || f.group == 'gateway.envoyproxy.io')) : true"
+type OpenTelemetryEnvoyProxyAccessLog struct {
+ BackendCluster `json:",inline"`
+ // Host define the extension service hostname.
+ // Deprecated: Use BackendRefs instead.
+ //
+ // +optional
+ Host *string `json:"host,omitempty"`
+ // Port defines the port the extension service is exposed on.
+ // Deprecated: Use BackendRefs instead.
+ //
+ // +optional
+ // +kubebuilder:validation:Minimum=0
+ // +kubebuilder:default=4317
+ Port int32 `json:"port,omitempty"`
+ // Resources is a set of labels that describe the source of a log entry, including envoy node info.
+ // It's recommended to follow [semantic conventions](https://opentelemetry.io/docs/reference/specification/resource/semantic_conventions/).
+ // +optional
+ Resources map[string]string `json:"resources,omitempty"`
+
+ // TODO: support more OpenTelemetry accesslog options(e.g. TLS, auth etc.) in the future.
+}
diff --git a/vendor/github.com/envoyproxy/gateway/api/v1alpha1/envoyproxy_helpers.go b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/envoyproxy_helpers.go
new file mode 100644
index 00000000..601857d4
--- /dev/null
+++ b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/envoyproxy_helpers.go
@@ -0,0 +1,189 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package v1alpha1
+
+import (
+ "fmt"
+ "sort"
+ "strings"
+
+ autoscalingv2 "k8s.io/api/autoscaling/v2"
+ corev1 "k8s.io/api/core/v1"
+ "k8s.io/apimachinery/pkg/api/resource"
+ "k8s.io/utils/ptr"
+)
+
+// DefaultEnvoyProxyProvider returns a new EnvoyProxyProvider with default settings.
+func DefaultEnvoyProxyProvider() *EnvoyProxyProvider {
+ return &EnvoyProxyProvider{
+ Type: EnvoyProxyProviderTypeKubernetes,
+ }
+}
+
+// GetEnvoyProxyProvider returns the EnvoyProxyProvider of EnvoyProxy or a default EnvoyProxyProvider
+// if unspecified.
+func (e *EnvoyProxy) GetEnvoyProxyProvider() *EnvoyProxyProvider {
+ if e.Spec.Provider != nil {
+ return e.Spec.Provider
+ }
+ e.Spec.Provider = DefaultEnvoyProxyProvider()
+
+ return e.Spec.Provider
+}
+
+// DefaultEnvoyProxyKubeProvider returns a new EnvoyProxyKubernetesProvider with default settings.
+func DefaultEnvoyProxyKubeProvider() *EnvoyProxyKubernetesProvider {
+ return &EnvoyProxyKubernetesProvider{
+ EnvoyDeployment: DefaultKubernetesDeployment(DefaultEnvoyProxyImage),
+ EnvoyService: DefaultKubernetesService(),
+ }
+}
+
+// DefaultEnvoyProxyHpaMetrics returns a default HPA metrics spec for EnvoyProxy.
+func DefaultEnvoyProxyHpaMetrics() []autoscalingv2.MetricSpec {
+ return []autoscalingv2.MetricSpec{
+ {
+ Resource: &autoscalingv2.ResourceMetricSource{
+ Name: corev1.ResourceCPU,
+ Target: autoscalingv2.MetricTarget{
+ Type: autoscalingv2.UtilizationMetricType,
+ AverageUtilization: ptr.To[int32](80),
+ },
+ },
+ Type: autoscalingv2.ResourceMetricSourceType,
+ },
+ }
+}
+
+// NeedToSwitchPorts returns true if the EnvoyProxy needs to switch ports.
+func (e *EnvoyProxy) NeedToSwitchPorts() bool {
+ if e.Spec.Provider == nil {
+ return true
+ }
+
+ if e.Spec.Provider.Kubernetes == nil {
+ return true
+ }
+
+ if e.Spec.Provider.Kubernetes.UseListenerPortAsContainerPort == nil {
+ return true
+ }
+
+ return !*e.Spec.Provider.Kubernetes.UseListenerPortAsContainerPort
+}
+
+// GetEnvoyProxyHostProvider returns the EnvoyProxyHostProvider of EnvoyProxyProvider or
+// a nil EnvoyProxyHostProvider if unspecified. If EnvoyProxyProvider is not of
+// type "Host", a nil EnvoyProxyHostProvider is returned.
+func (r *EnvoyProxyProvider) GetEnvoyProxyHostProvider() *EnvoyProxyHostProvider {
+ if r.Type != EnvoyProxyProviderTypeHost {
+ return nil
+ }
+ return r.Host
+}
+
+// GetEnvoyProxyKubeProvider returns the EnvoyProxyKubernetesProvider of EnvoyProxyProvider or
+// a default EnvoyProxyKubernetesProvider if unspecified. If EnvoyProxyProvider is not of
+// type "Kubernetes", a nil EnvoyProxyKubernetesProvider is returned.
+func (r *EnvoyProxyProvider) GetEnvoyProxyKubeProvider() *EnvoyProxyKubernetesProvider {
+ if r.Type != EnvoyProxyProviderTypeKubernetes {
+ return nil
+ }
+
+ if r.Kubernetes == nil {
+ r.Kubernetes = DefaultEnvoyProxyKubeProvider()
+ return r.Kubernetes
+ }
+
+ // if EnvoyDeployment and EnvoyDaemonSet are both nil, use EnvoyDeployment
+ if r.Kubernetes.EnvoyDeployment == nil && r.Kubernetes.EnvoyDaemonSet == nil {
+ r.Kubernetes.EnvoyDeployment = DefaultKubernetesDeployment(DefaultEnvoyProxyImage)
+ }
+
+ // if use EnvoyDeployment, set default values
+ if r.Kubernetes.EnvoyDeployment != nil {
+ r.Kubernetes.EnvoyDeployment.defaultKubernetesDeploymentSpec(DefaultEnvoyProxyImage)
+ }
+
+ // if use EnvoyDaemonSet, set default values
+ if r.Kubernetes.EnvoyDaemonSet != nil {
+ r.Kubernetes.EnvoyDaemonSet.defaultKubernetesDaemonSetSpec(DefaultEnvoyProxyImage)
+ }
+
+ if r.Kubernetes.EnvoyService == nil {
+ r.Kubernetes.EnvoyService = DefaultKubernetesService()
+ }
+
+ if r.Kubernetes.EnvoyService.Type == nil {
+ r.Kubernetes.EnvoyService.Type = GetKubernetesServiceType(ServiceTypeLoadBalancer)
+ }
+
+ if r.Kubernetes.EnvoyHpa != nil {
+ r.Kubernetes.EnvoyHpa.setDefault()
+ }
+
+ return r.Kubernetes
+}
+
+// GetEnvoyVersion returns the version of Envoy to use.
+// This method gracefully handles nil pointers.
+func (e *EnvoyProxyHostProvider) GetEnvoyVersion() string {
+ if e == nil || e.EnvoyVersion == nil {
+ return ""
+ }
+ return *e.EnvoyVersion
+}
+
+// DefaultEnvoyProxyLoggingLevel returns envoy proxy v1alpha1.LogComponentGatewayDefault log level.
+// If unspecified, defaults to "warn". When specified, all other logging components are ignored.
+func (logging *ProxyLogging) DefaultEnvoyProxyLoggingLevel() LogLevel {
+ if logging.Level[LogComponentDefault] != "" {
+ return logging.Level[LogComponentDefault]
+ }
+
+ return LogLevelWarn
+}
+
+// GetEnvoyProxyComponentLevel returns envoy proxy component log level args.
+// xref: https://www.envoyproxy.io/docs/envoy/latest/operations/cli#cmdoption-component-log-level
+func (logging *ProxyLogging) GetEnvoyProxyComponentLevel() string {
+ var args []string
+
+ for component, level := range logging.Level {
+ if component == LogComponentDefault {
+ // Skip default component
+ continue
+ }
+
+ if level != "" {
+ args = append(args, fmt.Sprintf("%s:%s", component, level))
+ }
+ }
+
+ if len(args) == 0 {
+ // use "misc:error" as default
+ args = []string{"misc:error"}
+ }
+
+ sort.Strings(args)
+
+ return strings.Join(args, ",")
+}
+
+// DefaultShutdownManagerContainerResourceRequirements returns a new ResourceRequirements with default settings.
+func DefaultShutdownManagerContainerResourceRequirements() *corev1.ResourceRequirements {
+ return &corev1.ResourceRequirements{
+ Requests: corev1.ResourceList{
+ corev1.ResourceCPU: resource.MustParse(DefaultShutdownManagerCPUResourceRequests),
+ corev1.ResourceMemory: resource.MustParse(DefaultShutdownManagerMemoryResourceRequests),
+ },
+ }
+}
+
+// String returns the string representation of the EnvoyFilter type.
+func (f EnvoyFilter) String() string {
+ return string(f)
+}
diff --git a/vendor/github.com/envoyproxy/gateway/api/v1alpha1/envoyproxy_metric_types.go b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/envoyproxy_metric_types.go
new file mode 100644
index 00000000..320b7436
--- /dev/null
+++ b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/envoyproxy_metric_types.go
@@ -0,0 +1,111 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package v1alpha1
+
+type MetricSinkType string
+
+const (
+ MetricSinkTypeOpenTelemetry MetricSinkType = "OpenTelemetry"
+)
+
+type ProxyMetrics struct {
+ // Prometheus defines the configuration for Admin endpoint `/stats/prometheus`.
+ Prometheus *ProxyPrometheusProvider `json:"prometheus,omitempty"`
+ // Sinks defines the metric sinks where metrics are sent to.
+ // +kubebuilder:validation:MaxItems=16
+ Sinks []ProxyMetricSink `json:"sinks,omitempty"`
+ // Matches defines configuration for selecting specific metrics instead of generating all metrics stats
+ // that are enabled by default. This helps reduce CPU and memory overhead in Envoy, but eliminating some stats
+ // may after critical functionality. Here are the stats that we strongly recommend not disabling:
+ // `cluster_manager.warming_clusters`, `cluster..membership_total`,`cluster..membership_healthy`,
+ // `cluster..membership_degraded`,reference https://github.com/envoyproxy/envoy/issues/9856,
+ // https://github.com/envoyproxy/envoy/issues/14610
+ //
+ Matches []StringMatch `json:"matches,omitempty"`
+
+ // EnableVirtualHostStats enables envoy stat metrics for virtual hosts.
+ //
+ // +optional
+ EnableVirtualHostStats *bool `json:"enableVirtualHostStats,omitempty"`
+
+ // EnablePerEndpointStats enables per endpoint envoy stats metrics.
+ // Please use with caution.
+ //
+ // +optional
+ EnablePerEndpointStats *bool `json:"enablePerEndpointStats,omitempty"`
+
+ // EnableRequestResponseSizesStats enables publishing of histograms tracking header and body sizes of requests and responses.
+ //
+ // +optional
+ EnableRequestResponseSizesStats *bool `json:"enableRequestResponseSizesStats,omitempty"`
+
+ // ClusterStatName defines the value of cluster alt_stat_name, determining how cluster stats are named.
+ // For more details, see envoy docs: https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/cluster/v3/cluster.proto.html
+ // The supported operators for this pattern are:
+ // %ROUTE_NAME%: name of Gateway API xRoute resource
+ // %ROUTE_NAMESPACE%: namespace of Gateway API xRoute resource
+ // %ROUTE_KIND%: kind of Gateway API xRoute resource
+ // %ROUTE_RULE_NAME%: name of the Gateway API xRoute section
+ // %ROUTE_RULE_NUMBER%: name of the Gateway API xRoute section
+ // %BACKEND_REFS%: names of all backends referenced in /|/|... format
+ // Only xDS Clusters created for HTTPRoute and GRPCRoute are currently supported.
+ // Default: %ROUTE_KIND%/%ROUTE_NAMESPACE%/%ROUTE_NAME%/rule/%ROUTE_RULE_NUMBER%
+ // Example: httproute/my-ns/my-route/rule/0
+ //
+ // +optional
+ ClusterStatName *string `json:"clusterStatName,omitempty"`
+}
+
+// ProxyMetricSink defines the sink of metrics.
+// Default metrics sink is OpenTelemetry.
+// +union
+//
+// +kubebuilder:validation:XValidation:rule="self.type == 'OpenTelemetry' ? has(self.openTelemetry) : !has(self.openTelemetry)",message="If MetricSink type is OpenTelemetry, openTelemetry field needs to be set."
+type ProxyMetricSink struct {
+ // Type defines the metric sink type.
+ // EG currently only supports OpenTelemetry.
+ // +kubebuilder:validation:Enum=OpenTelemetry
+ // +kubebuilder:default=OpenTelemetry
+ // +unionDiscriminator
+ Type MetricSinkType `json:"type"`
+ // OpenTelemetry defines the configuration for OpenTelemetry sink.
+ // It's required if the sink type is OpenTelemetry.
+ // +optional
+ OpenTelemetry *ProxyOpenTelemetrySink `json:"openTelemetry,omitempty"`
+}
+
+// ProxyOpenTelemetrySink defines the configuration for OpenTelemetry sink.
+//
+// +kubebuilder:validation:XValidation:message="host or backendRefs needs to be set",rule="has(self.host) || self.backendRefs.size() > 0"
+// +kubebuilder:validation:XValidation:message="BackendRefs must be used, backendRef is not supported.",rule="!has(self.backendRef)"
+// +kubebuilder:validation:XValidation:message="BackendRefs only support Service and Backend kind.",rule="has(self.backendRefs) ? self.backendRefs.all(f, f.kind == 'Service' || f.kind == 'Backend') : true"
+// +kubebuilder:validation:XValidation:message="BackendRefs only support Core and gateway.envoyproxy.io group.",rule="has(self.backendRefs) ? (self.backendRefs.all(f, f.group == \"\" || f.group == 'gateway.envoyproxy.io')) : true"
+type ProxyOpenTelemetrySink struct {
+ BackendCluster `json:",inline"`
+ // Host define the service hostname.
+ // Deprecated: Use BackendRefs instead.
+ //
+ // +optional
+ Host *string `json:"host,omitempty"`
+ // Port defines the port the service is exposed on.
+ // Deprecated: Use BackendRefs instead.
+ //
+ // +optional
+ // +kubebuilder:validation:Minimum=0
+ // +kubebuilder:validation:Maximum=65535
+ // +kubebuilder:default=4317
+ Port int32 `json:"port,omitempty"`
+
+ // TODO: add support for customizing OpenTelemetry sink in https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/stat_sinks/open_telemetry/v3/open_telemetry.proto#envoy-v3-api-msg-extensions-stat-sinks-open-telemetry-v3-sinkconfig
+}
+
+type ProxyPrometheusProvider struct {
+ // Disable the Prometheus endpoint.
+ Disable bool `json:"disable,omitempty"`
+ // Configure the compression on Prometheus endpoint. Compression is useful in situations when bandwidth is scarce and large payloads can be effectively compressed at the expense of higher CPU load.
+ // +optional
+ Compression *Compression `json:"compression,omitempty"`
+}
diff --git a/vendor/github.com/envoyproxy/gateway/api/v1alpha1/envoyproxy_tracing_types.go b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/envoyproxy_tracing_types.go
new file mode 100644
index 00000000..2e25a7b2
--- /dev/null
+++ b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/envoyproxy_tracing_types.go
@@ -0,0 +1,154 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package v1alpha1
+
+import gwapiv1 "sigs.k8s.io/gateway-api/apis/v1"
+
+// ProxyTracing defines the tracing configuration for a proxy.
+// +kubebuilder:validation:XValidation:message="only one of SamplingRate or SamplingFraction can be specified",rule="!(has(self.samplingRate) && has(self.samplingFraction))"
+type ProxyTracing struct {
+ // SamplingRate controls the rate at which traffic will be
+ // selected for tracing if no prior sampling decision has been made.
+ // Defaults to 100, valid values [0-100]. 100 indicates 100% sampling.
+ //
+ // Only one of SamplingRate or SamplingFraction may be specified.
+ // If neither field is specified, all requests will be sampled.
+ //
+ // +kubebuilder:validation:Minimum=0
+ // +kubebuilder:validation:Maximum=100
+ // +optional
+ SamplingRate *uint32 `json:"samplingRate,omitempty"`
+ // SamplingFraction represents the fraction of requests that should be
+ // selected for tracing if no prior sampling decision has been made.
+ //
+ // Only one of SamplingRate or SamplingFraction may be specified.
+ // If neither field is specified, all requests will be sampled.
+ //
+ // +optional
+ SamplingFraction *gwapiv1.Fraction `json:"samplingFraction,omitempty"`
+ // CustomTags defines the custom tags to add to each span.
+ // If provider is kubernetes, pod name and namespace are added by default.
+ //
+ // +optional
+ CustomTags map[string]CustomTag `json:"customTags,omitempty"`
+ // Provider defines the tracing provider.
+ Provider TracingProvider `json:"provider"`
+}
+
+type TracingProviderType string
+
+const (
+ TracingProviderTypeOpenTelemetry TracingProviderType = "OpenTelemetry"
+ TracingProviderTypeZipkin TracingProviderType = "Zipkin"
+ TracingProviderTypeDatadog TracingProviderType = "Datadog"
+)
+
+// TracingProvider defines the tracing provider configuration.
+//
+// +kubebuilder:validation:XValidation:message="host or backendRefs needs to be set",rule="has(self.host) || self.backendRefs.size() > 0"
+// +kubebuilder:validation:XValidation:message="BackendRefs must be used, backendRef is not supported.",rule="!has(self.backendRef)"
+// +kubebuilder:validation:XValidation:message="BackendRefs only support Service and Backend kind.",rule="has(self.backendRefs) ? self.backendRefs.all(f, f.kind == 'Service' || f.kind == 'Backend') : true"
+// +kubebuilder:validation:XValidation:message="BackendRefs only support Core and gateway.envoyproxy.io group.",rule="has(self.backendRefs) ? (self.backendRefs.all(f, f.group == \"\" || f.group == 'gateway.envoyproxy.io')) : true"
+type TracingProvider struct {
+ BackendCluster `json:",inline"`
+ // Type defines the tracing provider type.
+ // +kubebuilder:validation:Enum=OpenTelemetry;Zipkin;Datadog
+ // +kubebuilder:default=OpenTelemetry
+ Type TracingProviderType `json:"type"`
+ // Host define the provider service hostname.
+ // Deprecated: Use BackendRefs instead.
+ //
+ // +optional
+ Host *string `json:"host,omitempty"`
+ // Port defines the port the provider service is exposed on.
+ // Deprecated: Use BackendRefs instead.
+ //
+ // +optional
+ // +kubebuilder:validation:Minimum=0
+ // +kubebuilder:default=4317
+ Port int32 `json:"port,omitempty"`
+ // ServiceName defines the service name to use in tracing configuration.
+ // If not set, Envoy Gateway will use a default service name set as
+ // "name.namespace" (e.g., "my-gateway.default").
+ // Note: This field is only supported for OpenTelemetry and Datadog tracing providers.
+ // For Zipkin, the service name in traces is always derived from the Envoy --service-cluster flag
+ // (typically "namespace/name" format). Setting this field has no effect for Zipkin.
+ //
+ // +optional
+ // +kubebuilder:validation:XValidation:message="serviceName cannot be empty if provided",rule="self != \"\""
+ ServiceName *string `json:"serviceName,omitempty"`
+ // Zipkin defines the Zipkin tracing provider configuration
+ // +optional
+ Zipkin *ZipkinTracingProvider `json:"zipkin,omitempty"`
+}
+
+type CustomTagType string
+
+const (
+ // CustomTagTypeLiteral adds hard-coded value to each span.
+ CustomTagTypeLiteral CustomTagType = "Literal"
+ // CustomTagTypeEnvironment adds value from environment variable to each span.
+ CustomTagTypeEnvironment CustomTagType = "Environment"
+ // CustomTagTypeRequestHeader adds value from request header to each span.
+ CustomTagTypeRequestHeader CustomTagType = "RequestHeader"
+)
+
+type CustomTag struct {
+ // Type defines the type of custom tag.
+ // +kubebuilder:validation:Enum=Literal;Environment;RequestHeader
+ // +unionDiscriminator
+ // +kubebuilder:default=Literal
+ Type CustomTagType `json:"type"`
+ // Literal adds hard-coded value to each span.
+ // It's required when the type is "Literal".
+ Literal *LiteralCustomTag `json:"literal,omitempty"`
+ // Environment adds value from environment variable to each span.
+ // It's required when the type is "Environment".
+ Environment *EnvironmentCustomTag `json:"environment,omitempty"`
+ // RequestHeader adds value from request header to each span.
+ // It's required when the type is "RequestHeader".
+ RequestHeader *RequestHeaderCustomTag `json:"requestHeader,omitempty"`
+
+ // TODO: add support for Metadata tags in the future.
+ // EG currently doesn't support metadata for route or cluster.
+}
+
+// LiteralCustomTag adds hard-coded value to each span.
+type LiteralCustomTag struct {
+ // Value defines the hard-coded value to add to each span.
+ Value string `json:"value"`
+}
+
+// EnvironmentCustomTag adds value from environment variable to each span.
+type EnvironmentCustomTag struct {
+ // Name defines the name of the environment variable which to extract the value from.
+ Name string `json:"name"`
+ // DefaultValue defines the default value to use if the environment variable is not set.
+ // +optional
+ DefaultValue *string `json:"defaultValue,omitempty"`
+}
+
+// RequestHeaderCustomTag adds value from request header to each span.
+type RequestHeaderCustomTag struct {
+ // Name defines the name of the request header which to extract the value from.
+ Name string `json:"name"`
+ // DefaultValue defines the default value to use if the request header is not set.
+ // +optional
+ DefaultValue *string `json:"defaultValue,omitempty"`
+}
+
+// ZipkinTracingProvider defines the Zipkin tracing provider configuration.
+type ZipkinTracingProvider struct {
+ // Enable128BitTraceID determines whether a 128bit trace id will be used
+ // when creating a new trace instance. If set to false, a 64bit trace
+ // id will be used.
+ // +optional
+ Enable128BitTraceID *bool `json:"enable128BitTraceId,omitempty"`
+ // DisableSharedSpanContext determines whether the default Envoy behaviour of
+ // client and server spans sharing the same span context should be disabled.
+ // +optional
+ DisableSharedSpanContext *bool `json:"disableSharedSpanContext,omitempty"`
+}
diff --git a/vendor/github.com/envoyproxy/gateway/api/v1alpha1/envoyproxy_types.go b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/envoyproxy_types.go
new file mode 100644
index 00000000..e9283e4c
--- /dev/null
+++ b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/envoyproxy_types.go
@@ -0,0 +1,580 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package v1alpha1
+
+import (
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ gwapiv1 "sigs.k8s.io/gateway-api/apis/v1"
+)
+
+const (
+ // KindEnvoyProxy is the name of the EnvoyProxy kind.
+ KindEnvoyProxy = "EnvoyProxy"
+)
+
+// +kubebuilder:object:root=true
+// +kubebuilder:resource:categories=envoy-gateway,shortName=eproxy
+// +kubebuilder:subresource:status
+
+// EnvoyProxy is the schema for the envoyproxies API.
+type EnvoyProxy struct {
+ metav1.TypeMeta `json:",inline"`
+ metav1.ObjectMeta `json:"metadata,omitempty"`
+
+ // EnvoyProxySpec defines the desired state of EnvoyProxy.
+ Spec EnvoyProxySpec `json:"spec,omitempty"`
+ // EnvoyProxyStatus defines the actual state of EnvoyProxy.
+ Status EnvoyProxyStatus `json:"status,omitempty"`
+}
+
+// EnvoyProxySpec defines the desired state of EnvoyProxy.
+type EnvoyProxySpec struct {
+ // Provider defines the desired resource provider and provider-specific configuration.
+ // If unspecified, the "Kubernetes" resource provider is used with default configuration
+ // parameters.
+ //
+ // +optional
+ Provider *EnvoyProxyProvider `json:"provider,omitempty"`
+
+ // Logging defines logging parameters for managed proxies.
+ // +kubebuilder:default={level: {default: warn}}
+ Logging ProxyLogging `json:"logging,omitempty"`
+
+ // Telemetry defines telemetry parameters for managed proxies.
+ //
+ // +optional
+ Telemetry *ProxyTelemetry `json:"telemetry,omitempty"`
+
+ // Bootstrap defines the Envoy Bootstrap as a YAML string.
+ // Visit https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/bootstrap/v3/bootstrap.proto#envoy-v3-api-msg-config-bootstrap-v3-bootstrap
+ // to learn more about the syntax.
+ // If set, this is the Bootstrap configuration used for the managed Envoy Proxy fleet instead of the default Bootstrap configuration
+ // set by Envoy Gateway.
+ // Some fields within the Bootstrap that are required to communicate with the xDS Server (Envoy Gateway) and receive xDS resources
+ // from it are not configurable and will result in the `EnvoyProxy` resource being rejected.
+ // Backward compatibility across minor versions is not guaranteed.
+ // We strongly recommend using `egctl x translate` to generate a `EnvoyProxy` resource with the `Bootstrap` field set to the default
+ // Bootstrap configuration used. You can edit this configuration, and rerun `egctl x translate` to ensure there are no validation errors.
+ //
+ // +optional
+ Bootstrap *ProxyBootstrap `json:"bootstrap,omitempty"`
+
+ // Concurrency defines the number of worker threads to run. If unset, it defaults to
+ // the number of cpuset threads on the platform.
+ //
+ // +optional
+ Concurrency *int32 `json:"concurrency,omitempty"`
+
+ // RoutingType can be set to "Service" to use the Service Cluster IP for routing to the backend,
+ // or it can be set to "Endpoint" to use Endpoint routing. The default is "Endpoint".
+ // +optional
+ RoutingType *RoutingType `json:"routingType,omitempty"`
+
+ // ExtraArgs defines additional command line options that are provided to Envoy.
+ // More info: https://www.envoyproxy.io/docs/envoy/latest/operations/cli#command-line-options
+ // Note: some command line options are used internally(e.g. --log-level) so they cannot be provided here.
+ //
+ // +optional
+ ExtraArgs []string `json:"extraArgs,omitempty"`
+
+ // MergeGateways defines if Gateway resources should be merged onto the same Envoy Proxy Infrastructure.
+ // Setting this field to true would merge all Gateway Listeners under the parent Gateway Class.
+ // This means that the port, protocol and hostname tuple must be unique for every listener.
+ // If a duplicate listener is detected, the newer listener (based on timestamp) will be rejected and its status will be updated with a "Accepted=False" condition.
+ //
+ // +optional
+ MergeGateways *bool `json:"mergeGateways,omitempty"`
+
+ // Shutdown defines configuration for graceful envoy shutdown process.
+ //
+ // +optional
+ Shutdown *ShutdownConfig `json:"shutdown,omitempty"`
+
+ // FilterOrder defines the order of filters in the Envoy proxy's HTTP filter chain.
+ // The FilterPosition in the list will be applied in the order they are defined.
+ // If unspecified, the default filter order is applied.
+ // Default filter order is:
+ //
+ // - envoy.filters.http.health_check
+ //
+ // - envoy.filters.http.fault
+ //
+ // - envoy.filters.http.cors
+ //
+ // - envoy.filters.http.ext_authz
+ //
+ // - envoy.filters.http.api_key_auth
+ //
+ // - envoy.filters.http.basic_auth
+ //
+ // - envoy.filters.http.oauth2
+ //
+ // - envoy.filters.http.jwt_authn
+ //
+ // - envoy.filters.http.stateful_session
+ //
+ // - envoy.filters.http.buffer
+ //
+ // - envoy.filters.http.lua
+ //
+ // - envoy.filters.http.ext_proc
+ //
+ // - envoy.filters.http.wasm
+ //
+ // - envoy.filters.http.rbac
+ //
+ // - envoy.filters.http.local_ratelimit
+ //
+ // - envoy.filters.http.ratelimit
+ //
+ // - envoy.filters.http.grpc_web
+ //
+ // - envoy.filters.http.grpc_stats
+ //
+ // - envoy.filters.http.custom_response
+ //
+ // - envoy.filters.http.credential_injector
+ //
+ // - envoy.filters.http.compressor
+ //
+ // - envoy.filters.http.router
+ //
+ // Note: "envoy.filters.http.router" cannot be reordered, it's always the last filter in the chain.
+ //
+ // +optional
+ FilterOrder []FilterPosition `json:"filterOrder,omitempty"`
+ // BackendTLS is the TLS configuration for the Envoy proxy to use when connecting to backends.
+ // These settings are applied on backends for which TLS policies are specified.
+ // +optional
+ BackendTLS *BackendTLSConfig `json:"backendTLS,omitempty"`
+
+ // IPFamily specifies the IP family for the EnvoyProxy fleet.
+ // This setting only affects the Gateway listener port and does not impact
+ // other aspects of the Envoy proxy configuration.
+ // If not specified, the system will operate as follows:
+ // - It defaults to IPv4 only.
+ // - IPv6 and dual-stack environments are not supported in this default configuration.
+ // Note: To enable IPv6 or dual-stack functionality, explicit configuration is required.
+ // +kubebuilder:validation:Enum=IPv4;IPv6;DualStack
+ // +optional
+ IPFamily *IPFamily `json:"ipFamily,omitempty"`
+
+ // PreserveRouteOrder determines if the order of matching for HTTPRoutes is determined by Gateway-API
+ // specification (https://gateway-api.sigs.k8s.io/reference/1.4/spec/#httprouterule)
+ // or preserves the order defined by users in the HTTPRoute's HTTPRouteRule list.
+ // Default: False
+ //
+ // +optional
+ PreserveRouteOrder *bool `json:"preserveRouteOrder,omitempty"`
+
+ // LuaValidation determines strictness of the Lua script validation for Lua EnvoyExtensionPolicies
+ // Default: Strict
+ // +optional
+ LuaValidation *LuaValidation `json:"luaValidation,omitempty"`
+}
+
+// +kubebuilder:validation:Enum=Strict;InsecureSyntax;Disabled
+type LuaValidation string
+
+const (
+ // LuaValidationStrict is the default level and checks for issues during script execution.
+ // Recommended if your scripts only use the standard Envoy Lua stream handle API and no external libraries.
+ // For supported APIs, see: https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/lua_filter#stream-handle-api
+ // INFO: This validation mode executes Lua scripts from EnvoyExtensionPolicy (EEP) resources in the gateway controller.
+ // Since the Gateway controller watches EEPs across all namespaces (or namespaces matching the configured selector),
+ // unprivileged users can create EEPs in their namespaces and cause arbitrary Lua code to execute in the Gateway controller process.
+ // Security measures are in place to prevent unsafe Lua code from accessing critical system resources on the controller
+ // and fail validation, preventing the unsafe code from flowing to the data plane proxy.
+ LuaValidationStrict LuaValidation = "Strict"
+
+ // LuaValidationInsecureSyntax checks for Lua syntax errors only.
+ // Useful if your scripts use external libraries other than the standard Envoy Lua stream handle API.
+ // WARNING: This mode does NOT offer any runtime validations, so no security measures are applied to validate Lua code safety.
+ // Not recommended unless you completely trust all EnvoyExtensionPolicy resources.
+ LuaValidationInsecureSyntax LuaValidation = "InsecureSyntax"
+
+ // LuaValidationDisabled disables all Lua script validations.
+ // WARNING: This mode does NOT offer any runtime or syntax validations, so no security measures are applied to validate Lua code safety.
+ // Not recommended unless you completely trust all EnvoyExtensionPolicy resources.
+ LuaValidationDisabled LuaValidation = "Disabled"
+)
+
+// RoutingType defines the type of routing of this Envoy proxy.
+type RoutingType string
+
+const (
+ // ServiceRoutingType is the RoutingType for Service Cluster IP routing.
+ ServiceRoutingType RoutingType = "Service"
+ // EndpointRoutingType is the RoutingType for Endpoint routing.
+ EndpointRoutingType RoutingType = "Endpoint"
+)
+
+// BackendTLSConfig describes the BackendTLS configuration for Envoy Proxy.
+type BackendTLSConfig struct {
+ // ClientCertificateRef defines the reference to a Kubernetes Secret that contains
+ // the client certificate and private key for Envoy to use when connecting to
+ // backend services and external services, such as ExtAuth, ALS, OpenTelemetry, etc.
+ // This secret should be located within the same namespace as the Envoy proxy resource that references it.
+ // +optional
+ ClientCertificateRef *gwapiv1.SecretObjectReference `json:"clientCertificateRef,omitempty"`
+ TLSSettings `json:",inline"`
+}
+
+// FilterPosition defines the position of an Envoy HTTP filter in the filter chain.
+// +kubebuilder:validation:XValidation:rule="(has(self.before) || has(self.after))",message="one of before or after must be specified"
+// +kubebuilder:validation:XValidation:rule="(has(self.before) && !has(self.after)) || (!has(self.before) && has(self.after))",message="only one of before or after can be specified"
+type FilterPosition struct {
+ // Name of the filter.
+ Name EnvoyFilter `json:"name"`
+
+ // Before defines the filter that should come before the filter.
+ // Only one of Before or After must be set.
+ Before *EnvoyFilter `json:"before,omitempty"`
+
+ // After defines the filter that should come after the filter.
+ // Only one of Before or After must be set.
+ After *EnvoyFilter `json:"after,omitempty"`
+}
+
+// EnvoyFilter defines the type of Envoy HTTP filter.
+// +kubebuilder:validation:Enum=envoy.filters.http.health_check;envoy.filters.http.fault;envoy.filters.http.cors;envoy.filters.http.ext_authz;envoy.filters.http.api_key_auth;envoy.filters.http.basic_auth;envoy.filters.http.oauth2;envoy.filters.http.jwt_authn;envoy.filters.http.stateful_session;envoy.filters.http.buffer;envoy.filters.http.lua;envoy.filters.http.ext_proc;envoy.filters.http.wasm;envoy.filters.http.rbac;envoy.filters.http.local_ratelimit;envoy.filters.http.ratelimit;envoy.filters.http.grpc_web;envoy.filters.http.grpc_stats;envoy.filters.http.custom_response;envoy.filters.http.credential_injector;envoy.filters.http.compressor
+type EnvoyFilter string
+
+const (
+ // EnvoyFilterHealthCheck defines the Envoy HTTP health check filter.
+ EnvoyFilterHealthCheck EnvoyFilter = "envoy.filters.http.health_check"
+
+ // EnvoyFilterFault defines the Envoy HTTP fault filter.
+ EnvoyFilterFault EnvoyFilter = "envoy.filters.http.fault"
+
+ // EnvoyFilterCORS defines the Envoy HTTP CORS filter.
+ EnvoyFilterCORS EnvoyFilter = "envoy.filters.http.cors"
+
+ // EnvoyFilterExtAuthz defines the Envoy HTTP external authorization filter.
+ EnvoyFilterExtAuthz EnvoyFilter = "envoy.filters.http.ext_authz"
+
+ // EnvoyFilterAPIKeyAuth defines the Envoy HTTP api key authentication filter.
+ //nolint:gosec // this is not an API key credential.
+ EnvoyFilterAPIKeyAuth EnvoyFilter = "envoy.filters.http.api_key_auth"
+
+ // EnvoyFilterBasicAuth defines the Envoy HTTP basic authentication filter.
+ EnvoyFilterBasicAuth EnvoyFilter = "envoy.filters.http.basic_auth"
+
+ // EnvoyFilterOAuth2 defines the Envoy HTTP OAuth2 filter.
+ EnvoyFilterOAuth2 EnvoyFilter = "envoy.filters.http.oauth2"
+
+ // EnvoyFilterJWTAuthn defines the Envoy HTTP JWT authentication filter.
+ EnvoyFilterJWTAuthn EnvoyFilter = "envoy.filters.http.jwt_authn"
+
+ // EnvoyFilterSessionPersistence defines the Envoy HTTP session persistence filter.
+ EnvoyFilterSessionPersistence EnvoyFilter = "envoy.filters.http.stateful_session"
+
+ // EnvoyFilterExtProc defines the Envoy HTTP external process filter.
+ EnvoyFilterExtProc EnvoyFilter = "envoy.filters.http.ext_proc"
+
+ // EnvoyFilterWasm defines the Envoy HTTP WebAssembly filter.
+ EnvoyFilterWasm EnvoyFilter = "envoy.filters.http.wasm"
+
+ // EnvoyFilterLua defines the Envoy HTTP Lua filter.
+ EnvoyFilterLua EnvoyFilter = "envoy.filters.http.lua"
+
+ // EnvoyFilterRBAC defines the Envoy RBAC filter.
+ EnvoyFilterRBAC EnvoyFilter = "envoy.filters.http.rbac"
+
+ // EnvoyFilterLocalRateLimit defines the Envoy HTTP local rate limit filter.
+ EnvoyFilterLocalRateLimit EnvoyFilter = "envoy.filters.http.local_ratelimit"
+
+ // EnvoyFilterRateLimit defines the Envoy HTTP rate limit filter.
+ EnvoyFilterRateLimit EnvoyFilter = "envoy.filters.http.ratelimit"
+
+ // EnvoyFilterGRPCWeb defines the Envoy HTTP gRPC-web filter.
+ EnvoyFilterGRPCWeb EnvoyFilter = "envoy.filters.http.grpc_web"
+
+ // EnvoyFilterGRPCStats defines the Envoy HTTP gRPC stats filter.
+ EnvoyFilterGRPCStats EnvoyFilter = "envoy.filters.http.grpc_stats"
+
+ // EnvoyFilterCustomResponse defines the Envoy HTTP custom response filter.
+ EnvoyFilterCustomResponse EnvoyFilter = "envoy.filters.http.custom_response"
+
+ // EnvoyFilterCredentialInjector defines the Envoy HTTP credential injector filter.
+ EnvoyFilterCredentialInjector EnvoyFilter = "envoy.filters.http.credential_injector"
+
+ // EnvoyFilterCompressor defines the Envoy HTTP compressor filter.
+ EnvoyFilterCompressor EnvoyFilter = "envoy.filters.http.compressor"
+
+ // EnvoyFilterRouter defines the Envoy HTTP router filter.
+ EnvoyFilterRouter EnvoyFilter = "envoy.filters.http.router"
+
+ // EnvoyFilterBuffer defines the Envoy HTTP buffer filter
+ EnvoyFilterBuffer EnvoyFilter = "envoy.filters.http.buffer"
+
+ // EnvoyFilterHeaderMutation defines the Envoy HTTP header mutation filter
+ EnvoyFilterHeaderMutation EnvoyFilter = "envoy.filters.http.header_mutation"
+
+ // StatFormatterRouteName defines the Route Name formatter for stats
+ StatFormatterRouteName string = "%ROUTE_NAME%"
+
+ // StatFormatterRouteNamespace defines the Route Name formatter for stats
+ StatFormatterRouteNamespace string = "%ROUTE_NAMESPACE%"
+
+ // StatFormatterRouteKind defines the Route Name formatter for stats
+ StatFormatterRouteKind string = "%ROUTE_KIND%"
+
+ // StatFormatterRouteRuleName defines the Route Name formatter for stats
+ StatFormatterRouteRuleName string = "%ROUTE_RULE_NAME%"
+
+ // StatFormatterRouteRuleNumber defines the Route Name formatter for stats
+ StatFormatterRouteRuleNumber string = "%ROUTE_RULE_NUMBER%"
+
+ // StatFormatterBackendRefs defines the Route Name formatter for stats
+ StatFormatterBackendRefs string = "%BACKEND_REFS%"
+)
+
+type ProxyTelemetry struct {
+ // AccessLogs defines accesslog parameters for managed proxies.
+ // If unspecified, will send default format to stdout.
+ // +optional
+ AccessLog *ProxyAccessLog `json:"accessLog,omitempty"`
+ // Tracing defines tracing configuration for managed proxies.
+ // If unspecified, will not send tracing data.
+ // +optional
+ Tracing *ProxyTracing `json:"tracing,omitempty"`
+
+ // Metrics defines metrics configuration for managed proxies.
+ Metrics *ProxyMetrics `json:"metrics,omitempty"`
+}
+
+// EnvoyProxyProviderType defines the types of providers supported by Envoy Proxy.
+//
+// +kubebuilder:validation:Enum=Kubernetes;Host
+type EnvoyProxyProviderType string
+
+const (
+ // EnvoyProxyProviderTypeKubernetes defines the "Kubernetes" provider.
+ EnvoyProxyProviderTypeKubernetes EnvoyProxyProviderType = "Kubernetes"
+
+ // EnvoyProxyProviderTypeHost defines the "Host" provider.
+ EnvoyProxyProviderTypeHost EnvoyProxyProviderType = "Host"
+)
+
+// EnvoyProxyProvider defines the desired state of a resource provider.
+// +union
+type EnvoyProxyProvider struct {
+ // Type is the type of resource provider to use. A resource provider provides
+ // infrastructure resources for running the data plane, e.g. Envoy proxy, and
+ // optional auxiliary control planes. Supported types are "Kubernetes"and "Host".
+ //
+ // +unionDiscriminator
+ Type EnvoyProxyProviderType `json:"type"`
+ // Kubernetes defines the desired state of the Kubernetes resource provider.
+ // Kubernetes provides infrastructure resources for running the data plane,
+ // e.g. Envoy proxy. If unspecified and type is "Kubernetes", default settings
+ // for managed Kubernetes resources are applied.
+ //
+ // +optional
+ Kubernetes *EnvoyProxyKubernetesProvider `json:"kubernetes,omitempty"`
+ // Host provides runtime deployment of the data plane as a child process on the
+ // host environment.
+ // If unspecified and type is "Host", default settings for the custom provider
+ // are applied.
+ //
+ // +optional
+ Host *EnvoyProxyHostProvider `json:"host,omitempty"`
+}
+
+// ShutdownConfig defines configuration for graceful envoy shutdown process.
+type ShutdownConfig struct {
+ // DrainTimeout defines the graceful drain timeout. This should be less than the pod's terminationGracePeriodSeconds.
+ // If unspecified, defaults to 60 seconds.
+ //
+ // +optional
+ DrainTimeout *gwapiv1.Duration `json:"drainTimeout,omitempty"`
+ // MinDrainDuration defines the minimum drain duration allowing time for endpoint deprogramming to complete.
+ // If unspecified, defaults to 10 seconds.
+ //
+ // +optional
+ MinDrainDuration *gwapiv1.Duration `json:"minDrainDuration,omitempty"`
+}
+
+// +kubebuilder:validation:XValidation:rule="((has(self.envoyDeployment) && !has(self.envoyDaemonSet)) || (!has(self.envoyDeployment) && has(self.envoyDaemonSet))) || (!has(self.envoyDeployment) && !has(self.envoyDaemonSet))",message="only one of envoyDeployment or envoyDaemonSet can be specified"
+// +kubebuilder:validation:XValidation:rule="((has(self.envoyHpa) && !has(self.envoyDaemonSet)) || (!has(self.envoyHpa) && has(self.envoyDaemonSet))) || (!has(self.envoyHpa) && !has(self.envoyDaemonSet))",message="cannot use envoyHpa if envoyDaemonSet is used"
+//
+// EnvoyProxyKubernetesProvider defines configuration for the Kubernetes resource
+// provider.
+type EnvoyProxyKubernetesProvider struct {
+ // EnvoyDeployment defines the desired state of the Envoy deployment resource.
+ // If unspecified, default settings for the managed Envoy deployment resource
+ // are applied.
+ //
+ // +optional
+ EnvoyDeployment *KubernetesDeploymentSpec `json:"envoyDeployment,omitempty"`
+
+ // EnvoyDaemonSet defines the desired state of the Envoy daemonset resource.
+ // Disabled by default, a deployment resource is used instead to provision the Envoy Proxy fleet
+ //
+ // +optional
+ EnvoyDaemonSet *KubernetesDaemonSetSpec `json:"envoyDaemonSet,omitempty"`
+
+ // EnvoyService defines the desired state of the Envoy service resource.
+ // If unspecified, default settings for the managed Envoy service resource
+ // are applied.
+ //
+ // +optional
+ EnvoyService *KubernetesServiceSpec `json:"envoyService,omitempty"`
+
+ // EnvoyHpa defines the Horizontal Pod Autoscaler settings for Envoy Proxy Deployment.
+ //
+ // +optional
+ EnvoyHpa *KubernetesHorizontalPodAutoscalerSpec `json:"envoyHpa,omitempty"`
+
+ // UseListenerPortAsContainerPort disables the port shifting feature in the Envoy Proxy.
+ // When set to false (default value), if the service port is a privileged port (1-1023), add a constant to the value converting it into an ephemeral port.
+ // This allows the container to bind to the port without needing a CAP_NET_BIND_SERVICE capability.
+ //
+ // +optional
+ UseListenerPortAsContainerPort *bool `json:"useListenerPortAsContainerPort,omitempty"`
+
+ // EnvoyPDB allows to control the pod disruption budget of an Envoy Proxy.
+ // +optional
+ EnvoyPDB *KubernetesPodDisruptionBudgetSpec `json:"envoyPDB,omitempty"`
+
+ // EnvoyServiceAccount defines the desired state of the Envoy service account resource.
+ EnvoyServiceAccount *KubernetesServiceAccountSpec `json:"envoyServiceAccount,omitempty"`
+}
+
+// EnvoyProxyHostProvider defines configuration for the "Host" resource provider.
+type EnvoyProxyHostProvider struct {
+ // EnvoyVersion is the version of Envoy to use. If unspecified, the version
+ // against which Envoy Gateway is built will be used.
+ //
+ // +optional
+ EnvoyVersion *string `json:"envoyVersion,omitempty"`
+}
+
+type KubernetesServiceAccountSpec struct {
+ // Name of the Service Account.
+ // When unset, this defaults to an autogenerated name.
+ //
+ // +optional
+ Name *string `json:"name,omitempty"`
+}
+
+// ProxyLogging defines logging parameters for managed proxies.
+type ProxyLogging struct {
+ // Level is a map of logging level per component, where the component is the key
+ // and the log level is the value. If unspecified, defaults to "default: warn".
+ //
+ // +kubebuilder:default={default: warn}
+ Level map[ProxyLogComponent]LogLevel `json:"level,omitempty"`
+}
+
+// ProxyLogComponent defines a component that supports a configured logging level.
+// +kubebuilder:validation:Enum=system;upstream;http;connection;admin;client;filter;main;router;runtime
+type ProxyLogComponent string
+
+const (
+ // LogComponentDefault defines the default logging component.
+ // See more details: https://www.envoyproxy.io/docs/envoy/latest/operations/cli#cmdoption-l
+ LogComponentDefault ProxyLogComponent = "default"
+
+ // LogComponentUpstream defines the "upstream" logging component.
+ LogComponentUpstream ProxyLogComponent = "upstream"
+
+ // LogComponentHTTP defines the "http" logging component.
+ LogComponentHTTP ProxyLogComponent = "http"
+
+ // LogComponentConnection defines the "connection" logging component.
+ LogComponentConnection ProxyLogComponent = "connection"
+
+ // LogComponentAdmin defines the "admin" logging component.
+ LogComponentAdmin ProxyLogComponent = "admin"
+
+ // LogComponentClient defines the "client" logging component.
+ LogComponentClient ProxyLogComponent = "client"
+
+ // LogComponentFilter defines the "filter" logging component.
+ LogComponentFilter ProxyLogComponent = "filter"
+
+ // LogComponentMain defines the "main" logging component.
+ LogComponentMain ProxyLogComponent = "main"
+
+ // LogComponentRouter defines the "router" logging component.
+ LogComponentRouter ProxyLogComponent = "router"
+
+ // LogComponentRuntime defines the "runtime" logging component.
+ LogComponentRuntime ProxyLogComponent = "runtime"
+)
+
+// ProxyBootstrap defines Envoy Bootstrap configuration.
+// +union
+// +kubebuilder:validation:XValidation:rule="self.type == 'JSONPatch' ? self.jsonPatches.size() > 0 : has(self.value)", message="provided bootstrap patch doesn't match the configured patch type"
+type ProxyBootstrap struct {
+ // Type is the type of the bootstrap configuration, it should be either **Replace**, **Merge**, or **JSONPatch**.
+ // If unspecified, it defaults to Replace.
+ // +optional
+ // +kubebuilder:default=Replace
+ // +unionDiscriminator
+ Type *BootstrapType `json:"type"`
+
+ // Value is a YAML string of the bootstrap.
+ // +optional
+ Value *string `json:"value,omitempty"`
+
+ // JSONPatches is an array of JSONPatches to be applied to the default bootstrap. Patches are
+ // applied in the order in which they are defined.
+ JSONPatches []JSONPatchOperation `json:"jsonPatches,omitempty"`
+}
+
+// BootstrapType defines the types of bootstrap supported by Envoy Gateway.
+// +kubebuilder:validation:Enum=Merge;Replace;JSONPatch
+type BootstrapType string
+
+const (
+ // Merge merges the provided bootstrap with the default one. The provided bootstrap can add or override a value
+ // within a map, or add a new value to a list.
+ // Please note that the provided bootstrap can't override a value within a list.
+ BootstrapTypeMerge BootstrapType = "Merge"
+
+ // Replace replaces the default bootstrap with the provided one.
+ BootstrapTypeReplace BootstrapType = "Replace"
+
+ // JSONPatch applies the provided JSONPatches to the default bootstrap.
+ BootstrapTypeJSONPatch BootstrapType = "JSONPatch"
+)
+
+// EnvoyProxyStatus defines the observed state of EnvoyProxy. This type is not implemented
+// until https://github.com/envoyproxy/gateway/issues/1007 is fixed.
+type EnvoyProxyStatus struct {
+ // INSERT ADDITIONAL STATUS FIELDS - define observed state of cluster.
+ // Important: Run "make" to regenerate code after modifying this file.
+}
+
+// +kubebuilder:object:root=true
+
+// EnvoyProxyList contains a list of EnvoyProxy
+type EnvoyProxyList struct {
+ metav1.TypeMeta `json:",inline"`
+ metav1.ListMeta `json:"metadata,omitempty"`
+ Items []EnvoyProxy `json:"items"`
+}
+
+// IPFamily defines the IP family to use for the Envoy proxy.
+type IPFamily string
+
+const (
+ // IPv4 defines the IPv4 family.
+ IPv4 IPFamily = "IPv4"
+ // IPv6 defines the IPv6 family.
+ IPv6 IPFamily = "IPv6"
+ // DualStack defines the dual-stack family.
+ // When set to DualStack, Envoy proxy will listen on both IPv4 and IPv6 addresses
+ // for incoming client traffic, enabling support for both IP protocol versions.
+ DualStack IPFamily = "DualStack"
+)
+
+func init() {
+ SchemeBuilder.Register(&EnvoyProxy{}, &EnvoyProxyList{})
+}
diff --git a/vendor/github.com/envoyproxy/gateway/api/v1alpha1/ext_auth_types.go b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/ext_auth_types.go
new file mode 100644
index 00000000..5457ded6
--- /dev/null
+++ b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/ext_auth_types.go
@@ -0,0 +1,117 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package v1alpha1
+
+import gwapiv1 "sigs.k8s.io/gateway-api/apis/v1"
+
+// ExtAuth defines the configuration for External Authorization.
+//
+// +kubebuilder:validation:XValidation:rule="(has(self.grpc) || has(self.http))",message="one of grpc or http must be specified"
+// +kubebuilder:validation:XValidation:rule="(has(self.grpc) && !has(self.http)) || (!has(self.grpc) && has(self.http))",message="only one of grpc or http can be specified"
+type ExtAuth struct {
+ // GRPC defines the gRPC External Authorization service.
+ // Either GRPCService or HTTPService must be specified,
+ // and only one of them can be provided.
+ GRPC *GRPCExtAuthService `json:"grpc,omitempty"`
+
+ // HTTP defines the HTTP External Authorization service.
+ // Either GRPCService or HTTPService must be specified,
+ // and only one of them can be provided.
+ HTTP *HTTPExtAuthService `json:"http,omitempty"`
+
+ // HeadersToExtAuth defines the client request headers that will be included
+ // in the request to the external authorization service.
+ // Note: If not specified, the default behavior for gRPC and HTTP external
+ // authorization services is different due to backward compatibility reasons.
+ // All headers will be included in the check request to a gRPC authorization server.
+ // Only the following headers will be included in the check request to an HTTP
+ // authorization server: Host, Method, Path, Content-Length, and Authorization.
+ // And these headers will always be included to the check request to an HTTP
+ // authorization server by default, no matter whether they are specified
+ // in HeadersToExtAuth or not.
+ // +optional
+ HeadersToExtAuth []string `json:"headersToExtAuth,omitempty"`
+
+ // BodyToExtAuth defines the Body to Ext Auth configuration.
+ // +optional
+ BodyToExtAuth *BodyToExtAuth `json:"bodyToExtAuth,omitempty"`
+
+ // Timeout defines the timeout for requests to the external authorization service.
+ // If not specified, defaults to 10 seconds.
+ // +optional
+ Timeout *gwapiv1.Duration `json:"timeout,omitempty"`
+
+ // FailOpen is a switch used to control the behavior when a response from the External Authorization service cannot be obtained.
+ // If FailOpen is set to true, the system allows the traffic to pass through.
+ // Otherwise, if it is set to false or not set (defaulting to false),
+ // the system blocks the traffic and returns a HTTP 5xx error, reflecting a fail-closed approach.
+ // This setting determines whether to prioritize accessibility over strict security in case of authorization service failure.
+ //
+ // If set to true, the External Authorization will also be bypassed if its configuration is invalid.
+ //
+ // +optional
+ // +kubebuilder:default=false
+ FailOpen *bool `json:"failOpen,omitempty"`
+
+ // RecomputeRoute clears the route cache and recalculates the routing decision.
+ // This field must be enabled if the headers added or modified by the ExtAuth are used for
+ // route matching decisions. If the recomputation selects a new route, features targeting
+ // the new matched route will be applied.
+ //
+ // +optional
+ RecomputeRoute *bool `json:"recomputeRoute,omitempty"`
+}
+
+// GRPCExtAuthService defines the gRPC External Authorization service
+// The authorization request message is defined in
+// https://www.envoyproxy.io/docs/envoy/latest/api-v3/service/auth/v3/external_auth.proto
+// +kubebuilder:validation:XValidation:message="backendRef or backendRefs needs to be set",rule="has(self.backendRef) || self.backendRefs.size() > 0"
+// +kubebuilder:validation:XValidation:message="BackendRefs only supports Service, ServiceImport, and Backend kind.",rule="has(self.backendRefs) ? self.backendRefs.all(f, f.kind == 'Service' || f.kind == 'ServiceImport' || f.kind == 'Backend') : true"
+// +kubebuilder:validation:XValidation:message="BackendRefs only supports Core, multicluster.x-k8s.io, and gateway.envoyproxy.io groups.",rule="has(self.backendRefs) ? (self.backendRefs.all(f, f.group == \"\" || f.group == 'multicluster.x-k8s.io' || f.group == 'gateway.envoyproxy.io')) : true"
+type GRPCExtAuthService struct {
+ // Only Service kind is supported for now.
+ BackendCluster `json:",inline"`
+}
+
+// HTTPExtAuthService defines the HTTP External Authorization service
+//
+// +kubebuilder:validation:XValidation:message="backendRef or backendRefs needs to be set",rule="has(self.backendRef) || self.backendRefs.size() > 0"
+// +kubebuilder:validation:XValidation:message="BackendRefs only supports Service, ServiceImport, and Backend kind.",rule="has(self.backendRefs) ? self.backendRefs.all(f, f.kind == 'Service' || f.kind == 'ServiceImport' || f.kind == 'Backend') : true"
+// +kubebuilder:validation:XValidation:message="BackendRefs only supports Core, multicluster.x-k8s.io, and gateway.envoyproxy.io groups.",rule="has(self.backendRefs) ? (self.backendRefs.all(f, f.group == \"\" || f.group == 'multicluster.x-k8s.io' || f.group == 'gateway.envoyproxy.io')) : true"
+type HTTPExtAuthService struct {
+ // Only Service kind is supported for now.
+ BackendCluster `json:",inline"`
+
+ // Path is the path of the HTTP External Authorization service.
+ // If path is specified, the authorization request will be sent to that path,
+ // or else the authorization request will use the path of the original request.
+ //
+ // Please note that the original request path will be appended to the path specified here.
+ // For example, if the original request path is "/hello", and the path specified here is "/auth",
+ // then the path of the authorization request will be "/auth/hello". If the path is not specified,
+ // the path of the authorization request will be "/hello".
+ // +optional
+ Path *string `json:"path,omitempty"`
+
+ // HeadersToBackend are the authorization response headers that will be added
+ // to the original client request before sending it to the backend server.
+ // Note that coexisting headers will be overridden.
+ // If not specified, no authorization response headers will be added to the
+ // original client request.
+ // +optional
+ HeadersToBackend []string `json:"headersToBackend,omitempty"`
+}
+
+// BodyToExtAuth defines the Body to Ext Auth configuration
+type BodyToExtAuth struct {
+ // MaxRequestBytes is the maximum size of a message body that the filter will hold in memory.
+ // Envoy will return HTTP 413 and will not initiate the authorization process when buffer
+ // reaches the number set in this field.
+ // Note that this setting will have precedence over failOpen mode.
+ //
+ // +kubebuilder:validation:Minimum=1
+ MaxRequestBytes uint32 `json:"maxRequestBytes"`
+}
diff --git a/vendor/github.com/envoyproxy/gateway/api/v1alpha1/ext_proc_types.go b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/ext_proc_types.go
new file mode 100644
index 00000000..41f57e95
--- /dev/null
+++ b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/ext_proc_types.go
@@ -0,0 +1,125 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package v1alpha1
+
+import (
+ gwapiv1 "sigs.k8s.io/gateway-api/apis/v1"
+)
+
+// +kubebuilder:validation:Enum=Streamed;Buffered;BufferedPartial;FullDuplexStreamed
+type ExtProcBodyProcessingMode string
+
+const (
+ // StreamedExtProcBodyProcessingMode will stream the body to the server in pieces as they arrive at the proxy.
+ StreamedExtProcBodyProcessingMode ExtProcBodyProcessingMode = "Streamed"
+ // BufferedExtProcBodyProcessingMode will buffer the message body in memory and send the entire body at once. If the body exceeds the configured buffer limit, then the downstream system will receive an error.
+ BufferedExtProcBodyProcessingMode ExtProcBodyProcessingMode = "Buffered"
+ // FullDuplexStreamedExtBodyProcessingMode will send the body in pieces, to be read in a stream. When enabled, trailers are also sent, and failOpen must be false.
+ // Full details here: https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/http/ext_proc/v3/processing_mode.proto.html#enum-extensions-filters-http-ext-proc-v3-processingmode-bodysendmode
+ FullDuplexStreamedExtBodyProcessingMode ExtProcBodyProcessingMode = "FullDuplexStreamed"
+ // BufferedPartialExtBodyHeaderProcessingMode will buffer the message body in memory and send the entire body in one chunk. If the body exceeds the configured buffer limit, then the body contents up to the buffer limit will be sent.
+ BufferedPartialExtBodyHeaderProcessingMode ExtProcBodyProcessingMode = "BufferedPartial"
+)
+
+// ProcessingModeOptions defines if headers or body should be processed by the external service
+// and which attributes are sent to the processor
+type ProcessingModeOptions struct {
+ // Defines body processing mode
+ //
+ // +optional
+ Body *ExtProcBodyProcessingMode `json:"body,omitempty"`
+
+ // Defines which attributes are sent to the external processor. Envoy Gateway currently
+ // supports only the following attribute prefixes: connection, source, destination,
+ // request, response, upstream and xds.route.
+ // https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/advanced/attributes
+ //
+ // +optional
+ // +kubebuilder:validation:items:Pattern=`^(connection\.|source\.|destination\.|request\.|response\.|upstream\.|xds\.route_)[a-z_1-9]*$`
+ Attributes []string `json:"attributes,omitempty"`
+}
+
+// ExtProcProcessingMode defines if and how headers and bodies are sent to the service.
+// https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/http/ext_proc/v3/processing_mode.proto#envoy-v3-api-msg-extensions-filters-http-ext-proc-v3-processingmode
+type ExtProcProcessingMode struct {
+ // Defines processing mode for requests. If present, request headers are sent. Request body is processed according
+ // to the specified mode.
+ //
+ // +optional
+ Request *ProcessingModeOptions `json:"request,omitempty"`
+
+ // Defines processing mode for responses. If present, response headers are sent. Response body is processed according
+ // to the specified mode.
+ //
+ // +optional
+ Response *ProcessingModeOptions `json:"response,omitempty"`
+
+ // AllowModeOverride allows the external processor to override the processing mode set via the
+ // `mode_override` field in the gRPC response message. This defaults to false.
+ //
+ // +optional
+ AllowModeOverride bool `json:"allowModeOverride,omitempty"`
+}
+
+// ExtProc defines the configuration for External Processing filter.
+// +kubebuilder:validation:XValidation:message="BackendRefs must be used, backendRef is not supported.",rule="!has(self.backendRef)"
+// +kubebuilder:validation:XValidation:message="BackendRefs only supports Service, ServiceImport, and Backend kind.",rule="has(self.backendRefs) ? self.backendRefs.all(f, f.kind == 'Service' || f.kind == 'ServiceImport' || f.kind == 'Backend') : true"
+// +kubebuilder:validation:XValidation:message="BackendRefs only supports Core, multicluster.x-k8s.io, and gateway.envoyproxy.io groups.",rule="has(self.backendRefs) ? (self.backendRefs.all(f, f.group == \"\" || f.group == 'multicluster.x-k8s.io' || f.group == 'gateway.envoyproxy.io')) : true"
+// +kubebuilder:validation:XValidation:message="If FullDuplexStreamed body processing mode is used, FailOpen must be false.",rule="!(has(self.failOpen) && self.failOpen == true && has(self.processingMode) && ((has(self.processingMode.request) && has(self.processingMode.request.body) && self.processingMode.request.body == 'FullDuplexStreamed') || (has(self.processingMode.response) && has(self.processingMode.response.body) && self.processingMode.response.body == 'FullDuplexStreamed')))"
+type ExtProc struct {
+ BackendCluster `json:",inline"`
+
+ // MessageTimeout is the timeout for a response to be returned from the external processor
+ // Default: 200ms
+ //
+ // +optional
+ MessageTimeout *gwapiv1.Duration `json:"messageTimeout,omitempty"`
+
+ // FailOpen is a switch used to control the behavior when failing to call the external processor.
+ //
+ // If FailOpen is set to true, the system bypasses the ExtProc extension and
+ // allows the traffic to pass through. If it is set to false or
+ // not set (defaulting to false), the system blocks the traffic and returns
+ // an HTTP 5xx error.
+ //
+ // If set to true, the ExtProc extension will also be bypassed if the configuration is invalid.
+ //
+ // +optional
+ // +kubebuilder:default=false
+ FailOpen *bool `json:"failOpen,omitempty"`
+
+ // ProcessingMode defines how request and response body is processed
+ // Default: header and body are not sent to the external processor
+ //
+ // +optional
+ ProcessingMode *ExtProcProcessingMode `json:"processingMode,omitempty"`
+
+ // Metadata defines options related to the sending and receiving of dynamic metadata.
+ // These options define which metadata namespaces would be sent to the processor and which dynamic metadata
+ // namespaces the processor would be permitted to emit metadata to.
+ // Users can specify custom namespaces or well-known envoy metadata namespace (such as envoy.filters.http.ext_authz)
+ // documented here: https://www.envoyproxy.io/docs/envoy/latest/configuration/advanced/well_known_dynamic_metadata#well-known-dynamic-metadata
+ // Default: no metadata context is sent or received from the external processor
+ //
+ // +optional
+ Metadata *ExtProcMetadata `json:"metadata,omitempty"`
+}
+
+// ExtProcMetadata defines options related to the sending and receiving of dynamic metadata to and from the
+// external processor service
+type ExtProcMetadata struct {
+ // AccessibleNamespaces are metadata namespaces that are sent to the external processor as context
+ //
+ // +optional
+ AccessibleNamespaces []string `json:"accessibleNamespaces,omitempty"`
+
+ // WritableNamespaces are metadata namespaces that the external processor can write to
+ //
+ // +kubebuilder:validation:XValidation:rule="self.all(f, !f.startsWith('envoy.filters.http'))",message="writableNamespaces cannot contain well-known Envoy HTTP filter namespaces"
+ // +kubebuilder:validation:MaxItems=8
+ // +optional
+ WritableNamespaces []string `json:"writableNamespaces,omitempty"`
+}
diff --git a/vendor/github.com/envoyproxy/gateway/api/v1alpha1/fault_injection.go b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/fault_injection.go
new file mode 100644
index 00000000..eab92714
--- /dev/null
+++ b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/fault_injection.go
@@ -0,0 +1,62 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package v1alpha1
+
+import gwapiv1 "sigs.k8s.io/gateway-api/apis/v1"
+
+// FaultInjection defines the fault injection policy to be applied. This configuration can be used to
+// inject delays and abort requests to mimic failure scenarios such as service failures and overloads
+// +union
+//
+// +kubebuilder:validation:XValidation:rule=" has(self.delay) || has(self.abort) ",message="Delay and abort faults are set at least one."
+type FaultInjection struct {
+ // If specified, a delay will be injected into the request.
+ //
+ // +optional
+ Delay *FaultInjectionDelay `json:"delay,omitempty"`
+
+ // If specified, the request will be aborted if it meets the configuration criteria.
+ //
+ // +optional
+ Abort *FaultInjectionAbort `json:"abort,omitempty"`
+}
+
+// FaultInjectionDelay defines the delay fault injection configuration
+type FaultInjectionDelay struct {
+ // FixedDelay specifies the fixed delay duration
+ //
+ // +required
+ FixedDelay *gwapiv1.Duration `json:"fixedDelay"`
+
+ // Percentage specifies the percentage of requests to be delayed. Default 100%, if set 0, no requests will be delayed. Accuracy to 0.0001%.
+ // +optional
+ // +kubebuilder:default=100
+ Percentage *float32 `json:"percentage,omitempty"`
+}
+
+// FaultInjectionAbort defines the abort fault injection configuration
+// +union
+//
+// +kubebuilder:validation:XValidation:rule=" !(has(self.httpStatus) && has(self.grpcStatus)) ",message="httpStatus and grpcStatus cannot be simultaneously defined."
+// +kubebuilder:validation:XValidation:rule=" has(self.httpStatus) || has(self.grpcStatus) ",message="httpStatus and grpcStatus are set at least one."
+type FaultInjectionAbort struct {
+ // StatusCode specifies the HTTP status code to be returned
+ //
+ // +optional
+ // +kubebuilder:validation:Minimum=200
+ // +kubebuilder:validation:Maximum=600
+ HTTPStatus *int32 `json:"httpStatus,omitempty"`
+
+ // GrpcStatus specifies the GRPC status code to be returned
+ //
+ // +optional
+ GrpcStatus *int32 `json:"grpcStatus,omitempty"`
+
+ // Percentage specifies the percentage of requests to be aborted. Default 100%, if set 0, no requests will be aborted. Accuracy to 0.0001%.
+ // +optional
+ // +kubebuilder:default=100
+ Percentage *float32 `json:"percentage,omitempty"`
+}
diff --git a/vendor/github.com/envoyproxy/gateway/api/v1alpha1/groupversion_info.go b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/groupversion_info.go
new file mode 100644
index 00000000..be4c68a5
--- /dev/null
+++ b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/groupversion_info.go
@@ -0,0 +1,25 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package v1alpha1
+
+import (
+ "k8s.io/apimachinery/pkg/runtime/schema"
+ "sigs.k8s.io/controller-runtime/pkg/scheme"
+)
+
+const GroupName = "gateway.envoyproxy.io"
+
+var (
+
+ // GroupVersion is group version used to register these objects
+ GroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1alpha1"}
+
+ // SchemeBuilder is used to add go types to the GroupVersionKind scheme
+ SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}
+
+ // AddToScheme adds the types in this group-version to the given scheme.
+ AddToScheme = SchemeBuilder.AddToScheme
+)
diff --git a/vendor/github.com/envoyproxy/gateway/api/v1alpha1/healthcheck_types.go b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/healthcheck_types.go
new file mode 100644
index 00000000..7fd1cd6a
--- /dev/null
+++ b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/healthcheck_types.go
@@ -0,0 +1,232 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package v1alpha1
+
+import gwapiv1 "sigs.k8s.io/gateway-api/apis/v1"
+
+// HealthCheck configuration to decide which endpoints
+// are healthy and can be used for routing.
+type HealthCheck struct {
+ // Active health check configuration
+ // +optional
+ Active *ActiveHealthCheck `json:"active,omitempty"`
+
+ // Passive passive check configuration
+ // +optional
+ Passive *PassiveHealthCheck `json:"passive,omitempty"`
+
+ // When number of unhealthy endpoints for a backend reaches this threshold
+ // Envoy will disregard health status and balance across all endpoints.
+ // It's designed to prevent a situation in which host failures cascade throughout the cluster
+ // as load increases. If not set, the default value is 50%. To disable panic mode, set value to `0`.
+ // +kubebuilder:validation:Minimum=0
+ // +kubebuilder:validation:Maximum=100
+ // +optional
+ PanicThreshold *uint32 `json:"panicThreshold,omitempty"`
+}
+
+// PassiveHealthCheck defines the configuration for passive health checks in the context of Envoy's Outlier Detection,
+// see https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/outlier
+type PassiveHealthCheck struct {
+ // SplitExternalLocalOriginErrors enables splitting of errors between external and local origin.
+ //
+ // +kubebuilder:default=false
+ // +optional
+ SplitExternalLocalOriginErrors *bool `json:"splitExternalLocalOriginErrors,omitempty"`
+
+ // Interval defines the time between passive health checks.
+ //
+ // +kubebuilder:default="3s"
+ // +optional
+ Interval *gwapiv1.Duration `json:"interval,omitempty"`
+
+ // ConsecutiveLocalOriginFailures sets the number of consecutive local origin failures triggering ejection.
+ // Parameter takes effect only when split_external_local_origin_errors is set to true.
+ //
+ // +kubebuilder:default=5
+ // +optional
+ ConsecutiveLocalOriginFailures *uint32 `json:"consecutiveLocalOriginFailures,omitempty"`
+
+ // ConsecutiveGatewayErrors sets the number of consecutive gateway errors triggering ejection.
+ //
+ // +optional
+ ConsecutiveGatewayErrors *uint32 `json:"consecutiveGatewayErrors,omitempty"`
+
+ // Consecutive5xxErrors sets the number of consecutive 5xx errors triggering ejection.
+ //
+ // +kubebuilder:default=5
+ // +optional
+ Consecutive5xxErrors *uint32 `json:"consecutive5XxErrors,omitempty"`
+
+ // BaseEjectionTime defines the base duration for which a host will be ejected on consecutive failures.
+ //
+ // +kubebuilder:default="30s"
+ // +optional
+ BaseEjectionTime *gwapiv1.Duration `json:"baseEjectionTime,omitempty"`
+
+ // MaxEjectionPercent sets the maximum percentage of hosts in a cluster that can be ejected.
+ //
+ // +kubebuilder:default=10
+ // +optional
+ MaxEjectionPercent *int32 `json:"maxEjectionPercent,omitempty"`
+
+ // FailurePercentageThreshold sets the failure percentage threshold for outlier detection.
+ // If the failure percentage of a given host is greater than or equal to this value, it will be ejected.
+ // Defaults to 85.
+ //
+ // +kubebuilder:validation:Minimum=0
+ // +kubebuilder:validation:Maximum=100
+ // +optional
+ FailurePercentageThreshold *uint32 `json:"failurePercentageThreshold,omitempty"`
+}
+
+// ActiveHealthCheck defines the active health check configuration.
+// EG supports various types of active health checking including HTTP, TCP.
+// +union
+//
+// +kubebuilder:validation:XValidation:rule="self.type == 'HTTP' ? has(self.http) : !has(self.http)",message="If Health Checker type is HTTP, http field needs to be set."
+// +kubebuilder:validation:XValidation:rule="self.type == 'TCP' ? has(self.tcp) : !has(self.tcp)",message="If Health Checker type is TCP, tcp field needs to be set."
+// +kubebuilder:validation:XValidation:rule="has(self.grpc) ? self.type == 'GRPC' : true", message="The grpc field can only be set if the Health Checker type is GRPC."
+type ActiveHealthCheck struct {
+ // Timeout defines the time to wait for a health check response.
+ //
+ // +kubebuilder:default="1s"
+ // +optional
+ Timeout *gwapiv1.Duration `json:"timeout"`
+
+ // Interval defines the time between active health checks.
+ //
+ // +kubebuilder:default="3s"
+ // +optional
+ Interval *gwapiv1.Duration `json:"interval"`
+
+ // InitialJitter defines the maximum time Envoy will wait before the first health check.
+ // Envoy will randomly select a value between 0 and the initial jitter value.
+ //
+ // +optional
+ InitialJitter *gwapiv1.Duration `json:"initialJitter,omitempty"`
+
+ // UnhealthyThreshold defines the number of unhealthy health checks required before a backend host is marked unhealthy.
+ //
+ // +kubebuilder:validation:Minimum=1
+ // +kubebuilder:default=3
+ // +optional
+ UnhealthyThreshold *uint32 `json:"unhealthyThreshold"`
+
+ // HealthyThreshold defines the number of healthy health checks required before a backend host is marked healthy.
+ //
+ // +kubebuilder:validation:Minimum=1
+ // +kubebuilder:default=1
+ // +optional
+ HealthyThreshold *uint32 `json:"healthyThreshold"`
+
+ // Type defines the type of health checker.
+ // +kubebuilder:validation:Enum=HTTP;TCP;GRPC
+ // +unionDiscriminator
+ Type ActiveHealthCheckerType `json:"type" yaml:"type"`
+
+ // HTTP defines the configuration of http health checker.
+ // It's required while the health checker type is HTTP.
+ // +optional
+ HTTP *HTTPActiveHealthChecker `json:"http,omitempty" yaml:"http,omitempty"`
+
+ // TCP defines the configuration of tcp health checker.
+ // It's required while the health checker type is TCP.
+ // +optional
+ TCP *TCPActiveHealthChecker `json:"tcp,omitempty" yaml:"tcp,omitempty"`
+
+ // GRPC defines the configuration of the GRPC health checker.
+ // It's optional, and can only be used if the specified type is GRPC.
+ // +optional
+ GRPC *GRPCActiveHealthChecker `json:"grpc,omitempty" yaml:"grpc,omitempty"`
+}
+
+// ActiveHealthCheckerType is the type of health checker.
+// +kubebuilder:validation:Enum=HTTP;TCP;GRPC
+type ActiveHealthCheckerType string
+
+const (
+ // ActiveHealthCheckerTypeHTTP defines the HTTP type of health checking.
+ ActiveHealthCheckerTypeHTTP ActiveHealthCheckerType = "HTTP"
+ // ActiveHealthCheckerTypeTCP defines the TCP type of health checking.
+ ActiveHealthCheckerTypeTCP ActiveHealthCheckerType = "TCP"
+ // ActiveHealthCheckerTypeGRPC defines the GRPC type of health checking.
+ ActiveHealthCheckerTypeGRPC ActiveHealthCheckerType = "GRPC"
+)
+
+// HTTPActiveHealthChecker defines the settings of http health check.
+type HTTPActiveHealthChecker struct {
+ // Hostname defines the HTTP host that will be requested during health checking.
+ // Default: HTTPRoute or GRPCRoute hostname.
+ //
+ // +kubebuilder:validation:MinLength=1
+ // +kubebuilder:validation:MaxLength=253
+ // +kubebuilder:validation:Pattern=`^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$`
+ // +optional
+ Hostname *string `json:"hostname,omitempty" yaml:"hostname,omitempty"`
+ // Path defines the HTTP path that will be requested during health checking.
+ // +kubebuilder:validation:MinLength=1
+ // +kubebuilder:validation:MaxLength=1024
+ Path string `json:"path" yaml:"path"`
+ // Method defines the HTTP method used for health checking.
+ // Defaults to GET
+ // +optional
+ Method *string `json:"method,omitempty" yaml:"method,omitempty"`
+ // ExpectedStatuses defines a list of HTTP response statuses considered healthy.
+ // Defaults to 200 only
+ // +optional
+ ExpectedStatuses []HTTPStatus `json:"expectedStatuses,omitempty" yaml:"expectedStatuses,omitempty"`
+ // ExpectedResponse defines a list of HTTP expected responses to match.
+ // +optional
+ ExpectedResponse *ActiveHealthCheckPayload `json:"expectedResponse,omitempty" yaml:"expectedResponse,omitempty"`
+}
+
+// TCPActiveHealthChecker defines the settings of tcp health check.
+type TCPActiveHealthChecker struct {
+ // Send defines the request payload.
+ // +optional
+ Send *ActiveHealthCheckPayload `json:"send,omitempty" yaml:"send,omitempty"`
+ // Receive defines the expected response payload.
+ // +optional
+ Receive *ActiveHealthCheckPayload `json:"receive,omitempty" yaml:"receive,omitempty"`
+}
+
+// GRPCActiveHealthChecker defines the settings of the GRPC health check.
+type GRPCActiveHealthChecker struct {
+ // Service to send in the health check request.
+ // If this is not specified, then the health check request applies to the entire
+ // server and not to a specific service.
+ // +optional
+ Service *string `json:"service,omitempty" yaml:"service,omitempty"`
+}
+
+// ActiveHealthCheckPayloadType is the type of the payload.
+// +kubebuilder:validation:Enum=Text;Binary
+type ActiveHealthCheckPayloadType string
+
+const (
+ // ActiveHealthCheckPayloadTypeText defines the Text type payload.
+ ActiveHealthCheckPayloadTypeText ActiveHealthCheckPayloadType = "Text"
+ // ActiveHealthCheckPayloadTypeBinary defines the Binary type payload.
+ ActiveHealthCheckPayloadTypeBinary ActiveHealthCheckPayloadType = "Binary"
+)
+
+// ActiveHealthCheckPayload defines the encoding of the payload bytes in the payload.
+// +union
+// +kubebuilder:validation:XValidation:rule="self.type == 'Text' ? has(self.text) : !has(self.text)",message="If payload type is Text, text field needs to be set."
+// +kubebuilder:validation:XValidation:rule="self.type == 'Binary' ? has(self.binary) : !has(self.binary)",message="If payload type is Binary, binary field needs to be set."
+type ActiveHealthCheckPayload struct {
+ // Type defines the type of the payload.
+ // +kubebuilder:validation:Enum=Text;Binary
+ // +unionDiscriminator
+ Type ActiveHealthCheckPayloadType `json:"type" yaml:"type"`
+ // Text payload in plain text.
+ // +optional
+ Text *string `json:"text,omitempty" yaml:"text,omitempty"`
+ // Binary payload base64 encoded.
+ // +optional
+ Binary []byte `json:"binary,omitempty" yaml:"binary,omitempty"`
+}
diff --git a/vendor/github.com/envoyproxy/gateway/api/v1alpha1/httproutefilter_types.go b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/httproutefilter_types.go
new file mode 100644
index 00000000..29939b03
--- /dev/null
+++ b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/httproutefilter_types.go
@@ -0,0 +1,199 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package v1alpha1
+
+import (
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ gwapiv1 "sigs.k8s.io/gateway-api/apis/v1"
+)
+
+const (
+ // KindHTTPRouteFilter is the name of the HTTPRouteFilter kind.
+ KindHTTPRouteFilter = "HTTPRouteFilter"
+
+ // InjectedCredentialKey is the key in the secret where the injected credential is stored.
+ InjectedCredentialKey = "credential"
+)
+
+// +kubebuilder:object:root=true
+// +kubebuilder:resource:categories=envoy-gateway,shortName=hrf
+// +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp`
+
+// HTTPRouteFilter is a custom Envoy Gateway HTTPRouteFilter which provides extended
+// traffic processing options such as path regex rewrite, direct response and more.
+type HTTPRouteFilter struct {
+ metav1.TypeMeta `json:",inline"`
+ metav1.ObjectMeta `json:"metadata,omitempty"`
+
+ // Spec defines the desired state of HTTPRouteFilter.
+ Spec HTTPRouteFilterSpec `json:"spec"`
+}
+
+// HTTPRouteFilterSpec defines the desired state of HTTPRouteFilter.
+// +union
+type HTTPRouteFilterSpec struct {
+ // +optional
+ URLRewrite *HTTPURLRewriteFilter `json:"urlRewrite,omitempty"`
+ // +optional
+ DirectResponse *HTTPDirectResponseFilter `json:"directResponse,omitempty"`
+ // +optional
+ CredentialInjection *HTTPCredentialInjectionFilter `json:"credentialInjection,omitempty"`
+}
+
+// HTTPURLRewriteFilter define rewrites of HTTP URL components such as path and host
+type HTTPURLRewriteFilter struct {
+ // Hostname is the value to be used to replace the Host header value during
+ // forwarding.
+ //
+ // +optional
+ Hostname *HTTPHostnameModifier `json:"hostname,omitempty"`
+ // Path defines a path rewrite.
+ //
+ // +optional
+ Path *HTTPPathModifier `json:"path,omitempty"`
+}
+
+// HTTPDirectResponseFilter defines the configuration to return a fixed response.
+type HTTPDirectResponseFilter struct {
+ // Content Type of the direct response. This will be set in the Content-Type header.
+ //
+ // +optional
+ ContentType *string `json:"contentType,omitempty"`
+
+ // Body of the direct response.
+ //
+ // +optional
+ Body *CustomResponseBody `json:"body,omitempty"`
+
+ // Status Code of the HTTP response
+ // If unset, defaults to 200.
+ // +optional
+ StatusCode *int `json:"statusCode,omitempty"`
+
+ // Header defines the headers of the direct response.
+ // +optional
+ // +kubebuilder:validation:XValidation:rule="!has(self.remove) || size(self.remove) == 0",message="header.remove is not supported for DirectResponse"
+ Header *gwapiv1.HTTPHeaderFilter `json:"header,omitempty"`
+}
+
+// HTTPPathModifierType defines the type of path redirect or rewrite.
+type HTTPPathModifierType string
+
+const (
+ // RegexHTTPPathModifier This type of modifier indicates that the portions of the path that match the specified
+ // regex would be substituted with the specified substitution value
+ // https://www.envoyproxy.io/docs/envoy/latest/api-v3/type/matcher/v3/regex.proto#type-matcher-v3-regexmatchandsubstitute
+ RegexHTTPPathModifier HTTPPathModifierType = "ReplaceRegexMatch"
+)
+
+// HTTPPathModifierType defines the type of Hostname rewrite.
+type HTTPHostnameModifierType string
+
+const (
+ // HeaderHTTPHostnameModifier indicates that the Host header value would be replaced with the value of the header specified in header.
+ // https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/route/v3/route_components.proto#envoy-v3-api-field-config-route-v3-routeaction-host-rewrite-header
+ HeaderHTTPHostnameModifier HTTPHostnameModifierType = "Header"
+ // BackendHTTPHostnameModifier indicates that the Host header value would be replaced by the DNS name of the backend if it exists.
+ // https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/route/v3/route_components.proto#envoy-v3-api-field-config-route-v3-routeaction-auto-host-rewrite
+ BackendHTTPHostnameModifier HTTPHostnameModifierType = "Backend"
+)
+
+type ReplaceRegexMatch struct {
+ // Pattern matches a regular expression against the value of the HTTP Path.The regex string must
+ // adhere to the syntax documented in https://github.com/google/re2/wiki/Syntax.
+ // +kubebuilder:validation:MinLength=1
+ Pattern string `json:"pattern"`
+ // Substitution is an expression that replaces the matched portion.The expression may include numbered
+ // capture groups that adhere to syntax documented in https://github.com/google/re2/wiki/Syntax.
+ Substitution string `json:"substitution"`
+}
+
+// +kubebuilder:validation:XValidation:rule="self.type == 'ReplaceRegexMatch' ? has(self.replaceRegexMatch) : !has(self.replaceRegexMatch)",message="If HTTPPathModifier type is ReplaceRegexMatch, replaceRegexMatch field needs to be set."
+type HTTPPathModifier struct {
+ // +kubebuilder:validation:Enum=ReplaceRegexMatch
+ // +kubebuilder:validation:Required
+ Type HTTPPathModifierType `json:"type"`
+ // ReplaceRegexMatch defines a path regex rewrite. The path portions matched by the regex pattern are replaced by the defined substitution.
+ // https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/route/v3/route_components.proto#envoy-v3-api-field-config-route-v3-routeaction-regex-rewrite
+ // Some examples:
+ // (1) replaceRegexMatch:
+ // pattern: ^/service/([^/]+)(/.*)$
+ // substitution: \2/instance/\1
+ // Would transform /service/foo/v1/api into /v1/api/instance/foo.
+ // (2) replaceRegexMatch:
+ // pattern: one
+ // substitution: two
+ // Would transform /xxx/one/yyy/one/zzz into /xxx/two/yyy/two/zzz.
+ // (3) replaceRegexMatch:
+ // pattern: ^(.*?)one(.*)$
+ // substitution: \1two\2
+ // Would transform /xxx/one/yyy/one/zzz into /xxx/two/yyy/one/zzz.
+ // (3) replaceRegexMatch:
+ // pattern: (?i)/xxx/
+ // substitution: /yyy/
+ // Would transform path /aaa/XxX/bbb into /aaa/yyy/bbb (case-insensitive).
+ // +optional
+ ReplaceRegexMatch *ReplaceRegexMatch `json:"replaceRegexMatch,omitempty"`
+}
+
+// +kubebuilder:validation:XValidation:message="header must be nil if the type is not Header",rule="!(has(self.header) && self.type != 'Header')"
+// +kubebuilder:validation:XValidation:message="header must be specified for Header type",rule="!(!has(self.header) && self.type == 'Header')"
+type HTTPHostnameModifier struct {
+ // +kubebuilder:validation:Enum=Header;Backend
+ // +kubebuilder:validation:Required
+ Type HTTPHostnameModifierType `json:"type"`
+
+ // Header is the name of the header whose value would be used to rewrite the Host header
+ // +optional
+ Header *string `json:"header,omitempty"`
+}
+
+// HTTPCredentialInjectionFilter defines the configuration to inject credentials into the request.
+// This is useful when the backend service requires credentials in the request, and the original
+// request does not contain them. The filter can inject credentials into the request before forwarding
+// it to the backend service.
+// +notImplementedHide
+type HTTPCredentialInjectionFilter struct {
+ // Header is the name of the header where the credentials are injected.
+ // If not specified, the credentials are injected into the Authorization header.
+ // +optional
+ Header *string `json:"header,omitempty"`
+
+ // Whether to overwrite the value or not if the injected headers already exist.
+ // If not specified, the default value is false.
+ // +optional
+ Overwrite *bool `json:"overwrite"`
+
+ // Credential is the credential to be injected.
+ Credential InjectedCredential `json:"credential"`
+}
+
+// InjectedCredential defines the credential to be injected.
+// +notImplementedHide
+type InjectedCredential struct {
+ // ValueRef is a reference to the secret containing the credentials to be injected.
+ // This is an Opaque secret. The credential should be stored in the key
+ // "credential", and the value should be the credential to be injected.
+ // For example, for basic authentication, the value should be "Basic ".
+ // for bearer token, the value should be "Bearer ".
+ // Note: The secret must be in the same namespace as the HTTPRouteFilter.
+ ValueRef gwapiv1.SecretObjectReference `json:"valueRef"`
+
+ // EG may support more credential types in the future, for example, OAuth2 access token retrieved by Client Credentials Grant flow.
+}
+
+//+kubebuilder:object:root=true
+
+// HTTPRouteFilterList contains a list of HTTPRouteFilter resources.
+type HTTPRouteFilterList struct {
+ metav1.TypeMeta `json:",inline"`
+ metav1.ListMeta `json:"metadata,omitempty"`
+ Items []HTTPRouteFilter `json:"items"`
+}
+
+func init() {
+ SchemeBuilder.Register(&HTTPRouteFilter{}, &HTTPRouteFilterList{})
+}
diff --git a/vendor/github.com/envoyproxy/gateway/api/v1alpha1/jwt_types.go b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/jwt_types.go
new file mode 100644
index 00000000..823192ad
--- /dev/null
+++ b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/jwt_types.go
@@ -0,0 +1,201 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package v1alpha1
+
+import (
+ gwapiv1 "sigs.k8s.io/gateway-api/apis/v1"
+)
+
+// JWT defines the configuration for JSON Web Token (JWT) authentication.
+type JWT struct {
+ // Optional determines whether a missing JWT is acceptable, defaulting to false if not specified.
+ // Note: Even if optional is set to true, JWT authentication will still fail if an invalid JWT is presented.
+ Optional *bool `json:"optional,omitempty"`
+
+ // Providers defines the JSON Web Token (JWT) authentication provider type.
+ // When multiple JWT providers are specified, the JWT is considered valid if
+ // any of the providers successfully validate the JWT. For additional details,
+ // see https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/jwt_authn_filter.html.
+ //
+ // +kubebuilder:validation:MinItems=1
+ // +kubebuilder:validation:MaxItems=4
+ Providers []JWTProvider `json:"providers"`
+}
+
+// JWTProvider defines how a JSON Web Token (JWT) can be verified.
+// +kubebuilder:validation:XValidation:rule="(has(self.recomputeRoute) && self.recomputeRoute) ? size(self.claimToHeaders) > 0 : true", message="claimToHeaders must be specified if recomputeRoute is enabled."
+// +kubebuilder:validation:XValidation:rule="has(self.remoteJWKS) || has(self.localJWKS)", message="either remoteJWKS or localJWKS must be specified."
+// +kubebuilder:validation:XValidation:rule="!(has(self.remoteJWKS) && has(self.localJWKS))", message="remoteJWKS and localJWKS cannot both be specified."
+type JWTProvider struct {
+ // Name defines a unique name for the JWT provider. A name can have a variety of forms,
+ // including RFC1123 subdomains, RFC 1123 labels, or RFC 1035 labels.
+ //
+ // +kubebuilder:validation:MinLength=1
+ // +kubebuilder:validation:MaxLength=253
+ Name string `json:"name"`
+
+ // Issuer is the principal that issued the JWT and takes the form of a URL or email address.
+ // For additional details, see https://tools.ietf.org/html/rfc7519#section-4.1.1 for
+ // URL format and https://rfc-editor.org/rfc/rfc5322.html for email format. If not provided,
+ // the JWT issuer is not checked.
+ //
+ // +kubebuilder:validation:MaxLength=253
+ // +optional
+ Issuer string `json:"issuer,omitempty"`
+
+ // Audiences is a list of JWT audiences allowed access. For additional details, see
+ // https://tools.ietf.org/html/rfc7519#section-4.1.3. If not provided, JWT audiences
+ // are not checked.
+ //
+ // +kubebuilder:validation:MaxItems=8
+ // +optional
+ Audiences []string `json:"audiences,omitempty"`
+
+ // RemoteJWKS defines how to fetch and cache JSON Web Key Sets (JWKS) from a remote
+ // HTTP/HTTPS endpoint.
+ //
+ // +optional
+ RemoteJWKS *RemoteJWKS `json:"remoteJWKS,omitempty"`
+
+ // LocalJWKS defines how to get the JSON Web Key Sets (JWKS) from a local source.
+ //
+ // +optional
+ LocalJWKS *LocalJWKS `json:"localJWKS,omitempty"`
+
+ // ClaimToHeaders is a list of JWT claims that must be extracted into HTTP request headers
+ // For examples, following config:
+ // The claim must be of type; string, int, double, bool. Array type claims are not supported
+ //
+ // +optional
+ ClaimToHeaders []ClaimToHeader `json:"claimToHeaders,omitempty"`
+
+ // RecomputeRoute clears the route cache and recalculates the routing decision.
+ // This field must be enabled if the headers generated from the claim are used for
+ // route matching decisions. If the recomputation selects a new route, features targeting
+ // the new matched route will be applied.
+ //
+ // +optional
+ RecomputeRoute *bool `json:"recomputeRoute,omitempty"`
+
+ // ExtractFrom defines different ways to extract the JWT token from HTTP request.
+ // If empty, it defaults to extract JWT token from the Authorization HTTP request header using Bearer schema
+ // or access_token from query parameters.
+ //
+ // +optional
+ ExtractFrom *JWTExtractor `json:"extractFrom,omitempty"`
+}
+
+// RemoteJWKS defines how to fetch and cache JSON Web Key Sets (JWKS) from a remote HTTP/HTTPS endpoint.
+// +kubebuilder:validation:XValidation:rule="!has(self.backendRef)",message="BackendRefs must be used, backendRef is not supported."
+// +kubebuilder:validation:XValidation:rule="has(self.backendSettings)? (has(self.backendSettings.retry)?(has(self.backendSettings.retry.perRetry)? !has(self.backendSettings.retry.perRetry.timeout):true):true):true",message="Retry timeout is not supported."
+// +kubebuilder:validation:XValidation:rule="has(self.backendSettings)? (has(self.backendSettings.retry)?(has(self.backendSettings.retry.retryOn)? !has(self.backendSettings.retry.retryOn.httpStatusCodes):true):true):true",message="HTTPStatusCodes is not supported."
+type RemoteJWKS struct {
+ // BackendRefs is used to specify the address of the Remote JWKS. The BackendRefs are optional, if not specified,
+ // the backend service is extracted from the host and port of the URI field.
+ //
+ // TLS configuration can be specified in a BackendTLSConfig resource and target the BackendRefs.
+ //
+ // Other settings for the connection to remote JWKS can be specified in the BackendSettings resource.
+ // Currently, only the retry policy is supported.
+ //
+ // +optional
+ BackendCluster `json:",inline"`
+
+ // URI is the HTTPS URI to fetch the JWKS. Envoy's system trust bundle is used to validate the server certificate.
+ // If a custom trust bundle is needed, it can be specified in a BackendTLSConfig resource and target the BackendRefs.
+ //
+ // +kubebuilder:validation:MinLength=1
+ // +kubebuilder:validation:MaxLength=253
+ URI string `json:"uri"`
+ // Duration after which the cached JWKS should be expired. If not specified, default cache duration is 5 minutes.
+
+ // +kubebuilder:default="300s"
+ // +optional
+ CacheDuration *gwapiv1.Duration `json:"cacheDuration,omitempty"`
+}
+
+// LocalJWKSType defines the types of values for Local JWKS.
+type LocalJWKSType string
+
+const (
+ // LocalJWKSTypeInline defines the "Inline" LocalJWKS type.
+ LocalJWKSTypeInline LocalJWKSType = "Inline"
+
+ // LocalJWKSTypeValueRef defines the "ValueRef" LocalJWKS type.
+ LocalJWKSTypeValueRef LocalJWKSType = "ValueRef"
+)
+
+// LocalJWKS defines how to load a JSON Web Key Sets (JWKS) from a local source, either inline or from a reference to a ConfigMap.
+//
+// +kubebuilder:validation:XValidation:rule="(self.type == 'Inline' && has(self.inline) && !has(self.valueRef)) || (self.type == 'ValueRef' && !has(self.inline) && has(self.valueRef))",message="Exactly one of inline or valueRef must be set with correct type."
+type LocalJWKS struct {
+ // Type is the type of method to use to read the body value.
+ // Valid values are Inline and ValueRef, default is Inline.
+ //
+ // +kubebuilder:default=Inline
+ // +kubebuilder:validation:Enum=Inline;ValueRef
+ // +unionDiscriminator
+ Type *LocalJWKSType `json:"type"`
+
+ // Inline contains the value as an inline string.
+ //
+ // +optional
+ Inline *string `json:"inline,omitempty"`
+
+ // ValueRef is a reference to a local ConfigMap that contains the JSON Web Key Sets (JWKS).
+ //
+ // The value of key `jwks` in the ConfigMap will be used.
+ // If the key is not found, the first value in the ConfigMap will be used.
+ //
+ // +optional
+ ValueRef *gwapiv1.LocalObjectReference `json:"valueRef,omitempty"`
+}
+
+// ClaimToHeader defines a configuration to convert JWT claims into HTTP headers
+type ClaimToHeader struct {
+ // Header defines the name of the HTTP request header that the JWT Claim will be saved into.
+ Header string `json:"header"`
+
+ // Claim is the JWT Claim that should be saved into the header : it can be a nested claim of type
+ // (eg. "claim.nested.key", "sub"). The nested claim name must use dot "."
+ // to separate the JSON name path.
+ Claim string `json:"claim"`
+}
+
+// JWTExtractor defines a custom JWT token extraction from HTTP request.
+// If specified, Envoy will extract the JWT token from the listed extractors (headers, cookies, or params) and validate each of them.
+// If any value extracted is found to be an invalid JWT, a 401 error will be returned.
+type JWTExtractor struct {
+ // Headers represents a list of HTTP request headers to extract the JWT token from.
+ //
+ // +optional
+ Headers []JWTHeaderExtractor `json:"headers,omitempty"`
+
+ // Cookies represents a list of cookie names to extract the JWT token from.
+ //
+ // +optional
+ Cookies []string `json:"cookies,omitempty"`
+
+ // Params represents a list of query parameters to extract the JWT token from.
+ //
+ // +optional
+ Params []string `json:"params,omitempty"`
+}
+
+// JWTHeaderExtractor defines an HTTP header location to extract JWT token
+type JWTHeaderExtractor struct {
+ // Name is the HTTP header name to retrieve the token
+ //
+ // +kubebuilder:validation:Required
+ Name string `json:"name"`
+
+ // ValuePrefix is the prefix that should be stripped before extracting the token.
+ // The format would be used by Envoy like "{ValuePrefix}".
+ // For example, "Authorization: Bearer ", then the ValuePrefix="Bearer " with a space at the end.
+ //
+ // +optional
+ ValuePrefix *string `json:"valuePrefix,omitempty"`
+}
diff --git a/vendor/github.com/envoyproxy/gateway/api/v1alpha1/keepalive_types.go b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/keepalive_types.go
new file mode 100644
index 00000000..ca5731bd
--- /dev/null
+++ b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/keepalive_types.go
@@ -0,0 +1,32 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package v1alpha1
+
+import (
+ gwapiv1 "sigs.k8s.io/gateway-api/apis/v1"
+)
+
+// TCPKeepalive define the TCP Keepalive configuration.
+type TCPKeepalive struct {
+ // The total number of unacknowledged probes to send before deciding
+ // the connection is dead.
+ // Defaults to 9.
+ //
+ // +optional
+ Probes *uint32 `json:"probes,omitempty"`
+ // The duration a connection needs to be idle before keep-alive
+ // probes start being sent.
+ // The duration format is
+ // Defaults to `7200s`.
+ //
+ // +optional
+ IdleTime *gwapiv1.Duration `json:"idleTime,omitempty"`
+ // The duration between keep-alive probes.
+ // Defaults to `75s`.
+ //
+ // +optional
+ Interval *gwapiv1.Duration `json:"interval,omitempty"`
+}
diff --git a/vendor/github.com/envoyproxy/gateway/api/v1alpha1/kubernetes_helpers.go b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/kubernetes_helpers.go
new file mode 100644
index 00000000..e944df1c
--- /dev/null
+++ b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/kubernetes_helpers.go
@@ -0,0 +1,194 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package v1alpha1
+
+import (
+ "encoding/json"
+ "fmt"
+
+ jsonpatch "github.com/evanphx/json-patch"
+ appsv1 "k8s.io/api/apps/v1"
+ corev1 "k8s.io/api/core/v1"
+ policyv1 "k8s.io/api/policy/v1"
+ "k8s.io/apimachinery/pkg/api/resource"
+ "k8s.io/apimachinery/pkg/util/strategicpatch"
+ "k8s.io/utils/ptr"
+)
+
+// DefaultKubernetesDeploymentStrategy returns the default deployment strategy settings.
+func DefaultKubernetesDeploymentStrategy() *appsv1.DeploymentStrategy {
+ return &appsv1.DeploymentStrategy{
+ Type: appsv1.RollingUpdateDeploymentStrategyType,
+ }
+}
+
+// DefaultKubernetesDaemonSetStrategy returns the default daemonset strategy settings.
+func DefaultKubernetesDaemonSetStrategy() *appsv1.DaemonSetUpdateStrategy {
+ return &appsv1.DaemonSetUpdateStrategy{
+ Type: appsv1.RollingUpdateDaemonSetStrategyType,
+ }
+}
+
+// DefaultKubernetesContainerImage returns the default envoyproxy image.
+func DefaultKubernetesContainerImage(image string) *string {
+ return ptr.To(image)
+}
+
+// DefaultKubernetesDeployment returns a new KubernetesDeploymentSpec with default settings.
+func DefaultKubernetesDeployment(image string) *KubernetesDeploymentSpec {
+ return &KubernetesDeploymentSpec{
+ Strategy: DefaultKubernetesDeploymentStrategy(),
+ Pod: DefaultKubernetesPod(),
+ Container: DefaultKubernetesContainer(image),
+ }
+}
+
+// DefaultKubernetesDaemonSet returns a new DefaultKubernetesDaemonSet with default settings.
+func DefaultKubernetesDaemonSet(image string) *KubernetesDaemonSetSpec {
+ return &KubernetesDaemonSetSpec{
+ Strategy: DefaultKubernetesDaemonSetStrategy(),
+ Pod: DefaultKubernetesPod(),
+ Container: DefaultKubernetesContainer(image),
+ }
+}
+
+// DefaultKubernetesPod returns a new KubernetesPodSpec with default settings.
+func DefaultKubernetesPod() *KubernetesPodSpec {
+ return &KubernetesPodSpec{}
+}
+
+// DefaultKubernetesContainer returns a new KubernetesContainerSpec with default settings.
+func DefaultKubernetesContainer(image string) *KubernetesContainerSpec {
+ return &KubernetesContainerSpec{
+ Resources: DefaultResourceRequirements(),
+ Image: DefaultKubernetesContainerImage(image),
+ }
+}
+
+// DefaultResourceRequirements returns a new ResourceRequirements with default settings.
+func DefaultResourceRequirements() *corev1.ResourceRequirements {
+ return &corev1.ResourceRequirements{
+ Requests: corev1.ResourceList{
+ corev1.ResourceCPU: resource.MustParse(DefaultDeploymentCPUResourceRequests),
+ corev1.ResourceMemory: resource.MustParse(DefaultDeploymentMemoryResourceRequests),
+ },
+ }
+}
+
+// DefaultKubernetesService returns a new KubernetesServiceSpec with default settings.
+func DefaultKubernetesService() *KubernetesServiceSpec {
+ return &KubernetesServiceSpec{
+ Type: DefaultKubernetesServiceType(),
+ ExternalTrafficPolicy: DefaultKubernetesServiceExternalTrafficPolicy(),
+ }
+}
+
+// DefaultKubernetesServiceType returns a new KubernetesServiceType with default settings.
+func DefaultKubernetesServiceType() *ServiceType {
+ return GetKubernetesServiceType(ServiceTypeLoadBalancer)
+}
+
+// GetKubernetesServiceType returns the KubernetesServiceType pointer.
+func GetKubernetesServiceType(serviceType ServiceType) *ServiceType {
+ return &serviceType
+}
+
+func DefaultKubernetesServiceExternalTrafficPolicy() *ServiceExternalTrafficPolicy {
+ return GetKubernetesServiceExternalTrafficPolicy(ServiceExternalTrafficPolicyLocal)
+}
+
+func GetKubernetesServiceExternalTrafficPolicy(serviceExternalTrafficPolicy ServiceExternalTrafficPolicy) *ServiceExternalTrafficPolicy {
+ return &serviceExternalTrafficPolicy
+}
+
+// defaultKubernetesDeploymentSpec fill a default KubernetesDeploymentSpec if unspecified.
+func (deployment *KubernetesDeploymentSpec) defaultKubernetesDeploymentSpec(image string) {
+ if deployment.Strategy == nil {
+ deployment.Strategy = DefaultKubernetesDeploymentStrategy()
+ }
+
+ if deployment.Pod == nil {
+ deployment.Pod = DefaultKubernetesPod()
+ }
+
+ if deployment.Container == nil {
+ deployment.Container = DefaultKubernetesContainer(image)
+ }
+
+ if deployment.Container.Resources == nil {
+ deployment.Container.Resources = DefaultResourceRequirements()
+ }
+
+ if deployment.Container.Image == nil {
+ deployment.Container.Image = DefaultKubernetesContainerImage(image)
+ }
+}
+
+// defaultKubernetesDaemonSetSpec fill a default KubernetesDaemonSetSpec if unspecified.
+func (daemonset *KubernetesDaemonSetSpec) defaultKubernetesDaemonSetSpec(image string) {
+ if daemonset.Strategy == nil {
+ daemonset.Strategy = DefaultKubernetesDaemonSetStrategy()
+ }
+
+ if daemonset.Pod == nil {
+ daemonset.Pod = DefaultKubernetesPod()
+ }
+
+ if daemonset.Container == nil {
+ daemonset.Container = DefaultKubernetesContainer(image)
+ }
+
+ if daemonset.Container.Resources == nil {
+ daemonset.Container.Resources = DefaultResourceRequirements()
+ }
+
+ if daemonset.Container.Image == nil {
+ daemonset.Container.Image = DefaultKubernetesContainerImage(image)
+ }
+}
+
+// setDefault fill a default HorizontalPodAutoscalerSpec if unspecified
+func (hpa *KubernetesHorizontalPodAutoscalerSpec) setDefault() {
+ if len(hpa.Metrics) == 0 {
+ hpa.Metrics = DefaultEnvoyProxyHpaMetrics()
+ }
+}
+
+// ApplyMergePatch applies a merge patch to a PodDisruptionBudget based on the merge type
+func (pdb *KubernetesPodDisruptionBudgetSpec) ApplyMergePatch(old *policyv1.PodDisruptionBudget) (*policyv1.PodDisruptionBudget, error) {
+ if pdb.Patch == nil {
+ return old, nil
+ }
+
+ var patchedJSON []byte
+ var err error
+
+ // Serialize the PDB deployment to JSON
+ originalJSON, err := json.Marshal(old)
+ if err != nil {
+ return nil, fmt.Errorf("error marshaling original PodDisruptionBudget: %w", err)
+ }
+
+ switch {
+ case pdb.Patch.Type == nil || *pdb.Patch.Type == StrategicMerge:
+ patchedJSON, err = strategicpatch.StrategicMergePatch(originalJSON, pdb.Patch.Value.Raw, policyv1.PodDisruptionBudget{})
+ case *pdb.Patch.Type == JSONMerge:
+ patchedJSON, err = jsonpatch.MergePatch(originalJSON, pdb.Patch.Value.Raw)
+ default:
+ return nil, fmt.Errorf("unsupported merge type: %s", *pdb.Patch.Type)
+ }
+ if err != nil {
+ return nil, fmt.Errorf("error applying merge patch: %w", err)
+ }
+
+ // Deserialize the patched JSON into a new HorizontalPodAutoscaler object
+ var patchedPdb policyv1.PodDisruptionBudget
+ if err := json.Unmarshal(patchedJSON, &patchedPdb); err != nil {
+ return nil, fmt.Errorf("error unmarshaling patched PodDisruptionBudget: %w", err)
+ }
+
+ return &patchedPdb, nil
+}
diff --git a/vendor/github.com/envoyproxy/gateway/api/v1alpha1/loadbalancer_types.go b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/loadbalancer_types.go
new file mode 100644
index 00000000..7cc7ea14
--- /dev/null
+++ b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/loadbalancer_types.go
@@ -0,0 +1,226 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package v1alpha1
+
+import gwapiv1 "sigs.k8s.io/gateway-api/apis/v1"
+
+// LoadBalancer defines the load balancer policy to be applied.
+// +union
+//
+// +kubebuilder:validation:XValidation:rule="self.type == 'ConsistentHash' ? has(self.consistentHash) : !has(self.consistentHash)",message="If LoadBalancer type is consistentHash, consistentHash field needs to be set."
+// +kubebuilder:validation:XValidation:rule="self.type in ['Random', 'ConsistentHash'] ? !has(self.slowStart) : true ",message="Currently SlowStart is only supported for RoundRobin and LeastRequest load balancers."
+// +kubebuilder:validation:XValidation:rule="self.type == 'ConsistentHash' ? !has(self.zoneAware) : true ",message="Currently ZoneAware is only supported for LeastRequest, Random, and RoundRobin load balancers."
+type LoadBalancer struct {
+ // Type decides the type of Load Balancer policy.
+ // Valid LoadBalancerType values are
+ // "ConsistentHash",
+ // "LeastRequest",
+ // "Random",
+ // "RoundRobin".
+ //
+ // +unionDiscriminator
+ Type LoadBalancerType `json:"type"`
+ // ConsistentHash defines the configuration when the load balancer type is
+ // set to ConsistentHash
+ //
+ // +optional
+ ConsistentHash *ConsistentHash `json:"consistentHash,omitempty"`
+
+ // EndpointOverride defines the configuration for endpoint override.
+ // When specified, the load balancer will attempt to route requests to endpoints
+ // based on the override information extracted from request headers or metadata.
+ // If the override endpoints are not available, the configured load balancer policy will be used as fallback.
+ //
+ // +optional
+ EndpointOverride *EndpointOverride `json:"endpointOverride,omitempty"`
+
+ // SlowStart defines the configuration related to the slow start load balancer policy.
+ // If set, during slow start window, traffic sent to the newly added hosts will gradually increase.
+ // Currently this is only supported for RoundRobin and LeastRequest load balancers
+ //
+ // +optional
+ SlowStart *SlowStart `json:"slowStart,omitempty"`
+
+ // ZoneAware defines the configuration related to the distribution of requests between locality zones.
+ //
+ // +optional
+ ZoneAware *ZoneAware `json:"zoneAware,omitempty"`
+}
+
+// LoadBalancerType specifies the types of LoadBalancer.
+// +kubebuilder:validation:Enum=ConsistentHash;LeastRequest;Random;RoundRobin
+type LoadBalancerType string
+
+const (
+ // ConsistentHashLoadBalancerType load balancer policy.
+ ConsistentHashLoadBalancerType LoadBalancerType = "ConsistentHash"
+ // LeastRequestLoadBalancerType load balancer policy.
+ LeastRequestLoadBalancerType LoadBalancerType = "LeastRequest"
+ // RandomLoadBalancerType load balancer policy.
+ RandomLoadBalancerType LoadBalancerType = "Random"
+ // RoundRobinLoadBalancerType load balancer policy.
+ RoundRobinLoadBalancerType LoadBalancerType = "RoundRobin"
+)
+
+// ConsistentHash defines the configuration related to the consistent hash
+// load balancer policy.
+// +union
+//
+// +kubebuilder:validation:XValidation:rule="self.type == 'Header' ? has(self.header) : !has(self.header)",message="If consistent hash type is header, the header field must be set."
+// +kubebuilder:validation:XValidation:rule="self.type == 'Headers' ? has(self.headers) : !has(self.headers)",message="If consistent hash type is headers, the headers field must be set."
+// +kubebuilder:validation:XValidation:rule="self.type == 'Cookie' ? has(self.cookie) : !has(self.cookie)",message="If consistent hash type is cookie, the cookie field must be set."
+type ConsistentHash struct {
+ // ConsistentHashType defines the type of input to hash on. Valid Type values are
+ // "SourceIP",
+ // "Header",
+ // "Headers",
+ // "Cookie".
+ //
+ // +unionDiscriminator
+ Type ConsistentHashType `json:"type"`
+
+ // Header configures the header hash policy when the consistent hash type is set to Header.
+ //
+ // Deprecated: use Headers instead
+ // +optional
+ Header *Header `json:"header,omitempty"`
+
+ // Headers configures the header hash policy for each header, when the consistent hash type is set to Headers.
+ //
+ // +optional
+ Headers []*Header `json:"headers,omitempty"`
+
+ // Cookie configures the cookie hash policy when the consistent hash type is set to Cookie.
+ //
+ // +optional
+ Cookie *Cookie `json:"cookie,omitempty"`
+
+ // The table size for consistent hashing, must be prime number limited to 5000011.
+ //
+ // +kubebuilder:validation:Minimum=2
+ // +kubebuilder:validation:Maximum=5000011
+ // +kubebuilder:default=65537
+ // +optional
+ TableSize *uint64 `json:"tableSize,omitempty"`
+}
+
+// Header defines the header hashing configuration for consistent hash based
+// load balancing.
+type Header struct {
+ // Name of the header to hash.
+ Name string `json:"name"`
+}
+
+// Cookie defines the cookie hashing configuration for consistent hash based
+// load balancing.
+type Cookie struct {
+ // Name of the cookie to hash.
+ // If this cookie does not exist in the request, Envoy will generate a cookie and set
+ // the TTL on the response back to the client based on Layer 4
+ // attributes of the backend endpoint, to ensure that these future requests
+ // go to the same backend endpoint. Make sure to set the TTL field for this case.
+ Name string `json:"name"`
+ // TTL of the generated cookie if the cookie is not present. This value sets the
+ // Max-Age attribute value.
+ //
+ // +optional
+ TTL *gwapiv1.Duration `json:"ttl,omitempty"`
+ // Additional Attributes to set for the generated cookie.
+ //
+ // +optional
+ Attributes map[string]string `json:"attributes,omitempty"`
+}
+
+// ConsistentHashType defines the type of input to hash on.
+// +kubebuilder:validation:Enum=SourceIP;Header;Headers;Cookie
+type ConsistentHashType string
+
+const (
+ // SourceIPConsistentHashType hashes based on the source IP address.
+ SourceIPConsistentHashType ConsistentHashType = "SourceIP"
+ // HeaderConsistentHashType hashes based on a request header.
+ //
+ // Deprecated: use HeadersConsistentHashType instead
+ HeaderConsistentHashType ConsistentHashType = "Header"
+ // HeadersConsistentHashType hashes based on multiple request headers.
+ HeadersConsistentHashType ConsistentHashType = "Headers"
+ // CookieConsistentHashType hashes based on a cookie.
+ CookieConsistentHashType ConsistentHashType = "Cookie"
+)
+
+// SlowStart defines the configuration related to the slow start load balancer policy.
+type SlowStart struct {
+ // Window defines the duration of the warm up period for newly added host.
+ // During slow start window, traffic sent to the newly added hosts will gradually increase.
+ // Currently only supports linear growth of traffic. For additional details,
+ // see https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/cluster/v3/cluster.proto#config-cluster-v3-cluster-slowstartconfig
+ // +kubebuilder:validation:Required
+ Window *gwapiv1.Duration `json:"window"`
+ // TODO: Add support for non-linear traffic increases based on user usage.
+}
+
+// ZoneAware defines the configuration related to the distribution of requests between locality zones.
+type ZoneAware struct {
+ // PreferLocalZone configures zone-aware routing to prefer sending traffic to the local locality zone.
+ //
+ // +optional
+ PreferLocal *PreferLocalZone `json:"preferLocal,omitempty"`
+}
+
+// PreferLocalZone configures zone-aware routing to prefer sending traffic to the local locality zone.
+type PreferLocalZone struct {
+ // ForceLocalZone defines override configuration for forcing all traffic to stay within the local zone instead of the default behavior
+ // which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
+ //
+ // +optional
+ Force *ForceLocalZone `json:"force,omitempty"`
+
+ // MinEndpointsThreshold is the minimum number of total upstream endpoints across all zones required to enable zone-aware routing.
+ //
+ // +optional
+ MinEndpointsThreshold *uint64 `json:"minEndpointsThreshold,omitempty"`
+
+ // Configures percentage of requests that will be considered for zone aware routing if zone aware routing is configured. If not specified, Envoy defaults to 100%.
+ //
+ // +kubebuilder:validation:Minimum=0
+ // +kubebuilder:validation:Maximum=100
+ // +optional
+ PercentageEnabled *uint32 `json:"percentageEnabled,omitempty"`
+}
+
+// ForceLocalZone defines override configuration for forcing all traffic to stay within the local zone instead of the default behavior
+// which maintains equal distribution among upstream endpoints while sending as much traffic as possible locally.
+type ForceLocalZone struct {
+ // MinEndpointsInZoneThreshold is the minimum number of upstream endpoints in the local zone required to honor the forceLocalZone
+ // override. This is useful for protecting zones with fewer endpoints.
+ //
+ // +optional
+ // +notImplementedHide
+ MinEndpointsInZoneThreshold *uint32 `json:"minEndpointsInZoneThreshold,omitempty"`
+}
+
+// EndpointOverride defines the configuration for endpoint override.
+// This allows endpoint picking to be implemented based on request headers or metadata.
+// It extracts selected override endpoints from the specified sources (request headers, metadata, etc.).
+// If no valid endpoint in the override list, then the configured load balancing policy is used as fallback.
+type EndpointOverride struct {
+ // ExtractFrom defines the sources to extract endpoint override information from.
+ //
+ // +kubebuilder:validation:MinItems=1
+ // +kubebuilder:validation:MaxItems=10
+ ExtractFrom []EndpointOverrideExtractFrom `json:"extractFrom"`
+}
+
+// EndpointOverrideExtractFrom defines a source to extract endpoint override information from.
+type EndpointOverrideExtractFrom struct {
+ // Header defines the header to get the override endpoint addresses.
+ // The header value must specify at least one endpoint in `IP:Port` format or multiple endpoints in `IP:Port,IP:Port,...` format.
+ // For example `10.0.0.5:8080` or `[2600:4040:5204::1574:24ae]:80`.
+ // The IPv6 address is enclosed in square brackets.
+ //
+ // +optional
+ Header *string `json:"header,omitempty"`
+}
diff --git a/vendor/github.com/envoyproxy/gateway/api/v1alpha1/lua_types.go b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/lua_types.go
new file mode 100644
index 00000000..9c938800
--- /dev/null
+++ b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/lua_types.go
@@ -0,0 +1,48 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package v1alpha1
+
+import gwapiv1 "sigs.k8s.io/gateway-api/apis/v1"
+
+// LuaValueType defines the types of values for Lua supported by Envoy Gateway.
+// +kubebuilder:validation:Enum=Inline;ValueRef
+type LuaValueType string
+
+const (
+ // LuaValueTypeInline defines the "Inline" Lua type.
+ LuaValueTypeInline LuaValueType = "Inline"
+
+ // LuaValueTypeValueRef defines the "ValueRef" Lua type.
+ LuaValueTypeValueRef LuaValueType = "ValueRef"
+)
+
+// Lua defines a Lua extension
+// Only one of Inline or ValueRef must be set
+//
+// +kubebuilder:validation:XValidation:rule="(self.type == 'Inline' && has(self.inline) && !has(self.valueRef)) || (self.type == 'ValueRef' && !has(self.inline) && has(self.valueRef))",message="Exactly one of inline or valueRef must be set with correct type."
+type Lua struct {
+ // Type is the type of method to use to read the Lua value.
+ // Valid values are Inline and ValueRef, default is Inline.
+ //
+ // +kubebuilder:default=Inline
+ // +unionDiscriminator
+ // +required
+ Type LuaValueType `json:"type"`
+ // Inline contains the source code as an inline string.
+ //
+ // +optional
+ // +unionMember
+ Inline *string `json:"inline,omitempty"`
+ // ValueRef has the source code specified as a local object reference.
+ // Only a reference to ConfigMap is supported.
+ // The value of key `lua` in the ConfigMap will be used.
+ // If the key is not found, the first value in the ConfigMap will be used.
+ //
+ // +kubebuilder:validation:XValidation:rule="self.kind == 'ConfigMap' && (self.group == 'v1' || self.group == '')",message="Only a reference to an object of kind ConfigMap belonging to default v1 API group is supported."
+ // +optional
+ // +unionMember
+ ValueRef *gwapiv1.LocalObjectReference `json:"valueRef,omitempty"`
+}
diff --git a/vendor/github.com/envoyproxy/gateway/api/v1alpha1/oidc_types.go b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/oidc_types.go
new file mode 100644
index 00000000..f140759c
--- /dev/null
+++ b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/oidc_types.go
@@ -0,0 +1,253 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package v1alpha1
+
+import (
+ gwapiv1 "sigs.k8s.io/gateway-api/apis/v1"
+)
+
+const (
+ OIDCClientSecretKey = "client-secret"
+ OIDCClientIDKey = "client-id"
+)
+
+// OIDC defines the configuration for the OpenID Connect (OIDC) authentication.
+// +kubebuilder:validation:XValidation:rule="(has(self.clientID) && !has(self.clientIDRef)) || (!has(self.clientID) && has(self.clientIDRef))", message="only one of clientID or clientIDRef must be set"
+type OIDC struct {
+ // The OIDC Provider configuration.
+ Provider OIDCProvider `json:"provider"`
+
+ // The client ID to be used in the OIDC
+ // [Authentication Request](https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest).
+ //
+ // Only one of clientID or clientIDRef must be set.
+ // +optional
+ // +kubebuilder:validation:MinLength=1
+ ClientID *string `json:"clientID,omitempty"`
+
+ // The Kubernetes secret which contains the client ID to be used in the
+ // [Authentication Request](https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest).
+ // Exactly one of clientID or clientIDRef must be set.
+ // This is an Opaque secret. The client ID should be stored in the key "client-id".
+ //
+ // Only one of clientID or clientIDRef must be set.
+ //
+ // +optional
+ ClientIDRef *gwapiv1.SecretObjectReference `json:"clientIDRef,omitempty"`
+
+ // The Kubernetes secret which contains the OIDC client secret to be used in the
+ // [Authentication Request](https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest).
+ //
+ // This is an Opaque secret. The client secret should be stored in the key
+ // "client-secret".
+ // +kubebuilder:validation:Required
+ ClientSecret gwapiv1.SecretObjectReference `json:"clientSecret"`
+
+ // The optional cookie name overrides to be used for Bearer and IdToken cookies in the
+ // [Authentication Request](https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest).
+ // If not specified, uses a randomly generated suffix
+ // +optional
+ CookieNames *OIDCCookieNames `json:"cookieNames,omitempty"`
+
+ // CookieConfigs allows setting the SameSite attribute for OIDC cookies.
+ // By default, its unset.
+ //
+ // +optional
+ CookieConfig *OIDCCookieConfig `json:"cookieConfig,omitempty"`
+
+ // The optional domain to set the access and ID token cookies on.
+ // If not set, the cookies will default to the host of the request, not including the subdomains.
+ // If set, the cookies will be set on the specified domain and all subdomains.
+ // This means that requests to any subdomain will not require reauthentication after users log in to the parent domain.
+ // +optional
+ // +kubebuilder:validation:Pattern=`^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9]))*$`
+ CookieDomain *string `json:"cookieDomain,omitempty"`
+
+ // The OIDC scopes to be used in the
+ // [Authentication Request](https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest).
+ // The "openid" scope is always added to the list of scopes if not already
+ // specified.
+ // +optional
+ Scopes []string `json:"scopes,omitempty"`
+
+ // The OIDC resources to be used in the
+ // [Authentication Request](https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest).
+ // +optional
+ Resources []string `json:"resources,omitempty"`
+
+ // The redirect URL to be used in the OIDC
+ // [Authentication Request](https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest).
+ // If not specified, uses the default redirect URI "%REQ(x-forwarded-proto)%://%REQ(:authority)%/oauth2/callback"
+ RedirectURL *string `json:"redirectURL,omitempty"`
+
+ // Any request that matches any of the provided matchers (with either tokens that are expired or missing tokens) will not be redirected to the OIDC Provider.
+ // This behavior can be useful for AJAX or machine requests.
+ // +optional
+ DenyRedirect *OIDCDenyRedirect `json:"denyRedirect,omitempty"`
+
+ // The path to log a user out, clearing their credential cookies.
+ //
+ // If not specified, uses a default logout path "/logout"
+ LogoutPath *string `json:"logoutPath,omitempty"`
+
+ // ForwardAccessToken indicates whether the Envoy should forward the access token
+ // via the Authorization header Bearer scheme to the upstream.
+ // If not specified, defaults to false.
+ // +optional
+ ForwardAccessToken *bool `json:"forwardAccessToken,omitempty"`
+
+ // DefaultTokenTTL is the default lifetime of the id token and access token.
+ // Please note that Envoy will always use the expiry time from the response
+ // of the authorization server if it is provided. This field is only used when
+ // the expiry time is not provided by the authorization.
+ //
+ // If not specified, defaults to 0. In this case, the "expires_in" field in
+ // the authorization response must be set by the authorization server, or the
+ // OAuth flow will fail.
+ //
+ // +optional
+ DefaultTokenTTL *gwapiv1.Duration `json:"defaultTokenTTL,omitempty"`
+
+ // RefreshToken indicates whether the Envoy should automatically refresh the
+ // id token and access token when they expire.
+ // When set to true, the Envoy will use the refresh token to get a new id token
+ // and access token when they expire.
+ //
+ // If not specified, defaults to true.
+ // +kubebuilder:default=true
+ // +optional
+ RefreshToken *bool `json:"refreshToken,omitempty"`
+
+ // DefaultRefreshTokenTTL is the default lifetime of the refresh token.
+ // This field is only used when the exp (expiration time) claim is omitted in
+ // the refresh token or the refresh token is not JWT.
+ //
+ // If not specified, defaults to 604800s (one week).
+ // Note: this field is only applicable when the "refreshToken" field is set to true.
+ //
+ // +optional
+ DefaultRefreshTokenTTL *gwapiv1.Duration `json:"defaultRefreshTokenTTL,omitempty"`
+
+ // CSRFTokenTTL defines how long the CSRF token generated during the OAuth2 authorization flow remains valid.
+ //
+ // This duration determines the lifetime of the CSRF cookie, which is validated against the CSRF token
+ // in the "state" parameter when the provider redirects back to the callback endpoint.
+ //
+ // If omitted, Envoy Gateway defaults the token expiration to 10 minutes.
+ //
+ // +optional
+ CSRFTokenTTL *gwapiv1.Duration `json:"csrfTokenTTL,omitempty"`
+
+ // Disable token encryption. When set to true, both the access token and the ID token will be stored in plain text.
+ // This option should only be used in secure environments where token encryption is not required.
+ // Default is false (tokens are encrypted).
+ // +optional
+ DisableTokenEncryption *bool `json:"disableTokenEncryption,omitempty"`
+
+ // Skips OIDC authentication when the request contains a header that will be extracted by the JWT filter. Unless
+ // explicitly stated otherwise in the extractFrom field, this will be the "Authorization: Bearer ..." header.
+ //
+ // The passThroughAuthHeader option is typically used for non-browser clients that may not be able to handle OIDC
+ // redirects and wish to directly supply a token instead.
+ //
+ // If not specified, defaults to false.
+ // +optional
+ PassThroughAuthHeader *bool `json:"passThroughAuthHeader,omitempty"`
+}
+
+// OIDCProvider defines the OIDC Provider configuration.
+// +kubebuilder:validation:XValidation:rule="!has(self.backendRef)",message="BackendRefs must be used, backendRef is not supported."
+// +kubebuilder:validation:XValidation:rule="has(self.backendSettings)? (has(self.backendSettings.retry)?(has(self.backendSettings.retry.perRetry)? !has(self.backendSettings.retry.perRetry.timeout):true):true):true",message="Retry timeout is not supported."
+// +kubebuilder:validation:XValidation:rule="has(self.backendSettings)? (has(self.backendSettings.retry)?(has(self.backendSettings.retry.retryOn)? !has(self.backendSettings.retry.retryOn.httpStatusCodes):true):true):true",message="HTTPStatusCodes is not supported."
+type OIDCProvider struct {
+ // BackendRefs is used to specify the address of the OIDC Provider.
+ // If the BackendRefs is not specified, The host and port of the OIDC Provider's token endpoint
+ // will be used as the address of the OIDC Provider.
+ //
+ // TLS configuration can be specified in a BackendTLSConfig resource and target the BackendRefs.
+ //
+ // Other settings for the connection to the OIDC Provider can be specified in the BackendSettings resource.
+ // Currently, only the retry policy is supported.
+ //
+ // +optional
+ BackendCluster `json:",inline"`
+
+ // The OIDC Provider's [issuer identifier](https://openid.net/specs/openid-connect-discovery-1_0.html#IssuerDiscovery).
+ // Issuer MUST be a URI RFC 3986 [RFC3986] with a scheme component that MUST
+ // be https, a host component, and optionally, port and path components and
+ // no query or fragment components.
+ // +kubebuilder:validation:MinLength=1
+ Issuer string `json:"issuer"`
+
+ // TODO zhaohuabing validate the issuer
+
+ // The OIDC Provider's [authorization endpoint](https://openid.net/specs/openid-connect-core-1_0.html#AuthorizationEndpoint).
+ // If not provided, EG will try to discover it from the provider's [Well-Known Configuration Endpoint](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderConfigurationResponse).
+ //
+ // +optional
+ AuthorizationEndpoint *string `json:"authorizationEndpoint,omitempty"`
+
+ // The OIDC Provider's [token endpoint](https://openid.net/specs/openid-connect-core-1_0.html#TokenEndpoint).
+ // If not provided, EG will try to discover it from the provider's [Well-Known Configuration Endpoint](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderConfigurationResponse).
+ //
+ // +optional
+ TokenEndpoint *string `json:"tokenEndpoint,omitempty"`
+
+ // The OIDC Provider's [end session endpoint](https://openid.net/specs/openid-connect-core-1_0.html#RPLogout).
+ //
+ // If the end session endpoint is provided, EG will use it to log out the user from the OIDC Provider when the user accesses the logout path.
+ // EG will also try to discover the end session endpoint from the provider's [Well-Known Configuration Endpoint](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderConfigurationResponse) when authorizationEndpoint or tokenEndpoint is not provided.
+ // +optional
+ EndSessionEndpoint *string `json:"endSessionEndpoint,omitempty"`
+}
+
+// OIDCDenyRedirect defines headers to match against the request to deny redirect to the OIDC Provider.
+type OIDCDenyRedirect struct {
+ // Defines the headers to match against the request to deny redirect to the OIDC Provider.
+ // +kubebuilder:validation:MinItems=1
+ // +kubebuilder:validation:MaxItems=16
+ Headers []OIDCDenyRedirectHeader `json:"headers"`
+}
+
+// OIDCDenyRedirectHeader defines how a header is matched
+type OIDCDenyRedirectHeader struct {
+ // Specifies the name of the header in the request.
+ // +kubebuilder:validation:MinLength=1
+ Name string `json:"name"`
+ StringMatch `json:",inline"`
+}
+
+// OIDCCookieNames defines the names of cookies to use in the Envoy OIDC filter.
+type OIDCCookieNames struct {
+ // The name of the cookie used to store the AccessToken in the
+ // [Authentication Request](https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest).
+ // If not specified, defaults to "AccessToken-(randomly generated uid)"
+ // +optional
+ AccessToken *string `json:"accessToken,omitempty"`
+ // The name of the cookie used to store the IdToken in the
+ // [Authentication Request](https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest).
+ // If not specified, defaults to "IdToken-(randomly generated uid)"
+ // +optional
+ IDToken *string `json:"idToken,omitempty"`
+}
+
+type SameSite string
+
+const (
+ // SameSiteLax specifies the "Lax" SameSite policy.
+ SameSiteLax SameSite = "Lax"
+ // SameSiteStrict specifies the "Strict" SameSite policy.
+ SameSiteStrict SameSite = "Strict"
+ // SameSiteNone specifies the "None" SameSite policy. Requires a Secure cookie.
+ SameSiteNone SameSite = "None"
+)
+
+// OIDCCookieConfig defines the cookie configuration for OAuth2 cookies.
+type OIDCCookieConfig struct {
+ // +optional
+ // +kubebuilder:validation:Enum=Lax;Strict;None
+ SameSite *string `json:"sameSite,omitempty"`
+}
diff --git a/vendor/github.com/envoyproxy/gateway/api/v1alpha1/pathsettings_types.go b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/pathsettings_types.go
new file mode 100644
index 00000000..c6963af7
--- /dev/null
+++ b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/pathsettings_types.go
@@ -0,0 +1,54 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package v1alpha1
+
+// PathEscapedSlashAction determines the action for requests that contain %2F, %2f, %5C, or %5c
+// sequences in the URI path.
+// +kubebuilder:validation:Enum=KeepUnchanged;RejectRequest;UnescapeAndForward;UnescapeAndRedirect
+type PathEscapedSlashAction string
+
+const (
+ // KeepUnchangedAction keeps escaped slashes as they arrive without changes
+ KeepUnchangedAction PathEscapedSlashAction = "KeepUnchanged"
+ // RejectRequestAction rejects client requests containing escaped slashes
+ // with a 400 status. gRPC requests will be rejected with the INTERNAL (13)
+ // error code.
+ // The "httpN.downstream_rq_failed_path_normalization" counter is incremented
+ // for each rejected request.
+ RejectRequestAction PathEscapedSlashAction = "RejectRequest"
+ // UnescapeAndRedirect unescapes %2F and %5C sequences and redirects to the new path
+ // if these sequences were present.
+ //
+ // Redirect occurs after path normalization and merge slashes transformations if
+ // they were configured. gRPC requests will be rejected with the INTERNAL (13)
+ // error code.
+ // This option minimizes possibility of path confusion exploits by forcing request
+ // with unescaped slashes to traverse all parties: downstream client, intermediate
+ // proxies, Envoy and upstream server.
+ // The “httpN.downstream_rq_redirected_with_normalized_path” counter is incremented
+ // for each redirected request.
+ UnescapeAndRedirect PathEscapedSlashAction = "UnescapeAndRedirect"
+ // UnescapeAndForward unescapes %2F and %5C sequences and forwards the request.
+ // Note: this option should not be enabled if intermediaries perform path based access
+ // control as it may lead to path confusion vulnerabilities.
+ UnescapeAndForward PathEscapedSlashAction = "UnescapeAndForward"
+)
+
+// PathSettings provides settings that managing how the incoming path set by clients is handled.
+type PathSettings struct {
+ // EscapedSlashesAction determines how %2f, %2F, %5c, or %5C sequences in the path URI
+ // should be handled.
+ // The default is UnescapeAndRedirect.
+ //
+ // +optional
+ EscapedSlashesAction *PathEscapedSlashAction `json:"escapedSlashesAction,omitempty"`
+ // DisableMergeSlashes allows disabling the default configuration of merging adjacent
+ // slashes in the path.
+ // Note that slash merging is not part of the HTTP spec and is provided for convenience.
+ //
+ // +optional
+ DisableMergeSlashes *bool `json:"disableMergeSlashes,omitempty"`
+}
diff --git a/vendor/github.com/envoyproxy/gateway/api/v1alpha1/policy_helpers.go b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/policy_helpers.go
new file mode 100644
index 00000000..32bc1fa7
--- /dev/null
+++ b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/policy_helpers.go
@@ -0,0 +1,70 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package v1alpha1
+
+import (
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ gwapiv1 "sigs.k8s.io/gateway-api/apis/v1"
+)
+
+const (
+ // PolicyConditionAggregated indicates whether the policy has been aggregated
+ // to satisfy CEL constraints in PolicyAncestorStatus (not exceeding 16).
+ //
+ // Possible reasons for this condition to be True are:
+ //
+ // * "Aggregated"
+ //
+ PolicyConditionAggregated gwapiv1.PolicyConditionType = "Aggregated"
+
+ // PolicyReasonAggregated is used with the "Aggregated" condition when the policy
+ // is aggregated to satisfy CEL constraints in PolicyAncestorStatus (not exceeding 16).
+ PolicyReasonAggregated gwapiv1.PolicyConditionReason = "Aggregated"
+)
+
+type PolicyTargetReferences struct {
+ // TargetRef is the name of the resource this policy is being attached to.
+ // This policy and the TargetRef MUST be in the same namespace for this
+ // Policy to have effect
+ //
+ // Deprecated: use targetRefs/targetSelectors instead
+ TargetRef *gwapiv1.LocalPolicyTargetReferenceWithSectionName `json:"targetRef,omitempty"`
+
+ // TargetRefs are the names of the Gateway resources this policy
+ // is being attached to.
+ TargetRefs []gwapiv1.LocalPolicyTargetReferenceWithSectionName `json:"targetRefs,omitempty"`
+
+ // TargetSelectors allow targeting resources for this policy based on labels
+ TargetSelectors []TargetSelector `json:"targetSelectors,omitempty"`
+}
+
+// +kubebuilder:validation:XValidation:rule="has(self.group) ? self.group == 'gateway.networking.k8s.io' : true ", message="group must be gateway.networking.k8s.io"
+type TargetSelector struct {
+ // Group is the group that this selector targets. Defaults to gateway.networking.k8s.io
+ //
+ // +kubebuilder:default:="gateway.networking.k8s.io"
+ Group *gwapiv1.Group `json:"group,omitempty"`
+
+ // Kind is the resource kind that this selector targets.
+ Kind gwapiv1.Kind `json:"kind"`
+
+ // MatchLabels are the set of label selectors for identifying the targeted resource
+ // +optional
+ MatchLabels map[string]string `json:"matchLabels,omitempty"`
+
+ // MatchExpressions is a list of label selector requirements. The requirements are ANDed.
+ //
+ // +optional
+ // +listType=atomic
+ MatchExpressions []metav1.LabelSelectorRequirement `json:"matchExpressions,omitempty"`
+}
+
+func (p PolicyTargetReferences) GetTargetRefs() []gwapiv1.LocalPolicyTargetReferenceWithSectionName {
+ if p.TargetRef != nil {
+ return []gwapiv1.LocalPolicyTargetReferenceWithSectionName{*p.TargetRef}
+ }
+ return p.TargetRefs
+}
diff --git a/vendor/github.com/envoyproxy/gateway/api/v1alpha1/proxyprotocol_types.go b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/proxyprotocol_types.go
new file mode 100644
index 00000000..16d6a900
--- /dev/null
+++ b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/proxyprotocol_types.go
@@ -0,0 +1,27 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package v1alpha1
+
+// ProxyProtocol defines the configuration related to the proxy protocol
+// when communicating with the backend.
+type ProxyProtocol struct {
+ // Version of ProxyProtol
+ // Valid ProxyProtocolVersion values are
+ // "V1"
+ // "V2"
+ Version ProxyProtocolVersion `json:"version"`
+}
+
+// ProxyProtocolVersion defines the version of the Proxy Protocol to use.
+// +kubebuilder:validation:Enum=V1;V2
+type ProxyProtocolVersion string
+
+const (
+ // ProxyProtocolVersionV1 is the PROXY protocol version 1 (human readable format).
+ ProxyProtocolVersionV1 ProxyProtocolVersion = "V1"
+ // ProxyProtocolVersionV2 is the PROXY protocol version 2 (binary format).
+ ProxyProtocolVersionV2 ProxyProtocolVersion = "V2"
+)
diff --git a/vendor/github.com/envoyproxy/gateway/api/v1alpha1/ratelimit_types.go b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/ratelimit_types.go
new file mode 100644
index 00000000..f7c2fc8c
--- /dev/null
+++ b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/ratelimit_types.go
@@ -0,0 +1,363 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package v1alpha1
+
+import (
+ gwapiv1 "sigs.k8s.io/gateway-api/apis/v1"
+)
+
+// RateLimitSpec defines the desired state of RateLimitSpec.
+type RateLimitSpec struct {
+ // Type decides the scope for the RateLimits.
+ // Valid RateLimitType values are "Global" or "Local".
+ //
+ // Deprecated: Use Global and/or Local fields directly instead. Both can be specified simultaneously for combined rate limiting.
+ //
+ // +optional
+ Type *RateLimitType `json:"type,omitempty"`
+ // Global defines global rate limit configuration.
+ //
+ // +optional
+ Global *GlobalRateLimit `json:"global,omitempty"`
+
+ // Local defines local rate limit configuration.
+ //
+ // +optional
+ Local *LocalRateLimit `json:"local,omitempty"`
+}
+
+// RateLimitType specifies the types of RateLimiting.
+// +kubebuilder:validation:Enum=Global;Local
+type RateLimitType string
+
+const (
+ // GlobalRateLimitType allows the rate limits to be applied across all Envoy
+ // proxy instances.
+ GlobalRateLimitType RateLimitType = "Global"
+
+ // LocalRateLimitType allows the rate limits to be applied on a per Envoy
+ // proxy instance basis.
+ LocalRateLimitType RateLimitType = "Local"
+)
+
+// GlobalRateLimit defines global rate limit configuration.
+type GlobalRateLimit struct {
+ // Rules are a list of RateLimit selectors and limits. Each rule and its
+ // associated limit is applied in a mutually exclusive way. If a request
+ // matches multiple rules, each of their associated limits get applied, so a
+ // single request might increase the rate limit counters for multiple rules
+ // if selected. The rate limit service will return a logical OR of the individual
+ // rate limit decisions of all matching rules. For example, if a request
+ // matches two rules, one rate limited and one not, the final decision will be
+ // to rate limit the request.
+ //
+ // +kubebuilder:validation:MaxItems=128
+ Rules []RateLimitRule `json:"rules"`
+}
+
+// LocalRateLimit defines local rate limit configuration.
+type LocalRateLimit struct {
+ // Rules are a list of RateLimit selectors and limits. If a request matches
+ // multiple rules, the strictest limit is applied. For example, if a request
+ // matches two rules, one with 10rps and one with 20rps, the final limit will
+ // be based on the rule with 10rps.
+ //
+ // +optional
+ // +kubebuilder:validation:MaxItems=16
+ // +kubebuilder:validation:XValidation:rule="self.all(foo, !has(foo.cost) || !has(foo.cost.response))", message="response cost is not supported for Local Rate Limits"
+ Rules []RateLimitRule `json:"rules"`
+}
+
+// RateLimitRule defines the semantics for matching attributes
+// from the incoming requests, and setting limits for them.
+type RateLimitRule struct {
+ // ClientSelectors holds the list of select conditions to select
+ // specific clients using attributes from the traffic flow.
+ // All individual select conditions must hold True for this rule
+ // and its limit to be applied.
+ //
+ // If no client selectors are specified, the rule applies to all traffic of
+ // the targeted Route.
+ //
+ // If the policy targets a Gateway, the rule applies to each Route of the Gateway.
+ // Please note that each Route has its own rate limit counters. For example,
+ // if a Gateway has two Routes, and the policy has a rule with limit 10rps,
+ // each Route will have its own 10rps limit.
+ //
+ // +optional
+ // +kubebuilder:validation:MaxItems=8
+ ClientSelectors []RateLimitSelectCondition `json:"clientSelectors,omitempty"`
+ // Limit holds the rate limit values.
+ // This limit is applied for traffic flows when the selectors
+ // compute to True, causing the request to be counted towards the limit.
+ // The limit is enforced and the request is ratelimited, i.e. a response with
+ // 429 HTTP status code is sent back to the client when
+ // the selected requests have reached the limit.
+ Limit RateLimitValue `json:"limit"`
+ // Cost specifies the cost of requests and responses for the rule.
+ //
+ // This is optional and if not specified, the default behavior is to reduce the rate limit counters by 1 on
+ // the request path and do not reduce the rate limit counters on the response path.
+ //
+ // +optional
+ Cost *RateLimitCost `json:"cost,omitempty"`
+ // Shared determines whether this rate limit rule applies across all the policy targets.
+ // If set to true, the rule is treated as a common bucket and is shared across all policy targets (xRoutes).
+ // Default: false.
+ //
+ // +optional
+ Shared *bool `json:"shared,omitempty"`
+}
+
+type RateLimitCost struct {
+ // Request specifies the number to reduce the rate limit counters
+ // on the request path. If this is not specified, the default behavior
+ // is to reduce the rate limit counters by 1.
+ //
+ // When Envoy receives a request that matches the rule, it tries to reduce the
+ // rate limit counters by the specified number. If the counter doesn't have
+ // enough capacity, the request is rate limited.
+ //
+ // +optional
+ Request *RateLimitCostSpecifier `json:"request,omitempty"`
+ // Response specifies the number to reduce the rate limit counters
+ // after the response is sent back to the client or the request stream is closed.
+ //
+ // The cost is used to reduce the rate limit counters for the matching requests.
+ // Since the reduction happens after the request stream is complete, the rate limit
+ // won't be enforced for the current request, but for the subsequent matching requests.
+ //
+ // This is optional and if not specified, the rate limit counters are not reduced
+ // on the response path.
+ //
+ // Currently, this is only supported for HTTP Global Rate Limits.
+ //
+ // +optional
+ Response *RateLimitCostSpecifier `json:"response,omitempty"`
+}
+
+// RateLimitCostSpecifier specifies where the Envoy retrieves the number to reduce the rate limit counters.
+//
+// +kubebuilder:validation:XValidation:rule="!(has(self.number) && has(self.metadata))",message="only one of number or metadata can be specified"
+type RateLimitCostSpecifier struct {
+ // From specifies where to get the rate limit cost. Currently, only "Number" and "Metadata" are supported.
+ //
+ // +kubebuilder:validation:Required
+ From RateLimitCostFrom `json:"from"`
+ // Number specifies the fixed usage number to reduce the rate limit counters.
+ // Using zero can be used to only check the rate limit counters without reducing them.
+ //
+ // +optional
+ Number *uint64 `json:"number,omitempty"`
+ // Metadata specifies the per-request metadata to retrieve the usage number from.
+ //
+ // +optional
+ Metadata *RateLimitCostMetadata `json:"metadata,omitempty"`
+}
+
+// RateLimitCostFrom specifies the source of the rate limit cost.
+// Valid RateLimitCostType values are "Number" and "Metadata".
+//
+// +kubebuilder:validation:Enum=Number;Metadata
+type RateLimitCostFrom string
+
+const (
+ // RateLimitCostFromNumber specifies the rate limit cost to be a fixed number.
+ RateLimitCostFromNumber RateLimitCostFrom = "Number"
+ // RateLimitCostFromMetadata specifies the rate limit cost to be retrieved from the per-request dynamic metadata.
+ RateLimitCostFromMetadata RateLimitCostFrom = "Metadata"
+ // TODO: add headers, etc. Anything that can be represented in "Format" can be added here.
+ // https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#config-access-log-format
+)
+
+// RateLimitCostMetadata specifies the filter metadata to retrieve the usage number from.
+type RateLimitCostMetadata struct {
+ // Namespace is the namespace of the dynamic metadata.
+ //
+ // +kubebuilder:validation:Required
+ Namespace string `json:"namespace"`
+ // Key is the key to retrieve the usage number from the filter metadata.
+ //
+ // +kubebuilder:validation:Required
+ Key string `json:"key"`
+}
+
+// RateLimitSelectCondition specifies the attributes within the traffic flow that can
+// be used to select a subset of clients to be ratelimited.
+// All the individual conditions must hold True for the overall condition to hold True.
+// And, at least one of headers or methods or path or sourceCIDR condition must be specified.
+//
+// +kubebuilder:validation:XValidation:rule="has(self.headers) || has(self.methods) || has(self.path) || has(self.sourceCIDR)",message="at least one of headers, methods, path or sourceCIDR must be specified"
+type RateLimitSelectCondition struct {
+ // Headers is a list of request headers to match. Multiple header values are ANDed together,
+ // meaning, a request MUST match all the specified headers.
+ //
+ // +optional
+ // +kubebuilder:validation:MaxItems=16
+ Headers []HeaderMatch `json:"headers,omitempty"`
+
+ // Methods is a list of request methods to match. Multiple method values are ORed together,
+ // meaning, a request can match any one of the specified methods. If not specified, it matches all methods.
+ //
+ // +optional
+ Methods []MethodMatch `json:"methods,omitempty"`
+
+ // Path is the request path to match.
+ // Support Exact, PathPrefix and RegularExpression match types.
+ //
+ // +optional
+ Path *PathMatch `json:"path,omitempty"`
+
+ // SourceCIDR is the client IP Address range to match on.
+ //
+ // +optional
+ SourceCIDR *SourceMatch `json:"sourceCIDR,omitempty"`
+}
+
+// +kubebuilder:validation:Enum=Exact;Distinct
+type SourceMatchType string
+
+const (
+ // SourceMatchExact All IP Addresses within the specified Source IP CIDR are treated as a single client selector
+ // and share the same rate limit bucket.
+ SourceMatchExact SourceMatchType = "Exact"
+ // SourceMatchDistinct Each IP Address within the specified Source IP CIDR is treated as a distinct client selector
+ // and uses a separate rate limit bucket/counter.
+ SourceMatchDistinct SourceMatchType = "Distinct"
+)
+
+type SourceMatch struct {
+ // +optional
+ // +kubebuilder:default=Exact
+ Type *SourceMatchType `json:"type,omitempty"`
+
+ // Value is the IP CIDR that represents the range of Source IP Addresses of the client.
+ // These could also be the intermediate addresses through which the request has flown through and is part of the `X-Forwarded-For` header.
+ // For example, `192.168.0.1/32`, `192.168.0.0/24`, `001:db8::/64`.
+ // +kubebuilder:validation:MinLength=1
+ // +kubebuilder:validation:MaxLength=256
+ Value string `json:"value"`
+}
+
+// HeaderMatch defines the match attributes within the HTTP Headers of the request.
+type HeaderMatch struct {
+ // Type specifies how to match against the value of the header.
+ //
+ // +optional
+ // +kubebuilder:default=Exact
+ Type *HeaderMatchType `json:"type,omitempty"`
+
+ // Name of the HTTP header.
+ // The header name is case-insensitive unless PreserveHeaderCase is set to true.
+ // For example, "Foo" and "foo" are considered the same header.
+ //
+ // +kubebuilder:validation:MinLength=1
+ // +kubebuilder:validation:MaxLength=256
+ Name string `json:"name"`
+
+ // Value within the HTTP header.
+ // Do not set this field when Type="Distinct", implying matching on any/all unique
+ // values within the header.
+ //
+ // +optional
+ // +kubebuilder:validation:MaxLength=1024
+ Value *string `json:"value,omitempty"`
+
+ // Invert specifies whether the value match result will be inverted.
+ // Do not set this field when Type="Distinct", implying matching on any/all unique
+ // values within the header.
+ //
+ // +optional
+ // +kubebuilder:default=false
+ Invert *bool `json:"invert,omitempty"`
+}
+
+// HeaderMatchType specifies the semantics of how HTTP header values should be compared.
+// Valid HeaderMatchType values are "Exact", "RegularExpression", and "Distinct".
+//
+// +kubebuilder:validation:Enum=Exact;RegularExpression;Distinct
+type HeaderMatchType string
+
+// HeaderMatchType constants.
+const (
+ // HeaderMatchExact matches the exact value of the Value field against the value of
+ // the specified HTTP Header.
+ HeaderMatchExact HeaderMatchType = "Exact"
+ // HeaderMatchRegularExpression matches a regular expression against the value of the
+ // specified HTTP Header. The regex string must adhere to the syntax documented in
+ // https://github.com/google/re2/wiki/Syntax.
+ HeaderMatchRegularExpression HeaderMatchType = "RegularExpression"
+ // HeaderMatchDistinct matches any and all possible unique values encountered in the
+ // specified HTTP Header. Note that each unique value will receive its own rate limit
+ // bucket.
+ HeaderMatchDistinct HeaderMatchType = "Distinct"
+)
+
+// MethodMatch defines the matching criteria for the HTTP method of a request.
+type MethodMatch struct {
+ // Value specifies the HTTP method.
+ Value gwapiv1.HTTPMethod `json:"value"`
+
+ // Invert specifies whether the value match result will be inverted.
+ //
+ // +optional
+ // +kubebuilder:default=false
+ Invert *bool `json:"invert,omitempty"`
+}
+
+// PathMatch defines the matching criteria for the HTTP path of a request.
+type PathMatch struct {
+ // Type specifies how to match against the value of the path.
+ //
+ // +optional
+ // +kubebuilder:default=PathPrefix
+ Type *gwapiv1.PathMatchType `json:"type,omitempty"`
+
+ // Value specifies the HTTP path.
+ //
+ // +kubebuilder:default="/"
+ // +kubebuilder:validation:MaxLength=1024
+ Value string `json:"value"`
+
+ // Invert specifies whether the value match result will be inverted.
+ //
+ // +optional
+ // +kubebuilder:default=false
+ Invert *bool `json:"invert,omitempty"`
+}
+
+// RateLimitValue defines the limits for rate limiting.
+type RateLimitValue struct {
+ Requests uint `json:"requests"`
+ Unit RateLimitUnit `json:"unit"`
+}
+
+// RateLimitUnit specifies the intervals for setting rate limits.
+// Valid RateLimitUnit values are "Second", "Minute", "Hour", "Day", "Month" and "Year".
+//
+// +kubebuilder:validation:Enum=Second;Minute;Hour;Day;Month;Year
+type RateLimitUnit string
+
+// RateLimitUnit constants.
+const (
+ // RateLimitUnitSecond specifies the rate limit interval to be 1 second.
+ RateLimitUnitSecond RateLimitUnit = "Second"
+
+ // RateLimitUnitMinute specifies the rate limit interval to be 1 minute.
+ RateLimitUnitMinute RateLimitUnit = "Minute"
+
+ // RateLimitUnitHour specifies the rate limit interval to be 1 hour.
+ RateLimitUnitHour RateLimitUnit = "Hour"
+
+ // RateLimitUnitDay specifies the rate limit interval to be 1 day.
+ RateLimitUnitDay RateLimitUnit = "Day"
+
+ // RateLimitUnitMonth specifies the rate limit interval to be 1 month.
+ RateLimitUnitMonth RateLimitUnit = "Month"
+
+ // RateLimitUnitYear specifies the rate limit interval to be 1 year.
+ RateLimitUnitYear RateLimitUnit = "Year"
+)
diff --git a/vendor/github.com/envoyproxy/gateway/api/v1alpha1/retry_types.go b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/retry_types.go
new file mode 100644
index 00000000..17439c7f
--- /dev/null
+++ b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/retry_types.go
@@ -0,0 +1,119 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package v1alpha1
+
+import (
+ gwapiv1 "sigs.k8s.io/gateway-api/apis/v1"
+)
+
+// Retry defines the retry strategy to be applied.
+type Retry struct {
+ // NumRetries is the number of retries to be attempted. Defaults to 2.
+ //
+ // +optional
+ // +kubebuilder:validation:Minimum=0
+ // +kubebuilder:default=2
+ NumRetries *int32 `json:"numRetries,omitempty"`
+
+ // NumAttemptsPerPriority defines the number of requests (initial attempt + retries)
+ // that should be sent to the same priority before switching to a different one.
+ // If not specified or set to 0, all requests are sent to the highest priority that is healthy.
+ //
+ // +optional
+ NumAttemptsPerPriority *int32 `json:"numAttemptsPerPriority,omitempty"`
+
+ // RetryOn specifies the retry trigger condition.
+ //
+ // If not specified, the default is to retry on connect-failure,refused-stream,unavailable,cancelled,retriable-status-codes(503).
+ // +optional
+ RetryOn *RetryOn `json:"retryOn,omitempty"`
+
+ // PerRetry is the retry policy to be applied per retry attempt.
+ //
+ // +optional
+ PerRetry *PerRetryPolicy `json:"perRetry,omitempty"`
+}
+
+type RetryOn struct {
+ // Triggers specifies the retry trigger condition(Http/Grpc).
+ //
+ // +optional
+ Triggers []TriggerEnum `json:"triggers,omitempty"`
+
+ // HttpStatusCodes specifies the http status codes to be retried.
+ // The retriable-status-codes trigger must also be configured for these status codes to trigger a retry.
+ //
+ // +optional
+ HTTPStatusCodes []HTTPStatus `json:"httpStatusCodes,omitempty"`
+}
+
+// TriggerEnum specifies the conditions that trigger retries.
+// +kubebuilder:validation:Enum={"5xx","gateway-error","reset","reset-before-request","connect-failure","retriable-4xx","refused-stream","retriable-status-codes","cancelled","deadline-exceeded","internal","resource-exhausted","unavailable"}
+type TriggerEnum string
+
+const (
+ // HTTP events.
+ // For additional details, see https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/router_filter#x-envoy-retry-on
+
+ // The upstream server responds with any 5xx response code, or does not respond at all (disconnect/reset/read timeout).
+ // Includes connect-failure and refused-stream.
+ Error5XX TriggerEnum = "5xx"
+ // The response is a gateway error (502,503 or 504).
+ GatewayError TriggerEnum = "gateway-error"
+ // The upstream server does not respond at all (disconnect/reset/read timeout.)
+ Reset TriggerEnum = "reset"
+ // Like reset, but only retry if the request headers have not been sent to the upstream server.
+ ResetBeforeRequest TriggerEnum = "reset-before-request"
+ // Connection failure to the upstream server (connect timeout, etc.). (Included in *5xx*)
+ ConnectFailure TriggerEnum = "connect-failure"
+ // The upstream server responds with a retriable 4xx response code.
+ // Currently, the only response code in this category is 409.
+ Retriable4XX TriggerEnum = "retriable-4xx"
+ // The upstream server resets the stream with a REFUSED_STREAM error code.
+ RefusedStream TriggerEnum = "refused-stream"
+ // The upstream server responds with any response code matching one defined in the RetriableStatusCodes.
+ RetriableStatusCodes TriggerEnum = "retriable-status-codes"
+
+ // GRPC events, currently only supported for gRPC status codes in response headers.
+ // For additional details, see https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/router_filter#x-envoy-retry-grpc-on
+
+ // The gRPC status code in the response headers is “cancelled”.
+ Cancelled TriggerEnum = "cancelled"
+ // The gRPC status code in the response headers is “deadline-exceeded”.
+ DeadlineExceeded TriggerEnum = "deadline-exceeded"
+ // The gRPC status code in the response headers is “internal”.
+ Internal TriggerEnum = "internal"
+ // The gRPC status code in the response headers is “resource-exhausted”.
+ ResourceExhausted TriggerEnum = "resource-exhausted"
+ // The gRPC status code in the response headers is “unavailable”.
+ Unavailable TriggerEnum = "unavailable"
+)
+
+type PerRetryPolicy struct {
+ // Timeout is the timeout per retry attempt.
+ //
+ // +optional
+ Timeout *gwapiv1.Duration `json:"timeout,omitempty"`
+ // Backoff is the backoff policy to be applied per retry attempt. gateway uses a fully jittered exponential
+ // back-off algorithm for retries. For additional details,
+ // see https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/router_filter#config-http-filters-router-x-envoy-max-retries
+ //
+ // +optional
+ BackOff *BackOffPolicy `json:"backOff,omitempty"`
+}
+
+type BackOffPolicy struct {
+ // BaseInterval is the base interval between retries.
+ //
+ // +optional
+ BaseInterval *gwapiv1.Duration `json:"baseInterval,omitempty"`
+ // MaxInterval is the maximum interval between retries. This parameter is optional, but must be greater than or equal to the base_interval if set.
+ // The default is 10 times the base_interval
+ //
+ // +optional
+ MaxInterval *gwapiv1.Duration `json:"maxInterval,omitempty"`
+ // we can add rate limited based backoff config here if we want to.
+}
diff --git a/vendor/github.com/envoyproxy/gateway/api/v1alpha1/securitypolicy_types.go b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/securitypolicy_types.go
new file mode 100644
index 00000000..3ec2c46c
--- /dev/null
+++ b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/securitypolicy_types.go
@@ -0,0 +1,100 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package v1alpha1
+
+import (
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ gwapiv1 "sigs.k8s.io/gateway-api/apis/v1"
+)
+
+const (
+ // KindSecurityPolicy is the name of the SecurityPolicy kind.
+ KindSecurityPolicy = "SecurityPolicy"
+)
+
+// +kubebuilder:object:root=true
+// +kubebuilder:resource:categories=envoy-gateway,shortName=sp
+// +kubebuilder:subresource:status
+// +kubebuilder:printcolumn:name="Age",type=date,JSONPath=`.metadata.creationTimestamp`
+
+// SecurityPolicy allows the user to configure various security settings for a
+// Gateway.
+type SecurityPolicy struct {
+ metav1.TypeMeta `json:",inline"`
+ metav1.ObjectMeta `json:"metadata,omitempty"`
+
+ // Spec defines the desired state of SecurityPolicy.
+ Spec SecurityPolicySpec `json:"spec"`
+
+ // Status defines the current status of SecurityPolicy.
+ Status gwapiv1.PolicyStatus `json:"status,omitempty"`
+}
+
+// SecurityPolicySpec defines the desired state of SecurityPolicy.
+//
+// NOTE: SecurityPolicy can target Gateway, HTTPRoute, GRPCRoute, and TCPRoute.
+// When a SecurityPolicy targets a TCPRoute, only client-IP based authorization
+// (Authorization rules that use Principal.ClientCIDRs) is applied. Other
+// authentication/authorization features such as JWT, API Key, Basic Auth,
+// OIDC, or External Authorization are not applicable to TCPRoute targets.
+//
+// +kubebuilder:validation:XValidation:rule="(has(self.targetRef) && !has(self.targetRefs)) || (!has(self.targetRef) && has(self.targetRefs)) || (has(self.targetSelectors) && self.targetSelectors.size() > 0) ", message="either targetRef or targetRefs must be used"
+// +kubebuilder:validation:XValidation:rule="has(self.targetRef) ? self.targetRef.group == 'gateway.networking.k8s.io' : true", message="this policy can only have a targetRef.group of gateway.networking.k8s.io"
+// +kubebuilder:validation:XValidation:rule="has(self.targetRef) ? self.targetRef.kind in ['Gateway', 'HTTPRoute', 'GRPCRoute', 'TCPRoute'] : true", message="this policy can only have a targetRef.kind of Gateway/HTTPRoute/GRPCRoute/TCPRoute"
+// +kubebuilder:validation:XValidation:rule="has(self.targetRefs) ? self.targetRefs.all(ref, ref.group == 'gateway.networking.k8s.io') : true ", message="this policy can only have a targetRefs[*].group of gateway.networking.k8s.io"
+// +kubebuilder:validation:XValidation:rule="has(self.targetRefs) ? self.targetRefs.all(ref, ref.kind in ['Gateway', 'HTTPRoute', 'GRPCRoute', 'TCPRoute']) : true ", message="this policy can only have a targetRefs[*].kind of Gateway/HTTPRoute/GRPCRoute/TCPRoute"
+// +kubebuilder:validation:XValidation:rule="(has(self.authorization) && has(self.authorization.rules) && self.authorization.rules.exists(r, has(r.principal.jwt))) ? has(self.jwt) : true", message="if authorization.rules.principal.jwt is used, jwt must be defined"
+type SecurityPolicySpec struct {
+ PolicyTargetReferences `json:",inline"`
+
+ // APIKeyAuth defines the configuration for the API Key Authentication.
+ //
+ // +optional
+ APIKeyAuth *APIKeyAuth `json:"apiKeyAuth,omitempty"`
+
+ // CORS defines the configuration for Cross-Origin Resource Sharing (CORS).
+ //
+ // +optional
+ CORS *CORS `json:"cors,omitempty"`
+
+ // BasicAuth defines the configuration for the HTTP Basic Authentication.
+ //
+ // +optional
+ BasicAuth *BasicAuth `json:"basicAuth,omitempty"`
+
+ // JWT defines the configuration for JSON Web Token (JWT) authentication.
+ //
+ // +optional
+ JWT *JWT `json:"jwt,omitempty"`
+
+ // OIDC defines the configuration for the OpenID Connect (OIDC) authentication.
+ //
+ // +optional
+ OIDC *OIDC `json:"oidc,omitempty"`
+
+ // ExtAuth defines the configuration for External Authorization.
+ //
+ // +optional
+ ExtAuth *ExtAuth `json:"extAuth,omitempty"`
+
+ // Authorization defines the authorization configuration.
+ //
+ // +optional
+ Authorization *Authorization `json:"authorization,omitempty"`
+}
+
+//+kubebuilder:object:root=true
+
+// SecurityPolicyList contains a list of SecurityPolicy resources.
+type SecurityPolicyList struct {
+ metav1.TypeMeta `json:",inline"`
+ metav1.ListMeta `json:"metadata,omitempty"`
+ Items []SecurityPolicy `json:"items"`
+}
+
+func init() {
+ SchemeBuilder.Register(&SecurityPolicy{}, &SecurityPolicyList{})
+}
diff --git a/vendor/github.com/envoyproxy/gateway/api/v1alpha1/share_types_helper.go b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/share_types_helper.go
new file mode 100644
index 00000000..ab055535
--- /dev/null
+++ b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/share_types_helper.go
@@ -0,0 +1,18 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package v1alpha1
+
+import gwapiv1 "sigs.k8s.io/gateway-api/apis/v1"
+
+func ToBackendObjectReference(ref BackendRef) *gwapiv1.BackendObjectReference {
+ return &gwapiv1.BackendObjectReference{
+ Group: ref.Group,
+ Kind: ref.Kind,
+ Namespace: ref.Namespace,
+ Name: ref.Name,
+ Port: ref.Port,
+ }
+}
diff --git a/vendor/github.com/envoyproxy/gateway/api/v1alpha1/shared_types.go b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/shared_types.go
new file mode 100644
index 00000000..899e3cf4
--- /dev/null
+++ b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/shared_types.go
@@ -0,0 +1,963 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package v1alpha1
+
+import (
+ appsv1 "k8s.io/api/apps/v1"
+ autoscalingv2 "k8s.io/api/autoscaling/v2"
+ corev1 "k8s.io/api/core/v1"
+ apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
+ "k8s.io/apimachinery/pkg/api/resource"
+ "k8s.io/apimachinery/pkg/util/intstr"
+ gwapiv1 "sigs.k8s.io/gateway-api/apis/v1"
+)
+
+const (
+ // DefaultDeploymentReplicas is the default number of deployment replicas.
+ DefaultDeploymentReplicas = 1
+ // DefaultDeploymentCPUResourceRequests for deployment cpu resource
+ DefaultDeploymentCPUResourceRequests = "100m"
+ // DefaultDeploymentMemoryResourceRequests for deployment memory resource
+ DefaultDeploymentMemoryResourceRequests = "512Mi"
+ // DefaultEnvoyProxyImage is the default image used by envoyproxy
+ DefaultEnvoyProxyImage = "docker.io/envoyproxy/envoy:distroless-v1.36.4"
+ // DefaultShutdownManagerCPUResourceRequests for shutdown manager cpu resource
+ DefaultShutdownManagerCPUResourceRequests = "10m"
+ // DefaultShutdownManagerMemoryResourceRequests for shutdown manager memory resource
+ DefaultShutdownManagerMemoryResourceRequests = "32Mi"
+ // DefaultShutdownManagerImage is the default image used for the shutdown manager.
+ DefaultShutdownManagerImage = "docker.io/envoyproxy/gateway-dev:latest"
+ // DefaultRateLimitImage is the default image used by ratelimit.
+ DefaultRateLimitImage = "docker.io/envoyproxy/ratelimit:3fb70258"
+ // HTTPProtocol is the common-used http protocol.
+ HTTPProtocol = "http"
+ // GRPCProtocol is the common-used grpc protocol.
+ GRPCProtocol = "grpc"
+)
+
+const (
+ // PolicyConditionOverridden indicates whether the policy has
+ // completely attached to all the sections within the target or not.
+ //
+ // Possible reasons for this condition to be True are:
+ //
+ // * "Overridden"
+ //
+ PolicyConditionOverridden gwapiv1.PolicyConditionType = "Overridden"
+
+ // PolicyReasonOverridden is used with the "Overridden" condition when the policy
+ // has been overridden by another policy targeting a section within the same target.
+ PolicyReasonOverridden gwapiv1.PolicyConditionReason = "Overridden"
+
+ // PolicyConditionMerged indicates whether the policy has
+ // been merged with another policy targeting the parent(e.g. Gateway).
+ PolicyConditionMerged gwapiv1.PolicyConditionType = "Merged"
+ // PolicyReasonMerged is used with the "Merged" condition when the policy
+ // has been merged with another policy targeting the parent(e.g. Gateway).
+ PolicyReasonMerged gwapiv1.PolicyConditionReason = "Merged"
+)
+
+// GroupVersionKind unambiguously identifies a Kind.
+// It can be converted to k8s.io/apimachinery/pkg/runtime/schema.GroupVersionKind
+type GroupVersionKind struct {
+ Group string `json:"group"`
+ Version string `json:"version"`
+ Kind string `json:"kind"`
+}
+
+// ProviderType defines the types of providers supported by Envoy Gateway.
+//
+// +kubebuilder:validation:Enum=Kubernetes;Custom
+type ProviderType string
+
+const (
+ // ProviderTypeKubernetes defines the "Kubernetes" provider.
+ ProviderTypeKubernetes ProviderType = "Kubernetes"
+
+ // ProviderTypeCustom defines the "Custom" provider.
+ ProviderTypeCustom ProviderType = "Custom"
+)
+
+// KubernetesDeploymentSpec defines the desired state of the Kubernetes deployment resource.
+type KubernetesDeploymentSpec struct {
+ // Patch defines how to perform the patch operation to deployment
+ //
+ // +optional
+ Patch *KubernetesPatchSpec `json:"patch,omitempty"`
+
+ // Replicas is the number of desired pods. Defaults to 1.
+ //
+ // +optional
+ Replicas *int32 `json:"replicas,omitempty"`
+
+ // The deployment strategy to use to replace existing pods with new ones.
+ // +optional
+ Strategy *appsv1.DeploymentStrategy `json:"strategy,omitempty"`
+
+ // Pod defines the desired specification of pod.
+ //
+ // +optional
+ Pod *KubernetesPodSpec `json:"pod,omitempty"`
+
+ // Container defines the desired specification of main container.
+ //
+ // +optional
+ Container *KubernetesContainerSpec `json:"container,omitempty"`
+
+ // List of initialization containers belonging to the pod.
+ // More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
+ //
+ // +optional
+ InitContainers []corev1.Container `json:"initContainers,omitempty"`
+
+ // Name of the deployment.
+ // When unset, this defaults to an autogenerated name.
+ //
+ // +optional
+ Name *string `json:"name,omitempty"`
+ // TODO: Expose config as use cases are better understood, e.g. labels.
+}
+
+// KubernetesDaemonSetSpec defines the desired state of the Kubernetes daemonset resource.
+type KubernetesDaemonSetSpec struct {
+ // Patch defines how to perform the patch operation to daemonset
+ //
+ // +optional
+ Patch *KubernetesPatchSpec `json:"patch,omitempty"`
+
+ // The daemonset strategy to use to replace existing pods with new ones.
+ // +optional
+ Strategy *appsv1.DaemonSetUpdateStrategy `json:"strategy,omitempty"`
+
+ // Pod defines the desired specification of pod.
+ //
+ // +optional
+ Pod *KubernetesPodSpec `json:"pod,omitempty"`
+
+ // Container defines the desired specification of main container.
+ //
+ // +optional
+ Container *KubernetesContainerSpec `json:"container,omitempty"`
+
+ // Name of the daemonSet.
+ // When unset, this defaults to an autogenerated name.
+ //
+ // +optional
+ Name *string `json:"name,omitempty"`
+}
+
+// KubernetesPodSpec defines the desired state of the Kubernetes pod resource.
+type KubernetesPodSpec struct {
+ // Annotations are the annotations that should be appended to the pods.
+ // By default, no pod annotations are appended.
+ //
+ // +optional
+ Annotations map[string]string `json:"annotations,omitempty"`
+
+ // Labels are the additional labels that should be tagged to the pods.
+ // By default, no additional pod labels are tagged.
+ //
+ // +optional
+ Labels map[string]string `json:"labels,omitempty"`
+
+ // SecurityContext holds pod-level security attributes and common container settings.
+ // Optional: Defaults to empty. See type description for default values of each field.
+ //
+ // +optional
+ SecurityContext *corev1.PodSecurityContext `json:"securityContext,omitempty"`
+
+ // If specified, the pod's scheduling constraints.
+ // +optional
+ Affinity *corev1.Affinity `json:"affinity,omitempty"`
+
+ // If specified, the pod's tolerations.
+ // +optional
+ Tolerations []corev1.Toleration `json:"tolerations,omitempty"`
+
+ // Volumes that can be mounted by containers belonging to the pod.
+ // More info: https://kubernetes.io/docs/concepts/storage/volumes
+ //
+ // +optional
+ Volumes []corev1.Volume `json:"volumes,omitempty"`
+
+ // ImagePullSecrets is an optional list of references to secrets
+ // in the same namespace to use for pulling any of the images used by this PodSpec.
+ // If specified, these secrets will be passed to individual puller implementations for them to use.
+ // More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
+ //
+ // +optional
+ ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty"`
+
+ // NodeSelector is a selector which must be true for the pod to fit on a node.
+ // Selector which must match a node's labels for the pod to be scheduled on that node.
+ // More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
+ //
+ // +optional
+ NodeSelector map[string]string `json:"nodeSelector,omitempty"`
+
+ // TopologySpreadConstraints describes how a group of pods ought to spread across topology
+ // domains. Scheduler will schedule pods in a way which abides by the constraints.
+ // All topologySpreadConstraints are ANDed.
+ //
+ // +optional
+ TopologySpreadConstraints []corev1.TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty"`
+}
+
+// KubernetesContainerSpec defines the desired state of the Kubernetes container resource.
+// +kubebuilder:validation:XValidation:rule="!has(self.image) || !has(self.imageRepository)",message="Either image or imageRepository can be set."
+type KubernetesContainerSpec struct {
+ // List of environment variables to set in the container.
+ //
+ // +optional
+ Env []corev1.EnvVar `json:"env,omitempty"`
+
+ // Resources required by this container.
+ // More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
+ //
+ // +optional
+ Resources *corev1.ResourceRequirements `json:"resources,omitempty"`
+
+ // SecurityContext defines the security options the container should be run with.
+ // If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.
+ // More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
+ //
+ // +optional
+ SecurityContext *corev1.SecurityContext `json:"securityContext,omitempty"`
+
+ // Image specifies the EnvoyProxy container image to be used including a tag, instead of the default image.
+ // This field is mutually exclusive with ImageRepository.
+ //
+ // +kubebuilder:validation:XValidation:rule="self.matches('^[a-zA-Z0-9._-]+(:[0-9]+)?(/[a-zA-Z0-9._/-]+)?(:[a-zA-Z0-9._-]+)?(@sha256:[a-z0-9]+)?$')",message="Image must include a tag and allowed characters only (e.g., 'repo:tag')."
+ // +optional
+ Image *string `json:"image,omitempty"`
+
+ // ImageRepository specifies the container image repository to be used without specifying a tag.
+ // The default tag will be used.
+ // This field is mutually exclusive with Image.
+ //
+ // +kubebuilder:validation:XValidation:rule="self.matches('^[a-zA-Z0-9._-]+(:[0-9]+)?[a-zA-Z0-9._/-]+$')",message="ImageRepository must contain only allowed characters and must not include a tag."
+ // +optional
+ ImageRepository *string `json:"imageRepository,omitempty"`
+
+ // VolumeMounts are volumes to mount into the container's filesystem.
+ // Cannot be updated.
+ //
+ // +optional
+ VolumeMounts []corev1.VolumeMount `json:"volumeMounts,omitempty"`
+}
+
+// ServiceType string describes ingress methods for a service
+// +enum
+// +kubebuilder:validation:Enum=ClusterIP;LoadBalancer;NodePort
+type ServiceType string
+
+const (
+ // ServiceTypeClusterIP means a service will only be accessible inside the
+ // cluster, via the cluster IP.
+ ServiceTypeClusterIP ServiceType = "ClusterIP"
+
+ // ServiceTypeLoadBalancer means a service will be exposed via an
+ // external load balancer (if the cloud provider supports it).
+ ServiceTypeLoadBalancer ServiceType = "LoadBalancer"
+
+ // ServiceTypeNodePort means a service will be exposed on each Kubernetes Node
+ // at a static Port, common across all Nodes.
+ ServiceTypeNodePort ServiceType = "NodePort"
+)
+
+// ServiceExternalTrafficPolicy describes how nodes distribute service traffic they
+// receive on one of the Service's "externally-facing" addresses (NodePorts, ExternalIPs,
+// and LoadBalancer IPs.
+// +enum
+// +kubebuilder:validation:Enum=Local;Cluster
+type ServiceExternalTrafficPolicy string
+
+const (
+ // ServiceExternalTrafficPolicyCluster routes traffic to all endpoints.
+ ServiceExternalTrafficPolicyCluster ServiceExternalTrafficPolicy = "Cluster"
+
+ // ServiceExternalTrafficPolicyLocal preserves the source IP of the traffic by
+ // routing only to endpoints on the same node as the traffic was received on
+ // (dropping the traffic if there are no local endpoints).
+ ServiceExternalTrafficPolicyLocal ServiceExternalTrafficPolicy = "Local"
+)
+
+// KubernetesServiceSpec defines the desired state of the Kubernetes service resource.
+// +kubebuilder:validation:XValidation:message="allocateLoadBalancerNodePorts can only be set for LoadBalancer type",rule="!has(self.allocateLoadBalancerNodePorts) || self.type == 'LoadBalancer'"
+// +kubebuilder:validation:XValidation:message="loadBalancerSourceRanges can only be set for LoadBalancer type",rule="!has(self.loadBalancerSourceRanges) || self.type == 'LoadBalancer'"
+// +kubebuilder:validation:XValidation:message="loadBalancerIP can only be set for LoadBalancer type",rule="!has(self.loadBalancerIP) || self.type == 'LoadBalancer'"
+type KubernetesServiceSpec struct {
+ // Annotations that should be appended to the service.
+ // By default, no annotations are appended.
+ //
+ // +optional
+ Annotations map[string]string `json:"annotations,omitempty"`
+
+ // Labels that should be appended to the service.
+ // By default, no labels are appended.
+ //
+ // +optional
+ Labels map[string]string `json:"labels,omitempty"`
+
+ // Type determines how the Service is exposed. Defaults to LoadBalancer.
+ // Valid options are ClusterIP, LoadBalancer and NodePort.
+ // "LoadBalancer" means a service will be exposed via an external load balancer (if the cloud provider supports it).
+ // "ClusterIP" means a service will only be accessible inside the cluster, via the cluster IP.
+ // "NodePort" means a service will be exposed on a static Port on all Nodes of the cluster.
+ // +kubebuilder:default:="LoadBalancer"
+ // +optional
+ Type *ServiceType `json:"type,omitempty"`
+
+ // LoadBalancerClass, when specified, allows for choosing the LoadBalancer provider
+ // implementation if more than one are available or is otherwise expected to be specified
+ // +optional
+ LoadBalancerClass *string `json:"loadBalancerClass,omitempty"`
+
+ // AllocateLoadBalancerNodePorts defines if NodePorts will be automatically allocated for
+ // services with type LoadBalancer. Default is "true". It may be set to "false" if the cluster
+ // load-balancer does not rely on NodePorts. If the caller requests specific NodePorts (by specifying a
+ // value), those requests will be respected, regardless of this field. This field may only be set for
+ // services with type LoadBalancer and will be cleared if the type is changed to any other type.
+ // +optional
+ AllocateLoadBalancerNodePorts *bool `json:"allocateLoadBalancerNodePorts,omitempty"`
+
+ // LoadBalancerSourceRanges defines a list of allowed IP addresses which will be configured as
+ // firewall rules on the platform providers load balancer. This is not guaranteed to be working as
+ // it happens outside of kubernetes and has to be supported and handled by the platform provider.
+ // This field may only be set for services with type LoadBalancer and will be cleared if the type
+ // is changed to any other type.
+ // +optional
+ LoadBalancerSourceRanges []string `json:"loadBalancerSourceRanges,omitempty"`
+
+ // LoadBalancerIP defines the IP Address of the underlying load balancer service. This field
+ // may be ignored if the load balancer provider does not support this feature.
+ // This field has been deprecated in Kubernetes, but it is still used for setting the IP Address in some cloud
+ // providers such as GCP.
+ //
+ // +kubebuilder:validation:XValidation:message="loadBalancerIP must be a valid IPv4 address",rule="self.matches(r\"^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$\")"
+ // +optional
+ LoadBalancerIP *string `json:"loadBalancerIP,omitempty"`
+
+ // ExternalTrafficPolicy determines the externalTrafficPolicy for the Envoy Service. Valid options
+ // are Local and Cluster. Default is "Local". "Local" means traffic will only go to pods on the node
+ // receiving the traffic. "Cluster" means connections are loadbalanced to all pods in the cluster.
+ // +kubebuilder:default:="Local"
+ // +optional
+ ExternalTrafficPolicy *ServiceExternalTrafficPolicy `json:"externalTrafficPolicy,omitempty"`
+
+ // Patch defines how to perform the patch operation to the service
+ //
+ // +optional
+ Patch *KubernetesPatchSpec `json:"patch,omitempty"`
+
+ // Name of the service.
+ // When unset, this defaults to an autogenerated name.
+ //
+ // +optional
+ Name *string `json:"name,omitempty"`
+
+ // TODO: Expose config as use cases are better understood, e.g. labels.
+}
+
+// LogLevel defines a log level for Envoy Gateway and EnvoyProxy system logs.
+// +kubebuilder:validation:Enum=trace;debug;info;warn;error
+type LogLevel string
+
+const (
+ // LogLevelTrace defines the "Trace" logging level.
+ LogLevelTrace LogLevel = "trace"
+
+ // LogLevelDebug defines the "debug" logging level.
+ LogLevelDebug LogLevel = "debug"
+
+ // LogLevelInfo defines the "Info" logging level.
+ LogLevelInfo LogLevel = "info"
+
+ // LogLevelWarn defines the "Warn" logging level.
+ LogLevelWarn LogLevel = "warn"
+
+ // LogLevelError defines the "Error" logging level.
+ LogLevelError LogLevel = "error"
+)
+
+// XDSTranslatorHook defines the types of hooks that an Envoy Gateway extension may support
+// for the xds-translator
+//
+// +kubebuilder:validation:Enum=VirtualHost;Route;HTTPListener;Translation;Cluster
+type XDSTranslatorHook string
+
+const (
+ XDSVirtualHost XDSTranslatorHook = "VirtualHost"
+ XDSRoute XDSTranslatorHook = "Route"
+ XDSHTTPListener XDSTranslatorHook = "HTTPListener"
+ XDSTranslation XDSTranslatorHook = "Translation"
+ XDSCluster XDSTranslatorHook = "Cluster"
+)
+
+// StringMatch defines how to match any strings.
+// This is a general purpose match condition that can be used by other EG APIs
+// that need to match against a string.
+type StringMatch struct {
+ // Type specifies how to match against a string.
+ //
+ // +optional
+ // +kubebuilder:default=Exact
+ Type *StringMatchType `json:"type,omitempty"`
+
+ // Value specifies the string value that the match must have.
+ //
+ // +kubebuilder:validation:MinLength=1
+ // +kubebuilder:validation:MaxLength=1024
+ Value string `json:"value"`
+}
+
+// StringMatchType specifies the semantics of how a string value should be compared.
+// Valid MatchType values are "Exact", "Prefix", "Suffix", "RegularExpression".
+//
+// +kubebuilder:validation:Enum=Exact;Prefix;Suffix;RegularExpression
+type StringMatchType string
+
+const (
+ // StringMatchExact :the input string must match exactly the match value.
+ StringMatchExact StringMatchType = "Exact"
+
+ // StringMatchPrefix :the input string must start with the match value.
+ StringMatchPrefix StringMatchType = "Prefix"
+
+ // StringMatchSuffix :the input string must end with the match value.
+ StringMatchSuffix StringMatchType = "Suffix"
+
+ // StringMatchRegularExpression :The input string must match the regular expression
+ // specified in the match value.
+ // The regex string must adhere to the syntax documented in
+ // https://github.com/google/re2/wiki/Syntax.
+ StringMatchRegularExpression StringMatchType = "RegularExpression"
+)
+
+// KubernetesPodDisruptionBudgetSpec defines Kubernetes PodDisruptionBudget settings of Envoy Proxy Deployment.
+//
+// +kubebuilder:validation:XValidation:rule="(has(self.minAvailable) && !has(self.maxUnavailable)) || (!has(self.minAvailable) && has(self.maxUnavailable))",message="only one of minAvailable or maxUnavailable can be specified"
+type KubernetesPodDisruptionBudgetSpec struct {
+ // MinAvailable specifies the minimum amount of pods (can be expressed as integers or as a percentage) that must be available at all times during voluntary disruptions,
+ // such as node drains or updates. This setting ensures that your envoy proxy maintains a certain level of availability
+ // and resilience during maintenance operations. Cannot be combined with maxUnavailable.
+ // +optional
+ MinAvailable *intstr.IntOrString `json:"minAvailable,omitempty"`
+
+ // MaxUnavailable specifies the maximum amount of pods (can be expressed as integers or as a percentage) that can be unavailable at all times during voluntary disruptions,
+ // such as node drains or updates. This setting ensures that your envoy proxy maintains a certain level of availability
+ // and resilience during maintenance operations. Cannot be combined with minAvailable.
+ // +optional
+ MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty"`
+
+ // Patch defines how to perform the patch operation to the PodDisruptionBudget
+ //
+ // +optional
+ Patch *KubernetesPatchSpec `json:"patch,omitempty"`
+
+ // Name of the podDisruptionBudget.
+ // When unset, this defaults to an autogenerated name.
+ //
+ // +optional
+ Name *string `json:"name,omitempty"`
+}
+
+// KubernetesHorizontalPodAutoscalerSpec defines Kubernetes Horizontal Pod Autoscaler settings of Envoy Proxy Deployment.
+// When HPA is enabled, it is recommended that the value in `KubernetesDeploymentSpec.replicas` be removed, otherwise
+// Envoy Gateway will revert back to this value every time reconciliation occurs.
+// See k8s.io.autoscaling.v2.HorizontalPodAutoScalerSpec.
+//
+// +kubebuilder:validation:XValidation:message="maxReplicas cannot be less than minReplicas",rule="!has(self.minReplicas) || self.maxReplicas >= self.minReplicas"
+type KubernetesHorizontalPodAutoscalerSpec struct {
+ // minReplicas is the lower limit for the number of replicas to which the autoscaler
+ // can scale down. It defaults to 1 replica.
+ //
+ // +kubebuilder:validation:XValidation:message="minReplicas must be greater than 0",rule="self > 0"
+ // +optional
+ MinReplicas *int32 `json:"minReplicas,omitempty"`
+
+ // maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up.
+ // It cannot be less that minReplicas.
+ //
+ // +kubebuilder:validation:XValidation:message="maxReplicas must be greater than 0",rule="self > 0"
+ MaxReplicas *int32 `json:"maxReplicas"`
+
+ // metrics contains the specifications for which to use to calculate the
+ // desired replica count (the maximum replica count across all metrics will
+ // be used).
+ // If left empty, it defaults to being based on CPU utilization with average on 80% usage.
+ //
+ // +optional
+ Metrics []autoscalingv2.MetricSpec `json:"metrics,omitempty"`
+
+ // behavior configures the scaling behavior of the target
+ // in both Up and Down directions (scaleUp and scaleDown fields respectively).
+ // If not set, the default HPAScalingRules for scale up and scale down are used.
+ // See k8s.io.autoscaling.v2.HorizontalPodAutoScalerBehavior.
+ //
+ // +optional
+ Behavior *autoscalingv2.HorizontalPodAutoscalerBehavior `json:"behavior,omitempty"`
+
+ // Patch defines how to perform the patch operation to the HorizontalPodAutoscaler
+ //
+ // +optional
+ Patch *KubernetesPatchSpec `json:"patch,omitempty"`
+
+ // Name of the horizontalPodAutoScaler.
+ // When unset, this defaults to an autogenerated name.
+ //
+ // +optional
+ Name *string `json:"name,omitempty"`
+}
+
+// HTTPStatus defines the http status code.
+// +kubebuilder:validation:Minimum=100
+// +kubebuilder:validation:Maximum=599
+type HTTPStatus int
+
+// MergeType defines the type of merge operation
+type MergeType string
+
+const (
+ // StrategicMerge indicates a strategic merge patch type
+ StrategicMerge MergeType = "StrategicMerge"
+ // JSONMerge indicates a JSON merge patch type
+ JSONMerge MergeType = "JSONMerge"
+)
+
+// KubernetesPatchSpec defines how to perform the patch operation.
+// Note that `value` can be an in-line YAML document, as can be seen in e.g. (the example of patching the Envoy proxy Deployment)[https://gateway.envoyproxy.io/docs/tasks/operations/customize-envoyproxy/#patching-deployment-for-envoyproxy].
+// Note also that, currently, strings containing literal JSON are _rejected_.
+type KubernetesPatchSpec struct {
+ // Type is the type of merge operation to perform
+ //
+ // By default, StrategicMerge is used as the patch type.
+ // +optional
+ Type *MergeType `json:"type,omitempty"`
+
+ // Object contains the raw configuration for merged object
+ Value apiextensionsv1.JSON `json:"value"`
+}
+
+// BackendRef defines how an ObjectReference that is specific to BackendRef.
+type BackendRef struct {
+ // BackendObjectReference references a Kubernetes object that represents the backend.
+ // Only Service kind is supported for now.
+ gwapiv1.BackendObjectReference `json:",inline"`
+ // Fallback indicates whether the backend is designated as a fallback.
+ // Multiple fallback backends can be configured.
+ // It is highly recommended to configure active or passive health checks to ensure that failover can be detected
+ // when the active backends become unhealthy and to automatically readjust once the primary backends are healthy again.
+ // The overprovisioning factor is set to 1.4, meaning the fallback backends will only start receiving traffic when
+ // the health of the active backends falls below 72%.
+ //
+ // +optional
+ Fallback *bool `json:"fallback,omitempty"`
+}
+
+// BackendCluster contains all the configuration required for configuring access
+// to a backend. This can include multiple endpoints, and settings that apply for
+// managing the connection to all these endpoints.
+type BackendCluster struct {
+ // BackendRef references a Kubernetes object that represents the
+ // backend server to which the authorization request will be sent.
+ //
+ // Deprecated: Use BackendRefs instead.
+ // +optional
+ BackendRef *gwapiv1.BackendObjectReference `json:"backendRef,omitempty"`
+
+ // BackendRefs references a Kubernetes object that represents the
+ // backend server to which the authorization request will be sent.
+ //
+ // +kubebuilder:validation:MaxItems=16
+ // +optional
+ BackendRefs []BackendRef `json:"backendRefs,omitempty"`
+
+ // BackendSettings holds configuration for managing the connection
+ // to the backend.
+ //
+ // +optional
+ BackendSettings *ClusterSettings `json:"backendSettings,omitempty"`
+}
+
+// ClusterSettings provides the various knobs that can be set to control how traffic to a given
+// backend will be configured.
+//
+// +kubebuilder:validation:XValidation:rule="!((has(self.connection) && has(self.connection.preconnect) && has(self.connection.preconnect.predictivePercent)) && !(has(self.loadBalancer) && has(self.loadBalancer.type) && self.loadBalancer.type in ['Random', 'RoundRobin']))",message="predictivePercent in preconnect policy only works with RoundRobin or Random load balancers"
+type ClusterSettings struct {
+ // LoadBalancer policy to apply when routing traffic from the gateway to
+ // the backend endpoints. Defaults to `LeastRequest`.
+ // +optional
+ LoadBalancer *LoadBalancer `json:"loadBalancer,omitempty"`
+
+ // Retry provides more advanced usage, allowing users to customize the number of retries, retry fallback strategy, and retry triggering conditions.
+ // If not set, retry will be disabled.
+ // +optional
+ Retry *Retry `json:"retry,omitempty"`
+
+ // ProxyProtocol enables the Proxy Protocol when communicating with the backend.
+ // +optional
+ ProxyProtocol *ProxyProtocol `json:"proxyProtocol,omitempty"`
+
+ // TcpKeepalive settings associated with the upstream client connection.
+ // Disabled by default.
+ //
+ // +optional
+ TCPKeepalive *TCPKeepalive `json:"tcpKeepalive,omitempty"`
+
+ // HealthCheck allows gateway to perform active health checking on backends.
+ //
+ // +optional
+ HealthCheck *HealthCheck `json:"healthCheck,omitempty"`
+
+ // Circuit Breaker settings for the upstream connections and requests.
+ // If not set, circuit breakers will be enabled with the default thresholds
+ //
+ // +optional
+ CircuitBreaker *CircuitBreaker `json:"circuitBreaker,omitempty"`
+
+ // Timeout settings for the backend connections.
+ //
+ // +optional
+ Timeout *Timeout `json:"timeout,omitempty"`
+
+ // Connection includes backend connection settings.
+ //
+ // +optional
+ Connection *BackendConnection `json:"connection,omitempty"`
+
+ // DNS includes dns resolution settings.
+ //
+ // +optional
+ DNS *DNS `json:"dns,omitempty"`
+
+ // HTTP2 provides HTTP/2 configuration for backend connections.
+ //
+ // +optional
+ HTTP2 *HTTP2Settings `json:"http2,omitempty"`
+}
+
+// CIDR defines a CIDR Address range.
+// A CIDR can be an IPv4 address range such as "192.168.1.0/24" or an IPv6 address range such as "2001:0db8:11a3:09d7::/64".
+// +kubebuilder:validation:Pattern=`((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\/([0-9]+))|((([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/([0-9]+))`
+type CIDR string
+
+type InvalidMessageAction string
+
+const (
+ InvalidMessageActionTerminateConnection InvalidMessageAction = "TerminateConnection"
+ InvalidMessageActionTerminateStream InvalidMessageAction = "TerminateStream"
+)
+
+// HTTP2Settings provides HTTP/2 configuration for listeners and backends.
+type HTTP2Settings struct {
+ // InitialStreamWindowSize sets the initial window size for HTTP/2 streams.
+ // If not set, the default value is 64 KiB(64*1024).
+ //
+ // +kubebuilder:validation:XIntOrString
+ // +kubebuilder:validation:Pattern="^[1-9]+[0-9]*([EPTGMK]i|[EPTGMk])?$"
+ // +optional
+ InitialStreamWindowSize *resource.Quantity `json:"initialStreamWindowSize,omitempty"`
+
+ // InitialConnectionWindowSize sets the initial window size for HTTP/2 connections.
+ // If not set, the default value is 1 MiB.
+ //
+ // +kubebuilder:validation:XIntOrString
+ // +kubebuilder:validation:Pattern="^[1-9]+[0-9]*([EPTGMK]i|[EPTGMk])?$"
+ // +optional
+ InitialConnectionWindowSize *resource.Quantity `json:"initialConnectionWindowSize,omitempty"`
+
+ // MaxConcurrentStreams sets the maximum number of concurrent streams allowed per connection.
+ // If not set, the default value is 100.
+ // +kubebuilder:validation:Minimum=1
+ // +kubebuilder:validation:Maximum=2147483647
+ // +optional
+ MaxConcurrentStreams *uint32 `json:"maxConcurrentStreams,omitempty"`
+
+ // OnInvalidMessage determines if Envoy will terminate the connection or just the offending stream in the event of HTTP messaging error
+ // It's recommended for L2 Envoy deployments to set this value to TerminateStream.
+ // https://www.envoyproxy.io/docs/envoy/latest/configuration/best_practices/level_two
+ // Default: TerminateConnection
+ // +optional
+ OnInvalidMessage *InvalidMessageAction `json:"onInvalidMessage,omitempty"`
+}
+
+// ResponseOverride defines the configuration to override specific responses with a custom one.
+// +kubebuilder:validation:XValidation:rule="(has(self.response) && !has(self.redirect)) || (!has(self.response) && has(self.redirect))",message="exactly one of response or redirect must be specified"
+type ResponseOverride struct {
+ // Match configuration.
+ Match CustomResponseMatch `json:"match"`
+ // Response configuration.
+ Response *CustomResponse `json:"response,omitempty"`
+ // Redirect configuration
+ Redirect *CustomRedirect `json:"redirect,omitempty"`
+}
+
+// CustomResponseMatch defines the configuration for matching a user response to return a custom one.
+type CustomResponseMatch struct {
+ // Status code to match on. The match evaluates to true if any of the matches are successful.
+ // +kubebuilder:validation:MinItems=1
+ // +kubebuilder:validation:MaxItems=50
+ StatusCodes []StatusCodeMatch `json:"statusCodes"`
+}
+
+// StatusCodeValueType defines the types of values for the status code match supported by Envoy Gateway.
+// +kubebuilder:validation:Enum=Value;Range
+type StatusCodeValueType string
+
+const (
+ // StatusCodeValueTypeValue defines the "Value" status code match type.
+ StatusCodeValueTypeValue StatusCodeValueType = "Value"
+
+ // StatusCodeValueTypeRange defines the "Range" status code match type.
+ StatusCodeValueTypeRange StatusCodeValueType = "Range"
+)
+
+// StatusCodeMatch defines the configuration for matching a status code.
+// +kubebuilder:validation:XValidation:message="value must be set for type Value",rule="(!has(self.type) || self.type == 'Value')? has(self.value) : true"
+// +kubebuilder:validation:XValidation:message="range must be set for type Range",rule="(has(self.type) && self.type == 'Range')? has(self.range) : true"
+type StatusCodeMatch struct {
+ // Type is the type of value.
+ // Valid values are Value and Range, default is Value.
+ //
+ // +kubebuilder:default=Value
+ // +kubebuilder:validation:Enum=Value;Range
+ // +unionDiscriminator
+ Type *StatusCodeValueType `json:"type"`
+
+ // Value contains the value of the status code.
+ //
+ // +optional
+ Value *int `json:"value,omitempty"`
+
+ // Range contains the range of status codes.
+ //
+ // +optional
+ Range *StatusCodeRange `json:"range,omitempty"`
+}
+
+// StatusCodeRange defines the configuration for define a range of status codes.
+// +kubebuilder:validation:XValidation: message="end must be greater than start",rule="self.end > self.start"
+type StatusCodeRange struct {
+ // Start of the range, including the start value.
+ Start int `json:"start"`
+ // End of the range, including the end value.
+ End int `json:"end"`
+}
+
+// CustomResponse defines the configuration for returning a custom response.
+type CustomResponse struct {
+ // Content Type of the response. This will be set in the Content-Type header.
+ //
+ // +optional
+ ContentType *string `json:"contentType,omitempty"`
+
+ // Body of the Custom Response
+ // Supports Envoy command operators for dynamic content (see https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators).
+ //
+ // +optional
+ Body *CustomResponseBody `json:"body,omitempty"`
+
+ // Status Code of the Custom Response
+ // If unset, does not override the status of response.
+ //
+ // +optional
+ StatusCode *int `json:"statusCode,omitempty"`
+
+ // Header defines headers to add, set or remove from the response.
+ // This allows the response policy to append, add or override headers
+ // of the final response before it is sent to a downstream client.
+ // Note: Header removal is not supported for responseOverride.
+ //
+ // +optional
+ // +kubebuilder:validation:XValidation:rule="!has(self.remove) || size(self.remove) == 0",message="Remove is not supported for header in CustomResponse"
+ Header *gwapiv1.HTTPHeaderFilter `json:"header,omitempty"`
+}
+
+// ResponseValueType defines the types of values for the response body supported by Envoy Gateway.
+// +kubebuilder:validation:Enum=Inline;ValueRef
+type ResponseValueType string
+
+const (
+ // ResponseValueTypeInline defines the "Inline" response body type.
+ ResponseValueTypeInline ResponseValueType = "Inline"
+
+ // ResponseValueTypeValueRef defines the "ValueRef" response body type.
+ ResponseValueTypeValueRef ResponseValueType = "ValueRef"
+)
+
+// CustomResponseBody
+// +kubebuilder:validation:XValidation:message="inline must be set for type Inline",rule="(!has(self.type) || self.type == 'Inline')? has(self.inline) : true"
+// +kubebuilder:validation:XValidation:message="valueRef must be set for type ValueRef",rule="(has(self.type) && self.type == 'ValueRef')? has(self.valueRef) : true"
+// +kubebuilder:validation:XValidation:message="only ConfigMap is supported for ValueRef",rule="has(self.valueRef) ? self.valueRef.kind == 'ConfigMap' : true"
+type CustomResponseBody struct {
+ // Type is the type of method to use to read the body value.
+ // Valid values are Inline and ValueRef, default is Inline.
+ //
+ // +kubebuilder:default=Inline
+ // +kubebuilder:validation:Enum=Inline;ValueRef
+ // +unionDiscriminator
+ Type *ResponseValueType `json:"type"`
+
+ // Inline contains the value as an inline string.
+ //
+ // +optional
+ Inline *string `json:"inline,omitempty"`
+
+ // ValueRef contains the contents of the body
+ // specified as a local object reference.
+ // Only a reference to ConfigMap is supported.
+ //
+ // The value of key `response.body` in the ConfigMap will be used as the response body.
+ // If the key is not found, the first value in the ConfigMap will be used.
+ //
+ // +optional
+ ValueRef *gwapiv1.LocalObjectReference `json:"valueRef,omitempty"`
+}
+
+// Tracing defines the configuration for tracing.
+// TODO: we'd better deprecate SamplingRate in the EnvoyProxy spec, so that we can reuse the struct.
+type Tracing struct {
+ // SamplingFraction represents the fraction of requests that should be
+ // selected for tracing if no prior sampling decision has been made.
+ //
+ // This will take precedence over sampling fraction on EnvoyProxy if set.
+ //
+ // +optional
+ SamplingFraction *gwapiv1.Fraction `json:"samplingFraction,omitempty"`
+ // CustomTags defines the custom tags to add to each span.
+ // If provider is kubernetes, pod name and namespace are added by default.
+ //
+ // +optional
+ CustomTags map[string]CustomTag `json:"customTags,omitempty"`
+}
+
+// CustomRedirect contains configuration for returning a custom redirect.
+type CustomRedirect struct {
+ // Scheme is the scheme to be used in the value of the `Location` header in
+ // the response. When empty, the scheme of the request is used.
+ //
+ // +optional
+ // +kubebuilder:validation:Enum=http;https
+ Scheme *string `json:"scheme,omitempty"`
+
+ // Hostname is the hostname to be used in the value of the `Location`
+ // header in the response.
+ // When empty, the hostname in the `Host` header of the request is used.
+ //
+ // +optional
+ Hostname *gwapiv1.PreciseHostname `json:"hostname,omitempty"`
+
+ // Path defines parameters used to modify the path of the incoming request.
+ // The modified path is then used to construct the `Location` header. When
+ // empty, the request path is used as-is.
+ // Only ReplaceFullPath path modifier is supported currently.
+ //
+ // +optional
+ // +kubebuilder:validation:XValidation:message="only ReplaceFullPath is supported for path.type",rule="self.type == 'ReplaceFullPath'"
+ Path *gwapiv1.HTTPPathModifier `json:"path,omitempty"`
+
+ // Port is the port to be used in the value of the `Location`
+ // header in the response.
+ //
+ // If redirect scheme is not-empty, the well-known port associated with the redirect scheme will be used.
+ // Specifically "http" to port 80 and "https" to port 443. If the redirect scheme does not have a
+ // well-known port or redirect scheme is empty, the listener port of the Gateway will be used.
+ //
+ // Port will not be added in the 'Location' header if scheme is HTTP and port is 80
+ // or scheme is HTTPS and port is 443.
+ //
+ // +optional
+ Port *gwapiv1.PortNumber `json:"port,omitempty"`
+
+ // StatusCode is the HTTP status code to be used in response.
+ //
+ // +optional
+ // +kubebuilder:default=302
+ // +kubebuilder:validation:Enum=301;302
+ StatusCode *int `json:"statusCode,omitempty"`
+}
+
+// HTTPHeaderFilter has been copied from the upstream Gateway API project
+// https://github.com/kubernetes-sigs/gateway-api/blob/main/apis/v1/httproute_types.go
+// and edited to increase the maxItems from 16 to 64
+// Remove this definition and reuse the upstream one once it supports items more than 64
+
+// HTTPHeaderFilter defines a filter that modifies the headers of an HTTP
+// request or response. Only one action for a given header name is
+// permitted. Filters specifying multiple actions of the same or different
+// type for any one header name are invalid. Configuration to set or add
+// multiple values for a header must use RFC 7230 header value formatting,
+// separating each value with a comma.
+type HTTPHeaderFilter struct {
+ // Set overwrites the request with the given header (name, value)
+ // before the action.
+ //
+ // Input:
+ // GET /foo HTTP/1.1
+ // my-header: foo
+ //
+ // Config:
+ // set:
+ // - name: "my-header"
+ // value: "bar"
+ //
+ // Output:
+ // GET /foo HTTP/1.1
+ // my-header: bar
+ //
+ // +optional
+ // +listType=map
+ // +listMapKey=name
+ // +kubebuilder:validation:MaxItems=64
+ Set []gwapiv1.HTTPHeader `json:"set,omitempty"`
+
+ // Add adds the given header(s) (name, value) to the request
+ // before the action. It appends to any existing values associated
+ // with the header name.
+ //
+ // Input:
+ // GET /foo HTTP/1.1
+ // my-header: foo
+ //
+ // Config:
+ // add:
+ // - name: "my-header"
+ // value: "bar,baz"
+ //
+ // Output:
+ // GET /foo HTTP/1.1
+ // my-header: foo,bar,baz
+ //
+ // +optional
+ // +listType=map
+ // +listMapKey=name
+ // +kubebuilder:validation:MaxItems=64
+ Add []gwapiv1.HTTPHeader `json:"add,omitempty"`
+
+ // Remove the given header(s) from the HTTP request before the action. The
+ // value of Remove is a list of HTTP header names. Note that the header
+ // names are case-insensitive (see
+ // https://datatracker.ietf.org/doc/html/rfc2616#section-4.2).
+ //
+ // Input:
+ // GET /foo HTTP/1.1
+ // my-header1: foo
+ // my-header2: bar
+ // my-header3: baz
+ //
+ // Config:
+ // remove: ["my-header1", "my-header3"]
+ //
+ // Output:
+ // GET /foo HTTP/1.1
+ // my-header2: bar
+ //
+ // +optional
+ // +listType=set
+ // +kubebuilder:validation:MaxItems=64
+ Remove []string `json:"remove,omitempty"`
+}
diff --git a/vendor/github.com/envoyproxy/gateway/api/v1alpha1/timeout_types.go b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/timeout_types.go
new file mode 100644
index 00000000..df332909
--- /dev/null
+++ b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/timeout_types.go
@@ -0,0 +1,98 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package v1alpha1
+
+import gwapiv1 "sigs.k8s.io/gateway-api/apis/v1"
+
+// Timeout defines configuration for timeouts related to connections.
+type Timeout struct {
+ // Timeout settings for TCP.
+ //
+ // +optional
+ TCP *TCPTimeout `json:"tcp,omitempty"`
+
+ // Timeout settings for HTTP.
+ //
+ // +optional
+ HTTP *HTTPTimeout `json:"http,omitempty"`
+}
+
+type TCPTimeout struct {
+ // The timeout for network connection establishment, including TCP and TLS handshakes.
+ // Default: 10 seconds.
+ //
+ // +optional
+ ConnectTimeout *gwapiv1.Duration `json:"connectTimeout,omitempty"`
+}
+
+type HTTPTimeout struct {
+ // The idle timeout for an HTTP connection. Idle time is defined as a period in which there are no active requests in the connection.
+ // Default: 1 hour.
+ //
+ // +optional
+ ConnectionIdleTimeout *gwapiv1.Duration `json:"connectionIdleTimeout,omitempty"`
+
+ // The maximum duration of an HTTP connection.
+ // Default: unlimited.
+ //
+ // +optional
+ MaxConnectionDuration *gwapiv1.Duration `json:"maxConnectionDuration,omitempty"`
+
+ // RequestTimeout is the time until which entire response is received from the upstream.
+ //
+ // +optional
+ RequestTimeout *gwapiv1.Duration `json:"requestTimeout,omitempty" yaml:"requestTimeout,omitempty"`
+
+ // MaxStreamDuration is the maximum duration for a stream to complete. This timeout measures the time
+ // from when the request is sent until the response stream is fully consumed and does not apply to
+ // non-streaming requests.
+ // When set to "0s", no max duration is applied and streams can run indefinitely.
+ //
+ // +optional
+ MaxStreamDuration *gwapiv1.Duration `json:"maxStreamDuration,omitempty"`
+}
+
+type ClientTimeout struct {
+ // Timeout settings for TCP.
+ //
+ // +optional
+ TCP *TCPClientTimeout `json:"tcp,omitempty"`
+
+ // Timeout settings for HTTP.
+ //
+ // +optional
+ HTTP *HTTPClientTimeout `json:"http,omitempty"`
+}
+
+// TCPClientTimeout only provides timeout configuration on the listener whose protocol is TCP or TLS.
+type TCPClientTimeout struct {
+ // IdleTimeout for a TCP connection. Idle time is defined as a period in which there are no
+ // bytes sent or received on either the upstream or downstream connection.
+ // Default: 1 hour.
+ //
+ // +optional
+ IdleTimeout *gwapiv1.Duration `json:"idleTimeout,omitempty"`
+}
+
+type HTTPClientTimeout struct {
+ // RequestReceivedTimeout is the duration envoy waits for the complete request reception. This timer starts upon request
+ // initiation and stops when either the last byte of the request is sent upstream or when the response begins.
+ //
+ // +optional
+ RequestReceivedTimeout *gwapiv1.Duration `json:"requestReceivedTimeout,omitempty"`
+
+ // IdleTimeout for an HTTP connection. Idle time is defined as a period in which there are no active requests in the connection.
+ // Default: 1 hour.
+ //
+ // +optional
+ IdleTimeout *gwapiv1.Duration `json:"idleTimeout,omitempty"`
+
+ // The stream idle timeout defines the amount of time a stream can exist without any upstream or downstream activity.
+ // Default: 5 minutes.
+ //
+ // +optional
+ StreamIdleTimeout *gwapiv1.Duration `json:"streamIdleTimeout,omitempty"`
+}
diff --git a/vendor/github.com/envoyproxy/gateway/api/v1alpha1/tls_types.go b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/tls_types.go
new file mode 100644
index 00000000..bd9806c7
--- /dev/null
+++ b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/tls_types.go
@@ -0,0 +1,257 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package v1alpha1
+
+import (
+ gwapiv1 "sigs.k8s.io/gateway-api/apis/v1"
+)
+
+// TLSOCSPKey is the key for the OCSP stapled response in a Secret.
+const TLSOCSPKey = "tls.ocsp-staple"
+
+type ClientTLSSettings struct {
+ // ClientValidation specifies the configuration to validate the client
+ // initiating the TLS connection to the Gateway listener.
+ // +optional
+ ClientValidation *ClientValidationContext `json:"clientValidation,omitempty"`
+ TLSSettings `json:",inline"`
+
+ // Session defines settings related to TLS session management.
+ // +optional
+ Session *Session `json:"session,omitempty"`
+}
+
+// +kubebuilder:validation:XValidation:rule="has(self.minVersion) && self.minVersion == '1.3' ? !has(self.ciphers) : true", message="setting ciphers has no effect if the minimum possible TLS version is 1.3"
+// +kubebuilder:validation:XValidation:rule="has(self.minVersion) && has(self.maxVersion) ? {\"Auto\":0,\"1.0\":1,\"1.1\":2,\"1.2\":3,\"1.3\":4}[self.minVersion] <= {\"1.0\":1,\"1.1\":2,\"1.2\":3,\"1.3\":4,\"Auto\":5}[self.maxVersion] : !has(self.minVersion) && has(self.maxVersion) ? 3 <= {\"1.0\":1,\"1.1\":2,\"1.2\":3,\"1.3\":4,\"Auto\":5}[self.maxVersion] : true", message="minVersion must be smaller or equal to maxVersion"
+type TLSSettings struct {
+ // Min specifies the minimal TLS protocol version to allow.
+ // The default is TLS 1.2 if this is not specified.
+ //
+ // +optional
+ MinVersion *TLSVersion `json:"minVersion,omitempty"`
+
+ // Max specifies the maximal TLS protocol version to allow
+ // The default is TLS 1.3 if this is not specified.
+ //
+ // +optional
+ MaxVersion *TLSVersion `json:"maxVersion,omitempty"`
+
+ // Ciphers specifies the set of cipher suites supported when
+ // negotiating TLS 1.0 - 1.2. This setting has no effect for TLS 1.3.
+ // In non-FIPS Envoy Proxy builds the default cipher list is:
+ // - [ECDHE-ECDSA-AES128-GCM-SHA256|ECDHE-ECDSA-CHACHA20-POLY1305]
+ // - [ECDHE-RSA-AES128-GCM-SHA256|ECDHE-RSA-CHACHA20-POLY1305]
+ // - ECDHE-ECDSA-AES256-GCM-SHA384
+ // - ECDHE-RSA-AES256-GCM-SHA384
+ // In builds using BoringSSL FIPS the default cipher list is:
+ // - ECDHE-ECDSA-AES128-GCM-SHA256
+ // - ECDHE-RSA-AES128-GCM-SHA256
+ // - ECDHE-ECDSA-AES256-GCM-SHA384
+ // - ECDHE-RSA-AES256-GCM-SHA384
+ //
+ // +optional
+ Ciphers []string `json:"ciphers,omitempty"`
+
+ // ECDHCurves specifies the set of supported ECDH curves.
+ // In non-FIPS Envoy Proxy builds the default curves are:
+ // - X25519
+ // - P-256
+ // In builds using BoringSSL FIPS the default curve is:
+ // - P-256
+ //
+ // +optional
+ ECDHCurves []string `json:"ecdhCurves,omitempty"`
+
+ // SignatureAlgorithms specifies which signature algorithms the listener should
+ // support.
+ //
+ // +optional
+ SignatureAlgorithms []string `json:"signatureAlgorithms,omitempty"`
+
+ // ALPNProtocols supplies the list of ALPN protocols that should be
+ // exposed by the listener or used by the proxy to connect to the backend.
+ // Defaults:
+ // 1. HTTPS Routes: h2 and http/1.1 are enabled in listener context.
+ // 2. Other Routes: ALPN is disabled.
+ // 3. Backends: proxy uses the appropriate ALPN options for the backend protocol.
+ // When an empty list is provided, the ALPN TLS extension is disabled.
+ //
+ // Defaults to [h2, http/1.1] if not specified.
+ //
+ // Typical Supported values are:
+ // - http/1.0
+ // - http/1.1
+ // - h2
+ //
+ // +optional
+ ALPNProtocols []ALPNProtocol `json:"alpnProtocols,omitempty"`
+}
+
+// ALPNProtocol specifies the protocol to be negotiated using ALPN
+type ALPNProtocol string
+
+// When adding ALPN constants, they must be values that are defined
+// in the IANA registry for ALPN identification sequences
+// https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids
+const (
+ // HTTPProtocolVersion1_0 specifies that HTTP/1.0 should be negotiable with ALPN
+ HTTPProtocolVersion1_0 ALPNProtocol = "http/1.0"
+ // HTTPProtocolVersion1_1 specifies that HTTP/1.1 should be negotiable with ALPN
+ HTTPProtocolVersion1_1 ALPNProtocol = "http/1.1"
+ // HTTPProtocolVersion2 specifies that HTTP/2 should be negotiable with ALPN
+ HTTPProtocolVersion2 ALPNProtocol = "h2"
+)
+
+// TLSVersion specifies the TLS version
+// +kubebuilder:validation:Enum=Auto;"1.0";"1.1";"1.2";"1.3"
+type TLSVersion string
+
+const (
+ // TLSAuto allows Envoy to choose the optimal TLS Version
+ TLSAuto TLSVersion = "Auto"
+ // TLS1.0 specifies TLS version 1.0
+ TLSv10 TLSVersion = "1.0"
+ // TLS1.1 specifies TLS version 1.1
+ TLSv11 TLSVersion = "1.1"
+ // TLSv1.2 specifies TLS version 1.2
+ TLSv12 TLSVersion = "1.2"
+ // TLSv1.3 specifies TLS version 1.3
+ TLSv13 TLSVersion = "1.3"
+)
+
+// ClientValidationContext holds configuration that can be used to validate the client initiating the TLS connection
+// to the Gateway.
+// By default, no client specific configuration is validated.
+type ClientValidationContext struct {
+ // Optional set to true accepts connections even when a client doesn't present a certificate.
+ // Defaults to false, which rejects connections without a valid client certificate.
+ // +optional
+ Optional bool `json:"optional,omitempty"`
+
+ // CACertificateRefs contains one or more references to
+ // Kubernetes objects that contain TLS certificates of
+ // the Certificate Authorities that can be used
+ // as a trust anchor to validate the certificates presented by the client.
+ //
+ // A single reference to a Kubernetes ConfigMap or a Kubernetes Secret,
+ // with the CA certificate in a key named `ca.crt` is currently supported.
+ //
+ // References to a resource in different namespace are invalid UNLESS there
+ // is a ReferenceGrant in the target namespace that allows the certificate
+ // to be attached.
+ //
+ // +kubebuilder:validation:MaxItems=8
+ // +optional
+ CACertificateRefs []gwapiv1.SecretObjectReference `json:"caCertificateRefs,omitempty"`
+
+ // An optional list of base64-encoded SHA-256 hashes. If specified, Envoy will
+ // verify that the SHA-256 of the DER-encoded Subject Public Key Information
+ // (SPKI) of the presented certificate matches one of the specified values.
+ // +optional
+ SPKIHashes []string `json:"spkiHashes,omitempty"`
+
+ // An optional list of hex-encoded SHA-256 hashes. If specified, Envoy will
+ // verify that the SHA-256 of the DER-encoded presented certificate matches
+ // one of the specified values.
+ // +optional
+ CertificateHashes []string `json:"certificateHashes,omitempty"`
+
+ // An optional list of Subject Alternative name matchers. If specified, Envoy
+ // will verify that the Subject Alternative Name of the presented certificate
+ // matches one of the specified matchers
+ // +optional
+ SubjectAltNames *SubjectAltNames `json:"subjectAltNames,omitempty"`
+
+ // Crl specifies the crl configuration that can be used to validate the client initiating the TLS connection
+ // +optional
+ Crl *CrlContext `json:"crl,omitempty"`
+}
+
+// CrlContext holds certificate revocation list configuration that can be used to validate the client initiating the TLS connection
+type CrlContext struct {
+ // Refs contains one or more references to a Kubernetes ConfigMap or a Kubernetes Secret,
+ // containing the certificate revocation list in PEM format
+ // Expects the content in a key named `ca.crl`.
+ //
+ // References to a resource in different namespace are invalid UNLESS there
+ // is a ReferenceGrant in the target namespace that allows the crl
+ // to be attached.
+ //
+ // +kubebuilder:validation:Required
+ // +kubebuilder:validation:MinItems=1
+ // +kubebuilder:validation:MaxItems=8
+ Refs []gwapiv1.SecretObjectReference `json:"refs"`
+
+ // If this option is set to true, Envoy will only verify the certificate at the end of the certificate chain against the CRL.
+ // Defaults to false, which will verify the entire certificate chain against the CRL.
+ // +optional
+ OnlyVerifyLeafCertificate *bool `json:"onlyVerifyLeafCertificate,omitempty"`
+}
+
+type SubjectAltNames struct {
+ // DNS names matchers
+ // +optional
+ DNSNames []StringMatch `json:"dnsNames,omitempty"`
+
+ // Email addresses matchers
+ // +optional
+ EmailAddresses []StringMatch `json:"emailAddresses,omitempty"`
+
+ // IP addresses matchers
+ // +optional
+ IPAddresses []StringMatch `json:"ipAddresses,omitempty"`
+
+ // URIs matchers
+ // +optional
+ URIs []StringMatch `json:"uris,omitempty"`
+
+ // Other names matchers
+ // +optional
+ OtherNames []OtherSANMatch `json:"otherNames,omitempty"`
+}
+
+type OtherSANMatch struct {
+ // OID Value
+ Oid string `json:"oid"`
+ StringMatch `json:",inline"`
+}
+
+// Session defines settings related to TLS session management.
+type Session struct {
+ // Resumption determines the proxy's supported TLS session resumption option.
+ // By default, Envoy Gateway does not enable session resumption. Use sessionResumption to
+ // enable stateful and stateless session resumption. Users should consider security impacts
+ // of different resumption methods. Performance gains from resumption are diminished when
+ // Envoy proxy is deployed with more than one replica.
+ // +optional
+ Resumption *SessionResumption `json:"resumption,omitempty"`
+}
+
+// SessionResumption defines supported tls session resumption methods and their associated configuration.
+type SessionResumption struct {
+ // Stateless defines setting for stateless (session-ticket based) session resumption
+ // +optional
+ Stateless *StatelessTLSSessionResumption `json:"stateless,omitempty"`
+
+ // Stateful defines setting for stateful (session-id based) session resumption
+ // +optional
+ Stateful *StatefulTLSSessionResumption `json:"stateful,omitempty"`
+}
+
+// StatefulTLSSessionResumption defines the stateful (session-id based) type of TLS session resumption.
+// Note: When Envoy Proxy is deployed with more than one replica, session caches are not synchronized
+// between instances, possibly leading to resumption failures.
+// Envoy does not re-validate client certificates upon session resumption.
+// https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/route/v3/route_components.proto#config-route-v3-routematch-tlscontextmatchoptions
+type StatefulTLSSessionResumption struct{}
+
+// StatelessTLSSessionResumption defines the stateless (session-ticket based) type of TLS session resumption.
+// Note: When Envoy Proxy is deployed with more than one replica, session ticket encryption keys are not
+// synchronized between instances, possibly leading to resumption failures.
+// In-memory session ticket encryption keys are rotated every 48 hours.
+// https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/transport_sockets/tls/v3/common.proto#extensions-transport-sockets-tls-v3-tlssessionticketkeys
+// https://commondatastorage.googleapis.com/chromium-boringssl-docs/ssl.h.html#Session-tickets
+type StatelessTLSSessionResumption struct{}
diff --git a/vendor/github.com/envoyproxy/gateway/api/v1alpha1/wasm_types.go b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/wasm_types.go
new file mode 100644
index 00000000..976888f5
--- /dev/null
+++ b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/wasm_types.go
@@ -0,0 +1,190 @@
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+package v1alpha1
+
+import (
+ apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
+ gwapiv1 "sigs.k8s.io/gateway-api/apis/v1"
+)
+
+// WasmEnv defines the environment variables for the VM of a Wasm extension
+type WasmEnv struct {
+ // HostKeys is a list of keys for environment variables from the host envoy process
+ // that should be passed into the Wasm VM. This is useful for passing secrets to to Wasm extensions.
+ // +optional
+ HostKeys []string `json:"hostKeys,omitempty"`
+}
+
+// Wasm defines a Wasm extension.
+//
+// Note: at the moment, Envoy Gateway does not support configuring Wasm runtime.
+// v8 is used as the VM runtime for the Wasm extensions.
+type Wasm struct {
+ // Name is a unique name for this Wasm extension. It is used to identify the
+ // Wasm extension if multiple extensions are handled by the same vm_id and root_id.
+ // It's also used for logging/debugging.
+ // If not specified, EG will generate a unique name for the Wasm extension.
+ //
+ // +optional
+ Name *string `json:"name,omitempty"`
+
+ // RootID is a unique ID for a set of extensions in a VM which will share a
+ // RootContext and Contexts if applicable (e.g., an Wasm HttpFilter and an Wasm AccessLog).
+ // If left blank, all extensions with a blank root_id with the same vm_id will share Context(s).
+ //
+ // Note: RootID must match the root_id parameter used to register the Context in the Wasm code.
+ RootID *string `json:"rootID,omitempty"`
+
+ // Code is the Wasm code for the extension.
+ Code WasmCodeSource `json:"code"`
+
+ // Config is the configuration for the Wasm extension.
+ // This configuration will be passed as a JSON string to the Wasm extension.
+ // +optional
+ Config *apiextensionsv1.JSON `json:"config,omitempty"`
+
+ // FailOpen is a switch used to control the behavior when a fatal error occurs
+ // during the initialization or the execution of the Wasm extension.
+ //
+ // If FailOpen is set to true, the system bypasses the Wasm extension and
+ // allows the traffic to pass through. If it is set to false or
+ // not set (defaulting to false), the system blocks the traffic and returns
+ // an HTTP 5xx error.
+ //
+ // If set to true, the Wasm extension will also be bypassed if the configuration is invalid.
+ //
+ // +optional
+ // +kubebuilder:default=false
+ FailOpen *bool `json:"failOpen,omitempty"`
+
+ // Priority defines the location of the Wasm extension in the HTTP filter chain.
+ // If not specified, the Wasm extension will be inserted before the router filter.
+ // Priority *uint32 `json:"priority,omitempty"`
+
+ // Env configures the environment for the Wasm extension
+ // +optional
+ Env *WasmEnv `json:"env,omitempty"`
+}
+
+// WasmCodeSource defines the source of the Wasm code.
+// +union
+//
+// +kubebuilder:validation:XValidation:rule="self.type == 'HTTP' ? has(self.http) : !has(self.http)",message="If type is HTTP, http field needs to be set."
+// +kubebuilder:validation:XValidation:rule="self.type == 'Image' ? has(self.image) : !has(self.image)",message="If type is Image, image field needs to be set."
+type WasmCodeSource struct {
+ // Type is the type of the source of the Wasm code.
+ // Valid WasmCodeSourceType values are "HTTP" or "Image".
+ //
+ // +kubebuilder:validation:Enum=HTTP;Image;ConfigMap
+ // +unionDiscriminator
+ Type WasmCodeSourceType `json:"type"`
+
+ // HTTP is the HTTP URL containing the Wasm code.
+ //
+ // Note that the HTTP server must be accessible from the Envoy proxy.
+ // +optional
+ HTTP *HTTPWasmCodeSource `json:"http,omitempty"`
+
+ // Image is the OCI image containing the Wasm code.
+ //
+ // Note that the image must be accessible from the Envoy Gateway.
+ // +optional
+ Image *ImageWasmCodeSource `json:"image,omitempty"`
+
+ // PullPolicy is the policy to use when pulling the Wasm module by either the HTTP or Image source.
+ // This field is only applicable when the SHA256 field is not set.
+ //
+ // If not specified, the default policy is IfNotPresent except for OCI images whose tag is latest.
+ //
+ // Note: EG does not update the Wasm module every time an Envoy proxy requests
+ // the Wasm module even if the pull policy is set to Always.
+ // It only updates the Wasm module when the EnvoyExtension resource version changes.
+ // +optional
+ PullPolicy *ImagePullPolicy `json:"pullPolicy,omitempty"`
+}
+
+// WasmCodeSourceType specifies the types of sources for the Wasm code.
+// +kubebuilder:validation:Enum=HTTP;Image
+type WasmCodeSourceType string
+
+const (
+ // HTTPWasmCodeSourceType allows the user to specify the Wasm code in an HTTP URL.
+ HTTPWasmCodeSourceType WasmCodeSourceType = "HTTP"
+
+ // ImageWasmCodeSourceType allows the user to specify the Wasm code in an OCI image.
+ ImageWasmCodeSourceType WasmCodeSourceType = "Image"
+)
+
+// HTTPWasmCodeSource defines the HTTP URL containing the Wasm code.
+type HTTPWasmCodeSource struct {
+ // URL is the URL containing the Wasm code.
+ // +kubebuilder:validation:Pattern=`^((https?:)(\/\/\/?)([\w]*(?::[\w]*)?@)?([\d\w\.-]+)(?::(\d+))?)?([\/\\\w\.()-]*)?(?:([?][^#]*)?(#.*)?)*`
+ URL string `json:"url"`
+
+ // SHA256 checksum that will be used to verify the Wasm code.
+ //
+ // If not specified, Envoy Gateway will not verify the downloaded Wasm code.
+ // kubebuilder:validation:Pattern=`^[a-f0-9]{64}$`
+ // +optional
+ SHA256 *string `json:"sha256"`
+
+ // TLS configuration when connecting to the Wasm code source.
+ // +optional
+ // +notImplementedHide
+ TLS *WasmCodeSourceTLSConfig `json:"tls,omitempty"`
+}
+
+// ImageWasmCodeSource defines the OCI image containing the Wasm code.
+type ImageWasmCodeSource struct {
+ // URL is the URL of the OCI image.
+ // URL can be in the format of `registry/image:tag` or `registry/image@sha256:digest`.
+ URL string `json:"url"`
+
+ // SHA256 checksum that will be used to verify the OCI image.
+ //
+ // It must match the digest of the OCI image.
+ //
+ // If not specified, Envoy Gateway will not verify the downloaded OCI image.
+ // kubebuilder:validation:Pattern=`^[a-f0-9]{64}$`
+ // +optional
+ SHA256 *string `json:"sha256"`
+
+ // PullSecretRef is a reference to the secret containing the credentials to pull the image.
+ // Only support Kubernetes Secret resource from the same namespace.
+ // +kubebuilder:validation:XValidation:message="only support Secret kind.",rule="self.kind == 'Secret'"
+ // +optional
+ PullSecretRef *gwapiv1.SecretObjectReference `json:"pullSecretRef,omitempty"`
+
+ // TLS configuration when connecting to the Wasm code source.
+ // +optional
+ // +notImplementedHide
+ TLS *WasmCodeSourceTLSConfig `json:"tls,omitempty"`
+}
+
+// ImagePullPolicy defines the policy to use when pulling an OIC image.
+// +kubebuilder:validation:Enum=IfNotPresent;Always
+type ImagePullPolicy string
+
+const (
+ // ImagePullPolicyIfNotPresent will only pull the image if it does not already exist in the EG cache.
+ ImagePullPolicyIfNotPresent ImagePullPolicy = "IfNotPresent"
+
+ // ImagePullPolicyAlways will pull the image when the EnvoyExtension resource version changes.
+ // Note: EG does not update the Wasm module every time an Envoy proxy requests the Wasm module.
+ ImagePullPolicyAlways ImagePullPolicy = "Always"
+)
+
+// WasmCodeSourceTLSConfig defines the TLS configuration when connecting to the Wasm code source.
+type WasmCodeSourceTLSConfig struct {
+ // CACertificateRef contains a references to
+ // Kubernetes objects that contain TLS certificates of
+ // the Certificate Authorities that can be used
+ // as a trust anchor to validate the certificates presented by the Wasm code source.
+ //
+ // Kubernetes ConfigMap and Kubernetes Secret are supported.
+ // Note: The ConfigMap or Secret must be in the same namespace as the EnvoyExtensionPolicy.
+ CACertificateRef gwapiv1.SecretObjectReference `json:"caCertificateRef"`
+}
diff --git a/vendor/github.com/envoyproxy/gateway/api/v1alpha1/zz_generated.deepcopy.go b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/zz_generated.deepcopy.go
new file mode 100644
index 00000000..fe24643f
--- /dev/null
+++ b/vendor/github.com/envoyproxy/gateway/api/v1alpha1/zz_generated.deepcopy.go
@@ -0,0 +1,7433 @@
+//go:build !ignore_autogenerated
+
+// Copyright Envoy Gateway Authors
+// SPDX-License-Identifier: Apache-2.0
+// The full text of the Apache license is available in the LICENSE file at
+// the root of the repo.
+
+// Code generated by controller-gen. DO NOT EDIT.
+
+package v1alpha1
+
+import (
+ appsv1 "k8s.io/api/apps/v1"
+ "k8s.io/api/autoscaling/v2"
+ corev1 "k8s.io/api/core/v1"
+ apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ runtime "k8s.io/apimachinery/pkg/runtime"
+ "k8s.io/apimachinery/pkg/util/intstr"
+ "sigs.k8s.io/gateway-api/apis/v1"
+)
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ALSEnvoyProxyAccessLog) DeepCopyInto(out *ALSEnvoyProxyAccessLog) {
+ *out = *in
+ in.BackendCluster.DeepCopyInto(&out.BackendCluster)
+ if in.LogName != nil {
+ in, out := &in.LogName, &out.LogName
+ *out = new(string)
+ **out = **in
+ }
+ if in.HTTP != nil {
+ in, out := &in.HTTP, &out.HTTP
+ *out = new(ALSEnvoyProxyHTTPAccessLogConfig)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ALSEnvoyProxyAccessLog.
+func (in *ALSEnvoyProxyAccessLog) DeepCopy() *ALSEnvoyProxyAccessLog {
+ if in == nil {
+ return nil
+ }
+ out := new(ALSEnvoyProxyAccessLog)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ALSEnvoyProxyHTTPAccessLogConfig) DeepCopyInto(out *ALSEnvoyProxyHTTPAccessLogConfig) {
+ *out = *in
+ if in.RequestHeaders != nil {
+ in, out := &in.RequestHeaders, &out.RequestHeaders
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ if in.ResponseHeaders != nil {
+ in, out := &in.ResponseHeaders, &out.ResponseHeaders
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ if in.ResponseTrailers != nil {
+ in, out := &in.ResponseTrailers, &out.ResponseTrailers
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ALSEnvoyProxyHTTPAccessLogConfig.
+func (in *ALSEnvoyProxyHTTPAccessLogConfig) DeepCopy() *ALSEnvoyProxyHTTPAccessLogConfig {
+ if in == nil {
+ return nil
+ }
+ out := new(ALSEnvoyProxyHTTPAccessLogConfig)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *APIKeyAuth) DeepCopyInto(out *APIKeyAuth) {
+ *out = *in
+ if in.CredentialRefs != nil {
+ in, out := &in.CredentialRefs, &out.CredentialRefs
+ *out = make([]v1.SecretObjectReference, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ if in.ExtractFrom != nil {
+ in, out := &in.ExtractFrom, &out.ExtractFrom
+ *out = make([]*ExtractFrom, len(*in))
+ for i := range *in {
+ if (*in)[i] != nil {
+ in, out := &(*in)[i], &(*out)[i]
+ *out = new(ExtractFrom)
+ (*in).DeepCopyInto(*out)
+ }
+ }
+ }
+ if in.ForwardClientIDHeader != nil {
+ in, out := &in.ForwardClientIDHeader, &out.ForwardClientIDHeader
+ *out = new(string)
+ **out = **in
+ }
+ if in.Sanitize != nil {
+ in, out := &in.Sanitize, &out.Sanitize
+ *out = new(bool)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIKeyAuth.
+func (in *APIKeyAuth) DeepCopy() *APIKeyAuth {
+ if in == nil {
+ return nil
+ }
+ out := new(APIKeyAuth)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ActiveHealthCheck) DeepCopyInto(out *ActiveHealthCheck) {
+ *out = *in
+ if in.Timeout != nil {
+ in, out := &in.Timeout, &out.Timeout
+ *out = new(v1.Duration)
+ **out = **in
+ }
+ if in.Interval != nil {
+ in, out := &in.Interval, &out.Interval
+ *out = new(v1.Duration)
+ **out = **in
+ }
+ if in.InitialJitter != nil {
+ in, out := &in.InitialJitter, &out.InitialJitter
+ *out = new(v1.Duration)
+ **out = **in
+ }
+ if in.UnhealthyThreshold != nil {
+ in, out := &in.UnhealthyThreshold, &out.UnhealthyThreshold
+ *out = new(uint32)
+ **out = **in
+ }
+ if in.HealthyThreshold != nil {
+ in, out := &in.HealthyThreshold, &out.HealthyThreshold
+ *out = new(uint32)
+ **out = **in
+ }
+ if in.HTTP != nil {
+ in, out := &in.HTTP, &out.HTTP
+ *out = new(HTTPActiveHealthChecker)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.TCP != nil {
+ in, out := &in.TCP, &out.TCP
+ *out = new(TCPActiveHealthChecker)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.GRPC != nil {
+ in, out := &in.GRPC, &out.GRPC
+ *out = new(GRPCActiveHealthChecker)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActiveHealthCheck.
+func (in *ActiveHealthCheck) DeepCopy() *ActiveHealthCheck {
+ if in == nil {
+ return nil
+ }
+ out := new(ActiveHealthCheck)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ActiveHealthCheckPayload) DeepCopyInto(out *ActiveHealthCheckPayload) {
+ *out = *in
+ if in.Text != nil {
+ in, out := &in.Text, &out.Text
+ *out = new(string)
+ **out = **in
+ }
+ if in.Binary != nil {
+ in, out := &in.Binary, &out.Binary
+ *out = make([]byte, len(*in))
+ copy(*out, *in)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActiveHealthCheckPayload.
+func (in *ActiveHealthCheckPayload) DeepCopy() *ActiveHealthCheckPayload {
+ if in == nil {
+ return nil
+ }
+ out := new(ActiveHealthCheckPayload)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *Authorization) DeepCopyInto(out *Authorization) {
+ *out = *in
+ if in.Rules != nil {
+ in, out := &in.Rules, &out.Rules
+ *out = make([]AuthorizationRule, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ if in.DefaultAction != nil {
+ in, out := &in.DefaultAction, &out.DefaultAction
+ *out = new(AuthorizationAction)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Authorization.
+func (in *Authorization) DeepCopy() *Authorization {
+ if in == nil {
+ return nil
+ }
+ out := new(Authorization)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *AuthorizationHeaderMatch) DeepCopyInto(out *AuthorizationHeaderMatch) {
+ *out = *in
+ if in.Values != nil {
+ in, out := &in.Values, &out.Values
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthorizationHeaderMatch.
+func (in *AuthorizationHeaderMatch) DeepCopy() *AuthorizationHeaderMatch {
+ if in == nil {
+ return nil
+ }
+ out := new(AuthorizationHeaderMatch)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *AuthorizationRule) DeepCopyInto(out *AuthorizationRule) {
+ *out = *in
+ if in.Name != nil {
+ in, out := &in.Name, &out.Name
+ *out = new(string)
+ **out = **in
+ }
+ if in.Operation != nil {
+ in, out := &in.Operation, &out.Operation
+ *out = new(Operation)
+ (*in).DeepCopyInto(*out)
+ }
+ in.Principal.DeepCopyInto(&out.Principal)
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthorizationRule.
+func (in *AuthorizationRule) DeepCopy() *AuthorizationRule {
+ if in == nil {
+ return nil
+ }
+ out := new(AuthorizationRule)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *BackOffPolicy) DeepCopyInto(out *BackOffPolicy) {
+ *out = *in
+ if in.BaseInterval != nil {
+ in, out := &in.BaseInterval, &out.BaseInterval
+ *out = new(v1.Duration)
+ **out = **in
+ }
+ if in.MaxInterval != nil {
+ in, out := &in.MaxInterval, &out.MaxInterval
+ *out = new(v1.Duration)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackOffPolicy.
+func (in *BackOffPolicy) DeepCopy() *BackOffPolicy {
+ if in == nil {
+ return nil
+ }
+ out := new(BackOffPolicy)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *Backend) DeepCopyInto(out *Backend) {
+ *out = *in
+ out.TypeMeta = in.TypeMeta
+ in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
+ in.Spec.DeepCopyInto(&out.Spec)
+ in.Status.DeepCopyInto(&out.Status)
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Backend.
+func (in *Backend) DeepCopy() *Backend {
+ if in == nil {
+ return nil
+ }
+ out := new(Backend)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
+func (in *Backend) DeepCopyObject() runtime.Object {
+ if c := in.DeepCopy(); c != nil {
+ return c
+ }
+ return nil
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *BackendCluster) DeepCopyInto(out *BackendCluster) {
+ *out = *in
+ if in.BackendRef != nil {
+ in, out := &in.BackendRef, &out.BackendRef
+ *out = new(v1.BackendObjectReference)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.BackendRefs != nil {
+ in, out := &in.BackendRefs, &out.BackendRefs
+ *out = make([]BackendRef, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ if in.BackendSettings != nil {
+ in, out := &in.BackendSettings, &out.BackendSettings
+ *out = new(ClusterSettings)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackendCluster.
+func (in *BackendCluster) DeepCopy() *BackendCluster {
+ if in == nil {
+ return nil
+ }
+ out := new(BackendCluster)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *BackendConnection) DeepCopyInto(out *BackendConnection) {
+ *out = *in
+ if in.BufferLimit != nil {
+ in, out := &in.BufferLimit, &out.BufferLimit
+ x := (*in).DeepCopy()
+ *out = &x
+ }
+ if in.SocketBufferLimit != nil {
+ in, out := &in.SocketBufferLimit, &out.SocketBufferLimit
+ x := (*in).DeepCopy()
+ *out = &x
+ }
+ if in.Preconnect != nil {
+ in, out := &in.Preconnect, &out.Preconnect
+ *out = new(PreconnectPolicy)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackendConnection.
+func (in *BackendConnection) DeepCopy() *BackendConnection {
+ if in == nil {
+ return nil
+ }
+ out := new(BackendConnection)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *BackendEndpoint) DeepCopyInto(out *BackendEndpoint) {
+ *out = *in
+ if in.Hostname != nil {
+ in, out := &in.Hostname, &out.Hostname
+ *out = new(string)
+ **out = **in
+ }
+ if in.FQDN != nil {
+ in, out := &in.FQDN, &out.FQDN
+ *out = new(FQDNEndpoint)
+ **out = **in
+ }
+ if in.IP != nil {
+ in, out := &in.IP, &out.IP
+ *out = new(IPEndpoint)
+ **out = **in
+ }
+ if in.Unix != nil {
+ in, out := &in.Unix, &out.Unix
+ *out = new(UnixSocket)
+ **out = **in
+ }
+ if in.Zone != nil {
+ in, out := &in.Zone, &out.Zone
+ *out = new(string)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackendEndpoint.
+func (in *BackendEndpoint) DeepCopy() *BackendEndpoint {
+ if in == nil {
+ return nil
+ }
+ out := new(BackendEndpoint)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *BackendList) DeepCopyInto(out *BackendList) {
+ *out = *in
+ out.TypeMeta = in.TypeMeta
+ in.ListMeta.DeepCopyInto(&out.ListMeta)
+ if in.Items != nil {
+ in, out := &in.Items, &out.Items
+ *out = make([]Backend, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackendList.
+func (in *BackendList) DeepCopy() *BackendList {
+ if in == nil {
+ return nil
+ }
+ out := new(BackendList)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
+func (in *BackendList) DeepCopyObject() runtime.Object {
+ if c := in.DeepCopy(); c != nil {
+ return c
+ }
+ return nil
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *BackendRef) DeepCopyInto(out *BackendRef) {
+ *out = *in
+ in.BackendObjectReference.DeepCopyInto(&out.BackendObjectReference)
+ if in.Fallback != nil {
+ in, out := &in.Fallback, &out.Fallback
+ *out = new(bool)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackendRef.
+func (in *BackendRef) DeepCopy() *BackendRef {
+ if in == nil {
+ return nil
+ }
+ out := new(BackendRef)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *BackendSpec) DeepCopyInto(out *BackendSpec) {
+ *out = *in
+ if in.Type != nil {
+ in, out := &in.Type, &out.Type
+ *out = new(BackendType)
+ **out = **in
+ }
+ if in.Endpoints != nil {
+ in, out := &in.Endpoints, &out.Endpoints
+ *out = make([]BackendEndpoint, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ if in.AppProtocols != nil {
+ in, out := &in.AppProtocols, &out.AppProtocols
+ *out = make([]AppProtocolType, len(*in))
+ copy(*out, *in)
+ }
+ if in.Fallback != nil {
+ in, out := &in.Fallback, &out.Fallback
+ *out = new(bool)
+ **out = **in
+ }
+ if in.TLS != nil {
+ in, out := &in.TLS, &out.TLS
+ *out = new(BackendTLSSettings)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackendSpec.
+func (in *BackendSpec) DeepCopy() *BackendSpec {
+ if in == nil {
+ return nil
+ }
+ out := new(BackendSpec)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *BackendStatus) DeepCopyInto(out *BackendStatus) {
+ *out = *in
+ if in.Conditions != nil {
+ in, out := &in.Conditions, &out.Conditions
+ *out = make([]metav1.Condition, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackendStatus.
+func (in *BackendStatus) DeepCopy() *BackendStatus {
+ if in == nil {
+ return nil
+ }
+ out := new(BackendStatus)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *BackendTLSConfig) DeepCopyInto(out *BackendTLSConfig) {
+ *out = *in
+ if in.ClientCertificateRef != nil {
+ in, out := &in.ClientCertificateRef, &out.ClientCertificateRef
+ *out = new(v1.SecretObjectReference)
+ (*in).DeepCopyInto(*out)
+ }
+ in.TLSSettings.DeepCopyInto(&out.TLSSettings)
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackendTLSConfig.
+func (in *BackendTLSConfig) DeepCopy() *BackendTLSConfig {
+ if in == nil {
+ return nil
+ }
+ out := new(BackendTLSConfig)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *BackendTLSSettings) DeepCopyInto(out *BackendTLSSettings) {
+ *out = *in
+ if in.CACertificateRefs != nil {
+ in, out := &in.CACertificateRefs, &out.CACertificateRefs
+ *out = make([]v1.LocalObjectReference, len(*in))
+ copy(*out, *in)
+ }
+ if in.WellKnownCACertificates != nil {
+ in, out := &in.WellKnownCACertificates, &out.WellKnownCACertificates
+ *out = new(v1.WellKnownCACertificatesType)
+ **out = **in
+ }
+ if in.InsecureSkipVerify != nil {
+ in, out := &in.InsecureSkipVerify, &out.InsecureSkipVerify
+ *out = new(bool)
+ **out = **in
+ }
+ if in.SNI != nil {
+ in, out := &in.SNI, &out.SNI
+ *out = new(v1.PreciseHostname)
+ **out = **in
+ }
+ if in.BackendTLSConfig != nil {
+ in, out := &in.BackendTLSConfig, &out.BackendTLSConfig
+ *out = new(BackendTLSConfig)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackendTLSSettings.
+func (in *BackendTLSSettings) DeepCopy() *BackendTLSSettings {
+ if in == nil {
+ return nil
+ }
+ out := new(BackendTLSSettings)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *BackendTelemetry) DeepCopyInto(out *BackendTelemetry) {
+ *out = *in
+ if in.Tracing != nil {
+ in, out := &in.Tracing, &out.Tracing
+ *out = new(Tracing)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackendTelemetry.
+func (in *BackendTelemetry) DeepCopy() *BackendTelemetry {
+ if in == nil {
+ return nil
+ }
+ out := new(BackendTelemetry)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *BackendTrafficPolicy) DeepCopyInto(out *BackendTrafficPolicy) {
+ *out = *in
+ out.TypeMeta = in.TypeMeta
+ in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
+ in.Spec.DeepCopyInto(&out.Spec)
+ in.Status.DeepCopyInto(&out.Status)
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackendTrafficPolicy.
+func (in *BackendTrafficPolicy) DeepCopy() *BackendTrafficPolicy {
+ if in == nil {
+ return nil
+ }
+ out := new(BackendTrafficPolicy)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
+func (in *BackendTrafficPolicy) DeepCopyObject() runtime.Object {
+ if c := in.DeepCopy(); c != nil {
+ return c
+ }
+ return nil
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *BackendTrafficPolicyList) DeepCopyInto(out *BackendTrafficPolicyList) {
+ *out = *in
+ out.TypeMeta = in.TypeMeta
+ in.ListMeta.DeepCopyInto(&out.ListMeta)
+ if in.Items != nil {
+ in, out := &in.Items, &out.Items
+ *out = make([]BackendTrafficPolicy, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackendTrafficPolicyList.
+func (in *BackendTrafficPolicyList) DeepCopy() *BackendTrafficPolicyList {
+ if in == nil {
+ return nil
+ }
+ out := new(BackendTrafficPolicyList)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
+func (in *BackendTrafficPolicyList) DeepCopyObject() runtime.Object {
+ if c := in.DeepCopy(); c != nil {
+ return c
+ }
+ return nil
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *BackendTrafficPolicySpec) DeepCopyInto(out *BackendTrafficPolicySpec) {
+ *out = *in
+ in.PolicyTargetReferences.DeepCopyInto(&out.PolicyTargetReferences)
+ in.ClusterSettings.DeepCopyInto(&out.ClusterSettings)
+ if in.MergeType != nil {
+ in, out := &in.MergeType, &out.MergeType
+ *out = new(MergeType)
+ **out = **in
+ }
+ if in.RateLimit != nil {
+ in, out := &in.RateLimit, &out.RateLimit
+ *out = new(RateLimitSpec)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.FaultInjection != nil {
+ in, out := &in.FaultInjection, &out.FaultInjection
+ *out = new(FaultInjection)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.UseClientProtocol != nil {
+ in, out := &in.UseClientProtocol, &out.UseClientProtocol
+ *out = new(bool)
+ **out = **in
+ }
+ if in.Compression != nil {
+ in, out := &in.Compression, &out.Compression
+ *out = make([]*Compression, len(*in))
+ for i := range *in {
+ if (*in)[i] != nil {
+ in, out := &(*in)[i], &(*out)[i]
+ *out = new(Compression)
+ (*in).DeepCopyInto(*out)
+ }
+ }
+ }
+ if in.Compressor != nil {
+ in, out := &in.Compressor, &out.Compressor
+ *out = make([]*Compression, len(*in))
+ for i := range *in {
+ if (*in)[i] != nil {
+ in, out := &(*in)[i], &(*out)[i]
+ *out = new(Compression)
+ (*in).DeepCopyInto(*out)
+ }
+ }
+ }
+ if in.ResponseOverride != nil {
+ in, out := &in.ResponseOverride, &out.ResponseOverride
+ *out = make([]*ResponseOverride, len(*in))
+ for i := range *in {
+ if (*in)[i] != nil {
+ in, out := &(*in)[i], &(*out)[i]
+ *out = new(ResponseOverride)
+ (*in).DeepCopyInto(*out)
+ }
+ }
+ }
+ if in.HTTPUpgrade != nil {
+ in, out := &in.HTTPUpgrade, &out.HTTPUpgrade
+ *out = make([]*ProtocolUpgradeConfig, len(*in))
+ for i := range *in {
+ if (*in)[i] != nil {
+ in, out := &(*in)[i], &(*out)[i]
+ *out = new(ProtocolUpgradeConfig)
+ (*in).DeepCopyInto(*out)
+ }
+ }
+ }
+ if in.RequestBuffer != nil {
+ in, out := &in.RequestBuffer, &out.RequestBuffer
+ *out = new(RequestBuffer)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Telemetry != nil {
+ in, out := &in.Telemetry, &out.Telemetry
+ *out = new(BackendTelemetry)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackendTrafficPolicySpec.
+func (in *BackendTrafficPolicySpec) DeepCopy() *BackendTrafficPolicySpec {
+ if in == nil {
+ return nil
+ }
+ out := new(BackendTrafficPolicySpec)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *BasicAuth) DeepCopyInto(out *BasicAuth) {
+ *out = *in
+ in.Users.DeepCopyInto(&out.Users)
+ if in.ForwardUsernameHeader != nil {
+ in, out := &in.ForwardUsernameHeader, &out.ForwardUsernameHeader
+ *out = new(string)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BasicAuth.
+func (in *BasicAuth) DeepCopy() *BasicAuth {
+ if in == nil {
+ return nil
+ }
+ out := new(BasicAuth)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *BodyToExtAuth) DeepCopyInto(out *BodyToExtAuth) {
+ *out = *in
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BodyToExtAuth.
+func (in *BodyToExtAuth) DeepCopy() *BodyToExtAuth {
+ if in == nil {
+ return nil
+ }
+ out := new(BodyToExtAuth)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *BrotliCompressor) DeepCopyInto(out *BrotliCompressor) {
+ *out = *in
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BrotliCompressor.
+func (in *BrotliCompressor) DeepCopy() *BrotliCompressor {
+ if in == nil {
+ return nil
+ }
+ out := new(BrotliCompressor)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *CORS) DeepCopyInto(out *CORS) {
+ *out = *in
+ if in.AllowOrigins != nil {
+ in, out := &in.AllowOrigins, &out.AllowOrigins
+ *out = make([]Origin, len(*in))
+ copy(*out, *in)
+ }
+ if in.AllowMethods != nil {
+ in, out := &in.AllowMethods, &out.AllowMethods
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ if in.AllowHeaders != nil {
+ in, out := &in.AllowHeaders, &out.AllowHeaders
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ if in.ExposeHeaders != nil {
+ in, out := &in.ExposeHeaders, &out.ExposeHeaders
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ if in.MaxAge != nil {
+ in, out := &in.MaxAge, &out.MaxAge
+ *out = new(v1.Duration)
+ **out = **in
+ }
+ if in.AllowCredentials != nil {
+ in, out := &in.AllowCredentials, &out.AllowCredentials
+ *out = new(bool)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CORS.
+func (in *CORS) DeepCopy() *CORS {
+ if in == nil {
+ return nil
+ }
+ out := new(CORS)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *CircuitBreaker) DeepCopyInto(out *CircuitBreaker) {
+ *out = *in
+ if in.MaxConnections != nil {
+ in, out := &in.MaxConnections, &out.MaxConnections
+ *out = new(int64)
+ **out = **in
+ }
+ if in.MaxPendingRequests != nil {
+ in, out := &in.MaxPendingRequests, &out.MaxPendingRequests
+ *out = new(int64)
+ **out = **in
+ }
+ if in.MaxParallelRequests != nil {
+ in, out := &in.MaxParallelRequests, &out.MaxParallelRequests
+ *out = new(int64)
+ **out = **in
+ }
+ if in.MaxParallelRetries != nil {
+ in, out := &in.MaxParallelRetries, &out.MaxParallelRetries
+ *out = new(int64)
+ **out = **in
+ }
+ if in.MaxRequestsPerConnection != nil {
+ in, out := &in.MaxRequestsPerConnection, &out.MaxRequestsPerConnection
+ *out = new(int64)
+ **out = **in
+ }
+ if in.PerEndpoint != nil {
+ in, out := &in.PerEndpoint, &out.PerEndpoint
+ *out = new(PerEndpointCircuitBreakers)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CircuitBreaker.
+func (in *CircuitBreaker) DeepCopy() *CircuitBreaker {
+ if in == nil {
+ return nil
+ }
+ out := new(CircuitBreaker)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ClaimToHeader) DeepCopyInto(out *ClaimToHeader) {
+ *out = *in
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClaimToHeader.
+func (in *ClaimToHeader) DeepCopy() *ClaimToHeader {
+ if in == nil {
+ return nil
+ }
+ out := new(ClaimToHeader)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ClientConnection) DeepCopyInto(out *ClientConnection) {
+ *out = *in
+ if in.ConnectionLimit != nil {
+ in, out := &in.ConnectionLimit, &out.ConnectionLimit
+ *out = new(ConnectionLimit)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.BufferLimit != nil {
+ in, out := &in.BufferLimit, &out.BufferLimit
+ x := (*in).DeepCopy()
+ *out = &x
+ }
+ if in.SocketBufferLimit != nil {
+ in, out := &in.SocketBufferLimit, &out.SocketBufferLimit
+ x := (*in).DeepCopy()
+ *out = &x
+ }
+ if in.MaxAcceptPerSocketEvent != nil {
+ in, out := &in.MaxAcceptPerSocketEvent, &out.MaxAcceptPerSocketEvent
+ *out = new(uint32)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClientConnection.
+func (in *ClientConnection) DeepCopy() *ClientConnection {
+ if in == nil {
+ return nil
+ }
+ out := new(ClientConnection)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ClientIPDetectionSettings) DeepCopyInto(out *ClientIPDetectionSettings) {
+ *out = *in
+ if in.XForwardedFor != nil {
+ in, out := &in.XForwardedFor, &out.XForwardedFor
+ *out = new(XForwardedForSettings)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.CustomHeader != nil {
+ in, out := &in.CustomHeader, &out.CustomHeader
+ *out = new(CustomHeaderExtensionSettings)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClientIPDetectionSettings.
+func (in *ClientIPDetectionSettings) DeepCopy() *ClientIPDetectionSettings {
+ if in == nil {
+ return nil
+ }
+ out := new(ClientIPDetectionSettings)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ClientTLSSettings) DeepCopyInto(out *ClientTLSSettings) {
+ *out = *in
+ if in.ClientValidation != nil {
+ in, out := &in.ClientValidation, &out.ClientValidation
+ *out = new(ClientValidationContext)
+ (*in).DeepCopyInto(*out)
+ }
+ in.TLSSettings.DeepCopyInto(&out.TLSSettings)
+ if in.Session != nil {
+ in, out := &in.Session, &out.Session
+ *out = new(Session)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClientTLSSettings.
+func (in *ClientTLSSettings) DeepCopy() *ClientTLSSettings {
+ if in == nil {
+ return nil
+ }
+ out := new(ClientTLSSettings)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ClientTimeout) DeepCopyInto(out *ClientTimeout) {
+ *out = *in
+ if in.TCP != nil {
+ in, out := &in.TCP, &out.TCP
+ *out = new(TCPClientTimeout)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.HTTP != nil {
+ in, out := &in.HTTP, &out.HTTP
+ *out = new(HTTPClientTimeout)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClientTimeout.
+func (in *ClientTimeout) DeepCopy() *ClientTimeout {
+ if in == nil {
+ return nil
+ }
+ out := new(ClientTimeout)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ClientTrafficPolicy) DeepCopyInto(out *ClientTrafficPolicy) {
+ *out = *in
+ out.TypeMeta = in.TypeMeta
+ in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
+ in.Spec.DeepCopyInto(&out.Spec)
+ in.Status.DeepCopyInto(&out.Status)
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClientTrafficPolicy.
+func (in *ClientTrafficPolicy) DeepCopy() *ClientTrafficPolicy {
+ if in == nil {
+ return nil
+ }
+ out := new(ClientTrafficPolicy)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
+func (in *ClientTrafficPolicy) DeepCopyObject() runtime.Object {
+ if c := in.DeepCopy(); c != nil {
+ return c
+ }
+ return nil
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ClientTrafficPolicyList) DeepCopyInto(out *ClientTrafficPolicyList) {
+ *out = *in
+ out.TypeMeta = in.TypeMeta
+ in.ListMeta.DeepCopyInto(&out.ListMeta)
+ if in.Items != nil {
+ in, out := &in.Items, &out.Items
+ *out = make([]ClientTrafficPolicy, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClientTrafficPolicyList.
+func (in *ClientTrafficPolicyList) DeepCopy() *ClientTrafficPolicyList {
+ if in == nil {
+ return nil
+ }
+ out := new(ClientTrafficPolicyList)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
+func (in *ClientTrafficPolicyList) DeepCopyObject() runtime.Object {
+ if c := in.DeepCopy(); c != nil {
+ return c
+ }
+ return nil
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ClientTrafficPolicySpec) DeepCopyInto(out *ClientTrafficPolicySpec) {
+ *out = *in
+ in.PolicyTargetReferences.DeepCopyInto(&out.PolicyTargetReferences)
+ if in.TCPKeepalive != nil {
+ in, out := &in.TCPKeepalive, &out.TCPKeepalive
+ *out = new(TCPKeepalive)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.EnableProxyProtocol != nil {
+ in, out := &in.EnableProxyProtocol, &out.EnableProxyProtocol
+ *out = new(bool)
+ **out = **in
+ }
+ if in.ProxyProtocol != nil {
+ in, out := &in.ProxyProtocol, &out.ProxyProtocol
+ *out = new(ProxyProtocolSettings)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.ClientIPDetection != nil {
+ in, out := &in.ClientIPDetection, &out.ClientIPDetection
+ *out = new(ClientIPDetectionSettings)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.TLS != nil {
+ in, out := &in.TLS, &out.TLS
+ *out = new(ClientTLSSettings)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Path != nil {
+ in, out := &in.Path, &out.Path
+ *out = new(PathSettings)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Headers != nil {
+ in, out := &in.Headers, &out.Headers
+ *out = new(HeaderSettings)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Timeout != nil {
+ in, out := &in.Timeout, &out.Timeout
+ *out = new(ClientTimeout)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Connection != nil {
+ in, out := &in.Connection, &out.Connection
+ *out = new(ClientConnection)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.HTTP1 != nil {
+ in, out := &in.HTTP1, &out.HTTP1
+ *out = new(HTTP1Settings)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.HTTP2 != nil {
+ in, out := &in.HTTP2, &out.HTTP2
+ *out = new(HTTP2Settings)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.HTTP3 != nil {
+ in, out := &in.HTTP3, &out.HTTP3
+ *out = new(HTTP3Settings)
+ **out = **in
+ }
+ if in.HealthCheck != nil {
+ in, out := &in.HealthCheck, &out.HealthCheck
+ *out = new(HealthCheckSettings)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClientTrafficPolicySpec.
+func (in *ClientTrafficPolicySpec) DeepCopy() *ClientTrafficPolicySpec {
+ if in == nil {
+ return nil
+ }
+ out := new(ClientTrafficPolicySpec)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ClientValidationContext) DeepCopyInto(out *ClientValidationContext) {
+ *out = *in
+ if in.CACertificateRefs != nil {
+ in, out := &in.CACertificateRefs, &out.CACertificateRefs
+ *out = make([]v1.SecretObjectReference, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ if in.SPKIHashes != nil {
+ in, out := &in.SPKIHashes, &out.SPKIHashes
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ if in.CertificateHashes != nil {
+ in, out := &in.CertificateHashes, &out.CertificateHashes
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ if in.SubjectAltNames != nil {
+ in, out := &in.SubjectAltNames, &out.SubjectAltNames
+ *out = new(SubjectAltNames)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Crl != nil {
+ in, out := &in.Crl, &out.Crl
+ *out = new(CrlContext)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClientValidationContext.
+func (in *ClientValidationContext) DeepCopy() *ClientValidationContext {
+ if in == nil {
+ return nil
+ }
+ out := new(ClientValidationContext)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ClusterSettings) DeepCopyInto(out *ClusterSettings) {
+ *out = *in
+ if in.LoadBalancer != nil {
+ in, out := &in.LoadBalancer, &out.LoadBalancer
+ *out = new(LoadBalancer)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Retry != nil {
+ in, out := &in.Retry, &out.Retry
+ *out = new(Retry)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.ProxyProtocol != nil {
+ in, out := &in.ProxyProtocol, &out.ProxyProtocol
+ *out = new(ProxyProtocol)
+ **out = **in
+ }
+ if in.TCPKeepalive != nil {
+ in, out := &in.TCPKeepalive, &out.TCPKeepalive
+ *out = new(TCPKeepalive)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.HealthCheck != nil {
+ in, out := &in.HealthCheck, &out.HealthCheck
+ *out = new(HealthCheck)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.CircuitBreaker != nil {
+ in, out := &in.CircuitBreaker, &out.CircuitBreaker
+ *out = new(CircuitBreaker)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Timeout != nil {
+ in, out := &in.Timeout, &out.Timeout
+ *out = new(Timeout)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Connection != nil {
+ in, out := &in.Connection, &out.Connection
+ *out = new(BackendConnection)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.DNS != nil {
+ in, out := &in.DNS, &out.DNS
+ *out = new(DNS)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.HTTP2 != nil {
+ in, out := &in.HTTP2, &out.HTTP2
+ *out = new(HTTP2Settings)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterSettings.
+func (in *ClusterSettings) DeepCopy() *ClusterSettings {
+ if in == nil {
+ return nil
+ }
+ out := new(ClusterSettings)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ClusterTranslationConfig) DeepCopyInto(out *ClusterTranslationConfig) {
+ *out = *in
+ if in.IncludeAll != nil {
+ in, out := &in.IncludeAll, &out.IncludeAll
+ *out = new(bool)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterTranslationConfig.
+func (in *ClusterTranslationConfig) DeepCopy() *ClusterTranslationConfig {
+ if in == nil {
+ return nil
+ }
+ out := new(ClusterTranslationConfig)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *Compression) DeepCopyInto(out *Compression) {
+ *out = *in
+ if in.Brotli != nil {
+ in, out := &in.Brotli, &out.Brotli
+ *out = new(BrotliCompressor)
+ **out = **in
+ }
+ if in.Gzip != nil {
+ in, out := &in.Gzip, &out.Gzip
+ *out = new(GzipCompressor)
+ **out = **in
+ }
+ if in.Zstd != nil {
+ in, out := &in.Zstd, &out.Zstd
+ *out = new(ZstdCompressor)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Compression.
+func (in *Compression) DeepCopy() *Compression {
+ if in == nil {
+ return nil
+ }
+ out := new(Compression)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ConnectConfig) DeepCopyInto(out *ConnectConfig) {
+ *out = *in
+ if in.Terminate != nil {
+ in, out := &in.Terminate, &out.Terminate
+ *out = new(bool)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConnectConfig.
+func (in *ConnectConfig) DeepCopy() *ConnectConfig {
+ if in == nil {
+ return nil
+ }
+ out := new(ConnectConfig)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ConnectionLimit) DeepCopyInto(out *ConnectionLimit) {
+ *out = *in
+ if in.CloseDelay != nil {
+ in, out := &in.CloseDelay, &out.CloseDelay
+ *out = new(v1.Duration)
+ **out = **in
+ }
+ if in.MaxConnectionDuration != nil {
+ in, out := &in.MaxConnectionDuration, &out.MaxConnectionDuration
+ *out = new(v1.Duration)
+ **out = **in
+ }
+ if in.MaxRequestsPerConnection != nil {
+ in, out := &in.MaxRequestsPerConnection, &out.MaxRequestsPerConnection
+ *out = new(uint32)
+ **out = **in
+ }
+ if in.MaxStreamDuration != nil {
+ in, out := &in.MaxStreamDuration, &out.MaxStreamDuration
+ *out = new(v1.Duration)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConnectionLimit.
+func (in *ConnectionLimit) DeepCopy() *ConnectionLimit {
+ if in == nil {
+ return nil
+ }
+ out := new(ConnectionLimit)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ConsistentHash) DeepCopyInto(out *ConsistentHash) {
+ *out = *in
+ if in.Header != nil {
+ in, out := &in.Header, &out.Header
+ *out = new(Header)
+ **out = **in
+ }
+ if in.Headers != nil {
+ in, out := &in.Headers, &out.Headers
+ *out = make([]*Header, len(*in))
+ for i := range *in {
+ if (*in)[i] != nil {
+ in, out := &(*in)[i], &(*out)[i]
+ *out = new(Header)
+ **out = **in
+ }
+ }
+ }
+ if in.Cookie != nil {
+ in, out := &in.Cookie, &out.Cookie
+ *out = new(Cookie)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.TableSize != nil {
+ in, out := &in.TableSize, &out.TableSize
+ *out = new(uint64)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConsistentHash.
+func (in *ConsistentHash) DeepCopy() *ConsistentHash {
+ if in == nil {
+ return nil
+ }
+ out := new(ConsistentHash)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *Cookie) DeepCopyInto(out *Cookie) {
+ *out = *in
+ if in.TTL != nil {
+ in, out := &in.TTL, &out.TTL
+ *out = new(v1.Duration)
+ **out = **in
+ }
+ if in.Attributes != nil {
+ in, out := &in.Attributes, &out.Attributes
+ *out = make(map[string]string, len(*in))
+ for key, val := range *in {
+ (*out)[key] = val
+ }
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Cookie.
+func (in *Cookie) DeepCopy() *Cookie {
+ if in == nil {
+ return nil
+ }
+ out := new(Cookie)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *CrlContext) DeepCopyInto(out *CrlContext) {
+ *out = *in
+ if in.Refs != nil {
+ in, out := &in.Refs, &out.Refs
+ *out = make([]v1.SecretObjectReference, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ if in.OnlyVerifyLeafCertificate != nil {
+ in, out := &in.OnlyVerifyLeafCertificate, &out.OnlyVerifyLeafCertificate
+ *out = new(bool)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CrlContext.
+func (in *CrlContext) DeepCopy() *CrlContext {
+ if in == nil {
+ return nil
+ }
+ out := new(CrlContext)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *CustomHeaderExtensionSettings) DeepCopyInto(out *CustomHeaderExtensionSettings) {
+ *out = *in
+ if in.FailClosed != nil {
+ in, out := &in.FailClosed, &out.FailClosed
+ *out = new(bool)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomHeaderExtensionSettings.
+func (in *CustomHeaderExtensionSettings) DeepCopy() *CustomHeaderExtensionSettings {
+ if in == nil {
+ return nil
+ }
+ out := new(CustomHeaderExtensionSettings)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *CustomRedirect) DeepCopyInto(out *CustomRedirect) {
+ *out = *in
+ if in.Scheme != nil {
+ in, out := &in.Scheme, &out.Scheme
+ *out = new(string)
+ **out = **in
+ }
+ if in.Hostname != nil {
+ in, out := &in.Hostname, &out.Hostname
+ *out = new(v1.PreciseHostname)
+ **out = **in
+ }
+ if in.Path != nil {
+ in, out := &in.Path, &out.Path
+ *out = new(v1.HTTPPathModifier)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Port != nil {
+ in, out := &in.Port, &out.Port
+ *out = new(v1.PortNumber)
+ **out = **in
+ }
+ if in.StatusCode != nil {
+ in, out := &in.StatusCode, &out.StatusCode
+ *out = new(int)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomRedirect.
+func (in *CustomRedirect) DeepCopy() *CustomRedirect {
+ if in == nil {
+ return nil
+ }
+ out := new(CustomRedirect)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *CustomResponse) DeepCopyInto(out *CustomResponse) {
+ *out = *in
+ if in.ContentType != nil {
+ in, out := &in.ContentType, &out.ContentType
+ *out = new(string)
+ **out = **in
+ }
+ if in.Body != nil {
+ in, out := &in.Body, &out.Body
+ *out = new(CustomResponseBody)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.StatusCode != nil {
+ in, out := &in.StatusCode, &out.StatusCode
+ *out = new(int)
+ **out = **in
+ }
+ if in.Header != nil {
+ in, out := &in.Header, &out.Header
+ *out = new(v1.HTTPHeaderFilter)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomResponse.
+func (in *CustomResponse) DeepCopy() *CustomResponse {
+ if in == nil {
+ return nil
+ }
+ out := new(CustomResponse)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *CustomResponseBody) DeepCopyInto(out *CustomResponseBody) {
+ *out = *in
+ if in.Type != nil {
+ in, out := &in.Type, &out.Type
+ *out = new(ResponseValueType)
+ **out = **in
+ }
+ if in.Inline != nil {
+ in, out := &in.Inline, &out.Inline
+ *out = new(string)
+ **out = **in
+ }
+ if in.ValueRef != nil {
+ in, out := &in.ValueRef, &out.ValueRef
+ *out = new(v1.LocalObjectReference)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomResponseBody.
+func (in *CustomResponseBody) DeepCopy() *CustomResponseBody {
+ if in == nil {
+ return nil
+ }
+ out := new(CustomResponseBody)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *CustomResponseMatch) DeepCopyInto(out *CustomResponseMatch) {
+ *out = *in
+ if in.StatusCodes != nil {
+ in, out := &in.StatusCodes, &out.StatusCodes
+ *out = make([]StatusCodeMatch, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomResponseMatch.
+func (in *CustomResponseMatch) DeepCopy() *CustomResponseMatch {
+ if in == nil {
+ return nil
+ }
+ out := new(CustomResponseMatch)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *CustomTag) DeepCopyInto(out *CustomTag) {
+ *out = *in
+ if in.Literal != nil {
+ in, out := &in.Literal, &out.Literal
+ *out = new(LiteralCustomTag)
+ **out = **in
+ }
+ if in.Environment != nil {
+ in, out := &in.Environment, &out.Environment
+ *out = new(EnvironmentCustomTag)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.RequestHeader != nil {
+ in, out := &in.RequestHeader, &out.RequestHeader
+ *out = new(RequestHeaderCustomTag)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomTag.
+func (in *CustomTag) DeepCopy() *CustomTag {
+ if in == nil {
+ return nil
+ }
+ out := new(CustomTag)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *DNS) DeepCopyInto(out *DNS) {
+ *out = *in
+ if in.DNSRefreshRate != nil {
+ in, out := &in.DNSRefreshRate, &out.DNSRefreshRate
+ *out = new(v1.Duration)
+ **out = **in
+ }
+ if in.RespectDNSTTL != nil {
+ in, out := &in.RespectDNSTTL, &out.RespectDNSTTL
+ *out = new(bool)
+ **out = **in
+ }
+ if in.LookupFamily != nil {
+ in, out := &in.LookupFamily, &out.LookupFamily
+ *out = new(DNSLookupFamily)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DNS.
+func (in *DNS) DeepCopy() *DNS {
+ if in == nil {
+ return nil
+ }
+ out := new(DNS)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *EndpointOverride) DeepCopyInto(out *EndpointOverride) {
+ *out = *in
+ if in.ExtractFrom != nil {
+ in, out := &in.ExtractFrom, &out.ExtractFrom
+ *out = make([]EndpointOverrideExtractFrom, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointOverride.
+func (in *EndpointOverride) DeepCopy() *EndpointOverride {
+ if in == nil {
+ return nil
+ }
+ out := new(EndpointOverride)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *EndpointOverrideExtractFrom) DeepCopyInto(out *EndpointOverrideExtractFrom) {
+ *out = *in
+ if in.Header != nil {
+ in, out := &in.Header, &out.Header
+ *out = new(string)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointOverrideExtractFrom.
+func (in *EndpointOverrideExtractFrom) DeepCopy() *EndpointOverrideExtractFrom {
+ if in == nil {
+ return nil
+ }
+ out := new(EndpointOverrideExtractFrom)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *EnvironmentCustomTag) DeepCopyInto(out *EnvironmentCustomTag) {
+ *out = *in
+ if in.DefaultValue != nil {
+ in, out := &in.DefaultValue, &out.DefaultValue
+ *out = new(string)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvironmentCustomTag.
+func (in *EnvironmentCustomTag) DeepCopy() *EnvironmentCustomTag {
+ if in == nil {
+ return nil
+ }
+ out := new(EnvironmentCustomTag)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *EnvoyExtensionPolicy) DeepCopyInto(out *EnvoyExtensionPolicy) {
+ *out = *in
+ out.TypeMeta = in.TypeMeta
+ in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
+ in.Spec.DeepCopyInto(&out.Spec)
+ in.Status.DeepCopyInto(&out.Status)
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyExtensionPolicy.
+func (in *EnvoyExtensionPolicy) DeepCopy() *EnvoyExtensionPolicy {
+ if in == nil {
+ return nil
+ }
+ out := new(EnvoyExtensionPolicy)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
+func (in *EnvoyExtensionPolicy) DeepCopyObject() runtime.Object {
+ if c := in.DeepCopy(); c != nil {
+ return c
+ }
+ return nil
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *EnvoyExtensionPolicyList) DeepCopyInto(out *EnvoyExtensionPolicyList) {
+ *out = *in
+ out.TypeMeta = in.TypeMeta
+ in.ListMeta.DeepCopyInto(&out.ListMeta)
+ if in.Items != nil {
+ in, out := &in.Items, &out.Items
+ *out = make([]EnvoyExtensionPolicy, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyExtensionPolicyList.
+func (in *EnvoyExtensionPolicyList) DeepCopy() *EnvoyExtensionPolicyList {
+ if in == nil {
+ return nil
+ }
+ out := new(EnvoyExtensionPolicyList)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
+func (in *EnvoyExtensionPolicyList) DeepCopyObject() runtime.Object {
+ if c := in.DeepCopy(); c != nil {
+ return c
+ }
+ return nil
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *EnvoyExtensionPolicySpec) DeepCopyInto(out *EnvoyExtensionPolicySpec) {
+ *out = *in
+ in.PolicyTargetReferences.DeepCopyInto(&out.PolicyTargetReferences)
+ if in.Wasm != nil {
+ in, out := &in.Wasm, &out.Wasm
+ *out = make([]Wasm, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ if in.ExtProc != nil {
+ in, out := &in.ExtProc, &out.ExtProc
+ *out = make([]ExtProc, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ if in.Lua != nil {
+ in, out := &in.Lua, &out.Lua
+ *out = make([]Lua, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyExtensionPolicySpec.
+func (in *EnvoyExtensionPolicySpec) DeepCopy() *EnvoyExtensionPolicySpec {
+ if in == nil {
+ return nil
+ }
+ out := new(EnvoyExtensionPolicySpec)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *EnvoyGateway) DeepCopyInto(out *EnvoyGateway) {
+ *out = *in
+ out.TypeMeta = in.TypeMeta
+ in.EnvoyGatewaySpec.DeepCopyInto(&out.EnvoyGatewaySpec)
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyGateway.
+func (in *EnvoyGateway) DeepCopy() *EnvoyGateway {
+ if in == nil {
+ return nil
+ }
+ out := new(EnvoyGateway)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
+func (in *EnvoyGateway) DeepCopyObject() runtime.Object {
+ if c := in.DeepCopy(); c != nil {
+ return c
+ }
+ return nil
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *EnvoyGatewayAdmin) DeepCopyInto(out *EnvoyGatewayAdmin) {
+ *out = *in
+ if in.Address != nil {
+ in, out := &in.Address, &out.Address
+ *out = new(EnvoyGatewayAdminAddress)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyGatewayAdmin.
+func (in *EnvoyGatewayAdmin) DeepCopy() *EnvoyGatewayAdmin {
+ if in == nil {
+ return nil
+ }
+ out := new(EnvoyGatewayAdmin)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *EnvoyGatewayAdminAddress) DeepCopyInto(out *EnvoyGatewayAdminAddress) {
+ *out = *in
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyGatewayAdminAddress.
+func (in *EnvoyGatewayAdminAddress) DeepCopy() *EnvoyGatewayAdminAddress {
+ if in == nil {
+ return nil
+ }
+ out := new(EnvoyGatewayAdminAddress)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *EnvoyGatewayCustomProvider) DeepCopyInto(out *EnvoyGatewayCustomProvider) {
+ *out = *in
+ in.Resource.DeepCopyInto(&out.Resource)
+ if in.Infrastructure != nil {
+ in, out := &in.Infrastructure, &out.Infrastructure
+ *out = new(EnvoyGatewayInfrastructureProvider)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyGatewayCustomProvider.
+func (in *EnvoyGatewayCustomProvider) DeepCopy() *EnvoyGatewayCustomProvider {
+ if in == nil {
+ return nil
+ }
+ out := new(EnvoyGatewayCustomProvider)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *EnvoyGatewayFileResourceProvider) DeepCopyInto(out *EnvoyGatewayFileResourceProvider) {
+ *out = *in
+ if in.Paths != nil {
+ in, out := &in.Paths, &out.Paths
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyGatewayFileResourceProvider.
+func (in *EnvoyGatewayFileResourceProvider) DeepCopy() *EnvoyGatewayFileResourceProvider {
+ if in == nil {
+ return nil
+ }
+ out := new(EnvoyGatewayFileResourceProvider)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *EnvoyGatewayHostInfrastructureProvider) DeepCopyInto(out *EnvoyGatewayHostInfrastructureProvider) {
+ *out = *in
+ if in.ConfigHome != nil {
+ in, out := &in.ConfigHome, &out.ConfigHome
+ *out = new(string)
+ **out = **in
+ }
+ if in.DataHome != nil {
+ in, out := &in.DataHome, &out.DataHome
+ *out = new(string)
+ **out = **in
+ }
+ if in.StateHome != nil {
+ in, out := &in.StateHome, &out.StateHome
+ *out = new(string)
+ **out = **in
+ }
+ if in.RuntimeDir != nil {
+ in, out := &in.RuntimeDir, &out.RuntimeDir
+ *out = new(string)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyGatewayHostInfrastructureProvider.
+func (in *EnvoyGatewayHostInfrastructureProvider) DeepCopy() *EnvoyGatewayHostInfrastructureProvider {
+ if in == nil {
+ return nil
+ }
+ out := new(EnvoyGatewayHostInfrastructureProvider)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *EnvoyGatewayInfrastructureProvider) DeepCopyInto(out *EnvoyGatewayInfrastructureProvider) {
+ *out = *in
+ if in.Host != nil {
+ in, out := &in.Host, &out.Host
+ *out = new(EnvoyGatewayHostInfrastructureProvider)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyGatewayInfrastructureProvider.
+func (in *EnvoyGatewayInfrastructureProvider) DeepCopy() *EnvoyGatewayInfrastructureProvider {
+ if in == nil {
+ return nil
+ }
+ out := new(EnvoyGatewayInfrastructureProvider)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *EnvoyGatewayKubernetesProvider) DeepCopyInto(out *EnvoyGatewayKubernetesProvider) {
+ *out = *in
+ if in.RateLimitDeployment != nil {
+ in, out := &in.RateLimitDeployment, &out.RateLimitDeployment
+ *out = new(KubernetesDeploymentSpec)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.RateLimitHpa != nil {
+ in, out := &in.RateLimitHpa, &out.RateLimitHpa
+ *out = new(KubernetesHorizontalPodAutoscalerSpec)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.RateLimitPDB != nil {
+ in, out := &in.RateLimitPDB, &out.RateLimitPDB
+ *out = new(KubernetesPodDisruptionBudgetSpec)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Watch != nil {
+ in, out := &in.Watch, &out.Watch
+ *out = new(KubernetesWatchMode)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Deploy != nil {
+ in, out := &in.Deploy, &out.Deploy
+ *out = new(KubernetesDeployMode)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.LeaderElection != nil {
+ in, out := &in.LeaderElection, &out.LeaderElection
+ *out = new(LeaderElection)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.ShutdownManager != nil {
+ in, out := &in.ShutdownManager, &out.ShutdownManager
+ *out = new(ShutdownManager)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Client != nil {
+ in, out := &in.Client, &out.Client
+ *out = new(KubernetesClient)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.TopologyInjector != nil {
+ in, out := &in.TopologyInjector, &out.TopologyInjector
+ *out = new(EnvoyGatewayTopologyInjector)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.CacheSyncPeriod != nil {
+ in, out := &in.CacheSyncPeriod, &out.CacheSyncPeriod
+ *out = new(v1.Duration)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyGatewayKubernetesProvider.
+func (in *EnvoyGatewayKubernetesProvider) DeepCopy() *EnvoyGatewayKubernetesProvider {
+ if in == nil {
+ return nil
+ }
+ out := new(EnvoyGatewayKubernetesProvider)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *EnvoyGatewayLogging) DeepCopyInto(out *EnvoyGatewayLogging) {
+ *out = *in
+ if in.Level != nil {
+ in, out := &in.Level, &out.Level
+ *out = make(map[EnvoyGatewayLogComponent]LogLevel, len(*in))
+ for key, val := range *in {
+ (*out)[key] = val
+ }
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyGatewayLogging.
+func (in *EnvoyGatewayLogging) DeepCopy() *EnvoyGatewayLogging {
+ if in == nil {
+ return nil
+ }
+ out := new(EnvoyGatewayLogging)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *EnvoyGatewayMetricSink) DeepCopyInto(out *EnvoyGatewayMetricSink) {
+ *out = *in
+ if in.OpenTelemetry != nil {
+ in, out := &in.OpenTelemetry, &out.OpenTelemetry
+ *out = new(EnvoyGatewayOpenTelemetrySink)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyGatewayMetricSink.
+func (in *EnvoyGatewayMetricSink) DeepCopy() *EnvoyGatewayMetricSink {
+ if in == nil {
+ return nil
+ }
+ out := new(EnvoyGatewayMetricSink)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *EnvoyGatewayMetrics) DeepCopyInto(out *EnvoyGatewayMetrics) {
+ *out = *in
+ if in.Sinks != nil {
+ in, out := &in.Sinks, &out.Sinks
+ *out = make([]EnvoyGatewayMetricSink, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ if in.Prometheus != nil {
+ in, out := &in.Prometheus, &out.Prometheus
+ *out = new(EnvoyGatewayPrometheusProvider)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyGatewayMetrics.
+func (in *EnvoyGatewayMetrics) DeepCopy() *EnvoyGatewayMetrics {
+ if in == nil {
+ return nil
+ }
+ out := new(EnvoyGatewayMetrics)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *EnvoyGatewayOpenTelemetrySink) DeepCopyInto(out *EnvoyGatewayOpenTelemetrySink) {
+ *out = *in
+ if in.ExportInterval != nil {
+ in, out := &in.ExportInterval, &out.ExportInterval
+ *out = new(v1.Duration)
+ **out = **in
+ }
+ if in.ExportTimeout != nil {
+ in, out := &in.ExportTimeout, &out.ExportTimeout
+ *out = new(v1.Duration)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyGatewayOpenTelemetrySink.
+func (in *EnvoyGatewayOpenTelemetrySink) DeepCopy() *EnvoyGatewayOpenTelemetrySink {
+ if in == nil {
+ return nil
+ }
+ out := new(EnvoyGatewayOpenTelemetrySink)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *EnvoyGatewayPrometheusProvider) DeepCopyInto(out *EnvoyGatewayPrometheusProvider) {
+ *out = *in
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyGatewayPrometheusProvider.
+func (in *EnvoyGatewayPrometheusProvider) DeepCopy() *EnvoyGatewayPrometheusProvider {
+ if in == nil {
+ return nil
+ }
+ out := new(EnvoyGatewayPrometheusProvider)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *EnvoyGatewayProvider) DeepCopyInto(out *EnvoyGatewayProvider) {
+ *out = *in
+ if in.Kubernetes != nil {
+ in, out := &in.Kubernetes, &out.Kubernetes
+ *out = new(EnvoyGatewayKubernetesProvider)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Custom != nil {
+ in, out := &in.Custom, &out.Custom
+ *out = new(EnvoyGatewayCustomProvider)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyGatewayProvider.
+func (in *EnvoyGatewayProvider) DeepCopy() *EnvoyGatewayProvider {
+ if in == nil {
+ return nil
+ }
+ out := new(EnvoyGatewayProvider)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *EnvoyGatewayResourceProvider) DeepCopyInto(out *EnvoyGatewayResourceProvider) {
+ *out = *in
+ if in.File != nil {
+ in, out := &in.File, &out.File
+ *out = new(EnvoyGatewayFileResourceProvider)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyGatewayResourceProvider.
+func (in *EnvoyGatewayResourceProvider) DeepCopy() *EnvoyGatewayResourceProvider {
+ if in == nil {
+ return nil
+ }
+ out := new(EnvoyGatewayResourceProvider)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *EnvoyGatewaySpec) DeepCopyInto(out *EnvoyGatewaySpec) {
+ *out = *in
+ if in.Gateway != nil {
+ in, out := &in.Gateway, &out.Gateway
+ *out = new(Gateway)
+ **out = **in
+ }
+ if in.Provider != nil {
+ in, out := &in.Provider, &out.Provider
+ *out = new(EnvoyGatewayProvider)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Logging != nil {
+ in, out := &in.Logging, &out.Logging
+ *out = new(EnvoyGatewayLogging)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Admin != nil {
+ in, out := &in.Admin, &out.Admin
+ *out = new(EnvoyGatewayAdmin)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Telemetry != nil {
+ in, out := &in.Telemetry, &out.Telemetry
+ *out = new(EnvoyGatewayTelemetry)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.XDSServer != nil {
+ in, out := &in.XDSServer, &out.XDSServer
+ *out = new(XDSServer)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.RateLimit != nil {
+ in, out := &in.RateLimit, &out.RateLimit
+ *out = new(RateLimit)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.ExtensionManager != nil {
+ in, out := &in.ExtensionManager, &out.ExtensionManager
+ *out = new(ExtensionManager)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.ExtensionAPIs != nil {
+ in, out := &in.ExtensionAPIs, &out.ExtensionAPIs
+ *out = new(ExtensionAPISettings)
+ **out = **in
+ }
+ if in.RuntimeFlags != nil {
+ in, out := &in.RuntimeFlags, &out.RuntimeFlags
+ *out = new(RuntimeFlags)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyGatewaySpec.
+func (in *EnvoyGatewaySpec) DeepCopy() *EnvoyGatewaySpec {
+ if in == nil {
+ return nil
+ }
+ out := new(EnvoyGatewaySpec)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *EnvoyGatewayTelemetry) DeepCopyInto(out *EnvoyGatewayTelemetry) {
+ *out = *in
+ if in.Metrics != nil {
+ in, out := &in.Metrics, &out.Metrics
+ *out = new(EnvoyGatewayMetrics)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyGatewayTelemetry.
+func (in *EnvoyGatewayTelemetry) DeepCopy() *EnvoyGatewayTelemetry {
+ if in == nil {
+ return nil
+ }
+ out := new(EnvoyGatewayTelemetry)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *EnvoyGatewayTopologyInjector) DeepCopyInto(out *EnvoyGatewayTopologyInjector) {
+ *out = *in
+ if in.Disable != nil {
+ in, out := &in.Disable, &out.Disable
+ *out = new(bool)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyGatewayTopologyInjector.
+func (in *EnvoyGatewayTopologyInjector) DeepCopy() *EnvoyGatewayTopologyInjector {
+ if in == nil {
+ return nil
+ }
+ out := new(EnvoyGatewayTopologyInjector)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *EnvoyJSONPatchConfig) DeepCopyInto(out *EnvoyJSONPatchConfig) {
+ *out = *in
+ in.Operation.DeepCopyInto(&out.Operation)
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyJSONPatchConfig.
+func (in *EnvoyJSONPatchConfig) DeepCopy() *EnvoyJSONPatchConfig {
+ if in == nil {
+ return nil
+ }
+ out := new(EnvoyJSONPatchConfig)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *EnvoyPatchPolicy) DeepCopyInto(out *EnvoyPatchPolicy) {
+ *out = *in
+ out.TypeMeta = in.TypeMeta
+ in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
+ in.Spec.DeepCopyInto(&out.Spec)
+ in.Status.DeepCopyInto(&out.Status)
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyPatchPolicy.
+func (in *EnvoyPatchPolicy) DeepCopy() *EnvoyPatchPolicy {
+ if in == nil {
+ return nil
+ }
+ out := new(EnvoyPatchPolicy)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
+func (in *EnvoyPatchPolicy) DeepCopyObject() runtime.Object {
+ if c := in.DeepCopy(); c != nil {
+ return c
+ }
+ return nil
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *EnvoyPatchPolicyList) DeepCopyInto(out *EnvoyPatchPolicyList) {
+ *out = *in
+ out.TypeMeta = in.TypeMeta
+ in.ListMeta.DeepCopyInto(&out.ListMeta)
+ if in.Items != nil {
+ in, out := &in.Items, &out.Items
+ *out = make([]EnvoyPatchPolicy, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyPatchPolicyList.
+func (in *EnvoyPatchPolicyList) DeepCopy() *EnvoyPatchPolicyList {
+ if in == nil {
+ return nil
+ }
+ out := new(EnvoyPatchPolicyList)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
+func (in *EnvoyPatchPolicyList) DeepCopyObject() runtime.Object {
+ if c := in.DeepCopy(); c != nil {
+ return c
+ }
+ return nil
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *EnvoyPatchPolicySpec) DeepCopyInto(out *EnvoyPatchPolicySpec) {
+ *out = *in
+ if in.JSONPatches != nil {
+ in, out := &in.JSONPatches, &out.JSONPatches
+ *out = make([]EnvoyJSONPatchConfig, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ out.TargetRef = in.TargetRef
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyPatchPolicySpec.
+func (in *EnvoyPatchPolicySpec) DeepCopy() *EnvoyPatchPolicySpec {
+ if in == nil {
+ return nil
+ }
+ out := new(EnvoyPatchPolicySpec)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *EnvoyProxy) DeepCopyInto(out *EnvoyProxy) {
+ *out = *in
+ out.TypeMeta = in.TypeMeta
+ in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
+ in.Spec.DeepCopyInto(&out.Spec)
+ out.Status = in.Status
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyProxy.
+func (in *EnvoyProxy) DeepCopy() *EnvoyProxy {
+ if in == nil {
+ return nil
+ }
+ out := new(EnvoyProxy)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
+func (in *EnvoyProxy) DeepCopyObject() runtime.Object {
+ if c := in.DeepCopy(); c != nil {
+ return c
+ }
+ return nil
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *EnvoyProxyHostProvider) DeepCopyInto(out *EnvoyProxyHostProvider) {
+ *out = *in
+ if in.EnvoyVersion != nil {
+ in, out := &in.EnvoyVersion, &out.EnvoyVersion
+ *out = new(string)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyProxyHostProvider.
+func (in *EnvoyProxyHostProvider) DeepCopy() *EnvoyProxyHostProvider {
+ if in == nil {
+ return nil
+ }
+ out := new(EnvoyProxyHostProvider)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *EnvoyProxyKubernetesProvider) DeepCopyInto(out *EnvoyProxyKubernetesProvider) {
+ *out = *in
+ if in.EnvoyDeployment != nil {
+ in, out := &in.EnvoyDeployment, &out.EnvoyDeployment
+ *out = new(KubernetesDeploymentSpec)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.EnvoyDaemonSet != nil {
+ in, out := &in.EnvoyDaemonSet, &out.EnvoyDaemonSet
+ *out = new(KubernetesDaemonSetSpec)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.EnvoyService != nil {
+ in, out := &in.EnvoyService, &out.EnvoyService
+ *out = new(KubernetesServiceSpec)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.EnvoyHpa != nil {
+ in, out := &in.EnvoyHpa, &out.EnvoyHpa
+ *out = new(KubernetesHorizontalPodAutoscalerSpec)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.UseListenerPortAsContainerPort != nil {
+ in, out := &in.UseListenerPortAsContainerPort, &out.UseListenerPortAsContainerPort
+ *out = new(bool)
+ **out = **in
+ }
+ if in.EnvoyPDB != nil {
+ in, out := &in.EnvoyPDB, &out.EnvoyPDB
+ *out = new(KubernetesPodDisruptionBudgetSpec)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.EnvoyServiceAccount != nil {
+ in, out := &in.EnvoyServiceAccount, &out.EnvoyServiceAccount
+ *out = new(KubernetesServiceAccountSpec)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyProxyKubernetesProvider.
+func (in *EnvoyProxyKubernetesProvider) DeepCopy() *EnvoyProxyKubernetesProvider {
+ if in == nil {
+ return nil
+ }
+ out := new(EnvoyProxyKubernetesProvider)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *EnvoyProxyList) DeepCopyInto(out *EnvoyProxyList) {
+ *out = *in
+ out.TypeMeta = in.TypeMeta
+ in.ListMeta.DeepCopyInto(&out.ListMeta)
+ if in.Items != nil {
+ in, out := &in.Items, &out.Items
+ *out = make([]EnvoyProxy, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyProxyList.
+func (in *EnvoyProxyList) DeepCopy() *EnvoyProxyList {
+ if in == nil {
+ return nil
+ }
+ out := new(EnvoyProxyList)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
+func (in *EnvoyProxyList) DeepCopyObject() runtime.Object {
+ if c := in.DeepCopy(); c != nil {
+ return c
+ }
+ return nil
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *EnvoyProxyProvider) DeepCopyInto(out *EnvoyProxyProvider) {
+ *out = *in
+ if in.Kubernetes != nil {
+ in, out := &in.Kubernetes, &out.Kubernetes
+ *out = new(EnvoyProxyKubernetesProvider)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Host != nil {
+ in, out := &in.Host, &out.Host
+ *out = new(EnvoyProxyHostProvider)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyProxyProvider.
+func (in *EnvoyProxyProvider) DeepCopy() *EnvoyProxyProvider {
+ if in == nil {
+ return nil
+ }
+ out := new(EnvoyProxyProvider)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *EnvoyProxySpec) DeepCopyInto(out *EnvoyProxySpec) {
+ *out = *in
+ if in.Provider != nil {
+ in, out := &in.Provider, &out.Provider
+ *out = new(EnvoyProxyProvider)
+ (*in).DeepCopyInto(*out)
+ }
+ in.Logging.DeepCopyInto(&out.Logging)
+ if in.Telemetry != nil {
+ in, out := &in.Telemetry, &out.Telemetry
+ *out = new(ProxyTelemetry)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Bootstrap != nil {
+ in, out := &in.Bootstrap, &out.Bootstrap
+ *out = new(ProxyBootstrap)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Concurrency != nil {
+ in, out := &in.Concurrency, &out.Concurrency
+ *out = new(int32)
+ **out = **in
+ }
+ if in.RoutingType != nil {
+ in, out := &in.RoutingType, &out.RoutingType
+ *out = new(RoutingType)
+ **out = **in
+ }
+ if in.ExtraArgs != nil {
+ in, out := &in.ExtraArgs, &out.ExtraArgs
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ if in.MergeGateways != nil {
+ in, out := &in.MergeGateways, &out.MergeGateways
+ *out = new(bool)
+ **out = **in
+ }
+ if in.Shutdown != nil {
+ in, out := &in.Shutdown, &out.Shutdown
+ *out = new(ShutdownConfig)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.FilterOrder != nil {
+ in, out := &in.FilterOrder, &out.FilterOrder
+ *out = make([]FilterPosition, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ if in.BackendTLS != nil {
+ in, out := &in.BackendTLS, &out.BackendTLS
+ *out = new(BackendTLSConfig)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.IPFamily != nil {
+ in, out := &in.IPFamily, &out.IPFamily
+ *out = new(IPFamily)
+ **out = **in
+ }
+ if in.PreserveRouteOrder != nil {
+ in, out := &in.PreserveRouteOrder, &out.PreserveRouteOrder
+ *out = new(bool)
+ **out = **in
+ }
+ if in.LuaValidation != nil {
+ in, out := &in.LuaValidation, &out.LuaValidation
+ *out = new(LuaValidation)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyProxySpec.
+func (in *EnvoyProxySpec) DeepCopy() *EnvoyProxySpec {
+ if in == nil {
+ return nil
+ }
+ out := new(EnvoyProxySpec)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *EnvoyProxyStatus) DeepCopyInto(out *EnvoyProxyStatus) {
+ *out = *in
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyProxyStatus.
+func (in *EnvoyProxyStatus) DeepCopy() *EnvoyProxyStatus {
+ if in == nil {
+ return nil
+ }
+ out := new(EnvoyProxyStatus)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ExtAuth) DeepCopyInto(out *ExtAuth) {
+ *out = *in
+ if in.GRPC != nil {
+ in, out := &in.GRPC, &out.GRPC
+ *out = new(GRPCExtAuthService)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.HTTP != nil {
+ in, out := &in.HTTP, &out.HTTP
+ *out = new(HTTPExtAuthService)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.HeadersToExtAuth != nil {
+ in, out := &in.HeadersToExtAuth, &out.HeadersToExtAuth
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ if in.BodyToExtAuth != nil {
+ in, out := &in.BodyToExtAuth, &out.BodyToExtAuth
+ *out = new(BodyToExtAuth)
+ **out = **in
+ }
+ if in.Timeout != nil {
+ in, out := &in.Timeout, &out.Timeout
+ *out = new(v1.Duration)
+ **out = **in
+ }
+ if in.FailOpen != nil {
+ in, out := &in.FailOpen, &out.FailOpen
+ *out = new(bool)
+ **out = **in
+ }
+ if in.RecomputeRoute != nil {
+ in, out := &in.RecomputeRoute, &out.RecomputeRoute
+ *out = new(bool)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtAuth.
+func (in *ExtAuth) DeepCopy() *ExtAuth {
+ if in == nil {
+ return nil
+ }
+ out := new(ExtAuth)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ExtProc) DeepCopyInto(out *ExtProc) {
+ *out = *in
+ in.BackendCluster.DeepCopyInto(&out.BackendCluster)
+ if in.MessageTimeout != nil {
+ in, out := &in.MessageTimeout, &out.MessageTimeout
+ *out = new(v1.Duration)
+ **out = **in
+ }
+ if in.FailOpen != nil {
+ in, out := &in.FailOpen, &out.FailOpen
+ *out = new(bool)
+ **out = **in
+ }
+ if in.ProcessingMode != nil {
+ in, out := &in.ProcessingMode, &out.ProcessingMode
+ *out = new(ExtProcProcessingMode)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Metadata != nil {
+ in, out := &in.Metadata, &out.Metadata
+ *out = new(ExtProcMetadata)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtProc.
+func (in *ExtProc) DeepCopy() *ExtProc {
+ if in == nil {
+ return nil
+ }
+ out := new(ExtProc)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ExtProcMetadata) DeepCopyInto(out *ExtProcMetadata) {
+ *out = *in
+ if in.AccessibleNamespaces != nil {
+ in, out := &in.AccessibleNamespaces, &out.AccessibleNamespaces
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ if in.WritableNamespaces != nil {
+ in, out := &in.WritableNamespaces, &out.WritableNamespaces
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtProcMetadata.
+func (in *ExtProcMetadata) DeepCopy() *ExtProcMetadata {
+ if in == nil {
+ return nil
+ }
+ out := new(ExtProcMetadata)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ExtProcProcessingMode) DeepCopyInto(out *ExtProcProcessingMode) {
+ *out = *in
+ if in.Request != nil {
+ in, out := &in.Request, &out.Request
+ *out = new(ProcessingModeOptions)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Response != nil {
+ in, out := &in.Response, &out.Response
+ *out = new(ProcessingModeOptions)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtProcProcessingMode.
+func (in *ExtProcProcessingMode) DeepCopy() *ExtProcProcessingMode {
+ if in == nil {
+ return nil
+ }
+ out := new(ExtProcProcessingMode)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ExtensionAPISettings) DeepCopyInto(out *ExtensionAPISettings) {
+ *out = *in
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtensionAPISettings.
+func (in *ExtensionAPISettings) DeepCopy() *ExtensionAPISettings {
+ if in == nil {
+ return nil
+ }
+ out := new(ExtensionAPISettings)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ExtensionHooks) DeepCopyInto(out *ExtensionHooks) {
+ *out = *in
+ if in.XDSTranslator != nil {
+ in, out := &in.XDSTranslator, &out.XDSTranslator
+ *out = new(XDSTranslatorHooks)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtensionHooks.
+func (in *ExtensionHooks) DeepCopy() *ExtensionHooks {
+ if in == nil {
+ return nil
+ }
+ out := new(ExtensionHooks)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ExtensionManager) DeepCopyInto(out *ExtensionManager) {
+ *out = *in
+ if in.Resources != nil {
+ in, out := &in.Resources, &out.Resources
+ *out = make([]GroupVersionKind, len(*in))
+ copy(*out, *in)
+ }
+ if in.PolicyResources != nil {
+ in, out := &in.PolicyResources, &out.PolicyResources
+ *out = make([]GroupVersionKind, len(*in))
+ copy(*out, *in)
+ }
+ if in.BackendResources != nil {
+ in, out := &in.BackendResources, &out.BackendResources
+ *out = make([]GroupVersionKind, len(*in))
+ copy(*out, *in)
+ }
+ if in.Hooks != nil {
+ in, out := &in.Hooks, &out.Hooks
+ *out = new(ExtensionHooks)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Service != nil {
+ in, out := &in.Service, &out.Service
+ *out = new(ExtensionService)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.MaxMessageSize != nil {
+ in, out := &in.MaxMessageSize, &out.MaxMessageSize
+ x := (*in).DeepCopy()
+ *out = &x
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtensionManager.
+func (in *ExtensionManager) DeepCopy() *ExtensionManager {
+ if in == nil {
+ return nil
+ }
+ out := new(ExtensionManager)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ExtensionService) DeepCopyInto(out *ExtensionService) {
+ *out = *in
+ in.BackendEndpoint.DeepCopyInto(&out.BackendEndpoint)
+ if in.TLS != nil {
+ in, out := &in.TLS, &out.TLS
+ *out = new(ExtensionTLS)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Retry != nil {
+ in, out := &in.Retry, &out.Retry
+ *out = new(ExtensionServiceRetry)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtensionService.
+func (in *ExtensionService) DeepCopy() *ExtensionService {
+ if in == nil {
+ return nil
+ }
+ out := new(ExtensionService)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ExtensionServiceRetry) DeepCopyInto(out *ExtensionServiceRetry) {
+ *out = *in
+ if in.MaxAttempts != nil {
+ in, out := &in.MaxAttempts, &out.MaxAttempts
+ *out = new(int)
+ **out = **in
+ }
+ if in.InitialBackoff != nil {
+ in, out := &in.InitialBackoff, &out.InitialBackoff
+ *out = new(v1.Duration)
+ **out = **in
+ }
+ if in.MaxBackoff != nil {
+ in, out := &in.MaxBackoff, &out.MaxBackoff
+ *out = new(v1.Duration)
+ **out = **in
+ }
+ if in.BackoffMultiplier != nil {
+ in, out := &in.BackoffMultiplier, &out.BackoffMultiplier
+ *out = new(v1.Fraction)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.RetryableStatusCodes != nil {
+ in, out := &in.RetryableStatusCodes, &out.RetryableStatusCodes
+ *out = make([]RetryableGRPCStatusCode, len(*in))
+ copy(*out, *in)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtensionServiceRetry.
+func (in *ExtensionServiceRetry) DeepCopy() *ExtensionServiceRetry {
+ if in == nil {
+ return nil
+ }
+ out := new(ExtensionServiceRetry)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ExtensionTLS) DeepCopyInto(out *ExtensionTLS) {
+ *out = *in
+ in.CertificateRef.DeepCopyInto(&out.CertificateRef)
+ if in.ClientCertificateRef != nil {
+ in, out := &in.ClientCertificateRef, &out.ClientCertificateRef
+ *out = new(v1.SecretObjectReference)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtensionTLS.
+func (in *ExtensionTLS) DeepCopy() *ExtensionTLS {
+ if in == nil {
+ return nil
+ }
+ out := new(ExtensionTLS)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ExtractFrom) DeepCopyInto(out *ExtractFrom) {
+ *out = *in
+ if in.Headers != nil {
+ in, out := &in.Headers, &out.Headers
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ if in.Params != nil {
+ in, out := &in.Params, &out.Params
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ if in.Cookies != nil {
+ in, out := &in.Cookies, &out.Cookies
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtractFrom.
+func (in *ExtractFrom) DeepCopy() *ExtractFrom {
+ if in == nil {
+ return nil
+ }
+ out := new(ExtractFrom)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *FQDNEndpoint) DeepCopyInto(out *FQDNEndpoint) {
+ *out = *in
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FQDNEndpoint.
+func (in *FQDNEndpoint) DeepCopy() *FQDNEndpoint {
+ if in == nil {
+ return nil
+ }
+ out := new(FQDNEndpoint)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *FaultInjection) DeepCopyInto(out *FaultInjection) {
+ *out = *in
+ if in.Delay != nil {
+ in, out := &in.Delay, &out.Delay
+ *out = new(FaultInjectionDelay)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Abort != nil {
+ in, out := &in.Abort, &out.Abort
+ *out = new(FaultInjectionAbort)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FaultInjection.
+func (in *FaultInjection) DeepCopy() *FaultInjection {
+ if in == nil {
+ return nil
+ }
+ out := new(FaultInjection)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *FaultInjectionAbort) DeepCopyInto(out *FaultInjectionAbort) {
+ *out = *in
+ if in.HTTPStatus != nil {
+ in, out := &in.HTTPStatus, &out.HTTPStatus
+ *out = new(int32)
+ **out = **in
+ }
+ if in.GrpcStatus != nil {
+ in, out := &in.GrpcStatus, &out.GrpcStatus
+ *out = new(int32)
+ **out = **in
+ }
+ if in.Percentage != nil {
+ in, out := &in.Percentage, &out.Percentage
+ *out = new(float32)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FaultInjectionAbort.
+func (in *FaultInjectionAbort) DeepCopy() *FaultInjectionAbort {
+ if in == nil {
+ return nil
+ }
+ out := new(FaultInjectionAbort)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *FaultInjectionDelay) DeepCopyInto(out *FaultInjectionDelay) {
+ *out = *in
+ if in.FixedDelay != nil {
+ in, out := &in.FixedDelay, &out.FixedDelay
+ *out = new(v1.Duration)
+ **out = **in
+ }
+ if in.Percentage != nil {
+ in, out := &in.Percentage, &out.Percentage
+ *out = new(float32)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FaultInjectionDelay.
+func (in *FaultInjectionDelay) DeepCopy() *FaultInjectionDelay {
+ if in == nil {
+ return nil
+ }
+ out := new(FaultInjectionDelay)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *FileEnvoyProxyAccessLog) DeepCopyInto(out *FileEnvoyProxyAccessLog) {
+ *out = *in
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FileEnvoyProxyAccessLog.
+func (in *FileEnvoyProxyAccessLog) DeepCopy() *FileEnvoyProxyAccessLog {
+ if in == nil {
+ return nil
+ }
+ out := new(FileEnvoyProxyAccessLog)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *FilterPosition) DeepCopyInto(out *FilterPosition) {
+ *out = *in
+ if in.Before != nil {
+ in, out := &in.Before, &out.Before
+ *out = new(EnvoyFilter)
+ **out = **in
+ }
+ if in.After != nil {
+ in, out := &in.After, &out.After
+ *out = new(EnvoyFilter)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FilterPosition.
+func (in *FilterPosition) DeepCopy() *FilterPosition {
+ if in == nil {
+ return nil
+ }
+ out := new(FilterPosition)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ForceLocalZone) DeepCopyInto(out *ForceLocalZone) {
+ *out = *in
+ if in.MinEndpointsInZoneThreshold != nil {
+ in, out := &in.MinEndpointsInZoneThreshold, &out.MinEndpointsInZoneThreshold
+ *out = new(uint32)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ForceLocalZone.
+func (in *ForceLocalZone) DeepCopy() *ForceLocalZone {
+ if in == nil {
+ return nil
+ }
+ out := new(ForceLocalZone)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *GRPCActiveHealthChecker) DeepCopyInto(out *GRPCActiveHealthChecker) {
+ *out = *in
+ if in.Service != nil {
+ in, out := &in.Service, &out.Service
+ *out = new(string)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GRPCActiveHealthChecker.
+func (in *GRPCActiveHealthChecker) DeepCopy() *GRPCActiveHealthChecker {
+ if in == nil {
+ return nil
+ }
+ out := new(GRPCActiveHealthChecker)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *GRPCExtAuthService) DeepCopyInto(out *GRPCExtAuthService) {
+ *out = *in
+ in.BackendCluster.DeepCopyInto(&out.BackendCluster)
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GRPCExtAuthService.
+func (in *GRPCExtAuthService) DeepCopy() *GRPCExtAuthService {
+ if in == nil {
+ return nil
+ }
+ out := new(GRPCExtAuthService)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *Gateway) DeepCopyInto(out *Gateway) {
+ *out = *in
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Gateway.
+func (in *Gateway) DeepCopy() *Gateway {
+ if in == nil {
+ return nil
+ }
+ out := new(Gateway)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *GlobalRateLimit) DeepCopyInto(out *GlobalRateLimit) {
+ *out = *in
+ if in.Rules != nil {
+ in, out := &in.Rules, &out.Rules
+ *out = make([]RateLimitRule, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GlobalRateLimit.
+func (in *GlobalRateLimit) DeepCopy() *GlobalRateLimit {
+ if in == nil {
+ return nil
+ }
+ out := new(GlobalRateLimit)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *GroupVersionKind) DeepCopyInto(out *GroupVersionKind) {
+ *out = *in
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupVersionKind.
+func (in *GroupVersionKind) DeepCopy() *GroupVersionKind {
+ if in == nil {
+ return nil
+ }
+ out := new(GroupVersionKind)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *GzipCompressor) DeepCopyInto(out *GzipCompressor) {
+ *out = *in
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GzipCompressor.
+func (in *GzipCompressor) DeepCopy() *GzipCompressor {
+ if in == nil {
+ return nil
+ }
+ out := new(GzipCompressor)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *HTTP10Settings) DeepCopyInto(out *HTTP10Settings) {
+ *out = *in
+ if in.UseDefaultHost != nil {
+ in, out := &in.UseDefaultHost, &out.UseDefaultHost
+ *out = new(bool)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTP10Settings.
+func (in *HTTP10Settings) DeepCopy() *HTTP10Settings {
+ if in == nil {
+ return nil
+ }
+ out := new(HTTP10Settings)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *HTTP1Settings) DeepCopyInto(out *HTTP1Settings) {
+ *out = *in
+ if in.EnableTrailers != nil {
+ in, out := &in.EnableTrailers, &out.EnableTrailers
+ *out = new(bool)
+ **out = **in
+ }
+ if in.PreserveHeaderCase != nil {
+ in, out := &in.PreserveHeaderCase, &out.PreserveHeaderCase
+ *out = new(bool)
+ **out = **in
+ }
+ if in.HTTP10 != nil {
+ in, out := &in.HTTP10, &out.HTTP10
+ *out = new(HTTP10Settings)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.DisableSafeMaxConnectionDuration != nil {
+ in, out := &in.DisableSafeMaxConnectionDuration, &out.DisableSafeMaxConnectionDuration
+ *out = new(bool)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTP1Settings.
+func (in *HTTP1Settings) DeepCopy() *HTTP1Settings {
+ if in == nil {
+ return nil
+ }
+ out := new(HTTP1Settings)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *HTTP2Settings) DeepCopyInto(out *HTTP2Settings) {
+ *out = *in
+ if in.InitialStreamWindowSize != nil {
+ in, out := &in.InitialStreamWindowSize, &out.InitialStreamWindowSize
+ x := (*in).DeepCopy()
+ *out = &x
+ }
+ if in.InitialConnectionWindowSize != nil {
+ in, out := &in.InitialConnectionWindowSize, &out.InitialConnectionWindowSize
+ x := (*in).DeepCopy()
+ *out = &x
+ }
+ if in.MaxConcurrentStreams != nil {
+ in, out := &in.MaxConcurrentStreams, &out.MaxConcurrentStreams
+ *out = new(uint32)
+ **out = **in
+ }
+ if in.OnInvalidMessage != nil {
+ in, out := &in.OnInvalidMessage, &out.OnInvalidMessage
+ *out = new(InvalidMessageAction)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTP2Settings.
+func (in *HTTP2Settings) DeepCopy() *HTTP2Settings {
+ if in == nil {
+ return nil
+ }
+ out := new(HTTP2Settings)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *HTTP3Settings) DeepCopyInto(out *HTTP3Settings) {
+ *out = *in
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTP3Settings.
+func (in *HTTP3Settings) DeepCopy() *HTTP3Settings {
+ if in == nil {
+ return nil
+ }
+ out := new(HTTP3Settings)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *HTTPActiveHealthChecker) DeepCopyInto(out *HTTPActiveHealthChecker) {
+ *out = *in
+ if in.Hostname != nil {
+ in, out := &in.Hostname, &out.Hostname
+ *out = new(string)
+ **out = **in
+ }
+ if in.Method != nil {
+ in, out := &in.Method, &out.Method
+ *out = new(string)
+ **out = **in
+ }
+ if in.ExpectedStatuses != nil {
+ in, out := &in.ExpectedStatuses, &out.ExpectedStatuses
+ *out = make([]HTTPStatus, len(*in))
+ copy(*out, *in)
+ }
+ if in.ExpectedResponse != nil {
+ in, out := &in.ExpectedResponse, &out.ExpectedResponse
+ *out = new(ActiveHealthCheckPayload)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPActiveHealthChecker.
+func (in *HTTPActiveHealthChecker) DeepCopy() *HTTPActiveHealthChecker {
+ if in == nil {
+ return nil
+ }
+ out := new(HTTPActiveHealthChecker)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *HTTPClientTimeout) DeepCopyInto(out *HTTPClientTimeout) {
+ *out = *in
+ if in.RequestReceivedTimeout != nil {
+ in, out := &in.RequestReceivedTimeout, &out.RequestReceivedTimeout
+ *out = new(v1.Duration)
+ **out = **in
+ }
+ if in.IdleTimeout != nil {
+ in, out := &in.IdleTimeout, &out.IdleTimeout
+ *out = new(v1.Duration)
+ **out = **in
+ }
+ if in.StreamIdleTimeout != nil {
+ in, out := &in.StreamIdleTimeout, &out.StreamIdleTimeout
+ *out = new(v1.Duration)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPClientTimeout.
+func (in *HTTPClientTimeout) DeepCopy() *HTTPClientTimeout {
+ if in == nil {
+ return nil
+ }
+ out := new(HTTPClientTimeout)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *HTTPCredentialInjectionFilter) DeepCopyInto(out *HTTPCredentialInjectionFilter) {
+ *out = *in
+ if in.Header != nil {
+ in, out := &in.Header, &out.Header
+ *out = new(string)
+ **out = **in
+ }
+ if in.Overwrite != nil {
+ in, out := &in.Overwrite, &out.Overwrite
+ *out = new(bool)
+ **out = **in
+ }
+ in.Credential.DeepCopyInto(&out.Credential)
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPCredentialInjectionFilter.
+func (in *HTTPCredentialInjectionFilter) DeepCopy() *HTTPCredentialInjectionFilter {
+ if in == nil {
+ return nil
+ }
+ out := new(HTTPCredentialInjectionFilter)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *HTTPDirectResponseFilter) DeepCopyInto(out *HTTPDirectResponseFilter) {
+ *out = *in
+ if in.ContentType != nil {
+ in, out := &in.ContentType, &out.ContentType
+ *out = new(string)
+ **out = **in
+ }
+ if in.Body != nil {
+ in, out := &in.Body, &out.Body
+ *out = new(CustomResponseBody)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.StatusCode != nil {
+ in, out := &in.StatusCode, &out.StatusCode
+ *out = new(int)
+ **out = **in
+ }
+ if in.Header != nil {
+ in, out := &in.Header, &out.Header
+ *out = new(v1.HTTPHeaderFilter)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPDirectResponseFilter.
+func (in *HTTPDirectResponseFilter) DeepCopy() *HTTPDirectResponseFilter {
+ if in == nil {
+ return nil
+ }
+ out := new(HTTPDirectResponseFilter)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *HTTPExtAuthService) DeepCopyInto(out *HTTPExtAuthService) {
+ *out = *in
+ in.BackendCluster.DeepCopyInto(&out.BackendCluster)
+ if in.Path != nil {
+ in, out := &in.Path, &out.Path
+ *out = new(string)
+ **out = **in
+ }
+ if in.HeadersToBackend != nil {
+ in, out := &in.HeadersToBackend, &out.HeadersToBackend
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPExtAuthService.
+func (in *HTTPExtAuthService) DeepCopy() *HTTPExtAuthService {
+ if in == nil {
+ return nil
+ }
+ out := new(HTTPExtAuthService)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *HTTPHeaderFilter) DeepCopyInto(out *HTTPHeaderFilter) {
+ *out = *in
+ if in.Set != nil {
+ in, out := &in.Set, &out.Set
+ *out = make([]v1.HTTPHeader, len(*in))
+ copy(*out, *in)
+ }
+ if in.Add != nil {
+ in, out := &in.Add, &out.Add
+ *out = make([]v1.HTTPHeader, len(*in))
+ copy(*out, *in)
+ }
+ if in.Remove != nil {
+ in, out := &in.Remove, &out.Remove
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPHeaderFilter.
+func (in *HTTPHeaderFilter) DeepCopy() *HTTPHeaderFilter {
+ if in == nil {
+ return nil
+ }
+ out := new(HTTPHeaderFilter)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *HTTPHostnameModifier) DeepCopyInto(out *HTTPHostnameModifier) {
+ *out = *in
+ if in.Header != nil {
+ in, out := &in.Header, &out.Header
+ *out = new(string)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPHostnameModifier.
+func (in *HTTPHostnameModifier) DeepCopy() *HTTPHostnameModifier {
+ if in == nil {
+ return nil
+ }
+ out := new(HTTPHostnameModifier)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *HTTPPathModifier) DeepCopyInto(out *HTTPPathModifier) {
+ *out = *in
+ if in.ReplaceRegexMatch != nil {
+ in, out := &in.ReplaceRegexMatch, &out.ReplaceRegexMatch
+ *out = new(ReplaceRegexMatch)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPPathModifier.
+func (in *HTTPPathModifier) DeepCopy() *HTTPPathModifier {
+ if in == nil {
+ return nil
+ }
+ out := new(HTTPPathModifier)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *HTTPRouteFilter) DeepCopyInto(out *HTTPRouteFilter) {
+ *out = *in
+ out.TypeMeta = in.TypeMeta
+ in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
+ in.Spec.DeepCopyInto(&out.Spec)
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPRouteFilter.
+func (in *HTTPRouteFilter) DeepCopy() *HTTPRouteFilter {
+ if in == nil {
+ return nil
+ }
+ out := new(HTTPRouteFilter)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
+func (in *HTTPRouteFilter) DeepCopyObject() runtime.Object {
+ if c := in.DeepCopy(); c != nil {
+ return c
+ }
+ return nil
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *HTTPRouteFilterList) DeepCopyInto(out *HTTPRouteFilterList) {
+ *out = *in
+ out.TypeMeta = in.TypeMeta
+ in.ListMeta.DeepCopyInto(&out.ListMeta)
+ if in.Items != nil {
+ in, out := &in.Items, &out.Items
+ *out = make([]HTTPRouteFilter, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPRouteFilterList.
+func (in *HTTPRouteFilterList) DeepCopy() *HTTPRouteFilterList {
+ if in == nil {
+ return nil
+ }
+ out := new(HTTPRouteFilterList)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
+func (in *HTTPRouteFilterList) DeepCopyObject() runtime.Object {
+ if c := in.DeepCopy(); c != nil {
+ return c
+ }
+ return nil
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *HTTPRouteFilterSpec) DeepCopyInto(out *HTTPRouteFilterSpec) {
+ *out = *in
+ if in.URLRewrite != nil {
+ in, out := &in.URLRewrite, &out.URLRewrite
+ *out = new(HTTPURLRewriteFilter)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.DirectResponse != nil {
+ in, out := &in.DirectResponse, &out.DirectResponse
+ *out = new(HTTPDirectResponseFilter)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.CredentialInjection != nil {
+ in, out := &in.CredentialInjection, &out.CredentialInjection
+ *out = new(HTTPCredentialInjectionFilter)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPRouteFilterSpec.
+func (in *HTTPRouteFilterSpec) DeepCopy() *HTTPRouteFilterSpec {
+ if in == nil {
+ return nil
+ }
+ out := new(HTTPRouteFilterSpec)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *HTTPTimeout) DeepCopyInto(out *HTTPTimeout) {
+ *out = *in
+ if in.ConnectionIdleTimeout != nil {
+ in, out := &in.ConnectionIdleTimeout, &out.ConnectionIdleTimeout
+ *out = new(v1.Duration)
+ **out = **in
+ }
+ if in.MaxConnectionDuration != nil {
+ in, out := &in.MaxConnectionDuration, &out.MaxConnectionDuration
+ *out = new(v1.Duration)
+ **out = **in
+ }
+ if in.RequestTimeout != nil {
+ in, out := &in.RequestTimeout, &out.RequestTimeout
+ *out = new(v1.Duration)
+ **out = **in
+ }
+ if in.MaxStreamDuration != nil {
+ in, out := &in.MaxStreamDuration, &out.MaxStreamDuration
+ *out = new(v1.Duration)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPTimeout.
+func (in *HTTPTimeout) DeepCopy() *HTTPTimeout {
+ if in == nil {
+ return nil
+ }
+ out := new(HTTPTimeout)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *HTTPURLRewriteFilter) DeepCopyInto(out *HTTPURLRewriteFilter) {
+ *out = *in
+ if in.Hostname != nil {
+ in, out := &in.Hostname, &out.Hostname
+ *out = new(HTTPHostnameModifier)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Path != nil {
+ in, out := &in.Path, &out.Path
+ *out = new(HTTPPathModifier)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPURLRewriteFilter.
+func (in *HTTPURLRewriteFilter) DeepCopy() *HTTPURLRewriteFilter {
+ if in == nil {
+ return nil
+ }
+ out := new(HTTPURLRewriteFilter)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *HTTPWasmCodeSource) DeepCopyInto(out *HTTPWasmCodeSource) {
+ *out = *in
+ if in.SHA256 != nil {
+ in, out := &in.SHA256, &out.SHA256
+ *out = new(string)
+ **out = **in
+ }
+ if in.TLS != nil {
+ in, out := &in.TLS, &out.TLS
+ *out = new(WasmCodeSourceTLSConfig)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPWasmCodeSource.
+func (in *HTTPWasmCodeSource) DeepCopy() *HTTPWasmCodeSource {
+ if in == nil {
+ return nil
+ }
+ out := new(HTTPWasmCodeSource)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *Header) DeepCopyInto(out *Header) {
+ *out = *in
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Header.
+func (in *Header) DeepCopy() *Header {
+ if in == nil {
+ return nil
+ }
+ out := new(Header)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *HeaderMatch) DeepCopyInto(out *HeaderMatch) {
+ *out = *in
+ if in.Type != nil {
+ in, out := &in.Type, &out.Type
+ *out = new(HeaderMatchType)
+ **out = **in
+ }
+ if in.Value != nil {
+ in, out := &in.Value, &out.Value
+ *out = new(string)
+ **out = **in
+ }
+ if in.Invert != nil {
+ in, out := &in.Invert, &out.Invert
+ *out = new(bool)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HeaderMatch.
+func (in *HeaderMatch) DeepCopy() *HeaderMatch {
+ if in == nil {
+ return nil
+ }
+ out := new(HeaderMatch)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *HeaderSettings) DeepCopyInto(out *HeaderSettings) {
+ *out = *in
+ if in.EnableEnvoyHeaders != nil {
+ in, out := &in.EnableEnvoyHeaders, &out.EnableEnvoyHeaders
+ *out = new(bool)
+ **out = **in
+ }
+ if in.DisableRateLimitHeaders != nil {
+ in, out := &in.DisableRateLimitHeaders, &out.DisableRateLimitHeaders
+ *out = new(bool)
+ **out = **in
+ }
+ if in.XForwardedClientCert != nil {
+ in, out := &in.XForwardedClientCert, &out.XForwardedClientCert
+ *out = new(XForwardedClientCert)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.WithUnderscoresAction != nil {
+ in, out := &in.WithUnderscoresAction, &out.WithUnderscoresAction
+ *out = new(WithUnderscoresAction)
+ **out = **in
+ }
+ if in.PreserveXRequestID != nil {
+ in, out := &in.PreserveXRequestID, &out.PreserveXRequestID
+ *out = new(bool)
+ **out = **in
+ }
+ if in.RequestID != nil {
+ in, out := &in.RequestID, &out.RequestID
+ *out = new(RequestIDAction)
+ **out = **in
+ }
+ if in.EarlyRequestHeaders != nil {
+ in, out := &in.EarlyRequestHeaders, &out.EarlyRequestHeaders
+ *out = new(HTTPHeaderFilter)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.LateResponseHeaders != nil {
+ in, out := &in.LateResponseHeaders, &out.LateResponseHeaders
+ *out = new(HTTPHeaderFilter)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HeaderSettings.
+func (in *HeaderSettings) DeepCopy() *HeaderSettings {
+ if in == nil {
+ return nil
+ }
+ out := new(HeaderSettings)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *HealthCheck) DeepCopyInto(out *HealthCheck) {
+ *out = *in
+ if in.Active != nil {
+ in, out := &in.Active, &out.Active
+ *out = new(ActiveHealthCheck)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Passive != nil {
+ in, out := &in.Passive, &out.Passive
+ *out = new(PassiveHealthCheck)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.PanicThreshold != nil {
+ in, out := &in.PanicThreshold, &out.PanicThreshold
+ *out = new(uint32)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HealthCheck.
+func (in *HealthCheck) DeepCopy() *HealthCheck {
+ if in == nil {
+ return nil
+ }
+ out := new(HealthCheck)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *HealthCheckSettings) DeepCopyInto(out *HealthCheckSettings) {
+ *out = *in
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HealthCheckSettings.
+func (in *HealthCheckSettings) DeepCopy() *HealthCheckSettings {
+ if in == nil {
+ return nil
+ }
+ out := new(HealthCheckSettings)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *IPEndpoint) DeepCopyInto(out *IPEndpoint) {
+ *out = *in
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPEndpoint.
+func (in *IPEndpoint) DeepCopy() *IPEndpoint {
+ if in == nil {
+ return nil
+ }
+ out := new(IPEndpoint)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ImageWasmCodeSource) DeepCopyInto(out *ImageWasmCodeSource) {
+ *out = *in
+ if in.SHA256 != nil {
+ in, out := &in.SHA256, &out.SHA256
+ *out = new(string)
+ **out = **in
+ }
+ if in.PullSecretRef != nil {
+ in, out := &in.PullSecretRef, &out.PullSecretRef
+ *out = new(v1.SecretObjectReference)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.TLS != nil {
+ in, out := &in.TLS, &out.TLS
+ *out = new(WasmCodeSourceTLSConfig)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageWasmCodeSource.
+func (in *ImageWasmCodeSource) DeepCopy() *ImageWasmCodeSource {
+ if in == nil {
+ return nil
+ }
+ out := new(ImageWasmCodeSource)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *InjectedCredential) DeepCopyInto(out *InjectedCredential) {
+ *out = *in
+ in.ValueRef.DeepCopyInto(&out.ValueRef)
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InjectedCredential.
+func (in *InjectedCredential) DeepCopy() *InjectedCredential {
+ if in == nil {
+ return nil
+ }
+ out := new(InjectedCredential)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *JSONPatchOperation) DeepCopyInto(out *JSONPatchOperation) {
+ *out = *in
+ if in.Path != nil {
+ in, out := &in.Path, &out.Path
+ *out = new(string)
+ **out = **in
+ }
+ if in.JSONPath != nil {
+ in, out := &in.JSONPath, &out.JSONPath
+ *out = new(string)
+ **out = **in
+ }
+ if in.From != nil {
+ in, out := &in.From, &out.From
+ *out = new(string)
+ **out = **in
+ }
+ if in.Value != nil {
+ in, out := &in.Value, &out.Value
+ *out = new(apiextensionsv1.JSON)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JSONPatchOperation.
+func (in *JSONPatchOperation) DeepCopy() *JSONPatchOperation {
+ if in == nil {
+ return nil
+ }
+ out := new(JSONPatchOperation)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *JWT) DeepCopyInto(out *JWT) {
+ *out = *in
+ if in.Optional != nil {
+ in, out := &in.Optional, &out.Optional
+ *out = new(bool)
+ **out = **in
+ }
+ if in.Providers != nil {
+ in, out := &in.Providers, &out.Providers
+ *out = make([]JWTProvider, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JWT.
+func (in *JWT) DeepCopy() *JWT {
+ if in == nil {
+ return nil
+ }
+ out := new(JWT)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *JWTClaim) DeepCopyInto(out *JWTClaim) {
+ *out = *in
+ if in.ValueType != nil {
+ in, out := &in.ValueType, &out.ValueType
+ *out = new(JWTClaimValueType)
+ **out = **in
+ }
+ if in.Values != nil {
+ in, out := &in.Values, &out.Values
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JWTClaim.
+func (in *JWTClaim) DeepCopy() *JWTClaim {
+ if in == nil {
+ return nil
+ }
+ out := new(JWTClaim)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *JWTExtractor) DeepCopyInto(out *JWTExtractor) {
+ *out = *in
+ if in.Headers != nil {
+ in, out := &in.Headers, &out.Headers
+ *out = make([]JWTHeaderExtractor, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ if in.Cookies != nil {
+ in, out := &in.Cookies, &out.Cookies
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ if in.Params != nil {
+ in, out := &in.Params, &out.Params
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JWTExtractor.
+func (in *JWTExtractor) DeepCopy() *JWTExtractor {
+ if in == nil {
+ return nil
+ }
+ out := new(JWTExtractor)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *JWTHeaderExtractor) DeepCopyInto(out *JWTHeaderExtractor) {
+ *out = *in
+ if in.ValuePrefix != nil {
+ in, out := &in.ValuePrefix, &out.ValuePrefix
+ *out = new(string)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JWTHeaderExtractor.
+func (in *JWTHeaderExtractor) DeepCopy() *JWTHeaderExtractor {
+ if in == nil {
+ return nil
+ }
+ out := new(JWTHeaderExtractor)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *JWTPrincipal) DeepCopyInto(out *JWTPrincipal) {
+ *out = *in
+ if in.Claims != nil {
+ in, out := &in.Claims, &out.Claims
+ *out = make([]JWTClaim, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ if in.Scopes != nil {
+ in, out := &in.Scopes, &out.Scopes
+ *out = make([]JWTScope, len(*in))
+ copy(*out, *in)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JWTPrincipal.
+func (in *JWTPrincipal) DeepCopy() *JWTPrincipal {
+ if in == nil {
+ return nil
+ }
+ out := new(JWTPrincipal)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *JWTProvider) DeepCopyInto(out *JWTProvider) {
+ *out = *in
+ if in.Audiences != nil {
+ in, out := &in.Audiences, &out.Audiences
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ if in.RemoteJWKS != nil {
+ in, out := &in.RemoteJWKS, &out.RemoteJWKS
+ *out = new(RemoteJWKS)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.LocalJWKS != nil {
+ in, out := &in.LocalJWKS, &out.LocalJWKS
+ *out = new(LocalJWKS)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.ClaimToHeaders != nil {
+ in, out := &in.ClaimToHeaders, &out.ClaimToHeaders
+ *out = make([]ClaimToHeader, len(*in))
+ copy(*out, *in)
+ }
+ if in.RecomputeRoute != nil {
+ in, out := &in.RecomputeRoute, &out.RecomputeRoute
+ *out = new(bool)
+ **out = **in
+ }
+ if in.ExtractFrom != nil {
+ in, out := &in.ExtractFrom, &out.ExtractFrom
+ *out = new(JWTExtractor)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JWTProvider.
+func (in *JWTProvider) DeepCopy() *JWTProvider {
+ if in == nil {
+ return nil
+ }
+ out := new(JWTProvider)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *KubernetesClient) DeepCopyInto(out *KubernetesClient) {
+ *out = *in
+ if in.RateLimit != nil {
+ in, out := &in.RateLimit, &out.RateLimit
+ *out = new(KubernetesClientRateLimit)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubernetesClient.
+func (in *KubernetesClient) DeepCopy() *KubernetesClient {
+ if in == nil {
+ return nil
+ }
+ out := new(KubernetesClient)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *KubernetesClientRateLimit) DeepCopyInto(out *KubernetesClientRateLimit) {
+ *out = *in
+ if in.QPS != nil {
+ in, out := &in.QPS, &out.QPS
+ *out = new(int32)
+ **out = **in
+ }
+ if in.Burst != nil {
+ in, out := &in.Burst, &out.Burst
+ *out = new(int32)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubernetesClientRateLimit.
+func (in *KubernetesClientRateLimit) DeepCopy() *KubernetesClientRateLimit {
+ if in == nil {
+ return nil
+ }
+ out := new(KubernetesClientRateLimit)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *KubernetesContainerSpec) DeepCopyInto(out *KubernetesContainerSpec) {
+ *out = *in
+ if in.Env != nil {
+ in, out := &in.Env, &out.Env
+ *out = make([]corev1.EnvVar, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ if in.Resources != nil {
+ in, out := &in.Resources, &out.Resources
+ *out = new(corev1.ResourceRequirements)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.SecurityContext != nil {
+ in, out := &in.SecurityContext, &out.SecurityContext
+ *out = new(corev1.SecurityContext)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Image != nil {
+ in, out := &in.Image, &out.Image
+ *out = new(string)
+ **out = **in
+ }
+ if in.ImageRepository != nil {
+ in, out := &in.ImageRepository, &out.ImageRepository
+ *out = new(string)
+ **out = **in
+ }
+ if in.VolumeMounts != nil {
+ in, out := &in.VolumeMounts, &out.VolumeMounts
+ *out = make([]corev1.VolumeMount, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubernetesContainerSpec.
+func (in *KubernetesContainerSpec) DeepCopy() *KubernetesContainerSpec {
+ if in == nil {
+ return nil
+ }
+ out := new(KubernetesContainerSpec)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *KubernetesDaemonSetSpec) DeepCopyInto(out *KubernetesDaemonSetSpec) {
+ *out = *in
+ if in.Patch != nil {
+ in, out := &in.Patch, &out.Patch
+ *out = new(KubernetesPatchSpec)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Strategy != nil {
+ in, out := &in.Strategy, &out.Strategy
+ *out = new(appsv1.DaemonSetUpdateStrategy)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Pod != nil {
+ in, out := &in.Pod, &out.Pod
+ *out = new(KubernetesPodSpec)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Container != nil {
+ in, out := &in.Container, &out.Container
+ *out = new(KubernetesContainerSpec)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Name != nil {
+ in, out := &in.Name, &out.Name
+ *out = new(string)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubernetesDaemonSetSpec.
+func (in *KubernetesDaemonSetSpec) DeepCopy() *KubernetesDaemonSetSpec {
+ if in == nil {
+ return nil
+ }
+ out := new(KubernetesDaemonSetSpec)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *KubernetesDeployMode) DeepCopyInto(out *KubernetesDeployMode) {
+ *out = *in
+ if in.Type != nil {
+ in, out := &in.Type, &out.Type
+ *out = new(KubernetesDeployModeType)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubernetesDeployMode.
+func (in *KubernetesDeployMode) DeepCopy() *KubernetesDeployMode {
+ if in == nil {
+ return nil
+ }
+ out := new(KubernetesDeployMode)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *KubernetesDeploymentSpec) DeepCopyInto(out *KubernetesDeploymentSpec) {
+ *out = *in
+ if in.Patch != nil {
+ in, out := &in.Patch, &out.Patch
+ *out = new(KubernetesPatchSpec)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Replicas != nil {
+ in, out := &in.Replicas, &out.Replicas
+ *out = new(int32)
+ **out = **in
+ }
+ if in.Strategy != nil {
+ in, out := &in.Strategy, &out.Strategy
+ *out = new(appsv1.DeploymentStrategy)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Pod != nil {
+ in, out := &in.Pod, &out.Pod
+ *out = new(KubernetesPodSpec)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Container != nil {
+ in, out := &in.Container, &out.Container
+ *out = new(KubernetesContainerSpec)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.InitContainers != nil {
+ in, out := &in.InitContainers, &out.InitContainers
+ *out = make([]corev1.Container, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ if in.Name != nil {
+ in, out := &in.Name, &out.Name
+ *out = new(string)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubernetesDeploymentSpec.
+func (in *KubernetesDeploymentSpec) DeepCopy() *KubernetesDeploymentSpec {
+ if in == nil {
+ return nil
+ }
+ out := new(KubernetesDeploymentSpec)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *KubernetesHorizontalPodAutoscalerSpec) DeepCopyInto(out *KubernetesHorizontalPodAutoscalerSpec) {
+ *out = *in
+ if in.MinReplicas != nil {
+ in, out := &in.MinReplicas, &out.MinReplicas
+ *out = new(int32)
+ **out = **in
+ }
+ if in.MaxReplicas != nil {
+ in, out := &in.MaxReplicas, &out.MaxReplicas
+ *out = new(int32)
+ **out = **in
+ }
+ if in.Metrics != nil {
+ in, out := &in.Metrics, &out.Metrics
+ *out = make([]v2.MetricSpec, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ if in.Behavior != nil {
+ in, out := &in.Behavior, &out.Behavior
+ *out = new(v2.HorizontalPodAutoscalerBehavior)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Patch != nil {
+ in, out := &in.Patch, &out.Patch
+ *out = new(KubernetesPatchSpec)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Name != nil {
+ in, out := &in.Name, &out.Name
+ *out = new(string)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubernetesHorizontalPodAutoscalerSpec.
+func (in *KubernetesHorizontalPodAutoscalerSpec) DeepCopy() *KubernetesHorizontalPodAutoscalerSpec {
+ if in == nil {
+ return nil
+ }
+ out := new(KubernetesHorizontalPodAutoscalerSpec)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *KubernetesPatchSpec) DeepCopyInto(out *KubernetesPatchSpec) {
+ *out = *in
+ if in.Type != nil {
+ in, out := &in.Type, &out.Type
+ *out = new(MergeType)
+ **out = **in
+ }
+ in.Value.DeepCopyInto(&out.Value)
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubernetesPatchSpec.
+func (in *KubernetesPatchSpec) DeepCopy() *KubernetesPatchSpec {
+ if in == nil {
+ return nil
+ }
+ out := new(KubernetesPatchSpec)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *KubernetesPodDisruptionBudgetSpec) DeepCopyInto(out *KubernetesPodDisruptionBudgetSpec) {
+ *out = *in
+ if in.MinAvailable != nil {
+ in, out := &in.MinAvailable, &out.MinAvailable
+ *out = new(intstr.IntOrString)
+ **out = **in
+ }
+ if in.MaxUnavailable != nil {
+ in, out := &in.MaxUnavailable, &out.MaxUnavailable
+ *out = new(intstr.IntOrString)
+ **out = **in
+ }
+ if in.Patch != nil {
+ in, out := &in.Patch, &out.Patch
+ *out = new(KubernetesPatchSpec)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Name != nil {
+ in, out := &in.Name, &out.Name
+ *out = new(string)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubernetesPodDisruptionBudgetSpec.
+func (in *KubernetesPodDisruptionBudgetSpec) DeepCopy() *KubernetesPodDisruptionBudgetSpec {
+ if in == nil {
+ return nil
+ }
+ out := new(KubernetesPodDisruptionBudgetSpec)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *KubernetesPodSpec) DeepCopyInto(out *KubernetesPodSpec) {
+ *out = *in
+ if in.Annotations != nil {
+ in, out := &in.Annotations, &out.Annotations
+ *out = make(map[string]string, len(*in))
+ for key, val := range *in {
+ (*out)[key] = val
+ }
+ }
+ if in.Labels != nil {
+ in, out := &in.Labels, &out.Labels
+ *out = make(map[string]string, len(*in))
+ for key, val := range *in {
+ (*out)[key] = val
+ }
+ }
+ if in.SecurityContext != nil {
+ in, out := &in.SecurityContext, &out.SecurityContext
+ *out = new(corev1.PodSecurityContext)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Affinity != nil {
+ in, out := &in.Affinity, &out.Affinity
+ *out = new(corev1.Affinity)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Tolerations != nil {
+ in, out := &in.Tolerations, &out.Tolerations
+ *out = make([]corev1.Toleration, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ if in.Volumes != nil {
+ in, out := &in.Volumes, &out.Volumes
+ *out = make([]corev1.Volume, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ if in.ImagePullSecrets != nil {
+ in, out := &in.ImagePullSecrets, &out.ImagePullSecrets
+ *out = make([]corev1.LocalObjectReference, len(*in))
+ copy(*out, *in)
+ }
+ if in.NodeSelector != nil {
+ in, out := &in.NodeSelector, &out.NodeSelector
+ *out = make(map[string]string, len(*in))
+ for key, val := range *in {
+ (*out)[key] = val
+ }
+ }
+ if in.TopologySpreadConstraints != nil {
+ in, out := &in.TopologySpreadConstraints, &out.TopologySpreadConstraints
+ *out = make([]corev1.TopologySpreadConstraint, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubernetesPodSpec.
+func (in *KubernetesPodSpec) DeepCopy() *KubernetesPodSpec {
+ if in == nil {
+ return nil
+ }
+ out := new(KubernetesPodSpec)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *KubernetesServiceAccountSpec) DeepCopyInto(out *KubernetesServiceAccountSpec) {
+ *out = *in
+ if in.Name != nil {
+ in, out := &in.Name, &out.Name
+ *out = new(string)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubernetesServiceAccountSpec.
+func (in *KubernetesServiceAccountSpec) DeepCopy() *KubernetesServiceAccountSpec {
+ if in == nil {
+ return nil
+ }
+ out := new(KubernetesServiceAccountSpec)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *KubernetesServiceSpec) DeepCopyInto(out *KubernetesServiceSpec) {
+ *out = *in
+ if in.Annotations != nil {
+ in, out := &in.Annotations, &out.Annotations
+ *out = make(map[string]string, len(*in))
+ for key, val := range *in {
+ (*out)[key] = val
+ }
+ }
+ if in.Labels != nil {
+ in, out := &in.Labels, &out.Labels
+ *out = make(map[string]string, len(*in))
+ for key, val := range *in {
+ (*out)[key] = val
+ }
+ }
+ if in.Type != nil {
+ in, out := &in.Type, &out.Type
+ *out = new(ServiceType)
+ **out = **in
+ }
+ if in.LoadBalancerClass != nil {
+ in, out := &in.LoadBalancerClass, &out.LoadBalancerClass
+ *out = new(string)
+ **out = **in
+ }
+ if in.AllocateLoadBalancerNodePorts != nil {
+ in, out := &in.AllocateLoadBalancerNodePorts, &out.AllocateLoadBalancerNodePorts
+ *out = new(bool)
+ **out = **in
+ }
+ if in.LoadBalancerSourceRanges != nil {
+ in, out := &in.LoadBalancerSourceRanges, &out.LoadBalancerSourceRanges
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ if in.LoadBalancerIP != nil {
+ in, out := &in.LoadBalancerIP, &out.LoadBalancerIP
+ *out = new(string)
+ **out = **in
+ }
+ if in.ExternalTrafficPolicy != nil {
+ in, out := &in.ExternalTrafficPolicy, &out.ExternalTrafficPolicy
+ *out = new(ServiceExternalTrafficPolicy)
+ **out = **in
+ }
+ if in.Patch != nil {
+ in, out := &in.Patch, &out.Patch
+ *out = new(KubernetesPatchSpec)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Name != nil {
+ in, out := &in.Name, &out.Name
+ *out = new(string)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubernetesServiceSpec.
+func (in *KubernetesServiceSpec) DeepCopy() *KubernetesServiceSpec {
+ if in == nil {
+ return nil
+ }
+ out := new(KubernetesServiceSpec)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *KubernetesWatchMode) DeepCopyInto(out *KubernetesWatchMode) {
+ *out = *in
+ if in.Namespaces != nil {
+ in, out := &in.Namespaces, &out.Namespaces
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ if in.NamespaceSelector != nil {
+ in, out := &in.NamespaceSelector, &out.NamespaceSelector
+ *out = new(metav1.LabelSelector)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubernetesWatchMode.
+func (in *KubernetesWatchMode) DeepCopy() *KubernetesWatchMode {
+ if in == nil {
+ return nil
+ }
+ out := new(KubernetesWatchMode)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *LeaderElection) DeepCopyInto(out *LeaderElection) {
+ *out = *in
+ if in.LeaseDuration != nil {
+ in, out := &in.LeaseDuration, &out.LeaseDuration
+ *out = new(v1.Duration)
+ **out = **in
+ }
+ if in.RenewDeadline != nil {
+ in, out := &in.RenewDeadline, &out.RenewDeadline
+ *out = new(v1.Duration)
+ **out = **in
+ }
+ if in.RetryPeriod != nil {
+ in, out := &in.RetryPeriod, &out.RetryPeriod
+ *out = new(v1.Duration)
+ **out = **in
+ }
+ if in.Disable != nil {
+ in, out := &in.Disable, &out.Disable
+ *out = new(bool)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LeaderElection.
+func (in *LeaderElection) DeepCopy() *LeaderElection {
+ if in == nil {
+ return nil
+ }
+ out := new(LeaderElection)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ListenerTranslationConfig) DeepCopyInto(out *ListenerTranslationConfig) {
+ *out = *in
+ if in.IncludeAll != nil {
+ in, out := &in.IncludeAll, &out.IncludeAll
+ *out = new(bool)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ListenerTranslationConfig.
+func (in *ListenerTranslationConfig) DeepCopy() *ListenerTranslationConfig {
+ if in == nil {
+ return nil
+ }
+ out := new(ListenerTranslationConfig)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *LiteralCustomTag) DeepCopyInto(out *LiteralCustomTag) {
+ *out = *in
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LiteralCustomTag.
+func (in *LiteralCustomTag) DeepCopy() *LiteralCustomTag {
+ if in == nil {
+ return nil
+ }
+ out := new(LiteralCustomTag)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *LoadBalancer) DeepCopyInto(out *LoadBalancer) {
+ *out = *in
+ if in.ConsistentHash != nil {
+ in, out := &in.ConsistentHash, &out.ConsistentHash
+ *out = new(ConsistentHash)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.EndpointOverride != nil {
+ in, out := &in.EndpointOverride, &out.EndpointOverride
+ *out = new(EndpointOverride)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.SlowStart != nil {
+ in, out := &in.SlowStart, &out.SlowStart
+ *out = new(SlowStart)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.ZoneAware != nil {
+ in, out := &in.ZoneAware, &out.ZoneAware
+ *out = new(ZoneAware)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadBalancer.
+func (in *LoadBalancer) DeepCopy() *LoadBalancer {
+ if in == nil {
+ return nil
+ }
+ out := new(LoadBalancer)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *LocalJWKS) DeepCopyInto(out *LocalJWKS) {
+ *out = *in
+ if in.Type != nil {
+ in, out := &in.Type, &out.Type
+ *out = new(LocalJWKSType)
+ **out = **in
+ }
+ if in.Inline != nil {
+ in, out := &in.Inline, &out.Inline
+ *out = new(string)
+ **out = **in
+ }
+ if in.ValueRef != nil {
+ in, out := &in.ValueRef, &out.ValueRef
+ *out = new(v1.LocalObjectReference)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LocalJWKS.
+func (in *LocalJWKS) DeepCopy() *LocalJWKS {
+ if in == nil {
+ return nil
+ }
+ out := new(LocalJWKS)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *LocalRateLimit) DeepCopyInto(out *LocalRateLimit) {
+ *out = *in
+ if in.Rules != nil {
+ in, out := &in.Rules, &out.Rules
+ *out = make([]RateLimitRule, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LocalRateLimit.
+func (in *LocalRateLimit) DeepCopy() *LocalRateLimit {
+ if in == nil {
+ return nil
+ }
+ out := new(LocalRateLimit)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *Lua) DeepCopyInto(out *Lua) {
+ *out = *in
+ if in.Inline != nil {
+ in, out := &in.Inline, &out.Inline
+ *out = new(string)
+ **out = **in
+ }
+ if in.ValueRef != nil {
+ in, out := &in.ValueRef, &out.ValueRef
+ *out = new(v1.LocalObjectReference)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Lua.
+func (in *Lua) DeepCopy() *Lua {
+ if in == nil {
+ return nil
+ }
+ out := new(Lua)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *MethodMatch) DeepCopyInto(out *MethodMatch) {
+ *out = *in
+ if in.Invert != nil {
+ in, out := &in.Invert, &out.Invert
+ *out = new(bool)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MethodMatch.
+func (in *MethodMatch) DeepCopy() *MethodMatch {
+ if in == nil {
+ return nil
+ }
+ out := new(MethodMatch)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *OIDC) DeepCopyInto(out *OIDC) {
+ *out = *in
+ in.Provider.DeepCopyInto(&out.Provider)
+ if in.ClientID != nil {
+ in, out := &in.ClientID, &out.ClientID
+ *out = new(string)
+ **out = **in
+ }
+ if in.ClientIDRef != nil {
+ in, out := &in.ClientIDRef, &out.ClientIDRef
+ *out = new(v1.SecretObjectReference)
+ (*in).DeepCopyInto(*out)
+ }
+ in.ClientSecret.DeepCopyInto(&out.ClientSecret)
+ if in.CookieNames != nil {
+ in, out := &in.CookieNames, &out.CookieNames
+ *out = new(OIDCCookieNames)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.CookieConfig != nil {
+ in, out := &in.CookieConfig, &out.CookieConfig
+ *out = new(OIDCCookieConfig)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.CookieDomain != nil {
+ in, out := &in.CookieDomain, &out.CookieDomain
+ *out = new(string)
+ **out = **in
+ }
+ if in.Scopes != nil {
+ in, out := &in.Scopes, &out.Scopes
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ if in.Resources != nil {
+ in, out := &in.Resources, &out.Resources
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ if in.RedirectURL != nil {
+ in, out := &in.RedirectURL, &out.RedirectURL
+ *out = new(string)
+ **out = **in
+ }
+ if in.DenyRedirect != nil {
+ in, out := &in.DenyRedirect, &out.DenyRedirect
+ *out = new(OIDCDenyRedirect)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.LogoutPath != nil {
+ in, out := &in.LogoutPath, &out.LogoutPath
+ *out = new(string)
+ **out = **in
+ }
+ if in.ForwardAccessToken != nil {
+ in, out := &in.ForwardAccessToken, &out.ForwardAccessToken
+ *out = new(bool)
+ **out = **in
+ }
+ if in.DefaultTokenTTL != nil {
+ in, out := &in.DefaultTokenTTL, &out.DefaultTokenTTL
+ *out = new(v1.Duration)
+ **out = **in
+ }
+ if in.RefreshToken != nil {
+ in, out := &in.RefreshToken, &out.RefreshToken
+ *out = new(bool)
+ **out = **in
+ }
+ if in.DefaultRefreshTokenTTL != nil {
+ in, out := &in.DefaultRefreshTokenTTL, &out.DefaultRefreshTokenTTL
+ *out = new(v1.Duration)
+ **out = **in
+ }
+ if in.CSRFTokenTTL != nil {
+ in, out := &in.CSRFTokenTTL, &out.CSRFTokenTTL
+ *out = new(v1.Duration)
+ **out = **in
+ }
+ if in.DisableTokenEncryption != nil {
+ in, out := &in.DisableTokenEncryption, &out.DisableTokenEncryption
+ *out = new(bool)
+ **out = **in
+ }
+ if in.PassThroughAuthHeader != nil {
+ in, out := &in.PassThroughAuthHeader, &out.PassThroughAuthHeader
+ *out = new(bool)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OIDC.
+func (in *OIDC) DeepCopy() *OIDC {
+ if in == nil {
+ return nil
+ }
+ out := new(OIDC)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *OIDCCookieConfig) DeepCopyInto(out *OIDCCookieConfig) {
+ *out = *in
+ if in.SameSite != nil {
+ in, out := &in.SameSite, &out.SameSite
+ *out = new(string)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OIDCCookieConfig.
+func (in *OIDCCookieConfig) DeepCopy() *OIDCCookieConfig {
+ if in == nil {
+ return nil
+ }
+ out := new(OIDCCookieConfig)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *OIDCCookieNames) DeepCopyInto(out *OIDCCookieNames) {
+ *out = *in
+ if in.AccessToken != nil {
+ in, out := &in.AccessToken, &out.AccessToken
+ *out = new(string)
+ **out = **in
+ }
+ if in.IDToken != nil {
+ in, out := &in.IDToken, &out.IDToken
+ *out = new(string)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OIDCCookieNames.
+func (in *OIDCCookieNames) DeepCopy() *OIDCCookieNames {
+ if in == nil {
+ return nil
+ }
+ out := new(OIDCCookieNames)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *OIDCDenyRedirect) DeepCopyInto(out *OIDCDenyRedirect) {
+ *out = *in
+ if in.Headers != nil {
+ in, out := &in.Headers, &out.Headers
+ *out = make([]OIDCDenyRedirectHeader, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OIDCDenyRedirect.
+func (in *OIDCDenyRedirect) DeepCopy() *OIDCDenyRedirect {
+ if in == nil {
+ return nil
+ }
+ out := new(OIDCDenyRedirect)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *OIDCDenyRedirectHeader) DeepCopyInto(out *OIDCDenyRedirectHeader) {
+ *out = *in
+ in.StringMatch.DeepCopyInto(&out.StringMatch)
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OIDCDenyRedirectHeader.
+func (in *OIDCDenyRedirectHeader) DeepCopy() *OIDCDenyRedirectHeader {
+ if in == nil {
+ return nil
+ }
+ out := new(OIDCDenyRedirectHeader)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *OIDCProvider) DeepCopyInto(out *OIDCProvider) {
+ *out = *in
+ in.BackendCluster.DeepCopyInto(&out.BackendCluster)
+ if in.AuthorizationEndpoint != nil {
+ in, out := &in.AuthorizationEndpoint, &out.AuthorizationEndpoint
+ *out = new(string)
+ **out = **in
+ }
+ if in.TokenEndpoint != nil {
+ in, out := &in.TokenEndpoint, &out.TokenEndpoint
+ *out = new(string)
+ **out = **in
+ }
+ if in.EndSessionEndpoint != nil {
+ in, out := &in.EndSessionEndpoint, &out.EndSessionEndpoint
+ *out = new(string)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OIDCProvider.
+func (in *OIDCProvider) DeepCopy() *OIDCProvider {
+ if in == nil {
+ return nil
+ }
+ out := new(OIDCProvider)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *OpenTelemetryEnvoyProxyAccessLog) DeepCopyInto(out *OpenTelemetryEnvoyProxyAccessLog) {
+ *out = *in
+ in.BackendCluster.DeepCopyInto(&out.BackendCluster)
+ if in.Host != nil {
+ in, out := &in.Host, &out.Host
+ *out = new(string)
+ **out = **in
+ }
+ if in.Resources != nil {
+ in, out := &in.Resources, &out.Resources
+ *out = make(map[string]string, len(*in))
+ for key, val := range *in {
+ (*out)[key] = val
+ }
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenTelemetryEnvoyProxyAccessLog.
+func (in *OpenTelemetryEnvoyProxyAccessLog) DeepCopy() *OpenTelemetryEnvoyProxyAccessLog {
+ if in == nil {
+ return nil
+ }
+ out := new(OpenTelemetryEnvoyProxyAccessLog)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *Operation) DeepCopyInto(out *Operation) {
+ *out = *in
+ if in.Methods != nil {
+ in, out := &in.Methods, &out.Methods
+ *out = make([]v1.HTTPMethod, len(*in))
+ copy(*out, *in)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Operation.
+func (in *Operation) DeepCopy() *Operation {
+ if in == nil {
+ return nil
+ }
+ out := new(Operation)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *OtherSANMatch) DeepCopyInto(out *OtherSANMatch) {
+ *out = *in
+ in.StringMatch.DeepCopyInto(&out.StringMatch)
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OtherSANMatch.
+func (in *OtherSANMatch) DeepCopy() *OtherSANMatch {
+ if in == nil {
+ return nil
+ }
+ out := new(OtherSANMatch)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *PassiveHealthCheck) DeepCopyInto(out *PassiveHealthCheck) {
+ *out = *in
+ if in.SplitExternalLocalOriginErrors != nil {
+ in, out := &in.SplitExternalLocalOriginErrors, &out.SplitExternalLocalOriginErrors
+ *out = new(bool)
+ **out = **in
+ }
+ if in.Interval != nil {
+ in, out := &in.Interval, &out.Interval
+ *out = new(v1.Duration)
+ **out = **in
+ }
+ if in.ConsecutiveLocalOriginFailures != nil {
+ in, out := &in.ConsecutiveLocalOriginFailures, &out.ConsecutiveLocalOriginFailures
+ *out = new(uint32)
+ **out = **in
+ }
+ if in.ConsecutiveGatewayErrors != nil {
+ in, out := &in.ConsecutiveGatewayErrors, &out.ConsecutiveGatewayErrors
+ *out = new(uint32)
+ **out = **in
+ }
+ if in.Consecutive5xxErrors != nil {
+ in, out := &in.Consecutive5xxErrors, &out.Consecutive5xxErrors
+ *out = new(uint32)
+ **out = **in
+ }
+ if in.BaseEjectionTime != nil {
+ in, out := &in.BaseEjectionTime, &out.BaseEjectionTime
+ *out = new(v1.Duration)
+ **out = **in
+ }
+ if in.MaxEjectionPercent != nil {
+ in, out := &in.MaxEjectionPercent, &out.MaxEjectionPercent
+ *out = new(int32)
+ **out = **in
+ }
+ if in.FailurePercentageThreshold != nil {
+ in, out := &in.FailurePercentageThreshold, &out.FailurePercentageThreshold
+ *out = new(uint32)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PassiveHealthCheck.
+func (in *PassiveHealthCheck) DeepCopy() *PassiveHealthCheck {
+ if in == nil {
+ return nil
+ }
+ out := new(PassiveHealthCheck)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *PathMatch) DeepCopyInto(out *PathMatch) {
+ *out = *in
+ if in.Type != nil {
+ in, out := &in.Type, &out.Type
+ *out = new(v1.PathMatchType)
+ **out = **in
+ }
+ if in.Invert != nil {
+ in, out := &in.Invert, &out.Invert
+ *out = new(bool)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PathMatch.
+func (in *PathMatch) DeepCopy() *PathMatch {
+ if in == nil {
+ return nil
+ }
+ out := new(PathMatch)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *PathSettings) DeepCopyInto(out *PathSettings) {
+ *out = *in
+ if in.EscapedSlashesAction != nil {
+ in, out := &in.EscapedSlashesAction, &out.EscapedSlashesAction
+ *out = new(PathEscapedSlashAction)
+ **out = **in
+ }
+ if in.DisableMergeSlashes != nil {
+ in, out := &in.DisableMergeSlashes, &out.DisableMergeSlashes
+ *out = new(bool)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PathSettings.
+func (in *PathSettings) DeepCopy() *PathSettings {
+ if in == nil {
+ return nil
+ }
+ out := new(PathSettings)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *PerEndpointCircuitBreakers) DeepCopyInto(out *PerEndpointCircuitBreakers) {
+ *out = *in
+ if in.MaxConnections != nil {
+ in, out := &in.MaxConnections, &out.MaxConnections
+ *out = new(int64)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PerEndpointCircuitBreakers.
+func (in *PerEndpointCircuitBreakers) DeepCopy() *PerEndpointCircuitBreakers {
+ if in == nil {
+ return nil
+ }
+ out := new(PerEndpointCircuitBreakers)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *PerRetryPolicy) DeepCopyInto(out *PerRetryPolicy) {
+ *out = *in
+ if in.Timeout != nil {
+ in, out := &in.Timeout, &out.Timeout
+ *out = new(v1.Duration)
+ **out = **in
+ }
+ if in.BackOff != nil {
+ in, out := &in.BackOff, &out.BackOff
+ *out = new(BackOffPolicy)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PerRetryPolicy.
+func (in *PerRetryPolicy) DeepCopy() *PerRetryPolicy {
+ if in == nil {
+ return nil
+ }
+ out := new(PerRetryPolicy)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *PolicyTargetReferences) DeepCopyInto(out *PolicyTargetReferences) {
+ *out = *in
+ if in.TargetRef != nil {
+ in, out := &in.TargetRef, &out.TargetRef
+ *out = new(v1.LocalPolicyTargetReferenceWithSectionName)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.TargetRefs != nil {
+ in, out := &in.TargetRefs, &out.TargetRefs
+ *out = make([]v1.LocalPolicyTargetReferenceWithSectionName, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ if in.TargetSelectors != nil {
+ in, out := &in.TargetSelectors, &out.TargetSelectors
+ *out = make([]TargetSelector, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PolicyTargetReferences.
+func (in *PolicyTargetReferences) DeepCopy() *PolicyTargetReferences {
+ if in == nil {
+ return nil
+ }
+ out := new(PolicyTargetReferences)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *PreconnectPolicy) DeepCopyInto(out *PreconnectPolicy) {
+ *out = *in
+ if in.PerEndpointPercent != nil {
+ in, out := &in.PerEndpointPercent, &out.PerEndpointPercent
+ *out = new(uint32)
+ **out = **in
+ }
+ if in.PredictivePercent != nil {
+ in, out := &in.PredictivePercent, &out.PredictivePercent
+ *out = new(uint32)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PreconnectPolicy.
+func (in *PreconnectPolicy) DeepCopy() *PreconnectPolicy {
+ if in == nil {
+ return nil
+ }
+ out := new(PreconnectPolicy)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *PreferLocalZone) DeepCopyInto(out *PreferLocalZone) {
+ *out = *in
+ if in.Force != nil {
+ in, out := &in.Force, &out.Force
+ *out = new(ForceLocalZone)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.MinEndpointsThreshold != nil {
+ in, out := &in.MinEndpointsThreshold, &out.MinEndpointsThreshold
+ *out = new(uint64)
+ **out = **in
+ }
+ if in.PercentageEnabled != nil {
+ in, out := &in.PercentageEnabled, &out.PercentageEnabled
+ *out = new(uint32)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PreferLocalZone.
+func (in *PreferLocalZone) DeepCopy() *PreferLocalZone {
+ if in == nil {
+ return nil
+ }
+ out := new(PreferLocalZone)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *Principal) DeepCopyInto(out *Principal) {
+ *out = *in
+ if in.ClientCIDRs != nil {
+ in, out := &in.ClientCIDRs, &out.ClientCIDRs
+ *out = make([]CIDR, len(*in))
+ copy(*out, *in)
+ }
+ if in.JWT != nil {
+ in, out := &in.JWT, &out.JWT
+ *out = new(JWTPrincipal)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Headers != nil {
+ in, out := &in.Headers, &out.Headers
+ *out = make([]AuthorizationHeaderMatch, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Principal.
+func (in *Principal) DeepCopy() *Principal {
+ if in == nil {
+ return nil
+ }
+ out := new(Principal)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ProcessingModeOptions) DeepCopyInto(out *ProcessingModeOptions) {
+ *out = *in
+ if in.Body != nil {
+ in, out := &in.Body, &out.Body
+ *out = new(ExtProcBodyProcessingMode)
+ **out = **in
+ }
+ if in.Attributes != nil {
+ in, out := &in.Attributes, &out.Attributes
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProcessingModeOptions.
+func (in *ProcessingModeOptions) DeepCopy() *ProcessingModeOptions {
+ if in == nil {
+ return nil
+ }
+ out := new(ProcessingModeOptions)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ProtocolUpgradeConfig) DeepCopyInto(out *ProtocolUpgradeConfig) {
+ *out = *in
+ if in.Connect != nil {
+ in, out := &in.Connect, &out.Connect
+ *out = new(ConnectConfig)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProtocolUpgradeConfig.
+func (in *ProtocolUpgradeConfig) DeepCopy() *ProtocolUpgradeConfig {
+ if in == nil {
+ return nil
+ }
+ out := new(ProtocolUpgradeConfig)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ProxyAccessLog) DeepCopyInto(out *ProxyAccessLog) {
+ *out = *in
+ if in.Disable != nil {
+ in, out := &in.Disable, &out.Disable
+ *out = new(bool)
+ **out = **in
+ }
+ if in.Settings != nil {
+ in, out := &in.Settings, &out.Settings
+ *out = make([]ProxyAccessLogSetting, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxyAccessLog.
+func (in *ProxyAccessLog) DeepCopy() *ProxyAccessLog {
+ if in == nil {
+ return nil
+ }
+ out := new(ProxyAccessLog)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ProxyAccessLogFormat) DeepCopyInto(out *ProxyAccessLogFormat) {
+ *out = *in
+ if in.Text != nil {
+ in, out := &in.Text, &out.Text
+ *out = new(string)
+ **out = **in
+ }
+ if in.JSON != nil {
+ in, out := &in.JSON, &out.JSON
+ *out = make(map[string]string, len(*in))
+ for key, val := range *in {
+ (*out)[key] = val
+ }
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxyAccessLogFormat.
+func (in *ProxyAccessLogFormat) DeepCopy() *ProxyAccessLogFormat {
+ if in == nil {
+ return nil
+ }
+ out := new(ProxyAccessLogFormat)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ProxyAccessLogSetting) DeepCopyInto(out *ProxyAccessLogSetting) {
+ *out = *in
+ if in.Format != nil {
+ in, out := &in.Format, &out.Format
+ *out = new(ProxyAccessLogFormat)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Matches != nil {
+ in, out := &in.Matches, &out.Matches
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ if in.Sinks != nil {
+ in, out := &in.Sinks, &out.Sinks
+ *out = make([]ProxyAccessLogSink, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ if in.Type != nil {
+ in, out := &in.Type, &out.Type
+ *out = new(ProxyAccessLogType)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxyAccessLogSetting.
+func (in *ProxyAccessLogSetting) DeepCopy() *ProxyAccessLogSetting {
+ if in == nil {
+ return nil
+ }
+ out := new(ProxyAccessLogSetting)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ProxyAccessLogSink) DeepCopyInto(out *ProxyAccessLogSink) {
+ *out = *in
+ if in.ALS != nil {
+ in, out := &in.ALS, &out.ALS
+ *out = new(ALSEnvoyProxyAccessLog)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.File != nil {
+ in, out := &in.File, &out.File
+ *out = new(FileEnvoyProxyAccessLog)
+ **out = **in
+ }
+ if in.OpenTelemetry != nil {
+ in, out := &in.OpenTelemetry, &out.OpenTelemetry
+ *out = new(OpenTelemetryEnvoyProxyAccessLog)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxyAccessLogSink.
+func (in *ProxyAccessLogSink) DeepCopy() *ProxyAccessLogSink {
+ if in == nil {
+ return nil
+ }
+ out := new(ProxyAccessLogSink)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ProxyBootstrap) DeepCopyInto(out *ProxyBootstrap) {
+ *out = *in
+ if in.Type != nil {
+ in, out := &in.Type, &out.Type
+ *out = new(BootstrapType)
+ **out = **in
+ }
+ if in.Value != nil {
+ in, out := &in.Value, &out.Value
+ *out = new(string)
+ **out = **in
+ }
+ if in.JSONPatches != nil {
+ in, out := &in.JSONPatches, &out.JSONPatches
+ *out = make([]JSONPatchOperation, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxyBootstrap.
+func (in *ProxyBootstrap) DeepCopy() *ProxyBootstrap {
+ if in == nil {
+ return nil
+ }
+ out := new(ProxyBootstrap)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ProxyLogging) DeepCopyInto(out *ProxyLogging) {
+ *out = *in
+ if in.Level != nil {
+ in, out := &in.Level, &out.Level
+ *out = make(map[ProxyLogComponent]LogLevel, len(*in))
+ for key, val := range *in {
+ (*out)[key] = val
+ }
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxyLogging.
+func (in *ProxyLogging) DeepCopy() *ProxyLogging {
+ if in == nil {
+ return nil
+ }
+ out := new(ProxyLogging)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ProxyMetricSink) DeepCopyInto(out *ProxyMetricSink) {
+ *out = *in
+ if in.OpenTelemetry != nil {
+ in, out := &in.OpenTelemetry, &out.OpenTelemetry
+ *out = new(ProxyOpenTelemetrySink)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxyMetricSink.
+func (in *ProxyMetricSink) DeepCopy() *ProxyMetricSink {
+ if in == nil {
+ return nil
+ }
+ out := new(ProxyMetricSink)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ProxyMetrics) DeepCopyInto(out *ProxyMetrics) {
+ *out = *in
+ if in.Prometheus != nil {
+ in, out := &in.Prometheus, &out.Prometheus
+ *out = new(ProxyPrometheusProvider)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Sinks != nil {
+ in, out := &in.Sinks, &out.Sinks
+ *out = make([]ProxyMetricSink, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ if in.Matches != nil {
+ in, out := &in.Matches, &out.Matches
+ *out = make([]StringMatch, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ if in.EnableVirtualHostStats != nil {
+ in, out := &in.EnableVirtualHostStats, &out.EnableVirtualHostStats
+ *out = new(bool)
+ **out = **in
+ }
+ if in.EnablePerEndpointStats != nil {
+ in, out := &in.EnablePerEndpointStats, &out.EnablePerEndpointStats
+ *out = new(bool)
+ **out = **in
+ }
+ if in.EnableRequestResponseSizesStats != nil {
+ in, out := &in.EnableRequestResponseSizesStats, &out.EnableRequestResponseSizesStats
+ *out = new(bool)
+ **out = **in
+ }
+ if in.ClusterStatName != nil {
+ in, out := &in.ClusterStatName, &out.ClusterStatName
+ *out = new(string)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxyMetrics.
+func (in *ProxyMetrics) DeepCopy() *ProxyMetrics {
+ if in == nil {
+ return nil
+ }
+ out := new(ProxyMetrics)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ProxyOpenTelemetrySink) DeepCopyInto(out *ProxyOpenTelemetrySink) {
+ *out = *in
+ in.BackendCluster.DeepCopyInto(&out.BackendCluster)
+ if in.Host != nil {
+ in, out := &in.Host, &out.Host
+ *out = new(string)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxyOpenTelemetrySink.
+func (in *ProxyOpenTelemetrySink) DeepCopy() *ProxyOpenTelemetrySink {
+ if in == nil {
+ return nil
+ }
+ out := new(ProxyOpenTelemetrySink)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ProxyPrometheusProvider) DeepCopyInto(out *ProxyPrometheusProvider) {
+ *out = *in
+ if in.Compression != nil {
+ in, out := &in.Compression, &out.Compression
+ *out = new(Compression)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxyPrometheusProvider.
+func (in *ProxyPrometheusProvider) DeepCopy() *ProxyPrometheusProvider {
+ if in == nil {
+ return nil
+ }
+ out := new(ProxyPrometheusProvider)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ProxyProtocol) DeepCopyInto(out *ProxyProtocol) {
+ *out = *in
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxyProtocol.
+func (in *ProxyProtocol) DeepCopy() *ProxyProtocol {
+ if in == nil {
+ return nil
+ }
+ out := new(ProxyProtocol)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ProxyProtocolSettings) DeepCopyInto(out *ProxyProtocolSettings) {
+ *out = *in
+ if in.Optional != nil {
+ in, out := &in.Optional, &out.Optional
+ *out = new(bool)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxyProtocolSettings.
+func (in *ProxyProtocolSettings) DeepCopy() *ProxyProtocolSettings {
+ if in == nil {
+ return nil
+ }
+ out := new(ProxyProtocolSettings)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ProxyTelemetry) DeepCopyInto(out *ProxyTelemetry) {
+ *out = *in
+ if in.AccessLog != nil {
+ in, out := &in.AccessLog, &out.AccessLog
+ *out = new(ProxyAccessLog)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Tracing != nil {
+ in, out := &in.Tracing, &out.Tracing
+ *out = new(ProxyTracing)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Metrics != nil {
+ in, out := &in.Metrics, &out.Metrics
+ *out = new(ProxyMetrics)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxyTelemetry.
+func (in *ProxyTelemetry) DeepCopy() *ProxyTelemetry {
+ if in == nil {
+ return nil
+ }
+ out := new(ProxyTelemetry)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ProxyTracing) DeepCopyInto(out *ProxyTracing) {
+ *out = *in
+ if in.SamplingRate != nil {
+ in, out := &in.SamplingRate, &out.SamplingRate
+ *out = new(uint32)
+ **out = **in
+ }
+ if in.SamplingFraction != nil {
+ in, out := &in.SamplingFraction, &out.SamplingFraction
+ *out = new(v1.Fraction)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.CustomTags != nil {
+ in, out := &in.CustomTags, &out.CustomTags
+ *out = make(map[string]CustomTag, len(*in))
+ for key, val := range *in {
+ (*out)[key] = *val.DeepCopy()
+ }
+ }
+ in.Provider.DeepCopyInto(&out.Provider)
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProxyTracing.
+func (in *ProxyTracing) DeepCopy() *ProxyTracing {
+ if in == nil {
+ return nil
+ }
+ out := new(ProxyTracing)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *RateLimit) DeepCopyInto(out *RateLimit) {
+ *out = *in
+ in.Backend.DeepCopyInto(&out.Backend)
+ if in.Timeout != nil {
+ in, out := &in.Timeout, &out.Timeout
+ *out = new(v1.Duration)
+ **out = **in
+ }
+ if in.Telemetry != nil {
+ in, out := &in.Telemetry, &out.Telemetry
+ *out = new(RateLimitTelemetry)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RateLimit.
+func (in *RateLimit) DeepCopy() *RateLimit {
+ if in == nil {
+ return nil
+ }
+ out := new(RateLimit)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *RateLimitCost) DeepCopyInto(out *RateLimitCost) {
+ *out = *in
+ if in.Request != nil {
+ in, out := &in.Request, &out.Request
+ *out = new(RateLimitCostSpecifier)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Response != nil {
+ in, out := &in.Response, &out.Response
+ *out = new(RateLimitCostSpecifier)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RateLimitCost.
+func (in *RateLimitCost) DeepCopy() *RateLimitCost {
+ if in == nil {
+ return nil
+ }
+ out := new(RateLimitCost)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *RateLimitCostMetadata) DeepCopyInto(out *RateLimitCostMetadata) {
+ *out = *in
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RateLimitCostMetadata.
+func (in *RateLimitCostMetadata) DeepCopy() *RateLimitCostMetadata {
+ if in == nil {
+ return nil
+ }
+ out := new(RateLimitCostMetadata)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *RateLimitCostSpecifier) DeepCopyInto(out *RateLimitCostSpecifier) {
+ *out = *in
+ if in.Number != nil {
+ in, out := &in.Number, &out.Number
+ *out = new(uint64)
+ **out = **in
+ }
+ if in.Metadata != nil {
+ in, out := &in.Metadata, &out.Metadata
+ *out = new(RateLimitCostMetadata)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RateLimitCostSpecifier.
+func (in *RateLimitCostSpecifier) DeepCopy() *RateLimitCostSpecifier {
+ if in == nil {
+ return nil
+ }
+ out := new(RateLimitCostSpecifier)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *RateLimitDatabaseBackend) DeepCopyInto(out *RateLimitDatabaseBackend) {
+ *out = *in
+ if in.Redis != nil {
+ in, out := &in.Redis, &out.Redis
+ *out = new(RateLimitRedisSettings)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RateLimitDatabaseBackend.
+func (in *RateLimitDatabaseBackend) DeepCopy() *RateLimitDatabaseBackend {
+ if in == nil {
+ return nil
+ }
+ out := new(RateLimitDatabaseBackend)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *RateLimitMetrics) DeepCopyInto(out *RateLimitMetrics) {
+ *out = *in
+ if in.Prometheus != nil {
+ in, out := &in.Prometheus, &out.Prometheus
+ *out = new(RateLimitMetricsPrometheusProvider)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RateLimitMetrics.
+func (in *RateLimitMetrics) DeepCopy() *RateLimitMetrics {
+ if in == nil {
+ return nil
+ }
+ out := new(RateLimitMetrics)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *RateLimitMetricsPrometheusProvider) DeepCopyInto(out *RateLimitMetricsPrometheusProvider) {
+ *out = *in
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RateLimitMetricsPrometheusProvider.
+func (in *RateLimitMetricsPrometheusProvider) DeepCopy() *RateLimitMetricsPrometheusProvider {
+ if in == nil {
+ return nil
+ }
+ out := new(RateLimitMetricsPrometheusProvider)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *RateLimitRedisSettings) DeepCopyInto(out *RateLimitRedisSettings) {
+ *out = *in
+ if in.TLS != nil {
+ in, out := &in.TLS, &out.TLS
+ *out = new(RedisTLSSettings)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RateLimitRedisSettings.
+func (in *RateLimitRedisSettings) DeepCopy() *RateLimitRedisSettings {
+ if in == nil {
+ return nil
+ }
+ out := new(RateLimitRedisSettings)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *RateLimitRule) DeepCopyInto(out *RateLimitRule) {
+ *out = *in
+ if in.ClientSelectors != nil {
+ in, out := &in.ClientSelectors, &out.ClientSelectors
+ *out = make([]RateLimitSelectCondition, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ out.Limit = in.Limit
+ if in.Cost != nil {
+ in, out := &in.Cost, &out.Cost
+ *out = new(RateLimitCost)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Shared != nil {
+ in, out := &in.Shared, &out.Shared
+ *out = new(bool)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RateLimitRule.
+func (in *RateLimitRule) DeepCopy() *RateLimitRule {
+ if in == nil {
+ return nil
+ }
+ out := new(RateLimitRule)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *RateLimitSelectCondition) DeepCopyInto(out *RateLimitSelectCondition) {
+ *out = *in
+ if in.Headers != nil {
+ in, out := &in.Headers, &out.Headers
+ *out = make([]HeaderMatch, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ if in.Methods != nil {
+ in, out := &in.Methods, &out.Methods
+ *out = make([]MethodMatch, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ if in.Path != nil {
+ in, out := &in.Path, &out.Path
+ *out = new(PathMatch)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.SourceCIDR != nil {
+ in, out := &in.SourceCIDR, &out.SourceCIDR
+ *out = new(SourceMatch)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RateLimitSelectCondition.
+func (in *RateLimitSelectCondition) DeepCopy() *RateLimitSelectCondition {
+ if in == nil {
+ return nil
+ }
+ out := new(RateLimitSelectCondition)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *RateLimitSpec) DeepCopyInto(out *RateLimitSpec) {
+ *out = *in
+ if in.Type != nil {
+ in, out := &in.Type, &out.Type
+ *out = new(RateLimitType)
+ **out = **in
+ }
+ if in.Global != nil {
+ in, out := &in.Global, &out.Global
+ *out = new(GlobalRateLimit)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Local != nil {
+ in, out := &in.Local, &out.Local
+ *out = new(LocalRateLimit)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RateLimitSpec.
+func (in *RateLimitSpec) DeepCopy() *RateLimitSpec {
+ if in == nil {
+ return nil
+ }
+ out := new(RateLimitSpec)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *RateLimitTelemetry) DeepCopyInto(out *RateLimitTelemetry) {
+ *out = *in
+ if in.Metrics != nil {
+ in, out := &in.Metrics, &out.Metrics
+ *out = new(RateLimitMetrics)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Tracing != nil {
+ in, out := &in.Tracing, &out.Tracing
+ *out = new(RateLimitTracing)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RateLimitTelemetry.
+func (in *RateLimitTelemetry) DeepCopy() *RateLimitTelemetry {
+ if in == nil {
+ return nil
+ }
+ out := new(RateLimitTelemetry)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *RateLimitTracing) DeepCopyInto(out *RateLimitTracing) {
+ *out = *in
+ if in.SamplingRate != nil {
+ in, out := &in.SamplingRate, &out.SamplingRate
+ *out = new(uint32)
+ **out = **in
+ }
+ if in.Provider != nil {
+ in, out := &in.Provider, &out.Provider
+ *out = new(RateLimitTracingProvider)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RateLimitTracing.
+func (in *RateLimitTracing) DeepCopy() *RateLimitTracing {
+ if in == nil {
+ return nil
+ }
+ out := new(RateLimitTracing)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *RateLimitTracingProvider) DeepCopyInto(out *RateLimitTracingProvider) {
+ *out = *in
+ if in.Type != nil {
+ in, out := &in.Type, &out.Type
+ *out = new(RateLimitTracingProviderType)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RateLimitTracingProvider.
+func (in *RateLimitTracingProvider) DeepCopy() *RateLimitTracingProvider {
+ if in == nil {
+ return nil
+ }
+ out := new(RateLimitTracingProvider)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *RateLimitValue) DeepCopyInto(out *RateLimitValue) {
+ *out = *in
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RateLimitValue.
+func (in *RateLimitValue) DeepCopy() *RateLimitValue {
+ if in == nil {
+ return nil
+ }
+ out := new(RateLimitValue)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *RedisTLSSettings) DeepCopyInto(out *RedisTLSSettings) {
+ *out = *in
+ if in.CertificateRef != nil {
+ in, out := &in.CertificateRef, &out.CertificateRef
+ *out = new(v1.SecretObjectReference)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RedisTLSSettings.
+func (in *RedisTLSSettings) DeepCopy() *RedisTLSSettings {
+ if in == nil {
+ return nil
+ }
+ out := new(RedisTLSSettings)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *RemoteJWKS) DeepCopyInto(out *RemoteJWKS) {
+ *out = *in
+ in.BackendCluster.DeepCopyInto(&out.BackendCluster)
+ if in.CacheDuration != nil {
+ in, out := &in.CacheDuration, &out.CacheDuration
+ *out = new(v1.Duration)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RemoteJWKS.
+func (in *RemoteJWKS) DeepCopy() *RemoteJWKS {
+ if in == nil {
+ return nil
+ }
+ out := new(RemoteJWKS)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ReplaceRegexMatch) DeepCopyInto(out *ReplaceRegexMatch) {
+ *out = *in
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplaceRegexMatch.
+func (in *ReplaceRegexMatch) DeepCopy() *ReplaceRegexMatch {
+ if in == nil {
+ return nil
+ }
+ out := new(ReplaceRegexMatch)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *RequestBuffer) DeepCopyInto(out *RequestBuffer) {
+ *out = *in
+ out.Limit = in.Limit.DeepCopy()
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RequestBuffer.
+func (in *RequestBuffer) DeepCopy() *RequestBuffer {
+ if in == nil {
+ return nil
+ }
+ out := new(RequestBuffer)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *RequestHeaderCustomTag) DeepCopyInto(out *RequestHeaderCustomTag) {
+ *out = *in
+ if in.DefaultValue != nil {
+ in, out := &in.DefaultValue, &out.DefaultValue
+ *out = new(string)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RequestHeaderCustomTag.
+func (in *RequestHeaderCustomTag) DeepCopy() *RequestHeaderCustomTag {
+ if in == nil {
+ return nil
+ }
+ out := new(RequestHeaderCustomTag)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ResponseOverride) DeepCopyInto(out *ResponseOverride) {
+ *out = *in
+ in.Match.DeepCopyInto(&out.Match)
+ if in.Response != nil {
+ in, out := &in.Response, &out.Response
+ *out = new(CustomResponse)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Redirect != nil {
+ in, out := &in.Redirect, &out.Redirect
+ *out = new(CustomRedirect)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResponseOverride.
+func (in *ResponseOverride) DeepCopy() *ResponseOverride {
+ if in == nil {
+ return nil
+ }
+ out := new(ResponseOverride)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *Retry) DeepCopyInto(out *Retry) {
+ *out = *in
+ if in.NumRetries != nil {
+ in, out := &in.NumRetries, &out.NumRetries
+ *out = new(int32)
+ **out = **in
+ }
+ if in.NumAttemptsPerPriority != nil {
+ in, out := &in.NumAttemptsPerPriority, &out.NumAttemptsPerPriority
+ *out = new(int32)
+ **out = **in
+ }
+ if in.RetryOn != nil {
+ in, out := &in.RetryOn, &out.RetryOn
+ *out = new(RetryOn)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.PerRetry != nil {
+ in, out := &in.PerRetry, &out.PerRetry
+ *out = new(PerRetryPolicy)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Retry.
+func (in *Retry) DeepCopy() *Retry {
+ if in == nil {
+ return nil
+ }
+ out := new(Retry)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *RetryOn) DeepCopyInto(out *RetryOn) {
+ *out = *in
+ if in.Triggers != nil {
+ in, out := &in.Triggers, &out.Triggers
+ *out = make([]TriggerEnum, len(*in))
+ copy(*out, *in)
+ }
+ if in.HTTPStatusCodes != nil {
+ in, out := &in.HTTPStatusCodes, &out.HTTPStatusCodes
+ *out = make([]HTTPStatus, len(*in))
+ copy(*out, *in)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RetryOn.
+func (in *RetryOn) DeepCopy() *RetryOn {
+ if in == nil {
+ return nil
+ }
+ out := new(RetryOn)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *RouteTranslationConfig) DeepCopyInto(out *RouteTranslationConfig) {
+ *out = *in
+ if in.IncludeAll != nil {
+ in, out := &in.IncludeAll, &out.IncludeAll
+ *out = new(bool)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouteTranslationConfig.
+func (in *RouteTranslationConfig) DeepCopy() *RouteTranslationConfig {
+ if in == nil {
+ return nil
+ }
+ out := new(RouteTranslationConfig)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *RuntimeFlags) DeepCopyInto(out *RuntimeFlags) {
+ *out = *in
+ if in.Enabled != nil {
+ in, out := &in.Enabled, &out.Enabled
+ *out = make([]RuntimeFlag, len(*in))
+ copy(*out, *in)
+ }
+ if in.Disabled != nil {
+ in, out := &in.Disabled, &out.Disabled
+ *out = make([]RuntimeFlag, len(*in))
+ copy(*out, *in)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RuntimeFlags.
+func (in *RuntimeFlags) DeepCopy() *RuntimeFlags {
+ if in == nil {
+ return nil
+ }
+ out := new(RuntimeFlags)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *SecretTranslationConfig) DeepCopyInto(out *SecretTranslationConfig) {
+ *out = *in
+ if in.IncludeAll != nil {
+ in, out := &in.IncludeAll, &out.IncludeAll
+ *out = new(bool)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretTranslationConfig.
+func (in *SecretTranslationConfig) DeepCopy() *SecretTranslationConfig {
+ if in == nil {
+ return nil
+ }
+ out := new(SecretTranslationConfig)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *SecurityPolicy) DeepCopyInto(out *SecurityPolicy) {
+ *out = *in
+ out.TypeMeta = in.TypeMeta
+ in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
+ in.Spec.DeepCopyInto(&out.Spec)
+ in.Status.DeepCopyInto(&out.Status)
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecurityPolicy.
+func (in *SecurityPolicy) DeepCopy() *SecurityPolicy {
+ if in == nil {
+ return nil
+ }
+ out := new(SecurityPolicy)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
+func (in *SecurityPolicy) DeepCopyObject() runtime.Object {
+ if c := in.DeepCopy(); c != nil {
+ return c
+ }
+ return nil
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *SecurityPolicyList) DeepCopyInto(out *SecurityPolicyList) {
+ *out = *in
+ out.TypeMeta = in.TypeMeta
+ in.ListMeta.DeepCopyInto(&out.ListMeta)
+ if in.Items != nil {
+ in, out := &in.Items, &out.Items
+ *out = make([]SecurityPolicy, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecurityPolicyList.
+func (in *SecurityPolicyList) DeepCopy() *SecurityPolicyList {
+ if in == nil {
+ return nil
+ }
+ out := new(SecurityPolicyList)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
+func (in *SecurityPolicyList) DeepCopyObject() runtime.Object {
+ if c := in.DeepCopy(); c != nil {
+ return c
+ }
+ return nil
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *SecurityPolicySpec) DeepCopyInto(out *SecurityPolicySpec) {
+ *out = *in
+ in.PolicyTargetReferences.DeepCopyInto(&out.PolicyTargetReferences)
+ if in.APIKeyAuth != nil {
+ in, out := &in.APIKeyAuth, &out.APIKeyAuth
+ *out = new(APIKeyAuth)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.CORS != nil {
+ in, out := &in.CORS, &out.CORS
+ *out = new(CORS)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.BasicAuth != nil {
+ in, out := &in.BasicAuth, &out.BasicAuth
+ *out = new(BasicAuth)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.JWT != nil {
+ in, out := &in.JWT, &out.JWT
+ *out = new(JWT)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.OIDC != nil {
+ in, out := &in.OIDC, &out.OIDC
+ *out = new(OIDC)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.ExtAuth != nil {
+ in, out := &in.ExtAuth, &out.ExtAuth
+ *out = new(ExtAuth)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Authorization != nil {
+ in, out := &in.Authorization, &out.Authorization
+ *out = new(Authorization)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecurityPolicySpec.
+func (in *SecurityPolicySpec) DeepCopy() *SecurityPolicySpec {
+ if in == nil {
+ return nil
+ }
+ out := new(SecurityPolicySpec)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *Session) DeepCopyInto(out *Session) {
+ *out = *in
+ if in.Resumption != nil {
+ in, out := &in.Resumption, &out.Resumption
+ *out = new(SessionResumption)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Session.
+func (in *Session) DeepCopy() *Session {
+ if in == nil {
+ return nil
+ }
+ out := new(Session)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *SessionResumption) DeepCopyInto(out *SessionResumption) {
+ *out = *in
+ if in.Stateless != nil {
+ in, out := &in.Stateless, &out.Stateless
+ *out = new(StatelessTLSSessionResumption)
+ **out = **in
+ }
+ if in.Stateful != nil {
+ in, out := &in.Stateful, &out.Stateful
+ *out = new(StatefulTLSSessionResumption)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SessionResumption.
+func (in *SessionResumption) DeepCopy() *SessionResumption {
+ if in == nil {
+ return nil
+ }
+ out := new(SessionResumption)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ShutdownConfig) DeepCopyInto(out *ShutdownConfig) {
+ *out = *in
+ if in.DrainTimeout != nil {
+ in, out := &in.DrainTimeout, &out.DrainTimeout
+ *out = new(v1.Duration)
+ **out = **in
+ }
+ if in.MinDrainDuration != nil {
+ in, out := &in.MinDrainDuration, &out.MinDrainDuration
+ *out = new(v1.Duration)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ShutdownConfig.
+func (in *ShutdownConfig) DeepCopy() *ShutdownConfig {
+ if in == nil {
+ return nil
+ }
+ out := new(ShutdownConfig)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ShutdownManager) DeepCopyInto(out *ShutdownManager) {
+ *out = *in
+ if in.Image != nil {
+ in, out := &in.Image, &out.Image
+ *out = new(string)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ShutdownManager.
+func (in *ShutdownManager) DeepCopy() *ShutdownManager {
+ if in == nil {
+ return nil
+ }
+ out := new(ShutdownManager)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *SlowStart) DeepCopyInto(out *SlowStart) {
+ *out = *in
+ if in.Window != nil {
+ in, out := &in.Window, &out.Window
+ *out = new(v1.Duration)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SlowStart.
+func (in *SlowStart) DeepCopy() *SlowStart {
+ if in == nil {
+ return nil
+ }
+ out := new(SlowStart)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *SourceMatch) DeepCopyInto(out *SourceMatch) {
+ *out = *in
+ if in.Type != nil {
+ in, out := &in.Type, &out.Type
+ *out = new(SourceMatchType)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SourceMatch.
+func (in *SourceMatch) DeepCopy() *SourceMatch {
+ if in == nil {
+ return nil
+ }
+ out := new(SourceMatch)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *StatefulTLSSessionResumption) DeepCopyInto(out *StatefulTLSSessionResumption) {
+ *out = *in
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulTLSSessionResumption.
+func (in *StatefulTLSSessionResumption) DeepCopy() *StatefulTLSSessionResumption {
+ if in == nil {
+ return nil
+ }
+ out := new(StatefulTLSSessionResumption)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *StatelessTLSSessionResumption) DeepCopyInto(out *StatelessTLSSessionResumption) {
+ *out = *in
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatelessTLSSessionResumption.
+func (in *StatelessTLSSessionResumption) DeepCopy() *StatelessTLSSessionResumption {
+ if in == nil {
+ return nil
+ }
+ out := new(StatelessTLSSessionResumption)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *StatusCodeMatch) DeepCopyInto(out *StatusCodeMatch) {
+ *out = *in
+ if in.Type != nil {
+ in, out := &in.Type, &out.Type
+ *out = new(StatusCodeValueType)
+ **out = **in
+ }
+ if in.Value != nil {
+ in, out := &in.Value, &out.Value
+ *out = new(int)
+ **out = **in
+ }
+ if in.Range != nil {
+ in, out := &in.Range, &out.Range
+ *out = new(StatusCodeRange)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatusCodeMatch.
+func (in *StatusCodeMatch) DeepCopy() *StatusCodeMatch {
+ if in == nil {
+ return nil
+ }
+ out := new(StatusCodeMatch)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *StatusCodeRange) DeepCopyInto(out *StatusCodeRange) {
+ *out = *in
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatusCodeRange.
+func (in *StatusCodeRange) DeepCopy() *StatusCodeRange {
+ if in == nil {
+ return nil
+ }
+ out := new(StatusCodeRange)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *StringMatch) DeepCopyInto(out *StringMatch) {
+ *out = *in
+ if in.Type != nil {
+ in, out := &in.Type, &out.Type
+ *out = new(StringMatchType)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StringMatch.
+func (in *StringMatch) DeepCopy() *StringMatch {
+ if in == nil {
+ return nil
+ }
+ out := new(StringMatch)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *SubjectAltNames) DeepCopyInto(out *SubjectAltNames) {
+ *out = *in
+ if in.DNSNames != nil {
+ in, out := &in.DNSNames, &out.DNSNames
+ *out = make([]StringMatch, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ if in.EmailAddresses != nil {
+ in, out := &in.EmailAddresses, &out.EmailAddresses
+ *out = make([]StringMatch, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ if in.IPAddresses != nil {
+ in, out := &in.IPAddresses, &out.IPAddresses
+ *out = make([]StringMatch, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ if in.URIs != nil {
+ in, out := &in.URIs, &out.URIs
+ *out = make([]StringMatch, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ if in.OtherNames != nil {
+ in, out := &in.OtherNames, &out.OtherNames
+ *out = make([]OtherSANMatch, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubjectAltNames.
+func (in *SubjectAltNames) DeepCopy() *SubjectAltNames {
+ if in == nil {
+ return nil
+ }
+ out := new(SubjectAltNames)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *TCPActiveHealthChecker) DeepCopyInto(out *TCPActiveHealthChecker) {
+ *out = *in
+ if in.Send != nil {
+ in, out := &in.Send, &out.Send
+ *out = new(ActiveHealthCheckPayload)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Receive != nil {
+ in, out := &in.Receive, &out.Receive
+ *out = new(ActiveHealthCheckPayload)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TCPActiveHealthChecker.
+func (in *TCPActiveHealthChecker) DeepCopy() *TCPActiveHealthChecker {
+ if in == nil {
+ return nil
+ }
+ out := new(TCPActiveHealthChecker)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *TCPClientTimeout) DeepCopyInto(out *TCPClientTimeout) {
+ *out = *in
+ if in.IdleTimeout != nil {
+ in, out := &in.IdleTimeout, &out.IdleTimeout
+ *out = new(v1.Duration)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TCPClientTimeout.
+func (in *TCPClientTimeout) DeepCopy() *TCPClientTimeout {
+ if in == nil {
+ return nil
+ }
+ out := new(TCPClientTimeout)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *TCPKeepalive) DeepCopyInto(out *TCPKeepalive) {
+ *out = *in
+ if in.Probes != nil {
+ in, out := &in.Probes, &out.Probes
+ *out = new(uint32)
+ **out = **in
+ }
+ if in.IdleTime != nil {
+ in, out := &in.IdleTime, &out.IdleTime
+ *out = new(v1.Duration)
+ **out = **in
+ }
+ if in.Interval != nil {
+ in, out := &in.Interval, &out.Interval
+ *out = new(v1.Duration)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TCPKeepalive.
+func (in *TCPKeepalive) DeepCopy() *TCPKeepalive {
+ if in == nil {
+ return nil
+ }
+ out := new(TCPKeepalive)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *TCPTimeout) DeepCopyInto(out *TCPTimeout) {
+ *out = *in
+ if in.ConnectTimeout != nil {
+ in, out := &in.ConnectTimeout, &out.ConnectTimeout
+ *out = new(v1.Duration)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TCPTimeout.
+func (in *TCPTimeout) DeepCopy() *TCPTimeout {
+ if in == nil {
+ return nil
+ }
+ out := new(TCPTimeout)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *TLSSettings) DeepCopyInto(out *TLSSettings) {
+ *out = *in
+ if in.MinVersion != nil {
+ in, out := &in.MinVersion, &out.MinVersion
+ *out = new(TLSVersion)
+ **out = **in
+ }
+ if in.MaxVersion != nil {
+ in, out := &in.MaxVersion, &out.MaxVersion
+ *out = new(TLSVersion)
+ **out = **in
+ }
+ if in.Ciphers != nil {
+ in, out := &in.Ciphers, &out.Ciphers
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ if in.ECDHCurves != nil {
+ in, out := &in.ECDHCurves, &out.ECDHCurves
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ if in.SignatureAlgorithms != nil {
+ in, out := &in.SignatureAlgorithms, &out.SignatureAlgorithms
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ if in.ALPNProtocols != nil {
+ in, out := &in.ALPNProtocols, &out.ALPNProtocols
+ *out = make([]ALPNProtocol, len(*in))
+ copy(*out, *in)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLSSettings.
+func (in *TLSSettings) DeepCopy() *TLSSettings {
+ if in == nil {
+ return nil
+ }
+ out := new(TLSSettings)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *TargetSelector) DeepCopyInto(out *TargetSelector) {
+ *out = *in
+ if in.Group != nil {
+ in, out := &in.Group, &out.Group
+ *out = new(v1.Group)
+ **out = **in
+ }
+ if in.MatchLabels != nil {
+ in, out := &in.MatchLabels, &out.MatchLabels
+ *out = make(map[string]string, len(*in))
+ for key, val := range *in {
+ (*out)[key] = val
+ }
+ }
+ if in.MatchExpressions != nil {
+ in, out := &in.MatchExpressions, &out.MatchExpressions
+ *out = make([]metav1.LabelSelectorRequirement, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TargetSelector.
+func (in *TargetSelector) DeepCopy() *TargetSelector {
+ if in == nil {
+ return nil
+ }
+ out := new(TargetSelector)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *Timeout) DeepCopyInto(out *Timeout) {
+ *out = *in
+ if in.TCP != nil {
+ in, out := &in.TCP, &out.TCP
+ *out = new(TCPTimeout)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.HTTP != nil {
+ in, out := &in.HTTP, &out.HTTP
+ *out = new(HTTPTimeout)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Timeout.
+func (in *Timeout) DeepCopy() *Timeout {
+ if in == nil {
+ return nil
+ }
+ out := new(Timeout)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *Tracing) DeepCopyInto(out *Tracing) {
+ *out = *in
+ if in.SamplingFraction != nil {
+ in, out := &in.SamplingFraction, &out.SamplingFraction
+ *out = new(v1.Fraction)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.CustomTags != nil {
+ in, out := &in.CustomTags, &out.CustomTags
+ *out = make(map[string]CustomTag, len(*in))
+ for key, val := range *in {
+ (*out)[key] = *val.DeepCopy()
+ }
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Tracing.
+func (in *Tracing) DeepCopy() *Tracing {
+ if in == nil {
+ return nil
+ }
+ out := new(Tracing)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *TracingProvider) DeepCopyInto(out *TracingProvider) {
+ *out = *in
+ in.BackendCluster.DeepCopyInto(&out.BackendCluster)
+ if in.Host != nil {
+ in, out := &in.Host, &out.Host
+ *out = new(string)
+ **out = **in
+ }
+ if in.ServiceName != nil {
+ in, out := &in.ServiceName, &out.ServiceName
+ *out = new(string)
+ **out = **in
+ }
+ if in.Zipkin != nil {
+ in, out := &in.Zipkin, &out.Zipkin
+ *out = new(ZipkinTracingProvider)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TracingProvider.
+func (in *TracingProvider) DeepCopy() *TracingProvider {
+ if in == nil {
+ return nil
+ }
+ out := new(TracingProvider)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *TranslationConfig) DeepCopyInto(out *TranslationConfig) {
+ *out = *in
+ if in.Listener != nil {
+ in, out := &in.Listener, &out.Listener
+ *out = new(ListenerTranslationConfig)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Route != nil {
+ in, out := &in.Route, &out.Route
+ *out = new(RouteTranslationConfig)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Cluster != nil {
+ in, out := &in.Cluster, &out.Cluster
+ *out = new(ClusterTranslationConfig)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Secret != nil {
+ in, out := &in.Secret, &out.Secret
+ *out = new(SecretTranslationConfig)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TranslationConfig.
+func (in *TranslationConfig) DeepCopy() *TranslationConfig {
+ if in == nil {
+ return nil
+ }
+ out := new(TranslationConfig)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *UnixSocket) DeepCopyInto(out *UnixSocket) {
+ *out = *in
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UnixSocket.
+func (in *UnixSocket) DeepCopy() *UnixSocket {
+ if in == nil {
+ return nil
+ }
+ out := new(UnixSocket)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *Wasm) DeepCopyInto(out *Wasm) {
+ *out = *in
+ if in.Name != nil {
+ in, out := &in.Name, &out.Name
+ *out = new(string)
+ **out = **in
+ }
+ if in.RootID != nil {
+ in, out := &in.RootID, &out.RootID
+ *out = new(string)
+ **out = **in
+ }
+ in.Code.DeepCopyInto(&out.Code)
+ if in.Config != nil {
+ in, out := &in.Config, &out.Config
+ *out = new(apiextensionsv1.JSON)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.FailOpen != nil {
+ in, out := &in.FailOpen, &out.FailOpen
+ *out = new(bool)
+ **out = **in
+ }
+ if in.Env != nil {
+ in, out := &in.Env, &out.Env
+ *out = new(WasmEnv)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Wasm.
+func (in *Wasm) DeepCopy() *Wasm {
+ if in == nil {
+ return nil
+ }
+ out := new(Wasm)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *WasmCodeSource) DeepCopyInto(out *WasmCodeSource) {
+ *out = *in
+ if in.HTTP != nil {
+ in, out := &in.HTTP, &out.HTTP
+ *out = new(HTTPWasmCodeSource)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Image != nil {
+ in, out := &in.Image, &out.Image
+ *out = new(ImageWasmCodeSource)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.PullPolicy != nil {
+ in, out := &in.PullPolicy, &out.PullPolicy
+ *out = new(ImagePullPolicy)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WasmCodeSource.
+func (in *WasmCodeSource) DeepCopy() *WasmCodeSource {
+ if in == nil {
+ return nil
+ }
+ out := new(WasmCodeSource)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *WasmCodeSourceTLSConfig) DeepCopyInto(out *WasmCodeSourceTLSConfig) {
+ *out = *in
+ in.CACertificateRef.DeepCopyInto(&out.CACertificateRef)
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WasmCodeSourceTLSConfig.
+func (in *WasmCodeSourceTLSConfig) DeepCopy() *WasmCodeSourceTLSConfig {
+ if in == nil {
+ return nil
+ }
+ out := new(WasmCodeSourceTLSConfig)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *WasmEnv) DeepCopyInto(out *WasmEnv) {
+ *out = *in
+ if in.HostKeys != nil {
+ in, out := &in.HostKeys, &out.HostKeys
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WasmEnv.
+func (in *WasmEnv) DeepCopy() *WasmEnv {
+ if in == nil {
+ return nil
+ }
+ out := new(WasmEnv)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *XDSServer) DeepCopyInto(out *XDSServer) {
+ *out = *in
+ if in.MaxConnectionAge != nil {
+ in, out := &in.MaxConnectionAge, &out.MaxConnectionAge
+ *out = new(v1.Duration)
+ **out = **in
+ }
+ if in.MaxConnectionAgeGrace != nil {
+ in, out := &in.MaxConnectionAgeGrace, &out.MaxConnectionAgeGrace
+ *out = new(v1.Duration)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new XDSServer.
+func (in *XDSServer) DeepCopy() *XDSServer {
+ if in == nil {
+ return nil
+ }
+ out := new(XDSServer)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *XDSTranslatorHooks) DeepCopyInto(out *XDSTranslatorHooks) {
+ *out = *in
+ if in.Pre != nil {
+ in, out := &in.Pre, &out.Pre
+ *out = make([]XDSTranslatorHook, len(*in))
+ copy(*out, *in)
+ }
+ if in.Post != nil {
+ in, out := &in.Post, &out.Post
+ *out = make([]XDSTranslatorHook, len(*in))
+ copy(*out, *in)
+ }
+ if in.Translation != nil {
+ in, out := &in.Translation, &out.Translation
+ *out = new(TranslationConfig)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new XDSTranslatorHooks.
+func (in *XDSTranslatorHooks) DeepCopy() *XDSTranslatorHooks {
+ if in == nil {
+ return nil
+ }
+ out := new(XDSTranslatorHooks)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *XForwardedClientCert) DeepCopyInto(out *XForwardedClientCert) {
+ *out = *in
+ if in.Mode != nil {
+ in, out := &in.Mode, &out.Mode
+ *out = new(XFCCForwardMode)
+ **out = **in
+ }
+ if in.CertDetailsToAdd != nil {
+ in, out := &in.CertDetailsToAdd, &out.CertDetailsToAdd
+ *out = make([]XFCCCertData, len(*in))
+ copy(*out, *in)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new XForwardedClientCert.
+func (in *XForwardedClientCert) DeepCopy() *XForwardedClientCert {
+ if in == nil {
+ return nil
+ }
+ out := new(XForwardedClientCert)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *XForwardedForSettings) DeepCopyInto(out *XForwardedForSettings) {
+ *out = *in
+ if in.NumTrustedHops != nil {
+ in, out := &in.NumTrustedHops, &out.NumTrustedHops
+ *out = new(uint32)
+ **out = **in
+ }
+ if in.TrustedCIDRs != nil {
+ in, out := &in.TrustedCIDRs, &out.TrustedCIDRs
+ *out = make([]CIDR, len(*in))
+ copy(*out, *in)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new XForwardedForSettings.
+func (in *XForwardedForSettings) DeepCopy() *XForwardedForSettings {
+ if in == nil {
+ return nil
+ }
+ out := new(XForwardedForSettings)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ZipkinTracingProvider) DeepCopyInto(out *ZipkinTracingProvider) {
+ *out = *in
+ if in.Enable128BitTraceID != nil {
+ in, out := &in.Enable128BitTraceID, &out.Enable128BitTraceID
+ *out = new(bool)
+ **out = **in
+ }
+ if in.DisableSharedSpanContext != nil {
+ in, out := &in.DisableSharedSpanContext, &out.DisableSharedSpanContext
+ *out = new(bool)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ZipkinTracingProvider.
+func (in *ZipkinTracingProvider) DeepCopy() *ZipkinTracingProvider {
+ if in == nil {
+ return nil
+ }
+ out := new(ZipkinTracingProvider)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ZoneAware) DeepCopyInto(out *ZoneAware) {
+ *out = *in
+ if in.PreferLocal != nil {
+ in, out := &in.PreferLocal, &out.PreferLocal
+ *out = new(PreferLocalZone)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ZoneAware.
+func (in *ZoneAware) DeepCopy() *ZoneAware {
+ if in == nil {
+ return nil
+ }
+ out := new(ZoneAware)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ZstdCompressor) DeepCopyInto(out *ZstdCompressor) {
+ *out = *in
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ZstdCompressor.
+func (in *ZstdCompressor) DeepCopy() *ZstdCompressor {
+ if in == nil {
+ return nil
+ }
+ out := new(ZstdCompressor)
+ in.DeepCopyInto(out)
+ return out
+}
diff --git a/vendor/github.com/go-openapi/jsonpointer/.golangci.yml b/vendor/github.com/go-openapi/jsonpointer/.golangci.yml
index d2fafb8a..7cea1af8 100644
--- a/vendor/github.com/go-openapi/jsonpointer/.golangci.yml
+++ b/vendor/github.com/go-openapi/jsonpointer/.golangci.yml
@@ -1,56 +1,75 @@
-linters-settings:
- gocyclo:
- min-complexity: 45
- dupl:
- threshold: 200
- goconst:
- min-len: 2
- min-occurrences: 3
-
+version: "2"
linters:
- enable-all: true
+ default: all
disable:
- - recvcheck
- - unparam
- - lll
- - gochecknoinits
- - gochecknoglobals
+ - cyclop
+ - depguard
+ - errchkjson
+ - errorlint
+ - exhaustruct
+ - forcetypeassert
- funlen
- - godox
+ - gochecknoglobals
+ - gochecknoinits
- gocognit
- - whitespace
- - wsl
- - wrapcheck
- - testpackage
- - nlreturn
- - errorlint
- - nestif
- godot
- - gofumpt
+ - godox
+ - gosmopolitan
+ - inamedparam
+ #- intrange # disabled while < go1.22
+ - ireturn
+ - lll
+ - musttag
+ - nestif
+ - nlreturn
+ - nonamedreturns
+ - noinlineerr
- paralleltest
- - tparallel
+ - recvcheck
+ - testpackage
- thelper
- - exhaustruct
+ - tparallel
+ - unparam
- varnamelen
- - gci
- - depguard
- - errchkjson
- - inamedparam
- - nonamedreturns
- - musttag
- - ireturn
- - forcetypeassert
- - cyclop
- # deprecated linters
- #- deadcode
- #- interfacer
- #- scopelint
- #- varcheck
- #- structcheck
- #- golint
- #- nosnakecase
- #- maligned
- #- goerr113
- #- ifshort
- #- gomnd
- #- exhaustivestruct
+ - whitespace
+ - wrapcheck
+ - wsl
+ - wsl_v5
+ settings:
+ dupl:
+ threshold: 200
+ goconst:
+ min-len: 2
+ min-occurrences: 3
+ gocyclo:
+ min-complexity: 45
+ exclusions:
+ generated: lax
+ presets:
+ - comments
+ - common-false-positives
+ - legacy
+ - std-error-handling
+ paths:
+ - third_party$
+ - builtin$
+ - examples$
+formatters:
+ enable:
+ - gofmt
+ - goimports
+ exclusions:
+ generated: lax
+ paths:
+ - third_party$
+ - builtin$
+ - examples$
+issues:
+ # Maximum issues count per one linter.
+ # Set to 0 to disable.
+ # Default: 50
+ max-issues-per-linter: 0
+ # Maximum count of issues with the same text.
+ # Set to 0 to disable.
+ # Default: 3
+ max-same-issues: 0
diff --git a/vendor/github.com/go-openapi/jsonpointer/README.md b/vendor/github.com/go-openapi/jsonpointer/README.md
index 0108f1d5..45bd31b1 100644
--- a/vendor/github.com/go-openapi/jsonpointer/README.md
+++ b/vendor/github.com/go-openapi/jsonpointer/README.md
@@ -13,7 +13,14 @@ Completed YES
Tested YES
## References
-http://tools.ietf.org/html/draft-ietf-appsawg-json-pointer-07
+
+
+
+also known as [RFC6901](https://www.rfc-editor.org/rfc/rfc6901)
### Note
+
The 4.Evaluation part of the previous reference, starting with 'If the currently referenced value is a JSON array, the reference token MUST contain either...' is not implemented.
+
+That is because our implementation of the JSON pointer only supports explicit references to array elements: the provision in the spec
+to resolve non-existent members as "the last element in the array", using the special trailing character "-".
diff --git a/vendor/github.com/go-openapi/jsonpointer/pointer.go b/vendor/github.com/go-openapi/jsonpointer/pointer.go
index a08cd68a..7513c476 100644
--- a/vendor/github.com/go-openapi/jsonpointer/pointer.go
+++ b/vendor/github.com/go-openapi/jsonpointer/pointer.go
@@ -33,7 +33,7 @@ import (
"strconv"
"strings"
- "github.com/go-openapi/swag"
+ "github.com/go-openapi/swag/jsonname"
)
const (
@@ -41,8 +41,10 @@ const (
pointerSeparator = `/`
)
-var jsonPointableType = reflect.TypeOf(new(JSONPointable)).Elem()
-var jsonSetableType = reflect.TypeOf(new(JSONSetable)).Elem()
+var (
+ jsonPointableType = reflect.TypeOf(new(JSONPointable)).Elem()
+ jsonSetableType = reflect.TypeOf(new(JSONSetable)).Elem()
+)
// JSONPointable is an interface for structs to implement when they need to customize the
// json pointer process
@@ -56,181 +58,104 @@ type JSONSetable interface {
JSONSet(string, any) error
}
-// New creates a new json pointer for the given string
-func New(jsonPointerString string) (Pointer, error) {
-
- var p Pointer
- err := p.parse(jsonPointerString)
- return p, err
-
-}
-
-// Pointer the json pointer reprsentation
+// Pointer is a representation of a json pointer
type Pointer struct {
referenceTokens []string
}
-// "Constructor", parses the given string JSON pointer
-func (p *Pointer) parse(jsonPointerString string) error {
-
- var err error
-
- if jsonPointerString != emptyPointer {
- if !strings.HasPrefix(jsonPointerString, pointerSeparator) {
- err = errors.Join(ErrInvalidStart, ErrPointer)
- } else {
- referenceTokens := strings.Split(jsonPointerString, pointerSeparator)
- p.referenceTokens = append(p.referenceTokens, referenceTokens[1:]...)
- }
- }
+// New creates a new json pointer for the given string
+func New(jsonPointerString string) (Pointer, error) {
+ var p Pointer
+ err := p.parse(jsonPointerString)
- return err
+ return p, err
}
// Get uses the pointer to retrieve a value from a JSON document
func (p *Pointer) Get(document any) (any, reflect.Kind, error) {
- return p.get(document, swag.DefaultJSONNameProvider)
+ return p.get(document, jsonname.DefaultJSONNameProvider)
}
// Set uses the pointer to set a value from a JSON document
func (p *Pointer) Set(document any, value any) (any, error) {
- return document, p.set(document, value, swag.DefaultJSONNameProvider)
-}
-
-// GetForToken gets a value for a json pointer token 1 level deep
-func GetForToken(document any, decodedToken string) (any, reflect.Kind, error) {
- return getSingleImpl(document, decodedToken, swag.DefaultJSONNameProvider)
+ return document, p.set(document, value, jsonname.DefaultJSONNameProvider)
}
-// SetForToken gets a value for a json pointer token 1 level deep
-func SetForToken(document any, decodedToken string, value any) (any, error) {
- return document, setSingleImpl(document, value, decodedToken, swag.DefaultJSONNameProvider)
-}
-
-func isNil(input any) bool {
- if input == nil {
- return true
+// DecodedTokens returns the decoded tokens of this JSON pointer
+func (p *Pointer) DecodedTokens() []string {
+ result := make([]string, 0, len(p.referenceTokens))
+ for _, t := range p.referenceTokens {
+ result = append(result, Unescape(t))
}
+ return result
+}
- kind := reflect.TypeOf(input).Kind()
- switch kind { //nolint:exhaustive
- case reflect.Ptr, reflect.Map, reflect.Slice, reflect.Chan:
- return reflect.ValueOf(input).IsNil()
- default:
- return false
- }
+// IsEmpty returns true if this is an empty json pointer
+// this indicates that it points to the root document
+func (p *Pointer) IsEmpty() bool {
+ return len(p.referenceTokens) == 0
}
-func getSingleImpl(node any, decodedToken string, nameProvider *swag.NameProvider) (any, reflect.Kind, error) {
- rValue := reflect.Indirect(reflect.ValueOf(node))
- kind := rValue.Kind()
- if isNil(node) {
- return nil, kind, fmt.Errorf("nil value has no field %q: %w", decodedToken, ErrPointer)
- }
+// Pointer to string representation function
+func (p *Pointer) String() string {
- switch typed := node.(type) {
- case JSONPointable:
- r, err := typed.JSONLookup(decodedToken)
- if err != nil {
- return nil, kind, err
- }
- return r, kind, nil
- case *any: // case of a pointer to interface, that is not resolved by reflect.Indirect
- return getSingleImpl(*typed, decodedToken, nameProvider)
+ if len(p.referenceTokens) == 0 {
+ return emptyPointer
}
- switch kind { //nolint:exhaustive
- case reflect.Struct:
- nm, ok := nameProvider.GetGoNameForType(rValue.Type(), decodedToken)
- if !ok {
- return nil, kind, fmt.Errorf("object has no field %q: %w", decodedToken, ErrPointer)
- }
- fld := rValue.FieldByName(nm)
- return fld.Interface(), kind, nil
-
- case reflect.Map:
- kv := reflect.ValueOf(decodedToken)
- mv := rValue.MapIndex(kv)
-
- if mv.IsValid() {
- return mv.Interface(), kind, nil
- }
- return nil, kind, fmt.Errorf("object has no key %q: %w", decodedToken, ErrPointer)
+ return pointerSeparator + strings.Join(p.referenceTokens, pointerSeparator)
+}
- case reflect.Slice:
- tokenIndex, err := strconv.Atoi(decodedToken)
+func (p *Pointer) Offset(document string) (int64, error) {
+ dec := json.NewDecoder(strings.NewReader(document))
+ var offset int64
+ for _, ttk := range p.DecodedTokens() {
+ tk, err := dec.Token()
if err != nil {
- return nil, kind, err
+ return 0, err
}
- sLength := rValue.Len()
- if tokenIndex < 0 || tokenIndex >= sLength {
- return nil, kind, fmt.Errorf("index out of bounds array[0,%d] index '%d': %w", sLength-1, tokenIndex, ErrPointer)
+ switch tk := tk.(type) {
+ case json.Delim:
+ switch tk {
+ case '{':
+ offset, err = offsetSingleObject(dec, ttk)
+ if err != nil {
+ return 0, err
+ }
+ case '[':
+ offset, err = offsetSingleArray(dec, ttk)
+ if err != nil {
+ return 0, err
+ }
+ default:
+ return 0, fmt.Errorf("invalid token %#v: %w", tk, ErrPointer)
+ }
+ default:
+ return 0, fmt.Errorf("invalid token %#v: %w", tk, ErrPointer)
}
-
- elem := rValue.Index(tokenIndex)
- return elem.Interface(), kind, nil
-
- default:
- return nil, kind, fmt.Errorf("invalid token reference %q: %w", decodedToken, ErrPointer)
}
-
+ return offset, nil
}
-func setSingleImpl(node, data any, decodedToken string, nameProvider *swag.NameProvider) error {
- rValue := reflect.Indirect(reflect.ValueOf(node))
-
- if ns, ok := node.(JSONSetable); ok { // pointer impl
- return ns.JSONSet(decodedToken, data)
- }
-
- if rValue.Type().Implements(jsonSetableType) {
- return node.(JSONSetable).JSONSet(decodedToken, data)
- }
-
- switch rValue.Kind() { //nolint:exhaustive
- case reflect.Struct:
- nm, ok := nameProvider.GetGoNameForType(rValue.Type(), decodedToken)
- if !ok {
- return fmt.Errorf("object has no field %q: %w", decodedToken, ErrPointer)
- }
- fld := rValue.FieldByName(nm)
- if fld.IsValid() {
- fld.Set(reflect.ValueOf(data))
- }
- return nil
-
- case reflect.Map:
- kv := reflect.ValueOf(decodedToken)
- rValue.SetMapIndex(kv, reflect.ValueOf(data))
- return nil
-
- case reflect.Slice:
- tokenIndex, err := strconv.Atoi(decodedToken)
- if err != nil {
- return err
- }
- sLength := rValue.Len()
- if tokenIndex < 0 || tokenIndex >= sLength {
- return fmt.Errorf("index out of bounds array[0,%d] index '%d': %w", sLength, tokenIndex, ErrPointer)
- }
+// "Constructor", parses the given string JSON pointer
+func (p *Pointer) parse(jsonPointerString string) error {
+ var err error
- elem := rValue.Index(tokenIndex)
- if !elem.CanSet() {
- return fmt.Errorf("can't set slice index %s to %v: %w", decodedToken, data, ErrPointer)
+ if jsonPointerString != emptyPointer {
+ if !strings.HasPrefix(jsonPointerString, pointerSeparator) {
+ err = errors.Join(ErrInvalidStart, ErrPointer)
+ } else {
+ referenceTokens := strings.Split(jsonPointerString, pointerSeparator)
+ p.referenceTokens = append(p.referenceTokens, referenceTokens[1:]...)
}
- elem.Set(reflect.ValueOf(data))
- return nil
-
- default:
- return fmt.Errorf("invalid token reference %q: %w", decodedToken, ErrPointer)
}
+ return err
}
-func (p *Pointer) get(node any, nameProvider *swag.NameProvider) (any, reflect.Kind, error) {
-
+func (p *Pointer) get(node any, nameProvider *jsonname.NameProvider) (any, reflect.Kind, error) {
if nameProvider == nil {
- nameProvider = swag.DefaultJSONNameProvider
+ nameProvider = jsonname.DefaultJSONNameProvider
}
kind := reflect.Invalid
@@ -256,10 +181,10 @@ func (p *Pointer) get(node any, nameProvider *swag.NameProvider) (any, reflect.K
return node, kind, nil
}
-func (p *Pointer) set(node, data any, nameProvider *swag.NameProvider) error {
+func (p *Pointer) set(node, data any, nameProvider *jsonname.NameProvider) error {
knd := reflect.ValueOf(node).Kind()
- if knd != reflect.Ptr && knd != reflect.Struct && knd != reflect.Map && knd != reflect.Slice && knd != reflect.Array {
+ if knd != reflect.Pointer && knd != reflect.Struct && knd != reflect.Map && knd != reflect.Slice && knd != reflect.Array {
return errors.Join(
ErrUnsupportedValueType,
ErrPointer,
@@ -267,7 +192,7 @@ func (p *Pointer) set(node, data any, nameProvider *swag.NameProvider) error {
}
if nameProvider == nil {
- nameProvider = swag.DefaultJSONNameProvider
+ nameProvider = jsonname.DefaultJSONNameProvider
}
// Full document when empty
@@ -285,6 +210,11 @@ func (p *Pointer) set(node, data any, nameProvider *swag.NameProvider) error {
return setSingleImpl(node, data, decodedToken, nameProvider)
}
+ // Check for nil during traversal
+ if isNil(node) {
+ return fmt.Errorf("cannot traverse through nil value at %q: %w", decodedToken, ErrPointer)
+ }
+
rValue := reflect.Indirect(reflect.ValueOf(node))
kind := rValue.Kind()
@@ -294,7 +224,7 @@ func (p *Pointer) set(node, data any, nameProvider *swag.NameProvider) error {
return err
}
fld := reflect.ValueOf(r)
- if fld.CanAddr() && fld.Kind() != reflect.Interface && fld.Kind() != reflect.Map && fld.Kind() != reflect.Slice && fld.Kind() != reflect.Ptr {
+ if fld.CanAddr() && fld.Kind() != reflect.Interface && fld.Kind() != reflect.Map && fld.Kind() != reflect.Slice && fld.Kind() != reflect.Pointer {
node = fld.Addr().Interface()
continue
}
@@ -309,7 +239,7 @@ func (p *Pointer) set(node, data any, nameProvider *swag.NameProvider) error {
return fmt.Errorf("object has no field %q: %w", decodedToken, ErrPointer)
}
fld := rValue.FieldByName(nm)
- if fld.CanAddr() && fld.Kind() != reflect.Interface && fld.Kind() != reflect.Map && fld.Kind() != reflect.Slice && fld.Kind() != reflect.Ptr {
+ if fld.CanAddr() && fld.Kind() != reflect.Interface && fld.Kind() != reflect.Map && fld.Kind() != reflect.Slice && fld.Kind() != reflect.Pointer {
node = fld.Addr().Interface()
continue
}
@@ -322,7 +252,7 @@ func (p *Pointer) set(node, data any, nameProvider *swag.NameProvider) error {
if !mv.IsValid() {
return fmt.Errorf("object has no key %q: %w", decodedToken, ErrPointer)
}
- if mv.CanAddr() && mv.Kind() != reflect.Interface && mv.Kind() != reflect.Map && mv.Kind() != reflect.Slice && mv.Kind() != reflect.Ptr {
+ if mv.CanAddr() && mv.Kind() != reflect.Interface && mv.Kind() != reflect.Map && mv.Kind() != reflect.Slice && mv.Kind() != reflect.Pointer {
node = mv.Addr().Interface()
continue
}
@@ -339,7 +269,7 @@ func (p *Pointer) set(node, data any, nameProvider *swag.NameProvider) error {
}
elem := rValue.Index(tokenIndex)
- if elem.CanAddr() && elem.Kind() != reflect.Interface && elem.Kind() != reflect.Map && elem.Kind() != reflect.Slice && elem.Kind() != reflect.Ptr {
+ if elem.CanAddr() && elem.Kind() != reflect.Interface && elem.Kind() != reflect.Map && elem.Kind() != reflect.Slice && elem.Kind() != reflect.Pointer {
node = elem.Addr().Interface()
continue
}
@@ -348,68 +278,142 @@ func (p *Pointer) set(node, data any, nameProvider *swag.NameProvider) error {
default:
return fmt.Errorf("invalid token reference %q: %w", decodedToken, ErrPointer)
}
-
}
return nil
}
-// DecodedTokens returns the decoded tokens
-func (p *Pointer) DecodedTokens() []string {
- result := make([]string, 0, len(p.referenceTokens))
- for _, t := range p.referenceTokens {
- result = append(result, Unescape(t))
+func isNil(input any) bool {
+ if input == nil {
+ return true
+ }
+
+ kind := reflect.TypeOf(input).Kind()
+ switch kind { //nolint:exhaustive
+ case reflect.Pointer, reflect.Map, reflect.Slice, reflect.Chan:
+ return reflect.ValueOf(input).IsNil()
+ default:
+ return false
}
- return result
}
-// IsEmpty returns true if this is an empty json pointer
-// this indicates that it points to the root document
-func (p *Pointer) IsEmpty() bool {
- return len(p.referenceTokens) == 0
+// GetForToken gets a value for a json pointer token 1 level deep
+func GetForToken(document any, decodedToken string) (any, reflect.Kind, error) {
+ return getSingleImpl(document, decodedToken, jsonname.DefaultJSONNameProvider)
}
-// Pointer to string representation function
-func (p *Pointer) String() string {
+// SetForToken gets a value for a json pointer token 1 level deep
+func SetForToken(document any, decodedToken string, value any) (any, error) {
+ return document, setSingleImpl(document, value, decodedToken, jsonname.DefaultJSONNameProvider)
+}
- if len(p.referenceTokens) == 0 {
- return emptyPointer
+func getSingleImpl(node any, decodedToken string, nameProvider *jsonname.NameProvider) (any, reflect.Kind, error) {
+ rValue := reflect.Indirect(reflect.ValueOf(node))
+ kind := rValue.Kind()
+ if isNil(node) {
+ return nil, kind, fmt.Errorf("nil value has no field %q: %w", decodedToken, ErrPointer)
}
- pointerString := pointerSeparator + strings.Join(p.referenceTokens, pointerSeparator)
+ switch typed := node.(type) {
+ case JSONPointable:
+ r, err := typed.JSONLookup(decodedToken)
+ if err != nil {
+ return nil, kind, err
+ }
+ return r, kind, nil
+ case *any: // case of a pointer to interface, that is not resolved by reflect.Indirect
+ return getSingleImpl(*typed, decodedToken, nameProvider)
+ }
+
+ switch kind { //nolint:exhaustive
+ case reflect.Struct:
+ nm, ok := nameProvider.GetGoNameForType(rValue.Type(), decodedToken)
+ if !ok {
+ return nil, kind, fmt.Errorf("object has no field %q: %w", decodedToken, ErrPointer)
+ }
+ fld := rValue.FieldByName(nm)
+ return fld.Interface(), kind, nil
+
+ case reflect.Map:
+ kv := reflect.ValueOf(decodedToken)
+ mv := rValue.MapIndex(kv)
+
+ if mv.IsValid() {
+ return mv.Interface(), kind, nil
+ }
+ return nil, kind, fmt.Errorf("object has no key %q: %w", decodedToken, ErrPointer)
+
+ case reflect.Slice:
+ tokenIndex, err := strconv.Atoi(decodedToken)
+ if err != nil {
+ return nil, kind, err
+ }
+ sLength := rValue.Len()
+ if tokenIndex < 0 || tokenIndex >= sLength {
+ return nil, kind, fmt.Errorf("index out of bounds array[0,%d] index '%d': %w", sLength-1, tokenIndex, ErrPointer)
+ }
+
+ elem := rValue.Index(tokenIndex)
+ return elem.Interface(), kind, nil
- return pointerString
+ default:
+ return nil, kind, fmt.Errorf("invalid token reference %q: %w", decodedToken, ErrPointer)
+ }
}
-func (p *Pointer) Offset(document string) (int64, error) {
- dec := json.NewDecoder(strings.NewReader(document))
- var offset int64
- for _, ttk := range p.DecodedTokens() {
- tk, err := dec.Token()
+func setSingleImpl(node, data any, decodedToken string, nameProvider *jsonname.NameProvider) error {
+ rValue := reflect.Indirect(reflect.ValueOf(node))
+
+ // Check for nil to prevent panic when calling rValue.Type()
+ if isNil(node) {
+ return fmt.Errorf("cannot set field %q on nil value: %w", decodedToken, ErrPointer)
+ }
+
+ if ns, ok := node.(JSONSetable); ok { // pointer impl
+ return ns.JSONSet(decodedToken, data)
+ }
+
+ if rValue.Type().Implements(jsonSetableType) {
+ return node.(JSONSetable).JSONSet(decodedToken, data)
+ }
+
+ switch rValue.Kind() { //nolint:exhaustive
+ case reflect.Struct:
+ nm, ok := nameProvider.GetGoNameForType(rValue.Type(), decodedToken)
+ if !ok {
+ return fmt.Errorf("object has no field %q: %w", decodedToken, ErrPointer)
+ }
+ fld := rValue.FieldByName(nm)
+ if fld.IsValid() {
+ fld.Set(reflect.ValueOf(data))
+ }
+ return nil
+
+ case reflect.Map:
+ kv := reflect.ValueOf(decodedToken)
+ rValue.SetMapIndex(kv, reflect.ValueOf(data))
+ return nil
+
+ case reflect.Slice:
+ tokenIndex, err := strconv.Atoi(decodedToken)
if err != nil {
- return 0, err
+ return err
}
- switch tk := tk.(type) {
- case json.Delim:
- switch tk {
- case '{':
- offset, err = offsetSingleObject(dec, ttk)
- if err != nil {
- return 0, err
- }
- case '[':
- offset, err = offsetSingleArray(dec, ttk)
- if err != nil {
- return 0, err
- }
- default:
- return 0, fmt.Errorf("invalid token %#v: %w", tk, ErrPointer)
- }
- default:
- return 0, fmt.Errorf("invalid token %#v: %w", tk, ErrPointer)
+ sLength := rValue.Len()
+ if tokenIndex < 0 || tokenIndex >= sLength {
+ return fmt.Errorf("index out of bounds array[0,%d] index '%d': %w", sLength, tokenIndex, ErrPointer)
}
+
+ elem := rValue.Index(tokenIndex)
+ if !elem.CanSet() {
+ return fmt.Errorf("can't set slice index %s to %v: %w", decodedToken, data, ErrPointer)
+ }
+ elem.Set(reflect.ValueOf(data))
+ return nil
+
+ default:
+ return fmt.Errorf("invalid token reference %q: %w", decodedToken, ErrPointer)
}
- return offset, nil
}
func offsetSingleObject(dec *json.Decoder, decodedToken string) (int64, error) {
@@ -515,16 +519,17 @@ const (
decRefTok1 = `/`
)
+var (
+ encRefTokReplacer = strings.NewReplacer(encRefTok1, decRefTok1, encRefTok0, decRefTok0)
+ decRefTokReplacer = strings.NewReplacer(decRefTok1, encRefTok1, decRefTok0, encRefTok0)
+)
+
// Unescape unescapes a json pointer reference token string to the original representation
func Unescape(token string) string {
- step1 := strings.ReplaceAll(token, encRefTok1, decRefTok1)
- step2 := strings.ReplaceAll(step1, encRefTok0, decRefTok0)
- return step2
+ return encRefTokReplacer.Replace(token)
}
// Escape escapes a pointer reference token string
func Escape(token string) string {
- step1 := strings.ReplaceAll(token, decRefTok0, encRefTok0)
- step2 := strings.ReplaceAll(step1, decRefTok1, encRefTok1)
- return step2
+ return decRefTokReplacer.Replace(token)
}
diff --git a/vendor/github.com/go-openapi/jsonreference/.golangci.yml b/vendor/github.com/go-openapi/jsonreference/.golangci.yml
index 22f8d21c..7cea1af8 100644
--- a/vendor/github.com/go-openapi/jsonreference/.golangci.yml
+++ b/vendor/github.com/go-openapi/jsonreference/.golangci.yml
@@ -1,61 +1,75 @@
-linters-settings:
- govet:
- check-shadowing: true
- golint:
- min-confidence: 0
- gocyclo:
- min-complexity: 45
- maligned:
- suggest-new: true
- dupl:
- threshold: 200
- goconst:
- min-len: 2
- min-occurrences: 3
-
+version: "2"
linters:
- enable-all: true
+ default: all
disable:
- - maligned
- - unparam
- - lll
- - gochecknoinits
- - gochecknoglobals
+ - cyclop
+ - depguard
+ - errchkjson
+ - errorlint
+ - exhaustruct
+ - forcetypeassert
- funlen
- - godox
+ - gochecknoglobals
+ - gochecknoinits
- gocognit
- - whitespace
- - wsl
- - wrapcheck
- - testpackage
- - nlreturn
- - gomnd
- - exhaustivestruct
- - goerr113
- - errorlint
- - nestif
- godot
- - gofumpt
+ - godox
+ - gosmopolitan
+ - inamedparam
+ #- intrange # disabled while < go1.22
+ - ireturn
+ - lll
+ - musttag
+ - nestif
+ - nlreturn
+ - nonamedreturns
+ - noinlineerr
- paralleltest
- - tparallel
+ - recvcheck
+ - testpackage
- thelper
- - ifshort
- - exhaustruct
+ - tparallel
+ - unparam
- varnamelen
- - gci
- - depguard
- - errchkjson
- - inamedparam
- - nonamedreturns
- - musttag
- - ireturn
- - forcetypeassert
- - cyclop
- # deprecated linters
- - deadcode
- - interfacer
- - scopelint
- - varcheck
- - structcheck
- - golint
- - nosnakecase
+ - whitespace
+ - wrapcheck
+ - wsl
+ - wsl_v5
+ settings:
+ dupl:
+ threshold: 200
+ goconst:
+ min-len: 2
+ min-occurrences: 3
+ gocyclo:
+ min-complexity: 45
+ exclusions:
+ generated: lax
+ presets:
+ - comments
+ - common-false-positives
+ - legacy
+ - std-error-handling
+ paths:
+ - third_party$
+ - builtin$
+ - examples$
+formatters:
+ enable:
+ - gofmt
+ - goimports
+ exclusions:
+ generated: lax
+ paths:
+ - third_party$
+ - builtin$
+ - examples$
+issues:
+ # Maximum issues count per one linter.
+ # Set to 0 to disable.
+ # Default: 50
+ max-issues-per-linter: 0
+ # Maximum count of issues with the same text.
+ # Set to 0 to disable.
+ # Default: 3
+ max-same-issues: 0
diff --git a/vendor/github.com/go-openapi/jsonreference/reference.go b/vendor/github.com/go-openapi/jsonreference/reference.go
index cfdef03e..6a1fed5d 100644
--- a/vendor/github.com/go-openapi/jsonreference/reference.go
+++ b/vendor/github.com/go-openapi/jsonreference/reference.go
@@ -38,13 +38,25 @@ const (
fragmentRune = `#`
)
+var ErrChildURL = errors.New("child url is nil")
+
+// Ref represents a json reference object
+type Ref struct {
+ referenceURL *url.URL
+ referencePointer jsonpointer.Pointer
+
+ HasFullURL bool
+ HasURLPathOnly bool
+ HasFragmentOnly bool
+ HasFileScheme bool
+ HasFullFilePath bool
+}
+
// New creates a new reference for the given string
func New(jsonReferenceString string) (Ref, error) {
-
var r Ref
err := r.parse(jsonReferenceString)
return r, err
-
}
// MustCreateRef parses the ref string and panics when it's invalid.
@@ -54,19 +66,8 @@ func MustCreateRef(ref string) Ref {
if err != nil {
panic(err)
}
- return r
-}
-// Ref represents a json reference object
-type Ref struct {
- referenceURL *url.URL
- referencePointer jsonpointer.Pointer
-
- HasFullURL bool
- HasURLPathOnly bool
- HasFragmentOnly bool
- HasFileScheme bool
- HasFullFilePath bool
+ return r
}
// GetURL gets the URL for this reference
@@ -81,7 +82,6 @@ func (r *Ref) GetPointer() *jsonpointer.Pointer {
// String returns the best version of the url for this reference
func (r *Ref) String() string {
-
if r.referenceURL != nil {
return r.referenceURL.String()
}
@@ -106,9 +106,27 @@ func (r *Ref) IsCanonical() bool {
return (r.HasFileScheme && r.HasFullFilePath) || (!r.HasFileScheme && r.HasFullURL)
}
+// Inherits creates a new reference from a parent and a child
+// If the child cannot inherit from the parent, an error is returned
+func (r *Ref) Inherits(child Ref) (*Ref, error) {
+ childURL := child.GetURL()
+ parentURL := r.GetURL()
+ if childURL == nil {
+ return nil, ErrChildURL
+ }
+ if parentURL == nil {
+ return &child, nil
+ }
+
+ ref, err := New(parentURL.ResolveReference(childURL).String())
+ if err != nil {
+ return nil, err
+ }
+ return &ref, nil
+}
+
// "Constructor", parses the given string JSON reference
func (r *Ref) parse(jsonReferenceString string) error {
-
parsed, err := url.Parse(jsonReferenceString)
if err != nil {
return err
@@ -137,22 +155,3 @@ func (r *Ref) parse(jsonReferenceString string) error {
return nil
}
-
-// Inherits creates a new reference from a parent and a child
-// If the child cannot inherit from the parent, an error is returned
-func (r *Ref) Inherits(child Ref) (*Ref, error) {
- childURL := child.GetURL()
- parentURL := r.GetURL()
- if childURL == nil {
- return nil, errors.New("child url is nil")
- }
- if parentURL == nil {
- return &child, nil
- }
-
- ref, err := New(parentURL.ResolveReference(childURL).String())
- if err != nil {
- return nil, err
- }
- return &ref, nil
-}
diff --git a/vendor/github.com/go-openapi/swag/.codecov.yml b/vendor/github.com/go-openapi/swag/.codecov.yml
new file mode 100644
index 00000000..3354f44b
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/.codecov.yml
@@ -0,0 +1,4 @@
+ignore:
+ - jsonutils/fixtures_test
+ - jsonutils/adapters/ifaces/mocks
+ - jsonutils/adapters/testintegration/benchmarks
diff --git a/vendor/github.com/go-openapi/swag/.golangci.yml b/vendor/github.com/go-openapi/swag/.golangci.yml
index d2fafb8a..4129e7e5 100644
--- a/vendor/github.com/go-openapi/swag/.golangci.yml
+++ b/vendor/github.com/go-openapi/swag/.golangci.yml
@@ -1,56 +1,77 @@
-linters-settings:
- gocyclo:
- min-complexity: 45
- dupl:
- threshold: 200
- goconst:
- min-len: 2
- min-occurrences: 3
-
+version: "2"
linters:
- enable-all: true
+ default: all
disable:
- - recvcheck
- - unparam
- - lll
- - gochecknoinits
- - gochecknoglobals
+ - cyclop
+ - depguard
+ - errchkjson
+ - errorlint
+ - exhaustruct
+ - forcetypeassert
- funlen
- - godox
+ - gochecknoglobals
+ - gochecknoinits
- gocognit
- - whitespace
- - wsl
- - wrapcheck
- - testpackage
- - nlreturn
- - errorlint
- - nestif
- godot
- - gofumpt
+ - godox
+ - gomoddirectives
+ - gosmopolitan
+ - inamedparam
+ - intrange
+ - ireturn
+ - lll
+ - musttag
+ - nestif
+ - nlreturn
+ - nonamedreturns
+ - noinlineerr
- paralleltest
- - tparallel
+ - recvcheck
+ - testpackage
- thelper
- - exhaustruct
+ - tagliatelle
+ - tparallel
+ - unparam
- varnamelen
- - gci
- - depguard
- - errchkjson
- - inamedparam
- - nonamedreturns
- - musttag
- - ireturn
- - forcetypeassert
- - cyclop
- # deprecated linters
- #- deadcode
- #- interfacer
- #- scopelint
- #- varcheck
- #- structcheck
- #- golint
- #- nosnakecase
- #- maligned
- #- goerr113
- #- ifshort
- #- gomnd
- #- exhaustivestruct
+ - whitespace
+ - wrapcheck
+ - wsl
+ - wsl_v5
+ settings:
+ dupl:
+ threshold: 200
+ goconst:
+ min-len: 2
+ min-occurrences: 3
+ gocyclo:
+ min-complexity: 45
+ exclusions:
+ generated: lax
+ presets:
+ - comments
+ - common-false-positives
+ - legacy
+ - std-error-handling
+ paths:
+ - third_party$
+ - builtin$
+ - examples$
+formatters:
+ enable:
+ - gofmt
+ - goimports
+ exclusions:
+ generated: lax
+ paths:
+ - third_party$
+ - builtin$
+ - examples$
+issues:
+ # Maximum issues count per one linter.
+ # Set to 0 to disable.
+ # Default: 50
+ max-issues-per-linter: 0
+ # Maximum count of issues with the same text.
+ # Set to 0 to disable.
+ # Default: 3
+ max-same-issues: 0
diff --git a/vendor/github.com/go-openapi/swag/.mockery.yml b/vendor/github.com/go-openapi/swag/.mockery.yml
new file mode 100644
index 00000000..8557cb58
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/.mockery.yml
@@ -0,0 +1,30 @@
+all: false
+dir: '{{.InterfaceDir}}'
+filename: mocks_test.go
+force-file-write: true
+formatter: goimports
+include-auto-generated: false
+log-level: info
+structname: '{{.Mock}}{{.InterfaceName}}'
+pkgname: '{{.SrcPackageName}}'
+recursive: false
+require-template-schema-exists: true
+template: matryer
+template-schema: '{{.Template}}.schema.json'
+packages:
+ github.com/go-openapi/swag/jsonutils/adapters/ifaces:
+ config:
+ dir: jsonutils/adapters/ifaces/mocks
+ filename: mocks.go
+ pkgname: 'mocks'
+ force-file-write: true
+ all: true
+ github.com/go-openapi/swag/jsonutils/adapters/testintegration:
+ config:
+ inpackage: true
+ dir: jsonutils/adapters/testintegration
+ force-file-write: true
+ all: true
+ interfaces:
+ EJMarshaler:
+ EJUnmarshaler:
diff --git a/vendor/github.com/go-openapi/swag/README.md b/vendor/github.com/go-openapi/swag/README.md
index a7292229..786b92fd 100644
--- a/vendor/github.com/go-openapi/swag/README.md
+++ b/vendor/github.com/go-openapi/swag/README.md
@@ -1,23 +1,192 @@
# Swag [](https://github.com/go-openapi/swag/actions?query=workflow%3A"go+test") [](https://codecov.io/gh/go-openapi/swag)
[](https://slackin.goswagger.io)
-[](https://raw.githubusercontent.com/go-openapi/swag/master/LICENSE)
+[](https://raw.githubusercontent.com/go-openapi/swag/master/LICENSE)
[](https://pkg.go.dev/github.com/go-openapi/swag)
[](https://goreportcard.com/report/github.com/go-openapi/swag)
-Contains a bunch of helper functions for go-openapi and go-swagger projects.
+Package `swag` contains a bunch of helper functions for go-openapi and go-swagger projects.
You may also use it standalone for your projects.
-* convert between value and pointers for builtin types
-* convert from string to builtin types (wraps strconv)
-* fast json concatenation
-* search in path
-* load from file or http
-* name mangling
+> **NOTE**
+> `swag` is one of the foundational building blocks of the go-openapi initiative.
+> Most repositories in `github.com/go-openapi/...` depend on it in some way.
+> And so does our CLI tool `github.com/go-swagger/go-swagger`,
+> as well as the code generated by this tool.
+* [Contents](#contents)
+* [Dependencies](#dependencies)
+* [Release Notes](#release-notes)
+* [Note to contributors](#note-to-contributors)
+* [TODOs, suggestions and plans](#todos-suggestions-and-plans)
-This repo has only few dependencies outside of the standard library:
+## Contents
-* YAML utilities depend on `gopkg.in/yaml.v3`
-* `github.com/mailru/easyjson v0.7.7`
+`go-openapi/swag` exposes a collection of relatively independent modules.
+
+Moving forward, no additional feature will be added to the `swag` API directly at the root package level,
+which remains there for backward-compatibility purposes. All exported top-level features are now deprecated.
+
+Child modules will continue to evolve and some new ones may be added in the future.
+
+| Module | Content | Main features |
+|---------------|---------|---------------|
+| `cmdutils` | utilities to work with CLIs ||
+| `conv` | type conversion utilities | convert between values and pointers for any types
convert from string to builtin types (wraps `strconv`)
require `./typeutils` (test dependency)
|
+| `fileutils` | file utilities | |
+| `jsonname` | JSON utilities | infer JSON names from `go` properties
|
+| `jsonutils` | JSON utilities | fast json concatenation
read and write JSON from and to dynamic `go` data structures
~require `github.com/mailru/easyjson`~
|
+| `loading` | file loading | load from file or http
require `./yamlutils`
|
+| `mangling` | safe name generation | name mangling for `go`
|
+| `netutils` | networking utilities | host, port from address
|
+| `stringutils` | `string` utilities | search in slice (with case-insensitive)
split/join query parameters as arrays
|
+| `typeutils` | `go` types utilities | check the zero value for any type
safe check for a nil value
|
+| `yamlutils` | YAML utilities | converting YAML to JSON
loading YAML into a dynamic YAML document
maintaining the original order of keys in YAML objects
require `./jsonutils`
~require `github.com/mailru/easyjson`~
require `go.yaml.in/yaml/v3`
|
+
+---
+
+## Dependencies
+
+The root module `github.com/go-openapi/swag` at the repo level maintains a few
+dependencies outside of the standard library.
+
+* YAML utilities depend on `go.yaml.in/yaml/v3`
+* JSON utilities depend on their registered adapter module:
+ * by default, only the standard library is used
+ * `github.com/mailru/easyjson` is now only a dependency for module
+ `github.com/go-openapi/swag/jsonutils/adapters/easyjson/json`,
+ for users willing to import that module.
+ * integration tests and benchmarks use all the dependencies are published as their own module
+* other dependencies are test dependencies drawn from `github.com/stretchr/testify`
+
+## Release notes
+
+### v0.25.1
+
+* fixes a data race that could occur when using the standard library implementation of a JSON ordered map
+
+### v0.25.0
+
+**New with this release**:
+
+* requires `go1.24`, as iterators are being introduced
+* removes the dependency to `mailru/easyjson` by default (#68)
+ * functionality remains the same, but performance may somewhat degrade for applications
+ that relied on `easyjson`
+ * users of the JSON or YAML utilities who want to use `easyjson` as their prefered JSON serializer library
+ will be able to do so by registering this the corresponding JSON adapter at runtime. See below.
+ * ordered keys in JSON and YAML objects: this feature used to rely solely on `easyjson`.
+ With this release, an implementation relying on the standard `encoding/json` is provided.
+ * an independent [benchmark](./jsonutils/adapters/testintegration/benchmarks/README.md) to compare the different adapters
+* improves the "float is integer" check (`conv.IsFloat64AJSONInteger`) (#59)
+* removes the _direct_ dependency to `gopkg.in/yaml.v3` (indirect dependency is still incurred through `stretchr/testify`) (#127)
+* exposed `conv.IsNil()` (previously kept private): a safe nil check (accounting for the "non-nil interface with nil value" nonsensical go trick)
+
+**What coming next?**
+
+Moving forward, we want to :
+* provide an implementation of the JSON adapter based on `encoding/json/v2`, for `go1.25` builds.
+* provide similar implementations for `goccy/go-json` and `jsoniterator/go`, and perhaps some other
+ similar libraries may be interesting too.
+
+
+**How to explicitly register a dependency at runtime**?
+
+The following would maintain how JSON utilities proposed by `swag` used work, up to `v0.24.1`.
+
+ ```go
+ import "github.com/go-openapi/swag/jsonutils/adapters/easyjson/json"
+
+ func init() {
+ json.Register()
+ }
+ ```
+
+Subsequent calls to `jsonutils.ReadJSON()` or `jsonutils.WriteJSON()` will switch to `easyjson`
+whenever the passed data structures implement the `easyjson.Unmarshaler` or `easyjson.Marshaler` respectively,
+or fallback to the standard library.
+
+### v0.24.0
+
+With this release, we have largely modernized the API of `swag`:
+
+* The traditional `swag` API is still supported: code that imports `swag` will still
+ compile and work the same.
+* A deprecation notice is published to encourage consumers of this library to adopt
+ the newer API
+* **Deprecation notice**
+ * configuration through global variables is now deprecated, in favor of options passed as parameters
+ * all helper functions are moved to more specialized packages, which are exposed as
+ go modules. Importing such a module would reduce the footprint of dependencies.
+ * _all_ functions, variables, constants exposed by the deprecated API have now moved, so
+ that consumers of the new API no longer need to import github.com/go-openapi/swag, but
+ should import the desired sub-module(s).
+
+**New with this release**:
+
+* [x] type converters and pointer to value helpers now support generic types
+* [x] name mangling now support pluralized initialisms (issue #46)
+ Strings like "contact IDs" are now recognized as such a plural form and mangled as a linter would expect.
+* [x] performance: small improvements to reduce the overhead of convert/format wrappers (see issues #110, or PR #108)
+* [x] performance: name mangling utilities run ~ 10% faster (PR #115)
+
+---
+
+## Note to contributors
+
+A mono-repo structure comes with some unavoidable extra pains...
+
+* Testing
+
+> The usual `go test ./...` command, run from the root of this repo won't work any longer to test all submodules.
+>
+> Each module constitutes an independant unit of test. So you have to run `go test` inside each module.
+> Or you may take a look at how this is achieved by CI
+> [here] https://github.com/go-openapi/swag/blob/master/.github/workflows/go-test.yml).
+>
+> There are also some alternative tricks using `go work`, for local development, if you feel comfortable with
+> go workspaces. Perhaps some day, we'll have a `go work test` to run all tests without any hack.
+
+* Releasing
+
+> Each module follows its own independant module versioning.
+>
+> So you have tags like `mangling/v0.24.0`, `fileutils/v0.24.0` etc that are used by `go mod` and `go get`
+> to refer to the tagged version of each module specifically.
+>
+> This means we may release patches etc to each module independently.
+>
+> We'd like to adopt the rule that modules in this repo would only differ by a patch version
+> (e.g. `v0.24.5` vs `v0.24.3`), and we'll level all modules whenever a minor version is introduced.
+>
+> A script in `./hack` is provided to tag all modules with the same version in one go.
+
+* Continuous integration
+
+> At this moment, all tests in all modules are systematically run over the full test matrix (3 platform x 2 go releases).
+> This generates quite a lot of jobs.
+>
+> We ought to reduce the number of jobs required to test a PR focused on only a few modules.
+
+## Todos, suggestions and plans
+
+All kinds of contributions are welcome.
+
+A few ideas:
+
+* [x] Complete the split of dependencies to isolate easyjson from the rest
+* [x] Improve CI to reduce needed tests
+* [x] Replace dependency to `gopkg.in/yaml.v3` (`yamlutil`)
+* [ ] Improve mangling utilities (improve readability, support for capitalized words,
+ better word substitution for non-letter symbols...)
+* [ ] Move back to this common shared pot a few of the technical features introduced by go-swagger independently
+ (e.g. mangle go package names, search package with go modules support, ...)
+* [ ] Apply a similar mono-repo approach to go-openapi/strfmt which suffer from similar woes: bloated API,
+ imposed dependency to some database driver.
+* [ ] Adapt `go-swagger` (incl. generated code) to the new `swag` API.
+* [ ] Factorize some tests, as there is a lot of redundant testing code in `jsonutils`
+* [ ] Benchmark & profiling: publish independently the tool built to analyze and chart benchmarks (e.g. similar to `benchvisual`)
+* [ ] more thorough testing for nil / null case
+* [ ] ci pipeline to manage releases
+* [ ] cleaner mockery generation (doesn't work out of the box for all sub-modules)
diff --git a/vendor/github.com/go-openapi/swag/TODO.md b/vendor/github.com/go-openapi/swag/TODO.md
new file mode 100644
index 00000000..12988803
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/TODO.md
@@ -0,0 +1 @@
+fix data race https://github.com/go-openapi/swag/actions/runs/17989156861/job/51174860188
diff --git a/vendor/github.com/go-openapi/swag/cmdutils/LICENSE b/vendor/github.com/go-openapi/swag/cmdutils/LICENSE
new file mode 100644
index 00000000..d6456956
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/cmdutils/LICENSE
@@ -0,0 +1,202 @@
+
+ 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/go-openapi/swag/cmdutils/cmd_utils.go b/vendor/github.com/go-openapi/swag/cmdutils/cmd_utils.go
new file mode 100644
index 00000000..bc01ec2b
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/cmdutils/cmd_utils.go
@@ -0,0 +1,24 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+package cmdutils
+
+// CommandLineOptionsGroup represents a group of user-defined command line options.
+//
+// This is for instance used to configure command line arguments in API servers generated by go-swagger.
+type CommandLineOptionsGroup struct {
+ ShortDescription string
+ LongDescription string
+ Options interface{}
+}
diff --git a/vendor/github.com/go-openapi/swag/cmdutils/doc.go b/vendor/github.com/go-openapi/swag/cmdutils/doc.go
new file mode 100644
index 00000000..63ac1d17
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/cmdutils/doc.go
@@ -0,0 +1,16 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+// Package cmdutils brings helpers for CLIs produced by go-openapi
+package cmdutils
diff --git a/vendor/github.com/go-openapi/swag/cmdutils_iface.go b/vendor/github.com/go-openapi/swag/cmdutils_iface.go
new file mode 100644
index 00000000..1eaf36f1
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/cmdutils_iface.go
@@ -0,0 +1,22 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+package swag
+
+import "github.com/go-openapi/swag/cmdutils"
+
+// CommandLineOptionsGroup represents a group of user-defined command line options.
+//
+// Deprecated: use [cmdutils.CommandLineOptionsGroup] instead.
+type CommandLineOptionsGroup = cmdutils.CommandLineOptionsGroup
diff --git a/vendor/github.com/go-openapi/swag/conv/LICENSE b/vendor/github.com/go-openapi/swag/conv/LICENSE
new file mode 100644
index 00000000..d6456956
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/conv/LICENSE
@@ -0,0 +1,202 @@
+
+ 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/go-openapi/swag/conv/convert.go b/vendor/github.com/go-openapi/swag/conv/convert.go
new file mode 100644
index 00000000..b9b86985
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/conv/convert.go
@@ -0,0 +1,172 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+package conv
+
+import (
+ "math"
+ "strconv"
+ "strings"
+)
+
+// same as ECMA Number.MAX_SAFE_INTEGER and Number.MIN_SAFE_INTEGER
+const (
+ maxJSONFloat = float64(1<<53 - 1) // 9007199254740991.0 2^53 - 1
+ minJSONFloat = -float64(1<<53 - 1) //-9007199254740991.0 -2^53 - 1
+ epsilon float64 = 1e-9
+)
+
+// IsFloat64AJSONInteger allows for integers [-2^53, 2^53-1] inclusive.
+func IsFloat64AJSONInteger(f float64) bool {
+ if math.IsNaN(f) || math.IsInf(f, 0) || f < minJSONFloat || f > maxJSONFloat {
+ return false
+ }
+ rounded := math.Round(f)
+ if f == rounded {
+ return true
+ }
+ if rounded == 0 { // f = 0.0 exited above
+ return false
+ }
+
+ diff := math.Abs(f - rounded)
+ if diff == 0 {
+ return true
+ }
+
+ // relative error Abs{f - Round(f)) / Round(f)} < ε ; Round(f)
+ return diff < epsilon*math.Abs(rounded)
+}
+
+// ConvertFloat turns a string into a float numerical value.
+func ConvertFloat[T Float](str string) (T, error) {
+ var v T
+ f, err := strconv.ParseFloat(str, bitsize(v))
+ if err != nil {
+ return 0, err
+ }
+
+ return T(f), nil
+}
+
+// ConvertInteger turns a string into a signed integer.
+func ConvertInteger[T Signed](str string) (T, error) {
+ var v T
+ f, err := strconv.ParseInt(str, 10, bitsize(v))
+ if err != nil {
+ return 0, err
+ }
+
+ return T(f), nil
+}
+
+// ConvertUinteger turns a string into an unsigned integer.
+func ConvertUinteger[T Unsigned](str string) (T, error) {
+ var v T
+ f, err := strconv.ParseUint(str, 10, bitsize(v))
+ if err != nil {
+ return 0, err
+ }
+
+ return T(f), nil
+}
+
+// ConvertBool turns a string into a boolean.
+//
+// It supports a few more "true" strings than [strconv.ParseBool]:
+//
+// - it is not case sensitive ("trUe" or "FalsE" work)
+// - "ok", "yes", "y", "on", "selected", "checked", "enabled" are all true
+// - everything that is not true is false: there is never an actual error returned
+func ConvertBool(str string) (bool, error) {
+ switch strings.ToLower(str) {
+ case "true",
+ "1",
+ "yes",
+ "ok",
+ "y",
+ "on",
+ "selected",
+ "checked",
+ "t",
+ "enabled":
+ return true, nil
+ default:
+ return false, nil
+ }
+}
+
+// ConvertFloat32 turns a string into a float32.
+func ConvertFloat32(str string) (float32, error) { return ConvertFloat[float32](str) }
+
+// ConvertFloat64 turns a string into a float64
+func ConvertFloat64(str string) (float64, error) { return ConvertFloat[float64](str) }
+
+// ConvertInt8 turns a string into an int8
+func ConvertInt8(str string) (int8, error) { return ConvertInteger[int8](str) }
+
+// ConvertInt16 turns a string into an int16
+func ConvertInt16(str string) (int16, error) {
+ i, err := strconv.ParseInt(str, 10, 16)
+ if err != nil {
+ return 0, err
+ }
+ return int16(i), nil
+}
+
+// ConvertInt32 turns a string into an int32
+func ConvertInt32(str string) (int32, error) {
+ i, err := strconv.ParseInt(str, 10, 32)
+ if err != nil {
+ return 0, err
+ }
+ return int32(i), nil
+}
+
+// ConvertInt64 turns a string into an int64
+func ConvertInt64(str string) (int64, error) {
+ return strconv.ParseInt(str, 10, 64)
+}
+
+// ConvertUint8 turns a string into an uint8
+func ConvertUint8(str string) (uint8, error) {
+ i, err := strconv.ParseUint(str, 10, 8)
+ if err != nil {
+ return 0, err
+ }
+ return uint8(i), nil
+}
+
+// ConvertUint16 turns a string into an uint16
+func ConvertUint16(str string) (uint16, error) {
+ i, err := strconv.ParseUint(str, 10, 16)
+ if err != nil {
+ return 0, err
+ }
+ return uint16(i), nil
+}
+
+// ConvertUint32 turns a string into an uint32
+func ConvertUint32(str string) (uint32, error) {
+ i, err := strconv.ParseUint(str, 10, 32)
+ if err != nil {
+ return 0, err
+ }
+ return uint32(i), nil
+}
+
+// ConvertUint64 turns a string into an uint64
+func ConvertUint64(str string) (uint64, error) {
+ return strconv.ParseUint(str, 10, 64)
+}
diff --git a/vendor/github.com/go-openapi/swag/conv/convert_types.go b/vendor/github.com/go-openapi/swag/conv/convert_types.go
new file mode 100644
index 00000000..423e8663
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/conv/convert_types.go
@@ -0,0 +1,79 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+package conv
+
+// The original version of this file, eons ago, was taken from the aws go sdk
+
+// Pointer returns a pointer to the value passed in.
+func Pointer[T any](v T) *T {
+ return &v
+}
+
+// Value returns a shallow copy of the value of the pointer passed in.
+//
+// If the pointer is nil, the returned value is the zero value.
+func Value[T any](v *T) T {
+ if v != nil {
+ return *v
+ }
+
+ var zero T
+ return zero
+}
+
+// PointerSlice converts a slice of values into a slice of pointers.
+func PointerSlice[T any](src []T) []*T {
+ dst := make([]*T, len(src))
+ for i := 0; i < len(src); i++ {
+ dst[i] = &(src[i])
+ }
+ return dst
+}
+
+// ValueSlice converts a slice of pointers into a slice of values.
+//
+// nil elements are zero values.
+func ValueSlice[T any](src []*T) []T {
+ dst := make([]T, len(src))
+ for i := 0; i < len(src); i++ {
+ if src[i] != nil {
+ dst[i] = *(src[i])
+ }
+ }
+ return dst
+}
+
+// PointerMap converts a map of values into a map of pointers.
+func PointerMap[K comparable, T any](src map[K]T) map[K]*T {
+ dst := make(map[K]*T)
+ for k, val := range src {
+ v := val
+ dst[k] = &v
+ }
+ return dst
+}
+
+// ValueMap converts a map of pointers into a map of values.
+//
+// nil elements are skipped.
+func ValueMap[K comparable, T any](src map[K]*T) map[K]T {
+ dst := make(map[K]T)
+ for k, val := range src {
+ if val != nil {
+ dst[k] = *val
+ }
+ }
+ return dst
+}
diff --git a/vendor/github.com/go-openapi/swag/conv/doc.go b/vendor/github.com/go-openapi/swag/conv/doc.go
new file mode 100644
index 00000000..b02711f4
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/conv/doc.go
@@ -0,0 +1,26 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+// Package conv exposes utilities to convert types.
+//
+// The Convert and Format families of functions are essentially a shorthand to [strconv] functions,
+// using the decimal representation of numbers.
+//
+// Features:
+//
+// - from string representation to value ("Convert*") and reciprocally ("Format*")
+// - from pointer to value ([Value]) and reciprocally ([Pointer])
+// - from slice of values to slice of pointers ([PointerSlice]) and reciprocally ([ValueSlice])
+// - from map of values to map of pointers ([PointerMap]) and reciprocally ([ValueMap])
+package conv
diff --git a/vendor/github.com/go-openapi/swag/conv/format.go b/vendor/github.com/go-openapi/swag/conv/format.go
new file mode 100644
index 00000000..db7562a4
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/conv/format.go
@@ -0,0 +1,39 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+package conv
+
+import (
+ "strconv"
+)
+
+// FormatInteger turns an integer type into a string.
+func FormatInteger[T Signed](value T) string {
+ return strconv.FormatInt(int64(value), 10)
+}
+
+// FormatUinteger turns an unsigned integer type into a string.
+func FormatUinteger[T Unsigned](value T) string {
+ return strconv.FormatUint(uint64(value), 10)
+}
+
+// FormatFloat turns a floating point numerical value into a string.
+func FormatFloat[T Float](value T) string {
+ return strconv.FormatFloat(float64(value), 'f', -1, bitsize(value))
+}
+
+// FormatBool turns a boolean into a string.
+func FormatBool(value bool) string {
+ return strconv.FormatBool(value)
+}
diff --git a/vendor/github.com/go-openapi/swag/conv/sizeof.go b/vendor/github.com/go-openapi/swag/conv/sizeof.go
new file mode 100644
index 00000000..646f8be9
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/conv/sizeof.go
@@ -0,0 +1,17 @@
+package conv
+
+import "unsafe"
+
+// bitsize returns the size in bits of a type.
+//
+// NOTE: [unsafe.SizeOf] simply returns the size in bytes of the value.
+// For primitive types T, the generic stencil is precompiled and this value
+// is resolved at compile time, resulting in an immediate call to [strconv.ParseFloat].
+//
+// We may leave up to the go compiler to simplify this function into a
+// constant value, which happens in practice at least for primitive types
+// (e.g. numerical types).
+func bitsize[T Numerical](value T) int {
+ const bitsPerByte = 8
+ return int(unsafe.Sizeof(value)) * bitsPerByte
+}
diff --git a/vendor/github.com/go-openapi/swag/conv/type_constraints.go b/vendor/github.com/go-openapi/swag/conv/type_constraints.go
new file mode 100644
index 00000000..3c614983
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/conv/type_constraints.go
@@ -0,0 +1,40 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+package conv
+
+type (
+ // these type constraints are redefined after golang.org/x/exp/constraints,
+ // because importing that package causes an undesired go upgrade.
+
+ // Signed integer types, cf. [golang.org/x/exp/constraints.Signed]
+ Signed interface {
+ ~int | ~int8 | ~int16 | ~int32 | ~int64
+ }
+
+ // Unsigned integer types, cf. [golang.org/x/exp/constraints.Unsigned]
+ Unsigned interface {
+ ~uint | ~uint8 | ~uint16 | ~uint32 | ~uint64 | ~uintptr
+ }
+
+ // Float numerical types, cf. [golang.org/x/exp/constraints.Float]
+ Float interface {
+ ~float32 | ~float64
+ }
+
+ // Numerical types
+ Numerical interface {
+ Signed | Unsigned | Float
+ }
+)
diff --git a/vendor/github.com/go-openapi/swag/conv_iface.go b/vendor/github.com/go-openapi/swag/conv_iface.go
new file mode 100644
index 00000000..9991acb6
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/conv_iface.go
@@ -0,0 +1,497 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+package swag
+
+import (
+ "time"
+
+ "github.com/go-openapi/swag/conv"
+)
+
+// IsFloat64AJSONInteger allows for integers [-2^53, 2^53-1] inclusive.
+//
+// Deprecated: use [conv.IsFloat64AJSONInteger] instead.
+func IsFloat64AJSONInteger(f float64) bool { return conv.IsFloat64AJSONInteger(f) }
+
+// ConvertBool turns a string into a boolean.
+//
+// Deprecated: use [conv.ConvertBool] instead.
+func ConvertBool(str string) (bool, error) { return conv.ConvertBool(str) }
+
+// ConvertFloat32 turns a string into a float32.
+//
+// Deprecated: use [conv.ConvertFloat32] instead. Alternatively, you may use the generic version [conv.ConvertFloat].
+func ConvertFloat32(str string) (float32, error) { return conv.ConvertFloat[float32](str) }
+
+// ConvertFloat64 turns a string into a float64.
+//
+// Deprecated: use [conv.ConvertFloat64] instead. Alternatively, you may use the generic version [conv.ConvertFloat].
+func ConvertFloat64(str string) (float64, error) { return conv.ConvertFloat[float64](str) }
+
+// ConvertInt8 turns a string into an int8.
+//
+// Deprecated: use [conv.ConvertInt8] instead. Alternatively, you may use the generic version [conv.ConvertInteger].
+func ConvertInt8(str string) (int8, error) { return conv.ConvertInteger[int8](str) }
+
+// ConvertInt16 turns a string into an int16.
+//
+// Deprecated: use [conv.ConvertInt16] instead. Alternatively, you may use the generic version [conv.ConvertInteger].
+func ConvertInt16(str string) (int16, error) { return conv.ConvertInteger[int16](str) }
+
+// ConvertInt32 turns a string into an int32.
+//
+// Deprecated: use [conv.ConvertInt32] instead. Alternatively, you may use the generic version [conv.ConvertInteger].
+func ConvertInt32(str string) (int32, error) { return conv.ConvertInteger[int32](str) }
+
+// ConvertInt64 turns a string into an int64.
+//
+// Deprecated: use [conv.ConvertInt64] instead. Alternatively, you may use the generic version [conv.ConvertInteger].
+func ConvertInt64(str string) (int64, error) { return conv.ConvertInteger[int64](str) }
+
+// ConvertUint8 turns a string into an uint8.
+//
+// Deprecated: use [conv.ConvertUint8] instead. Alternatively, you may use the generic version [conv.ConvertUinteger].
+func ConvertUint8(str string) (uint8, error) { return conv.ConvertUinteger[uint8](str) }
+
+// ConvertUint16 turns a string into an uint16.
+//
+// Deprecated: use [conv.ConvertUint16] instead. Alternatively, you may use the generic version [conv.ConvertUinteger].
+func ConvertUint16(str string) (uint16, error) { return conv.ConvertUinteger[uint16](str) }
+
+// ConvertUint32 turns a string into an uint32.
+//
+// Deprecated: use [conv.ConvertUint32] instead. Alternatively, you may use the generic version [conv.ConvertUinteger].
+func ConvertUint32(str string) (uint32, error) { return conv.ConvertUinteger[uint32](str) }
+
+// ConvertUint64 turns a string into an uint64.
+//
+// Deprecated: use [conv.ConvertUint64] instead. Alternatively, you may use the generic version [conv.ConvertUinteger].
+func ConvertUint64(str string) (uint64, error) { return conv.ConvertUinteger[uint64](str) }
+
+// FormatBool turns a boolean into a string.
+//
+// Deprecated: use [conv.FormatBool] instead.
+func FormatBool(value bool) string { return conv.FormatBool(value) }
+
+// FormatFloat32 turns a float32 into a string.
+//
+// Deprecated: use [conv.FormatFloat] instead.
+func FormatFloat32(value float32) string { return conv.FormatFloat(value) }
+
+// FormatFloat64 turns a float64 into a string.
+//
+// Deprecated: use [conv.FormatFloat] instead.
+func FormatFloat64(value float64) string { return conv.FormatFloat(value) }
+
+// FormatInt8 turns an int8 into a string.
+//
+// Deprecated: use [conv.FormatInteger] instead.
+func FormatInt8(value int8) string { return conv.FormatInteger(value) }
+
+// FormatInt16 turns an int16 into a string.
+//
+// Deprecated: use [conv.FormatInteger] instead.
+func FormatInt16(value int16) string { return conv.FormatInteger(value) }
+
+// FormatInt32 turns an int32 into a string
+//
+// Deprecated: use [conv.FormatInteger] instead.
+func FormatInt32(value int32) string { return conv.FormatInteger(value) }
+
+// FormatInt64 turns an int64 into a string.
+//
+// Deprecated: use [conv.FormatInteger] instead.
+func FormatInt64(value int64) string { return conv.FormatInteger(value) }
+
+// FormatUint8 turns an uint8 into a string.
+//
+// Deprecated: use [conv.FormatUinteger] instead.
+func FormatUint8(value uint8) string { return conv.FormatUinteger(value) }
+
+// FormatUint16 turns an uint16 into a string.
+//
+// Deprecated: use [conv.FormatUinteger] instead.
+func FormatUint16(value uint16) string { return conv.FormatUinteger(value) }
+
+// FormatUint32 turns an uint32 into a string.
+//
+// Deprecated: use [conv.FormatUinteger] instead.
+func FormatUint32(value uint32) string { return conv.FormatUinteger(value) }
+
+// FormatUint64 turns an uint64 into a string.
+//
+// Deprecated: use [conv.FormatUinteger] instead.
+func FormatUint64(value uint64) string { return conv.FormatUinteger(value) }
+
+// String turn a pointer to of the string value passed in.
+//
+// Deprecated: use [conv.Pointer] instead.
+func String(v string) *string { return conv.Pointer(v) }
+
+// StringValue turn the value of the string pointer passed in or
+// "" if the pointer is nil.
+//
+// Deprecated: use [conv.Value] instead.
+func StringValue(v *string) string { return conv.Value(v) }
+
+// StringSlice converts a slice of string values into a slice of string pointers.
+//
+// Deprecated: use [conv.PointerSlice] instead.
+func StringSlice(src []string) []*string { return conv.PointerSlice(src) }
+
+// StringValueSlice converts a slice of string pointers into a slice of string values.
+//
+// Deprecated: use [conv.ValueSlice] instead.
+func StringValueSlice(src []*string) []string { return conv.ValueSlice(src) }
+
+// StringMap converts a string map of string values into a string map of string pointers.
+//
+// Deprecated: use [conv.PointerMap] instead.
+func StringMap(src map[string]string) map[string]*string { return conv.PointerMap(src) }
+
+// StringValueMap converts a string map of string pointers into a string map of string values.
+//
+// Deprecated: use [conv.ValueMap] instead.
+func StringValueMap(src map[string]*string) map[string]string { return conv.ValueMap(src) }
+
+// Bool turn a pointer to of the bool value passed in.
+//
+// Deprecated: use [conv.Pointer] instead.
+func Bool(v bool) *bool { return conv.Pointer(v) }
+
+// BoolValue turn the value of the bool pointer passed in or false if the pointer is nil.
+//
+// Deprecated: use [conv.Value] instead.
+func BoolValue(v *bool) bool { return conv.Value(v) }
+
+// BoolSlice converts a slice of bool values into a slice of bool pointers.
+//
+// Deprecated: use [conv.PointerSlice] instead.
+func BoolSlice(src []bool) []*bool { return conv.PointerSlice(src) }
+
+// BoolValueSlice converts a slice of bool pointers into a slice of bool values.
+//
+// Deprecated: use [conv.ValueSlice] instead.
+func BoolValueSlice(src []*bool) []bool { return conv.ValueSlice(src) }
+
+// BoolMap converts a string map of bool values into a string map of bool pointers.
+//
+// Deprecated: use [conv.PointerMap] instead.
+func BoolMap(src map[string]bool) map[string]*bool { return conv.PointerMap(src) }
+
+// BoolValueMap converts a string map of bool pointers into a string map of bool values.
+//
+// Deprecated: use [conv.ValueMap] instead.
+func BoolValueMap(src map[string]*bool) map[string]bool { return conv.ValueMap(src) }
+
+// Int turn a pointer to of the int value passed in.
+//
+// Deprecated: use [conv.Pointer] instead.
+func Int(v int) *int { return conv.Pointer(v) }
+
+// IntValue turn the value of the int pointer passed in or 0 if the pointer is nil.
+//
+// Deprecated: use [conv.Value] instead.
+func IntValue(v *int) int { return conv.Value(v) }
+
+// IntSlice converts a slice of int values into a slice of int pointers.
+//
+// Deprecated: use [conv.PointerSlice] instead.
+func IntSlice(src []int) []*int { return conv.PointerSlice(src) }
+
+// IntValueSlice converts a slice of int pointers into a slice of int values.
+//
+// Deprecated: use [conv.ValueSlice] instead.
+func IntValueSlice(src []*int) []int { return conv.ValueSlice(src) }
+
+// IntMap converts a string map of int values into a string map of int pointers.
+//
+// Deprecated: use [conv.PointerMap] instead.
+func IntMap(src map[string]int) map[string]*int { return conv.PointerMap(src) }
+
+// IntValueMap converts a string map of int pointers into a string map of int values.
+//
+// Deprecated: use [conv.ValueMap] instead.
+func IntValueMap(src map[string]*int) map[string]int { return conv.ValueMap(src) }
+
+// Int32 turn a pointer to of the int32 value passed in.
+//
+// Deprecated: use [conv.Pointer] instead.
+func Int32(v int32) *int32 { return conv.Pointer(v) }
+
+// Int32Value turn the value of the int32 pointer passed in or 0 if the pointer is nil.
+//
+// Deprecated: use [conv.Value] instead.
+func Int32Value(v *int32) int32 { return conv.Value(v) }
+
+// Int32Slice converts a slice of int32 values into a slice of int32 pointers.
+//
+// Deprecated: use [conv.PointerSlice] instead.
+func Int32Slice(src []int32) []*int32 { return conv.PointerSlice(src) }
+
+// Int32ValueSlice converts a slice of int32 pointers into a slice of int32 values.
+//
+// Deprecated: use [conv.ValueSlice] instead.
+func Int32ValueSlice(src []*int32) []int32 { return conv.ValueSlice(src) }
+
+// Int32Map converts a string map of int32 values into a string map of int32 pointers.
+//
+// Deprecated: use [conv.PointerMap] instead.
+func Int32Map(src map[string]int32) map[string]*int32 { return conv.PointerMap(src) }
+
+// Int32ValueMap converts a string map of int32 pointers into a string map of int32 values.
+//
+// Deprecated: use [conv.ValueMap] instead.
+func Int32ValueMap(src map[string]*int32) map[string]int32 { return conv.ValueMap(src) }
+
+// Int64 turn a pointer to of the int64 value passed in.
+//
+// Deprecated: use [conv.Pointer] instead.
+func Int64(v int64) *int64 { return conv.Pointer(v) }
+
+// Int64Value turn the value of the int64 pointer passed in or 0 if the pointer is nil.
+//
+// Deprecated: use [conv.Value] instead.
+func Int64Value(v *int64) int64 { return conv.Value(v) }
+
+// Int64Slice converts a slice of int64 values into a slice of int64 pointers.
+//
+// Deprecated: use [conv.PointerSlice] instead.
+func Int64Slice(src []int64) []*int64 { return conv.PointerSlice(src) }
+
+// Int64ValueSlice converts a slice of int64 pointers into a slice of int64 values.
+//
+// Deprecated: use [conv.ValueSlice] instead.
+func Int64ValueSlice(src []*int64) []int64 { return conv.ValueSlice(src) }
+
+// Int64Map converts a string map of int64 values into a string map of int64 pointers.
+//
+// Deprecated: use [conv.PointerMap] instead.
+func Int64Map(src map[string]int64) map[string]*int64 { return conv.PointerMap(src) }
+
+// Int64ValueMap converts a string map of int64 pointers into a string map of int64 values.
+//
+// Deprecated: use [conv.ValueMap] instead.
+func Int64ValueMap(src map[string]*int64) map[string]int64 { return conv.ValueMap(src) }
+
+// Uint16 turn a pointer to of the uint16 value passed in.
+//
+// Deprecated: use [conv.Pointer] instead.
+func Uint16(v uint16) *uint16 { return conv.Pointer(v) }
+
+// Uint16Value turn the value of the uint16 pointer passed in or 0 if the pointer is nil.
+//
+// Deprecated: use [conv.Value] instead.
+func Uint16Value(v *uint16) uint16 { return conv.Value(v) }
+
+// Uint16Slice converts a slice of uint16 values into a slice of uint16 pointers.
+//
+// Deprecated: use [conv.PointerSlice] instead.
+func Uint16Slice(src []uint16) []*uint16 { return conv.PointerSlice(src) }
+
+// Uint16ValueSlice converts a slice of uint16 pointers into a slice of uint16 values.
+//
+// Deprecated: use [conv.ValueSlice] instead.
+func Uint16ValueSlice(src []*uint16) []uint16 { return conv.ValueSlice(src) }
+
+// Uint16Map converts a string map of uint16 values into a string map of uint16 pointers.
+//
+// Deprecated: use [conv.PointerMap] instead.
+func Uint16Map(src map[string]uint16) map[string]*uint16 { return conv.PointerMap(src) }
+
+// Uint16ValueMap converts a string map of uint16 pointers into a string map of uint16 values.
+//
+// Deprecated: use [conv.ValueMap] instead.
+func Uint16ValueMap(src map[string]*uint16) map[string]uint16 { return conv.ValueMap(src) }
+
+// Uint turn a pointer to of the uint value passed in.
+//
+// Deprecated: use [conv.Pointer] instead.
+func Uint(v uint) *uint { return conv.Pointer(v) }
+
+// UintValue turn the value of the uint pointer passed in or 0 if the pointer is nil.
+//
+// Deprecated: use [conv.Value] instead.
+func UintValue(v *uint) uint { return conv.Value(v) }
+
+// UintSlice converts a slice of uint values into a slice of uint pointers.
+//
+// Deprecated: use [conv.PointerSlice] instead.
+func UintSlice(src []uint) []*uint { return conv.PointerSlice(src) }
+
+// UintValueSlice converts a slice of uint pointers into a slice of uint values.
+//
+// Deprecated: use [conv.ValueSlice] instead.
+func UintValueSlice(src []*uint) []uint { return conv.ValueSlice(src) }
+
+// UintMap converts a string map of uint values into a string map of uint pointers.
+//
+// Deprecated: use [conv.PointerMap] instead.
+func UintMap(src map[string]uint) map[string]*uint { return conv.PointerMap(src) }
+
+// UintValueMap converts a string map of uint pointers into a string map of uint values.
+//
+// Deprecated: use [conv.ValueMap] instead.
+func UintValueMap(src map[string]*uint) map[string]uint { return conv.ValueMap(src) }
+
+// Uint32 turn a pointer to of the uint32 value passed in.
+//
+// Deprecated: use [conv.Pointer] instead.
+func Uint32(v uint32) *uint32 { return conv.Pointer(v) }
+
+// Uint32Value turn the value of the uint32 pointer passed in or 0 if the pointer is nil.
+//
+// Deprecated: use [conv.Value] instead.
+func Uint32Value(v *uint32) uint32 { return conv.Value(v) }
+
+// Uint32Slice converts a slice of uint32 values into a slice of uint32 pointers.
+//
+// Deprecated: use [conv.PointerSlice] instead.
+func Uint32Slice(src []uint32) []*uint32 { return conv.PointerSlice(src) }
+
+// Uint32ValueSlice converts a slice of uint32 pointers into a slice of uint32 values.
+//
+// Deprecated: use [conv.ValueSlice] instead.
+func Uint32ValueSlice(src []*uint32) []uint32 { return conv.ValueSlice(src) }
+
+// Uint32Map converts a string map of uint32 values into a string map of uint32 pointers.
+//
+// Deprecated: use [conv.PointerMap] instead.
+func Uint32Map(src map[string]uint32) map[string]*uint32 { return conv.PointerMap(src) }
+
+// Uint32ValueMap converts a string map of uint32 pointers into a string map of uint32 values.
+//
+// Deprecated: use [conv.ValueMap] instead.
+func Uint32ValueMap(src map[string]*uint32) map[string]uint32 { return conv.ValueMap(src) }
+
+// Uint64 turn a pointer to of the uint64 value passed in.
+//
+// Deprecated: use [conv.Pointer] instead.
+func Uint64(v uint64) *uint64 { return conv.Pointer(v) }
+
+// Uint64Value turn the value of the uint64 pointer passed in or 0 if the pointer is nil.
+//
+// Deprecated: use [conv.Value] instead.
+func Uint64Value(v *uint64) uint64 { return conv.Value(v) }
+
+// Uint64Slice converts a slice of uint64 values into a slice of uint64 pointers.
+//
+// Deprecated: use [conv.PointerSlice] instead.
+func Uint64Slice(src []uint64) []*uint64 { return conv.PointerSlice(src) }
+
+// Uint64ValueSlice converts a slice of uint64 pointers into a slice of uint64 values.
+//
+// Deprecated: use [conv.ValueSlice] instead.
+func Uint64ValueSlice(src []*uint64) []uint64 { return conv.ValueSlice(src) }
+
+// Uint64Map converts a string map of uint64 values into a string map of uint64 pointers.
+//
+// Deprecated: use [conv.PointerMap] instead.
+func Uint64Map(src map[string]uint64) map[string]*uint64 { return conv.PointerMap(src) }
+
+// Uint64ValueMap converts a string map of uint64 pointers into a string map of uint64 values.
+//
+// Deprecated: use [conv.ValueMap] instead.
+func Uint64ValueMap(src map[string]*uint64) map[string]uint64 { return conv.ValueMap(src) }
+
+// Float32 turn a pointer to of the float32 value passed in.
+//
+// Deprecated: use [conv.Pointer] instead.
+func Float32(v float32) *float32 { return conv.Pointer(v) }
+
+// Float32Value turn the value of the float32 pointer passed in or 0 if the pointer is nil.
+//
+// Deprecated: use [conv.Value] instead.
+func Float32Value(v *float32) float32 { return conv.Value(v) }
+
+// Float32Slice converts a slice of float32 values into a slice of float32 pointers.
+//
+// Deprecated: use [conv.PointerSlice] instead.
+func Float32Slice(src []float32) []*float32 { return conv.PointerSlice(src) }
+
+// Float32ValueSlice converts a slice of float32 pointers into a slice of float32 values.
+//
+// Deprecated: use [conv.ValueSlice] instead.
+func Float32ValueSlice(src []*float32) []float32 { return conv.ValueSlice(src) }
+
+// Float32Map converts a string map of float32 values into a string map of float32 pointers.
+//
+// Deprecated: use [conv.PointerMap] instead.
+func Float32Map(src map[string]float32) map[string]*float32 { return conv.PointerMap(src) }
+
+// Float32ValueMap converts a string map of float32 pointers into a string map of float32 values.
+//
+// Deprecated: use [conv.ValueMap] instead.
+func Float32ValueMap(src map[string]*float32) map[string]float32 { return conv.ValueMap(src) }
+
+// Float64 turn a pointer to of the float64 value passed in.
+//
+// Deprecated: use [conv.Pointer] instead.
+func Float64(v float64) *float64 { return conv.Pointer(v) }
+
+// Float64Value turn the value of the float64 pointer passed in or 0 if the pointer is nil.
+//
+// Deprecated: use [conv.Value] instead.
+func Float64Value(v *float64) float64 { return conv.Value(v) }
+
+// Float64Slice converts a slice of float64 values into a slice of float64 pointers.
+//
+// Deprecated: use [conv.PointerSlice] instead.
+func Float64Slice(src []float64) []*float64 { return conv.PointerSlice(src) }
+
+// Float64ValueSlice converts a slice of float64 pointers into a slice of float64 values.
+//
+// Deprecated: use [conv.ValueSlice] instead.
+func Float64ValueSlice(src []*float64) []float64 { return conv.ValueSlice(src) }
+
+// Float64Map converts a string map of float64 values into a string map of float64 pointers.
+//
+// Deprecated: use [conv.PointerMap] instead.
+func Float64Map(src map[string]float64) map[string]*float64 { return conv.PointerMap(src) }
+
+// Float64ValueMap converts a string map of float64 pointers into a string map of float64 values.
+//
+// Deprecated: use [conv.ValueMap] instead.
+func Float64ValueMap(src map[string]*float64) map[string]float64 { return conv.ValueMap(src) }
+
+// Time turn a pointer to of the time.Time value passed in.
+//
+// Deprecated: use [conv.Pointer] instead.
+func Time(v time.Time) *time.Time { return conv.Pointer(v) }
+
+// TimeValue turn the value of the time.Time pointer passed in or time.Time{} if the pointer is nil.
+//
+// Deprecated: use [conv.Value] instead.
+func TimeValue(v *time.Time) time.Time { return conv.Value(v) }
+
+// TimeSlice converts a slice of time.Time values into a slice of time.Time pointers.
+//
+// Deprecated: use [conv.PointerSlice] instead.
+func TimeSlice(src []time.Time) []*time.Time { return conv.PointerSlice(src) }
+
+// TimeValueSlice converts a slice of time.Time pointers into a slice of time.Time values
+//
+// Deprecated: use [conv.ValueSlice] instead.
+func TimeValueSlice(src []*time.Time) []time.Time { return conv.ValueSlice(src) }
+
+// TimeMap converts a string map of time.Time values into a string map of time.Time pointers.
+//
+// Deprecated: use [conv.PointerMap] instead.
+func TimeMap(src map[string]time.Time) map[string]*time.Time { return conv.PointerMap(src) }
+
+// TimeValueMap converts a string map of time.Time pointers into a string map of time.Time values.
+//
+// Deprecated: use [conv.ValueMap] instead.
+func TimeValueMap(src map[string]*time.Time) map[string]time.Time { return conv.ValueMap(src) }
diff --git a/vendor/github.com/go-openapi/swag/convert.go b/vendor/github.com/go-openapi/swag/convert.go
deleted file mode 100644
index fc085aeb..00000000
--- a/vendor/github.com/go-openapi/swag/convert.go
+++ /dev/null
@@ -1,208 +0,0 @@
-// Copyright 2015 go-swagger maintainers
-//
-// 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.
-
-package swag
-
-import (
- "math"
- "strconv"
- "strings"
-)
-
-// same as ECMA Number.MAX_SAFE_INTEGER and Number.MIN_SAFE_INTEGER
-const (
- maxJSONFloat = float64(1<<53 - 1) // 9007199254740991.0 2^53 - 1
- minJSONFloat = -float64(1<<53 - 1) //-9007199254740991.0 -2^53 - 1
- epsilon float64 = 1e-9
-)
-
-// IsFloat64AJSONInteger allow for integers [-2^53, 2^53-1] inclusive
-func IsFloat64AJSONInteger(f float64) bool {
- if math.IsNaN(f) || math.IsInf(f, 0) || f < minJSONFloat || f > maxJSONFloat {
- return false
- }
- fa := math.Abs(f)
- g := float64(uint64(f))
- ga := math.Abs(g)
-
- diff := math.Abs(f - g)
-
- // more info: https://floating-point-gui.de/errors/comparison/#look-out-for-edge-cases
- switch {
- case f == g: // best case
- return true
- case f == float64(int64(f)) || f == float64(uint64(f)): // optimistic case
- return true
- case f == 0 || g == 0 || diff < math.SmallestNonzeroFloat64: // very close to 0 values
- return diff < (epsilon * math.SmallestNonzeroFloat64)
- }
- // check the relative error
- return diff/math.Min(fa+ga, math.MaxFloat64) < epsilon
-}
-
-var evaluatesAsTrue map[string]struct{}
-
-func init() {
- evaluatesAsTrue = map[string]struct{}{
- "true": {},
- "1": {},
- "yes": {},
- "ok": {},
- "y": {},
- "on": {},
- "selected": {},
- "checked": {},
- "t": {},
- "enabled": {},
- }
-}
-
-// ConvertBool turn a string into a boolean
-func ConvertBool(str string) (bool, error) {
- _, ok := evaluatesAsTrue[strings.ToLower(str)]
- return ok, nil
-}
-
-// ConvertFloat32 turn a string into a float32
-func ConvertFloat32(str string) (float32, error) {
- f, err := strconv.ParseFloat(str, 32)
- if err != nil {
- return 0, err
- }
- return float32(f), nil
-}
-
-// ConvertFloat64 turn a string into a float64
-func ConvertFloat64(str string) (float64, error) {
- return strconv.ParseFloat(str, 64)
-}
-
-// ConvertInt8 turn a string into an int8
-func ConvertInt8(str string) (int8, error) {
- i, err := strconv.ParseInt(str, 10, 8)
- if err != nil {
- return 0, err
- }
- return int8(i), nil
-}
-
-// ConvertInt16 turn a string into an int16
-func ConvertInt16(str string) (int16, error) {
- i, err := strconv.ParseInt(str, 10, 16)
- if err != nil {
- return 0, err
- }
- return int16(i), nil
-}
-
-// ConvertInt32 turn a string into an int32
-func ConvertInt32(str string) (int32, error) {
- i, err := strconv.ParseInt(str, 10, 32)
- if err != nil {
- return 0, err
- }
- return int32(i), nil
-}
-
-// ConvertInt64 turn a string into an int64
-func ConvertInt64(str string) (int64, error) {
- return strconv.ParseInt(str, 10, 64)
-}
-
-// ConvertUint8 turn a string into an uint8
-func ConvertUint8(str string) (uint8, error) {
- i, err := strconv.ParseUint(str, 10, 8)
- if err != nil {
- return 0, err
- }
- return uint8(i), nil
-}
-
-// ConvertUint16 turn a string into an uint16
-func ConvertUint16(str string) (uint16, error) {
- i, err := strconv.ParseUint(str, 10, 16)
- if err != nil {
- return 0, err
- }
- return uint16(i), nil
-}
-
-// ConvertUint32 turn a string into an uint32
-func ConvertUint32(str string) (uint32, error) {
- i, err := strconv.ParseUint(str, 10, 32)
- if err != nil {
- return 0, err
- }
- return uint32(i), nil
-}
-
-// ConvertUint64 turn a string into an uint64
-func ConvertUint64(str string) (uint64, error) {
- return strconv.ParseUint(str, 10, 64)
-}
-
-// FormatBool turns a boolean into a string
-func FormatBool(value bool) string {
- return strconv.FormatBool(value)
-}
-
-// FormatFloat32 turns a float32 into a string
-func FormatFloat32(value float32) string {
- return strconv.FormatFloat(float64(value), 'f', -1, 32)
-}
-
-// FormatFloat64 turns a float64 into a string
-func FormatFloat64(value float64) string {
- return strconv.FormatFloat(value, 'f', -1, 64)
-}
-
-// FormatInt8 turns an int8 into a string
-func FormatInt8(value int8) string {
- return strconv.FormatInt(int64(value), 10)
-}
-
-// FormatInt16 turns an int16 into a string
-func FormatInt16(value int16) string {
- return strconv.FormatInt(int64(value), 10)
-}
-
-// FormatInt32 turns an int32 into a string
-func FormatInt32(value int32) string {
- return strconv.Itoa(int(value))
-}
-
-// FormatInt64 turns an int64 into a string
-func FormatInt64(value int64) string {
- return strconv.FormatInt(value, 10)
-}
-
-// FormatUint8 turns an uint8 into a string
-func FormatUint8(value uint8) string {
- return strconv.FormatUint(uint64(value), 10)
-}
-
-// FormatUint16 turns an uint16 into a string
-func FormatUint16(value uint16) string {
- return strconv.FormatUint(uint64(value), 10)
-}
-
-// FormatUint32 turns an uint32 into a string
-func FormatUint32(value uint32) string {
- return strconv.FormatUint(uint64(value), 10)
-}
-
-// FormatUint64 turns an uint64 into a string
-func FormatUint64(value uint64) string {
- return strconv.FormatUint(value, 10)
-}
diff --git a/vendor/github.com/go-openapi/swag/convert_types.go b/vendor/github.com/go-openapi/swag/convert_types.go
deleted file mode 100644
index c49cc473..00000000
--- a/vendor/github.com/go-openapi/swag/convert_types.go
+++ /dev/null
@@ -1,730 +0,0 @@
-package swag
-
-import "time"
-
-// This file was taken from the aws go sdk
-
-// String returns a pointer to of 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 of 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 of 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
-}
-
-// Int32 returns a pointer to of 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 of 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
-}
-
-// Uint16 returns a pointer to of 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
-}
-
-// Uint returns a pointer to of 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 into 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 into 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 into 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 into 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
-}
-
-// Uint32 returns a pointer to of 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 of 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 of 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 of 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 of 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{}
-}
-
-// 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/go-openapi/swag/doc.go b/vendor/github.com/go-openapi/swag/doc.go
index 55094cb7..a079fe81 100644
--- a/vendor/github.com/go-openapi/swag/doc.go
+++ b/vendor/github.com/go-openapi/swag/doc.go
@@ -12,20 +12,47 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-/*
-Package swag contains a bunch of helper functions for go-openapi and go-swagger projects.
-
-You may also use it standalone for your projects.
-
- - convert between value and pointers for builtin types
- - convert from string to builtin types (wraps strconv)
- - fast json concatenation
- - search in path
- - load from file or http
- - name mangling
-
-This repo has only few dependencies outside of the standard library:
-
- - YAML utilities depend on gopkg.in/yaml.v2
-*/
+// Package swag contains a bunch of helper functions for go-openapi and go-swagger projects.
+//
+// You may also use it standalone for your projects.
+//
+// NOTE: all features that used to be exposed as package-level members (constants, variables,
+// functions and types) are now deprecated and are superseded by equivalent features in
+// more specialized sub-packages.
+// Moving forward, no additional feature will be added to the [swag] API directly at the root package level,
+// which remains there for backward-compatibility purposes.
+//
+// Child modules will continue to evolve or some new ones may be added in the future.
+//
+// # Modules
+//
+// - [cmdutils] utilities to work with CLIs
+//
+// - [conv] type conversion utilities
+//
+// - [fileutils] file utilities
+//
+// - [jsonname] JSON utilities
+//
+// - [jsonutils] JSON utilities
+//
+// - [loading] file loading
+//
+// - [mangling] safe name generation
+//
+// - [netutils] networking utilities
+//
+// - [stringutils] `string` utilities
+//
+// - [typeutils] `go` types utilities
+//
+// - [yamlutils] YAML utilities
+//
+// # Dependencies
+//
+// This repo has a few dependencies outside of the standard library:
+//
+// - YAML utilities depend on [go.yaml.in/yaml/v3]
package swag
+
+//go:generate mockery
diff --git a/vendor/github.com/go-openapi/swag/errors.go b/vendor/github.com/go-openapi/swag/errors.go
deleted file mode 100644
index 6c67fbf9..00000000
--- a/vendor/github.com/go-openapi/swag/errors.go
+++ /dev/null
@@ -1,15 +0,0 @@
-package swag
-
-type swagError string
-
-const (
- // ErrYAML is an error raised by YAML utilities
- ErrYAML swagError = "yaml error"
-
- // ErrLoader is an error raised by the file loader utility
- ErrLoader swagError = "loader error"
-)
-
-func (e swagError) Error() string {
- return string(e)
-}
diff --git a/vendor/github.com/go-openapi/swag/fileutils/LICENSE b/vendor/github.com/go-openapi/swag/fileutils/LICENSE
new file mode 100644
index 00000000..d6456956
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/fileutils/LICENSE
@@ -0,0 +1,202 @@
+
+ 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/go-openapi/swag/fileutils/doc.go b/vendor/github.com/go-openapi/swag/fileutils/doc.go
new file mode 100644
index 00000000..4b48e719
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/fileutils/doc.go
@@ -0,0 +1,21 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+// Package fileutils exposes utilities to deal with files and paths.
+//
+// Currently, there is:
+// - [File] to represent an abstraction of an uploaded file.
+// For instance, this is used by [github.com/go-openapi/runtime.File].
+// - path search utilities (e.g. finding packages in the GO search path)
+package fileutils
diff --git a/vendor/github.com/go-openapi/swag/file.go b/vendor/github.com/go-openapi/swag/fileutils/file.go
similarity index 98%
rename from vendor/github.com/go-openapi/swag/file.go
rename to vendor/github.com/go-openapi/swag/fileutils/file.go
index 16accc55..b17eaba5 100644
--- a/vendor/github.com/go-openapi/swag/file.go
+++ b/vendor/github.com/go-openapi/swag/fileutils/file.go
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package swag
+package fileutils
import "mime/multipart"
diff --git a/vendor/github.com/go-openapi/swag/path.go b/vendor/github.com/go-openapi/swag/fileutils/path.go
similarity index 80%
rename from vendor/github.com/go-openapi/swag/path.go
rename to vendor/github.com/go-openapi/swag/fileutils/path.go
index 941bd017..0de77e12 100644
--- a/vendor/github.com/go-openapi/swag/path.go
+++ b/vendor/github.com/go-openapi/swag/fileutils/path.go
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package swag
+package fileutils
import (
"os"
@@ -21,10 +21,8 @@ import (
"strings"
)
-const (
- // GOPATHKey represents the env key for gopath
- GOPATHKey = "GOPATH"
-)
+// GOPATHKey represents the env key for gopath
+const GOPATHKey = "GOPATH"
// FindInSearchPath finds a package in a provided lists of paths
func FindInSearchPath(searchPath, pkg string) string {
@@ -40,11 +38,17 @@ func FindInSearchPath(searchPath, pkg string) string {
}
// FindInGoSearchPath finds a package in the $GOPATH:$GOROOT
+//
+// Deprecated: this function is no longer relevant with modern go.
+// It uses [runtime.GOROOT] under the hood, which is deprecated as of go1.24.
func FindInGoSearchPath(pkg string) string {
return FindInSearchPath(FullGoSearchPath(), pkg)
}
// FullGoSearchPath gets the search paths for finding packages
+//
+// Deprecated: this function is no longer relevant with modern go.
+// It uses [runtime.GOROOT] under the hood, which is deprecated as of go1.24.
func FullGoSearchPath() string {
allPaths := os.Getenv(GOPATHKey)
if allPaths == "" {
diff --git a/vendor/github.com/go-openapi/swag/fileutils_iface.go b/vendor/github.com/go-openapi/swag/fileutils_iface.go
new file mode 100644
index 00000000..0c639e8c
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/fileutils_iface.go
@@ -0,0 +1,44 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+package swag
+
+import "github.com/go-openapi/swag/fileutils"
+
+// GOPATHKey represents the env key for gopath
+//
+// Deprecated: use [fileutils.GOPATHKey] instead.
+const GOPATHKey = fileutils.GOPATHKey
+
+// File represents an uploaded file.
+//
+// Deprecated: use [fileutils.File] instead.
+type File = fileutils.File
+
+// FindInSearchPath finds a package in a provided lists of paths.
+//
+// Deprecated: use [fileutils.FindInSearchPath] instead.
+func FindInSearchPath(searchPath, pkg string) string {
+ return fileutils.FindInSearchPath(searchPath, pkg)
+}
+
+// FindInGoSearchPath finds a package in the $GOPATH:$GOROOT
+//
+// Deprecated: use [fileutils.FindInGoSearchPath] instead.
+func FindInGoSearchPath(pkg string) string { return fileutils.FindInGoSearchPath(pkg) }
+
+// FullGoSearchPath gets the search paths for finding packages
+//
+// Deprecated: use [fileutils.FullGoSearchPath] instead.
+func FullGoSearchPath() string { return fileutils.FullGoSearchPath() }
diff --git a/vendor/github.com/go-openapi/swag/go.work b/vendor/github.com/go-openapi/swag/go.work
new file mode 100644
index 00000000..1e537f07
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/go.work
@@ -0,0 +1,20 @@
+use (
+ .
+ ./cmdutils
+ ./conv
+ ./fileutils
+ ./jsonname
+ ./jsonutils
+ ./jsonutils/adapters/easyjson
+ ./jsonutils/adapters/testintegration
+ ./jsonutils/adapters/testintegration/benchmarks
+ ./jsonutils/fixtures_test
+ ./loading
+ ./mangling
+ ./netutils
+ ./stringutils
+ ./typeutils
+ ./yamlutils
+)
+
+go 1.24.0
diff --git a/vendor/github.com/go-openapi/swag/go.work.sum b/vendor/github.com/go-openapi/swag/go.work.sum
new file mode 100644
index 00000000..bee4481a
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/go.work.sum
@@ -0,0 +1,4 @@
+github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
+github.com/stretchr/testify v1.11.0/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
+go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc=
+go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg=
diff --git a/vendor/github.com/go-openapi/swag/initialism_index.go b/vendor/github.com/go-openapi/swag/initialism_index.go
deleted file mode 100644
index 20a359bb..00000000
--- a/vendor/github.com/go-openapi/swag/initialism_index.go
+++ /dev/null
@@ -1,202 +0,0 @@
-// Copyright 2015 go-swagger maintainers
-//
-// 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.
-
-package swag
-
-import (
- "sort"
- "strings"
- "sync"
-)
-
-var (
- // commonInitialisms are common acronyms that are kept as whole uppercased words.
- commonInitialisms *indexOfInitialisms
-
- // initialisms is a slice of sorted initialisms
- initialisms []string
-
- // a copy of initialisms pre-baked as []rune
- initialismsRunes [][]rune
- initialismsUpperCased [][]rune
-
- isInitialism func(string) bool
-
- maxAllocMatches int
-)
-
-func init() {
- // Taken from https://github.com/golang/lint/blob/3390df4df2787994aea98de825b964ac7944b817/lint.go#L732-L769
- configuredInitialisms := map[string]bool{
- "ACL": true,
- "API": true,
- "ASCII": true,
- "CPU": true,
- "CSS": true,
- "DNS": true,
- "EOF": true,
- "GUID": true,
- "HTML": true,
- "HTTPS": true,
- "HTTP": true,
- "ID": true,
- "IP": true,
- "IPv4": true,
- "IPv6": true,
- "JSON": true,
- "LHS": true,
- "OAI": true,
- "QPS": true,
- "RAM": true,
- "RHS": true,
- "RPC": true,
- "SLA": true,
- "SMTP": true,
- "SQL": true,
- "SSH": true,
- "TCP": true,
- "TLS": true,
- "TTL": true,
- "UDP": true,
- "UI": true,
- "UID": true,
- "UUID": true,
- "URI": true,
- "URL": true,
- "UTF8": true,
- "VM": true,
- "XML": true,
- "XMPP": true,
- "XSRF": true,
- "XSS": true,
- }
-
- // a thread-safe index of initialisms
- commonInitialisms = newIndexOfInitialisms().load(configuredInitialisms)
- initialisms = commonInitialisms.sorted()
- initialismsRunes = asRunes(initialisms)
- initialismsUpperCased = asUpperCased(initialisms)
- maxAllocMatches = maxAllocHeuristic(initialismsRunes)
-
- // a test function
- isInitialism = commonInitialisms.isInitialism
-}
-
-func asRunes(in []string) [][]rune {
- out := make([][]rune, len(in))
- for i, initialism := range in {
- out[i] = []rune(initialism)
- }
-
- return out
-}
-
-func asUpperCased(in []string) [][]rune {
- out := make([][]rune, len(in))
-
- for i, initialism := range in {
- out[i] = []rune(upper(trim(initialism)))
- }
-
- return out
-}
-
-func maxAllocHeuristic(in [][]rune) int {
- heuristic := make(map[rune]int)
- for _, initialism := range in {
- heuristic[initialism[0]]++
- }
-
- var maxAlloc int
- for _, val := range heuristic {
- if val > maxAlloc {
- maxAlloc = val
- }
- }
-
- return maxAlloc
-}
-
-// AddInitialisms add additional initialisms
-func AddInitialisms(words ...string) {
- for _, word := range words {
- // commonInitialisms[upper(word)] = true
- commonInitialisms.add(upper(word))
- }
- // sort again
- initialisms = commonInitialisms.sorted()
- initialismsRunes = asRunes(initialisms)
- initialismsUpperCased = asUpperCased(initialisms)
-}
-
-// indexOfInitialisms is a thread-safe implementation of the sorted index of initialisms.
-// Since go1.9, this may be implemented with sync.Map.
-type indexOfInitialisms struct {
- sortMutex *sync.Mutex
- index *sync.Map
-}
-
-func newIndexOfInitialisms() *indexOfInitialisms {
- return &indexOfInitialisms{
- sortMutex: new(sync.Mutex),
- index: new(sync.Map),
- }
-}
-
-func (m *indexOfInitialisms) load(initial map[string]bool) *indexOfInitialisms {
- m.sortMutex.Lock()
- defer m.sortMutex.Unlock()
- for k, v := range initial {
- m.index.Store(k, v)
- }
- return m
-}
-
-func (m *indexOfInitialisms) isInitialism(key string) bool {
- _, ok := m.index.Load(key)
- return ok
-}
-
-func (m *indexOfInitialisms) add(key string) *indexOfInitialisms {
- m.index.Store(key, true)
- return m
-}
-
-func (m *indexOfInitialisms) sorted() (result []string) {
- m.sortMutex.Lock()
- defer m.sortMutex.Unlock()
- m.index.Range(func(key, _ interface{}) bool {
- k := key.(string)
- result = append(result, k)
- return true
- })
- sort.Sort(sort.Reverse(byInitialism(result)))
- return
-}
-
-type byInitialism []string
-
-func (s byInitialism) Len() int {
- return len(s)
-}
-func (s byInitialism) Swap(i, j int) {
- s[i], s[j] = s[j], s[i]
-}
-func (s byInitialism) Less(i, j int) bool {
- if len(s[i]) != len(s[j]) {
- return len(s[i]) < len(s[j])
- }
-
- return strings.Compare(s[i], s[j]) > 0
-}
diff --git a/vendor/github.com/go-openapi/swag/json.go b/vendor/github.com/go-openapi/swag/json.go
deleted file mode 100644
index c7caa990..00000000
--- a/vendor/github.com/go-openapi/swag/json.go
+++ /dev/null
@@ -1,313 +0,0 @@
-// Copyright 2015 go-swagger maintainers
-//
-// 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.
-
-package swag
-
-import (
- "bytes"
- "encoding/json"
- "log"
- "reflect"
- "strings"
- "sync"
-
- "github.com/mailru/easyjson/jlexer"
- "github.com/mailru/easyjson/jwriter"
-)
-
-// nullJSON represents a JSON object with null type
-var nullJSON = []byte("null")
-
-// DefaultJSONNameProvider the default cache for types
-var DefaultJSONNameProvider = NewNameProvider()
-
-const comma = byte(',')
-
-var closers map[byte]byte
-
-func init() {
- closers = map[byte]byte{
- '{': '}',
- '[': ']',
- }
-}
-
-type ejMarshaler interface {
- MarshalEasyJSON(w *jwriter.Writer)
-}
-
-type ejUnmarshaler interface {
- UnmarshalEasyJSON(w *jlexer.Lexer)
-}
-
-// WriteJSON writes json data, prefers finding an appropriate interface to short-circuit the marshaler
-// so it takes the fastest option available.
-func WriteJSON(data interface{}) ([]byte, error) {
- if d, ok := data.(ejMarshaler); ok {
- jw := new(jwriter.Writer)
- d.MarshalEasyJSON(jw)
- return jw.BuildBytes()
- }
- if d, ok := data.(json.Marshaler); ok {
- return d.MarshalJSON()
- }
- return json.Marshal(data)
-}
-
-// ReadJSON reads json data, prefers finding an appropriate interface to short-circuit the unmarshaler
-// so it takes the fastest option available
-func ReadJSON(data []byte, value interface{}) error {
- trimmedData := bytes.Trim(data, "\x00")
- if d, ok := value.(ejUnmarshaler); ok {
- jl := &jlexer.Lexer{Data: trimmedData}
- d.UnmarshalEasyJSON(jl)
- return jl.Error()
- }
- if d, ok := value.(json.Unmarshaler); ok {
- return d.UnmarshalJSON(trimmedData)
- }
- return json.Unmarshal(trimmedData, value)
-}
-
-// DynamicJSONToStruct converts an untyped json structure into a struct
-func DynamicJSONToStruct(data interface{}, target interface{}) error {
- // TODO: convert straight to a json typed map (mergo + iterate?)
- b, err := WriteJSON(data)
- if err != nil {
- return err
- }
- return ReadJSON(b, target)
-}
-
-// ConcatJSON concatenates multiple json objects efficiently
-func ConcatJSON(blobs ...[]byte) []byte {
- if len(blobs) == 0 {
- return nil
- }
-
- last := len(blobs) - 1
- for blobs[last] == nil || bytes.Equal(blobs[last], nullJSON) {
- // strips trailing null objects
- last--
- if last < 0 {
- // there was nothing but "null"s or nil...
- return nil
- }
- }
- if last == 0 {
- return blobs[0]
- }
-
- var opening, closing byte
- var idx, a int
- buf := bytes.NewBuffer(nil)
-
- for i, b := range blobs[:last+1] {
- if b == nil || bytes.Equal(b, nullJSON) {
- // a null object is in the list: skip it
- continue
- }
- if len(b) > 0 && opening == 0 { // is this an array or an object?
- opening, closing = b[0], closers[b[0]]
- }
-
- if opening != '{' && opening != '[' {
- continue // don't know how to concatenate non container objects
- }
-
- const minLengthIfNotEmpty = 3
- if len(b) < minLengthIfNotEmpty { // yep empty but also the last one, so closing this thing
- if i == last && a > 0 {
- if err := buf.WriteByte(closing); err != nil {
- log.Println(err)
- }
- }
- continue
- }
-
- idx = 0
- if a > 0 { // we need to join with a comma for everything beyond the first non-empty item
- if err := buf.WriteByte(comma); err != nil {
- log.Println(err)
- }
- idx = 1 // this is not the first or the last so we want to drop the leading bracket
- }
-
- if i != last { // not the last one, strip brackets
- if _, err := buf.Write(b[idx : len(b)-1]); err != nil {
- log.Println(err)
- }
- } else { // last one, strip only the leading bracket
- if _, err := buf.Write(b[idx:]); err != nil {
- log.Println(err)
- }
- }
- a++
- }
- // somehow it ended up being empty, so provide a default value
- if buf.Len() == 0 {
- if err := buf.WriteByte(opening); err != nil {
- log.Println(err)
- }
- if err := buf.WriteByte(closing); err != nil {
- log.Println(err)
- }
- }
- return buf.Bytes()
-}
-
-// ToDynamicJSON turns an object into a properly JSON typed structure
-func ToDynamicJSON(data interface{}) interface{} {
- // TODO: convert straight to a json typed map (mergo + iterate?)
- b, err := json.Marshal(data)
- if err != nil {
- log.Println(err)
- }
- var res interface{}
- if err := json.Unmarshal(b, &res); err != nil {
- log.Println(err)
- }
- return res
-}
-
-// FromDynamicJSON turns an object into a properly JSON typed structure
-func FromDynamicJSON(data, target interface{}) error {
- b, err := json.Marshal(data)
- if err != nil {
- log.Println(err)
- }
- return json.Unmarshal(b, target)
-}
-
-// NameProvider represents an object capable of translating from go property names
-// to json property names
-// This type is thread-safe.
-type NameProvider struct {
- lock *sync.Mutex
- index map[reflect.Type]nameIndex
-}
-
-type nameIndex struct {
- jsonNames map[string]string
- goNames map[string]string
-}
-
-// NewNameProvider creates a new name provider
-func NewNameProvider() *NameProvider {
- return &NameProvider{
- lock: &sync.Mutex{},
- index: make(map[reflect.Type]nameIndex),
- }
-}
-
-func buildnameIndex(tpe reflect.Type, idx, reverseIdx map[string]string) {
- for i := 0; i < tpe.NumField(); i++ {
- targetDes := tpe.Field(i)
-
- if targetDes.PkgPath != "" { // unexported
- continue
- }
-
- if targetDes.Anonymous { // walk embedded structures tree down first
- buildnameIndex(targetDes.Type, idx, reverseIdx)
- continue
- }
-
- if tag := targetDes.Tag.Get("json"); tag != "" {
-
- parts := strings.Split(tag, ",")
- if len(parts) == 0 {
- continue
- }
-
- nm := parts[0]
- if nm == "-" {
- continue
- }
- if nm == "" { // empty string means we want to use the Go name
- nm = targetDes.Name
- }
-
- idx[nm] = targetDes.Name
- reverseIdx[targetDes.Name] = nm
- }
- }
-}
-
-func newNameIndex(tpe reflect.Type) nameIndex {
- var idx = make(map[string]string, tpe.NumField())
- var reverseIdx = make(map[string]string, tpe.NumField())
-
- buildnameIndex(tpe, idx, reverseIdx)
- return nameIndex{jsonNames: idx, goNames: reverseIdx}
-}
-
-// GetJSONNames gets all the json property names for a type
-func (n *NameProvider) GetJSONNames(subject interface{}) []string {
- n.lock.Lock()
- defer n.lock.Unlock()
- tpe := reflect.Indirect(reflect.ValueOf(subject)).Type()
- names, ok := n.index[tpe]
- if !ok {
- names = n.makeNameIndex(tpe)
- }
-
- res := make([]string, 0, len(names.jsonNames))
- for k := range names.jsonNames {
- res = append(res, k)
- }
- return res
-}
-
-// GetJSONName gets the json name for a go property name
-func (n *NameProvider) GetJSONName(subject interface{}, name string) (string, bool) {
- tpe := reflect.Indirect(reflect.ValueOf(subject)).Type()
- return n.GetJSONNameForType(tpe, name)
-}
-
-// GetJSONNameForType gets the json name for a go property name on a given type
-func (n *NameProvider) GetJSONNameForType(tpe reflect.Type, name string) (string, bool) {
- n.lock.Lock()
- defer n.lock.Unlock()
- names, ok := n.index[tpe]
- if !ok {
- names = n.makeNameIndex(tpe)
- }
- nme, ok := names.goNames[name]
- return nme, ok
-}
-
-func (n *NameProvider) makeNameIndex(tpe reflect.Type) nameIndex {
- names := newNameIndex(tpe)
- n.index[tpe] = names
- return names
-}
-
-// GetGoName gets the go name for a json property name
-func (n *NameProvider) GetGoName(subject interface{}, name string) (string, bool) {
- tpe := reflect.Indirect(reflect.ValueOf(subject)).Type()
- return n.GetGoNameForType(tpe, name)
-}
-
-// GetGoNameForType gets the go name for a given type for a json property name
-func (n *NameProvider) GetGoNameForType(tpe reflect.Type, name string) (string, bool) {
- n.lock.Lock()
- defer n.lock.Unlock()
- names, ok := n.index[tpe]
- if !ok {
- names = n.makeNameIndex(tpe)
- }
- nme, ok := names.jsonNames[name]
- return nme, ok
-}
diff --git a/vendor/github.com/go-openapi/swag/jsonname/LICENSE b/vendor/github.com/go-openapi/swag/jsonname/LICENSE
new file mode 100644
index 00000000..d6456956
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/jsonname/LICENSE
@@ -0,0 +1,202 @@
+
+ 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/go-openapi/swag/jsonname/doc.go b/vendor/github.com/go-openapi/swag/jsonname/doc.go
new file mode 100644
index 00000000..b2e0c80f
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/jsonname/doc.go
@@ -0,0 +1,16 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+// Package jsonname is a provider of json property names from go properties.
+package jsonname
diff --git a/vendor/github.com/go-openapi/swag/jsonname/name_provider.go b/vendor/github.com/go-openapi/swag/jsonname/name_provider.go
new file mode 100644
index 00000000..e87aac2f
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/jsonname/name_provider.go
@@ -0,0 +1,149 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+package jsonname
+
+import (
+ "reflect"
+ "strings"
+ "sync"
+)
+
+// DefaultJSONNameProvider is the default cache for types.
+var DefaultJSONNameProvider = NewNameProvider()
+
+// NameProvider represents an object capable of translating from go property names
+// to json property names.
+//
+// This type is thread-safe.
+//
+// See [github.com/go-openapi/jsonpointer.Pointer] for an example.
+type NameProvider struct {
+ lock *sync.Mutex
+ index map[reflect.Type]nameIndex
+}
+
+type nameIndex struct {
+ jsonNames map[string]string
+ goNames map[string]string
+}
+
+// NewNameProvider creates a new name provider
+func NewNameProvider() *NameProvider {
+ return &NameProvider{
+ lock: &sync.Mutex{},
+ index: make(map[reflect.Type]nameIndex),
+ }
+}
+
+func buildnameIndex(tpe reflect.Type, idx, reverseIdx map[string]string) {
+ for i := 0; i < tpe.NumField(); i++ {
+ targetDes := tpe.Field(i)
+
+ if targetDes.PkgPath != "" { // unexported
+ continue
+ }
+
+ if targetDes.Anonymous { // walk embedded structures tree down first
+ buildnameIndex(targetDes.Type, idx, reverseIdx)
+ continue
+ }
+
+ if tag := targetDes.Tag.Get("json"); tag != "" {
+
+ parts := strings.Split(tag, ",")
+ if len(parts) == 0 {
+ continue
+ }
+
+ nm := parts[0]
+ if nm == "-" {
+ continue
+ }
+ if nm == "" { // empty string means we want to use the Go name
+ nm = targetDes.Name
+ }
+
+ idx[nm] = targetDes.Name
+ reverseIdx[targetDes.Name] = nm
+ }
+ }
+}
+
+func newNameIndex(tpe reflect.Type) nameIndex {
+ var idx = make(map[string]string, tpe.NumField())
+ var reverseIdx = make(map[string]string, tpe.NumField())
+
+ buildnameIndex(tpe, idx, reverseIdx)
+ return nameIndex{jsonNames: idx, goNames: reverseIdx}
+}
+
+// GetJSONNames gets all the json property names for a type
+func (n *NameProvider) GetJSONNames(subject interface{}) []string {
+ n.lock.Lock()
+ defer n.lock.Unlock()
+ tpe := reflect.Indirect(reflect.ValueOf(subject)).Type()
+ names, ok := n.index[tpe]
+ if !ok {
+ names = n.makeNameIndex(tpe)
+ }
+
+ res := make([]string, 0, len(names.jsonNames))
+ for k := range names.jsonNames {
+ res = append(res, k)
+ }
+ return res
+}
+
+// GetJSONName gets the json name for a go property name
+func (n *NameProvider) GetJSONName(subject interface{}, name string) (string, bool) {
+ tpe := reflect.Indirect(reflect.ValueOf(subject)).Type()
+ return n.GetJSONNameForType(tpe, name)
+}
+
+// GetJSONNameForType gets the json name for a go property name on a given type
+func (n *NameProvider) GetJSONNameForType(tpe reflect.Type, name string) (string, bool) {
+ n.lock.Lock()
+ defer n.lock.Unlock()
+ names, ok := n.index[tpe]
+ if !ok {
+ names = n.makeNameIndex(tpe)
+ }
+ nme, ok := names.goNames[name]
+ return nme, ok
+}
+
+// GetGoName gets the go name for a json property name
+func (n *NameProvider) GetGoName(subject interface{}, name string) (string, bool) {
+ tpe := reflect.Indirect(reflect.ValueOf(subject)).Type()
+ return n.GetGoNameForType(tpe, name)
+}
+
+// GetGoNameForType gets the go name for a given type for a json property name
+func (n *NameProvider) GetGoNameForType(tpe reflect.Type, name string) (string, bool) {
+ n.lock.Lock()
+ defer n.lock.Unlock()
+ names, ok := n.index[tpe]
+ if !ok {
+ names = n.makeNameIndex(tpe)
+ }
+ nme, ok := names.jsonNames[name]
+ return nme, ok
+}
+
+func (n *NameProvider) makeNameIndex(tpe reflect.Type) nameIndex {
+ names := newNameIndex(tpe)
+ n.index[tpe] = names
+ return names
+}
diff --git a/vendor/github.com/go-openapi/swag/jsonname_iface.go b/vendor/github.com/go-openapi/swag/jsonname_iface.go
new file mode 100644
index 00000000..555369d7
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/jsonname_iface.go
@@ -0,0 +1,35 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+package swag
+
+import (
+ "github.com/go-openapi/swag/jsonname"
+)
+
+// DefaultJSONNameProvider is the default cache for types
+//
+// Deprecated: use [jsonname.DefaultJSONNameProvider] instead.
+var DefaultJSONNameProvider = jsonname.DefaultJSONNameProvider
+
+// NameProvider represents an object capable of translating from go property names
+// to json property names.
+//
+// Deprecated: use [jsonname.NameProvider] instead.
+type NameProvider = jsonname.NameProvider
+
+// NewNameProvider creates a new name provider
+//
+// Deprecated: use [jsonname.NewNameProvider] instead.
+func NewNameProvider() *NameProvider { return jsonname.NewNameProvider() }
diff --git a/vendor/github.com/go-openapi/swag/jsonutils/LICENSE b/vendor/github.com/go-openapi/swag/jsonutils/LICENSE
new file mode 100644
index 00000000..d6456956
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/jsonutils/LICENSE
@@ -0,0 +1,202 @@
+
+ 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/go-openapi/swag/jsonutils/README.md b/vendor/github.com/go-openapi/swag/jsonutils/README.md
new file mode 100644
index 00000000..c8d0cab6
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/jsonutils/README.md
@@ -0,0 +1,108 @@
+ # jsonutils
+
+`jsonutils` exposes a few tools to work with JSON:
+
+- a fast, simple `Concat` to concatenate (not merge) JSON objects and arrays
+- `FromDynamicJSON` to convert a data structure into a "dynamic JSON" data structure
+- `ReadJSON` and `WriteJSON` behave like `json.Unmarshal` and `json.Marshal`,
+ with the ability to use another underlying serialization library through an `Adapter`
+ configured at runtime
+- a `JSONMapSlice` structure that may be used to store JSON objects with the order of keys maintained
+
+## Dynamic JSON
+
+We call "dynamic JSON" the go data structure that results from unmarshaling JSON like this:
+
+```go
+ var value any
+ jsonBytes := `{"a": 1, ... }`
+ _ = json.Unmarshal(jsonBytes, &value)
+```
+
+In this configuration, the standard library mappings are as follows:
+
+| JSON | go |
+|-----------|------------------|
+| `number` | `float64` |
+| `string` | `string` |
+| `boolean` | `bool` |
+| `null` | `nil` |
+| `object` | `map[string]any` |
+| `array` | `[]any` |
+
+## Map slices
+
+When using `JSONMapSlice`, the ordering of keys is ensured by replacing
+mappings to `map[string]any` by a `JSONMapSlice` which is an (ordered)
+slice of `JSONMapItem`s.
+
+Notice that a similar feature is available for YAML (see [`yamlutils`](../yamlutils)),
+with a `YAMLMapSlice` type based on the `JSONMapSlice`.
+
+`JSONMapSlice` is similar to an ordered map, but the keys are not retrieved
+in constant time.
+
+Another difference with the the above standard mappings is that numbers don't always map
+to a `float64`: if the value is a JSON integer, it unmarshals to `int64`.
+
+See also [some examples](https://pkg.go.dev/github.com/go-openapi/swag/jsonutils#pkg-examples)
+
+## Adapters
+
+`ReadJSON`, `WriteJSON` and `FromDynamicJSON` (which is a combination of the latter two)
+are wrappers on top of `json.Unmarshal` and `json.Marshal`.
+
+By default, the adapter merely wraps the standard library.
+
+The adapter may be used to register other JSON serialization libraries,
+possibly several ones at the same time.
+
+If the value passed is identified as an "ordered map" (i.e. implements `ifaces.Ordered`
+or `ifaces.SetOrdered`, the adapter favors the "ordered" JSON behavior and tries to
+find a registered implementation that support ordered keys in objects.
+
+Our standard library implementation supports this.
+
+As of `v0.25.0`, we support through such an adapter the popular `mailru/easyjson`
+library, which kicks in when the passed values support the `easyjson.Unmarshaler`
+or `easyjson.Marshaler` interfaces.
+
+In the future, we plan to add more similar libraries that compete on the go JSON
+serializers scene.
+
+## Registering an adapter
+
+In package `github.com/go-openapi/swag/easyjson/adapters`, several adapters are available.
+
+Each adapter is an independent go module. Hence you'll pick its dependencies only if you import it.
+
+At this moment we provide:
+* `stdlib`: JSON adapter based on the standard library
+* `easyjson`: JSON adapter based on the `github.com/mailru/easyyjson`
+
+The adapters provide the basic `Marshal` and `Unmarshal` capabilities, plus an implementation
+of the `MapSlice` pattern.
+
+You may also build your own adapter based on your specific use-case. An adapter is not required to implement
+all capabilities.
+
+Every adapter comes with a `Register` function, possibly with some options, to register the adapter
+to a global registry.
+
+For example, to enable `easyjson` to be used in `ReadJSON` and `WriteJSON`, you would write something like:
+
+```go
+ import (
+ "github.com/go-openapi/swag/jsonutils/adapters"
+ easyjson "github.com/go-openapi/swag/jsonutils/adapters/easyjson/json"
+ )
+
+ func init() {
+ easyjson.Register(adapters.Registry)
+ }
+```
+
+You may register several adapters. In this case, capability matching is evaluated from the last registered
+adapters (LIFO).
+
+## [Benchmarks](./adapters/testintegration/benchmarks/README.md)
diff --git a/vendor/github.com/go-openapi/swag/jsonutils/adapters/doc.go b/vendor/github.com/go-openapi/swag/jsonutils/adapters/doc.go
new file mode 100644
index 00000000..dbb38c2f
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/jsonutils/adapters/doc.go
@@ -0,0 +1,19 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+// Package adapters exposes a registry of adapters to multiple
+// JSON serialization libraries.
+//
+// All interfaces are defined in package [ifaces.Adapter].
+package adapters
diff --git a/vendor/github.com/go-openapi/swag/jsonutils/adapters/ifaces/doc.go b/vendor/github.com/go-openapi/swag/jsonutils/adapters/ifaces/doc.go
new file mode 100644
index 00000000..49649859
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/jsonutils/adapters/ifaces/doc.go
@@ -0,0 +1,2 @@
+// Package ifaces exposes all interfaces to work with adapters.
+package ifaces
diff --git a/vendor/github.com/go-openapi/swag/jsonutils/adapters/ifaces/ifaces.go b/vendor/github.com/go-openapi/swag/jsonutils/adapters/ifaces/ifaces.go
new file mode 100644
index 00000000..4927d872
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/jsonutils/adapters/ifaces/ifaces.go
@@ -0,0 +1,81 @@
+package ifaces
+
+import (
+ _ "encoding/json" // for documentation purpose
+ "iter"
+)
+
+// Ordered knows how to iterate over the (key,value) pairs of a JSON object.
+type Ordered interface {
+ OrderedItems() iter.Seq2[string, any]
+}
+
+// SetOrdered knows how to append or update the keys of a JSON object,
+// given an iterator over (key,value) pairs.
+//
+// If the provided iterator is nil then the receiver should be set to nil.
+type SetOrdered interface {
+ SetOrderedItems(iter.Seq2[string, any])
+}
+
+// OrderedMap represent a JSON object (i.e. like a map[string,any]),
+// and knows how to serialize and deserialize JSON with the order of keys maintained.
+type OrderedMap interface {
+ Ordered
+ SetOrdered
+
+ OrderedMarshalJSON() ([]byte, error)
+ OrderedUnmarshalJSON([]byte) error
+}
+
+// MarshalAdapter behaves likes the standard library [json.Marshal].
+type MarshalAdapter interface {
+ Poolable
+
+ Marshal(any) ([]byte, error)
+}
+
+// OrderedMarshalAdapter behaves likes the standard library [json.Marshal], preserving the order of keys in objects.
+type OrderedMarshalAdapter interface {
+ Poolable
+
+ OrderedMarshal(Ordered) ([]byte, error)
+}
+
+// UnmarshalAdapter behaves likes the standard library [json.Unmarshal].
+type UnmarshalAdapter interface {
+ Poolable
+
+ Unmarshal([]byte, any) error
+}
+
+// OrderedUnmarshalAdapter behaves likes the standard library [json.Unmarshal], preserving the order of keys in objects.
+type OrderedUnmarshalAdapter interface {
+ Poolable
+
+ OrderedUnmarshal([]byte, SetOrdered) error
+}
+
+// Adapter exposes an interface like the standard [json] library.
+type Adapter interface {
+ MarshalAdapter
+ UnmarshalAdapter
+
+ OrderedAdapter
+}
+
+// OrderedAdapter exposes interfaces to process JSON and keep the order of object keys.
+type OrderedAdapter interface {
+ OrderedMarshalAdapter
+ OrderedUnmarshalAdapter
+ NewOrderedMap(capacity int) OrderedMap
+}
+
+type Poolable interface {
+ // Self-redeem: for [Adapter] s that are allocated from a pool.
+ // The [Adapter] must not be used after calling [Redeem].
+ Redeem()
+
+ // Reset the state of the [Adapter], if any.
+ Reset()
+}
diff --git a/vendor/github.com/go-openapi/swag/jsonutils/adapters/ifaces/registry_iface.go b/vendor/github.com/go-openapi/swag/jsonutils/adapters/ifaces/registry_iface.go
new file mode 100644
index 00000000..d1fe6a0a
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/jsonutils/adapters/ifaces/registry_iface.go
@@ -0,0 +1,88 @@
+package ifaces
+
+import (
+ "strings"
+)
+
+// Capability indicates what a JSON adapter is capable of.
+type Capability uint8
+
+const (
+ CapabilityMarshalJSON Capability = 1 << iota
+ CapabilityUnmarshalJSON
+ CapabilityOrderedMarshalJSON
+ CapabilityOrderedUnmarshalJSON
+ CapabilityOrderedMap
+)
+
+func (c Capability) String() string {
+ switch c {
+ case CapabilityMarshalJSON:
+ return "MarshalJSON"
+ case CapabilityUnmarshalJSON:
+ return "UnmarshalJSON"
+ case CapabilityOrderedMarshalJSON:
+ return "OrderedMarshalJSON"
+ case CapabilityOrderedUnmarshalJSON:
+ return "OrderedUnmarshalJSON"
+ case CapabilityOrderedMap:
+ return "OrderedMap"
+ default:
+ return ""
+ }
+}
+
+// Capabilities holds several unitary capability flags
+type Capabilities uint8
+
+// Has some capability flag enabled.
+func (c Capabilities) Has(capability Capability) bool {
+ return Capability(c)&capability > 0
+}
+
+func (c Capabilities) String() string {
+ var w strings.Builder
+
+ first := true
+ for _, capability := range []Capability{
+ CapabilityMarshalJSON,
+ CapabilityUnmarshalJSON,
+ CapabilityOrderedMarshalJSON,
+ CapabilityOrderedUnmarshalJSON,
+ CapabilityOrderedMap,
+ } {
+ if c.Has(capability) {
+ if !first {
+ w.WriteByte('|')
+ } else {
+ first = false
+ }
+ w.WriteString(capability.String())
+ }
+ }
+
+ return w.String()
+}
+
+const (
+ AllCapabilities Capabilities = Capabilities(uint8(CapabilityMarshalJSON) |
+ uint8(CapabilityUnmarshalJSON) |
+ uint8(CapabilityOrderedMarshalJSON) |
+ uint8(CapabilityOrderedUnmarshalJSON) |
+ uint8(CapabilityOrderedMap))
+
+ AllUnorderedCapabilities Capabilities = Capabilities(uint8(CapabilityMarshalJSON) | uint8(CapabilityUnmarshalJSON))
+)
+
+// RegistryEntry describes how any given adapter registers its capabilities to the [Registrar].
+type RegistryEntry struct {
+ Who string
+ What Capabilities
+ Constructor func() Adapter
+ Support func(what Capability, value any) bool
+}
+
+// Registrar is a type that knows how to keep registration calls from adapters.
+type Registrar interface {
+ RegisterFor(RegistryEntry)
+}
diff --git a/vendor/github.com/go-openapi/swag/jsonutils/adapters/registry.go b/vendor/github.com/go-openapi/swag/jsonutils/adapters/registry.go
new file mode 100644
index 00000000..b34a2305
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/jsonutils/adapters/registry.go
@@ -0,0 +1,240 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+package adapters
+
+import (
+ "fmt"
+ "reflect"
+ "slices"
+ "sync"
+
+ "github.com/go-openapi/swag/jsonutils/adapters/ifaces"
+ stdlib "github.com/go-openapi/swag/jsonutils/adapters/stdlib/json"
+)
+
+// Registry holds the global registry for registered adapters.
+var Registry = NewRegistrar()
+
+var (
+ defaultRegistered = stdlib.Register
+
+ _ ifaces.Registrar = &Registrar{}
+)
+
+type registryError string
+
+func (e registryError) Error() string {
+ return string(e)
+}
+
+// ErrRegistry indicates an error returned by the [Registrar].
+var ErrRegistry registryError = "JSON adapters registry error"
+
+type registry []*ifaces.RegistryEntry
+
+// Registrar holds registered [ifaces.Adapters] for different serialization capabilities.
+//
+// Internally, it maintains a cache for data types that favor a given adapter.
+type Registrar struct {
+ marshalerRegistry registry
+ unmarshalerRegistry registry
+ orderedMarshalerRegistry registry
+ orderedUnmarshalerRegistry registry
+ orderedMapRegistry registry
+
+ gmx sync.RWMutex
+
+ // cache indexed by value type, so we don't have to lookup
+ marshalerCache map[reflect.Type]*ifaces.RegistryEntry
+ unmarshalerCache map[reflect.Type]*ifaces.RegistryEntry
+ orderedMarshalerCache map[reflect.Type]*ifaces.RegistryEntry
+ orderedUnmarshalerCache map[reflect.Type]*ifaces.RegistryEntry
+ orderedMapCache map[reflect.Type]*ifaces.RegistryEntry
+}
+
+func NewRegistrar() *Registrar {
+ r := &Registrar{}
+
+ r.marshalerRegistry = make(registry, 0, 1)
+ r.unmarshalerRegistry = make(registry, 0, 1)
+ r.orderedMarshalerRegistry = make(registry, 0, 1)
+ r.orderedUnmarshalerRegistry = make(registry, 0, 1)
+ r.orderedMapRegistry = make(registry, 0, 1)
+
+ r.marshalerCache = make(map[reflect.Type]*ifaces.RegistryEntry)
+ r.unmarshalerCache = make(map[reflect.Type]*ifaces.RegistryEntry)
+ r.orderedMarshalerCache = make(map[reflect.Type]*ifaces.RegistryEntry)
+ r.orderedUnmarshalerCache = make(map[reflect.Type]*ifaces.RegistryEntry)
+ r.orderedMapCache = make(map[reflect.Type]*ifaces.RegistryEntry)
+
+ defaultRegistered(r)
+
+ return r
+}
+
+// ClearCache resets the internal type cache.
+func (r *Registrar) ClearCache() {
+ r.gmx.Lock()
+ r.clearCache()
+ r.gmx.Unlock()
+}
+
+// Reset the [Registrar] to its defaults.
+func (r *Registrar) Reset() {
+ r.gmx.Lock()
+ r.clearCache()
+ r.marshalerRegistry = r.marshalerRegistry[:0]
+ r.unmarshalerRegistry = r.unmarshalerRegistry[:0]
+ r.orderedMarshalerRegistry = r.orderedMarshalerRegistry[:0]
+ r.orderedUnmarshalerRegistry = r.orderedUnmarshalerRegistry[:0]
+ r.orderedMapRegistry = r.orderedMapRegistry[:0]
+ r.gmx.Unlock()
+
+ defaultRegistered(r)
+}
+
+// RegisterFor registers an adapter for some JSON capabilities.
+func (r *Registrar) RegisterFor(entry ifaces.RegistryEntry) {
+ r.gmx.Lock()
+ if entry.What.Has(ifaces.CapabilityMarshalJSON) {
+ e := entry
+ e.What &= ifaces.Capabilities(ifaces.CapabilityMarshalJSON)
+ r.marshalerRegistry = slices.Insert(r.marshalerRegistry, 0, &e)
+ }
+ if entry.What.Has(ifaces.CapabilityUnmarshalJSON) {
+ e := entry
+ e.What &= ifaces.Capabilities(ifaces.CapabilityUnmarshalJSON)
+ r.unmarshalerRegistry = slices.Insert(r.unmarshalerRegistry, 0, &e)
+ }
+ if entry.What.Has(ifaces.CapabilityOrderedMarshalJSON) {
+ e := entry
+ e.What &= ifaces.Capabilities(ifaces.CapabilityOrderedMarshalJSON)
+ r.orderedMarshalerRegistry = slices.Insert(r.orderedMarshalerRegistry, 0, &e)
+ }
+ if entry.What.Has(ifaces.CapabilityOrderedUnmarshalJSON) {
+ e := entry
+ e.What &= ifaces.Capabilities(ifaces.CapabilityOrderedUnmarshalJSON)
+ r.orderedUnmarshalerRegistry = slices.Insert(r.orderedUnmarshalerRegistry, 0, &e)
+ }
+ if entry.What.Has(ifaces.CapabilityOrderedMap) {
+ e := entry
+ e.What &= ifaces.Capabilities(ifaces.CapabilityOrderedMap)
+ r.orderedMapRegistry = slices.Insert(r.orderedMapRegistry, 0, &e)
+ }
+ r.gmx.Unlock()
+}
+
+// AdapterFor returns an [ifaces.Adapter] that supports this capability for this type of value.
+//
+// The [ifaces.Adapter] may be redeemed to its pool using its Redeem() method, for adapters that support global
+// pooling. When this is not the case, the redeem function is just a no-operation.
+func (r *Registrar) AdapterFor(capability ifaces.Capability, value any) ifaces.Adapter {
+ entry := r.findFirstFor(capability, value)
+ if entry == nil {
+ return nil
+ }
+
+ return entry.Constructor()
+}
+
+func (r *Registrar) clearCache() {
+ clear(r.marshalerCache)
+ clear(r.unmarshalerCache)
+ clear(r.orderedMarshalerCache)
+ clear(r.orderedUnmarshalerCache)
+ clear(r.orderedMapCache)
+}
+
+func (r *Registrar) findFirstFor(capability ifaces.Capability, value any) *ifaces.RegistryEntry {
+ switch capability {
+ case ifaces.CapabilityMarshalJSON:
+ return r.findFirstInRegistryFor(r.marshalerRegistry, r.marshalerCache, capability, value)
+ case ifaces.CapabilityUnmarshalJSON:
+ return r.findFirstInRegistryFor(r.unmarshalerRegistry, r.unmarshalerCache, capability, value)
+ case ifaces.CapabilityOrderedMarshalJSON:
+ return r.findFirstInRegistryFor(r.orderedMarshalerRegistry, r.orderedMarshalerCache, capability, value)
+ case ifaces.CapabilityOrderedUnmarshalJSON:
+ return r.findFirstInRegistryFor(r.orderedUnmarshalerRegistry, r.orderedUnmarshalerCache, capability, value)
+ case ifaces.CapabilityOrderedMap:
+ return r.findFirstInRegistryFor(r.orderedMapRegistry, r.orderedMapCache, capability, value)
+ default:
+ panic(fmt.Errorf("unsupported capability %d: %w", capability, ErrRegistry))
+ }
+}
+
+func (r *Registrar) findFirstInRegistryFor(reg registry, cache map[reflect.Type]*ifaces.RegistryEntry, capability ifaces.Capability, value any) *ifaces.RegistryEntry {
+ r.gmx.RLock()
+ if len(reg) > 1 {
+ if entry, ok := cache[reflect.TypeOf(value)]; ok {
+ // cache hit
+ r.gmx.RUnlock()
+ return entry
+ }
+ }
+
+ for _, entry := range reg {
+ if !entry.Support(capability, value) {
+ continue
+ }
+
+ r.gmx.RUnlock()
+
+ // update the internal cache
+ r.gmx.Lock()
+ cache[reflect.TypeOf(value)] = entry
+ r.gmx.Unlock()
+
+ return entry
+ }
+
+ // no adapter found
+ r.gmx.RUnlock()
+
+ return nil
+}
+
+// MarshalAdapterFor returns the first adapter that knows how to Marshal this type of value.
+func MarshalAdapterFor(value any) ifaces.MarshalAdapter {
+ return Registry.AdapterFor(ifaces.CapabilityMarshalJSON, value)
+}
+
+// OrderedMarshalAdapterFor returns the first adapter that knows how to OrderedMarshal this type of value.
+func OrderedMarshalAdapterFor(value ifaces.Ordered) ifaces.OrderedMarshalAdapter {
+ return Registry.AdapterFor(ifaces.CapabilityOrderedMarshalJSON, value)
+}
+
+// UnmarshalAdapterFor returns the first adapter that knows how to Unmarshal this type of value.
+func UnmarshalAdapterFor(value any) ifaces.UnmarshalAdapter {
+ return Registry.AdapterFor(ifaces.CapabilityUnmarshalJSON, value)
+}
+
+// OrderedUnmarshalAdapterFor provides the first adapter that knows how to OrderedUnmarshal this type of value.
+func OrderedUnmarshalAdapterFor(value ifaces.SetOrdered) ifaces.OrderedUnmarshalAdapter {
+ return Registry.AdapterFor(ifaces.CapabilityOrderedUnmarshalJSON, value)
+}
+
+// NewOrderedMap provides the "ordered map" implementation provided by the registry.
+func NewOrderedMap(capacity int) ifaces.OrderedMap {
+ var v any
+ adapter := Registry.AdapterFor(ifaces.CapabilityOrderedUnmarshalJSON, v)
+ if adapter == nil {
+ return nil
+ }
+
+ defer adapter.Redeem()
+ return adapter.NewOrderedMap(capacity)
+}
+
+func noopRedeemer() {}
diff --git a/vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/adapter.go b/vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/adapter.go
new file mode 100644
index 00000000..4df831b6
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/adapter.go
@@ -0,0 +1,126 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+package json
+
+import (
+ stdjson "encoding/json"
+
+ "github.com/go-openapi/swag/jsonutils/adapters/ifaces"
+ "github.com/go-openapi/swag/typeutils"
+)
+
+const sensibleBufferSize = 8192
+
+type jsonError string
+
+func (e jsonError) Error() string {
+ return string(e)
+}
+
+// ErrStdlib indicates that an error comes from the stdlib JSON adapter
+var ErrStdlib jsonError = "error from the JSON adapter stdlib"
+
+var _ ifaces.Adapter = &Adapter{}
+
+type Adapter struct {
+}
+
+// NewAdapter yields an [ifaces.Adapter] using the standard library.
+func NewAdapter() *Adapter {
+ return &Adapter{}
+}
+
+func (a *Adapter) Marshal(value any) ([]byte, error) {
+ return stdjson.Marshal(value)
+}
+
+func (a *Adapter) Unmarshal(data []byte, value any) error {
+ return stdjson.Unmarshal(data, value)
+}
+
+func (a *Adapter) OrderedMarshal(value ifaces.Ordered) ([]byte, error) {
+ w := poolOfWriters.Borrow()
+ defer func() {
+ poolOfWriters.Redeem(w)
+ }()
+
+ if typeutils.IsNil(value) {
+ w.RawString("null")
+
+ return w.BuildBytes()
+ }
+
+ w.RawByte('{')
+ first := true
+ for k, v := range value.OrderedItems() {
+ if first {
+ first = false
+ } else {
+ w.RawByte(',')
+ }
+
+ w.String(k)
+ w.RawByte(':')
+
+ switch val := v.(type) {
+ case ifaces.Ordered:
+ w.Raw(a.OrderedMarshal(val))
+ default:
+ w.Raw(stdjson.Marshal(v))
+ }
+ }
+
+ w.RawByte('}')
+
+ return w.BuildBytes()
+}
+
+func (a *Adapter) OrderedUnmarshal(data []byte, value ifaces.SetOrdered) error {
+ var m MapSlice
+ if err := m.OrderedUnmarshalJSON(data); err != nil {
+ return err
+ }
+
+ if typeutils.IsNil(m) {
+ // force input value to nil
+ value.SetOrderedItems(nil)
+
+ return nil
+ }
+
+ value.SetOrderedItems(m.OrderedItems())
+
+ return nil
+}
+
+func (a *Adapter) NewOrderedMap(capacity int) ifaces.OrderedMap {
+ m := make(MapSlice, 0, capacity)
+
+ return &m
+}
+
+// Redeem the [Adapter] when it comes from a pool.
+//
+// The adapter becomes immediately unusable once redeemed.
+func (a *Adapter) Redeem() {
+ if a == nil {
+ return
+ }
+
+ RedeemAdapter(a)
+}
+
+func (a *Adapter) Reset() {
+}
diff --git a/vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/doc.go b/vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/doc.go
new file mode 100644
index 00000000..2ff6b212
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/doc.go
@@ -0,0 +1,16 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+// Package json implements an [ifaces.Adapter] using the standard library.
+package json
diff --git a/vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/lexer.go b/vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/lexer.go
new file mode 100644
index 00000000..6d919199
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/lexer.go
@@ -0,0 +1,331 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+package json
+
+import (
+ stdjson "encoding/json"
+ "errors"
+ "fmt"
+ "io"
+ "math"
+ "strconv"
+
+ "github.com/go-openapi/swag/conv"
+)
+
+type token struct {
+ stdjson.Token
+}
+
+func (t token) String() string {
+ if t == invalidToken {
+ return "invalid token"
+ }
+ if t == eofToken {
+ return "EOF"
+ }
+
+ return fmt.Sprintf("%v", t.Token)
+}
+
+func (t token) Kind() tokenKind {
+ switch t.Token.(type) {
+ case nil:
+ return tokenNull
+ case stdjson.Delim:
+ return tokenDelim
+ case bool:
+ return tokenBool
+ case float64:
+ return tokenFloat
+ case stdjson.Number:
+ return tokenNumber
+ case string:
+ return tokenString
+ default:
+ return tokenUndef
+ }
+}
+
+func (t token) Delim() byte {
+ r, ok := t.Token.(stdjson.Delim)
+ if !ok {
+ return 0
+ }
+
+ return byte(r)
+}
+
+type tokenKind uint8
+
+const (
+ tokenUndef tokenKind = iota
+ tokenString
+ tokenNumber
+ tokenFloat
+ tokenBool
+ tokenNull
+ tokenDelim
+)
+
+var (
+ invalidToken = token{
+ Token: stdjson.Token(struct{}{}),
+ }
+
+ eofToken = token{
+ Token: stdjson.Token(&struct{}{}),
+ }
+
+ undefToken = token{
+ Token: stdjson.Token(uint8(0)),
+ }
+)
+
+// jlexer apes easyjson's jlexer, but uses the standard library decoder under the hood.
+type jlexer struct {
+ buf *bytesReader
+ dec *stdjson.Decoder
+ err error
+ // current token
+ next token
+ // started bool
+}
+
+type bytesReader struct {
+ buf []byte
+ offset int
+}
+
+func (b *bytesReader) Reset() {
+ b.buf = nil
+ b.offset = 0
+}
+
+func (b *bytesReader) Read(p []byte) (int, error) {
+ if b.offset >= len(b.buf) {
+ return 0, io.EOF
+ }
+
+ n := len(p)
+ buf := b.buf[b.offset:]
+ m := len(buf)
+
+ if n >= m {
+ copy(p, buf)
+ b.offset += m
+
+ return m, nil
+ }
+
+ copy(p, buf[:n])
+ b.offset += n
+
+ return n, nil
+}
+
+var _ io.Reader = &bytesReader{}
+
+func newLexer(data []byte) *jlexer {
+ l := &jlexer{
+ // current: undefToken,
+ next: undefToken,
+ }
+ l.buf = &bytesReader{
+ buf: data,
+ }
+ l.dec = stdjson.NewDecoder(l.buf) // unfortunately, cannot pool this
+
+ return l
+}
+
+func (l *jlexer) Reset() {
+ l.err = nil
+ l.next = undefToken
+ // leave l.dec and l.buf alone, since they are replaced at every Borrow
+}
+
+func (l *jlexer) Error() error {
+ return l.err
+}
+
+func (l *jlexer) SetErr(err error) {
+ l.err = err
+}
+
+func (l *jlexer) Ok() bool {
+ return l.err == nil
+}
+
+// NextToken consumes a token
+func (l *jlexer) NextToken() token {
+ if !l.Ok() {
+ return invalidToken
+ }
+
+ if l.next != undefToken {
+ next := l.next
+ l.next = undefToken
+
+ return next
+ }
+
+ return l.fetchToken()
+}
+
+// PeekToken returns the next token without consuming it
+func (l *jlexer) PeekToken() token {
+ if l.next == undefToken {
+ l.next = l.fetchToken()
+ }
+
+ return l.next
+}
+
+func (l *jlexer) Skip() {
+ _ = l.NextToken()
+}
+
+func (l *jlexer) IsDelim(c byte) bool {
+ if !l.Ok() {
+ return false
+ }
+
+ next := l.PeekToken()
+ if next.Kind() != tokenDelim {
+ return false
+ }
+
+ if next.Delim() != c {
+ return false
+ }
+
+ return true
+}
+
+func (l *jlexer) IsNull() bool {
+ if !l.Ok() {
+ return false
+ }
+
+ next := l.PeekToken()
+
+ return next.Kind() == tokenNull
+}
+
+func (l *jlexer) Delim(c byte) {
+ if !l.Ok() {
+ return
+ }
+
+ tok := l.NextToken()
+ if tok.Kind() != tokenDelim {
+ l.err = fmt.Errorf("expected a delimiter token but got '%v': %w", tok, ErrStdlib)
+
+ return
+ }
+
+ if tok.Delim() != c {
+ l.err = fmt.Errorf("expected delimiter '%q' but got '%q': %w", c, tok.Delim(), ErrStdlib)
+ }
+}
+
+func (l *jlexer) Null() {
+ if !l.Ok() {
+ return
+ }
+
+ tok := l.NextToken()
+ if tok.Kind() != tokenNull {
+ l.err = fmt.Errorf("expected a null token but got '%v': %w", tok, ErrStdlib)
+ }
+}
+
+func (l *jlexer) Number() any {
+ if !l.Ok() {
+ return 0
+ }
+
+ tok := l.NextToken()
+
+ switch tok.Kind() { //nolint:exhaustive
+ case tokenNumber:
+ n := tok.Token.(stdjson.Number).String()
+ f, _ := strconv.ParseFloat(n, 64)
+ if conv.IsFloat64AJSONInteger(f) {
+ return int64(math.Trunc(f))
+ }
+
+ return f
+
+ case tokenFloat:
+ f := tok.Token.(float64)
+ if conv.IsFloat64AJSONInteger(f) {
+ return int64(math.Trunc(f))
+ }
+
+ return f
+
+ default:
+ l.err = fmt.Errorf("expected a number token but got '%v': %w", tok, ErrStdlib)
+
+ return 0
+ }
+}
+
+func (l *jlexer) Bool() bool {
+ if !l.Ok() {
+ return false
+ }
+
+ tok := l.NextToken()
+ if tok.Kind() != tokenBool {
+ l.err = fmt.Errorf("expected a bool token but got '%v': %w", tok, ErrStdlib)
+
+ return false
+ }
+
+ return tok.Token.(bool)
+}
+
+func (l *jlexer) String() string {
+ if !l.Ok() {
+ return ""
+ }
+
+ tok := l.NextToken()
+ if tok.Kind() != tokenString {
+ l.err = fmt.Errorf("expected a string token but got '%v': %w", tok, ErrStdlib)
+
+ return ""
+ }
+
+ return tok.Token.(string)
+}
+
+// Commas and colons are elided.
+func (l *jlexer) fetchToken() token {
+ jtok, err := l.dec.Token()
+ if err != nil {
+ if errors.Is(err, io.EOF) {
+ return eofToken
+ }
+
+ l.err = errors.Join(err, ErrStdlib)
+ return invalidToken
+ }
+
+ return token{Token: jtok}
+}
diff --git a/vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/ordered_map.go b/vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/ordered_map.go
new file mode 100644
index 00000000..18e6294e
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/ordered_map.go
@@ -0,0 +1,277 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+package json
+
+import (
+ stdjson "encoding/json"
+ "fmt"
+ "iter"
+
+ "github.com/go-openapi/swag/jsonutils/adapters/ifaces"
+)
+
+var _ ifaces.OrderedMap = &MapSlice{}
+
+// MapSlice represents a JSON object, with the order of keys maintained.
+type MapSlice []MapItem
+
+func (s MapSlice) OrderedItems() iter.Seq2[string, any] {
+ return func(yield func(string, any) bool) {
+ for _, item := range s {
+ if !yield(item.Key, item.Value) {
+ return
+ }
+ }
+ }
+}
+
+func (s *MapSlice) SetOrderedItems(items iter.Seq2[string, any]) {
+ if items == nil {
+ *s = nil
+
+ return
+ }
+
+ m := *s
+ if len(m) > 0 {
+ // update mode
+ idx := make(map[string]int, len(m))
+
+ for i, item := range m {
+ idx[item.Key] = i
+ }
+
+ for k, v := range items {
+ idx, ok := idx[k]
+ if ok {
+ m[idx].Value = v
+
+ continue
+ }
+ m = append(m, MapItem{Key: k, Value: v})
+ }
+
+ *s = m
+
+ return
+ }
+
+ for k, v := range items {
+ m = append(m, MapItem{Key: k, Value: v})
+ }
+
+ *s = m
+}
+
+// MarshalJSON renders a [MapSlice] as JSON bytes, preserving the order of keys.
+func (s MapSlice) MarshalJSON() ([]byte, error) {
+ return s.OrderedMarshalJSON()
+}
+
+func (s MapSlice) OrderedMarshalJSON() ([]byte, error) {
+ w := poolOfWriters.Borrow()
+ defer func() {
+ poolOfWriters.Redeem(w)
+ }()
+
+ s.marshalObject(w)
+
+ return w.BuildBytes() // this clones data, so it's okay to redeem the writer and its buffer
+}
+
+// UnmarshalJSON builds a [MapSlice] from JSON bytes, preserving the order of keys.
+//
+// Inner objects are unmarshaled as [MapSlice] slices and not map[string]any.
+func (s *MapSlice) UnmarshalJSON(data []byte) error {
+ return s.OrderedUnmarshalJSON(data)
+}
+
+func (s *MapSlice) OrderedUnmarshalJSON(data []byte) error {
+ l := poolOfLexers.Borrow(data)
+ defer func() {
+ poolOfLexers.Redeem(l)
+ }()
+
+ s.unmarshalObject(l)
+
+ return l.Error()
+}
+
+func (s MapSlice) marshalObject(w *jwriter) {
+ if s == nil {
+ w.RawString("null")
+
+ return
+ }
+
+ w.RawByte('{')
+
+ if len(s) == 0 {
+ w.RawByte('}')
+
+ return
+ }
+
+ s[0].marshalJSON(w)
+
+ for i := 1; i < len(s); i++ {
+ w.RawByte(',')
+ s[i].marshalJSON(w)
+ }
+
+ w.RawByte('}')
+}
+
+func (s *MapSlice) unmarshalObject(in *jlexer) {
+ if in.IsNull() {
+ in.Skip()
+
+ return
+ }
+
+ in.Delim('{') // consume token
+ if !in.Ok() {
+ return
+ }
+
+ result := make(MapSlice, 0)
+
+ for in.Ok() && !in.IsDelim('}') {
+ var mi MapItem
+
+ mi.unmarshalKeyValue(in)
+ result = append(result, mi)
+ }
+
+ in.Delim('}')
+
+ if !in.Ok() {
+ return
+ }
+
+ *s = result
+}
+
+// MapItem represents the value of a key in a JSON object held by [MapSlice].
+//
+// Notice that [MapItem] should not be marshaled to or unmarshaled from JSON directly,
+// use this type as part of a [MapSlice] when dealing with JSON bytes.
+type MapItem struct {
+ Key string
+ Value any
+}
+
+func (s MapItem) marshalJSON(w *jwriter) {
+ w.String(s.Key)
+ w.RawByte(':')
+ w.Raw(stdjson.Marshal(s.Value))
+}
+
+func (s *MapItem) unmarshalKeyValue(in *jlexer) {
+ key := in.String() // consume string
+ value := s.asInterface(in) // consume any value, including termination tokens '}' or ']'
+
+ if !in.Ok() {
+ return
+ }
+
+ s.Key = key
+ s.Value = value
+}
+
+func (s *MapItem) unmarshalArray(in *jlexer) []any {
+ if in.IsNull() {
+ in.Skip()
+
+ return nil
+ }
+
+ in.Delim('[') // consume token
+ if !in.Ok() {
+ return nil
+ }
+
+ ret := make([]any, 0)
+
+ for in.Ok() && !in.IsDelim(']') {
+ ret = append(ret, s.asInterface(in))
+ }
+
+ in.Delim(']')
+ if !in.Ok() {
+ return nil
+ }
+
+ return ret
+}
+
+// asInterface is very much like [jlexer.Lexer.Interface], but unmarshals an object
+// into a [MapSlice], not a map[string]any.
+//
+// We have to force parsing errors somehow, since [jlexer.Lexer] doesn't let us
+// set a parsing error directly.
+func (s *MapItem) asInterface(in *jlexer) any {
+ if !in.Ok() {
+ return nil
+ }
+
+ tok := in.PeekToken() // look-ahead what the next token looks like
+ kind := tok.Kind()
+
+ switch kind {
+ case tokenString:
+ return in.String() // consume string
+
+ case tokenNumber, tokenFloat:
+ return in.Number()
+
+ case tokenBool:
+ return in.Bool()
+
+ case tokenNull:
+ in.Null()
+
+ return nil
+
+ case tokenDelim:
+ switch tok.Delim() {
+ case '{': // not consumed yet
+ ret := make(MapSlice, 0)
+ ret.unmarshalObject(in) // consumes the terminating '}'
+
+ if in.Ok() {
+ return ret
+ }
+
+ // lexer is in an error state: will exhaust
+ return nil
+
+ case '[': // not consumed yet
+ return s.unmarshalArray(in) // consumes the terminating ']'
+ default:
+ in.SetErr(fmt.Errorf("unexpected delimiter: %v: %w", tok, ErrStdlib)) // force error
+ return nil
+ }
+
+ case tokenUndef:
+ fallthrough
+ default:
+ if in.Ok() {
+ in.SetErr(fmt.Errorf("unexpected token: %v: %w", tok, ErrStdlib)) // force error
+ }
+
+ return nil
+ }
+}
diff --git a/vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/pool.go b/vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/pool.go
new file mode 100644
index 00000000..0f51d3a2
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/pool.go
@@ -0,0 +1,154 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+package json
+
+import (
+ "encoding/json"
+ "sync"
+
+ "github.com/go-openapi/swag/jsonutils/adapters/ifaces"
+)
+
+type adaptersPool struct {
+ sync.Pool
+}
+
+func (p *adaptersPool) Borrow() *Adapter {
+ return p.Get().(*Adapter)
+}
+
+func (p *adaptersPool) BorrowIface() ifaces.Adapter {
+ return p.Get().(*Adapter)
+}
+
+func (p *adaptersPool) Redeem(a *Adapter) {
+ p.Put(a)
+}
+
+type writersPool struct {
+ sync.Pool
+}
+
+func (p *writersPool) Borrow() *jwriter {
+ ptr := p.Get()
+
+ jw := ptr.(*jwriter)
+ jw.Reset()
+
+ return jw
+}
+
+func (p *writersPool) Redeem(w *jwriter) {
+ p.Put(w)
+}
+
+type lexersPool struct {
+ sync.Pool
+}
+
+func (p *lexersPool) Borrow(data []byte) *jlexer {
+ ptr := p.Get()
+
+ l := ptr.(*jlexer)
+ l.buf = poolOfReaders.Borrow(data)
+ l.dec = json.NewDecoder(l.buf) // cannot pool, not exposed by the encoding/json API
+ l.Reset()
+
+ return l
+}
+
+func (p *lexersPool) Redeem(l *jlexer) {
+ l.dec = nil
+ discard := l.buf
+ l.buf = nil
+ poolOfReaders.Redeem(discard)
+ p.Put(l)
+}
+
+type readersPool struct {
+ sync.Pool
+}
+
+func (p *readersPool) Borrow(data []byte) *bytesReader {
+ ptr := p.Get()
+
+ b := ptr.(*bytesReader)
+ b.Reset()
+ b.buf = data
+
+ return b
+}
+
+func (p *readersPool) Redeem(b *bytesReader) {
+ p.Put(b)
+}
+
+var (
+ poolOfAdapters = &adaptersPool{
+ Pool: sync.Pool{
+ New: func() any {
+ return NewAdapter()
+ },
+ },
+ }
+
+ poolOfWriters = &writersPool{
+ Pool: sync.Pool{
+ New: func() any {
+ return newJWriter()
+ },
+ },
+ }
+
+ poolOfLexers = &lexersPool{
+ Pool: sync.Pool{
+ New: func() any {
+ return newLexer(nil)
+ },
+ },
+ }
+
+ poolOfReaders = &readersPool{
+ Pool: sync.Pool{
+ New: func() any {
+ return &bytesReader{}
+ },
+ },
+ }
+)
+
+// BorrowAdapter borrows an [Adapter] from the pool, recycling already allocated instances.
+func BorrowAdapter() *Adapter {
+ return poolOfAdapters.Borrow()
+}
+
+// BorrowAdapterIface borrows a stdlib [Adapter] and converts it directly
+// to [ifaces.Adapter]. This is useful to avoid further allocations when
+// translating the concrete type into an interface.
+func BorrowAdapterIface() ifaces.Adapter {
+ return poolOfAdapters.BorrowIface()
+}
+
+// RedeemAdapter redeems an [Adapter] to the pool, so it may be recycled.
+func RedeemAdapter(a *Adapter) {
+ poolOfAdapters.Redeem(a)
+}
+
+func RedeemAdapterIface(a ifaces.Adapter) {
+ concrete, ok := a.(*Adapter)
+ if ok {
+ poolOfAdapters.Redeem(concrete)
+ }
+}
diff --git a/vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/register.go b/vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/register.go
new file mode 100644
index 00000000..18bbc377
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/register.go
@@ -0,0 +1,37 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+package json
+
+import (
+ "fmt"
+ "reflect"
+
+ "github.com/go-openapi/swag/jsonutils/adapters/ifaces"
+)
+
+func Register(dispatcher ifaces.Registrar) {
+ t := reflect.TypeOf(Adapter{})
+ dispatcher.RegisterFor(
+ ifaces.RegistryEntry{
+ Who: fmt.Sprintf("%s.%s", t.PkgPath(), t.Name()),
+ What: ifaces.AllCapabilities,
+ Constructor: BorrowAdapterIface,
+ Support: support,
+ })
+}
+
+func support(_ ifaces.Capability, _ any) bool {
+ return true
+}
diff --git a/vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/writer.go b/vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/writer.go
new file mode 100644
index 00000000..38e9b6e0
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/jsonutils/adapters/stdlib/json/writer.go
@@ -0,0 +1,86 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+package json
+
+import (
+ "bytes"
+ "encoding/json"
+ "strings"
+)
+
+type jwriter struct {
+ buf *bytes.Buffer
+ err error
+}
+
+func newJWriter() *jwriter {
+ buf := make([]byte, 0, sensibleBufferSize)
+
+ return &jwriter{buf: bytes.NewBuffer(buf)}
+}
+
+func (w *jwriter) Reset() {
+ w.buf.Reset()
+ w.err = nil
+}
+
+func (w *jwriter) RawString(s string) {
+ if w.err != nil {
+ return
+ }
+ w.buf.WriteString(s)
+}
+
+func (w *jwriter) Raw(b []byte, err error) {
+ if w.err != nil {
+ return
+ }
+ if err != nil {
+ w.err = err
+ return
+ }
+
+ _, _ = w.buf.Write(b)
+}
+
+func (w *jwriter) RawByte(c byte) {
+ if w.err != nil {
+ return
+ }
+ w.buf.WriteByte(c)
+}
+
+var quoteReplacer = strings.NewReplacer(`"`, `\"`, `\`, `\\`)
+
+func (w *jwriter) String(s string) {
+ if w.err != nil {
+ return
+ }
+ // escape quotes and \
+ s = quoteReplacer.Replace(s)
+
+ _ = w.buf.WriteByte('"')
+ json.HTMLEscape(w.buf, []byte(s))
+ _ = w.buf.WriteByte('"')
+}
+
+// BuildBytes returns a clone of the internal buffer.
+func (w *jwriter) BuildBytes() ([]byte, error) {
+ if w.err != nil {
+ return nil, w.err
+ }
+
+ return bytes.Clone(w.buf.Bytes()), nil
+}
diff --git a/vendor/github.com/go-openapi/swag/jsonutils/concat.go b/vendor/github.com/go-openapi/swag/jsonutils/concat.go
new file mode 100644
index 00000000..049d4698
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/jsonutils/concat.go
@@ -0,0 +1,103 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+package jsonutils
+
+import (
+ "bytes"
+)
+
+// nullJSON represents a JSON object with null type
+var nullJSON = []byte("null")
+
+const comma = byte(',')
+
+var closers map[byte]byte
+
+func init() {
+ closers = map[byte]byte{
+ '{': '}',
+ '[': ']',
+ }
+}
+
+// ConcatJSON concatenates multiple json objects or arrays efficiently.
+//
+// Note that [ConcatJSON] performs a very simmple (and fast) concatenation
+// operation: it does not attempt to merge objects.
+func ConcatJSON(blobs ...[]byte) []byte {
+ if len(blobs) == 0 {
+ return nil
+ }
+
+ last := len(blobs) - 1
+ for blobs[last] == nil || bytes.Equal(blobs[last], nullJSON) {
+ // strips trailing null objects
+ last--
+ if last < 0 {
+ // there was nothing but "null"s or nil...
+ return nil
+ }
+ }
+ if last == 0 {
+ return blobs[0]
+ }
+
+ var opening, closing byte
+ var idx, a int
+ buf := bytes.NewBuffer(nil)
+
+ for i, b := range blobs[:last+1] {
+ if b == nil || bytes.Equal(b, nullJSON) {
+ // a null object is in the list: skip it
+ continue
+ }
+ if len(b) > 0 && opening == 0 { // is this an array or an object?
+ opening, closing = b[0], closers[b[0]]
+ }
+
+ if opening != '{' && opening != '[' {
+ continue // don't know how to concatenate non container objects
+ }
+
+ const minLengthIfNotEmpty = 3
+ if len(b) < minLengthIfNotEmpty { // yep empty but also the last one, so closing this thing
+ if i == last && a > 0 {
+ _ = buf.WriteByte(closing) // never returns err != nil
+ }
+ continue
+ }
+
+ idx = 0
+ if a > 0 { // we need to join with a comma for everything beyond the first non-empty item
+ _ = buf.WriteByte(comma) // never returns err != nil
+ idx = 1 // this is not the first or the last so we want to drop the leading bracket
+ }
+
+ if i != last { // not the last one, strip brackets
+ _, _ = buf.Write(b[idx : len(b)-1]) // never returns err != nil
+ } else { // last one, strip only the leading bracket
+ _, _ = buf.Write(b[idx:])
+ }
+ a++
+ }
+
+ // somehow it ended up being empty, so provide a default value
+ if buf.Len() == 0 && (opening == '{' || opening == '[') {
+ _ = buf.WriteByte(opening) // never returns err != nil
+ _ = buf.WriteByte(closing)
+ }
+
+ return buf.Bytes()
+}
diff --git a/vendor/github.com/go-openapi/swag/jsonutils/doc.go b/vendor/github.com/go-openapi/swag/jsonutils/doc.go
new file mode 100644
index 00000000..495ef834
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/jsonutils/doc.go
@@ -0,0 +1,18 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+// Package jsonutils provides helpers to work with JSON.
+//
+// These utilities work with dynamic go structures to and from JSON.
+package jsonutils
diff --git a/vendor/github.com/go-openapi/swag/jsonutils/json.go b/vendor/github.com/go-openapi/swag/jsonutils/json.go
new file mode 100644
index 00000000..a33b89bd
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/jsonutils/json.go
@@ -0,0 +1,127 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+package jsonutils
+
+import (
+ "bytes"
+ "encoding/json"
+
+ "github.com/go-openapi/swag/jsonutils/adapters"
+ "github.com/go-openapi/swag/jsonutils/adapters/ifaces"
+)
+
+// WriteJSON marshals a data structure as JSON.
+//
+// The difference with [json.Marshal] is that it may check among several alternatives
+// to do so.
+//
+// See [adapters.Registrar] for more details about how to configure
+// multiple serialization alternatives.
+//
+// NOTE: to allow types that are [easyjson.Marshaler] s to use that route to process JSON,
+// you now need to register the adapter for easyjson at runtime.
+func WriteJSON(value any) ([]byte, error) {
+ if orderedMap, isOrdered := value.(ifaces.Ordered); isOrdered {
+ orderedMarshaler := adapters.OrderedMarshalAdapterFor(orderedMap)
+
+ if orderedMarshaler != nil {
+ defer orderedMarshaler.Redeem()
+
+ return orderedMarshaler.OrderedMarshal(orderedMap)
+ }
+
+ // no support found in registered adapters, fallback to the default (unordered) case
+ }
+
+ marshaler := adapters.MarshalAdapterFor(value)
+ if marshaler != nil {
+ defer marshaler.Redeem()
+
+ return marshaler.Marshal(value)
+ }
+
+ // no support found in registered adapters, fallback to the default standard library.
+ //
+ // This only happens when tinkering with the global registry of adapters, since the default handles all the above cases.
+ return json.Marshal(value) // Codecov ignore // this is a safeguard not easily simulated in tests
+}
+
+// ReadJSON unmarshals JSON data into a data structure.
+//
+// The difference with [json.Unmarshal] is that it may check among several alternatives
+// to do so.
+//
+// See [adapters.Registrar] for more details about how to configure
+// multiple serialization alternatives.
+//
+// NOTE: value must be a pointer.
+//
+// If the provided value implements [ifaces.SetOrdered], it is a considered an "ordered map" and [ReadJSON]
+// will favor an adapter that supports the [ifaces.OrderedUnmarshal] feature, or fallback to
+// an unordered behavior if none is found.
+//
+// NOTE: to allow types that are [easyjson.Unmarshaler] s to use that route to process JSON,
+// you now need to register the adapter for easyjson at runtime.
+func ReadJSON(data []byte, value any) error {
+ trimmedData := bytes.Trim(data, "\x00")
+
+ if orderedMap, isOrdered := value.(ifaces.SetOrdered); isOrdered {
+ // if the value is an ordered map, favors support for OrderedUnmarshal.
+
+ orderedUnmarshaler := adapters.OrderedUnmarshalAdapterFor(orderedMap)
+
+ if orderedUnmarshaler != nil {
+ defer orderedUnmarshaler.Redeem()
+
+ return orderedUnmarshaler.OrderedUnmarshal(trimmedData, orderedMap)
+ }
+
+ // no support found in registered adapters, fallback to the default (unordered) case
+ }
+
+ unmarshaler := adapters.UnmarshalAdapterFor(value)
+ if unmarshaler != nil {
+ defer unmarshaler.Redeem()
+
+ return unmarshaler.Unmarshal(trimmedData, value)
+ }
+
+ // no support found in registered adapters, fallback to the default standard library.
+ //
+ // This only happens when tinkering with the global registry of adapters, since the default handles all the above cases.
+ return json.Unmarshal(trimmedData, value) // Codecov ignore // this is a safeguard not easily simulated in tests
+}
+
+// FromDynamicJSON turns a go value into a properly JSON typed structure.
+//
+// "Dynamic JSON" refers to what you get when unmarshaling JSON into an untyped any,
+// i.e. objects are represented by map[string]any, arrays by []any, and
+// all numbers are represented as float64.
+//
+// NOTE: target must be a pointer.
+//
+// # Maintaining the order of keys in objects
+//
+// If source and target implement [ifaces.Ordered] and [ifaces.SetOrdered] respectively,
+// they are considered "ordered maps" and the order of keys is maintained in the
+// "jsonification" process. In that case, map[string]any values are replaced by (ordered) [JSONMapSlice] ones.
+func FromDynamicJSON(source, target any) error {
+ b, err := WriteJSON(source)
+ if err != nil {
+ return err
+ }
+
+ return ReadJSON(b, target)
+}
diff --git a/vendor/github.com/go-openapi/swag/jsonutils/ordered_map.go b/vendor/github.com/go-openapi/swag/jsonutils/ordered_map.go
new file mode 100644
index 00000000..931ce255
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/jsonutils/ordered_map.go
@@ -0,0 +1,125 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+package jsonutils
+
+import (
+ "iter"
+
+ "github.com/go-openapi/swag/jsonutils/adapters"
+ "github.com/go-openapi/swag/typeutils"
+)
+
+// JSONMapSlice represents a JSON object, with the order of keys maintained.
+//
+// It behaves like an ordered map, but keys can't be accessed in constant time.
+type JSONMapSlice []JSONMapItem
+
+// OrderedItems iterates over all (key,value) pairs with the order of keys maintained.
+//
+// This implements the [ifaces.Ordered] interface, so that [ifaces.Adapter] s know how to marshal
+// keys in the desired order.
+func (s JSONMapSlice) OrderedItems() iter.Seq2[string, any] {
+ return func(yield func(string, any) bool) {
+ for _, item := range s {
+ if !yield(item.Key, item.Value) {
+ return
+ }
+ }
+ }
+}
+
+// SetOrderedItems sets keys in the [JSONMapSlice] objects, as presented by
+// the provided iterator.
+//
+// As a special case, if items is nil, this sets to receiver to a nil slice.
+//
+// This implements the [ifaces.SetOrdered] interface, so that [ifaces.Adapter] s know how to unmarshal
+// keys in the desired order.
+func (s *JSONMapSlice) SetOrderedItems(items iter.Seq2[string, any]) {
+ if items == nil {
+ // force receiver to be a nil slice
+ *s = nil
+
+ return
+ }
+
+ m := *s
+ if len(m) > 0 {
+ // update mode: short-circuited when unmarshaling fresh data structures
+ idx := make(map[string]int, len(m))
+
+ for i, item := range m {
+ idx[item.Key] = i
+ }
+
+ for k, v := range items {
+ idx, ok := idx[k]
+ if ok {
+ m[idx].Value = v
+
+ continue
+ }
+
+ m = append(m, JSONMapItem{Key: k, Value: v})
+ }
+
+ *s = m
+
+ return
+ }
+
+ for k, v := range items {
+ m = append(m, JSONMapItem{Key: k, Value: v})
+ }
+
+ *s = m
+}
+
+// MarshalJSON renders a [JSONMapSlice] as JSON bytes, preserving the order of keys.
+//
+// It will pick the JSON library currently configured by the [adapters.Registry] (defaults to the standard library).
+func (s JSONMapSlice) MarshalJSON() ([]byte, error) {
+ orderedMarshaler := adapters.OrderedMarshalAdapterFor(s)
+ defer orderedMarshaler.Redeem()
+
+ return orderedMarshaler.OrderedMarshal(s)
+}
+
+// UnmarshalJSON builds a [JSONMapSlice] from JSON bytes, preserving the order of keys.
+//
+// Inner objects are unmarshaled as ordered [JSONMapSlice] slices and not map[string]any.
+//
+// It will pick the JSON library currently configured by the [adapters.Registry] (defaults to the standard library).
+func (s *JSONMapSlice) UnmarshalJSON(data []byte) error {
+ if typeutils.IsNil(*s) {
+ // allow to unmarshal with a simple var declaration (nil slice)
+ *s = JSONMapSlice{}
+ }
+
+ orderedUnmarshaler := adapters.OrderedUnmarshalAdapterFor(s)
+ defer orderedUnmarshaler.Redeem()
+
+ return orderedUnmarshaler.OrderedUnmarshal(data, s)
+}
+
+// JSONMapItem represents the value of a key in a JSON object held by [JSONMapSlice].
+//
+// Notice that JSONMapItem should not be marshaled to or unmarshaled from JSON directly.
+//
+// Use this type as part of a [JSONMapSlice] when dealing with JSON bytes.
+type JSONMapItem struct {
+ Key string
+ Value any
+}
diff --git a/vendor/github.com/go-openapi/swag/jsonutils_iface.go b/vendor/github.com/go-openapi/swag/jsonutils_iface.go
new file mode 100644
index 00000000..63e23f0b
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/jsonutils_iface.go
@@ -0,0 +1,76 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+package swag
+
+import (
+ "log"
+
+ "github.com/go-openapi/swag/jsonutils"
+)
+
+// JSONMapSlice represents a JSON object, with the order of keys maintained
+//
+// Deprecated: use [jsonutils.JSONMapSlice] instead, or [yamlutils.YAMLMapSlice] if you marshal YAML.
+type JSONMapSlice = jsonutils.JSONMapSlice
+
+// JSONMapItem represents a JSON object, with the order of keys maintained
+//
+// Deprecated: use [jsonutils.JSONMapItem] instead.
+type JSONMapItem = jsonutils.JSONMapItem
+
+// WriteJSON writes json data.
+//
+// Deprecated: use [jsonutils.WriteJSON] instead.
+func WriteJSON(data interface{}) ([]byte, error) { return jsonutils.WriteJSON(data) }
+
+// ReadJSON reads json data.
+//
+// Deprecated: use [jsonutils.ReadJSON] instead.
+func ReadJSON(data []byte, value interface{}) error { return jsonutils.ReadJSON(data, value) }
+
+// DynamicJSONToStruct converts an untyped JSON structure into a target data type.
+//
+// Deprecated: use [jsonutils.FromDynamicJSON] instead.
+func DynamicJSONToStruct(data interface{}, target interface{}) error {
+ return jsonutils.FromDynamicJSON(data, target)
+}
+
+// ConcatJSON concatenates multiple JSON objects efficiently.
+//
+// Deprecated: use [jsonutils.ConcatJSON] instead.
+func ConcatJSON(blobs ...[]byte) []byte { return jsonutils.ConcatJSON(blobs...) }
+
+// ToDynamicJSON turns a go value into a properly JSON untyped structure.
+//
+// It is the same as [FromDynamicJSON], but doesn't check for errors.
+//
+// Deprecated: this function is a misnomer and is unsafe. Use [jsonutils.FromDynamicJSON] instead.
+func ToDynamicJSON(value interface{}) interface{} {
+ var res interface{}
+ if err := FromDynamicJSON(value, &res); err != nil {
+ log.Println(err)
+ }
+
+ return res
+}
+
+// FromDynamicJSON turns a go value into a properly JSON typed structure.
+//
+// "Dynamic JSON" refers to what you get when unmarshaling JSON into an untyped interface{},
+// i.e. objects are represented by map[string]interface{}, arrays by []interface{}, and all
+// scalar values are interface{}.
+//
+// Deprecated: use [jsonutils.FromDynamicJSON] instead.
+func FromDynamicJSON(data, target interface{}) error { return jsonutils.FromDynamicJSON(data, target) }
diff --git a/vendor/github.com/go-openapi/swag/loading/LICENSE b/vendor/github.com/go-openapi/swag/loading/LICENSE
new file mode 100644
index 00000000..d6456956
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/loading/LICENSE
@@ -0,0 +1,202 @@
+
+ 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/go-openapi/swag/loading/doc.go b/vendor/github.com/go-openapi/swag/loading/doc.go
new file mode 100644
index 00000000..62585615
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/loading/doc.go
@@ -0,0 +1,16 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+// Package loading provides tools to load a file from http or from a local file system.
+package loading
diff --git a/vendor/github.com/go-openapi/swag/loading/errors.go b/vendor/github.com/go-openapi/swag/loading/errors.go
new file mode 100644
index 00000000..ca45732a
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/loading/errors.go
@@ -0,0 +1,26 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+package loading
+
+type loadingError string
+
+const (
+ // ErrLoader is an error raised by the file loader utility
+ ErrLoader loadingError = "loader error"
+)
+
+func (e loadingError) Error() string {
+ return string(e)
+}
diff --git a/vendor/github.com/go-openapi/swag/loading/json.go b/vendor/github.com/go-openapi/swag/loading/json.go
new file mode 100644
index 00000000..aadf9991
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/loading/json.go
@@ -0,0 +1,22 @@
+package loading
+
+import (
+ "encoding/json"
+ "errors"
+ "path/filepath"
+)
+
+// JSONMatcher matches json for a file loader.
+func JSONMatcher(path string) bool {
+ ext := filepath.Ext(path)
+ return ext == ".json" || ext == ".jsn" || ext == ".jso"
+}
+
+// JSONDoc loads a json document from either a file or a remote url.
+func JSONDoc(path string, opts ...Option) (json.RawMessage, error) {
+ data, err := LoadFromFileOrHTTP(path, opts...)
+ if err != nil {
+ return nil, errors.Join(err, ErrLoader)
+ }
+ return json.RawMessage(data), nil
+}
diff --git a/vendor/github.com/go-openapi/swag/loading.go b/vendor/github.com/go-openapi/swag/loading/loading.go
similarity index 70%
rename from vendor/github.com/go-openapi/swag/loading.go
rename to vendor/github.com/go-openapi/swag/loading/loading.go
index 658a24b7..bd955535 100644
--- a/vendor/github.com/go-openapi/swag/loading.go
+++ b/vendor/github.com/go-openapi/swag/loading/loading.go
@@ -12,43 +12,26 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package swag
+package loading
import (
+ "context"
+ "embed"
"fmt"
"io"
"log"
"net/http"
"net/url"
- "os"
"path"
"path/filepath"
"runtime"
"strings"
- "time"
)
-// LoadHTTPTimeout the default timeout for load requests
-var LoadHTTPTimeout = 30 * time.Second
-
-// LoadHTTPBasicAuthUsername the username to use when load requests require basic auth
-var LoadHTTPBasicAuthUsername = ""
-
-// LoadHTTPBasicAuthPassword the password to use when load requests require basic auth
-var LoadHTTPBasicAuthPassword = ""
-
-// LoadHTTPCustomHeaders an optional collection of custom HTTP headers for load requests
-var LoadHTTPCustomHeaders = map[string]string{}
-
// LoadFromFileOrHTTP loads the bytes from a file or a remote http server based on the path passed in
-func LoadFromFileOrHTTP(pth string) ([]byte, error) {
- return LoadStrategy(pth, os.ReadFile, loadHTTPBytes(LoadHTTPTimeout))(pth)
-}
-
-// LoadFromFileOrHTTPWithTimeout loads the bytes from a file or a remote http server based on the path passed in
-// timeout arg allows for per request overriding of the request timeout
-func LoadFromFileOrHTTPWithTimeout(pth string, timeout time.Duration) ([]byte, error) {
- return LoadStrategy(pth, os.ReadFile, loadHTTPBytes(timeout))(pth)
+func LoadFromFileOrHTTP(pth string, opts ...Option) ([]byte, error) {
+ o := optionsWithDefaults(opts)
+ return LoadStrategy(pth, o.ReadFileFunc(), loadHTTPBytes(opts...), opts...)(pth)
}
// LoadStrategy returns a loader function for a given path or URI.
@@ -81,10 +64,12 @@ func LoadFromFileOrHTTPWithTimeout(pth string, timeout time.Duration) ([]byte, e
// - `file://host/folder/file` becomes an UNC path like `\\host\folder\file` (no port specification is supported)
// - `file:///c:/folder/file` becomes `C:\folder\file`
// - `file://c:/folder/file` is tolerated (without leading `/`) and becomes `c:\folder\file`
-func LoadStrategy(pth string, local, remote func(string) ([]byte, error)) func(string) ([]byte, error) {
+func LoadStrategy(pth string, local, remote func(string) ([]byte, error), opts ...Option) func(string) ([]byte, error) {
if strings.HasPrefix(pth, "http") {
return remote
}
+ o := optionsWithDefaults(opts)
+ _, isEmbedFS := o.fs.(embed.FS)
return func(p string) ([]byte, error) {
upth, err := url.PathUnescape(p)
@@ -92,19 +77,19 @@ func LoadStrategy(pth string, local, remote func(string) ([]byte, error)) func(s
return nil, err
}
- if !strings.HasPrefix(p, `file://`) {
+ cpth, hasPrefix := strings.CutPrefix(upth, "file://")
+ if !hasPrefix || isEmbedFS || runtime.GOOS != "windows" {
+ // crude processing: trim the file:// prefix. This leaves full URIs with a host with a (mostly) unexpected result
// regular file path provided: just normalize slashes
- return local(filepath.FromSlash(upth))
- }
-
- if runtime.GOOS != "windows" {
- // crude processing: this leaves full URIs with a host with a (mostly) unexpected result
- upth = strings.TrimPrefix(upth, `file://`)
+ if isEmbedFS {
+ // on windows, we need to slash the path if FS is an embed FS.
+ return local(strings.TrimLeft(filepath.ToSlash(cpth), "./")) // remove invalid leading characters for embed FS
+ }
- return local(filepath.FromSlash(upth))
+ return local(filepath.FromSlash(cpth))
}
- // windows-only pre-processing of file://... URIs
+ // windows-only pre-processing of file://... URIs, excluding embed.FS
// support for canonical file URIs on windows.
u, err := url.Parse(filepath.ToSlash(upth))
@@ -139,19 +124,29 @@ func LoadStrategy(pth string, local, remote func(string) ([]byte, error)) func(s
}
}
-func loadHTTPBytes(timeout time.Duration) func(path string) ([]byte, error) {
+func loadHTTPBytes(opts ...Option) func(path string) ([]byte, error) {
+ o := optionsWithDefaults(opts)
+
return func(path string) ([]byte, error) {
- client := &http.Client{Timeout: timeout}
- req, err := http.NewRequest(http.MethodGet, path, nil) //nolint:noctx
+ client := o.client
+ timeoutCtx := context.Background()
+ var cancel func()
+
+ if o.httpTimeout > 0 {
+ timeoutCtx, cancel = context.WithTimeout(timeoutCtx, o.httpTimeout)
+ defer cancel()
+ }
+
+ req, err := http.NewRequestWithContext(timeoutCtx, http.MethodGet, path, nil)
if err != nil {
return nil, err
}
- if LoadHTTPBasicAuthUsername != "" && LoadHTTPBasicAuthPassword != "" {
- req.SetBasicAuth(LoadHTTPBasicAuthUsername, LoadHTTPBasicAuthPassword)
+ if o.basicAuthUsername != "" && o.basicAuthPassword != "" {
+ req.SetBasicAuth(o.basicAuthUsername, o.basicAuthPassword)
}
- for key, val := range LoadHTTPCustomHeaders {
+ for key, val := range o.customHeaders {
req.Header.Set(key, val)
}
diff --git a/vendor/github.com/go-openapi/swag/loading/options.go b/vendor/github.com/go-openapi/swag/loading/options.go
new file mode 100644
index 00000000..a51329e9
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/loading/options.go
@@ -0,0 +1,136 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+package loading
+
+import (
+ "io/fs"
+ "net/http"
+ "os"
+ "time"
+)
+
+type (
+ // Option provides options for loading a file over HTTP or from a file.
+ Option func(*options)
+
+ httpOptions struct {
+ httpTimeout time.Duration
+ basicAuthUsername string
+ basicAuthPassword string
+ customHeaders map[string]string
+ client *http.Client
+ }
+
+ fileOptions struct {
+ fs fs.ReadFileFS
+ }
+
+ options struct {
+ httpOptions
+ fileOptions
+ }
+)
+
+func (fo fileOptions) ReadFileFunc() func(string) ([]byte, error) {
+ if fo.fs == nil {
+ return os.ReadFile
+ }
+
+ return fo.fs.ReadFile
+}
+
+// WithTimeout sets a timeout for the remote file loader.
+//
+// The default timeout is 30s.
+func WithTimeout(timeout time.Duration) Option {
+ return func(o *options) {
+ o.httpTimeout = timeout
+ }
+}
+
+// WithBasicAuth sets a basic authentication scheme for the remote file loader.
+func WithBasicAuth(username, password string) Option {
+ return func(o *options) {
+ o.basicAuthUsername = username
+ o.basicAuthPassword = password
+ }
+}
+
+// WithCustomHeaders sets custom headers for the remote file loader.
+func WithCustomHeaders(headers map[string]string) Option {
+ return func(o *options) {
+ if o.customHeaders == nil {
+ o.customHeaders = make(map[string]string, len(headers))
+ }
+
+ for header, value := range headers {
+ o.customHeaders[header] = value
+ }
+ }
+}
+
+// WithHTTClient overrides the default HTTP client used to fetch a remote file.
+//
+// By default, [http.DefaultClient] is used.
+func WithHTTPClient(client *http.Client) Option {
+ return func(o *options) {
+ o.client = client
+ }
+}
+
+// WithFileFS sets a file system for the local file loader.
+//
+// If the provided file system is a [fs.ReadFileFS], the ReadFile function is used.
+// Otherwise, ReadFile is wrapped using [fs.ReadFile].
+//
+// By default, the file system is the one provided by the os package.
+//
+// For example, this may be set to consume from an embedded file system, or a rooted FS.
+func WithFS(filesystem fs.FS) Option {
+ return func(o *options) {
+ if rfs, ok := filesystem.(fs.ReadFileFS); ok {
+ o.fs = rfs
+
+ return
+ }
+ o.fs = readFileFS{FS: filesystem}
+ }
+}
+
+type readFileFS struct {
+ fs.FS
+}
+
+func (r readFileFS) ReadFile(name string) ([]byte, error) {
+ return fs.ReadFile(r.FS, name)
+}
+
+func optionsWithDefaults(opts []Option) options {
+ const defaultTimeout = 30 * time.Second
+
+ o := options{
+ // package level defaults
+ httpOptions: httpOptions{
+ httpTimeout: defaultTimeout,
+ client: http.DefaultClient,
+ },
+ }
+
+ for _, apply := range opts {
+ apply(&o)
+ }
+
+ return o
+}
diff --git a/vendor/github.com/go-openapi/swag/loading/yaml.go b/vendor/github.com/go-openapi/swag/loading/yaml.go
new file mode 100644
index 00000000..40bd2a76
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/loading/yaml.go
@@ -0,0 +1,48 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+package loading
+
+import (
+ "encoding/json"
+ "path/filepath"
+
+ "github.com/go-openapi/swag/yamlutils"
+)
+
+// YAMLMatcher matches yaml for a file loader.
+func YAMLMatcher(path string) bool {
+ ext := filepath.Ext(path)
+ return ext == ".yaml" || ext == ".yml"
+}
+
+// YAMLDoc loads a yaml document from either http or a file and converts it to json.
+func YAMLDoc(path string, opts ...Option) (json.RawMessage, error) {
+ yamlDoc, err := YAMLData(path, opts...)
+ if err != nil {
+ return nil, err
+ }
+
+ return yamlutils.YAMLToJSON(yamlDoc)
+}
+
+// YAMLData loads a yaml document from either http or a file.
+func YAMLData(path string, opts ...Option) (interface{}, error) {
+ data, err := LoadFromFileOrHTTP(path, opts...)
+ if err != nil {
+ return nil, err
+ }
+
+ return yamlutils.BytesToYAMLDoc(data)
+}
diff --git a/vendor/github.com/go-openapi/swag/loading_iface.go b/vendor/github.com/go-openapi/swag/loading_iface.go
new file mode 100644
index 00000000..38d825bc
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/loading_iface.go
@@ -0,0 +1,102 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+package swag
+
+import (
+ "encoding/json"
+ "time"
+
+ "github.com/go-openapi/swag/loading"
+)
+
+var (
+ // Package-level defaults for the file loading utilities (deprecated).
+
+ // LoadHTTPTimeout the default timeout for load requests.
+ //
+ // Deprecated: use [loading.WithTimeout] instead.
+ LoadHTTPTimeout = 30 * time.Second
+
+ // LoadHTTPBasicAuthUsername the username to use when load requests require basic auth.
+ //
+ // Deprecated: use [loading.WithBasicAuth] instead.
+ LoadHTTPBasicAuthUsername = ""
+
+ // LoadHTTPBasicAuthPassword the password to use when load requests require basic auth.
+ //
+ // Deprecated: use [loading.WithBasicAuth] instead.
+ LoadHTTPBasicAuthPassword = ""
+
+ // LoadHTTPCustomHeaders an optional collection of custom HTTP headers for load requests.
+ //
+ // Deprecated: use [loading.WithCustomHeaders] instead.
+ LoadHTTPCustomHeaders = map[string]string{}
+)
+
+// LoadFromFileOrHTTP loads the bytes from a file or a remote http server based on the provided path.
+//
+// Deprecated: use [loading.LoadFromFileOrHTTP] instead.
+func LoadFromFileOrHTTP(pth string, opts ...loading.Option) ([]byte, error) {
+ return loading.LoadFromFileOrHTTP(pth, loadingOptionsWithDefaults(opts)...)
+}
+
+// LoadFromFileOrHTTPWithTimeout loads the bytes from a file or a remote http server based on the path passed in
+// timeout arg allows for per request overriding of the request timeout.
+//
+// Deprecated: use [loading.LoadFileOrHTTP] with the [loading.WithTimeout] option instead.
+func LoadFromFileOrHTTPWithTimeout(pth string, timeout time.Duration, opts ...loading.Option) ([]byte, error) {
+ opts = append(opts, loading.WithTimeout(timeout))
+
+ return LoadFromFileOrHTTP(pth, opts...)
+}
+
+// LoadStrategy returns a loader function for a given path or URL.
+//
+// Deprecated: use [loading.LoadStrategy] instead.
+func LoadStrategy(pth string, local, remote func(string) ([]byte, error), opts ...loading.Option) func(string) ([]byte, error) {
+ return loading.LoadStrategy(pth, local, remote, loadingOptionsWithDefaults(opts)...)
+}
+
+// YAMLMatcher matches yaml for a file loader.
+//
+// Deprecated: use [loading.YAMLMatcher] instead.
+func YAMLMatcher(path string) bool { return loading.YAMLMatcher(path) }
+
+// YAMLDoc loads a yaml document from either http or a file and converts it to json.
+//
+// Deprecated: use [loading.YAMLDoc] instead.
+func YAMLDoc(path string) (json.RawMessage, error) {
+ return loading.YAMLDoc(path)
+}
+
+// YAMLData loads a yaml document from either http or a file.
+//
+// Deprecated: use [loading.YAMLData] instead.
+func YAMLData(path string) (interface{}, error) {
+ return loading.YAMLData(path)
+}
+
+// loadingOptionsWithDefaults bridges deprecated default settings that use package-level variables,
+// with the recommended use of loading.Option.
+func loadingOptionsWithDefaults(opts []loading.Option) []loading.Option {
+ o := []loading.Option{
+ loading.WithTimeout(LoadHTTPTimeout),
+ loading.WithBasicAuth(LoadHTTPBasicAuthUsername, LoadHTTPBasicAuthPassword),
+ loading.WithCustomHeaders(LoadHTTPCustomHeaders),
+ }
+ o = append(o, opts...)
+
+ return o
+}
diff --git a/vendor/github.com/go-openapi/swag/BENCHMARK.md b/vendor/github.com/go-openapi/swag/mangling/BENCHMARK.md
similarity index 53%
rename from vendor/github.com/go-openapi/swag/BENCHMARK.md
rename to vendor/github.com/go-openapi/swag/mangling/BENCHMARK.md
index e7f28ed6..6674c63b 100644
--- a/vendor/github.com/go-openapi/swag/BENCHMARK.md
+++ b/vendor/github.com/go-openapi/swag/mangling/BENCHMARK.md
@@ -1,12 +1,10 @@
-# Benchmarks
-
-## Name mangling utilities
+# Benchmarking name mangling utilities
```bash
go test -bench XXX -run XXX -benchtime 30s
```
-### Benchmarks at b3e7a5386f996177e4808f11acb2aa93a0f660df
+## Benchmarks at b3e7a5386f996177e4808f11acb2aa93a0f660df
```
goos: linux
@@ -21,7 +19,7 @@ BenchmarkToXXXName/ToHumanNameLower-4 895334 40354 ns/op 10472 B/op
BenchmarkToXXXName/ToHumanNameTitle-4 882441 40678 ns/op 10566 B/op 749 allocs/op
```
-### Benchmarks after PR #79
+## Benchmarks after PR #79
~ x10 performance improvement and ~ /100 memory allocations.
@@ -50,3 +48,43 @@ BenchmarkToXXXName/ToCommandName-16 32256634 1137 ns/op 147 B/op
BenchmarkToXXXName/ToHumanNameLower-16 18599661 1946 ns/op 92 B/op 6 allocs/op
BenchmarkToXXXName/ToHumanNameTitle-16 17581353 2054 ns/op 105 B/op 6 allocs/op
```
+
+## Benchmarks at d7d2d1b895f5b6747afaff312dd2a402e69e818b
+
+go1.24
+
+```
+goos: linux
+goarch: amd64
+pkg: github.com/go-openapi/swag
+cpu: AMD Ryzen 7 5800X 8-Core Processor
+BenchmarkToXXXName/ToGoName-16 19757858 1881 ns/op 42 B/op 5 allocs/op
+BenchmarkToXXXName/ToVarName-16 17494111 2094 ns/op 74 B/op 7 allocs/op
+BenchmarkToXXXName/ToFileName-16 28161226 1492 ns/op 158 B/op 7 allocs/op
+BenchmarkToXXXName/ToCommandName-16 23787333 1489 ns/op 158 B/op 7 allocs/op
+BenchmarkToXXXName/ToHumanNameLower-16 17537257 2030 ns/op 103 B/op 6 allocs/op
+BenchmarkToXXXName/ToHumanNameTitle-16 16977453 2156 ns/op 105 B/op 6 allocs/op
+```
+
+## Benchmarks after PR #106
+
+Moving the scope of everything down to a struct allowed to reduce a bit garbage and pooling.
+
+On top of that, ToGoName (and thus ToVarName) have been subject to a minor optimization, removing a few allocations.
+
+Overall timings improve by ~ -10%.
+
+go1.24
+
+```
+goos: linux
+goarch: amd64
+pkg: github.com/go-openapi/swag/mangling
+cpu: AMD Ryzen 7 5800X 8-Core Processor
+BenchmarkToXXXName/ToGoName-16 22496130 1618 ns/op 31 B/op 3 allocs/op
+BenchmarkToXXXName/ToVarName-16 22538068 1618 ns/op 33 B/op 3 allocs/op
+BenchmarkToXXXName/ToFileName-16 27722977 1236 ns/op 105 B/op 6 allocs/op
+BenchmarkToXXXName/ToCommandName-16 27967395 1258 ns/op 105 B/op 6 allocs/op
+BenchmarkToXXXName/ToHumanNameLower-16 18587901 1917 ns/op 103 B/op 6 allocs/op
+BenchmarkToXXXName/ToHumanNameTitle-16 17193208 2019 ns/op 108 B/op 7 allocs/op
+```
diff --git a/vendor/github.com/go-openapi/swag/mangling/LICENSE b/vendor/github.com/go-openapi/swag/mangling/LICENSE
new file mode 100644
index 00000000..d6456956
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/mangling/LICENSE
@@ -0,0 +1,202 @@
+
+ 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/go-openapi/swag/mangling/doc.go b/vendor/github.com/go-openapi/swag/mangling/doc.go
new file mode 100644
index 00000000..dbe80682
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/mangling/doc.go
@@ -0,0 +1,36 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+// Package mangling provides name mangling capabilities.
+//
+// Name mangling is an important stage when generating code:
+// it helps construct safe program identifiers that abide by the language rules
+// and play along with linters.
+//
+// Examples:
+//
+// Suppose we get an object name taken from an API spec: "json_object",
+//
+// We may generate a legit go type name using [NameMangler.ToGoName]: "JsonObject".
+//
+// We may then locate this type in a source file named using [NameMangler.ToFileName]: "json_object.go".
+//
+// The methods exposed by the NameMangler are used to generate code in many different contexts, such as:
+//
+// - generating exported or unexported go identifiers from a JSON schema or an API spec
+// - generating file names
+// - generating human-readable comments for types and variables
+// - generating JSON-like API identifiers from go code
+// - ...
+package mangling
diff --git a/vendor/github.com/go-openapi/swag/mangling/initialism_index.go b/vendor/github.com/go-openapi/swag/mangling/initialism_index.go
new file mode 100644
index 00000000..cf0786f8
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/mangling/initialism_index.go
@@ -0,0 +1,268 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+package mangling
+
+import (
+ "sort"
+ "strings"
+ "unicode"
+ "unicode/utf8"
+)
+
+// DefaultInitialisms returns all the initialisms configured by default for this package.
+//
+// # Motivation
+//
+// Common initialisms are acronyms for which the ordinary camel-casing rules are altered and
+// for which we retain the original case.
+//
+// This is largely specific to the go naming conventions enforced by golint (now revive).
+//
+// # Example
+//
+// In go, "id" is a good-looking identifier, but "Id" is not and "ID" is preferred
+// (notice that this stems only from conventions: the go compiler accepts all of these).
+//
+// Similarly, we may use "http", but not "Http". In this case, "HTTP" is preferred.
+//
+// # Reference and customization
+//
+// The default list of these casing-style exceptions is taken from the [github.com/mgechev/revive] linter for go:
+// https://github.com/mgechev/revive/blob/master/lint/name.go#L93
+//
+// There are a few additions to the original list, such as IPv4, IPv6 and OAI ("OpenAPI").
+//
+// For these additions, "IPv4" would be preferred to "Ipv4" or "IPV4", and "OAI" to "Oai"
+//
+// You may redefine this list entirely using the mangler option [WithInitialisms], or simply add extra definitions
+// using [WithAdditionalInitialisms].
+//
+// # Mixed-case and plurals
+//
+// Notice that initialisms are not necessarily fully upper-cased: a mixed-case initialism indicates the preferred casing.
+//
+// Obviously, lower-case only initialisms do not make a lot of sense: if lower-case only initialisms are added,
+// they will be considered fully capitalized.
+//
+// Plural forms use mixed case like "IDs". And so do values like "IPv4" or "IPv6".
+//
+// The [NameMangler] automatically detects simple plurals for words such as "IDs" or "APIs",
+// so you don't need to configure these variants.
+//
+// At this moment, it doesn't support pluralization of terms that ends with an 's' (or 'S'), since there is
+// no clear consensus on whether a word like DNS should be pluralized as DNSes or remain invariant.
+// The [NameMangler] consider those invariant. Therefore DNSs or DNSes are not recognized as plurals for DNS.
+//
+// Besids, we don't want to support pluralization of terms which would otherwise conflict with another one,
+// like "HTTPs" vs "HTTPS". All these should be considered invariant. Hence: "Https" matches "HTTPS" and
+// "HTTPSS" is "HTTPS" followed by "S".
+func DefaultInitialisms() []string {
+ return []string{
+ "ACL",
+ "API",
+ "ASCII",
+ "CPU",
+ "CSS",
+ "DNS",
+ "EOF",
+ "GUID",
+ "HTML",
+ "HTTPS",
+ "HTTP",
+ "ID",
+ "IP",
+ "IPv4", // prefer the mixed case outcome IPv4 over the capitalized IPV4
+ "IPv6", // prefer the mixed case outcome IPv6 over the capitalized IPV6
+ "JSON",
+ "LHS",
+ "OAI",
+ "QPS",
+ "RAM",
+ "RHS",
+ "RPC",
+ "SLA",
+ "SMTP",
+ "SQL",
+ "SSH",
+ "TCP",
+ "TLS",
+ "TTL",
+ "UDP",
+ "UI",
+ "UID",
+ "UUID",
+ "URI",
+ "URL",
+ "UTF8",
+ "VM",
+ "XML",
+ "XMPP",
+ "XSRF",
+ "XSS",
+ }
+}
+
+type indexOfInitialisms struct {
+ initialismsCache
+
+ index map[string]struct{}
+}
+
+func newIndexOfInitialisms() *indexOfInitialisms {
+ return &indexOfInitialisms{
+ index: make(map[string]struct{}),
+ }
+}
+
+func (m *indexOfInitialisms) add(words ...string) *indexOfInitialisms {
+ for _, word := range words {
+ // sanitization of injected words: trimmed from blanks, and must start with a letter
+ trimmed := strings.TrimSpace(word)
+
+ firstRune, _ := utf8.DecodeRuneInString(trimmed)
+ if !unicode.IsLetter(firstRune) {
+ continue
+ }
+
+ // Initialisms are case-sensitive. This means that we support mixed-case words.
+ // However, if specified as a lower-case string, the initialism should be fully capitalized.
+ if trimmed == strings.ToLower(trimmed) {
+ m.index[strings.ToUpper(trimmed)] = struct{}{}
+
+ continue
+ }
+
+ m.index[trimmed] = struct{}{}
+ }
+ return m
+}
+
+func (m *indexOfInitialisms) sorted() []string {
+ result := make([]string, 0, len(m.index))
+ for k := range m.index {
+ result = append(result, k)
+ }
+ sort.Sort(sort.Reverse(byInitialism(result)))
+ return result
+}
+
+func (m *indexOfInitialisms) buildCache() {
+ m.build(m.sorted(), m.pluralForm)
+}
+
+// initialismsCache caches all needed pre-computed and converted initialism entries,
+// in the desired resolution order.
+type initialismsCache struct {
+ initialisms []string
+ initialismsRunes [][]rune
+ initialismsUpperCased [][]rune // initialisms cached in their trimmed, upper-cased version
+ initialismsPluralForm []pluralForm
+}
+
+func (c *initialismsCache) build(in []string, pluralfunc func(string) pluralForm) {
+ c.initialisms = in
+ c.initialismsRunes = asRunes(c.initialisms)
+ c.initialismsUpperCased = asUpperCased(c.initialisms)
+ c.initialismsPluralForm = asPluralForms(c.initialisms, pluralfunc)
+}
+
+// pluralForm denotes the kind of pluralization to be used for initialisms.
+//
+// At this moment, initialisms are either invariant or follow a simple plural form with an
+// extra (lower case) "s".
+type pluralForm uint8
+
+const (
+ notPlural pluralForm = iota
+ invariantPlural
+ simplePlural
+)
+
+// pluralForm indicates how we want to pluralize a given initialism.
+//
+// Besides configured invariant forms (like HTTP and HTTPS),
+// an initialism is normally pluralized by adding a single 's', like in IDs.
+//
+// Initialisms ending with an 'S' or an 's' are configured as invariant (we don't
+// support plural forms like CSSes or DNSes, however the mechanism could be extended to
+// do just that).
+func (m *indexOfInitialisms) pluralForm(key string) pluralForm {
+ if _, ok := m.index[key]; !ok {
+ return notPlural
+ }
+
+ if strings.HasSuffix(strings.ToUpper(key), "S") {
+ return invariantPlural
+ }
+
+ if _, ok := m.index[key+"s"]; ok {
+ return invariantPlural
+ }
+
+ if _, ok := m.index[key+"S"]; ok {
+ return invariantPlural
+ }
+
+ return simplePlural
+}
+
+type byInitialism []string
+
+func (s byInitialism) Len() int {
+ return len(s)
+}
+func (s byInitialism) Swap(i, j int) {
+ s[i], s[j] = s[j], s[i]
+}
+
+// Less specifies the order in which initialisms are prioritized:
+// 1. match longest first
+// 2. when equal length, match in reverse lexicographical order, lower case match comes first
+func (s byInitialism) Less(i, j int) bool {
+ if len(s[i]) != len(s[j]) {
+ return len(s[i]) < len(s[j])
+ }
+
+ return s[i] < s[j]
+}
+
+func asRunes(in []string) [][]rune {
+ out := make([][]rune, len(in))
+ for i, initialism := range in {
+ out[i] = []rune(initialism)
+ }
+
+ return out
+}
+
+func asUpperCased(in []string) [][]rune {
+ out := make([][]rune, len(in))
+
+ for i, initialism := range in {
+ out[i] = []rune(upper(trim(initialism)))
+ }
+
+ return out
+}
+
+// asPluralForms bakes an index of pluralization support.
+func asPluralForms(in []string, pluralFunc func(string) pluralForm) []pluralForm {
+ out := make([]pluralForm, len(in))
+ for i, initialism := range in {
+ out[i] = pluralFunc(initialism)
+ }
+
+ return out
+}
diff --git a/vendor/github.com/go-openapi/swag/mangling/name_lexem.go b/vendor/github.com/go-openapi/swag/mangling/name_lexem.go
new file mode 100644
index 00000000..02004b4f
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/mangling/name_lexem.go
@@ -0,0 +1,197 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+package mangling
+
+import (
+ "bytes"
+ "strings"
+ "unicode"
+ "unicode/utf8"
+)
+
+type (
+ lexemKind uint8
+
+ nameLexem struct {
+ original string
+ matchedInitialism string
+ kind lexemKind
+ }
+)
+
+const (
+ lexemKindCasualName lexemKind = iota
+ lexemKindInitialismName
+)
+
+func newInitialismNameLexem(original, matchedInitialism string) nameLexem {
+ return nameLexem{
+ kind: lexemKindInitialismName,
+ original: original,
+ matchedInitialism: matchedInitialism,
+ }
+}
+
+func newCasualNameLexem(original string) nameLexem {
+ return nameLexem{
+ kind: lexemKindCasualName,
+ original: trim(original), // TODO: save on calls to trim
+ }
+}
+
+// WriteTitleized writes the titleized lexeme to a bytes.Buffer.
+//
+// If the first letter cannot be capitalized, it doesn't write anything and return false,
+// so the caller may attempt some workaround strategy.
+func (l nameLexem) WriteTitleized(w *bytes.Buffer, alwaysUpper bool) bool {
+ if l.kind == lexemKindInitialismName {
+ w.WriteString(l.matchedInitialism)
+
+ return true
+ }
+
+ if len(l.original) == 0 {
+ return true
+ }
+
+ if len(l.original) == 1 {
+ // identifier is too short: casing will depend on the context
+ firstByte := l.original[0]
+ switch {
+ case 'A' <= firstByte && firstByte <= 'Z':
+ // safe
+ w.WriteByte(firstByte)
+
+ return true
+ case alwaysUpper && 'a' <= firstByte && firstByte <= 'z':
+ w.WriteByte(firstByte - 'a' + 'A')
+
+ return true
+ default:
+
+ // not a letter: skip and let the caller decide
+ return false
+ }
+ }
+
+ if firstByte := l.original[0]; firstByte < utf8.RuneSelf {
+ // ASCII
+ switch {
+ case 'A' <= firstByte && firstByte <= 'Z':
+ // already an upper case letter
+ w.WriteString(l.original)
+
+ return true
+ case 'a' <= firstByte && firstByte <= 'z':
+ w.WriteByte(firstByte - 'a' + 'A')
+ w.WriteString(l.original[1:])
+
+ return true
+ default:
+ // not a good candidate: doesn't start with a letter
+ return false
+ }
+ }
+
+ // unicode
+ firstRune, idx := utf8.DecodeRuneInString(l.original)
+ if !unicode.IsLetter(firstRune) || !unicode.IsUpper(unicode.ToUpper(firstRune)) {
+ // not a good candidate: doesn't start with a letter
+ // or a rune for which case doesn't make sense (e.g. East-Asian runes etc)
+ return false
+ }
+
+ rest := l.original[idx:]
+ w.WriteRune(unicode.ToUpper(firstRune))
+ w.WriteString(strings.ToLower(rest))
+
+ return true
+}
+
+// WriteLower is like write titleized but it writes a lower-case version of the lexeme.
+//
+// Similarly, there is no writing if the casing of the first rune doesn't make sense.
+func (l nameLexem) WriteLower(w *bytes.Buffer, alwaysLower bool) bool {
+ if l.kind == lexemKindInitialismName {
+ w.WriteString(lower(l.matchedInitialism))
+
+ return true
+ }
+
+ if len(l.original) == 0 {
+ return true
+ }
+
+ if len(l.original) == 1 {
+ // identifier is too short: casing will depend on the context
+ firstByte := l.original[0]
+ switch {
+ case 'a' <= firstByte && firstByte <= 'z':
+ // safe
+ w.WriteByte(firstByte)
+
+ return true
+ case alwaysLower && 'A' <= firstByte && firstByte <= 'Z':
+ w.WriteByte(firstByte - 'A' + 'a')
+
+ return true
+ default:
+
+ // not a letter: skip and let the caller decide
+ return false
+ }
+ }
+
+ if firstByte := l.original[0]; firstByte < utf8.RuneSelf {
+ // ASCII
+ switch {
+ case 'a' <= firstByte && firstByte <= 'z':
+ // already a lower case letter
+ w.WriteString(l.original)
+
+ return true
+ case 'A' <= firstByte && firstByte <= 'Z':
+ w.WriteByte(firstByte - 'A' + 'a')
+ w.WriteString(l.original[1:])
+
+ return true
+ default:
+ // not a good candidate: doesn't start with a letter
+ return false
+ }
+ }
+
+ // unicode
+ firstRune, idx := utf8.DecodeRuneInString(l.original)
+ if !unicode.IsLetter(firstRune) || !unicode.IsLower(unicode.ToLower(firstRune)) {
+ // not a good candidate: doesn't start with a letter
+ // or a rune for which case doesn't make sense (e.g. East-Asian runes etc)
+ return false
+ }
+
+ rest := l.original[idx:]
+ w.WriteRune(unicode.ToLower(firstRune))
+ w.WriteString(rest)
+
+ return true
+}
+
+func (l nameLexem) GetOriginal() string {
+ return l.original
+}
+
+func (l nameLexem) IsInitialism() bool {
+ return l.kind == lexemKindInitialismName
+}
diff --git a/vendor/github.com/go-openapi/swag/mangling/name_mangler.go b/vendor/github.com/go-openapi/swag/mangling/name_mangler.go
new file mode 100644
index 00000000..94ae555a
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/mangling/name_mangler.go
@@ -0,0 +1,381 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+package mangling
+
+import (
+ "strings"
+ "unicode"
+)
+
+// NameMangler knows how to transform sentences or words into
+// identifiers that are a better fit in contexts such as:
+//
+// - unexported or exported go variable identifiers
+// - file names
+// - camel cased identifiers
+// - ...
+//
+// The [NameMangler] is safe for concurrent use, save for its [NameMangler.AddInitialisms] method,
+// which is not.
+//
+// # Known limitations
+//
+// At this moment, the [NameMangler] doesn't play well with "all caps" text:
+//
+// unless every single upper-cased word is declared as an initialism, capitalized words would generally
+// not be transformed with the expected result, e.g.
+//
+// ToFileName("THIS_IS_ALL_CAPS")
+//
+// yields the weird outcome
+//
+// "t_h_i_s_i_s_a_l_l_c_a_p_s"
+type NameMangler struct {
+ options
+
+ index *indexOfInitialisms
+
+ splitter splitter
+ splitterWithPostSplit splitter
+
+ _ struct{}
+}
+
+// NewNameMangler builds a name mangler ready to convert strings.
+//
+// The default name mangler is configured with default common initialisms and all default options.
+func NewNameMangler(opts ...Option) NameMangler {
+ m := NameMangler{
+ options: optionsWithDefaults(opts),
+ index: newIndexOfInitialisms(),
+ }
+ m.addInitialisms(m.commonInitialisms...)
+
+ // a splitter that returns matches lexemes as ready-to-assemble strings:
+ // details of the lexemes are redeemed.
+ m.splitter = newSplitter(
+ withInitialismsCache(&m.index.initialismsCache),
+ withReplaceFunc(m.replaceFunc),
+ )
+
+ // a splitter that returns matches lexemes ready for post-processing
+ m.splitterWithPostSplit = newSplitter(
+ withInitialismsCache(&m.index.initialismsCache),
+ withReplaceFunc(m.replaceFunc),
+ withPostSplitInitialismCheck,
+ )
+
+ return m
+}
+
+// AddInitialisms declares extra initialisms to the mangler.
+//
+// It declares extra words as "initialisms" (i.e. words that won't be camel cased or titled cased),
+// on top of the existing list of common initialisms (such as ID, HTTP...).
+//
+// Added words must start with a (unicode) letter. If some don't, they are ignored.
+// Added words are either fully capitalized or mixed-cased. Lower-case only words are considered capitalized.
+//
+// It is typically used just after initializing the [NameMangler].
+//
+// When all initialisms are known at the time the mangler is initialized, it is preferable to
+// use [NewNameMangler] with the option [WithAdditionalInitialisms].
+//
+// Adding initialisms mutates the mangler and should not be carried out concurrently with other calls to the mangler.
+func (m *NameMangler) AddInitialisms(words ...string) {
+ m.addInitialisms(words...)
+}
+
+// Initialisms renders the list of initialisms supported by this mangler.
+func (m *NameMangler) Initialisms() []string {
+ return m.index.initialisms
+}
+
+// Camelize a single word.
+//
+// Example:
+//
+// - "HELLO" and "hello" become "Hello".
+func (m NameMangler) Camelize(word string) string {
+ ru := []rune(word)
+
+ switch len(ru) {
+ case 0:
+ return ""
+ case 1:
+ return string(unicode.ToUpper(ru[0]))
+ default:
+ camelized := poolOfBuffers.BorrowBuffer(len(word))
+ camelized.Grow(len(word))
+ defer func() {
+ poolOfBuffers.RedeemBuffer(camelized)
+ }()
+
+ camelized.WriteRune(unicode.ToUpper(ru[0]))
+ for _, ru := range ru[1:] {
+ camelized.WriteRune(unicode.ToLower(ru))
+ }
+
+ return camelized.String()
+ }
+}
+
+// ToFileName generates a suitable snake-case file name from a sentence.
+//
+// It lower-cases everything with underscore (_) as a word separator.
+//
+// Examples:
+//
+// - "Hello, Swagger" becomes "hello_swagger"
+// - "HelloSwagger" becomes "hello_swagger"
+func (m NameMangler) ToFileName(name string) string {
+ inptr := m.split(name)
+ in := *inptr
+ out := make([]string, 0, len(in))
+
+ for _, w := range in {
+ out = append(out, lower(w))
+ }
+ poolOfStrings.RedeemStrings(inptr)
+
+ return strings.Join(out, "_")
+}
+
+// ToCommandName generates a suitable CLI command name from a sentence.
+//
+// It lower-cases everything with dash (-) as a word separator.
+//
+// Examples:
+//
+// - "Hello, Swagger" becomes "hello-swagger"
+// - "HelloSwagger" becomes "hello-swagger"
+func (m NameMangler) ToCommandName(name string) string {
+ inptr := m.split(name)
+ in := *inptr
+ out := make([]string, 0, len(in))
+
+ for _, w := range in {
+ out = append(out, lower(w))
+ }
+ poolOfStrings.RedeemStrings(inptr)
+
+ return strings.Join(out, "-")
+}
+
+// ToHumanNameLower represents a code name as a human-readable series of words.
+//
+// It lower-cases everything with blank space as a word separator.
+//
+// NOTE: parts recognized as initialisms just keep their original casing.
+//
+// Examples:
+//
+// - "Hello, Swagger" becomes "hello swagger"
+// - "HelloSwagger" or "Hello-Swagger" become "hello swagger"
+func (m NameMangler) ToHumanNameLower(name string) string {
+ s := m.splitterWithPostSplit
+ in := s.split(name)
+ out := make([]string, 0, len(*in))
+
+ for _, w := range *in {
+ if !w.IsInitialism() {
+ out = append(out, lower(w.GetOriginal()))
+ } else {
+ out = append(out, trim(w.GetOriginal()))
+ }
+ }
+
+ poolOfLexems.RedeemLexems(in)
+
+ return strings.Join(out, " ")
+}
+
+// ToHumanNameTitle represents a code name as a human-readable series of titleized words.
+//
+// It titleizes every word with blank space as a word separator.
+//
+// Examples:
+//
+// - "hello, Swagger" becomes "Hello Swagger"
+// - "helloSwagger" becomes "Hello Swagger"
+func (m NameMangler) ToHumanNameTitle(name string) string {
+ s := m.splitterWithPostSplit
+ in := s.split(name)
+
+ out := make([]string, 0, len(*in))
+ for _, w := range *in {
+ original := trim(w.GetOriginal())
+ if !w.IsInitialism() {
+ out = append(out, m.Camelize(original))
+ } else {
+ out = append(out, original)
+ }
+ }
+ poolOfLexems.RedeemLexems(in)
+
+ return strings.Join(out, " ")
+}
+
+// ToJSONName generates a camelized single-word version of a sentence.
+//
+// The output assembles every camelized word, but for the first word, which
+// is lower-cased.
+//
+// Example:
+//
+// - "Hello_swagger" becomes "helloSwagger"
+func (m NameMangler) ToJSONName(name string) string {
+ inptr := m.split(name)
+ in := *inptr
+ out := make([]string, 0, len(in))
+
+ for i, w := range in {
+ if i == 0 {
+ out = append(out, lower(w))
+ continue
+ }
+ out = append(out, m.Camelize(trim(w)))
+ }
+
+ poolOfStrings.RedeemStrings(inptr)
+
+ return strings.Join(out, "")
+}
+
+// ToVarName generates a legit unexported go variable name from a sentence.
+//
+// The generated name plays well with linters (see also [NameMangler.ToGoName]).
+//
+// Examples:
+//
+// - "Hello_swagger" becomes "helloSwagger"
+// - "Http_server" becomes "httpServer"
+//
+// This name applies the same rules as [NameMangler.ToGoName] (legit exported variable), save the
+// capitalization of the initial rune.
+//
+// Special case: when the initial part is a recognized as an initialism (like in the example above),
+// the full part is lower-cased.
+func (m NameMangler) ToVarName(name string) string {
+ return m.goIdentifier(name, false)
+}
+
+// ToGoName generates a legit exported go variable name from a sentence.
+//
+// The generated name plays well with most linters.
+//
+// ToGoName abides by the go "exported" symbol rule starting with an upper-case letter.
+//
+// Examples:
+//
+// - "hello_swagger" becomes "HelloSwagger"
+// - "Http_server" becomes "HTTPServer"
+//
+// # Edge cases
+//
+// Whenever the first rune is not eligible to upper case, a special prefix is prepended to the resulting name.
+// By default this is simply "X" and you may customize this behavior using the [WithGoNamePrefixFunc] option.
+//
+// This happens when the first rune is not a letter, e.g. a digit, or a symbol that has no word transliteration
+// (see also [WithReplaceFunc] about symbol transliterations),
+// as well as for most East Asian or Devanagari runes, for which there is no such concept as upper-case.
+//
+// # Linting
+//
+// [revive], the successor of golint is the reference linter.
+//
+// This means that [NameMangler.ToGoName] supports the initialisms that revive checks (see also [DefaultInitialisms]).
+//
+// At this moment, there is no attempt to transliterate unicode into ascii, meaning that some linters
+// (e.g. asciicheck, gosmopolitan) may croak on go identifiers generated from unicode input.
+//
+// [revive]: https://github.com/mgechev/revive
+func (m NameMangler) ToGoName(name string) string {
+ return m.goIdentifier(name, true)
+}
+
+func (m NameMangler) goIdentifier(name string, exported bool) string {
+ s := m.splitterWithPostSplit
+ lexems := s.split(name)
+ defer func() {
+ poolOfLexems.RedeemLexems(lexems)
+ }()
+ lexemes := *lexems
+
+ if len(lexemes) == 0 {
+ return ""
+ }
+
+ result := poolOfBuffers.BorrowBuffer(len(name))
+ defer func() {
+ poolOfBuffers.RedeemBuffer(result)
+ }()
+
+ firstPart := lexemes[0]
+ if !exported {
+ if ok := firstPart.WriteLower(result, true); !ok {
+ // NOTE: an initialism as the first part is lower-cased: no longer generates stuff like hTTPxyz.
+ //
+ // same prefixing rule applied to unexported variable as to an exported one, so that we have consistent
+ // names, whether the generated identifier is exported or not.
+ result.WriteString(strings.ToLower(m.prefixFunc()(name)))
+ result.WriteString(lexemes[0].GetOriginal())
+ }
+ } else {
+ if ok := firstPart.WriteTitleized(result, true); !ok {
+ // "repairs" a lexeme that doesn't start with a letter to become
+ // the start a legit go name. The current strategy is very crude and simply adds a fixed prefix,
+ // e.g. "X".
+ // For instance "1_sesame_street" would be split into lexemes ["1", "sesame", "street"] and
+ // the first one ("1") would result in something like "X1" (with the default prefix function).
+ //
+ // NOTE: no longer forcing the first part to be fully upper-cased
+ result.WriteString(m.prefixFunc()(name))
+ result.WriteString(lexemes[0].GetOriginal())
+ }
+ }
+
+ for _, lexem := range lexemes[1:] {
+ // NOTE: no longer forcing initialism parts to be fully upper-cased:
+ // * pluralized initialism preserve their trailing "s"
+ // * mixed-cased initialisms, such as IPv4, are preserved
+ if ok := lexem.WriteTitleized(result, false); !ok {
+ // it's not titleized: perhaps it's too short, perhaps the first rune is not a letter.
+ // write anyway
+ result.WriteString(lexem.GetOriginal())
+ }
+ }
+
+ return result.String()
+}
+
+func (m *NameMangler) addInitialisms(words ...string) {
+ m.index.add(words...)
+ m.index.buildCache()
+}
+
+// split calls the inner splitter.
+func (m NameMangler) split(str string) *[]string {
+ s := m.splitter
+ lexems := s.split(str)
+ result := poolOfStrings.BorrowStrings()
+
+ for _, lexem := range *lexems {
+ *result = append(*result, lexem.GetOriginal())
+ }
+ poolOfLexems.RedeemLexems(lexems)
+
+ return result
+}
diff --git a/vendor/github.com/go-openapi/swag/mangling/options.go b/vendor/github.com/go-openapi/swag/mangling/options.go
new file mode 100644
index 00000000..66ad2e46
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/mangling/options.go
@@ -0,0 +1,161 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+package mangling
+
+type (
+ // PrefixFunc defines a safeguard rule (that may depend on the input string), to prefix
+ // a generated go name (in [NameMangler.ToGoName] and [NameMangler.ToVarName]).
+ //
+ // See [NameMangler.ToGoName] for more about which edge cases the prefix function covers.
+ PrefixFunc func(string) string
+
+ // ReplaceFunc is a transliteration function to replace special runes by a word.
+ ReplaceFunc func(r rune) (string, bool)
+
+ // Option to configure a [NameMangler].
+ Option func(*options)
+
+ options struct {
+ commonInitialisms []string
+
+ goNamePrefixFunc PrefixFunc
+ goNamePrefixFuncPtr *PrefixFunc
+ replaceFunc func(r rune) (string, bool)
+ }
+)
+
+func (o *options) prefixFunc() PrefixFunc {
+ if o.goNamePrefixFuncPtr != nil && *o.goNamePrefixFuncPtr != nil {
+ return *o.goNamePrefixFuncPtr
+ }
+
+ return o.goNamePrefixFunc
+}
+
+// WithGoNamePrefixFunc overrides the default prefix rule to safeguard generated go names.
+//
+// Example:
+//
+// This helps convert "123" into "{prefix}123" (a very crude strategy indeed, but it works).
+//
+// See [github.com/go-swagger/go-swagger/generator.DefaultFuncMap] for an example.
+//
+// The prefix function is assumed to return a string that starts with an upper case letter.
+//
+// The default is to prefix with "X".
+//
+// See [NameMangler.ToGoName] for more about which edge cases the prefix function covers.
+func WithGoNamePrefixFunc(fn PrefixFunc) Option {
+ return func(o *options) {
+ o.goNamePrefixFunc = fn
+ }
+}
+
+// WithGoNamePrefixFuncPtr is like [WithGoNamePrefixFunc] but it specifies a pointer to a function.
+//
+// [WithGoNamePrefixFunc] should be preferred in most situations. This option should only serve the
+// purpose of handling special situations where the prefix function is not an internal variable
+// (e.g. an exported package global).
+//
+// [WithGoNamePrefixFuncPtr] supersedes [WithGoNamePrefixFunc] if it also specified.
+//
+// If the provided pointer is nil or points to a nil value, this option has no effect.
+//
+// The caller should ensure that no undesirable concurrent changes are applied to the function pointed to.
+func WithGoNamePrefixFuncPtr(ptr *PrefixFunc) Option {
+ return func(o *options) {
+ o.goNamePrefixFuncPtr = ptr
+ }
+}
+
+// WithInitialisms declares the initialisms this mangler supports.
+//
+// This supersedes any pre-loaded defaults (see [DefaultInitialisms] for more about what initialisms are).
+//
+// It declares words to be recognized as "initialisms" (i.e. words that won't be camel cased or titled cased).
+//
+// Words must start with a (unicode) letter. If some don't, they are ignored.
+// Words are either fully capitalized or mixed-cased. Lower-case only words are considered capitalized.
+func WithInitialisms(words ...string) Option {
+ return func(o *options) {
+ o.commonInitialisms = words
+ }
+}
+
+// WithAdditionalInitialisms adds new initialisms to the currently supported list (see [DefaultInitialisms]).
+//
+// The same sanitization rules apply as those described for [WithInitialisms].
+func WithAdditionalInitialisms(words ...string) Option {
+ return func(o *options) {
+ o.commonInitialisms = append(o.commonInitialisms, words...)
+ }
+}
+
+// WithReplaceFunc specifies a custom transliteration function instead of the default.
+//
+// The default translates the following characters into words as follows:
+//
+// - '@' -> 'At'
+// - '&' -> 'And'
+// - '|' -> 'Pipe'
+// - '$' -> 'Dollar'
+// - '!' -> 'Bang'
+//
+// Notice that the outcome of a transliteration should always be titleized.
+func WithReplaceFunc(fn ReplaceFunc) Option {
+ return func(o *options) {
+ o.replaceFunc = fn
+ }
+}
+
+func defaultPrefixFunc(_ string) string {
+ return "X"
+}
+
+// defaultReplaceTable finds a word representation for special characters.
+func defaultReplaceTable(r rune) (string, bool) {
+ switch r {
+ case '@':
+ return "At ", true
+ case '&':
+ return "And ", true
+ case '|':
+ return "Pipe ", true
+ case '$':
+ return "Dollar ", true
+ case '!':
+ return "Bang ", true
+ case '-':
+ return "", true
+ case '_':
+ return "", true
+ default:
+ return "", false
+ }
+}
+
+func optionsWithDefaults(opts []Option) options {
+ o := options{
+ commonInitialisms: DefaultInitialisms(),
+ goNamePrefixFunc: defaultPrefixFunc,
+ replaceFunc: defaultReplaceTable,
+ }
+
+ for _, apply := range opts {
+ apply(&o)
+ }
+
+ return o
+}
diff --git a/vendor/github.com/go-openapi/swag/mangling/pools.go b/vendor/github.com/go-openapi/swag/mangling/pools.go
new file mode 100644
index 00000000..d85b4038
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/mangling/pools.go
@@ -0,0 +1,134 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+package mangling
+
+import (
+ "bytes"
+ "sync"
+)
+
+const maxAllocMatches = 8
+
+type (
+ // memory pools of temporary objects.
+ //
+ // These are used to recycle temporarily allocated objects
+ // and relieve the GC from undue pressure.
+
+ matchesPool struct {
+ *sync.Pool
+ }
+
+ buffersPool struct {
+ *sync.Pool
+ }
+
+ lexemsPool struct {
+ *sync.Pool
+ }
+
+ stringsPool struct {
+ *sync.Pool
+ }
+)
+
+var (
+ // poolOfMatches holds temporary slices for recycling during the initialism match process
+ poolOfMatches = matchesPool{
+ Pool: &sync.Pool{
+ New: func() any {
+ s := make(initialismMatches, 0, maxAllocMatches)
+
+ return &s
+ },
+ },
+ }
+
+ poolOfBuffers = buffersPool{
+ Pool: &sync.Pool{
+ New: func() any {
+ return new(bytes.Buffer)
+ },
+ },
+ }
+
+ poolOfLexems = lexemsPool{
+ Pool: &sync.Pool{
+ New: func() any {
+ s := make([]nameLexem, 0, maxAllocMatches)
+
+ return &s
+ },
+ },
+ }
+
+ poolOfStrings = stringsPool{
+ Pool: &sync.Pool{
+ New: func() any {
+ s := make([]string, 0, maxAllocMatches)
+
+ return &s
+ },
+ },
+ }
+)
+
+func (p matchesPool) BorrowMatches() *initialismMatches {
+ s := p.Get().(*initialismMatches)
+ *s = (*s)[:0] // reset slice, keep allocated capacity
+
+ return s
+}
+
+func (p buffersPool) BorrowBuffer(size int) *bytes.Buffer {
+ s := p.Get().(*bytes.Buffer)
+ s.Reset()
+
+ if s.Cap() < size {
+ s.Grow(size)
+ }
+
+ return s
+}
+
+func (p lexemsPool) BorrowLexems() *[]nameLexem {
+ s := p.Get().(*[]nameLexem)
+ *s = (*s)[:0] // reset slice, keep allocated capacity
+
+ return s
+}
+
+func (p stringsPool) BorrowStrings() *[]string {
+ s := p.Get().(*[]string)
+ *s = (*s)[:0] // reset slice, keep allocated capacity
+
+ return s
+}
+
+func (p matchesPool) RedeemMatches(s *initialismMatches) {
+ p.Put(s)
+}
+
+func (p buffersPool) RedeemBuffer(s *bytes.Buffer) {
+ p.Put(s)
+}
+
+func (p lexemsPool) RedeemLexems(s *[]nameLexem) {
+ p.Put(s)
+}
+
+func (p stringsPool) RedeemStrings(s *[]string) {
+ p.Put(s)
+}
diff --git a/vendor/github.com/go-openapi/swag/split.go b/vendor/github.com/go-openapi/swag/mangling/split.go
similarity index 52%
rename from vendor/github.com/go-openapi/swag/split.go
rename to vendor/github.com/go-openapi/swag/mangling/split.go
index 274727a8..40e4a2e0 100644
--- a/vendor/github.com/go-openapi/swag/split.go
+++ b/vendor/github.com/go-openapi/swag/mangling/split.go
@@ -12,212 +12,66 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package swag
+package mangling
import (
- "bytes"
- "sync"
"unicode"
- "unicode/utf8"
)
-type (
- splitter struct {
- initialisms []string
- initialismsRunes [][]rune
- initialismsUpperCased [][]rune // initialisms cached in their trimmed, upper-cased version
- postSplitInitialismCheck bool
+type splitterOption func(*splitter)
+
+// withPostSplitInitialismCheck allows to catch initialisms after main split process
+func withPostSplitInitialismCheck(s *splitter) {
+ s.postSplitInitialismCheck = true
+}
+
+func withReplaceFunc(fn ReplaceFunc) func(*splitter) {
+ return func(s *splitter) {
+ s.replaceFunc = fn
}
+}
- splitterOption func(*splitter)
+func withInitialismsCache(c *initialismsCache) splitterOption {
+ return func(s *splitter) {
+ s.initialismsCache = c
+ }
+}
+type (
initialismMatch struct {
body []rune
start, end int
complete bool
+ hasPlural pluralForm
}
initialismMatches []initialismMatch
)
-type (
- // memory pools of temporary objects.
- //
- // These are used to recycle temporarily allocated objects
- // and relieve the GC from undue pressure.
-
- matchesPool struct {
- *sync.Pool
- }
-
- buffersPool struct {
- *sync.Pool
- }
-
- lexemsPool struct {
- *sync.Pool
- }
-
- splittersPool struct {
- *sync.Pool
- }
-)
-
-var (
- // poolOfMatches holds temporary slices for recycling during the initialism match process
- poolOfMatches = matchesPool{
- Pool: &sync.Pool{
- New: func() any {
- s := make(initialismMatches, 0, maxAllocMatches)
-
- return &s
- },
- },
- }
-
- poolOfBuffers = buffersPool{
- Pool: &sync.Pool{
- New: func() any {
- return new(bytes.Buffer)
- },
- },
- }
-
- poolOfLexems = lexemsPool{
- Pool: &sync.Pool{
- New: func() any {
- s := make([]nameLexem, 0, maxAllocMatches)
-
- return &s
- },
- },
- }
-
- poolOfSplitters = splittersPool{
- Pool: &sync.Pool{
- New: func() any {
- s := newSplitter()
-
- return &s
- },
- },
- }
-)
-
-// nameReplaceTable finds a word representation for special characters.
-func nameReplaceTable(r rune) (string, bool) {
- switch r {
- case '@':
- return "At ", true
- case '&':
- return "And ", true
- case '|':
- return "Pipe ", true
- case '$':
- return "Dollar ", true
- case '!':
- return "Bang ", true
- case '-':
- return "", true
- case '_':
- return "", true
- default:
- return "", false
- }
+func (m initialismMatch) isZero() bool {
+ return m.start == 0 && m.end == 0
}
-// split calls the splitter.
-//
-// Use newSplitter for more control and options
-func split(str string) []string {
- s := poolOfSplitters.BorrowSplitter()
- lexems := s.split(str)
- result := make([]string, 0, len(*lexems))
-
- for _, lexem := range *lexems {
- result = append(result, lexem.GetOriginal())
- }
- poolOfLexems.RedeemLexems(lexems)
- poolOfSplitters.RedeemSplitter(s)
-
- return result
+type splitter struct {
+ *initialismsCache
+ postSplitInitialismCheck bool
+ replaceFunc ReplaceFunc
}
func newSplitter(options ...splitterOption) splitter {
- s := splitter{
- postSplitInitialismCheck: false,
- initialisms: initialisms,
- initialismsRunes: initialismsRunes,
- initialismsUpperCased: initialismsUpperCased,
- }
+ var s splitter
for _, option := range options {
option(&s)
}
- return s
-}
-
-// withPostSplitInitialismCheck allows to catch initialisms after main split process
-func withPostSplitInitialismCheck(s *splitter) {
- s.postSplitInitialismCheck = true
-}
-
-func (p matchesPool) BorrowMatches() *initialismMatches {
- s := p.Get().(*initialismMatches)
- *s = (*s)[:0] // reset slice, keep allocated capacity
-
- return s
-}
-
-func (p buffersPool) BorrowBuffer(size int) *bytes.Buffer {
- s := p.Get().(*bytes.Buffer)
- s.Reset()
-
- if s.Cap() < size {
- s.Grow(size)
- }
-
- return s
-}
-
-func (p lexemsPool) BorrowLexems() *[]nameLexem {
- s := p.Get().(*[]nameLexem)
- *s = (*s)[:0] // reset slice, keep allocated capacity
-
- return s
-}
-
-func (p splittersPool) BorrowSplitter(options ...splitterOption) *splitter {
- s := p.Get().(*splitter)
- s.postSplitInitialismCheck = false // reset options
- for _, apply := range options {
- apply(s)
+ if s.replaceFunc == nil {
+ s.replaceFunc = defaultReplaceTable
}
return s
}
-func (p matchesPool) RedeemMatches(s *initialismMatches) {
- p.Put(s)
-}
-
-func (p buffersPool) RedeemBuffer(s *bytes.Buffer) {
- p.Put(s)
-}
-
-func (p lexemsPool) RedeemLexems(s *[]nameLexem) {
- p.Put(s)
-}
-
-func (p splittersPool) RedeemSplitter(s *splitter) {
- p.Put(s)
-}
-
-func (m initialismMatch) isZero() bool {
- return m.start == 0 && m.end == 0
-}
-
func (s splitter) split(name string) *[]nameLexem {
nameRunes := []rune(name)
matches := s.gatherInitialismMatches(nameRunes)
@@ -242,25 +96,68 @@ func (s splitter) gatherInitialismMatches(nameRunes []rune) *initialismMatches {
for _, match := range *matches {
if keepCompleteMatch := match.complete; keepCompleteMatch {
*newMatches = append(*newMatches, match)
+
+ // the match is complete: keep it then move on to next rune
continue
}
- // drop failed match
currentMatchRune := match.body[currentRunePosition-match.start]
if currentMatchRune != currentRune {
+ // failed match, move on to next rune
continue
}
// try to complete ongoing match
if currentRunePosition-match.start == len(match.body)-1 {
// we are close; the next step is to check the symbol ahead
- // if it is a small letter, then it is not the end of match
- // but beginning of the next word
+ // if it is a lowercase letter, then it is not the end of match
+ // but the beginning of the next word.
+ //
+ // NOTE(fredbi): this heuristic sometimes leads to counterintuitive splits and
+ // perhaps (not sure yet) we should check against case _alternance_.
+ //
+ // Example:
+ //
+ // In the current version, in the sentence "IDS initialism", "ID" is recognized as an initialism,
+ // leading to a split like "id_s_initialism" (or IDSInitialism),
+ // whereas in the sentence "IDx initialism", it is not and produces something like
+ // "i_d_x_initialism" (or IDxInitialism). The generated file name is not great.
+ //
+ // Both go identifiers are tolerated by linters.
+ //
+ // Notice that the slightly different input "IDs initialism" is correctly detected
+ // as a pluralized initialism and produces something like "ids_initialism" (or IDsInitialism).
if currentRunePosition < len(nameRunes)-1 {
nextRune := nameRunes[currentRunePosition+1]
+
+ // recognize a plural form for this initialism (only simple pluralization is supported)
+ if nextRune == 's' && match.hasPlural == simplePlural {
+ // detected a pluralized initialism
+ match.body = append(match.body, nextRune)
+ currentRunePosition++
+ if currentRunePosition < len(nameRunes)-1 {
+ nextRune = nameRunes[currentRunePosition+1]
+ if newWord := unicode.IsLower(nextRune); newWord {
+ // it is the start of a new word.
+ // Match is only partial and the initialism is not recognized : move on
+ continue
+ }
+ }
+
+ // this is a pluralized match: keep it
+ match.complete = true
+ match.hasPlural = simplePlural
+ match.end = currentRunePosition
+ *newMatches = append(*newMatches, match)
+
+ // match is complete: keep it then move on to next rune
+ continue
+ }
+
if newWord := unicode.IsLower(nextRune); newWord {
- // oh ok, it was the start of a new word
+ // it is the start of a new word
+ // Match is only partial and the initialism is not recognized : move on
continue
}
}
@@ -269,18 +166,19 @@ func (s splitter) gatherInitialismMatches(nameRunes []rune) *initialismMatches {
match.end = currentRunePosition
}
+ // append the ongoing matching attempt (not necessarily complete)
*newMatches = append(*newMatches, match)
}
}
// check for new initialism matches
- for i := range s.initialisms {
- initialismRunes := s.initialismsRunes[i]
- if initialismRunes[0] == currentRune {
+ for i, r := range s.initialismsRunes {
+ if r[0] == currentRune {
*newMatches = append(*newMatches, initialismMatch{
- start: currentRunePosition,
- body: initialismRunes,
- complete: false,
+ start: currentRunePosition,
+ body: r,
+ complete: false,
+ hasPlural: s.initialismsPluralForm[i],
})
}
}
@@ -373,8 +271,10 @@ func (s splitter) appendBrokenDownCasualString(segments *[]nameLexem, str []rune
addNameLexem = addCasualNameLexem
}
+ // NOTE: (performance). The few remaining non-amortized allocations
+ // lay in the code below: using String() forces
for _, rn := range str {
- if replace, found := nameReplaceTable(rn); found {
+ if replace, found := s.replaceFunc(rn); found {
if currentSegment.Len() > 0 {
addNameLexem(currentSegment.String())
currentSegment.Reset()
@@ -410,99 +310,3 @@ func (s splitter) appendBrokenDownCasualString(segments *[]nameLexem, str []rune
addNameLexem(currentSegment.String())
}
}
-
-// isEqualFoldIgnoreSpace is the same as strings.EqualFold, but
-// it ignores leading and trailing blank spaces in the compared
-// string.
-//
-// base is assumed to be composed of upper-cased runes, and be already
-// trimmed.
-//
-// This code is heavily inspired from strings.EqualFold.
-func isEqualFoldIgnoreSpace(base []rune, str string) bool {
- var i, baseIndex int
- // equivalent to b := []byte(str), but without data copy
- b := hackStringBytes(str)
-
- for i < len(b) {
- if c := b[i]; c < utf8.RuneSelf {
- // fast path for ASCII
- if c != ' ' && c != '\t' {
- break
- }
- i++
-
- continue
- }
-
- // unicode case
- r, size := utf8.DecodeRune(b[i:])
- if !unicode.IsSpace(r) {
- break
- }
- i += size
- }
-
- if i >= len(b) {
- return len(base) == 0
- }
-
- for _, baseRune := range base {
- if i >= len(b) {
- break
- }
-
- if c := b[i]; c < utf8.RuneSelf {
- // single byte rune case (ASCII)
- if baseRune >= utf8.RuneSelf {
- return false
- }
-
- baseChar := byte(baseRune)
- if c != baseChar &&
- !('a' <= c && c <= 'z' && c-'a'+'A' == baseChar) {
- return false
- }
-
- baseIndex++
- i++
-
- continue
- }
-
- // unicode case
- r, size := utf8.DecodeRune(b[i:])
- if unicode.ToUpper(r) != baseRune {
- return false
- }
- baseIndex++
- i += size
- }
-
- if baseIndex != len(base) {
- return false
- }
-
- // all passed: now we should only have blanks
- for i < len(b) {
- if c := b[i]; c < utf8.RuneSelf {
- // fast path for ASCII
- if c != ' ' && c != '\t' {
- return false
- }
- i++
-
- continue
- }
-
- // unicode case
- r, size := utf8.DecodeRune(b[i:])
- if !unicode.IsSpace(r) {
- return false
- }
-
- i += size
- }
-
- return true
-}
diff --git a/vendor/github.com/go-openapi/swag/mangling/string_bytes.go b/vendor/github.com/go-openapi/swag/mangling/string_bytes.go
new file mode 100644
index 00000000..06351434
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/mangling/string_bytes.go
@@ -0,0 +1,22 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+package mangling
+
+import "unsafe"
+
+// hackStringBytes returns the (unsafe) underlying bytes slice of a string.
+func hackStringBytes(str string) []byte {
+ return unsafe.Slice(unsafe.StringData(str), len(str))
+}
diff --git a/vendor/github.com/go-openapi/swag/mangling/util.go b/vendor/github.com/go-openapi/swag/mangling/util.go
new file mode 100644
index 00000000..c289dc6b
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/mangling/util.go
@@ -0,0 +1,129 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+package mangling
+
+import (
+ "strings"
+ "unicode"
+ "unicode/utf8"
+)
+
+// Removes leading whitespaces
+func trim(str string) string { return strings.TrimSpace(str) }
+
+// upper is strings.ToUpper() combined with trim
+func upper(str string) string {
+ return strings.ToUpper(trim(str))
+}
+
+// lower is strings.ToLower() combined with trim
+func lower(str string) string {
+ return strings.ToLower(trim(str))
+}
+
+// isEqualFoldIgnoreSpace is the same as strings.EqualFold, but
+// it ignores leading and trailing blank spaces in the compared
+// string.
+//
+// base is assumed to be composed of upper-cased runes, and be already
+// trimmed.
+//
+// This code is heavily inspired from strings.EqualFold.
+func isEqualFoldIgnoreSpace(base []rune, str string) bool {
+ var i, baseIndex int
+ // equivalent to b := []byte(str), but without data copy
+ b := hackStringBytes(str)
+
+ for i < len(b) {
+ if c := b[i]; c < utf8.RuneSelf {
+ // fast path for ASCII
+ if c != ' ' && c != '\t' {
+ break
+ }
+ i++
+
+ continue
+ }
+
+ // unicode case
+ r, size := utf8.DecodeRune(b[i:])
+ if !unicode.IsSpace(r) {
+ break
+ }
+ i += size
+ }
+
+ if i >= len(b) {
+ return len(base) == 0
+ }
+
+ for _, baseRune := range base {
+ if i >= len(b) {
+ break
+ }
+
+ if c := b[i]; c < utf8.RuneSelf {
+ // single byte rune case (ASCII)
+ if baseRune >= utf8.RuneSelf {
+ return false
+ }
+
+ baseChar := byte(baseRune)
+ if c != baseChar && ((c < 'a') || (c > 'z') || (c-'a'+'A' != baseChar)) {
+ return false
+ }
+
+ baseIndex++
+ i++
+
+ continue
+ }
+
+ // unicode case
+ r, size := utf8.DecodeRune(b[i:])
+ if unicode.ToUpper(r) != baseRune {
+ return false
+ }
+ baseIndex++
+ i += size
+ }
+
+ if baseIndex != len(base) {
+ return false
+ }
+
+ // all passed: now we should only have blanks
+ for i < len(b) {
+ if c := b[i]; c < utf8.RuneSelf {
+ // fast path for ASCII
+ if c != ' ' && c != '\t' {
+ return false
+ }
+ i++
+
+ continue
+ }
+
+ // unicode case
+ r, size := utf8.DecodeRune(b[i:])
+ if !unicode.IsSpace(r) {
+ return false
+ }
+
+ i += size
+ }
+
+ return true
+}
diff --git a/vendor/github.com/go-openapi/swag/mangling_iface.go b/vendor/github.com/go-openapi/swag/mangling_iface.go
new file mode 100644
index 00000000..2d0d07dd
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/mangling_iface.go
@@ -0,0 +1,80 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+package swag
+
+import "github.com/go-openapi/swag/mangling"
+
+// GoNamePrefixFunc sets an optional rule to prefix go names
+// which do not start with a letter.
+//
+// GoNamePrefixFunc should not be written to while concurrently using the other mangling functions of this package.
+//
+// Deprecated: use [mangling.WithGoNamePrefixFunc] instead.
+var GoNamePrefixFunc mangling.PrefixFunc
+
+// swagNameMangler is a global instance of the name mangler specifically alloted
+// to support deprecated functions.
+var swagNameMangler = mangling.NewNameMangler(
+ mangling.WithGoNamePrefixFuncPtr(&GoNamePrefixFunc),
+)
+
+// AddInitialisms adds additional initialisms to the default list (see [mangling.DefaultInitialisms]).
+//
+// AddInitialisms is not safe to be called concurrently.
+//
+// Deprecated: use [mangling.WithAdditionalInitialisms] instead.
+func AddInitialisms(words ...string) {
+ swagNameMangler.AddInitialisms(words...)
+}
+
+// Camelize a single word.
+//
+// Deprecated: use [mangling.NameMangler.Camelize] instead.
+func Camelize(word string) string { return swagNameMangler.Camelize(word) }
+
+// ToFileName lowercases and underscores a go type name.
+//
+// Deprecated: use [mangling.NameMangler.ToFileName] instead.
+func ToFileName(name string) string { return swagNameMangler.ToFileName(name) }
+
+// ToCommandName lowercases and underscores a go type name.
+//
+// Deprecated: use [mangling.NameMangler.ToCommandName] instead.
+func ToCommandName(name string) string { return swagNameMangler.ToCommandName(name) }
+
+// ToHumanNameLower represents a code name as a human series of words.
+//
+// Deprecated: use [mangling.NameMangler.ToHumanNameLower] instead.
+func ToHumanNameLower(name string) string { return swagNameMangler.ToHumanNameLower(name) }
+
+// ToHumanNameTitle represents a code name as a human series of words with the first letters titleized.
+//
+// Deprecated: use [mangling.NameMangler.ToHumanNameTitle] instead.
+func ToHumanNameTitle(name string) string { return swagNameMangler.ToHumanNameTitle(name) }
+
+// ToJSONName camel-cases a name which can be underscored or pascal-cased.
+//
+// Deprecated: use [mangling.NameMangler.ToJSONName] instead.
+func ToJSONName(name string) string { return swagNameMangler.ToJSONName(name) }
+
+// ToVarName camel-cases a name which can be underscored or pascal-cased.
+//
+// Deprecated: use [mangling.NameMangler.ToVarName] instead.
+func ToVarName(name string) string { return swagNameMangler.ToVarName(name) }
+
+// ToGoName translates a swagger name which can be underscored or camel cased to a name that golint likes.
+//
+// Deprecated: use [mangling.NameMangler.ToGoName] instead.
+func ToGoName(name string) string { return swagNameMangler.ToGoName(name) }
diff --git a/vendor/github.com/go-openapi/swag/name_lexem.go b/vendor/github.com/go-openapi/swag/name_lexem.go
deleted file mode 100644
index 8bb64ac3..00000000
--- a/vendor/github.com/go-openapi/swag/name_lexem.go
+++ /dev/null
@@ -1,93 +0,0 @@
-// Copyright 2015 go-swagger maintainers
-//
-// 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.
-
-package swag
-
-import (
- "unicode"
- "unicode/utf8"
-)
-
-type (
- lexemKind uint8
-
- nameLexem struct {
- original string
- matchedInitialism string
- kind lexemKind
- }
-)
-
-const (
- lexemKindCasualName lexemKind = iota
- lexemKindInitialismName
-)
-
-func newInitialismNameLexem(original, matchedInitialism string) nameLexem {
- return nameLexem{
- kind: lexemKindInitialismName,
- original: original,
- matchedInitialism: matchedInitialism,
- }
-}
-
-func newCasualNameLexem(original string) nameLexem {
- return nameLexem{
- kind: lexemKindCasualName,
- original: original,
- }
-}
-
-func (l nameLexem) GetUnsafeGoName() string {
- if l.kind == lexemKindInitialismName {
- return l.matchedInitialism
- }
-
- var (
- first rune
- rest string
- )
-
- for i, orig := range l.original {
- if i == 0 {
- first = orig
- continue
- }
-
- if i > 0 {
- rest = l.original[i:]
- break
- }
- }
-
- if len(l.original) > 1 {
- b := poolOfBuffers.BorrowBuffer(utf8.UTFMax + len(rest))
- defer func() {
- poolOfBuffers.RedeemBuffer(b)
- }()
- b.WriteRune(unicode.ToUpper(first))
- b.WriteString(lower(rest))
- return b.String()
- }
-
- return l.original
-}
-
-func (l nameLexem) GetOriginal() string {
- return l.original
-}
-
-func (l nameLexem) IsInitialism() bool {
- return l.kind == lexemKindInitialismName
-}
diff --git a/vendor/github.com/go-openapi/swag/netutils/LICENSE b/vendor/github.com/go-openapi/swag/netutils/LICENSE
new file mode 100644
index 00000000..d6456956
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/netutils/LICENSE
@@ -0,0 +1,202 @@
+
+ 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/go-openapi/swag/netutils/doc.go b/vendor/github.com/go-openapi/swag/netutils/doc.go
new file mode 100644
index 00000000..ed6d8a02
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/netutils/doc.go
@@ -0,0 +1,16 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+// Package netutils provides helpers for network-related tasks.
+package netutils
diff --git a/vendor/github.com/go-openapi/swag/net.go b/vendor/github.com/go-openapi/swag/netutils/net.go
similarity index 85%
rename from vendor/github.com/go-openapi/swag/net.go
rename to vendor/github.com/go-openapi/swag/netutils/net.go
index 821235f8..3d0182fc 100644
--- a/vendor/github.com/go-openapi/swag/net.go
+++ b/vendor/github.com/go-openapi/swag/netutils/net.go
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package swag
+package netutils
import (
"net"
@@ -20,7 +20,10 @@ import (
)
// SplitHostPort splits a network address into a host and a port.
-// The port is -1 when there is no port to be found
+//
+// The difference with the standard net.SplitHostPort is that the port is converted to an int.
+//
+// The port is -1 when there is no port to be found.
func SplitHostPort(addr string) (host string, port int, err error) {
h, p, err := net.SplitHostPort(addr)
if err != nil {
@@ -34,5 +37,6 @@ func SplitHostPort(addr string) (host string, port int, err error) {
if err != nil {
return "", -1, err
}
+
return h, pi, nil
}
diff --git a/vendor/github.com/go-openapi/swag/netutils_iface.go b/vendor/github.com/go-openapi/swag/netutils_iface.go
new file mode 100644
index 00000000..537314e3
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/netutils_iface.go
@@ -0,0 +1,24 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+package swag
+
+import "github.com/go-openapi/swag/netutils"
+
+// SplitHostPort splits a network address into a host and a port.
+//
+// Deprecated: use [netutils.SplitHostPort] instead.
+func SplitHostPort(addr string) (host string, port int, err error) {
+ return netutils.SplitHostPort(addr)
+}
diff --git a/vendor/github.com/go-openapi/swag/string_bytes.go b/vendor/github.com/go-openapi/swag/string_bytes.go
deleted file mode 100644
index 90745d5c..00000000
--- a/vendor/github.com/go-openapi/swag/string_bytes.go
+++ /dev/null
@@ -1,8 +0,0 @@
-package swag
-
-import "unsafe"
-
-// hackStringBytes returns the (unsafe) underlying bytes slice of a string.
-func hackStringBytes(str string) []byte {
- return unsafe.Slice(unsafe.StringData(str), len(str))
-}
diff --git a/vendor/github.com/go-openapi/swag/stringutils/LICENSE b/vendor/github.com/go-openapi/swag/stringutils/LICENSE
new file mode 100644
index 00000000..d6456956
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/stringutils/LICENSE
@@ -0,0 +1,202 @@
+
+ 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/go-openapi/swag/stringutils/collection_formats.go b/vendor/github.com/go-openapi/swag/stringutils/collection_formats.go
new file mode 100644
index 00000000..1ff96dcb
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/stringutils/collection_formats.go
@@ -0,0 +1,85 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+package stringutils
+
+import "strings"
+
+const (
+ // collectionFormatComma = "csv"
+ collectionFormatSpace = "ssv"
+ collectionFormatTab = "tsv"
+ collectionFormatPipe = "pipes"
+ collectionFormatMulti = "multi"
+
+ collectionFormatDefaultSep = ","
+)
+
+// JoinByFormat joins a string array by a known format (e.g. swagger's collectionFormat attribute):
+//
+// ssv: space separated value
+// tsv: tab separated value
+// pipes: pipe (|) separated value
+// csv: comma separated value (default)
+func JoinByFormat(data []string, format string) []string {
+ if len(data) == 0 {
+ return data
+ }
+ var sep string
+ switch format {
+ case collectionFormatSpace:
+ sep = " "
+ case collectionFormatTab:
+ sep = "\t"
+ case collectionFormatPipe:
+ sep = "|"
+ case collectionFormatMulti:
+ return data
+ default:
+ sep = collectionFormatDefaultSep
+ }
+ return []string{strings.Join(data, sep)}
+}
+
+// SplitByFormat splits a string by a known format:
+//
+// ssv: space separated value
+// tsv: tab separated value
+// pipes: pipe (|) separated value
+// csv: comma separated value (default)
+func SplitByFormat(data, format string) []string {
+ if data == "" {
+ return nil
+ }
+ var sep string
+ switch format {
+ case collectionFormatSpace:
+ sep = " "
+ case collectionFormatTab:
+ sep = "\t"
+ case collectionFormatPipe:
+ sep = "|"
+ case collectionFormatMulti:
+ return nil
+ default:
+ sep = collectionFormatDefaultSep
+ }
+ var result []string
+ for _, s := range strings.Split(data, sep) {
+ if ts := strings.TrimSpace(s); ts != "" {
+ result = append(result, ts)
+ }
+ }
+ return result
+}
diff --git a/vendor/github.com/go-openapi/swag/stringutils/doc.go b/vendor/github.com/go-openapi/swag/stringutils/doc.go
new file mode 100644
index 00000000..b5d18e51
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/stringutils/doc.go
@@ -0,0 +1,16 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+// Package stringutils exposes helpers to search and process strings.
+package stringutils
diff --git a/vendor/github.com/go-openapi/swag/stringutils/strings.go b/vendor/github.com/go-openapi/swag/stringutils/strings.go
new file mode 100644
index 00000000..08659231
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/stringutils/strings.go
@@ -0,0 +1,34 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+package stringutils
+
+import (
+ "slices"
+ "strings"
+)
+
+// ContainsStrings searches a slice of strings for a case-sensitive match
+//
+// Now equivalent to the standard library [slice.Contains].
+func ContainsStrings(coll []string, item string) bool {
+ return slices.Contains(coll, item)
+}
+
+// ContainsStringsCI searches a slice of strings for a case-insensitive match
+func ContainsStringsCI(coll []string, item string) bool {
+ return slices.ContainsFunc(coll, func(e string) bool {
+ return strings.EqualFold(e, item)
+ })
+}
diff --git a/vendor/github.com/go-openapi/swag/stringutils_iface.go b/vendor/github.com/go-openapi/swag/stringutils_iface.go
new file mode 100644
index 00000000..00d7e021
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/stringutils_iface.go
@@ -0,0 +1,45 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+package swag
+
+import "github.com/go-openapi/swag/stringutils"
+
+// ContainsStrings searches a slice of strings for a case-sensitive match.
+//
+// Deprecated: use [slices.Contains] or [stringutils.ContainsStrings] instead.
+func ContainsStrings(coll []string, item string) bool {
+ return stringutils.ContainsStrings(coll, item)
+}
+
+// ContainsStringsCI searches a slice of strings for a case-insensitive match.
+//
+// Deprecated: use [stringutils.ContainsStringsCI] instead.
+func ContainsStringsCI(coll []string, item string) bool {
+ return stringutils.ContainsStringsCI(coll, item)
+}
+
+// JoinByFormat joins a string array by a known format (e.g. swagger's collectionFormat attribute).
+//
+// Deprecated: use [stringutils.JoinByFormat] instead.
+func JoinByFormat(data []string, format string) []string {
+ return stringutils.JoinByFormat(data, format)
+}
+
+// SplitByFormat splits a string by a known format.
+//
+// Deprecated: use [stringutils.SplitByFormat] instead.
+func SplitByFormat(data, format string) []string {
+ return stringutils.SplitByFormat(data, format)
+}
diff --git a/vendor/github.com/go-openapi/swag/typeutils/LICENSE b/vendor/github.com/go-openapi/swag/typeutils/LICENSE
new file mode 100644
index 00000000..d6456956
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/typeutils/LICENSE
@@ -0,0 +1,202 @@
+
+ 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/go-openapi/swag/typeutils/doc.go b/vendor/github.com/go-openapi/swag/typeutils/doc.go
new file mode 100644
index 00000000..67e49d12
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/typeutils/doc.go
@@ -0,0 +1,16 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+// Package typeutils exposes utilities to inspect generic types.
+package typeutils
diff --git a/vendor/github.com/go-openapi/swag/typeutils/types.go b/vendor/github.com/go-openapi/swag/typeutils/types.go
new file mode 100644
index 00000000..f0ddd3cd
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/typeutils/types.go
@@ -0,0 +1,91 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+package typeutils
+
+import "reflect"
+
+type zeroable interface {
+ IsZero() bool
+}
+
+// IsZero returns true when the value passed into the function is a zero value.
+// This allows for safer checking of interface values.
+func IsZero(data any) bool {
+ v := reflect.ValueOf(data)
+ // check for nil data
+ switch v.Kind() { //nolint:exhaustive
+ case
+ reflect.Interface,
+ reflect.Func,
+ reflect.Chan,
+ reflect.Pointer,
+ reflect.UnsafePointer,
+ reflect.Map,
+ reflect.Slice:
+ if v.IsNil() {
+ return true
+ }
+ }
+
+ // check for things that have an IsZero method instead
+ if vv, ok := data.(zeroable); ok {
+ return vv.IsZero()
+ }
+
+ // continue with slightly more complex reflection
+ switch v.Kind() { //nolint:exhaustive
+ case reflect.String:
+ return v.Len() == 0
+ case reflect.Bool:
+ return !v.Bool()
+ case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
+ return v.Int() == 0
+ case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
+ return v.Uint() == 0
+ case reflect.Float32, reflect.Float64:
+ return v.Float() == 0
+ case reflect.Struct, reflect.Array:
+ return reflect.DeepEqual(data, reflect.Zero(v.Type()).Interface())
+ case reflect.Invalid:
+ return true
+ default:
+ return false
+ }
+}
+
+// IsNil checks if input is nil.
+//
+// For types chan, func, interface, map, pointer, or slice it returns true if its argument is nil.
+//
+// See [reflect.Value.IsNil].
+func IsNil(input any) bool {
+ if input == nil {
+ return true
+ }
+
+ kind := reflect.TypeOf(input).Kind()
+ switch kind { //nolint:exhaustive
+ case reflect.Pointer,
+ reflect.UnsafePointer,
+ reflect.Map,
+ reflect.Slice,
+ reflect.Chan,
+ reflect.Interface,
+ reflect.Func:
+ return reflect.ValueOf(input).IsNil()
+ default:
+ return false
+ }
+}
diff --git a/vendor/github.com/go-openapi/swag/typeutils_iface.go b/vendor/github.com/go-openapi/swag/typeutils_iface.go
new file mode 100644
index 00000000..b104a804
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/typeutils_iface.go
@@ -0,0 +1,23 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+package swag
+
+import "github.com/go-openapi/swag/typeutils"
+
+// IsZero returns true when the value passed into the function is a zero value.
+// This allows for safer checking of interface values.
+//
+// Deprecated: use [typeutils.IsZero] instead.
+func IsZero(data interface{}) bool { return typeutils.IsZero(data) }
diff --git a/vendor/github.com/go-openapi/swag/util.go b/vendor/github.com/go-openapi/swag/util.go
deleted file mode 100644
index 5051401c..00000000
--- a/vendor/github.com/go-openapi/swag/util.go
+++ /dev/null
@@ -1,364 +0,0 @@
-// Copyright 2015 go-swagger maintainers
-//
-// 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.
-
-package swag
-
-import (
- "reflect"
- "strings"
- "unicode"
- "unicode/utf8"
-)
-
-// GoNamePrefixFunc sets an optional rule to prefix go names
-// which do not start with a letter.
-//
-// The prefix function is assumed to return a string that starts with an upper case letter.
-//
-// e.g. to help convert "123" into "{prefix}123"
-//
-// The default is to prefix with "X"
-var GoNamePrefixFunc func(string) string
-
-func prefixFunc(name, in string) string {
- if GoNamePrefixFunc == nil {
- return "X" + in
- }
-
- return GoNamePrefixFunc(name) + in
-}
-
-const (
- // collectionFormatComma = "csv"
- collectionFormatSpace = "ssv"
- collectionFormatTab = "tsv"
- collectionFormatPipe = "pipes"
- collectionFormatMulti = "multi"
-)
-
-// JoinByFormat joins a string array by a known format (e.g. swagger's collectionFormat attribute):
-//
-// ssv: space separated value
-// tsv: tab separated value
-// pipes: pipe (|) separated value
-// csv: comma separated value (default)
-func JoinByFormat(data []string, format string) []string {
- if len(data) == 0 {
- return data
- }
- var sep string
- switch format {
- case collectionFormatSpace:
- sep = " "
- case collectionFormatTab:
- sep = "\t"
- case collectionFormatPipe:
- sep = "|"
- case collectionFormatMulti:
- return data
- default:
- sep = ","
- }
- return []string{strings.Join(data, sep)}
-}
-
-// SplitByFormat splits a string by a known format:
-//
-// ssv: space separated value
-// tsv: tab separated value
-// pipes: pipe (|) separated value
-// csv: comma separated value (default)
-func SplitByFormat(data, format string) []string {
- if data == "" {
- return nil
- }
- var sep string
- switch format {
- case collectionFormatSpace:
- sep = " "
- case collectionFormatTab:
- sep = "\t"
- case collectionFormatPipe:
- sep = "|"
- case collectionFormatMulti:
- return nil
- default:
- sep = ","
- }
- var result []string
- for _, s := range strings.Split(data, sep) {
- if ts := strings.TrimSpace(s); ts != "" {
- result = append(result, ts)
- }
- }
- return result
-}
-
-// Removes leading whitespaces
-func trim(str string) string {
- return strings.TrimSpace(str)
-}
-
-// Shortcut to strings.ToUpper()
-func upper(str string) string {
- return strings.ToUpper(trim(str))
-}
-
-// Shortcut to strings.ToLower()
-func lower(str string) string {
- return strings.ToLower(trim(str))
-}
-
-// Camelize an uppercased word
-func Camelize(word string) string {
- camelized := poolOfBuffers.BorrowBuffer(len(word))
- defer func() {
- poolOfBuffers.RedeemBuffer(camelized)
- }()
-
- for pos, ru := range []rune(word) {
- if pos > 0 {
- camelized.WriteRune(unicode.ToLower(ru))
- } else {
- camelized.WriteRune(unicode.ToUpper(ru))
- }
- }
- return camelized.String()
-}
-
-// ToFileName lowercases and underscores a go type name
-func ToFileName(name string) string {
- in := split(name)
- out := make([]string, 0, len(in))
-
- for _, w := range in {
- out = append(out, lower(w))
- }
-
- return strings.Join(out, "_")
-}
-
-// ToCommandName lowercases and underscores a go type name
-func ToCommandName(name string) string {
- in := split(name)
- out := make([]string, 0, len(in))
-
- for _, w := range in {
- out = append(out, lower(w))
- }
- return strings.Join(out, "-")
-}
-
-// ToHumanNameLower represents a code name as a human series of words
-func ToHumanNameLower(name string) string {
- s := poolOfSplitters.BorrowSplitter(withPostSplitInitialismCheck)
- in := s.split(name)
- poolOfSplitters.RedeemSplitter(s)
- out := make([]string, 0, len(*in))
-
- for _, w := range *in {
- if !w.IsInitialism() {
- out = append(out, lower(w.GetOriginal()))
- } else {
- out = append(out, trim(w.GetOriginal()))
- }
- }
- poolOfLexems.RedeemLexems(in)
-
- return strings.Join(out, " ")
-}
-
-// ToHumanNameTitle represents a code name as a human series of words with the first letters titleized
-func ToHumanNameTitle(name string) string {
- s := poolOfSplitters.BorrowSplitter(withPostSplitInitialismCheck)
- in := s.split(name)
- poolOfSplitters.RedeemSplitter(s)
-
- out := make([]string, 0, len(*in))
- for _, w := range *in {
- original := trim(w.GetOriginal())
- if !w.IsInitialism() {
- out = append(out, Camelize(original))
- } else {
- out = append(out, original)
- }
- }
- poolOfLexems.RedeemLexems(in)
-
- return strings.Join(out, " ")
-}
-
-// ToJSONName camelcases a name which can be underscored or pascal cased
-func ToJSONName(name string) string {
- in := split(name)
- out := make([]string, 0, len(in))
-
- for i, w := range in {
- if i == 0 {
- out = append(out, lower(w))
- continue
- }
- out = append(out, Camelize(trim(w)))
- }
- return strings.Join(out, "")
-}
-
-// ToVarName camelcases a name which can be underscored or pascal cased
-func ToVarName(name string) string {
- res := ToGoName(name)
- if isInitialism(res) {
- return lower(res)
- }
- if len(res) <= 1 {
- return lower(res)
- }
- return lower(res[:1]) + res[1:]
-}
-
-// ToGoName translates a swagger name which can be underscored or camel cased to a name that golint likes
-func ToGoName(name string) string {
- s := poolOfSplitters.BorrowSplitter(withPostSplitInitialismCheck)
- lexems := s.split(name)
- poolOfSplitters.RedeemSplitter(s)
- defer func() {
- poolOfLexems.RedeemLexems(lexems)
- }()
- lexemes := *lexems
-
- if len(lexemes) == 0 {
- return ""
- }
-
- result := poolOfBuffers.BorrowBuffer(len(name))
- defer func() {
- poolOfBuffers.RedeemBuffer(result)
- }()
-
- // check if not starting with a letter, upper case
- firstPart := lexemes[0].GetUnsafeGoName()
- if lexemes[0].IsInitialism() {
- firstPart = upper(firstPart)
- }
-
- if c := firstPart[0]; c < utf8.RuneSelf {
- // ASCII
- switch {
- case 'A' <= c && c <= 'Z':
- result.WriteString(firstPart)
- case 'a' <= c && c <= 'z':
- result.WriteByte(c - 'a' + 'A')
- result.WriteString(firstPart[1:])
- default:
- result.WriteString(prefixFunc(name, firstPart))
- // NOTE: no longer check if prefixFunc returns a string that starts with uppercase:
- // assume this is always the case
- }
- } else {
- // unicode
- firstRune, _ := utf8.DecodeRuneInString(firstPart)
- switch {
- case !unicode.IsLetter(firstRune):
- result.WriteString(prefixFunc(name, firstPart))
- case !unicode.IsUpper(firstRune):
- result.WriteString(prefixFunc(name, firstPart))
- /*
- result.WriteRune(unicode.ToUpper(firstRune))
- result.WriteString(firstPart[offset:])
- */
- default:
- result.WriteString(firstPart)
- }
- }
-
- for _, lexem := range lexemes[1:] {
- goName := lexem.GetUnsafeGoName()
-
- // to support old behavior
- if lexem.IsInitialism() {
- goName = upper(goName)
- }
- result.WriteString(goName)
- }
-
- return result.String()
-}
-
-// ContainsStrings searches a slice of strings for a case-sensitive match
-func ContainsStrings(coll []string, item string) bool {
- for _, a := range coll {
- if a == item {
- return true
- }
- }
- return false
-}
-
-// ContainsStringsCI searches a slice of strings for a case-insensitive match
-func ContainsStringsCI(coll []string, item string) bool {
- for _, a := range coll {
- if strings.EqualFold(a, item) {
- return true
- }
- }
- return false
-}
-
-type zeroable interface {
- IsZero() bool
-}
-
-// IsZero returns true when the value passed into the function is a zero value.
-// This allows for safer checking of interface values.
-func IsZero(data interface{}) bool {
- v := reflect.ValueOf(data)
- // check for nil data
- switch v.Kind() { //nolint:exhaustive
- case reflect.Interface, reflect.Map, reflect.Ptr, reflect.Slice:
- if v.IsNil() {
- return true
- }
- }
-
- // check for things that have an IsZero method instead
- if vv, ok := data.(zeroable); ok {
- return vv.IsZero()
- }
-
- // continue with slightly more complex reflection
- switch v.Kind() { //nolint:exhaustive
- case reflect.String:
- return v.Len() == 0
- case reflect.Bool:
- return !v.Bool()
- case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
- return v.Int() == 0
- case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
- return v.Uint() == 0
- case reflect.Float32, reflect.Float64:
- return v.Float() == 0
- case reflect.Struct, reflect.Array:
- return reflect.DeepEqual(data, reflect.Zero(v.Type()).Interface())
- case reflect.Invalid:
- return true
- default:
- return false
- }
-}
-
-// CommandLineOptionsGroup represents a group of user-defined command line options
-type CommandLineOptionsGroup struct {
- ShortDescription string
- LongDescription string
- Options interface{}
-}
diff --git a/vendor/github.com/go-openapi/swag/yaml.go b/vendor/github.com/go-openapi/swag/yaml.go
deleted file mode 100644
index 57534653..00000000
--- a/vendor/github.com/go-openapi/swag/yaml.go
+++ /dev/null
@@ -1,481 +0,0 @@
-// Copyright 2015 go-swagger maintainers
-//
-// 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.
-
-package swag
-
-import (
- "encoding/json"
- "fmt"
- "path/filepath"
- "reflect"
- "sort"
- "strconv"
-
- "github.com/mailru/easyjson/jlexer"
- "github.com/mailru/easyjson/jwriter"
- yaml "gopkg.in/yaml.v3"
-)
-
-// YAMLMatcher matches yaml
-func YAMLMatcher(path string) bool {
- ext := filepath.Ext(path)
- return ext == ".yaml" || ext == ".yml"
-}
-
-// YAMLToJSON converts YAML unmarshaled data into json compatible data
-func YAMLToJSON(data interface{}) (json.RawMessage, error) {
- jm, err := transformData(data)
- if err != nil {
- return nil, err
- }
- b, err := WriteJSON(jm)
- return json.RawMessage(b), err
-}
-
-// BytesToYAMLDoc converts a byte slice into a YAML document
-func BytesToYAMLDoc(data []byte) (interface{}, error) {
- var document yaml.Node // preserve order that is present in the document
- if err := yaml.Unmarshal(data, &document); err != nil {
- return nil, err
- }
- if document.Kind != yaml.DocumentNode || len(document.Content) != 1 || document.Content[0].Kind != yaml.MappingNode {
- return nil, fmt.Errorf("only YAML documents that are objects are supported: %w", ErrYAML)
- }
- return &document, nil
-}
-
-func yamlNode(root *yaml.Node) (interface{}, error) {
- switch root.Kind {
- case yaml.DocumentNode:
- return yamlDocument(root)
- case yaml.SequenceNode:
- return yamlSequence(root)
- case yaml.MappingNode:
- return yamlMapping(root)
- case yaml.ScalarNode:
- return yamlScalar(root)
- case yaml.AliasNode:
- return yamlNode(root.Alias)
- default:
- return nil, fmt.Errorf("unsupported YAML node type: %v: %w", root.Kind, ErrYAML)
- }
-}
-
-func yamlDocument(node *yaml.Node) (interface{}, error) {
- if len(node.Content) != 1 {
- return nil, fmt.Errorf("unexpected YAML Document node content length: %d: %w", len(node.Content), ErrYAML)
- }
- return yamlNode(node.Content[0])
-}
-
-func yamlMapping(node *yaml.Node) (interface{}, error) {
- const sensibleAllocDivider = 2
- m := make(JSONMapSlice, len(node.Content)/sensibleAllocDivider)
-
- var j int
- for i := 0; i < len(node.Content); i += 2 {
- var nmi JSONMapItem
- k, err := yamlStringScalarC(node.Content[i])
- if err != nil {
- return nil, fmt.Errorf("unable to decode YAML map key: %w: %w", err, ErrYAML)
- }
- nmi.Key = k
- v, err := yamlNode(node.Content[i+1])
- if err != nil {
- return nil, fmt.Errorf("unable to process YAML map value for key %q: %w: %w", k, err, ErrYAML)
- }
- nmi.Value = v
- m[j] = nmi
- j++
- }
- return m, nil
-}
-
-func yamlSequence(node *yaml.Node) (interface{}, error) {
- s := make([]interface{}, 0)
-
- for i := 0; i < len(node.Content); i++ {
-
- v, err := yamlNode(node.Content[i])
- if err != nil {
- return nil, fmt.Errorf("unable to decode YAML sequence value: %w: %w", err, ErrYAML)
- }
- s = append(s, v)
- }
- return s, nil
-}
-
-const ( // See https://yaml.org/type/
- yamlStringScalar = "tag:yaml.org,2002:str"
- yamlIntScalar = "tag:yaml.org,2002:int"
- yamlBoolScalar = "tag:yaml.org,2002:bool"
- yamlFloatScalar = "tag:yaml.org,2002:float"
- yamlTimestamp = "tag:yaml.org,2002:timestamp"
- yamlNull = "tag:yaml.org,2002:null"
-)
-
-func yamlScalar(node *yaml.Node) (interface{}, error) {
- switch node.LongTag() {
- case yamlStringScalar:
- return node.Value, nil
- case yamlBoolScalar:
- b, err := strconv.ParseBool(node.Value)
- if err != nil {
- return nil, fmt.Errorf("unable to process scalar node. Got %q. Expecting bool content: %w: %w", node.Value, err, ErrYAML)
- }
- return b, nil
- case yamlIntScalar:
- i, err := strconv.ParseInt(node.Value, 10, 64)
- if err != nil {
- return nil, fmt.Errorf("unable to process scalar node. Got %q. Expecting integer content: %w: %w", node.Value, err, ErrYAML)
- }
- return i, nil
- case yamlFloatScalar:
- f, err := strconv.ParseFloat(node.Value, 64)
- if err != nil {
- return nil, fmt.Errorf("unable to process scalar node. Got %q. Expecting float content: %w: %w", node.Value, err, ErrYAML)
- }
- return f, nil
- case yamlTimestamp:
- return node.Value, nil
- case yamlNull:
- return nil, nil //nolint:nilnil
- default:
- return nil, fmt.Errorf("YAML tag %q is not supported: %w", node.LongTag(), ErrYAML)
- }
-}
-
-func yamlStringScalarC(node *yaml.Node) (string, error) {
- if node.Kind != yaml.ScalarNode {
- return "", fmt.Errorf("expecting a string scalar but got %q: %w", node.Kind, ErrYAML)
- }
- switch node.LongTag() {
- case yamlStringScalar, yamlIntScalar, yamlFloatScalar:
- return node.Value, nil
- default:
- return "", fmt.Errorf("YAML tag %q is not supported as map key: %w", node.LongTag(), ErrYAML)
- }
-}
-
-// JSONMapSlice represent a JSON object, with the order of keys maintained
-type JSONMapSlice []JSONMapItem
-
-// MarshalJSON renders a JSONMapSlice as JSON
-func (s JSONMapSlice) MarshalJSON() ([]byte, error) {
- w := &jwriter.Writer{Flags: jwriter.NilMapAsEmpty | jwriter.NilSliceAsEmpty}
- s.MarshalEasyJSON(w)
- return w.BuildBytes()
-}
-
-// MarshalEasyJSON renders a JSONMapSlice as JSON, using easyJSON
-func (s JSONMapSlice) MarshalEasyJSON(w *jwriter.Writer) {
- w.RawByte('{')
-
- ln := len(s)
- last := ln - 1
- for i := 0; i < ln; i++ {
- s[i].MarshalEasyJSON(w)
- if i != last { // last item
- w.RawByte(',')
- }
- }
-
- w.RawByte('}')
-}
-
-// UnmarshalJSON makes a JSONMapSlice from JSON
-func (s *JSONMapSlice) UnmarshalJSON(data []byte) error {
- l := jlexer.Lexer{Data: data}
- s.UnmarshalEasyJSON(&l)
- return l.Error()
-}
-
-// UnmarshalEasyJSON makes a JSONMapSlice from JSON, using easyJSON
-func (s *JSONMapSlice) UnmarshalEasyJSON(in *jlexer.Lexer) {
- if in.IsNull() {
- in.Skip()
- return
- }
-
- var result JSONMapSlice
- in.Delim('{')
- for !in.IsDelim('}') {
- var mi JSONMapItem
- mi.UnmarshalEasyJSON(in)
- result = append(result, mi)
- }
- *s = result
-}
-
-func (s JSONMapSlice) MarshalYAML() (interface{}, error) {
- var n yaml.Node
- n.Kind = yaml.DocumentNode
- var nodes []*yaml.Node
- for _, item := range s {
- nn, err := json2yaml(item.Value)
- if err != nil {
- return nil, err
- }
- ns := []*yaml.Node{
- {
- Kind: yaml.ScalarNode,
- Tag: yamlStringScalar,
- Value: item.Key,
- },
- nn,
- }
- nodes = append(nodes, ns...)
- }
-
- n.Content = []*yaml.Node{
- {
- Kind: yaml.MappingNode,
- Content: nodes,
- },
- }
-
- return yaml.Marshal(&n)
-}
-
-func isNil(input interface{}) bool {
- if input == nil {
- return true
- }
- kind := reflect.TypeOf(input).Kind()
- switch kind { //nolint:exhaustive
- case reflect.Ptr, reflect.Map, reflect.Slice, reflect.Chan:
- return reflect.ValueOf(input).IsNil()
- default:
- return false
- }
-}
-
-func json2yaml(item interface{}) (*yaml.Node, error) {
- if isNil(item) {
- return &yaml.Node{
- Kind: yaml.ScalarNode,
- Value: "null",
- }, nil
- }
-
- switch val := item.(type) {
- case JSONMapSlice:
- var n yaml.Node
- n.Kind = yaml.MappingNode
- for i := range val {
- childNode, err := json2yaml(&val[i].Value)
- if err != nil {
- return nil, err
- }
- n.Content = append(n.Content, &yaml.Node{
- Kind: yaml.ScalarNode,
- Tag: yamlStringScalar,
- Value: val[i].Key,
- }, childNode)
- }
- return &n, nil
- case map[string]interface{}:
- var n yaml.Node
- n.Kind = yaml.MappingNode
- keys := make([]string, 0, len(val))
- for k := range val {
- keys = append(keys, k)
- }
- sort.Strings(keys)
-
- for _, k := range keys {
- v := val[k]
- childNode, err := json2yaml(v)
- if err != nil {
- return nil, err
- }
- n.Content = append(n.Content, &yaml.Node{
- Kind: yaml.ScalarNode,
- Tag: yamlStringScalar,
- Value: k,
- }, childNode)
- }
- return &n, nil
- case []interface{}:
- var n yaml.Node
- n.Kind = yaml.SequenceNode
- for i := range val {
- childNode, err := json2yaml(val[i])
- if err != nil {
- return nil, err
- }
- n.Content = append(n.Content, childNode)
- }
- return &n, nil
- case string:
- return &yaml.Node{
- Kind: yaml.ScalarNode,
- Tag: yamlStringScalar,
- Value: val,
- }, nil
- case float64:
- return &yaml.Node{
- Kind: yaml.ScalarNode,
- Tag: yamlFloatScalar,
- Value: strconv.FormatFloat(val, 'f', -1, 64),
- }, nil
- case int64:
- return &yaml.Node{
- Kind: yaml.ScalarNode,
- Tag: yamlIntScalar,
- Value: strconv.FormatInt(val, 10),
- }, nil
- case uint64:
- return &yaml.Node{
- Kind: yaml.ScalarNode,
- Tag: yamlIntScalar,
- Value: strconv.FormatUint(val, 10),
- }, nil
- case bool:
- return &yaml.Node{
- Kind: yaml.ScalarNode,
- Tag: yamlBoolScalar,
- Value: strconv.FormatBool(val),
- }, nil
- default:
- return nil, fmt.Errorf("unhandled type: %T: %w", val, ErrYAML)
- }
-}
-
-// JSONMapItem represents the value of a key in a JSON object held by JSONMapSlice
-type JSONMapItem struct {
- Key string
- Value interface{}
-}
-
-// MarshalJSON renders a JSONMapItem as JSON
-func (s JSONMapItem) MarshalJSON() ([]byte, error) {
- w := &jwriter.Writer{Flags: jwriter.NilMapAsEmpty | jwriter.NilSliceAsEmpty}
- s.MarshalEasyJSON(w)
- return w.BuildBytes()
-}
-
-// MarshalEasyJSON renders a JSONMapItem as JSON, using easyJSON
-func (s JSONMapItem) MarshalEasyJSON(w *jwriter.Writer) {
- w.String(s.Key)
- w.RawByte(':')
- w.Raw(WriteJSON(s.Value))
-}
-
-// UnmarshalJSON makes a JSONMapItem from JSON
-func (s *JSONMapItem) UnmarshalJSON(data []byte) error {
- l := jlexer.Lexer{Data: data}
- s.UnmarshalEasyJSON(&l)
- return l.Error()
-}
-
-// UnmarshalEasyJSON makes a JSONMapItem from JSON, using easyJSON
-func (s *JSONMapItem) UnmarshalEasyJSON(in *jlexer.Lexer) {
- key := in.UnsafeString()
- in.WantColon()
- value := in.Interface()
- in.WantComma()
- s.Key = key
- s.Value = value
-}
-
-func transformData(input interface{}) (out interface{}, err error) {
- format := func(t interface{}) (string, error) {
- switch k := t.(type) {
- case string:
- return k, nil
- case uint:
- return strconv.FormatUint(uint64(k), 10), nil
- case uint8:
- return strconv.FormatUint(uint64(k), 10), nil
- case uint16:
- return strconv.FormatUint(uint64(k), 10), nil
- case uint32:
- return strconv.FormatUint(uint64(k), 10), nil
- case uint64:
- return strconv.FormatUint(k, 10), nil
- case int:
- return strconv.Itoa(k), nil
- case int8:
- return strconv.FormatInt(int64(k), 10), nil
- case int16:
- return strconv.FormatInt(int64(k), 10), nil
- case int32:
- return strconv.FormatInt(int64(k), 10), nil
- case int64:
- return strconv.FormatInt(k, 10), nil
- default:
- return "", fmt.Errorf("unexpected map key type, got: %T: %w", k, ErrYAML)
- }
- }
-
- switch in := input.(type) {
- case yaml.Node:
- return yamlNode(&in)
- case *yaml.Node:
- return yamlNode(in)
- case map[interface{}]interface{}:
- o := make(JSONMapSlice, 0, len(in))
- for ke, va := range in {
- var nmi JSONMapItem
- if nmi.Key, err = format(ke); err != nil {
- return nil, err
- }
-
- v, ert := transformData(va)
- if ert != nil {
- return nil, ert
- }
- nmi.Value = v
- o = append(o, nmi)
- }
- return o, nil
- case []interface{}:
- len1 := len(in)
- o := make([]interface{}, len1)
- for i := 0; i < len1; i++ {
- o[i], err = transformData(in[i])
- if err != nil {
- return nil, err
- }
- }
- return o, nil
- }
- return input, nil
-}
-
-// YAMLDoc loads a yaml document from either http or a file and converts it to json
-func YAMLDoc(path string) (json.RawMessage, error) {
- yamlDoc, err := YAMLData(path)
- if err != nil {
- return nil, err
- }
-
- data, err := YAMLToJSON(yamlDoc)
- if err != nil {
- return nil, err
- }
-
- return data, nil
-}
-
-// YAMLData loads a yaml document from either http or a file
-func YAMLData(path string) (interface{}, error) {
- data, err := LoadFromFileOrHTTP(path)
- if err != nil {
- return nil, err
- }
-
- return BytesToYAMLDoc(data)
-}
diff --git a/vendor/github.com/go-openapi/swag/yamlutils/LICENSE b/vendor/github.com/go-openapi/swag/yamlutils/LICENSE
new file mode 100644
index 00000000..d6456956
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/yamlutils/LICENSE
@@ -0,0 +1,202 @@
+
+ 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/go-openapi/swag/yamlutils/doc.go b/vendor/github.com/go-openapi/swag/yamlutils/doc.go
new file mode 100644
index 00000000..4aeadc22
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/yamlutils/doc.go
@@ -0,0 +1,24 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+// Package yamlutils provides utilities to work with YAML documents.
+//
+// - [BytesToYAMLDoc] to construct a [yaml.Node] document
+// - [YAMLToJSON] to convert a [yaml.Node] document to JSON bytes
+// - [YAMLMapSlice] to serialize and deserialize YAML with the order of keys maintained
+package yamlutils
+
+import (
+ _ "go.yaml.in/yaml/v3" // for documentation purpose only
+)
diff --git a/vendor/github.com/go-openapi/swag/yamlutils/errors.go b/vendor/github.com/go-openapi/swag/yamlutils/errors.go
new file mode 100644
index 00000000..014f227d
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/yamlutils/errors.go
@@ -0,0 +1,26 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+package yamlutils
+
+type yamlError string
+
+const (
+ // ErrYAML is an error raised by YAML utilities
+ ErrYAML yamlError = "yaml error"
+)
+
+func (e yamlError) Error() string {
+ return string(e)
+}
diff --git a/vendor/github.com/go-openapi/swag/yamlutils/ordered_map.go b/vendor/github.com/go-openapi/swag/yamlutils/ordered_map.go
new file mode 100644
index 00000000..af1d7bb5
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/yamlutils/ordered_map.go
@@ -0,0 +1,313 @@
+package yamlutils
+
+import (
+ "fmt"
+ "iter"
+ "slices"
+ "sort"
+ "strconv"
+
+ "github.com/go-openapi/swag/conv"
+ "github.com/go-openapi/swag/jsonutils"
+ "github.com/go-openapi/swag/jsonutils/adapters/ifaces"
+ "github.com/go-openapi/swag/typeutils"
+ yaml "go.yaml.in/yaml/v3"
+)
+
+var (
+ _ yaml.Marshaler = YAMLMapSlice{}
+ _ yaml.Unmarshaler = &YAMLMapSlice{}
+)
+
+// YAMLMapSlice represents a YAML object, with the order of keys maintained.
+//
+// It is similar to [jsonutils.JSONMapSlice] and also knows how to marshal and unmarshal YAML.
+//
+// It behaves like an ordered map, but keys can't be accessed in constant time.
+type YAMLMapSlice []YAMLMapItem
+
+// YAMLMapItem represents the value of a key in a YAML object held by [YAMLMapSlice].
+//
+// It is entirely equivalent to [jsonutils.JSONMapItem], with the same limitation that
+// you should not Marshal or Unmarshal directly this type, outside of a [YAMLMapSlice].
+type YAMLMapItem = jsonutils.JSONMapItem
+
+func (s YAMLMapSlice) OrderedItems() iter.Seq2[string, any] {
+ return func(yield func(string, any) bool) {
+ for _, item := range s {
+ if !yield(item.Key, item.Value) {
+ return
+ }
+ }
+ }
+}
+
+// SetOrderedItems implements [ifaces.SetOrdered]: it merges keys passed by the iterator argument
+// into the [YAMLMapSlice].
+func (s *YAMLMapSlice) SetOrderedItems(items iter.Seq2[string, any]) {
+ if items == nil {
+ // force receiver to be a nil slice
+ *s = nil
+
+ return
+ }
+
+ m := *s
+ if len(m) > 0 {
+ // update mode: short-circuited when unmarshaling fresh data structures
+ idx := make(map[string]int, len(m))
+
+ for i, item := range m {
+ idx[item.Key] = i
+ }
+
+ for k, v := range items {
+ idx, ok := idx[k]
+ if ok {
+ m[idx].Value = v
+
+ continue
+ }
+
+ m = append(m, YAMLMapItem{Key: k, Value: v})
+ }
+
+ *s = m
+
+ return
+ }
+
+ for k, v := range items {
+ m = append(m, YAMLMapItem{Key: k, Value: v})
+ }
+
+ *s = m
+}
+
+// MarshalJSON renders this YAML object as JSON bytes.
+//
+// The difference with standard JSON marshaling is that the order of keys is maintained.
+func (s YAMLMapSlice) MarshalJSON() ([]byte, error) {
+ return jsonutils.JSONMapSlice(s).MarshalJSON()
+}
+
+// UnmarshalJSON builds this YAML object from JSON bytes.
+//
+// The difference with standard JSON marshaling is that the order of keys is maintained.
+func (s *YAMLMapSlice) UnmarshalJSON(data []byte) error {
+ js := jsonutils.JSONMapSlice(*s)
+
+ if err := js.UnmarshalJSON(data); err != nil {
+ return err
+ }
+
+ *s = YAMLMapSlice(js)
+
+ return nil
+}
+
+// MarshalYAML produces a YAML document as bytes
+//
+// The difference with standard YAML marshaling is that the order of keys is maintained.
+//
+// It implements [yaml.Marshaler].
+func (s YAMLMapSlice) MarshalYAML() (any, error) {
+ if typeutils.IsNil(s) {
+ return []byte("null\n"), nil
+ }
+ var n yaml.Node
+ n.Kind = yaml.DocumentNode
+ var nodes []*yaml.Node
+
+ for _, item := range s {
+ nn, err := json2yaml(item.Value)
+ if err != nil {
+ return nil, err
+ }
+
+ ns := []*yaml.Node{
+ {
+ Kind: yaml.ScalarNode,
+ Tag: yamlStringScalar,
+ Value: item.Key,
+ },
+ nn,
+ }
+ nodes = append(nodes, ns...)
+ }
+
+ n.Content = []*yaml.Node{
+ {
+ Kind: yaml.MappingNode,
+ Content: nodes,
+ },
+ }
+
+ return yaml.Marshal(&n)
+}
+
+// UnmarshalYAML builds a YAMLMapSlice object from a YAML document [yaml.Node].
+//
+// It implements [yaml.Unmarshaler].
+func (s *YAMLMapSlice) UnmarshalYAML(node *yaml.Node) error {
+ if typeutils.IsNil(*s) {
+ // allow to unmarshal with a simple var declaration (nil slice)
+ *s = YAMLMapSlice{}
+ }
+ if node == nil {
+ *s = nil
+ return nil
+ }
+
+ const sensibleAllocDivider = 2
+ m := slices.Grow(*s, len(node.Content)/sensibleAllocDivider)
+ m = m[:0]
+
+ for i := 0; i < len(node.Content); i += 2 {
+ var nmi YAMLMapItem
+ k, err := yamlStringScalarC(node.Content[i])
+ if err != nil {
+ return fmt.Errorf("unable to decode YAML map key: %w: %w", err, ErrYAML)
+ }
+ nmi.Key = k
+ v, err := yamlNode(node.Content[i+1])
+ if err != nil {
+ return fmt.Errorf("unable to process YAML map value for key %q: %w: %w", k, err, ErrYAML)
+ }
+ nmi.Value = v
+ m = append(m, nmi)
+ }
+
+ *s = m
+
+ return nil
+}
+
+func json2yaml(item any) (*yaml.Node, error) {
+ if typeutils.IsNil(item) {
+ return &yaml.Node{
+ Kind: yaml.ScalarNode,
+ Value: "null",
+ }, nil
+ }
+
+ switch val := item.(type) {
+ case ifaces.Ordered:
+ return orderedYAML(val)
+
+ case map[string]any:
+ var n yaml.Node
+ n.Kind = yaml.MappingNode
+ keys := make([]string, 0, len(val))
+ for k := range val {
+ keys = append(keys, k)
+ }
+ sort.Strings(keys)
+
+ for _, k := range keys {
+ v := val[k]
+ childNode, err := json2yaml(v)
+ if err != nil {
+ return nil, err
+ }
+ n.Content = append(n.Content, &yaml.Node{
+ Kind: yaml.ScalarNode,
+ Tag: yamlStringScalar,
+ Value: k,
+ }, childNode)
+ }
+ return &n, nil
+
+ case []any:
+ var n yaml.Node
+ n.Kind = yaml.SequenceNode
+ for i := range val {
+ childNode, err := json2yaml(val[i])
+ if err != nil {
+ return nil, err
+ }
+ n.Content = append(n.Content, childNode)
+ }
+ return &n, nil
+ case string:
+ return &yaml.Node{
+ Kind: yaml.ScalarNode,
+ Tag: yamlStringScalar,
+ Value: val,
+ }, nil
+ case float32:
+ return floatNode(val)
+ case float64:
+ return floatNode(val)
+ case int:
+ return integerNode(val)
+ case int8:
+ return integerNode(val)
+ case int16:
+ return integerNode(val)
+ case int32:
+ return integerNode(val)
+ case int64:
+ return integerNode(val)
+ case uint:
+ return uintegerNode(val)
+ case uint8:
+ return uintegerNode(val)
+ case uint16:
+ return uintegerNode(val)
+ case uint32:
+ return uintegerNode(val)
+ case uint64:
+ return uintegerNode(val)
+ case bool:
+ return &yaml.Node{
+ Kind: yaml.ScalarNode,
+ Tag: yamlBoolScalar,
+ Value: strconv.FormatBool(val),
+ }, nil
+ default:
+ return nil, fmt.Errorf("unhandled type: %T: %w", val, ErrYAML)
+ }
+}
+
+func floatNode[T conv.Float](val T) (*yaml.Node, error) {
+ return &yaml.Node{
+ Kind: yaml.ScalarNode,
+ Tag: yamlFloatScalar,
+ Value: conv.FormatFloat(val),
+ }, nil
+}
+
+func integerNode[T conv.Signed](val T) (*yaml.Node, error) {
+ return &yaml.Node{
+ Kind: yaml.ScalarNode,
+ Tag: yamlIntScalar,
+ Value: conv.FormatInteger(val),
+ }, nil
+}
+
+func uintegerNode[T conv.Unsigned](val T) (*yaml.Node, error) {
+ return &yaml.Node{
+ Kind: yaml.ScalarNode,
+ Tag: yamlIntScalar,
+ Value: conv.FormatUinteger(val),
+ }, nil
+}
+
+func orderedYAML[T ifaces.Ordered](val T) (*yaml.Node, error) {
+ var n yaml.Node
+ n.Kind = yaml.MappingNode
+ for key, value := range val.OrderedItems() {
+ childNode, err := json2yaml(value)
+ if err != nil {
+ return nil, err
+ }
+
+ n.Content = append(n.Content, &yaml.Node{
+ Kind: yaml.ScalarNode,
+ Tag: yamlStringScalar,
+ Value: key,
+ }, childNode)
+ }
+ return &n, nil
+}
diff --git a/vendor/github.com/go-openapi/swag/yamlutils/yaml.go b/vendor/github.com/go-openapi/swag/yamlutils/yaml.go
new file mode 100644
index 00000000..67fba8fd
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/yamlutils/yaml.go
@@ -0,0 +1,222 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+package yamlutils
+
+import (
+ json "encoding/json"
+ "fmt"
+ "strconv"
+
+ "github.com/go-openapi/swag/jsonutils"
+ yaml "go.yaml.in/yaml/v3"
+)
+
+// YAMLToJSON converts a YAML document into JSON bytes.
+//
+// Note: a YAML document is the output from a [yaml.Marshaler], e.g a pointer to a [yaml.Node].
+//
+// [YAMLToJSON] is typically called after [BytesToYAMLDoc].
+func YAMLToJSON(value any) (json.RawMessage, error) {
+ jm, err := transformData(value)
+ if err != nil {
+ return nil, err
+ }
+
+ b, err := jsonutils.WriteJSON(jm)
+
+ return json.RawMessage(b), err
+}
+
+// BytesToYAMLDoc converts a byte slice into a YAML document.
+//
+// This function only supports root documents that are objects.
+//
+// A YAML document is a pointer to a [yaml.Node].
+func BytesToYAMLDoc(data []byte) (any, error) {
+ var document yaml.Node // preserve order that is present in the document
+ if err := yaml.Unmarshal(data, &document); err != nil {
+ return nil, err
+ }
+ if document.Kind != yaml.DocumentNode || len(document.Content) != 1 || document.Content[0].Kind != yaml.MappingNode {
+ return nil, fmt.Errorf("only YAML documents that are objects are supported: %w", ErrYAML)
+ }
+ return &document, nil
+}
+
+func yamlNode(root *yaml.Node) (any, error) {
+ switch root.Kind {
+ case yaml.DocumentNode:
+ return yamlDocument(root)
+ case yaml.SequenceNode:
+ return yamlSequence(root)
+ case yaml.MappingNode:
+ return yamlMapping(root)
+ case yaml.ScalarNode:
+ return yamlScalar(root)
+ case yaml.AliasNode:
+ return yamlNode(root.Alias)
+ default:
+ return nil, fmt.Errorf("unsupported YAML node type: %v: %w", root.Kind, ErrYAML)
+ }
+}
+
+func yamlDocument(node *yaml.Node) (any, error) {
+ if len(node.Content) != 1 {
+ return nil, fmt.Errorf("unexpected YAML Document node content length: %d: %w", len(node.Content), ErrYAML)
+ }
+ return yamlNode(node.Content[0])
+}
+
+func yamlMapping(node *yaml.Node) (any, error) {
+ const sensibleAllocDivider = 2 // nodes concatenate (key,value) sequences
+ m := make(YAMLMapSlice, len(node.Content)/sensibleAllocDivider)
+
+ if err := m.UnmarshalYAML(node); err != nil {
+ return nil, err
+ }
+
+ return m, nil
+}
+
+func yamlSequence(node *yaml.Node) (any, error) {
+ s := make([]any, 0)
+
+ for i := range len(node.Content) {
+ v, err := yamlNode(node.Content[i])
+ if err != nil {
+ return nil, fmt.Errorf("unable to decode YAML sequence value: %w: %w", err, ErrYAML)
+ }
+ s = append(s, v)
+ }
+ return s, nil
+}
+
+const ( // See https://yaml.org/type/
+ yamlStringScalar = "tag:yaml.org,2002:str"
+ yamlIntScalar = "tag:yaml.org,2002:int"
+ yamlBoolScalar = "tag:yaml.org,2002:bool"
+ yamlFloatScalar = "tag:yaml.org,2002:float"
+ yamlTimestamp = "tag:yaml.org,2002:timestamp"
+ yamlNull = "tag:yaml.org,2002:null"
+)
+
+func yamlScalar(node *yaml.Node) (any, error) {
+ switch node.LongTag() {
+ case yamlStringScalar:
+ return node.Value, nil
+ case yamlBoolScalar:
+ b, err := strconv.ParseBool(node.Value)
+ if err != nil {
+ return nil, fmt.Errorf("unable to process scalar node. Got %q. Expecting bool content: %w: %w", node.Value, err, ErrYAML)
+ }
+ return b, nil
+ case yamlIntScalar:
+ i, err := strconv.ParseInt(node.Value, 10, 64)
+ if err != nil {
+ return nil, fmt.Errorf("unable to process scalar node. Got %q. Expecting integer content: %w: %w", node.Value, err, ErrYAML)
+ }
+ return i, nil
+ case yamlFloatScalar:
+ f, err := strconv.ParseFloat(node.Value, 64)
+ if err != nil {
+ return nil, fmt.Errorf("unable to process scalar node. Got %q. Expecting float content: %w: %w", node.Value, err, ErrYAML)
+ }
+ return f, nil
+ case yamlTimestamp:
+ // YAML timestamp is marshaled as string, not time
+ return node.Value, nil
+ case yamlNull:
+ return nil, nil //nolint:nilnil
+ default:
+ return nil, fmt.Errorf("YAML tag %q is not supported: %w", node.LongTag(), ErrYAML)
+ }
+}
+
+func yamlStringScalarC(node *yaml.Node) (string, error) {
+ if node.Kind != yaml.ScalarNode {
+ return "", fmt.Errorf("expecting a string scalar but got %q: %w", node.Kind, ErrYAML)
+ }
+ switch node.LongTag() {
+ case yamlStringScalar, yamlIntScalar, yamlFloatScalar:
+ return node.Value, nil
+ default:
+ return "", fmt.Errorf("YAML tag %q is not supported as map key: %w", node.LongTag(), ErrYAML)
+ }
+}
+
+func format(t any) (string, error) {
+ switch k := t.(type) {
+ case string:
+ return k, nil
+ case uint:
+ return strconv.FormatUint(uint64(k), 10), nil
+ case uint8:
+ return strconv.FormatUint(uint64(k), 10), nil
+ case uint16:
+ return strconv.FormatUint(uint64(k), 10), nil
+ case uint32:
+ return strconv.FormatUint(uint64(k), 10), nil
+ case uint64:
+ return strconv.FormatUint(k, 10), nil
+ case int:
+ return strconv.Itoa(k), nil
+ case int8:
+ return strconv.FormatInt(int64(k), 10), nil
+ case int16:
+ return strconv.FormatInt(int64(k), 10), nil
+ case int32:
+ return strconv.FormatInt(int64(k), 10), nil
+ case int64:
+ return strconv.FormatInt(k, 10), nil
+ default:
+ return "", fmt.Errorf("unexpected map key type, got: %T: %w", k, ErrYAML)
+ }
+}
+
+func transformData(input any) (out any, err error) {
+ switch in := input.(type) {
+ case yaml.Node:
+ return yamlNode(&in)
+ case *yaml.Node:
+ return yamlNode(in)
+ case map[any]any:
+ o := make(YAMLMapSlice, 0, len(in))
+ for ke, va := range in {
+ var nmi YAMLMapItem
+ if nmi.Key, err = format(ke); err != nil {
+ return nil, err
+ }
+
+ v, ert := transformData(va)
+ if ert != nil {
+ return nil, ert
+ }
+ nmi.Value = v
+ o = append(o, nmi)
+ }
+ return o, nil
+ case []any:
+ len1 := len(in)
+ o := make([]any, len1)
+ for i := range len1 {
+ o[i], err = transformData(in[i])
+ if err != nil {
+ return nil, err
+ }
+ }
+ return o, nil
+ }
+ return input, nil
+}
diff --git a/vendor/github.com/go-openapi/swag/yamlutils_iface.go b/vendor/github.com/go-openapi/swag/yamlutils_iface.go
new file mode 100644
index 00000000..49e64648
--- /dev/null
+++ b/vendor/github.com/go-openapi/swag/yamlutils_iface.go
@@ -0,0 +1,31 @@
+// Copyright 2015 go-swagger maintainers
+//
+// 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.
+
+package swag
+
+import (
+ "encoding/json"
+
+ "github.com/go-openapi/swag/yamlutils"
+)
+
+// YAMLToJSON converts YAML unmarshaled data into json compatible data
+//
+// Deprecated: use [yamlutils.YAMLToJSON] instead.
+func YAMLToJSON(data interface{}) (json.RawMessage, error) { return yamlutils.YAMLToJSON(data) }
+
+// BytesToYAMLDoc converts a byte slice into a YAML document
+//
+// Deprecated: use [yamlutils.BytesToYAMLDoc] instead.
+func BytesToYAMLDoc(data []byte) (interface{}, error) { return yamlutils.BytesToYAMLDoc(data) }
diff --git a/vendor/github.com/josharian/intern/README.md b/vendor/github.com/josharian/intern/README.md
deleted file mode 100644
index ffc44b21..00000000
--- a/vendor/github.com/josharian/intern/README.md
+++ /dev/null
@@ -1,5 +0,0 @@
-Docs: https://godoc.org/github.com/josharian/intern
-
-See also [Go issue 5160](https://golang.org/issue/5160).
-
-License: MIT
diff --git a/vendor/github.com/josharian/intern/intern.go b/vendor/github.com/josharian/intern/intern.go
deleted file mode 100644
index 7acb1fe9..00000000
--- a/vendor/github.com/josharian/intern/intern.go
+++ /dev/null
@@ -1,44 +0,0 @@
-// Package intern interns strings.
-// Interning is best effort only.
-// Interned strings may be removed automatically
-// at any time without notification.
-// All functions may be called concurrently
-// with themselves and each other.
-package intern
-
-import "sync"
-
-var (
- pool sync.Pool = sync.Pool{
- New: func() interface{} {
- return make(map[string]string)
- },
- }
-)
-
-// String returns s, interned.
-func String(s string) string {
- m := pool.Get().(map[string]string)
- c, ok := m[s]
- if ok {
- pool.Put(m)
- return c
- }
- m[s] = s
- pool.Put(m)
- return s
-}
-
-// Bytes returns b converted to a string, interned.
-func Bytes(b []byte) string {
- m := pool.Get().(map[string]string)
- c, ok := m[string(b)]
- if ok {
- pool.Put(m)
- return c
- }
- s := string(b)
- m[s] = s
- pool.Put(m)
- return s
-}
diff --git a/vendor/github.com/josharian/intern/license.md b/vendor/github.com/josharian/intern/license.md
deleted file mode 100644
index 353d3055..00000000
--- a/vendor/github.com/josharian/intern/license.md
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2019 Josh Bleecher Snyder
-
-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/klauspost/compress/README.md b/vendor/github.com/klauspost/compress/README.md
index 244ee19c..af2ef639 100644
--- a/vendor/github.com/klauspost/compress/README.md
+++ b/vendor/github.com/klauspost/compress/README.md
@@ -27,6 +27,16 @@ Use the links above for more information on each.
# changelog
+* Oct 20, 2025 - [1.18.1](https://github.com/klauspost/compress/releases/tag/v1.18.1)
+ * zstd: Add simple zstd EncodeTo/DecodeTo functions https://github.com/klauspost/compress/pull/1079
+ * zstd: Fix incorrect buffer size in dictionary encodes https://github.com/klauspost/compress/pull/1059
+ * s2: check for cap, not len of buffer in EncodeBetter/Best by @vdarulis in https://github.com/klauspost/compress/pull/1080
+ * zlib: Avoiding extra allocation in zlib.reader.Reset by @travelpolicy in https://github.com/klauspost/compress/pull/1086
+ * gzhttp: remove redundant err check in zstdReader by @ryanfowler in https://github.com/klauspost/compress/pull/1090
+ * flate: Faster load+store https://github.com/klauspost/compress/pull/1104
+ * flate: Simplify matchlen https://github.com/klauspost/compress/pull/1101
+ * flate: Use exact sizes for huffman tables https://github.com/klauspost/compress/pull/1103
+
* Feb 19th, 2025 - [1.18.0](https://github.com/klauspost/compress/releases/tag/v1.18.0)
* Add unsafe little endian loaders https://github.com/klauspost/compress/pull/1036
* fix: check `r.err != nil` but return a nil value error `err` by @alingse in https://github.com/klauspost/compress/pull/1028
@@ -36,6 +46,9 @@ Use the links above for more information on each.
* flate: Fix matchlen L5+L6 https://github.com/klauspost/compress/pull/1049
* flate: Cleanup & reduce casts https://github.com/klauspost/compress/pull/1050
+
+ See changes to v1.17.x
+
* Oct 11th, 2024 - [1.17.11](https://github.com/klauspost/compress/releases/tag/v1.17.11)
* zstd: Fix extra CRC written with multiple Close calls https://github.com/klauspost/compress/pull/1017
* s2: Don't use stack for index tables https://github.com/klauspost/compress/pull/1014
@@ -102,7 +115,8 @@ https://github.com/klauspost/compress/pull/919 https://github.com/klauspost/comp
* s2: Do 2 overlapping match checks https://github.com/klauspost/compress/pull/839
* flate: Add amd64 assembly matchlen https://github.com/klauspost/compress/pull/837
* gzip: Copy bufio.Reader on Reset by @thatguystone in https://github.com/klauspost/compress/pull/860
-
+
+
See changes to v1.16.x
@@ -669,3 +683,4 @@ Here are other packages of good quality and pure Go (no cgo wrappers or autoconv
# license
This code is licensed under the same conditions as the original Go code. See LICENSE file.
+
diff --git a/vendor/github.com/klauspost/cpuid/v2/README.md b/vendor/github.com/klauspost/cpuid/v2/README.md
index 465f4b77..accd7aba 100644
--- a/vendor/github.com/klauspost/cpuid/v2/README.md
+++ b/vendor/github.com/klauspost/cpuid/v2/README.md
@@ -16,10 +16,23 @@ Package home: https://github.com/klauspost/cpuid
## installing
-`go get -u github.com/klauspost/cpuid/v2` using modules.
-
+`go get -u github.com/klauspost/cpuid/v2` using modules.
Drop `v2` for others.
+Installing binary:
+
+`go install github.com/klauspost/cpuid/v2/cmd/cpuid@latest`
+
+Or download binaries from release page: https://github.com/klauspost/cpuid/releases
+
+### Homebrew
+
+For macOS/Linux users, you can install via [brew](https://brew.sh/)
+
+```sh
+$ brew install cpuid
+```
+
## example
```Go
@@ -39,10 +52,10 @@ func main() {
fmt.Println("ThreadsPerCore:", CPU.ThreadsPerCore)
fmt.Println("LogicalCores:", CPU.LogicalCores)
fmt.Println("Family", CPU.Family, "Model:", CPU.Model, "Vendor ID:", CPU.VendorID)
- fmt.Println("Features:", fmt.Sprintf(strings.Join(CPU.FeatureSet(), ",")))
+ fmt.Println("Features:", strings.Join(CPU.FeatureSet(), ","))
fmt.Println("Cacheline bytes:", CPU.CacheLine)
fmt.Println("L1 Data Cache:", CPU.Cache.L1D, "bytes")
- fmt.Println("L1 Instruction Cache:", CPU.Cache.L1D, "bytes")
+ fmt.Println("L1 Instruction Cache:", CPU.Cache.L1I, "bytes")
fmt.Println("L2 Cache:", CPU.Cache.L2, "bytes")
fmt.Println("L3 Cache:", CPU.Cache.L3, "bytes")
fmt.Println("Frequency", CPU.Hz, "hz")
@@ -77,10 +90,14 @@ We have Streaming SIMD 2 Extensions
The `cpuid.CPU` provides access to CPU features. Use `cpuid.CPU.Supports()` to check for CPU features.
A faster `cpuid.CPU.Has()` is provided which will usually be inlined by the gc compiler.
+To test a larger number of features, they can be combined using `f := CombineFeatures(CMOV, CMPXCHG8, X87, FXSR, MMX, SYSCALL, SSE, SSE2)`, etc.
+This can be using with `cpuid.CPU.HasAll(f)` to quickly test if all features are supported.
+
Note that for some cpu/os combinations some features will not be detected.
`amd64` has rather good support and should work reliably on all platforms.
-Note that hypervisors may not pass through all CPU features.
+Note that hypervisors may not pass through all CPU features through to the guest OS,
+so even if your host supports a feature it may not be visible on guests.
## arm64 feature detection
@@ -132,6 +149,345 @@ func main() {
}
```
+## commandline
+
+Download as binary from: https://github.com/klauspost/cpuid/releases
+
+Install from source:
+
+`go install github.com/klauspost/cpuid/v2/cmd/cpuid@latest`
+
+### Example
+
+```
+λ cpuid
+Name: AMD Ryzen 9 3950X 16-Core Processor
+Vendor String: AuthenticAMD
+Vendor ID: AMD
+PhysicalCores: 16
+Threads Per Core: 2
+Logical Cores: 32
+CPU Family 23 Model: 113
+Features: ADX,AESNI,AVX,AVX2,BMI1,BMI2,CLMUL,CLZERO,CMOV,CMPXCHG8,CPBOOST,CX16,F16C,FMA3,FXSR,FXSROPT,HTT,HYPERVISOR,LAHF,LZCNT,MCAOVERFLOW,MMX,MMXEXT,MOVBE,NX,OSXSAVE,POPCNT,RDRAND,RDSEED,RDTSCP,SCE,SHA,SSE,SSE2,SSE3,SSE4,SSE42,SSE4A,SSSE3,SUCCOR,X87,XSAVE
+Microarchitecture level: 3
+Cacheline bytes: 64
+L1 Instruction Cache: 32768 bytes
+L1 Data Cache: 32768 bytes
+L2 Cache: 524288 bytes
+L3 Cache: 16777216 bytes
+
+```
+### JSON Output:
+
+```
+λ cpuid --json
+{
+ "BrandName": "AMD Ryzen 9 3950X 16-Core Processor",
+ "VendorID": 2,
+ "VendorString": "AuthenticAMD",
+ "PhysicalCores": 16,
+ "ThreadsPerCore": 2,
+ "LogicalCores": 32,
+ "Family": 23,
+ "Model": 113,
+ "CacheLine": 64,
+ "Hz": 0,
+ "BoostFreq": 0,
+ "Cache": {
+ "L1I": 32768,
+ "L1D": 32768,
+ "L2": 524288,
+ "L3": 16777216
+ },
+ "SGX": {
+ "Available": false,
+ "LaunchControl": false,
+ "SGX1Supported": false,
+ "SGX2Supported": false,
+ "MaxEnclaveSizeNot64": 0,
+ "MaxEnclaveSize64": 0,
+ "EPCSections": null
+ },
+ "Features": [
+ "ADX",
+ "AESNI",
+ "AVX",
+ "AVX2",
+ "BMI1",
+ "BMI2",
+ "CLMUL",
+ "CLZERO",
+ "CMOV",
+ "CMPXCHG8",
+ "CPBOOST",
+ "CX16",
+ "F16C",
+ "FMA3",
+ "FXSR",
+ "FXSROPT",
+ "HTT",
+ "HYPERVISOR",
+ "LAHF",
+ "LZCNT",
+ "MCAOVERFLOW",
+ "MMX",
+ "MMXEXT",
+ "MOVBE",
+ "NX",
+ "OSXSAVE",
+ "POPCNT",
+ "RDRAND",
+ "RDSEED",
+ "RDTSCP",
+ "SCE",
+ "SHA",
+ "SSE",
+ "SSE2",
+ "SSE3",
+ "SSE4",
+ "SSE42",
+ "SSE4A",
+ "SSSE3",
+ "SUCCOR",
+ "X87",
+ "XSAVE"
+ ],
+ "X64Level": 3
+}
+```
+
+### Check CPU microarch level
+
+```
+λ cpuid --check-level=3
+2022/03/18 17:04:40 AMD Ryzen 9 3950X 16-Core Processor
+2022/03/18 17:04:40 Microarchitecture level 3 is supported. Max level is 3.
+Exit Code 0
+
+λ cpuid --check-level=4
+2022/03/18 17:06:18 AMD Ryzen 9 3950X 16-Core Processor
+2022/03/18 17:06:18 Microarchitecture level 4 not supported. Max level is 3.
+Exit Code 1
+```
+
+
+## Available flags
+
+### x86 & amd64
+
+| Feature Flag | Description |
+|--------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| ADX | Intel ADX (Multi-Precision Add-Carry Instruction Extensions) |
+| AESNI | Advanced Encryption Standard New Instructions |
+| AMD3DNOW | AMD 3DNOW |
+| AMD3DNOWEXT | AMD 3DNowExt |
+| AMXBF16 | Tile computational operations on BFLOAT16 numbers |
+| AMXINT8 | Tile computational operations on 8-bit integers |
+| AMXFP16 | Tile computational operations on FP16 numbers |
+| AMXTILE | Tile architecture |
+| AVX | AVX functions |
+| AVX2 | AVX2 functions |
+| AVX512BF16 | AVX-512 BFLOAT16 Instructions |
+| AVX512BITALG | AVX-512 Bit Algorithms |
+| AVX512BW | AVX-512 Byte and Word Instructions |
+| AVX512CD | AVX-512 Conflict Detection Instructions |
+| AVX512DQ | AVX-512 Doubleword and Quadword Instructions |
+| AVX512ER | AVX-512 Exponential and Reciprocal Instructions |
+| AVX512F | AVX-512 Foundation |
+| AVX512FP16 | AVX-512 FP16 Instructions |
+| AVX512IFMA | AVX-512 Integer Fused Multiply-Add Instructions |
+| AVX512PF | AVX-512 Prefetch Instructions |
+| AVX512VBMI | AVX-512 Vector Bit Manipulation Instructions |
+| AVX512VBMI2 | AVX-512 Vector Bit Manipulation Instructions, Version 2 |
+| AVX512VL | AVX-512 Vector Length Extensions |
+| AVX512VNNI | AVX-512 Vector Neural Network Instructions |
+| AVX512VP2INTERSECT | AVX-512 Intersect for D/Q |
+| AVX512VPOPCNTDQ | AVX-512 Vector Population Count Doubleword and Quadword |
+| AVXIFMA | AVX-IFMA instructions |
+| AVXNECONVERT | AVX-NE-CONVERT instructions |
+| AVXSLOW | Indicates the CPU performs 2 128 bit operations instead of one |
+| AVXVNNI | AVX (VEX encoded) VNNI neural network instructions |
+| AVXVNNIINT8 | AVX-VNNI-INT8 instructions |
+| BHI_CTRL | Branch History Injection and Intra-mode Branch Target Injection / CVE-2022-0001, CVE-2022-0002 / INTEL-SA-00598 |
+| BMI1 | Bit Manipulation Instruction Set 1 |
+| BMI2 | Bit Manipulation Instruction Set 2 |
+| CETIBT | Intel CET Indirect Branch Tracking |
+| CETSS | Intel CET Shadow Stack |
+| CLDEMOTE | Cache Line Demote |
+| CLMUL | Carry-less Multiplication |
+| CLZERO | CLZERO instruction supported |
+| CMOV | i686 CMOV |
+| CMPCCXADD | CMPCCXADD instructions |
+| CMPSB_SCADBS_SHORT | Fast short CMPSB and SCASB |
+| CMPXCHG8 | CMPXCHG8 instruction |
+| CPBOOST | Core Performance Boost |
+| CPPC | AMD: Collaborative Processor Performance Control |
+| CX16 | CMPXCHG16B Instruction |
+| EFER_LMSLE_UNS | AMD: =Core::X86::Msr::EFER[LMSLE] is not supported, and MBZ |
+| ENQCMD | Enqueue Command |
+| ERMS | Enhanced REP MOVSB/STOSB |
+| F16C | Half-precision floating-point conversion |
+| FLUSH_L1D | Flush L1D cache |
+| FMA3 | Intel FMA 3. Does not imply AVX. |
+| FMA4 | Bulldozer FMA4 functions |
+| FP128 | AMD: When set, the internal FP/SIMD execution datapath is 128-bits wide |
+| FP256 | AMD: When set, the internal FP/SIMD execution datapath is 256-bits wide |
+| FSRM | Fast Short Rep Mov |
+| FXSR | FXSAVE, FXRESTOR instructions, CR4 bit 9 |
+| FXSROPT | FXSAVE/FXRSTOR optimizations |
+| GFNI | Galois Field New Instructions. May require other features (AVX, AVX512VL,AVX512F) based on usage. |
+| HLE | Hardware Lock Elision |
+| HRESET | If set CPU supports history reset and the IA32_HRESET_ENABLE MSR |
+| HTT | Hyperthreading (enabled) |
+| HWA | Hardware assert supported. Indicates support for MSRC001_10 |
+| HYBRID_CPU | This part has CPUs of more than one type. |
+| HYPERVISOR | This bit has been reserved by Intel & AMD for use by hypervisors |
+| IA32_ARCH_CAP | IA32_ARCH_CAPABILITIES MSR (Intel) |
+| IA32_CORE_CAP | IA32_CORE_CAPABILITIES MSR |
+| IBPB | Indirect Branch Restricted Speculation (IBRS) and Indirect Branch Predictor Barrier (IBPB) |
+| IBRS | AMD: Indirect Branch Restricted Speculation |
+| IBRS_PREFERRED | AMD: IBRS is preferred over software solution |
+| IBRS_PROVIDES_SMP | AMD: IBRS provides Same Mode Protection |
+| IBS | Instruction Based Sampling (AMD) |
+| IBSBRNTRGT | Instruction Based Sampling Feature (AMD) |
+| IBSFETCHSAM | Instruction Based Sampling Feature (AMD) |
+| IBSFFV | Instruction Based Sampling Feature (AMD) |
+| IBSOPCNT | Instruction Based Sampling Feature (AMD) |
+| IBSOPCNTEXT | Instruction Based Sampling Feature (AMD) |
+| IBSOPSAM | Instruction Based Sampling Feature (AMD) |
+| IBSRDWROPCNT | Instruction Based Sampling Feature (AMD) |
+| IBSRIPINVALIDCHK | Instruction Based Sampling Feature (AMD) |
+| IBS_FETCH_CTLX | AMD: IBS fetch control extended MSR supported |
+| IBS_OPDATA4 | AMD: IBS op data 4 MSR supported |
+| IBS_OPFUSE | AMD: Indicates support for IbsOpFuse |
+| IBS_PREVENTHOST | Disallowing IBS use by the host supported |
+| IBS_ZEN4 | Fetch and Op IBS support IBS extensions added with Zen4 |
+| IDPRED_CTRL | IPRED_DIS |
+| INT_WBINVD | WBINVD/WBNOINVD are interruptible. |
+| INVLPGB | NVLPGB and TLBSYNC instruction supported |
+| LAHF | LAHF/SAHF in long mode |
+| LAM | If set, CPU supports Linear Address Masking |
+| LBRVIRT | LBR virtualization |
+| LZCNT | LZCNT instruction |
+| MCAOVERFLOW | MCA overflow recovery support. |
+| MCDT_NO | Processor do not exhibit MXCSR Configuration Dependent Timing behavior and do not need to mitigate it. |
+| MCOMMIT | MCOMMIT instruction supported |
+| MD_CLEAR | VERW clears CPU buffers |
+| MMX | standard MMX |
+| MMXEXT | SSE integer functions or AMD MMX ext |
+| MOVBE | MOVBE instruction (big-endian) |
+| MOVDIR64B | Move 64 Bytes as Direct Store |
+| MOVDIRI | Move Doubleword as Direct Store |
+| MOVSB_ZL | Fast Zero-Length MOVSB |
+| MPX | Intel MPX (Memory Protection Extensions) |
+| MOVU | MOVU SSE instructions are more efficient and should be preferred to SSE MOVL/MOVH. MOVUPS is more efficient than MOVLPS/MOVHPS. MOVUPD is more efficient than MOVLPD/MOVHPD |
+| MSRIRC | Instruction Retired Counter MSR available |
+| MSRLIST | Read/Write List of Model Specific Registers |
+| MSR_PAGEFLUSH | Page Flush MSR available |
+| NRIPS | Indicates support for NRIP save on VMEXIT |
+| NX | NX (No-Execute) bit |
+| OSXSAVE | XSAVE enabled by OS |
+| PCONFIG | PCONFIG for Intel Multi-Key Total Memory Encryption |
+| POPCNT | POPCNT instruction |
+| PPIN | AMD: Protected Processor Inventory Number support. Indicates that Protected Processor Inventory Number (PPIN) capability can be enabled |
+| PREFETCHI | PREFETCHIT0/1 instructions |
+| PSFD | Predictive Store Forward Disable |
+| RDPRU | RDPRU instruction supported |
+| RDRAND | RDRAND instruction is available |
+| RDSEED | RDSEED instruction is available |
+| RDTSCP | RDTSCP Instruction |
+| RRSBA_CTRL | Restricted RSB Alternate |
+| RTM | Restricted Transactional Memory |
+| RTM_ALWAYS_ABORT | Indicates that the loaded microcode is forcing RTM abort. |
+| SERIALIZE | Serialize Instruction Execution |
+| SEV | AMD Secure Encrypted Virtualization supported |
+| SEV_64BIT | AMD SEV guest execution only allowed from a 64-bit host |
+| SEV_ALTERNATIVE | AMD SEV Alternate Injection supported |
+| SEV_DEBUGSWAP | Full debug state swap supported for SEV-ES guests |
+| SEV_ES | AMD SEV Encrypted State supported |
+| SEV_RESTRICTED | AMD SEV Restricted Injection supported |
+| SEV_SNP | AMD SEV Secure Nested Paging supported |
+| SGX | Software Guard Extensions |
+| SGXLC | Software Guard Extensions Launch Control |
+| SHA | Intel SHA Extensions |
+| SME | AMD Secure Memory Encryption supported |
+| SME_COHERENT | AMD Hardware cache coherency across encryption domains enforced |
+| SPEC_CTRL_SSBD | Speculative Store Bypass Disable |
+| SRBDS_CTRL | SRBDS mitigation MSR available |
+| SSE | SSE functions |
+| SSE2 | P4 SSE functions |
+| SSE3 | Prescott SSE3 functions |
+| SSE4 | Penryn SSE4.1 functions |
+| SSE42 | Nehalem SSE4.2 functions |
+| SSE4A | AMD Barcelona microarchitecture SSE4a instructions |
+| SSSE3 | Conroe SSSE3 functions |
+| STIBP | Single Thread Indirect Branch Predictors |
+| STIBP_ALWAYSON | AMD: Single Thread Indirect Branch Prediction Mode has Enhanced Performance and may be left Always On |
+| STOSB_SHORT | Fast short STOSB |
+| SUCCOR | Software uncorrectable error containment and recovery capability. |
+| SVM | AMD Secure Virtual Machine |
+| SVMDA | Indicates support for the SVM decode assists. |
+| SVMFBASID | SVM, Indicates that TLB flush events, including CR3 writes and CR4.PGE toggles, flush only the current ASID's TLB entries. Also indicates support for the extended VMCBTLB_Control |
+| SVML | AMD SVM lock. Indicates support for SVM-Lock. |
+| SVMNP | AMD SVM nested paging |
+| SVMPF | SVM pause intercept filter. Indicates support for the pause intercept filter |
+| SVMPFT | SVM PAUSE filter threshold. Indicates support for the PAUSE filter cycle count threshold |
+| SYSCALL | System-Call Extension (SCE): SYSCALL and SYSRET instructions. |
+| SYSEE | SYSENTER and SYSEXIT instructions |
+| TBM | AMD Trailing Bit Manipulation |
+| TDX_GUEST | Intel Trust Domain Extensions Guest |
+| TLB_FLUSH_NESTED | AMD: Flushing includes all the nested translations for guest translations |
+| TME | Intel Total Memory Encryption. The following MSRs are supported: IA32_TME_CAPABILITY, IA32_TME_ACTIVATE, IA32_TME_EXCLUDE_MASK, and IA32_TME_EXCLUDE_BASE. |
+| TOPEXT | TopologyExtensions: topology extensions support. Indicates support for CPUID Fn8000_001D_EAX_x[N:0]-CPUID Fn8000_001E_EDX. |
+| TSCRATEMSR | MSR based TSC rate control. Indicates support for MSR TSC ratio MSRC000_0104 |
+| TSXLDTRK | Intel TSX Suspend Load Address Tracking |
+| VAES | Vector AES. AVX(512) versions requires additional checks. |
+| VMCBCLEAN | VMCB clean bits. Indicates support for VMCB clean bits. |
+| VMPL | AMD VM Permission Levels supported |
+| VMSA_REGPROT | AMD VMSA Register Protection supported |
+| VMX | Virtual Machine Extensions |
+| VPCLMULQDQ | Carry-Less Multiplication Quadword. Requires AVX for 3 register versions. |
+| VTE | AMD Virtual Transparent Encryption supported |
+| WAITPKG | TPAUSE, UMONITOR, UMWAIT |
+| WBNOINVD | Write Back and Do Not Invalidate Cache |
+| WRMSRNS | Non-Serializing Write to Model Specific Register |
+| X87 | FPU |
+| XGETBV1 | Supports XGETBV with ECX = 1 |
+| XOP | Bulldozer XOP functions |
+| XSAVE | XSAVE, XRESTOR, XSETBV, XGETBV |
+| XSAVEC | Supports XSAVEC and the compacted form of XRSTOR. |
+| XSAVEOPT | XSAVEOPT available |
+| XSAVES | Supports XSAVES/XRSTORS and IA32_XSS |
+
+# ARM features:
+
+| Feature Flag | Description |
+|--------------|------------------------------------------------------------------|
+| AESARM | AES instructions |
+| ARMCPUID | Some CPU ID registers readable at user-level |
+| ASIMD | Advanced SIMD |
+| ASIMDDP | SIMD Dot Product |
+| ASIMDHP | Advanced SIMD half-precision floating point |
+| ASIMDRDM | Rounding Double Multiply Accumulate/Subtract (SQRDMLAH/SQRDMLSH) |
+| ATOMICS | Large System Extensions (LSE) |
+| CRC32 | CRC32/CRC32C instructions |
+| DCPOP | Data cache clean to Point of Persistence (DC CVAP) |
+| EVTSTRM | Generic timer |
+| FCMA | Floatin point complex number addition and multiplication |
+| FP | Single-precision and double-precision floating point |
+| FPHP | Half-precision floating point |
+| GPA | Generic Pointer Authentication |
+| JSCVT | Javascript-style double->int convert (FJCVTZS) |
+| LRCPC | Weaker release consistency (LDAPR, etc) |
+| PMULL | Polynomial Multiply instructions (PMULL/PMULL2) |
+| SHA1 | SHA-1 instructions (SHA1C, etc) |
+| SHA2 | SHA-2 instructions (SHA256H, etc) |
+| SHA3 | SHA-3 instructions (EOR3, RAXI, XAR, BCAX) |
+| SHA512 | SHA512 instructions |
+| SM3 | SM3 instructions |
+| SM4 | SM4 instructions |
+| SVE | Scalable Vector Extension |
+
# license
This code is published under an MIT license. See LICENSE file for more information.
diff --git a/vendor/github.com/klauspost/cpuid/v2/cpuid.go b/vendor/github.com/klauspost/cpuid/v2/cpuid.go
index 1d88736b..d015c744 100644
--- a/vendor/github.com/klauspost/cpuid/v2/cpuid.go
+++ b/vendor/github.com/klauspost/cpuid/v2/cpuid.go
@@ -14,6 +14,7 @@ import (
"flag"
"fmt"
"math"
+ "math/bits"
"os"
"runtime"
"strings"
@@ -72,6 +73,7 @@ const (
AMD3DNOW // AMD 3DNOW
AMD3DNOWEXT // AMD 3DNowExt
AMXBF16 // Tile computational operations on BFLOAT16 numbers
+ AMXFP16 // Tile computational operations on FP16 numbers
AMXINT8 // Tile computational operations on 8-bit integers
AMXTILE // Tile architecture
AVX // AVX functions
@@ -92,26 +94,51 @@ const (
AVX512VNNI // AVX-512 Vector Neural Network Instructions
AVX512VP2INTERSECT // AVX-512 Intersect for D/Q
AVX512VPOPCNTDQ // AVX-512 Vector Population Count Doubleword and Quadword
- AVXSLOW // Indicates the CPU performs 2 128 bit operations instead of one.
+ AVXIFMA // AVX-IFMA instructions
+ AVXNECONVERT // AVX-NE-CONVERT instructions
+ AVXSLOW // Indicates the CPU performs 2 128 bit operations instead of one
+ AVXVNNI // AVX (VEX encoded) VNNI neural network instructions
+ AVXVNNIINT8 // AVX-VNNI-INT8 instructions
+ BHI_CTRL // Branch History Injection and Intra-mode Branch Target Injection / CVE-2022-0001, CVE-2022-0002 / INTEL-SA-00598
BMI1 // Bit Manipulation Instruction Set 1
BMI2 // Bit Manipulation Instruction Set 2
+ CETIBT // Intel CET Indirect Branch Tracking
+ CETSS // Intel CET Shadow Stack
CLDEMOTE // Cache Line Demote
CLMUL // Carry-less Multiplication
CLZERO // CLZERO instruction supported
CMOV // i686 CMOV
+ CMPCCXADD // CMPCCXADD instructions
+ CMPSB_SCADBS_SHORT // Fast short CMPSB and SCASB
+ CMPXCHG8 // CMPXCHG8 instruction
CPBOOST // Core Performance Boost
+ CPPC // AMD: Collaborative Processor Performance Control
CX16 // CMPXCHG16B Instruction
+ EFER_LMSLE_UNS // AMD: =Core::X86::Msr::EFER[LMSLE] is not supported, and MBZ
ENQCMD // Enqueue Command
ERMS // Enhanced REP MOVSB/STOSB
F16C // Half-precision floating-point conversion
+ FLUSH_L1D // Flush L1D cache
FMA3 // Intel FMA 3. Does not imply AVX.
FMA4 // Bulldozer FMA4 functions
- GFNI // Galois Field New Instructions
+ FP128 // AMD: When set, the internal FP/SIMD execution datapath is no more than 128-bits wide
+ FP256 // AMD: When set, the internal FP/SIMD execution datapath is no more than 256-bits wide
+ FSRM // Fast Short Rep Mov
+ FXSR // FXSAVE, FXRESTOR instructions, CR4 bit 9
+ FXSROPT // FXSAVE/FXRSTOR optimizations
+ GFNI // Galois Field New Instructions. May require other features (AVX, AVX512VL,AVX512F) based on usage.
HLE // Hardware Lock Elision
+ HRESET // If set CPU supports history reset and the IA32_HRESET_ENABLE MSR
HTT // Hyperthreading (enabled)
HWA // Hardware assert supported. Indicates support for MSRC001_10
+ HYBRID_CPU // This part has CPUs of more than one type.
HYPERVISOR // This bit has been reserved by Intel & AMD for use by hypervisors
+ IA32_ARCH_CAP // IA32_ARCH_CAPABILITIES MSR (Intel)
+ IA32_CORE_CAP // IA32_CORE_CAPABILITIES MSR
IBPB // Indirect Branch Restricted Speculation (IBRS) and Indirect Branch Predictor Barrier (IBPB)
+ IBRS // AMD: Indirect Branch Restricted Speculation
+ IBRS_PREFERRED // AMD: IBRS is preferred over software solution
+ IBRS_PROVIDES_SMP // AMD: IBRS provides Same Mode Protection
IBS // Instruction Based Sampling (AMD)
IBSBRNTRGT // Instruction Based Sampling Feature (AMD)
IBSFETCHSAM // Instruction Based Sampling Feature (AMD)
@@ -121,29 +148,63 @@ const (
IBSOPSAM // Instruction Based Sampling Feature (AMD)
IBSRDWROPCNT // Instruction Based Sampling Feature (AMD)
IBSRIPINVALIDCHK // Instruction Based Sampling Feature (AMD)
+ IBS_FETCH_CTLX // AMD: IBS fetch control extended MSR supported
+ IBS_OPDATA4 // AMD: IBS op data 4 MSR supported
+ IBS_OPFUSE // AMD: Indicates support for IbsOpFuse
+ IBS_PREVENTHOST // Disallowing IBS use by the host supported
+ IBS_ZEN4 // AMD: Fetch and Op IBS support IBS extensions added with Zen4
+ IDPRED_CTRL // IPRED_DIS
INT_WBINVD // WBINVD/WBNOINVD are interruptible.
INVLPGB // NVLPGB and TLBSYNC instruction supported
+ LAHF // LAHF/SAHF in long mode
+ LAM // If set, CPU supports Linear Address Masking
+ LBRVIRT // LBR virtualization
LZCNT // LZCNT instruction
MCAOVERFLOW // MCA overflow recovery support.
+ MCDT_NO // Processor do not exhibit MXCSR Configuration Dependent Timing behavior and do not need to mitigate it.
MCOMMIT // MCOMMIT instruction supported
+ MD_CLEAR // VERW clears CPU buffers
MMX // standard MMX
MMXEXT // SSE integer functions or AMD MMX ext
+ MOVBE // MOVBE instruction (big-endian)
MOVDIR64B // Move 64 Bytes as Direct Store
MOVDIRI // Move Doubleword as Direct Store
+ MOVSB_ZL // Fast Zero-Length MOVSB
+ MOVU // AMD: MOVU SSE instructions are more efficient and should be preferred to SSE MOVL/MOVH. MOVUPS is more efficient than MOVLPS/MOVHPS. MOVUPD is more efficient than MOVLPD/MOVHPD
MPX // Intel MPX (Memory Protection Extensions)
MSRIRC // Instruction Retired Counter MSR available
+ MSRLIST // Read/Write List of Model Specific Registers
+ MSR_PAGEFLUSH // Page Flush MSR available
+ NRIPS // Indicates support for NRIP save on VMEXIT
NX // NX (No-Execute) bit
+ OSXSAVE // XSAVE enabled by OS
+ PCONFIG // PCONFIG for Intel Multi-Key Total Memory Encryption
POPCNT // POPCNT instruction
+ PPIN // AMD: Protected Processor Inventory Number support. Indicates that Protected Processor Inventory Number (PPIN) capability can be enabled
+ PREFETCHI // PREFETCHIT0/1 instructions
+ PSFD // Predictive Store Forward Disable
RDPRU // RDPRU instruction supported
RDRAND // RDRAND instruction is available
RDSEED // RDSEED instruction is available
RDTSCP // RDTSCP Instruction
+ RRSBA_CTRL // Restricted RSB Alternate
RTM // Restricted Transactional Memory
RTM_ALWAYS_ABORT // Indicates that the loaded microcode is forcing RTM abort.
SERIALIZE // Serialize Instruction Execution
+ SEV // AMD Secure Encrypted Virtualization supported
+ SEV_64BIT // AMD SEV guest execution only allowed from a 64-bit host
+ SEV_ALTERNATIVE // AMD SEV Alternate Injection supported
+ SEV_DEBUGSWAP // Full debug state swap supported for SEV-ES guests
+ SEV_ES // AMD SEV Encrypted State supported
+ SEV_RESTRICTED // AMD SEV Restricted Injection supported
+ SEV_SNP // AMD SEV Secure Nested Paging supported
SGX // Software Guard Extensions
SGXLC // Software Guard Extensions Launch Control
SHA // Intel SHA Extensions
+ SME // AMD Secure Memory Encryption supported
+ SME_COHERENT // AMD Hardware cache coherency across encryption domains enforced
+ SPEC_CTRL_SSBD // Speculative Store Bypass Disable
+ SRBDS_CTRL // SRBDS mitigation MSR available
SSE // SSE functions
SSE2 // P4 SSE functions
SSE3 // Prescott SSE3 functions
@@ -152,15 +213,42 @@ const (
SSE4A // AMD Barcelona microarchitecture SSE4a instructions
SSSE3 // Conroe SSSE3 functions
STIBP // Single Thread Indirect Branch Predictors
+ STIBP_ALWAYSON // AMD: Single Thread Indirect Branch Prediction Mode has Enhanced Performance and may be left Always On
+ STOSB_SHORT // Fast short STOSB
SUCCOR // Software uncorrectable error containment and recovery capability.
+ SVM // AMD Secure Virtual Machine
+ SVMDA // Indicates support for the SVM decode assists.
+ SVMFBASID // SVM, Indicates that TLB flush events, including CR3 writes and CR4.PGE toggles, flush only the current ASID's TLB entries. Also indicates support for the extended VMCBTLB_Control
+ SVML // AMD SVM lock. Indicates support for SVM-Lock.
+ SVMNP // AMD SVM nested paging
+ SVMPF // SVM pause intercept filter. Indicates support for the pause intercept filter
+ SVMPFT // SVM PAUSE filter threshold. Indicates support for the PAUSE filter cycle count threshold
+ SYSCALL // System-Call Extension (SCE): SYSCALL and SYSRET instructions.
+ SYSEE // SYSENTER and SYSEXIT instructions
TBM // AMD Trailing Bit Manipulation
+ TDX_GUEST // Intel Trust Domain Extensions Guest
+ TLB_FLUSH_NESTED // AMD: Flushing includes all the nested translations for guest translations
+ TME // Intel Total Memory Encryption. The following MSRs are supported: IA32_TME_CAPABILITY, IA32_TME_ACTIVATE, IA32_TME_EXCLUDE_MASK, and IA32_TME_EXCLUDE_BASE.
+ TOPEXT // TopologyExtensions: topology extensions support. Indicates support for CPUID Fn8000_001D_EAX_x[N:0]-CPUID Fn8000_001E_EDX.
+ TSCRATEMSR // MSR based TSC rate control. Indicates support for MSR TSC ratio MSRC000_0104
TSXLDTRK // Intel TSX Suspend Load Address Tracking
- VAES // Vector AES
+ VAES // Vector AES. AVX(512) versions requires additional checks.
+ VMCBCLEAN // VMCB clean bits. Indicates support for VMCB clean bits.
+ VMPL // AMD VM Permission Levels supported
+ VMSA_REGPROT // AMD VMSA Register Protection supported
VMX // Virtual Machine Extensions
- VPCLMULQDQ // Carry-Less Multiplication Quadword
+ VPCLMULQDQ // Carry-Less Multiplication Quadword. Requires AVX for 3 register versions.
+ VTE // AMD Virtual Transparent Encryption supported
WAITPKG // TPAUSE, UMONITOR, UMWAIT
WBNOINVD // Write Back and Do Not Invalidate Cache
+ WRMSRNS // Non-Serializing Write to Model Specific Register
+ X87 // FPU
+ XGETBV1 // Supports XGETBV with ECX = 1
XOP // Bulldozer XOP functions
+ XSAVE // XSAVE, XRESTOR, XSETBV, XGETBV
+ XSAVEC // Supports XSAVEC and the compacted form of XRSTOR.
+ XSAVEOPT // XSAVEOPT available
+ XSAVES // Supports XSAVES/XRSTORS and IA32_XSS
// ARM features:
AESARM // AES instructions
@@ -187,7 +275,6 @@ const (
SM3 // SM3 instructions
SM4 // SM4 instructions
SVE // Scalable Vector Extension
-
// Keep it last. It automatically defines the size of []flagSet
lastID
@@ -205,6 +292,7 @@ type CPUInfo struct {
LogicalCores int // Number of physical cores times threads that can run on each core through the use of hyperthreading. Will be 0 if undetectable.
Family int // CPU family number
Model int // CPU model number
+ Stepping int // CPU stepping info
CacheLine int // Cache line size in bytes. Will be 0 if undetectable.
Hz int64 // Clock speed, if known, 0 otherwise. Will attempt to contain base clock speed.
BoostFreq int64 // Max clock speed, if known, 0 otherwise
@@ -307,10 +395,66 @@ func (c CPUInfo) Supports(ids ...FeatureID) bool {
// Has allows for checking a single feature.
// Should be inlined by the compiler.
-func (c CPUInfo) Has(id FeatureID) bool {
+func (c *CPUInfo) Has(id FeatureID) bool {
return c.featureSet.inSet(id)
}
+// AnyOf returns whether the CPU supports one or more of the requested features.
+func (c CPUInfo) AnyOf(ids ...FeatureID) bool {
+ for _, id := range ids {
+ if c.featureSet.inSet(id) {
+ return true
+ }
+ }
+ return false
+}
+
+// Features contains several features combined for a fast check using
+// CpuInfo.HasAll
+type Features *flagSet
+
+// CombineFeatures allows to combine several features for a close to constant time lookup.
+func CombineFeatures(ids ...FeatureID) Features {
+ var v flagSet
+ for _, id := range ids {
+ v.set(id)
+ }
+ return &v
+}
+
+func (c *CPUInfo) HasAll(f Features) bool {
+ return c.featureSet.hasSetP(f)
+}
+
+// https://en.wikipedia.org/wiki/X86-64#Microarchitecture_levels
+var oneOfLevel = CombineFeatures(SYSEE, SYSCALL)
+var level1Features = CombineFeatures(CMOV, CMPXCHG8, X87, FXSR, MMX, SSE, SSE2)
+var level2Features = CombineFeatures(CMOV, CMPXCHG8, X87, FXSR, MMX, SSE, SSE2, CX16, LAHF, POPCNT, SSE3, SSE4, SSE42, SSSE3)
+var level3Features = CombineFeatures(CMOV, CMPXCHG8, X87, FXSR, MMX, SSE, SSE2, CX16, LAHF, POPCNT, SSE3, SSE4, SSE42, SSSE3, AVX, AVX2, BMI1, BMI2, F16C, FMA3, LZCNT, MOVBE, OSXSAVE)
+var level4Features = CombineFeatures(CMOV, CMPXCHG8, X87, FXSR, MMX, SSE, SSE2, CX16, LAHF, POPCNT, SSE3, SSE4, SSE42, SSSE3, AVX, AVX2, BMI1, BMI2, F16C, FMA3, LZCNT, MOVBE, OSXSAVE, AVX512F, AVX512BW, AVX512CD, AVX512DQ, AVX512VL)
+
+// X64Level returns the microarchitecture level detected on the CPU.
+// If features are lacking or non x64 mode, 0 is returned.
+// See https://en.wikipedia.org/wiki/X86-64#Microarchitecture_levels
+func (c CPUInfo) X64Level() int {
+ if !c.featureSet.hasOneOf(oneOfLevel) {
+ return 0
+ }
+ if c.featureSet.hasSetP(level4Features) {
+ return 4
+ }
+ if c.featureSet.hasSetP(level3Features) {
+ return 3
+ }
+ if c.featureSet.hasSetP(level2Features) {
+ return 2
+ }
+ if c.featureSet.hasSetP(level1Features) {
+ return 1
+ }
+ return 0
+}
+
// Disable will disable one or several features.
func (c *CPUInfo) Disable(ids ...FeatureID) bool {
for _, id := range ids {
@@ -333,11 +477,10 @@ func (c CPUInfo) IsVendor(v Vendor) bool {
return c.VendorID == v
}
+// FeatureSet returns all available features as strings.
func (c CPUInfo) FeatureSet() []string {
- s := make([]string, 0)
- for _, f := range c.featureSet.Strings() {
- s = append(s, f)
- }
+ s := make([]string, 0, c.featureSet.nEnabled())
+ s = append(s, c.featureSet.Strings()...)
return s
}
@@ -470,7 +613,7 @@ const flagMask = flagBits - 1
// flagSet contains detected cpu features and characteristics in an array of flags
type flagSet [(lastID + flagMask) / flagBits]flags
-func (s flagSet) inSet(feat FeatureID) bool {
+func (s *flagSet) inSet(feat FeatureID) bool {
return s[feat>>flagBitsLog2]&(1<<(feat&flagMask)) != 0
}
@@ -499,6 +642,52 @@ func (s *flagSet) or(other flagSet) {
}
}
+// hasSet returns whether all features are present.
+func (s *flagSet) hasSet(other flagSet) bool {
+ for i, v := range other[:] {
+ if s[i]&v != v {
+ return false
+ }
+ }
+ return true
+}
+
+// hasSet returns whether all features are present.
+func (s *flagSet) hasSetP(other *flagSet) bool {
+ for i, v := range other[:] {
+ if s[i]&v != v {
+ return false
+ }
+ }
+ return true
+}
+
+// hasOneOf returns whether one or more features are present.
+func (s *flagSet) hasOneOf(other *flagSet) bool {
+ for i, v := range other[:] {
+ if s[i]&v != 0 {
+ return true
+ }
+ }
+ return false
+}
+
+// nEnabled will return the number of enabled flags.
+func (s *flagSet) nEnabled() (n int) {
+ for _, v := range s[:] {
+ n += bits.OnesCount64(uint64(v))
+ }
+ return n
+}
+
+func flagSetWith(feat ...FeatureID) flagSet {
+ var res flagSet
+ for _, f := range feat {
+ res.set(f)
+ }
+ return res
+}
+
// ParseFeature will parse the string and return the ID of the matching feature.
// Will return UNKNOWN if not found.
func ParseFeature(s string) FeatureID {
@@ -579,7 +768,7 @@ func threadsPerCore() int {
if vend == AMD {
// Workaround for AMD returning 0, assume 2 if >= Zen 2
// It will be more correct than not.
- fam, _ := familyModel()
+ fam, _, _ := familyModel()
_, _, _, d := cpuid(1)
if (d&(1<<28)) != 0 && fam >= 23 {
return 2
@@ -617,14 +806,27 @@ func logicalCores() int {
}
}
-func familyModel() (int, int) {
+func familyModel() (family, model, stepping int) {
if maxFunctionID() < 0x1 {
- return 0, 0
+ return 0, 0, 0
}
eax, _, _, _ := cpuid(1)
- family := ((eax >> 8) & 0xf) + ((eax >> 20) & 0xff)
- model := ((eax >> 4) & 0xf) + ((eax >> 12) & 0xf0)
- return int(family), int(model)
+ // If BaseFamily[3:0] is less than Fh then ExtendedFamily[7:0] is reserved and Family is equal to BaseFamily[3:0].
+ family = int((eax >> 8) & 0xf)
+ extFam := family == 0x6 // Intel is 0x6, needs extended model.
+ if family == 0xf {
+ // Add ExtFamily
+ family += int((eax >> 20) & 0xff)
+ extFam = true
+ }
+ // If BaseFamily[3:0] is less than 0Fh then ExtendedModel[3:0] is reserved and Model is equal to BaseModel[3:0].
+ model = int((eax >> 4) & 0xf)
+ if extFam {
+ // Add ExtModel
+ model += int((eax >> 12) & 0xf0)
+ }
+ stepping = int(eax & 0xf)
+ return family, model, stepping
}
func physicalCores() int {
@@ -708,6 +910,7 @@ func (c *CPUInfo) cacheSize() {
if maxFunctionID() < 4 {
return
}
+ c.Cache.L1I, c.Cache.L1D, c.Cache.L2, c.Cache.L3 = 0, 0, 0, 0
for i := uint32(0); ; i++ {
eax, ebx, ecx, _ := cpuidex(4, i)
cacheType := eax & 15
@@ -758,9 +961,14 @@ func (c *CPUInfo) cacheSize() {
c.Cache.L2 = int(((ecx >> 16) & 0xFFFF) * 1024)
// CPUID Fn8000_001D_EAX_x[N:0] Cache Properties
- if maxExtendedFunction() < 0x8000001D {
+ if maxExtendedFunction() < 0x8000001D || !c.Has(TOPEXT) {
return
}
+
+ // Xen Hypervisor is buggy and returns the same entry no matter ECX value.
+ // Hack: When we encounter the same entry 100 times we break.
+ nSame := 0
+ var last uint32
for i := uint32(0); i < math.MaxUint32; i++ {
eax, ebx, ecx, _ := cpuidex(0x8000001D, i)
@@ -776,6 +984,16 @@ func (c *CPUInfo) cacheSize() {
return
}
+ // Check for the same value repeated.
+ comb := eax ^ ebx ^ ecx
+ if comb == last {
+ nSame++
+ if nSame == 100 {
+ return
+ }
+ }
+ last = comb
+
switch level {
case 1:
switch typ {
@@ -800,8 +1018,6 @@ func (c *CPUInfo) cacheSize() {
}
}
}
-
- return
}
type SGXEPCSection struct {
@@ -862,21 +1078,26 @@ func support() flagSet {
if mfi < 0x1 {
return fs
}
- family, model := familyModel()
+ family, model, _ := familyModel()
_, _, c, d := cpuid(1)
+ fs.setIf((d&(1<<0)) != 0, X87)
+ fs.setIf((d&(1<<8)) != 0, CMPXCHG8)
+ fs.setIf((d&(1<<11)) != 0, SYSEE)
fs.setIf((d&(1<<15)) != 0, CMOV)
fs.setIf((d&(1<<23)) != 0, MMX)
- fs.setIf((d&(1<<25)) != 0, MMXEXT)
+ fs.setIf((d&(1<<24)) != 0, FXSR)
+ fs.setIf((d&(1<<25)) != 0, FXSROPT)
fs.setIf((d&(1<<25)) != 0, SSE)
fs.setIf((d&(1<<26)) != 0, SSE2)
fs.setIf((c&1) != 0, SSE3)
fs.setIf((c&(1<<5)) != 0, VMX)
- fs.setIf((c&0x00000200) != 0, SSSE3)
- fs.setIf((c&0x00080000) != 0, SSE4)
- fs.setIf((c&0x00100000) != 0, SSE42)
+ fs.setIf((c&(1<<9)) != 0, SSSE3)
+ fs.setIf((c&(1<<19)) != 0, SSE4)
+ fs.setIf((c&(1<<20)) != 0, SSE42)
fs.setIf((c&(1<<25)) != 0, AESNI)
fs.setIf((c&(1<<1)) != 0, CLMUL)
+ fs.setIf(c&(1<<22) != 0, MOVBE)
fs.setIf(c&(1<<23) != 0, POPCNT)
fs.setIf(c&(1<<30) != 0, RDRAND)
@@ -892,6 +1113,8 @@ func support() flagSet {
if vend == AMD && (d&(1<<28)) != 0 && mfi >= 4 {
fs.setIf(threadsPerCore() > 1, HTT)
}
+ fs.setIf(c&1<<26 != 0, XSAVE)
+ fs.setIf(c&1<<27 != 0, OSXSAVE)
// Check XGETBV/XSAVE (26), OXSAVE (27) and AVX (28) bits
const avxCheck = 1<<26 | 1<<27 | 1<<28
if c&avxCheck == avxCheck {
@@ -917,7 +1140,6 @@ func support() flagSet {
// Check AVX2, AVX2 requires OS support, but BMI1/2 don't.
if mfi >= 7 {
_, ebx, ecx, edx := cpuidex(7, 0)
- eax1, _, _, _ := cpuidex(7, 1)
if fs.inSet(AVX) && (ebx&0x00000020) != 0 {
fs.set(AVX2)
}
@@ -934,19 +1156,52 @@ func support() flagSet {
fs.setIf(ebx&(1<<18) != 0, RDSEED)
fs.setIf(ebx&(1<<19) != 0, ADX)
fs.setIf(ebx&(1<<29) != 0, SHA)
+
// CPUID.(EAX=7, ECX=0).ECX
fs.setIf(ecx&(1<<5) != 0, WAITPKG)
+ fs.setIf(ecx&(1<<7) != 0, CETSS)
+ fs.setIf(ecx&(1<<8) != 0, GFNI)
+ fs.setIf(ecx&(1<<9) != 0, VAES)
+ fs.setIf(ecx&(1<<10) != 0, VPCLMULQDQ)
+ fs.setIf(ecx&(1<<13) != 0, TME)
fs.setIf(ecx&(1<<25) != 0, CLDEMOTE)
fs.setIf(ecx&(1<<27) != 0, MOVDIRI)
fs.setIf(ecx&(1<<28) != 0, MOVDIR64B)
fs.setIf(ecx&(1<<29) != 0, ENQCMD)
fs.setIf(ecx&(1<<30) != 0, SGXLC)
+
// CPUID.(EAX=7, ECX=0).EDX
+ fs.setIf(edx&(1<<4) != 0, FSRM)
+ fs.setIf(edx&(1<<9) != 0, SRBDS_CTRL)
+ fs.setIf(edx&(1<<10) != 0, MD_CLEAR)
fs.setIf(edx&(1<<11) != 0, RTM_ALWAYS_ABORT)
fs.setIf(edx&(1<<14) != 0, SERIALIZE)
+ fs.setIf(edx&(1<<15) != 0, HYBRID_CPU)
fs.setIf(edx&(1<<16) != 0, TSXLDTRK)
+ fs.setIf(edx&(1<<18) != 0, PCONFIG)
+ fs.setIf(edx&(1<<20) != 0, CETIBT)
fs.setIf(edx&(1<<26) != 0, IBPB)
fs.setIf(edx&(1<<27) != 0, STIBP)
+ fs.setIf(edx&(1<<28) != 0, FLUSH_L1D)
+ fs.setIf(edx&(1<<29) != 0, IA32_ARCH_CAP)
+ fs.setIf(edx&(1<<30) != 0, IA32_CORE_CAP)
+ fs.setIf(edx&(1<<31) != 0, SPEC_CTRL_SSBD)
+
+ // CPUID.(EAX=7, ECX=1).EAX
+ eax1, _, _, edx1 := cpuidex(7, 1)
+ fs.setIf(fs.inSet(AVX) && eax1&(1<<4) != 0, AVXVNNI)
+ fs.setIf(eax1&(1<<7) != 0, CMPCCXADD)
+ fs.setIf(eax1&(1<<10) != 0, MOVSB_ZL)
+ fs.setIf(eax1&(1<<11) != 0, STOSB_SHORT)
+ fs.setIf(eax1&(1<<12) != 0, CMPSB_SCADBS_SHORT)
+ fs.setIf(eax1&(1<<22) != 0, HRESET)
+ fs.setIf(eax1&(1<<23) != 0, AVXIFMA)
+ fs.setIf(eax1&(1<<26) != 0, LAM)
+
+ // CPUID.(EAX=7, ECX=1).EDX
+ fs.setIf(edx1&(1<<4) != 0, AVXVNNIINT8)
+ fs.setIf(edx1&(1<<5) != 0, AVXNECONVERT)
+ fs.setIf(edx1&(1<<14) != 0, PREFETCHI)
// Only detect AVX-512 features if XGETBV is supported
if c&((1<<26)|(1<<27)) == (1<<26)|(1<<27) {
@@ -972,9 +1227,6 @@ func support() flagSet {
// ecx
fs.setIf(ecx&(1<<1) != 0, AVX512VBMI)
fs.setIf(ecx&(1<<6) != 0, AVX512VBMI2)
- fs.setIf(ecx&(1<<8) != 0, GFNI)
- fs.setIf(ecx&(1<<9) != 0, VAES)
- fs.setIf(ecx&(1<<10) != 0, VPCLMULQDQ)
fs.setIf(ecx&(1<<11) != 0, AVX512VNNI)
fs.setIf(ecx&(1<<12) != 0, AVX512BITALG)
fs.setIf(ecx&(1<<14) != 0, AVX512VPOPCNTDQ)
@@ -986,30 +1238,73 @@ func support() flagSet {
fs.setIf(edx&(1<<25) != 0, AMXINT8)
// eax1 = CPUID.(EAX=7, ECX=1).EAX
fs.setIf(eax1&(1<<5) != 0, AVX512BF16)
+ fs.setIf(eax1&(1<<19) != 0, WRMSRNS)
+ fs.setIf(eax1&(1<<21) != 0, AMXFP16)
+ fs.setIf(eax1&(1<<27) != 0, MSRLIST)
}
}
+
+ // CPUID.(EAX=7, ECX=2)
+ _, _, _, edx = cpuidex(7, 2)
+ fs.setIf(edx&(1<<0) != 0, PSFD)
+ fs.setIf(edx&(1<<1) != 0, IDPRED_CTRL)
+ fs.setIf(edx&(1<<2) != 0, RRSBA_CTRL)
+ fs.setIf(edx&(1<<4) != 0, BHI_CTRL)
+ fs.setIf(edx&(1<<5) != 0, MCDT_NO)
+
}
+ // Processor Extended State Enumeration Sub-leaf (EAX = 0DH, ECX = 1)
+ // EAX
+ // Bit 00: XSAVEOPT is available.
+ // Bit 01: Supports XSAVEC and the compacted form of XRSTOR if set.
+ // Bit 02: Supports XGETBV with ECX = 1 if set.
+ // Bit 03: Supports XSAVES/XRSTORS and IA32_XSS if set.
+ // Bits 31 - 04: Reserved.
+ // EBX
+ // Bits 31 - 00: The size in bytes of the XSAVE area containing all states enabled by XCRO | IA32_XSS.
+ // ECX
+ // Bits 31 - 00: Reports the supported bits of the lower 32 bits of the IA32_XSS MSR. IA32_XSS[n] can be set to 1 only if ECX[n] is 1.
+ // EDX?
+ // Bits 07 - 00: Used for XCR0. Bit 08: PT state. Bit 09: Used for XCR0. Bits 12 - 10: Reserved. Bit 13: HWP state. Bits 31 - 14: Reserved.
+ if mfi >= 0xd {
+ if fs.inSet(XSAVE) {
+ eax, _, _, _ := cpuidex(0xd, 1)
+ fs.setIf(eax&(1<<0) != 0, XSAVEOPT)
+ fs.setIf(eax&(1<<1) != 0, XSAVEC)
+ fs.setIf(eax&(1<<2) != 0, XGETBV1)
+ fs.setIf(eax&(1<<3) != 0, XSAVES)
+ }
+ }
if maxExtendedFunction() >= 0x80000001 {
_, _, c, d := cpuid(0x80000001)
if (c & (1 << 5)) != 0 {
fs.set(LZCNT)
fs.set(POPCNT)
}
- fs.setIf((c&(1<<10)) != 0, IBS)
- fs.setIf((d&(1<<31)) != 0, AMD3DNOW)
- fs.setIf((d&(1<<30)) != 0, AMD3DNOWEXT)
- fs.setIf((d&(1<<23)) != 0, MMX)
- fs.setIf((d&(1<<22)) != 0, MMXEXT)
+ // ECX
+ fs.setIf((c&(1<<0)) != 0, LAHF)
+ fs.setIf((c&(1<<2)) != 0, SVM)
fs.setIf((c&(1<<6)) != 0, SSE4A)
+ fs.setIf((c&(1<<10)) != 0, IBS)
+ fs.setIf((c&(1<<22)) != 0, TOPEXT)
+
+ // EDX
+ fs.setIf(d&(1<<11) != 0, SYSCALL)
fs.setIf(d&(1<<20) != 0, NX)
+ fs.setIf(d&(1<<22) != 0, MMXEXT)
+ fs.setIf(d&(1<<23) != 0, MMX)
+ fs.setIf(d&(1<<24) != 0, FXSR)
+ fs.setIf(d&(1<<25) != 0, FXSROPT)
fs.setIf(d&(1<<27) != 0, RDTSCP)
+ fs.setIf(d&(1<<30) != 0, AMD3DNOWEXT)
+ fs.setIf(d&(1<<31) != 0, AMD3DNOW)
/* XOP and FMA4 use the AVX instruction coding scheme, so they can't be
* used unless the OS has AVX support. */
if fs.inSet(AVX) {
- fs.setIf((c&0x00000800) != 0, XOP)
- fs.setIf((c&0x00010000) != 0, FMA4)
+ fs.setIf((c&(1<<11)) != 0, XOP)
+ fs.setIf((c&(1<<16)) != 0, FMA4)
}
}
@@ -1023,15 +1318,48 @@ func support() flagSet {
if maxExtendedFunction() >= 0x80000008 {
_, b, _, _ := cpuid(0x80000008)
+ fs.setIf(b&(1<<28) != 0, PSFD)
+ fs.setIf(b&(1<<27) != 0, CPPC)
+ fs.setIf(b&(1<<24) != 0, SPEC_CTRL_SSBD)
+ fs.setIf(b&(1<<23) != 0, PPIN)
+ fs.setIf(b&(1<<21) != 0, TLB_FLUSH_NESTED)
+ fs.setIf(b&(1<<20) != 0, EFER_LMSLE_UNS)
+ fs.setIf(b&(1<<19) != 0, IBRS_PROVIDES_SMP)
+ fs.setIf(b&(1<<18) != 0, IBRS_PREFERRED)
+ fs.setIf(b&(1<<17) != 0, STIBP_ALWAYSON)
+ fs.setIf(b&(1<<15) != 0, STIBP)
+ fs.setIf(b&(1<<14) != 0, IBRS)
+ fs.setIf((b&(1<<13)) != 0, INT_WBINVD)
+ fs.setIf(b&(1<<12) != 0, IBPB)
fs.setIf((b&(1<<9)) != 0, WBNOINVD)
fs.setIf((b&(1<<8)) != 0, MCOMMIT)
- fs.setIf((b&(1<<13)) != 0, INT_WBINVD)
fs.setIf((b&(1<<4)) != 0, RDPRU)
fs.setIf((b&(1<<3)) != 0, INVLPGB)
fs.setIf((b&(1<<1)) != 0, MSRIRC)
fs.setIf((b&(1<<0)) != 0, CLZERO)
}
+ if fs.inSet(SVM) && maxExtendedFunction() >= 0x8000000A {
+ _, _, _, edx := cpuid(0x8000000A)
+ fs.setIf((edx>>0)&1 == 1, SVMNP)
+ fs.setIf((edx>>1)&1 == 1, LBRVIRT)
+ fs.setIf((edx>>2)&1 == 1, SVML)
+ fs.setIf((edx>>3)&1 == 1, NRIPS)
+ fs.setIf((edx>>4)&1 == 1, TSCRATEMSR)
+ fs.setIf((edx>>5)&1 == 1, VMCBCLEAN)
+ fs.setIf((edx>>6)&1 == 1, SVMFBASID)
+ fs.setIf((edx>>7)&1 == 1, SVMDA)
+ fs.setIf((edx>>10)&1 == 1, SVMPF)
+ fs.setIf((edx>>12)&1 == 1, SVMPFT)
+ }
+
+ if maxExtendedFunction() >= 0x8000001a {
+ eax, _, _, _ := cpuid(0x8000001a)
+ fs.setIf((eax>>0)&1 == 1, FP128)
+ fs.setIf((eax>>1)&1 == 1, MOVU)
+ fs.setIf((eax>>2)&1 == 1, FP256)
+ }
+
if maxExtendedFunction() >= 0x8000001b && fs.inSet(IBS) {
eax, _, _, _ := cpuid(0x8000001b)
fs.setIf((eax>>0)&1 == 1, IBSFFV)
@@ -1042,6 +1370,35 @@ func support() flagSet {
fs.setIf((eax>>5)&1 == 1, IBSBRNTRGT)
fs.setIf((eax>>6)&1 == 1, IBSOPCNTEXT)
fs.setIf((eax>>7)&1 == 1, IBSRIPINVALIDCHK)
+ fs.setIf((eax>>8)&1 == 1, IBS_OPFUSE)
+ fs.setIf((eax>>9)&1 == 1, IBS_FETCH_CTLX)
+ fs.setIf((eax>>10)&1 == 1, IBS_OPDATA4) // Doc says "Fixed,0. IBS op data 4 MSR supported", but assuming they mean 1.
+ fs.setIf((eax>>11)&1 == 1, IBS_ZEN4)
+ }
+
+ if maxExtendedFunction() >= 0x8000001f && vend == AMD {
+ a, _, _, _ := cpuid(0x8000001f)
+ fs.setIf((a>>0)&1 == 1, SME)
+ fs.setIf((a>>1)&1 == 1, SEV)
+ fs.setIf((a>>2)&1 == 1, MSR_PAGEFLUSH)
+ fs.setIf((a>>3)&1 == 1, SEV_ES)
+ fs.setIf((a>>4)&1 == 1, SEV_SNP)
+ fs.setIf((a>>5)&1 == 1, VMPL)
+ fs.setIf((a>>10)&1 == 1, SME_COHERENT)
+ fs.setIf((a>>11)&1 == 1, SEV_64BIT)
+ fs.setIf((a>>12)&1 == 1, SEV_RESTRICTED)
+ fs.setIf((a>>13)&1 == 1, SEV_ALTERNATIVE)
+ fs.setIf((a>>14)&1 == 1, SEV_DEBUGSWAP)
+ fs.setIf((a>>15)&1 == 1, IBS_PREVENTHOST)
+ fs.setIf((a>>16)&1 == 1, VTE)
+ fs.setIf((a>>24)&1 == 1, VMSA_REGPROT)
+ }
+
+ if mfi >= 0x21 {
+ // Intel Trusted Domain Extensions Guests have their own cpuid leaf (0x21).
+ _, ebx, ecx, edx := cpuid(0x21)
+ identity := string(valAsString(ebx, edx, ecx))
+ fs.setIf(identity == "IntelTDX ", TDX_GUEST)
}
return fs
diff --git a/vendor/github.com/klauspost/cpuid/v2/detect_arm64.go b/vendor/github.com/klauspost/cpuid/v2/detect_arm64.go
index 9bf9f77f..9a53504a 100644
--- a/vendor/github.com/klauspost/cpuid/v2/detect_arm64.go
+++ b/vendor/github.com/klauspost/cpuid/v2/detect_arm64.go
@@ -1,6 +1,7 @@
// Copyright (c) 2015 Klaus Post, released under MIT License. See LICENSE file.
-//+build arm64,!gccgo,!noasm,!appengine
+//go:build arm64 && !gccgo && !noasm && !appengine
+// +build arm64,!gccgo,!noasm,!appengine
package cpuid
diff --git a/vendor/github.com/klauspost/cpuid/v2/detect_ref.go b/vendor/github.com/klauspost/cpuid/v2/detect_ref.go
index e9c8606a..9636c2bc 100644
--- a/vendor/github.com/klauspost/cpuid/v2/detect_ref.go
+++ b/vendor/github.com/klauspost/cpuid/v2/detect_ref.go
@@ -1,6 +1,7 @@
// Copyright (c) 2015 Klaus Post, released under MIT License. See LICENSE file.
-//+build !amd64,!386,!arm64 gccgo noasm appengine
+//go:build (!amd64 && !386 && !arm64) || gccgo || noasm || appengine
+// +build !amd64,!386,!arm64 gccgo noasm appengine
package cpuid
diff --git a/vendor/github.com/klauspost/cpuid/v2/detect_x86.go b/vendor/github.com/klauspost/cpuid/v2/detect_x86.go
index 367c35c8..c946824e 100644
--- a/vendor/github.com/klauspost/cpuid/v2/detect_x86.go
+++ b/vendor/github.com/klauspost/cpuid/v2/detect_x86.go
@@ -1,6 +1,7 @@
// Copyright (c) 2015 Klaus Post, released under MIT License. See LICENSE file.
-//+build 386,!gccgo,!noasm,!appengine amd64,!gccgo,!noasm,!appengine
+//go:build (386 && !gccgo && !noasm && !appengine) || (amd64 && !gccgo && !noasm && !appengine)
+// +build 386,!gccgo,!noasm,!appengine amd64,!gccgo,!noasm,!appengine
package cpuid
@@ -23,7 +24,7 @@ func addInfo(c *CPUInfo, safe bool) {
c.maxExFunc = maxExtendedFunction()
c.BrandName = brandName()
c.CacheLine = cacheLine()
- c.Family, c.Model = familyModel()
+ c.Family, c.Model, c.Stepping = familyModel()
c.featureSet = support()
c.SGX = hasSGX(c.featureSet.inSet(SGX), c.featureSet.inSet(SGXLC))
c.ThreadsPerCore = threadsPerCore()
diff --git a/vendor/github.com/klauspost/cpuid/v2/featureid_string.go b/vendor/github.com/klauspost/cpuid/v2/featureid_string.go
index b1fe42e4..024c706a 100644
--- a/vendor/github.com/klauspost/cpuid/v2/featureid_string.go
+++ b/vendor/github.com/klauspost/cpuid/v2/featureid_string.go
@@ -13,126 +13,213 @@ func _() {
_ = x[AMD3DNOW-3]
_ = x[AMD3DNOWEXT-4]
_ = x[AMXBF16-5]
- _ = x[AMXINT8-6]
- _ = x[AMXTILE-7]
- _ = x[AVX-8]
- _ = x[AVX2-9]
- _ = x[AVX512BF16-10]
- _ = x[AVX512BITALG-11]
- _ = x[AVX512BW-12]
- _ = x[AVX512CD-13]
- _ = x[AVX512DQ-14]
- _ = x[AVX512ER-15]
- _ = x[AVX512F-16]
- _ = x[AVX512FP16-17]
- _ = x[AVX512IFMA-18]
- _ = x[AVX512PF-19]
- _ = x[AVX512VBMI-20]
- _ = x[AVX512VBMI2-21]
- _ = x[AVX512VL-22]
- _ = x[AVX512VNNI-23]
- _ = x[AVX512VP2INTERSECT-24]
- _ = x[AVX512VPOPCNTDQ-25]
- _ = x[AVXSLOW-26]
- _ = x[BMI1-27]
- _ = x[BMI2-28]
- _ = x[CLDEMOTE-29]
- _ = x[CLMUL-30]
- _ = x[CLZERO-31]
- _ = x[CMOV-32]
- _ = x[CPBOOST-33]
- _ = x[CX16-34]
- _ = x[ENQCMD-35]
- _ = x[ERMS-36]
- _ = x[F16C-37]
- _ = x[FMA3-38]
- _ = x[FMA4-39]
- _ = x[GFNI-40]
- _ = x[HLE-41]
- _ = x[HTT-42]
- _ = x[HWA-43]
- _ = x[HYPERVISOR-44]
- _ = x[IBPB-45]
- _ = x[IBS-46]
- _ = x[IBSBRNTRGT-47]
- _ = x[IBSFETCHSAM-48]
- _ = x[IBSFFV-49]
- _ = x[IBSOPCNT-50]
- _ = x[IBSOPCNTEXT-51]
- _ = x[IBSOPSAM-52]
- _ = x[IBSRDWROPCNT-53]
- _ = x[IBSRIPINVALIDCHK-54]
- _ = x[INT_WBINVD-55]
- _ = x[INVLPGB-56]
- _ = x[LZCNT-57]
- _ = x[MCAOVERFLOW-58]
- _ = x[MCOMMIT-59]
- _ = x[MMX-60]
- _ = x[MMXEXT-61]
- _ = x[MOVDIR64B-62]
- _ = x[MOVDIRI-63]
- _ = x[MPX-64]
- _ = x[MSRIRC-65]
- _ = x[NX-66]
- _ = x[POPCNT-67]
- _ = x[RDPRU-68]
- _ = x[RDRAND-69]
- _ = x[RDSEED-70]
- _ = x[RDTSCP-71]
- _ = x[RTM-72]
- _ = x[RTM_ALWAYS_ABORT-73]
- _ = x[SERIALIZE-74]
- _ = x[SGX-75]
- _ = x[SGXLC-76]
- _ = x[SHA-77]
- _ = x[SSE-78]
- _ = x[SSE2-79]
- _ = x[SSE3-80]
- _ = x[SSE4-81]
- _ = x[SSE42-82]
- _ = x[SSE4A-83]
- _ = x[SSSE3-84]
- _ = x[STIBP-85]
- _ = x[SUCCOR-86]
- _ = x[TBM-87]
- _ = x[TSXLDTRK-88]
- _ = x[VAES-89]
- _ = x[VMX-90]
- _ = x[VPCLMULQDQ-91]
- _ = x[WAITPKG-92]
- _ = x[WBNOINVD-93]
- _ = x[XOP-94]
- _ = x[AESARM-95]
- _ = x[ARMCPUID-96]
- _ = x[ASIMD-97]
- _ = x[ASIMDDP-98]
- _ = x[ASIMDHP-99]
- _ = x[ASIMDRDM-100]
- _ = x[ATOMICS-101]
- _ = x[CRC32-102]
- _ = x[DCPOP-103]
- _ = x[EVTSTRM-104]
- _ = x[FCMA-105]
- _ = x[FP-106]
- _ = x[FPHP-107]
- _ = x[GPA-108]
- _ = x[JSCVT-109]
- _ = x[LRCPC-110]
- _ = x[PMULL-111]
- _ = x[SHA1-112]
- _ = x[SHA2-113]
- _ = x[SHA3-114]
- _ = x[SHA512-115]
- _ = x[SM3-116]
- _ = x[SM4-117]
- _ = x[SVE-118]
- _ = x[lastID-119]
+ _ = x[AMXFP16-6]
+ _ = x[AMXINT8-7]
+ _ = x[AMXTILE-8]
+ _ = x[AVX-9]
+ _ = x[AVX2-10]
+ _ = x[AVX512BF16-11]
+ _ = x[AVX512BITALG-12]
+ _ = x[AVX512BW-13]
+ _ = x[AVX512CD-14]
+ _ = x[AVX512DQ-15]
+ _ = x[AVX512ER-16]
+ _ = x[AVX512F-17]
+ _ = x[AVX512FP16-18]
+ _ = x[AVX512IFMA-19]
+ _ = x[AVX512PF-20]
+ _ = x[AVX512VBMI-21]
+ _ = x[AVX512VBMI2-22]
+ _ = x[AVX512VL-23]
+ _ = x[AVX512VNNI-24]
+ _ = x[AVX512VP2INTERSECT-25]
+ _ = x[AVX512VPOPCNTDQ-26]
+ _ = x[AVXIFMA-27]
+ _ = x[AVXNECONVERT-28]
+ _ = x[AVXSLOW-29]
+ _ = x[AVXVNNI-30]
+ _ = x[AVXVNNIINT8-31]
+ _ = x[BHI_CTRL-32]
+ _ = x[BMI1-33]
+ _ = x[BMI2-34]
+ _ = x[CETIBT-35]
+ _ = x[CETSS-36]
+ _ = x[CLDEMOTE-37]
+ _ = x[CLMUL-38]
+ _ = x[CLZERO-39]
+ _ = x[CMOV-40]
+ _ = x[CMPCCXADD-41]
+ _ = x[CMPSB_SCADBS_SHORT-42]
+ _ = x[CMPXCHG8-43]
+ _ = x[CPBOOST-44]
+ _ = x[CPPC-45]
+ _ = x[CX16-46]
+ _ = x[EFER_LMSLE_UNS-47]
+ _ = x[ENQCMD-48]
+ _ = x[ERMS-49]
+ _ = x[F16C-50]
+ _ = x[FLUSH_L1D-51]
+ _ = x[FMA3-52]
+ _ = x[FMA4-53]
+ _ = x[FP128-54]
+ _ = x[FP256-55]
+ _ = x[FSRM-56]
+ _ = x[FXSR-57]
+ _ = x[FXSROPT-58]
+ _ = x[GFNI-59]
+ _ = x[HLE-60]
+ _ = x[HRESET-61]
+ _ = x[HTT-62]
+ _ = x[HWA-63]
+ _ = x[HYBRID_CPU-64]
+ _ = x[HYPERVISOR-65]
+ _ = x[IA32_ARCH_CAP-66]
+ _ = x[IA32_CORE_CAP-67]
+ _ = x[IBPB-68]
+ _ = x[IBRS-69]
+ _ = x[IBRS_PREFERRED-70]
+ _ = x[IBRS_PROVIDES_SMP-71]
+ _ = x[IBS-72]
+ _ = x[IBSBRNTRGT-73]
+ _ = x[IBSFETCHSAM-74]
+ _ = x[IBSFFV-75]
+ _ = x[IBSOPCNT-76]
+ _ = x[IBSOPCNTEXT-77]
+ _ = x[IBSOPSAM-78]
+ _ = x[IBSRDWROPCNT-79]
+ _ = x[IBSRIPINVALIDCHK-80]
+ _ = x[IBS_FETCH_CTLX-81]
+ _ = x[IBS_OPDATA4-82]
+ _ = x[IBS_OPFUSE-83]
+ _ = x[IBS_PREVENTHOST-84]
+ _ = x[IBS_ZEN4-85]
+ _ = x[IDPRED_CTRL-86]
+ _ = x[INT_WBINVD-87]
+ _ = x[INVLPGB-88]
+ _ = x[LAHF-89]
+ _ = x[LAM-90]
+ _ = x[LBRVIRT-91]
+ _ = x[LZCNT-92]
+ _ = x[MCAOVERFLOW-93]
+ _ = x[MCDT_NO-94]
+ _ = x[MCOMMIT-95]
+ _ = x[MD_CLEAR-96]
+ _ = x[MMX-97]
+ _ = x[MMXEXT-98]
+ _ = x[MOVBE-99]
+ _ = x[MOVDIR64B-100]
+ _ = x[MOVDIRI-101]
+ _ = x[MOVSB_ZL-102]
+ _ = x[MOVU-103]
+ _ = x[MPX-104]
+ _ = x[MSRIRC-105]
+ _ = x[MSRLIST-106]
+ _ = x[MSR_PAGEFLUSH-107]
+ _ = x[NRIPS-108]
+ _ = x[NX-109]
+ _ = x[OSXSAVE-110]
+ _ = x[PCONFIG-111]
+ _ = x[POPCNT-112]
+ _ = x[PPIN-113]
+ _ = x[PREFETCHI-114]
+ _ = x[PSFD-115]
+ _ = x[RDPRU-116]
+ _ = x[RDRAND-117]
+ _ = x[RDSEED-118]
+ _ = x[RDTSCP-119]
+ _ = x[RRSBA_CTRL-120]
+ _ = x[RTM-121]
+ _ = x[RTM_ALWAYS_ABORT-122]
+ _ = x[SERIALIZE-123]
+ _ = x[SEV-124]
+ _ = x[SEV_64BIT-125]
+ _ = x[SEV_ALTERNATIVE-126]
+ _ = x[SEV_DEBUGSWAP-127]
+ _ = x[SEV_ES-128]
+ _ = x[SEV_RESTRICTED-129]
+ _ = x[SEV_SNP-130]
+ _ = x[SGX-131]
+ _ = x[SGXLC-132]
+ _ = x[SHA-133]
+ _ = x[SME-134]
+ _ = x[SME_COHERENT-135]
+ _ = x[SPEC_CTRL_SSBD-136]
+ _ = x[SRBDS_CTRL-137]
+ _ = x[SSE-138]
+ _ = x[SSE2-139]
+ _ = x[SSE3-140]
+ _ = x[SSE4-141]
+ _ = x[SSE42-142]
+ _ = x[SSE4A-143]
+ _ = x[SSSE3-144]
+ _ = x[STIBP-145]
+ _ = x[STIBP_ALWAYSON-146]
+ _ = x[STOSB_SHORT-147]
+ _ = x[SUCCOR-148]
+ _ = x[SVM-149]
+ _ = x[SVMDA-150]
+ _ = x[SVMFBASID-151]
+ _ = x[SVML-152]
+ _ = x[SVMNP-153]
+ _ = x[SVMPF-154]
+ _ = x[SVMPFT-155]
+ _ = x[SYSCALL-156]
+ _ = x[SYSEE-157]
+ _ = x[TBM-158]
+ _ = x[TDX_GUEST-159]
+ _ = x[TLB_FLUSH_NESTED-160]
+ _ = x[TME-161]
+ _ = x[TOPEXT-162]
+ _ = x[TSCRATEMSR-163]
+ _ = x[TSXLDTRK-164]
+ _ = x[VAES-165]
+ _ = x[VMCBCLEAN-166]
+ _ = x[VMPL-167]
+ _ = x[VMSA_REGPROT-168]
+ _ = x[VMX-169]
+ _ = x[VPCLMULQDQ-170]
+ _ = x[VTE-171]
+ _ = x[WAITPKG-172]
+ _ = x[WBNOINVD-173]
+ _ = x[WRMSRNS-174]
+ _ = x[X87-175]
+ _ = x[XGETBV1-176]
+ _ = x[XOP-177]
+ _ = x[XSAVE-178]
+ _ = x[XSAVEC-179]
+ _ = x[XSAVEOPT-180]
+ _ = x[XSAVES-181]
+ _ = x[AESARM-182]
+ _ = x[ARMCPUID-183]
+ _ = x[ASIMD-184]
+ _ = x[ASIMDDP-185]
+ _ = x[ASIMDHP-186]
+ _ = x[ASIMDRDM-187]
+ _ = x[ATOMICS-188]
+ _ = x[CRC32-189]
+ _ = x[DCPOP-190]
+ _ = x[EVTSTRM-191]
+ _ = x[FCMA-192]
+ _ = x[FP-193]
+ _ = x[FPHP-194]
+ _ = x[GPA-195]
+ _ = x[JSCVT-196]
+ _ = x[LRCPC-197]
+ _ = x[PMULL-198]
+ _ = x[SHA1-199]
+ _ = x[SHA2-200]
+ _ = x[SHA3-201]
+ _ = x[SHA512-202]
+ _ = x[SM3-203]
+ _ = x[SM4-204]
+ _ = x[SVE-205]
+ _ = x[lastID-206]
_ = x[firstID-0]
}
-const _FeatureID_name = "firstIDADXAESNIAMD3DNOWAMD3DNOWEXTAMXBF16AMXINT8AMXTILEAVXAVX2AVX512BF16AVX512BITALGAVX512BWAVX512CDAVX512DQAVX512ERAVX512FAVX512FP16AVX512IFMAAVX512PFAVX512VBMIAVX512VBMI2AVX512VLAVX512VNNIAVX512VP2INTERSECTAVX512VPOPCNTDQAVXSLOWBMI1BMI2CLDEMOTECLMULCLZEROCMOVCPBOOSTCX16ENQCMDERMSF16CFMA3FMA4GFNIHLEHTTHWAHYPERVISORIBPBIBSIBSBRNTRGTIBSFETCHSAMIBSFFVIBSOPCNTIBSOPCNTEXTIBSOPSAMIBSRDWROPCNTIBSRIPINVALIDCHKINT_WBINVDINVLPGBLZCNTMCAOVERFLOWMCOMMITMMXMMXEXTMOVDIR64BMOVDIRIMPXMSRIRCNXPOPCNTRDPRURDRANDRDSEEDRDTSCPRTMRTM_ALWAYS_ABORTSERIALIZESGXSGXLCSHASSESSE2SSE3SSE4SSE42SSE4ASSSE3STIBPSUCCORTBMTSXLDTRKVAESVMXVPCLMULQDQWAITPKGWBNOINVDXOPAESARMARMCPUIDASIMDASIMDDPASIMDHPASIMDRDMATOMICSCRC32DCPOPEVTSTRMFCMAFPFPHPGPAJSCVTLRCPCPMULLSHA1SHA2SHA3SHA512SM3SM4SVElastID"
+const _FeatureID_name = "firstIDADXAESNIAMD3DNOWAMD3DNOWEXTAMXBF16AMXFP16AMXINT8AMXTILEAVXAVX2AVX512BF16AVX512BITALGAVX512BWAVX512CDAVX512DQAVX512ERAVX512FAVX512FP16AVX512IFMAAVX512PFAVX512VBMIAVX512VBMI2AVX512VLAVX512VNNIAVX512VP2INTERSECTAVX512VPOPCNTDQAVXIFMAAVXNECONVERTAVXSLOWAVXVNNIAVXVNNIINT8BHI_CTRLBMI1BMI2CETIBTCETSSCLDEMOTECLMULCLZEROCMOVCMPCCXADDCMPSB_SCADBS_SHORTCMPXCHG8CPBOOSTCPPCCX16EFER_LMSLE_UNSENQCMDERMSF16CFLUSH_L1DFMA3FMA4FP128FP256FSRMFXSRFXSROPTGFNIHLEHRESETHTTHWAHYBRID_CPUHYPERVISORIA32_ARCH_CAPIA32_CORE_CAPIBPBIBRSIBRS_PREFERREDIBRS_PROVIDES_SMPIBSIBSBRNTRGTIBSFETCHSAMIBSFFVIBSOPCNTIBSOPCNTEXTIBSOPSAMIBSRDWROPCNTIBSRIPINVALIDCHKIBS_FETCH_CTLXIBS_OPDATA4IBS_OPFUSEIBS_PREVENTHOSTIBS_ZEN4IDPRED_CTRLINT_WBINVDINVLPGBLAHFLAMLBRVIRTLZCNTMCAOVERFLOWMCDT_NOMCOMMITMD_CLEARMMXMMXEXTMOVBEMOVDIR64BMOVDIRIMOVSB_ZLMOVUMPXMSRIRCMSRLISTMSR_PAGEFLUSHNRIPSNXOSXSAVEPCONFIGPOPCNTPPINPREFETCHIPSFDRDPRURDRANDRDSEEDRDTSCPRRSBA_CTRLRTMRTM_ALWAYS_ABORTSERIALIZESEVSEV_64BITSEV_ALTERNATIVESEV_DEBUGSWAPSEV_ESSEV_RESTRICTEDSEV_SNPSGXSGXLCSHASMESME_COHERENTSPEC_CTRL_SSBDSRBDS_CTRLSSESSE2SSE3SSE4SSE42SSE4ASSSE3STIBPSTIBP_ALWAYSONSTOSB_SHORTSUCCORSVMSVMDASVMFBASIDSVMLSVMNPSVMPFSVMPFTSYSCALLSYSEETBMTDX_GUESTTLB_FLUSH_NESTEDTMETOPEXTTSCRATEMSRTSXLDTRKVAESVMCBCLEANVMPLVMSA_REGPROTVMXVPCLMULQDQVTEWAITPKGWBNOINVDWRMSRNSX87XGETBV1XOPXSAVEXSAVECXSAVEOPTXSAVESAESARMARMCPUIDASIMDASIMDDPASIMDHPASIMDRDMATOMICSCRC32DCPOPEVTSTRMFCMAFPFPHPGPAJSCVTLRCPCPMULLSHA1SHA2SHA3SHA512SM3SM4SVElastID"
-var _FeatureID_index = [...]uint16{0, 7, 10, 15, 23, 34, 41, 48, 55, 58, 62, 72, 84, 92, 100, 108, 116, 123, 133, 143, 151, 161, 172, 180, 190, 208, 223, 230, 234, 238, 246, 251, 257, 261, 268, 272, 278, 282, 286, 290, 294, 298, 301, 304, 307, 317, 321, 324, 334, 345, 351, 359, 370, 378, 390, 406, 416, 423, 428, 439, 446, 449, 455, 464, 471, 474, 480, 482, 488, 493, 499, 505, 511, 514, 530, 539, 542, 547, 550, 553, 557, 561, 565, 570, 575, 580, 585, 591, 594, 602, 606, 609, 619, 626, 634, 637, 643, 651, 656, 663, 670, 678, 685, 690, 695, 702, 706, 708, 712, 715, 720, 725, 730, 734, 738, 742, 748, 751, 754, 757, 763}
+var _FeatureID_index = [...]uint16{0, 7, 10, 15, 23, 34, 41, 48, 55, 62, 65, 69, 79, 91, 99, 107, 115, 123, 130, 140, 150, 158, 168, 179, 187, 197, 215, 230, 237, 249, 256, 263, 274, 282, 286, 290, 296, 301, 309, 314, 320, 324, 333, 351, 359, 366, 370, 374, 388, 394, 398, 402, 411, 415, 419, 424, 429, 433, 437, 444, 448, 451, 457, 460, 463, 473, 483, 496, 509, 513, 517, 531, 548, 551, 561, 572, 578, 586, 597, 605, 617, 633, 647, 658, 668, 683, 691, 702, 712, 719, 723, 726, 733, 738, 749, 756, 763, 771, 774, 780, 785, 794, 801, 809, 813, 816, 822, 829, 842, 847, 849, 856, 863, 869, 873, 882, 886, 891, 897, 903, 909, 919, 922, 938, 947, 950, 959, 974, 987, 993, 1007, 1014, 1017, 1022, 1025, 1028, 1040, 1054, 1064, 1067, 1071, 1075, 1079, 1084, 1089, 1094, 1099, 1113, 1124, 1130, 1133, 1138, 1147, 1151, 1156, 1161, 1167, 1174, 1179, 1182, 1191, 1207, 1210, 1216, 1226, 1234, 1238, 1247, 1251, 1263, 1266, 1276, 1279, 1286, 1294, 1301, 1304, 1311, 1314, 1319, 1325, 1333, 1339, 1345, 1353, 1358, 1365, 1372, 1380, 1387, 1392, 1397, 1404, 1408, 1410, 1414, 1417, 1422, 1427, 1432, 1436, 1440, 1444, 1450, 1453, 1456, 1459, 1465}
func (i FeatureID) String() string {
if i < 0 || i >= FeatureID(len(_FeatureID_index)-1) {
diff --git a/vendor/github.com/klauspost/cpuid/v2/os_darwin_arm64.go b/vendor/github.com/klauspost/cpuid/v2/os_darwin_arm64.go
index 8d2cb036..84b1acd2 100644
--- a/vendor/github.com/klauspost/cpuid/v2/os_darwin_arm64.go
+++ b/vendor/github.com/klauspost/cpuid/v2/os_darwin_arm64.go
@@ -2,18 +2,120 @@
package cpuid
-import "runtime"
+import (
+ "runtime"
+ "strings"
+
+ "golang.org/x/sys/unix"
+)
func detectOS(c *CPUInfo) bool {
+ if runtime.GOOS != "ios" {
+ tryToFillCPUInfoFomSysctl(c)
+ }
// There are no hw.optional sysctl values for the below features on Mac OS 11.0
// to detect their supported state dynamically. Assume the CPU features that
// Apple Silicon M1 supports to be available as a minimal set of features
// to all Go programs running on darwin/arm64.
// TODO: Add more if we know them.
c.featureSet.setIf(runtime.GOOS != "ios", AESARM, PMULL, SHA1, SHA2)
- c.PhysicalCores = runtime.NumCPU()
- // For now assuming 1 thread per core...
- c.ThreadsPerCore = 1
- c.LogicalCores = c.PhysicalCores
+
return true
}
+
+func sysctlGetBool(name string) bool {
+ value, err := unix.SysctlUint32(name)
+ if err != nil {
+ return false
+ }
+ return value != 0
+}
+
+func sysctlGetString(name string) string {
+ value, err := unix.Sysctl(name)
+ if err != nil {
+ return ""
+ }
+ return value
+}
+
+func sysctlGetInt(unknown int, names ...string) int {
+ for _, name := range names {
+ value, err := unix.SysctlUint32(name)
+ if err != nil {
+ continue
+ }
+ if value != 0 {
+ return int(value)
+ }
+ }
+ return unknown
+}
+
+func sysctlGetInt64(unknown int, names ...string) int {
+ for _, name := range names {
+ value64, err := unix.SysctlUint64(name)
+ if err != nil {
+ continue
+ }
+ if int(value64) != unknown {
+ return int(value64)
+ }
+ }
+ return unknown
+}
+
+func setFeature(c *CPUInfo, name string, feature FeatureID) {
+ c.featureSet.setIf(sysctlGetBool(name), feature)
+}
+func tryToFillCPUInfoFomSysctl(c *CPUInfo) {
+ c.BrandName = sysctlGetString("machdep.cpu.brand_string")
+
+ if len(c.BrandName) != 0 {
+ c.VendorString = strings.Fields(c.BrandName)[0]
+ }
+
+ c.PhysicalCores = sysctlGetInt(runtime.NumCPU(), "hw.physicalcpu")
+ c.ThreadsPerCore = sysctlGetInt(1, "machdep.cpu.thread_count", "kern.num_threads") /
+ sysctlGetInt(1, "hw.physicalcpu")
+ c.LogicalCores = sysctlGetInt(runtime.NumCPU(), "machdep.cpu.core_count")
+ c.Family = sysctlGetInt(0, "machdep.cpu.family", "hw.cpufamily")
+ c.Model = sysctlGetInt(0, "machdep.cpu.model")
+ c.CacheLine = sysctlGetInt64(0, "hw.cachelinesize")
+ c.Cache.L1I = sysctlGetInt64(-1, "hw.l1icachesize")
+ c.Cache.L1D = sysctlGetInt64(-1, "hw.l1dcachesize")
+ c.Cache.L2 = sysctlGetInt64(-1, "hw.l2cachesize")
+ c.Cache.L3 = sysctlGetInt64(-1, "hw.l3cachesize")
+
+ // from https://developer.arm.com/downloads/-/exploration-tools/feature-names-for-a-profile
+ setFeature(c, "hw.optional.arm.FEAT_AES", AESARM)
+ setFeature(c, "hw.optional.AdvSIMD", ASIMD)
+ setFeature(c, "hw.optional.arm.FEAT_DotProd", ASIMDDP)
+ setFeature(c, "hw.optional.arm.FEAT_RDM", ASIMDRDM)
+ setFeature(c, "hw.optional.FEAT_CRC32", CRC32)
+ setFeature(c, "hw.optional.arm.FEAT_DPB", DCPOP)
+ // setFeature(c, "", EVTSTRM)
+ setFeature(c, "hw.optional.arm.FEAT_FCMA", FCMA)
+ setFeature(c, "hw.optional.arm.FEAT_FP", FP)
+ setFeature(c, "hw.optional.arm.FEAT_FP16", FPHP)
+ setFeature(c, "hw.optional.arm.FEAT_PAuth", GPA)
+ setFeature(c, "hw.optional.arm.FEAT_JSCVT", JSCVT)
+ setFeature(c, "hw.optional.arm.FEAT_LRCPC", LRCPC)
+ setFeature(c, "hw.optional.arm.FEAT_PMULL", PMULL)
+ setFeature(c, "hw.optional.arm.FEAT_SHA1", SHA1)
+ setFeature(c, "hw.optional.arm.FEAT_SHA256", SHA2)
+ setFeature(c, "hw.optional.arm.FEAT_SHA3", SHA3)
+ setFeature(c, "hw.optional.arm.FEAT_SHA512", SHA512)
+ // setFeature(c, "", SM3)
+ // setFeature(c, "", SM4)
+ setFeature(c, "hw.optional.arm.FEAT_SVE", SVE)
+
+ // from empirical observation
+ setFeature(c, "hw.optional.AdvSIMD_HPFPCvt", ASIMDHP)
+ setFeature(c, "hw.optional.armv8_1_atomics", ATOMICS)
+ setFeature(c, "hw.optional.floatingpoint", FP)
+ setFeature(c, "hw.optional.armv8_2_sha3", SHA3)
+ setFeature(c, "hw.optional.armv8_2_sha512", SHA512)
+ setFeature(c, "hw.optional.armv8_3_compnum", FCMA)
+ setFeature(c, "hw.optional.armv8_crc32", CRC32)
+}
diff --git a/vendor/github.com/klauspost/cpuid/v2/os_other_arm64.go b/vendor/github.com/klauspost/cpuid/v2/os_other_arm64.go
index 1a951e6c..8733ba34 100644
--- a/vendor/github.com/klauspost/cpuid/v2/os_other_arm64.go
+++ b/vendor/github.com/klauspost/cpuid/v2/os_other_arm64.go
@@ -1,8 +1,7 @@
// Copyright (c) 2020 Klaus Post, released under MIT License. See LICENSE file.
-// +build arm64
-// +build !linux
-// +build !darwin
+//go:build arm64 && !linux && !darwin
+// +build arm64,!linux,!darwin
package cpuid
diff --git a/vendor/github.com/klauspost/cpuid/v2/os_safe_linux_arm64.go b/vendor/github.com/klauspost/cpuid/v2/os_safe_linux_arm64.go
index 4d0b8b46..f8f201b5 100644
--- a/vendor/github.com/klauspost/cpuid/v2/os_safe_linux_arm64.go
+++ b/vendor/github.com/klauspost/cpuid/v2/os_safe_linux_arm64.go
@@ -1,6 +1,7 @@
// Copyright (c) 2021 Klaus Post, released under MIT License. See LICENSE file.
-//+build nounsafe
+//go:build nounsafe
+// +build nounsafe
package cpuid
diff --git a/vendor/github.com/klauspost/cpuid/v2/os_unsafe_linux_arm64.go b/vendor/github.com/klauspost/cpuid/v2/os_unsafe_linux_arm64.go
index 32980028..92af622e 100644
--- a/vendor/github.com/klauspost/cpuid/v2/os_unsafe_linux_arm64.go
+++ b/vendor/github.com/klauspost/cpuid/v2/os_unsafe_linux_arm64.go
@@ -1,6 +1,7 @@
// Copyright (c) 2021 Klaus Post, released under MIT License. See LICENSE file.
-//+build !nounsafe
+//go:build !nounsafe
+// +build !nounsafe
package cpuid
diff --git a/vendor/github.com/mailru/easyjson/LICENSE b/vendor/github.com/mailru/easyjson/LICENSE
deleted file mode 100644
index fbff658f..00000000
--- a/vendor/github.com/mailru/easyjson/LICENSE
+++ /dev/null
@@ -1,7 +0,0 @@
-Copyright (c) 2016 Mail.Ru Group
-
-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/mailru/easyjson/buffer/pool.go b/vendor/github.com/mailru/easyjson/buffer/pool.go
deleted file mode 100644
index 598a54af..00000000
--- a/vendor/github.com/mailru/easyjson/buffer/pool.go
+++ /dev/null
@@ -1,278 +0,0 @@
-// Package buffer implements a buffer for serialization, consisting of a chain of []byte-s to
-// reduce copying and to allow reuse of individual chunks.
-package buffer
-
-import (
- "io"
- "net"
- "sync"
-)
-
-// PoolConfig contains configuration for the allocation and reuse strategy.
-type PoolConfig struct {
- StartSize int // Minimum chunk size that is allocated.
- PooledSize int // Minimum chunk size that is reused, reusing chunks too small will result in overhead.
- MaxSize int // Maximum chunk size that will be allocated.
-}
-
-var config = PoolConfig{
- StartSize: 128,
- PooledSize: 512,
- MaxSize: 32768,
-}
-
-// Reuse pool: chunk size -> pool.
-var buffers = map[int]*sync.Pool{}
-
-func initBuffers() {
- for l := config.PooledSize; l <= config.MaxSize; l *= 2 {
- buffers[l] = new(sync.Pool)
- }
-}
-
-func init() {
- initBuffers()
-}
-
-// Init sets up a non-default pooling and allocation strategy. Should be run before serialization is done.
-func Init(cfg PoolConfig) {
- config = cfg
- initBuffers()
-}
-
-// putBuf puts a chunk to reuse pool if it can be reused.
-func putBuf(buf []byte) {
- size := cap(buf)
- if size < config.PooledSize {
- return
- }
- if c := buffers[size]; c != nil {
- c.Put(buf[:0])
- }
-}
-
-// getBuf gets a chunk from reuse pool or creates a new one if reuse failed.
-func getBuf(size int) []byte {
- if size >= config.PooledSize {
- if c := buffers[size]; c != nil {
- v := c.Get()
- if v != nil {
- return v.([]byte)
- }
- }
- }
- return make([]byte, 0, size)
-}
-
-// Buffer is a buffer optimized for serialization without extra copying.
-type Buffer struct {
-
- // Buf is the current chunk that can be used for serialization.
- Buf []byte
-
- toPool []byte
- bufs [][]byte
-}
-
-// EnsureSpace makes sure that the current chunk contains at least s free bytes,
-// possibly creating a new chunk.
-func (b *Buffer) EnsureSpace(s int) {
- if cap(b.Buf)-len(b.Buf) < s {
- b.ensureSpaceSlow(s)
- }
-}
-
-func (b *Buffer) ensureSpaceSlow(s int) {
- l := len(b.Buf)
- if l > 0 {
- if cap(b.toPool) != cap(b.Buf) {
- // Chunk was reallocated, toPool can be pooled.
- putBuf(b.toPool)
- }
- if cap(b.bufs) == 0 {
- b.bufs = make([][]byte, 0, 8)
- }
- b.bufs = append(b.bufs, b.Buf)
- l = cap(b.toPool) * 2
- } else {
- l = config.StartSize
- }
-
- if l > config.MaxSize {
- l = config.MaxSize
- }
- b.Buf = getBuf(l)
- b.toPool = b.Buf
-}
-
-// AppendByte appends a single byte to buffer.
-func (b *Buffer) AppendByte(data byte) {
- b.EnsureSpace(1)
- b.Buf = append(b.Buf, data)
-}
-
-// AppendBytes appends a byte slice to buffer.
-func (b *Buffer) AppendBytes(data []byte) {
- if len(data) <= cap(b.Buf)-len(b.Buf) {
- b.Buf = append(b.Buf, data...) // fast path
- } else {
- b.appendBytesSlow(data)
- }
-}
-
-func (b *Buffer) appendBytesSlow(data []byte) {
- for len(data) > 0 {
- b.EnsureSpace(1)
-
- sz := cap(b.Buf) - len(b.Buf)
- if sz > len(data) {
- sz = len(data)
- }
-
- b.Buf = append(b.Buf, data[:sz]...)
- data = data[sz:]
- }
-}
-
-// AppendString appends a string to buffer.
-func (b *Buffer) AppendString(data string) {
- if len(data) <= cap(b.Buf)-len(b.Buf) {
- b.Buf = append(b.Buf, data...) // fast path
- } else {
- b.appendStringSlow(data)
- }
-}
-
-func (b *Buffer) appendStringSlow(data string) {
- for len(data) > 0 {
- b.EnsureSpace(1)
-
- sz := cap(b.Buf) - len(b.Buf)
- if sz > len(data) {
- sz = len(data)
- }
-
- b.Buf = append(b.Buf, data[:sz]...)
- data = data[sz:]
- }
-}
-
-// Size computes the size of a buffer by adding sizes of every chunk.
-func (b *Buffer) Size() int {
- size := len(b.Buf)
- for _, buf := range b.bufs {
- size += len(buf)
- }
- return size
-}
-
-// DumpTo outputs the contents of a buffer to a writer and resets the buffer.
-func (b *Buffer) DumpTo(w io.Writer) (written int, err error) {
- bufs := net.Buffers(b.bufs)
- if len(b.Buf) > 0 {
- bufs = append(bufs, b.Buf)
- }
- n, err := bufs.WriteTo(w)
-
- for _, buf := range b.bufs {
- putBuf(buf)
- }
- putBuf(b.toPool)
-
- b.bufs = nil
- b.Buf = nil
- b.toPool = nil
-
- return int(n), err
-}
-
-// BuildBytes creates a single byte slice with all the contents of the buffer. Data is
-// copied if it does not fit in a single chunk. You can optionally provide one byte
-// slice as argument that it will try to reuse.
-func (b *Buffer) BuildBytes(reuse ...[]byte) []byte {
- if len(b.bufs) == 0 {
- ret := b.Buf
- b.toPool = nil
- b.Buf = nil
- return ret
- }
-
- var ret []byte
- size := b.Size()
-
- // If we got a buffer as argument and it is big enough, reuse it.
- if len(reuse) == 1 && cap(reuse[0]) >= size {
- ret = reuse[0][:0]
- } else {
- ret = make([]byte, 0, size)
- }
- for _, buf := range b.bufs {
- ret = append(ret, buf...)
- putBuf(buf)
- }
-
- ret = append(ret, b.Buf...)
- putBuf(b.toPool)
-
- b.bufs = nil
- b.toPool = nil
- b.Buf = nil
-
- return ret
-}
-
-type readCloser struct {
- offset int
- bufs [][]byte
-}
-
-func (r *readCloser) Read(p []byte) (n int, err error) {
- for _, buf := range r.bufs {
- // Copy as much as we can.
- x := copy(p[n:], buf[r.offset:])
- n += x // Increment how much we filled.
-
- // Did we empty the whole buffer?
- if r.offset+x == len(buf) {
- // On to the next buffer.
- r.offset = 0
- r.bufs = r.bufs[1:]
-
- // We can release this buffer.
- putBuf(buf)
- } else {
- r.offset += x
- }
-
- if n == len(p) {
- break
- }
- }
- // No buffers left or nothing read?
- if len(r.bufs) == 0 {
- err = io.EOF
- }
- return
-}
-
-func (r *readCloser) Close() error {
- // Release all remaining buffers.
- for _, buf := range r.bufs {
- putBuf(buf)
- }
- // In case Close gets called multiple times.
- r.bufs = nil
-
- return nil
-}
-
-// ReadCloser creates an io.ReadCloser with all the contents of the buffer.
-func (b *Buffer) ReadCloser() io.ReadCloser {
- ret := &readCloser{0, append(b.bufs, b.Buf)}
-
- b.bufs = nil
- b.toPool = nil
- b.Buf = nil
-
- return ret
-}
diff --git a/vendor/github.com/mailru/easyjson/jlexer/bytestostr.go b/vendor/github.com/mailru/easyjson/jlexer/bytestostr.go
deleted file mode 100644
index e68108f8..00000000
--- a/vendor/github.com/mailru/easyjson/jlexer/bytestostr.go
+++ /dev/null
@@ -1,21 +0,0 @@
-// This file will only be included to the build if neither
-// easyjson_nounsafe nor appengine build tag is set. See README notes
-// for more details.
-
-//+build !easyjson_nounsafe
-//+build !appengine
-
-package jlexer
-
-import (
- "unsafe"
-)
-
-// bytesToStr creates a string pointing at the slice to avoid copying.
-//
-// Warning: the string returned by the function should be used with care, as the whole input data
-// chunk may be either blocked from being freed by GC because of a single string or the buffer.Data
-// may be garbage-collected even when the string exists.
-func bytesToStr(data []byte) string {
- return *(*string)(unsafe.Pointer(&data))
-}
diff --git a/vendor/github.com/mailru/easyjson/jlexer/bytestostr_nounsafe.go b/vendor/github.com/mailru/easyjson/jlexer/bytestostr_nounsafe.go
deleted file mode 100644
index 864d1be6..00000000
--- a/vendor/github.com/mailru/easyjson/jlexer/bytestostr_nounsafe.go
+++ /dev/null
@@ -1,13 +0,0 @@
-// This file is included to the build if any of the buildtags below
-// are defined. Refer to README notes for more details.
-
-//+build easyjson_nounsafe appengine
-
-package jlexer
-
-// bytesToStr creates a string normally from []byte
-//
-// Note that this method is roughly 1.5x slower than using the 'unsafe' method.
-func bytesToStr(data []byte) string {
- return string(data)
-}
diff --git a/vendor/github.com/mailru/easyjson/jlexer/error.go b/vendor/github.com/mailru/easyjson/jlexer/error.go
deleted file mode 100644
index e90ec40d..00000000
--- a/vendor/github.com/mailru/easyjson/jlexer/error.go
+++ /dev/null
@@ -1,15 +0,0 @@
-package jlexer
-
-import "fmt"
-
-// LexerError implements the error interface and represents all possible errors that can be
-// generated during parsing the JSON data.
-type LexerError struct {
- Reason string
- Offset int
- Data string
-}
-
-func (l *LexerError) Error() string {
- return fmt.Sprintf("parse error: %s near offset %d of '%s'", l.Reason, l.Offset, l.Data)
-}
diff --git a/vendor/github.com/mailru/easyjson/jlexer/lexer.go b/vendor/github.com/mailru/easyjson/jlexer/lexer.go
deleted file mode 100644
index a27705b1..00000000
--- a/vendor/github.com/mailru/easyjson/jlexer/lexer.go
+++ /dev/null
@@ -1,1257 +0,0 @@
-// Package jlexer contains a JSON lexer implementation.
-//
-// It is expected that it is mostly used with generated parser code, so the interface is tuned
-// for a parser that knows what kind of data is expected.
-package jlexer
-
-import (
- "bytes"
- "encoding/base64"
- "encoding/json"
- "errors"
- "fmt"
- "io"
- "strconv"
- "unicode"
- "unicode/utf16"
- "unicode/utf8"
-
- "github.com/josharian/intern"
-)
-
-// TokenKind determines type of a token.
-type TokenKind byte
-
-const (
- TokenUndef TokenKind = iota // No token.
- TokenDelim // Delimiter: one of '{', '}', '[' or ']'.
- TokenString // A string literal, e.g. "abc\u1234"
- TokenNumber // Number literal, e.g. 1.5e5
- TokenBool // Boolean literal: true or false.
- TokenNull // null keyword.
-)
-
-// token describes a single token: type, position in the input and value.
-type token struct {
- kind TokenKind // Type of a token.
-
- boolValue bool // Value if a boolean literal token.
- byteValueCloned bool // true if byteValue was allocated and does not refer to original json body
- byteValue []byte // Raw value of a token.
- delimValue byte
-}
-
-// Lexer is a JSON lexer: it iterates over JSON tokens in a byte slice.
-type Lexer struct {
- Data []byte // Input data given to the lexer.
-
- start int // Start of the current token.
- pos int // Current unscanned position in the input stream.
- token token // Last scanned token, if token.kind != TokenUndef.
-
- firstElement bool // Whether current element is the first in array or an object.
- wantSep byte // A comma or a colon character, which need to occur before a token.
-
- UseMultipleErrors bool // If we want to use multiple errors.
- fatalError error // Fatal error occurred during lexing. It is usually a syntax error.
- multipleErrors []*LexerError // Semantic errors occurred during lexing. Marshalling will be continued after finding this errors.
-}
-
-// FetchToken scans the input for the next token.
-func (r *Lexer) FetchToken() {
- r.token.kind = TokenUndef
- r.start = r.pos
-
- // Check if r.Data has r.pos element
- // If it doesn't, it mean corrupted input data
- if len(r.Data) < r.pos {
- r.errParse("Unexpected end of data")
- return
- }
- // Determine the type of a token by skipping whitespace and reading the
- // first character.
- for _, c := range r.Data[r.pos:] {
- switch c {
- case ':', ',':
- if r.wantSep == c {
- r.pos++
- r.start++
- r.wantSep = 0
- } else {
- r.errSyntax()
- }
-
- case ' ', '\t', '\r', '\n':
- r.pos++
- r.start++
-
- case '"':
- if r.wantSep != 0 {
- r.errSyntax()
- }
-
- r.token.kind = TokenString
- r.fetchString()
- return
-
- case '{', '[':
- if r.wantSep != 0 {
- r.errSyntax()
- }
- r.firstElement = true
- r.token.kind = TokenDelim
- r.token.delimValue = r.Data[r.pos]
- r.pos++
- return
-
- case '}', ']':
- if !r.firstElement && (r.wantSep != ',') {
- r.errSyntax()
- }
- r.wantSep = 0
- r.token.kind = TokenDelim
- r.token.delimValue = r.Data[r.pos]
- r.pos++
- return
-
- case '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '-':
- if r.wantSep != 0 {
- r.errSyntax()
- }
- r.token.kind = TokenNumber
- r.fetchNumber()
- return
-
- case 'n':
- if r.wantSep != 0 {
- r.errSyntax()
- }
-
- r.token.kind = TokenNull
- r.fetchNull()
- return
-
- case 't':
- if r.wantSep != 0 {
- r.errSyntax()
- }
-
- r.token.kind = TokenBool
- r.token.boolValue = true
- r.fetchTrue()
- return
-
- case 'f':
- if r.wantSep != 0 {
- r.errSyntax()
- }
-
- r.token.kind = TokenBool
- r.token.boolValue = false
- r.fetchFalse()
- return
-
- default:
- r.errSyntax()
- return
- }
- }
- r.fatalError = io.EOF
- return
-}
-
-// isTokenEnd returns true if the char can follow a non-delimiter token
-func isTokenEnd(c byte) bool {
- return c == ' ' || c == '\t' || c == '\r' || c == '\n' || c == '[' || c == ']' || c == '{' || c == '}' || c == ',' || c == ':'
-}
-
-// fetchNull fetches and checks remaining bytes of null keyword.
-func (r *Lexer) fetchNull() {
- r.pos += 4
- if r.pos > len(r.Data) ||
- r.Data[r.pos-3] != 'u' ||
- r.Data[r.pos-2] != 'l' ||
- r.Data[r.pos-1] != 'l' ||
- (r.pos != len(r.Data) && !isTokenEnd(r.Data[r.pos])) {
-
- r.pos -= 4
- r.errSyntax()
- }
-}
-
-// fetchTrue fetches and checks remaining bytes of true keyword.
-func (r *Lexer) fetchTrue() {
- r.pos += 4
- if r.pos > len(r.Data) ||
- r.Data[r.pos-3] != 'r' ||
- r.Data[r.pos-2] != 'u' ||
- r.Data[r.pos-1] != 'e' ||
- (r.pos != len(r.Data) && !isTokenEnd(r.Data[r.pos])) {
-
- r.pos -= 4
- r.errSyntax()
- }
-}
-
-// fetchFalse fetches and checks remaining bytes of false keyword.
-func (r *Lexer) fetchFalse() {
- r.pos += 5
- if r.pos > len(r.Data) ||
- r.Data[r.pos-4] != 'a' ||
- r.Data[r.pos-3] != 'l' ||
- r.Data[r.pos-2] != 's' ||
- r.Data[r.pos-1] != 'e' ||
- (r.pos != len(r.Data) && !isTokenEnd(r.Data[r.pos])) {
-
- r.pos -= 5
- r.errSyntax()
- }
-}
-
-// fetchNumber scans a number literal token.
-func (r *Lexer) fetchNumber() {
- hasE := false
- afterE := false
- hasDot := false
-
- r.pos++
- for i, c := range r.Data[r.pos:] {
- switch {
- case c >= '0' && c <= '9':
- afterE = false
- case c == '.' && !hasDot:
- hasDot = true
- case (c == 'e' || c == 'E') && !hasE:
- hasE = true
- hasDot = true
- afterE = true
- case (c == '+' || c == '-') && afterE:
- afterE = false
- default:
- r.pos += i
- if !isTokenEnd(c) {
- r.errSyntax()
- } else {
- r.token.byteValue = r.Data[r.start:r.pos]
- }
- return
- }
- }
-
- r.pos = len(r.Data)
- r.token.byteValue = r.Data[r.start:]
-}
-
-// findStringLen tries to scan into the string literal for ending quote char to determine required size.
-// The size will be exact if no escapes are present and may be inexact if there are escaped chars.
-func findStringLen(data []byte) (isValid bool, length int) {
- for {
- idx := bytes.IndexByte(data, '"')
- if idx == -1 {
- return false, len(data)
- }
- if idx == 0 || (idx > 0 && data[idx-1] != '\\') {
- return true, length + idx
- }
-
- // count \\\\\\\ sequences. even number of slashes means quote is not really escaped
- cnt := 1
- for idx-cnt-1 >= 0 && data[idx-cnt-1] == '\\' {
- cnt++
- }
- if cnt%2 == 0 {
- return true, length + idx
- }
-
- length += idx + 1
- data = data[idx+1:]
- }
-}
-
-// unescapeStringToken performs unescaping of string token.
-// if no escaping is needed, original string is returned, otherwise - a new one allocated
-func (r *Lexer) unescapeStringToken() (err error) {
- data := r.token.byteValue
- var unescapedData []byte
-
- for {
- i := bytes.IndexByte(data, '\\')
- if i == -1 {
- break
- }
-
- escapedRune, escapedBytes, err := decodeEscape(data[i:])
- if err != nil {
- r.errParse(err.Error())
- return err
- }
-
- if unescapedData == nil {
- unescapedData = make([]byte, 0, len(r.token.byteValue))
- }
-
- var d [4]byte
- s := utf8.EncodeRune(d[:], escapedRune)
- unescapedData = append(unescapedData, data[:i]...)
- unescapedData = append(unescapedData, d[:s]...)
-
- data = data[i+escapedBytes:]
- }
-
- if unescapedData != nil {
- r.token.byteValue = append(unescapedData, data...)
- r.token.byteValueCloned = true
- }
- return
-}
-
-// getu4 decodes \uXXXX from the beginning of s, returning the hex value,
-// or it returns -1.
-func getu4(s []byte) rune {
- if len(s) < 6 || s[0] != '\\' || s[1] != 'u' {
- return -1
- }
- var val rune
- for i := 2; i < len(s) && i < 6; i++ {
- var v byte
- c := s[i]
- switch c {
- case '0', '1', '2', '3', '4', '5', '6', '7', '8', '9':
- v = c - '0'
- case 'a', 'b', 'c', 'd', 'e', 'f':
- v = c - 'a' + 10
- case 'A', 'B', 'C', 'D', 'E', 'F':
- v = c - 'A' + 10
- default:
- return -1
- }
-
- val <<= 4
- val |= rune(v)
- }
- return val
-}
-
-// decodeEscape processes a single escape sequence and returns number of bytes processed.
-func decodeEscape(data []byte) (decoded rune, bytesProcessed int, err error) {
- if len(data) < 2 {
- return 0, 0, errors.New("incorrect escape symbol \\ at the end of token")
- }
-
- c := data[1]
- switch c {
- case '"', '/', '\\':
- return rune(c), 2, nil
- case 'b':
- return '\b', 2, nil
- case 'f':
- return '\f', 2, nil
- case 'n':
- return '\n', 2, nil
- case 'r':
- return '\r', 2, nil
- case 't':
- return '\t', 2, nil
- case 'u':
- rr := getu4(data)
- if rr < 0 {
- return 0, 0, errors.New("incorrectly escaped \\uXXXX sequence")
- }
-
- read := 6
- if utf16.IsSurrogate(rr) {
- rr1 := getu4(data[read:])
- if dec := utf16.DecodeRune(rr, rr1); dec != unicode.ReplacementChar {
- read += 6
- rr = dec
- } else {
- rr = unicode.ReplacementChar
- }
- }
- return rr, read, nil
- }
-
- return 0, 0, errors.New("incorrectly escaped bytes")
-}
-
-// fetchString scans a string literal token.
-func (r *Lexer) fetchString() {
- r.pos++
- data := r.Data[r.pos:]
-
- isValid, length := findStringLen(data)
- if !isValid {
- r.pos += length
- r.errParse("unterminated string literal")
- return
- }
- r.token.byteValue = data[:length]
- r.pos += length + 1 // skip closing '"' as well
-}
-
-// scanToken scans the next token if no token is currently available in the lexer.
-func (r *Lexer) scanToken() {
- if r.token.kind != TokenUndef || r.fatalError != nil {
- return
- }
-
- r.FetchToken()
-}
-
-// consume resets the current token to allow scanning the next one.
-func (r *Lexer) consume() {
- r.token.kind = TokenUndef
- r.token.byteValueCloned = false
- r.token.delimValue = 0
-}
-
-// Ok returns true if no error (including io.EOF) was encountered during scanning.
-func (r *Lexer) Ok() bool {
- return r.fatalError == nil
-}
-
-const maxErrorContextLen = 13
-
-func (r *Lexer) errParse(what string) {
- if r.fatalError == nil {
- var str string
- if len(r.Data)-r.pos <= maxErrorContextLen {
- str = string(r.Data)
- } else {
- str = string(r.Data[r.pos:r.pos+maxErrorContextLen-3]) + "..."
- }
- r.fatalError = &LexerError{
- Reason: what,
- Offset: r.pos,
- Data: str,
- }
- }
-}
-
-func (r *Lexer) errSyntax() {
- r.errParse("syntax error")
-}
-
-func (r *Lexer) errInvalidToken(expected string) {
- if r.fatalError != nil {
- return
- }
- if r.UseMultipleErrors {
- r.pos = r.start
- r.consume()
- r.SkipRecursive()
- switch expected {
- case "[":
- r.token.delimValue = ']'
- r.token.kind = TokenDelim
- case "{":
- r.token.delimValue = '}'
- r.token.kind = TokenDelim
- }
- r.addNonfatalError(&LexerError{
- Reason: fmt.Sprintf("expected %s", expected),
- Offset: r.start,
- Data: string(r.Data[r.start:r.pos]),
- })
- return
- }
-
- var str string
- if len(r.token.byteValue) <= maxErrorContextLen {
- str = string(r.token.byteValue)
- } else {
- str = string(r.token.byteValue[:maxErrorContextLen-3]) + "..."
- }
- r.fatalError = &LexerError{
- Reason: fmt.Sprintf("expected %s", expected),
- Offset: r.pos,
- Data: str,
- }
-}
-
-func (r *Lexer) GetPos() int {
- return r.pos
-}
-
-// Delim consumes a token and verifies that it is the given delimiter.
-func (r *Lexer) Delim(c byte) {
- if r.token.kind == TokenUndef && r.Ok() {
- r.FetchToken()
- }
-
- if !r.Ok() || r.token.delimValue != c {
- r.consume() // errInvalidToken can change token if UseMultipleErrors is enabled.
- r.errInvalidToken(string([]byte{c}))
- } else {
- r.consume()
- }
-}
-
-// IsDelim returns true if there was no scanning error and next token is the given delimiter.
-func (r *Lexer) IsDelim(c byte) bool {
- if r.token.kind == TokenUndef && r.Ok() {
- r.FetchToken()
- }
- return !r.Ok() || r.token.delimValue == c
-}
-
-// Null verifies that the next token is null and consumes it.
-func (r *Lexer) Null() {
- if r.token.kind == TokenUndef && r.Ok() {
- r.FetchToken()
- }
- if !r.Ok() || r.token.kind != TokenNull {
- r.errInvalidToken("null")
- }
- r.consume()
-}
-
-// IsNull returns true if the next token is a null keyword.
-func (r *Lexer) IsNull() bool {
- if r.token.kind == TokenUndef && r.Ok() {
- r.FetchToken()
- }
- return r.Ok() && r.token.kind == TokenNull
-}
-
-// Skip skips a single token.
-func (r *Lexer) Skip() {
- if r.token.kind == TokenUndef && r.Ok() {
- r.FetchToken()
- }
- r.consume()
-}
-
-// SkipRecursive skips next array or object completely, or just skips a single token if not
-// an array/object.
-//
-// Note: no syntax validation is performed on the skipped data.
-func (r *Lexer) SkipRecursive() {
- r.scanToken()
- var start, end byte
- startPos := r.start
-
- switch r.token.delimValue {
- case '{':
- start, end = '{', '}'
- case '[':
- start, end = '[', ']'
- default:
- r.consume()
- return
- }
-
- r.consume()
-
- level := 1
- inQuotes := false
- wasEscape := false
-
- for i, c := range r.Data[r.pos:] {
- switch {
- case c == start && !inQuotes:
- level++
- case c == end && !inQuotes:
- level--
- if level == 0 {
- r.pos += i + 1
- if !json.Valid(r.Data[startPos:r.pos]) {
- r.pos = len(r.Data)
- r.fatalError = &LexerError{
- Reason: "skipped array/object json value is invalid",
- Offset: r.pos,
- Data: string(r.Data[r.pos:]),
- }
- }
- return
- }
- case c == '\\' && inQuotes:
- wasEscape = !wasEscape
- continue
- case c == '"' && inQuotes:
- inQuotes = wasEscape
- case c == '"':
- inQuotes = true
- }
- wasEscape = false
- }
- r.pos = len(r.Data)
- r.fatalError = &LexerError{
- Reason: "EOF reached while skipping array/object or token",
- Offset: r.pos,
- Data: string(r.Data[r.pos:]),
- }
-}
-
-// Raw fetches the next item recursively as a data slice
-func (r *Lexer) Raw() []byte {
- r.SkipRecursive()
- if !r.Ok() {
- return nil
- }
- return r.Data[r.start:r.pos]
-}
-
-// IsStart returns whether the lexer is positioned at the start
-// of an input string.
-func (r *Lexer) IsStart() bool {
- return r.pos == 0
-}
-
-// Consumed reads all remaining bytes from the input, publishing an error if
-// there is anything but whitespace remaining.
-func (r *Lexer) Consumed() {
- if r.pos > len(r.Data) || !r.Ok() {
- return
- }
-
- for _, c := range r.Data[r.pos:] {
- if c != ' ' && c != '\t' && c != '\r' && c != '\n' {
- r.AddError(&LexerError{
- Reason: "invalid character '" + string(c) + "' after top-level value",
- Offset: r.pos,
- Data: string(r.Data[r.pos:]),
- })
- return
- }
-
- r.pos++
- r.start++
- }
-}
-
-func (r *Lexer) unsafeString(skipUnescape bool) (string, []byte) {
- if r.token.kind == TokenUndef && r.Ok() {
- r.FetchToken()
- }
- if !r.Ok() || r.token.kind != TokenString {
- r.errInvalidToken("string")
- return "", nil
- }
- if !skipUnescape {
- if err := r.unescapeStringToken(); err != nil {
- r.errInvalidToken("string")
- return "", nil
- }
- }
-
- bytes := r.token.byteValue
- ret := bytesToStr(r.token.byteValue)
- r.consume()
- return ret, bytes
-}
-
-// UnsafeString returns the string value if the token is a string literal.
-//
-// Warning: returned string may point to the input buffer, so the string should not outlive
-// the input buffer. Intended pattern of usage is as an argument to a switch statement.
-func (r *Lexer) UnsafeString() string {
- ret, _ := r.unsafeString(false)
- return ret
-}
-
-// UnsafeBytes returns the byte slice if the token is a string literal.
-func (r *Lexer) UnsafeBytes() []byte {
- _, ret := r.unsafeString(false)
- return ret
-}
-
-// UnsafeFieldName returns current member name string token
-func (r *Lexer) UnsafeFieldName(skipUnescape bool) string {
- ret, _ := r.unsafeString(skipUnescape)
- return ret
-}
-
-// String reads a string literal.
-func (r *Lexer) String() string {
- if r.token.kind == TokenUndef && r.Ok() {
- r.FetchToken()
- }
- if !r.Ok() || r.token.kind != TokenString {
- r.errInvalidToken("string")
- return ""
- }
- if err := r.unescapeStringToken(); err != nil {
- r.errInvalidToken("string")
- return ""
- }
- var ret string
- if r.token.byteValueCloned {
- ret = bytesToStr(r.token.byteValue)
- } else {
- ret = string(r.token.byteValue)
- }
- r.consume()
- return ret
-}
-
-// StringIntern reads a string literal, and performs string interning on it.
-func (r *Lexer) StringIntern() string {
- if r.token.kind == TokenUndef && r.Ok() {
- r.FetchToken()
- }
- if !r.Ok() || r.token.kind != TokenString {
- r.errInvalidToken("string")
- return ""
- }
- if err := r.unescapeStringToken(); err != nil {
- r.errInvalidToken("string")
- return ""
- }
- ret := intern.Bytes(r.token.byteValue)
- r.consume()
- return ret
-}
-
-// Bytes reads a string literal and base64 decodes it into a byte slice.
-func (r *Lexer) Bytes() []byte {
- if r.token.kind == TokenUndef && r.Ok() {
- r.FetchToken()
- }
- if !r.Ok() || r.token.kind != TokenString {
- r.errInvalidToken("string")
- return nil
- }
- if err := r.unescapeStringToken(); err != nil {
- r.errInvalidToken("string")
- return nil
- }
- ret := make([]byte, base64.StdEncoding.DecodedLen(len(r.token.byteValue)))
- n, err := base64.StdEncoding.Decode(ret, r.token.byteValue)
- if err != nil {
- r.fatalError = &LexerError{
- Reason: err.Error(),
- }
- return nil
- }
-
- r.consume()
- return ret[:n]
-}
-
-// Bool reads a true or false boolean keyword.
-func (r *Lexer) Bool() bool {
- if r.token.kind == TokenUndef && r.Ok() {
- r.FetchToken()
- }
- if !r.Ok() || r.token.kind != TokenBool {
- r.errInvalidToken("bool")
- return false
- }
- ret := r.token.boolValue
- r.consume()
- return ret
-}
-
-func (r *Lexer) number() string {
- if r.token.kind == TokenUndef && r.Ok() {
- r.FetchToken()
- }
- if !r.Ok() || r.token.kind != TokenNumber {
- r.errInvalidToken("number")
- return ""
- }
- ret := bytesToStr(r.token.byteValue)
- r.consume()
- return ret
-}
-
-func (r *Lexer) Uint8() uint8 {
- s := r.number()
- if !r.Ok() {
- return 0
- }
-
- n, err := strconv.ParseUint(s, 10, 8)
- if err != nil {
- r.addNonfatalError(&LexerError{
- Offset: r.start,
- Reason: err.Error(),
- Data: s,
- })
- }
- return uint8(n)
-}
-
-func (r *Lexer) Uint16() uint16 {
- s := r.number()
- if !r.Ok() {
- return 0
- }
-
- n, err := strconv.ParseUint(s, 10, 16)
- if err != nil {
- r.addNonfatalError(&LexerError{
- Offset: r.start,
- Reason: err.Error(),
- Data: s,
- })
- }
- return uint16(n)
-}
-
-func (r *Lexer) Uint32() uint32 {
- s := r.number()
- if !r.Ok() {
- return 0
- }
-
- n, err := strconv.ParseUint(s, 10, 32)
- if err != nil {
- r.addNonfatalError(&LexerError{
- Offset: r.start,
- Reason: err.Error(),
- Data: s,
- })
- }
- return uint32(n)
-}
-
-func (r *Lexer) Uint64() uint64 {
- s := r.number()
- if !r.Ok() {
- return 0
- }
-
- n, err := strconv.ParseUint(s, 10, 64)
- if err != nil {
- r.addNonfatalError(&LexerError{
- Offset: r.start,
- Reason: err.Error(),
- Data: s,
- })
- }
- return n
-}
-
-func (r *Lexer) Uint() uint {
- return uint(r.Uint64())
-}
-
-func (r *Lexer) Int8() int8 {
- s := r.number()
- if !r.Ok() {
- return 0
- }
-
- n, err := strconv.ParseInt(s, 10, 8)
- if err != nil {
- r.addNonfatalError(&LexerError{
- Offset: r.start,
- Reason: err.Error(),
- Data: s,
- })
- }
- return int8(n)
-}
-
-func (r *Lexer) Int16() int16 {
- s := r.number()
- if !r.Ok() {
- return 0
- }
-
- n, err := strconv.ParseInt(s, 10, 16)
- if err != nil {
- r.addNonfatalError(&LexerError{
- Offset: r.start,
- Reason: err.Error(),
- Data: s,
- })
- }
- return int16(n)
-}
-
-func (r *Lexer) Int32() int32 {
- s := r.number()
- if !r.Ok() {
- return 0
- }
-
- n, err := strconv.ParseInt(s, 10, 32)
- if err != nil {
- r.addNonfatalError(&LexerError{
- Offset: r.start,
- Reason: err.Error(),
- Data: s,
- })
- }
- return int32(n)
-}
-
-func (r *Lexer) Int64() int64 {
- s := r.number()
- if !r.Ok() {
- return 0
- }
-
- n, err := strconv.ParseInt(s, 10, 64)
- if err != nil {
- r.addNonfatalError(&LexerError{
- Offset: r.start,
- Reason: err.Error(),
- Data: s,
- })
- }
- return n
-}
-
-func (r *Lexer) Int() int {
- return int(r.Int64())
-}
-
-func (r *Lexer) Uint8Str() uint8 {
- s, b := r.unsafeString(false)
- if !r.Ok() {
- return 0
- }
-
- n, err := strconv.ParseUint(s, 10, 8)
- if err != nil {
- r.addNonfatalError(&LexerError{
- Offset: r.start,
- Reason: err.Error(),
- Data: string(b),
- })
- }
- return uint8(n)
-}
-
-func (r *Lexer) Uint16Str() uint16 {
- s, b := r.unsafeString(false)
- if !r.Ok() {
- return 0
- }
-
- n, err := strconv.ParseUint(s, 10, 16)
- if err != nil {
- r.addNonfatalError(&LexerError{
- Offset: r.start,
- Reason: err.Error(),
- Data: string(b),
- })
- }
- return uint16(n)
-}
-
-func (r *Lexer) Uint32Str() uint32 {
- s, b := r.unsafeString(false)
- if !r.Ok() {
- return 0
- }
-
- n, err := strconv.ParseUint(s, 10, 32)
- if err != nil {
- r.addNonfatalError(&LexerError{
- Offset: r.start,
- Reason: err.Error(),
- Data: string(b),
- })
- }
- return uint32(n)
-}
-
-func (r *Lexer) Uint64Str() uint64 {
- s, b := r.unsafeString(false)
- if !r.Ok() {
- return 0
- }
-
- n, err := strconv.ParseUint(s, 10, 64)
- if err != nil {
- r.addNonfatalError(&LexerError{
- Offset: r.start,
- Reason: err.Error(),
- Data: string(b),
- })
- }
- return n
-}
-
-func (r *Lexer) UintStr() uint {
- return uint(r.Uint64Str())
-}
-
-func (r *Lexer) UintptrStr() uintptr {
- return uintptr(r.Uint64Str())
-}
-
-func (r *Lexer) Int8Str() int8 {
- s, b := r.unsafeString(false)
- if !r.Ok() {
- return 0
- }
-
- n, err := strconv.ParseInt(s, 10, 8)
- if err != nil {
- r.addNonfatalError(&LexerError{
- Offset: r.start,
- Reason: err.Error(),
- Data: string(b),
- })
- }
- return int8(n)
-}
-
-func (r *Lexer) Int16Str() int16 {
- s, b := r.unsafeString(false)
- if !r.Ok() {
- return 0
- }
-
- n, err := strconv.ParseInt(s, 10, 16)
- if err != nil {
- r.addNonfatalError(&LexerError{
- Offset: r.start,
- Reason: err.Error(),
- Data: string(b),
- })
- }
- return int16(n)
-}
-
-func (r *Lexer) Int32Str() int32 {
- s, b := r.unsafeString(false)
- if !r.Ok() {
- return 0
- }
-
- n, err := strconv.ParseInt(s, 10, 32)
- if err != nil {
- r.addNonfatalError(&LexerError{
- Offset: r.start,
- Reason: err.Error(),
- Data: string(b),
- })
- }
- return int32(n)
-}
-
-func (r *Lexer) Int64Str() int64 {
- s, b := r.unsafeString(false)
- if !r.Ok() {
- return 0
- }
-
- n, err := strconv.ParseInt(s, 10, 64)
- if err != nil {
- r.addNonfatalError(&LexerError{
- Offset: r.start,
- Reason: err.Error(),
- Data: string(b),
- })
- }
- return n
-}
-
-func (r *Lexer) IntStr() int {
- return int(r.Int64Str())
-}
-
-func (r *Lexer) Float32() float32 {
- s := r.number()
- if !r.Ok() {
- return 0
- }
-
- n, err := strconv.ParseFloat(s, 32)
- if err != nil {
- r.addNonfatalError(&LexerError{
- Offset: r.start,
- Reason: err.Error(),
- Data: s,
- })
- }
- return float32(n)
-}
-
-func (r *Lexer) Float32Str() float32 {
- s, b := r.unsafeString(false)
- if !r.Ok() {
- return 0
- }
- n, err := strconv.ParseFloat(s, 32)
- if err != nil {
- r.addNonfatalError(&LexerError{
- Offset: r.start,
- Reason: err.Error(),
- Data: string(b),
- })
- }
- return float32(n)
-}
-
-func (r *Lexer) Float64() float64 {
- s := r.number()
- if !r.Ok() {
- return 0
- }
-
- n, err := strconv.ParseFloat(s, 64)
- if err != nil {
- r.addNonfatalError(&LexerError{
- Offset: r.start,
- Reason: err.Error(),
- Data: s,
- })
- }
- return n
-}
-
-func (r *Lexer) Float64Str() float64 {
- s, b := r.unsafeString(false)
- if !r.Ok() {
- return 0
- }
- n, err := strconv.ParseFloat(s, 64)
- if err != nil {
- r.addNonfatalError(&LexerError{
- Offset: r.start,
- Reason: err.Error(),
- Data: string(b),
- })
- }
- return n
-}
-
-func (r *Lexer) Error() error {
- return r.fatalError
-}
-
-func (r *Lexer) AddError(e error) {
- if r.fatalError == nil {
- r.fatalError = e
- }
-}
-
-func (r *Lexer) AddNonFatalError(e error) {
- r.addNonfatalError(&LexerError{
- Offset: r.start,
- Data: string(r.Data[r.start:r.pos]),
- Reason: e.Error(),
- })
-}
-
-func (r *Lexer) addNonfatalError(err *LexerError) {
- if r.UseMultipleErrors {
- // We don't want to add errors with the same offset.
- if len(r.multipleErrors) != 0 && r.multipleErrors[len(r.multipleErrors)-1].Offset == err.Offset {
- return
- }
- r.multipleErrors = append(r.multipleErrors, err)
- return
- }
- r.fatalError = err
-}
-
-func (r *Lexer) GetNonFatalErrors() []*LexerError {
- return r.multipleErrors
-}
-
-// JsonNumber fetches and json.Number from 'encoding/json' package.
-// Both int, float or string, contains them are valid values
-func (r *Lexer) JsonNumber() json.Number {
- if r.token.kind == TokenUndef && r.Ok() {
- r.FetchToken()
- }
- if !r.Ok() {
- r.errInvalidToken("json.Number")
- return json.Number("")
- }
-
- switch r.token.kind {
- case TokenString:
- return json.Number(r.String())
- case TokenNumber:
- return json.Number(r.Raw())
- case TokenNull:
- r.Null()
- return json.Number("")
- default:
- r.errSyntax()
- return json.Number("")
- }
-}
-
-// Interface fetches an interface{} analogous to the 'encoding/json' package.
-func (r *Lexer) Interface() interface{} {
- if r.token.kind == TokenUndef && r.Ok() {
- r.FetchToken()
- }
-
- if !r.Ok() {
- return nil
- }
- switch r.token.kind {
- case TokenString:
- return r.String()
- case TokenNumber:
- return r.Float64()
- case TokenBool:
- return r.Bool()
- case TokenNull:
- r.Null()
- return nil
- }
-
- if r.token.delimValue == '{' {
- r.consume()
-
- ret := map[string]interface{}{}
- for !r.IsDelim('}') {
- key := r.String()
- r.WantColon()
- ret[key] = r.Interface()
- r.WantComma()
- }
- r.Delim('}')
-
- if r.Ok() {
- return ret
- } else {
- return nil
- }
- } else if r.token.delimValue == '[' {
- r.consume()
-
- ret := []interface{}{}
- for !r.IsDelim(']') {
- ret = append(ret, r.Interface())
- r.WantComma()
- }
- r.Delim(']')
-
- if r.Ok() {
- return ret
- } else {
- return nil
- }
- }
- r.errSyntax()
- return nil
-}
-
-// WantComma requires a comma to be present before fetching next token.
-func (r *Lexer) WantComma() {
- r.wantSep = ','
- r.firstElement = false
-}
-
-// WantColon requires a colon to be present before fetching next token.
-func (r *Lexer) WantColon() {
- r.wantSep = ':'
- r.firstElement = false
-}
-
-// CurrentToken returns current token kind if there were no errors and TokenUndef otherwise
-func (r *Lexer) CurrentToken() TokenKind {
- if r.token.kind == TokenUndef && r.Ok() {
- r.FetchToken()
- }
-
- if !r.Ok() {
- return TokenUndef
- }
-
- return r.token.kind
-}
diff --git a/vendor/github.com/mailru/easyjson/jwriter/writer.go b/vendor/github.com/mailru/easyjson/jwriter/writer.go
deleted file mode 100644
index 34b0ade4..00000000
--- a/vendor/github.com/mailru/easyjson/jwriter/writer.go
+++ /dev/null
@@ -1,417 +0,0 @@
-// Package jwriter contains a JSON writer.
-package jwriter
-
-import (
- "io"
- "strconv"
- "unicode/utf8"
-
- "github.com/mailru/easyjson/buffer"
-)
-
-// Flags describe various encoding options. The behavior may be actually implemented in the encoder, but
-// Flags field in Writer is used to set and pass them around.
-type Flags int
-
-const (
- NilMapAsEmpty Flags = 1 << iota // Encode nil map as '{}' rather than 'null'.
- NilSliceAsEmpty // Encode nil slice as '[]' rather than 'null'.
-)
-
-// Writer is a JSON writer.
-type Writer struct {
- Flags Flags
-
- Error error
- Buffer buffer.Buffer
- NoEscapeHTML bool
-}
-
-// Size returns the size of the data that was written out.
-func (w *Writer) Size() int {
- return w.Buffer.Size()
-}
-
-// DumpTo outputs the data to given io.Writer, resetting the buffer.
-func (w *Writer) DumpTo(out io.Writer) (written int, err error) {
- return w.Buffer.DumpTo(out)
-}
-
-// BuildBytes returns writer data as a single byte slice. You can optionally provide one byte slice
-// as argument that it will try to reuse.
-func (w *Writer) BuildBytes(reuse ...[]byte) ([]byte, error) {
- if w.Error != nil {
- return nil, w.Error
- }
-
- return w.Buffer.BuildBytes(reuse...), nil
-}
-
-// ReadCloser returns an io.ReadCloser that can be used to read the data.
-// ReadCloser also resets the buffer.
-func (w *Writer) ReadCloser() (io.ReadCloser, error) {
- if w.Error != nil {
- return nil, w.Error
- }
-
- return w.Buffer.ReadCloser(), nil
-}
-
-// RawByte appends raw binary data to the buffer.
-func (w *Writer) RawByte(c byte) {
- w.Buffer.AppendByte(c)
-}
-
-// RawByte appends raw binary data to the buffer.
-func (w *Writer) RawString(s string) {
- w.Buffer.AppendString(s)
-}
-
-// RawBytesString appends string from bytes to the buffer.
-func (w *Writer) RawBytesString(data []byte, err error) {
- switch {
- case w.Error != nil:
- return
- case err != nil:
- w.Error = err
- default:
- w.String(string(data))
- }
-}
-
-// Raw appends raw binary data to the buffer or sets the error if it is given. Useful for
-// calling with results of MarshalJSON-like functions.
-func (w *Writer) Raw(data []byte, err error) {
- switch {
- case w.Error != nil:
- return
- case err != nil:
- w.Error = err
- case len(data) > 0:
- w.Buffer.AppendBytes(data)
- default:
- w.RawString("null")
- }
-}
-
-// RawText encloses raw binary data in quotes and appends in to the buffer.
-// Useful for calling with results of MarshalText-like functions.
-func (w *Writer) RawText(data []byte, err error) {
- switch {
- case w.Error != nil:
- return
- case err != nil:
- w.Error = err
- case len(data) > 0:
- w.String(string(data))
- default:
- w.RawString("null")
- }
-}
-
-// Base64Bytes appends data to the buffer after base64 encoding it
-func (w *Writer) Base64Bytes(data []byte) {
- if data == nil {
- w.Buffer.AppendString("null")
- return
- }
- w.Buffer.AppendByte('"')
- w.base64(data)
- w.Buffer.AppendByte('"')
-}
-
-func (w *Writer) Uint8(n uint8) {
- w.Buffer.EnsureSpace(3)
- w.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, uint64(n), 10)
-}
-
-func (w *Writer) Uint16(n uint16) {
- w.Buffer.EnsureSpace(5)
- w.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, uint64(n), 10)
-}
-
-func (w *Writer) Uint32(n uint32) {
- w.Buffer.EnsureSpace(10)
- w.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, uint64(n), 10)
-}
-
-func (w *Writer) Uint(n uint) {
- w.Buffer.EnsureSpace(20)
- w.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, uint64(n), 10)
-}
-
-func (w *Writer) Uint64(n uint64) {
- w.Buffer.EnsureSpace(20)
- w.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, n, 10)
-}
-
-func (w *Writer) Int8(n int8) {
- w.Buffer.EnsureSpace(4)
- w.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, int64(n), 10)
-}
-
-func (w *Writer) Int16(n int16) {
- w.Buffer.EnsureSpace(6)
- w.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, int64(n), 10)
-}
-
-func (w *Writer) Int32(n int32) {
- w.Buffer.EnsureSpace(11)
- w.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, int64(n), 10)
-}
-
-func (w *Writer) Int(n int) {
- w.Buffer.EnsureSpace(21)
- w.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, int64(n), 10)
-}
-
-func (w *Writer) Int64(n int64) {
- w.Buffer.EnsureSpace(21)
- w.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, n, 10)
-}
-
-func (w *Writer) Uint8Str(n uint8) {
- w.Buffer.EnsureSpace(3)
- w.Buffer.Buf = append(w.Buffer.Buf, '"')
- w.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, uint64(n), 10)
- w.Buffer.Buf = append(w.Buffer.Buf, '"')
-}
-
-func (w *Writer) Uint16Str(n uint16) {
- w.Buffer.EnsureSpace(5)
- w.Buffer.Buf = append(w.Buffer.Buf, '"')
- w.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, uint64(n), 10)
- w.Buffer.Buf = append(w.Buffer.Buf, '"')
-}
-
-func (w *Writer) Uint32Str(n uint32) {
- w.Buffer.EnsureSpace(10)
- w.Buffer.Buf = append(w.Buffer.Buf, '"')
- w.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, uint64(n), 10)
- w.Buffer.Buf = append(w.Buffer.Buf, '"')
-}
-
-func (w *Writer) UintStr(n uint) {
- w.Buffer.EnsureSpace(20)
- w.Buffer.Buf = append(w.Buffer.Buf, '"')
- w.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, uint64(n), 10)
- w.Buffer.Buf = append(w.Buffer.Buf, '"')
-}
-
-func (w *Writer) Uint64Str(n uint64) {
- w.Buffer.EnsureSpace(20)
- w.Buffer.Buf = append(w.Buffer.Buf, '"')
- w.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, n, 10)
- w.Buffer.Buf = append(w.Buffer.Buf, '"')
-}
-
-func (w *Writer) UintptrStr(n uintptr) {
- w.Buffer.EnsureSpace(20)
- w.Buffer.Buf = append(w.Buffer.Buf, '"')
- w.Buffer.Buf = strconv.AppendUint(w.Buffer.Buf, uint64(n), 10)
- w.Buffer.Buf = append(w.Buffer.Buf, '"')
-}
-
-func (w *Writer) Int8Str(n int8) {
- w.Buffer.EnsureSpace(4)
- w.Buffer.Buf = append(w.Buffer.Buf, '"')
- w.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, int64(n), 10)
- w.Buffer.Buf = append(w.Buffer.Buf, '"')
-}
-
-func (w *Writer) Int16Str(n int16) {
- w.Buffer.EnsureSpace(6)
- w.Buffer.Buf = append(w.Buffer.Buf, '"')
- w.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, int64(n), 10)
- w.Buffer.Buf = append(w.Buffer.Buf, '"')
-}
-
-func (w *Writer) Int32Str(n int32) {
- w.Buffer.EnsureSpace(11)
- w.Buffer.Buf = append(w.Buffer.Buf, '"')
- w.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, int64(n), 10)
- w.Buffer.Buf = append(w.Buffer.Buf, '"')
-}
-
-func (w *Writer) IntStr(n int) {
- w.Buffer.EnsureSpace(21)
- w.Buffer.Buf = append(w.Buffer.Buf, '"')
- w.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, int64(n), 10)
- w.Buffer.Buf = append(w.Buffer.Buf, '"')
-}
-
-func (w *Writer) Int64Str(n int64) {
- w.Buffer.EnsureSpace(21)
- w.Buffer.Buf = append(w.Buffer.Buf, '"')
- w.Buffer.Buf = strconv.AppendInt(w.Buffer.Buf, n, 10)
- w.Buffer.Buf = append(w.Buffer.Buf, '"')
-}
-
-func (w *Writer) Float32(n float32) {
- w.Buffer.EnsureSpace(20)
- w.Buffer.Buf = strconv.AppendFloat(w.Buffer.Buf, float64(n), 'g', -1, 32)
-}
-
-func (w *Writer) Float32Str(n float32) {
- w.Buffer.EnsureSpace(20)
- w.Buffer.Buf = append(w.Buffer.Buf, '"')
- w.Buffer.Buf = strconv.AppendFloat(w.Buffer.Buf, float64(n), 'g', -1, 32)
- w.Buffer.Buf = append(w.Buffer.Buf, '"')
-}
-
-func (w *Writer) Float64(n float64) {
- w.Buffer.EnsureSpace(20)
- w.Buffer.Buf = strconv.AppendFloat(w.Buffer.Buf, n, 'g', -1, 64)
-}
-
-func (w *Writer) Float64Str(n float64) {
- w.Buffer.EnsureSpace(20)
- w.Buffer.Buf = append(w.Buffer.Buf, '"')
- w.Buffer.Buf = strconv.AppendFloat(w.Buffer.Buf, float64(n), 'g', -1, 64)
- w.Buffer.Buf = append(w.Buffer.Buf, '"')
-}
-
-func (w *Writer) Bool(v bool) {
- w.Buffer.EnsureSpace(5)
- if v {
- w.Buffer.Buf = append(w.Buffer.Buf, "true"...)
- } else {
- w.Buffer.Buf = append(w.Buffer.Buf, "false"...)
- }
-}
-
-const chars = "0123456789abcdef"
-
-func getTable(falseValues ...int) [128]bool {
- table := [128]bool{}
-
- for i := 0; i < 128; i++ {
- table[i] = true
- }
-
- for _, v := range falseValues {
- table[v] = false
- }
-
- return table
-}
-
-var (
- htmlEscapeTable = getTable(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, '"', '&', '<', '>', '\\')
- htmlNoEscapeTable = getTable(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, '"', '\\')
-)
-
-func (w *Writer) String(s string) {
- w.Buffer.AppendByte('"')
-
- // Portions of the string that contain no escapes are appended as
- // byte slices.
-
- p := 0 // last non-escape symbol
-
- escapeTable := &htmlEscapeTable
- if w.NoEscapeHTML {
- escapeTable = &htmlNoEscapeTable
- }
-
- for i := 0; i < len(s); {
- c := s[i]
-
- if c < utf8.RuneSelf {
- if escapeTable[c] {
- // single-width character, no escaping is required
- i++
- continue
- }
-
- w.Buffer.AppendString(s[p:i])
- switch c {
- case '\t':
- w.Buffer.AppendString(`\t`)
- case '\r':
- w.Buffer.AppendString(`\r`)
- case '\n':
- w.Buffer.AppendString(`\n`)
- case '\\':
- w.Buffer.AppendString(`\\`)
- case '"':
- w.Buffer.AppendString(`\"`)
- default:
- w.Buffer.AppendString(`\u00`)
- w.Buffer.AppendByte(chars[c>>4])
- w.Buffer.AppendByte(chars[c&0xf])
- }
-
- i++
- p = i
- continue
- }
-
- // broken utf
- runeValue, runeWidth := utf8.DecodeRuneInString(s[i:])
- if runeValue == utf8.RuneError && runeWidth == 1 {
- w.Buffer.AppendString(s[p:i])
- w.Buffer.AppendString(`\ufffd`)
- i++
- p = i
- continue
- }
-
- // jsonp stuff - tab separator and line separator
- if runeValue == '\u2028' || runeValue == '\u2029' {
- w.Buffer.AppendString(s[p:i])
- w.Buffer.AppendString(`\u202`)
- w.Buffer.AppendByte(chars[runeValue&0xf])
- i += runeWidth
- p = i
- continue
- }
- i += runeWidth
- }
- w.Buffer.AppendString(s[p:])
- w.Buffer.AppendByte('"')
-}
-
-const encode = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
-const padChar = '='
-
-func (w *Writer) base64(in []byte) {
-
- if len(in) == 0 {
- return
- }
-
- w.Buffer.EnsureSpace(((len(in)-1)/3 + 1) * 4)
-
- si := 0
- n := (len(in) / 3) * 3
-
- for si < n {
- // Convert 3x 8bit source bytes into 4 bytes
- val := uint(in[si+0])<<16 | uint(in[si+1])<<8 | uint(in[si+2])
-
- w.Buffer.Buf = append(w.Buffer.Buf, encode[val>>18&0x3F], encode[val>>12&0x3F], encode[val>>6&0x3F], encode[val&0x3F])
-
- si += 3
- }
-
- remain := len(in) - si
- if remain == 0 {
- return
- }
-
- // Add the remaining small block
- val := uint(in[si+0]) << 16
- if remain == 2 {
- val |= uint(in[si+1]) << 8
- }
-
- w.Buffer.Buf = append(w.Buffer.Buf, encode[val>>18&0x3F], encode[val>>12&0x3F])
-
- switch remain {
- case 2:
- w.Buffer.Buf = append(w.Buffer.Buf, encode[val>>6&0x3F], byte(padChar))
- case 1:
- w.Buffer.Buf = append(w.Buffer.Buf, byte(padChar), byte(padChar))
- }
-}
diff --git a/vendor/github.com/prometheus/client_golang/prometheus/desc.go b/vendor/github.com/prometheus/client_golang/prometheus/desc.go
index ad347113..2331b8b4 100644
--- a/vendor/github.com/prometheus/client_golang/prometheus/desc.go
+++ b/vendor/github.com/prometheus/client_golang/prometheus/desc.go
@@ -95,7 +95,8 @@ func (v2) NewDesc(fqName, help string, variableLabels ConstrainableLabels, const
help: help,
variableLabels: variableLabels.compile(),
}
- if !model.IsValidMetricName(model.LabelValue(fqName)) {
+ //nolint:staticcheck // TODO: Don't use deprecated model.NameValidationScheme.
+ if !model.NameValidationScheme.IsValidMetricName(fqName) {
d.err = fmt.Errorf("%q is not a valid metric name", fqName)
return d
}
diff --git a/vendor/github.com/prometheus/client_golang/prometheus/internal/difflib.go b/vendor/github.com/prometheus/client_golang/prometheus/internal/difflib.go
index 8b016355..7bac0da3 100644
--- a/vendor/github.com/prometheus/client_golang/prometheus/internal/difflib.go
+++ b/vendor/github.com/prometheus/client_golang/prometheus/internal/difflib.go
@@ -453,7 +453,7 @@ func (m *SequenceMatcher) GetGroupedOpCodes(n int) [][]OpCode {
}
group = append(group, OpCode{c.Tag, i1, i2, j1, j2})
}
- if len(group) > 0 && !(len(group) == 1 && group[0].Tag == 'e') {
+ if len(group) > 0 && (len(group) != 1 || group[0].Tag != 'e') {
groups = append(groups, group)
}
return groups
@@ -568,7 +568,7 @@ func WriteUnifiedDiff(writer io.Writer, diff UnifiedDiff) error {
buf := bufio.NewWriter(writer)
defer buf.Flush()
wf := func(format string, args ...interface{}) error {
- _, err := buf.WriteString(fmt.Sprintf(format, args...))
+ _, err := fmt.Fprintf(buf, format, args...)
return err
}
ws := func(s string) error {
diff --git a/vendor/github.com/prometheus/client_golang/prometheus/internal/go_runtime_metrics.go b/vendor/github.com/prometheus/client_golang/prometheus/internal/go_runtime_metrics.go
index f7f97ef9..d273b664 100644
--- a/vendor/github.com/prometheus/client_golang/prometheus/internal/go_runtime_metrics.go
+++ b/vendor/github.com/prometheus/client_golang/prometheus/internal/go_runtime_metrics.go
@@ -67,7 +67,7 @@ func RuntimeMetricsToProm(d *metrics.Description) (string, string, string, bool)
}
// Our current conversion moves to legacy naming, so use legacy validation.
- valid := model.IsValidLegacyMetricName(namespace + "_" + subsystem + "_" + name)
+ valid := model.LegacyValidation.IsValidMetricName(namespace + "_" + subsystem + "_" + name)
switch d.Kind {
case metrics.KindUint64:
case metrics.KindFloat64:
diff --git a/vendor/github.com/prometheus/client_golang/prometheus/labels.go b/vendor/github.com/prometheus/client_golang/prometheus/labels.go
index c21911f2..5fe8d3b4 100644
--- a/vendor/github.com/prometheus/client_golang/prometheus/labels.go
+++ b/vendor/github.com/prometheus/client_golang/prometheus/labels.go
@@ -184,5 +184,6 @@ func validateLabelValues(vals []string, expectedNumberOfValues int) error {
}
func checkLabelName(l string) bool {
- return model.LabelName(l).IsValid() && !strings.HasPrefix(l, reservedLabelPrefix)
+ //nolint:staticcheck // TODO: Don't use deprecated model.NameValidationScheme.
+ return model.NameValidationScheme.IsValidLabelName(l) && !strings.HasPrefix(l, reservedLabelPrefix)
}
diff --git a/vendor/github.com/prometheus/client_golang/prometheus/metric.go b/vendor/github.com/prometheus/client_golang/prometheus/metric.go
index 592eec3e..76e59f12 100644
--- a/vendor/github.com/prometheus/client_golang/prometheus/metric.go
+++ b/vendor/github.com/prometheus/client_golang/prometheus/metric.go
@@ -186,21 +186,31 @@ func (m *withExemplarsMetric) Write(pb *dto.Metric) error {
case pb.Counter != nil:
pb.Counter.Exemplar = m.exemplars[len(m.exemplars)-1]
case pb.Histogram != nil:
+ h := pb.Histogram
for _, e := range m.exemplars {
- // pb.Histogram.Bucket are sorted by UpperBound.
- i := sort.Search(len(pb.Histogram.Bucket), func(i int) bool {
- return pb.Histogram.Bucket[i].GetUpperBound() >= e.GetValue()
+ if (h.GetZeroThreshold() != 0 || h.GetZeroCount() != 0 ||
+ len(h.PositiveSpan) != 0 || len(h.NegativeSpan) != 0) &&
+ e.GetTimestamp() != nil {
+ h.Exemplars = append(h.Exemplars, e)
+ if len(h.Bucket) == 0 {
+ // Don't proceed to classic buckets if there are none.
+ continue
+ }
+ }
+ // h.Bucket are sorted by UpperBound.
+ i := sort.Search(len(h.Bucket), func(i int) bool {
+ return h.Bucket[i].GetUpperBound() >= e.GetValue()
})
- if i < len(pb.Histogram.Bucket) {
- pb.Histogram.Bucket[i].Exemplar = e
+ if i < len(h.Bucket) {
+ h.Bucket[i].Exemplar = e
} else {
// The +Inf bucket should be explicitly added if there is an exemplar for it, similar to non-const histogram logic in https://github.com/prometheus/client_golang/blob/main/prometheus/histogram.go#L357-L365.
b := &dto.Bucket{
- CumulativeCount: proto.Uint64(pb.Histogram.GetSampleCount()),
+ CumulativeCount: proto.Uint64(h.GetSampleCount()),
UpperBound: proto.Float64(math.Inf(1)),
Exemplar: e,
}
- pb.Histogram.Bucket = append(pb.Histogram.Bucket, b)
+ h.Bucket = append(h.Bucket, b)
}
}
default:
@@ -227,6 +237,7 @@ type Exemplar struct {
// Only last applicable exemplar is injected from the list.
// For example for Counter it means last exemplar is injected.
// For Histogram, it means last applicable exemplar for each bucket is injected.
+// For a Native Histogram, all valid exemplars are injected.
//
// NewMetricWithExemplars works best with MustNewConstMetric and
// MustNewConstHistogram, see example.
diff --git a/vendor/github.com/prometheus/client_golang/prometheus/process_collector_darwin.go b/vendor/github.com/prometheus/client_golang/prometheus/process_collector_darwin.go
index 0a61b984..b32c95fa 100644
--- a/vendor/github.com/prometheus/client_golang/prometheus/process_collector_darwin.go
+++ b/vendor/github.com/prometheus/client_golang/prometheus/process_collector_darwin.go
@@ -25,9 +25,9 @@ import (
"golang.org/x/sys/unix"
)
-// notImplementedErr is returned by stub functions that replace cgo functions, when cgo
+// errNotImplemented is returned by stub functions that replace cgo functions, when cgo
// isn't available.
-var notImplementedErr = errors.New("not implemented")
+var errNotImplemented = errors.New("not implemented")
type memoryInfo struct {
vsize uint64 // Virtual memory size in bytes
@@ -101,7 +101,7 @@ func (c *processCollector) processCollect(ch chan<- Metric) {
if memInfo, err := getMemory(); err == nil {
ch <- MustNewConstMetric(c.rss, GaugeValue, float64(memInfo.rss))
ch <- MustNewConstMetric(c.vsize, GaugeValue, float64(memInfo.vsize))
- } else if !errors.Is(err, notImplementedErr) {
+ } else if !errors.Is(err, errNotImplemented) {
// Don't report an error when support is not compiled in.
c.reportError(ch, c.rss, err)
c.reportError(ch, c.vsize, err)
diff --git a/vendor/github.com/prometheus/client_golang/prometheus/process_collector_mem_nocgo_darwin.go b/vendor/github.com/prometheus/client_golang/prometheus/process_collector_mem_nocgo_darwin.go
index 8ddb0995..37886512 100644
--- a/vendor/github.com/prometheus/client_golang/prometheus/process_collector_mem_nocgo_darwin.go
+++ b/vendor/github.com/prometheus/client_golang/prometheus/process_collector_mem_nocgo_darwin.go
@@ -16,7 +16,7 @@
package prometheus
func getMemory() (*memoryInfo, error) {
- return nil, notImplementedErr
+ return nil, errNotImplemented
}
// describe returns all descriptions of the collector for Darwin.
diff --git a/vendor/github.com/prometheus/client_golang/prometheus/process_collector_procfsenabled.go b/vendor/github.com/prometheus/client_golang/prometheus/process_collector_procfsenabled.go
index 9f4b130b..8074f70f 100644
--- a/vendor/github.com/prometheus/client_golang/prometheus/process_collector_procfsenabled.go
+++ b/vendor/github.com/prometheus/client_golang/prometheus/process_collector_procfsenabled.go
@@ -66,11 +66,11 @@ func (c *processCollector) processCollect(ch chan<- Metric) {
if netstat, err := p.Netstat(); err == nil {
var inOctets, outOctets float64
- if netstat.IpExt.InOctets != nil {
- inOctets = *netstat.IpExt.InOctets
+ if netstat.InOctets != nil {
+ inOctets = *netstat.InOctets
}
- if netstat.IpExt.OutOctets != nil {
- outOctets = *netstat.IpExt.OutOctets
+ if netstat.OutOctets != nil {
+ outOctets = *netstat.OutOctets
}
ch <- MustNewConstMetric(c.inBytes, CounterValue, inOctets)
ch <- MustNewConstMetric(c.outBytes, CounterValue, outOctets)
diff --git a/vendor/github.com/prometheus/client_golang/prometheus/promhttp/instrument_server.go b/vendor/github.com/prometheus/client_golang/prometheus/promhttp/instrument_server.go
index 356edb78..9332b024 100644
--- a/vendor/github.com/prometheus/client_golang/prometheus/promhttp/instrument_server.go
+++ b/vendor/github.com/prometheus/client_golang/prometheus/promhttp/instrument_server.go
@@ -392,7 +392,7 @@ func isLabelCurried(c prometheus.Collector, label string) bool {
func labels(code, method bool, reqMethod string, status int, extraMethods ...string) prometheus.Labels {
labels := prometheus.Labels{}
- if !(code || method) {
+ if !code && !method {
return labels
}
diff --git a/vendor/github.com/prometheus/client_golang/prometheus/vec.go b/vendor/github.com/prometheus/client_golang/prometheus/vec.go
index 2c808eec..487b4665 100644
--- a/vendor/github.com/prometheus/client_golang/prometheus/vec.go
+++ b/vendor/github.com/prometheus/client_golang/prometheus/vec.go
@@ -79,7 +79,7 @@ func (m *MetricVec) DeleteLabelValues(lvs ...string) bool {
return false
}
- return m.metricMap.deleteByHashWithLabelValues(h, lvs, m.curry)
+ return m.deleteByHashWithLabelValues(h, lvs, m.curry)
}
// Delete deletes the metric where the variable labels are the same as those
@@ -101,7 +101,7 @@ func (m *MetricVec) Delete(labels Labels) bool {
return false
}
- return m.metricMap.deleteByHashWithLabels(h, labels, m.curry)
+ return m.deleteByHashWithLabels(h, labels, m.curry)
}
// DeletePartialMatch deletes all metrics where the variable labels contain all of those
@@ -114,7 +114,7 @@ func (m *MetricVec) DeletePartialMatch(labels Labels) int {
labels, closer := constrainLabels(m.desc, labels)
defer closer()
- return m.metricMap.deleteByLabels(labels, m.curry)
+ return m.deleteByLabels(labels, m.curry)
}
// Without explicit forwarding of Describe, Collect, Reset, those methods won't
@@ -216,7 +216,7 @@ func (m *MetricVec) GetMetricWithLabelValues(lvs ...string) (Metric, error) {
return nil, err
}
- return m.metricMap.getOrCreateMetricWithLabelValues(h, lvs, m.curry), nil
+ return m.getOrCreateMetricWithLabelValues(h, lvs, m.curry), nil
}
// GetMetricWith returns the Metric for the given Labels map (the label names
@@ -244,7 +244,7 @@ func (m *MetricVec) GetMetricWith(labels Labels) (Metric, error) {
return nil, err
}
- return m.metricMap.getOrCreateMetricWithLabels(h, labels, m.curry), nil
+ return m.getOrCreateMetricWithLabels(h, labels, m.curry), nil
}
func (m *MetricVec) hashLabelValues(vals []string) (uint64, error) {
diff --git a/vendor/github.com/prometheus/client_golang/prometheus/wrap.go b/vendor/github.com/prometheus/client_golang/prometheus/wrap.go
index 25da157f..2ed12850 100644
--- a/vendor/github.com/prometheus/client_golang/prometheus/wrap.go
+++ b/vendor/github.com/prometheus/client_golang/prometheus/wrap.go
@@ -63,7 +63,7 @@ func WrapRegistererWith(labels Labels, reg Registerer) Registerer {
// metric names that are standardized across applications, as that would break
// horizontal monitoring, for example the metrics provided by the Go collector
// (see NewGoCollector) and the process collector (see NewProcessCollector). (In
-// fact, those metrics are already prefixed with “go_” or “process_”,
+// fact, those metrics are already prefixed with "go_" or "process_",
// respectively.)
//
// Conflicts between Collectors registered through the original Registerer with
@@ -78,6 +78,40 @@ func WrapRegistererWithPrefix(prefix string, reg Registerer) Registerer {
}
}
+// WrapCollectorWith returns a Collector wrapping the provided Collector. The
+// wrapped Collector will add the provided Labels to all Metrics it collects (as
+// ConstLabels). The Metrics collected by the unmodified Collector must not
+// duplicate any of those labels.
+//
+// WrapCollectorWith can be useful to work with multiple instances of a third
+// party library that does not expose enough flexibility on the lifecycle of its
+// registered metrics.
+// For example, let's say you have a foo.New(reg Registerer) constructor that
+// registers metrics but never unregisters them, and you want to create multiple
+// instances of foo.Foo with different labels.
+// The way to achieve that, is to create a new Registry, pass it to foo.New,
+// then use WrapCollectorWith to wrap that Registry with the desired labels and
+// register that as a collector in your main Registry.
+// Then you can un-register the wrapped collector effectively un-registering the
+// metrics registered by foo.New.
+func WrapCollectorWith(labels Labels, c Collector) Collector {
+ return &wrappingCollector{
+ wrappedCollector: c,
+ labels: labels,
+ }
+}
+
+// WrapCollectorWithPrefix returns a Collector wrapping the provided Collector. The
+// wrapped Collector will add the provided prefix to the name of all Metrics it collects.
+//
+// See the documentation of WrapCollectorWith for more details on the use case.
+func WrapCollectorWithPrefix(prefix string, c Collector) Collector {
+ return &wrappingCollector{
+ wrappedCollector: c,
+ prefix: prefix,
+ }
+}
+
type wrappingRegisterer struct {
wrappedRegisterer Registerer
prefix string
diff --git a/vendor/github.com/prometheus/common/expfmt/decode.go b/vendor/github.com/prometheus/common/expfmt/decode.go
index 1448439b..8f8dc65d 100644
--- a/vendor/github.com/prometheus/common/expfmt/decode.go
+++ b/vendor/github.com/prometheus/common/expfmt/decode.go
@@ -70,19 +70,34 @@ func ResponseFormat(h http.Header) Format {
return FmtUnknown
}
-// NewDecoder returns a new decoder based on the given input format.
-// If the input format does not imply otherwise, a text format decoder is returned.
+// NewDecoder returns a new decoder based on the given input format. Metric
+// names are validated based on the provided Format -- if the format requires
+// escaping, raditional Prometheues validity checking is used. Otherwise, names
+// are checked for UTF-8 validity. Supported formats include delimited protobuf
+// and Prometheus text format. For historical reasons, this decoder fallbacks
+// to classic text decoding for any other format. This decoder does not fully
+// support OpenMetrics although it may often succeed due to the similarities
+// between the formats. This decoder may not support the latest features of
+// Prometheus text format and is not intended for high-performance applications.
+// See: https://github.com/prometheus/common/issues/812
func NewDecoder(r io.Reader, format Format) Decoder {
+ scheme := model.LegacyValidation
+ if format.ToEscapingScheme() == model.NoEscaping {
+ scheme = model.UTF8Validation
+ }
switch format.FormatType() {
case TypeProtoDelim:
- return &protoDecoder{r: bufio.NewReader(r)}
+ return &protoDecoder{r: bufio.NewReader(r), s: scheme}
+ case TypeProtoText, TypeProtoCompact:
+ return &errDecoder{err: fmt.Errorf("format %s not supported for decoding", format)}
}
- return &textDecoder{r: r}
+ return &textDecoder{r: r, s: scheme}
}
// protoDecoder implements the Decoder interface for protocol buffers.
type protoDecoder struct {
r protodelim.Reader
+ s model.ValidationScheme
}
// Decode implements the Decoder interface.
@@ -93,7 +108,7 @@ func (d *protoDecoder) Decode(v *dto.MetricFamily) error {
if err := opts.UnmarshalFrom(d.r, v); err != nil {
return err
}
- if !model.IsValidMetricName(model.LabelValue(v.GetName())) {
+ if !d.s.IsValidMetricName(v.GetName()) {
return fmt.Errorf("invalid metric name %q", v.GetName())
}
for _, m := range v.GetMetric() {
@@ -107,7 +122,7 @@ func (d *protoDecoder) Decode(v *dto.MetricFamily) error {
if !model.LabelValue(l.GetValue()).IsValid() {
return fmt.Errorf("invalid label value %q", l.GetValue())
}
- if !model.LabelName(l.GetName()).IsValid() {
+ if !d.s.IsValidLabelName(l.GetName()) {
return fmt.Errorf("invalid label name %q", l.GetName())
}
}
@@ -115,10 +130,20 @@ func (d *protoDecoder) Decode(v *dto.MetricFamily) error {
return nil
}
+// errDecoder is an error-state decoder that always returns the same error.
+type errDecoder struct {
+ err error
+}
+
+func (d *errDecoder) Decode(*dto.MetricFamily) error {
+ return d.err
+}
+
// textDecoder implements the Decoder interface for the text protocol.
type textDecoder struct {
r io.Reader
fams map[string]*dto.MetricFamily
+ s model.ValidationScheme
err error
}
@@ -126,7 +151,7 @@ type textDecoder struct {
func (d *textDecoder) Decode(v *dto.MetricFamily) error {
if d.err == nil {
// Read all metrics in one shot.
- var p TextParser
+ p := NewTextParser(d.s)
d.fams, d.err = p.TextToMetricFamilies(d.r)
// If we don't get an error, store io.EOF for the end.
if d.err == nil {
@@ -195,7 +220,7 @@ func extractSamples(f *dto.MetricFamily, o *DecodeOptions) (model.Vector, error)
return extractSummary(o, f), nil
case dto.MetricType_UNTYPED:
return extractUntyped(o, f), nil
- case dto.MetricType_HISTOGRAM:
+ case dto.MetricType_HISTOGRAM, dto.MetricType_GAUGE_HISTOGRAM:
return extractHistogram(o, f), nil
}
return nil, fmt.Errorf("expfmt.extractSamples: unknown metric family type %v", f.GetType())
@@ -378,9 +403,13 @@ func extractHistogram(o *DecodeOptions, f *dto.MetricFamily) model.Vector {
infSeen = true
}
+ v := q.GetCumulativeCountFloat()
+ if v <= 0 {
+ v = float64(q.GetCumulativeCount())
+ }
samples = append(samples, &model.Sample{
Metric: model.Metric(lset),
- Value: model.SampleValue(q.GetCumulativeCount()),
+ Value: model.SampleValue(v),
Timestamp: timestamp,
})
}
@@ -403,9 +432,13 @@ func extractHistogram(o *DecodeOptions, f *dto.MetricFamily) model.Vector {
}
lset[model.MetricNameLabel] = model.LabelValue(f.GetName() + "_count")
+ v := m.Histogram.GetSampleCountFloat()
+ if v <= 0 {
+ v = float64(m.Histogram.GetSampleCount())
+ }
count := &model.Sample{
Metric: model.Metric(lset),
- Value: model.SampleValue(m.Histogram.GetSampleCount()),
+ Value: model.SampleValue(v),
Timestamp: timestamp,
}
samples = append(samples, count)
diff --git a/vendor/github.com/prometheus/common/expfmt/encode.go b/vendor/github.com/prometheus/common/expfmt/encode.go
index d7f3d76f..73c24dfb 100644
--- a/vendor/github.com/prometheus/common/expfmt/encode.go
+++ b/vendor/github.com/prometheus/common/expfmt/encode.go
@@ -18,14 +18,12 @@ import (
"io"
"net/http"
+ "github.com/munnerz/goautoneg"
+ dto "github.com/prometheus/client_model/go"
"google.golang.org/protobuf/encoding/protodelim"
"google.golang.org/protobuf/encoding/prototext"
"github.com/prometheus/common/model"
-
- "github.com/munnerz/goautoneg"
-
- dto "github.com/prometheus/client_model/go"
)
// Encoder types encode metric families into an underlying wire protocol.
@@ -61,7 +59,7 @@ func (ec encoderCloser) Close() error {
// appropriate accepted type is found, FmtText is returned (which is the
// Prometheus text format). This function will never negotiate FmtOpenMetrics,
// as the support is still experimental. To include the option to negotiate
-// FmtOpenMetrics, use NegotiateOpenMetrics.
+// FmtOpenMetrics, use NegotiateIncludingOpenMetrics.
func Negotiate(h http.Header) Format {
escapingScheme := Format(fmt.Sprintf("; escaping=%s", Format(model.NameEscapingScheme.String())))
for _, ac := range goautoneg.ParseAccept(h.Get(hdrAccept)) {
@@ -153,7 +151,7 @@ func NewEncoder(w io.Writer, format Format, options ...EncoderOption) Encoder {
case TypeProtoDelim:
return encoderCloser{
encode: func(v *dto.MetricFamily) error {
- _, err := protodelim.MarshalTo(w, v)
+ _, err := protodelim.MarshalTo(w, model.EscapeMetricFamily(v, escapingScheme))
return err
},
close: func() error { return nil },
diff --git a/vendor/github.com/prometheus/common/expfmt/expfmt.go b/vendor/github.com/prometheus/common/expfmt/expfmt.go
index b2688656..c34c7de4 100644
--- a/vendor/github.com/prometheus/common/expfmt/expfmt.go
+++ b/vendor/github.com/prometheus/common/expfmt/expfmt.go
@@ -36,9 +36,11 @@ const (
ProtoType = `application/vnd.google.protobuf`
ProtoProtocol = `io.prometheus.client.MetricFamily`
// Deprecated: Use expfmt.NewFormat(expfmt.TypeProtoCompact) instead.
- ProtoFmt = ProtoType + "; proto=" + ProtoProtocol + ";"
- OpenMetricsType = `application/openmetrics-text`
+ ProtoFmt = ProtoType + "; proto=" + ProtoProtocol + ";"
+ OpenMetricsType = `application/openmetrics-text`
+ //nolint:revive // Allow for underscores.
OpenMetricsVersion_0_0_1 = "0.0.1"
+ //nolint:revive // Allow for underscores.
OpenMetricsVersion_1_0_0 = "1.0.0"
// The Content-Type values for the different wire protocols. Do not do direct
@@ -54,8 +56,10 @@ const (
// Deprecated: Use expfmt.NewFormat(expfmt.TypeProtoCompact) instead.
FmtProtoCompact Format = ProtoFmt + ` encoding=compact-text`
// Deprecated: Use expfmt.NewFormat(expfmt.TypeOpenMetrics) instead.
+ //nolint:revive // Allow for underscores.
FmtOpenMetrics_1_0_0 Format = OpenMetricsType + `; version=` + OpenMetricsVersion_1_0_0 + `; charset=utf-8`
// Deprecated: Use expfmt.NewFormat(expfmt.TypeOpenMetrics) instead.
+ //nolint:revive // Allow for underscores.
FmtOpenMetrics_0_0_1 Format = OpenMetricsType + `; version=` + OpenMetricsVersion_0_0_1 + `; charset=utf-8`
)
@@ -188,8 +192,8 @@ func (f Format) FormatType() FormatType {
// Format contains a escaping=allow-utf-8 term, it will select NoEscaping. If a valid
// "escaping" term exists, that will be used. Otherwise, the global default will
// be returned.
-func (format Format) ToEscapingScheme() model.EscapingScheme {
- for _, p := range strings.Split(string(format), ";") {
+func (f Format) ToEscapingScheme() model.EscapingScheme {
+ for _, p := range strings.Split(string(f), ";") {
toks := strings.Split(p, "=")
if len(toks) != 2 {
continue
diff --git a/vendor/github.com/prometheus/common/expfmt/fuzz.go b/vendor/github.com/prometheus/common/expfmt/fuzz.go
index dfac962a..0290f6ab 100644
--- a/vendor/github.com/prometheus/common/expfmt/fuzz.go
+++ b/vendor/github.com/prometheus/common/expfmt/fuzz.go
@@ -17,7 +17,11 @@
package expfmt
-import "bytes"
+import (
+ "bytes"
+
+ "github.com/prometheus/common/model"
+)
// Fuzz text metric parser with with github.com/dvyukov/go-fuzz:
//
@@ -26,9 +30,8 @@ import "bytes"
//
// Further input samples should go in the folder fuzz/corpus.
func Fuzz(in []byte) int {
- parser := TextParser{}
+ parser := NewTextParser(model.UTF8Validation)
_, err := parser.TextToMetricFamilies(bytes.NewReader(in))
-
if err != nil {
return 0
}
diff --git a/vendor/github.com/prometheus/common/expfmt/openmetrics_create.go b/vendor/github.com/prometheus/common/expfmt/openmetrics_create.go
index a21ed4ec..21b93bca 100644
--- a/vendor/github.com/prometheus/common/expfmt/openmetrics_create.go
+++ b/vendor/github.com/prometheus/common/expfmt/openmetrics_create.go
@@ -22,11 +22,10 @@ import (
"strconv"
"strings"
+ dto "github.com/prometheus/client_model/go"
"google.golang.org/protobuf/types/known/timestamppb"
"github.com/prometheus/common/model"
-
- dto "github.com/prometheus/client_model/go"
)
type encoderOption struct {
@@ -161,38 +160,38 @@ func MetricFamilyToOpenMetrics(out io.Writer, in *dto.MetricFamily, options ...E
n, err = w.WriteString("# HELP ")
written += n
if err != nil {
- return
+ return written, err
}
n, err = writeName(w, compliantName)
written += n
if err != nil {
- return
+ return written, err
}
err = w.WriteByte(' ')
written++
if err != nil {
- return
+ return written, err
}
n, err = writeEscapedString(w, *in.Help, true)
written += n
if err != nil {
- return
+ return written, err
}
err = w.WriteByte('\n')
written++
if err != nil {
- return
+ return written, err
}
}
n, err = w.WriteString("# TYPE ")
written += n
if err != nil {
- return
+ return written, err
}
n, err = writeName(w, compliantName)
written += n
if err != nil {
- return
+ return written, err
}
switch metricType {
case dto.MetricType_COUNTER:
@@ -209,39 +208,41 @@ func MetricFamilyToOpenMetrics(out io.Writer, in *dto.MetricFamily, options ...E
n, err = w.WriteString(" unknown\n")
case dto.MetricType_HISTOGRAM:
n, err = w.WriteString(" histogram\n")
+ case dto.MetricType_GAUGE_HISTOGRAM:
+ n, err = w.WriteString(" gaugehistogram\n")
default:
return written, fmt.Errorf("unknown metric type %s", metricType.String())
}
written += n
if err != nil {
- return
+ return written, err
}
if toOM.withUnit && in.Unit != nil {
n, err = w.WriteString("# UNIT ")
written += n
if err != nil {
- return
+ return written, err
}
n, err = writeName(w, compliantName)
written += n
if err != nil {
- return
+ return written, err
}
err = w.WriteByte(' ')
written++
if err != nil {
- return
+ return written, err
}
n, err = writeEscapedString(w, *in.Unit, true)
written += n
if err != nil {
- return
+ return written, err
}
err = w.WriteByte('\n')
written++
if err != nil {
- return
+ return written, err
}
}
@@ -249,7 +250,7 @@ func MetricFamilyToOpenMetrics(out io.Writer, in *dto.MetricFamily, options ...E
// Finally the samples, one line for each.
if metricType == dto.MetricType_COUNTER && strings.HasSuffix(name, "_total") {
- compliantName = compliantName + "_total"
+ compliantName += "_total"
}
for _, metric := range in.Metric {
switch metricType {
@@ -305,7 +306,7 @@ func MetricFamilyToOpenMetrics(out io.Writer, in *dto.MetricFamily, options ...E
)
written += n
if err != nil {
- return
+ return written, err
}
}
n, err = writeOpenMetricsSample(
@@ -315,7 +316,7 @@ func MetricFamilyToOpenMetrics(out io.Writer, in *dto.MetricFamily, options ...E
)
written += n
if err != nil {
- return
+ return written, err
}
n, err = writeOpenMetricsSample(
w, compliantName, "_count", metric, "", 0,
@@ -326,7 +327,7 @@ func MetricFamilyToOpenMetrics(out io.Writer, in *dto.MetricFamily, options ...E
createdTsBytesWritten, err = writeOpenMetricsCreated(w, compliantName, "", metric, "", 0, metric.Summary.GetCreatedTimestamp())
n += createdTsBytesWritten
}
- case dto.MetricType_HISTOGRAM:
+ case dto.MetricType_HISTOGRAM, dto.MetricType_GAUGE_HISTOGRAM:
if metric.Histogram == nil {
return written, fmt.Errorf(
"expected histogram in metric %s %s", compliantName, metric,
@@ -334,6 +335,12 @@ func MetricFamilyToOpenMetrics(out io.Writer, in *dto.MetricFamily, options ...E
}
infSeen := false
for _, b := range metric.Histogram.Bucket {
+ if b.GetCumulativeCountFloat() > 0 {
+ return written, fmt.Errorf(
+ "OpenMetrics v1.0 does not support float histogram %s %s",
+ compliantName, metric,
+ )
+ }
n, err = writeOpenMetricsSample(
w, compliantName, "_bucket", metric,
model.BucketLabel, b.GetUpperBound(),
@@ -342,7 +349,7 @@ func MetricFamilyToOpenMetrics(out io.Writer, in *dto.MetricFamily, options ...E
)
written += n
if err != nil {
- return
+ return written, err
}
if math.IsInf(b.GetUpperBound(), +1) {
infSeen = true
@@ -355,9 +362,12 @@ func MetricFamilyToOpenMetrics(out io.Writer, in *dto.MetricFamily, options ...E
0, metric.Histogram.GetSampleCount(), true,
nil,
)
+ // We do not check for a float sample count here
+ // because we will check for it below (and error
+ // out if needed).
written += n
if err != nil {
- return
+ return written, err
}
}
n, err = writeOpenMetricsSample(
@@ -367,7 +377,13 @@ func MetricFamilyToOpenMetrics(out io.Writer, in *dto.MetricFamily, options ...E
)
written += n
if err != nil {
- return
+ return written, err
+ }
+ if metric.Histogram.GetSampleCountFloat() > 0 {
+ return written, fmt.Errorf(
+ "OpenMetrics v1.0 does not support float histogram %s %s",
+ compliantName, metric,
+ )
}
n, err = writeOpenMetricsSample(
w, compliantName, "_count", metric, "", 0,
@@ -385,10 +401,10 @@ func MetricFamilyToOpenMetrics(out io.Writer, in *dto.MetricFamily, options ...E
}
written += n
if err != nil {
- return
+ return written, err
}
}
- return
+ return written, err
}
// FinalizeOpenMetrics writes the final `# EOF\n` line required by OpenMetrics.
@@ -477,7 +493,7 @@ func writeOpenMetricsNameAndLabelPairs(
if name != "" {
// If the name does not pass the legacy validity check, we must put the
// metric name inside the braces, quoted.
- if !model.IsValidLegacyMetricName(name) {
+ if !model.LegacyValidation.IsValidMetricName(name) {
metricInsideBraces = true
err := w.WriteByte(separator)
written++
@@ -641,11 +657,11 @@ func writeExemplar(w enhancedWriter, e *dto.Exemplar) (int, error) {
if err != nil {
return written, err
}
- err = (*e).Timestamp.CheckValid()
+ err = e.Timestamp.CheckValid()
if err != nil {
return written, err
}
- ts := (*e).Timestamp.AsTime()
+ ts := e.Timestamp.AsTime()
// TODO(beorn7): Format this directly from components of ts to
// avoid overflow/underflow and precision issues of the float
// conversion.
diff --git a/vendor/github.com/prometheus/common/expfmt/text_create.go b/vendor/github.com/prometheus/common/expfmt/text_create.go
index 4b86434b..6b897814 100644
--- a/vendor/github.com/prometheus/common/expfmt/text_create.go
+++ b/vendor/github.com/prometheus/common/expfmt/text_create.go
@@ -22,9 +22,9 @@ import (
"strings"
"sync"
- "github.com/prometheus/common/model"
-
dto "github.com/prometheus/client_model/go"
+
+ "github.com/prometheus/common/model"
)
// enhancedWriter has all the enhanced write functions needed here. bufio.Writer
@@ -108,38 +108,38 @@ func MetricFamilyToText(out io.Writer, in *dto.MetricFamily) (written int, err e
n, err = w.WriteString("# HELP ")
written += n
if err != nil {
- return
+ return written, err
}
n, err = writeName(w, name)
written += n
if err != nil {
- return
+ return written, err
}
err = w.WriteByte(' ')
written++
if err != nil {
- return
+ return written, err
}
n, err = writeEscapedString(w, *in.Help, false)
written += n
if err != nil {
- return
+ return written, err
}
err = w.WriteByte('\n')
written++
if err != nil {
- return
+ return written, err
}
}
n, err = w.WriteString("# TYPE ")
written += n
if err != nil {
- return
+ return written, err
}
n, err = writeName(w, name)
written += n
if err != nil {
- return
+ return written, err
}
metricType := in.GetType()
switch metricType {
@@ -151,14 +151,17 @@ func MetricFamilyToText(out io.Writer, in *dto.MetricFamily) (written int, err e
n, err = w.WriteString(" summary\n")
case dto.MetricType_UNTYPED:
n, err = w.WriteString(" untyped\n")
- case dto.MetricType_HISTOGRAM:
+ case dto.MetricType_HISTOGRAM, dto.MetricType_GAUGE_HISTOGRAM:
+ // The classic Prometheus text format has no notion of a gauge
+ // histogram. We render a gauge histogram in the same way as a
+ // regular histogram.
n, err = w.WriteString(" histogram\n")
default:
return written, fmt.Errorf("unknown metric type %s", metricType.String())
}
written += n
if err != nil {
- return
+ return written, err
}
// Finally the samples, one line for each.
@@ -208,7 +211,7 @@ func MetricFamilyToText(out io.Writer, in *dto.MetricFamily) (written int, err e
)
written += n
if err != nil {
- return
+ return written, err
}
}
n, err = writeSample(
@@ -217,13 +220,13 @@ func MetricFamilyToText(out io.Writer, in *dto.MetricFamily) (written int, err e
)
written += n
if err != nil {
- return
+ return written, err
}
n, err = writeSample(
w, name, "_count", metric, "", 0,
float64(metric.Summary.GetSampleCount()),
)
- case dto.MetricType_HISTOGRAM:
+ case dto.MetricType_HISTOGRAM, dto.MetricType_GAUGE_HISTOGRAM:
if metric.Histogram == nil {
return written, fmt.Errorf(
"expected histogram in metric %s %s", name, metric,
@@ -231,28 +234,36 @@ func MetricFamilyToText(out io.Writer, in *dto.MetricFamily) (written int, err e
}
infSeen := false
for _, b := range metric.Histogram.Bucket {
+ v := b.GetCumulativeCountFloat()
+ if v == 0 {
+ v = float64(b.GetCumulativeCount())
+ }
n, err = writeSample(
w, name, "_bucket", metric,
model.BucketLabel, b.GetUpperBound(),
- float64(b.GetCumulativeCount()),
+ v,
)
written += n
if err != nil {
- return
+ return written, err
}
if math.IsInf(b.GetUpperBound(), +1) {
infSeen = true
}
}
if !infSeen {
+ v := metric.Histogram.GetSampleCountFloat()
+ if v == 0 {
+ v = float64(metric.Histogram.GetSampleCount())
+ }
n, err = writeSample(
w, name, "_bucket", metric,
model.BucketLabel, math.Inf(+1),
- float64(metric.Histogram.GetSampleCount()),
+ v,
)
written += n
if err != nil {
- return
+ return written, err
}
}
n, err = writeSample(
@@ -261,12 +272,13 @@ func MetricFamilyToText(out io.Writer, in *dto.MetricFamily) (written int, err e
)
written += n
if err != nil {
- return
+ return written, err
}
- n, err = writeSample(
- w, name, "_count", metric, "", 0,
- float64(metric.Histogram.GetSampleCount()),
- )
+ v := metric.Histogram.GetSampleCountFloat()
+ if v == 0 {
+ v = float64(metric.Histogram.GetSampleCount())
+ }
+ n, err = writeSample(w, name, "_count", metric, "", 0, v)
default:
return written, fmt.Errorf(
"unexpected type in metric %s %s", name, metric,
@@ -274,10 +286,10 @@ func MetricFamilyToText(out io.Writer, in *dto.MetricFamily) (written int, err e
}
written += n
if err != nil {
- return
+ return written, err
}
}
- return
+ return written, err
}
// writeSample writes a single sample in text format to w, given the metric
@@ -354,7 +366,7 @@ func writeNameAndLabelPairs(
if name != "" {
// If the name does not pass the legacy validity check, we must put the
// metric name inside the braces.
- if !model.IsValidLegacyMetricName(name) {
+ if !model.LegacyValidation.IsValidMetricName(name) {
metricInsideBraces = true
err := w.WriteByte(separator)
written++
@@ -498,7 +510,7 @@ func writeInt(w enhancedWriter, i int64) (int, error) {
// writeName writes a string as-is if it complies with the legacy naming
// scheme, or escapes it in double quotes if not.
func writeName(w enhancedWriter, name string) (int, error) {
- if model.IsValidLegacyMetricName(name) {
+ if model.LegacyValidation.IsValidMetricName(name) {
return w.WriteString(name)
}
var written int
diff --git a/vendor/github.com/prometheus/common/expfmt/text_parse.go b/vendor/github.com/prometheus/common/expfmt/text_parse.go
index b4607fe4..00c8841a 100644
--- a/vendor/github.com/prometheus/common/expfmt/text_parse.go
+++ b/vendor/github.com/prometheus/common/expfmt/text_parse.go
@@ -48,8 +48,10 @@ func (e ParseError) Error() string {
return fmt.Sprintf("text format parsing error in line %d: %s", e.Line, e.Msg)
}
-// TextParser is used to parse the simple and flat text-based exchange format. Its
-// zero value is ready to use.
+// TextParser is used to parse the simple and flat text-based exchange format.
+//
+// TextParser instances must be created with NewTextParser, the zero value of
+// TextParser is invalid.
type TextParser struct {
metricFamiliesByName map[string]*dto.MetricFamily
buf *bufio.Reader // Where the parsed input is read through.
@@ -78,6 +80,14 @@ type TextParser struct {
// These indicate if the metric name from the current line being parsed is inside
// braces and if that metric name was found respectively.
currentMetricIsInsideBraces, currentMetricInsideBracesIsPresent bool
+ // scheme sets the desired ValidationScheme for names. Defaults to the invalid
+ // UnsetValidation.
+ scheme model.ValidationScheme
+}
+
+// NewTextParser returns a new TextParser with the provided nameValidationScheme.
+func NewTextParser(nameValidationScheme model.ValidationScheme) TextParser {
+ return TextParser{scheme: nameValidationScheme}
}
// TextToMetricFamilies reads 'in' as the simple and flat text-based exchange
@@ -121,11 +131,47 @@ func (p *TextParser) TextToMetricFamilies(in io.Reader) (map[string]*dto.MetricF
if p.err != nil && errors.Is(p.err, io.EOF) {
p.parseError("unexpected end of input stream")
}
+ for _, histogramMetric := range p.histograms {
+ normalizeHistogram(histogramMetric.GetHistogram())
+ }
return p.metricFamiliesByName, p.err
}
+// normalizeHistogram makes sure that all the buckets and the count in each
+// histogram is either completely float or completely integer.
+func normalizeHistogram(histogram *dto.Histogram) {
+ if histogram == nil {
+ return
+ }
+ anyFloats := false
+ if histogram.GetSampleCountFloat() != 0 {
+ anyFloats = true
+ } else {
+ for _, b := range histogram.GetBucket() {
+ if b.GetCumulativeCountFloat() != 0 {
+ anyFloats = true
+ break
+ }
+ }
+ }
+ if !anyFloats {
+ return
+ }
+ if histogram.GetSampleCountFloat() == 0 {
+ histogram.SampleCountFloat = proto.Float64(float64(histogram.GetSampleCount()))
+ histogram.SampleCount = nil
+ }
+ for _, b := range histogram.GetBucket() {
+ if b.GetCumulativeCountFloat() == 0 {
+ b.CumulativeCountFloat = proto.Float64(float64(b.GetCumulativeCount()))
+ b.CumulativeCount = nil
+ }
+ }
+}
+
func (p *TextParser) reset(in io.Reader) {
p.metricFamiliesByName = map[string]*dto.MetricFamily{}
+ p.currentLabelPairs = nil
if p.buf == nil {
p.buf = bufio.NewReader(in)
} else {
@@ -216,6 +262,9 @@ func (p *TextParser) startComment() stateFn {
return nil
}
p.setOrCreateCurrentMF()
+ if p.err != nil {
+ return nil
+ }
if p.skipBlankTab(); p.err != nil {
return nil // Unexpected end of input.
}
@@ -244,6 +293,9 @@ func (p *TextParser) readingMetricName() stateFn {
return nil
}
p.setOrCreateCurrentMF()
+ if p.err != nil {
+ return nil
+ }
// Now is the time to fix the type if it hasn't happened yet.
if p.currentMF.Type == nil {
p.currentMF.Type = dto.MetricType_UNTYPED.Enum()
@@ -266,7 +318,9 @@ func (p *TextParser) readingLabels() stateFn {
// Summaries/histograms are special. We have to reset the
// currentLabels map, currentQuantile and currentBucket before starting to
// read labels.
- if p.currentMF.GetType() == dto.MetricType_SUMMARY || p.currentMF.GetType() == dto.MetricType_HISTOGRAM {
+ if p.currentMF.GetType() == dto.MetricType_SUMMARY ||
+ p.currentMF.GetType() == dto.MetricType_HISTOGRAM ||
+ p.currentMF.GetType() == dto.MetricType_GAUGE_HISTOGRAM {
p.currentLabels = map[string]string{}
p.currentLabels[string(model.MetricNameLabel)] = p.currentMF.GetName()
p.currentQuantile = math.NaN()
@@ -311,6 +365,9 @@ func (p *TextParser) startLabelName() stateFn {
switch p.currentByte {
case ',':
p.setOrCreateCurrentMF()
+ if p.err != nil {
+ return nil
+ }
if p.currentMF.Type == nil {
p.currentMF.Type = dto.MetricType_UNTYPED.Enum()
}
@@ -319,6 +376,10 @@ func (p *TextParser) startLabelName() stateFn {
return p.startLabelName
case '}':
p.setOrCreateCurrentMF()
+ if p.err != nil {
+ p.currentLabelPairs = nil
+ return nil
+ }
if p.currentMF.Type == nil {
p.currentMF.Type = dto.MetricType_UNTYPED.Enum()
}
@@ -341,25 +402,32 @@ func (p *TextParser) startLabelName() stateFn {
p.currentLabelPair = &dto.LabelPair{Name: proto.String(p.currentToken.String())}
if p.currentLabelPair.GetName() == string(model.MetricNameLabel) {
p.parseError(fmt.Sprintf("label name %q is reserved", model.MetricNameLabel))
+ p.currentLabelPairs = nil
+ return nil
+ }
+ if !p.scheme.IsValidLabelName(p.currentLabelPair.GetName()) {
+ p.parseError(fmt.Sprintf("invalid label name %q", p.currentLabelPair.GetName()))
+ p.currentLabelPairs = nil
return nil
}
// Special summary/histogram treatment. Don't add 'quantile' and 'le'
// labels to 'real' labels.
- if !(p.currentMF.GetType() == dto.MetricType_SUMMARY && p.currentLabelPair.GetName() == model.QuantileLabel) &&
- !(p.currentMF.GetType() == dto.MetricType_HISTOGRAM && p.currentLabelPair.GetName() == model.BucketLabel) {
+ if (p.currentMF.GetType() != dto.MetricType_SUMMARY || p.currentLabelPair.GetName() != model.QuantileLabel) &&
+ ((p.currentMF.GetType() != dto.MetricType_HISTOGRAM &&
+ p.currentMF.GetType() != dto.MetricType_GAUGE_HISTOGRAM) ||
+ p.currentLabelPair.GetName() != model.BucketLabel) {
p.currentLabelPairs = append(p.currentLabelPairs, p.currentLabelPair)
}
// Check for duplicate label names.
labels := make(map[string]struct{})
for _, l := range p.currentLabelPairs {
lName := l.GetName()
- if _, exists := labels[lName]; !exists {
- labels[lName] = struct{}{}
- } else {
+ if _, exists := labels[lName]; exists {
p.parseError(fmt.Sprintf("duplicate label names for metric %q", p.currentMF.GetName()))
p.currentLabelPairs = nil
return nil
}
+ labels[lName] = struct{}{}
}
return p.startLabelValue
}
@@ -398,7 +466,7 @@ func (p *TextParser) startLabelValue() stateFn {
}
}
// Similar special treatment of histograms.
- if p.currentMF.GetType() == dto.MetricType_HISTOGRAM {
+ if p.currentMF.GetType() == dto.MetricType_HISTOGRAM || p.currentMF.GetType() == dto.MetricType_GAUGE_HISTOGRAM {
if p.currentLabelPair.GetName() == model.BucketLabel {
if p.currentBucket, p.err = parseFloat(p.currentLabelPair.GetValue()); p.err != nil {
// Create a more helpful error message.
@@ -440,7 +508,8 @@ func (p *TextParser) readingValue() stateFn {
// When we are here, we have read all the labels, so for the
// special case of a summary/histogram, we can finally find out
// if the metric already exists.
- if p.currentMF.GetType() == dto.MetricType_SUMMARY {
+ switch p.currentMF.GetType() {
+ case dto.MetricType_SUMMARY:
signature := model.LabelsToSignature(p.currentLabels)
if summary := p.summaries[signature]; summary != nil {
p.currentMetric = summary
@@ -448,7 +517,7 @@ func (p *TextParser) readingValue() stateFn {
p.summaries[signature] = p.currentMetric
p.currentMF.Metric = append(p.currentMF.Metric, p.currentMetric)
}
- } else if p.currentMF.GetType() == dto.MetricType_HISTOGRAM {
+ case dto.MetricType_HISTOGRAM, dto.MetricType_GAUGE_HISTOGRAM:
signature := model.LabelsToSignature(p.currentLabels)
if histogram := p.histograms[signature]; histogram != nil {
p.currentMetric = histogram
@@ -456,7 +525,7 @@ func (p *TextParser) readingValue() stateFn {
p.histograms[signature] = p.currentMetric
p.currentMF.Metric = append(p.currentMF.Metric, p.currentMetric)
}
- } else {
+ default:
p.currentMF.Metric = append(p.currentMF.Metric, p.currentMetric)
}
if p.readTokenUntilWhitespace(); p.err != nil {
@@ -494,24 +563,38 @@ func (p *TextParser) readingValue() stateFn {
},
)
}
- case dto.MetricType_HISTOGRAM:
+ case dto.MetricType_HISTOGRAM, dto.MetricType_GAUGE_HISTOGRAM:
// *sigh*
if p.currentMetric.Histogram == nil {
p.currentMetric.Histogram = &dto.Histogram{}
}
switch {
case p.currentIsHistogramCount:
- p.currentMetric.Histogram.SampleCount = proto.Uint64(uint64(value))
+ if uintValue := uint64(value); value == float64(uintValue) {
+ p.currentMetric.Histogram.SampleCount = proto.Uint64(uintValue)
+ } else {
+ if value < 0 {
+ p.parseError(fmt.Sprintf("negative count for histogram %q", p.currentMF.GetName()))
+ return nil
+ }
+ p.currentMetric.Histogram.SampleCountFloat = proto.Float64(value)
+ }
case p.currentIsHistogramSum:
p.currentMetric.Histogram.SampleSum = proto.Float64(value)
case !math.IsNaN(p.currentBucket):
- p.currentMetric.Histogram.Bucket = append(
- p.currentMetric.Histogram.Bucket,
- &dto.Bucket{
- UpperBound: proto.Float64(p.currentBucket),
- CumulativeCount: proto.Uint64(uint64(value)),
- },
- )
+ b := &dto.Bucket{
+ UpperBound: proto.Float64(p.currentBucket),
+ }
+ if uintValue := uint64(value); value == float64(uintValue) {
+ b.CumulativeCount = proto.Uint64(uintValue)
+ } else {
+ if value < 0 {
+ p.parseError(fmt.Sprintf("negative bucket population for histogram %q", p.currentMF.GetName()))
+ return nil
+ }
+ b.CumulativeCountFloat = proto.Float64(value)
+ }
+ p.currentMetric.Histogram.Bucket = append(p.currentMetric.Histogram.Bucket, b)
}
default:
p.err = fmt.Errorf("unexpected type for metric name %q", p.currentMF.GetName())
@@ -574,10 +657,18 @@ func (p *TextParser) readingType() stateFn {
if p.readTokenUntilNewline(false); p.err != nil {
return nil // Unexpected end of input.
}
- metricType, ok := dto.MetricType_value[strings.ToUpper(p.currentToken.String())]
+ typ := strings.ToUpper(p.currentToken.String()) // Tolerate any combination of upper and lower case.
+ metricType, ok := dto.MetricType_value[typ] // Tolerate "gauge_histogram" (not originally part of the text format).
if !ok {
- p.parseError(fmt.Sprintf("unknown metric type %q", p.currentToken.String()))
- return nil
+ // We also want to tolerate "gaugehistogram" to mark a gauge
+ // histogram, because that string is used in OpenMetrics. Note,
+ // however, that gauge histograms do not officially exist in the
+ // classic text format.
+ if typ != "GAUGEHISTOGRAM" {
+ p.parseError(fmt.Sprintf("unknown metric type %q", p.currentToken.String()))
+ return nil
+ }
+ metricType = int32(dto.MetricType_GAUGE_HISTOGRAM)
}
p.currentMF.Type = dto.MetricType(metricType).Enum()
return p.startOfLine
@@ -805,6 +896,10 @@ func (p *TextParser) setOrCreateCurrentMF() {
p.currentIsHistogramCount = false
p.currentIsHistogramSum = false
name := p.currentToken.String()
+ if !p.scheme.IsValidMetricName(name) {
+ p.parseError(fmt.Sprintf("invalid metric name %q", name))
+ return
+ }
if p.currentMF = p.metricFamiliesByName[name]; p.currentMF != nil {
return
}
@@ -823,7 +918,8 @@ func (p *TextParser) setOrCreateCurrentMF() {
}
histogramName := histogramMetricName(name)
if p.currentMF = p.metricFamiliesByName[histogramName]; p.currentMF != nil {
- if p.currentMF.GetType() == dto.MetricType_HISTOGRAM {
+ if p.currentMF.GetType() == dto.MetricType_HISTOGRAM ||
+ p.currentMF.GetType() == dto.MetricType_GAUGE_HISTOGRAM {
if isCount(name) {
p.currentIsHistogramCount = true
}
diff --git a/vendor/github.com/prometheus/common/model/alert.go b/vendor/github.com/prometheus/common/model/alert.go
index bd3a39e3..460f554f 100644
--- a/vendor/github.com/prometheus/common/model/alert.go
+++ b/vendor/github.com/prometheus/common/model/alert.go
@@ -65,7 +65,7 @@ func (a *Alert) Resolved() bool {
return a.ResolvedAt(time.Now())
}
-// ResolvedAt returns true off the activity interval ended before
+// ResolvedAt returns true iff the activity interval ended before
// the given timestamp.
func (a *Alert) ResolvedAt(ts time.Time) bool {
if a.EndsAt.IsZero() {
diff --git a/vendor/github.com/prometheus/common/model/labels.go b/vendor/github.com/prometheus/common/model/labels.go
index 73b7aa3e..dfeb34be 100644
--- a/vendor/github.com/prometheus/common/model/labels.go
+++ b/vendor/github.com/prometheus/common/model/labels.go
@@ -22,7 +22,7 @@ import (
)
const (
- // AlertNameLabel is the name of the label containing the an alert's name.
+ // AlertNameLabel is the name of the label containing the alert's name.
AlertNameLabel = "alertname"
// ExportedLabelPrefix is the prefix to prepend to the label names present in
@@ -32,6 +32,12 @@ const (
// MetricNameLabel is the label name indicating the metric name of a
// timeseries.
MetricNameLabel = "__name__"
+ // MetricTypeLabel is the label name indicating the metric type of
+ // timeseries as per the PROM-39 proposal.
+ MetricTypeLabel = "__type__"
+ // MetricUnitLabel is the label name indicating the metric unit of
+ // timeseries as per the PROM-39 proposal.
+ MetricUnitLabel = "__unit__"
// SchemeLabel is the name of the label that holds the scheme on which to
// scrape a target.
@@ -100,33 +106,21 @@ type LabelName string
// IsValid returns true iff the name matches the pattern of LabelNameRE when
// NameValidationScheme is set to LegacyValidation, or valid UTF-8 if
// NameValidationScheme is set to UTF8Validation.
+//
+// Deprecated: This method should not be used and may be removed in the future.
+// Use [ValidationScheme.IsValidLabelName] instead.
func (ln LabelName) IsValid() bool {
- if len(ln) == 0 {
- return false
- }
- switch NameValidationScheme {
- case LegacyValidation:
- return ln.IsValidLegacy()
- case UTF8Validation:
- return utf8.ValidString(string(ln))
- default:
- panic(fmt.Sprintf("Invalid name validation scheme requested: %d", NameValidationScheme))
- }
+ return NameValidationScheme.IsValidLabelName(string(ln))
}
// IsValidLegacy returns true iff name matches the pattern of LabelNameRE for
// legacy names. It does not use LabelNameRE for the check but a much faster
// hardcoded implementation.
+//
+// Deprecated: This method should not be used and may be removed in the future.
+// Use [LegacyValidation.IsValidLabelName] instead.
func (ln LabelName) IsValidLegacy() bool {
- if len(ln) == 0 {
- return false
- }
- for i, b := range ln {
- if !((b >= 'a' && b <= 'z') || (b >= 'A' && b <= 'Z') || b == '_' || (b >= '0' && b <= '9' && i > 0)) {
- return false
- }
- }
- return true
+ return LegacyValidation.IsValidLabelName(string(ln))
}
// UnmarshalYAML implements the yaml.Unmarshaler interface.
diff --git a/vendor/github.com/prometheus/common/model/labelset.go b/vendor/github.com/prometheus/common/model/labelset.go
index d0ad88da..9de47b25 100644
--- a/vendor/github.com/prometheus/common/model/labelset.go
+++ b/vendor/github.com/prometheus/common/model/labelset.go
@@ -114,10 +114,10 @@ func (ls LabelSet) Clone() LabelSet {
}
// Merge is a helper function to non-destructively merge two label sets.
-func (l LabelSet) Merge(other LabelSet) LabelSet {
- result := make(LabelSet, len(l))
+func (ls LabelSet) Merge(other LabelSet) LabelSet {
+ result := make(LabelSet, len(ls))
- for k, v := range l {
+ for k, v := range ls {
result[k] = v
}
@@ -140,7 +140,7 @@ func (ls LabelSet) FastFingerprint() Fingerprint {
}
// UnmarshalJSON implements the json.Unmarshaler interface.
-func (l *LabelSet) UnmarshalJSON(b []byte) error {
+func (ls *LabelSet) UnmarshalJSON(b []byte) error {
var m map[LabelName]LabelValue
if err := json.Unmarshal(b, &m); err != nil {
return err
@@ -153,6 +153,6 @@ func (l *LabelSet) UnmarshalJSON(b []byte) error {
return fmt.Errorf("%q is not a valid label name", ln)
}
}
- *l = LabelSet(m)
+ *ls = LabelSet(m)
return nil
}
diff --git a/vendor/github.com/prometheus/common/model/metric.go b/vendor/github.com/prometheus/common/model/metric.go
index 5766107c..3feebf32 100644
--- a/vendor/github.com/prometheus/common/model/metric.go
+++ b/vendor/github.com/prometheus/common/model/metric.go
@@ -14,6 +14,7 @@
package model
import (
+ "encoding/json"
"errors"
"fmt"
"regexp"
@@ -23,17 +24,30 @@ import (
"unicode/utf8"
dto "github.com/prometheus/client_model/go"
+ "go.yaml.in/yaml/v2"
"google.golang.org/protobuf/proto"
)
var (
- // NameValidationScheme determines the method of name validation to be used by
- // all calls to IsValidMetricName() and LabelName IsValid(). Setting UTF-8
- // mode in isolation from other components that don't support UTF-8 may result
- // in bugs or other undefined behavior. This value can be set to
- // LegacyValidation during startup if a binary is not UTF-8-aware binaries. To
- // avoid need for locking, this value should be set once, ideally in an
- // init(), before multiple goroutines are started.
+ // NameValidationScheme determines the global default method of the name
+ // validation to be used by all calls to IsValidMetricName() and LabelName
+ // IsValid().
+ //
+ // Deprecated: This variable should not be used and might be removed in the
+ // far future. If you wish to stick to the legacy name validation use
+ // `IsValidLegacyMetricName()` and `LabelName.IsValidLegacy()` methods
+ // instead. This variable is here as an escape hatch for emergency cases,
+ // given the recent change from `LegacyValidation` to `UTF8Validation`, e.g.,
+ // to delay UTF-8 migrations in time or aid in debugging unforeseen results of
+ // the change. In such a case, a temporary assignment to `LegacyValidation`
+ // value in the `init()` function in your main.go or so, could be considered.
+ //
+ // Historically we opted for a global variable for feature gating different
+ // validation schemes in operations that were not otherwise easily adjustable
+ // (e.g. Labels yaml unmarshaling). That could have been a mistake, a separate
+ // Labels structure or package might have been a better choice. Given the
+ // change was made and many upgraded the common already, we live this as-is
+ // with this warning and learning for the future.
NameValidationScheme = UTF8Validation
// NameEscapingScheme defines the default way that names will be escaped when
@@ -50,16 +64,151 @@ var (
type ValidationScheme int
const (
- // LegacyValidation is a setting that requirets that metric and label names
+ // UnsetValidation represents an undefined ValidationScheme.
+ // Should not be used in practice.
+ UnsetValidation ValidationScheme = iota
+
+ // LegacyValidation is a setting that requires that all metric and label names
// conform to the original Prometheus character requirements described by
// MetricNameRE and LabelNameRE.
- LegacyValidation ValidationScheme = iota
+ LegacyValidation
// UTF8Validation only requires that metric and label names be valid UTF-8
// strings.
UTF8Validation
)
+var _ interface {
+ yaml.Marshaler
+ yaml.Unmarshaler
+ json.Marshaler
+ json.Unmarshaler
+ fmt.Stringer
+} = new(ValidationScheme)
+
+// String returns the string representation of s.
+func (s ValidationScheme) String() string {
+ switch s {
+ case UnsetValidation:
+ return "unset"
+ case LegacyValidation:
+ return "legacy"
+ case UTF8Validation:
+ return "utf8"
+ default:
+ panic(fmt.Errorf("unhandled ValidationScheme: %d", s))
+ }
+}
+
+// MarshalYAML implements the yaml.Marshaler interface.
+func (s ValidationScheme) MarshalYAML() (any, error) {
+ switch s {
+ case UnsetValidation:
+ return "", nil
+ case LegacyValidation, UTF8Validation:
+ return s.String(), nil
+ default:
+ panic(fmt.Errorf("unhandled ValidationScheme: %d", s))
+ }
+}
+
+// UnmarshalYAML implements the yaml.Unmarshaler interface.
+func (s *ValidationScheme) UnmarshalYAML(unmarshal func(any) error) error {
+ var scheme string
+ if err := unmarshal(&scheme); err != nil {
+ return err
+ }
+ return s.Set(scheme)
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (s ValidationScheme) MarshalJSON() ([]byte, error) {
+ switch s {
+ case UnsetValidation:
+ return json.Marshal("")
+ case UTF8Validation, LegacyValidation:
+ return json.Marshal(s.String())
+ default:
+ return nil, fmt.Errorf("unhandled ValidationScheme: %d", s)
+ }
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (s *ValidationScheme) UnmarshalJSON(bytes []byte) error {
+ var repr string
+ if err := json.Unmarshal(bytes, &repr); err != nil {
+ return err
+ }
+ return s.Set(repr)
+}
+
+// Set implements the pflag.Value interface.
+func (s *ValidationScheme) Set(text string) error {
+ switch text {
+ case "":
+ // Don't change the value.
+ case LegacyValidation.String():
+ *s = LegacyValidation
+ case UTF8Validation.String():
+ *s = UTF8Validation
+ default:
+ return fmt.Errorf("unrecognized ValidationScheme: %q", text)
+ }
+ return nil
+}
+
+// IsValidMetricName returns whether metricName is valid according to s.
+func (s ValidationScheme) IsValidMetricName(metricName string) bool {
+ switch s {
+ case LegacyValidation:
+ if len(metricName) == 0 {
+ return false
+ }
+ for i, b := range metricName {
+ if !isValidLegacyRune(b, i) {
+ return false
+ }
+ }
+ return true
+ case UTF8Validation:
+ if len(metricName) == 0 {
+ return false
+ }
+ return utf8.ValidString(metricName)
+ default:
+ panic(fmt.Sprintf("Invalid name validation scheme requested: %s", s.String()))
+ }
+}
+
+// IsValidLabelName returns whether labelName is valid according to s.
+func (s ValidationScheme) IsValidLabelName(labelName string) bool {
+ switch s {
+ case LegacyValidation:
+ if len(labelName) == 0 {
+ return false
+ }
+ for i, b := range labelName {
+ // TODO: Apply De Morgan's law. Make sure there are tests for this.
+ if !((b >= 'a' && b <= 'z') || (b >= 'A' && b <= 'Z') || b == '_' || (b >= '0' && b <= '9' && i > 0)) { //nolint:staticcheck
+ return false
+ }
+ }
+ return true
+ case UTF8Validation:
+ if len(labelName) == 0 {
+ return false
+ }
+ return utf8.ValidString(labelName)
+ default:
+ panic(fmt.Sprintf("Invalid name validation scheme requested: %s", s))
+ }
+}
+
+// Type implements the pflag.Value interface.
+func (ValidationScheme) Type() string {
+ return "validationScheme"
+}
+
type EscapingScheme int
const (
@@ -89,7 +238,7 @@ const (
// Accept header, the default NameEscapingScheme will be used.
EscapingKey = "escaping"
- // Possible values for Escaping Key:
+ // Possible values for Escaping Key.
AllowUTF8 = "allow-utf-8" // No escaping required.
EscapeUnderscores = "underscores"
EscapeDots = "dots"
@@ -163,34 +312,22 @@ func (m Metric) FastFingerprint() Fingerprint {
// IsValidMetricName returns true iff name matches the pattern of MetricNameRE
// for legacy names, and iff it's valid UTF-8 if the UTF8Validation scheme is
// selected.
+//
+// Deprecated: This function should not be used and might be removed in the future.
+// Use [ValidationScheme.IsValidMetricName] instead.
func IsValidMetricName(n LabelValue) bool {
- switch NameValidationScheme {
- case LegacyValidation:
- return IsValidLegacyMetricName(string(n))
- case UTF8Validation:
- if len(n) == 0 {
- return false
- }
- return utf8.ValidString(string(n))
- default:
- panic(fmt.Sprintf("Invalid name validation scheme requested: %d", NameValidationScheme))
- }
+ return NameValidationScheme.IsValidMetricName(string(n))
}
// IsValidLegacyMetricName is similar to IsValidMetricName but always uses the
// legacy validation scheme regardless of the value of NameValidationScheme.
// This function, however, does not use MetricNameRE for the check but a much
// faster hardcoded implementation.
+//
+// Deprecated: This function should not be used and might be removed in the future.
+// Use [LegacyValidation.IsValidMetricName] instead.
func IsValidLegacyMetricName(n string) bool {
- if len(n) == 0 {
- return false
- }
- for i, b := range n {
- if !isValidLegacyRune(b, i) {
- return false
- }
- }
- return true
+ return LegacyValidation.IsValidMetricName(n)
}
// EscapeMetricFamily escapes the given metric names and labels with the given
@@ -298,13 +435,14 @@ func EscapeName(name string, scheme EscapingScheme) string {
case DotsEscaping:
// Do not early return for legacy valid names, we still escape underscores.
for i, b := range name {
- if b == '_' {
+ switch {
+ case b == '_':
escaped.WriteString("__")
- } else if b == '.' {
+ case b == '.':
escaped.WriteString("_dot_")
- } else if isValidLegacyRune(b, i) {
+ case isValidLegacyRune(b, i):
escaped.WriteRune(b)
- } else {
+ default:
escaped.WriteString("__")
}
}
@@ -315,13 +453,14 @@ func EscapeName(name string, scheme EscapingScheme) string {
}
escaped.WriteString("U__")
for i, b := range name {
- if b == '_' {
+ switch {
+ case b == '_':
escaped.WriteString("__")
- } else if isValidLegacyRune(b, i) {
+ case isValidLegacyRune(b, i):
escaped.WriteRune(b)
- } else if !utf8.ValidRune(b) {
+ case !utf8.ValidRune(b):
escaped.WriteString("_FFFD_")
- } else {
+ default:
escaped.WriteRune('_')
escaped.WriteString(strconv.FormatInt(int64(b), 16))
escaped.WriteRune('_')
@@ -333,7 +472,7 @@ func EscapeName(name string, scheme EscapingScheme) string {
}
}
-// lower function taken from strconv.atoi
+// lower function taken from strconv.atoi.
func lower(c byte) byte {
return c | ('x' - 'X')
}
@@ -397,11 +536,12 @@ func UnescapeName(name string, scheme EscapingScheme) string {
}
r := lower(escapedName[i])
utf8Val *= 16
- if r >= '0' && r <= '9' {
+ switch {
+ case r >= '0' && r <= '9':
utf8Val += uint(r) - '0'
- } else if r >= 'a' && r <= 'f' {
+ case r >= 'a' && r <= 'f':
utf8Val += uint(r) - 'a' + 10
- } else {
+ default:
return name
}
i++
diff --git a/vendor/github.com/prometheus/common/model/time.go b/vendor/github.com/prometheus/common/model/time.go
index 5727452c..1730b0fd 100644
--- a/vendor/github.com/prometheus/common/model/time.go
+++ b/vendor/github.com/prometheus/common/model/time.go
@@ -126,14 +126,14 @@ func (t *Time) UnmarshalJSON(b []byte) error {
p := strings.Split(string(b), ".")
switch len(p) {
case 1:
- v, err := strconv.ParseInt(string(p[0]), 10, 64)
+ v, err := strconv.ParseInt(p[0], 10, 64)
if err != nil {
return err
}
*t = Time(v * second)
case 2:
- v, err := strconv.ParseInt(string(p[0]), 10, 64)
+ v, err := strconv.ParseInt(p[0], 10, 64)
if err != nil {
return err
}
@@ -143,7 +143,7 @@ func (t *Time) UnmarshalJSON(b []byte) error {
if prec < 0 {
p[1] = p[1][:dotPrecision]
} else if prec > 0 {
- p[1] = p[1] + strings.Repeat("0", prec)
+ p[1] += strings.Repeat("0", prec)
}
va, err := strconv.ParseInt(p[1], 10, 32)
@@ -170,15 +170,15 @@ func (t *Time) UnmarshalJSON(b []byte) error {
// This type should not propagate beyond the scope of input/output processing.
type Duration time.Duration
-// Set implements pflag/flag.Value
+// Set implements pflag/flag.Value.
func (d *Duration) Set(s string) error {
var err error
*d, err = ParseDuration(s)
return err
}
-// Type implements pflag.Value
-func (d *Duration) Type() string {
+// Type implements pflag.Value.
+func (*Duration) Type() string {
return "duration"
}
@@ -201,6 +201,7 @@ var unitMap = map[string]struct {
// ParseDuration parses a string into a time.Duration, assuming that a year
// always has 365d, a week always has 7d, and a day always has 24h.
+// Negative durations are not supported.
func ParseDuration(s string) (Duration, error) {
switch s {
case "0":
@@ -253,18 +254,36 @@ func ParseDuration(s string) (Duration, error) {
return 0, errors.New("duration out of range")
}
}
+
return Duration(dur), nil
}
+// ParseDurationAllowNegative is like ParseDuration but also accepts negative durations.
+func ParseDurationAllowNegative(s string) (Duration, error) {
+ if s == "" || s[0] != '-' {
+ return ParseDuration(s)
+ }
+
+ d, err := ParseDuration(s[1:])
+
+ return -d, err
+}
+
func (d Duration) String() string {
var (
- ms = int64(time.Duration(d) / time.Millisecond)
- r = ""
+ ms = int64(time.Duration(d) / time.Millisecond)
+ r = ""
+ sign = ""
)
+
if ms == 0 {
return "0s"
}
+ if ms < 0 {
+ sign, ms = "-", -ms
+ }
+
f := func(unit string, mult int64, exact bool) {
if exact && ms%mult != 0 {
return
@@ -286,7 +305,7 @@ func (d Duration) String() string {
f("s", 1000, false)
f("ms", 1, false)
- return r
+ return sign + r
}
// MarshalJSON implements the json.Marshaler interface.
diff --git a/vendor/github.com/prometheus/common/model/value.go b/vendor/github.com/prometheus/common/model/value.go
index 8050637d..a9995a37 100644
--- a/vendor/github.com/prometheus/common/model/value.go
+++ b/vendor/github.com/prometheus/common/model/value.go
@@ -191,7 +191,8 @@ func (ss SampleStream) String() string {
}
func (ss SampleStream) MarshalJSON() ([]byte, error) {
- if len(ss.Histograms) > 0 && len(ss.Values) > 0 {
+ switch {
+ case len(ss.Histograms) > 0 && len(ss.Values) > 0:
v := struct {
Metric Metric `json:"metric"`
Values []SamplePair `json:"values"`
@@ -202,7 +203,7 @@ func (ss SampleStream) MarshalJSON() ([]byte, error) {
Histograms: ss.Histograms,
}
return json.Marshal(&v)
- } else if len(ss.Histograms) > 0 {
+ case len(ss.Histograms) > 0:
v := struct {
Metric Metric `json:"metric"`
Histograms []SampleHistogramPair `json:"histograms"`
@@ -211,7 +212,7 @@ func (ss SampleStream) MarshalJSON() ([]byte, error) {
Histograms: ss.Histograms,
}
return json.Marshal(&v)
- } else {
+ default:
v := struct {
Metric Metric `json:"metric"`
Values []SamplePair `json:"values"`
@@ -258,7 +259,7 @@ func (s Scalar) String() string {
// MarshalJSON implements json.Marshaler.
func (s Scalar) MarshalJSON() ([]byte, error) {
v := strconv.FormatFloat(float64(s.Value), 'f', -1, 64)
- return json.Marshal([...]interface{}{s.Timestamp, string(v)})
+ return json.Marshal([...]interface{}{s.Timestamp, v})
}
// UnmarshalJSON implements json.Unmarshaler.
@@ -349,9 +350,9 @@ func (m Matrix) Len() int { return len(m) }
func (m Matrix) Less(i, j int) bool { return m[i].Metric.Before(m[j].Metric) }
func (m Matrix) Swap(i, j int) { m[i], m[j] = m[j], m[i] }
-func (mat Matrix) String() string {
- matCp := make(Matrix, len(mat))
- copy(matCp, mat)
+func (m Matrix) String() string {
+ matCp := make(Matrix, len(m))
+ copy(matCp, m)
sort.Sort(matCp)
strs := make([]string, len(matCp))
diff --git a/vendor/github.com/prometheus/common/model/value_histogram.go b/vendor/github.com/prometheus/common/model/value_histogram.go
index 895e6a3e..91ce5b7a 100644
--- a/vendor/github.com/prometheus/common/model/value_histogram.go
+++ b/vendor/github.com/prometheus/common/model/value_histogram.go
@@ -86,22 +86,22 @@ func (s *HistogramBucket) Equal(o *HistogramBucket) bool {
return s == o || (s.Boundaries == o.Boundaries && s.Lower == o.Lower && s.Upper == o.Upper && s.Count == o.Count)
}
-func (b HistogramBucket) String() string {
+func (s HistogramBucket) String() string {
var sb strings.Builder
- lowerInclusive := b.Boundaries == 1 || b.Boundaries == 3
- upperInclusive := b.Boundaries == 0 || b.Boundaries == 3
+ lowerInclusive := s.Boundaries == 1 || s.Boundaries == 3
+ upperInclusive := s.Boundaries == 0 || s.Boundaries == 3
if lowerInclusive {
sb.WriteRune('[')
} else {
sb.WriteRune('(')
}
- fmt.Fprintf(&sb, "%g,%g", b.Lower, b.Upper)
+ fmt.Fprintf(&sb, "%g,%g", s.Lower, s.Upper)
if upperInclusive {
sb.WriteRune(']')
} else {
sb.WriteRune(')')
}
- fmt.Fprintf(&sb, ":%v", b.Count)
+ fmt.Fprintf(&sb, ":%v", s.Count)
return sb.String()
}
diff --git a/vendor/github.com/prometheus/common/model/value_type.go b/vendor/github.com/prometheus/common/model/value_type.go
index 726c50ee..078910f4 100644
--- a/vendor/github.com/prometheus/common/model/value_type.go
+++ b/vendor/github.com/prometheus/common/model/value_type.go
@@ -66,8 +66,8 @@ func (et *ValueType) UnmarshalJSON(b []byte) error {
return nil
}
-func (e ValueType) String() string {
- switch e {
+func (et ValueType) String() string {
+ switch et {
case ValNone:
return ""
case ValScalar:
diff --git a/vendor/github.com/prometheus/procfs/.golangci.yml b/vendor/github.com/prometheus/procfs/.golangci.yml
index 126df9e6..3c3bf910 100644
--- a/vendor/github.com/prometheus/procfs/.golangci.yml
+++ b/vendor/github.com/prometheus/procfs/.golangci.yml
@@ -1,22 +1,45 @@
----
+version: "2"
linters:
enable:
- - errcheck
- - godot
- - gosimple
- - govet
- - ineffassign
- - misspell
- - revive
- - staticcheck
- - testifylint
- - unused
-
-linter-settings:
- godot:
- capital: true
- exclude:
- # Ignore "See: URL"
- - 'See:'
- misspell:
- locale: US
+ - forbidigo
+ - godot
+ - misspell
+ - revive
+ - testifylint
+ settings:
+ forbidigo:
+ forbid:
+ - pattern: ^fmt\.Print.*$
+ msg: Do not commit print statements.
+ godot:
+ exclude:
+ # Ignore "See: URL".
+ - 'See:'
+ capital: true
+ misspell:
+ locale: US
+ exclusions:
+ generated: lax
+ presets:
+ - comments
+ - common-false-positives
+ - legacy
+ - std-error-handling
+ paths:
+ - third_party$
+ - builtin$
+ - examples$
+formatters:
+ enable:
+ - gofmt
+ - goimports
+ settings:
+ goimports:
+ local-prefixes:
+ - github.com/prometheus/procfs
+ exclusions:
+ generated: lax
+ paths:
+ - third_party$
+ - builtin$
+ - examples$
diff --git a/vendor/github.com/prometheus/procfs/Makefile.common b/vendor/github.com/prometheus/procfs/Makefile.common
index 16172923..4de21512 100644
--- a/vendor/github.com/prometheus/procfs/Makefile.common
+++ b/vendor/github.com/prometheus/procfs/Makefile.common
@@ -61,7 +61,8 @@ PROMU_URL := https://github.com/prometheus/promu/releases/download/v$(PROMU_
SKIP_GOLANGCI_LINT :=
GOLANGCI_LINT :=
GOLANGCI_LINT_OPTS ?=
-GOLANGCI_LINT_VERSION ?= v1.59.0
+GOLANGCI_LINT_VERSION ?= v2.1.5
+GOLANGCI_FMT_OPTS ?=
# golangci-lint only supports linux, darwin and windows platforms on i386/amd64/arm64.
# windows isn't included here because of the path separator being different.
ifeq ($(GOHOSTOS),$(filter $(GOHOSTOS),linux darwin))
@@ -156,9 +157,13 @@ $(GOTEST_DIR):
@mkdir -p $@
.PHONY: common-format
-common-format:
+common-format: $(GOLANGCI_LINT)
@echo ">> formatting code"
$(GO) fmt $(pkgs)
+ifdef GOLANGCI_LINT
+ @echo ">> formatting code with golangci-lint"
+ $(GOLANGCI_LINT) fmt $(GOLANGCI_FMT_OPTS)
+endif
.PHONY: common-vet
common-vet:
@@ -248,8 +253,8 @@ $(PROMU):
cp $(PROMU_TMP)/promu-$(PROMU_VERSION).$(GO_BUILD_PLATFORM)/promu $(FIRST_GOPATH)/bin/promu
rm -r $(PROMU_TMP)
-.PHONY: proto
-proto:
+.PHONY: common-proto
+common-proto:
@echo ">> generating code from proto files"
@./scripts/genproto.sh
@@ -275,3 +280,9 @@ $(1)_precheck:
exit 1; \
fi
endef
+
+govulncheck: install-govulncheck
+ govulncheck ./...
+
+install-govulncheck:
+ command -v govulncheck > /dev/null || go install golang.org/x/vuln/cmd/govulncheck@latest
diff --git a/vendor/github.com/prometheus/procfs/README.md b/vendor/github.com/prometheus/procfs/README.md
index 1224816c..0718239c 100644
--- a/vendor/github.com/prometheus/procfs/README.md
+++ b/vendor/github.com/prometheus/procfs/README.md
@@ -47,15 +47,15 @@ However, most of the API includes unit tests which can be run with `make test`.
The procfs library includes a set of test fixtures which include many example files from
the `/proc` and `/sys` filesystems. These fixtures are included as a [ttar](https://github.com/ideaship/ttar) file
which is extracted automatically during testing. To add/update the test fixtures, first
-ensure the `fixtures` directory is up to date by removing the existing directory and then
-extracting the ttar file using `make fixtures/.unpacked` or just `make test`.
+ensure the `testdata/fixtures` directory is up to date by removing the existing directory and then
+extracting the ttar file using `make testdata/fixtures/.unpacked` or just `make test`.
```bash
rm -rf testdata/fixtures
make test
```
-Next, make the required changes to the extracted files in the `fixtures` directory. When
+Next, make the required changes to the extracted files in the `testdata/fixtures` directory. When
the changes are complete, run `make update_fixtures` to create a new `fixtures.ttar` file
based on the updated `fixtures` directory. And finally, verify the changes using
`git diff testdata/fixtures.ttar`.
diff --git a/vendor/github.com/prometheus/procfs/arp.go b/vendor/github.com/prometheus/procfs/arp.go
index cdcc8a7c..2e533441 100644
--- a/vendor/github.com/prometheus/procfs/arp.go
+++ b/vendor/github.com/prometheus/procfs/arp.go
@@ -23,9 +23,9 @@ import (
// Learned from include/uapi/linux/if_arp.h.
const (
- // completed entry (ha valid).
+ // Completed entry (ha valid).
ATFComplete = 0x02
- // permanent entry.
+ // Permanent entry.
ATFPermanent = 0x04
// Publish entry.
ATFPublish = 0x08
diff --git a/vendor/github.com/prometheus/procfs/fs.go b/vendor/github.com/prometheus/procfs/fs.go
index 4980c875..9bdaccc7 100644
--- a/vendor/github.com/prometheus/procfs/fs.go
+++ b/vendor/github.com/prometheus/procfs/fs.go
@@ -24,8 +24,14 @@ type FS struct {
isReal bool
}
-// DefaultMountPoint is the common mount point of the proc filesystem.
-const DefaultMountPoint = fs.DefaultProcMountPoint
+const (
+ // DefaultMountPoint is the common mount point of the proc filesystem.
+ DefaultMountPoint = fs.DefaultProcMountPoint
+
+ // SectorSize represents the size of a sector in bytes.
+ // It is specific to Linux block I/O operations.
+ SectorSize = 512
+)
// NewDefaultFS returns a new proc FS mounted under the default proc mountPoint.
// It will error if the mount point directory can't be read or is a file.
diff --git a/vendor/github.com/prometheus/procfs/fs_statfs_notype.go b/vendor/github.com/prometheus/procfs/fs_statfs_notype.go
index 134767d6..1b5bdbdf 100644
--- a/vendor/github.com/prometheus/procfs/fs_statfs_notype.go
+++ b/vendor/github.com/prometheus/procfs/fs_statfs_notype.go
@@ -17,7 +17,7 @@
package procfs
// isRealProc returns true on architectures that don't have a Type argument
-// in their Statfs_t struct
-func isRealProc(mountPoint string) (bool, error) {
+// in their Statfs_t struct.
+func isRealProc(_ string) (bool, error) {
return true, nil
}
diff --git a/vendor/github.com/prometheus/procfs/fscache.go b/vendor/github.com/prometheus/procfs/fscache.go
index cf2e3eaa..7db86330 100644
--- a/vendor/github.com/prometheus/procfs/fscache.go
+++ b/vendor/github.com/prometheus/procfs/fscache.go
@@ -162,7 +162,7 @@ type Fscacheinfo struct {
ReleaseRequestsAgainstPagesStoredByTimeLockGranted uint64
// Number of release reqs ignored due to in-progress store
ReleaseRequestsIgnoredDueToInProgressStore uint64
- // Number of page stores cancelled due to release req
+ // Number of page stores canceled due to release req
PageStoresCancelledByReleaseRequests uint64
VmscanWaiting uint64
// Number of times async ops added to pending queues
@@ -171,11 +171,11 @@ type Fscacheinfo struct {
OpsRunning uint64
// Number of times async ops queued for processing
OpsEnqueued uint64
- // Number of async ops cancelled
+ // Number of async ops canceled
OpsCancelled uint64
// Number of async ops rejected due to object lookup/create failure
OpsRejected uint64
- // Number of async ops initialised
+ // Number of async ops initialized
OpsInitialised uint64
// Number of async ops queued for deferred release
OpsDeferred uint64
diff --git a/vendor/github.com/prometheus/procfs/internal/fs/fs.go b/vendor/github.com/prometheus/procfs/internal/fs/fs.go
index 3c18c761..3a43e839 100644
--- a/vendor/github.com/prometheus/procfs/internal/fs/fs.go
+++ b/vendor/github.com/prometheus/procfs/internal/fs/fs.go
@@ -28,6 +28,9 @@ const (
// DefaultConfigfsMountPoint is the common mount point of the configfs.
DefaultConfigfsMountPoint = "/sys/kernel/config"
+
+ // DefaultSelinuxMountPoint is the common mount point of the selinuxfs.
+ DefaultSelinuxMountPoint = "/sys/fs/selinux"
)
// FS represents a pseudo-filesystem, normally /proc or /sys, which provides an
diff --git a/vendor/github.com/prometheus/procfs/internal/util/parse.go b/vendor/github.com/prometheus/procfs/internal/util/parse.go
index 14272dc7..5a7d2df0 100644
--- a/vendor/github.com/prometheus/procfs/internal/util/parse.go
+++ b/vendor/github.com/prometheus/procfs/internal/util/parse.go
@@ -14,6 +14,7 @@
package util
import (
+ "errors"
"os"
"strconv"
"strings"
@@ -110,3 +111,16 @@ func ParseBool(b string) *bool {
}
return &truth
}
+
+// ReadHexFromFile reads a file and attempts to parse a uint64 from a hexadecimal format 0xXX.
+func ReadHexFromFile(path string) (uint64, error) {
+ data, err := os.ReadFile(path)
+ if err != nil {
+ return 0, err
+ }
+ hexString := strings.TrimSpace(string(data))
+ if !strings.HasPrefix(hexString, "0x") {
+ return 0, errors.New("invalid format: hex string does not start with '0x'")
+ }
+ return strconv.ParseUint(hexString[2:], 16, 64)
+}
diff --git a/vendor/github.com/prometheus/procfs/internal/util/sysreadfile.go b/vendor/github.com/prometheus/procfs/internal/util/sysreadfile.go
index 1ab875ce..d5404a6d 100644
--- a/vendor/github.com/prometheus/procfs/internal/util/sysreadfile.go
+++ b/vendor/github.com/prometheus/procfs/internal/util/sysreadfile.go
@@ -20,6 +20,8 @@ package util
import (
"bytes"
"os"
+ "strconv"
+ "strings"
"syscall"
)
@@ -48,3 +50,21 @@ func SysReadFile(file string) (string, error) {
return string(bytes.TrimSpace(b[:n])), nil
}
+
+// SysReadUintFromFile reads a file using SysReadFile and attempts to parse a uint64 from it.
+func SysReadUintFromFile(path string) (uint64, error) {
+ data, err := SysReadFile(path)
+ if err != nil {
+ return 0, err
+ }
+ return strconv.ParseUint(strings.TrimSpace(string(data)), 10, 64)
+}
+
+// SysReadIntFromFile reads a file using SysReadFile and attempts to parse a int64 from it.
+func SysReadIntFromFile(path string) (int64, error) {
+ data, err := SysReadFile(path)
+ if err != nil {
+ return 0, err
+ }
+ return strconv.ParseInt(strings.TrimSpace(string(data)), 10, 64)
+}
diff --git a/vendor/github.com/prometheus/procfs/mdstat.go b/vendor/github.com/prometheus/procfs/mdstat.go
index 67a9d2b4..1fd4381b 100644
--- a/vendor/github.com/prometheus/procfs/mdstat.go
+++ b/vendor/github.com/prometheus/procfs/mdstat.go
@@ -123,13 +123,16 @@ func parseMDStat(mdStatData []byte) ([]MDStat, error) {
finish := float64(0)
pct := float64(0)
recovering := strings.Contains(lines[syncLineIdx], "recovery")
+ reshaping := strings.Contains(lines[syncLineIdx], "reshape")
resyncing := strings.Contains(lines[syncLineIdx], "resync")
checking := strings.Contains(lines[syncLineIdx], "check")
// Append recovery and resyncing state info.
- if recovering || resyncing || checking {
+ if recovering || resyncing || checking || reshaping {
if recovering {
state = "recovering"
+ } else if reshaping {
+ state = "reshaping"
} else if checking {
state = "checking"
} else {
diff --git a/vendor/github.com/prometheus/procfs/meminfo.go b/vendor/github.com/prometheus/procfs/meminfo.go
index 4b2c4050..937e1f96 100644
--- a/vendor/github.com/prometheus/procfs/meminfo.go
+++ b/vendor/github.com/prometheus/procfs/meminfo.go
@@ -66,6 +66,10 @@ type Meminfo struct {
// Memory which has been evicted from RAM, and is temporarily
// on the disk
SwapFree *uint64
+ // Memory consumed by the zswap backend (compressed size)
+ Zswap *uint64
+ // Amount of anonymous memory stored in zswap (original size)
+ Zswapped *uint64
// Memory which is waiting to get written back to the disk
Dirty *uint64
// Memory which is actively being written back to the disk
@@ -85,6 +89,8 @@ type Meminfo struct {
// amount of memory dedicated to the lowest level of page
// tables.
PageTables *uint64
+ // secondary page tables.
+ SecPageTables *uint64
// NFS pages sent to the server, but not yet committed to
// stable storage
NFSUnstable *uint64
@@ -129,15 +135,18 @@ type Meminfo struct {
Percpu *uint64
HardwareCorrupted *uint64
AnonHugePages *uint64
+ FileHugePages *uint64
ShmemHugePages *uint64
ShmemPmdMapped *uint64
CmaTotal *uint64
CmaFree *uint64
+ Unaccepted *uint64
HugePagesTotal *uint64
HugePagesFree *uint64
HugePagesRsvd *uint64
HugePagesSurp *uint64
Hugepagesize *uint64
+ Hugetlb *uint64
DirectMap4k *uint64
DirectMap2M *uint64
DirectMap1G *uint64
@@ -161,6 +170,8 @@ type Meminfo struct {
MlockedBytes *uint64
SwapTotalBytes *uint64
SwapFreeBytes *uint64
+ ZswapBytes *uint64
+ ZswappedBytes *uint64
DirtyBytes *uint64
WritebackBytes *uint64
AnonPagesBytes *uint64
@@ -171,6 +182,7 @@ type Meminfo struct {
SUnreclaimBytes *uint64
KernelStackBytes *uint64
PageTablesBytes *uint64
+ SecPageTablesBytes *uint64
NFSUnstableBytes *uint64
BounceBytes *uint64
WritebackTmpBytes *uint64
@@ -182,11 +194,14 @@ type Meminfo struct {
PercpuBytes *uint64
HardwareCorruptedBytes *uint64
AnonHugePagesBytes *uint64
+ FileHugePagesBytes *uint64
ShmemHugePagesBytes *uint64
ShmemPmdMappedBytes *uint64
CmaTotalBytes *uint64
CmaFreeBytes *uint64
+ UnacceptedBytes *uint64
HugepagesizeBytes *uint64
+ HugetlbBytes *uint64
DirectMap4kBytes *uint64
DirectMap2MBytes *uint64
DirectMap1GBytes *uint64
@@ -287,6 +302,12 @@ func parseMemInfo(r io.Reader) (*Meminfo, error) {
case "SwapFree:":
m.SwapFree = &val
m.SwapFreeBytes = &valBytes
+ case "Zswap:":
+ m.Zswap = &val
+ m.ZswapBytes = &valBytes
+ case "Zswapped:":
+ m.Zswapped = &val
+ m.ZswapBytes = &valBytes
case "Dirty:":
m.Dirty = &val
m.DirtyBytes = &valBytes
@@ -317,6 +338,9 @@ func parseMemInfo(r io.Reader) (*Meminfo, error) {
case "PageTables:":
m.PageTables = &val
m.PageTablesBytes = &valBytes
+ case "SecPageTables:":
+ m.SecPageTables = &val
+ m.SecPageTablesBytes = &valBytes
case "NFS_Unstable:":
m.NFSUnstable = &val
m.NFSUnstableBytes = &valBytes
@@ -350,6 +374,9 @@ func parseMemInfo(r io.Reader) (*Meminfo, error) {
case "AnonHugePages:":
m.AnonHugePages = &val
m.AnonHugePagesBytes = &valBytes
+ case "FileHugePages:":
+ m.FileHugePages = &val
+ m.FileHugePagesBytes = &valBytes
case "ShmemHugePages:":
m.ShmemHugePages = &val
m.ShmemHugePagesBytes = &valBytes
@@ -362,6 +389,9 @@ func parseMemInfo(r io.Reader) (*Meminfo, error) {
case "CmaFree:":
m.CmaFree = &val
m.CmaFreeBytes = &valBytes
+ case "Unaccepted:":
+ m.Unaccepted = &val
+ m.UnacceptedBytes = &valBytes
case "HugePages_Total:":
m.HugePagesTotal = &val
case "HugePages_Free:":
@@ -373,6 +403,9 @@ func parseMemInfo(r io.Reader) (*Meminfo, error) {
case "Hugepagesize:":
m.Hugepagesize = &val
m.HugepagesizeBytes = &valBytes
+ case "Hugetlb:":
+ m.Hugetlb = &val
+ m.HugetlbBytes = &valBytes
case "DirectMap4k:":
m.DirectMap4k = &val
m.DirectMap4kBytes = &valBytes
diff --git a/vendor/github.com/prometheus/procfs/mountstats.go b/vendor/github.com/prometheus/procfs/mountstats.go
index 75a3b6c8..50caa732 100644
--- a/vendor/github.com/prometheus/procfs/mountstats.go
+++ b/vendor/github.com/prometheus/procfs/mountstats.go
@@ -45,11 +45,11 @@ const (
fieldTransport11TCPLen = 13
fieldTransport11UDPLen = 10
- // kernel version >= 4.14 MaxLen
+ // Kernel version >= 4.14 MaxLen
// See: https://elixir.bootlin.com/linux/v6.4.8/source/net/sunrpc/xprtrdma/xprt_rdma.h#L393
fieldTransport11RDMAMaxLen = 28
- // kernel version <= 4.2 MinLen
+ // Kernel version <= 4.2 MinLen
// See: https://elixir.bootlin.com/linux/v4.2.8/source/net/sunrpc/xprtrdma/xprt_rdma.h#L331
fieldTransport11RDMAMinLen = 20
)
@@ -601,11 +601,12 @@ func parseNFSTransportStats(ss []string, statVersion string) (*NFSTransportStats
switch statVersion {
case statVersion10:
var expectedLength int
- if protocol == "tcp" {
+ switch protocol {
+ case "tcp":
expectedLength = fieldTransport10TCPLen
- } else if protocol == "udp" {
+ case "udp":
expectedLength = fieldTransport10UDPLen
- } else {
+ default:
return nil, fmt.Errorf("%w: Invalid NFS protocol \"%s\" in stats 1.0 statement: %v", ErrFileParse, protocol, ss)
}
if len(ss) != expectedLength {
@@ -613,13 +614,14 @@ func parseNFSTransportStats(ss []string, statVersion string) (*NFSTransportStats
}
case statVersion11:
var expectedLength int
- if protocol == "tcp" {
+ switch protocol {
+ case "tcp":
expectedLength = fieldTransport11TCPLen
- } else if protocol == "udp" {
+ case "udp":
expectedLength = fieldTransport11UDPLen
- } else if protocol == "rdma" {
+ case "rdma":
expectedLength = fieldTransport11RDMAMinLen
- } else {
+ default:
return nil, fmt.Errorf("%w: invalid NFS protocol \"%s\" in stats 1.1 statement: %v", ErrFileParse, protocol, ss)
}
if (len(ss) != expectedLength && (protocol == "tcp" || protocol == "udp")) ||
@@ -655,11 +657,12 @@ func parseNFSTransportStats(ss []string, statVersion string) (*NFSTransportStats
// For the udp RPC transport there is no connection count, connect idle time,
// or idle time (fields #3, #4, and #5); all other fields are the same. So
// we set them to 0 here.
- if protocol == "udp" {
+ switch protocol {
+ case "udp":
ns = append(ns[:2], append(make([]uint64, 3), ns[2:]...)...)
- } else if protocol == "tcp" {
+ case "tcp":
ns = append(ns[:fieldTransport11TCPLen], make([]uint64, fieldTransport11RDMAMaxLen-fieldTransport11TCPLen+3)...)
- } else if protocol == "rdma" {
+ case "rdma":
ns = append(ns[:fieldTransport10TCPLen], append(make([]uint64, 3), ns[fieldTransport10TCPLen:]...)...)
}
diff --git a/vendor/github.com/prometheus/procfs/net_dev_snmp6.go b/vendor/github.com/prometheus/procfs/net_dev_snmp6.go
new file mode 100644
index 00000000..f50b38e3
--- /dev/null
+++ b/vendor/github.com/prometheus/procfs/net_dev_snmp6.go
@@ -0,0 +1,96 @@
+// Copyright 2018 The Prometheus Authors
+// 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.
+
+package procfs
+
+import (
+ "bufio"
+ "errors"
+ "io"
+ "os"
+ "strconv"
+ "strings"
+)
+
+// NetDevSNMP6 is parsed from files in /proc/net/dev_snmp6/ or /proc//net/dev_snmp6/.
+// The outer map's keys are interface names and the inner map's keys are stat names.
+//
+// If you'd like a total across all interfaces, please use the Snmp6() method of the Proc type.
+type NetDevSNMP6 map[string]map[string]uint64
+
+// Returns kernel/system statistics read from interface files within the /proc/net/dev_snmp6/
+// directory.
+func (fs FS) NetDevSNMP6() (NetDevSNMP6, error) {
+ return newNetDevSNMP6(fs.proc.Path("net/dev_snmp6"))
+}
+
+// Returns kernel/system statistics read from interface files within the /proc//net/dev_snmp6/
+// directory.
+func (p Proc) NetDevSNMP6() (NetDevSNMP6, error) {
+ return newNetDevSNMP6(p.path("net/dev_snmp6"))
+}
+
+// newNetDevSNMP6 creates a new NetDevSNMP6 from the contents of the given directory.
+func newNetDevSNMP6(dir string) (NetDevSNMP6, error) {
+ netDevSNMP6 := make(NetDevSNMP6)
+
+ // The net/dev_snmp6 folders contain one file per interface
+ ifaceFiles, err := os.ReadDir(dir)
+ if err != nil {
+ // On systems with IPv6 disabled, this directory won't exist.
+ // Do nothing.
+ if errors.Is(err, os.ErrNotExist) {
+ return netDevSNMP6, err
+ }
+ return netDevSNMP6, err
+ }
+
+ for _, iFaceFile := range ifaceFiles {
+ f, err := os.Open(dir + "/" + iFaceFile.Name())
+ if err != nil {
+ return netDevSNMP6, err
+ }
+ defer f.Close()
+
+ netDevSNMP6[iFaceFile.Name()], err = parseNetDevSNMP6Stats(f)
+ if err != nil {
+ return netDevSNMP6, err
+ }
+ }
+
+ return netDevSNMP6, nil
+}
+
+func parseNetDevSNMP6Stats(r io.Reader) (map[string]uint64, error) {
+ m := make(map[string]uint64)
+
+ scanner := bufio.NewScanner(r)
+ for scanner.Scan() {
+ stat := strings.Fields(scanner.Text())
+ if len(stat) < 2 {
+ continue
+ }
+ key, val := stat[0], stat[1]
+
+ // Expect stat name to contain "6" or be "ifIndex"
+ if strings.Contains(key, "6") || key == "ifIndex" {
+ v, err := strconv.ParseUint(val, 10, 64)
+ if err != nil {
+ return m, err
+ }
+
+ m[key] = v
+ }
+ }
+ return m, scanner.Err()
+}
diff --git a/vendor/github.com/prometheus/procfs/net_ip_socket.go b/vendor/github.com/prometheus/procfs/net_ip_socket.go
index b70f1fc7..19e3378f 100644
--- a/vendor/github.com/prometheus/procfs/net_ip_socket.go
+++ b/vendor/github.com/prometheus/procfs/net_ip_socket.go
@@ -25,7 +25,7 @@ import (
)
const (
- // readLimit is used by io.LimitReader while reading the content of the
+ // Maximum size limit used by io.LimitReader while reading the content of the
// /proc/net/udp{,6} files. The number of lines inside such a file is dynamic
// as each line represents a single used socket.
// In theory, the number of available sockets is 65535 (2^16 - 1) per IP.
@@ -50,12 +50,12 @@ type (
// UsedSockets shows the total number of parsed lines representing the
// number of used sockets.
UsedSockets uint64
- // Drops shows the total number of dropped packets of all UPD sockets.
+ // Drops shows the total number of dropped packets of all UDP sockets.
Drops *uint64
}
- // netIPSocketLine represents the fields parsed from a single line
- // in /proc/net/{t,u}dp{,6}. Fields which are not used by IPSocket are skipped.
+ // A single line parser for fields from /proc/net/{t,u}dp{,6}.
+ // Fields which are not used by IPSocket are skipped.
// Drops is non-nil for udp{,6}, but nil for tcp{,6}.
// For the proc file format details, see https://linux.die.net/man/5/proc.
netIPSocketLine struct {
diff --git a/vendor/github.com/prometheus/procfs/net_protocols.go b/vendor/github.com/prometheus/procfs/net_protocols.go
index b6c77b70..8d4b1ac0 100644
--- a/vendor/github.com/prometheus/procfs/net_protocols.go
+++ b/vendor/github.com/prometheus/procfs/net_protocols.go
@@ -115,22 +115,24 @@ func (ps NetProtocolStats) parseLine(rawLine string) (*NetProtocolStatLine, erro
if err != nil {
return nil, err
}
- if fields[4] == enabled {
+ switch fields[4] {
+ case enabled:
line.Pressure = 1
- } else if fields[4] == disabled {
+ case disabled:
line.Pressure = 0
- } else {
+ default:
line.Pressure = -1
}
line.MaxHeader, err = strconv.ParseUint(fields[5], 10, 64)
if err != nil {
return nil, err
}
- if fields[6] == enabled {
+ switch fields[6] {
+ case enabled:
line.Slab = true
- } else if fields[6] == disabled {
+ case disabled:
line.Slab = false
- } else {
+ default:
return nil, fmt.Errorf("%w: capability for protocol: %s", ErrFileParse, line.Name)
}
line.ModuleName = fields[7]
@@ -168,11 +170,12 @@ func (pc *NetProtocolCapabilities) parseCapabilities(capabilities []string) erro
}
for i := 0; i < len(capabilities); i++ {
- if capabilities[i] == "y" {
+ switch capabilities[i] {
+ case "y":
*capabilityFields[i] = true
- } else if capabilities[i] == "n" {
+ case "n":
*capabilityFields[i] = false
- } else {
+ default:
return fmt.Errorf("%w: capability block for protocol: position %d", ErrFileParse, i)
}
}
diff --git a/vendor/github.com/prometheus/procfs/net_tcp.go b/vendor/github.com/prometheus/procfs/net_tcp.go
index 52776295..0396d720 100644
--- a/vendor/github.com/prometheus/procfs/net_tcp.go
+++ b/vendor/github.com/prometheus/procfs/net_tcp.go
@@ -25,24 +25,28 @@ type (
// NetTCP returns the IPv4 kernel/networking statistics for TCP datagrams
// read from /proc/net/tcp.
+// Deprecated: Use github.com/mdlayher/netlink#Conn (with syscall.AF_INET) instead.
func (fs FS) NetTCP() (NetTCP, error) {
return newNetTCP(fs.proc.Path("net/tcp"))
}
// NetTCP6 returns the IPv6 kernel/networking statistics for TCP datagrams
// read from /proc/net/tcp6.
+// Deprecated: Use github.com/mdlayher/netlink#Conn (with syscall.AF_INET6) instead.
func (fs FS) NetTCP6() (NetTCP, error) {
return newNetTCP(fs.proc.Path("net/tcp6"))
}
// NetTCPSummary returns already computed statistics like the total queue lengths
// for TCP datagrams read from /proc/net/tcp.
+// Deprecated: Use github.com/mdlayher/netlink#Conn (with syscall.AF_INET) instead.
func (fs FS) NetTCPSummary() (*NetTCPSummary, error) {
return newNetTCPSummary(fs.proc.Path("net/tcp"))
}
// NetTCP6Summary returns already computed statistics like the total queue lengths
// for TCP datagrams read from /proc/net/tcp6.
+// Deprecated: Use github.com/mdlayher/netlink#Conn (with syscall.AF_INET6) instead.
func (fs FS) NetTCP6Summary() (*NetTCPSummary, error) {
return newNetTCPSummary(fs.proc.Path("net/tcp6"))
}
diff --git a/vendor/github.com/prometheus/procfs/net_unix.go b/vendor/github.com/prometheus/procfs/net_unix.go
index d868cebd..d7e0cacb 100644
--- a/vendor/github.com/prometheus/procfs/net_unix.go
+++ b/vendor/github.com/prometheus/procfs/net_unix.go
@@ -121,12 +121,12 @@ func parseNetUNIX(r io.Reader) (*NetUNIX, error) {
return &nu, nil
}
-func (u *NetUNIX) parseLine(line string, hasInode bool, min int) (*NetUNIXLine, error) {
+func (u *NetUNIX) parseLine(line string, hasInode bool, minFields int) (*NetUNIXLine, error) {
fields := strings.Fields(line)
l := len(fields)
- if l < min {
- return nil, fmt.Errorf("%w: expected at least %d fields but got %d", ErrFileParse, min, l)
+ if l < minFields {
+ return nil, fmt.Errorf("%w: expected at least %d fields but got %d", ErrFileParse, minFields, l)
}
// Field offsets are as follows:
@@ -172,7 +172,7 @@ func (u *NetUNIX) parseLine(line string, hasInode bool, min int) (*NetUNIXLine,
}
// Path field is optional.
- if l > min {
+ if l > minFields {
// Path occurs at either index 6 or 7 depending on whether inode is
// already present.
pathIdx := 7
diff --git a/vendor/github.com/prometheus/procfs/proc.go b/vendor/github.com/prometheus/procfs/proc.go
index 14279636..368187fa 100644
--- a/vendor/github.com/prometheus/procfs/proc.go
+++ b/vendor/github.com/prometheus/procfs/proc.go
@@ -37,9 +37,9 @@ type Proc struct {
type Procs []Proc
var (
- ErrFileParse = errors.New("Error Parsing File")
- ErrFileRead = errors.New("Error Reading File")
- ErrMountPoint = errors.New("Error Accessing Mount point")
+ ErrFileParse = errors.New("error parsing file")
+ ErrFileRead = errors.New("error reading file")
+ ErrMountPoint = errors.New("error accessing mount point")
)
func (p Procs) Len() int { return len(p) }
@@ -79,7 +79,7 @@ func (fs FS) Self() (Proc, error) {
if err != nil {
return Proc{}, err
}
- pid, err := strconv.Atoi(strings.Replace(p, string(fs.proc), "", -1))
+ pid, err := strconv.Atoi(strings.ReplaceAll(p, string(fs.proc), ""))
if err != nil {
return Proc{}, err
}
diff --git a/vendor/github.com/prometheus/procfs/proc_cgroup.go b/vendor/github.com/prometheus/procfs/proc_cgroup.go
index daeed7f5..4a64347c 100644
--- a/vendor/github.com/prometheus/procfs/proc_cgroup.go
+++ b/vendor/github.com/prometheus/procfs/proc_cgroup.go
@@ -24,7 +24,7 @@ import (
)
// Cgroup models one line from /proc/[pid]/cgroup. Each Cgroup struct describes the placement of a PID inside a
-// specific control hierarchy. The kernel has two cgroup APIs, v1 and v2. v1 has one hierarchy per available resource
+// specific control hierarchy. The kernel has two cgroup APIs, v1 and v2. The v1 has one hierarchy per available resource
// controller, while v2 has one unified hierarchy shared by all controllers. Regardless of v1 or v2, all hierarchies
// contain all running processes, so the question answerable with a Cgroup struct is 'where is this process in
// this hierarchy' (where==what path on the specific cgroupfs). By prefixing this path with the mount point of
diff --git a/vendor/github.com/prometheus/procfs/proc_io.go b/vendor/github.com/prometheus/procfs/proc_io.go
index 776f3497..d15b66dd 100644
--- a/vendor/github.com/prometheus/procfs/proc_io.go
+++ b/vendor/github.com/prometheus/procfs/proc_io.go
@@ -50,7 +50,7 @@ func (p Proc) IO() (ProcIO, error) {
ioFormat := "rchar: %d\nwchar: %d\nsyscr: %d\nsyscw: %d\n" +
"read_bytes: %d\nwrite_bytes: %d\n" +
- "cancelled_write_bytes: %d\n"
+ "cancelled_write_bytes: %d\n" //nolint:misspell
_, err = fmt.Sscanf(string(data), ioFormat, &pio.RChar, &pio.WChar, &pio.SyscR,
&pio.SyscW, &pio.ReadBytes, &pio.WriteBytes, &pio.CancelledWriteBytes)
diff --git a/vendor/github.com/prometheus/procfs/proc_netstat.go b/vendor/github.com/prometheus/procfs/proc_netstat.go
index 8e3ff4d7..4248c171 100644
--- a/vendor/github.com/prometheus/procfs/proc_netstat.go
+++ b/vendor/github.com/prometheus/procfs/proc_netstat.go
@@ -209,232 +209,232 @@ func parseProcNetstat(r io.Reader, fileName string) (ProcNetstat, error) {
case "TcpExt":
switch key {
case "SyncookiesSent":
- procNetstat.TcpExt.SyncookiesSent = &value
+ procNetstat.SyncookiesSent = &value
case "SyncookiesRecv":
- procNetstat.TcpExt.SyncookiesRecv = &value
+ procNetstat.SyncookiesRecv = &value
case "SyncookiesFailed":
- procNetstat.TcpExt.SyncookiesFailed = &value
+ procNetstat.SyncookiesFailed = &value
case "EmbryonicRsts":
- procNetstat.TcpExt.EmbryonicRsts = &value
+ procNetstat.EmbryonicRsts = &value
case "PruneCalled":
- procNetstat.TcpExt.PruneCalled = &value
+ procNetstat.PruneCalled = &value
case "RcvPruned":
- procNetstat.TcpExt.RcvPruned = &value
+ procNetstat.RcvPruned = &value
case "OfoPruned":
- procNetstat.TcpExt.OfoPruned = &value
+ procNetstat.OfoPruned = &value
case "OutOfWindowIcmps":
- procNetstat.TcpExt.OutOfWindowIcmps = &value
+ procNetstat.OutOfWindowIcmps = &value
case "LockDroppedIcmps":
- procNetstat.TcpExt.LockDroppedIcmps = &value
+ procNetstat.LockDroppedIcmps = &value
case "ArpFilter":
- procNetstat.TcpExt.ArpFilter = &value
+ procNetstat.ArpFilter = &value
case "TW":
- procNetstat.TcpExt.TW = &value
+ procNetstat.TW = &value
case "TWRecycled":
- procNetstat.TcpExt.TWRecycled = &value
+ procNetstat.TWRecycled = &value
case "TWKilled":
- procNetstat.TcpExt.TWKilled = &value
+ procNetstat.TWKilled = &value
case "PAWSActive":
- procNetstat.TcpExt.PAWSActive = &value
+ procNetstat.PAWSActive = &value
case "PAWSEstab":
- procNetstat.TcpExt.PAWSEstab = &value
+ procNetstat.PAWSEstab = &value
case "DelayedACKs":
- procNetstat.TcpExt.DelayedACKs = &value
+ procNetstat.DelayedACKs = &value
case "DelayedACKLocked":
- procNetstat.TcpExt.DelayedACKLocked = &value
+ procNetstat.DelayedACKLocked = &value
case "DelayedACKLost":
- procNetstat.TcpExt.DelayedACKLost = &value
+ procNetstat.DelayedACKLost = &value
case "ListenOverflows":
- procNetstat.TcpExt.ListenOverflows = &value
+ procNetstat.ListenOverflows = &value
case "ListenDrops":
- procNetstat.TcpExt.ListenDrops = &value
+ procNetstat.ListenDrops = &value
case "TCPHPHits":
- procNetstat.TcpExt.TCPHPHits = &value
+ procNetstat.TCPHPHits = &value
case "TCPPureAcks":
- procNetstat.TcpExt.TCPPureAcks = &value
+ procNetstat.TCPPureAcks = &value
case "TCPHPAcks":
- procNetstat.TcpExt.TCPHPAcks = &value
+ procNetstat.TCPHPAcks = &value
case "TCPRenoRecovery":
- procNetstat.TcpExt.TCPRenoRecovery = &value
+ procNetstat.TCPRenoRecovery = &value
case "TCPSackRecovery":
- procNetstat.TcpExt.TCPSackRecovery = &value
+ procNetstat.TCPSackRecovery = &value
case "TCPSACKReneging":
- procNetstat.TcpExt.TCPSACKReneging = &value
+ procNetstat.TCPSACKReneging = &value
case "TCPSACKReorder":
- procNetstat.TcpExt.TCPSACKReorder = &value
+ procNetstat.TCPSACKReorder = &value
case "TCPRenoReorder":
- procNetstat.TcpExt.TCPRenoReorder = &value
+ procNetstat.TCPRenoReorder = &value
case "TCPTSReorder":
- procNetstat.TcpExt.TCPTSReorder = &value
+ procNetstat.TCPTSReorder = &value
case "TCPFullUndo":
- procNetstat.TcpExt.TCPFullUndo = &value
+ procNetstat.TCPFullUndo = &value
case "TCPPartialUndo":
- procNetstat.TcpExt.TCPPartialUndo = &value
+ procNetstat.TCPPartialUndo = &value
case "TCPDSACKUndo":
- procNetstat.TcpExt.TCPDSACKUndo = &value
+ procNetstat.TCPDSACKUndo = &value
case "TCPLossUndo":
- procNetstat.TcpExt.TCPLossUndo = &value
+ procNetstat.TCPLossUndo = &value
case "TCPLostRetransmit":
- procNetstat.TcpExt.TCPLostRetransmit = &value
+ procNetstat.TCPLostRetransmit = &value
case "TCPRenoFailures":
- procNetstat.TcpExt.TCPRenoFailures = &value
+ procNetstat.TCPRenoFailures = &value
case "TCPSackFailures":
- procNetstat.TcpExt.TCPSackFailures = &value
+ procNetstat.TCPSackFailures = &value
case "TCPLossFailures":
- procNetstat.TcpExt.TCPLossFailures = &value
+ procNetstat.TCPLossFailures = &value
case "TCPFastRetrans":
- procNetstat.TcpExt.TCPFastRetrans = &value
+ procNetstat.TCPFastRetrans = &value
case "TCPSlowStartRetrans":
- procNetstat.TcpExt.TCPSlowStartRetrans = &value
+ procNetstat.TCPSlowStartRetrans = &value
case "TCPTimeouts":
- procNetstat.TcpExt.TCPTimeouts = &value
+ procNetstat.TCPTimeouts = &value
case "TCPLossProbes":
- procNetstat.TcpExt.TCPLossProbes = &value
+ procNetstat.TCPLossProbes = &value
case "TCPLossProbeRecovery":
- procNetstat.TcpExt.TCPLossProbeRecovery = &value
+ procNetstat.TCPLossProbeRecovery = &value
case "TCPRenoRecoveryFail":
- procNetstat.TcpExt.TCPRenoRecoveryFail = &value
+ procNetstat.TCPRenoRecoveryFail = &value
case "TCPSackRecoveryFail":
- procNetstat.TcpExt.TCPSackRecoveryFail = &value
+ procNetstat.TCPSackRecoveryFail = &value
case "TCPRcvCollapsed":
- procNetstat.TcpExt.TCPRcvCollapsed = &value
+ procNetstat.TCPRcvCollapsed = &value
case "TCPDSACKOldSent":
- procNetstat.TcpExt.TCPDSACKOldSent = &value
+ procNetstat.TCPDSACKOldSent = &value
case "TCPDSACKOfoSent":
- procNetstat.TcpExt.TCPDSACKOfoSent = &value
+ procNetstat.TCPDSACKOfoSent = &value
case "TCPDSACKRecv":
- procNetstat.TcpExt.TCPDSACKRecv = &value
+ procNetstat.TCPDSACKRecv = &value
case "TCPDSACKOfoRecv":
- procNetstat.TcpExt.TCPDSACKOfoRecv = &value
+ procNetstat.TCPDSACKOfoRecv = &value
case "TCPAbortOnData":
- procNetstat.TcpExt.TCPAbortOnData = &value
+ procNetstat.TCPAbortOnData = &value
case "TCPAbortOnClose":
- procNetstat.TcpExt.TCPAbortOnClose = &value
+ procNetstat.TCPAbortOnClose = &value
case "TCPDeferAcceptDrop":
- procNetstat.TcpExt.TCPDeferAcceptDrop = &value
+ procNetstat.TCPDeferAcceptDrop = &value
case "IPReversePathFilter":
- procNetstat.TcpExt.IPReversePathFilter = &value
+ procNetstat.IPReversePathFilter = &value
case "TCPTimeWaitOverflow":
- procNetstat.TcpExt.TCPTimeWaitOverflow = &value
+ procNetstat.TCPTimeWaitOverflow = &value
case "TCPReqQFullDoCookies":
- procNetstat.TcpExt.TCPReqQFullDoCookies = &value
+ procNetstat.TCPReqQFullDoCookies = &value
case "TCPReqQFullDrop":
- procNetstat.TcpExt.TCPReqQFullDrop = &value
+ procNetstat.TCPReqQFullDrop = &value
case "TCPRetransFail":
- procNetstat.TcpExt.TCPRetransFail = &value
+ procNetstat.TCPRetransFail = &value
case "TCPRcvCoalesce":
- procNetstat.TcpExt.TCPRcvCoalesce = &value
+ procNetstat.TCPRcvCoalesce = &value
case "TCPRcvQDrop":
- procNetstat.TcpExt.TCPRcvQDrop = &value
+ procNetstat.TCPRcvQDrop = &value
case "TCPOFOQueue":
- procNetstat.TcpExt.TCPOFOQueue = &value
+ procNetstat.TCPOFOQueue = &value
case "TCPOFODrop":
- procNetstat.TcpExt.TCPOFODrop = &value
+ procNetstat.TCPOFODrop = &value
case "TCPOFOMerge":
- procNetstat.TcpExt.TCPOFOMerge = &value
+ procNetstat.TCPOFOMerge = &value
case "TCPChallengeACK":
- procNetstat.TcpExt.TCPChallengeACK = &value
+ procNetstat.TCPChallengeACK = &value
case "TCPSYNChallenge":
- procNetstat.TcpExt.TCPSYNChallenge = &value
+ procNetstat.TCPSYNChallenge = &value
case "TCPFastOpenActive":
- procNetstat.TcpExt.TCPFastOpenActive = &value
+ procNetstat.TCPFastOpenActive = &value
case "TCPFastOpenActiveFail":
- procNetstat.TcpExt.TCPFastOpenActiveFail = &value
+ procNetstat.TCPFastOpenActiveFail = &value
case "TCPFastOpenPassive":
- procNetstat.TcpExt.TCPFastOpenPassive = &value
+ procNetstat.TCPFastOpenPassive = &value
case "TCPFastOpenPassiveFail":
- procNetstat.TcpExt.TCPFastOpenPassiveFail = &value
+ procNetstat.TCPFastOpenPassiveFail = &value
case "TCPFastOpenListenOverflow":
- procNetstat.TcpExt.TCPFastOpenListenOverflow = &value
+ procNetstat.TCPFastOpenListenOverflow = &value
case "TCPFastOpenCookieReqd":
- procNetstat.TcpExt.TCPFastOpenCookieReqd = &value
+ procNetstat.TCPFastOpenCookieReqd = &value
case "TCPFastOpenBlackhole":
- procNetstat.TcpExt.TCPFastOpenBlackhole = &value
+ procNetstat.TCPFastOpenBlackhole = &value
case "TCPSpuriousRtxHostQueues":
- procNetstat.TcpExt.TCPSpuriousRtxHostQueues = &value
+ procNetstat.TCPSpuriousRtxHostQueues = &value
case "BusyPollRxPackets":
- procNetstat.TcpExt.BusyPollRxPackets = &value
+ procNetstat.BusyPollRxPackets = &value
case "TCPAutoCorking":
- procNetstat.TcpExt.TCPAutoCorking = &value
+ procNetstat.TCPAutoCorking = &value
case "TCPFromZeroWindowAdv":
- procNetstat.TcpExt.TCPFromZeroWindowAdv = &value
+ procNetstat.TCPFromZeroWindowAdv = &value
case "TCPToZeroWindowAdv":
- procNetstat.TcpExt.TCPToZeroWindowAdv = &value
+ procNetstat.TCPToZeroWindowAdv = &value
case "TCPWantZeroWindowAdv":
- procNetstat.TcpExt.TCPWantZeroWindowAdv = &value
+ procNetstat.TCPWantZeroWindowAdv = &value
case "TCPSynRetrans":
- procNetstat.TcpExt.TCPSynRetrans = &value
+ procNetstat.TCPSynRetrans = &value
case "TCPOrigDataSent":
- procNetstat.TcpExt.TCPOrigDataSent = &value
+ procNetstat.TCPOrigDataSent = &value
case "TCPHystartTrainDetect":
- procNetstat.TcpExt.TCPHystartTrainDetect = &value
+ procNetstat.TCPHystartTrainDetect = &value
case "TCPHystartTrainCwnd":
- procNetstat.TcpExt.TCPHystartTrainCwnd = &value
+ procNetstat.TCPHystartTrainCwnd = &value
case "TCPHystartDelayDetect":
- procNetstat.TcpExt.TCPHystartDelayDetect = &value
+ procNetstat.TCPHystartDelayDetect = &value
case "TCPHystartDelayCwnd":
- procNetstat.TcpExt.TCPHystartDelayCwnd = &value
+ procNetstat.TCPHystartDelayCwnd = &value
case "TCPACKSkippedSynRecv":
- procNetstat.TcpExt.TCPACKSkippedSynRecv = &value
+ procNetstat.TCPACKSkippedSynRecv = &value
case "TCPACKSkippedPAWS":
- procNetstat.TcpExt.TCPACKSkippedPAWS = &value
+ procNetstat.TCPACKSkippedPAWS = &value
case "TCPACKSkippedSeq":
- procNetstat.TcpExt.TCPACKSkippedSeq = &value
+ procNetstat.TCPACKSkippedSeq = &value
case "TCPACKSkippedFinWait2":
- procNetstat.TcpExt.TCPACKSkippedFinWait2 = &value
+ procNetstat.TCPACKSkippedFinWait2 = &value
case "TCPACKSkippedTimeWait":
- procNetstat.TcpExt.TCPACKSkippedTimeWait = &value
+ procNetstat.TCPACKSkippedTimeWait = &value
case "TCPACKSkippedChallenge":
- procNetstat.TcpExt.TCPACKSkippedChallenge = &value
+ procNetstat.TCPACKSkippedChallenge = &value
case "TCPWinProbe":
- procNetstat.TcpExt.TCPWinProbe = &value
+ procNetstat.TCPWinProbe = &value
case "TCPKeepAlive":
- procNetstat.TcpExt.TCPKeepAlive = &value
+ procNetstat.TCPKeepAlive = &value
case "TCPMTUPFail":
- procNetstat.TcpExt.TCPMTUPFail = &value
+ procNetstat.TCPMTUPFail = &value
case "TCPMTUPSuccess":
- procNetstat.TcpExt.TCPMTUPSuccess = &value
+ procNetstat.TCPMTUPSuccess = &value
case "TCPWqueueTooBig":
- procNetstat.TcpExt.TCPWqueueTooBig = &value
+ procNetstat.TCPWqueueTooBig = &value
}
case "IpExt":
switch key {
case "InNoRoutes":
- procNetstat.IpExt.InNoRoutes = &value
+ procNetstat.InNoRoutes = &value
case "InTruncatedPkts":
- procNetstat.IpExt.InTruncatedPkts = &value
+ procNetstat.InTruncatedPkts = &value
case "InMcastPkts":
- procNetstat.IpExt.InMcastPkts = &value
+ procNetstat.InMcastPkts = &value
case "OutMcastPkts":
- procNetstat.IpExt.OutMcastPkts = &value
+ procNetstat.OutMcastPkts = &value
case "InBcastPkts":
- procNetstat.IpExt.InBcastPkts = &value
+ procNetstat.InBcastPkts = &value
case "OutBcastPkts":
- procNetstat.IpExt.OutBcastPkts = &value
+ procNetstat.OutBcastPkts = &value
case "InOctets":
- procNetstat.IpExt.InOctets = &value
+ procNetstat.InOctets = &value
case "OutOctets":
- procNetstat.IpExt.OutOctets = &value
+ procNetstat.OutOctets = &value
case "InMcastOctets":
- procNetstat.IpExt.InMcastOctets = &value
+ procNetstat.InMcastOctets = &value
case "OutMcastOctets":
- procNetstat.IpExt.OutMcastOctets = &value
+ procNetstat.OutMcastOctets = &value
case "InBcastOctets":
- procNetstat.IpExt.InBcastOctets = &value
+ procNetstat.InBcastOctets = &value
case "OutBcastOctets":
- procNetstat.IpExt.OutBcastOctets = &value
+ procNetstat.OutBcastOctets = &value
case "InCsumErrors":
- procNetstat.IpExt.InCsumErrors = &value
+ procNetstat.InCsumErrors = &value
case "InNoECTPkts":
- procNetstat.IpExt.InNoECTPkts = &value
+ procNetstat.InNoECTPkts = &value
case "InECT1Pkts":
- procNetstat.IpExt.InECT1Pkts = &value
+ procNetstat.InECT1Pkts = &value
case "InECT0Pkts":
- procNetstat.IpExt.InECT0Pkts = &value
+ procNetstat.InECT0Pkts = &value
case "InCEPkts":
- procNetstat.IpExt.InCEPkts = &value
+ procNetstat.InCEPkts = &value
case "ReasmOverlaps":
- procNetstat.IpExt.ReasmOverlaps = &value
+ procNetstat.ReasmOverlaps = &value
}
}
}
diff --git a/vendor/github.com/prometheus/procfs/proc_smaps.go b/vendor/github.com/prometheus/procfs/proc_smaps.go
index 09060e82..9a297afc 100644
--- a/vendor/github.com/prometheus/procfs/proc_smaps.go
+++ b/vendor/github.com/prometheus/procfs/proc_smaps.go
@@ -19,7 +19,6 @@ package procfs
import (
"bufio"
"errors"
- "fmt"
"os"
"regexp"
"strconv"
@@ -29,7 +28,7 @@ import (
)
var (
- // match the header line before each mapped zone in `/proc/pid/smaps`.
+ // Match the header line before each mapped zone in `/proc/pid/smaps`.
procSMapsHeaderLine = regexp.MustCompile(`^[a-f0-9].*$`)
)
@@ -117,7 +116,6 @@ func (p Proc) procSMapsRollupManual() (ProcSMapsRollup, error) {
func (s *ProcSMapsRollup) parseLine(line string) error {
kv := strings.SplitN(line, ":", 2)
if len(kv) != 2 {
- fmt.Println(line)
return errors.New("invalid net/dev line, missing colon")
}
diff --git a/vendor/github.com/prometheus/procfs/proc_snmp.go b/vendor/github.com/prometheus/procfs/proc_snmp.go
index b9d2cf64..4bdc90b0 100644
--- a/vendor/github.com/prometheus/procfs/proc_snmp.go
+++ b/vendor/github.com/prometheus/procfs/proc_snmp.go
@@ -173,138 +173,138 @@ func parseSnmp(r io.Reader, fileName string) (ProcSnmp, error) {
case "Ip":
switch key {
case "Forwarding":
- procSnmp.Ip.Forwarding = &value
+ procSnmp.Forwarding = &value
case "DefaultTTL":
- procSnmp.Ip.DefaultTTL = &value
+ procSnmp.DefaultTTL = &value
case "InReceives":
- procSnmp.Ip.InReceives = &value
+ procSnmp.InReceives = &value
case "InHdrErrors":
- procSnmp.Ip.InHdrErrors = &value
+ procSnmp.InHdrErrors = &value
case "InAddrErrors":
- procSnmp.Ip.InAddrErrors = &value
+ procSnmp.InAddrErrors = &value
case "ForwDatagrams":
- procSnmp.Ip.ForwDatagrams = &value
+ procSnmp.ForwDatagrams = &value
case "InUnknownProtos":
- procSnmp.Ip.InUnknownProtos = &value
+ procSnmp.InUnknownProtos = &value
case "InDiscards":
- procSnmp.Ip.InDiscards = &value
+ procSnmp.InDiscards = &value
case "InDelivers":
- procSnmp.Ip.InDelivers = &value
+ procSnmp.InDelivers = &value
case "OutRequests":
- procSnmp.Ip.OutRequests = &value
+ procSnmp.OutRequests = &value
case "OutDiscards":
- procSnmp.Ip.OutDiscards = &value
+ procSnmp.OutDiscards = &value
case "OutNoRoutes":
- procSnmp.Ip.OutNoRoutes = &value
+ procSnmp.OutNoRoutes = &value
case "ReasmTimeout":
- procSnmp.Ip.ReasmTimeout = &value
+ procSnmp.ReasmTimeout = &value
case "ReasmReqds":
- procSnmp.Ip.ReasmReqds = &value
+ procSnmp.ReasmReqds = &value
case "ReasmOKs":
- procSnmp.Ip.ReasmOKs = &value
+ procSnmp.ReasmOKs = &value
case "ReasmFails":
- procSnmp.Ip.ReasmFails = &value
+ procSnmp.ReasmFails = &value
case "FragOKs":
- procSnmp.Ip.FragOKs = &value
+ procSnmp.FragOKs = &value
case "FragFails":
- procSnmp.Ip.FragFails = &value
+ procSnmp.FragFails = &value
case "FragCreates":
- procSnmp.Ip.FragCreates = &value
+ procSnmp.FragCreates = &value
}
case "Icmp":
switch key {
case "InMsgs":
- procSnmp.Icmp.InMsgs = &value
+ procSnmp.InMsgs = &value
case "InErrors":
procSnmp.Icmp.InErrors = &value
case "InCsumErrors":
procSnmp.Icmp.InCsumErrors = &value
case "InDestUnreachs":
- procSnmp.Icmp.InDestUnreachs = &value
+ procSnmp.InDestUnreachs = &value
case "InTimeExcds":
- procSnmp.Icmp.InTimeExcds = &value
+ procSnmp.InTimeExcds = &value
case "InParmProbs":
- procSnmp.Icmp.InParmProbs = &value
+ procSnmp.InParmProbs = &value
case "InSrcQuenchs":
- procSnmp.Icmp.InSrcQuenchs = &value
+ procSnmp.InSrcQuenchs = &value
case "InRedirects":
- procSnmp.Icmp.InRedirects = &value
+ procSnmp.InRedirects = &value
case "InEchos":
- procSnmp.Icmp.InEchos = &value
+ procSnmp.InEchos = &value
case "InEchoReps":
- procSnmp.Icmp.InEchoReps = &value
+ procSnmp.InEchoReps = &value
case "InTimestamps":
- procSnmp.Icmp.InTimestamps = &value
+ procSnmp.InTimestamps = &value
case "InTimestampReps":
- procSnmp.Icmp.InTimestampReps = &value
+ procSnmp.InTimestampReps = &value
case "InAddrMasks":
- procSnmp.Icmp.InAddrMasks = &value
+ procSnmp.InAddrMasks = &value
case "InAddrMaskReps":
- procSnmp.Icmp.InAddrMaskReps = &value
+ procSnmp.InAddrMaskReps = &value
case "OutMsgs":
- procSnmp.Icmp.OutMsgs = &value
+ procSnmp.OutMsgs = &value
case "OutErrors":
- procSnmp.Icmp.OutErrors = &value
+ procSnmp.OutErrors = &value
case "OutDestUnreachs":
- procSnmp.Icmp.OutDestUnreachs = &value
+ procSnmp.OutDestUnreachs = &value
case "OutTimeExcds":
- procSnmp.Icmp.OutTimeExcds = &value
+ procSnmp.OutTimeExcds = &value
case "OutParmProbs":
- procSnmp.Icmp.OutParmProbs = &value
+ procSnmp.OutParmProbs = &value
case "OutSrcQuenchs":
- procSnmp.Icmp.OutSrcQuenchs = &value
+ procSnmp.OutSrcQuenchs = &value
case "OutRedirects":
- procSnmp.Icmp.OutRedirects = &value
+ procSnmp.OutRedirects = &value
case "OutEchos":
- procSnmp.Icmp.OutEchos = &value
+ procSnmp.OutEchos = &value
case "OutEchoReps":
- procSnmp.Icmp.OutEchoReps = &value
+ procSnmp.OutEchoReps = &value
case "OutTimestamps":
- procSnmp.Icmp.OutTimestamps = &value
+ procSnmp.OutTimestamps = &value
case "OutTimestampReps":
- procSnmp.Icmp.OutTimestampReps = &value
+ procSnmp.OutTimestampReps = &value
case "OutAddrMasks":
- procSnmp.Icmp.OutAddrMasks = &value
+ procSnmp.OutAddrMasks = &value
case "OutAddrMaskReps":
- procSnmp.Icmp.OutAddrMaskReps = &value
+ procSnmp.OutAddrMaskReps = &value
}
case "IcmpMsg":
switch key {
case "InType3":
- procSnmp.IcmpMsg.InType3 = &value
+ procSnmp.InType3 = &value
case "OutType3":
- procSnmp.IcmpMsg.OutType3 = &value
+ procSnmp.OutType3 = &value
}
case "Tcp":
switch key {
case "RtoAlgorithm":
- procSnmp.Tcp.RtoAlgorithm = &value
+ procSnmp.RtoAlgorithm = &value
case "RtoMin":
- procSnmp.Tcp.RtoMin = &value
+ procSnmp.RtoMin = &value
case "RtoMax":
- procSnmp.Tcp.RtoMax = &value
+ procSnmp.RtoMax = &value
case "MaxConn":
- procSnmp.Tcp.MaxConn = &value
+ procSnmp.MaxConn = &value
case "ActiveOpens":
- procSnmp.Tcp.ActiveOpens = &value
+ procSnmp.ActiveOpens = &value
case "PassiveOpens":
- procSnmp.Tcp.PassiveOpens = &value
+ procSnmp.PassiveOpens = &value
case "AttemptFails":
- procSnmp.Tcp.AttemptFails = &value
+ procSnmp.AttemptFails = &value
case "EstabResets":
- procSnmp.Tcp.EstabResets = &value
+ procSnmp.EstabResets = &value
case "CurrEstab":
- procSnmp.Tcp.CurrEstab = &value
+ procSnmp.CurrEstab = &value
case "InSegs":
- procSnmp.Tcp.InSegs = &value
+ procSnmp.InSegs = &value
case "OutSegs":
- procSnmp.Tcp.OutSegs = &value
+ procSnmp.OutSegs = &value
case "RetransSegs":
- procSnmp.Tcp.RetransSegs = &value
+ procSnmp.RetransSegs = &value
case "InErrs":
- procSnmp.Tcp.InErrs = &value
+ procSnmp.InErrs = &value
case "OutRsts":
- procSnmp.Tcp.OutRsts = &value
+ procSnmp.OutRsts = &value
case "InCsumErrors":
procSnmp.Tcp.InCsumErrors = &value
}
diff --git a/vendor/github.com/prometheus/procfs/proc_snmp6.go b/vendor/github.com/prometheus/procfs/proc_snmp6.go
index 3059cc6a..fb7fd399 100644
--- a/vendor/github.com/prometheus/procfs/proc_snmp6.go
+++ b/vendor/github.com/prometheus/procfs/proc_snmp6.go
@@ -182,161 +182,161 @@ func parseSNMP6Stats(r io.Reader) (ProcSnmp6, error) {
case "Ip6":
switch key {
case "InReceives":
- procSnmp6.Ip6.InReceives = &value
+ procSnmp6.InReceives = &value
case "InHdrErrors":
- procSnmp6.Ip6.InHdrErrors = &value
+ procSnmp6.InHdrErrors = &value
case "InTooBigErrors":
- procSnmp6.Ip6.InTooBigErrors = &value
+ procSnmp6.InTooBigErrors = &value
case "InNoRoutes":
- procSnmp6.Ip6.InNoRoutes = &value
+ procSnmp6.InNoRoutes = &value
case "InAddrErrors":
- procSnmp6.Ip6.InAddrErrors = &value
+ procSnmp6.InAddrErrors = &value
case "InUnknownProtos":
- procSnmp6.Ip6.InUnknownProtos = &value
+ procSnmp6.InUnknownProtos = &value
case "InTruncatedPkts":
- procSnmp6.Ip6.InTruncatedPkts = &value
+ procSnmp6.InTruncatedPkts = &value
case "InDiscards":
- procSnmp6.Ip6.InDiscards = &value
+ procSnmp6.InDiscards = &value
case "InDelivers":
- procSnmp6.Ip6.InDelivers = &value
+ procSnmp6.InDelivers = &value
case "OutForwDatagrams":
- procSnmp6.Ip6.OutForwDatagrams = &value
+ procSnmp6.OutForwDatagrams = &value
case "OutRequests":
- procSnmp6.Ip6.OutRequests = &value
+ procSnmp6.OutRequests = &value
case "OutDiscards":
- procSnmp6.Ip6.OutDiscards = &value
+ procSnmp6.OutDiscards = &value
case "OutNoRoutes":
- procSnmp6.Ip6.OutNoRoutes = &value
+ procSnmp6.OutNoRoutes = &value
case "ReasmTimeout":
- procSnmp6.Ip6.ReasmTimeout = &value
+ procSnmp6.ReasmTimeout = &value
case "ReasmReqds":
- procSnmp6.Ip6.ReasmReqds = &value
+ procSnmp6.ReasmReqds = &value
case "ReasmOKs":
- procSnmp6.Ip6.ReasmOKs = &value
+ procSnmp6.ReasmOKs = &value
case "ReasmFails":
- procSnmp6.Ip6.ReasmFails = &value
+ procSnmp6.ReasmFails = &value
case "FragOKs":
- procSnmp6.Ip6.FragOKs = &value
+ procSnmp6.FragOKs = &value
case "FragFails":
- procSnmp6.Ip6.FragFails = &value
+ procSnmp6.FragFails = &value
case "FragCreates":
- procSnmp6.Ip6.FragCreates = &value
+ procSnmp6.FragCreates = &value
case "InMcastPkts":
- procSnmp6.Ip6.InMcastPkts = &value
+ procSnmp6.InMcastPkts = &value
case "OutMcastPkts":
- procSnmp6.Ip6.OutMcastPkts = &value
+ procSnmp6.OutMcastPkts = &value
case "InOctets":
- procSnmp6.Ip6.InOctets = &value
+ procSnmp6.InOctets = &value
case "OutOctets":
- procSnmp6.Ip6.OutOctets = &value
+ procSnmp6.OutOctets = &value
case "InMcastOctets":
- procSnmp6.Ip6.InMcastOctets = &value
+ procSnmp6.InMcastOctets = &value
case "OutMcastOctets":
- procSnmp6.Ip6.OutMcastOctets = &value
+ procSnmp6.OutMcastOctets = &value
case "InBcastOctets":
- procSnmp6.Ip6.InBcastOctets = &value
+ procSnmp6.InBcastOctets = &value
case "OutBcastOctets":
- procSnmp6.Ip6.OutBcastOctets = &value
+ procSnmp6.OutBcastOctets = &value
case "InNoECTPkts":
- procSnmp6.Ip6.InNoECTPkts = &value
+ procSnmp6.InNoECTPkts = &value
case "InECT1Pkts":
- procSnmp6.Ip6.InECT1Pkts = &value
+ procSnmp6.InECT1Pkts = &value
case "InECT0Pkts":
- procSnmp6.Ip6.InECT0Pkts = &value
+ procSnmp6.InECT0Pkts = &value
case "InCEPkts":
- procSnmp6.Ip6.InCEPkts = &value
+ procSnmp6.InCEPkts = &value
}
case "Icmp6":
switch key {
case "InMsgs":
- procSnmp6.Icmp6.InMsgs = &value
+ procSnmp6.InMsgs = &value
case "InErrors":
procSnmp6.Icmp6.InErrors = &value
case "OutMsgs":
- procSnmp6.Icmp6.OutMsgs = &value
+ procSnmp6.OutMsgs = &value
case "OutErrors":
- procSnmp6.Icmp6.OutErrors = &value
+ procSnmp6.OutErrors = &value
case "InCsumErrors":
procSnmp6.Icmp6.InCsumErrors = &value
case "InDestUnreachs":
- procSnmp6.Icmp6.InDestUnreachs = &value
+ procSnmp6.InDestUnreachs = &value
case "InPktTooBigs":
- procSnmp6.Icmp6.InPktTooBigs = &value
+ procSnmp6.InPktTooBigs = &value
case "InTimeExcds":
- procSnmp6.Icmp6.InTimeExcds = &value
+ procSnmp6.InTimeExcds = &value
case "InParmProblems":
- procSnmp6.Icmp6.InParmProblems = &value
+ procSnmp6.InParmProblems = &value
case "InEchos":
- procSnmp6.Icmp6.InEchos = &value
+ procSnmp6.InEchos = &value
case "InEchoReplies":
- procSnmp6.Icmp6.InEchoReplies = &value
+ procSnmp6.InEchoReplies = &value
case "InGroupMembQueries":
- procSnmp6.Icmp6.InGroupMembQueries = &value
+ procSnmp6.InGroupMembQueries = &value
case "InGroupMembResponses":
- procSnmp6.Icmp6.InGroupMembResponses = &value
+ procSnmp6.InGroupMembResponses = &value
case "InGroupMembReductions":
- procSnmp6.Icmp6.InGroupMembReductions = &value
+ procSnmp6.InGroupMembReductions = &value
case "InRouterSolicits":
- procSnmp6.Icmp6.InRouterSolicits = &value
+ procSnmp6.InRouterSolicits = &value
case "InRouterAdvertisements":
- procSnmp6.Icmp6.InRouterAdvertisements = &value
+ procSnmp6.InRouterAdvertisements = &value
case "InNeighborSolicits":
- procSnmp6.Icmp6.InNeighborSolicits = &value
+ procSnmp6.InNeighborSolicits = &value
case "InNeighborAdvertisements":
- procSnmp6.Icmp6.InNeighborAdvertisements = &value
+ procSnmp6.InNeighborAdvertisements = &value
case "InRedirects":
- procSnmp6.Icmp6.InRedirects = &value
+ procSnmp6.InRedirects = &value
case "InMLDv2Reports":
- procSnmp6.Icmp6.InMLDv2Reports = &value
+ procSnmp6.InMLDv2Reports = &value
case "OutDestUnreachs":
- procSnmp6.Icmp6.OutDestUnreachs = &value
+ procSnmp6.OutDestUnreachs = &value
case "OutPktTooBigs":
- procSnmp6.Icmp6.OutPktTooBigs = &value
+ procSnmp6.OutPktTooBigs = &value
case "OutTimeExcds":
- procSnmp6.Icmp6.OutTimeExcds = &value
+ procSnmp6.OutTimeExcds = &value
case "OutParmProblems":
- procSnmp6.Icmp6.OutParmProblems = &value
+ procSnmp6.OutParmProblems = &value
case "OutEchos":
- procSnmp6.Icmp6.OutEchos = &value
+ procSnmp6.OutEchos = &value
case "OutEchoReplies":
- procSnmp6.Icmp6.OutEchoReplies = &value
+ procSnmp6.OutEchoReplies = &value
case "OutGroupMembQueries":
- procSnmp6.Icmp6.OutGroupMembQueries = &value
+ procSnmp6.OutGroupMembQueries = &value
case "OutGroupMembResponses":
- procSnmp6.Icmp6.OutGroupMembResponses = &value
+ procSnmp6.OutGroupMembResponses = &value
case "OutGroupMembReductions":
- procSnmp6.Icmp6.OutGroupMembReductions = &value
+ procSnmp6.OutGroupMembReductions = &value
case "OutRouterSolicits":
- procSnmp6.Icmp6.OutRouterSolicits = &value
+ procSnmp6.OutRouterSolicits = &value
case "OutRouterAdvertisements":
- procSnmp6.Icmp6.OutRouterAdvertisements = &value
+ procSnmp6.OutRouterAdvertisements = &value
case "OutNeighborSolicits":
- procSnmp6.Icmp6.OutNeighborSolicits = &value
+ procSnmp6.OutNeighborSolicits = &value
case "OutNeighborAdvertisements":
- procSnmp6.Icmp6.OutNeighborAdvertisements = &value
+ procSnmp6.OutNeighborAdvertisements = &value
case "OutRedirects":
- procSnmp6.Icmp6.OutRedirects = &value
+ procSnmp6.OutRedirects = &value
case "OutMLDv2Reports":
- procSnmp6.Icmp6.OutMLDv2Reports = &value
+ procSnmp6.OutMLDv2Reports = &value
case "InType1":
- procSnmp6.Icmp6.InType1 = &value
+ procSnmp6.InType1 = &value
case "InType134":
- procSnmp6.Icmp6.InType134 = &value
+ procSnmp6.InType134 = &value
case "InType135":
- procSnmp6.Icmp6.InType135 = &value
+ procSnmp6.InType135 = &value
case "InType136":
- procSnmp6.Icmp6.InType136 = &value
+ procSnmp6.InType136 = &value
case "InType143":
- procSnmp6.Icmp6.InType143 = &value
+ procSnmp6.InType143 = &value
case "OutType133":
- procSnmp6.Icmp6.OutType133 = &value
+ procSnmp6.OutType133 = &value
case "OutType135":
- procSnmp6.Icmp6.OutType135 = &value
+ procSnmp6.OutType135 = &value
case "OutType136":
- procSnmp6.Icmp6.OutType136 = &value
+ procSnmp6.OutType136 = &value
case "OutType143":
- procSnmp6.Icmp6.OutType143 = &value
+ procSnmp6.OutType143 = &value
}
case "Udp6":
switch key {
@@ -355,7 +355,7 @@ func parseSNMP6Stats(r io.Reader) (ProcSnmp6, error) {
case "InCsumErrors":
procSnmp6.Udp6.InCsumErrors = &value
case "IgnoredMulti":
- procSnmp6.Udp6.IgnoredMulti = &value
+ procSnmp6.IgnoredMulti = &value
}
case "UdpLite6":
switch key {
diff --git a/vendor/github.com/prometheus/procfs/proc_stat.go b/vendor/github.com/prometheus/procfs/proc_stat.go
index 06a8d931..3328556b 100644
--- a/vendor/github.com/prometheus/procfs/proc_stat.go
+++ b/vendor/github.com/prometheus/procfs/proc_stat.go
@@ -101,6 +101,12 @@ type ProcStat struct {
RSS int
// Soft limit in bytes on the rss of the process.
RSSLimit uint64
+ // The address above which program text can run.
+ StartCode uint64
+ // The address below which program text can run.
+ EndCode uint64
+ // The address of the start (i.e., bottom) of the stack.
+ StartStack uint64
// CPU number last executed on.
Processor uint
// Real-time scheduling priority, a number in the range 1 to 99 for processes
@@ -177,9 +183,9 @@ func (p Proc) Stat() (ProcStat, error) {
&s.VSize,
&s.RSS,
&s.RSSLimit,
- &ignoreUint64,
- &ignoreUint64,
- &ignoreUint64,
+ &s.StartCode,
+ &s.EndCode,
+ &s.StartStack,
&ignoreUint64,
&ignoreUint64,
&ignoreUint64,
diff --git a/vendor/github.com/prometheus/procfs/proc_statm.go b/vendor/github.com/prometheus/procfs/proc_statm.go
new file mode 100644
index 00000000..ed579842
--- /dev/null
+++ b/vendor/github.com/prometheus/procfs/proc_statm.go
@@ -0,0 +1,116 @@
+// Copyright 2025 The Prometheus Authors
+// 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.
+
+package procfs
+
+import (
+ "os"
+ "strconv"
+ "strings"
+
+ "github.com/prometheus/procfs/internal/util"
+)
+
+// - https://man7.org/linux/man-pages/man5/proc_pid_statm.5.html
+
+// ProcStatm Provides memory usage information for a process, measured in memory pages.
+// Read from /proc/[pid]/statm.
+type ProcStatm struct {
+ // The process ID.
+ PID int
+ // total program size (same as VmSize in status)
+ Size uint64
+ // resident set size (same as VmRSS in status)
+ Resident uint64
+ // number of resident shared pages (i.e., backed by a file)
+ Shared uint64
+ // text (code)
+ Text uint64
+ // library (unused since Linux 2.6; always 0)
+ Lib uint64
+ // data + stack
+ Data uint64
+ // dirty pages (unused since Linux 2.6; always 0)
+ Dt uint64
+}
+
+// NewStatm returns the current status information of the process.
+// Deprecated: Use p.Statm() instead.
+func (p Proc) NewStatm() (ProcStatm, error) {
+ return p.Statm()
+}
+
+// Statm returns the current memory usage information of the process.
+func (p Proc) Statm() (ProcStatm, error) {
+ data, err := util.ReadFileNoStat(p.path("statm"))
+ if err != nil {
+ return ProcStatm{}, err
+ }
+
+ statmSlice, err := parseStatm(data)
+ if err != nil {
+ return ProcStatm{}, err
+ }
+
+ procStatm := ProcStatm{
+ PID: p.PID,
+ Size: statmSlice[0],
+ Resident: statmSlice[1],
+ Shared: statmSlice[2],
+ Text: statmSlice[3],
+ Lib: statmSlice[4],
+ Data: statmSlice[5],
+ Dt: statmSlice[6],
+ }
+
+ return procStatm, nil
+}
+
+// parseStatm return /proc/[pid]/statm data to uint64 slice.
+func parseStatm(data []byte) ([]uint64, error) {
+ var statmSlice []uint64
+ statmItems := strings.Fields(string(data))
+ for i := 0; i < len(statmItems); i++ {
+ statmItem, err := strconv.ParseUint(statmItems[i], 10, 64)
+ if err != nil {
+ return nil, err
+ }
+ statmSlice = append(statmSlice, statmItem)
+ }
+ return statmSlice, nil
+}
+
+// SizeBytes returns the process of total program size in bytes.
+func (s ProcStatm) SizeBytes() uint64 {
+ return s.Size * uint64(os.Getpagesize())
+}
+
+// ResidentBytes returns the process of resident set size in bytes.
+func (s ProcStatm) ResidentBytes() uint64 {
+ return s.Resident * uint64(os.Getpagesize())
+}
+
+// SHRBytes returns the process of share memory size in bytes.
+func (s ProcStatm) SHRBytes() uint64 {
+ return s.Shared * uint64(os.Getpagesize())
+}
+
+// TextBytes returns the process of text (code) size in bytes.
+func (s ProcStatm) TextBytes() uint64 {
+ return s.Text * uint64(os.Getpagesize())
+}
+
+// DataBytes returns the process of data + stack size in bytes.
+func (s ProcStatm) DataBytes() uint64 {
+ return s.Data * uint64(os.Getpagesize())
+}
diff --git a/vendor/github.com/prometheus/procfs/proc_status.go b/vendor/github.com/prometheus/procfs/proc_status.go
index a055197c..dd8aa568 100644
--- a/vendor/github.com/prometheus/procfs/proc_status.go
+++ b/vendor/github.com/prometheus/procfs/proc_status.go
@@ -146,7 +146,11 @@ func (s *ProcStatus) fillStatus(k string, vString string, vUint uint64, vUintByt
}
}
case "NSpid":
- s.NSpids = calcNSPidsList(vString)
+ nspids, err := calcNSPidsList(vString)
+ if err != nil {
+ return err
+ }
+ s.NSpids = nspids
case "VmPeak":
s.VmPeak = vUintBytes
case "VmSize":
@@ -222,17 +226,17 @@ func calcCpusAllowedList(cpuString string) []uint64 {
return g
}
-func calcNSPidsList(nspidsString string) []uint64 {
- s := strings.Split(nspidsString, " ")
+func calcNSPidsList(nspidsString string) ([]uint64, error) {
+ s := strings.Split(nspidsString, "\t")
var nspids []uint64
for _, nspid := range s {
- nspid, _ := strconv.ParseUint(nspid, 10, 64)
- if nspid == 0 {
- continue
+ nspid, err := strconv.ParseUint(nspid, 10, 64)
+ if err != nil {
+ return nil, err
}
nspids = append(nspids, nspid)
}
- return nspids
+ return nspids, nil
}
diff --git a/vendor/github.com/prometheus/procfs/proc_sys.go b/vendor/github.com/prometheus/procfs/proc_sys.go
index 5eefbe2e..3810d1ac 100644
--- a/vendor/github.com/prometheus/procfs/proc_sys.go
+++ b/vendor/github.com/prometheus/procfs/proc_sys.go
@@ -21,7 +21,7 @@ import (
)
func sysctlToPath(sysctl string) string {
- return strings.Replace(sysctl, ".", "/", -1)
+ return strings.ReplaceAll(sysctl, ".", "/")
}
func (fs FS) SysctlStrings(sysctl string) ([]string, error) {
diff --git a/vendor/github.com/prometheus/procfs/softirqs.go b/vendor/github.com/prometheus/procfs/softirqs.go
index 28708e07..403e6ae7 100644
--- a/vendor/github.com/prometheus/procfs/softirqs.go
+++ b/vendor/github.com/prometheus/procfs/softirqs.go
@@ -68,8 +68,8 @@ func parseSoftirqs(r io.Reader) (Softirqs, error) {
if len(parts) < 2 {
continue
}
- switch {
- case parts[0] == "HI:":
+ switch parts[0] {
+ case "HI:":
perCPU := parts[1:]
softirqs.Hi = make([]uint64, len(perCPU))
for i, count := range perCPU {
@@ -77,7 +77,7 @@ func parseSoftirqs(r io.Reader) (Softirqs, error) {
return Softirqs{}, fmt.Errorf("%w: couldn't parse %q (HI%d): %w", ErrFileParse, count, i, err)
}
}
- case parts[0] == "TIMER:":
+ case "TIMER:":
perCPU := parts[1:]
softirqs.Timer = make([]uint64, len(perCPU))
for i, count := range perCPU {
@@ -85,7 +85,7 @@ func parseSoftirqs(r io.Reader) (Softirqs, error) {
return Softirqs{}, fmt.Errorf("%w: couldn't parse %q (TIMER%d): %w", ErrFileParse, count, i, err)
}
}
- case parts[0] == "NET_TX:":
+ case "NET_TX:":
perCPU := parts[1:]
softirqs.NetTx = make([]uint64, len(perCPU))
for i, count := range perCPU {
@@ -93,7 +93,7 @@ func parseSoftirqs(r io.Reader) (Softirqs, error) {
return Softirqs{}, fmt.Errorf("%w: couldn't parse %q (NET_TX%d): %w", ErrFileParse, count, i, err)
}
}
- case parts[0] == "NET_RX:":
+ case "NET_RX:":
perCPU := parts[1:]
softirqs.NetRx = make([]uint64, len(perCPU))
for i, count := range perCPU {
@@ -101,7 +101,7 @@ func parseSoftirqs(r io.Reader) (Softirqs, error) {
return Softirqs{}, fmt.Errorf("%w: couldn't parse %q (NET_RX%d): %w", ErrFileParse, count, i, err)
}
}
- case parts[0] == "BLOCK:":
+ case "BLOCK:":
perCPU := parts[1:]
softirqs.Block = make([]uint64, len(perCPU))
for i, count := range perCPU {
@@ -109,7 +109,7 @@ func parseSoftirqs(r io.Reader) (Softirqs, error) {
return Softirqs{}, fmt.Errorf("%w: couldn't parse %q (BLOCK%d): %w", ErrFileParse, count, i, err)
}
}
- case parts[0] == "IRQ_POLL:":
+ case "IRQ_POLL:":
perCPU := parts[1:]
softirqs.IRQPoll = make([]uint64, len(perCPU))
for i, count := range perCPU {
@@ -117,7 +117,7 @@ func parseSoftirqs(r io.Reader) (Softirqs, error) {
return Softirqs{}, fmt.Errorf("%w: couldn't parse %q (IRQ_POLL%d): %w", ErrFileParse, count, i, err)
}
}
- case parts[0] == "TASKLET:":
+ case "TASKLET:":
perCPU := parts[1:]
softirqs.Tasklet = make([]uint64, len(perCPU))
for i, count := range perCPU {
@@ -125,7 +125,7 @@ func parseSoftirqs(r io.Reader) (Softirqs, error) {
return Softirqs{}, fmt.Errorf("%w: couldn't parse %q (TASKLET%d): %w", ErrFileParse, count, i, err)
}
}
- case parts[0] == "SCHED:":
+ case "SCHED:":
perCPU := parts[1:]
softirqs.Sched = make([]uint64, len(perCPU))
for i, count := range perCPU {
@@ -133,7 +133,7 @@ func parseSoftirqs(r io.Reader) (Softirqs, error) {
return Softirqs{}, fmt.Errorf("%w: couldn't parse %q (SCHED%d): %w", ErrFileParse, count, i, err)
}
}
- case parts[0] == "HRTIMER:":
+ case "HRTIMER:":
perCPU := parts[1:]
softirqs.HRTimer = make([]uint64, len(perCPU))
for i, count := range perCPU {
@@ -141,7 +141,7 @@ func parseSoftirqs(r io.Reader) (Softirqs, error) {
return Softirqs{}, fmt.Errorf("%w: couldn't parse %q (HRTIMER%d): %w", ErrFileParse, count, i, err)
}
}
- case parts[0] == "RCU:":
+ case "RCU:":
perCPU := parts[1:]
softirqs.RCU = make([]uint64, len(perCPU))
for i, count := range perCPU {
diff --git a/vendor/github.com/sergi/go-diff/diffmatchpatch/diff.go b/vendor/github.com/sergi/go-diff/diffmatchpatch/diff.go
index 2a9f2dc3..4f7b4248 100644
--- a/vendor/github.com/sergi/go-diff/diffmatchpatch/diff.go
+++ b/vendor/github.com/sergi/go-diff/diffmatchpatch/diff.go
@@ -1313,17 +1313,17 @@ func (dmp *DiffMatchPatch) diffLinesToStrings(text1, text2 string) (string, stri
// '\x00' is a valid character, but various debuggers don't like it. So we'll insert a junk entry to avoid generating a null character.
lineArray := []string{""} // e.g. lineArray[4] == 'Hello\n'
+ lineHash := make(map[string]int)
//Each string has the index of lineArray which it points to
- strIndexArray1 := dmp.diffLinesToStringsMunge(text1, &lineArray)
- strIndexArray2 := dmp.diffLinesToStringsMunge(text2, &lineArray)
+ strIndexArray1 := dmp.diffLinesToStringsMunge(text1, &lineArray, lineHash)
+ strIndexArray2 := dmp.diffLinesToStringsMunge(text2, &lineArray, lineHash)
return intArrayToString(strIndexArray1), intArrayToString(strIndexArray2), lineArray
}
// diffLinesToStringsMunge splits a text into an array of strings, and reduces the texts to a []string.
-func (dmp *DiffMatchPatch) diffLinesToStringsMunge(text string, lineArray *[]string) []uint32 {
+func (dmp *DiffMatchPatch) diffLinesToStringsMunge(text string, lineArray *[]string, lineHash map[string]int) []uint32 {
// Walk the text, pulling out a substring for each line. text.split('\n') would would temporarily double our memory footprint. Modifying text would create many large strings to garbage collect.
- lineHash := map[string]int{} // e.g. lineHash['Hello\n'] == 4
lineStart := 0
lineEnd := -1
strs := []uint32{}
diff --git a/vendor/github.com/spf13/cast/.editorconfig b/vendor/github.com/spf13/cast/.editorconfig
new file mode 100644
index 00000000..a85749f1
--- /dev/null
+++ b/vendor/github.com/spf13/cast/.editorconfig
@@ -0,0 +1,15 @@
+root = true
+
+[*]
+charset = utf-8
+end_of_line = lf
+indent_size = 4
+indent_style = space
+insert_final_newline = true
+trim_trailing_whitespace = true
+
+[*.go]
+indent_style = tab
+
+[{*.yml,*.yaml}]
+indent_size = 2
diff --git a/vendor/github.com/spf13/cast/.golangci.yaml b/vendor/github.com/spf13/cast/.golangci.yaml
new file mode 100644
index 00000000..e00fd47a
--- /dev/null
+++ b/vendor/github.com/spf13/cast/.golangci.yaml
@@ -0,0 +1,39 @@
+version: "2"
+
+run:
+ timeout: 10m
+
+linters:
+ enable:
+ - errcheck
+ - govet
+ - ineffassign
+ - misspell
+ - nolintlint
+ # - revive
+ - unused
+
+ disable:
+ - staticcheck
+
+ settings:
+ misspell:
+ locale: US
+ nolintlint:
+ allow-unused: false # report any unused nolint directives
+ require-specific: false # don't require nolint directives to be specific about which linter is being skipped
+
+formatters:
+ enable:
+ - gci
+ - gofmt
+ # - gofumpt
+ - goimports
+ # - golines
+
+ settings:
+ gci:
+ sections:
+ - standard
+ - default
+ - localmodule
diff --git a/vendor/github.com/spf13/cast/README.md b/vendor/github.com/spf13/cast/README.md
index 0e9e1459..c58eccb3 100644
--- a/vendor/github.com/spf13/cast/README.md
+++ b/vendor/github.com/spf13/cast/README.md
@@ -1,9 +1,9 @@
# cast
-[](https://github.com/spf13/cast/actions/workflows/ci.yaml)
-[](https://pkg.go.dev/mod/github.com/spf13/cast)
-
-[](https://goreportcard.com/report/github.com/spf13/cast)
+[](https://github.com/spf13/cast/actions/workflows/ci.yaml)
+[](https://pkg.go.dev/mod/github.com/spf13/cast)
+
+[](https://deps.dev/go/github.com%252Fspf13%252Fcast)
Easy and safe casting from one type to another in Go
@@ -73,3 +73,7 @@ the code for a complete set.
var eight interface{} = 8
cast.ToInt(eight) // 8
cast.ToInt(nil) // 0
+
+## License
+
+The project is licensed under the [MIT License](LICENSE).
diff --git a/vendor/github.com/spf13/cast/alias.go b/vendor/github.com/spf13/cast/alias.go
new file mode 100644
index 00000000..855d6000
--- /dev/null
+++ b/vendor/github.com/spf13/cast/alias.go
@@ -0,0 +1,69 @@
+// Copyright © 2014 Steve Francia .
+//
+// Use of this source code is governed by an MIT-style
+// license that can be found in the LICENSE file.
+package cast
+
+import (
+ "reflect"
+ "slices"
+)
+
+var kindNames = []string{
+ reflect.String: "string",
+ reflect.Bool: "bool",
+ reflect.Int: "int",
+ reflect.Int8: "int8",
+ reflect.Int16: "int16",
+ reflect.Int32: "int32",
+ reflect.Int64: "int64",
+ reflect.Uint: "uint",
+ reflect.Uint8: "uint8",
+ reflect.Uint16: "uint16",
+ reflect.Uint32: "uint32",
+ reflect.Uint64: "uint64",
+ reflect.Float32: "float32",
+ reflect.Float64: "float64",
+}
+
+var kinds = map[reflect.Kind]func(reflect.Value) any{
+ reflect.String: func(v reflect.Value) any { return v.String() },
+ reflect.Bool: func(v reflect.Value) any { return v.Bool() },
+ reflect.Int: func(v reflect.Value) any { return int(v.Int()) },
+ reflect.Int8: func(v reflect.Value) any { return int8(v.Int()) },
+ reflect.Int16: func(v reflect.Value) any { return int16(v.Int()) },
+ reflect.Int32: func(v reflect.Value) any { return int32(v.Int()) },
+ reflect.Int64: func(v reflect.Value) any { return v.Int() },
+ reflect.Uint: func(v reflect.Value) any { return uint(v.Uint()) },
+ reflect.Uint8: func(v reflect.Value) any { return uint8(v.Uint()) },
+ reflect.Uint16: func(v reflect.Value) any { return uint16(v.Uint()) },
+ reflect.Uint32: func(v reflect.Value) any { return uint32(v.Uint()) },
+ reflect.Uint64: func(v reflect.Value) any { return v.Uint() },
+ reflect.Float32: func(v reflect.Value) any { return float32(v.Float()) },
+ reflect.Float64: func(v reflect.Value) any { return v.Float() },
+}
+
+// resolveAlias attempts to resolve a named type to its underlying basic type (if possible).
+//
+// Pointers are expected to be indirected by this point.
+func resolveAlias(i any) (any, bool) {
+ if i == nil {
+ return nil, false
+ }
+
+ t := reflect.TypeOf(i)
+
+ // Not a named type
+ if t.Name() == "" || slices.Contains(kindNames, t.Name()) {
+ return i, false
+ }
+
+ resolve, ok := kinds[t.Kind()]
+ if !ok { // Not a supported kind
+ return i, false
+ }
+
+ v := reflect.ValueOf(i)
+
+ return resolve(v), true
+}
diff --git a/vendor/github.com/spf13/cast/basic.go b/vendor/github.com/spf13/cast/basic.go
new file mode 100644
index 00000000..fa330e20
--- /dev/null
+++ b/vendor/github.com/spf13/cast/basic.go
@@ -0,0 +1,131 @@
+// Copyright © 2014 Steve Francia .
+//
+// Use of this source code is governed by an MIT-style
+// license that can be found in the LICENSE file.
+
+package cast
+
+import (
+ "encoding/json"
+ "fmt"
+ "html/template"
+ "strconv"
+ "time"
+)
+
+// ToBoolE casts any value to a bool type.
+func ToBoolE(i any) (bool, error) {
+ i, _ = indirect(i)
+
+ switch b := i.(type) {
+ case bool:
+ return b, nil
+ case nil:
+ return false, nil
+ case int:
+ return b != 0, nil
+ case int8:
+ return b != 0, nil
+ case int16:
+ return b != 0, nil
+ case int32:
+ return b != 0, nil
+ case int64:
+ return b != 0, nil
+ case uint:
+ return b != 0, nil
+ case uint8:
+ return b != 0, nil
+ case uint16:
+ return b != 0, nil
+ case uint32:
+ return b != 0, nil
+ case uint64:
+ return b != 0, nil
+ case float32:
+ return b != 0, nil
+ case float64:
+ return b != 0, nil
+ case time.Duration:
+ return b != 0, nil
+ case string:
+ return strconv.ParseBool(b)
+ case json.Number:
+ v, err := ToInt64E(b)
+ if err == nil {
+ return v != 0, nil
+ }
+
+ return false, fmt.Errorf(errorMsg, i, i, false)
+ default:
+ if i, ok := resolveAlias(i); ok {
+ return ToBoolE(i)
+ }
+
+ return false, fmt.Errorf(errorMsg, i, i, false)
+ }
+}
+
+// ToStringE casts any value to a string type.
+func ToStringE(i any) (string, error) {
+ switch s := i.(type) {
+ case string:
+ return s, nil
+ case bool:
+ return strconv.FormatBool(s), nil
+ case float64:
+ return strconv.FormatFloat(s, 'f', -1, 64), nil
+ case float32:
+ return strconv.FormatFloat(float64(s), 'f', -1, 32), nil
+ case int:
+ return strconv.Itoa(s), nil
+ case int8:
+ return strconv.FormatInt(int64(s), 10), nil
+ case int16:
+ return strconv.FormatInt(int64(s), 10), nil
+ case int32:
+ return strconv.FormatInt(int64(s), 10), nil
+ case int64:
+ return strconv.FormatInt(s, 10), nil
+ case uint:
+ return strconv.FormatUint(uint64(s), 10), nil
+ case uint8:
+ return strconv.FormatUint(uint64(s), 10), nil
+ case uint16:
+ return strconv.FormatUint(uint64(s), 10), nil
+ case uint32:
+ return strconv.FormatUint(uint64(s), 10), nil
+ case uint64:
+ return strconv.FormatUint(s, 10), nil
+ case json.Number:
+ return s.String(), nil
+ case []byte:
+ return string(s), nil
+ case template.HTML:
+ return string(s), nil
+ case template.URL:
+ return string(s), nil
+ case template.JS:
+ return string(s), nil
+ case template.CSS:
+ return string(s), nil
+ case template.HTMLAttr:
+ return string(s), nil
+ case nil:
+ return "", nil
+ case fmt.Stringer:
+ return s.String(), nil
+ case error:
+ return s.Error(), nil
+ default:
+ if i, ok := indirect(i); ok {
+ return ToStringE(i)
+ }
+
+ if i, ok := resolveAlias(i); ok {
+ return ToStringE(i)
+ }
+
+ return "", fmt.Errorf(errorMsg, i, i, "")
+ }
+}
diff --git a/vendor/github.com/spf13/cast/cast.go b/vendor/github.com/spf13/cast/cast.go
index 0cfe9418..8d85539b 100644
--- a/vendor/github.com/spf13/cast/cast.go
+++ b/vendor/github.com/spf13/cast/cast.go
@@ -8,169 +8,77 @@ package cast
import "time"
-// ToBool casts an interface to a bool type.
-func ToBool(i interface{}) bool {
- v, _ := ToBoolE(i)
- return v
-}
-
-// ToTime casts an interface to a time.Time type.
-func ToTime(i interface{}) time.Time {
- v, _ := ToTimeE(i)
- return v
-}
-
-func ToTimeInDefaultLocation(i interface{}, location *time.Location) time.Time {
- v, _ := ToTimeInDefaultLocationE(i, location)
- return v
-}
-
-// ToDuration casts an interface to a time.Duration type.
-func ToDuration(i interface{}) time.Duration {
- v, _ := ToDurationE(i)
- return v
-}
-
-// ToFloat64 casts an interface to a float64 type.
-func ToFloat64(i interface{}) float64 {
- v, _ := ToFloat64E(i)
- return v
-}
-
-// ToFloat32 casts an interface to a float32 type.
-func ToFloat32(i interface{}) float32 {
- v, _ := ToFloat32E(i)
- return v
-}
-
-// ToInt64 casts an interface to an int64 type.
-func ToInt64(i interface{}) int64 {
- v, _ := ToInt64E(i)
- return v
-}
-
-// ToInt32 casts an interface to an int32 type.
-func ToInt32(i interface{}) int32 {
- v, _ := ToInt32E(i)
- return v
-}
-
-// ToInt16 casts an interface to an int16 type.
-func ToInt16(i interface{}) int16 {
- v, _ := ToInt16E(i)
- return v
-}
-
-// ToInt8 casts an interface to an int8 type.
-func ToInt8(i interface{}) int8 {
- v, _ := ToInt8E(i)
- return v
-}
-
-// ToInt casts an interface to an int type.
-func ToInt(i interface{}) int {
- v, _ := ToIntE(i)
- return v
-}
-
-// ToUint casts an interface to a uint type.
-func ToUint(i interface{}) uint {
- v, _ := ToUintE(i)
- return v
-}
-
-// ToUint64 casts an interface to a uint64 type.
-func ToUint64(i interface{}) uint64 {
- v, _ := ToUint64E(i)
- return v
-}
-
-// ToUint32 casts an interface to a uint32 type.
-func ToUint32(i interface{}) uint32 {
- v, _ := ToUint32E(i)
- return v
-}
-
-// ToUint16 casts an interface to a uint16 type.
-func ToUint16(i interface{}) uint16 {
- v, _ := ToUint16E(i)
- return v
-}
-
-// ToUint8 casts an interface to a uint8 type.
-func ToUint8(i interface{}) uint8 {
- v, _ := ToUint8E(i)
- return v
-}
-
-// ToString casts an interface to a string type.
-func ToString(i interface{}) string {
- v, _ := ToStringE(i)
- return v
-}
-
-// ToStringMapString casts an interface to a map[string]string type.
-func ToStringMapString(i interface{}) map[string]string {
- v, _ := ToStringMapStringE(i)
- return v
-}
-
-// ToStringMapStringSlice casts an interface to a map[string][]string type.
-func ToStringMapStringSlice(i interface{}) map[string][]string {
- v, _ := ToStringMapStringSliceE(i)
- return v
-}
-
-// ToStringMapBool casts an interface to a map[string]bool type.
-func ToStringMapBool(i interface{}) map[string]bool {
- v, _ := ToStringMapBoolE(i)
- return v
-}
-
-// ToStringMapInt casts an interface to a map[string]int type.
-func ToStringMapInt(i interface{}) map[string]int {
- v, _ := ToStringMapIntE(i)
- return v
-}
-
-// ToStringMapInt64 casts an interface to a map[string]int64 type.
-func ToStringMapInt64(i interface{}) map[string]int64 {
- v, _ := ToStringMapInt64E(i)
- return v
-}
-
-// ToStringMap casts an interface to a map[string]interface{} type.
-func ToStringMap(i interface{}) map[string]interface{} {
- v, _ := ToStringMapE(i)
- return v
-}
-
-// ToSlice casts an interface to a []interface{} type.
-func ToSlice(i interface{}) []interface{} {
- v, _ := ToSliceE(i)
- return v
-}
-
-// ToBoolSlice casts an interface to a []bool type.
-func ToBoolSlice(i interface{}) []bool {
- v, _ := ToBoolSliceE(i)
- return v
-}
-
-// ToStringSlice casts an interface to a []string type.
-func ToStringSlice(i interface{}) []string {
- v, _ := ToStringSliceE(i)
- return v
-}
+const errorMsg = "unable to cast %#v of type %T to %T"
+const errorMsgWith = "unable to cast %#v of type %T to %T: %w"
-// ToIntSlice casts an interface to a []int type.
-func ToIntSlice(i interface{}) []int {
- v, _ := ToIntSliceE(i)
- return v
-}
+// Basic is a type parameter constraint for functions accepting basic types.
+//
+// It represents the supported basic types this package can cast to.
+type Basic interface {
+ string | bool | Number | time.Time | time.Duration
+}
+
+// ToE casts any value to a [Basic] type.
+func ToE[T Basic](i any) (T, error) {
+ var t T
+
+ var v any
+ var err error
+
+ switch any(t).(type) {
+ case string:
+ v, err = ToStringE(i)
+ case bool:
+ v, err = ToBoolE(i)
+ case int:
+ v, err = toNumberE[int](i, parseInt[int])
+ case int8:
+ v, err = toNumberE[int8](i, parseInt[int8])
+ case int16:
+ v, err = toNumberE[int16](i, parseInt[int16])
+ case int32:
+ v, err = toNumberE[int32](i, parseInt[int32])
+ case int64:
+ v, err = toNumberE[int64](i, parseInt[int64])
+ case uint:
+ v, err = toUnsignedNumberE[uint](i, parseUint[uint])
+ case uint8:
+ v, err = toUnsignedNumberE[uint8](i, parseUint[uint8])
+ case uint16:
+ v, err = toUnsignedNumberE[uint16](i, parseUint[uint16])
+ case uint32:
+ v, err = toUnsignedNumberE[uint32](i, parseUint[uint32])
+ case uint64:
+ v, err = toUnsignedNumberE[uint64](i, parseUint[uint64])
+ case float32:
+ v, err = toNumberE[float32](i, parseFloat[float32])
+ case float64:
+ v, err = toNumberE[float64](i, parseFloat[float64])
+ case time.Time:
+ v, err = ToTimeE(i)
+ case time.Duration:
+ v, err = ToDurationE(i)
+ }
+
+ if err != nil {
+ return t, err
+ }
+
+ return v.(T), nil
+}
+
+// Must is a helper that wraps a call to a cast function and panics if the error is non-nil.
+func Must[T any](i any, err error) T {
+ if err != nil {
+ panic(err)
+ }
+
+ return i.(T)
+}
+
+// To casts any value to a [Basic] type.
+func To[T Basic](i any) T {
+ v, _ := ToE[T](i)
-// ToDurationSlice casts an interface to a []time.Duration type.
-func ToDurationSlice(i interface{}) []time.Duration {
- v, _ := ToDurationSliceE(i)
return v
}
diff --git a/vendor/github.com/spf13/cast/caste.go b/vendor/github.com/spf13/cast/caste.go
deleted file mode 100644
index cd9c0488..00000000
--- a/vendor/github.com/spf13/cast/caste.go
+++ /dev/null
@@ -1,1510 +0,0 @@
-// Copyright © 2014 Steve Francia .
-//
-// Use of this source code is governed by an MIT-style
-// license that can be found in the LICENSE file.
-
-package cast
-
-import (
- "encoding/json"
- "errors"
- "fmt"
- "html/template"
- "reflect"
- "strconv"
- "strings"
- "time"
-)
-
-var errNegativeNotAllowed = errors.New("unable to cast negative value")
-
-type float64EProvider interface {
- Float64() (float64, error)
-}
-
-type float64Provider interface {
- Float64() float64
-}
-
-// ToTimeE casts an interface to a time.Time type.
-func ToTimeE(i interface{}) (tim time.Time, err error) {
- return ToTimeInDefaultLocationE(i, time.UTC)
-}
-
-// ToTimeInDefaultLocationE casts an empty interface to time.Time,
-// interpreting inputs without a timezone to be in the given location,
-// or the local timezone if nil.
-func ToTimeInDefaultLocationE(i interface{}, location *time.Location) (tim time.Time, err error) {
- i = indirect(i)
-
- switch v := i.(type) {
- case time.Time:
- return v, nil
- case string:
- return StringToDateInDefaultLocation(v, location)
- case json.Number:
- s, err1 := ToInt64E(v)
- if err1 != nil {
- return time.Time{}, fmt.Errorf("unable to cast %#v of type %T to Time", i, i)
- }
- return time.Unix(s, 0), nil
- case int:
- return time.Unix(int64(v), 0), nil
- case int64:
- return time.Unix(v, 0), nil
- case int32:
- return time.Unix(int64(v), 0), nil
- case uint:
- return time.Unix(int64(v), 0), nil
- case uint64:
- return time.Unix(int64(v), 0), nil
- case uint32:
- return time.Unix(int64(v), 0), nil
- default:
- return time.Time{}, fmt.Errorf("unable to cast %#v of type %T to Time", i, i)
- }
-}
-
-// ToDurationE casts an interface to a time.Duration type.
-func ToDurationE(i interface{}) (d time.Duration, err error) {
- i = indirect(i)
-
- switch s := i.(type) {
- case time.Duration:
- return s, nil
- case int, int64, int32, int16, int8, uint, uint64, uint32, uint16, uint8:
- d = time.Duration(ToInt64(s))
- return
- case float32, float64:
- d = time.Duration(ToFloat64(s))
- return
- case string:
- if strings.ContainsAny(s, "nsuµmh") {
- d, err = time.ParseDuration(s)
- } else {
- d, err = time.ParseDuration(s + "ns")
- }
- return
- case float64EProvider:
- var v float64
- v, err = s.Float64()
- d = time.Duration(v)
- return
- case float64Provider:
- d = time.Duration(s.Float64())
- return
- default:
- err = fmt.Errorf("unable to cast %#v of type %T to Duration", i, i)
- return
- }
-}
-
-// ToBoolE casts an interface to a bool type.
-func ToBoolE(i interface{}) (bool, error) {
- i = indirect(i)
-
- switch b := i.(type) {
- case bool:
- return b, nil
- case nil:
- return false, nil
- case int:
- return b != 0, nil
- case int64:
- return b != 0, nil
- case int32:
- return b != 0, nil
- case int16:
- return b != 0, nil
- case int8:
- return b != 0, nil
- case uint:
- return b != 0, nil
- case uint64:
- return b != 0, nil
- case uint32:
- return b != 0, nil
- case uint16:
- return b != 0, nil
- case uint8:
- return b != 0, nil
- case float64:
- return b != 0, nil
- case float32:
- return b != 0, nil
- case time.Duration:
- return b != 0, nil
- case string:
- return strconv.ParseBool(i.(string))
- case json.Number:
- v, err := ToInt64E(b)
- if err == nil {
- return v != 0, nil
- }
- return false, fmt.Errorf("unable to cast %#v of type %T to bool", i, i)
- default:
- return false, fmt.Errorf("unable to cast %#v of type %T to bool", i, i)
- }
-}
-
-// ToFloat64E casts an interface to a float64 type.
-func ToFloat64E(i interface{}) (float64, error) {
- i = indirect(i)
-
- intv, ok := toInt(i)
- if ok {
- return float64(intv), nil
- }
-
- switch s := i.(type) {
- case float64:
- return s, nil
- case float32:
- return float64(s), nil
- case int64:
- return float64(s), nil
- case int32:
- return float64(s), nil
- case int16:
- return float64(s), nil
- case int8:
- return float64(s), nil
- case uint:
- return float64(s), nil
- case uint64:
- return float64(s), nil
- case uint32:
- return float64(s), nil
- case uint16:
- return float64(s), nil
- case uint8:
- return float64(s), nil
- case string:
- v, err := strconv.ParseFloat(s, 64)
- if err == nil {
- return v, nil
- }
- return 0, fmt.Errorf("unable to cast %#v of type %T to float64", i, i)
- case float64EProvider:
- v, err := s.Float64()
- if err == nil {
- return v, nil
- }
- return 0, fmt.Errorf("unable to cast %#v of type %T to float64", i, i)
- case float64Provider:
- return s.Float64(), nil
- case bool:
- if s {
- return 1, nil
- }
- return 0, nil
- case nil:
- return 0, nil
- default:
- return 0, fmt.Errorf("unable to cast %#v of type %T to float64", i, i)
- }
-}
-
-// ToFloat32E casts an interface to a float32 type.
-func ToFloat32E(i interface{}) (float32, error) {
- i = indirect(i)
-
- intv, ok := toInt(i)
- if ok {
- return float32(intv), nil
- }
-
- switch s := i.(type) {
- case float64:
- return float32(s), nil
- case float32:
- return s, nil
- case int64:
- return float32(s), nil
- case int32:
- return float32(s), nil
- case int16:
- return float32(s), nil
- case int8:
- return float32(s), nil
- case uint:
- return float32(s), nil
- case uint64:
- return float32(s), nil
- case uint32:
- return float32(s), nil
- case uint16:
- return float32(s), nil
- case uint8:
- return float32(s), nil
- case string:
- v, err := strconv.ParseFloat(s, 32)
- if err == nil {
- return float32(v), nil
- }
- return 0, fmt.Errorf("unable to cast %#v of type %T to float32", i, i)
- case float64EProvider:
- v, err := s.Float64()
- if err == nil {
- return float32(v), nil
- }
- return 0, fmt.Errorf("unable to cast %#v of type %T to float32", i, i)
- case float64Provider:
- return float32(s.Float64()), nil
- case bool:
- if s {
- return 1, nil
- }
- return 0, nil
- case nil:
- return 0, nil
- default:
- return 0, fmt.Errorf("unable to cast %#v of type %T to float32", i, i)
- }
-}
-
-// ToInt64E casts an interface to an int64 type.
-func ToInt64E(i interface{}) (int64, error) {
- i = indirect(i)
-
- intv, ok := toInt(i)
- if ok {
- return int64(intv), nil
- }
-
- switch s := i.(type) {
- case int64:
- return s, nil
- case int32:
- return int64(s), nil
- case int16:
- return int64(s), nil
- case int8:
- return int64(s), nil
- case uint:
- return int64(s), nil
- case uint64:
- return int64(s), nil
- case uint32:
- return int64(s), nil
- case uint16:
- return int64(s), nil
- case uint8:
- return int64(s), nil
- case float64:
- return int64(s), nil
- case float32:
- return int64(s), nil
- case string:
- v, err := strconv.ParseInt(trimZeroDecimal(s), 0, 0)
- if err == nil {
- return v, nil
- }
- return 0, fmt.Errorf("unable to cast %#v of type %T to int64", i, i)
- case json.Number:
- return ToInt64E(string(s))
- case bool:
- if s {
- return 1, nil
- }
- return 0, nil
- case nil:
- return 0, nil
- default:
- return 0, fmt.Errorf("unable to cast %#v of type %T to int64", i, i)
- }
-}
-
-// ToInt32E casts an interface to an int32 type.
-func ToInt32E(i interface{}) (int32, error) {
- i = indirect(i)
-
- intv, ok := toInt(i)
- if ok {
- return int32(intv), nil
- }
-
- switch s := i.(type) {
- case int64:
- return int32(s), nil
- case int32:
- return s, nil
- case int16:
- return int32(s), nil
- case int8:
- return int32(s), nil
- case uint:
- return int32(s), nil
- case uint64:
- return int32(s), nil
- case uint32:
- return int32(s), nil
- case uint16:
- return int32(s), nil
- case uint8:
- return int32(s), nil
- case float64:
- return int32(s), nil
- case float32:
- return int32(s), nil
- case string:
- v, err := strconv.ParseInt(trimZeroDecimal(s), 0, 0)
- if err == nil {
- return int32(v), nil
- }
- return 0, fmt.Errorf("unable to cast %#v of type %T to int32", i, i)
- case json.Number:
- return ToInt32E(string(s))
- case bool:
- if s {
- return 1, nil
- }
- return 0, nil
- case nil:
- return 0, nil
- default:
- return 0, fmt.Errorf("unable to cast %#v of type %T to int32", i, i)
- }
-}
-
-// ToInt16E casts an interface to an int16 type.
-func ToInt16E(i interface{}) (int16, error) {
- i = indirect(i)
-
- intv, ok := toInt(i)
- if ok {
- return int16(intv), nil
- }
-
- switch s := i.(type) {
- case int64:
- return int16(s), nil
- case int32:
- return int16(s), nil
- case int16:
- return s, nil
- case int8:
- return int16(s), nil
- case uint:
- return int16(s), nil
- case uint64:
- return int16(s), nil
- case uint32:
- return int16(s), nil
- case uint16:
- return int16(s), nil
- case uint8:
- return int16(s), nil
- case float64:
- return int16(s), nil
- case float32:
- return int16(s), nil
- case string:
- v, err := strconv.ParseInt(trimZeroDecimal(s), 0, 0)
- if err == nil {
- return int16(v), nil
- }
- return 0, fmt.Errorf("unable to cast %#v of type %T to int16", i, i)
- case json.Number:
- return ToInt16E(string(s))
- case bool:
- if s {
- return 1, nil
- }
- return 0, nil
- case nil:
- return 0, nil
- default:
- return 0, fmt.Errorf("unable to cast %#v of type %T to int16", i, i)
- }
-}
-
-// ToInt8E casts an interface to an int8 type.
-func ToInt8E(i interface{}) (int8, error) {
- i = indirect(i)
-
- intv, ok := toInt(i)
- if ok {
- return int8(intv), nil
- }
-
- switch s := i.(type) {
- case int64:
- return int8(s), nil
- case int32:
- return int8(s), nil
- case int16:
- return int8(s), nil
- case int8:
- return s, nil
- case uint:
- return int8(s), nil
- case uint64:
- return int8(s), nil
- case uint32:
- return int8(s), nil
- case uint16:
- return int8(s), nil
- case uint8:
- return int8(s), nil
- case float64:
- return int8(s), nil
- case float32:
- return int8(s), nil
- case string:
- v, err := strconv.ParseInt(trimZeroDecimal(s), 0, 0)
- if err == nil {
- return int8(v), nil
- }
- return 0, fmt.Errorf("unable to cast %#v of type %T to int8", i, i)
- case json.Number:
- return ToInt8E(string(s))
- case bool:
- if s {
- return 1, nil
- }
- return 0, nil
- case nil:
- return 0, nil
- default:
- return 0, fmt.Errorf("unable to cast %#v of type %T to int8", i, i)
- }
-}
-
-// ToIntE casts an interface to an int type.
-func ToIntE(i interface{}) (int, error) {
- i = indirect(i)
-
- intv, ok := toInt(i)
- if ok {
- return intv, nil
- }
-
- switch s := i.(type) {
- case int64:
- return int(s), nil
- case int32:
- return int(s), nil
- case int16:
- return int(s), nil
- case int8:
- return int(s), nil
- case uint:
- return int(s), nil
- case uint64:
- return int(s), nil
- case uint32:
- return int(s), nil
- case uint16:
- return int(s), nil
- case uint8:
- return int(s), nil
- case float64:
- return int(s), nil
- case float32:
- return int(s), nil
- case string:
- v, err := strconv.ParseInt(trimZeroDecimal(s), 0, 0)
- if err == nil {
- return int(v), nil
- }
- return 0, fmt.Errorf("unable to cast %#v of type %T to int64", i, i)
- case json.Number:
- return ToIntE(string(s))
- case bool:
- if s {
- return 1, nil
- }
- return 0, nil
- case nil:
- return 0, nil
- default:
- return 0, fmt.Errorf("unable to cast %#v of type %T to int", i, i)
- }
-}
-
-// ToUintE casts an interface to a uint type.
-func ToUintE(i interface{}) (uint, error) {
- i = indirect(i)
-
- intv, ok := toInt(i)
- if ok {
- if intv < 0 {
- return 0, errNegativeNotAllowed
- }
- return uint(intv), nil
- }
-
- switch s := i.(type) {
- case string:
- v, err := strconv.ParseInt(trimZeroDecimal(s), 0, 0)
- if err == nil {
- if v < 0 {
- return 0, errNegativeNotAllowed
- }
- return uint(v), nil
- }
- return 0, fmt.Errorf("unable to cast %#v of type %T to uint", i, i)
- case json.Number:
- return ToUintE(string(s))
- case int64:
- if s < 0 {
- return 0, errNegativeNotAllowed
- }
- return uint(s), nil
- case int32:
- if s < 0 {
- return 0, errNegativeNotAllowed
- }
- return uint(s), nil
- case int16:
- if s < 0 {
- return 0, errNegativeNotAllowed
- }
- return uint(s), nil
- case int8:
- if s < 0 {
- return 0, errNegativeNotAllowed
- }
- return uint(s), nil
- case uint:
- return s, nil
- case uint64:
- return uint(s), nil
- case uint32:
- return uint(s), nil
- case uint16:
- return uint(s), nil
- case uint8:
- return uint(s), nil
- case float64:
- if s < 0 {
- return 0, errNegativeNotAllowed
- }
- return uint(s), nil
- case float32:
- if s < 0 {
- return 0, errNegativeNotAllowed
- }
- return uint(s), nil
- case bool:
- if s {
- return 1, nil
- }
- return 0, nil
- case nil:
- return 0, nil
- default:
- return 0, fmt.Errorf("unable to cast %#v of type %T to uint", i, i)
- }
-}
-
-// ToUint64E casts an interface to a uint64 type.
-func ToUint64E(i interface{}) (uint64, error) {
- i = indirect(i)
-
- intv, ok := toInt(i)
- if ok {
- if intv < 0 {
- return 0, errNegativeNotAllowed
- }
- return uint64(intv), nil
- }
-
- switch s := i.(type) {
- case string:
- v, err := strconv.ParseInt(trimZeroDecimal(s), 0, 0)
- if err == nil {
- if v < 0 {
- return 0, errNegativeNotAllowed
- }
- return uint64(v), nil
- }
- return 0, fmt.Errorf("unable to cast %#v of type %T to uint64", i, i)
- case json.Number:
- return ToUint64E(string(s))
- case int64:
- if s < 0 {
- return 0, errNegativeNotAllowed
- }
- return uint64(s), nil
- case int32:
- if s < 0 {
- return 0, errNegativeNotAllowed
- }
- return uint64(s), nil
- case int16:
- if s < 0 {
- return 0, errNegativeNotAllowed
- }
- return uint64(s), nil
- case int8:
- if s < 0 {
- return 0, errNegativeNotAllowed
- }
- return uint64(s), nil
- case uint:
- return uint64(s), nil
- case uint64:
- return s, nil
- case uint32:
- return uint64(s), nil
- case uint16:
- return uint64(s), nil
- case uint8:
- return uint64(s), nil
- case float32:
- if s < 0 {
- return 0, errNegativeNotAllowed
- }
- return uint64(s), nil
- case float64:
- if s < 0 {
- return 0, errNegativeNotAllowed
- }
- return uint64(s), nil
- case bool:
- if s {
- return 1, nil
- }
- return 0, nil
- case nil:
- return 0, nil
- default:
- return 0, fmt.Errorf("unable to cast %#v of type %T to uint64", i, i)
- }
-}
-
-// ToUint32E casts an interface to a uint32 type.
-func ToUint32E(i interface{}) (uint32, error) {
- i = indirect(i)
-
- intv, ok := toInt(i)
- if ok {
- if intv < 0 {
- return 0, errNegativeNotAllowed
- }
- return uint32(intv), nil
- }
-
- switch s := i.(type) {
- case string:
- v, err := strconv.ParseInt(trimZeroDecimal(s), 0, 0)
- if err == nil {
- if v < 0 {
- return 0, errNegativeNotAllowed
- }
- return uint32(v), nil
- }
- return 0, fmt.Errorf("unable to cast %#v of type %T to uint32", i, i)
- case json.Number:
- return ToUint32E(string(s))
- case int64:
- if s < 0 {
- return 0, errNegativeNotAllowed
- }
- return uint32(s), nil
- case int32:
- if s < 0 {
- return 0, errNegativeNotAllowed
- }
- return uint32(s), nil
- case int16:
- if s < 0 {
- return 0, errNegativeNotAllowed
- }
- return uint32(s), nil
- case int8:
- if s < 0 {
- return 0, errNegativeNotAllowed
- }
- return uint32(s), nil
- case uint:
- return uint32(s), nil
- case uint64:
- return uint32(s), nil
- case uint32:
- return s, nil
- case uint16:
- return uint32(s), nil
- case uint8:
- return uint32(s), nil
- case float64:
- if s < 0 {
- return 0, errNegativeNotAllowed
- }
- return uint32(s), nil
- case float32:
- if s < 0 {
- return 0, errNegativeNotAllowed
- }
- return uint32(s), nil
- case bool:
- if s {
- return 1, nil
- }
- return 0, nil
- case nil:
- return 0, nil
- default:
- return 0, fmt.Errorf("unable to cast %#v of type %T to uint32", i, i)
- }
-}
-
-// ToUint16E casts an interface to a uint16 type.
-func ToUint16E(i interface{}) (uint16, error) {
- i = indirect(i)
-
- intv, ok := toInt(i)
- if ok {
- if intv < 0 {
- return 0, errNegativeNotAllowed
- }
- return uint16(intv), nil
- }
-
- switch s := i.(type) {
- case string:
- v, err := strconv.ParseInt(trimZeroDecimal(s), 0, 0)
- if err == nil {
- if v < 0 {
- return 0, errNegativeNotAllowed
- }
- return uint16(v), nil
- }
- return 0, fmt.Errorf("unable to cast %#v of type %T to uint16", i, i)
- case json.Number:
- return ToUint16E(string(s))
- case int64:
- if s < 0 {
- return 0, errNegativeNotAllowed
- }
- return uint16(s), nil
- case int32:
- if s < 0 {
- return 0, errNegativeNotAllowed
- }
- return uint16(s), nil
- case int16:
- if s < 0 {
- return 0, errNegativeNotAllowed
- }
- return uint16(s), nil
- case int8:
- if s < 0 {
- return 0, errNegativeNotAllowed
- }
- return uint16(s), nil
- case uint:
- return uint16(s), nil
- case uint64:
- return uint16(s), nil
- case uint32:
- return uint16(s), nil
- case uint16:
- return s, nil
- case uint8:
- return uint16(s), nil
- case float64:
- if s < 0 {
- return 0, errNegativeNotAllowed
- }
- return uint16(s), nil
- case float32:
- if s < 0 {
- return 0, errNegativeNotAllowed
- }
- return uint16(s), nil
- case bool:
- if s {
- return 1, nil
- }
- return 0, nil
- case nil:
- return 0, nil
- default:
- return 0, fmt.Errorf("unable to cast %#v of type %T to uint16", i, i)
- }
-}
-
-// ToUint8E casts an interface to a uint type.
-func ToUint8E(i interface{}) (uint8, error) {
- i = indirect(i)
-
- intv, ok := toInt(i)
- if ok {
- if intv < 0 {
- return 0, errNegativeNotAllowed
- }
- return uint8(intv), nil
- }
-
- switch s := i.(type) {
- case string:
- v, err := strconv.ParseInt(trimZeroDecimal(s), 0, 0)
- if err == nil {
- if v < 0 {
- return 0, errNegativeNotAllowed
- }
- return uint8(v), nil
- }
- return 0, fmt.Errorf("unable to cast %#v of type %T to uint8", i, i)
- case json.Number:
- return ToUint8E(string(s))
- case int64:
- if s < 0 {
- return 0, errNegativeNotAllowed
- }
- return uint8(s), nil
- case int32:
- if s < 0 {
- return 0, errNegativeNotAllowed
- }
- return uint8(s), nil
- case int16:
- if s < 0 {
- return 0, errNegativeNotAllowed
- }
- return uint8(s), nil
- case int8:
- if s < 0 {
- return 0, errNegativeNotAllowed
- }
- return uint8(s), nil
- case uint:
- return uint8(s), nil
- case uint64:
- return uint8(s), nil
- case uint32:
- return uint8(s), nil
- case uint16:
- return uint8(s), nil
- case uint8:
- return s, nil
- case float64:
- if s < 0 {
- return 0, errNegativeNotAllowed
- }
- return uint8(s), nil
- case float32:
- if s < 0 {
- return 0, errNegativeNotAllowed
- }
- return uint8(s), nil
- case bool:
- if s {
- return 1, nil
- }
- return 0, nil
- case nil:
- return 0, nil
- default:
- return 0, fmt.Errorf("unable to cast %#v of type %T to uint8", i, i)
- }
-}
-
-// From html/template/content.go
-// Copyright 2011 The Go Authors. All rights reserved.
-// indirect returns the value, after dereferencing as many times
-// as necessary to reach the base type (or nil).
-func indirect(a interface{}) interface{} {
- if a == nil {
- return nil
- }
- if t := reflect.TypeOf(a); t.Kind() != reflect.Ptr {
- // Avoid creating a reflect.Value if it's not a pointer.
- return a
- }
- v := reflect.ValueOf(a)
- for v.Kind() == reflect.Ptr && !v.IsNil() {
- v = v.Elem()
- }
- return v.Interface()
-}
-
-// From html/template/content.go
-// Copyright 2011 The Go Authors. All rights reserved.
-// indirectToStringerOrError returns the value, after dereferencing as many times
-// as necessary to reach the base type (or nil) or an implementation of fmt.Stringer
-// or error,
-func indirectToStringerOrError(a interface{}) interface{} {
- if a == nil {
- return nil
- }
-
- errorType := reflect.TypeOf((*error)(nil)).Elem()
- fmtStringerType := reflect.TypeOf((*fmt.Stringer)(nil)).Elem()
-
- v := reflect.ValueOf(a)
- for !v.Type().Implements(fmtStringerType) && !v.Type().Implements(errorType) && v.Kind() == reflect.Ptr && !v.IsNil() {
- v = v.Elem()
- }
- return v.Interface()
-}
-
-// ToStringE casts an interface to a string type.
-func ToStringE(i interface{}) (string, error) {
- i = indirectToStringerOrError(i)
-
- switch s := i.(type) {
- case string:
- return s, nil
- case bool:
- return strconv.FormatBool(s), nil
- case float64:
- return strconv.FormatFloat(s, 'f', -1, 64), nil
- case float32:
- return strconv.FormatFloat(float64(s), 'f', -1, 32), nil
- case int:
- return strconv.Itoa(s), nil
- case int64:
- return strconv.FormatInt(s, 10), nil
- case int32:
- return strconv.Itoa(int(s)), nil
- case int16:
- return strconv.FormatInt(int64(s), 10), nil
- case int8:
- return strconv.FormatInt(int64(s), 10), nil
- case uint:
- return strconv.FormatUint(uint64(s), 10), nil
- case uint64:
- return strconv.FormatUint(uint64(s), 10), nil
- case uint32:
- return strconv.FormatUint(uint64(s), 10), nil
- case uint16:
- return strconv.FormatUint(uint64(s), 10), nil
- case uint8:
- return strconv.FormatUint(uint64(s), 10), nil
- case json.Number:
- return s.String(), nil
- case []byte:
- return string(s), nil
- case template.HTML:
- return string(s), nil
- case template.URL:
- return string(s), nil
- case template.JS:
- return string(s), nil
- case template.CSS:
- return string(s), nil
- case template.HTMLAttr:
- return string(s), nil
- case nil:
- return "", nil
- case fmt.Stringer:
- return s.String(), nil
- case error:
- return s.Error(), nil
- default:
- return "", fmt.Errorf("unable to cast %#v of type %T to string", i, i)
- }
-}
-
-// ToStringMapStringE casts an interface to a map[string]string type.
-func ToStringMapStringE(i interface{}) (map[string]string, error) {
- m := map[string]string{}
-
- switch v := i.(type) {
- case map[string]string:
- return v, nil
- case map[string]interface{}:
- for k, val := range v {
- m[ToString(k)] = ToString(val)
- }
- return m, nil
- case map[interface{}]string:
- for k, val := range v {
- m[ToString(k)] = ToString(val)
- }
- return m, nil
- case map[interface{}]interface{}:
- for k, val := range v {
- m[ToString(k)] = ToString(val)
- }
- return m, nil
- case string:
- err := jsonStringToObject(v, &m)
- return m, err
- default:
- return m, fmt.Errorf("unable to cast %#v of type %T to map[string]string", i, i)
- }
-}
-
-// ToStringMapStringSliceE casts an interface to a map[string][]string type.
-func ToStringMapStringSliceE(i interface{}) (map[string][]string, error) {
- m := map[string][]string{}
-
- switch v := i.(type) {
- case map[string][]string:
- return v, nil
- case map[string][]interface{}:
- for k, val := range v {
- m[ToString(k)] = ToStringSlice(val)
- }
- return m, nil
- case map[string]string:
- for k, val := range v {
- m[ToString(k)] = []string{val}
- }
- case map[string]interface{}:
- for k, val := range v {
- switch vt := val.(type) {
- case []interface{}:
- m[ToString(k)] = ToStringSlice(vt)
- case []string:
- m[ToString(k)] = vt
- default:
- m[ToString(k)] = []string{ToString(val)}
- }
- }
- return m, nil
- case map[interface{}][]string:
- for k, val := range v {
- m[ToString(k)] = ToStringSlice(val)
- }
- return m, nil
- case map[interface{}]string:
- for k, val := range v {
- m[ToString(k)] = ToStringSlice(val)
- }
- return m, nil
- case map[interface{}][]interface{}:
- for k, val := range v {
- m[ToString(k)] = ToStringSlice(val)
- }
- return m, nil
- case map[interface{}]interface{}:
- for k, val := range v {
- key, err := ToStringE(k)
- if err != nil {
- return m, fmt.Errorf("unable to cast %#v of type %T to map[string][]string", i, i)
- }
- value, err := ToStringSliceE(val)
- if err != nil {
- return m, fmt.Errorf("unable to cast %#v of type %T to map[string][]string", i, i)
- }
- m[key] = value
- }
- case string:
- err := jsonStringToObject(v, &m)
- return m, err
- default:
- return m, fmt.Errorf("unable to cast %#v of type %T to map[string][]string", i, i)
- }
- return m, nil
-}
-
-// ToStringMapBoolE casts an interface to a map[string]bool type.
-func ToStringMapBoolE(i interface{}) (map[string]bool, error) {
- m := map[string]bool{}
-
- switch v := i.(type) {
- case map[interface{}]interface{}:
- for k, val := range v {
- m[ToString(k)] = ToBool(val)
- }
- return m, nil
- case map[string]interface{}:
- for k, val := range v {
- m[ToString(k)] = ToBool(val)
- }
- return m, nil
- case map[string]bool:
- return v, nil
- case string:
- err := jsonStringToObject(v, &m)
- return m, err
- default:
- return m, fmt.Errorf("unable to cast %#v of type %T to map[string]bool", i, i)
- }
-}
-
-// ToStringMapE casts an interface to a map[string]interface{} type.
-func ToStringMapE(i interface{}) (map[string]interface{}, error) {
- m := map[string]interface{}{}
-
- switch v := i.(type) {
- case map[interface{}]interface{}:
- for k, val := range v {
- m[ToString(k)] = val
- }
- return m, nil
- case map[string]interface{}:
- return v, nil
- case string:
- err := jsonStringToObject(v, &m)
- return m, err
- default:
- return m, fmt.Errorf("unable to cast %#v of type %T to map[string]interface{}", i, i)
- }
-}
-
-// ToStringMapIntE casts an interface to a map[string]int{} type.
-func ToStringMapIntE(i interface{}) (map[string]int, error) {
- m := map[string]int{}
- if i == nil {
- return m, fmt.Errorf("unable to cast %#v of type %T to map[string]int", i, i)
- }
-
- switch v := i.(type) {
- case map[interface{}]interface{}:
- for k, val := range v {
- m[ToString(k)] = ToInt(val)
- }
- return m, nil
- case map[string]interface{}:
- for k, val := range v {
- m[k] = ToInt(val)
- }
- return m, nil
- case map[string]int:
- return v, nil
- case string:
- err := jsonStringToObject(v, &m)
- return m, err
- }
-
- if reflect.TypeOf(i).Kind() != reflect.Map {
- return m, fmt.Errorf("unable to cast %#v of type %T to map[string]int", i, i)
- }
-
- mVal := reflect.ValueOf(m)
- v := reflect.ValueOf(i)
- for _, keyVal := range v.MapKeys() {
- val, err := ToIntE(v.MapIndex(keyVal).Interface())
- if err != nil {
- return m, fmt.Errorf("unable to cast %#v of type %T to map[string]int", i, i)
- }
- mVal.SetMapIndex(keyVal, reflect.ValueOf(val))
- }
- return m, nil
-}
-
-// ToStringMapInt64E casts an interface to a map[string]int64{} type.
-func ToStringMapInt64E(i interface{}) (map[string]int64, error) {
- m := map[string]int64{}
- if i == nil {
- return m, fmt.Errorf("unable to cast %#v of type %T to map[string]int64", i, i)
- }
-
- switch v := i.(type) {
- case map[interface{}]interface{}:
- for k, val := range v {
- m[ToString(k)] = ToInt64(val)
- }
- return m, nil
- case map[string]interface{}:
- for k, val := range v {
- m[k] = ToInt64(val)
- }
- return m, nil
- case map[string]int64:
- return v, nil
- case string:
- err := jsonStringToObject(v, &m)
- return m, err
- }
-
- if reflect.TypeOf(i).Kind() != reflect.Map {
- return m, fmt.Errorf("unable to cast %#v of type %T to map[string]int64", i, i)
- }
- mVal := reflect.ValueOf(m)
- v := reflect.ValueOf(i)
- for _, keyVal := range v.MapKeys() {
- val, err := ToInt64E(v.MapIndex(keyVal).Interface())
- if err != nil {
- return m, fmt.Errorf("unable to cast %#v of type %T to map[string]int64", i, i)
- }
- mVal.SetMapIndex(keyVal, reflect.ValueOf(val))
- }
- return m, nil
-}
-
-// ToSliceE casts an interface to a []interface{} type.
-func ToSliceE(i interface{}) ([]interface{}, error) {
- var s []interface{}
-
- switch v := i.(type) {
- case []interface{}:
- return append(s, v...), nil
- case []map[string]interface{}:
- for _, u := range v {
- s = append(s, u)
- }
- return s, nil
- default:
- return s, fmt.Errorf("unable to cast %#v of type %T to []interface{}", i, i)
- }
-}
-
-// ToBoolSliceE casts an interface to a []bool type.
-func ToBoolSliceE(i interface{}) ([]bool, error) {
- if i == nil {
- return []bool{}, fmt.Errorf("unable to cast %#v of type %T to []bool", i, i)
- }
-
- switch v := i.(type) {
- case []bool:
- return v, nil
- }
-
- kind := reflect.TypeOf(i).Kind()
- switch kind {
- case reflect.Slice, reflect.Array:
- s := reflect.ValueOf(i)
- a := make([]bool, s.Len())
- for j := 0; j < s.Len(); j++ {
- val, err := ToBoolE(s.Index(j).Interface())
- if err != nil {
- return []bool{}, fmt.Errorf("unable to cast %#v of type %T to []bool", i, i)
- }
- a[j] = val
- }
- return a, nil
- default:
- return []bool{}, fmt.Errorf("unable to cast %#v of type %T to []bool", i, i)
- }
-}
-
-// ToStringSliceE casts an interface to a []string type.
-func ToStringSliceE(i interface{}) ([]string, error) {
- var a []string
-
- switch v := i.(type) {
- case []interface{}:
- for _, u := range v {
- a = append(a, ToString(u))
- }
- return a, nil
- case []string:
- return v, nil
- case []int8:
- for _, u := range v {
- a = append(a, ToString(u))
- }
- return a, nil
- case []int:
- for _, u := range v {
- a = append(a, ToString(u))
- }
- return a, nil
- case []int32:
- for _, u := range v {
- a = append(a, ToString(u))
- }
- return a, nil
- case []int64:
- for _, u := range v {
- a = append(a, ToString(u))
- }
- return a, nil
- case []float32:
- for _, u := range v {
- a = append(a, ToString(u))
- }
- return a, nil
- case []float64:
- for _, u := range v {
- a = append(a, ToString(u))
- }
- return a, nil
- case string:
- return strings.Fields(v), nil
- case []error:
- for _, err := range i.([]error) {
- a = append(a, err.Error())
- }
- return a, nil
- case interface{}:
- str, err := ToStringE(v)
- if err != nil {
- return a, fmt.Errorf("unable to cast %#v of type %T to []string", i, i)
- }
- return []string{str}, nil
- default:
- return a, fmt.Errorf("unable to cast %#v of type %T to []string", i, i)
- }
-}
-
-// ToIntSliceE casts an interface to a []int type.
-func ToIntSliceE(i interface{}) ([]int, error) {
- if i == nil {
- return []int{}, fmt.Errorf("unable to cast %#v of type %T to []int", i, i)
- }
-
- switch v := i.(type) {
- case []int:
- return v, nil
- }
-
- kind := reflect.TypeOf(i).Kind()
- switch kind {
- case reflect.Slice, reflect.Array:
- s := reflect.ValueOf(i)
- a := make([]int, s.Len())
- for j := 0; j < s.Len(); j++ {
- val, err := ToIntE(s.Index(j).Interface())
- if err != nil {
- return []int{}, fmt.Errorf("unable to cast %#v of type %T to []int", i, i)
- }
- a[j] = val
- }
- return a, nil
- default:
- return []int{}, fmt.Errorf("unable to cast %#v of type %T to []int", i, i)
- }
-}
-
-// ToDurationSliceE casts an interface to a []time.Duration type.
-func ToDurationSliceE(i interface{}) ([]time.Duration, error) {
- if i == nil {
- return []time.Duration{}, fmt.Errorf("unable to cast %#v of type %T to []time.Duration", i, i)
- }
-
- switch v := i.(type) {
- case []time.Duration:
- return v, nil
- }
-
- kind := reflect.TypeOf(i).Kind()
- switch kind {
- case reflect.Slice, reflect.Array:
- s := reflect.ValueOf(i)
- a := make([]time.Duration, s.Len())
- for j := 0; j < s.Len(); j++ {
- val, err := ToDurationE(s.Index(j).Interface())
- if err != nil {
- return []time.Duration{}, fmt.Errorf("unable to cast %#v of type %T to []time.Duration", i, i)
- }
- a[j] = val
- }
- return a, nil
- default:
- return []time.Duration{}, fmt.Errorf("unable to cast %#v of type %T to []time.Duration", i, i)
- }
-}
-
-// StringToDate attempts to parse a string into a time.Time type using a
-// predefined list of formats. If no suitable format is found, an error is
-// returned.
-func StringToDate(s string) (time.Time, error) {
- return parseDateWith(s, time.UTC, timeFormats)
-}
-
-// StringToDateInDefaultLocation casts an empty interface to a time.Time,
-// interpreting inputs without a timezone to be in the given location,
-// or the local timezone if nil.
-func StringToDateInDefaultLocation(s string, location *time.Location) (time.Time, error) {
- return parseDateWith(s, location, timeFormats)
-}
-
-type timeFormatType int
-
-const (
- timeFormatNoTimezone timeFormatType = iota
- timeFormatNamedTimezone
- timeFormatNumericTimezone
- timeFormatNumericAndNamedTimezone
- timeFormatTimeOnly
-)
-
-type timeFormat struct {
- format string
- typ timeFormatType
-}
-
-func (f timeFormat) hasTimezone() bool {
- // We don't include the formats with only named timezones, see
- // https://github.com/golang/go/issues/19694#issuecomment-289103522
- return f.typ >= timeFormatNumericTimezone && f.typ <= timeFormatNumericAndNamedTimezone
-}
-
-var timeFormats = []timeFormat{
- // Keep common formats at the top.
- {"2006-01-02", timeFormatNoTimezone},
- {time.RFC3339, timeFormatNumericTimezone},
- {"2006-01-02T15:04:05", timeFormatNoTimezone}, // iso8601 without timezone
- {time.RFC1123Z, timeFormatNumericTimezone},
- {time.RFC1123, timeFormatNamedTimezone},
- {time.RFC822Z, timeFormatNumericTimezone},
- {time.RFC822, timeFormatNamedTimezone},
- {time.RFC850, timeFormatNamedTimezone},
- {"2006-01-02 15:04:05.999999999 -0700 MST", timeFormatNumericAndNamedTimezone}, // Time.String()
- {"2006-01-02T15:04:05-0700", timeFormatNumericTimezone}, // RFC3339 without timezone hh:mm colon
- {"2006-01-02 15:04:05Z0700", timeFormatNumericTimezone}, // RFC3339 without T or timezone hh:mm colon
- {"2006-01-02 15:04:05", timeFormatNoTimezone},
- {time.ANSIC, timeFormatNoTimezone},
- {time.UnixDate, timeFormatNamedTimezone},
- {time.RubyDate, timeFormatNumericTimezone},
- {"2006-01-02 15:04:05Z07:00", timeFormatNumericTimezone},
- {"02 Jan 2006", timeFormatNoTimezone},
- {"2006-01-02 15:04:05 -07:00", timeFormatNumericTimezone},
- {"2006-01-02 15:04:05 -0700", timeFormatNumericTimezone},
- {time.Kitchen, timeFormatTimeOnly},
- {time.Stamp, timeFormatTimeOnly},
- {time.StampMilli, timeFormatTimeOnly},
- {time.StampMicro, timeFormatTimeOnly},
- {time.StampNano, timeFormatTimeOnly},
-}
-
-func parseDateWith(s string, location *time.Location, formats []timeFormat) (d time.Time, e error) {
- for _, format := range formats {
- if d, e = time.Parse(format.format, s); e == nil {
-
- // Some time formats have a zone name, but no offset, so it gets
- // put in that zone name (not the default one passed in to us), but
- // without that zone's offset. So set the location manually.
- if format.typ <= timeFormatNamedTimezone {
- if location == nil {
- location = time.Local
- }
- year, month, day := d.Date()
- hour, min, sec := d.Clock()
- d = time.Date(year, month, day, hour, min, sec, d.Nanosecond(), location)
- }
-
- return
- }
- }
- return d, fmt.Errorf("unable to parse date: %s", s)
-}
-
-// jsonStringToObject attempts to unmarshall a string as JSON into
-// the object passed as pointer.
-func jsonStringToObject(s string, v interface{}) error {
- data := []byte(s)
- return json.Unmarshal(data, v)
-}
-
-// toInt returns the int value of v if v or v's underlying type
-// is an int.
-// Note that this will return false for int64 etc. types.
-func toInt(v interface{}) (int, bool) {
- switch v := v.(type) {
- case int:
- return v, true
- case time.Weekday:
- return int(v), true
- case time.Month:
- return int(v), true
- default:
- return 0, false
- }
-}
-
-func trimZeroDecimal(s string) string {
- var foundZero bool
- for i := len(s); i > 0; i-- {
- switch s[i-1] {
- case '.':
- if foundZero {
- return s[:i-1]
- }
- case '0':
- foundZero = true
- default:
- return s
- }
- }
- return s
-}
diff --git a/vendor/github.com/spf13/cast/indirect.go b/vendor/github.com/spf13/cast/indirect.go
new file mode 100644
index 00000000..093345f7
--- /dev/null
+++ b/vendor/github.com/spf13/cast/indirect.go
@@ -0,0 +1,37 @@
+// Copyright © 2014 Steve Francia .
+//
+// Use of this source code is governed by an MIT-style
+// license that can be found in the LICENSE file.
+
+package cast
+
+import (
+ "reflect"
+)
+
+// From html/template/content.go
+// Copyright 2011 The Go Authors. All rights reserved.
+// indirect returns the value, after dereferencing as many times
+// as necessary to reach the base type (or nil).
+func indirect(i any) (any, bool) {
+ if i == nil {
+ return nil, false
+ }
+
+ if t := reflect.TypeOf(i); t.Kind() != reflect.Ptr {
+ // Avoid creating a reflect.Value if it's not a pointer.
+ return i, false
+ }
+
+ v := reflect.ValueOf(i)
+
+ for v.Kind() == reflect.Ptr || (v.Kind() == reflect.Interface && v.Elem().Kind() == reflect.Ptr) {
+ if v.IsNil() {
+ return nil, true
+ }
+
+ v = v.Elem()
+ }
+
+ return v.Interface(), true
+}
diff --git a/vendor/github.com/spf13/cast/internal/time.go b/vendor/github.com/spf13/cast/internal/time.go
new file mode 100644
index 00000000..906e9aec
--- /dev/null
+++ b/vendor/github.com/spf13/cast/internal/time.go
@@ -0,0 +1,79 @@
+package internal
+
+import (
+ "fmt"
+ "time"
+)
+
+//go:generate stringer -type=TimeFormatType
+
+type TimeFormatType int
+
+const (
+ TimeFormatNoTimezone TimeFormatType = iota
+ TimeFormatNamedTimezone
+ TimeFormatNumericTimezone
+ TimeFormatNumericAndNamedTimezone
+ TimeFormatTimeOnly
+)
+
+type TimeFormat struct {
+ Format string
+ Typ TimeFormatType
+}
+
+func (f TimeFormat) HasTimezone() bool {
+ // We don't include the formats with only named timezones, see
+ // https://github.com/golang/go/issues/19694#issuecomment-289103522
+ return f.Typ >= TimeFormatNumericTimezone && f.Typ <= TimeFormatNumericAndNamedTimezone
+}
+
+var TimeFormats = []TimeFormat{
+ // Keep common formats at the top.
+ {"2006-01-02", TimeFormatNoTimezone},
+ {time.RFC3339, TimeFormatNumericTimezone},
+ {"2006-01-02T15:04:05", TimeFormatNoTimezone}, // iso8601 without timezone
+ {time.RFC1123Z, TimeFormatNumericTimezone},
+ {time.RFC1123, TimeFormatNamedTimezone},
+ {time.RFC822Z, TimeFormatNumericTimezone},
+ {time.RFC822, TimeFormatNamedTimezone},
+ {time.RFC850, TimeFormatNamedTimezone},
+ {"2006-01-02 15:04:05.999999999 -0700 MST", TimeFormatNumericAndNamedTimezone}, // Time.String()
+ {"2006-01-02T15:04:05-0700", TimeFormatNumericTimezone}, // RFC3339 without timezone hh:mm colon
+ {"2006-01-02 15:04:05Z0700", TimeFormatNumericTimezone}, // RFC3339 without T or timezone hh:mm colon
+ {"2006-01-02 15:04:05", TimeFormatNoTimezone},
+ {time.ANSIC, TimeFormatNoTimezone},
+ {time.UnixDate, TimeFormatNamedTimezone},
+ {time.RubyDate, TimeFormatNumericTimezone},
+ {"2006-01-02 15:04:05Z07:00", TimeFormatNumericTimezone},
+ {"02 Jan 2006", TimeFormatNoTimezone},
+ {"2006-01-02 15:04:05 -07:00", TimeFormatNumericTimezone},
+ {"2006-01-02 15:04:05 -0700", TimeFormatNumericTimezone},
+ {time.Kitchen, TimeFormatTimeOnly},
+ {time.Stamp, TimeFormatTimeOnly},
+ {time.StampMilli, TimeFormatTimeOnly},
+ {time.StampMicro, TimeFormatTimeOnly},
+ {time.StampNano, TimeFormatTimeOnly},
+}
+
+func ParseDateWith(s string, location *time.Location, formats []TimeFormat) (d time.Time, e error) {
+ for _, format := range formats {
+ if d, e = time.Parse(format.Format, s); e == nil {
+
+ // Some time formats have a zone name, but no offset, so it gets
+ // put in that zone name (not the default one passed in to us), but
+ // without that zone's offset. So set the location manually.
+ if format.Typ <= TimeFormatNamedTimezone {
+ if location == nil {
+ location = time.Local
+ }
+ year, month, day := d.Date()
+ hour, min, sec := d.Clock()
+ d = time.Date(year, month, day, hour, min, sec, d.Nanosecond(), location)
+ }
+
+ return
+ }
+ }
+ return d, fmt.Errorf("unable to parse date: %s", s)
+}
diff --git a/vendor/github.com/spf13/cast/internal/timeformattype_string.go b/vendor/github.com/spf13/cast/internal/timeformattype_string.go
new file mode 100644
index 00000000..60a29a86
--- /dev/null
+++ b/vendor/github.com/spf13/cast/internal/timeformattype_string.go
@@ -0,0 +1,27 @@
+// Code generated by "stringer -type=TimeFormatType"; DO NOT EDIT.
+
+package internal
+
+import "strconv"
+
+func _() {
+ // An "invalid array index" compiler error signifies that the constant values have changed.
+ // Re-run the stringer command to generate them again.
+ var x [1]struct{}
+ _ = x[TimeFormatNoTimezone-0]
+ _ = x[TimeFormatNamedTimezone-1]
+ _ = x[TimeFormatNumericTimezone-2]
+ _ = x[TimeFormatNumericAndNamedTimezone-3]
+ _ = x[TimeFormatTimeOnly-4]
+}
+
+const _TimeFormatType_name = "TimeFormatNoTimezoneTimeFormatNamedTimezoneTimeFormatNumericTimezoneTimeFormatNumericAndNamedTimezoneTimeFormatTimeOnly"
+
+var _TimeFormatType_index = [...]uint8{0, 20, 43, 68, 101, 119}
+
+func (i TimeFormatType) String() string {
+ if i < 0 || i >= TimeFormatType(len(_TimeFormatType_index)-1) {
+ return "TimeFormatType(" + strconv.FormatInt(int64(i), 10) + ")"
+ }
+ return _TimeFormatType_name[_TimeFormatType_index[i]:_TimeFormatType_index[i+1]]
+}
diff --git a/vendor/github.com/spf13/cast/map.go b/vendor/github.com/spf13/cast/map.go
new file mode 100644
index 00000000..858d4ee4
--- /dev/null
+++ b/vendor/github.com/spf13/cast/map.go
@@ -0,0 +1,212 @@
+// Copyright © 2014 Steve Francia .
+//
+// Use of this source code is governed by an MIT-style
+// license that can be found in the LICENSE file.
+
+package cast
+
+import (
+ "encoding/json"
+ "fmt"
+ "reflect"
+)
+
+func toMapE[K comparable, V any](i any, keyFn func(any) K, valFn func(any) V) (map[K]V, error) {
+ m := map[K]V{}
+
+ if i == nil {
+ return m, fmt.Errorf(errorMsg, i, i, m)
+ }
+
+ switch v := i.(type) {
+ case map[K]V:
+ return v, nil
+
+ case map[K]any:
+ for k, val := range v {
+ m[k] = valFn(val)
+ }
+
+ return m, nil
+
+ case map[any]V:
+ for k, val := range v {
+ m[keyFn(k)] = val
+ }
+
+ return m, nil
+
+ case map[any]any:
+ for k, val := range v {
+ m[keyFn(k)] = valFn(val)
+ }
+
+ return m, nil
+
+ case string:
+ err := jsonStringToObject(v, &m)
+ return m, err
+
+ default:
+ return m, fmt.Errorf(errorMsg, i, i, m)
+ }
+}
+
+func toStringMapE[T any](i any, fn func(any) T) (map[string]T, error) {
+ return toMapE(i, ToString, fn)
+}
+
+// ToStringMapStringE casts any value to a map[string]string type.
+func ToStringMapStringE(i any) (map[string]string, error) {
+ return toStringMapE(i, ToString)
+}
+
+// ToStringMapStringSliceE casts any value to a map[string][]string type.
+func ToStringMapStringSliceE(i any) (map[string][]string, error) {
+ m := map[string][]string{}
+
+ switch v := i.(type) {
+ case map[string][]string:
+ return v, nil
+ case map[string][]any:
+ for k, val := range v {
+ m[ToString(k)] = ToStringSlice(val)
+ }
+ return m, nil
+ case map[string]string:
+ for k, val := range v {
+ m[ToString(k)] = []string{val}
+ }
+ case map[string]any:
+ for k, val := range v {
+ switch vt := val.(type) {
+ case []any:
+ m[ToString(k)] = ToStringSlice(vt)
+ case []string:
+ m[ToString(k)] = vt
+ default:
+ m[ToString(k)] = []string{ToString(val)}
+ }
+ }
+ return m, nil
+ case map[any][]string:
+ for k, val := range v {
+ m[ToString(k)] = ToStringSlice(val)
+ }
+ return m, nil
+ case map[any]string:
+ for k, val := range v {
+ m[ToString(k)] = ToStringSlice(val)
+ }
+ return m, nil
+ case map[any][]any:
+ for k, val := range v {
+ m[ToString(k)] = ToStringSlice(val)
+ }
+ return m, nil
+ case map[any]any:
+ for k, val := range v {
+ key, err := ToStringE(k)
+ if err != nil {
+ return m, fmt.Errorf(errorMsg, i, i, m)
+ }
+ value, err := ToStringSliceE(val)
+ if err != nil {
+ return m, fmt.Errorf(errorMsg, i, i, m)
+ }
+ m[key] = value
+ }
+ case string:
+ err := jsonStringToObject(v, &m)
+ return m, err
+ default:
+ return m, fmt.Errorf(errorMsg, i, i, m)
+ }
+
+ return m, nil
+}
+
+// ToStringMapBoolE casts any value to a map[string]bool type.
+func ToStringMapBoolE(i any) (map[string]bool, error) {
+ return toStringMapE(i, ToBool)
+}
+
+// ToStringMapE casts any value to a map[string]any type.
+func ToStringMapE(i any) (map[string]any, error) {
+ fn := func(i any) any { return i }
+
+ return toStringMapE(i, fn)
+}
+
+func toStringMapIntE[T int | int64](i any, fn func(any) T, fnE func(any) (T, error)) (map[string]T, error) {
+ m := map[string]T{}
+
+ if i == nil {
+ return nil, fmt.Errorf(errorMsg, i, i, m)
+ }
+
+ switch v := i.(type) {
+ case map[string]T:
+ return v, nil
+
+ case map[string]any:
+ for k, val := range v {
+ m[k] = fn(val)
+ }
+
+ return m, nil
+
+ case map[any]T:
+ for k, val := range v {
+ m[ToString(k)] = val
+ }
+
+ return m, nil
+
+ case map[any]any:
+ for k, val := range v {
+ m[ToString(k)] = fn(val)
+ }
+
+ return m, nil
+
+ case string:
+ err := jsonStringToObject(v, &m)
+ return m, err
+ }
+
+ if reflect.TypeOf(i).Kind() != reflect.Map {
+ return m, fmt.Errorf(errorMsg, i, i, m)
+ }
+
+ mVal := reflect.ValueOf(m)
+ v := reflect.ValueOf(i)
+
+ for _, keyVal := range v.MapKeys() {
+ val, err := fnE(v.MapIndex(keyVal).Interface())
+ if err != nil {
+ return m, fmt.Errorf(errorMsg, i, i, m)
+ }
+
+ mVal.SetMapIndex(keyVal, reflect.ValueOf(val))
+ }
+
+ return m, nil
+}
+
+// ToStringMapIntE casts any value to a map[string]int type.
+func ToStringMapIntE(i any) (map[string]int, error) {
+ return toStringMapIntE(i, ToInt, ToIntE)
+}
+
+// ToStringMapInt64E casts any value to a map[string]int64 type.
+func ToStringMapInt64E(i any) (map[string]int64, error) {
+ return toStringMapIntE(i, ToInt64, ToInt64E)
+}
+
+// jsonStringToObject attempts to unmarshall a string as JSON into
+// the object passed as pointer.
+func jsonStringToObject(s string, v any) error {
+ data := []byte(s)
+ return json.Unmarshal(data, v)
+}
diff --git a/vendor/github.com/spf13/cast/number.go b/vendor/github.com/spf13/cast/number.go
new file mode 100644
index 00000000..a58dc4d1
--- /dev/null
+++ b/vendor/github.com/spf13/cast/number.go
@@ -0,0 +1,549 @@
+// Copyright © 2014 Steve Francia .
+//
+// Use of this source code is governed by an MIT-style
+// license that can be found in the LICENSE file.
+
+package cast
+
+import (
+ "encoding/json"
+ "errors"
+ "fmt"
+ "regexp"
+ "strconv"
+ "strings"
+ "time"
+)
+
+var errNegativeNotAllowed = errors.New("unable to cast negative value")
+
+type float64EProvider interface {
+ Float64() (float64, error)
+}
+
+type float64Provider interface {
+ Float64() float64
+}
+
+// Number is a type parameter constraint for functions accepting number types.
+//
+// It represents the supported number types this package can cast to.
+type Number interface {
+ int | int8 | int16 | int32 | int64 | uint | uint8 | uint16 | uint32 | uint64 | float32 | float64
+}
+
+type integer interface {
+ int | int8 | int16 | int32 | int64
+}
+
+type unsigned interface {
+ uint | uint8 | uint16 | uint32 | uint64
+}
+
+type float interface {
+ float32 | float64
+}
+
+// ToNumberE casts any value to a [Number] type.
+func ToNumberE[T Number](i any) (T, error) {
+ var t T
+
+ switch any(t).(type) {
+ case int:
+ return toNumberE[T](i, parseNumber[T])
+ case int8:
+ return toNumberE[T](i, parseNumber[T])
+ case int16:
+ return toNumberE[T](i, parseNumber[T])
+ case int32:
+ return toNumberE[T](i, parseNumber[T])
+ case int64:
+ return toNumberE[T](i, parseNumber[T])
+ case uint:
+ return toUnsignedNumberE[T](i, parseNumber[T])
+ case uint8:
+ return toUnsignedNumberE[T](i, parseNumber[T])
+ case uint16:
+ return toUnsignedNumberE[T](i, parseNumber[T])
+ case uint32:
+ return toUnsignedNumberE[T](i, parseNumber[T])
+ case uint64:
+ return toUnsignedNumberE[T](i, parseNumber[T])
+ case float32:
+ return toNumberE[T](i, parseNumber[T])
+ case float64:
+ return toNumberE[T](i, parseNumber[T])
+ default:
+ return 0, fmt.Errorf("unknown number type: %T", t)
+ }
+}
+
+// ToNumber casts any value to a [Number] type.
+func ToNumber[T Number](i any) T {
+ v, _ := ToNumberE[T](i)
+
+ return v
+}
+
+// toNumber's semantics differ from other "to" functions.
+// It returns false as the second parameter if the conversion fails.
+// This is to signal other callers that they should proceed with their own conversions.
+func toNumber[T Number](i any) (T, bool) {
+ i, _ = indirect(i)
+
+ switch s := i.(type) {
+ case T:
+ return s, true
+ case int:
+ return T(s), true
+ case int8:
+ return T(s), true
+ case int16:
+ return T(s), true
+ case int32:
+ return T(s), true
+ case int64:
+ return T(s), true
+ case uint:
+ return T(s), true
+ case uint8:
+ return T(s), true
+ case uint16:
+ return T(s), true
+ case uint32:
+ return T(s), true
+ case uint64:
+ return T(s), true
+ case float32:
+ return T(s), true
+ case float64:
+ return T(s), true
+ case bool:
+ if s {
+ return 1, true
+ }
+
+ return 0, true
+ case nil:
+ return 0, true
+ case time.Weekday:
+ return T(s), true
+ case time.Month:
+ return T(s), true
+ }
+
+ return 0, false
+}
+
+func toNumberE[T Number](i any, parseFn func(string) (T, error)) (T, error) {
+ n, ok := toNumber[T](i)
+ if ok {
+ return n, nil
+ }
+
+ i, _ = indirect(i)
+
+ switch s := i.(type) {
+ case string:
+ if s == "" {
+ return 0, nil
+ }
+
+ v, err := parseFn(s)
+ if err != nil {
+ return 0, fmt.Errorf(errorMsgWith, i, i, n, err)
+ }
+
+ return v, nil
+ case json.Number:
+ if s == "" {
+ return 0, nil
+ }
+
+ v, err := parseFn(string(s))
+ if err != nil {
+ return 0, fmt.Errorf(errorMsgWith, i, i, n, err)
+ }
+
+ return v, nil
+ case float64EProvider:
+ if _, ok := any(n).(float64); !ok {
+ return 0, fmt.Errorf(errorMsg, i, i, n)
+ }
+
+ v, err := s.Float64()
+ if err != nil {
+ return 0, fmt.Errorf(errorMsg, i, i, n)
+ }
+
+ return T(v), nil
+ case float64Provider:
+ if _, ok := any(n).(float64); !ok {
+ return 0, fmt.Errorf(errorMsg, i, i, n)
+ }
+
+ return T(s.Float64()), nil
+ default:
+ if i, ok := resolveAlias(i); ok {
+ return toNumberE(i, parseFn)
+ }
+
+ return 0, fmt.Errorf(errorMsg, i, i, n)
+ }
+}
+
+func toUnsignedNumber[T Number](i any) (T, bool, bool) {
+ i, _ = indirect(i)
+
+ switch s := i.(type) {
+ case T:
+ return s, true, true
+ case int:
+ if s < 0 {
+ return 0, false, false
+ }
+
+ return T(s), true, true
+ case int8:
+ if s < 0 {
+ return 0, false, false
+ }
+
+ return T(s), true, true
+ case int16:
+ if s < 0 {
+ return 0, false, false
+ }
+
+ return T(s), true, true
+ case int32:
+ if s < 0 {
+ return 0, false, false
+ }
+
+ return T(s), true, true
+ case int64:
+ if s < 0 {
+ return 0, false, false
+ }
+
+ return T(s), true, true
+ case uint:
+ return T(s), true, true
+ case uint8:
+ return T(s), true, true
+ case uint16:
+ return T(s), true, true
+ case uint32:
+ return T(s), true, true
+ case uint64:
+ return T(s), true, true
+ case float32:
+ if s < 0 {
+ return 0, false, false
+ }
+
+ return T(s), true, true
+ case float64:
+ if s < 0 {
+ return 0, false, false
+ }
+
+ return T(s), true, true
+ case bool:
+ if s {
+ return 1, true, true
+ }
+
+ return 0, true, true
+ case nil:
+ return 0, true, true
+ case time.Weekday:
+ if s < 0 {
+ return 0, false, false
+ }
+
+ return T(s), true, true
+ case time.Month:
+ if s < 0 {
+ return 0, false, false
+ }
+
+ return T(s), true, true
+ }
+
+ return 0, true, false
+}
+
+func toUnsignedNumberE[T Number](i any, parseFn func(string) (T, error)) (T, error) {
+ n, valid, ok := toUnsignedNumber[T](i)
+ if ok {
+ return n, nil
+ }
+
+ i, _ = indirect(i)
+
+ if !valid {
+ return 0, errNegativeNotAllowed
+ }
+
+ switch s := i.(type) {
+ case string:
+ if s == "" {
+ return 0, nil
+ }
+
+ v, err := parseFn(s)
+ if err != nil {
+ return 0, fmt.Errorf(errorMsgWith, i, i, n, err)
+ }
+
+ return v, nil
+ case json.Number:
+ if s == "" {
+ return 0, nil
+ }
+
+ v, err := parseFn(string(s))
+ if err != nil {
+ return 0, fmt.Errorf(errorMsgWith, i, i, n, err)
+ }
+
+ return v, nil
+ case float64EProvider:
+ if _, ok := any(n).(float64); !ok {
+ return 0, fmt.Errorf(errorMsg, i, i, n)
+ }
+
+ v, err := s.Float64()
+ if err != nil {
+ return 0, fmt.Errorf(errorMsg, i, i, n)
+ }
+
+ if v < 0 {
+ return 0, errNegativeNotAllowed
+ }
+
+ return T(v), nil
+ case float64Provider:
+ if _, ok := any(n).(float64); !ok {
+ return 0, fmt.Errorf(errorMsg, i, i, n)
+ }
+
+ v := s.Float64()
+
+ if v < 0 {
+ return 0, errNegativeNotAllowed
+ }
+
+ return T(v), nil
+ default:
+ if i, ok := resolveAlias(i); ok {
+ return toUnsignedNumberE(i, parseFn)
+ }
+
+ return 0, fmt.Errorf(errorMsg, i, i, n)
+ }
+}
+
+func parseNumber[T Number](s string) (T, error) {
+ var t T
+
+ switch any(t).(type) {
+ case int:
+ v, err := parseInt[int](s)
+
+ return T(v), err
+ case int8:
+ v, err := parseInt[int8](s)
+
+ return T(v), err
+ case int16:
+ v, err := parseInt[int16](s)
+
+ return T(v), err
+ case int32:
+ v, err := parseInt[int32](s)
+
+ return T(v), err
+ case int64:
+ v, err := parseInt[int64](s)
+
+ return T(v), err
+ case uint:
+ v, err := parseUint[uint](s)
+
+ return T(v), err
+ case uint8:
+ v, err := parseUint[uint8](s)
+
+ return T(v), err
+ case uint16:
+ v, err := parseUint[uint16](s)
+
+ return T(v), err
+ case uint32:
+ v, err := parseUint[uint32](s)
+
+ return T(v), err
+ case uint64:
+ v, err := parseUint[uint64](s)
+
+ return T(v), err
+ case float32:
+ v, err := strconv.ParseFloat(s, 32)
+
+ return T(v), err
+ case float64:
+ v, err := strconv.ParseFloat(s, 64)
+
+ return T(v), err
+
+ default:
+ return 0, fmt.Errorf("unknown number type: %T", t)
+ }
+}
+
+func parseInt[T integer](s string) (T, error) {
+ v, err := strconv.ParseInt(trimDecimal(s), 0, 0)
+ if err != nil {
+ return 0, err
+ }
+
+ return T(v), nil
+}
+
+func parseUint[T unsigned](s string) (T, error) {
+ v, err := strconv.ParseUint(strings.TrimLeft(trimDecimal(s), "+"), 0, 0)
+ if err != nil {
+ return 0, err
+ }
+
+ return T(v), nil
+}
+
+func parseFloat[T float](s string) (T, error) {
+ var t T
+
+ var v any
+ var err error
+
+ switch any(t).(type) {
+ case float32:
+ n, e := strconv.ParseFloat(s, 32)
+
+ v = float32(n)
+ err = e
+ case float64:
+ n, e := strconv.ParseFloat(s, 64)
+
+ v = float64(n)
+ err = e
+ }
+
+ return v.(T), err
+}
+
+// ToFloat64E casts an interface to a float64 type.
+func ToFloat64E(i any) (float64, error) {
+ return toNumberE[float64](i, parseFloat[float64])
+}
+
+// ToFloat32E casts an interface to a float32 type.
+func ToFloat32E(i any) (float32, error) {
+ return toNumberE[float32](i, parseFloat[float32])
+}
+
+// ToInt64E casts an interface to an int64 type.
+func ToInt64E(i any) (int64, error) {
+ return toNumberE[int64](i, parseInt[int64])
+}
+
+// ToInt32E casts an interface to an int32 type.
+func ToInt32E(i any) (int32, error) {
+ return toNumberE[int32](i, parseInt[int32])
+}
+
+// ToInt16E casts an interface to an int16 type.
+func ToInt16E(i any) (int16, error) {
+ return toNumberE[int16](i, parseInt[int16])
+}
+
+// ToInt8E casts an interface to an int8 type.
+func ToInt8E(i any) (int8, error) {
+ return toNumberE[int8](i, parseInt[int8])
+}
+
+// ToIntE casts an interface to an int type.
+func ToIntE(i any) (int, error) {
+ return toNumberE[int](i, parseInt[int])
+}
+
+// ToUintE casts an interface to a uint type.
+func ToUintE(i any) (uint, error) {
+ return toUnsignedNumberE[uint](i, parseUint[uint])
+}
+
+// ToUint64E casts an interface to a uint64 type.
+func ToUint64E(i any) (uint64, error) {
+ return toUnsignedNumberE[uint64](i, parseUint[uint64])
+}
+
+// ToUint32E casts an interface to a uint32 type.
+func ToUint32E(i any) (uint32, error) {
+ return toUnsignedNumberE[uint32](i, parseUint[uint32])
+}
+
+// ToUint16E casts an interface to a uint16 type.
+func ToUint16E(i any) (uint16, error) {
+ return toUnsignedNumberE[uint16](i, parseUint[uint16])
+}
+
+// ToUint8E casts an interface to a uint type.
+func ToUint8E(i any) (uint8, error) {
+ return toUnsignedNumberE[uint8](i, parseUint[uint8])
+}
+
+func trimZeroDecimal(s string) string {
+ var foundZero bool
+ for i := len(s); i > 0; i-- {
+ switch s[i-1] {
+ case '.':
+ if foundZero {
+ return s[:i-1]
+ }
+ case '0':
+ foundZero = true
+ default:
+ return s
+ }
+ }
+ return s
+}
+
+var stringNumberRe = regexp.MustCompile(`^([-+]?\d*)(\.\d*)?$`)
+
+// see [BenchmarkDecimal] for details about the implementation
+func trimDecimal(s string) string {
+ if !strings.Contains(s, ".") {
+ return s
+ }
+
+ matches := stringNumberRe.FindStringSubmatch(s)
+ if matches != nil {
+ // matches[1] is the captured integer part with sign
+ s = matches[1]
+
+ // handle special cases
+ switch s {
+ case "-", "+":
+ s += "0"
+ case "":
+ s = "0"
+ }
+
+ return s
+ }
+
+ return s
+}
diff --git a/vendor/github.com/spf13/cast/slice.go b/vendor/github.com/spf13/cast/slice.go
new file mode 100644
index 00000000..e6a8328c
--- /dev/null
+++ b/vendor/github.com/spf13/cast/slice.go
@@ -0,0 +1,106 @@
+// Copyright © 2014 Steve Francia .
+//
+// Use of this source code is governed by an MIT-style
+// license that can be found in the LICENSE file.
+
+package cast
+
+import (
+ "fmt"
+ "reflect"
+ "strings"
+)
+
+// ToSliceE casts any value to a []any type.
+func ToSliceE(i any) ([]any, error) {
+ i, _ = indirect(i)
+
+ var s []any
+
+ switch v := i.(type) {
+ case []any:
+ // TODO: use slices.Clone
+ return append(s, v...), nil
+ case []map[string]any:
+ for _, u := range v {
+ s = append(s, u)
+ }
+
+ return s, nil
+ default:
+ return s, fmt.Errorf(errorMsg, i, i, s)
+ }
+}
+
+func toSliceE[T Basic](i any) ([]T, error) {
+ v, ok, err := toSliceEOk[T](i)
+ if err != nil {
+ return nil, err
+ }
+
+ if !ok {
+ return nil, fmt.Errorf(errorMsg, i, i, []T{})
+ }
+
+ return v, nil
+}
+
+func toSliceEOk[T Basic](i any) ([]T, bool, error) {
+ i, _ = indirect(i)
+ if i == nil {
+ return nil, true, fmt.Errorf(errorMsg, i, i, []T{})
+ }
+
+ switch v := i.(type) {
+ case []T:
+ // TODO: clone slice
+ return v, true, nil
+ }
+
+ kind := reflect.TypeOf(i).Kind()
+ switch kind {
+ case reflect.Slice, reflect.Array:
+ s := reflect.ValueOf(i)
+ a := make([]T, s.Len())
+
+ for j := 0; j < s.Len(); j++ {
+ val, err := ToE[T](s.Index(j).Interface())
+ if err != nil {
+ return nil, true, fmt.Errorf(errorMsg, i, i, []T{})
+ }
+
+ a[j] = val
+ }
+
+ return a, true, nil
+ default:
+ return nil, false, nil
+ }
+}
+
+// ToStringSliceE casts any value to a []string type.
+func ToStringSliceE(i any) ([]string, error) {
+ if a, ok, err := toSliceEOk[string](i); ok {
+ if err != nil {
+ return nil, err
+ }
+
+ return a, nil
+ }
+
+ var a []string
+
+ switch v := i.(type) {
+ case string:
+ return strings.Fields(v), nil
+ case any:
+ str, err := ToStringE(v)
+ if err != nil {
+ return nil, fmt.Errorf(errorMsg, i, i, a)
+ }
+
+ return []string{str}, nil
+ default:
+ return nil, fmt.Errorf(errorMsg, i, i, a)
+ }
+}
diff --git a/vendor/github.com/spf13/cast/time.go b/vendor/github.com/spf13/cast/time.go
new file mode 100644
index 00000000..744cd5ac
--- /dev/null
+++ b/vendor/github.com/spf13/cast/time.go
@@ -0,0 +1,116 @@
+// Copyright © 2014 Steve Francia .
+//
+// Use of this source code is governed by an MIT-style
+// license that can be found in the LICENSE file.
+
+package cast
+
+import (
+ "encoding/json"
+ "errors"
+ "fmt"
+ "strings"
+ "time"
+
+ "github.com/spf13/cast/internal"
+)
+
+// ToTimeE any value to a [time.Time] type.
+func ToTimeE(i any) (time.Time, error) {
+ return ToTimeInDefaultLocationE(i, time.UTC)
+}
+
+// ToTimeInDefaultLocationE casts an empty interface to [time.Time],
+// interpreting inputs without a timezone to be in the given location,
+// or the local timezone if nil.
+func ToTimeInDefaultLocationE(i any, location *time.Location) (tim time.Time, err error) {
+ i, _ = indirect(i)
+
+ switch v := i.(type) {
+ case time.Time:
+ return v, nil
+ case string:
+ return StringToDateInDefaultLocation(v, location)
+ case json.Number:
+ // Originally this used ToInt64E, but adding string float conversion broke ToTime.
+ // the behavior of ToTime would have changed if we continued using it.
+ // For now, using json.Number's own Int64 method should be good enough to preserve backwards compatibility.
+ v = json.Number(trimZeroDecimal(string(v)))
+ s, err1 := v.Int64()
+ if err1 != nil {
+ return time.Time{}, fmt.Errorf(errorMsg, i, i, time.Time{})
+ }
+ return time.Unix(s, 0), nil
+ case int:
+ return time.Unix(int64(v), 0), nil
+ case int32:
+ return time.Unix(int64(v), 0), nil
+ case int64:
+ return time.Unix(v, 0), nil
+ case uint:
+ return time.Unix(int64(v), 0), nil
+ case uint32:
+ return time.Unix(int64(v), 0), nil
+ case uint64:
+ return time.Unix(int64(v), 0), nil
+ case nil:
+ return time.Time{}, nil
+ default:
+ return time.Time{}, fmt.Errorf(errorMsg, i, i, time.Time{})
+ }
+}
+
+// ToDurationE casts any value to a [time.Duration] type.
+func ToDurationE(i any) (time.Duration, error) {
+ i, _ = indirect(i)
+
+ switch s := i.(type) {
+ case time.Duration:
+ return s, nil
+ case int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64:
+ v, err := ToInt64E(s)
+ if err != nil {
+ // TODO: once there is better error handling, this should be easier
+ return 0, errors.New(strings.ReplaceAll(err.Error(), " int64", "time.Duration"))
+ }
+
+ return time.Duration(v), nil
+ case float32, float64, float64EProvider, float64Provider:
+ v, err := ToFloat64E(s)
+ if err != nil {
+ // TODO: once there is better error handling, this should be easier
+ return 0, errors.New(strings.ReplaceAll(err.Error(), " float64", "time.Duration"))
+ }
+
+ return time.Duration(v), nil
+ case string:
+ if !strings.ContainsAny(s, "nsuµmh") {
+ return time.ParseDuration(s + "ns")
+ }
+
+ return time.ParseDuration(s)
+ case nil:
+ return time.Duration(0), nil
+ default:
+ if i, ok := resolveAlias(i); ok {
+ return ToDurationE(i)
+ }
+
+ return 0, fmt.Errorf(errorMsg, i, i, time.Duration(0))
+ }
+}
+
+// StringToDate attempts to parse a string into a [time.Time] type using a
+// predefined list of formats.
+//
+// If no suitable format is found, an error is returned.
+func StringToDate(s string) (time.Time, error) {
+ return internal.ParseDateWith(s, time.UTC, internal.TimeFormats)
+}
+
+// StringToDateInDefaultLocation casts an empty interface to a [time.Time],
+// interpreting inputs without a timezone to be in the given location,
+// or the local timezone if nil.
+func StringToDateInDefaultLocation(s string, location *time.Location) (time.Time, error) {
+ return internal.ParseDateWith(s, location, internal.TimeFormats)
+}
diff --git a/vendor/github.com/spf13/cast/timeformattype_string.go b/vendor/github.com/spf13/cast/timeformattype_string.go
deleted file mode 100644
index 1524fc82..00000000
--- a/vendor/github.com/spf13/cast/timeformattype_string.go
+++ /dev/null
@@ -1,27 +0,0 @@
-// Code generated by "stringer -type timeFormatType"; DO NOT EDIT.
-
-package cast
-
-import "strconv"
-
-func _() {
- // An "invalid array index" compiler error signifies that the constant values have changed.
- // Re-run the stringer command to generate them again.
- var x [1]struct{}
- _ = x[timeFormatNoTimezone-0]
- _ = x[timeFormatNamedTimezone-1]
- _ = x[timeFormatNumericTimezone-2]
- _ = x[timeFormatNumericAndNamedTimezone-3]
- _ = x[timeFormatTimeOnly-4]
-}
-
-const _timeFormatType_name = "timeFormatNoTimezonetimeFormatNamedTimezonetimeFormatNumericTimezonetimeFormatNumericAndNamedTimezonetimeFormatTimeOnly"
-
-var _timeFormatType_index = [...]uint8{0, 20, 43, 68, 101, 119}
-
-func (i timeFormatType) String() string {
- if i < 0 || i >= timeFormatType(len(_timeFormatType_index)-1) {
- return "timeFormatType(" + strconv.FormatInt(int64(i), 10) + ")"
- }
- return _timeFormatType_name[_timeFormatType_index[i]:_timeFormatType_index[i+1]]
-}
diff --git a/vendor/github.com/spf13/cast/zz_generated.go b/vendor/github.com/spf13/cast/zz_generated.go
new file mode 100644
index 00000000..ce3ec0f7
--- /dev/null
+++ b/vendor/github.com/spf13/cast/zz_generated.go
@@ -0,0 +1,261 @@
+// Code generated by cast generator. DO NOT EDIT.
+
+package cast
+
+import "time"
+
+// ToBool casts any value to a(n) bool type.
+func ToBool(i any) bool {
+ v, _ := ToBoolE(i)
+ return v
+}
+
+// ToString casts any value to a(n) string type.
+func ToString(i any) string {
+ v, _ := ToStringE(i)
+ return v
+}
+
+// ToTime casts any value to a(n) time.Time type.
+func ToTime(i any) time.Time {
+ v, _ := ToTimeE(i)
+ return v
+}
+
+// ToTimeInDefaultLocation casts any value to a(n) time.Time type.
+func ToTimeInDefaultLocation(i any, location *time.Location) time.Time {
+ v, _ := ToTimeInDefaultLocationE(i, location)
+ return v
+}
+
+// ToDuration casts any value to a(n) time.Duration type.
+func ToDuration(i any) time.Duration {
+ v, _ := ToDurationE(i)
+ return v
+}
+
+// ToInt casts any value to a(n) int type.
+func ToInt(i any) int {
+ v, _ := ToIntE(i)
+ return v
+}
+
+// ToInt8 casts any value to a(n) int8 type.
+func ToInt8(i any) int8 {
+ v, _ := ToInt8E(i)
+ return v
+}
+
+// ToInt16 casts any value to a(n) int16 type.
+func ToInt16(i any) int16 {
+ v, _ := ToInt16E(i)
+ return v
+}
+
+// ToInt32 casts any value to a(n) int32 type.
+func ToInt32(i any) int32 {
+ v, _ := ToInt32E(i)
+ return v
+}
+
+// ToInt64 casts any value to a(n) int64 type.
+func ToInt64(i any) int64 {
+ v, _ := ToInt64E(i)
+ return v
+}
+
+// ToUint casts any value to a(n) uint type.
+func ToUint(i any) uint {
+ v, _ := ToUintE(i)
+ return v
+}
+
+// ToUint8 casts any value to a(n) uint8 type.
+func ToUint8(i any) uint8 {
+ v, _ := ToUint8E(i)
+ return v
+}
+
+// ToUint16 casts any value to a(n) uint16 type.
+func ToUint16(i any) uint16 {
+ v, _ := ToUint16E(i)
+ return v
+}
+
+// ToUint32 casts any value to a(n) uint32 type.
+func ToUint32(i any) uint32 {
+ v, _ := ToUint32E(i)
+ return v
+}
+
+// ToUint64 casts any value to a(n) uint64 type.
+func ToUint64(i any) uint64 {
+ v, _ := ToUint64E(i)
+ return v
+}
+
+// ToFloat32 casts any value to a(n) float32 type.
+func ToFloat32(i any) float32 {
+ v, _ := ToFloat32E(i)
+ return v
+}
+
+// ToFloat64 casts any value to a(n) float64 type.
+func ToFloat64(i any) float64 {
+ v, _ := ToFloat64E(i)
+ return v
+}
+
+// ToStringMapString casts any value to a(n) map[string]string type.
+func ToStringMapString(i any) map[string]string {
+ v, _ := ToStringMapStringE(i)
+ return v
+}
+
+// ToStringMapStringSlice casts any value to a(n) map[string][]string type.
+func ToStringMapStringSlice(i any) map[string][]string {
+ v, _ := ToStringMapStringSliceE(i)
+ return v
+}
+
+// ToStringMapBool casts any value to a(n) map[string]bool type.
+func ToStringMapBool(i any) map[string]bool {
+ v, _ := ToStringMapBoolE(i)
+ return v
+}
+
+// ToStringMapInt casts any value to a(n) map[string]int type.
+func ToStringMapInt(i any) map[string]int {
+ v, _ := ToStringMapIntE(i)
+ return v
+}
+
+// ToStringMapInt64 casts any value to a(n) map[string]int64 type.
+func ToStringMapInt64(i any) map[string]int64 {
+ v, _ := ToStringMapInt64E(i)
+ return v
+}
+
+// ToStringMap casts any value to a(n) map[string]any type.
+func ToStringMap(i any) map[string]any {
+ v, _ := ToStringMapE(i)
+ return v
+}
+
+// ToSlice casts any value to a(n) []any type.
+func ToSlice(i any) []any {
+ v, _ := ToSliceE(i)
+ return v
+}
+
+// ToBoolSlice casts any value to a(n) []bool type.
+func ToBoolSlice(i any) []bool {
+ v, _ := ToBoolSliceE(i)
+ return v
+}
+
+// ToStringSlice casts any value to a(n) []string type.
+func ToStringSlice(i any) []string {
+ v, _ := ToStringSliceE(i)
+ return v
+}
+
+// ToIntSlice casts any value to a(n) []int type.
+func ToIntSlice(i any) []int {
+ v, _ := ToIntSliceE(i)
+ return v
+}
+
+// ToInt64Slice casts any value to a(n) []int64 type.
+func ToInt64Slice(i any) []int64 {
+ v, _ := ToInt64SliceE(i)
+ return v
+}
+
+// ToUintSlice casts any value to a(n) []uint type.
+func ToUintSlice(i any) []uint {
+ v, _ := ToUintSliceE(i)
+ return v
+}
+
+// ToFloat64Slice casts any value to a(n) []float64 type.
+func ToFloat64Slice(i any) []float64 {
+ v, _ := ToFloat64SliceE(i)
+ return v
+}
+
+// ToDurationSlice casts any value to a(n) []time.Duration type.
+func ToDurationSlice(i any) []time.Duration {
+ v, _ := ToDurationSliceE(i)
+ return v
+}
+
+// ToBoolSliceE casts any value to a(n) []bool type.
+func ToBoolSliceE(i any) ([]bool, error) {
+ return toSliceE[bool](i)
+}
+
+// ToDurationSliceE casts any value to a(n) []time.Duration type.
+func ToDurationSliceE(i any) ([]time.Duration, error) {
+ return toSliceE[time.Duration](i)
+}
+
+// ToIntSliceE casts any value to a(n) []int type.
+func ToIntSliceE(i any) ([]int, error) {
+ return toSliceE[int](i)
+}
+
+// ToInt8SliceE casts any value to a(n) []int8 type.
+func ToInt8SliceE(i any) ([]int8, error) {
+ return toSliceE[int8](i)
+}
+
+// ToInt16SliceE casts any value to a(n) []int16 type.
+func ToInt16SliceE(i any) ([]int16, error) {
+ return toSliceE[int16](i)
+}
+
+// ToInt32SliceE casts any value to a(n) []int32 type.
+func ToInt32SliceE(i any) ([]int32, error) {
+ return toSliceE[int32](i)
+}
+
+// ToInt64SliceE casts any value to a(n) []int64 type.
+func ToInt64SliceE(i any) ([]int64, error) {
+ return toSliceE[int64](i)
+}
+
+// ToUintSliceE casts any value to a(n) []uint type.
+func ToUintSliceE(i any) ([]uint, error) {
+ return toSliceE[uint](i)
+}
+
+// ToUint8SliceE casts any value to a(n) []uint8 type.
+func ToUint8SliceE(i any) ([]uint8, error) {
+ return toSliceE[uint8](i)
+}
+
+// ToUint16SliceE casts any value to a(n) []uint16 type.
+func ToUint16SliceE(i any) ([]uint16, error) {
+ return toSliceE[uint16](i)
+}
+
+// ToUint32SliceE casts any value to a(n) []uint32 type.
+func ToUint32SliceE(i any) ([]uint32, error) {
+ return toSliceE[uint32](i)
+}
+
+// ToUint64SliceE casts any value to a(n) []uint64 type.
+func ToUint64SliceE(i any) ([]uint64, error) {
+ return toSliceE[uint64](i)
+}
+
+// ToFloat32SliceE casts any value to a(n) []float32 type.
+func ToFloat32SliceE(i any) ([]float32, error) {
+ return toSliceE[float32](i)
+}
+
+// ToFloat64SliceE casts any value to a(n) []float64 type.
+func ToFloat64SliceE(i any) ([]float64, error) {
+ return toSliceE[float64](i)
+}
diff --git a/vendor/github.com/spf13/pflag/flag.go b/vendor/github.com/spf13/pflag/flag.go
index eeed1e92..2fd3c575 100644
--- a/vendor/github.com/spf13/pflag/flag.go
+++ b/vendor/github.com/spf13/pflag/flag.go
@@ -143,8 +143,9 @@ type ParseErrorsAllowlist struct {
UnknownFlags bool
}
-// DEPRECATED: please use ParseErrorsAllowlist instead
-// This type will be removed in a future release
+// ParseErrorsWhitelist defines the parsing errors that can be ignored.
+//
+// Deprecated: use [ParseErrorsAllowlist] instead. This type will be removed in a future release.
type ParseErrorsWhitelist = ParseErrorsAllowlist
// NormalizedName is a flag name that has been normalized according to rules
@@ -165,8 +166,9 @@ type FlagSet struct {
// ParseErrorsAllowlist is used to configure an allowlist of errors
ParseErrorsAllowlist ParseErrorsAllowlist
- // DEPRECATED: please use ParseErrorsAllowlist instead
- // This field will be removed in a future release
+ // ParseErrorsAllowlist is used to configure an allowlist of errors.
+ //
+ // Deprecated: use [FlagSet.ParseErrorsAllowlist] instead. This field will be removed in a future release.
ParseErrorsWhitelist ParseErrorsAllowlist
name string
@@ -1185,7 +1187,7 @@ func (f *FlagSet) Parse(arguments []string) error {
case ContinueOnError:
return err
case ExitOnError:
- if errors.Is(err, ErrHelp) {
+ if err == ErrHelp {
os.Exit(0)
}
fmt.Fprintln(f.Output(), err)
@@ -1214,7 +1216,7 @@ func (f *FlagSet) ParseAll(arguments []string, fn func(flag *Flag, value string)
case ContinueOnError:
return err
case ExitOnError:
- if errors.Is(err, ErrHelp) {
+ if err == ErrHelp {
os.Exit(0)
}
fmt.Fprintln(f.Output(), err)
diff --git a/vendor/go.bytebuilders.dev/catalog/LICENSE b/vendor/go.bytebuilders.dev/catalog/LICENSE
new file mode 100644
index 00000000..8dada3ed
--- /dev/null
+++ b/vendor/go.bytebuilders.dev/catalog/LICENSE
@@ -0,0 +1,201 @@
+ 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/go.bytebuilders.dev/catalog/api/gateway/v1alpha1/gatewayconfig_types.go b/vendor/go.bytebuilders.dev/catalog/api/gateway/v1alpha1/gatewayconfig_types.go
new file mode 100644
index 00000000..f5d462aa
--- /dev/null
+++ b/vendor/go.bytebuilders.dev/catalog/api/gateway/v1alpha1/gatewayconfig_types.go
@@ -0,0 +1,311 @@
+/*
+Copyright AppsCode Inc. and Contributors
+
+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.
+*/
+
+package v1alpha1
+
+import (
+ egv1a1 "github.com/envoyproxy/gateway/api/v1alpha1"
+ core "k8s.io/api/core/v1"
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ kmapi "kmodules.xyz/client-go/api/v1"
+ "kmodules.xyz/resource-metadata/apis/shared"
+ uiapi "kmodules.xyz/resource-metadata/apis/ui/v1alpha1"
+ dnsapi "kubeops.dev/external-dns-operator/apis/external/v1alpha1"
+ voyagerinstaller "voyagermesh.dev/installer/apis/installer/v1alpha1"
+)
+
+// GatewayConfigSpec defines the desired state of GatewayConfig.
+type GatewayConfigSpec struct {
+ GatewaySpec `json:",inline"`
+ Envoy EnvoySpec `json:"envoy"`
+ Global GlobalValues `json:"global"`
+ // Chart specifies the chart information that will be used by the FluxCD to install the respective feature
+ // +optional
+ Chart uiapi.ChartInfo `json:"chart,omitempty"`
+}
+
+type GatewaySpec struct {
+ Infra ServiceProviderInfra `json:"infra"`
+ Gateway voyagerinstaller.VoyagerGatewaySpec `json:"gateway"`
+ GatewayDns ServiceGatewayDns `json:"gateway-dns"`
+ Cluster ServiceProviderCluster `json:"cluster"`
+ Echoserver EchoserverSpec `json:"echoserver"`
+ // +optional
+ VaultServer kmapi.ObjectReference `json:"vaultServer"`
+}
+
+type GatewayValues struct {
+ GatewaySpec `json:",inline"`
+ Envoy EnvoyValues `json:"envoy"`
+ Global GlobalValues `json:"global"`
+}
+
+type GlobalValues struct {
+ // +optional
+ Distro shared.DistroSpec `json:"distro"`
+}
+type GatewayParameter struct {
+ GatewayClassName string `json:"-"`
+ ServiceType egv1a1.ServiceType `json:"-"`
+ Service EnvoyServiceSpec `json:"service"`
+ VaultServer kmapi.ObjectReference `json:"vaultServer"`
+ FrontendTLSSecretRef kmapi.ObjectReference `json:"frontendTLSSecretRef"`
+}
+
+type ServiceProviderInfra struct {
+ HostInfo `json:",inline"`
+ TLS InfraTLS `json:"tls"`
+ DNS GatewayDns `json:"dns"`
+ TenantSpreadPolicy TenantSpreadPolicy `json:"tenantSpreadPolicy"`
+}
+
+// +kubebuilder:validation:Enum=single;multi
+type TenantSpreadPolicy string
+
+const (
+ TenantSpreadPolicySingle TenantSpreadPolicy = "single"
+ TenantSpreadPolicyMulti TenantSpreadPolicy = "multi"
+)
+
+// +kubebuilder:validation:Enum=ca;letsencrypt;letsencrypt-staging;external
+type TLSIssuerType string
+
+const (
+ TLSIssuerTypeCA TLSIssuerType = "ca"
+ TLSIssuerTypeLE TLSIssuerType = "letsencrypt"
+ TLSIssuerTypeLEStaging TLSIssuerType = "letsencrypt-staging"
+ TLSIssuerTypeExternal TLSIssuerType = "external"
+)
+
+type InfraTLS struct {
+ Issuer TLSIssuerType `json:"issuer"`
+ CA *TLSData `json:"ca,omitempty"`
+ Acme *TLSIssuerAcme `json:"acme,omitempty"`
+ Certificate *TLSData `json:"certificate,omitempty"`
+ JKS *Keystore `json:"jks,omitempty"`
+}
+
+type TLSData struct {
+ // +optional
+ Cert string `json:"cert"`
+ // +optional
+ Key string `json:"key"`
+}
+
+type Keystore struct {
+ // +optional
+ Truststore []byte `json:"truststore"`
+ // +optional
+ Keystore []byte `json:"keystore"`
+ Password string `json:"password"`
+}
+
+type TLSIssuerAcme struct {
+ Email string `json:"email"`
+ Solver AcmeSolver `json:"solver"`
+ GatewayName string `json:"gatewayName"`
+}
+
+// +kubebuilder:validation:Enum=Gateway;Ingress
+type AcmeSolver string
+
+const (
+ AcmeSolverGateway = "Gateway"
+ AcmeSolverIngress = "Ingress"
+)
+
+type HostInfo struct {
+ Host string `json:"host"`
+ HostType HostType `json:"hostType"`
+}
+
+// +kubebuilder:validation:Enum=domain;ip
+// +kubebuilder:default=ip
+type HostType string
+
+const (
+ HostTypeDomain HostType = "domain"
+ HostTypeIP HostType = "ip"
+)
+
+type GatewayDns struct {
+ Provider DNSProvider `json:"provider"`
+ Auth DNSProviderAuth `json:"auth"`
+}
+
+// +kubebuilder:validation:Enum=none;external;cloudflare;route53;cloudDNS;azureDNS
+type DNSProvider string
+
+const (
+ DNSProviderNone DNSProvider = "none"
+ DNSProviderExternal DNSProvider = "external"
+ DNSProviderCloudflare DNSProvider = "cloudflare"
+ DNSProviderRoute53 DNSProvider = "route53"
+ DNSProviderCloudDNS DNSProvider = "cloudDNS"
+ DNSProviderAzureDNS DNSProvider = "azureDNS"
+)
+
+type DNSProviderAuth struct {
+ // WARNING!!! Update docs in schema/ace-options/patch.yaml
+ Cloudflare *CloudflareAuth `json:"cloudflare,omitempty"`
+
+ // WARNING!!! Update docs in schema/ace-options/patch.yaml
+ Route53 *Route53Auth `json:"route53,omitempty"`
+
+ // WARNING!!! Update docs in schema/ace-options/patch.yaml
+ CloudDNS *CloudDNSAuth `json:"cloudDNS,omitempty"`
+
+ // WARNING!!! Update docs in schema/ace-options/patch.yaml
+ AzureDNS *AzureDNSAuth `json:"azureDNS,omitempty"`
+}
+
+type CloudflareAuth struct {
+ // +optional
+ BaseURL string `json:"baseURL,omitempty"`
+ Token string `json:"token"`
+}
+
+type Route53Auth struct {
+ AwsAccessKeyID string `json:"AWS_ACCESS_KEY_ID"`
+ AwsSecretAccessKey string `json:"AWS_SECRET_ACCESS_KEY"`
+ AwsRegion string `json:"AWS_REGION"`
+}
+
+type CloudDNSAuth struct {
+ GoogleProjectID string `json:"GOOGLE_PROJECT_ID"`
+ GoogleServiceAccountJSONKey string `json:"GOOGLE_SERVICE_ACCOUNT_JSON_KEY"`
+}
+
+type AzureDNSAuth struct {
+ SubscriptionID string `json:"subscriptionID"`
+ TenantID string `json:"tenantID"`
+ ResourceGroupName string `json:"resourceGroupName"`
+ HostedZoneName string `json:"hostedZoneName"`
+ ServicePrincipalAppID string `json:"servicePrincipalAppID"`
+ ServicePrincipalAppPassword string `json:"servicePrincipalAppPassword"`
+ // +optional
+ Environment string `json:"environment,omitempty"`
+}
+
+type ServiceGatewayDns struct {
+ Enabled bool `json:"enabled"`
+ Spec *dnsapi.ExternalDNSSpec `json:"spec,omitempty"`
+}
+
+type ServiceProviderCluster struct {
+ TLS ClusterTLS `json:"tls"`
+}
+
+type ClusterTLS struct {
+ Issuer ClusterTLSIssuerType `json:"issuer"`
+ CA TLSData `json:"ca"`
+}
+
+type EnvoySpec struct {
+ ProvisionerType ProvisionerType `json:"provisionerType"`
+ Image string `json:"image"`
+ Tag string `json:"tag"`
+ //+optional
+ NodeSelector map[string]string `json:"nodeSelector"`
+ //+optional
+ SecurityContext *core.SecurityContext `json:"securityContext"`
+ Service EnvoyServiceSpec `json:"service"`
+}
+
+// +kubebuilder:validation:Enum=Deployment;DaemonSet
+type ProvisionerType string
+
+const (
+ ProvisionerTypeDeployment ProvisionerType = "Deployment"
+ ProvisionerTypeDaemonSet ProvisionerType = "DaemonSet"
+)
+
+type EnvoyValues struct {
+ ProvisionerType ProvisionerType `json:"provisionerType"`
+ Image string `json:"image"`
+ Tag string `json:"tag"`
+ //+optional
+ NodeSelector map[string]string `json:"nodeSelector"`
+ //+optional
+ SecurityContext *core.SecurityContext `json:"securityContext"`
+ Service EnvoyServiceValues `json:"service"`
+}
+
+const (
+ AllocatedPortsKey = "catalog.appscode.com/allocated-ports"
+ SeedPortKey = "catalog.appscode.com/seed-port"
+ DefaultPortRange = "10000-12767"
+ DefaultNodeportRange = "30000-32767"
+)
+
+type EnvoyServiceSpec struct {
+ Annotations map[string]string `json:"annotations,omitempty"`
+ // +kubebuilder:default="10000-12767"
+ PortRange string `json:"portRange"`
+ // +kubebuilder:default="30000-32767"
+ NodeportRange string `json:"nodeportRange"`
+
+ // +kubebuilder:default=LoadBalancer
+ Type egv1a1.ServiceType `json:"type"`
+ // +kubebuilder:default=Cluster
+ ExternalTrafficPolicy egv1a1.ServiceExternalTrafficPolicy `json:"externalTrafficPolicy"`
+ ExternalIPs []string `json:"externalIPs,omitempty"`
+}
+
+type EnvoyServiceValues struct {
+ EnvoyServiceSpec `json:",inline"`
+ // +kubebuilder:default=8080
+ SeedBackendPort int32 `json:"seedBackendPort"`
+}
+
+type EchoserverSpec struct {
+ Image string `json:"image"`
+ Tag string `json:"tag"`
+ //+optional
+ SecurityContext *core.SecurityContext `json:"securityContext"`
+}
+
+// +kubebuilder:validation:Enum=ca;none
+type ClusterTLSIssuerType string
+
+const (
+ ClusterTLSIssuerTypeCA ClusterTLSIssuerType = "ca"
+ ClusterTLSIssuerTypeNone ClusterTLSIssuerType = "none"
+)
+
+// +kubebuilder:object:root=true
+// +kubebuilder:subresource:status
+
+// GatewayConfig is the Schema for the gatewayconfigs API.
+type GatewayConfig struct {
+ metav1.TypeMeta `json:",inline"`
+ metav1.ObjectMeta `json:"metadata,omitempty"`
+
+ Spec GatewayConfigSpec `json:"spec,omitempty"`
+}
+
+// +kubebuilder:object:root=true
+
+// GatewayConfigList contains a list of GatewayConfig.
+type GatewayConfigList struct {
+ metav1.TypeMeta `json:",inline"`
+ metav1.ListMeta `json:"metadata,omitempty"`
+ Items []GatewayConfig `json:"items"`
+}
+
+func init() {
+ SchemeBuilder.Register(&GatewayConfig{}, &GatewayConfigList{})
+}
diff --git a/vendor/go.bytebuilders.dev/catalog/api/gateway/v1alpha1/gatewaypreset_types.go b/vendor/go.bytebuilders.dev/catalog/api/gateway/v1alpha1/gatewaypreset_types.go
new file mode 100644
index 00000000..d996fd87
--- /dev/null
+++ b/vendor/go.bytebuilders.dev/catalog/api/gateway/v1alpha1/gatewaypreset_types.go
@@ -0,0 +1,90 @@
+/*
+Copyright AppsCode Inc. and Contributors
+
+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.
+*/
+
+package v1alpha1
+
+import (
+ core "k8s.io/api/core/v1"
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ kmapi "kmodules.xyz/client-go/api/v1"
+ gwv1 "sigs.k8s.io/gateway-api/apis/v1"
+)
+
+const (
+ GatewayConfigKey = "catalog.appscode.com/gateway-config"
+ DefaultGatewayClassKey = "catalog.appscode.com/is-default-gatewayclass"
+ DefaultConfigKey = "catalog.appscode.com/is-default-gateway-config"
+ DefaultPresetKey = "catalog.appscode.com/is-default-gateway-preset"
+)
+
+// GatewayPresetSpec defines the desired state of GatewayPreset.
+type GatewayPresetSpec struct {
+ // +optional
+ ParametersRef *gwv1.ParametersReference `json:"parametersRef,omitempty"`
+}
+
+// GatewayPresetStatus defines the observed state of GatewayPreset.
+type GatewayPresetStatus struct {
+ // +optional
+ // +listType=map
+ // +listMapKey=type
+ // +kubebuilder:validation:MaxItems=8
+ Conditions []kmapi.Condition `json:"conditions,omitempty"`
+
+ // Specifies the current phase of the App
+ // +optional
+ Phase PresetPhase `json:"phase,omitempty"`
+
+ // HelmRelease is the name of the helm release used to deploy this ui
+ // The name format is typically -
+ // +optional
+ HelmRelease *core.LocalObjectReference `json:"helmRelease,omitempty"`
+}
+
+// +kubebuilder:validation:Enum=Pending;InProgress;Current;Failed
+type PresetPhase string
+
+const (
+ PresetPhasePending PresetPhase = "Pending"
+ PresetPhaseInProgress PresetPhase = "InProgress"
+ PresetPhaseCurrent PresetPhase = "Current"
+ PresetPhaseFailed PresetPhase = "Failed"
+)
+
+// +kubebuilder:object:root=true
+// +kubebuilder:subresource:status
+
+// GatewayPreset is the Schema for the gatewaypresets API.
+type GatewayPreset struct {
+ metav1.TypeMeta `json:",inline"`
+ metav1.ObjectMeta `json:"metadata,omitempty"`
+
+ Spec GatewayPresetSpec `json:"spec,omitempty"`
+ Status GatewayPresetStatus `json:"status,omitempty"`
+}
+
+// +kubebuilder:object:root=true
+
+// GatewayPresetList contains a list of GatewayPreset.
+type GatewayPresetList struct {
+ metav1.TypeMeta `json:",inline"`
+ metav1.ListMeta `json:"metadata,omitempty"`
+ Items []GatewayPreset `json:"items"`
+}
+
+func init() {
+ SchemeBuilder.Register(&GatewayPreset{}, &GatewayPresetList{})
+}
diff --git a/vendor/go.bytebuilders.dev/catalog/api/gateway/v1alpha1/groupversion_info.go b/vendor/go.bytebuilders.dev/catalog/api/gateway/v1alpha1/groupversion_info.go
new file mode 100644
index 00000000..a6c813a6
--- /dev/null
+++ b/vendor/go.bytebuilders.dev/catalog/api/gateway/v1alpha1/groupversion_info.go
@@ -0,0 +1,36 @@
+/*
+Copyright AppsCode Inc. and Contributors
+
+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.
+*/
+
+// Package v1alpha1 contains API Schema definitions for the gateway v1alpha1 API group.
+// +kubebuilder:object:generate=true
+// +groupName=gateway.catalog.appscode.com
+package v1alpha1
+
+import (
+ "k8s.io/apimachinery/pkg/runtime/schema"
+ "sigs.k8s.io/controller-runtime/pkg/scheme"
+)
+
+var (
+ // GroupVersion is group version used to register these objects.
+ GroupVersion = schema.GroupVersion{Group: "gateway.catalog.appscode.com", Version: "v1alpha1"}
+
+ // SchemeBuilder is used to add go types to the GroupVersionKind scheme.
+ SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}
+
+ // AddToScheme adds the types in this group-version to the given scheme.
+ AddToScheme = SchemeBuilder.AddToScheme
+)
diff --git a/vendor/go.bytebuilders.dev/catalog/api/gateway/v1alpha1/helpers.go b/vendor/go.bytebuilders.dev/catalog/api/gateway/v1alpha1/helpers.go
new file mode 100644
index 00000000..cf331d80
--- /dev/null
+++ b/vendor/go.bytebuilders.dev/catalog/api/gateway/v1alpha1/helpers.go
@@ -0,0 +1,30 @@
+/*
+Copyright AppsCode Inc. and Contributors
+
+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.
+*/
+
+package v1alpha1
+
+import egv1a1 "github.com/envoyproxy/gateway/api/v1alpha1"
+
+func (i InfraTLS) MountCACerts() bool {
+ return i.Issuer == TLSIssuerTypeCA ||
+ i.Issuer == TLSIssuerTypeLEStaging ||
+ (i.Issuer == TLSIssuerTypeExternal && i.CA != nil && i.CA.Cert != "")
+}
+
+func (gwp GatewayParameter) UsesNodePort() bool {
+ return gwp.ServiceType == egv1a1.ServiceTypeNodePort ||
+ gwp.ServiceType == egv1a1.ServiceTypeLoadBalancer
+}
diff --git a/vendor/go.bytebuilders.dev/catalog/api/gateway/v1alpha1/openapi_generated.go b/vendor/go.bytebuilders.dev/catalog/api/gateway/v1alpha1/openapi_generated.go
new file mode 100644
index 00000000..29431ba1
--- /dev/null
+++ b/vendor/go.bytebuilders.dev/catalog/api/gateway/v1alpha1/openapi_generated.go
@@ -0,0 +1,19529 @@
+//go:build !ignore_autogenerated
+// +build !ignore_autogenerated
+
+/*
+Copyright AppsCode Inc. and Contributors
+
+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.
+*/
+
+// Code generated by openapi-gen. DO NOT EDIT.
+
+// This file was autogenerated by openapi-gen. Do not edit it manually!
+
+package v1alpha1
+
+import (
+ v1 "k8s.io/api/core/v1"
+ resource "k8s.io/apimachinery/pkg/api/resource"
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ intstr "k8s.io/apimachinery/pkg/util/intstr"
+ common "k8s.io/kube-openapi/pkg/common"
+ spec "k8s.io/kube-openapi/pkg/validation/spec"
+ apiv1 "kmodules.xyz/client-go/api/v1"
+)
+
+func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition {
+ return map[string]common.OpenAPIDefinition{
+ "k8s.io/api/apps/v1.ControllerRevision": schema_k8sio_api_apps_v1_ControllerRevision(ref),
+ "k8s.io/api/apps/v1.ControllerRevisionList": schema_k8sio_api_apps_v1_ControllerRevisionList(ref),
+ "k8s.io/api/apps/v1.DaemonSet": schema_k8sio_api_apps_v1_DaemonSet(ref),
+ "k8s.io/api/apps/v1.DaemonSetCondition": schema_k8sio_api_apps_v1_DaemonSetCondition(ref),
+ "k8s.io/api/apps/v1.DaemonSetList": schema_k8sio_api_apps_v1_DaemonSetList(ref),
+ "k8s.io/api/apps/v1.DaemonSetSpec": schema_k8sio_api_apps_v1_DaemonSetSpec(ref),
+ "k8s.io/api/apps/v1.DaemonSetStatus": schema_k8sio_api_apps_v1_DaemonSetStatus(ref),
+ "k8s.io/api/apps/v1.DaemonSetUpdateStrategy": schema_k8sio_api_apps_v1_DaemonSetUpdateStrategy(ref),
+ "k8s.io/api/apps/v1.Deployment": schema_k8sio_api_apps_v1_Deployment(ref),
+ "k8s.io/api/apps/v1.DeploymentCondition": schema_k8sio_api_apps_v1_DeploymentCondition(ref),
+ "k8s.io/api/apps/v1.DeploymentList": schema_k8sio_api_apps_v1_DeploymentList(ref),
+ "k8s.io/api/apps/v1.DeploymentSpec": schema_k8sio_api_apps_v1_DeploymentSpec(ref),
+ "k8s.io/api/apps/v1.DeploymentStatus": schema_k8sio_api_apps_v1_DeploymentStatus(ref),
+ "k8s.io/api/apps/v1.DeploymentStrategy": schema_k8sio_api_apps_v1_DeploymentStrategy(ref),
+ "k8s.io/api/apps/v1.ReplicaSet": schema_k8sio_api_apps_v1_ReplicaSet(ref),
+ "k8s.io/api/apps/v1.ReplicaSetCondition": schema_k8sio_api_apps_v1_ReplicaSetCondition(ref),
+ "k8s.io/api/apps/v1.ReplicaSetList": schema_k8sio_api_apps_v1_ReplicaSetList(ref),
+ "k8s.io/api/apps/v1.ReplicaSetSpec": schema_k8sio_api_apps_v1_ReplicaSetSpec(ref),
+ "k8s.io/api/apps/v1.ReplicaSetStatus": schema_k8sio_api_apps_v1_ReplicaSetStatus(ref),
+ "k8s.io/api/apps/v1.RollingUpdateDaemonSet": schema_k8sio_api_apps_v1_RollingUpdateDaemonSet(ref),
+ "k8s.io/api/apps/v1.RollingUpdateDeployment": schema_k8sio_api_apps_v1_RollingUpdateDeployment(ref),
+ "k8s.io/api/apps/v1.RollingUpdateStatefulSetStrategy": schema_k8sio_api_apps_v1_RollingUpdateStatefulSetStrategy(ref),
+ "k8s.io/api/apps/v1.StatefulSet": schema_k8sio_api_apps_v1_StatefulSet(ref),
+ "k8s.io/api/apps/v1.StatefulSetCondition": schema_k8sio_api_apps_v1_StatefulSetCondition(ref),
+ "k8s.io/api/apps/v1.StatefulSetList": schema_k8sio_api_apps_v1_StatefulSetList(ref),
+ "k8s.io/api/apps/v1.StatefulSetOrdinals": schema_k8sio_api_apps_v1_StatefulSetOrdinals(ref),
+ "k8s.io/api/apps/v1.StatefulSetPersistentVolumeClaimRetentionPolicy": schema_k8sio_api_apps_v1_StatefulSetPersistentVolumeClaimRetentionPolicy(ref),
+ "k8s.io/api/apps/v1.StatefulSetSpec": schema_k8sio_api_apps_v1_StatefulSetSpec(ref),
+ "k8s.io/api/apps/v1.StatefulSetStatus": schema_k8sio_api_apps_v1_StatefulSetStatus(ref),
+ "k8s.io/api/apps/v1.StatefulSetUpdateStrategy": schema_k8sio_api_apps_v1_StatefulSetUpdateStrategy(ref),
+ "k8s.io/api/core/v1.AWSElasticBlockStoreVolumeSource": schema_k8sio_api_core_v1_AWSElasticBlockStoreVolumeSource(ref),
+ "k8s.io/api/core/v1.Affinity": schema_k8sio_api_core_v1_Affinity(ref),
+ "k8s.io/api/core/v1.AppArmorProfile": schema_k8sio_api_core_v1_AppArmorProfile(ref),
+ "k8s.io/api/core/v1.AttachedVolume": schema_k8sio_api_core_v1_AttachedVolume(ref),
+ "k8s.io/api/core/v1.AvoidPods": schema_k8sio_api_core_v1_AvoidPods(ref),
+ "k8s.io/api/core/v1.AzureDiskVolumeSource": schema_k8sio_api_core_v1_AzureDiskVolumeSource(ref),
+ "k8s.io/api/core/v1.AzureFilePersistentVolumeSource": schema_k8sio_api_core_v1_AzureFilePersistentVolumeSource(ref),
+ "k8s.io/api/core/v1.AzureFileVolumeSource": schema_k8sio_api_core_v1_AzureFileVolumeSource(ref),
+ "k8s.io/api/core/v1.Binding": schema_k8sio_api_core_v1_Binding(ref),
+ "k8s.io/api/core/v1.CSIPersistentVolumeSource": schema_k8sio_api_core_v1_CSIPersistentVolumeSource(ref),
+ "k8s.io/api/core/v1.CSIVolumeSource": schema_k8sio_api_core_v1_CSIVolumeSource(ref),
+ "k8s.io/api/core/v1.Capabilities": schema_k8sio_api_core_v1_Capabilities(ref),
+ "k8s.io/api/core/v1.CephFSPersistentVolumeSource": schema_k8sio_api_core_v1_CephFSPersistentVolumeSource(ref),
+ "k8s.io/api/core/v1.CephFSVolumeSource": schema_k8sio_api_core_v1_CephFSVolumeSource(ref),
+ "k8s.io/api/core/v1.CinderPersistentVolumeSource": schema_k8sio_api_core_v1_CinderPersistentVolumeSource(ref),
+ "k8s.io/api/core/v1.CinderVolumeSource": schema_k8sio_api_core_v1_CinderVolumeSource(ref),
+ "k8s.io/api/core/v1.ClientIPConfig": schema_k8sio_api_core_v1_ClientIPConfig(ref),
+ "k8s.io/api/core/v1.ClusterTrustBundleProjection": schema_k8sio_api_core_v1_ClusterTrustBundleProjection(ref),
+ "k8s.io/api/core/v1.ComponentCondition": schema_k8sio_api_core_v1_ComponentCondition(ref),
+ "k8s.io/api/core/v1.ComponentStatus": schema_k8sio_api_core_v1_ComponentStatus(ref),
+ "k8s.io/api/core/v1.ComponentStatusList": schema_k8sio_api_core_v1_ComponentStatusList(ref),
+ "k8s.io/api/core/v1.ConfigMap": schema_k8sio_api_core_v1_ConfigMap(ref),
+ "k8s.io/api/core/v1.ConfigMapEnvSource": schema_k8sio_api_core_v1_ConfigMapEnvSource(ref),
+ "k8s.io/api/core/v1.ConfigMapKeySelector": schema_k8sio_api_core_v1_ConfigMapKeySelector(ref),
+ "k8s.io/api/core/v1.ConfigMapList": schema_k8sio_api_core_v1_ConfigMapList(ref),
+ "k8s.io/api/core/v1.ConfigMapNodeConfigSource": schema_k8sio_api_core_v1_ConfigMapNodeConfigSource(ref),
+ "k8s.io/api/core/v1.ConfigMapProjection": schema_k8sio_api_core_v1_ConfigMapProjection(ref),
+ "k8s.io/api/core/v1.ConfigMapVolumeSource": schema_k8sio_api_core_v1_ConfigMapVolumeSource(ref),
+ "k8s.io/api/core/v1.Container": schema_k8sio_api_core_v1_Container(ref),
+ "k8s.io/api/core/v1.ContainerExtendedResourceRequest": schema_k8sio_api_core_v1_ContainerExtendedResourceRequest(ref),
+ "k8s.io/api/core/v1.ContainerImage": schema_k8sio_api_core_v1_ContainerImage(ref),
+ "k8s.io/api/core/v1.ContainerPort": schema_k8sio_api_core_v1_ContainerPort(ref),
+ "k8s.io/api/core/v1.ContainerResizePolicy": schema_k8sio_api_core_v1_ContainerResizePolicy(ref),
+ "k8s.io/api/core/v1.ContainerRestartRule": schema_k8sio_api_core_v1_ContainerRestartRule(ref),
+ "k8s.io/api/core/v1.ContainerRestartRuleOnExitCodes": schema_k8sio_api_core_v1_ContainerRestartRuleOnExitCodes(ref),
+ "k8s.io/api/core/v1.ContainerState": schema_k8sio_api_core_v1_ContainerState(ref),
+ "k8s.io/api/core/v1.ContainerStateRunning": schema_k8sio_api_core_v1_ContainerStateRunning(ref),
+ "k8s.io/api/core/v1.ContainerStateTerminated": schema_k8sio_api_core_v1_ContainerStateTerminated(ref),
+ "k8s.io/api/core/v1.ContainerStateWaiting": schema_k8sio_api_core_v1_ContainerStateWaiting(ref),
+ "k8s.io/api/core/v1.ContainerStatus": schema_k8sio_api_core_v1_ContainerStatus(ref),
+ "k8s.io/api/core/v1.ContainerUser": schema_k8sio_api_core_v1_ContainerUser(ref),
+ "k8s.io/api/core/v1.DaemonEndpoint": schema_k8sio_api_core_v1_DaemonEndpoint(ref),
+ "k8s.io/api/core/v1.DownwardAPIProjection": schema_k8sio_api_core_v1_DownwardAPIProjection(ref),
+ "k8s.io/api/core/v1.DownwardAPIVolumeFile": schema_k8sio_api_core_v1_DownwardAPIVolumeFile(ref),
+ "k8s.io/api/core/v1.DownwardAPIVolumeSource": schema_k8sio_api_core_v1_DownwardAPIVolumeSource(ref),
+ "k8s.io/api/core/v1.EmptyDirVolumeSource": schema_k8sio_api_core_v1_EmptyDirVolumeSource(ref),
+ "k8s.io/api/core/v1.EndpointAddress": schema_k8sio_api_core_v1_EndpointAddress(ref),
+ "k8s.io/api/core/v1.EndpointPort": schema_k8sio_api_core_v1_EndpointPort(ref),
+ "k8s.io/api/core/v1.EndpointSubset": schema_k8sio_api_core_v1_EndpointSubset(ref),
+ "k8s.io/api/core/v1.Endpoints": schema_k8sio_api_core_v1_Endpoints(ref),
+ "k8s.io/api/core/v1.EndpointsList": schema_k8sio_api_core_v1_EndpointsList(ref),
+ "k8s.io/api/core/v1.EnvFromSource": schema_k8sio_api_core_v1_EnvFromSource(ref),
+ "k8s.io/api/core/v1.EnvVar": schema_k8sio_api_core_v1_EnvVar(ref),
+ "k8s.io/api/core/v1.EnvVarSource": schema_k8sio_api_core_v1_EnvVarSource(ref),
+ "k8s.io/api/core/v1.EphemeralContainer": schema_k8sio_api_core_v1_EphemeralContainer(ref),
+ "k8s.io/api/core/v1.EphemeralContainerCommon": schema_k8sio_api_core_v1_EphemeralContainerCommon(ref),
+ "k8s.io/api/core/v1.EphemeralVolumeSource": schema_k8sio_api_core_v1_EphemeralVolumeSource(ref),
+ "k8s.io/api/core/v1.Event": schema_k8sio_api_core_v1_Event(ref),
+ "k8s.io/api/core/v1.EventList": schema_k8sio_api_core_v1_EventList(ref),
+ "k8s.io/api/core/v1.EventSeries": schema_k8sio_api_core_v1_EventSeries(ref),
+ "k8s.io/api/core/v1.EventSource": schema_k8sio_api_core_v1_EventSource(ref),
+ "k8s.io/api/core/v1.ExecAction": schema_k8sio_api_core_v1_ExecAction(ref),
+ "k8s.io/api/core/v1.FCVolumeSource": schema_k8sio_api_core_v1_FCVolumeSource(ref),
+ "k8s.io/api/core/v1.FileKeySelector": schema_k8sio_api_core_v1_FileKeySelector(ref),
+ "k8s.io/api/core/v1.FlexPersistentVolumeSource": schema_k8sio_api_core_v1_FlexPersistentVolumeSource(ref),
+ "k8s.io/api/core/v1.FlexVolumeSource": schema_k8sio_api_core_v1_FlexVolumeSource(ref),
+ "k8s.io/api/core/v1.FlockerVolumeSource": schema_k8sio_api_core_v1_FlockerVolumeSource(ref),
+ "k8s.io/api/core/v1.GCEPersistentDiskVolumeSource": schema_k8sio_api_core_v1_GCEPersistentDiskVolumeSource(ref),
+ "k8s.io/api/core/v1.GRPCAction": schema_k8sio_api_core_v1_GRPCAction(ref),
+ "k8s.io/api/core/v1.GitRepoVolumeSource": schema_k8sio_api_core_v1_GitRepoVolumeSource(ref),
+ "k8s.io/api/core/v1.GlusterfsPersistentVolumeSource": schema_k8sio_api_core_v1_GlusterfsPersistentVolumeSource(ref),
+ "k8s.io/api/core/v1.GlusterfsVolumeSource": schema_k8sio_api_core_v1_GlusterfsVolumeSource(ref),
+ "k8s.io/api/core/v1.HTTPGetAction": schema_k8sio_api_core_v1_HTTPGetAction(ref),
+ "k8s.io/api/core/v1.HTTPHeader": schema_k8sio_api_core_v1_HTTPHeader(ref),
+ "k8s.io/api/core/v1.HostAlias": schema_k8sio_api_core_v1_HostAlias(ref),
+ "k8s.io/api/core/v1.HostIP": schema_k8sio_api_core_v1_HostIP(ref),
+ "k8s.io/api/core/v1.HostPathVolumeSource": schema_k8sio_api_core_v1_HostPathVolumeSource(ref),
+ "k8s.io/api/core/v1.ISCSIPersistentVolumeSource": schema_k8sio_api_core_v1_ISCSIPersistentVolumeSource(ref),
+ "k8s.io/api/core/v1.ISCSIVolumeSource": schema_k8sio_api_core_v1_ISCSIVolumeSource(ref),
+ "k8s.io/api/core/v1.ImageVolumeSource": schema_k8sio_api_core_v1_ImageVolumeSource(ref),
+ "k8s.io/api/core/v1.KeyToPath": schema_k8sio_api_core_v1_KeyToPath(ref),
+ "k8s.io/api/core/v1.Lifecycle": schema_k8sio_api_core_v1_Lifecycle(ref),
+ "k8s.io/api/core/v1.LifecycleHandler": schema_k8sio_api_core_v1_LifecycleHandler(ref),
+ "k8s.io/api/core/v1.LimitRange": schema_k8sio_api_core_v1_LimitRange(ref),
+ "k8s.io/api/core/v1.LimitRangeItem": schema_k8sio_api_core_v1_LimitRangeItem(ref),
+ "k8s.io/api/core/v1.LimitRangeList": schema_k8sio_api_core_v1_LimitRangeList(ref),
+ "k8s.io/api/core/v1.LimitRangeSpec": schema_k8sio_api_core_v1_LimitRangeSpec(ref),
+ "k8s.io/api/core/v1.LinuxContainerUser": schema_k8sio_api_core_v1_LinuxContainerUser(ref),
+ "k8s.io/api/core/v1.List": schema_k8sio_api_core_v1_List(ref),
+ "k8s.io/api/core/v1.LoadBalancerIngress": schema_k8sio_api_core_v1_LoadBalancerIngress(ref),
+ "k8s.io/api/core/v1.LoadBalancerStatus": schema_k8sio_api_core_v1_LoadBalancerStatus(ref),
+ "k8s.io/api/core/v1.LocalObjectReference": schema_k8sio_api_core_v1_LocalObjectReference(ref),
+ "k8s.io/api/core/v1.LocalVolumeSource": schema_k8sio_api_core_v1_LocalVolumeSource(ref),
+ "k8s.io/api/core/v1.ModifyVolumeStatus": schema_k8sio_api_core_v1_ModifyVolumeStatus(ref),
+ "k8s.io/api/core/v1.NFSVolumeSource": schema_k8sio_api_core_v1_NFSVolumeSource(ref),
+ "k8s.io/api/core/v1.Namespace": schema_k8sio_api_core_v1_Namespace(ref),
+ "k8s.io/api/core/v1.NamespaceCondition": schema_k8sio_api_core_v1_NamespaceCondition(ref),
+ "k8s.io/api/core/v1.NamespaceList": schema_k8sio_api_core_v1_NamespaceList(ref),
+ "k8s.io/api/core/v1.NamespaceSpec": schema_k8sio_api_core_v1_NamespaceSpec(ref),
+ "k8s.io/api/core/v1.NamespaceStatus": schema_k8sio_api_core_v1_NamespaceStatus(ref),
+ "k8s.io/api/core/v1.Node": schema_k8sio_api_core_v1_Node(ref),
+ "k8s.io/api/core/v1.NodeAddress": schema_k8sio_api_core_v1_NodeAddress(ref),
+ "k8s.io/api/core/v1.NodeAffinity": schema_k8sio_api_core_v1_NodeAffinity(ref),
+ "k8s.io/api/core/v1.NodeCondition": schema_k8sio_api_core_v1_NodeCondition(ref),
+ "k8s.io/api/core/v1.NodeConfigSource": schema_k8sio_api_core_v1_NodeConfigSource(ref),
+ "k8s.io/api/core/v1.NodeConfigStatus": schema_k8sio_api_core_v1_NodeConfigStatus(ref),
+ "k8s.io/api/core/v1.NodeDaemonEndpoints": schema_k8sio_api_core_v1_NodeDaemonEndpoints(ref),
+ "k8s.io/api/core/v1.NodeFeatures": schema_k8sio_api_core_v1_NodeFeatures(ref),
+ "k8s.io/api/core/v1.NodeList": schema_k8sio_api_core_v1_NodeList(ref),
+ "k8s.io/api/core/v1.NodeProxyOptions": schema_k8sio_api_core_v1_NodeProxyOptions(ref),
+ "k8s.io/api/core/v1.NodeRuntimeHandler": schema_k8sio_api_core_v1_NodeRuntimeHandler(ref),
+ "k8s.io/api/core/v1.NodeRuntimeHandlerFeatures": schema_k8sio_api_core_v1_NodeRuntimeHandlerFeatures(ref),
+ "k8s.io/api/core/v1.NodeSelector": schema_k8sio_api_core_v1_NodeSelector(ref),
+ "k8s.io/api/core/v1.NodeSelectorRequirement": schema_k8sio_api_core_v1_NodeSelectorRequirement(ref),
+ "k8s.io/api/core/v1.NodeSelectorTerm": schema_k8sio_api_core_v1_NodeSelectorTerm(ref),
+ "k8s.io/api/core/v1.NodeSpec": schema_k8sio_api_core_v1_NodeSpec(ref),
+ "k8s.io/api/core/v1.NodeStatus": schema_k8sio_api_core_v1_NodeStatus(ref),
+ "k8s.io/api/core/v1.NodeSwapStatus": schema_k8sio_api_core_v1_NodeSwapStatus(ref),
+ "k8s.io/api/core/v1.NodeSystemInfo": schema_k8sio_api_core_v1_NodeSystemInfo(ref),
+ "k8s.io/api/core/v1.ObjectFieldSelector": schema_k8sio_api_core_v1_ObjectFieldSelector(ref),
+ "k8s.io/api/core/v1.ObjectReference": schema_k8sio_api_core_v1_ObjectReference(ref),
+ "k8s.io/api/core/v1.PersistentVolume": schema_k8sio_api_core_v1_PersistentVolume(ref),
+ "k8s.io/api/core/v1.PersistentVolumeClaim": schema_k8sio_api_core_v1_PersistentVolumeClaim(ref),
+ "k8s.io/api/core/v1.PersistentVolumeClaimCondition": schema_k8sio_api_core_v1_PersistentVolumeClaimCondition(ref),
+ "k8s.io/api/core/v1.PersistentVolumeClaimList": schema_k8sio_api_core_v1_PersistentVolumeClaimList(ref),
+ "k8s.io/api/core/v1.PersistentVolumeClaimSpec": schema_k8sio_api_core_v1_PersistentVolumeClaimSpec(ref),
+ "k8s.io/api/core/v1.PersistentVolumeClaimStatus": schema_k8sio_api_core_v1_PersistentVolumeClaimStatus(ref),
+ "k8s.io/api/core/v1.PersistentVolumeClaimTemplate": schema_k8sio_api_core_v1_PersistentVolumeClaimTemplate(ref),
+ "k8s.io/api/core/v1.PersistentVolumeClaimVolumeSource": schema_k8sio_api_core_v1_PersistentVolumeClaimVolumeSource(ref),
+ "k8s.io/api/core/v1.PersistentVolumeList": schema_k8sio_api_core_v1_PersistentVolumeList(ref),
+ "k8s.io/api/core/v1.PersistentVolumeSource": schema_k8sio_api_core_v1_PersistentVolumeSource(ref),
+ "k8s.io/api/core/v1.PersistentVolumeSpec": schema_k8sio_api_core_v1_PersistentVolumeSpec(ref),
+ "k8s.io/api/core/v1.PersistentVolumeStatus": schema_k8sio_api_core_v1_PersistentVolumeStatus(ref),
+ "k8s.io/api/core/v1.PhotonPersistentDiskVolumeSource": schema_k8sio_api_core_v1_PhotonPersistentDiskVolumeSource(ref),
+ "k8s.io/api/core/v1.Pod": schema_k8sio_api_core_v1_Pod(ref),
+ "k8s.io/api/core/v1.PodAffinity": schema_k8sio_api_core_v1_PodAffinity(ref),
+ "k8s.io/api/core/v1.PodAffinityTerm": schema_k8sio_api_core_v1_PodAffinityTerm(ref),
+ "k8s.io/api/core/v1.PodAntiAffinity": schema_k8sio_api_core_v1_PodAntiAffinity(ref),
+ "k8s.io/api/core/v1.PodAttachOptions": schema_k8sio_api_core_v1_PodAttachOptions(ref),
+ "k8s.io/api/core/v1.PodCertificateProjection": schema_k8sio_api_core_v1_PodCertificateProjection(ref),
+ "k8s.io/api/core/v1.PodCondition": schema_k8sio_api_core_v1_PodCondition(ref),
+ "k8s.io/api/core/v1.PodDNSConfig": schema_k8sio_api_core_v1_PodDNSConfig(ref),
+ "k8s.io/api/core/v1.PodDNSConfigOption": schema_k8sio_api_core_v1_PodDNSConfigOption(ref),
+ "k8s.io/api/core/v1.PodExecOptions": schema_k8sio_api_core_v1_PodExecOptions(ref),
+ "k8s.io/api/core/v1.PodExtendedResourceClaimStatus": schema_k8sio_api_core_v1_PodExtendedResourceClaimStatus(ref),
+ "k8s.io/api/core/v1.PodIP": schema_k8sio_api_core_v1_PodIP(ref),
+ "k8s.io/api/core/v1.PodList": schema_k8sio_api_core_v1_PodList(ref),
+ "k8s.io/api/core/v1.PodLogOptions": schema_k8sio_api_core_v1_PodLogOptions(ref),
+ "k8s.io/api/core/v1.PodOS": schema_k8sio_api_core_v1_PodOS(ref),
+ "k8s.io/api/core/v1.PodPortForwardOptions": schema_k8sio_api_core_v1_PodPortForwardOptions(ref),
+ "k8s.io/api/core/v1.PodProxyOptions": schema_k8sio_api_core_v1_PodProxyOptions(ref),
+ "k8s.io/api/core/v1.PodReadinessGate": schema_k8sio_api_core_v1_PodReadinessGate(ref),
+ "k8s.io/api/core/v1.PodResourceClaim": schema_k8sio_api_core_v1_PodResourceClaim(ref),
+ "k8s.io/api/core/v1.PodResourceClaimStatus": schema_k8sio_api_core_v1_PodResourceClaimStatus(ref),
+ "k8s.io/api/core/v1.PodSchedulingGate": schema_k8sio_api_core_v1_PodSchedulingGate(ref),
+ "k8s.io/api/core/v1.PodSecurityContext": schema_k8sio_api_core_v1_PodSecurityContext(ref),
+ "k8s.io/api/core/v1.PodSignature": schema_k8sio_api_core_v1_PodSignature(ref),
+ "k8s.io/api/core/v1.PodSpec": schema_k8sio_api_core_v1_PodSpec(ref),
+ "k8s.io/api/core/v1.PodStatus": schema_k8sio_api_core_v1_PodStatus(ref),
+ "k8s.io/api/core/v1.PodStatusResult": schema_k8sio_api_core_v1_PodStatusResult(ref),
+ "k8s.io/api/core/v1.PodTemplate": schema_k8sio_api_core_v1_PodTemplate(ref),
+ "k8s.io/api/core/v1.PodTemplateList": schema_k8sio_api_core_v1_PodTemplateList(ref),
+ "k8s.io/api/core/v1.PodTemplateSpec": schema_k8sio_api_core_v1_PodTemplateSpec(ref),
+ "k8s.io/api/core/v1.PortStatus": schema_k8sio_api_core_v1_PortStatus(ref),
+ "k8s.io/api/core/v1.PortworxVolumeSource": schema_k8sio_api_core_v1_PortworxVolumeSource(ref),
+ "k8s.io/api/core/v1.PreferAvoidPodsEntry": schema_k8sio_api_core_v1_PreferAvoidPodsEntry(ref),
+ "k8s.io/api/core/v1.PreferredSchedulingTerm": schema_k8sio_api_core_v1_PreferredSchedulingTerm(ref),
+ "k8s.io/api/core/v1.Probe": schema_k8sio_api_core_v1_Probe(ref),
+ "k8s.io/api/core/v1.ProbeHandler": schema_k8sio_api_core_v1_ProbeHandler(ref),
+ "k8s.io/api/core/v1.ProjectedVolumeSource": schema_k8sio_api_core_v1_ProjectedVolumeSource(ref),
+ "k8s.io/api/core/v1.QuobyteVolumeSource": schema_k8sio_api_core_v1_QuobyteVolumeSource(ref),
+ "k8s.io/api/core/v1.RBDPersistentVolumeSource": schema_k8sio_api_core_v1_RBDPersistentVolumeSource(ref),
+ "k8s.io/api/core/v1.RBDVolumeSource": schema_k8sio_api_core_v1_RBDVolumeSource(ref),
+ "k8s.io/api/core/v1.RangeAllocation": schema_k8sio_api_core_v1_RangeAllocation(ref),
+ "k8s.io/api/core/v1.ReplicationController": schema_k8sio_api_core_v1_ReplicationController(ref),
+ "k8s.io/api/core/v1.ReplicationControllerCondition": schema_k8sio_api_core_v1_ReplicationControllerCondition(ref),
+ "k8s.io/api/core/v1.ReplicationControllerList": schema_k8sio_api_core_v1_ReplicationControllerList(ref),
+ "k8s.io/api/core/v1.ReplicationControllerSpec": schema_k8sio_api_core_v1_ReplicationControllerSpec(ref),
+ "k8s.io/api/core/v1.ReplicationControllerStatus": schema_k8sio_api_core_v1_ReplicationControllerStatus(ref),
+ "k8s.io/api/core/v1.ResourceClaim": schema_k8sio_api_core_v1_ResourceClaim(ref),
+ "k8s.io/api/core/v1.ResourceFieldSelector": schema_k8sio_api_core_v1_ResourceFieldSelector(ref),
+ "k8s.io/api/core/v1.ResourceHealth": schema_k8sio_api_core_v1_ResourceHealth(ref),
+ "k8s.io/api/core/v1.ResourceQuota": schema_k8sio_api_core_v1_ResourceQuota(ref),
+ "k8s.io/api/core/v1.ResourceQuotaList": schema_k8sio_api_core_v1_ResourceQuotaList(ref),
+ "k8s.io/api/core/v1.ResourceQuotaSpec": schema_k8sio_api_core_v1_ResourceQuotaSpec(ref),
+ "k8s.io/api/core/v1.ResourceQuotaStatus": schema_k8sio_api_core_v1_ResourceQuotaStatus(ref),
+ "k8s.io/api/core/v1.ResourceRequirements": schema_k8sio_api_core_v1_ResourceRequirements(ref),
+ "k8s.io/api/core/v1.ResourceStatus": schema_k8sio_api_core_v1_ResourceStatus(ref),
+ "k8s.io/api/core/v1.SELinuxOptions": schema_k8sio_api_core_v1_SELinuxOptions(ref),
+ "k8s.io/api/core/v1.ScaleIOPersistentVolumeSource": schema_k8sio_api_core_v1_ScaleIOPersistentVolumeSource(ref),
+ "k8s.io/api/core/v1.ScaleIOVolumeSource": schema_k8sio_api_core_v1_ScaleIOVolumeSource(ref),
+ "k8s.io/api/core/v1.ScopeSelector": schema_k8sio_api_core_v1_ScopeSelector(ref),
+ "k8s.io/api/core/v1.ScopedResourceSelectorRequirement": schema_k8sio_api_core_v1_ScopedResourceSelectorRequirement(ref),
+ "k8s.io/api/core/v1.SeccompProfile": schema_k8sio_api_core_v1_SeccompProfile(ref),
+ "k8s.io/api/core/v1.Secret": schema_k8sio_api_core_v1_Secret(ref),
+ "k8s.io/api/core/v1.SecretEnvSource": schema_k8sio_api_core_v1_SecretEnvSource(ref),
+ "k8s.io/api/core/v1.SecretKeySelector": schema_k8sio_api_core_v1_SecretKeySelector(ref),
+ "k8s.io/api/core/v1.SecretList": schema_k8sio_api_core_v1_SecretList(ref),
+ "k8s.io/api/core/v1.SecretProjection": schema_k8sio_api_core_v1_SecretProjection(ref),
+ "k8s.io/api/core/v1.SecretReference": schema_k8sio_api_core_v1_SecretReference(ref),
+ "k8s.io/api/core/v1.SecretVolumeSource": schema_k8sio_api_core_v1_SecretVolumeSource(ref),
+ "k8s.io/api/core/v1.SecurityContext": schema_k8sio_api_core_v1_SecurityContext(ref),
+ "k8s.io/api/core/v1.SerializedReference": schema_k8sio_api_core_v1_SerializedReference(ref),
+ "k8s.io/api/core/v1.Service": schema_k8sio_api_core_v1_Service(ref),
+ "k8s.io/api/core/v1.ServiceAccount": schema_k8sio_api_core_v1_ServiceAccount(ref),
+ "k8s.io/api/core/v1.ServiceAccountList": schema_k8sio_api_core_v1_ServiceAccountList(ref),
+ "k8s.io/api/core/v1.ServiceAccountTokenProjection": schema_k8sio_api_core_v1_ServiceAccountTokenProjection(ref),
+ "k8s.io/api/core/v1.ServiceList": schema_k8sio_api_core_v1_ServiceList(ref),
+ "k8s.io/api/core/v1.ServicePort": schema_k8sio_api_core_v1_ServicePort(ref),
+ "k8s.io/api/core/v1.ServiceProxyOptions": schema_k8sio_api_core_v1_ServiceProxyOptions(ref),
+ "k8s.io/api/core/v1.ServiceSpec": schema_k8sio_api_core_v1_ServiceSpec(ref),
+ "k8s.io/api/core/v1.ServiceStatus": schema_k8sio_api_core_v1_ServiceStatus(ref),
+ "k8s.io/api/core/v1.SessionAffinityConfig": schema_k8sio_api_core_v1_SessionAffinityConfig(ref),
+ "k8s.io/api/core/v1.SleepAction": schema_k8sio_api_core_v1_SleepAction(ref),
+ "k8s.io/api/core/v1.StorageOSPersistentVolumeSource": schema_k8sio_api_core_v1_StorageOSPersistentVolumeSource(ref),
+ "k8s.io/api/core/v1.StorageOSVolumeSource": schema_k8sio_api_core_v1_StorageOSVolumeSource(ref),
+ "k8s.io/api/core/v1.Sysctl": schema_k8sio_api_core_v1_Sysctl(ref),
+ "k8s.io/api/core/v1.TCPSocketAction": schema_k8sio_api_core_v1_TCPSocketAction(ref),
+ "k8s.io/api/core/v1.Taint": schema_k8sio_api_core_v1_Taint(ref),
+ "k8s.io/api/core/v1.Toleration": schema_k8sio_api_core_v1_Toleration(ref),
+ "k8s.io/api/core/v1.TopologySelectorLabelRequirement": schema_k8sio_api_core_v1_TopologySelectorLabelRequirement(ref),
+ "k8s.io/api/core/v1.TopologySelectorTerm": schema_k8sio_api_core_v1_TopologySelectorTerm(ref),
+ "k8s.io/api/core/v1.TopologySpreadConstraint": schema_k8sio_api_core_v1_TopologySpreadConstraint(ref),
+ "k8s.io/api/core/v1.TypedLocalObjectReference": schema_k8sio_api_core_v1_TypedLocalObjectReference(ref),
+ "k8s.io/api/core/v1.TypedObjectReference": schema_k8sio_api_core_v1_TypedObjectReference(ref),
+ "k8s.io/api/core/v1.Volume": schema_k8sio_api_core_v1_Volume(ref),
+ "k8s.io/api/core/v1.VolumeDevice": schema_k8sio_api_core_v1_VolumeDevice(ref),
+ "k8s.io/api/core/v1.VolumeMount": schema_k8sio_api_core_v1_VolumeMount(ref),
+ "k8s.io/api/core/v1.VolumeMountStatus": schema_k8sio_api_core_v1_VolumeMountStatus(ref),
+ "k8s.io/api/core/v1.VolumeNodeAffinity": schema_k8sio_api_core_v1_VolumeNodeAffinity(ref),
+ "k8s.io/api/core/v1.VolumeProjection": schema_k8sio_api_core_v1_VolumeProjection(ref),
+ "k8s.io/api/core/v1.VolumeResourceRequirements": schema_k8sio_api_core_v1_VolumeResourceRequirements(ref),
+ "k8s.io/api/core/v1.VolumeSource": schema_k8sio_api_core_v1_VolumeSource(ref),
+ "k8s.io/api/core/v1.VsphereVirtualDiskVolumeSource": schema_k8sio_api_core_v1_VsphereVirtualDiskVolumeSource(ref),
+ "k8s.io/api/core/v1.WeightedPodAffinityTerm": schema_k8sio_api_core_v1_WeightedPodAffinityTerm(ref),
+ "k8s.io/api/core/v1.WindowsSecurityContextOptions": schema_k8sio_api_core_v1_WindowsSecurityContextOptions(ref),
+ "k8s.io/apimachinery/pkg/api/resource.Quantity": schema_apimachinery_pkg_api_resource_Quantity(ref),
+ "k8s.io/apimachinery/pkg/api/resource.int64Amount": schema_apimachinery_pkg_api_resource_int64Amount(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.APIGroup": schema_pkg_apis_meta_v1_APIGroup(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.APIGroupList": schema_pkg_apis_meta_v1_APIGroupList(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.APIResource": schema_pkg_apis_meta_v1_APIResource(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.APIResourceList": schema_pkg_apis_meta_v1_APIResourceList(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.APIVersions": schema_pkg_apis_meta_v1_APIVersions(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.ApplyOptions": schema_pkg_apis_meta_v1_ApplyOptions(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.Condition": schema_pkg_apis_meta_v1_Condition(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.CreateOptions": schema_pkg_apis_meta_v1_CreateOptions(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.DeleteOptions": schema_pkg_apis_meta_v1_DeleteOptions(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.Duration": schema_pkg_apis_meta_v1_Duration(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.FieldSelectorRequirement": schema_pkg_apis_meta_v1_FieldSelectorRequirement(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.FieldsV1": schema_pkg_apis_meta_v1_FieldsV1(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.GetOptions": schema_pkg_apis_meta_v1_GetOptions(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.GroupKind": schema_pkg_apis_meta_v1_GroupKind(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.GroupResource": schema_pkg_apis_meta_v1_GroupResource(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.GroupVersion": schema_pkg_apis_meta_v1_GroupVersion(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.GroupVersionForDiscovery": schema_pkg_apis_meta_v1_GroupVersionForDiscovery(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.GroupVersionKind": schema_pkg_apis_meta_v1_GroupVersionKind(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.GroupVersionResource": schema_pkg_apis_meta_v1_GroupVersionResource(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.InternalEvent": schema_pkg_apis_meta_v1_InternalEvent(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector": schema_pkg_apis_meta_v1_LabelSelector(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelectorRequirement": schema_pkg_apis_meta_v1_LabelSelectorRequirement(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.List": schema_pkg_apis_meta_v1_List(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta": schema_pkg_apis_meta_v1_ListMeta(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.ListOptions": schema_pkg_apis_meta_v1_ListOptions(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.ManagedFieldsEntry": schema_pkg_apis_meta_v1_ManagedFieldsEntry(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.MicroTime": schema_pkg_apis_meta_v1_MicroTime(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta": schema_pkg_apis_meta_v1_ObjectMeta(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.OwnerReference": schema_pkg_apis_meta_v1_OwnerReference(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.PartialObjectMetadata": schema_pkg_apis_meta_v1_PartialObjectMetadata(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.PartialObjectMetadataList": schema_pkg_apis_meta_v1_PartialObjectMetadataList(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.Patch": schema_pkg_apis_meta_v1_Patch(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.PatchOptions": schema_pkg_apis_meta_v1_PatchOptions(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.Preconditions": schema_pkg_apis_meta_v1_Preconditions(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.RootPaths": schema_pkg_apis_meta_v1_RootPaths(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.ServerAddressByClientCIDR": schema_pkg_apis_meta_v1_ServerAddressByClientCIDR(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.Status": schema_pkg_apis_meta_v1_Status(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.StatusCause": schema_pkg_apis_meta_v1_StatusCause(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.StatusDetails": schema_pkg_apis_meta_v1_StatusDetails(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.Table": schema_pkg_apis_meta_v1_Table(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.TableColumnDefinition": schema_pkg_apis_meta_v1_TableColumnDefinition(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.TableOptions": schema_pkg_apis_meta_v1_TableOptions(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.TableRow": schema_pkg_apis_meta_v1_TableRow(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.TableRowCondition": schema_pkg_apis_meta_v1_TableRowCondition(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.Time": schema_pkg_apis_meta_v1_Time(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.Timestamp": schema_pkg_apis_meta_v1_Timestamp(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.TypeMeta": schema_pkg_apis_meta_v1_TypeMeta(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.UpdateOptions": schema_pkg_apis_meta_v1_UpdateOptions(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.WatchEvent": schema_pkg_apis_meta_v1_WatchEvent(ref),
+ "k8s.io/apimachinery/pkg/runtime.RawExtension": schema_k8sio_apimachinery_pkg_runtime_RawExtension(ref),
+ "k8s.io/apimachinery/pkg/runtime.TypeMeta": schema_k8sio_apimachinery_pkg_runtime_TypeMeta(ref),
+ "k8s.io/apimachinery/pkg/runtime.Unknown": schema_k8sio_apimachinery_pkg_runtime_Unknown(ref),
+ "k8s.io/apimachinery/pkg/util/intstr.IntOrString": schema_apimachinery_pkg_util_intstr_IntOrString(ref),
+ "k8s.io/apimachinery/pkg/version.Info": schema_k8sio_apimachinery_pkg_version_Info(ref),
+ "kmodules.xyz/client-go/api/v1.CAPIClusterInfo": schema_kmodulesxyz_client_go_api_v1_CAPIClusterInfo(ref),
+ "kmodules.xyz/client-go/api/v1.CertificatePrivateKey": schema_kmodulesxyz_client_go_api_v1_CertificatePrivateKey(ref),
+ "kmodules.xyz/client-go/api/v1.CertificateSpec": schema_kmodulesxyz_client_go_api_v1_CertificateSpec(ref),
+ "kmodules.xyz/client-go/api/v1.ClusterClaimFeatures": schema_kmodulesxyz_client_go_api_v1_ClusterClaimFeatures(ref),
+ "kmodules.xyz/client-go/api/v1.ClusterClaimInfo": schema_kmodulesxyz_client_go_api_v1_ClusterClaimInfo(ref),
+ "kmodules.xyz/client-go/api/v1.ClusterInfo": schema_kmodulesxyz_client_go_api_v1_ClusterInfo(ref),
+ "kmodules.xyz/client-go/api/v1.ClusterMetadata": schema_kmodulesxyz_client_go_api_v1_ClusterMetadata(ref),
+ "kmodules.xyz/client-go/api/v1.Condition": schema_kmodulesxyz_client_go_api_v1_Condition(ref),
+ "kmodules.xyz/client-go/api/v1.HealthCheckSpec": schema_kmodulesxyz_client_go_api_v1_HealthCheckSpec(ref),
+ "kmodules.xyz/client-go/api/v1.ImageInfo": schema_kmodulesxyz_client_go_api_v1_ImageInfo(ref),
+ "kmodules.xyz/client-go/api/v1.Lineage": schema_kmodulesxyz_client_go_api_v1_Lineage(ref),
+ "kmodules.xyz/client-go/api/v1.ObjectID": schema_kmodulesxyz_client_go_api_v1_ObjectID(ref),
+ "kmodules.xyz/client-go/api/v1.ObjectInfo": schema_kmodulesxyz_client_go_api_v1_ObjectInfo(ref),
+ "kmodules.xyz/client-go/api/v1.ObjectReference": schema_kmodulesxyz_client_go_api_v1_ObjectReference(ref),
+ "kmodules.xyz/client-go/api/v1.PullCredentials": schema_kmodulesxyz_client_go_api_v1_PullCredentials(ref),
+ "kmodules.xyz/client-go/api/v1.ReadonlyHealthCheckSpec": schema_kmodulesxyz_client_go_api_v1_ReadonlyHealthCheckSpec(ref),
+ "kmodules.xyz/client-go/api/v1.ResourceID": schema_kmodulesxyz_client_go_api_v1_ResourceID(ref),
+ "kmodules.xyz/client-go/api/v1.TLSConfig": schema_kmodulesxyz_client_go_api_v1_TLSConfig(ref),
+ "kmodules.xyz/client-go/api/v1.TimeOfDay": schema_kmodulesxyz_client_go_api_v1_TimeOfDay(ref),
+ "kmodules.xyz/client-go/api/v1.TypeReference": schema_kmodulesxyz_client_go_api_v1_TypeReference(ref),
+ "kmodules.xyz/client-go/api/v1.TypedObjectReference": schema_kmodulesxyz_client_go_api_v1_TypedObjectReference(ref),
+ "kmodules.xyz/client-go/api/v1.X509Subject": schema_kmodulesxyz_client_go_api_v1_X509Subject(ref),
+ "kmodules.xyz/client-go/api/v1.stringSetMerger": schema_kmodulesxyz_client_go_api_v1_stringSetMerger(ref),
+ }
+}
+
+func schema_k8sio_api_apps_v1_ControllerRevision(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ControllerRevision implements an immutable snapshot of state data. Clients are responsible for serializing and deserializing the objects that contain their internal state. Once a ControllerRevision has been successfully created, it can not be updated. The API Server will fail validation of all requests that attempt to mutate the Data field. ControllerRevisions may, however, be deleted. Note that, due to its use by both the DaemonSet and StatefulSet controllers for update and rollback, this object is beta. However, it may be subject to name and representation changes in future releases, and clients should not depend on its stability. It is primarily for internal use by controllers.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "data": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Data is the serialized representation of the state.",
+ Ref: ref("k8s.io/apimachinery/pkg/runtime.RawExtension"),
+ },
+ },
+ "revision": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Revision indicates the revision of the state represented by Data.",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ },
+ Required: []string{"revision"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta", "k8s.io/apimachinery/pkg/runtime.RawExtension"},
+ }
+}
+
+func schema_k8sio_api_apps_v1_ControllerRevisionList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ControllerRevisionList is a resource containing a list of ControllerRevision objects.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Items is the list of ControllerRevisions",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/apps/v1.ControllerRevision"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"items"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/apps/v1.ControllerRevision", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
+ }
+}
+
+func schema_k8sio_api_apps_v1_DaemonSet(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "DaemonSet represents the configuration of a daemon set.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "spec": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The desired behavior of this daemon set. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/apps/v1.DaemonSetSpec"),
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The current status of this daemon set. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/apps/v1.DaemonSetStatus"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/apps/v1.DaemonSetSpec", "k8s.io/api/apps/v1.DaemonSetStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
+ }
+}
+
+func schema_k8sio_api_apps_v1_DaemonSetCondition(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "DaemonSetCondition describes the state of a DaemonSet at a certain point.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Type of DaemonSet condition.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Status of the condition, one of True, False, Unknown.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "lastTransitionTime": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Last time the condition transitioned from one status to another.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ "reason": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The reason for the condition's last transition.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "message": {
+ SchemaProps: spec.SchemaProps{
+ Description: "A human readable message indicating details about the transition.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"type", "status"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.Time"},
+ }
+}
+
+func schema_k8sio_api_apps_v1_DaemonSetList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "DaemonSetList is a collection of daemon sets.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Description: "A list of daemon sets.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/apps/v1.DaemonSet"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"items"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/apps/v1.DaemonSet", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
+ }
+}
+
+func schema_k8sio_api_apps_v1_DaemonSetSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "DaemonSetSpec is the specification of a daemon set.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "selector": {
+ SchemaProps: spec.SchemaProps{
+ Description: "A label query over pods that are managed by the daemon set. Must match in order to be controlled. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"),
+ },
+ },
+ "template": {
+ SchemaProps: spec.SchemaProps{
+ Description: "An object that describes the pod that will be created. The DaemonSet will create exactly one copy of this pod on every node that matches the template's node selector (or on every node if no node selector is specified). The only allowed template.spec.restartPolicy value is \"Always\". More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodTemplateSpec"),
+ },
+ },
+ "updateStrategy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "An update strategy to replace existing DaemonSet pods with new pods.",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/apps/v1.DaemonSetUpdateStrategy"),
+ },
+ },
+ "minReadySeconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The minimum number of seconds for which a newly created DaemonSet pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "revisionHistoryLimit": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The number of old history to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ },
+ Required: []string{"selector", "template"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/apps/v1.DaemonSetUpdateStrategy", "k8s.io/api/core/v1.PodTemplateSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"},
+ }
+}
+
+func schema_k8sio_api_apps_v1_DaemonSetStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "DaemonSetStatus represents the current status of a daemon set.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "currentNumberScheduled": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "numberMisscheduled": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "desiredNumberScheduled": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "numberReady": {
+ SchemaProps: spec.SchemaProps{
+ Description: "numberReady is the number of nodes that should be running the daemon pod and have one or more of the daemon pod running with a Ready Condition.",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "observedGeneration": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The most recent generation observed by the daemon set controller.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "updatedNumberScheduled": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The total number of nodes that are running updated daemon pod",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "numberAvailable": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds)",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "numberUnavailable": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds)",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "collisionCount": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "conditions": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "type",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "type",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents the latest available observations of a DaemonSet's current state.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/apps/v1.DaemonSetCondition"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"currentNumberScheduled", "numberMisscheduled", "desiredNumberScheduled", "numberReady"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/apps/v1.DaemonSetCondition"},
+ }
+}
+
+func schema_k8sio_api_apps_v1_DaemonSetUpdateStrategy(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "DaemonSetUpdateStrategy is a struct used to control the update strategy for a DaemonSet.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\". Default is RollingUpdate.\n\nPossible enum values:\n - `\"OnDelete\"` Replace the old daemons only when it's killed\n - `\"RollingUpdate\"` Replace the old daemons by new ones using rolling update i.e replace them on each node one after the other.",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"OnDelete", "RollingUpdate"},
+ },
+ },
+ "rollingUpdate": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Rolling update config params. Present only if type = \"RollingUpdate\".",
+ Ref: ref("k8s.io/api/apps/v1.RollingUpdateDaemonSet"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/apps/v1.RollingUpdateDaemonSet"},
+ }
+}
+
+func schema_k8sio_api_apps_v1_Deployment(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Deployment enables declarative updates for Pods and ReplicaSets.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "spec": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Specification of the desired behavior of the Deployment.",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/apps/v1.DeploymentSpec"),
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Most recently observed status of the Deployment.",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/apps/v1.DeploymentStatus"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/apps/v1.DeploymentSpec", "k8s.io/api/apps/v1.DeploymentStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
+ }
+}
+
+func schema_k8sio_api_apps_v1_DeploymentCondition(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "DeploymentCondition describes the state of a deployment at a certain point.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Type of deployment condition.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Status of the condition, one of True, False, Unknown.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "lastUpdateTime": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The last time this condition was updated.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ "lastTransitionTime": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Last time the condition transitioned from one status to another.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ "reason": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The reason for the condition's last transition.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "message": {
+ SchemaProps: spec.SchemaProps{
+ Description: "A human readable message indicating details about the transition.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"type", "status"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.Time"},
+ }
+}
+
+func schema_k8sio_api_apps_v1_DeploymentList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "DeploymentList is a list of Deployments.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard list metadata.",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Items is the list of Deployments.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/apps/v1.Deployment"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"items"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/apps/v1.Deployment", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
+ }
+}
+
+func schema_k8sio_api_apps_v1_DeploymentSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "DeploymentSpec is the specification of the desired behavior of the Deployment.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "replicas": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "selector": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment. It must match the pod template's labels.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"),
+ },
+ },
+ "template": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Template describes the pods that will be created. The only allowed template.spec.restartPolicy value is \"Always\".",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodTemplateSpec"),
+ },
+ },
+ "strategy": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-patch-strategy": "retainKeys",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "The deployment strategy to use to replace existing pods with new ones.",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/apps/v1.DeploymentStrategy"),
+ },
+ },
+ "minReadySeconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "revisionHistoryLimit": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "paused": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Indicates that the deployment is paused.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "progressDeadlineSeconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Note that progress will not be estimated during the time a deployment is paused. Defaults to 600s.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ },
+ Required: []string{"selector", "template"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/apps/v1.DeploymentStrategy", "k8s.io/api/core/v1.PodTemplateSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"},
+ }
+}
+
+func schema_k8sio_api_apps_v1_DeploymentStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "DeploymentStatus is the most recently observed status of the Deployment.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "observedGeneration": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The generation observed by the deployment controller.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "replicas": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Total number of non-terminating pods targeted by this deployment (their labels match the selector).",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "updatedReplicas": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Total number of non-terminating pods targeted by this deployment that have the desired template spec.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "readyReplicas": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Total number of non-terminating pods targeted by this Deployment with a Ready Condition.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "availableReplicas": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Total number of available non-terminating pods (ready for at least minReadySeconds) targeted by this deployment.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "unavailableReplicas": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "terminatingReplicas": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Total number of terminating pods targeted by this deployment. Terminating pods have a non-null .metadata.deletionTimestamp and have not yet reached the Failed or Succeeded .status.phase.\n\nThis is an alpha field. Enable DeploymentReplicaSetTerminatingReplicas to be able to use this field.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "conditions": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "type",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "type",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents the latest available observations of a deployment's current state.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/apps/v1.DeploymentCondition"),
+ },
+ },
+ },
+ },
+ },
+ "collisionCount": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/apps/v1.DeploymentCondition"},
+ }
+}
+
+func schema_k8sio_api_apps_v1_DeploymentStrategy(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "DeploymentStrategy describes how to replace existing pods with new ones.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Type of deployment. Can be \"Recreate\" or \"RollingUpdate\". Default is RollingUpdate.\n\nPossible enum values:\n - `\"Recreate\"` Kill all existing pods before creating new ones.\n - `\"RollingUpdate\"` Replace the old ReplicaSets by new one using rolling update i.e gradually scale down the old ReplicaSets and scale up the new one.",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Recreate", "RollingUpdate"},
+ },
+ },
+ "rollingUpdate": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate.",
+ Ref: ref("k8s.io/api/apps/v1.RollingUpdateDeployment"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/apps/v1.RollingUpdateDeployment"},
+ }
+}
+
+func schema_k8sio_api_apps_v1_ReplicaSet(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ReplicaSet ensures that a specified number of pod replicas are running at any given time.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If the Labels of a ReplicaSet are empty, they are defaulted to be the same as the Pod(s) that the ReplicaSet manages. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "spec": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Spec defines the specification of the desired behavior of the ReplicaSet. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/apps/v1.ReplicaSetSpec"),
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Status is the most recently observed status of the ReplicaSet. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/apps/v1.ReplicaSetStatus"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/apps/v1.ReplicaSetSpec", "k8s.io/api/apps/v1.ReplicaSetStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
+ }
+}
+
+func schema_k8sio_api_apps_v1_ReplicaSetCondition(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ReplicaSetCondition describes the state of a replica set at a certain point.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Type of replica set condition.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Status of the condition, one of True, False, Unknown.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "lastTransitionTime": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The last time the condition transitioned from one status to another.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ "reason": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The reason for the condition's last transition.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "message": {
+ SchemaProps: spec.SchemaProps{
+ Description: "A human readable message indicating details about the transition.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"type", "status"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.Time"},
+ }
+}
+
+func schema_k8sio_api_apps_v1_ReplicaSetList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ReplicaSetList is a collection of ReplicaSets.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Description: "List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicaset",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/apps/v1.ReplicaSet"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"items"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/apps/v1.ReplicaSet", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
+ }
+}
+
+func schema_k8sio_api_apps_v1_ReplicaSetSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ReplicaSetSpec is the specification of a ReplicaSet.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "replicas": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Replicas is the number of desired pods. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicaset",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "minReadySeconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "selector": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Selector is a label query over pods that should match the replica count. Label keys and values that must match in order to be controlled by this replica set. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"),
+ },
+ },
+ "template": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Template is the object that describes the pod that will be created if insufficient replicas are detected. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/#pod-template",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodTemplateSpec"),
+ },
+ },
+ },
+ Required: []string{"selector"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.PodTemplateSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"},
+ }
+}
+
+func schema_k8sio_api_apps_v1_ReplicaSetStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ReplicaSetStatus represents the current status of a ReplicaSet.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "replicas": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Replicas is the most recently observed number of non-terminating pods. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicaset",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "fullyLabeledReplicas": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The number of non-terminating pods that have labels matching the labels of the pod template of the replicaset.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "readyReplicas": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The number of non-terminating pods targeted by this ReplicaSet with a Ready Condition.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "availableReplicas": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The number of available non-terminating pods (ready for at least minReadySeconds) for this replica set.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "terminatingReplicas": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The number of terminating pods for this replica set. Terminating pods have a non-null .metadata.deletionTimestamp and have not yet reached the Failed or Succeeded .status.phase.\n\nThis is an alpha field. Enable DeploymentReplicaSetTerminatingReplicas to be able to use this field.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "observedGeneration": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ObservedGeneration reflects the generation of the most recently observed ReplicaSet.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "conditions": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "type",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "type",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents the latest available observations of a replica set's current state.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/apps/v1.ReplicaSetCondition"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"replicas"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/apps/v1.ReplicaSetCondition"},
+ }
+}
+
+func schema_k8sio_api_apps_v1_RollingUpdateDaemonSet(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Spec to control the desired behavior of daemon set rolling update.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "maxUnavailable": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0 if MaxSurge is 0 Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update.",
+ Ref: ref("k8s.io/apimachinery/pkg/util/intstr.IntOrString"),
+ },
+ },
+ "maxSurge": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The maximum number of nodes with an existing available DaemonSet pod that can have an updated DaemonSet pod during during an update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up to a minimum of 1. Default value is 0. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their a new pod created before the old pod is marked as deleted. The update starts by launching new pods on 30% of nodes. Once an updated pod is available (Ready for at least minReadySeconds) the old DaemonSet pod on that node is marked deleted. If the old pod becomes unavailable for any reason (Ready transitions to false, is evicted, or is drained) an updated pod is immediately created on that node without considering surge limits. Allowing surge implies the possibility that the resources consumed by the daemonset on any given node can double if the readiness check fails, and so resource intensive daemonsets should take into account that they may cause evictions during disruption.",
+ Ref: ref("k8s.io/apimachinery/pkg/util/intstr.IntOrString"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/util/intstr.IntOrString"},
+ }
+}
+
+func schema_k8sio_api_apps_v1_RollingUpdateDeployment(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Spec to control the desired behavior of rolling update.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "maxUnavailable": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 25%. Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old ReplicaSet can be scaled down further, followed by scaling up the new ReplicaSet, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods.",
+ Ref: ref("k8s.io/apimachinery/pkg/util/intstr.IntOrString"),
+ },
+ },
+ "maxSurge": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 25%. Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new ReplicaSet can be scaled up further, ensuring that total number of pods running at any time during the update is at most 130% of desired pods.",
+ Ref: ref("k8s.io/apimachinery/pkg/util/intstr.IntOrString"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/util/intstr.IntOrString"},
+ }
+}
+
+func schema_k8sio_api_apps_v1_RollingUpdateStatefulSetStrategy(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "partition": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Partition indicates the ordinal at which the StatefulSet should be partitioned for updates. During a rolling update, all pods from ordinal Replicas-1 to Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched. This is helpful in being able to do a canary based deployment. The default value is 0.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "maxUnavailable": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding up. This can not be 0. Defaults to 1. This field is alpha-level and is only honored by servers that enable the MaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it will be counted towards MaxUnavailable.",
+ Ref: ref("k8s.io/apimachinery/pkg/util/intstr.IntOrString"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/util/intstr.IntOrString"},
+ }
+}
+
+func schema_k8sio_api_apps_v1_StatefulSet(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "StatefulSet represents a set of pods with consistent identities. Identities are defined as:\n - Network: A single stable DNS and hostname.\n - Storage: As many VolumeClaims as requested.\n\nThe StatefulSet guarantees that a given network identity will always map to the same storage identity.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "spec": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Spec defines the desired identities of pods in this set.",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/apps/v1.StatefulSetSpec"),
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Status is the current status of Pods in this StatefulSet. This data may be out of date by some window of time.",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/apps/v1.StatefulSetStatus"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/apps/v1.StatefulSetSpec", "k8s.io/api/apps/v1.StatefulSetStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
+ }
+}
+
+func schema_k8sio_api_apps_v1_StatefulSetCondition(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "StatefulSetCondition describes the state of a statefulset at a certain point.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Type of statefulset condition.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Status of the condition, one of True, False, Unknown.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "lastTransitionTime": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Last time the condition transitioned from one status to another.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ "reason": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The reason for the condition's last transition.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "message": {
+ SchemaProps: spec.SchemaProps{
+ Description: "A human readable message indicating details about the transition.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"type", "status"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.Time"},
+ }
+}
+
+func schema_k8sio_api_apps_v1_StatefulSetList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "StatefulSetList is a collection of StatefulSets.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard list's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Items is the list of stateful sets.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/apps/v1.StatefulSet"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"items"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/apps/v1.StatefulSet", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
+ }
+}
+
+func schema_k8sio_api_apps_v1_StatefulSetOrdinals(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "StatefulSetOrdinals describes the policy used for replica ordinal assignment in this StatefulSet.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "start": {
+ SchemaProps: spec.SchemaProps{
+ Description: "start is the number representing the first replica's index. It may be used to number replicas from an alternate index (eg: 1-indexed) over the default 0-indexed names, or to orchestrate progressive movement of replicas from one StatefulSet to another. If set, replica indices will be in the range:\n [.spec.ordinals.start, .spec.ordinals.start + .spec.replicas).\nIf unset, defaults to 0. Replica indices will be in the range:\n [0, .spec.replicas).",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_apps_v1_StatefulSetPersistentVolumeClaimRetentionPolicy(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "StatefulSetPersistentVolumeClaimRetentionPolicy describes the policy used for PVCs created from the StatefulSet VolumeClaimTemplates.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "whenDeleted": {
+ SchemaProps: spec.SchemaProps{
+ Description: "WhenDeleted specifies what happens to PVCs created from StatefulSet VolumeClaimTemplates when the StatefulSet is deleted. The default policy of `Retain` causes PVCs to not be affected by StatefulSet deletion. The `Delete` policy causes those PVCs to be deleted.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "whenScaled": {
+ SchemaProps: spec.SchemaProps{
+ Description: "WhenScaled specifies what happens to PVCs created from StatefulSet VolumeClaimTemplates when the StatefulSet is scaled down. The default policy of `Retain` causes PVCs to not be affected by a scaledown. The `Delete` policy causes the associated PVCs for any excess pods above the replica count to be deleted.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_apps_v1_StatefulSetSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "A StatefulSetSpec is the specification of a StatefulSet.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "replicas": {
+ SchemaProps: spec.SchemaProps{
+ Description: "replicas is the desired number of replicas of the given Template. These are replicas in the sense that they are instantiations of the same Template, but individual replicas also have a consistent identity. If unspecified, defaults to 1.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "selector": {
+ SchemaProps: spec.SchemaProps{
+ Description: "selector is a label query over pods that should match the replica count. It must match the pod template's labels. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"),
+ },
+ },
+ "template": {
+ SchemaProps: spec.SchemaProps{
+ Description: "template is the object that describes the pod that will be created if insufficient replicas are detected. Each pod stamped out by the StatefulSet will fulfill this Template, but have a unique identity from the rest of the StatefulSet. Each pod will be named with the format -. For example, a pod in a StatefulSet named \"web\" with index number \"3\" would be named \"web-3\". The only allowed template.spec.restartPolicy value is \"Always\".",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodTemplateSpec"),
+ },
+ },
+ "volumeClaimTemplates": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "volumeClaimTemplates is a list of claims that pods are allowed to reference. The StatefulSet controller is responsible for mapping network identities to claims in a way that maintains the identity of a pod. Every claim in this list must have at least one matching (by name) volumeMount in one container in the template. A claim in this list takes precedence over any volumes in the template, with the same name.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PersistentVolumeClaim"),
+ },
+ },
+ },
+ },
+ },
+ "serviceName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "serviceName is the name of the service that governs this StatefulSet. This service must exist before the StatefulSet, and is responsible for the network identity of the set. Pods get DNS/hostnames that follow the pattern: pod-specific-string.serviceName.default.svc.cluster.local where \"pod-specific-string\" is managed by the StatefulSet controller.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "podManagementPolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is `OrderedReady`, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is `Parallel` which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once.\n\nPossible enum values:\n - `\"OrderedReady\"` will create pods in strictly increasing order on scale up and strictly decreasing order on scale down, progressing only when the previous pod is ready or terminated. At most one pod will be changed at any time.\n - `\"Parallel\"` will create and delete pods as soon as the stateful set replica count is changed, and will not wait for pods to be ready or complete termination.",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"OrderedReady", "Parallel"},
+ },
+ },
+ "updateStrategy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "updateStrategy indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the StatefulSet when a revision is made to Template.",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/apps/v1.StatefulSetUpdateStrategy"),
+ },
+ },
+ "revisionHistoryLimit": {
+ SchemaProps: spec.SchemaProps{
+ Description: "revisionHistoryLimit is the maximum number of revisions that will be maintained in the StatefulSet's revision history. The revision history consists of all revisions not represented by a currently applied StatefulSetSpec version. The default value is 10.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "minReadySeconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "persistentVolumeClaimRetentionPolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "persistentVolumeClaimRetentionPolicy describes the lifecycle of persistent volume claims created from volumeClaimTemplates. By default, all persistent volume claims are created as needed and retained until manually deleted. This policy allows the lifecycle to be altered, for example by deleting persistent volume claims when their stateful set is deleted, or when their pod is scaled down.",
+ Ref: ref("k8s.io/api/apps/v1.StatefulSetPersistentVolumeClaimRetentionPolicy"),
+ },
+ },
+ "ordinals": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ordinals controls the numbering of replica indices in a StatefulSet. The default ordinals behavior assigns a \"0\" index to the first replica and increments the index by one for each additional replica requested.",
+ Ref: ref("k8s.io/api/apps/v1.StatefulSetOrdinals"),
+ },
+ },
+ },
+ Required: []string{"selector", "template"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/apps/v1.StatefulSetOrdinals", "k8s.io/api/apps/v1.StatefulSetPersistentVolumeClaimRetentionPolicy", "k8s.io/api/apps/v1.StatefulSetUpdateStrategy", "k8s.io/api/core/v1.PersistentVolumeClaim", "k8s.io/api/core/v1.PodTemplateSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"},
+ }
+}
+
+func schema_k8sio_api_apps_v1_StatefulSetStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "StatefulSetStatus represents the current state of a StatefulSet.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "observedGeneration": {
+ SchemaProps: spec.SchemaProps{
+ Description: "observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the StatefulSet's generation, which is updated on mutation by the API Server.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "replicas": {
+ SchemaProps: spec.SchemaProps{
+ Description: "replicas is the number of Pods created by the StatefulSet controller.",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "readyReplicas": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readyReplicas is the number of pods created for this StatefulSet with a Ready Condition.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "currentReplicas": {
+ SchemaProps: spec.SchemaProps{
+ Description: "currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "updatedReplicas": {
+ SchemaProps: spec.SchemaProps{
+ Description: "updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "currentRevision": {
+ SchemaProps: spec.SchemaProps{
+ Description: "currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "updateRevision": {
+ SchemaProps: spec.SchemaProps{
+ Description: "updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "collisionCount": {
+ SchemaProps: spec.SchemaProps{
+ Description: "collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "conditions": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "type",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "type",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents the latest available observations of a statefulset's current state.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/apps/v1.StatefulSetCondition"),
+ },
+ },
+ },
+ },
+ },
+ "availableReplicas": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Total number of available pods (ready for at least minReadySeconds) targeted by this statefulset.",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ },
+ Required: []string{"replicas"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/apps/v1.StatefulSetCondition"},
+ }
+}
+
+func schema_k8sio_api_apps_v1_StatefulSetUpdateStrategy(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.\n\nPossible enum values:\n - `\"OnDelete\"` triggers the legacy behavior. Version tracking and ordered rolling restarts are disabled. Pods are recreated from the StatefulSetSpec when they are manually deleted. When a scale operation is performed with this strategy,specification version indicated by the StatefulSet's currentRevision.\n - `\"RollingUpdate\"` indicates that update will be applied to all Pods in the StatefulSet with respect to the StatefulSet ordering constraints. When a scale operation is performed with this strategy, new Pods will be created from the specification version indicated by the StatefulSet's updateRevision.",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"OnDelete", "RollingUpdate"},
+ },
+ },
+ "rollingUpdate": {
+ SchemaProps: spec.SchemaProps{
+ Description: "RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.",
+ Ref: ref("k8s.io/api/apps/v1.RollingUpdateStatefulSetStrategy"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/apps/v1.RollingUpdateStatefulSetStrategy"},
+ }
+}
+
+func schema_k8sio_api_core_v1_AWSElasticBlockStoreVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a Persistent Disk resource in AWS.\n\nAn AWS EBS disk must exist before mounting to a container. The disk must also be in the same AWS zone as the kubelet. An AWS EBS disk can only be mounted as read/write once. AWS EBS volumes support ownership management and SELinux relabeling.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "volumeID": {
+ SchemaProps: spec.SchemaProps{
+ Description: "volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fsType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "partition": {
+ SchemaProps: spec.SchemaProps{
+ Description: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty).",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"volumeID"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_Affinity(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Affinity is a group of affinity scheduling rules.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "nodeAffinity": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Describes node affinity scheduling rules for the pod.",
+ Ref: ref("k8s.io/api/core/v1.NodeAffinity"),
+ },
+ },
+ "podAffinity": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).",
+ Ref: ref("k8s.io/api/core/v1.PodAffinity"),
+ },
+ },
+ "podAntiAffinity": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).",
+ Ref: ref("k8s.io/api/core/v1.PodAntiAffinity"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.NodeAffinity", "k8s.io/api/core/v1.PodAffinity", "k8s.io/api/core/v1.PodAntiAffinity"},
+ }
+}
+
+func schema_k8sio_api_core_v1_AppArmorProfile(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "AppArmorProfile defines a pod or container's AppArmor settings.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Description: "type indicates which kind of AppArmor profile will be applied. Valid options are:\n Localhost - a profile pre-loaded on the node.\n RuntimeDefault - the container runtime's default profile.\n Unconfined - no AppArmor enforcement.\n\nPossible enum values:\n - `\"Localhost\"` indicates that a profile pre-loaded on the node should be used.\n - `\"RuntimeDefault\"` indicates that the container runtime's default AppArmor profile should be used.\n - `\"Unconfined\"` indicates that no AppArmor profile should be enforced.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Localhost", "RuntimeDefault", "Unconfined"},
+ },
+ },
+ "localhostProfile": {
+ SchemaProps: spec.SchemaProps{
+ Description: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is \"Localhost\".",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"type"},
+ },
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-unions": []interface{}{
+ map[string]interface{}{
+ "discriminator": "type",
+ "fields-to-discriminateBy": map[string]interface{}{
+ "localhostProfile": "LocalhostProfile",
+ },
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_AttachedVolume(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "AttachedVolume describes a volume attached to a node",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of the attached volume",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "devicePath": {
+ SchemaProps: spec.SchemaProps{
+ Description: "DevicePath represents the device path where the volume should be available",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"name", "devicePath"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_AvoidPods(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "AvoidPods describes pods that should avoid this node. This is the value for a Node annotation with key scheduler.alpha.kubernetes.io/preferAvoidPods and will eventually become a field of NodeStatus.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "preferAvoidPods": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Bounded-sized list of signatures of pods that should avoid this node, sorted in timestamp order from oldest to newest. Size of the slice is unspecified.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PreferAvoidPodsEntry"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.PreferAvoidPodsEntry"},
+ }
+}
+
+func schema_k8sio_api_core_v1_AzureDiskVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "diskName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "diskName is the Name of the data disk in the blob storage",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "diskURI": {
+ SchemaProps: spec.SchemaProps{
+ Description: "diskURI is the URI of data disk in the blob storage",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "cachingMode": {
+ SchemaProps: spec.SchemaProps{
+ Description: "cachingMode is the Host Caching mode: None, Read Only, Read Write.\n\nPossible enum values:\n - `\"None\"`\n - `\"ReadOnly\"`\n - `\"ReadWrite\"`",
+ Default: v1.AzureDataDiskCachingReadWrite,
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"None", "ReadOnly", "ReadWrite"},
+ },
+ },
+ "fsType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.",
+ Default: "ext4",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.",
+ Default: false,
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared\n\nPossible enum values:\n - `\"Dedicated\"`\n - `\"Managed\"`\n - `\"Shared\"`",
+ Default: v1.AzureSharedBlobDisk,
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Dedicated", "Managed", "Shared"},
+ },
+ },
+ },
+ Required: []string{"diskName", "diskURI"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_AzureFilePersistentVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "secretName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "secretName is the name of secret that contains Azure Storage Account Name and Key",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "shareName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "shareName is the azure Share Name",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "secretNamespace": {
+ SchemaProps: spec.SchemaProps{
+ Description: "secretNamespace is the namespace of the secret that contains Azure Storage Account Name and Key default is the same as the Pod",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"secretName", "shareName"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_AzureFileVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "secretName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "secretName is the name of secret that contains Azure Storage Account Name and Key",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "shareName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "shareName is the azure share Name",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"secretName", "shareName"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_Binding(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Binding ties one object to another; for example, a pod is bound to a node by a scheduler.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "target": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The target object that you want to bind to the standard object.",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ObjectReference"),
+ },
+ },
+ },
+ Required: []string{"target"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ObjectReference", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_CSIPersistentVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents storage that is managed by an external CSI volume driver",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "driver": {
+ SchemaProps: spec.SchemaProps{
+ Description: "driver is the name of the driver to use for this volume. Required.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "volumeHandle": {
+ SchemaProps: spec.SchemaProps{
+ Description: "volumeHandle is the unique volume name returned by the CSI volume plugin’s CreateVolume to refer to the volume on all subsequent calls. Required.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly value to pass to ControllerPublishVolumeRequest. Defaults to false (read/write).",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "fsType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fsType to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\".",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "volumeAttributes": {
+ SchemaProps: spec.SchemaProps{
+ Description: "volumeAttributes of the volume to publish.",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "controllerPublishSecretRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "controllerPublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI ControllerPublishVolume and ControllerUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed.",
+ Ref: ref("k8s.io/api/core/v1.SecretReference"),
+ },
+ },
+ "nodeStageSecretRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "nodeStageSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodeStageVolume and NodeStageVolume and NodeUnstageVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed.",
+ Ref: ref("k8s.io/api/core/v1.SecretReference"),
+ },
+ },
+ "nodePublishSecretRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed.",
+ Ref: ref("k8s.io/api/core/v1.SecretReference"),
+ },
+ },
+ "controllerExpandSecretRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "controllerExpandSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI ControllerExpandVolume call. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed.",
+ Ref: ref("k8s.io/api/core/v1.SecretReference"),
+ },
+ },
+ "nodeExpandSecretRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "nodeExpandSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodeExpandVolume call. This field is optional, may be omitted if no secret is required. If the secret object contains more than one secret, all secrets are passed.",
+ Ref: ref("k8s.io/api/core/v1.SecretReference"),
+ },
+ },
+ },
+ Required: []string{"driver", "volumeHandle"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.SecretReference"},
+ }
+}
+
+func schema_k8sio_api_core_v1_CSIVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a source location of a volume to mount, managed by an external CSI driver",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "driver": {
+ SchemaProps: spec.SchemaProps{
+ Description: "driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "fsType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fsType to mount. Ex. \"ext4\", \"xfs\", \"ntfs\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "volumeAttributes": {
+ SchemaProps: spec.SchemaProps{
+ Description: "volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "nodePublishSecretRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.",
+ Ref: ref("k8s.io/api/core/v1.LocalObjectReference"),
+ },
+ },
+ },
+ Required: []string{"driver"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.LocalObjectReference"},
+ }
+}
+
+func schema_k8sio_api_core_v1_Capabilities(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Adds and removes POSIX capabilities from running containers.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "add": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Added capabilities",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "drop": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Removed capabilities",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_CephFSPersistentVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "monitors": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "path": {
+ SchemaProps: spec.SchemaProps{
+ Description: "path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "user": {
+ SchemaProps: spec.SchemaProps{
+ Description: "user is Optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "secretFile": {
+ SchemaProps: spec.SchemaProps{
+ Description: "secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "secretRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it",
+ Ref: ref("k8s.io/api/core/v1.SecretReference"),
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"monitors"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.SecretReference"},
+ }
+}
+
+func schema_k8sio_api_core_v1_CephFSVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "monitors": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "path": {
+ SchemaProps: spec.SchemaProps{
+ Description: "path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "user": {
+ SchemaProps: spec.SchemaProps{
+ Description: "user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "secretFile": {
+ SchemaProps: spec.SchemaProps{
+ Description: "secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "secretRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it",
+ Ref: ref("k8s.io/api/core/v1.LocalObjectReference"),
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"monitors"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.LocalObjectReference"},
+ }
+}
+
+func schema_k8sio_api_core_v1_CinderPersistentVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "volumeID": {
+ SchemaProps: spec.SchemaProps{
+ Description: "volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fsType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fsType Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "secretRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "secretRef is Optional: points to a secret object containing parameters used to connect to OpenStack.",
+ Ref: ref("k8s.io/api/core/v1.SecretReference"),
+ },
+ },
+ },
+ Required: []string{"volumeID"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.SecretReference"},
+ }
+}
+
+func schema_k8sio_api_core_v1_CinderVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "volumeID": {
+ SchemaProps: spec.SchemaProps{
+ Description: "volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fsType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "secretRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.",
+ Ref: ref("k8s.io/api/core/v1.LocalObjectReference"),
+ },
+ },
+ },
+ Required: []string{"volumeID"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.LocalObjectReference"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ClientIPConfig(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ClientIPConfig represents the configurations of Client IP based session affinity.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "timeoutSeconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "timeoutSeconds specifies the seconds of ClientIP type session sticky time. The value must be >0 && <=86400(for 1 day) if ServiceAffinity == \"ClientIP\". Default value is 10800(for 3 hours).",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_ClusterTrustBundleProjection(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ClusterTrustBundleProjection describes how to select a set of ClusterTrustBundle objects and project their contents into the pod filesystem.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Select a single ClusterTrustBundle by object name. Mutually-exclusive with signerName and labelSelector.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "signerName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Select all ClusterTrustBundles that match this signer name. Mutually-exclusive with name. The contents of all selected ClusterTrustBundles will be unified and deduplicated.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "labelSelector": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Select all ClusterTrustBundles that match this label selector. Only has effect if signerName is set. Mutually-exclusive with name. If unset, interpreted as \"match nothing\". If set but empty, interpreted as \"match everything\".",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"),
+ },
+ },
+ "optional": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If true, don't block pod startup if the referenced ClusterTrustBundle(s) aren't available. If using name, then the named ClusterTrustBundle is allowed not to exist. If using signerName, then the combination of signerName and labelSelector is allowed to match zero ClusterTrustBundles.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "path": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Relative path from the volume root to write the bundle.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"path"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ComponentCondition(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Information about the condition of a component.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Type of condition for a component. Valid value: \"Healthy\"",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Status of the condition for a component. Valid values for \"Healthy\": \"True\", \"False\", or \"Unknown\".",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "message": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Message about the condition for a component. For example, information about a health check.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "error": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Condition error code for a component. For example, a health check error code.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"type", "status"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_ComponentStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ComponentStatus (and ComponentStatusList) holds the cluster validation info. Deprecated: This API is deprecated in v1.19+",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "conditions": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "type",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "type",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "List of component conditions observed",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ComponentCondition"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ComponentCondition", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ComponentStatusList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Status of all the conditions for the component as a list of ComponentStatus objects. Deprecated: This API is deprecated in v1.19+",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Description: "List of ComponentStatus objects.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ComponentStatus"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"items"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ComponentStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ConfigMap(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ConfigMap holds configuration data for pods to consume.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "immutable": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Immutable, if set to true, ensures that data stored in the ConfigMap cannot be updated (only object metadata can be modified). If not set to true, the field can be modified at any time. Defaulted to nil.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "data": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Data contains the configuration data. Each key must consist of alphanumeric characters, '-', '_' or '.'. Values with non-UTF-8 byte sequences must use the BinaryData field. The keys stored in Data must not overlap with the keys in the BinaryData field, this is enforced during validation process.",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "binaryData": {
+ SchemaProps: spec.SchemaProps{
+ Description: "BinaryData contains the binary data. Each key must consist of alphanumeric characters, '-', '_' or '.'. BinaryData can contain byte sequences that are not in the UTF-8 range. The keys stored in BinaryData must not overlap with the ones in the Data field, this is enforced during validation process. Using this field will require 1.10+ apiserver and kubelet.",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "byte",
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ConfigMapEnvSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ConfigMapEnvSource selects a ConfigMap to populate the environment variables with.\n\nThe contents of the target ConfigMap's Data field will represent the key-value pairs as environment variables.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "optional": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Specify whether the ConfigMap must be defined",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_ConfigMapKeySelector(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Selects a key from a ConfigMap.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "key": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The key to select.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "optional": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Specify whether the ConfigMap or its key must be defined",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"key"},
+ },
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-map-type": "atomic",
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_ConfigMapList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ConfigMapList is a resource containing a list of ConfigMap objects.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Items is the list of ConfigMaps.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ConfigMap"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"items"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ConfigMap", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ConfigMapNodeConfigSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ConfigMapNodeConfigSource contains the information to reference a ConfigMap as a config source for the Node. This API is deprecated since 1.22: https://git.k8s.io/enhancements/keps/sig-node/281-dynamic-kubelet-configuration",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "namespace": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Namespace is the metadata.namespace of the referenced ConfigMap. This field is required in all cases.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name is the metadata.name of the referenced ConfigMap. This field is required in all cases.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "uid": {
+ SchemaProps: spec.SchemaProps{
+ Description: "UID is the metadata.UID of the referenced ConfigMap. This field is forbidden in Node.Spec, and required in Node.Status.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "resourceVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ResourceVersion is the metadata.ResourceVersion of the referenced ConfigMap. This field is forbidden in Node.Spec, and required in Node.Status.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "kubeletConfigKey": {
+ SchemaProps: spec.SchemaProps{
+ Description: "KubeletConfigKey declares which key of the referenced ConfigMap corresponds to the KubeletConfiguration structure This field is required in all cases.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"namespace", "name", "kubeletConfigKey"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_ConfigMapProjection(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Adapts a ConfigMap into a projected volume.\n\nThe contents of the target ConfigMap's Data field will be presented in a projected volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. Note that this is identical to a configmap volume source without the default mode.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "items": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.KeyToPath"),
+ },
+ },
+ },
+ },
+ },
+ "optional": {
+ SchemaProps: spec.SchemaProps{
+ Description: "optional specify whether the ConfigMap or its keys must be defined",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.KeyToPath"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ConfigMapVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Adapts a ConfigMap into a volume.\n\nThe contents of the target ConfigMap's Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. ConfigMap volumes support ownership management and SELinux relabeling.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "items": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.KeyToPath"),
+ },
+ },
+ },
+ },
+ },
+ "defaultMode": {
+ SchemaProps: spec.SchemaProps{
+ Description: "defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "optional": {
+ SchemaProps: spec.SchemaProps{
+ Description: "optional specify whether the ConfigMap or its keys must be defined",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.KeyToPath"},
+ }
+}
+
+func schema_k8sio_api_core_v1_Container(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "A single application container that you want to run within a pod.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "image": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Container image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "command": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Entrypoint array. Not executed within a shell. The container image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "args": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Arguments to the entrypoint. The container image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "workingDir": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "ports": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "containerPort",
+ "protocol",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "containerPort",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "List of ports to expose from the container. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \"0.0.0.0\" address inside a container will be accessible from the network. Modifying this array with strategic merge patch may corrupt the data. For more information See https://github.com/kubernetes/kubernetes/issues/108255. Cannot be updated.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ContainerPort"),
+ },
+ },
+ },
+ },
+ },
+ "envFrom": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "List of sources to populate environment variables in the container. The keys defined within a source may consist of any printable ASCII characters except '='. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.EnvFromSource"),
+ },
+ },
+ },
+ },
+ },
+ "env": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "name",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "List of environment variables to set in the container. Cannot be updated.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.EnvVar"),
+ },
+ },
+ },
+ },
+ },
+ "resources": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ResourceRequirements"),
+ },
+ },
+ "resizePolicy": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Resources resize policy for the container.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ContainerResizePolicy"),
+ },
+ },
+ },
+ },
+ },
+ "restartPolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "RestartPolicy defines the restart behavior of individual containers in a pod. This overrides the pod-level restart policy. When this field is not specified, the restart behavior is defined by the Pod's restart policy and the container type. Additionally, setting the RestartPolicy as \"Always\" for the init container will have the following effect: this init container will be continually restarted on exit until all regular containers have terminated. Once all regular containers have completed, all init containers with restartPolicy \"Always\" will be shut down. This lifecycle differs from normal init containers and is often referred to as a \"sidecar\" container. Although this init container still starts in the init container sequence, it does not wait for the container to complete before proceeding to the next init container. Instead, the next init container starts immediately after this init container is started, or after any startupProbe has successfully completed.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "restartPolicyRules": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a list of rules to be checked to determine if the container should be restarted on exit. The rules are evaluated in order. Once a rule matches a container exit condition, the remaining rules are ignored. If no rule matches the container exit condition, the Container-level restart policy determines the whether the container is restarted or not. Constraints on the rules: - At most 20 rules are allowed. - Rules can have the same action. - Identical rules are not forbidden in validations. When rules are specified, container MUST set RestartPolicy explicitly even it if matches the Pod's RestartPolicy.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ContainerRestartRule"),
+ },
+ },
+ },
+ },
+ },
+ "volumeMounts": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "mountPath",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "mountPath",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Pod volumes to mount into the container's filesystem. Cannot be updated.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.VolumeMount"),
+ },
+ },
+ },
+ },
+ },
+ "volumeDevices": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "devicePath",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "devicePath",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "volumeDevices is the list of block devices to be used by the container.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.VolumeDevice"),
+ },
+ },
+ },
+ },
+ },
+ "livenessProbe": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
+ Ref: ref("k8s.io/api/core/v1.Probe"),
+ },
+ },
+ "readinessProbe": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
+ Ref: ref("k8s.io/api/core/v1.Probe"),
+ },
+ },
+ "startupProbe": {
+ SchemaProps: spec.SchemaProps{
+ Description: "StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
+ Ref: ref("k8s.io/api/core/v1.Probe"),
+ },
+ },
+ "lifecycle": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Actions that the management system should take in response to container lifecycle events. Cannot be updated.",
+ Ref: ref("k8s.io/api/core/v1.Lifecycle"),
+ },
+ },
+ "terminationMessagePath": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "terminationMessagePolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.\n\nPossible enum values:\n - `\"FallbackToLogsOnError\"` will read the most recent contents of the container logs for the container status message when the container exits with an error and the terminationMessagePath has no contents.\n - `\"File\"` is the default behavior and will set the container status message to the contents of the container's terminationMessagePath when the container exits.",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"FallbackToLogsOnError", "File"},
+ },
+ },
+ "imagePullPolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images\n\nPossible enum values:\n - `\"Always\"` means that kubelet always attempts to pull the latest image. Container will fail If the pull fails.\n - `\"IfNotPresent\"` means that kubelet pulls if the image isn't present on disk. Container will fail if the image isn't present and the pull fails.\n - `\"Never\"` means that kubelet never pulls an image, but only uses a local image. Container will fail if the image isn't present",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Always", "IfNotPresent", "Never"},
+ },
+ },
+ "securityContext": {
+ SchemaProps: spec.SchemaProps{
+ Description: "SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/",
+ Ref: ref("k8s.io/api/core/v1.SecurityContext"),
+ },
+ },
+ "stdin": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "stdinOnce": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "tty": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"name"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ContainerPort", "k8s.io/api/core/v1.ContainerResizePolicy", "k8s.io/api/core/v1.ContainerRestartRule", "k8s.io/api/core/v1.EnvFromSource", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.VolumeDevice", "k8s.io/api/core/v1.VolumeMount"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ContainerExtendedResourceRequest(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ContainerExtendedResourceRequest has the mapping of container name, extended resource name to the device request name.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "containerName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The name of the container requesting resources.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "resourceName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The name of the extended resource in that container which gets backed by DRA.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "requestName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The name of the request in the special ResourceClaim which corresponds to the extended resource.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"containerName", "resourceName", "requestName"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_ContainerImage(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Describe a container image",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "names": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Names by which this image is known. e.g. [\"kubernetes.example/hyperkube:v1.0.7\", \"cloud-vendor.registry.example/cloud-vendor/hyperkube:v1.0.7\"]",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "sizeBytes": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The size of the image in bytes.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_ContainerPort(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ContainerPort represents a network port in a single container.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "hostPort": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Number of port to expose on the host. If specified, this must be a valid port number, 0 < x < 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "containerPort": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Number of port to expose on the pod's IP address. This must be a valid port number, 0 < x < 65536.",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "protocol": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Protocol for port. Must be UDP, TCP, or SCTP. Defaults to \"TCP\".\n\nPossible enum values:\n - `\"SCTP\"` is the SCTP protocol.\n - `\"TCP\"` is the TCP protocol.\n - `\"UDP\"` is the UDP protocol.",
+ Default: "TCP",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"SCTP", "TCP", "UDP"},
+ },
+ },
+ "hostIP": {
+ SchemaProps: spec.SchemaProps{
+ Description: "What host IP to bind the external port to.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"containerPort"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_ContainerResizePolicy(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ContainerResizePolicy represents resource resize policy for the container.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "resourceName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of the resource to which this resource resize policy applies. Supported values: cpu, memory.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "restartPolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Restart policy to apply when specified resource is resized. If not specified, it defaults to NotRequired.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"resourceName", "restartPolicy"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_ContainerRestartRule(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ContainerRestartRule describes how a container exit is handled.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "action": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Specifies the action taken on a container exit if the requirements are satisfied. The only possible value is \"Restart\" to restart the container.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "exitCodes": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents the exit codes to check on container exits.",
+ Ref: ref("k8s.io/api/core/v1.ContainerRestartRuleOnExitCodes"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ContainerRestartRuleOnExitCodes"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ContainerRestartRuleOnExitCodes(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ContainerRestartRuleOnExitCodes describes the condition for handling an exited container based on its exit codes.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "operator": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents the relationship between the container exit code(s) and the specified values. Possible values are: - In: the requirement is satisfied if the container exit code is in the\n set of specified values.\n- NotIn: the requirement is satisfied if the container exit code is\n not in the set of specified values.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "values": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "set",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Specifies the set of values to check for container exit codes. At most 255 elements are allowed.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_ContainerState(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ContainerState holds a possible state of container. Only one of its members may be specified. If none of them is specified, the default one is ContainerStateWaiting.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "waiting": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Details about a waiting container",
+ Ref: ref("k8s.io/api/core/v1.ContainerStateWaiting"),
+ },
+ },
+ "running": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Details about a running container",
+ Ref: ref("k8s.io/api/core/v1.ContainerStateRunning"),
+ },
+ },
+ "terminated": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Details about a terminated container",
+ Ref: ref("k8s.io/api/core/v1.ContainerStateTerminated"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ContainerStateRunning", "k8s.io/api/core/v1.ContainerStateTerminated", "k8s.io/api/core/v1.ContainerStateWaiting"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ContainerStateRunning(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ContainerStateRunning is a running state of a container.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "startedAt": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Time at which the container was last (re-)started",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.Time"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ContainerStateTerminated(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ContainerStateTerminated is a terminated state of a container.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "exitCode": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Exit status from the last termination of the container",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "signal": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Signal from the last termination of the container",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "reason": {
+ SchemaProps: spec.SchemaProps{
+ Description: "(brief) reason from the last termination of the container",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "message": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Message regarding the last termination of the container",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "startedAt": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Time at which previous execution of the container started",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ "finishedAt": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Time at which the container last terminated",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ "containerID": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Container's ID in the format '://'",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"exitCode"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.Time"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ContainerStateWaiting(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ContainerStateWaiting is a waiting state of a container.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "reason": {
+ SchemaProps: spec.SchemaProps{
+ Description: "(brief) reason the container is not yet running.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "message": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Message regarding why the container is not yet running.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_ContainerStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ContainerStatus contains details for the current status of this container.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name is a DNS_LABEL representing the unique name of the container. Each container in a pod must have a unique name across all container types. Cannot be updated.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "state": {
+ SchemaProps: spec.SchemaProps{
+ Description: "State holds details about the container's current condition.",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ContainerState"),
+ },
+ },
+ "lastState": {
+ SchemaProps: spec.SchemaProps{
+ Description: "LastTerminationState holds the last termination state of the container to help debug container crashes and restarts. This field is not populated if the container is still running and RestartCount is 0.",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ContainerState"),
+ },
+ },
+ "ready": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Ready specifies whether the container is currently passing its readiness check. The value will change as readiness probes keep executing. If no readiness probes are specified, this field defaults to true once the container is fully started (see Started field).\n\nThe value is typically used to determine whether a container is ready to accept traffic.",
+ Default: false,
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "restartCount": {
+ SchemaProps: spec.SchemaProps{
+ Description: "RestartCount holds the number of times the container has been restarted. Kubelet makes an effort to always increment the value, but there are cases when the state may be lost due to node restarts and then the value may be reset to 0. The value is never negative.",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "image": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Image is the name of container image that the container is running. The container image may not match the image used in the PodSpec, as it may have been resolved by the runtime. More info: https://kubernetes.io/docs/concepts/containers/images.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "imageID": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ImageID is the image ID of the container's image. The image ID may not match the image ID of the image used in the PodSpec, as it may have been resolved by the runtime.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "containerID": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ContainerID is the ID of the container in the format '://'. Where type is a container runtime identifier, returned from Version call of CRI API (for example \"containerd\").",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "started": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Started indicates whether the container has finished its postStart lifecycle hook and passed its startup probe. Initialized as false, becomes true after startupProbe is considered successful. Resets to false when the container is restarted, or if kubelet loses state temporarily. In both cases, startup probes will run again. Is always true when no startupProbe is defined and container is running and has passed the postStart lifecycle hook. The null value must be treated the same as false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "allocatedResources": {
+ SchemaProps: spec.SchemaProps{
+ Description: "AllocatedResources represents the compute resources allocated for this container by the node. Kubelet sets this value to Container.Resources.Requests upon successful pod admission and after successfully admitting desired pod resize.",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
+ },
+ },
+ },
+ },
+ },
+ "resources": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Resources represents the compute resource requests and limits that have been successfully enacted on the running container after it has been started or has been successfully resized.",
+ Ref: ref("k8s.io/api/core/v1.ResourceRequirements"),
+ },
+ },
+ "volumeMounts": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "mountPath",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "mountPath",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Status of volume mounts.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.VolumeMountStatus"),
+ },
+ },
+ },
+ },
+ },
+ "user": {
+ SchemaProps: spec.SchemaProps{
+ Description: "User represents user identity information initially attached to the first process of the container",
+ Ref: ref("k8s.io/api/core/v1.ContainerUser"),
+ },
+ },
+ "allocatedResourcesStatus": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "name",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "AllocatedResourcesStatus represents the status of various resources allocated for this Pod.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ResourceStatus"),
+ },
+ },
+ },
+ },
+ },
+ "stopSignal": {
+ SchemaProps: spec.SchemaProps{
+ Description: "StopSignal reports the effective stop signal for this container\n\nPossible enum values:\n - `\"SIGABRT\"`\n - `\"SIGALRM\"`\n - `\"SIGBUS\"`\n - `\"SIGCHLD\"`\n - `\"SIGCLD\"`\n - `\"SIGCONT\"`\n - `\"SIGFPE\"`\n - `\"SIGHUP\"`\n - `\"SIGILL\"`\n - `\"SIGINT\"`\n - `\"SIGIO\"`\n - `\"SIGIOT\"`\n - `\"SIGKILL\"`\n - `\"SIGPIPE\"`\n - `\"SIGPOLL\"`\n - `\"SIGPROF\"`\n - `\"SIGPWR\"`\n - `\"SIGQUIT\"`\n - `\"SIGRTMAX\"`\n - `\"SIGRTMAX-1\"`\n - `\"SIGRTMAX-10\"`\n - `\"SIGRTMAX-11\"`\n - `\"SIGRTMAX-12\"`\n - `\"SIGRTMAX-13\"`\n - `\"SIGRTMAX-14\"`\n - `\"SIGRTMAX-2\"`\n - `\"SIGRTMAX-3\"`\n - `\"SIGRTMAX-4\"`\n - `\"SIGRTMAX-5\"`\n - `\"SIGRTMAX-6\"`\n - `\"SIGRTMAX-7\"`\n - `\"SIGRTMAX-8\"`\n - `\"SIGRTMAX-9\"`\n - `\"SIGRTMIN\"`\n - `\"SIGRTMIN+1\"`\n - `\"SIGRTMIN+10\"`\n - `\"SIGRTMIN+11\"`\n - `\"SIGRTMIN+12\"`\n - `\"SIGRTMIN+13\"`\n - `\"SIGRTMIN+14\"`\n - `\"SIGRTMIN+15\"`\n - `\"SIGRTMIN+2\"`\n - `\"SIGRTMIN+3\"`\n - `\"SIGRTMIN+4\"`\n - `\"SIGRTMIN+5\"`\n - `\"SIGRTMIN+6\"`\n - `\"SIGRTMIN+7\"`\n - `\"SIGRTMIN+8\"`\n - `\"SIGRTMIN+9\"`\n - `\"SIGSEGV\"`\n - `\"SIGSTKFLT\"`\n - `\"SIGSTOP\"`\n - `\"SIGSYS\"`\n - `\"SIGTERM\"`\n - `\"SIGTRAP\"`\n - `\"SIGTSTP\"`\n - `\"SIGTTIN\"`\n - `\"SIGTTOU\"`\n - `\"SIGURG\"`\n - `\"SIGUSR1\"`\n - `\"SIGUSR2\"`\n - `\"SIGVTALRM\"`\n - `\"SIGWINCH\"`\n - `\"SIGXCPU\"`\n - `\"SIGXFSZ\"`",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"SIGABRT", "SIGALRM", "SIGBUS", "SIGCHLD", "SIGCLD", "SIGCONT", "SIGFPE", "SIGHUP", "SIGILL", "SIGINT", "SIGIO", "SIGIOT", "SIGKILL", "SIGPIPE", "SIGPOLL", "SIGPROF", "SIGPWR", "SIGQUIT", "SIGRTMAX", "SIGRTMAX-1", "SIGRTMAX-10", "SIGRTMAX-11", "SIGRTMAX-12", "SIGRTMAX-13", "SIGRTMAX-14", "SIGRTMAX-2", "SIGRTMAX-3", "SIGRTMAX-4", "SIGRTMAX-5", "SIGRTMAX-6", "SIGRTMAX-7", "SIGRTMAX-8", "SIGRTMAX-9", "SIGRTMIN", "SIGRTMIN+1", "SIGRTMIN+10", "SIGRTMIN+11", "SIGRTMIN+12", "SIGRTMIN+13", "SIGRTMIN+14", "SIGRTMIN+15", "SIGRTMIN+2", "SIGRTMIN+3", "SIGRTMIN+4", "SIGRTMIN+5", "SIGRTMIN+6", "SIGRTMIN+7", "SIGRTMIN+8", "SIGRTMIN+9", "SIGSEGV", "SIGSTKFLT", "SIGSTOP", "SIGSYS", "SIGTERM", "SIGTRAP", "SIGTSTP", "SIGTTIN", "SIGTTOU", "SIGURG", "SIGUSR1", "SIGUSR2", "SIGVTALRM", "SIGWINCH", "SIGXCPU", "SIGXFSZ"},
+ },
+ },
+ },
+ Required: []string{"name", "ready", "restartCount", "image", "imageID"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ContainerState", "k8s.io/api/core/v1.ContainerUser", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.ResourceStatus", "k8s.io/api/core/v1.VolumeMountStatus", "k8s.io/apimachinery/pkg/api/resource.Quantity"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ContainerUser(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ContainerUser represents user identity information",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "linux": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Linux holds user identity information initially attached to the first process of the containers in Linux. Note that the actual running identity can be changed if the process has enough privilege to do so.",
+ Ref: ref("k8s.io/api/core/v1.LinuxContainerUser"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.LinuxContainerUser"},
+ }
+}
+
+func schema_k8sio_api_core_v1_DaemonEndpoint(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "DaemonEndpoint contains information about a single Daemon endpoint.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "Port": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Port number of the given endpoint.",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ },
+ Required: []string{"Port"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_DownwardAPIProjection(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents downward API info for projecting into a projected volume. Note that this is identical to a downwardAPI volume source without the default mode.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "items": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Items is a list of DownwardAPIVolume file",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.DownwardAPIVolumeFile"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.DownwardAPIVolumeFile"},
+ }
+}
+
+func schema_k8sio_api_core_v1_DownwardAPIVolumeFile(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "DownwardAPIVolumeFile represents information to create the file containing the pod field",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "path": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fieldRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.",
+ Ref: ref("k8s.io/api/core/v1.ObjectFieldSelector"),
+ },
+ },
+ "resourceFieldRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.",
+ Ref: ref("k8s.io/api/core/v1.ResourceFieldSelector"),
+ },
+ },
+ "mode": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ },
+ Required: []string{"path"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ObjectFieldSelector", "k8s.io/api/core/v1.ResourceFieldSelector"},
+ }
+}
+
+func schema_k8sio_api_core_v1_DownwardAPIVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "DownwardAPIVolumeSource represents a volume containing downward API info. Downward API volumes support ownership management and SELinux relabeling.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "items": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Items is a list of downward API volume file",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.DownwardAPIVolumeFile"),
+ },
+ },
+ },
+ },
+ },
+ "defaultMode": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.DownwardAPIVolumeFile"},
+ }
+}
+
+func schema_k8sio_api_core_v1_EmptyDirVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "medium": {
+ SchemaProps: spec.SchemaProps{
+ Description: "medium represents what type of storage medium should back this directory. The default is \"\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "sizeLimit": {
+ SchemaProps: spec.SchemaProps{
+ Description: "sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir",
+ Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/api/resource.Quantity"},
+ }
+}
+
+func schema_k8sio_api_core_v1_EndpointAddress(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "EndpointAddress is a tuple that describes single IP address. Deprecated: This API is deprecated in v1.33+.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "ip": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The IP of this endpoint. May not be loopback (127.0.0.0/8 or ::1), link-local (169.254.0.0/16 or fe80::/10), or link-local multicast (224.0.0.0/24 or ff02::/16).",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "hostname": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The Hostname of this endpoint",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "nodeName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "targetRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Reference to object providing the endpoint.",
+ Ref: ref("k8s.io/api/core/v1.ObjectReference"),
+ },
+ },
+ },
+ Required: []string{"ip"},
+ },
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-map-type": "atomic",
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ObjectReference"},
+ }
+}
+
+func schema_k8sio_api_core_v1_EndpointPort(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "EndpointPort is a tuple that describes a single port. Deprecated: This API is deprecated in v1.33+.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The name of this port. This must match the 'name' field in the corresponding ServicePort. Must be a DNS_LABEL. Optional only if one port is defined.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "port": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The port number of the endpoint.",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "protocol": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP.\n\nPossible enum values:\n - `\"SCTP\"` is the SCTP protocol.\n - `\"TCP\"` is the TCP protocol.\n - `\"UDP\"` is the UDP protocol.",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"SCTP", "TCP", "UDP"},
+ },
+ },
+ "appProtocol": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The application protocol for this port. This is used as a hint for implementations to offer richer behavior for protocols that they understand. This field follows standard Kubernetes label syntax. Valid values are either:\n\n* Un-prefixed protocol names - reserved for IANA standard service names (as per RFC-6335 and https://www.iana.org/assignments/service-names).\n\n* Kubernetes-defined prefixed names:\n * 'kubernetes.io/h2c' - HTTP/2 prior knowledge over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior-\n * 'kubernetes.io/ws' - WebSocket over cleartext as described in https://www.rfc-editor.org/rfc/rfc6455\n * 'kubernetes.io/wss' - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455\n\n* Other protocols should use implementation-defined prefixed names such as mycompany.com/my-custom-protocol.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"port"},
+ },
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-map-type": "atomic",
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_EndpointSubset(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "EndpointSubset is a group of addresses with a common set of ports. The expanded set of endpoints is the Cartesian product of Addresses x Ports. For example, given:\n\n\t{\n\t Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}],\n\t Ports: [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}]\n\t}\n\nThe resulting set of endpoints can be viewed as:\n\n\ta: [ 10.10.1.1:8675, 10.10.2.2:8675 ],\n\tb: [ 10.10.1.1:309, 10.10.2.2:309 ]\n\nDeprecated: This API is deprecated in v1.33+.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "addresses": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "IP addresses which offer the related ports that are marked as ready. These endpoints should be considered safe for load balancers and clients to utilize.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.EndpointAddress"),
+ },
+ },
+ },
+ },
+ },
+ "notReadyAddresses": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "IP addresses which offer the related ports but are not currently marked as ready because they have not yet finished starting, have recently failed a readiness check, or have recently failed a liveness check.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.EndpointAddress"),
+ },
+ },
+ },
+ },
+ },
+ "ports": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Port numbers available on the related IP addresses.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.EndpointPort"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.EndpointAddress", "k8s.io/api/core/v1.EndpointPort"},
+ }
+}
+
+func schema_k8sio_api_core_v1_Endpoints(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Endpoints is a collection of endpoints that implement the actual service. Example:\n\n\t Name: \"mysvc\",\n\t Subsets: [\n\t {\n\t Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}],\n\t Ports: [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}]\n\t },\n\t {\n\t Addresses: [{\"ip\": \"10.10.3.3\"}],\n\t Ports: [{\"name\": \"a\", \"port\": 93}, {\"name\": \"b\", \"port\": 76}]\n\t },\n\t]\n\nEndpoints is a legacy API and does not contain information about all Service features. Use discoveryv1.EndpointSlice for complete information about Service endpoints.\n\nDeprecated: This API is deprecated in v1.33+. Use discoveryv1.EndpointSlice.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "subsets": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "The set of all endpoints is the union of all subsets. Addresses are placed into subsets according to the IPs they share. A single address with multiple ports, some of which are ready and some of which are not (because they come from different containers) will result in the address being displayed in different subsets for the different ports. No address will appear in both Addresses and NotReadyAddresses in the same subset. Sets of addresses and ports that comprise a service.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.EndpointSubset"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.EndpointSubset", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_EndpointsList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "EndpointsList is a list of endpoints. Deprecated: This API is deprecated in v1.33+.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Description: "List of endpoints.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.Endpoints"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"items"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.Endpoints", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_EnvFromSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "EnvFromSource represents the source of a set of ConfigMaps or Secrets",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "prefix": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Optional text to prepend to the name of each environment variable. May consist of any printable ASCII characters except '='.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "configMapRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The ConfigMap to select from",
+ Ref: ref("k8s.io/api/core/v1.ConfigMapEnvSource"),
+ },
+ },
+ "secretRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The Secret to select from",
+ Ref: ref("k8s.io/api/core/v1.SecretEnvSource"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ConfigMapEnvSource", "k8s.io/api/core/v1.SecretEnvSource"},
+ }
+}
+
+func schema_k8sio_api_core_v1_EnvVar(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "EnvVar represents an environment variable present in a Container.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of the environment variable. May consist of any printable ASCII characters except '='.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "value": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \"\".",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "valueFrom": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Source for the environment variable's value. Cannot be used if value is not empty.",
+ Ref: ref("k8s.io/api/core/v1.EnvVarSource"),
+ },
+ },
+ },
+ Required: []string{"name"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.EnvVarSource"},
+ }
+}
+
+func schema_k8sio_api_core_v1_EnvVarSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "EnvVarSource represents a source for the value of an EnvVar.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "fieldRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.",
+ Ref: ref("k8s.io/api/core/v1.ObjectFieldSelector"),
+ },
+ },
+ "resourceFieldRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.",
+ Ref: ref("k8s.io/api/core/v1.ResourceFieldSelector"),
+ },
+ },
+ "configMapKeyRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Selects a key of a ConfigMap.",
+ Ref: ref("k8s.io/api/core/v1.ConfigMapKeySelector"),
+ },
+ },
+ "secretKeyRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Selects a key of a secret in the pod's namespace",
+ Ref: ref("k8s.io/api/core/v1.SecretKeySelector"),
+ },
+ },
+ "fileKeyRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "FileKeyRef selects a key of the env file. Requires the EnvFiles feature gate to be enabled.",
+ Ref: ref("k8s.io/api/core/v1.FileKeySelector"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ConfigMapKeySelector", "k8s.io/api/core/v1.FileKeySelector", "k8s.io/api/core/v1.ObjectFieldSelector", "k8s.io/api/core/v1.ResourceFieldSelector", "k8s.io/api/core/v1.SecretKeySelector"},
+ }
+}
+
+func schema_k8sio_api_core_v1_EphemeralContainer(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "An EphemeralContainer is a temporary container that you may add to an existing Pod for user-initiated activities such as debugging. Ephemeral containers have no resource or scheduling guarantees, and they will not be restarted when they exit or when a Pod is removed or restarted. The kubelet may evict a Pod if an ephemeral container causes the Pod to exceed its resource allocation.\n\nTo add an ephemeral container, use the ephemeralcontainers subresource of an existing Pod. Ephemeral containers may not be removed or restarted.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of the ephemeral container specified as a DNS_LABEL. This name must be unique among all containers, init containers and ephemeral containers.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "image": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Container image name. More info: https://kubernetes.io/docs/concepts/containers/images",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "command": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Entrypoint array. Not executed within a shell. The image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "args": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Arguments to the entrypoint. The image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "workingDir": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "ports": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "containerPort",
+ "protocol",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "containerPort",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Ports are not allowed for ephemeral containers.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ContainerPort"),
+ },
+ },
+ },
+ },
+ },
+ "envFrom": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "List of sources to populate environment variables in the container. The keys defined within a source may consist of any printable ASCII characters except '='. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.EnvFromSource"),
+ },
+ },
+ },
+ },
+ },
+ "env": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "name",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "List of environment variables to set in the container. Cannot be updated.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.EnvVar"),
+ },
+ },
+ },
+ },
+ },
+ "resources": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod.",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ResourceRequirements"),
+ },
+ },
+ "resizePolicy": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Resources resize policy for the container.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ContainerResizePolicy"),
+ },
+ },
+ },
+ },
+ },
+ "restartPolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Restart policy for the container to manage the restart behavior of each container within a pod. You cannot set this field on ephemeral containers.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "restartPolicyRules": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a list of rules to be checked to determine if the container should be restarted on exit. You cannot set this field on ephemeral containers.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ContainerRestartRule"),
+ },
+ },
+ },
+ },
+ },
+ "volumeMounts": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "mountPath",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "mountPath",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Pod volumes to mount into the container's filesystem. Subpath mounts are not allowed for ephemeral containers. Cannot be updated.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.VolumeMount"),
+ },
+ },
+ },
+ },
+ },
+ "volumeDevices": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "devicePath",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "devicePath",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "volumeDevices is the list of block devices to be used by the container.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.VolumeDevice"),
+ },
+ },
+ },
+ },
+ },
+ "livenessProbe": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Probes are not allowed for ephemeral containers.",
+ Ref: ref("k8s.io/api/core/v1.Probe"),
+ },
+ },
+ "readinessProbe": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Probes are not allowed for ephemeral containers.",
+ Ref: ref("k8s.io/api/core/v1.Probe"),
+ },
+ },
+ "startupProbe": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Probes are not allowed for ephemeral containers.",
+ Ref: ref("k8s.io/api/core/v1.Probe"),
+ },
+ },
+ "lifecycle": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Lifecycle is not allowed for ephemeral containers.",
+ Ref: ref("k8s.io/api/core/v1.Lifecycle"),
+ },
+ },
+ "terminationMessagePath": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "terminationMessagePolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.\n\nPossible enum values:\n - `\"FallbackToLogsOnError\"` will read the most recent contents of the container logs for the container status message when the container exits with an error and the terminationMessagePath has no contents.\n - `\"File\"` is the default behavior and will set the container status message to the contents of the container's terminationMessagePath when the container exits.",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"FallbackToLogsOnError", "File"},
+ },
+ },
+ "imagePullPolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images\n\nPossible enum values:\n - `\"Always\"` means that kubelet always attempts to pull the latest image. Container will fail If the pull fails.\n - `\"IfNotPresent\"` means that kubelet pulls if the image isn't present on disk. Container will fail if the image isn't present and the pull fails.\n - `\"Never\"` means that kubelet never pulls an image, but only uses a local image. Container will fail if the image isn't present",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Always", "IfNotPresent", "Never"},
+ },
+ },
+ "securityContext": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Optional: SecurityContext defines the security options the ephemeral container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.",
+ Ref: ref("k8s.io/api/core/v1.SecurityContext"),
+ },
+ },
+ "stdin": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "stdinOnce": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "tty": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "targetContainerName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If set, the name of the container from PodSpec that this ephemeral container targets. The ephemeral container will be run in the namespaces (IPC, PID, etc) of this container. If not set then the ephemeral container uses the namespaces configured in the Pod spec.\n\nThe container runtime must implement support for this feature. If the runtime does not support namespace targeting then the result of setting this field is undefined.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"name"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ContainerPort", "k8s.io/api/core/v1.ContainerResizePolicy", "k8s.io/api/core/v1.ContainerRestartRule", "k8s.io/api/core/v1.EnvFromSource", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.VolumeDevice", "k8s.io/api/core/v1.VolumeMount"},
+ }
+}
+
+func schema_k8sio_api_core_v1_EphemeralContainerCommon(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "EphemeralContainerCommon is a copy of all fields in Container to be inlined in EphemeralContainer. This separate type allows easy conversion from EphemeralContainer to Container and allows separate documentation for the fields of EphemeralContainer. When a new field is added to Container it must be added here as well.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of the ephemeral container specified as a DNS_LABEL. This name must be unique among all containers, init containers and ephemeral containers.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "image": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Container image name. More info: https://kubernetes.io/docs/concepts/containers/images",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "command": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Entrypoint array. Not executed within a shell. The image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "args": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Arguments to the entrypoint. The image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "workingDir": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "ports": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "containerPort",
+ "protocol",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "containerPort",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Ports are not allowed for ephemeral containers.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ContainerPort"),
+ },
+ },
+ },
+ },
+ },
+ "envFrom": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "List of sources to populate environment variables in the container. The keys defined within a source may consist of any printable ASCII characters except '='. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.EnvFromSource"),
+ },
+ },
+ },
+ },
+ },
+ "env": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "name",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "List of environment variables to set in the container. Cannot be updated.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.EnvVar"),
+ },
+ },
+ },
+ },
+ },
+ "resources": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod.",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ResourceRequirements"),
+ },
+ },
+ "resizePolicy": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Resources resize policy for the container.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ContainerResizePolicy"),
+ },
+ },
+ },
+ },
+ },
+ "restartPolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Restart policy for the container to manage the restart behavior of each container within a pod. You cannot set this field on ephemeral containers.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "restartPolicyRules": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a list of rules to be checked to determine if the container should be restarted on exit. You cannot set this field on ephemeral containers.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ContainerRestartRule"),
+ },
+ },
+ },
+ },
+ },
+ "volumeMounts": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "mountPath",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "mountPath",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Pod volumes to mount into the container's filesystem. Subpath mounts are not allowed for ephemeral containers. Cannot be updated.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.VolumeMount"),
+ },
+ },
+ },
+ },
+ },
+ "volumeDevices": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "devicePath",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "devicePath",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "volumeDevices is the list of block devices to be used by the container.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.VolumeDevice"),
+ },
+ },
+ },
+ },
+ },
+ "livenessProbe": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Probes are not allowed for ephemeral containers.",
+ Ref: ref("k8s.io/api/core/v1.Probe"),
+ },
+ },
+ "readinessProbe": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Probes are not allowed for ephemeral containers.",
+ Ref: ref("k8s.io/api/core/v1.Probe"),
+ },
+ },
+ "startupProbe": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Probes are not allowed for ephemeral containers.",
+ Ref: ref("k8s.io/api/core/v1.Probe"),
+ },
+ },
+ "lifecycle": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Lifecycle is not allowed for ephemeral containers.",
+ Ref: ref("k8s.io/api/core/v1.Lifecycle"),
+ },
+ },
+ "terminationMessagePath": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "terminationMessagePolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.\n\nPossible enum values:\n - `\"FallbackToLogsOnError\"` will read the most recent contents of the container logs for the container status message when the container exits with an error and the terminationMessagePath has no contents.\n - `\"File\"` is the default behavior and will set the container status message to the contents of the container's terminationMessagePath when the container exits.",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"FallbackToLogsOnError", "File"},
+ },
+ },
+ "imagePullPolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images\n\nPossible enum values:\n - `\"Always\"` means that kubelet always attempts to pull the latest image. Container will fail If the pull fails.\n - `\"IfNotPresent\"` means that kubelet pulls if the image isn't present on disk. Container will fail if the image isn't present and the pull fails.\n - `\"Never\"` means that kubelet never pulls an image, but only uses a local image. Container will fail if the image isn't present",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Always", "IfNotPresent", "Never"},
+ },
+ },
+ "securityContext": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Optional: SecurityContext defines the security options the ephemeral container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.",
+ Ref: ref("k8s.io/api/core/v1.SecurityContext"),
+ },
+ },
+ "stdin": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "stdinOnce": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "tty": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"name"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ContainerPort", "k8s.io/api/core/v1.ContainerResizePolicy", "k8s.io/api/core/v1.ContainerRestartRule", "k8s.io/api/core/v1.EnvFromSource", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.VolumeDevice", "k8s.io/api/core/v1.VolumeMount"},
+ }
+}
+
+func schema_k8sio_api_core_v1_EphemeralVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents an ephemeral volume that is handled by a normal storage driver.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "volumeClaimTemplate": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be `-` where `` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long).\n\nAn existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster.\n\nThis field is read-only and no changes will be made by Kubernetes to the PVC after it has been created.\n\nRequired, must not be nil.",
+ Ref: ref("k8s.io/api/core/v1.PersistentVolumeClaimTemplate"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.PersistentVolumeClaimTemplate"},
+ }
+}
+
+func schema_k8sio_api_core_v1_Event(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Event is a report of an event somewhere in the cluster. Events have a limited retention time and triggers and messages may evolve with time. Event consumers should not rely on the timing of an event with a given Reason reflecting a consistent underlying trigger, or the continued existence of events with that Reason. Events should be treated as informative, best-effort, supplemental data.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "involvedObject": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The object that this event is about.",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ObjectReference"),
+ },
+ },
+ "reason": {
+ SchemaProps: spec.SchemaProps{
+ Description: "This should be a short, machine understandable string that gives the reason for the transition into the object's current status.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "message": {
+ SchemaProps: spec.SchemaProps{
+ Description: "A human-readable description of the status of this operation.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "source": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The component reporting this event. Should be a short machine understandable string.",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.EventSource"),
+ },
+ },
+ "firstTimestamp": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ "lastTimestamp": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The time at which the most recent occurrence of this event was recorded.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ "count": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The number of times this event has occurred.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Type of this event (Normal, Warning), new types could be added in the future",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "eventTime": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Time when this Event was first observed.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.MicroTime"),
+ },
+ },
+ "series": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Data about the Event series this event represents or nil if it's a singleton Event.",
+ Ref: ref("k8s.io/api/core/v1.EventSeries"),
+ },
+ },
+ "action": {
+ SchemaProps: spec.SchemaProps{
+ Description: "What action was taken/failed regarding to the Regarding object.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "related": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Optional secondary object for more complex actions.",
+ Ref: ref("k8s.io/api/core/v1.ObjectReference"),
+ },
+ },
+ "reportingComponent": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "reportingInstance": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ID of the controller instance, e.g. `kubelet-xyzf`.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"metadata", "involvedObject"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.EventSeries", "k8s.io/api/core/v1.EventSource", "k8s.io/api/core/v1.ObjectReference", "k8s.io/apimachinery/pkg/apis/meta/v1.MicroTime", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"},
+ }
+}
+
+func schema_k8sio_api_core_v1_EventList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "EventList is a list of events.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Description: "List of events",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.Event"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"items"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.Event", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_EventSeries(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "EventSeries contain information on series of events, i.e. thing that was/is happening continuously for some time.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "count": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Number of occurrences in this series up to the last heartbeat time",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "lastObservedTime": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Time of the last occurrence observed",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.MicroTime"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.MicroTime"},
+ }
+}
+
+func schema_k8sio_api_core_v1_EventSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "EventSource contains information for an event.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "component": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Component from which the event is generated.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "host": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Node name on which the event is generated.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_ExecAction(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ExecAction describes a \"run in container\" action.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "command": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_FCVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted as read/write once. Fibre Channel volumes support ownership management and SELinux relabeling.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "targetWWNs": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "targetWWNs is Optional: FC target worldwide names (WWNs)",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "lun": {
+ SchemaProps: spec.SchemaProps{
+ Description: "lun is Optional: FC target lun number",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "fsType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "wwids": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_FileKeySelector(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "FileKeySelector selects a key of the env file.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "volumeName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The name of the volume mount containing the env file.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "path": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The path within the volume from which to select the file. Must be relative and may not contain the '..' path or start with '..'.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "key": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The key within the env file. An invalid key will prevent the pod from starting. The keys defined within a source may consist of any printable ASCII characters except '='. During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "optional": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Specify whether the file or its key must be defined. If the file or key does not exist, then the env var is not published. If optional is set to true and the specified key does not exist, the environment variable will not be set in the Pod's containers.\n\nIf optional is set to false and the specified key does not exist, an error will be returned during Pod creation.",
+ Default: false,
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"volumeName", "path", "key"},
+ },
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-map-type": "atomic",
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_FlexPersistentVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "FlexPersistentVolumeSource represents a generic persistent volume resource that is provisioned/attached using an exec based plugin.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "driver": {
+ SchemaProps: spec.SchemaProps{
+ Description: "driver is the name of the driver to use for this volume.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fsType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fsType is the Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "secretRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "secretRef is Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.",
+ Ref: ref("k8s.io/api/core/v1.SecretReference"),
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "options": {
+ SchemaProps: spec.SchemaProps{
+ Description: "options is Optional: this field holds extra command options if any.",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"driver"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.SecretReference"},
+ }
+}
+
+func schema_k8sio_api_core_v1_FlexVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "driver": {
+ SchemaProps: spec.SchemaProps{
+ Description: "driver is the name of the driver to use for this volume.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fsType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "secretRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.",
+ Ref: ref("k8s.io/api/core/v1.LocalObjectReference"),
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "options": {
+ SchemaProps: spec.SchemaProps{
+ Description: "options is Optional: this field holds extra command options if any.",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"driver"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.LocalObjectReference"},
+ }
+}
+
+func schema_k8sio_api_core_v1_FlockerVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a Flocker volume mounted by the Flocker agent. One and only one of datasetName and datasetUUID should be set. Flocker volumes do not support ownership management or SELinux relabeling.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "datasetName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "datasetUUID": {
+ SchemaProps: spec.SchemaProps{
+ Description: "datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_GCEPersistentDiskVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a Persistent Disk resource in Google Compute Engine.\n\nA GCE PD must exist before mounting to a container. The disk must also be in the same GCE project and zone as the kubelet. A GCE PD can only be mounted as read/write once or read-only many times. GCE PDs support ownership management and SELinux relabeling.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "pdName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fsType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "partition": {
+ SchemaProps: spec.SchemaProps{
+ Description: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"pdName"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_GRPCAction(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "GRPCAction specifies an action involving a GRPC service.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "port": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Port number of the gRPC service. Number must be in the range 1 to 65535.",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "service": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\n\nIf this is not specified, the default behavior is defined by gRPC.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"port"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_GitRepoVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling.\n\nDEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "repository": {
+ SchemaProps: spec.SchemaProps{
+ Description: "repository is the URL",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "revision": {
+ SchemaProps: spec.SchemaProps{
+ Description: "revision is the commit hash for the specified revision.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "directory": {
+ SchemaProps: spec.SchemaProps{
+ Description: "directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"repository"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_GlusterfsPersistentVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "endpoints": {
+ SchemaProps: spec.SchemaProps{
+ Description: "endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "path": {
+ SchemaProps: spec.SchemaProps{
+ Description: "path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "endpointsNamespace": {
+ SchemaProps: spec.SchemaProps{
+ Description: "endpointsNamespace is the namespace that contains Glusterfs endpoint. If this field is empty, the EndpointNamespace defaults to the same namespace as the bound PVC. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"endpoints", "path"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_GlusterfsVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "endpoints": {
+ SchemaProps: spec.SchemaProps{
+ Description: "endpoints is the endpoint name that details Glusterfs topology.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "path": {
+ SchemaProps: spec.SchemaProps{
+ Description: "path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"endpoints", "path"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_HTTPGetAction(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "HTTPGetAction describes an action based on HTTP Get requests.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "path": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Path to access on the HTTP server.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "port": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.",
+ Ref: ref("k8s.io/apimachinery/pkg/util/intstr.IntOrString"),
+ },
+ },
+ "host": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Host name to connect to, defaults to the pod IP. You probably want to set \"Host\" in httpHeaders instead.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "scheme": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Scheme to use for connecting to the host. Defaults to HTTP.\n\nPossible enum values:\n - `\"HTTP\"` means that the scheme used will be http://\n - `\"HTTPS\"` means that the scheme used will be https://",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"HTTP", "HTTPS"},
+ },
+ },
+ "httpHeaders": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Custom headers to set in the request. HTTP allows repeated headers.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.HTTPHeader"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"port"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.HTTPHeader", "k8s.io/apimachinery/pkg/util/intstr.IntOrString"},
+ }
+}
+
+func schema_k8sio_api_core_v1_HTTPHeader(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "HTTPHeader describes a custom header to be used in HTTP probes",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "value": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The header field value",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"name", "value"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_HostAlias(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod's hosts file.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "ip": {
+ SchemaProps: spec.SchemaProps{
+ Description: "IP address of the host file entry.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "hostnames": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Hostnames for the above IP address.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"ip"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_HostIP(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "HostIP represents a single IP address allocated to the host.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "ip": {
+ SchemaProps: spec.SchemaProps{
+ Description: "IP is the IP address assigned to the host",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"ip"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_HostPathVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a host path mapped into a pod. Host path volumes do not support ownership management or SELinux relabeling.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "path": {
+ SchemaProps: spec.SchemaProps{
+ Description: "path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Description: "type for HostPath Volume Defaults to \"\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\n\nPossible enum values:\n - `\"\"` For backwards compatible, leave it empty if unset\n - `\"BlockDevice\"` A block device must exist at the given path\n - `\"CharDevice\"` A character device must exist at the given path\n - `\"Directory\"` A directory must exist at the given path\n - `\"DirectoryOrCreate\"` If nothing exists at the given path, an empty directory will be created there as needed with file mode 0755, having the same group and ownership with Kubelet.\n - `\"File\"` A file must exist at the given path\n - `\"FileOrCreate\"` If nothing exists at the given path, an empty file will be created there as needed with file mode 0644, having the same group and ownership with Kubelet.\n - `\"Socket\"` A UNIX socket must exist at the given path",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"", "BlockDevice", "CharDevice", "Directory", "DirectoryOrCreate", "File", "FileOrCreate", "Socket"},
+ },
+ },
+ },
+ Required: []string{"path"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_ISCSIPersistentVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ISCSIPersistentVolumeSource represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "targetPortal": {
+ SchemaProps: spec.SchemaProps{
+ Description: "targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "iqn": {
+ SchemaProps: spec.SchemaProps{
+ Description: "iqn is Target iSCSI Qualified Name.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "lun": {
+ SchemaProps: spec.SchemaProps{
+ Description: "lun is iSCSI Target Lun number.",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "iscsiInterface": {
+ SchemaProps: spec.SchemaProps{
+ Description: "iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).",
+ Default: "default",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fsType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "portals": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "portals is the iSCSI Target Portal List. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "chapAuthDiscovery": {
+ SchemaProps: spec.SchemaProps{
+ Description: "chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "chapAuthSession": {
+ SchemaProps: spec.SchemaProps{
+ Description: "chapAuthSession defines whether support iSCSI Session CHAP authentication",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "secretRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "secretRef is the CHAP Secret for iSCSI target and initiator authentication",
+ Ref: ref("k8s.io/api/core/v1.SecretReference"),
+ },
+ },
+ "initiatorName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"targetPortal", "iqn", "lun"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.SecretReference"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ISCSIVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "targetPortal": {
+ SchemaProps: spec.SchemaProps{
+ Description: "targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "iqn": {
+ SchemaProps: spec.SchemaProps{
+ Description: "iqn is the target iSCSI Qualified Name.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "lun": {
+ SchemaProps: spec.SchemaProps{
+ Description: "lun represents iSCSI Target Lun number.",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "iscsiInterface": {
+ SchemaProps: spec.SchemaProps{
+ Description: "iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).",
+ Default: "default",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fsType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "portals": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "chapAuthDiscovery": {
+ SchemaProps: spec.SchemaProps{
+ Description: "chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "chapAuthSession": {
+ SchemaProps: spec.SchemaProps{
+ Description: "chapAuthSession defines whether support iSCSI Session CHAP authentication",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "secretRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "secretRef is the CHAP Secret for iSCSI target and initiator authentication",
+ Ref: ref("k8s.io/api/core/v1.LocalObjectReference"),
+ },
+ },
+ "initiatorName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"targetPortal", "iqn", "lun"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.LocalObjectReference"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ImageVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ImageVolumeSource represents a image volume resource.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "reference": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Required: Image or artifact reference to be used. Behaves in the same way as pod.spec.containers[*].image. Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "pullPolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Policy for pulling OCI objects. Possible values are: Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.\n\nPossible enum values:\n - `\"Always\"` means that kubelet always attempts to pull the latest image. Container will fail If the pull fails.\n - `\"IfNotPresent\"` means that kubelet pulls if the image isn't present on disk. Container will fail if the image isn't present and the pull fails.\n - `\"Never\"` means that kubelet never pulls an image, but only uses a local image. Container will fail if the image isn't present",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Always", "IfNotPresent", "Never"},
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_KeyToPath(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Maps a string key to a path within a volume.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "key": {
+ SchemaProps: spec.SchemaProps{
+ Description: "key is the key to project.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "path": {
+ SchemaProps: spec.SchemaProps{
+ Description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "mode": {
+ SchemaProps: spec.SchemaProps{
+ Description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ },
+ Required: []string{"key", "path"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_Lifecycle(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Lifecycle describes actions that the management system should take in response to container lifecycle events. For the PostStart and PreStop lifecycle handlers, management of the container blocks until the action is complete, unless the container process fails, in which case the handler is aborted.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "postStart": {
+ SchemaProps: spec.SchemaProps{
+ Description: "PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks",
+ Ref: ref("k8s.io/api/core/v1.LifecycleHandler"),
+ },
+ },
+ "preStop": {
+ SchemaProps: spec.SchemaProps{
+ Description: "PreStop is called immediately before a container is terminated due to an API request or management event such as liveness/startup probe failure, preemption, resource contention, etc. The handler is not called if the container crashes or exits. The Pod's termination grace period countdown begins before the PreStop hook is executed. Regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period (unless delayed by finalizers). Other management of the container blocks until the hook completes or until the termination grace period is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks",
+ Ref: ref("k8s.io/api/core/v1.LifecycleHandler"),
+ },
+ },
+ "stopSignal": {
+ SchemaProps: spec.SchemaProps{
+ Description: "StopSignal defines which signal will be sent to a container when it is being stopped. If not specified, the default is defined by the container runtime in use. StopSignal can only be set for Pods with a non-empty .spec.os.name\n\nPossible enum values:\n - `\"SIGABRT\"`\n - `\"SIGALRM\"`\n - `\"SIGBUS\"`\n - `\"SIGCHLD\"`\n - `\"SIGCLD\"`\n - `\"SIGCONT\"`\n - `\"SIGFPE\"`\n - `\"SIGHUP\"`\n - `\"SIGILL\"`\n - `\"SIGINT\"`\n - `\"SIGIO\"`\n - `\"SIGIOT\"`\n - `\"SIGKILL\"`\n - `\"SIGPIPE\"`\n - `\"SIGPOLL\"`\n - `\"SIGPROF\"`\n - `\"SIGPWR\"`\n - `\"SIGQUIT\"`\n - `\"SIGRTMAX\"`\n - `\"SIGRTMAX-1\"`\n - `\"SIGRTMAX-10\"`\n - `\"SIGRTMAX-11\"`\n - `\"SIGRTMAX-12\"`\n - `\"SIGRTMAX-13\"`\n - `\"SIGRTMAX-14\"`\n - `\"SIGRTMAX-2\"`\n - `\"SIGRTMAX-3\"`\n - `\"SIGRTMAX-4\"`\n - `\"SIGRTMAX-5\"`\n - `\"SIGRTMAX-6\"`\n - `\"SIGRTMAX-7\"`\n - `\"SIGRTMAX-8\"`\n - `\"SIGRTMAX-9\"`\n - `\"SIGRTMIN\"`\n - `\"SIGRTMIN+1\"`\n - `\"SIGRTMIN+10\"`\n - `\"SIGRTMIN+11\"`\n - `\"SIGRTMIN+12\"`\n - `\"SIGRTMIN+13\"`\n - `\"SIGRTMIN+14\"`\n - `\"SIGRTMIN+15\"`\n - `\"SIGRTMIN+2\"`\n - `\"SIGRTMIN+3\"`\n - `\"SIGRTMIN+4\"`\n - `\"SIGRTMIN+5\"`\n - `\"SIGRTMIN+6\"`\n - `\"SIGRTMIN+7\"`\n - `\"SIGRTMIN+8\"`\n - `\"SIGRTMIN+9\"`\n - `\"SIGSEGV\"`\n - `\"SIGSTKFLT\"`\n - `\"SIGSTOP\"`\n - `\"SIGSYS\"`\n - `\"SIGTERM\"`\n - `\"SIGTRAP\"`\n - `\"SIGTSTP\"`\n - `\"SIGTTIN\"`\n - `\"SIGTTOU\"`\n - `\"SIGURG\"`\n - `\"SIGUSR1\"`\n - `\"SIGUSR2\"`\n - `\"SIGVTALRM\"`\n - `\"SIGWINCH\"`\n - `\"SIGXCPU\"`\n - `\"SIGXFSZ\"`",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"SIGABRT", "SIGALRM", "SIGBUS", "SIGCHLD", "SIGCLD", "SIGCONT", "SIGFPE", "SIGHUP", "SIGILL", "SIGINT", "SIGIO", "SIGIOT", "SIGKILL", "SIGPIPE", "SIGPOLL", "SIGPROF", "SIGPWR", "SIGQUIT", "SIGRTMAX", "SIGRTMAX-1", "SIGRTMAX-10", "SIGRTMAX-11", "SIGRTMAX-12", "SIGRTMAX-13", "SIGRTMAX-14", "SIGRTMAX-2", "SIGRTMAX-3", "SIGRTMAX-4", "SIGRTMAX-5", "SIGRTMAX-6", "SIGRTMAX-7", "SIGRTMAX-8", "SIGRTMAX-9", "SIGRTMIN", "SIGRTMIN+1", "SIGRTMIN+10", "SIGRTMIN+11", "SIGRTMIN+12", "SIGRTMIN+13", "SIGRTMIN+14", "SIGRTMIN+15", "SIGRTMIN+2", "SIGRTMIN+3", "SIGRTMIN+4", "SIGRTMIN+5", "SIGRTMIN+6", "SIGRTMIN+7", "SIGRTMIN+8", "SIGRTMIN+9", "SIGSEGV", "SIGSTKFLT", "SIGSTOP", "SIGSYS", "SIGTERM", "SIGTRAP", "SIGTSTP", "SIGTTIN", "SIGTTOU", "SIGURG", "SIGUSR1", "SIGUSR2", "SIGVTALRM", "SIGWINCH", "SIGXCPU", "SIGXFSZ"},
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.LifecycleHandler"},
+ }
+}
+
+func schema_k8sio_api_core_v1_LifecycleHandler(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "LifecycleHandler defines a specific action that should be taken in a lifecycle hook. One and only one of the fields, except TCPSocket must be specified.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "exec": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Exec specifies a command to execute in the container.",
+ Ref: ref("k8s.io/api/core/v1.ExecAction"),
+ },
+ },
+ "httpGet": {
+ SchemaProps: spec.SchemaProps{
+ Description: "HTTPGet specifies an HTTP GET request to perform.",
+ Ref: ref("k8s.io/api/core/v1.HTTPGetAction"),
+ },
+ },
+ "tcpSocket": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for backward compatibility. There is no validation of this field and lifecycle hooks will fail at runtime when it is specified.",
+ Ref: ref("k8s.io/api/core/v1.TCPSocketAction"),
+ },
+ },
+ "sleep": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Sleep represents a duration that the container should sleep.",
+ Ref: ref("k8s.io/api/core/v1.SleepAction"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ExecAction", "k8s.io/api/core/v1.HTTPGetAction", "k8s.io/api/core/v1.SleepAction", "k8s.io/api/core/v1.TCPSocketAction"},
+ }
+}
+
+func schema_k8sio_api_core_v1_LimitRange(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "LimitRange sets resource usage limits for each kind of resource in a Namespace.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "spec": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Spec defines the limits enforced. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.LimitRangeSpec"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.LimitRangeSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_LimitRangeItem(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "LimitRangeItem defines a min/max usage limit for any resource that matches on kind.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Type of resource that this limit applies to.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "max": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Max usage constraints on this kind by resource name.",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
+ },
+ },
+ },
+ },
+ },
+ "min": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Min usage constraints on this kind by resource name.",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
+ },
+ },
+ },
+ },
+ },
+ "default": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Default resource requirement limit value by resource name if resource limit is omitted.",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
+ },
+ },
+ },
+ },
+ },
+ "defaultRequest": {
+ SchemaProps: spec.SchemaProps{
+ Description: "DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
+ },
+ },
+ },
+ },
+ },
+ "maxLimitRequestRatio": {
+ SchemaProps: spec.SchemaProps{
+ Description: "MaxLimitRequestRatio if specified, the named resource must have a request and limit that are both non-zero where limit divided by request is less than or equal to the enumerated value; this represents the max burst for the named resource.",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"type"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/api/resource.Quantity"},
+ }
+}
+
+func schema_k8sio_api_core_v1_LimitRangeList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "LimitRangeList is a list of LimitRange items.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Items is a list of LimitRange objects. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.LimitRange"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"items"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.LimitRange", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_LimitRangeSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "LimitRangeSpec defines a min/max usage limit for resources that match on kind.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "limits": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Limits is the list of LimitRangeItem objects that are enforced.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.LimitRangeItem"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"limits"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.LimitRangeItem"},
+ }
+}
+
+func schema_k8sio_api_core_v1_LinuxContainerUser(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "LinuxContainerUser represents user identity information in Linux containers",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "uid": {
+ SchemaProps: spec.SchemaProps{
+ Description: "UID is the primary uid initially attached to the first process in the container",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "gid": {
+ SchemaProps: spec.SchemaProps{
+ Description: "GID is the primary gid initially attached to the first process in the container",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "supplementalGroups": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "SupplementalGroups are the supplemental groups initially attached to the first process in the container",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"uid", "gid"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_List(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "List holds a list of objects, which may not be known by the server.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Description: "List of objects",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("k8s.io/apimachinery/pkg/runtime.RawExtension"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"items"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta", "k8s.io/apimachinery/pkg/runtime.RawExtension"},
+ }
+}
+
+func schema_k8sio_api_core_v1_LoadBalancerIngress(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "LoadBalancerIngress represents the status of a load-balancer ingress point: traffic intended for the service should be sent to an ingress point.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "ip": {
+ SchemaProps: spec.SchemaProps{
+ Description: "IP is set for load-balancer ingress points that are IP based (typically GCE or OpenStack load-balancers)",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "hostname": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Hostname is set for load-balancer ingress points that are DNS based (typically AWS load-balancers)",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "ipMode": {
+ SchemaProps: spec.SchemaProps{
+ Description: "IPMode specifies how the load-balancer IP behaves, and may only be specified when the ip field is specified. Setting this to \"VIP\" indicates that traffic is delivered to the node with the destination set to the load-balancer's IP and port. Setting this to \"Proxy\" indicates that traffic is delivered to the node or pod with the destination set to the node's IP and node port or the pod's IP and port. Service implementations may use this information to adjust traffic routing.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "ports": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Ports is a list of records of service ports If used, every port defined in the service should have an entry in it",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PortStatus"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.PortStatus"},
+ }
+}
+
+func schema_k8sio_api_core_v1_LoadBalancerStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "LoadBalancerStatus represents the status of a load-balancer.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "ingress": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Ingress is a list containing ingress points for the load-balancer. Traffic intended for the service should be sent to these ingress points.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.LoadBalancerIngress"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.LoadBalancerIngress"},
+ }
+}
+
+func schema_k8sio_api_core_v1_LocalObjectReference(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-map-type": "atomic",
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_LocalVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Local represents directly-attached storage with node affinity",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "path": {
+ SchemaProps: spec.SchemaProps{
+ Description: "path of the full path to the volume on the node. It can be either a directory or block device (disk, partition, ...).",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fsType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fsType is the filesystem type to mount. It applies only when the Path is a block device. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default value is to auto-select a filesystem if unspecified.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"path"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_ModifyVolumeStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ModifyVolumeStatus represents the status object of ControllerModifyVolume operation",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "targetVolumeAttributesClassName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "targetVolumeAttributesClassName is the name of the VolumeAttributesClass the PVC currently being reconciled",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "status is the status of the ControllerModifyVolume operation. It can be in any of following states:\n - Pending\n Pending indicates that the PersistentVolumeClaim cannot be modified due to unmet requirements, such as\n the specified VolumeAttributesClass not existing.\n - InProgress\n InProgress indicates that the volume is being modified.\n - Infeasible\n Infeasible indicates that the request has been rejected as invalid by the CSI driver. To\n\t resolve the error, a valid VolumeAttributesClass needs to be specified.\nNote: New statuses can be added in the future. Consumers should check for unknown statuses and fail appropriately.\n\nPossible enum values:\n - `\"InProgress\"` InProgress indicates that the volume is being modified\n - `\"Infeasible\"` Infeasible indicates that the request has been rejected as invalid by the CSI driver. To resolve the error, a valid VolumeAttributesClass needs to be specified\n - `\"Pending\"` Pending indicates that the PersistentVolumeClaim cannot be modified due to unmet requirements, such as the specified VolumeAttributesClass not existing",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"InProgress", "Infeasible", "Pending"},
+ },
+ },
+ },
+ Required: []string{"status"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_NFSVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "server": {
+ SchemaProps: spec.SchemaProps{
+ Description: "server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "path": {
+ SchemaProps: spec.SchemaProps{
+ Description: "path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"server", "path"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_Namespace(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Namespace provides a scope for Names. Use of multiple namespaces is optional.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "spec": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Spec defines the behavior of the Namespace. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.NamespaceSpec"),
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Status describes the current status of a Namespace. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.NamespaceStatus"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.NamespaceSpec", "k8s.io/api/core/v1.NamespaceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_NamespaceCondition(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "NamespaceCondition contains details about state of namespace.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Type of namespace controller condition.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Status of the condition, one of True, False, Unknown.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "lastTransitionTime": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Last time the condition transitioned from one status to another.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ "reason": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Unique, one-word, CamelCase reason for the condition's last transition.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "message": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Human-readable message indicating details about last transition.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"type", "status"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.Time"},
+ }
+}
+
+func schema_k8sio_api_core_v1_NamespaceList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "NamespaceList is a list of Namespaces.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Items is the list of Namespace objects in the list. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.Namespace"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"items"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.Namespace", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_NamespaceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "NamespaceSpec describes the attributes on a Namespace.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "finalizers": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Finalizers is an opaque list of values that must be empty to permanently remove object from storage. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_NamespaceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "NamespaceStatus is information about the current status of a Namespace.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "phase": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Phase is the current lifecycle phase of the namespace. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/\n\nPossible enum values:\n - `\"Active\"` means the namespace is available for use in the system\n - `\"Terminating\"` means the namespace is undergoing graceful termination",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Active", "Terminating"},
+ },
+ },
+ "conditions": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "type",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "type",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents the latest available observations of a namespace's current state.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.NamespaceCondition"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.NamespaceCondition"},
+ }
+}
+
+func schema_k8sio_api_core_v1_Node(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Node is a worker node in Kubernetes. Each node will have a unique identifier in the cache (i.e. in etcd).",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "spec": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Spec defines the behavior of a node. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.NodeSpec"),
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Most recently observed status of the node. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.NodeStatus"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.NodeSpec", "k8s.io/api/core/v1.NodeStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_NodeAddress(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "NodeAddress contains information for the node's address.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Node address type, one of Hostname, ExternalIP or InternalIP.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "address": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The node address.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"type", "address"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_NodeAffinity(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Node affinity is a group of node affinity scheduling rules.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "requiredDuringSchedulingIgnoredDuringExecution": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.",
+ Ref: ref("k8s.io/api/core/v1.NodeSelector"),
+ },
+ },
+ "preferredDuringSchedulingIgnoredDuringExecution": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PreferredSchedulingTerm"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.NodeSelector", "k8s.io/api/core/v1.PreferredSchedulingTerm"},
+ }
+}
+
+func schema_k8sio_api_core_v1_NodeCondition(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "NodeCondition contains condition information for a node.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Type of node condition.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Status of the condition, one of True, False, Unknown.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "lastHeartbeatTime": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Last time we got an update on a given condition.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ "lastTransitionTime": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Last time the condition transit from one status to another.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ "reason": {
+ SchemaProps: spec.SchemaProps{
+ Description: "(brief) reason for the condition's last transition.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "message": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Human readable message indicating details about last transition.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"type", "status"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.Time"},
+ }
+}
+
+func schema_k8sio_api_core_v1_NodeConfigSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "NodeConfigSource specifies a source of node configuration. Exactly one subfield (excluding metadata) must be non-nil. This API is deprecated since 1.22",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "configMap": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ConfigMap is a reference to a Node's ConfigMap",
+ Ref: ref("k8s.io/api/core/v1.ConfigMapNodeConfigSource"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ConfigMapNodeConfigSource"},
+ }
+}
+
+func schema_k8sio_api_core_v1_NodeConfigStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "NodeConfigStatus describes the status of the config assigned by Node.Spec.ConfigSource.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "assigned": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Assigned reports the checkpointed config the node will try to use. When Node.Spec.ConfigSource is updated, the node checkpoints the associated config payload to local disk, along with a record indicating intended config. The node refers to this record to choose its config checkpoint, and reports this record in Assigned. Assigned only updates in the status after the record has been checkpointed to disk. When the Kubelet is restarted, it tries to make the Assigned config the Active config by loading and validating the checkpointed payload identified by Assigned.",
+ Ref: ref("k8s.io/api/core/v1.NodeConfigSource"),
+ },
+ },
+ "active": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Active reports the checkpointed config the node is actively using. Active will represent either the current version of the Assigned config, or the current LastKnownGood config, depending on whether attempting to use the Assigned config results in an error.",
+ Ref: ref("k8s.io/api/core/v1.NodeConfigSource"),
+ },
+ },
+ "lastKnownGood": {
+ SchemaProps: spec.SchemaProps{
+ Description: "LastKnownGood reports the checkpointed config the node will fall back to when it encounters an error attempting to use the Assigned config. The Assigned config becomes the LastKnownGood config when the node determines that the Assigned config is stable and correct. This is currently implemented as a 10-minute soak period starting when the local record of Assigned config is updated. If the Assigned config is Active at the end of this period, it becomes the LastKnownGood. Note that if Spec.ConfigSource is reset to nil (use local defaults), the LastKnownGood is also immediately reset to nil, because the local default config is always assumed good. You should not make assumptions about the node's method of determining config stability and correctness, as this may change or become configurable in the future.",
+ Ref: ref("k8s.io/api/core/v1.NodeConfigSource"),
+ },
+ },
+ "error": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Error describes any problems reconciling the Spec.ConfigSource to the Active config. Errors may occur, for example, attempting to checkpoint Spec.ConfigSource to the local Assigned record, attempting to checkpoint the payload associated with Spec.ConfigSource, attempting to load or validate the Assigned config, etc. Errors may occur at different points while syncing config. Earlier errors (e.g. download or checkpointing errors) will not result in a rollback to LastKnownGood, and may resolve across Kubelet retries. Later errors (e.g. loading or validating a checkpointed config) will result in a rollback to LastKnownGood. In the latter case, it is usually possible to resolve the error by fixing the config assigned in Spec.ConfigSource. You can find additional information for debugging by searching the error message in the Kubelet log. Error is a human-readable description of the error state; machines can check whether or not Error is empty, but should not rely on the stability of the Error text across Kubelet versions.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.NodeConfigSource"},
+ }
+}
+
+func schema_k8sio_api_core_v1_NodeDaemonEndpoints(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "NodeDaemonEndpoints lists ports opened by daemons running on the Node.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kubeletEndpoint": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Endpoint on which Kubelet is listening.",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.DaemonEndpoint"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.DaemonEndpoint"},
+ }
+}
+
+func schema_k8sio_api_core_v1_NodeFeatures(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "NodeFeatures describes the set of features implemented by the CRI implementation. The features contained in the NodeFeatures should depend only on the cri implementation independent of runtime handlers.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "supplementalGroupsPolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "SupplementalGroupsPolicy is set to true if the runtime supports SupplementalGroupsPolicy and ContainerUser.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_NodeList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "NodeList is the whole list of all Nodes which have been registered with master.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Description: "List of nodes",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.Node"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"items"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.Node", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_NodeProxyOptions(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "NodeProxyOptions is the query options to a Node's proxy call.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "path": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Path is the URL path to use for the current proxy request to node.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_NodeRuntimeHandler(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "NodeRuntimeHandler is a set of runtime handler information.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Runtime handler name. Empty for the default runtime handler.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "features": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Supported features.",
+ Ref: ref("k8s.io/api/core/v1.NodeRuntimeHandlerFeatures"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.NodeRuntimeHandlerFeatures"},
+ }
+}
+
+func schema_k8sio_api_core_v1_NodeRuntimeHandlerFeatures(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "NodeRuntimeHandlerFeatures is a set of features implemented by the runtime handler.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "recursiveReadOnlyMounts": {
+ SchemaProps: spec.SchemaProps{
+ Description: "RecursiveReadOnlyMounts is set to true if the runtime handler supports RecursiveReadOnlyMounts.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "userNamespaces": {
+ SchemaProps: spec.SchemaProps{
+ Description: "UserNamespaces is set to true if the runtime handler supports UserNamespaces, including for volumes.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_NodeSelector(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "nodeSelectorTerms": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Required. A list of node selector terms. The terms are ORed.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.NodeSelectorTerm"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"nodeSelectorTerms"},
+ },
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-map-type": "atomic",
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.NodeSelectorTerm"},
+ }
+}
+
+func schema_k8sio_api_core_v1_NodeSelectorRequirement(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "key": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The label key that the selector applies to.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "operator": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\n\nPossible enum values:\n - `\"DoesNotExist\"`\n - `\"Exists\"`\n - `\"Gt\"`\n - `\"In\"`\n - `\"Lt\"`\n - `\"NotIn\"`",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"DoesNotExist", "Exists", "Gt", "In", "Lt", "NotIn"},
+ },
+ },
+ "values": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"key", "operator"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_NodeSelectorTerm(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "matchExpressions": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "A list of node selector requirements by node's labels.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.NodeSelectorRequirement"),
+ },
+ },
+ },
+ },
+ },
+ "matchFields": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "A list of node selector requirements by node's fields.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.NodeSelectorRequirement"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-map-type": "atomic",
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.NodeSelectorRequirement"},
+ }
+}
+
+func schema_k8sio_api_core_v1_NodeSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "NodeSpec describes the attributes that a node is created with.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "podCIDR": {
+ SchemaProps: spec.SchemaProps{
+ Description: "PodCIDR represents the pod IP range assigned to the node.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "podCIDRs": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "set",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "podCIDRs represents the IP ranges assigned to the node for usage by Pods on that node. If this field is specified, the 0th entry must match the podCIDR field. It may contain at most 1 value for each of IPv4 and IPv6.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "providerID": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ID of the node assigned by the cloud provider in the format: ://",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "unschedulable": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Unschedulable controls node schedulability of new pods. By default, node is schedulable. More info: https://kubernetes.io/docs/concepts/nodes/node/#manual-node-administration",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "taints": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "If specified, the node's taints.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.Taint"),
+ },
+ },
+ },
+ },
+ },
+ "configSource": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Deprecated: Previously used to specify the source of the node's configuration for the DynamicKubeletConfig feature. This feature is removed.",
+ Ref: ref("k8s.io/api/core/v1.NodeConfigSource"),
+ },
+ },
+ "externalID": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Deprecated. Not all kubelets will set this field. Remove field after 1.13. see: https://issues.k8s.io/61966",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.NodeConfigSource", "k8s.io/api/core/v1.Taint"},
+ }
+}
+
+func schema_k8sio_api_core_v1_NodeStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "NodeStatus is information about the current status of a node.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "capacity": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Capacity represents the total resources of a node. More info: https://kubernetes.io/docs/reference/node/node-status/#capacity",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
+ },
+ },
+ },
+ },
+ },
+ "allocatable": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Allocatable represents the resources of a node that are available for scheduling. Defaults to Capacity.",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
+ },
+ },
+ },
+ },
+ },
+ "phase": {
+ SchemaProps: spec.SchemaProps{
+ Description: "NodePhase is the recently observed lifecycle phase of the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#phase The field is never populated, and now is deprecated.\n\nPossible enum values:\n - `\"Pending\"` means the node has been created/added by the system, but not configured.\n - `\"Running\"` means the node has been configured and has Kubernetes components running.\n - `\"Terminated\"` means the node has been removed from the cluster.",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Pending", "Running", "Terminated"},
+ },
+ },
+ "conditions": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "type",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "type",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/reference/node/node-status/#condition",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.NodeCondition"),
+ },
+ },
+ },
+ },
+ },
+ "addresses": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "type",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "type",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/reference/node/node-status/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP).",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.NodeAddress"),
+ },
+ },
+ },
+ },
+ },
+ "daemonEndpoints": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Endpoints of daemons running on the Node.",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.NodeDaemonEndpoints"),
+ },
+ },
+ "nodeInfo": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/reference/node/node-status/#info",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.NodeSystemInfo"),
+ },
+ },
+ "images": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "List of container images on this node",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ContainerImage"),
+ },
+ },
+ },
+ },
+ },
+ "volumesInUse": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "List of attachable volumes in use (mounted) by the node.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "volumesAttached": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "List of volumes that are attached to the node.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.AttachedVolume"),
+ },
+ },
+ },
+ },
+ },
+ "config": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Status of the config assigned to the node via the dynamic Kubelet config feature.",
+ Ref: ref("k8s.io/api/core/v1.NodeConfigStatus"),
+ },
+ },
+ "runtimeHandlers": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "The available runtime handlers.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.NodeRuntimeHandler"),
+ },
+ },
+ },
+ },
+ },
+ "features": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Features describes the set of features implemented by the CRI implementation.",
+ Ref: ref("k8s.io/api/core/v1.NodeFeatures"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.AttachedVolume", "k8s.io/api/core/v1.ContainerImage", "k8s.io/api/core/v1.NodeAddress", "k8s.io/api/core/v1.NodeCondition", "k8s.io/api/core/v1.NodeConfigStatus", "k8s.io/api/core/v1.NodeDaemonEndpoints", "k8s.io/api/core/v1.NodeFeatures", "k8s.io/api/core/v1.NodeRuntimeHandler", "k8s.io/api/core/v1.NodeSystemInfo", "k8s.io/apimachinery/pkg/api/resource.Quantity"},
+ }
+}
+
+func schema_k8sio_api_core_v1_NodeSwapStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "NodeSwapStatus represents swap memory information.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "capacity": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Total amount of swap memory in bytes.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_NodeSystemInfo(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "NodeSystemInfo is a set of ids/uuids to uniquely identify the node.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "machineID": {
+ SchemaProps: spec.SchemaProps{
+ Description: "MachineID reported by the node. For unique machine identification in the cluster this field is preferred. Learn more from man(5) machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "systemUUID": {
+ SchemaProps: spec.SchemaProps{
+ Description: "SystemUUID reported by the node. For unique machine identification MachineID is preferred. This field is specific to Red Hat hosts https://access.redhat.com/documentation/en-us/red_hat_subscription_management/1/html/rhsm/uuid",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "bootID": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Boot ID reported by the node.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "kernelVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kernel Version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64).",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "osImage": {
+ SchemaProps: spec.SchemaProps{
+ Description: "OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy)).",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "containerRuntimeVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ContainerRuntime Version reported by the node through runtime remote API (e.g. containerd://1.4.2).",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "kubeletVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kubelet Version reported by the node.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "kubeProxyVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Deprecated: KubeProxy Version reported by the node.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "operatingSystem": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The Operating System reported by the node",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "architecture": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The Architecture reported by the node",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "swap": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Swap Info reported by the node.",
+ Ref: ref("k8s.io/api/core/v1.NodeSwapStatus"),
+ },
+ },
+ },
+ Required: []string{"machineID", "systemUUID", "bootID", "kernelVersion", "osImage", "containerRuntimeVersion", "kubeletVersion", "kubeProxyVersion", "operatingSystem", "architecture"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.NodeSwapStatus"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ObjectFieldSelector(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ObjectFieldSelector selects an APIVersioned field of an object.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Version of the schema the FieldPath is written in terms of, defaults to \"v1\".",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fieldPath": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Path of the field to select in the specified API version.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"fieldPath"},
+ },
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-map-type": "atomic",
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_ObjectReference(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ObjectReference contains enough information to let you inspect or modify the referred object.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "namespace": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "uid": {
+ SchemaProps: spec.SchemaProps{
+ Description: "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "API version of the referent.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "resourceVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fieldPath": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: \"spec.containers{name}\" (where \"name\" refers to the name of the container that triggered the event) or if no container name is specified \"spec.containers[2]\" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-map-type": "atomic",
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_PersistentVolume(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PersistentVolume (PV) is a storage resource provisioned by an administrator. It is analogous to a node. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "spec": {
+ SchemaProps: spec.SchemaProps{
+ Description: "spec defines a specification of a persistent volume owned by the cluster. Provisioned by an administrator. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PersistentVolumeSpec"),
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "status represents the current information/status for the persistent volume. Populated by the system. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PersistentVolumeStatus"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.PersistentVolumeSpec", "k8s.io/api/core/v1.PersistentVolumeStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PersistentVolumeClaim(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PersistentVolumeClaim is a user's request for and claim to a persistent volume",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "spec": {
+ SchemaProps: spec.SchemaProps{
+ Description: "spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PersistentVolumeClaimSpec"),
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "status represents the current information/status of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PersistentVolumeClaimStatus"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.PersistentVolumeClaimSpec", "k8s.io/api/core/v1.PersistentVolumeClaimStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PersistentVolumeClaimCondition(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PersistentVolumeClaimCondition contains details about state of pvc",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Type is the type of the condition. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "lastProbeTime": {
+ SchemaProps: spec.SchemaProps{
+ Description: "lastProbeTime is the time we probed the condition.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ "lastTransitionTime": {
+ SchemaProps: spec.SchemaProps{
+ Description: "lastTransitionTime is the time the condition transitioned from one status to another.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ "reason": {
+ SchemaProps: spec.SchemaProps{
+ Description: "reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports \"Resizing\" that means the underlying persistent volume is being resized.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "message": {
+ SchemaProps: spec.SchemaProps{
+ Description: "message is the human-readable message indicating details about last transition.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"type", "status"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.Time"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PersistentVolumeClaimList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PersistentVolumeClaimList is a list of PersistentVolumeClaim items.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Description: "items is a list of persistent volume claims. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PersistentVolumeClaim"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"items"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.PersistentVolumeClaim", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PersistentVolumeClaimSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PersistentVolumeClaimSpec describes the common attributes of storage devices and allows a Source for provider-specific attributes",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "accessModes": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "selector": {
+ SchemaProps: spec.SchemaProps{
+ Description: "selector is a label query over volumes to consider for binding.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"),
+ },
+ },
+ "resources": {
+ SchemaProps: spec.SchemaProps{
+ Description: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.VolumeResourceRequirements"),
+ },
+ },
+ "volumeName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "volumeName is the binding reference to the PersistentVolume backing this claim.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "storageClassName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "volumeMode": {
+ SchemaProps: spec.SchemaProps{
+ Description: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.\n\nPossible enum values:\n - `\"Block\"` means the volume will not be formatted with a filesystem and will remain a raw block device.\n - `\"Filesystem\"` means the volume will be or is formatted with a filesystem.",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Block", "Filesystem"},
+ },
+ },
+ "dataSource": {
+ SchemaProps: spec.SchemaProps{
+ Description: "dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.",
+ Ref: ref("k8s.io/api/core/v1.TypedLocalObjectReference"),
+ },
+ },
+ "dataSourceRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef\n allows any non-core object, as well as PersistentVolumeClaim objects.\n* While dataSource ignores disallowed values (dropping them), dataSourceRef\n preserves all values, and generates an error if a disallowed value is\n specified.\n* While dataSource only allows local objects, dataSourceRef allows objects\n in any namespaces.\n(Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.",
+ Ref: ref("k8s.io/api/core/v1.TypedObjectReference"),
+ },
+ },
+ "volumeAttributesClassName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string or nil value indicates that no VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state, this field can be reset to its previous value (including nil) to cancel the modification. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.TypedLocalObjectReference", "k8s.io/api/core/v1.TypedObjectReference", "k8s.io/api/core/v1.VolumeResourceRequirements", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PersistentVolumeClaimStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PersistentVolumeClaimStatus is the current status of a persistent volume claim.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "phase": {
+ SchemaProps: spec.SchemaProps{
+ Description: "phase represents the current phase of PersistentVolumeClaim.\n\nPossible enum values:\n - `\"Bound\"` used for PersistentVolumeClaims that are bound\n - `\"Lost\"` used for PersistentVolumeClaims that lost their underlying PersistentVolume. The claim was bound to a PersistentVolume and this volume does not exist any longer and all data on it was lost.\n - `\"Pending\"` used for PersistentVolumeClaims that are not yet bound",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Bound", "Lost", "Pending"},
+ },
+ },
+ "accessModes": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "accessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "capacity": {
+ SchemaProps: spec.SchemaProps{
+ Description: "capacity represents the actual resources of the underlying volume.",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
+ },
+ },
+ },
+ },
+ },
+ "conditions": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "type",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "type",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'Resizing'.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PersistentVolumeClaimCondition"),
+ },
+ },
+ },
+ },
+ },
+ "allocatedResources": {
+ SchemaProps: spec.SchemaProps{
+ Description: "allocatedResources tracks the resources allocated to a PVC including its capacity. Key names follow standard Kubernetes label syntax. Valid values are either:\n\t* Un-prefixed keys:\n\t\t- storage - the capacity of the volume.\n\t* Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\"\nApart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used.\n\nCapacity reported here may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity.\n\nA controller that receives PVC update with previously unknown resourceName should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC.\n\nThis is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
+ },
+ },
+ },
+ },
+ },
+ "allocatedResourceStatuses": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-map-type": "granular",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "allocatedResourceStatuses stores status of resource being resized for the given PVC. Key names follow standard Kubernetes label syntax. Valid values are either:\n\t* Un-prefixed keys:\n\t\t- storage - the capacity of the volume.\n\t* Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\"\nApart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used.\n\nClaimResourceStatus can be in any of following states:\n\t- ControllerResizeInProgress:\n\t\tState set when resize controller starts resizing the volume in control-plane.\n\t- ControllerResizeFailed:\n\t\tState set when resize has failed in resize controller with a terminal error.\n\t- NodeResizePending:\n\t\tState set when resize controller has finished resizing the volume but further resizing of\n\t\tvolume is needed on the node.\n\t- NodeResizeInProgress:\n\t\tState set when kubelet starts resizing the volume.\n\t- NodeResizeFailed:\n\t\tState set when resizing has failed in kubelet with a terminal error. Transient errors don't set\n\t\tNodeResizeFailed.\nFor example: if expanding a PVC for more capacity - this field can be one of the following states:\n\t- pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeInProgress\"\n - pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeFailed\"\n - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizePending\"\n - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeInProgress\"\n - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeFailed\"\nWhen this field is not set, it means that no resize operation is in progress for the given PVC.\n\nA controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC.\n\nThis is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "currentVolumeAttributesClassName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using. When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "modifyVolumeStatus": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ModifyVolumeStatus represents the status object of ControllerModifyVolume operation. When this is unset, there is no ModifyVolume operation being attempted.",
+ Ref: ref("k8s.io/api/core/v1.ModifyVolumeStatus"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ModifyVolumeStatus", "k8s.io/api/core/v1.PersistentVolumeClaimCondition", "k8s.io/apimachinery/pkg/api/resource.Quantity"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PersistentVolumeClaimTemplate(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PersistentVolumeClaimTemplate is used to produce PersistentVolumeClaim objects as part of an EphemeralVolumeSource.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "spec": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PersistentVolumeClaimSpec"),
+ },
+ },
+ },
+ Required: []string{"spec"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.PersistentVolumeClaimSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PersistentVolumeClaimVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace. This volume finds the bound PV and mounts that volume for the pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another type of volume that is owned by someone else (the system).",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "claimName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly Will force the ReadOnly setting in VolumeMounts. Default false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"claimName"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_PersistentVolumeList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PersistentVolumeList is a list of PersistentVolume items.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Description: "items is a list of persistent volumes. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PersistentVolume"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"items"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.PersistentVolume", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PersistentVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PersistentVolumeSource is similar to VolumeSource but meant for the administrator who creates PVs. Exactly one of its members must be set.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "gcePersistentDisk": {
+ SchemaProps: spec.SchemaProps{
+ Description: "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk",
+ Ref: ref("k8s.io/api/core/v1.GCEPersistentDiskVolumeSource"),
+ },
+ },
+ "awsElasticBlockStore": {
+ SchemaProps: spec.SchemaProps{
+ Description: "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore",
+ Ref: ref("k8s.io/api/core/v1.AWSElasticBlockStoreVolumeSource"),
+ },
+ },
+ "hostPath": {
+ SchemaProps: spec.SchemaProps{
+ Description: "hostPath represents a directory on the host. Provisioned by a developer or tester. This is useful for single-node development and testing only! On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath",
+ Ref: ref("k8s.io/api/core/v1.HostPathVolumeSource"),
+ },
+ },
+ "glusterfs": {
+ SchemaProps: spec.SchemaProps{
+ Description: "glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md",
+ Ref: ref("k8s.io/api/core/v1.GlusterfsPersistentVolumeSource"),
+ },
+ },
+ "nfs": {
+ SchemaProps: spec.SchemaProps{
+ Description: "nfs represents an NFS mount on the host. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs",
+ Ref: ref("k8s.io/api/core/v1.NFSVolumeSource"),
+ },
+ },
+ "rbd": {
+ SchemaProps: spec.SchemaProps{
+ Description: "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md",
+ Ref: ref("k8s.io/api/core/v1.RBDPersistentVolumeSource"),
+ },
+ },
+ "iscsi": {
+ SchemaProps: spec.SchemaProps{
+ Description: "iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin.",
+ Ref: ref("k8s.io/api/core/v1.ISCSIPersistentVolumeSource"),
+ },
+ },
+ "cinder": {
+ SchemaProps: spec.SchemaProps{
+ Description: "cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md",
+ Ref: ref("k8s.io/api/core/v1.CinderPersistentVolumeSource"),
+ },
+ },
+ "cephfs": {
+ SchemaProps: spec.SchemaProps{
+ Description: "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.CephFSPersistentVolumeSource"),
+ },
+ },
+ "fc": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.",
+ Ref: ref("k8s.io/api/core/v1.FCVolumeSource"),
+ },
+ },
+ "flocker": {
+ SchemaProps: spec.SchemaProps{
+ Description: "flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.FlockerVolumeSource"),
+ },
+ },
+ "flexVolume": {
+ SchemaProps: spec.SchemaProps{
+ Description: "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.",
+ Ref: ref("k8s.io/api/core/v1.FlexPersistentVolumeSource"),
+ },
+ },
+ "azureFile": {
+ SchemaProps: spec.SchemaProps{
+ Description: "azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver.",
+ Ref: ref("k8s.io/api/core/v1.AzureFilePersistentVolumeSource"),
+ },
+ },
+ "vsphereVolume": {
+ SchemaProps: spec.SchemaProps{
+ Description: "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver.",
+ Ref: ref("k8s.io/api/core/v1.VsphereVirtualDiskVolumeSource"),
+ },
+ },
+ "quobyte": {
+ SchemaProps: spec.SchemaProps{
+ Description: "quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.QuobyteVolumeSource"),
+ },
+ },
+ "azureDisk": {
+ SchemaProps: spec.SchemaProps{
+ Description: "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver.",
+ Ref: ref("k8s.io/api/core/v1.AzureDiskVolumeSource"),
+ },
+ },
+ "photonPersistentDisk": {
+ SchemaProps: spec.SchemaProps{
+ Description: "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.PhotonPersistentDiskVolumeSource"),
+ },
+ },
+ "portworxVolume": {
+ SchemaProps: spec.SchemaProps{
+ Description: "portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on.",
+ Ref: ref("k8s.io/api/core/v1.PortworxVolumeSource"),
+ },
+ },
+ "scaleIO": {
+ SchemaProps: spec.SchemaProps{
+ Description: "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.ScaleIOPersistentVolumeSource"),
+ },
+ },
+ "local": {
+ SchemaProps: spec.SchemaProps{
+ Description: "local represents directly-attached storage with node affinity",
+ Ref: ref("k8s.io/api/core/v1.LocalVolumeSource"),
+ },
+ },
+ "storageos": {
+ SchemaProps: spec.SchemaProps{
+ Description: "storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md",
+ Ref: ref("k8s.io/api/core/v1.StorageOSPersistentVolumeSource"),
+ },
+ },
+ "csi": {
+ SchemaProps: spec.SchemaProps{
+ Description: "csi represents storage that is handled by an external CSI driver.",
+ Ref: ref("k8s.io/api/core/v1.CSIPersistentVolumeSource"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.AWSElasticBlockStoreVolumeSource", "k8s.io/api/core/v1.AzureDiskVolumeSource", "k8s.io/api/core/v1.AzureFilePersistentVolumeSource", "k8s.io/api/core/v1.CSIPersistentVolumeSource", "k8s.io/api/core/v1.CephFSPersistentVolumeSource", "k8s.io/api/core/v1.CinderPersistentVolumeSource", "k8s.io/api/core/v1.FCVolumeSource", "k8s.io/api/core/v1.FlexPersistentVolumeSource", "k8s.io/api/core/v1.FlockerVolumeSource", "k8s.io/api/core/v1.GCEPersistentDiskVolumeSource", "k8s.io/api/core/v1.GlusterfsPersistentVolumeSource", "k8s.io/api/core/v1.HostPathVolumeSource", "k8s.io/api/core/v1.ISCSIPersistentVolumeSource", "k8s.io/api/core/v1.LocalVolumeSource", "k8s.io/api/core/v1.NFSVolumeSource", "k8s.io/api/core/v1.PhotonPersistentDiskVolumeSource", "k8s.io/api/core/v1.PortworxVolumeSource", "k8s.io/api/core/v1.QuobyteVolumeSource", "k8s.io/api/core/v1.RBDPersistentVolumeSource", "k8s.io/api/core/v1.ScaleIOPersistentVolumeSource", "k8s.io/api/core/v1.StorageOSPersistentVolumeSource", "k8s.io/api/core/v1.VsphereVirtualDiskVolumeSource"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PersistentVolumeSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PersistentVolumeSpec is the specification of a persistent volume.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "capacity": {
+ SchemaProps: spec.SchemaProps{
+ Description: "capacity is the description of the persistent volume's resources and capacity. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
+ },
+ },
+ },
+ },
+ },
+ "gcePersistentDisk": {
+ SchemaProps: spec.SchemaProps{
+ Description: "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk",
+ Ref: ref("k8s.io/api/core/v1.GCEPersistentDiskVolumeSource"),
+ },
+ },
+ "awsElasticBlockStore": {
+ SchemaProps: spec.SchemaProps{
+ Description: "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore",
+ Ref: ref("k8s.io/api/core/v1.AWSElasticBlockStoreVolumeSource"),
+ },
+ },
+ "hostPath": {
+ SchemaProps: spec.SchemaProps{
+ Description: "hostPath represents a directory on the host. Provisioned by a developer or tester. This is useful for single-node development and testing only! On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath",
+ Ref: ref("k8s.io/api/core/v1.HostPathVolumeSource"),
+ },
+ },
+ "glusterfs": {
+ SchemaProps: spec.SchemaProps{
+ Description: "glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md",
+ Ref: ref("k8s.io/api/core/v1.GlusterfsPersistentVolumeSource"),
+ },
+ },
+ "nfs": {
+ SchemaProps: spec.SchemaProps{
+ Description: "nfs represents an NFS mount on the host. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs",
+ Ref: ref("k8s.io/api/core/v1.NFSVolumeSource"),
+ },
+ },
+ "rbd": {
+ SchemaProps: spec.SchemaProps{
+ Description: "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md",
+ Ref: ref("k8s.io/api/core/v1.RBDPersistentVolumeSource"),
+ },
+ },
+ "iscsi": {
+ SchemaProps: spec.SchemaProps{
+ Description: "iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin.",
+ Ref: ref("k8s.io/api/core/v1.ISCSIPersistentVolumeSource"),
+ },
+ },
+ "cinder": {
+ SchemaProps: spec.SchemaProps{
+ Description: "cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md",
+ Ref: ref("k8s.io/api/core/v1.CinderPersistentVolumeSource"),
+ },
+ },
+ "cephfs": {
+ SchemaProps: spec.SchemaProps{
+ Description: "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.CephFSPersistentVolumeSource"),
+ },
+ },
+ "fc": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.",
+ Ref: ref("k8s.io/api/core/v1.FCVolumeSource"),
+ },
+ },
+ "flocker": {
+ SchemaProps: spec.SchemaProps{
+ Description: "flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.FlockerVolumeSource"),
+ },
+ },
+ "flexVolume": {
+ SchemaProps: spec.SchemaProps{
+ Description: "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.",
+ Ref: ref("k8s.io/api/core/v1.FlexPersistentVolumeSource"),
+ },
+ },
+ "azureFile": {
+ SchemaProps: spec.SchemaProps{
+ Description: "azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver.",
+ Ref: ref("k8s.io/api/core/v1.AzureFilePersistentVolumeSource"),
+ },
+ },
+ "vsphereVolume": {
+ SchemaProps: spec.SchemaProps{
+ Description: "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver.",
+ Ref: ref("k8s.io/api/core/v1.VsphereVirtualDiskVolumeSource"),
+ },
+ },
+ "quobyte": {
+ SchemaProps: spec.SchemaProps{
+ Description: "quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.QuobyteVolumeSource"),
+ },
+ },
+ "azureDisk": {
+ SchemaProps: spec.SchemaProps{
+ Description: "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver.",
+ Ref: ref("k8s.io/api/core/v1.AzureDiskVolumeSource"),
+ },
+ },
+ "photonPersistentDisk": {
+ SchemaProps: spec.SchemaProps{
+ Description: "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.PhotonPersistentDiskVolumeSource"),
+ },
+ },
+ "portworxVolume": {
+ SchemaProps: spec.SchemaProps{
+ Description: "portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on.",
+ Ref: ref("k8s.io/api/core/v1.PortworxVolumeSource"),
+ },
+ },
+ "scaleIO": {
+ SchemaProps: spec.SchemaProps{
+ Description: "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.ScaleIOPersistentVolumeSource"),
+ },
+ },
+ "local": {
+ SchemaProps: spec.SchemaProps{
+ Description: "local represents directly-attached storage with node affinity",
+ Ref: ref("k8s.io/api/core/v1.LocalVolumeSource"),
+ },
+ },
+ "storageos": {
+ SchemaProps: spec.SchemaProps{
+ Description: "storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md",
+ Ref: ref("k8s.io/api/core/v1.StorageOSPersistentVolumeSource"),
+ },
+ },
+ "csi": {
+ SchemaProps: spec.SchemaProps{
+ Description: "csi represents storage that is handled by an external CSI driver.",
+ Ref: ref("k8s.io/api/core/v1.CSIPersistentVolumeSource"),
+ },
+ },
+ "accessModes": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "accessModes contains all ways the volume can be mounted. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "claimRef": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-map-type": "granular",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "claimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim. Expected to be non-nil when bound. claim.VolumeName is the authoritative bind between PV and PVC. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding",
+ Ref: ref("k8s.io/api/core/v1.ObjectReference"),
+ },
+ },
+ "persistentVolumeReclaimPolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "persistentVolumeReclaimPolicy defines what happens to a persistent volume when released from its claim. Valid options are Retain (default for manually created PersistentVolumes), Delete (default for dynamically provisioned PersistentVolumes), and Recycle (deprecated). Recycle must be supported by the volume plugin underlying this PersistentVolume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming\n\nPossible enum values:\n - `\"Delete\"` means the volume will be deleted from Kubernetes on release from its claim. The volume plugin must support Deletion.\n - `\"Recycle\"` means the volume will be recycled back into the pool of unbound persistent volumes on release from its claim. The volume plugin must support Recycling.\n - `\"Retain\"` means the volume will be left in its current phase (Released) for manual reclamation by the administrator. The default policy is Retain.",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Delete", "Recycle", "Retain"},
+ },
+ },
+ "storageClassName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "storageClassName is the name of StorageClass to which this persistent volume belongs. Empty value means that this volume does not belong to any StorageClass.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "mountOptions": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "mountOptions is the list of mount options, e.g. [\"ro\", \"soft\"]. Not validated - mount will simply fail if one is invalid. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#mount-options",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "volumeMode": {
+ SchemaProps: spec.SchemaProps{
+ Description: "volumeMode defines if a volume is intended to be used with a formatted filesystem or to remain in raw block state. Value of Filesystem is implied when not included in spec.\n\nPossible enum values:\n - `\"Block\"` means the volume will not be formatted with a filesystem and will remain a raw block device.\n - `\"Filesystem\"` means the volume will be or is formatted with a filesystem.",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Block", "Filesystem"},
+ },
+ },
+ "nodeAffinity": {
+ SchemaProps: spec.SchemaProps{
+ Description: "nodeAffinity defines constraints that limit what nodes this volume can be accessed from. This field influences the scheduling of pods that use this volume.",
+ Ref: ref("k8s.io/api/core/v1.VolumeNodeAffinity"),
+ },
+ },
+ "volumeAttributesClassName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of VolumeAttributesClass to which this persistent volume belongs. Empty value is not allowed. When this field is not set, it indicates that this volume does not belong to any VolumeAttributesClass. This field is mutable and can be changed by the CSI driver after a volume has been updated successfully to a new class. For an unbound PersistentVolume, the volumeAttributesClassName will be matched with unbound PersistentVolumeClaims during the binding process.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.AWSElasticBlockStoreVolumeSource", "k8s.io/api/core/v1.AzureDiskVolumeSource", "k8s.io/api/core/v1.AzureFilePersistentVolumeSource", "k8s.io/api/core/v1.CSIPersistentVolumeSource", "k8s.io/api/core/v1.CephFSPersistentVolumeSource", "k8s.io/api/core/v1.CinderPersistentVolumeSource", "k8s.io/api/core/v1.FCVolumeSource", "k8s.io/api/core/v1.FlexPersistentVolumeSource", "k8s.io/api/core/v1.FlockerVolumeSource", "k8s.io/api/core/v1.GCEPersistentDiskVolumeSource", "k8s.io/api/core/v1.GlusterfsPersistentVolumeSource", "k8s.io/api/core/v1.HostPathVolumeSource", "k8s.io/api/core/v1.ISCSIPersistentVolumeSource", "k8s.io/api/core/v1.LocalVolumeSource", "k8s.io/api/core/v1.NFSVolumeSource", "k8s.io/api/core/v1.ObjectReference", "k8s.io/api/core/v1.PhotonPersistentDiskVolumeSource", "k8s.io/api/core/v1.PortworxVolumeSource", "k8s.io/api/core/v1.QuobyteVolumeSource", "k8s.io/api/core/v1.RBDPersistentVolumeSource", "k8s.io/api/core/v1.ScaleIOPersistentVolumeSource", "k8s.io/api/core/v1.StorageOSPersistentVolumeSource", "k8s.io/api/core/v1.VolumeNodeAffinity", "k8s.io/api/core/v1.VsphereVirtualDiskVolumeSource", "k8s.io/apimachinery/pkg/api/resource.Quantity"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PersistentVolumeStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PersistentVolumeStatus is the current status of a persistent volume.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "phase": {
+ SchemaProps: spec.SchemaProps{
+ Description: "phase indicates if a volume is available, bound to a claim, or released by a claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#phase\n\nPossible enum values:\n - `\"Available\"` used for PersistentVolumes that are not yet bound Available volumes are held by the binder and matched to PersistentVolumeClaims\n - `\"Bound\"` used for PersistentVolumes that are bound\n - `\"Failed\"` used for PersistentVolumes that failed to be correctly recycled or deleted after being released from a claim\n - `\"Pending\"` used for PersistentVolumes that are not available\n - `\"Released\"` used for PersistentVolumes where the bound PersistentVolumeClaim was deleted released volumes must be recycled before becoming available again this phase is used by the persistent volume claim binder to signal to another process to reclaim the resource",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Available", "Bound", "Failed", "Pending", "Released"},
+ },
+ },
+ "message": {
+ SchemaProps: spec.SchemaProps{
+ Description: "message is a human-readable message indicating details about why the volume is in this state.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "reason": {
+ SchemaProps: spec.SchemaProps{
+ Description: "reason is a brief CamelCase string that describes any failure and is meant for machine parsing and tidy display in the CLI.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "lastPhaseTransitionTime": {
+ SchemaProps: spec.SchemaProps{
+ Description: "lastPhaseTransitionTime is the time the phase transitioned from one to another and automatically resets to current time everytime a volume phase transitions.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.Time"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PhotonPersistentDiskVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a Photon Controller persistent disk resource.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "pdID": {
+ SchemaProps: spec.SchemaProps{
+ Description: "pdID is the ID that identifies Photon Controller persistent disk",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fsType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"pdID"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_Pod(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Pod is a collection of containers that can run on a host. This resource is created by clients and scheduled onto hosts.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "spec": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodSpec"),
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Most recently observed status of the pod. This data may not be up to date. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodStatus"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.PodSpec", "k8s.io/api/core/v1.PodStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PodAffinity(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Pod affinity is a group of inter pod affinity scheduling rules.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "requiredDuringSchedulingIgnoredDuringExecution": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodAffinityTerm"),
+ },
+ },
+ },
+ },
+ },
+ "preferredDuringSchedulingIgnoredDuringExecution": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.WeightedPodAffinityTerm"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.PodAffinityTerm", "k8s.io/api/core/v1.WeightedPodAffinityTerm"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PodAffinityTerm(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key matches that of any node on which a pod of the set of pods is running",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "labelSelector": {
+ SchemaProps: spec.SchemaProps{
+ Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"),
+ },
+ },
+ "namespaces": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \"this pod's namespace\".",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "topologyKey": {
+ SchemaProps: spec.SchemaProps{
+ Description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "namespaceSelector": {
+ SchemaProps: spec.SchemaProps{
+ Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \"this pod's namespace\". An empty selector ({}) matches all namespaces.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"),
+ },
+ },
+ "matchLabelKeys": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "mismatchLabelKeys": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"topologyKey"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PodAntiAffinity(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Pod anti affinity is a group of inter pod anti affinity scheduling rules.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "requiredDuringSchedulingIgnoredDuringExecution": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodAffinityTerm"),
+ },
+ },
+ },
+ },
+ },
+ "preferredDuringSchedulingIgnoredDuringExecution": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and subtracting \"weight\" from the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.WeightedPodAffinityTerm"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.PodAffinityTerm", "k8s.io/api/core/v1.WeightedPodAffinityTerm"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PodAttachOptions(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodAttachOptions is the query options to a Pod's remote attach call.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "stdin": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Stdin if true, redirects the standard input stream of the pod for this call. Defaults to false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "stdout": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Stdout if true indicates that stdout is to be redirected for the attach call. Defaults to true.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "stderr": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Stderr if true indicates that stderr is to be redirected for the attach call. Defaults to true.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "tty": {
+ SchemaProps: spec.SchemaProps{
+ Description: "TTY if true indicates that a tty will be allocated for the attach call. This is passed through the container runtime so the tty is allocated on the worker node by the container runtime. Defaults to false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "container": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The container in which to execute the command. Defaults to only container if there is only one container in the pod.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_PodCertificateProjection(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodCertificateProjection provides a private key and X.509 certificate in the pod filesystem.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "signerName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kubelet's generated CSRs will be addressed to this signer.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "keyType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The type of keypair Kubelet will generate for the pod.\n\nValid values are \"RSA3072\", \"RSA4096\", \"ECDSAP256\", \"ECDSAP384\", \"ECDSAP521\", and \"ED25519\".",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "maxExpirationSeconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "maxExpirationSeconds is the maximum lifetime permitted for the certificate.\n\nKubelet copies this value verbatim into the PodCertificateRequests it generates for this projection.\n\nIf omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver will reject values shorter than 3600 (1 hour). The maximum allowable value is 7862400 (91 days).\n\nThe signer implementation is then free to issue a certificate with any lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 seconds (1 hour). This constraint is enforced by kube-apiserver. `kubernetes.io` signers will never issue certificates with a lifetime longer than 24 hours.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "credentialBundlePath": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Write the credential bundle at this path in the projected volume.\n\nThe credential bundle is a single file that contains multiple PEM blocks. The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private key.\n\nThe remaining blocks are CERTIFICATE blocks, containing the issued certificate chain from the signer (leaf and any intermediates).\n\nUsing credentialBundlePath lets your Pod's application code make a single atomic read that retrieves a consistent key and certificate chain. If you project them to separate files, your application code will need to additionally check that the leaf certificate was issued to the key.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "keyPath": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Write the key at this path in the projected volume.\n\nMost applications should use credentialBundlePath. When using keyPath and certificateChainPath, your application needs to check that the key and leaf certificate are consistent, because it is possible to read the files mid-rotation.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "certificateChainPath": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Write the certificate chain at this path in the projected volume.\n\nMost applications should use credentialBundlePath. When using keyPath and certificateChainPath, your application needs to check that the key and leaf certificate are consistent, because it is possible to read the files mid-rotation.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_PodCondition(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodCondition contains details for the current condition of this pod.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Type is the type of the condition. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "observedGeneration": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If set, this represents the .metadata.generation that the pod condition was set based upon. This is an alpha field. Enable PodObservedGenerationTracking to be able to use this field.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "lastProbeTime": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Last time we probed the condition.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ "lastTransitionTime": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Last time the condition transitioned from one status to another.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ "reason": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Unique, one-word, CamelCase reason for the condition's last transition.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "message": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Human-readable message indicating details about last transition.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"type", "status"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.Time"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PodDNSConfig(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodDNSConfig defines the DNS parameters of a pod in addition to those generated from DNSPolicy.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "nameservers": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "A list of DNS name server IP addresses. This will be appended to the base nameservers generated from DNSPolicy. Duplicated nameservers will be removed.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "searches": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "A list of DNS search domains for host-name lookup. This will be appended to the base search paths generated from DNSPolicy. Duplicated search paths will be removed.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "options": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "A list of DNS resolver options. This will be merged with the base options generated from DNSPolicy. Duplicated entries will be removed. Resolution options given in Options will override those that appear in the base DNSPolicy.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodDNSConfigOption"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.PodDNSConfigOption"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PodDNSConfigOption(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodDNSConfigOption defines DNS resolver options of a pod.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name is this DNS resolver option's name. Required.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "value": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Value is this DNS resolver option's value.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_PodExecOptions(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodExecOptions is the query options to a Pod's remote exec call.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "stdin": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Redirect the standard input stream of the pod for this call. Defaults to false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "stdout": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Redirect the standard output stream of the pod for this call.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "stderr": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Redirect the standard error stream of the pod for this call.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "tty": {
+ SchemaProps: spec.SchemaProps{
+ Description: "TTY if true indicates that a tty will be allocated for the exec call. Defaults to false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "container": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Container in which to execute the command. Defaults to only container if there is only one container in the pod.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "command": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Command is the remote command to execute. argv array. Not executed within a shell.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"command"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_PodExtendedResourceClaimStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodExtendedResourceClaimStatus is stored in the PodStatus for the extended resource requests backed by DRA. It stores the generated name for the corresponding special ResourceClaim created by the scheduler.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "requestMappings": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "RequestMappings identifies the mapping of to device request in the generated ResourceClaim.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ContainerExtendedResourceRequest"),
+ },
+ },
+ },
+ },
+ },
+ "resourceClaimName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ResourceClaimName is the name of the ResourceClaim that was generated for the Pod in the namespace of the Pod.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"requestMappings", "resourceClaimName"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ContainerExtendedResourceRequest"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PodIP(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodIP represents a single IP address allocated to the pod.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "ip": {
+ SchemaProps: spec.SchemaProps{
+ Description: "IP is the IP address assigned to the pod",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"ip"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_PodList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodList is a list of Pods.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Description: "List of pods. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.Pod"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"items"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.Pod", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PodLogOptions(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodLogOptions is the query options for a Pod's logs REST call.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "container": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The container for which to stream logs. Defaults to only container if there is one container in the pod.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "follow": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Follow the log stream of the pod. Defaults to false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "previous": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Return previous terminated container logs. Defaults to false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "sinceSeconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "A relative time in seconds before the current time from which to show logs. If this value precedes the time a pod was started, only logs since the pod start will be returned. If this value is in the future, no logs will be returned. Only one of sinceSeconds or sinceTime may be specified.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "sinceTime": {
+ SchemaProps: spec.SchemaProps{
+ Description: "An RFC3339 timestamp from which to show logs. If this value precedes the time a pod was started, only logs since the pod start will be returned. If this value is in the future, no logs will be returned. Only one of sinceSeconds or sinceTime may be specified.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ "timestamps": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line of log output. Defaults to false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "tailLines": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If set, the number of lines from the end of the logs to show. If not specified, logs are shown from the creation of the container or sinceSeconds or sinceTime. Note that when \"TailLines\" is specified, \"Stream\" can only be set to nil or \"All\".",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "limitBytes": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If set, the number of bytes to read from the server before terminating the log output. This may not display a complete final line of logging, and may return slightly more or slightly less than the specified limit.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "insecureSkipTLSVerifyBackend": {
+ SchemaProps: spec.SchemaProps{
+ Description: "insecureSkipTLSVerifyBackend indicates that the apiserver should not confirm the validity of the serving certificate of the backend it is connecting to. This will make the HTTPS connection between the apiserver and the backend insecure. This means the apiserver cannot verify the log data it is receiving came from the real kubelet. If the kubelet is configured to verify the apiserver's TLS credentials, it does not mean the connection to the real kubelet is vulnerable to a man in the middle attack (e.g. an attacker could not intercept the actual log data coming from the real kubelet).",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "stream": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Specify which container log stream to return to the client. Acceptable values are \"All\", \"Stdout\" and \"Stderr\". If not specified, \"All\" is used, and both stdout and stderr are returned interleaved. Note that when \"TailLines\" is specified, \"Stream\" can only be set to nil or \"All\".",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.Time"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PodOS(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodOS defines the OS parameters of a pod.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name is the name of the operating system. The currently supported values are linux and windows. Additional value may be defined in future and can be one of: https://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration Clients should expect to handle additional values and treat unrecognized values in this field as os: null",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"name"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_PodPortForwardOptions(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodPortForwardOptions is the query options to a Pod's port forward call when using WebSockets. The `port` query parameter must specify the port or ports (comma separated) to forward over. Port forwarding over SPDY does not use these options. It requires the port to be passed in the `port` header as part of request.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "ports": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "List of ports to forward Required when using WebSockets",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_PodProxyOptions(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodProxyOptions is the query options to a Pod's proxy call.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "path": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Path is the URL path to use for the current proxy request to pod.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_PodReadinessGate(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodReadinessGate contains the reference to a pod condition",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "conditionType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ConditionType refers to a condition in the pod's condition list with matching type.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"conditionType"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_PodResourceClaim(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodResourceClaim references exactly one ResourceClaim, either directly or by naming a ResourceClaimTemplate which is then turned into a ResourceClaim for the pod.\n\nIt adds a name to it that uniquely identifies the ResourceClaim inside the Pod. Containers that need access to the ResourceClaim reference it with this name.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name uniquely identifies this resource claim inside the pod. This must be a DNS_LABEL.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "resourceClaimName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ResourceClaimName is the name of a ResourceClaim object in the same namespace as this pod.\n\nExactly one of ResourceClaimName and ResourceClaimTemplateName must be set.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "resourceClaimTemplateName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ResourceClaimTemplateName is the name of a ResourceClaimTemplate object in the same namespace as this pod.\n\nThe template will be used to create a new ResourceClaim, which will be bound to this pod. When this pod is deleted, the ResourceClaim will also be deleted. The pod name and resource name, along with a generated component, will be used to form a unique name for the ResourceClaim, which will be recorded in pod.status.resourceClaimStatuses.\n\nThis field is immutable and no changes will be made to the corresponding ResourceClaim by the control plane after creating the ResourceClaim.\n\nExactly one of ResourceClaimName and ResourceClaimTemplateName must be set.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"name"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_PodResourceClaimStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodResourceClaimStatus is stored in the PodStatus for each PodResourceClaim which references a ResourceClaimTemplate. It stores the generated name for the corresponding ResourceClaim.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name uniquely identifies this resource claim inside the pod. This must match the name of an entry in pod.spec.resourceClaims, which implies that the string must be a DNS_LABEL.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "resourceClaimName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ResourceClaimName is the name of the ResourceClaim that was generated for the Pod in the namespace of the Pod. If this is unset, then generating a ResourceClaim was not necessary. The pod.spec.resourceClaims entry can be ignored in this case.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"name"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_PodSchedulingGate(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodSchedulingGate is associated to a Pod to guard its scheduling.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of the scheduling gate. Each scheduling gate must have a unique name field.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"name"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_PodSecurityContext(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodSecurityContext holds pod-level security attributes and common container settings. Some fields are also present in container.securityContext. Field values of container.securityContext take precedence over field values of PodSecurityContext.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "seLinuxOptions": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.",
+ Ref: ref("k8s.io/api/core/v1.SELinuxOptions"),
+ },
+ },
+ "windowsOptions": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.",
+ Ref: ref("k8s.io/api/core/v1.WindowsSecurityContextOptions"),
+ },
+ },
+ "runAsUser": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "runAsGroup": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "runAsNonRoot": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "supplementalGroups": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ },
+ },
+ },
+ "supplementalGroupsPolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Defines how supplemental groups of the first container processes are calculated. Valid values are \"Merge\" and \"Strict\". If not specified, \"Merge\" is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.\n\nPossible enum values:\n - `\"Merge\"` means that the container's provided SupplementalGroups and FsGroup (specified in SecurityContext) will be merged with the primary user's groups as defined in the container image (in /etc/group).\n - `\"Strict\"` means that the container's provided SupplementalGroups and FsGroup (specified in SecurityContext) will be used instead of any groups defined in the container image.",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Merge", "Strict"},
+ },
+ },
+ "fsGroup": {
+ SchemaProps: spec.SchemaProps{
+ Description: "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod:\n\n1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw----\n\nIf unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "sysctls": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.Sysctl"),
+ },
+ },
+ },
+ },
+ },
+ "fsGroupChangePolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are \"OnRootMismatch\" and \"Always\". If not specified, \"Always\" is used. Note that this field cannot be set when spec.os.name is windows.\n\nPossible enum values:\n - `\"Always\"` indicates that volume's ownership and permissions should always be changed whenever volume is mounted inside a Pod. This the default behavior.\n - `\"OnRootMismatch\"` indicates that volume's ownership and permissions will be changed only when permission and ownership of root directory does not match with expected permissions on the volume. This can help shorten the time it takes to change ownership and permissions of a volume.",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Always", "OnRootMismatch"},
+ },
+ },
+ "seccompProfile": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.",
+ Ref: ref("k8s.io/api/core/v1.SeccompProfile"),
+ },
+ },
+ "appArmorProfile": {
+ SchemaProps: spec.SchemaProps{
+ Description: "appArmorProfile is the AppArmor options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.",
+ Ref: ref("k8s.io/api/core/v1.AppArmorProfile"),
+ },
+ },
+ "seLinuxChangePolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux. Valid values are \"MountOption\" and \"Recursive\".\n\n\"Recursive\" means relabeling of all files on all Pod volumes by the container runtime. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node.\n\n\"MountOption\" mounts all eligible Pod volumes with `-o context` mount option. This requires all Pods that share the same volume to use the same SELinux label. It is not possible to share the same volume among privileged and unprivileged Pods. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their CSIDriver instance. Other volumes are always re-labelled recursively. \"MountOption\" value is allowed only when SELinuxMount feature gate is enabled.\n\nIf not specified and SELinuxMount feature gate is enabled, \"MountOption\" is used. If not specified and SELinuxMount feature gate is disabled, \"MountOption\" is used for ReadWriteOncePod volumes and \"Recursive\" for all other volumes.\n\nThis field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers.\n\nAll Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state. Note that this field cannot be set when spec.os.name is windows.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.AppArmorProfile", "k8s.io/api/core/v1.SELinuxOptions", "k8s.io/api/core/v1.SeccompProfile", "k8s.io/api/core/v1.Sysctl", "k8s.io/api/core/v1.WindowsSecurityContextOptions"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PodSignature(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Describes the class of pods that should avoid this node. Exactly one field should be set.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "podController": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Reference to controller whose pods should avoid this node.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.OwnerReference"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.OwnerReference"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PodSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodSpec is a description of a pod.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "volumes": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "name",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge,retainKeys",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.Volume"),
+ },
+ },
+ },
+ },
+ },
+ "initContainers": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "name",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.Container"),
+ },
+ },
+ },
+ },
+ },
+ "containers": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "name",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.Container"),
+ },
+ },
+ },
+ },
+ },
+ "ephemeralContainers": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "name",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing pod to perform user-initiated actions such as debugging. This list cannot be specified when creating a pod, and it cannot be modified by updating the pod spec. In order to add an ephemeral container to an existing pod, use the pod's ephemeralcontainers subresource.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.EphemeralContainer"),
+ },
+ },
+ },
+ },
+ },
+ "restartPolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Restart policy for all containers within the pod. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy\n\nPossible enum values:\n - `\"Always\"`\n - `\"Never\"`\n - `\"OnFailure\"`",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Always", "Never", "OnFailure"},
+ },
+ },
+ "terminationGracePeriodSeconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 30 seconds.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "activeDeadlineSeconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Optional duration in seconds the pod may be active on the node relative to StartTime before the system will actively try to mark it failed and kill associated containers. Value must be a positive integer.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "dnsPolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Set DNS policy for the pod. Defaults to \"ClusterFirst\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.\n\nPossible enum values:\n - `\"ClusterFirst\"` indicates that the pod should use cluster DNS first unless hostNetwork is true, if it is available, then fall back on the default (as determined by kubelet) DNS settings.\n - `\"ClusterFirstWithHostNet\"` indicates that the pod should use cluster DNS first, if it is available, then fall back on the default (as determined by kubelet) DNS settings.\n - `\"Default\"` indicates that the pod should use the default (as determined by kubelet) DNS settings.\n - `\"None\"` indicates that the pod should use empty DNS settings. DNS parameters such as nameservers and search paths should be defined via DNSConfig.",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"ClusterFirst", "ClusterFirstWithHostNet", "Default", "None"},
+ },
+ },
+ "nodeSelector": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-map-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "serviceAccountName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "serviceAccount": {
+ SchemaProps: spec.SchemaProps{
+ Description: "DeprecatedServiceAccount is a deprecated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "automountServiceAccountToken": {
+ SchemaProps: spec.SchemaProps{
+ Description: "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "nodeName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "NodeName indicates in which node this pod is scheduled. If empty, this pod is a candidate for scheduling by the scheduler defined in schedulerName. Once this field is set, the kubelet for this node becomes responsible for the lifecycle of this pod. This field should not be used to express a desire for the pod to be scheduled on a specific node. https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodename",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "hostNetwork": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Host networking requested for this pod. Use the host's network namespace. When using HostNetwork you should specify ports so the scheduler is aware. When `hostNetwork` is true, specified `hostPort` fields in port definitions must match `containerPort`, and unspecified `hostPort` fields in port definitions are defaulted to match `containerPort`. Default to false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "hostPID": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Use the host's pid namespace. Optional: Default to false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "hostIPC": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Use the host's ipc namespace. Optional: Default to false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "shareProcessNamespace": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Share a single process namespace between all of the containers in a pod. When this is set containers will be able to view and signal processes from other containers in the same pod, and the first process in each container will not be assigned PID 1. HostPID and ShareProcessNamespace cannot both be set. Optional: Default to false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "securityContext": {
+ SchemaProps: spec.SchemaProps{
+ Description: "SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field.",
+ Ref: ref("k8s.io/api/core/v1.PodSecurityContext"),
+ },
+ },
+ "imagePullSecrets": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "name",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.LocalObjectReference"),
+ },
+ },
+ },
+ },
+ },
+ "hostname": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "subdomain": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If specified, the fully qualified Pod hostname will be \"...svc.\". If not specified, the pod will not have a domainname at all.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "affinity": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If specified, the pod's scheduling constraints",
+ Ref: ref("k8s.io/api/core/v1.Affinity"),
+ },
+ },
+ "schedulerName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "tolerations": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "If specified, the pod's tolerations.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.Toleration"),
+ },
+ },
+ },
+ },
+ },
+ "hostAliases": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "ip",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "ip",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts file if specified.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.HostAlias"),
+ },
+ },
+ },
+ },
+ },
+ "priorityClassName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If specified, indicates the pod's priority. \"system-node-critical\" and \"system-cluster-critical\" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "priority": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "dnsConfig": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.",
+ Ref: ref("k8s.io/api/core/v1.PodDNSConfig"),
+ },
+ },
+ "readinessGates": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "If specified, all readiness gates will be evaluated for pod readiness. A pod is ready when all its containers are ready AND all conditions specified in the readiness gates have status equal to \"True\" More info: https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodReadinessGate"),
+ },
+ },
+ },
+ },
+ },
+ "runtimeClassName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "enableServiceLinks": {
+ SchemaProps: spec.SchemaProps{
+ Description: "EnableServiceLinks indicates whether information about services should be injected into pod's environment variables, matching the syntax of Docker links. Optional: Defaults to true.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "preemptionPolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset.\n\nPossible enum values:\n - `\"Never\"` means that pod never preempts other pods with lower priority.\n - `\"PreemptLowerPriority\"` means that pod can preempt other pods with lower priority.",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Never", "PreemptLowerPriority"},
+ },
+ },
+ "overhead": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Overhead represents the resource overhead associated with running a pod for a given RuntimeClass. This field will be autopopulated at admission time by the RuntimeClass admission controller. If the RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests. The RuntimeClass admission controller will reject Pod create requests which have the overhead already set. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value defined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero. More info: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
+ },
+ },
+ },
+ },
+ },
+ "topologySpreadConstraints": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "topologyKey",
+ "whenUnsatisfiable",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "topologyKey",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "TopologySpreadConstraints describes how a group of pods ought to spread across topology domains. Scheduler will schedule pods in a way which abides by the constraints. All topologySpreadConstraints are ANDed.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.TopologySpreadConstraint"),
+ },
+ },
+ },
+ },
+ },
+ "setHostnameAsFQDN": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "os": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Specifies the OS of the containers in the pod. Some pod and container fields are restricted if this is set.\n\nIf the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions\n\nIf the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.hostUsers - spec.resources - spec.securityContext.appArmorProfile - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.securityContext.supplementalGroupsPolicy - spec.containers[*].securityContext.appArmorProfile - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup",
+ Ref: ref("k8s.io/api/core/v1.PodOS"),
+ },
+ },
+ "hostUsers": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Use the host's user namespace. Optional: Default to true. If set to true or not present, the pod will be run in the host user namespace, useful for when the pod needs a feature only available to the host user namespace, such as loading a kernel module with CAP_SYS_MODULE. When set to false, a new userns is created for the pod. Setting false is useful for mitigating container breakout vulnerabilities even allowing users to run their containers as root without actually having root privileges on the host. This field is alpha-level and is only honored by servers that enable the UserNamespacesSupport feature.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "schedulingGates": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "name",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "SchedulingGates is an opaque list of values that if specified will block scheduling the pod. If schedulingGates is not empty, the pod will stay in the SchedulingGated state and the scheduler will not attempt to schedule the pod.\n\nSchedulingGates can only be set at pod creation time, and be removed only afterwards.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodSchedulingGate"),
+ },
+ },
+ },
+ },
+ },
+ "resourceClaims": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "name",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge,retainKeys",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.\n\nThis is an alpha field and requires enabling the DynamicResourceAllocation feature gate.\n\nThis field is immutable.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodResourceClaim"),
+ },
+ },
+ },
+ },
+ },
+ "resources": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for \"cpu\", \"memory\" and \"hugepages-\" resource names only. ResourceClaims are not supported.\n\nThis field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod.\n\nThis is an alpha field and requires enabling the PodLevelResources feature gate.",
+ Ref: ref("k8s.io/api/core/v1.ResourceRequirements"),
+ },
+ },
+ "hostnameOverride": {
+ SchemaProps: spec.SchemaProps{
+ Description: "HostnameOverride specifies an explicit override for the pod's hostname as perceived by the pod. This field only specifies the pod's hostname and does not affect its DNS records. When this field is set to a non-empty string: - It takes precedence over the values set in `hostname` and `subdomain`. - The Pod's hostname will be set to this value. - `setHostnameAsFQDN` must be nil or set to false. - `hostNetwork` must be set to false.\n\nThis field must be a valid DNS subdomain as defined in RFC 1123 and contain at most 64 characters. Requires the HostnameOverride feature gate to be enabled.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"containers"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.EphemeralContainer", "k8s.io/api/core/v1.HostAlias", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodOS", "k8s.io/api/core/v1.PodReadinessGate", "k8s.io/api/core/v1.PodResourceClaim", "k8s.io/api/core/v1.PodSchedulingGate", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.TopologySpreadConstraint", "k8s.io/api/core/v1.Volume", "k8s.io/apimachinery/pkg/api/resource.Quantity"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PodStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodStatus represents information about the status of a pod. Status may trail the actual state of a system, especially if the node that hosts the pod cannot contact the control plane.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "observedGeneration": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If set, this represents the .metadata.generation that the pod status was set based upon. This is an alpha field. Enable PodObservedGenerationTracking to be able to use this field.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "phase": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle. The conditions array, the reason and message fields, and the individual container status arrays contain more detail about the pod's status. There are five possible phase values:\n\nPending: The pod has been accepted by the Kubernetes system, but one or more of the container images has not been created. This includes time before being scheduled as well as time spent downloading images over the network, which could take a while. Running: The pod has been bound to a node, and all of the containers have been created. At least one container is still running, or is in the process of starting or restarting. Succeeded: All containers in the pod have terminated in success, and will not be restarted. Failed: All containers in the pod have terminated, and at least one container has terminated in failure. The container either exited with non-zero status or was terminated by the system. Unknown: For some reason the state of the pod could not be obtained, typically due to an error in communicating with the host of the pod.\n\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase\n\nPossible enum values:\n - `\"Failed\"` means that all containers in the pod have terminated, and at least one container has terminated in a failure (exited with a non-zero exit code or was stopped by the system).\n - `\"Pending\"` means the pod has been accepted by the system, but one or more of the containers has not been started. This includes time before being bound to a node, as well as time spent pulling images onto the host.\n - `\"Running\"` means the pod has been bound to a node and all of the containers have been started. At least one container is still running or is in the process of being restarted.\n - `\"Succeeded\"` means that all containers in the pod have voluntarily terminated with a container exit code of 0, and the system is not going to restart any of these containers.\n - `\"Unknown\"` means that for some reason the state of the pod could not be obtained, typically due to an error in communicating with the host of the pod. Deprecated: It isn't being set since 2015 (74da3b14b0c0f658b3bb8d2def5094686d0e9095)",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Failed", "Pending", "Running", "Succeeded", "Unknown"},
+ },
+ },
+ "conditions": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "type",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "type",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Current service state of pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodCondition"),
+ },
+ },
+ },
+ },
+ },
+ "message": {
+ SchemaProps: spec.SchemaProps{
+ Description: "A human readable message indicating details about why the pod is in this condition.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "reason": {
+ SchemaProps: spec.SchemaProps{
+ Description: "A brief CamelCase message indicating details about why the pod is in this state. e.g. 'Evicted'",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "nominatedNodeName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "nominatedNodeName is set only when this pod preempts other pods on the node, but it cannot be scheduled right away as preemption victims receive their graceful termination periods. This field does not guarantee that the pod will be scheduled on this node. Scheduler may decide to place the pod elsewhere if other nodes become available sooner. Scheduler may also decide to give the resources on this node to a higher priority pod that is created after preemption. As a result, this field may be different than PodSpec.nodeName when the pod is scheduled.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "hostIP": {
+ SchemaProps: spec.SchemaProps{
+ Description: "hostIP holds the IP address of the host to which the pod is assigned. Empty if the pod has not started yet. A pod can be assigned to a node that has a problem in kubelet which in turns mean that HostIP will not be updated even if there is a node is assigned to pod",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "hostIPs": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ "x-kubernetes-patch-merge-key": "ip",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "hostIPs holds the IP addresses allocated to the host. If this field is specified, the first entry must match the hostIP field. This list is empty if the pod has not started yet. A pod can be assigned to a node that has a problem in kubelet which in turns means that HostIPs will not be updated even if there is a node is assigned to this pod.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.HostIP"),
+ },
+ },
+ },
+ },
+ },
+ "podIP": {
+ SchemaProps: spec.SchemaProps{
+ Description: "podIP address allocated to the pod. Routable at least within the cluster. Empty if not yet allocated.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "podIPs": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "ip",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "ip",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "podIPs holds the IP addresses allocated to the pod. If this field is specified, the 0th entry must match the podIP field. Pods may be allocated at most 1 value for each of IPv4 and IPv6. This list is empty if no IPs have been allocated yet.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodIP"),
+ },
+ },
+ },
+ },
+ },
+ "startTime": {
+ SchemaProps: spec.SchemaProps{
+ Description: "RFC 3339 date and time at which the object was acknowledged by the Kubelet. This is before the Kubelet pulled the container image(s) for the pod.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ "initContainerStatuses": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Statuses of init containers in this pod. The most recent successful non-restartable init container will have ready = true, the most recently started container will have startTime set. Each init container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-and-container-status",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ContainerStatus"),
+ },
+ },
+ },
+ },
+ },
+ "containerStatuses": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Statuses of containers in this pod. Each container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ContainerStatus"),
+ },
+ },
+ },
+ },
+ },
+ "qosClass": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The Quality of Service (QOS) classification assigned to the pod based on resource requirements See PodQOSClass type for available QOS classes More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-qos/#quality-of-service-classes\n\nPossible enum values:\n - `\"BestEffort\"` is the BestEffort qos class.\n - `\"Burstable\"` is the Burstable qos class.\n - `\"Guaranteed\"` is the Guaranteed qos class.",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"BestEffort", "Burstable", "Guaranteed"},
+ },
+ },
+ "ephemeralContainerStatuses": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Statuses for any ephemeral containers that have run in this pod. Each ephemeral container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ContainerStatus"),
+ },
+ },
+ },
+ },
+ },
+ "resize": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Status of resources resize desired for pod's containers. It is empty if no resources resize is pending. Any changes to container resources will automatically set this to \"Proposed\" Deprecated: Resize status is moved to two pod conditions PodResizePending and PodResizeInProgress. PodResizePending will track states where the spec has been resized, but the Kubelet has not yet allocated the resources. PodResizeInProgress will track in-progress resizes, and should be present whenever allocated resources != acknowledged resources.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "resourceClaimStatuses": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "name",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge,retainKeys",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Status of resource claims.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodResourceClaimStatus"),
+ },
+ },
+ },
+ },
+ },
+ "extendedResourceClaimStatus": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Status of extended resource claim backed by DRA.",
+ Ref: ref("k8s.io/api/core/v1.PodExtendedResourceClaimStatus"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ContainerStatus", "k8s.io/api/core/v1.HostIP", "k8s.io/api/core/v1.PodCondition", "k8s.io/api/core/v1.PodExtendedResourceClaimStatus", "k8s.io/api/core/v1.PodIP", "k8s.io/api/core/v1.PodResourceClaimStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PodStatusResult(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodStatusResult is a wrapper for PodStatus returned by kubelet that can be encode/decoded",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Most recently observed status of the pod. This data may not be up to date. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodStatus"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.PodStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PodTemplate(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodTemplate describes a template for creating copies of a predefined pod.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "template": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Template defines the pods that will be created from this pod template. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodTemplateSpec"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.PodTemplateSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PodTemplateList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodTemplateList is a list of PodTemplates.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Description: "List of pod templates",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodTemplate"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"items"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.PodTemplate", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PodTemplateSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodTemplateSpec describes the data a pod should have when created from a template",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "spec": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodSpec"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.PodSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PortStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PortStatus represents the error condition of a service port",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "port": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Port is the port number of the service port of which status is recorded here",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "protocol": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Protocol is the protocol of the service port of which status is recorded here The supported values are: \"TCP\", \"UDP\", \"SCTP\"\n\nPossible enum values:\n - `\"SCTP\"` is the SCTP protocol.\n - `\"TCP\"` is the TCP protocol.\n - `\"UDP\"` is the UDP protocol.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"SCTP", "TCP", "UDP"},
+ },
+ },
+ "error": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Error is to record the problem with the service port The format of the error shall comply with the following rules: - built-in error values shall be specified in this file and those shall use\n CamelCase names\n- cloud provider specific error values must have names that comply with the\n format foo.example.com/CamelCase.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"port", "protocol"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_PortworxVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PortworxVolumeSource represents a Portworx volume resource.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "volumeID": {
+ SchemaProps: spec.SchemaProps{
+ Description: "volumeID uniquely identifies a Portworx volume",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fsType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\". Implicitly inferred to be \"ext4\" if unspecified.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"volumeID"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_PreferAvoidPodsEntry(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Describes a class of pods that should avoid this node.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "podSignature": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The class of pods.",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodSignature"),
+ },
+ },
+ "evictionTime": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Time at which this entry was added to the list.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ "reason": {
+ SchemaProps: spec.SchemaProps{
+ Description: "(brief) reason why this entry was added to the list.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "message": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Human readable message indicating why this entry was added to the list.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"podSignature"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.PodSignature", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PreferredSchedulingTerm(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "weight": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "preference": {
+ SchemaProps: spec.SchemaProps{
+ Description: "A node selector term, associated with the corresponding weight.",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.NodeSelectorTerm"),
+ },
+ },
+ },
+ Required: []string{"weight", "preference"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.NodeSelectorTerm"},
+ }
+}
+
+func schema_k8sio_api_core_v1_Probe(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "exec": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Exec specifies a command to execute in the container.",
+ Ref: ref("k8s.io/api/core/v1.ExecAction"),
+ },
+ },
+ "httpGet": {
+ SchemaProps: spec.SchemaProps{
+ Description: "HTTPGet specifies an HTTP GET request to perform.",
+ Ref: ref("k8s.io/api/core/v1.HTTPGetAction"),
+ },
+ },
+ "tcpSocket": {
+ SchemaProps: spec.SchemaProps{
+ Description: "TCPSocket specifies a connection to a TCP port.",
+ Ref: ref("k8s.io/api/core/v1.TCPSocketAction"),
+ },
+ },
+ "grpc": {
+ SchemaProps: spec.SchemaProps{
+ Description: "GRPC specifies a GRPC HealthCheckRequest.",
+ Ref: ref("k8s.io/api/core/v1.GRPCAction"),
+ },
+ },
+ "initialDelaySeconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "timeoutSeconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "periodSeconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "successThreshold": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "failureThreshold": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "terminationGracePeriodSeconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ExecAction", "k8s.io/api/core/v1.GRPCAction", "k8s.io/api/core/v1.HTTPGetAction", "k8s.io/api/core/v1.TCPSocketAction"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ProbeHandler(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ProbeHandler defines a specific action that should be taken in a probe. One and only one of the fields must be specified.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "exec": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Exec specifies a command to execute in the container.",
+ Ref: ref("k8s.io/api/core/v1.ExecAction"),
+ },
+ },
+ "httpGet": {
+ SchemaProps: spec.SchemaProps{
+ Description: "HTTPGet specifies an HTTP GET request to perform.",
+ Ref: ref("k8s.io/api/core/v1.HTTPGetAction"),
+ },
+ },
+ "tcpSocket": {
+ SchemaProps: spec.SchemaProps{
+ Description: "TCPSocket specifies a connection to a TCP port.",
+ Ref: ref("k8s.io/api/core/v1.TCPSocketAction"),
+ },
+ },
+ "grpc": {
+ SchemaProps: spec.SchemaProps{
+ Description: "GRPC specifies a GRPC HealthCheckRequest.",
+ Ref: ref("k8s.io/api/core/v1.GRPCAction"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ExecAction", "k8s.io/api/core/v1.GRPCAction", "k8s.io/api/core/v1.HTTPGetAction", "k8s.io/api/core/v1.TCPSocketAction"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ProjectedVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a projected volume source",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "sources": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "sources is the list of volume projections. Each entry in this list handles one source.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.VolumeProjection"),
+ },
+ },
+ },
+ },
+ },
+ "defaultMode": {
+ SchemaProps: spec.SchemaProps{
+ Description: "defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.VolumeProjection"},
+ }
+}
+
+func schema_k8sio_api_core_v1_QuobyteVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a Quobyte mount that lasts the lifetime of a pod. Quobyte volumes do not support ownership management or SELinux relabeling.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "registry": {
+ SchemaProps: spec.SchemaProps{
+ Description: "registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "volume": {
+ SchemaProps: spec.SchemaProps{
+ Description: "volume is a string that references an already created Quobyte volume by name.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "user": {
+ SchemaProps: spec.SchemaProps{
+ Description: "user to map volume access to Defaults to serivceaccount user",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "group": {
+ SchemaProps: spec.SchemaProps{
+ Description: "group to map volume access to Default is no group",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "tenant": {
+ SchemaProps: spec.SchemaProps{
+ Description: "tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"registry", "volume"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_RBDPersistentVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "monitors": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "image": {
+ SchemaProps: spec.SchemaProps{
+ Description: "image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fsType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "pool": {
+ SchemaProps: spec.SchemaProps{
+ Description: "pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it",
+ Default: "rbd",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "user": {
+ SchemaProps: spec.SchemaProps{
+ Description: "user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it",
+ Default: "admin",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "keyring": {
+ SchemaProps: spec.SchemaProps{
+ Description: "keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it",
+ Default: "/etc/ceph/keyring",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "secretRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it",
+ Ref: ref("k8s.io/api/core/v1.SecretReference"),
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"monitors", "image"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.SecretReference"},
+ }
+}
+
+func schema_k8sio_api_core_v1_RBDVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "monitors": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "image": {
+ SchemaProps: spec.SchemaProps{
+ Description: "image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fsType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "pool": {
+ SchemaProps: spec.SchemaProps{
+ Description: "pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it",
+ Default: "rbd",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "user": {
+ SchemaProps: spec.SchemaProps{
+ Description: "user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it",
+ Default: "admin",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "keyring": {
+ SchemaProps: spec.SchemaProps{
+ Description: "keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it",
+ Default: "/etc/ceph/keyring",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "secretRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it",
+ Ref: ref("k8s.io/api/core/v1.LocalObjectReference"),
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"monitors", "image"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.LocalObjectReference"},
+ }
+}
+
+func schema_k8sio_api_core_v1_RangeAllocation(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "RangeAllocation is not a public type.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "range": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Range is string that identifies the range represented by 'data'.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "data": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Data is a bit array containing all allocated addresses in the previous segment.",
+ Type: []string{"string"},
+ Format: "byte",
+ },
+ },
+ },
+ Required: []string{"range", "data"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ReplicationController(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ReplicationController represents the configuration of a replication controller.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If the Labels of a ReplicationController are empty, they are defaulted to be the same as the Pod(s) that the replication controller manages. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "spec": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Spec defines the specification of the desired behavior of the replication controller. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ReplicationControllerSpec"),
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Status is the most recently observed status of the replication controller. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ReplicationControllerStatus"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ReplicationControllerSpec", "k8s.io/api/core/v1.ReplicationControllerStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ReplicationControllerCondition(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ReplicationControllerCondition describes the state of a replication controller at a certain point.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Type of replication controller condition.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Status of the condition, one of True, False, Unknown.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "lastTransitionTime": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The last time the condition transitioned from one status to another.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ "reason": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The reason for the condition's last transition.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "message": {
+ SchemaProps: spec.SchemaProps{
+ Description: "A human readable message indicating details about the transition.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"type", "status"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.Time"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ReplicationControllerList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ReplicationControllerList is a collection of replication controllers.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Description: "List of replication controllers. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ReplicationController"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"items"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ReplicationController", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ReplicationControllerSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ReplicationControllerSpec is the specification of a replication controller.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "replicas": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller",
+ Default: 1,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "minReadySeconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "selector": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-map-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Selector is a label query over pods that should match the Replicas count. If Selector is empty, it is defaulted to the labels present on the Pod template. Label keys and values that must match in order to be controlled by this replication controller, if empty defaulted to labels on Pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "template": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Template is the object that describes the pod that will be created if insufficient replicas are detected. This takes precedence over a TemplateRef. The only allowed template.spec.restartPolicy value is \"Always\". More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template",
+ Ref: ref("k8s.io/api/core/v1.PodTemplateSpec"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.PodTemplateSpec"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ReplicationControllerStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ReplicationControllerStatus represents the current status of a replication controller.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "replicas": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Replicas is the most recently observed number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "fullyLabeledReplicas": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The number of pods that have labels matching the labels of the pod template of the replication controller.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "readyReplicas": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The number of ready replicas for this replication controller.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "availableReplicas": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The number of available replicas (ready for at least minReadySeconds) for this replication controller.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "observedGeneration": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ObservedGeneration reflects the generation of the most recently observed replication controller.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "conditions": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "type",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "type",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents the latest available observations of a replication controller's current state.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ReplicationControllerCondition"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"replicas"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ReplicationControllerCondition"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ResourceClaim(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ResourceClaim references one entry in PodSpec.ResourceClaims.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "request": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"name"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_ResourceFieldSelector(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ResourceFieldSelector represents container resources (cpu, memory) and their output format",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "containerName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Container name: required for volumes, optional for env vars",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "resource": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Required: resource to select",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "divisor": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Specifies the output format of the exposed resources, defaults to \"1\"",
+ Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
+ },
+ },
+ },
+ Required: []string{"resource"},
+ },
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-map-type": "atomic",
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/api/resource.Quantity"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ResourceHealth(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ResourceHealth represents the health of a resource. It has the latest device health information. This is a part of KEP https://kep.k8s.io/4680.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "resourceID": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ResourceID is the unique identifier of the resource. See the ResourceID type for more information.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "health": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Health of the resource. can be one of:\n - Healthy: operates as normal\n - Unhealthy: reported unhealthy. We consider this a temporary health issue\n since we do not have a mechanism today to distinguish\n temporary and permanent issues.\n - Unknown: The status cannot be determined.\n For example, Device Plugin got unregistered and hasn't been re-registered since.\n\nIn future we may want to introduce the PermanentlyUnhealthy Status.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"resourceID"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_ResourceQuota(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ResourceQuota sets aggregate quota restrictions enforced per namespace",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "spec": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Spec defines the desired quota. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ResourceQuotaSpec"),
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Status defines the actual enforced quota and its current usage. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ResourceQuotaStatus"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ResourceQuotaSpec", "k8s.io/api/core/v1.ResourceQuotaStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ResourceQuotaList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ResourceQuotaList is a list of ResourceQuota items.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Items is a list of ResourceQuota objects. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ResourceQuota"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"items"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ResourceQuota", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ResourceQuotaSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ResourceQuotaSpec defines the desired hard limits to enforce for Quota.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "hard": {
+ SchemaProps: spec.SchemaProps{
+ Description: "hard is the set of desired hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
+ },
+ },
+ },
+ },
+ },
+ "scopes": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "A collection of filters that must match each object tracked by a quota. If not specified, the quota matches all objects.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "scopeSelector": {
+ SchemaProps: spec.SchemaProps{
+ Description: "scopeSelector is also a collection of filters like scopes that must match each object tracked by a quota but expressed using ScopeSelectorOperator in combination with possible values. For a resource to match, both scopes AND scopeSelector (if specified in spec), must be matched.",
+ Ref: ref("k8s.io/api/core/v1.ScopeSelector"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ScopeSelector", "k8s.io/apimachinery/pkg/api/resource.Quantity"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ResourceQuotaStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ResourceQuotaStatus defines the enforced hard limits and observed use.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "hard": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Hard is the set of enforced hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
+ },
+ },
+ },
+ },
+ },
+ "used": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Used is the current observed total usage of the resource in the namespace.",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/api/resource.Quantity"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ResourceRequirements(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ResourceRequirements describes the compute resource requirements.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "limits": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
+ },
+ },
+ },
+ },
+ },
+ "requests": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
+ },
+ },
+ },
+ },
+ },
+ "claims": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "name",
+ },
+ "x-kubernetes-list-type": "map",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container.\n\nThis field depends on the DynamicResourceAllocation feature gate.\n\nThis field is immutable. It can only be set for containers.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ResourceClaim"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ResourceClaim", "k8s.io/apimachinery/pkg/api/resource.Quantity"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ResourceStatus represents the status of a single resource allocated to a Pod.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of the resource. Must be unique within the pod and in case of non-DRA resource, match one of the resources from the pod spec. For DRA resources, the value must be \"claim:/\". When this status is reported about a container, the \"claim_name\" and \"request\" must match one of the claims of this container.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "resources": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "resourceID",
+ },
+ "x-kubernetes-list-type": "map",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "List of unique resources health. Each element in the list contains an unique resource ID and its health. At a minimum, for the lifetime of a Pod, resource ID must uniquely identify the resource allocated to the Pod on the Node. If other Pod on the same Node reports the status with the same resource ID, it must be the same resource they share. See ResourceID type definition for a specific format it has in various use cases.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ResourceHealth"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"name"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ResourceHealth"},
+ }
+}
+
+func schema_k8sio_api_core_v1_SELinuxOptions(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "SELinuxOptions are the labels to be applied to the container",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "user": {
+ SchemaProps: spec.SchemaProps{
+ Description: "User is a SELinux user label that applies to the container.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "role": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Role is a SELinux role label that applies to the container.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Type is a SELinux type label that applies to the container.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "level": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Level is SELinux level label that applies to the container.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_ScaleIOPersistentVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ScaleIOPersistentVolumeSource represents a persistent ScaleIO volume",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "gateway": {
+ SchemaProps: spec.SchemaProps{
+ Description: "gateway is the host address of the ScaleIO API Gateway.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "system": {
+ SchemaProps: spec.SchemaProps{
+ Description: "system is the name of the storage system as configured in ScaleIO.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "secretRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.",
+ Ref: ref("k8s.io/api/core/v1.SecretReference"),
+ },
+ },
+ "sslEnabled": {
+ SchemaProps: spec.SchemaProps{
+ Description: "sslEnabled is the flag to enable/disable SSL communication with Gateway, default false",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "protectionDomain": {
+ SchemaProps: spec.SchemaProps{
+ Description: "protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "storagePool": {
+ SchemaProps: spec.SchemaProps{
+ Description: "storagePool is the ScaleIO Storage Pool associated with the protection domain.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "storageMode": {
+ SchemaProps: spec.SchemaProps{
+ Description: "storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.",
+ Default: "ThinProvisioned",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "volumeName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fsType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Default is \"xfs\"",
+ Default: "xfs",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"gateway", "system", "secretRef"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.SecretReference"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ScaleIOVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ScaleIOVolumeSource represents a persistent ScaleIO volume",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "gateway": {
+ SchemaProps: spec.SchemaProps{
+ Description: "gateway is the host address of the ScaleIO API Gateway.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "system": {
+ SchemaProps: spec.SchemaProps{
+ Description: "system is the name of the storage system as configured in ScaleIO.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "secretRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.",
+ Ref: ref("k8s.io/api/core/v1.LocalObjectReference"),
+ },
+ },
+ "sslEnabled": {
+ SchemaProps: spec.SchemaProps{
+ Description: "sslEnabled Flag enable/disable SSL communication with Gateway, default false",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "protectionDomain": {
+ SchemaProps: spec.SchemaProps{
+ Description: "protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "storagePool": {
+ SchemaProps: spec.SchemaProps{
+ Description: "storagePool is the ScaleIO Storage Pool associated with the protection domain.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "storageMode": {
+ SchemaProps: spec.SchemaProps{
+ Description: "storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.",
+ Default: "ThinProvisioned",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "volumeName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fsType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Default is \"xfs\".",
+ Default: "xfs",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"gateway", "system", "secretRef"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.LocalObjectReference"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ScopeSelector(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "A scope selector represents the AND of the selectors represented by the scoped-resource selector requirements.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "matchExpressions": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "A list of scope selector requirements by scope of the resources.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ScopedResourceSelectorRequirement"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-map-type": "atomic",
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ScopedResourceSelectorRequirement"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ScopedResourceSelectorRequirement(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "A scoped-resource selector requirement is a selector that contains values, a scope name, and an operator that relates the scope name and values.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "scopeName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The name of the scope that the selector applies to.\n\nPossible enum values:\n - `\"BestEffort\"` Match all pod objects that have best effort quality of service\n - `\"CrossNamespacePodAffinity\"` Match all pod objects that have cross-namespace pod (anti)affinity mentioned.\n - `\"NotBestEffort\"` Match all pod objects that do not have best effort quality of service\n - `\"NotTerminating\"` Match all pod objects where spec.activeDeadlineSeconds is nil\n - `\"PriorityClass\"` Match all pod objects that have priority class mentioned\n - `\"Terminating\"` Match all pod objects where spec.activeDeadlineSeconds >=0\n - `\"VolumeAttributesClass\"` Match all pvc objects that have volume attributes class mentioned.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"BestEffort", "CrossNamespacePodAffinity", "NotBestEffort", "NotTerminating", "PriorityClass", "Terminating", "VolumeAttributesClass"},
+ },
+ },
+ "operator": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a scope's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist.\n\nPossible enum values:\n - `\"DoesNotExist\"`\n - `\"Exists\"`\n - `\"In\"`\n - `\"NotIn\"`",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"DoesNotExist", "Exists", "In", "NotIn"},
+ },
+ },
+ "values": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"scopeName", "operator"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_SeccompProfile(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "SeccompProfile defines a pod/container's seccomp profile settings. Only one profile source may be set.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Description: "type indicates which kind of seccomp profile will be applied. Valid options are:\n\nLocalhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.\n\nPossible enum values:\n - `\"Localhost\"` indicates a profile defined in a file on the node should be used. The file's location relative to /seccomp.\n - `\"RuntimeDefault\"` represents the default container runtime seccomp profile.\n - `\"Unconfined\"` indicates no seccomp profile is applied (A.K.A. unconfined).",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Localhost", "RuntimeDefault", "Unconfined"},
+ },
+ },
+ "localhostProfile": {
+ SchemaProps: spec.SchemaProps{
+ Description: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is \"Localhost\". Must NOT be set for any other type.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"type"},
+ },
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-unions": []interface{}{
+ map[string]interface{}{
+ "discriminator": "type",
+ "fields-to-discriminateBy": map[string]interface{}{
+ "localhostProfile": "LocalhostProfile",
+ },
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_Secret(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Secret holds secret data of a certain type. The total bytes of the values in the Data field must be less than MaxSecretSize bytes.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "immutable": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Immutable, if set to true, ensures that data stored in the Secret cannot be updated (only object metadata can be modified). If not set to true, the field can be modified at any time. Defaulted to nil.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "data": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Data contains the secret data. Each key must consist of alphanumeric characters, '-', '_' or '.'. The serialized form of the secret data is a base64 encoded string, representing the arbitrary (possibly non-string) data value here. Described in https://tools.ietf.org/html/rfc4648#section-4",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "byte",
+ },
+ },
+ },
+ },
+ },
+ "stringData": {
+ SchemaProps: spec.SchemaProps{
+ Description: "stringData allows specifying non-binary secret data in string form. It is provided as a write-only input field for convenience. All keys and values are merged into the data field on write, overwriting any existing values. The stringData field is never output when reading from the API.",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Used to facilitate programmatic handling of secret data. More info: https://kubernetes.io/docs/concepts/configuration/secret/#secret-types",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_SecretEnvSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "SecretEnvSource selects a Secret to populate the environment variables with.\n\nThe contents of the target Secret's Data field will represent the key-value pairs as environment variables.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "optional": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Specify whether the Secret must be defined",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_SecretKeySelector(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "SecretKeySelector selects a key of a Secret.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "key": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The key of the secret to select from. Must be a valid secret key.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "optional": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Specify whether the Secret or its key must be defined",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"key"},
+ },
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-map-type": "atomic",
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_SecretList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "SecretList is a list of Secret.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Items is a list of secret objects. More info: https://kubernetes.io/docs/concepts/configuration/secret",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.Secret"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"items"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.Secret", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_SecretProjection(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Adapts a secret into a projected volume.\n\nThe contents of the target Secret's Data field will be presented in a projected volume as files using the keys in the Data field as the file names. Note that this is identical to a secret volume source without the default mode.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "items": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.KeyToPath"),
+ },
+ },
+ },
+ },
+ },
+ "optional": {
+ SchemaProps: spec.SchemaProps{
+ Description: "optional field specify whether the Secret or its key must be defined",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.KeyToPath"},
+ }
+}
+
+func schema_k8sio_api_core_v1_SecretReference(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "SecretReference represents a Secret Reference. It has enough information to retrieve secret in any namespace",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "name is unique within a namespace to reference a secret resource.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "namespace": {
+ SchemaProps: spec.SchemaProps{
+ Description: "namespace defines the space within which the secret name must be unique.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-map-type": "atomic",
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_SecretVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Adapts a Secret into a volume.\n\nThe contents of the target Secret's Data field will be presented in a volume as files using the keys in the Data field as the file names. Secret volumes support ownership management and SELinux relabeling.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "secretName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "items": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.KeyToPath"),
+ },
+ },
+ },
+ },
+ },
+ "defaultMode": {
+ SchemaProps: spec.SchemaProps{
+ Description: "defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "optional": {
+ SchemaProps: spec.SchemaProps{
+ Description: "optional field specify whether the Secret or its keys must be defined",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.KeyToPath"},
+ }
+}
+
+func schema_k8sio_api_core_v1_SecurityContext(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "capabilities": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.",
+ Ref: ref("k8s.io/api/core/v1.Capabilities"),
+ },
+ },
+ "privileged": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "seLinuxOptions": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.",
+ Ref: ref("k8s.io/api/core/v1.SELinuxOptions"),
+ },
+ },
+ "windowsOptions": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.",
+ Ref: ref("k8s.io/api/core/v1.WindowsSecurityContextOptions"),
+ },
+ },
+ "runAsUser": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "runAsGroup": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "runAsNonRoot": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "readOnlyRootFilesystem": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "allowPrivilegeEscalation": {
+ SchemaProps: spec.SchemaProps{
+ Description: "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "procMount": {
+ SchemaProps: spec.SchemaProps{
+ Description: "procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.\n\nPossible enum values:\n - `\"Default\"` uses the container runtime defaults for readonly and masked paths for /proc. Most container runtimes mask certain paths in /proc to avoid accidental security exposure of special devices or information.\n - `\"Unmasked\"` bypasses the default masking behavior of the container runtime and ensures the newly created /proc the container stays in tact with no modifications.",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Default", "Unmasked"},
+ },
+ },
+ "seccompProfile": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.",
+ Ref: ref("k8s.io/api/core/v1.SeccompProfile"),
+ },
+ },
+ "appArmorProfile": {
+ SchemaProps: spec.SchemaProps{
+ Description: "appArmorProfile is the AppArmor options to use by this container. If set, this profile overrides the pod's appArmorProfile. Note that this field cannot be set when spec.os.name is windows.",
+ Ref: ref("k8s.io/api/core/v1.AppArmorProfile"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.AppArmorProfile", "k8s.io/api/core/v1.Capabilities", "k8s.io/api/core/v1.SELinuxOptions", "k8s.io/api/core/v1.SeccompProfile", "k8s.io/api/core/v1.WindowsSecurityContextOptions"},
+ }
+}
+
+func schema_k8sio_api_core_v1_SerializedReference(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "SerializedReference is a reference to serialized object.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "reference": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The reference to an object in the system.",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ObjectReference"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ObjectReference"},
+ }
+}
+
+func schema_k8sio_api_core_v1_Service(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Service is a named abstraction of software service (for example, mysql) consisting of local port (for example 3306) that the proxy listens on, and the selector that determines which pods will answer requests sent through the proxy.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "spec": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Spec defines the behavior of a service. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ServiceSpec"),
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Most recently observed status of the service. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ServiceStatus"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ServiceSpec", "k8s.io/api/core/v1.ServiceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ServiceAccount(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ServiceAccount binds together: * a name, understood by users, and perhaps by peripheral systems, for an identity * a principal that can be authenticated and authorized * a set of secrets",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "secrets": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "name",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a \"kubernetes.io/enforce-mountable-secrets\" annotation set to \"true\". The \"kubernetes.io/enforce-mountable-secrets\" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ObjectReference"),
+ },
+ },
+ },
+ },
+ },
+ "imagePullSecrets": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet. More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.LocalObjectReference"),
+ },
+ },
+ },
+ },
+ },
+ "automountServiceAccountToken": {
+ SchemaProps: spec.SchemaProps{
+ Description: "AutomountServiceAccountToken indicates whether pods running as this service account should have an API token automatically mounted. Can be overridden at the pod level.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.ObjectReference", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ServiceAccountList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ServiceAccountList is a list of ServiceAccount objects",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Description: "List of ServiceAccounts. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ServiceAccount"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"items"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ServiceAccount", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ServiceAccountTokenProjection(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ServiceAccountTokenProjection represents a projected service account token volume. This projection can be used to insert a service account token into the pods runtime filesystem for use against APIs (Kubernetes API Server or otherwise).",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "audience": {
+ SchemaProps: spec.SchemaProps{
+ Description: "audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "expirationSeconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "path": {
+ SchemaProps: spec.SchemaProps{
+ Description: "path is the path relative to the mount point of the file to project the token into.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"path"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_ServiceList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ServiceList holds a list of services.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Description: "List of services",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.Service"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"items"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.Service", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ServicePort(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ServicePort contains information on service's port.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The name of this port within the service. This must be a DNS_LABEL. All ports within a ServiceSpec must have unique names. When considering the endpoints for a Service, this must match the 'name' field in the EndpointPort. Optional if only one ServicePort is defined on this service.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "protocol": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The IP protocol for this port. Supports \"TCP\", \"UDP\", and \"SCTP\". Default is TCP.\n\nPossible enum values:\n - `\"SCTP\"` is the SCTP protocol.\n - `\"TCP\"` is the TCP protocol.\n - `\"UDP\"` is the UDP protocol.",
+ Default: "TCP",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"SCTP", "TCP", "UDP"},
+ },
+ },
+ "appProtocol": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The application protocol for this port. This is used as a hint for implementations to offer richer behavior for protocols that they understand. This field follows standard Kubernetes label syntax. Valid values are either:\n\n* Un-prefixed protocol names - reserved for IANA standard service names (as per RFC-6335 and https://www.iana.org/assignments/service-names).\n\n* Kubernetes-defined prefixed names:\n * 'kubernetes.io/h2c' - HTTP/2 prior knowledge over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior-\n * 'kubernetes.io/ws' - WebSocket over cleartext as described in https://www.rfc-editor.org/rfc/rfc6455\n * 'kubernetes.io/wss' - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455\n\n* Other protocols should use implementation-defined prefixed names such as mycompany.com/my-custom-protocol.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "port": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The port that will be exposed by this service.",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "targetPort": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Number or name of the port to access on the pods targeted by the service. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. If this is a string, it will be looked up as a named port in the target Pod's container ports. If this is not specified, the value of the 'port' field is used (an identity map). This field is ignored for services with clusterIP=None, and should be omitted or set equal to the 'port' field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service",
+ Ref: ref("k8s.io/apimachinery/pkg/util/intstr.IntOrString"),
+ },
+ },
+ "nodePort": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The port on each node on which this service is exposed when type is NodePort or LoadBalancer. Usually assigned by the system. If a value is specified, in-range, and not in use it will be used, otherwise the operation will fail. If not specified, a port will be allocated if this Service requires one. If this field is specified when creating a Service which does not need it, creation will fail. This field will be wiped when updating a Service to no longer need it (e.g. changing type from NodePort to ClusterIP). More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ },
+ Required: []string{"port"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/util/intstr.IntOrString"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ServiceProxyOptions(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ServiceProxyOptions is the query options to a Service's proxy call.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "path": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_ServiceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ServiceSpec describes the attributes that a user creates on a service.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "ports": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "port",
+ "protocol",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "port",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "The list of ports that are exposed by this service. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ServicePort"),
+ },
+ },
+ },
+ },
+ },
+ "selector": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-map-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Route service traffic to pods with label keys and values matching this selector. If empty or not present, the service is assumed to have an external process managing its endpoints, which Kubernetes will not modify. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "clusterIP": {
+ SchemaProps: spec.SchemaProps{
+ Description: "clusterIP is the IP address of the service and is usually assigned randomly. If an address is specified manually, is in-range (as per system configuration), and is not in use, it will be allocated to the service; otherwise creation of the service will fail. This field may not be changed through updates unless the type field is also being changed to ExternalName (which requires this field to be blank) or the type field is being changed from ExternalName (in which case this field may optionally be specified, as describe above). Valid values are \"None\", empty string (\"\"), or a valid IP address. Setting this to \"None\" makes a \"headless service\" (no virtual IP), which is useful when direct endpoint connections are preferred and proxying is not required. Only applies to types ClusterIP, NodePort, and LoadBalancer. If this field is specified when creating a Service of type ExternalName, creation will fail. This field will be wiped when updating a Service to type ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "clusterIPs": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "ClusterIPs is a list of IP addresses assigned to this service, and are usually assigned randomly. If an address is specified manually, is in-range (as per system configuration), and is not in use, it will be allocated to the service; otherwise creation of the service will fail. This field may not be changed through updates unless the type field is also being changed to ExternalName (which requires this field to be empty) or the type field is being changed from ExternalName (in which case this field may optionally be specified, as describe above). Valid values are \"None\", empty string (\"\"), or a valid IP address. Setting this to \"None\" makes a \"headless service\" (no virtual IP), which is useful when direct endpoint connections are preferred and proxying is not required. Only applies to types ClusterIP, NodePort, and LoadBalancer. If this field is specified when creating a Service of type ExternalName, creation will fail. This field will be wiped when updating a Service to type ExternalName. If this field is not specified, it will be initialized from the clusterIP field. If this field is specified, clients must ensure that clusterIPs[0] and clusterIP have the same value.\n\nThis field may hold a maximum of two entries (dual-stack IPs, in either order). These IPs must correspond to the values of the ipFamilies field. Both clusterIPs and ipFamilies are governed by the ipFamilyPolicy field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Description: "type determines how the Service is exposed. Defaults to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. \"ClusterIP\" allocates a cluster-internal IP address for load-balancing to endpoints. Endpoints are determined by the selector or if that is not specified, by manual construction of an Endpoints object or EndpointSlice objects. If clusterIP is \"None\", no virtual IP is allocated and the endpoints are published as a set of endpoints rather than a virtual IP. \"NodePort\" builds on ClusterIP and allocates a port on every node which routes to the same endpoints as the clusterIP. \"LoadBalancer\" builds on NodePort and creates an external load-balancer (if supported in the current cloud) which routes to the same endpoints as the clusterIP. \"ExternalName\" aliases this service to the specified externalName. Several other fields do not apply to ExternalName services. More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types\n\nPossible enum values:\n - `\"ClusterIP\"` means a service will only be accessible inside the cluster, via the cluster IP.\n - `\"ExternalName\"` means a service consists of only a reference to an external name that kubedns or equivalent will return as a CNAME record, with no exposing or proxying of any pods involved.\n - `\"LoadBalancer\"` means a service will be exposed via an external load balancer (if the cloud provider supports it), in addition to 'NodePort' type.\n - `\"NodePort\"` means a service will be exposed on one port of every node, in addition to 'ClusterIP' type.",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"ClusterIP", "ExternalName", "LoadBalancer", "NodePort"},
+ },
+ },
+ "externalIPs": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "externalIPs is a list of IP addresses for which nodes in the cluster will also accept traffic for this service. These IPs are not managed by Kubernetes. The user is responsible for ensuring that traffic arrives at a node with this IP. A common example is external load-balancers that are not part of the Kubernetes system.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "sessionAffinity": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Supports \"ClientIP\" and \"None\". Used to maintain session affinity. Enable client IP based session affinity. Must be ClientIP or None. Defaults to None. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\n\nPossible enum values:\n - `\"ClientIP\"` is the Client IP based.\n - `\"None\"` - no session affinity.",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"ClientIP", "None"},
+ },
+ },
+ "loadBalancerIP": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Only applies to Service Type: LoadBalancer. This feature depends on whether the underlying cloud-provider supports specifying the loadBalancerIP when a load balancer is created. This field will be ignored if the cloud-provider does not support the feature. Deprecated: This field was under-specified and its meaning varies across implementations. Using it is non-portable and it may not support dual-stack. Users are encouraged to use implementation-specific annotations when available.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "loadBalancerSourceRanges": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "If specified and supported by the platform, this will restrict traffic through the cloud-provider load-balancer will be restricted to the specified client IPs. This field will be ignored if the cloud-provider does not support the feature.\" More info: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "externalName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "externalName is the external reference that discovery mechanisms will return as an alias for this service (e.g. a DNS CNAME record). No proxying will be involved. Must be a lowercase RFC-1123 hostname (https://tools.ietf.org/html/rfc1123) and requires `type` to be \"ExternalName\".",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "externalTrafficPolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "externalTrafficPolicy describes how nodes distribute service traffic they receive on one of the Service's \"externally-facing\" addresses (NodePorts, ExternalIPs, and LoadBalancer IPs). If set to \"Local\", the proxy will configure the service in a way that assumes that external load balancers will take care of balancing the service traffic between nodes, and so each node will deliver traffic only to the node-local endpoints of the service, without masquerading the client source IP. (Traffic mistakenly sent to a node with no endpoints will be dropped.) The default value, \"Cluster\", uses the standard behavior of routing to all endpoints evenly (possibly modified by topology and other features). Note that traffic sent to an External IP or LoadBalancer IP from within the cluster will always get \"Cluster\" semantics, but clients sending to a NodePort from within the cluster may need to take traffic policy into account when picking a node.\n\nPossible enum values:\n - `\"Cluster\"`\n - `\"Cluster\"` routes traffic to all endpoints.\n - `\"Local\"`\n - `\"Local\"` preserves the source IP of the traffic by routing only to endpoints on the same node as the traffic was received on (dropping the traffic if there are no local endpoints).",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Cluster", "Cluster", "Local", "Local"},
+ },
+ },
+ "healthCheckNodePort": {
+ SchemaProps: spec.SchemaProps{
+ Description: "healthCheckNodePort specifies the healthcheck nodePort for the service. This only applies when type is set to LoadBalancer and externalTrafficPolicy is set to Local. If a value is specified, is in-range, and is not in use, it will be used. If not specified, a value will be automatically allocated. External systems (e.g. load-balancers) can use this port to determine if a given node holds endpoints for this service or not. If this field is specified when creating a Service which does not need it, creation will fail. This field will be wiped when updating a Service to no longer need it (e.g. changing type). This field cannot be updated once set.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "publishNotReadyAddresses": {
+ SchemaProps: spec.SchemaProps{
+ Description: "publishNotReadyAddresses indicates that any agent which deals with endpoints for this Service should disregard any indications of ready/not-ready. The primary use case for setting this field is for a StatefulSet's Headless Service to propagate SRV DNS records for its Pods for the purpose of peer discovery. The Kubernetes controllers that generate Endpoints and EndpointSlice resources for Services interpret this to mean that all endpoints are considered \"ready\" even if the Pods themselves are not. Agents which consume only Kubernetes generated endpoints through the Endpoints or EndpointSlice resources can safely assume this behavior.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "sessionAffinityConfig": {
+ SchemaProps: spec.SchemaProps{
+ Description: "sessionAffinityConfig contains the configurations of session affinity.",
+ Ref: ref("k8s.io/api/core/v1.SessionAffinityConfig"),
+ },
+ },
+ "ipFamilies": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this service. This field is usually assigned automatically based on cluster configuration and the ipFamilyPolicy field. If this field is specified manually, the requested family is available in the cluster, and ipFamilyPolicy allows it, it will be used; otherwise creation of the service will fail. This field is conditionally mutable: it allows for adding or removing a secondary IP family, but it does not allow changing the primary IP family of the Service. Valid values are \"IPv4\" and \"IPv6\". This field only applies to Services of types ClusterIP, NodePort, and LoadBalancer, and does apply to \"headless\" services. This field will be wiped when updating a Service to type ExternalName.\n\nThis field may hold a maximum of two entries (dual-stack families, in either order). These families must correspond to the values of the clusterIPs field, if specified. Both clusterIPs and ipFamilies are governed by the ipFamilyPolicy field.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "ipFamilyPolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "IPFamilyPolicy represents the dual-stack-ness requested or required by this Service. If there is no value provided, then this field will be set to SingleStack. Services can be \"SingleStack\" (a single IP family), \"PreferDualStack\" (two IP families on dual-stack configured clusters or a single IP family on single-stack clusters), or \"RequireDualStack\" (two IP families on dual-stack configured clusters, otherwise fail). The ipFamilies and clusterIPs fields depend on the value of this field. This field will be wiped when updating a service to type ExternalName.\n\nPossible enum values:\n - `\"PreferDualStack\"` indicates that this service prefers dual-stack when the cluster is configured for dual-stack. If the cluster is not configured for dual-stack the service will be assigned a single IPFamily. If the IPFamily is not set in service.spec.ipFamilies then the service will be assigned the default IPFamily configured on the cluster\n - `\"RequireDualStack\"` indicates that this service requires dual-stack. Using IPFamilyPolicyRequireDualStack on a single stack cluster will result in validation errors. The IPFamilies (and their order) assigned to this service is based on service.spec.ipFamilies. If service.spec.ipFamilies was not provided then it will be assigned according to how they are configured on the cluster. If service.spec.ipFamilies has only one entry then the alternative IPFamily will be added by apiserver\n - `\"SingleStack\"` indicates that this service is required to have a single IPFamily. The IPFamily assigned is based on the default IPFamily used by the cluster or as identified by service.spec.ipFamilies field",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"PreferDualStack", "RequireDualStack", "SingleStack"},
+ },
+ },
+ "allocateLoadBalancerNodePorts": {
+ SchemaProps: spec.SchemaProps{
+ Description: "allocateLoadBalancerNodePorts defines if NodePorts will be automatically allocated for services with type LoadBalancer. Default is \"true\". It may be set to \"false\" if the cluster load-balancer does not rely on NodePorts. If the caller requests specific NodePorts (by specifying a value), those requests will be respected, regardless of this field. This field may only be set for services with type LoadBalancer and will be cleared if the type is changed to any other type.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "loadBalancerClass": {
+ SchemaProps: spec.SchemaProps{
+ Description: "loadBalancerClass is the class of the load balancer implementation this Service belongs to. If specified, the value of this field must be a label-style identifier, with an optional prefix, e.g. \"internal-vip\" or \"example.com/internal-vip\". Unprefixed names are reserved for end-users. This field can only be set when the Service type is 'LoadBalancer'. If not set, the default load balancer implementation is used, today this is typically done through the cloud provider integration, but should apply for any default implementation. If set, it is assumed that a load balancer implementation is watching for Services with a matching class. Any default load balancer implementation (e.g. cloud providers) should ignore Services that set this field. This field can only be set when creating or updating a Service to type 'LoadBalancer'. Once set, it can not be changed. This field will be wiped when a service is updated to a non 'LoadBalancer' type.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "internalTrafficPolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "InternalTrafficPolicy describes how nodes distribute service traffic they receive on the ClusterIP. If set to \"Local\", the proxy will assume that pods only want to talk to endpoints of the service on the same node as the pod, dropping the traffic if there are no local endpoints. The default value, \"Cluster\", uses the standard behavior of routing to all endpoints evenly (possibly modified by topology and other features).\n\nPossible enum values:\n - `\"Cluster\"` routes traffic to all endpoints.\n - `\"Local\"` routes traffic only to endpoints on the same node as the client pod (dropping the traffic if there are no local endpoints).",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Cluster", "Local"},
+ },
+ },
+ "trafficDistribution": {
+ SchemaProps: spec.SchemaProps{
+ Description: "TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to \"PreferClose\", implementations should prioritize endpoints that are in the same zone.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ServicePort", "k8s.io/api/core/v1.SessionAffinityConfig"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ServiceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ServiceStatus represents the current status of a service.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "loadBalancer": {
+ SchemaProps: spec.SchemaProps{
+ Description: "LoadBalancer contains the current status of the load-balancer, if one is present.",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.LoadBalancerStatus"),
+ },
+ },
+ "conditions": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "type",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "type",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Current service state",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Condition"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.LoadBalancerStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"},
+ }
+}
+
+func schema_k8sio_api_core_v1_SessionAffinityConfig(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "SessionAffinityConfig represents the configurations of session affinity.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "clientIP": {
+ SchemaProps: spec.SchemaProps{
+ Description: "clientIP contains the configurations of Client IP based session affinity.",
+ Ref: ref("k8s.io/api/core/v1.ClientIPConfig"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ClientIPConfig"},
+ }
+}
+
+func schema_k8sio_api_core_v1_SleepAction(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "SleepAction describes a \"sleep\" action.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "seconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Seconds is the number of seconds to sleep.",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ },
+ Required: []string{"seconds"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_StorageOSPersistentVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a StorageOS persistent volume resource.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "volumeName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "volumeNamespace": {
+ SchemaProps: spec.SchemaProps{
+ Description: "volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \"default\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fsType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "secretRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.",
+ Ref: ref("k8s.io/api/core/v1.ObjectReference"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ObjectReference"},
+ }
+}
+
+func schema_k8sio_api_core_v1_StorageOSVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a StorageOS persistent volume resource.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "volumeName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "volumeNamespace": {
+ SchemaProps: spec.SchemaProps{
+ Description: "volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \"default\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fsType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "secretRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.",
+ Ref: ref("k8s.io/api/core/v1.LocalObjectReference"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.LocalObjectReference"},
+ }
+}
+
+func schema_k8sio_api_core_v1_Sysctl(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Sysctl defines a kernel parameter to be set",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of a property to set",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "value": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Value of a property to set",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"name", "value"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_TCPSocketAction(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "TCPSocketAction describes an action based on opening a socket",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "port": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.",
+ Ref: ref("k8s.io/apimachinery/pkg/util/intstr.IntOrString"),
+ },
+ },
+ "host": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Optional: Host name to connect to, defaults to the pod IP.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"port"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/util/intstr.IntOrString"},
+ }
+}
+
+func schema_k8sio_api_core_v1_Taint(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "The node this Taint is attached to has the \"effect\" on any pod that does not tolerate the Taint.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "key": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Required. The taint key to be applied to a node.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "value": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The taint value corresponding to the taint key.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "effect": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Required. The effect of the taint on pods that do not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule and NoExecute.\n\nPossible enum values:\n - `\"NoExecute\"` Evict any already-running pods that do not tolerate the taint. Currently enforced by NodeController.\n - `\"NoSchedule\"` Do not allow new pods to schedule onto the node unless they tolerate the taint, but allow all pods submitted to Kubelet without going through the scheduler to start, and allow all already-running pods to continue running. Enforced by the scheduler.\n - `\"PreferNoSchedule\"` Like TaintEffectNoSchedule, but the scheduler tries not to schedule new pods onto the node, rather than prohibiting new pods from scheduling onto the node entirely. Enforced by the scheduler.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"NoExecute", "NoSchedule", "PreferNoSchedule"},
+ },
+ },
+ "timeAdded": {
+ SchemaProps: spec.SchemaProps{
+ Description: "TimeAdded represents the time at which the taint was added.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ },
+ Required: []string{"key", "effect"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.Time"},
+ }
+}
+
+func schema_k8sio_api_core_v1_Toleration(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "The pod this Toleration is attached to tolerates any taint that matches the triple using the matching operator .",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "key": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "operator": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.\n\nPossible enum values:\n - `\"Equal\"`\n - `\"Exists\"`",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Equal", "Exists"},
+ },
+ },
+ "value": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "effect": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.\n\nPossible enum values:\n - `\"NoExecute\"` Evict any already-running pods that do not tolerate the taint. Currently enforced by NodeController.\n - `\"NoSchedule\"` Do not allow new pods to schedule onto the node unless they tolerate the taint, but allow all pods submitted to Kubelet without going through the scheduler to start, and allow all already-running pods to continue running. Enforced by the scheduler.\n - `\"PreferNoSchedule\"` Like TaintEffectNoSchedule, but the scheduler tries not to schedule new pods onto the node, rather than prohibiting new pods from scheduling onto the node entirely. Enforced by the scheduler.",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"NoExecute", "NoSchedule", "PreferNoSchedule"},
+ },
+ },
+ "tolerationSeconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_TopologySelectorLabelRequirement(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "A topology selector requirement is a selector that matches given label. This is an alpha feature and may change in the future.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "key": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The label key that the selector applies to.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "values": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "An array of string values. One value must match the label to be selected. Each entry in Values is ORed.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"key", "values"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_TopologySelectorTerm(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "A topology selector term represents the result of label queries. A null or empty topology selector term matches no objects. The requirements of them are ANDed. It provides a subset of functionality as NodeSelectorTerm. This is an alpha feature and may change in the future.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "matchLabelExpressions": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "A list of topology selector requirements by labels.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.TopologySelectorLabelRequirement"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-map-type": "atomic",
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.TopologySelectorLabelRequirement"},
+ }
+}
+
+func schema_k8sio_api_core_v1_TopologySpreadConstraint(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "TopologySpreadConstraint specifies how to spread matching pods among the given topology.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "maxSkew": {
+ SchemaProps: spec.SchemaProps{
+ Description: "MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence to topologies that satisfy it. It's a required field. Default value is 1 and 0 is not allowed.",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "topologyKey": {
+ SchemaProps: spec.SchemaProps{
+ Description: "TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each as a \"bucket\", and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is \"kubernetes.io/hostname\", each Node is a domain of that topology. And, if TopologyKey is \"topology.kubernetes.io/zone\", each zone is a domain of that topology. It's a required field.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "whenUnsatisfiable": {
+ SchemaProps: spec.SchemaProps{
+ Description: "WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location,\n but giving higher precedence to topologies that would help reduce the\n skew.\nA constraint is considered \"Unsatisfiable\" for an incoming pod if and only if every possible node assignment for that pod would violate \"MaxSkew\" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won't make it *more* imbalanced. It's a required field.\n\nPossible enum values:\n - `\"DoNotSchedule\"` instructs the scheduler not to schedule the pod when constraints are not satisfied.\n - `\"ScheduleAnyway\"` instructs the scheduler to schedule the pod even if constraints are not satisfied.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"DoNotSchedule", "ScheduleAnyway"},
+ },
+ },
+ "labelSelector": {
+ SchemaProps: spec.SchemaProps{
+ Description: "LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"),
+ },
+ },
+ "minDomains": {
+ SchemaProps: spec.SchemaProps{
+ Description: "MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule.\n\nFor example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "nodeAffinityPolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.\n\nIf this value is nil, the behavior is equivalent to the Honor policy.\n\nPossible enum values:\n - `\"Honor\"` means use this scheduling directive when calculating pod topology spread skew.\n - `\"Ignore\"` means ignore this scheduling directive when calculating pod topology spread skew.",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Honor", "Ignore"},
+ },
+ },
+ "nodeTaintsPolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included.\n\nIf this value is nil, the behavior is equivalent to the Ignore policy.\n\nPossible enum values:\n - `\"Honor\"` means use this scheduling directive when calculating pod topology spread skew.\n - `\"Ignore\"` means ignore this scheduling directive when calculating pod topology spread skew.",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Honor", "Ignore"},
+ },
+ },
+ "matchLabelKeys": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot be set when LabelSelector isn't set. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector.\n\nThis is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"maxSkew", "topologyKey", "whenUnsatisfiable"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"},
+ }
+}
+
+func schema_k8sio_api_core_v1_TypedLocalObjectReference(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "TypedLocalObjectReference contains enough information to let you locate the typed referenced object inside the same namespace.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "apiGroup": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is the type of resource being referenced",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name is the name of resource being referenced",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"kind", "name"},
+ },
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-map-type": "atomic",
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_TypedObjectReference(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "TypedObjectReference contains enough information to let you locate the typed referenced object",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "apiGroup": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is the type of resource being referenced",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name is the name of resource being referenced",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "namespace": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"kind", "name"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_Volume(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Volume represents a named volume in a pod that may be accessed by any container in the pod.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "hostPath": {
+ SchemaProps: spec.SchemaProps{
+ Description: "hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath",
+ Ref: ref("k8s.io/api/core/v1.HostPathVolumeSource"),
+ },
+ },
+ "emptyDir": {
+ SchemaProps: spec.SchemaProps{
+ Description: "emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir",
+ Ref: ref("k8s.io/api/core/v1.EmptyDirVolumeSource"),
+ },
+ },
+ "gcePersistentDisk": {
+ SchemaProps: spec.SchemaProps{
+ Description: "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk",
+ Ref: ref("k8s.io/api/core/v1.GCEPersistentDiskVolumeSource"),
+ },
+ },
+ "awsElasticBlockStore": {
+ SchemaProps: spec.SchemaProps{
+ Description: "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore",
+ Ref: ref("k8s.io/api/core/v1.AWSElasticBlockStoreVolumeSource"),
+ },
+ },
+ "gitRepo": {
+ SchemaProps: spec.SchemaProps{
+ Description: "gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.",
+ Ref: ref("k8s.io/api/core/v1.GitRepoVolumeSource"),
+ },
+ },
+ "secret": {
+ SchemaProps: spec.SchemaProps{
+ Description: "secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret",
+ Ref: ref("k8s.io/api/core/v1.SecretVolumeSource"),
+ },
+ },
+ "nfs": {
+ SchemaProps: spec.SchemaProps{
+ Description: "nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs",
+ Ref: ref("k8s.io/api/core/v1.NFSVolumeSource"),
+ },
+ },
+ "iscsi": {
+ SchemaProps: spec.SchemaProps{
+ Description: "iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi",
+ Ref: ref("k8s.io/api/core/v1.ISCSIVolumeSource"),
+ },
+ },
+ "glusterfs": {
+ SchemaProps: spec.SchemaProps{
+ Description: "glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.GlusterfsVolumeSource"),
+ },
+ },
+ "persistentVolumeClaim": {
+ SchemaProps: spec.SchemaProps{
+ Description: "persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims",
+ Ref: ref("k8s.io/api/core/v1.PersistentVolumeClaimVolumeSource"),
+ },
+ },
+ "rbd": {
+ SchemaProps: spec.SchemaProps{
+ Description: "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.RBDVolumeSource"),
+ },
+ },
+ "flexVolume": {
+ SchemaProps: spec.SchemaProps{
+ Description: "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.",
+ Ref: ref("k8s.io/api/core/v1.FlexVolumeSource"),
+ },
+ },
+ "cinder": {
+ SchemaProps: spec.SchemaProps{
+ Description: "cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md",
+ Ref: ref("k8s.io/api/core/v1.CinderVolumeSource"),
+ },
+ },
+ "cephfs": {
+ SchemaProps: spec.SchemaProps{
+ Description: "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.CephFSVolumeSource"),
+ },
+ },
+ "flocker": {
+ SchemaProps: spec.SchemaProps{
+ Description: "flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.FlockerVolumeSource"),
+ },
+ },
+ "downwardAPI": {
+ SchemaProps: spec.SchemaProps{
+ Description: "downwardAPI represents downward API about the pod that should populate this volume",
+ Ref: ref("k8s.io/api/core/v1.DownwardAPIVolumeSource"),
+ },
+ },
+ "fc": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.",
+ Ref: ref("k8s.io/api/core/v1.FCVolumeSource"),
+ },
+ },
+ "azureFile": {
+ SchemaProps: spec.SchemaProps{
+ Description: "azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver.",
+ Ref: ref("k8s.io/api/core/v1.AzureFileVolumeSource"),
+ },
+ },
+ "configMap": {
+ SchemaProps: spec.SchemaProps{
+ Description: "configMap represents a configMap that should populate this volume",
+ Ref: ref("k8s.io/api/core/v1.ConfigMapVolumeSource"),
+ },
+ },
+ "vsphereVolume": {
+ SchemaProps: spec.SchemaProps{
+ Description: "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver.",
+ Ref: ref("k8s.io/api/core/v1.VsphereVirtualDiskVolumeSource"),
+ },
+ },
+ "quobyte": {
+ SchemaProps: spec.SchemaProps{
+ Description: "quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.QuobyteVolumeSource"),
+ },
+ },
+ "azureDisk": {
+ SchemaProps: spec.SchemaProps{
+ Description: "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver.",
+ Ref: ref("k8s.io/api/core/v1.AzureDiskVolumeSource"),
+ },
+ },
+ "photonPersistentDisk": {
+ SchemaProps: spec.SchemaProps{
+ Description: "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.PhotonPersistentDiskVolumeSource"),
+ },
+ },
+ "projected": {
+ SchemaProps: spec.SchemaProps{
+ Description: "projected items for all in one resources secrets, configmaps, and downward API",
+ Ref: ref("k8s.io/api/core/v1.ProjectedVolumeSource"),
+ },
+ },
+ "portworxVolume": {
+ SchemaProps: spec.SchemaProps{
+ Description: "portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on.",
+ Ref: ref("k8s.io/api/core/v1.PortworxVolumeSource"),
+ },
+ },
+ "scaleIO": {
+ SchemaProps: spec.SchemaProps{
+ Description: "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.ScaleIOVolumeSource"),
+ },
+ },
+ "storageos": {
+ SchemaProps: spec.SchemaProps{
+ Description: "storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.StorageOSVolumeSource"),
+ },
+ },
+ "csi": {
+ SchemaProps: spec.SchemaProps{
+ Description: "csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers.",
+ Ref: ref("k8s.io/api/core/v1.CSIVolumeSource"),
+ },
+ },
+ "ephemeral": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed.\n\nUse this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity\n tracking are needed,\nc) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through\n a PersistentVolumeClaim (see EphemeralVolumeSource for more\n information on the connection between this volume type\n and PersistentVolumeClaim).\n\nUse PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod.\n\nUse CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information.\n\nA pod can use both types of ephemeral volumes and persistent volumes at the same time.",
+ Ref: ref("k8s.io/api/core/v1.EphemeralVolumeSource"),
+ },
+ },
+ "image": {
+ SchemaProps: spec.SchemaProps{
+ Description: "image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. The volume is resolved at pod startup depending on which PullPolicy value is provided:\n\n- Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.\n\nThe volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation. A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. The volume will be mounted read-only (ro) and non-executable files (noexec). Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath) before 1.33. The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.",
+ Ref: ref("k8s.io/api/core/v1.ImageVolumeSource"),
+ },
+ },
+ },
+ Required: []string{"name"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.AWSElasticBlockStoreVolumeSource", "k8s.io/api/core/v1.AzureDiskVolumeSource", "k8s.io/api/core/v1.AzureFileVolumeSource", "k8s.io/api/core/v1.CSIVolumeSource", "k8s.io/api/core/v1.CephFSVolumeSource", "k8s.io/api/core/v1.CinderVolumeSource", "k8s.io/api/core/v1.ConfigMapVolumeSource", "k8s.io/api/core/v1.DownwardAPIVolumeSource", "k8s.io/api/core/v1.EmptyDirVolumeSource", "k8s.io/api/core/v1.EphemeralVolumeSource", "k8s.io/api/core/v1.FCVolumeSource", "k8s.io/api/core/v1.FlexVolumeSource", "k8s.io/api/core/v1.FlockerVolumeSource", "k8s.io/api/core/v1.GCEPersistentDiskVolumeSource", "k8s.io/api/core/v1.GitRepoVolumeSource", "k8s.io/api/core/v1.GlusterfsVolumeSource", "k8s.io/api/core/v1.HostPathVolumeSource", "k8s.io/api/core/v1.ISCSIVolumeSource", "k8s.io/api/core/v1.ImageVolumeSource", "k8s.io/api/core/v1.NFSVolumeSource", "k8s.io/api/core/v1.PersistentVolumeClaimVolumeSource", "k8s.io/api/core/v1.PhotonPersistentDiskVolumeSource", "k8s.io/api/core/v1.PortworxVolumeSource", "k8s.io/api/core/v1.ProjectedVolumeSource", "k8s.io/api/core/v1.QuobyteVolumeSource", "k8s.io/api/core/v1.RBDVolumeSource", "k8s.io/api/core/v1.ScaleIOVolumeSource", "k8s.io/api/core/v1.SecretVolumeSource", "k8s.io/api/core/v1.StorageOSVolumeSource", "k8s.io/api/core/v1.VsphereVirtualDiskVolumeSource"},
+ }
+}
+
+func schema_k8sio_api_core_v1_VolumeDevice(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "volumeDevice describes a mapping of a raw block device within a container.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "name must match the name of a persistentVolumeClaim in the pod",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "devicePath": {
+ SchemaProps: spec.SchemaProps{
+ Description: "devicePath is the path inside of the container that the device will be mapped to.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"name", "devicePath"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_VolumeMount(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "VolumeMount describes a mounting of a Volume within a container.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "This must match the Name of a Volume.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "recursiveReadOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively.\n\nIf ReadOnly is false, this field has no meaning and must be unspecified.\n\nIf ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason.\n\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None).\n\nIf this field is not specified, it is treated as an equivalent of Disabled.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "mountPath": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Path within the container at which the volume should be mounted. Must not contain ':'.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "subPath": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Path within the volume from which the container's volume should be mounted. Defaults to \"\" (volume's root).",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "mountPropagation": {
+ SchemaProps: spec.SchemaProps{
+ Description: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).\n\nPossible enum values:\n - `\"Bidirectional\"` means that the volume in a container will receive new mounts from the host or other containers, and its own mounts will be propagated from the container to the host or other containers. Note that this mode is recursively applied to all mounts in the volume (\"rshared\" in Linux terminology).\n - `\"HostToContainer\"` means that the volume in a container will receive new mounts from the host or other containers, but filesystems mounted inside the container won't be propagated to the host or other containers. Note that this mode is recursively applied to all mounts in the volume (\"rslave\" in Linux terminology).\n - `\"None\"` means that the volume in a container will not receive new mounts from the host or other containers, and filesystems mounted inside the container won't be propagated to the host or other containers. Note that this mode corresponds to \"private\" in Linux terminology.",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Bidirectional", "HostToContainer", "None"},
+ },
+ },
+ "subPathExpr": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to \"\" (volume's root). SubPathExpr and SubPath are mutually exclusive.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"name", "mountPath"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_VolumeMountStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "VolumeMountStatus shows status of volume mounts.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name corresponds to the name of the original VolumeMount.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "mountPath": {
+ SchemaProps: spec.SchemaProps{
+ Description: "MountPath corresponds to the original VolumeMount.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ReadOnly corresponds to the original VolumeMount.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "recursiveReadOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "RecursiveReadOnly must be set to Disabled, Enabled, or unspecified (for non-readonly mounts). An IfPossible value in the original VolumeMount must be translated to Disabled or Enabled, depending on the mount result.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"name", "mountPath"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_VolumeNodeAffinity(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "VolumeNodeAffinity defines constraints that limit what nodes this volume can be accessed from.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "required": {
+ SchemaProps: spec.SchemaProps{
+ Description: "required specifies hard node constraints that must be met.",
+ Ref: ref("k8s.io/api/core/v1.NodeSelector"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.NodeSelector"},
+ }
+}
+
+func schema_k8sio_api_core_v1_VolumeProjection(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Projection that may be projected along with other supported volume types. Exactly one of these fields must be set.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "secret": {
+ SchemaProps: spec.SchemaProps{
+ Description: "secret information about the secret data to project",
+ Ref: ref("k8s.io/api/core/v1.SecretProjection"),
+ },
+ },
+ "downwardAPI": {
+ SchemaProps: spec.SchemaProps{
+ Description: "downwardAPI information about the downwardAPI data to project",
+ Ref: ref("k8s.io/api/core/v1.DownwardAPIProjection"),
+ },
+ },
+ "configMap": {
+ SchemaProps: spec.SchemaProps{
+ Description: "configMap information about the configMap data to project",
+ Ref: ref("k8s.io/api/core/v1.ConfigMapProjection"),
+ },
+ },
+ "serviceAccountToken": {
+ SchemaProps: spec.SchemaProps{
+ Description: "serviceAccountToken is information about the serviceAccountToken data to project",
+ Ref: ref("k8s.io/api/core/v1.ServiceAccountTokenProjection"),
+ },
+ },
+ "clusterTrustBundle": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field of ClusterTrustBundle objects in an auto-updating file.\n\nAlpha, gated by the ClusterTrustBundleProjection feature gate.\n\nClusterTrustBundle objects can either be selected by name, or by the combination of signer name and a label selector.\n\nKubelet performs aggressive normalization of the PEM contents written into the pod filesystem. Esoteric PEM features such as inter-block comments and block headers are stripped. Certificates are deduplicated. The ordering of certificates within the file is arbitrary, and Kubelet may change the order over time.",
+ Ref: ref("k8s.io/api/core/v1.ClusterTrustBundleProjection"),
+ },
+ },
+ "podCertificate": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Projects an auto-rotating credential bundle (private key and certificate chain) that the pod can use either as a TLS client or server.\n\nKubelet generates a private key and uses it to send a PodCertificateRequest to the named signer. Once the signer approves the request and issues a certificate chain, Kubelet writes the key and certificate chain to the pod filesystem. The pod does not start until certificates have been issued for each podCertificate projected volume source in its spec.\n\nKubelet will begin trying to rotate the certificate at the time indicated by the signer using the PodCertificateRequest.Status.BeginRefreshAt timestamp.\n\nKubelet can write a single file, indicated by the credentialBundlePath field, or separate files, indicated by the keyPath and certificateChainPath fields.\n\nThe credential bundle is a single file in PEM format. The first PEM entry is the private key (in PKCS#8 format), and the remaining PEM entries are the certificate chain issued by the signer (typically, signers will return their certificate chain in leaf-to-root order).\n\nPrefer using the credential bundle format, since your application code can read it atomically. If you use keyPath and certificateChainPath, your application must make two separate file reads. If these coincide with a certificate rotation, it is possible that the private key and leaf certificate you read may not correspond to each other. Your application will need to check for this condition, and re-read until they are consistent.\n\nThe named signer controls chooses the format of the certificate it issues; consult the signer implementation's documentation to learn how to use the certificates it issues.",
+ Ref: ref("k8s.io/api/core/v1.PodCertificateProjection"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ClusterTrustBundleProjection", "k8s.io/api/core/v1.ConfigMapProjection", "k8s.io/api/core/v1.DownwardAPIProjection", "k8s.io/api/core/v1.PodCertificateProjection", "k8s.io/api/core/v1.SecretProjection", "k8s.io/api/core/v1.ServiceAccountTokenProjection"},
+ }
+}
+
+func schema_k8sio_api_core_v1_VolumeResourceRequirements(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "VolumeResourceRequirements describes the storage resource requirements for a volume.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "limits": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
+ },
+ },
+ },
+ },
+ },
+ "requests": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/api/resource.Quantity"},
+ }
+}
+
+func schema_k8sio_api_core_v1_VolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents the source of a volume to mount. Only one of its members may be specified.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "hostPath": {
+ SchemaProps: spec.SchemaProps{
+ Description: "hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath",
+ Ref: ref("k8s.io/api/core/v1.HostPathVolumeSource"),
+ },
+ },
+ "emptyDir": {
+ SchemaProps: spec.SchemaProps{
+ Description: "emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir",
+ Ref: ref("k8s.io/api/core/v1.EmptyDirVolumeSource"),
+ },
+ },
+ "gcePersistentDisk": {
+ SchemaProps: spec.SchemaProps{
+ Description: "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk",
+ Ref: ref("k8s.io/api/core/v1.GCEPersistentDiskVolumeSource"),
+ },
+ },
+ "awsElasticBlockStore": {
+ SchemaProps: spec.SchemaProps{
+ Description: "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore",
+ Ref: ref("k8s.io/api/core/v1.AWSElasticBlockStoreVolumeSource"),
+ },
+ },
+ "gitRepo": {
+ SchemaProps: spec.SchemaProps{
+ Description: "gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.",
+ Ref: ref("k8s.io/api/core/v1.GitRepoVolumeSource"),
+ },
+ },
+ "secret": {
+ SchemaProps: spec.SchemaProps{
+ Description: "secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret",
+ Ref: ref("k8s.io/api/core/v1.SecretVolumeSource"),
+ },
+ },
+ "nfs": {
+ SchemaProps: spec.SchemaProps{
+ Description: "nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs",
+ Ref: ref("k8s.io/api/core/v1.NFSVolumeSource"),
+ },
+ },
+ "iscsi": {
+ SchemaProps: spec.SchemaProps{
+ Description: "iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi",
+ Ref: ref("k8s.io/api/core/v1.ISCSIVolumeSource"),
+ },
+ },
+ "glusterfs": {
+ SchemaProps: spec.SchemaProps{
+ Description: "glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.GlusterfsVolumeSource"),
+ },
+ },
+ "persistentVolumeClaim": {
+ SchemaProps: spec.SchemaProps{
+ Description: "persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims",
+ Ref: ref("k8s.io/api/core/v1.PersistentVolumeClaimVolumeSource"),
+ },
+ },
+ "rbd": {
+ SchemaProps: spec.SchemaProps{
+ Description: "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.RBDVolumeSource"),
+ },
+ },
+ "flexVolume": {
+ SchemaProps: spec.SchemaProps{
+ Description: "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.",
+ Ref: ref("k8s.io/api/core/v1.FlexVolumeSource"),
+ },
+ },
+ "cinder": {
+ SchemaProps: spec.SchemaProps{
+ Description: "cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md",
+ Ref: ref("k8s.io/api/core/v1.CinderVolumeSource"),
+ },
+ },
+ "cephfs": {
+ SchemaProps: spec.SchemaProps{
+ Description: "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.CephFSVolumeSource"),
+ },
+ },
+ "flocker": {
+ SchemaProps: spec.SchemaProps{
+ Description: "flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.FlockerVolumeSource"),
+ },
+ },
+ "downwardAPI": {
+ SchemaProps: spec.SchemaProps{
+ Description: "downwardAPI represents downward API about the pod that should populate this volume",
+ Ref: ref("k8s.io/api/core/v1.DownwardAPIVolumeSource"),
+ },
+ },
+ "fc": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.",
+ Ref: ref("k8s.io/api/core/v1.FCVolumeSource"),
+ },
+ },
+ "azureFile": {
+ SchemaProps: spec.SchemaProps{
+ Description: "azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver.",
+ Ref: ref("k8s.io/api/core/v1.AzureFileVolumeSource"),
+ },
+ },
+ "configMap": {
+ SchemaProps: spec.SchemaProps{
+ Description: "configMap represents a configMap that should populate this volume",
+ Ref: ref("k8s.io/api/core/v1.ConfigMapVolumeSource"),
+ },
+ },
+ "vsphereVolume": {
+ SchemaProps: spec.SchemaProps{
+ Description: "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver.",
+ Ref: ref("k8s.io/api/core/v1.VsphereVirtualDiskVolumeSource"),
+ },
+ },
+ "quobyte": {
+ SchemaProps: spec.SchemaProps{
+ Description: "quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.QuobyteVolumeSource"),
+ },
+ },
+ "azureDisk": {
+ SchemaProps: spec.SchemaProps{
+ Description: "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver.",
+ Ref: ref("k8s.io/api/core/v1.AzureDiskVolumeSource"),
+ },
+ },
+ "photonPersistentDisk": {
+ SchemaProps: spec.SchemaProps{
+ Description: "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.PhotonPersistentDiskVolumeSource"),
+ },
+ },
+ "projected": {
+ SchemaProps: spec.SchemaProps{
+ Description: "projected items for all in one resources secrets, configmaps, and downward API",
+ Ref: ref("k8s.io/api/core/v1.ProjectedVolumeSource"),
+ },
+ },
+ "portworxVolume": {
+ SchemaProps: spec.SchemaProps{
+ Description: "portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on.",
+ Ref: ref("k8s.io/api/core/v1.PortworxVolumeSource"),
+ },
+ },
+ "scaleIO": {
+ SchemaProps: spec.SchemaProps{
+ Description: "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.ScaleIOVolumeSource"),
+ },
+ },
+ "storageos": {
+ SchemaProps: spec.SchemaProps{
+ Description: "storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.StorageOSVolumeSource"),
+ },
+ },
+ "csi": {
+ SchemaProps: spec.SchemaProps{
+ Description: "csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers.",
+ Ref: ref("k8s.io/api/core/v1.CSIVolumeSource"),
+ },
+ },
+ "ephemeral": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed.\n\nUse this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity\n tracking are needed,\nc) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through\n a PersistentVolumeClaim (see EphemeralVolumeSource for more\n information on the connection between this volume type\n and PersistentVolumeClaim).\n\nUse PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod.\n\nUse CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information.\n\nA pod can use both types of ephemeral volumes and persistent volumes at the same time.",
+ Ref: ref("k8s.io/api/core/v1.EphemeralVolumeSource"),
+ },
+ },
+ "image": {
+ SchemaProps: spec.SchemaProps{
+ Description: "image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. The volume is resolved at pod startup depending on which PullPolicy value is provided:\n\n- Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.\n\nThe volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation. A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. The volume will be mounted read-only (ro) and non-executable files (noexec). Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath) before 1.33. The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.",
+ Ref: ref("k8s.io/api/core/v1.ImageVolumeSource"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.AWSElasticBlockStoreVolumeSource", "k8s.io/api/core/v1.AzureDiskVolumeSource", "k8s.io/api/core/v1.AzureFileVolumeSource", "k8s.io/api/core/v1.CSIVolumeSource", "k8s.io/api/core/v1.CephFSVolumeSource", "k8s.io/api/core/v1.CinderVolumeSource", "k8s.io/api/core/v1.ConfigMapVolumeSource", "k8s.io/api/core/v1.DownwardAPIVolumeSource", "k8s.io/api/core/v1.EmptyDirVolumeSource", "k8s.io/api/core/v1.EphemeralVolumeSource", "k8s.io/api/core/v1.FCVolumeSource", "k8s.io/api/core/v1.FlexVolumeSource", "k8s.io/api/core/v1.FlockerVolumeSource", "k8s.io/api/core/v1.GCEPersistentDiskVolumeSource", "k8s.io/api/core/v1.GitRepoVolumeSource", "k8s.io/api/core/v1.GlusterfsVolumeSource", "k8s.io/api/core/v1.HostPathVolumeSource", "k8s.io/api/core/v1.ISCSIVolumeSource", "k8s.io/api/core/v1.ImageVolumeSource", "k8s.io/api/core/v1.NFSVolumeSource", "k8s.io/api/core/v1.PersistentVolumeClaimVolumeSource", "k8s.io/api/core/v1.PhotonPersistentDiskVolumeSource", "k8s.io/api/core/v1.PortworxVolumeSource", "k8s.io/api/core/v1.ProjectedVolumeSource", "k8s.io/api/core/v1.QuobyteVolumeSource", "k8s.io/api/core/v1.RBDVolumeSource", "k8s.io/api/core/v1.ScaleIOVolumeSource", "k8s.io/api/core/v1.SecretVolumeSource", "k8s.io/api/core/v1.StorageOSVolumeSource", "k8s.io/api/core/v1.VsphereVirtualDiskVolumeSource"},
+ }
+}
+
+func schema_k8sio_api_core_v1_VsphereVirtualDiskVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a vSphere volume resource.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "volumePath": {
+ SchemaProps: spec.SchemaProps{
+ Description: "volumePath is the path that identifies vSphere volume vmdk",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fsType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "storagePolicyName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "storagePolicyName is the storage Policy Based Management (SPBM) profile name.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "storagePolicyID": {
+ SchemaProps: spec.SchemaProps{
+ Description: "storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"volumePath"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_WeightedPodAffinityTerm(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "weight": {
+ SchemaProps: spec.SchemaProps{
+ Description: "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "podAffinityTerm": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Required. A pod affinity term, associated with the corresponding weight.",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodAffinityTerm"),
+ },
+ },
+ },
+ Required: []string{"weight", "podAffinityTerm"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.PodAffinityTerm"},
+ }
+}
+
+func schema_k8sio_api_core_v1_WindowsSecurityContextOptions(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "WindowsSecurityContextOptions contain Windows-specific options and credentials.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "gmsaCredentialSpecName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "GMSACredentialSpecName is the name of the GMSA credential spec to use.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "gmsaCredentialSpec": {
+ SchemaProps: spec.SchemaProps{
+ Description: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "runAsUserName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "hostProcess": {
+ SchemaProps: spec.SchemaProps{
+ Description: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_apimachinery_pkg_api_resource_Quantity(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.EmbedOpenAPIDefinitionIntoV2Extension(common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Quantity is a fixed-point representation of a number. It provides convenient marshaling/unmarshaling in JSON and YAML, in addition to String() and AsInt64() accessors.\n\nThe serialization format is:\n\n``` ::= \n\n\t(Note that may be empty, from the \"\" case in .)\n\n ::= 0 | 1 | ... | 9 ::= | ::= | . | . | . ::= \"+\" | \"-\" ::= | ::= | | ::= Ki | Mi | Gi | Ti | Pi | Ei\n\n\t(International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)\n\n ::= m | \"\" | k | M | G | T | P | E\n\n\t(Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)\n\n ::= \"e\" | \"E\" ```\n\nNo matter which of the three exponent forms is used, no quantity may represent a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal places. Numbers larger or more precise will be capped or rounded up. (E.g.: 0.1m will rounded up to 1m.) This may be extended in the future if we require larger or smaller quantities.\n\nWhen a Quantity is parsed from a string, it will remember the type of suffix it had, and will use the same type again when it is serialized.\n\nBefore serializing, Quantity will be put in \"canonical form\". This means that Exponent/suffix will be adjusted up or down (with a corresponding increase or decrease in Mantissa) such that:\n\n- No precision is lost - No fractional digits will be emitted - The exponent (or suffix) is as large as possible.\n\nThe sign will be omitted unless the number is negative.\n\nExamples:\n\n- 1.5 will be serialized as \"1500m\" - 1.5Gi will be serialized as \"1536Mi\"\n\nNote that the quantity will NEVER be internally represented by a floating point number. That is the whole point of this exercise.\n\nNon-canonical values will still parse as long as they are well formed, but will be re-emitted in their canonical form. (So always use canonical form, or don't diff.)\n\nThis format is intended to make it difficult to use these numbers without writing some sort of special handling code in the hopes that that will cause implementors to also use a fixed point implementation.",
+ OneOf: common.GenerateOpenAPIV3OneOfSchema(resource.Quantity{}.OpenAPIV3OneOfTypes()),
+ Format: resource.Quantity{}.OpenAPISchemaFormat(),
+ },
+ },
+ }, common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Quantity is a fixed-point representation of a number. It provides convenient marshaling/unmarshaling in JSON and YAML, in addition to String() and AsInt64() accessors.\n\nThe serialization format is:\n\n``` ::= \n\n\t(Note that may be empty, from the \"\" case in .)\n\n ::= 0 | 1 | ... | 9 ::= | ::= | . | . | . ::= \"+\" | \"-\" ::= | ::= | | ::= Ki | Mi | Gi | Ti | Pi | Ei\n\n\t(International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)\n\n ::= m | \"\" | k | M | G | T | P | E\n\n\t(Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)\n\n ::= \"e\" | \"E\" ```\n\nNo matter which of the three exponent forms is used, no quantity may represent a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal places. Numbers larger or more precise will be capped or rounded up. (E.g.: 0.1m will rounded up to 1m.) This may be extended in the future if we require larger or smaller quantities.\n\nWhen a Quantity is parsed from a string, it will remember the type of suffix it had, and will use the same type again when it is serialized.\n\nBefore serializing, Quantity will be put in \"canonical form\". This means that Exponent/suffix will be adjusted up or down (with a corresponding increase or decrease in Mantissa) such that:\n\n- No precision is lost - No fractional digits will be emitted - The exponent (or suffix) is as large as possible.\n\nThe sign will be omitted unless the number is negative.\n\nExamples:\n\n- 1.5 will be serialized as \"1500m\" - 1.5Gi will be serialized as \"1536Mi\"\n\nNote that the quantity will NEVER be internally represented by a floating point number. That is the whole point of this exercise.\n\nNon-canonical values will still parse as long as they are well formed, but will be re-emitted in their canonical form. (So always use canonical form, or don't diff.)\n\nThis format is intended to make it difficult to use these numbers without writing some sort of special handling code in the hopes that that will cause implementors to also use a fixed point implementation.",
+ Type: resource.Quantity{}.OpenAPISchemaType(),
+ Format: resource.Quantity{}.OpenAPISchemaFormat(),
+ },
+ },
+ })
+}
+
+func schema_apimachinery_pkg_api_resource_int64Amount(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "int64Amount represents a fixed precision numerator and arbitrary scale exponent. It is faster than operations on inf.Dec for values that can be represented as int64.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "value": {
+ SchemaProps: spec.SchemaProps{
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "scale": {
+ SchemaProps: spec.SchemaProps{
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ },
+ Required: []string{"value", "scale"},
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_APIGroup(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "APIGroup contains the name, the supported versions, and the preferred version of a group.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "name is the name of the group.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "versions": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "versions are the versions supported in this group.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.GroupVersionForDiscovery"),
+ },
+ },
+ },
+ },
+ },
+ "preferredVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "preferredVersion is the version preferred by the API server, which probably is the storage version.",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.GroupVersionForDiscovery"),
+ },
+ },
+ "serverAddressByClientCIDRs": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ServerAddressByClientCIDR"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"name", "versions"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.GroupVersionForDiscovery", "k8s.io/apimachinery/pkg/apis/meta/v1.ServerAddressByClientCIDR"},
+ }
+}
+
+func schema_pkg_apis_meta_v1_APIGroupList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "APIGroupList is a list of APIGroup, to allow clients to discover the API at /apis.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "groups": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "groups is a list of APIGroup.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.APIGroup"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"groups"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.APIGroup"},
+ }
+}
+
+func schema_pkg_apis_meta_v1_APIResource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "APIResource specifies the name of a resource and whether it is namespaced.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "name is the plural name of the resource.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "singularName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "singularName is the singular name of the resource. This allows clients to handle plural and singular opaquely. The singularName is more correct for reporting status on a single item and both singular and plural are allowed from the kubectl CLI interface.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "namespaced": {
+ SchemaProps: spec.SchemaProps{
+ Description: "namespaced indicates if a resource is namespaced or not.",
+ Default: false,
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "group": {
+ SchemaProps: spec.SchemaProps{
+ Description: "group is the preferred group of the resource. Empty implies the group of the containing resource list. For subresources, this may have a different value, for example: Scale\".",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "version": {
+ SchemaProps: spec.SchemaProps{
+ Description: "version is the preferred version of the resource. Empty implies the version of the containing resource list For subresources, this may have a different value, for example: v1 (while inside a v1beta1 version of the core resource's group)\".",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "verbs": {
+ SchemaProps: spec.SchemaProps{
+ Description: "verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "shortNames": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "shortNames is a list of suggested short names of the resource.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "categories": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "categories is a list of the grouped resources this resource belongs to (e.g. 'all')",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "storageVersionHash": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The hash value of the storage version, the version this resource is converted to when written to the data store. Value must be treated as opaque by clients. Only equality comparison on the value is valid. This is an alpha feature and may change or be removed in the future. The field is populated by the apiserver only if the StorageVersionHash feature gate is enabled. This field will remain optional even if it graduates.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"name", "singularName", "namespaced", "kind", "verbs"},
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_APIResourceList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "groupVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "groupVersion is the group and version this APIResourceList is for.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "resources": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "resources contains the name of the resources and if they are namespaced.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.APIResource"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"groupVersion", "resources"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.APIResource"},
+ }
+}
+
+func schema_pkg_apis_meta_v1_APIVersions(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersions lists the versions that are available, to allow clients to discover the API at /api, which is the root path of the legacy v1 API.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "versions": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "versions are the api versions that are available.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "serverAddressByClientCIDRs": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ServerAddressByClientCIDR"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"versions", "serverAddressByClientCIDRs"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.ServerAddressByClientCIDR"},
+ }
+}
+
+func schema_pkg_apis_meta_v1_ApplyOptions(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ApplyOptions may be provided when applying an API object. FieldManager is required for apply requests. ApplyOptions is equivalent to PatchOptions. It is provided as a convenience with documentation that speaks specifically to how the options fields relate to apply.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "dryRun": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "force": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people.",
+ Default: false,
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "fieldManager": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"force", "fieldManager"},
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_Condition(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Condition contains details for one aspect of the current state of this API Resource.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Description: "type of condition in CamelCase or in foo.example.com/CamelCase.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "status of the condition, one of True, False, Unknown.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "observedGeneration": {
+ SchemaProps: spec.SchemaProps{
+ Description: "observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "lastTransitionTime": {
+ SchemaProps: spec.SchemaProps{
+ Description: "lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ "reason": {
+ SchemaProps: spec.SchemaProps{
+ Description: "reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "message": {
+ SchemaProps: spec.SchemaProps{
+ Description: "message is a human readable message indicating details about the transition. This may be an empty string.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"type", "status", "lastTransitionTime", "reason", "message"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.Time"},
+ }
+}
+
+func schema_pkg_apis_meta_v1_CreateOptions(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "CreateOptions may be provided when creating an API object.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "dryRun": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "fieldManager": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fieldValidation": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_DeleteOptions(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "DeleteOptions may be provided when deleting an API object.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "gracePeriodSeconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "preconditions": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Preconditions"),
+ },
+ },
+ "orphanDependents": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "propagationPolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "dryRun": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "ignoreStoreReadErrorWithClusterBreakingPotential": {
+ SchemaProps: spec.SchemaProps{
+ Description: "if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.Preconditions"},
+ }
+}
+
+func schema_pkg_apis_meta_v1_Duration(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Duration is a wrapper around time.Duration which supports correct marshaling to YAML and JSON. In particular, it marshals into strings, which can be used as map keys in json.",
+ Type: metav1.Duration{}.OpenAPISchemaType(),
+ Format: metav1.Duration{}.OpenAPISchemaFormat(),
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_FieldSelectorRequirement(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "FieldSelectorRequirement is a selector that contains values, a key, and an operator that relates the key and values.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "key": {
+ SchemaProps: spec.SchemaProps{
+ Description: "key is the field selector key that the requirement applies to.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "operator": {
+ SchemaProps: spec.SchemaProps{
+ Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. The list of operators may grow in the future.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "values": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"key", "operator"},
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_FieldsV1(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format.\n\nEach key is either a '.' representing the field itself, and will always map to an empty set, or a string representing a sub-field or item. The string will follow one of these four formats: 'f:', where is the name of a field in a struct, or key in a map 'v:', where is the exact json formatted value of a list item 'i:', where is position of a item in a list 'k:', where is a map of a list item's key fields to their unique values If a key maps to an empty Fields value, the field that key represents is part of the set.\n\nThe exact format is defined in sigs.k8s.io/structured-merge-diff",
+ Type: []string{"object"},
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_GetOptions(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "GetOptions is the standard query options to the standard REST get call.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "resourceVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_GroupKind(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "GroupKind specifies a Group and a Kind, but does not force a version. This is useful for identifying concepts during lookup stages without having partially valid types",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "group": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"group", "kind"},
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_GroupResource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "GroupResource specifies a Group and a Resource, but does not force a version. This is useful for identifying concepts during lookup stages without having partially valid types",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "group": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "resource": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"group", "resource"},
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_GroupVersion(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "GroupVersion contains the \"group\" and the \"version\", which uniquely identifies the API.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "group": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "version": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"group", "version"},
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_GroupVersionForDiscovery(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "GroupVersion contains the \"group/version\" and \"version\" string of a version. It is made a struct to keep extensibility.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "groupVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "groupVersion specifies the API group and version in the form \"group/version\"",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "version": {
+ SchemaProps: spec.SchemaProps{
+ Description: "version specifies the version in the form of \"version\". This is to save the clients the trouble of splitting the GroupVersion.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"groupVersion", "version"},
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_GroupVersionKind(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "GroupVersionKind unambiguously identifies a kind. It doesn't anonymously include GroupVersion to avoid automatic coercion. It doesn't use a GroupVersion to avoid custom marshalling",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "group": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "version": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"group", "version", "kind"},
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_GroupVersionResource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "GroupVersionResource unambiguously identifies a resource. It doesn't anonymously include GroupVersion to avoid automatic coercion. It doesn't use a GroupVersion to avoid custom marshalling",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "group": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "version": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "resource": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"group", "version", "resource"},
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_InternalEvent(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "InternalEvent makes watch.Event versioned",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "Type": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "Object": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Object is:\n * If Type is Added or Modified: the new state of the object.\n * If Type is Deleted: the state of the object immediately before deletion.\n * If Type is Bookmark: the object (instance of a type being watched) where\n only ResourceVersion field is set. On successful restart of watch from a\n bookmark resourceVersion, client is guaranteed to not get repeat event\n nor miss any events.\n * If Type is Error: *api.Status is recommended; other types may make sense\n depending on context.",
+ Ref: ref("k8s.io/apimachinery/pkg/runtime.Object"),
+ },
+ },
+ },
+ Required: []string{"Type", "Object"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/runtime.Object"},
+ }
+}
+
+func schema_pkg_apis_meta_v1_LabelSelector(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "matchLabels": {
+ SchemaProps: spec.SchemaProps{
+ Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \"key\", the operator is \"In\", and the values array contains only \"value\". The requirements are ANDed.",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "matchExpressions": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelectorRequirement"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-map-type": "atomic",
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelectorRequirement"},
+ }
+}
+
+func schema_pkg_apis_meta_v1_LabelSelectorRequirement(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "key": {
+ SchemaProps: spec.SchemaProps{
+ Description: "key is the label key that the selector applies to.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "operator": {
+ SchemaProps: spec.SchemaProps{
+ Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "values": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"key", "operator"},
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_List(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "List holds a list of objects, which may not be known by the server.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Description: "List of objects",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("k8s.io/apimachinery/pkg/runtime.RawExtension"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"items"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta", "k8s.io/apimachinery/pkg/runtime.RawExtension"},
+ }
+}
+
+func schema_pkg_apis_meta_v1_ListMeta(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "selfLink": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "resourceVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "continue": {
+ SchemaProps: spec.SchemaProps{
+ Description: "continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a consistent list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response, unless you have received this token from an error message.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "remainingItemCount": {
+ SchemaProps: spec.SchemaProps{
+ Description: "remainingItemCount is the number of subsequent items in the list which are not included in this list response. If the list request contained label or field selectors, then the number of remaining items is unknown and the field will be left unset and omitted during serialization. If the list is complete (either because it is not chunking or because this is the last chunk), then there are no more remaining items and this field will be left unset and omitted during serialization. Servers older than v1.15 do not set this field. The intended use of the remainingItemCount is *estimating* the size of a collection. Clients should not rely on the remainingItemCount to be set or to be exact.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_ListOptions(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ListOptions is the query options to a standard REST list call.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "labelSelector": {
+ SchemaProps: spec.SchemaProps{
+ Description: "A selector to restrict the list of returned objects by their labels. Defaults to everything.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fieldSelector": {
+ SchemaProps: spec.SchemaProps{
+ Description: "A selector to restrict the list of returned objects by their fields. Defaults to everything.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "watch": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "allowWatchBookmarks": {
+ SchemaProps: spec.SchemaProps{
+ Description: "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "resourceVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "resourceVersionMatch": {
+ SchemaProps: spec.SchemaProps{
+ Description: "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "timeoutSeconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "limit": {
+ SchemaProps: spec.SchemaProps{
+ Description: "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "continue": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "sendInitialEvents": {
+ SchemaProps: spec.SchemaProps{
+ Description: "`sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched.\n\nWhen `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan\n is interpreted as \"data at least as new as the provided `resourceVersion`\"\n and the bookmark event is send when the state is synced\n to a `resourceVersion` at least as fresh as the one provided by the ListOptions.\n If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the\n bookmark event is send when the state is synced at least to the moment\n when request started being processed.\n- `resourceVersionMatch` set to any other value or unset\n Invalid error is returned.\n\nDefaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_ManagedFieldsEntry(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ManagedFieldsEntry is a workflow-id, a FieldSet and the group version of the resource that the fieldset applies to.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "manager": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Manager is an identifier of the workflow managing these fields.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "operation": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the version of this resource that this field set applies to. The format is \"group/version\" just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "time": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Time is the timestamp of when the ManagedFields entry was added. The timestamp will also be updated if a field is added, the manager changes any of the owned fields value or removes a field. The timestamp does not update when a field is removed from the entry because another manager took it over.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ "fieldsType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: \"FieldsV1\"",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fieldsV1": {
+ SchemaProps: spec.SchemaProps{
+ Description: "FieldsV1 holds the first JSON version format as described in the \"FieldsV1\" type.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.FieldsV1"),
+ },
+ },
+ "subresource": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.FieldsV1", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"},
+ }
+}
+
+func schema_pkg_apis_meta_v1_MicroTime(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "MicroTime is version of Time with microsecond level precision.",
+ Type: metav1.MicroTime{}.OpenAPISchemaType(),
+ Format: metav1.MicroTime{}.OpenAPISchemaFormat(),
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_ObjectMeta(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "generateName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.\n\nIf this field is specified and the generated name exists, the server will return a 409.\n\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "namespace": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Namespace defines the space within which each name must be unique. An empty namespace is equivalent to the \"default\" namespace, but \"default\" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty.\n\nMust be a DNS_LABEL. Cannot be updated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "selfLink": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "uid": {
+ SchemaProps: spec.SchemaProps{
+ Description: "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "resourceVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.\n\nPopulated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "generation": {
+ SchemaProps: spec.SchemaProps{
+ Description: "A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "creationTimestamp": {
+ SchemaProps: spec.SchemaProps{
+ Description: "CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\n\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ "deletionTimestamp": {
+ SchemaProps: spec.SchemaProps{
+ Description: "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ "deletionGracePeriodSeconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "labels": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "annotations": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "ownerReferences": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "uid",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "uid",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.OwnerReference"),
+ },
+ },
+ },
+ },
+ },
+ "finalizers": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "set",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "managedFields": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like \"ci-cd\". The set of fields is always in the version that the workflow used when modifying the object.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ManagedFieldsEntry"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.ManagedFieldsEntry", "k8s.io/apimachinery/pkg/apis/meta/v1.OwnerReference", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"},
+ }
+}
+
+func schema_pkg_apis_meta_v1_OwnerReference(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "OwnerReference contains enough information to let you identify an owning object. An owning object must be in the same namespace as the dependent, or be cluster-scoped, so there is no namespace field.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "API version of the referent.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "uid": {
+ SchemaProps: spec.SchemaProps{
+ Description: "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "controller": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If true, this reference points to the managing controller.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "blockOwnerDeletion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"apiVersion", "kind", "name", "uid"},
+ },
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-map-type": "atomic",
+ },
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_PartialObjectMetadata(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PartialObjectMetadata is a generic representation of any object with ObjectMeta. It allows clients to get access to a particular ObjectMeta schema without knowing the details of the version.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
+ }
+}
+
+func schema_pkg_apis_meta_v1_PartialObjectMetadataList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PartialObjectMetadataList contains a list of objects containing only their metadata",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Description: "items contains each of the included items.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.PartialObjectMetadata"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"items"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta", "k8s.io/apimachinery/pkg/apis/meta/v1.PartialObjectMetadata"},
+ }
+}
+
+func schema_pkg_apis_meta_v1_Patch(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.",
+ Type: []string{"object"},
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_PatchOptions(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PatchOptions may be provided when patching an API object. PatchOptions is meant to be a superset of UpdateOptions.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "dryRun": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "force": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "fieldManager": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fieldValidation": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_Preconditions(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "uid": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Specifies the target UID.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "resourceVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Specifies the target ResourceVersion",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_RootPaths(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "RootPaths lists the paths available at root. For example: \"/healthz\", \"/apis\".",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "paths": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "paths are the paths available at root.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"paths"},
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_ServerAddressByClientCIDR(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "clientCIDR": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The CIDR with which clients can match their IP to figure out the server address that they should use.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "serverAddress": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"clientCIDR", "serverAddress"},
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_Status(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Status is a return value for calls that don't return other objects.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Status of the operation. One of: \"Success\" or \"Failure\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "message": {
+ SchemaProps: spec.SchemaProps{
+ Description: "A human-readable description of the status of this operation.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "reason": {
+ SchemaProps: spec.SchemaProps{
+ Description: "A machine-readable description of why this operation is in the \"Failure\" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "details": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Extended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.StatusDetails"),
+ },
+ },
+ "code": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Suggested HTTP return code for this status, 0 if not set.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta", "k8s.io/apimachinery/pkg/apis/meta/v1.StatusDetails"},
+ }
+}
+
+func schema_pkg_apis_meta_v1_StatusCause(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "reason": {
+ SchemaProps: spec.SchemaProps{
+ Description: "A machine-readable description of the cause of the error. If this value is empty there is no information available.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "message": {
+ SchemaProps: spec.SchemaProps{
+ Description: "A human-readable description of the cause of the error. This field may be presented as-is to a reader.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "field": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.\n\nExamples:\n \"name\" - the field \"name\" on the current resource\n \"items[0].name\" - the field \"name\" on the first array entry in \"items\"",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_StatusDetails(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "group": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The group attribute of the resource associated with the status StatusReason.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "uid": {
+ SchemaProps: spec.SchemaProps{
+ Description: "UID of the resource. (when there is a single resource which can be described). More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "causes": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.StatusCause"),
+ },
+ },
+ },
+ },
+ },
+ "retryAfterSeconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.StatusCause"},
+ }
+}
+
+func schema_pkg_apis_meta_v1_Table(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Table is a tabular representation of a set of API resources. The server transforms the object into a set of preferred columns for quickly reviewing the objects.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "columnDefinitions": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "columnDefinitions describes each column in the returned items array. The number of cells per row will always match the number of column definitions.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.TableColumnDefinition"),
+ },
+ },
+ },
+ },
+ },
+ "rows": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "rows is the list of items in the table.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.TableRow"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"columnDefinitions", "rows"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta", "k8s.io/apimachinery/pkg/apis/meta/v1.TableColumnDefinition", "k8s.io/apimachinery/pkg/apis/meta/v1.TableRow"},
+ }
+}
+
+func schema_pkg_apis_meta_v1_TableColumnDefinition(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "TableColumnDefinition contains information about a column returned in the Table.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "name is a human readable name for the column.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Description: "type is an OpenAPI type definition for this column, such as number, integer, string, or array. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "format": {
+ SchemaProps: spec.SchemaProps{
+ Description: "format is an optional OpenAPI type modifier for this column. A format modifies the type and imposes additional rules, like date or time formatting for a string. The 'name' format is applied to the primary identifier column which has type 'string' to assist in clients identifying column is the resource name. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "description": {
+ SchemaProps: spec.SchemaProps{
+ Description: "description is a human readable description of this column.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "priority": {
+ SchemaProps: spec.SchemaProps{
+ Description: "priority is an integer defining the relative importance of this column compared to others. Lower numbers are considered higher priority. Columns that may be omitted in limited space scenarios should be given a higher priority.",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ },
+ Required: []string{"name", "type", "format", "description", "priority"},
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_TableOptions(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "TableOptions are used when a Table is requested by the caller.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "includeObject": {
+ SchemaProps: spec.SchemaProps{
+ Description: "includeObject decides whether to include each object along with its columnar information. Specifying \"None\" will return no object, specifying \"Object\" will return the full object contents, and specifying \"Metadata\" (the default) will return the object's metadata in the PartialObjectMetadata kind in version v1beta1 of the meta.k8s.io API group.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_TableRow(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "TableRow is an individual row in a table.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "cells": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "cells will be as wide as the column definitions array and may contain strings, numbers (float64 or int64), booleans, simple maps, lists, or null. See the type field of the column definition for a more detailed description.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "conditions": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "conditions describe additional status of a row that are relevant for a human user. These conditions apply to the row, not to the object, and will be specific to table output. The only defined condition type is 'Completed', for a row that indicates a resource that has run to completion and can be given less visual priority.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.TableRowCondition"),
+ },
+ },
+ },
+ },
+ },
+ "object": {
+ SchemaProps: spec.SchemaProps{
+ Description: "This field contains the requested additional information about each object based on the includeObject policy when requesting the Table. If \"None\", this field is empty, if \"Object\" this will be the default serialization of the object for the current API version, and if \"Metadata\" (the default) will contain the object metadata. Check the returned kind and apiVersion of the object before parsing. The media type of the object will always match the enclosing list - if this as a JSON table, these will be JSON encoded objects.",
+ Ref: ref("k8s.io/apimachinery/pkg/runtime.RawExtension"),
+ },
+ },
+ },
+ Required: []string{"cells"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.TableRowCondition", "k8s.io/apimachinery/pkg/runtime.RawExtension"},
+ }
+}
+
+func schema_pkg_apis_meta_v1_TableRowCondition(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "TableRowCondition allows a row to be marked with additional information.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Type of row condition. The only defined value is 'Completed' indicating that the object this row represents has reached a completed state and may be given less visual priority than other rows. Clients are not required to honor any conditions but should be consistent where possible about handling the conditions.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Status of the condition, one of True, False, Unknown.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "reason": {
+ SchemaProps: spec.SchemaProps{
+ Description: "(brief) machine readable reason for the condition's last transition.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "message": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Human readable message indicating details about last transition.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"type", "status"},
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_Time(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.",
+ Type: metav1.Time{}.OpenAPISchemaType(),
+ Format: metav1.Time{}.OpenAPISchemaFormat(),
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_Timestamp(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Timestamp is a struct that is equivalent to Time, but intended for protobuf marshalling/unmarshalling. It is generated into a serialization that matches Time. Do not use in Go structs.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "seconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "nanos": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive. This field may be limited in precision depending on context.",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ },
+ Required: []string{"seconds", "nanos"},
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_TypeMeta(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "TypeMeta describes an individual object in an API response or request with strings representing the type of the object and its API schema version. Structures that are versioned or persisted should inline TypeMeta.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_UpdateOptions(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "UpdateOptions may be provided when updating an API object. All fields in UpdateOptions should also be present in PatchOptions.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "dryRun": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "fieldManager": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fieldValidation": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_WatchEvent(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Event represents a single event to a watched resource.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "object": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Object is:\n * If Type is Added or Modified: the new state of the object.\n * If Type is Deleted: the state of the object immediately before deletion.\n * If Type is Error: *Status is recommended; other types may make sense\n depending on context.",
+ Ref: ref("k8s.io/apimachinery/pkg/runtime.RawExtension"),
+ },
+ },
+ },
+ Required: []string{"type", "object"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/runtime.RawExtension"},
+ }
+}
+
+func schema_k8sio_apimachinery_pkg_runtime_RawExtension(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "RawExtension is used to hold extensions in external versions.\n\nTo use this, make a field which has RawExtension as its type in your external, versioned struct, and Object in your internal struct. You also need to register your various plugin types.\n\n// Internal package:\n\n\ttype MyAPIObject struct {\n\t\truntime.TypeMeta `json:\",inline\"`\n\t\tMyPlugin runtime.Object `json:\"myPlugin\"`\n\t}\n\n\ttype PluginA struct {\n\t\tAOption string `json:\"aOption\"`\n\t}\n\n// External package:\n\n\ttype MyAPIObject struct {\n\t\truntime.TypeMeta `json:\",inline\"`\n\t\tMyPlugin runtime.RawExtension `json:\"myPlugin\"`\n\t}\n\n\ttype PluginA struct {\n\t\tAOption string `json:\"aOption\"`\n\t}\n\n// On the wire, the JSON will look something like this:\n\n\t{\n\t\t\"kind\":\"MyAPIObject\",\n\t\t\"apiVersion\":\"v1\",\n\t\t\"myPlugin\": {\n\t\t\t\"kind\":\"PluginA\",\n\t\t\t\"aOption\":\"foo\",\n\t\t},\n\t}\n\nSo what happens? Decode first uses json or yaml to unmarshal the serialized data into your external MyAPIObject. That causes the raw JSON to be stored, but not unpacked. The next step is to copy (using pkg/conversion) into the internal struct. The runtime package's DefaultScheme has conversion functions installed which will unpack the JSON stored in RawExtension, turning it into the correct object type, and storing it in the Object. (TODO: In the case where the object is of an unknown type, a runtime.Unknown object will be created and stored.)",
+ Type: []string{"object"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_apimachinery_pkg_runtime_TypeMeta(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "TypeMeta is shared by all top level objects. The proper way to use it is to inline it in your type, like this:\n\n\ttype MyAwesomeAPIObject struct {\n\t runtime.TypeMeta `json:\",inline\"`\n\t ... // other fields\n\t}\n\nfunc (obj *MyAwesomeAPIObject) SetGroupVersionKind(gvk *metav1.GroupVersionKind) { metav1.UpdateTypeMeta(obj,gvk) }; GroupVersionKind() *GroupVersionKind\n\nTypeMeta is provided here for convenience. You may use it directly from this package or define your own with the same fields.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_apimachinery_pkg_runtime_Unknown(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Unknown allows api objects with unknown types to be passed-through. This can be used to deal with the API objects from a plug-in. Unknown objects still have functioning TypeMeta features-- kind, version, etc. metadata and field mutatation.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "ContentEncoding": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ContentEncoding is encoding used to encode 'Raw' data. Unspecified means no encoding.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "ContentType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ContentType is serialization method used to serialize 'Raw'. Unspecified means ContentTypeJSON.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"ContentEncoding", "ContentType"},
+ },
+ },
+ }
+}
+
+func schema_apimachinery_pkg_util_intstr_IntOrString(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.EmbedOpenAPIDefinitionIntoV2Extension(common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "IntOrString is a type that can hold an int32 or a string. When used in JSON or YAML marshalling and unmarshalling, it produces or consumes the inner type. This allows you to have, for example, a JSON field that can accept a name or number.",
+ OneOf: common.GenerateOpenAPIV3OneOfSchema(intstr.IntOrString{}.OpenAPIV3OneOfTypes()),
+ Format: intstr.IntOrString{}.OpenAPISchemaFormat(),
+ },
+ },
+ }, common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "IntOrString is a type that can hold an int32 or a string. When used in JSON or YAML marshalling and unmarshalling, it produces or consumes the inner type. This allows you to have, for example, a JSON field that can accept a name or number.",
+ Type: intstr.IntOrString{}.OpenAPISchemaType(),
+ Format: intstr.IntOrString{}.OpenAPISchemaFormat(),
+ },
+ },
+ })
+}
+
+func schema_k8sio_apimachinery_pkg_version_Info(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Info contains versioning information. how we'll want to distribute that information.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "major": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Major is the major version of the binary version",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "minor": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Minor is the minor version of the binary version",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "emulationMajor": {
+ SchemaProps: spec.SchemaProps{
+ Description: "EmulationMajor is the major version of the emulation version",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "emulationMinor": {
+ SchemaProps: spec.SchemaProps{
+ Description: "EmulationMinor is the minor version of the emulation version",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "minCompatibilityMajor": {
+ SchemaProps: spec.SchemaProps{
+ Description: "MinCompatibilityMajor is the major version of the minimum compatibility version",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "minCompatibilityMinor": {
+ SchemaProps: spec.SchemaProps{
+ Description: "MinCompatibilityMinor is the minor version of the minimum compatibility version",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "gitVersion": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "gitCommit": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "gitTreeState": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "buildDate": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "goVersion": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "compiler": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "platform": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"major", "minor", "gitVersion", "gitCommit", "gitTreeState", "buildDate", "goVersion", "compiler", "platform"},
+ },
+ },
+ }
+}
+
+func schema_kmodulesxyz_client_go_api_v1_CAPIClusterInfo(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "provider": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "namespace": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "clusterName": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"provider", "namespace", "clusterName"},
+ },
+ },
+ }
+}
+
+func schema_kmodulesxyz_client_go_api_v1_CertificatePrivateKey(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "CertificatePrivateKey contains configuration options for private keys used by the Certificate controller. This allows control of how private keys are rotated.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "encoding": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The private key cryptography standards (PKCS) encoding for this certificate's private key to be encoded in. If provided, allowed values are \"pkcs1\" and \"pkcs8\" standing for PKCS#1 and PKCS#8, respectively. Defaults to PKCS#1 if not specified. See here for the difference between the formats: https://stackoverflow.com/a/48960291",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_kmodulesxyz_client_go_api_v1_CertificateSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "alias": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Alias represents the identifier of the certificate.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "issuerRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "IssuerRef is a reference to a Certificate Issuer.",
+ Ref: ref("k8s.io/api/core/v1.TypedLocalObjectReference"),
+ },
+ },
+ "secretName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Specifies the k8s secret name that holds the certificates. Default to --cert.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "subject": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Full X509 name specification (https://golang.org/pkg/crypto/x509/pkix/#Name).",
+ Ref: ref("kmodules.xyz/client-go/api/v1.X509Subject"),
+ },
+ },
+ "duration": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Certificate default Duration",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"),
+ },
+ },
+ "renewBefore": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Certificate renew before expiration duration\n\nDeprecated use `ReconfigureTLS` type OpsRequest instead.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"),
+ },
+ },
+ "dnsNames": {
+ SchemaProps: spec.SchemaProps{
+ Description: "DNSNames is a list of subject alt names to be used on the Certificate.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "ipAddresses": {
+ SchemaProps: spec.SchemaProps{
+ Description: "IPAddresses is a list of IP addresses to be used on the Certificate",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "uris": {
+ SchemaProps: spec.SchemaProps{
+ Description: "URIs is a list of URI subjectAltNames to be set on the Certificate.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "emailAddresses": {
+ SchemaProps: spec.SchemaProps{
+ Description: "EmailAddresses is a list of email subjectAltNames to be set on the Certificate.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "privateKey": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Options to control private keys used for the Certificate.",
+ Ref: ref("kmodules.xyz/client-go/api/v1.CertificatePrivateKey"),
+ },
+ },
+ },
+ Required: []string{"alias"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.TypedLocalObjectReference", "k8s.io/apimachinery/pkg/apis/meta/v1.Duration", "kmodules.xyz/client-go/api/v1.CertificatePrivateKey", "kmodules.xyz/client-go/api/v1.X509Subject"},
+ }
+}
+
+func schema_kmodulesxyz_client_go_api_v1_ClusterClaimFeatures(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "enabledFeatures": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "externallyManagedFeatures": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "disabledFeatures": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_kmodulesxyz_client_go_api_v1_ClusterClaimInfo(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "clusterMetadata": {
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/client-go/api/v1.ClusterInfo"),
+ },
+ },
+ },
+ Required: []string{"clusterMetadata"},
+ },
+ },
+ Dependencies: []string{
+ "kmodules.xyz/client-go/api/v1.ClusterInfo"},
+ }
+}
+
+func schema_kmodulesxyz_client_go_api_v1_ClusterInfo(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ClusterInfo used in ace-installer",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "uid": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "clusterManagers": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "capi": {
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("kmodules.xyz/client-go/api/v1.CAPIClusterInfo"),
+ },
+ },
+ },
+ Required: []string{"uid", "name", "clusterManagers"},
+ },
+ },
+ Dependencies: []string{
+ "kmodules.xyz/client-go/api/v1.CAPIClusterInfo"},
+ }
+}
+
+func schema_kmodulesxyz_client_go_api_v1_ClusterMetadata(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "uid": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "displayName": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "provider": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "ownerID": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "ownerType": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiEndpoint": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "caBundle": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "managerID": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "hubClusterID": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "cloudServiceAuthMode": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "mode": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"uid"},
+ },
+ },
+ }
+}
+
+func schema_kmodulesxyz_client_go_api_v1_Condition(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Condition defines an observation of a object operational state.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary util can be useful (see .node.status.util), the ability to deconflict is important.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Status of the condition, one of True, False, Unknown.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "observedGeneration": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If set, this represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.condition[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "severity": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "lastTransitionTime": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ "reason": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The reason for the condition's last transition in CamelCase. The specific API may choose whether this field is considered a guaranteed API. This field may not be empty.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "message": {
+ SchemaProps: spec.SchemaProps{
+ Description: "A human-readable message indicating details about the transition. This field may be empty.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"type", "status", "lastTransitionTime"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.Time"},
+ }
+}
+
+func schema_kmodulesxyz_client_go_api_v1_HealthCheckSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "HealthCheckSpec defines attributes of the health check",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "periodSeconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "How often (in seconds) to perform the health check. Default to 10 seconds. Minimum value is 1.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "timeoutSeconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Number of seconds after which the probe times out. Defaults to 10 second. Minimum value is 1. It should be less than the periodSeconds.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "failureThreshold": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Minimum consecutive failures for the health check to be considered failed after having succeeded. Defaults to 1. Minimum value is 1.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "disableWriteCheck": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Whether to disable write check on database. Defaults to false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_kmodulesxyz_client_go_api_v1_ImageInfo(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "image": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "lineages": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/client-go/api/v1.Lineage"),
+ },
+ },
+ },
+ },
+ },
+ "pullCredentials": {
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("kmodules.xyz/client-go/api/v1.PullCredentials"),
+ },
+ },
+ },
+ Required: []string{"image"},
+ },
+ },
+ Dependencies: []string{
+ "kmodules.xyz/client-go/api/v1.Lineage", "kmodules.xyz/client-go/api/v1.PullCredentials"},
+ }
+}
+
+func schema_kmodulesxyz_client_go_api_v1_Lineage(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "chain": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/client-go/api/v1.ObjectInfo"),
+ },
+ },
+ },
+ },
+ },
+ "containers": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "kmodules.xyz/client-go/api/v1.ObjectInfo"},
+ }
+}
+
+func schema_kmodulesxyz_client_go_api_v1_ObjectID(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "group": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "namespace": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_kmodulesxyz_client_go_api_v1_ObjectInfo(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "resource": {
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/client-go/api/v1.ResourceID"),
+ },
+ },
+ "ref": {
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/client-go/api/v1.ObjectReference"),
+ },
+ },
+ },
+ Required: []string{"resource", "ref"},
+ },
+ },
+ Dependencies: []string{
+ "kmodules.xyz/client-go/api/v1.ObjectReference", "kmodules.xyz/client-go/api/v1.ResourceID"},
+ }
+}
+
+func schema_kmodulesxyz_client_go_api_v1_ObjectReference(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ObjectReference contains enough information to let you inspect or modify the referred object.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "namespace": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"name"},
+ },
+ },
+ }
+}
+
+func schema_kmodulesxyz_client_go_api_v1_PullCredentials(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "namespace": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "serviceAccountName": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "secretRefs": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.LocalObjectReference"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"namespace"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.LocalObjectReference"},
+ }
+}
+
+func schema_kmodulesxyz_client_go_api_v1_ReadonlyHealthCheckSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ReadonlyHealthCheckSpec defines attributes of the health check using only read-only checks",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "periodSeconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "How often (in seconds) to perform the health check. Default to 10 seconds. Minimum value is 1.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "timeoutSeconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Number of seconds after which the probe times out. Defaults to 10 second. Minimum value is 1. It should be less than the periodSeconds.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "failureThreshold": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Minimum consecutive failures for the health check to be considered failed after having succeeded. Defaults to 1. Minimum value is 1.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_kmodulesxyz_client_go_api_v1_ResourceID(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ResourceID identifies a resource",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "group": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "version": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name is the plural name of the resource to serve. It must match the name of the CustomResourceDefinition-registration too: plural.group and it must be all lowercase.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is the serialized kind of the resource. It is normally CamelCase and singular.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "scope": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"group"},
+ },
+ },
+ }
+}
+
+func schema_kmodulesxyz_client_go_api_v1_TLSConfig(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "issuerRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "IssuerRef is a reference to a Certificate Issuer.",
+ Ref: ref("k8s.io/api/core/v1.TypedLocalObjectReference"),
+ },
+ },
+ "certificates": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Certificate provides server and/or client certificate options used by application pods. These options are passed to a cert-manager Certificate object. xref: https://github.com/jetstack/cert-manager/blob/v0.16.0/pkg/apis/certmanager/v1beta1/types_certificate.go#L82-L162",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/client-go/api/v1.CertificateSpec"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.TypedLocalObjectReference", "kmodules.xyz/client-go/api/v1.CertificateSpec"},
+ }
+}
+
+func schema_kmodulesxyz_client_go_api_v1_TimeOfDay(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "TimeOfDay is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.",
+ Type: apiv1.TimeOfDay{}.OpenAPISchemaType(),
+ Format: apiv1.TimeOfDay{}.OpenAPISchemaFormat(),
+ },
+ },
+ }
+}
+
+func schema_kmodulesxyz_client_go_api_v1_TypeReference(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "TypeReference represents an object type.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "apiGroup": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_kmodulesxyz_client_go_api_v1_TypedObjectReference(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "TypedObjectReference represents a typed namespaced object.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "apiGroup": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "namespace": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"name"},
+ },
+ },
+ }
+}
+
+func schema_kmodulesxyz_client_go_api_v1_X509Subject(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "X509Subject Full X509 name specification",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "organizations": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Organizations to be used on the Certificate.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "countries": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Countries to be used on the CertificateSpec.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "organizationalUnits": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Organizational Units to be used on the CertificateSpec.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "localities": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Cities to be used on the CertificateSpec.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "provinces": {
+ SchemaProps: spec.SchemaProps{
+ Description: "State/Provinces to be used on the CertificateSpec.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "streetAddresses": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Street addresses to be used on the CertificateSpec.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "postalCodes": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Postal codes to be used on the CertificateSpec.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "serialNumber": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Serial number to be used on the CertificateSpec.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_kmodulesxyz_client_go_api_v1_stringSetMerger(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ },
+ },
+ }
+}
diff --git a/vendor/go.bytebuilders.dev/catalog/api/gateway/v1alpha1/zz_generated.deepcopy.go b/vendor/go.bytebuilders.dev/catalog/api/gateway/v1alpha1/zz_generated.deepcopy.go
new file mode 100644
index 00000000..7905a287
--- /dev/null
+++ b/vendor/go.bytebuilders.dev/catalog/api/gateway/v1alpha1/zz_generated.deepcopy.go
@@ -0,0 +1,690 @@
+//go:build !ignore_autogenerated
+
+/*
+Copyright AppsCode Inc. and Contributors
+
+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.
+*/
+
+// Code generated by controller-gen. DO NOT EDIT.
+
+package v1alpha1
+
+import (
+ "k8s.io/api/core/v1"
+ runtime "k8s.io/apimachinery/pkg/runtime"
+ apiv1 "kmodules.xyz/client-go/api/v1"
+ externalv1alpha1 "kubeops.dev/external-dns-operator/apis/external/v1alpha1"
+ apisv1 "sigs.k8s.io/gateway-api/apis/v1"
+)
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *AzureDNSAuth) DeepCopyInto(out *AzureDNSAuth) {
+ *out = *in
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AzureDNSAuth.
+func (in *AzureDNSAuth) DeepCopy() *AzureDNSAuth {
+ if in == nil {
+ return nil
+ }
+ out := new(AzureDNSAuth)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *CloudDNSAuth) DeepCopyInto(out *CloudDNSAuth) {
+ *out = *in
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudDNSAuth.
+func (in *CloudDNSAuth) DeepCopy() *CloudDNSAuth {
+ if in == nil {
+ return nil
+ }
+ out := new(CloudDNSAuth)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *CloudflareAuth) DeepCopyInto(out *CloudflareAuth) {
+ *out = *in
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudflareAuth.
+func (in *CloudflareAuth) DeepCopy() *CloudflareAuth {
+ if in == nil {
+ return nil
+ }
+ out := new(CloudflareAuth)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ClusterTLS) DeepCopyInto(out *ClusterTLS) {
+ *out = *in
+ out.CA = in.CA
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterTLS.
+func (in *ClusterTLS) DeepCopy() *ClusterTLS {
+ if in == nil {
+ return nil
+ }
+ out := new(ClusterTLS)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *DNSProviderAuth) DeepCopyInto(out *DNSProviderAuth) {
+ *out = *in
+ if in.Cloudflare != nil {
+ in, out := &in.Cloudflare, &out.Cloudflare
+ *out = new(CloudflareAuth)
+ **out = **in
+ }
+ if in.Route53 != nil {
+ in, out := &in.Route53, &out.Route53
+ *out = new(Route53Auth)
+ **out = **in
+ }
+ if in.CloudDNS != nil {
+ in, out := &in.CloudDNS, &out.CloudDNS
+ *out = new(CloudDNSAuth)
+ **out = **in
+ }
+ if in.AzureDNS != nil {
+ in, out := &in.AzureDNS, &out.AzureDNS
+ *out = new(AzureDNSAuth)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DNSProviderAuth.
+func (in *DNSProviderAuth) DeepCopy() *DNSProviderAuth {
+ if in == nil {
+ return nil
+ }
+ out := new(DNSProviderAuth)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *EchoserverSpec) DeepCopyInto(out *EchoserverSpec) {
+ *out = *in
+ if in.SecurityContext != nil {
+ in, out := &in.SecurityContext, &out.SecurityContext
+ *out = new(v1.SecurityContext)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EchoserverSpec.
+func (in *EchoserverSpec) DeepCopy() *EchoserverSpec {
+ if in == nil {
+ return nil
+ }
+ out := new(EchoserverSpec)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *EnvoyServiceSpec) DeepCopyInto(out *EnvoyServiceSpec) {
+ *out = *in
+ if in.Annotations != nil {
+ in, out := &in.Annotations, &out.Annotations
+ *out = make(map[string]string, len(*in))
+ for key, val := range *in {
+ (*out)[key] = val
+ }
+ }
+ if in.ExternalIPs != nil {
+ in, out := &in.ExternalIPs, &out.ExternalIPs
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyServiceSpec.
+func (in *EnvoyServiceSpec) DeepCopy() *EnvoyServiceSpec {
+ if in == nil {
+ return nil
+ }
+ out := new(EnvoyServiceSpec)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *EnvoyServiceValues) DeepCopyInto(out *EnvoyServiceValues) {
+ *out = *in
+ in.EnvoyServiceSpec.DeepCopyInto(&out.EnvoyServiceSpec)
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyServiceValues.
+func (in *EnvoyServiceValues) DeepCopy() *EnvoyServiceValues {
+ if in == nil {
+ return nil
+ }
+ out := new(EnvoyServiceValues)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *EnvoySpec) DeepCopyInto(out *EnvoySpec) {
+ *out = *in
+ if in.NodeSelector != nil {
+ in, out := &in.NodeSelector, &out.NodeSelector
+ *out = make(map[string]string, len(*in))
+ for key, val := range *in {
+ (*out)[key] = val
+ }
+ }
+ if in.SecurityContext != nil {
+ in, out := &in.SecurityContext, &out.SecurityContext
+ *out = new(v1.SecurityContext)
+ (*in).DeepCopyInto(*out)
+ }
+ in.Service.DeepCopyInto(&out.Service)
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoySpec.
+func (in *EnvoySpec) DeepCopy() *EnvoySpec {
+ if in == nil {
+ return nil
+ }
+ out := new(EnvoySpec)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *EnvoyValues) DeepCopyInto(out *EnvoyValues) {
+ *out = *in
+ if in.NodeSelector != nil {
+ in, out := &in.NodeSelector, &out.NodeSelector
+ *out = make(map[string]string, len(*in))
+ for key, val := range *in {
+ (*out)[key] = val
+ }
+ }
+ if in.SecurityContext != nil {
+ in, out := &in.SecurityContext, &out.SecurityContext
+ *out = new(v1.SecurityContext)
+ (*in).DeepCopyInto(*out)
+ }
+ in.Service.DeepCopyInto(&out.Service)
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EnvoyValues.
+func (in *EnvoyValues) DeepCopy() *EnvoyValues {
+ if in == nil {
+ return nil
+ }
+ out := new(EnvoyValues)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *GatewayConfig) DeepCopyInto(out *GatewayConfig) {
+ *out = *in
+ out.TypeMeta = in.TypeMeta
+ in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
+ in.Spec.DeepCopyInto(&out.Spec)
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewayConfig.
+func (in *GatewayConfig) DeepCopy() *GatewayConfig {
+ if in == nil {
+ return nil
+ }
+ out := new(GatewayConfig)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
+func (in *GatewayConfig) DeepCopyObject() runtime.Object {
+ if c := in.DeepCopy(); c != nil {
+ return c
+ }
+ return nil
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *GatewayConfigList) DeepCopyInto(out *GatewayConfigList) {
+ *out = *in
+ out.TypeMeta = in.TypeMeta
+ in.ListMeta.DeepCopyInto(&out.ListMeta)
+ if in.Items != nil {
+ in, out := &in.Items, &out.Items
+ *out = make([]GatewayConfig, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewayConfigList.
+func (in *GatewayConfigList) DeepCopy() *GatewayConfigList {
+ if in == nil {
+ return nil
+ }
+ out := new(GatewayConfigList)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
+func (in *GatewayConfigList) DeepCopyObject() runtime.Object {
+ if c := in.DeepCopy(); c != nil {
+ return c
+ }
+ return nil
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *GatewayConfigSpec) DeepCopyInto(out *GatewayConfigSpec) {
+ *out = *in
+ in.GatewaySpec.DeepCopyInto(&out.GatewaySpec)
+ in.Envoy.DeepCopyInto(&out.Envoy)
+ out.Global = in.Global
+ in.Chart.DeepCopyInto(&out.Chart)
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewayConfigSpec.
+func (in *GatewayConfigSpec) DeepCopy() *GatewayConfigSpec {
+ if in == nil {
+ return nil
+ }
+ out := new(GatewayConfigSpec)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *GatewayDns) DeepCopyInto(out *GatewayDns) {
+ *out = *in
+ in.Auth.DeepCopyInto(&out.Auth)
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewayDns.
+func (in *GatewayDns) DeepCopy() *GatewayDns {
+ if in == nil {
+ return nil
+ }
+ out := new(GatewayDns)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *GatewayParameter) DeepCopyInto(out *GatewayParameter) {
+ *out = *in
+ in.Service.DeepCopyInto(&out.Service)
+ out.VaultServer = in.VaultServer
+ out.FrontendTLSSecretRef = in.FrontendTLSSecretRef
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewayParameter.
+func (in *GatewayParameter) DeepCopy() *GatewayParameter {
+ if in == nil {
+ return nil
+ }
+ out := new(GatewayParameter)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *GatewayPreset) DeepCopyInto(out *GatewayPreset) {
+ *out = *in
+ out.TypeMeta = in.TypeMeta
+ in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
+ in.Spec.DeepCopyInto(&out.Spec)
+ in.Status.DeepCopyInto(&out.Status)
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewayPreset.
+func (in *GatewayPreset) DeepCopy() *GatewayPreset {
+ if in == nil {
+ return nil
+ }
+ out := new(GatewayPreset)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
+func (in *GatewayPreset) DeepCopyObject() runtime.Object {
+ if c := in.DeepCopy(); c != nil {
+ return c
+ }
+ return nil
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *GatewayPresetList) DeepCopyInto(out *GatewayPresetList) {
+ *out = *in
+ out.TypeMeta = in.TypeMeta
+ in.ListMeta.DeepCopyInto(&out.ListMeta)
+ if in.Items != nil {
+ in, out := &in.Items, &out.Items
+ *out = make([]GatewayPreset, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewayPresetList.
+func (in *GatewayPresetList) DeepCopy() *GatewayPresetList {
+ if in == nil {
+ return nil
+ }
+ out := new(GatewayPresetList)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
+func (in *GatewayPresetList) DeepCopyObject() runtime.Object {
+ if c := in.DeepCopy(); c != nil {
+ return c
+ }
+ return nil
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *GatewayPresetSpec) DeepCopyInto(out *GatewayPresetSpec) {
+ *out = *in
+ if in.ParametersRef != nil {
+ in, out := &in.ParametersRef, &out.ParametersRef
+ *out = new(apisv1.ParametersReference)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewayPresetSpec.
+func (in *GatewayPresetSpec) DeepCopy() *GatewayPresetSpec {
+ if in == nil {
+ return nil
+ }
+ out := new(GatewayPresetSpec)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *GatewayPresetStatus) DeepCopyInto(out *GatewayPresetStatus) {
+ *out = *in
+ if in.Conditions != nil {
+ in, out := &in.Conditions, &out.Conditions
+ *out = make([]apiv1.Condition, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ if in.HelmRelease != nil {
+ in, out := &in.HelmRelease, &out.HelmRelease
+ *out = new(v1.LocalObjectReference)
+ **out = **in
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewayPresetStatus.
+func (in *GatewayPresetStatus) DeepCopy() *GatewayPresetStatus {
+ if in == nil {
+ return nil
+ }
+ out := new(GatewayPresetStatus)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *GatewaySpec) DeepCopyInto(out *GatewaySpec) {
+ *out = *in
+ in.Infra.DeepCopyInto(&out.Infra)
+ in.Gateway.DeepCopyInto(&out.Gateway)
+ in.GatewayDns.DeepCopyInto(&out.GatewayDns)
+ out.Cluster = in.Cluster
+ in.Echoserver.DeepCopyInto(&out.Echoserver)
+ out.VaultServer = in.VaultServer
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewaySpec.
+func (in *GatewaySpec) DeepCopy() *GatewaySpec {
+ if in == nil {
+ return nil
+ }
+ out := new(GatewaySpec)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *GatewayValues) DeepCopyInto(out *GatewayValues) {
+ *out = *in
+ in.GatewaySpec.DeepCopyInto(&out.GatewaySpec)
+ in.Envoy.DeepCopyInto(&out.Envoy)
+ out.Global = in.Global
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewayValues.
+func (in *GatewayValues) DeepCopy() *GatewayValues {
+ if in == nil {
+ return nil
+ }
+ out := new(GatewayValues)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *GlobalValues) DeepCopyInto(out *GlobalValues) {
+ *out = *in
+ out.Distro = in.Distro
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GlobalValues.
+func (in *GlobalValues) DeepCopy() *GlobalValues {
+ if in == nil {
+ return nil
+ }
+ out := new(GlobalValues)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *HostInfo) DeepCopyInto(out *HostInfo) {
+ *out = *in
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostInfo.
+func (in *HostInfo) DeepCopy() *HostInfo {
+ if in == nil {
+ return nil
+ }
+ out := new(HostInfo)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *InfraTLS) DeepCopyInto(out *InfraTLS) {
+ *out = *in
+ if in.CA != nil {
+ in, out := &in.CA, &out.CA
+ *out = new(TLSData)
+ **out = **in
+ }
+ if in.Acme != nil {
+ in, out := &in.Acme, &out.Acme
+ *out = new(TLSIssuerAcme)
+ **out = **in
+ }
+ if in.Certificate != nil {
+ in, out := &in.Certificate, &out.Certificate
+ *out = new(TLSData)
+ **out = **in
+ }
+ if in.JKS != nil {
+ in, out := &in.JKS, &out.JKS
+ *out = new(Keystore)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InfraTLS.
+func (in *InfraTLS) DeepCopy() *InfraTLS {
+ if in == nil {
+ return nil
+ }
+ out := new(InfraTLS)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *Keystore) DeepCopyInto(out *Keystore) {
+ *out = *in
+ if in.Truststore != nil {
+ in, out := &in.Truststore, &out.Truststore
+ *out = make([]byte, len(*in))
+ copy(*out, *in)
+ }
+ if in.Keystore != nil {
+ in, out := &in.Keystore, &out.Keystore
+ *out = make([]byte, len(*in))
+ copy(*out, *in)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Keystore.
+func (in *Keystore) DeepCopy() *Keystore {
+ if in == nil {
+ return nil
+ }
+ out := new(Keystore)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *Route53Auth) DeepCopyInto(out *Route53Auth) {
+ *out = *in
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Route53Auth.
+func (in *Route53Auth) DeepCopy() *Route53Auth {
+ if in == nil {
+ return nil
+ }
+ out := new(Route53Auth)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ServiceGatewayDns) DeepCopyInto(out *ServiceGatewayDns) {
+ *out = *in
+ if in.Spec != nil {
+ in, out := &in.Spec, &out.Spec
+ *out = new(externalv1alpha1.ExternalDNSSpec)
+ (*in).DeepCopyInto(*out)
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceGatewayDns.
+func (in *ServiceGatewayDns) DeepCopy() *ServiceGatewayDns {
+ if in == nil {
+ return nil
+ }
+ out := new(ServiceGatewayDns)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ServiceProviderCluster) DeepCopyInto(out *ServiceProviderCluster) {
+ *out = *in
+ out.TLS = in.TLS
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceProviderCluster.
+func (in *ServiceProviderCluster) DeepCopy() *ServiceProviderCluster {
+ if in == nil {
+ return nil
+ }
+ out := new(ServiceProviderCluster)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ServiceProviderInfra) DeepCopyInto(out *ServiceProviderInfra) {
+ *out = *in
+ out.HostInfo = in.HostInfo
+ in.TLS.DeepCopyInto(&out.TLS)
+ in.DNS.DeepCopyInto(&out.DNS)
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceProviderInfra.
+func (in *ServiceProviderInfra) DeepCopy() *ServiceProviderInfra {
+ if in == nil {
+ return nil
+ }
+ out := new(ServiceProviderInfra)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *TLSData) DeepCopyInto(out *TLSData) {
+ *out = *in
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLSData.
+func (in *TLSData) DeepCopy() *TLSData {
+ if in == nil {
+ return nil
+ }
+ out := new(TLSData)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *TLSIssuerAcme) DeepCopyInto(out *TLSIssuerAcme) {
+ *out = *in
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLSIssuerAcme.
+func (in *TLSIssuerAcme) DeepCopy() *TLSIssuerAcme {
+ if in == nil {
+ return nil
+ }
+ out := new(TLSIssuerAcme)
+ in.DeepCopyInto(out)
+ return out
+}
diff --git a/vendor/golang.org/x/crypto/scrypt/scrypt.go b/vendor/golang.org/x/crypto/scrypt/scrypt.go
index 76fa40fb..b422b7d7 100644
--- a/vendor/golang.org/x/crypto/scrypt/scrypt.go
+++ b/vendor/golang.org/x/crypto/scrypt/scrypt.go
@@ -196,6 +196,9 @@ func Key(password, salt []byte, N, r, p, keyLen int) ([]byte, error) {
if N <= 1 || N&(N-1) != 0 {
return nil, errors.New("scrypt: N must be > 1 and a power of 2")
}
+ if r <= 0 || p <= 0 {
+ return nil, errors.New("scrypt: parameters must be > 0")
+ }
if uint64(r)*uint64(p) >= 1<<30 || r > maxInt/128/p || r > maxInt/256 || N > maxInt/128/r {
return nil, errors.New("scrypt: parameters are too large")
}
diff --git a/vendor/golang.org/x/net/http2/client_priority_go126.go b/vendor/golang.org/x/net/http2/client_priority_go126.go
new file mode 100644
index 00000000..80af000b
--- /dev/null
+++ b/vendor/golang.org/x/net/http2/client_priority_go126.go
@@ -0,0 +1,20 @@
+// Copyright 2026 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.
+
+//go:build !go1.27
+
+package http2
+
+import "net/http"
+
+// Support for go.dev/issue/75500 is added in Go 1.27. In case anyone uses
+// x/net with versions before Go 1.27, we return true here so that their write
+// scheduler will still be the round-robin write scheduler rather than the RFC
+// 9218 write scheduler. That way, older users of Go will not see a sudden
+// change of behavior just from importing x/net.
+//
+// TODO(nsh): remove this file after x/net go.mod is at Go 1.27.
+func clientPriorityDisabled(_ *http.Server) bool {
+ return true
+}
diff --git a/vendor/golang.org/x/net/http2/client_priority_go127.go b/vendor/golang.org/x/net/http2/client_priority_go127.go
new file mode 100644
index 00000000..817d01b0
--- /dev/null
+++ b/vendor/golang.org/x/net/http2/client_priority_go127.go
@@ -0,0 +1,13 @@
+// Copyright 2026 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.
+
+//go:build go1.27
+
+package http2
+
+import "net/http"
+
+func clientPriorityDisabled(s *http.Server) bool {
+ return s.DisableClientPriority
+}
diff --git a/vendor/golang.org/x/net/http2/frame.go b/vendor/golang.org/x/net/http2/frame.go
index 9a4bd123..be75badc 100644
--- a/vendor/golang.org/x/net/http2/frame.go
+++ b/vendor/golang.org/x/net/http2/frame.go
@@ -11,11 +11,13 @@ import (
"fmt"
"io"
"log"
+ "slices"
"strings"
"sync"
"golang.org/x/net/http/httpguts"
"golang.org/x/net/http2/hpack"
+ "golang.org/x/net/internal/httpsfv"
)
const frameHeaderLen = 9
@@ -23,33 +25,36 @@ const frameHeaderLen = 9
var padZeros = make([]byte, 255) // zeros for padding
// A FrameType is a registered frame type as defined in
-// https://httpwg.org/specs/rfc7540.html#rfc.section.11.2
+// https://httpwg.org/specs/rfc7540.html#rfc.section.11.2 and other future
+// RFCs.
type FrameType uint8
const (
- FrameData FrameType = 0x0
- FrameHeaders FrameType = 0x1
- FramePriority FrameType = 0x2
- FrameRSTStream FrameType = 0x3
- FrameSettings FrameType = 0x4
- FramePushPromise FrameType = 0x5
- FramePing FrameType = 0x6
- FrameGoAway FrameType = 0x7
- FrameWindowUpdate FrameType = 0x8
- FrameContinuation FrameType = 0x9
+ FrameData FrameType = 0x0
+ FrameHeaders FrameType = 0x1
+ FramePriority FrameType = 0x2
+ FrameRSTStream FrameType = 0x3
+ FrameSettings FrameType = 0x4
+ FramePushPromise FrameType = 0x5
+ FramePing FrameType = 0x6
+ FrameGoAway FrameType = 0x7
+ FrameWindowUpdate FrameType = 0x8
+ FrameContinuation FrameType = 0x9
+ FramePriorityUpdate FrameType = 0x10
)
var frameNames = [...]string{
- FrameData: "DATA",
- FrameHeaders: "HEADERS",
- FramePriority: "PRIORITY",
- FrameRSTStream: "RST_STREAM",
- FrameSettings: "SETTINGS",
- FramePushPromise: "PUSH_PROMISE",
- FramePing: "PING",
- FrameGoAway: "GOAWAY",
- FrameWindowUpdate: "WINDOW_UPDATE",
- FrameContinuation: "CONTINUATION",
+ FrameData: "DATA",
+ FrameHeaders: "HEADERS",
+ FramePriority: "PRIORITY",
+ FrameRSTStream: "RST_STREAM",
+ FrameSettings: "SETTINGS",
+ FramePushPromise: "PUSH_PROMISE",
+ FramePing: "PING",
+ FrameGoAway: "GOAWAY",
+ FrameWindowUpdate: "WINDOW_UPDATE",
+ FrameContinuation: "CONTINUATION",
+ FramePriorityUpdate: "PRIORITY_UPDATE",
}
func (t FrameType) String() string {
@@ -125,21 +130,24 @@ var flagName = map[FrameType]map[Flags]string{
type frameParser func(fc *frameCache, fh FrameHeader, countError func(string), payload []byte) (Frame, error)
var frameParsers = [...]frameParser{
- FrameData: parseDataFrame,
- FrameHeaders: parseHeadersFrame,
- FramePriority: parsePriorityFrame,
- FrameRSTStream: parseRSTStreamFrame,
- FrameSettings: parseSettingsFrame,
- FramePushPromise: parsePushPromise,
- FramePing: parsePingFrame,
- FrameGoAway: parseGoAwayFrame,
- FrameWindowUpdate: parseWindowUpdateFrame,
- FrameContinuation: parseContinuationFrame,
+ FrameData: parseDataFrame,
+ FrameHeaders: parseHeadersFrame,
+ FramePriority: parsePriorityFrame,
+ FrameRSTStream: parseRSTStreamFrame,
+ FrameSettings: parseSettingsFrame,
+ FramePushPromise: parsePushPromise,
+ FramePing: parsePingFrame,
+ FrameGoAway: parseGoAwayFrame,
+ FrameWindowUpdate: parseWindowUpdateFrame,
+ FrameContinuation: parseContinuationFrame,
+ FramePriorityUpdate: parsePriorityUpdateFrame,
}
func typeFrameParser(t FrameType) frameParser {
if int(t) < len(frameParsers) {
- return frameParsers[t]
+ if f := frameParsers[t]; f != nil {
+ return f
+ }
}
return parseUnknownFrame
}
@@ -1180,9 +1188,34 @@ type PriorityFrame struct {
PriorityParam
}
-var defaultRFC9218Priority = PriorityParam{
- incremental: 0,
- urgency: 3,
+// defaultRFC9218Priority determines what priority we should use as the default
+// value.
+//
+// According to RFC 9218, by default, streams should be given an urgency of 3
+// and should be non-incremental. However, making streams non-incremental by
+// default would be a huge change to our historical behavior where we would
+// round-robin writes across streams. When streams are non-incremental, we
+// would process streams of the same urgency one-by-one to completion instead.
+//
+// To avoid such a sudden change which might break some HTTP/2 users, this
+// function allows the caller to specify whether they can actually use the
+// default value as specified in RFC 9218. If not, this function will return a
+// priority value where streams are incremental by default instead: effectively
+// a round-robin between stream of the same urgency.
+//
+// As an example, a server might not be able to use the RFC 9218 default value
+// when it's not sure that the client it is serving is aware of RFC 9218.
+func defaultRFC9218Priority(canUseDefault bool) PriorityParam {
+ if canUseDefault {
+ return PriorityParam{
+ urgency: 3,
+ incremental: 0,
+ }
+ }
+ return PriorityParam{
+ urgency: 3,
+ incremental: 1,
+ }
}
// Note that HTTP/2 has had two different prioritization schemes, and
@@ -1266,6 +1299,74 @@ func (f *Framer) WritePriority(streamID uint32, p PriorityParam) error {
return f.endWrite()
}
+// PriorityUpdateFrame is a PRIORITY_UPDATE frame as described in
+// https://www.rfc-editor.org/rfc/rfc9218.html#name-the-priority_update-frame.
+type PriorityUpdateFrame struct {
+ FrameHeader
+ Priority string
+ PrioritizedStreamID uint32
+}
+
+func parseRFC9218Priority(s string, canUseDefault bool) (p PriorityParam, ok bool) {
+ p = defaultRFC9218Priority(canUseDefault)
+ ok = httpsfv.ParseDictionary(s, func(key, val, _ string) {
+ switch key {
+ case "u":
+ if u, ok := httpsfv.ParseInteger(val); ok && u >= 0 && u <= 7 {
+ p.urgency = uint8(u)
+ }
+ case "i":
+ if i, ok := httpsfv.ParseBoolean(val); ok {
+ if i {
+ p.incremental = 1
+ } else {
+ p.incremental = 0
+ }
+ }
+ }
+ })
+ if !ok {
+ return defaultRFC9218Priority(canUseDefault), ok
+ }
+ return p, true
+}
+
+func parsePriorityUpdateFrame(_ *frameCache, fh FrameHeader, countError func(string), payload []byte) (Frame, error) {
+ if fh.StreamID != 0 {
+ countError("frame_priority_update_non_zero_stream")
+ return nil, connError{ErrCodeProtocol, "PRIORITY_UPDATE frame with non-zero stream ID"}
+ }
+ if len(payload) < 4 {
+ countError("frame_priority_update_bad_length")
+ return nil, connError{ErrCodeFrameSize, fmt.Sprintf("PRIORITY_UPDATE frame payload size was %d; want at least 4", len(payload))}
+ }
+ v := binary.BigEndian.Uint32(payload[:4])
+ streamID := v & 0x7fffffff // mask off high bit
+ if streamID == 0 {
+ countError("frame_priority_update_prioritizing_zero_stream")
+ return nil, connError{ErrCodeProtocol, "PRIORITY_UPDATE frame with prioritized stream ID of zero"}
+ }
+ return &PriorityUpdateFrame{
+ FrameHeader: fh,
+ PrioritizedStreamID: streamID,
+ Priority: string(payload[4:]),
+ }, nil
+}
+
+// WritePriorityUpdate writes a PRIORITY_UPDATE frame.
+//
+// It will perform exactly one Write to the underlying Writer.
+// It is the caller's responsibility to not call other Write methods concurrently.
+func (f *Framer) WritePriorityUpdate(streamID uint32, priority string) error {
+ if !validStreamID(streamID) && !f.AllowIllegalWrites {
+ return errStreamID
+ }
+ f.startWrite(FramePriorityUpdate, 0, 0)
+ f.writeUint32(streamID)
+ f.writeBytes([]byte(priority))
+ return f.endWrite()
+}
+
// A RSTStreamFrame allows for abnormal termination of a stream.
// See https://httpwg.org/specs/rfc7540.html#rfc.section.6.4
type RSTStreamFrame struct {
@@ -1547,6 +1648,23 @@ func (mh *MetaHeadersFrame) PseudoFields() []hpack.HeaderField {
return mh.Fields
}
+func (mh *MetaHeadersFrame) rfc9218Priority(priorityAware bool) (p PriorityParam, priorityAwareAfter, hasIntermediary bool) {
+ var s string
+ for _, field := range mh.Fields {
+ if field.Name == "priority" {
+ s = field.Value
+ priorityAware = true
+ }
+ if slices.Contains([]string{"via", "forwarded", "x-forwarded-for"}, field.Name) {
+ hasIntermediary = true
+ }
+ }
+ // No need to check for ok. parseRFC9218Priority will return a default
+ // value if there is no priority field or if the field cannot be parsed.
+ p, _ = parseRFC9218Priority(s, priorityAware && !hasIntermediary)
+ return p, priorityAware, hasIntermediary
+}
+
func (mh *MetaHeadersFrame) checkPseudos() error {
var isRequest, isResponse bool
pf := mh.PseudoFields()
diff --git a/vendor/golang.org/x/net/http2/http2.go b/vendor/golang.org/x/net/http2/http2.go
index 105fe12f..0b99d832 100644
--- a/vendor/golang.org/x/net/http2/http2.go
+++ b/vendor/golang.org/x/net/http2/http2.go
@@ -4,13 +4,17 @@
// Package http2 implements the HTTP/2 protocol.
//
-// This package is low-level and intended to be used directly by very
-// few people. Most users will use it indirectly through the automatic
-// use by the net/http package (from Go 1.6 and later).
-// For use in earlier Go versions see ConfigureServer. (Transport support
-// requires Go 1.6 or later)
+// Almost no users should need to import this package directly.
+// The net/http package supports HTTP/2 natively.
//
-// See https://http2.github.io/ for more information on HTTP/2.
+// To enable or disable HTTP/2 support in net/http clients and servers, see
+// [http.Transport.Protocols] and [http.Server.Protocols].
+//
+// To configure HTTP/2 parameters, see
+// [http.Transport.HTTP2] and [http.Server.HTTP2].
+//
+// To create HTTP/1 or HTTP/2 connections, see
+// [http.Transport.NewClientConn].
package http2 // import "golang.org/x/net/http2"
import (
@@ -169,6 +173,7 @@ const (
SettingMaxFrameSize SettingID = 0x5
SettingMaxHeaderListSize SettingID = 0x6
SettingEnableConnectProtocol SettingID = 0x8
+ SettingNoRFC7540Priorities SettingID = 0x9
)
var settingName = map[SettingID]string{
@@ -179,6 +184,7 @@ var settingName = map[SettingID]string{
SettingMaxFrameSize: "MAX_FRAME_SIZE",
SettingMaxHeaderListSize: "MAX_HEADER_LIST_SIZE",
SettingEnableConnectProtocol: "ENABLE_CONNECT_PROTOCOL",
+ SettingNoRFC7540Priorities: "NO_RFC7540_PRIORITIES",
}
func (s SettingID) String() string {
diff --git a/vendor/golang.org/x/net/http2/server.go b/vendor/golang.org/x/net/http2/server.go
index bdc5520e..65da5175 100644
--- a/vendor/golang.org/x/net/http2/server.go
+++ b/vendor/golang.org/x/net/http2/server.go
@@ -164,6 +164,8 @@ type Server struct {
// NewWriteScheduler constructs a write scheduler for a connection.
// If nil, a default scheduler is chosen.
+ //
+ // Deprecated: User-provided write schedulers are deprecated.
NewWriteScheduler func() WriteScheduler
// CountError, if non-nil, is called on HTTP/2 server errors.
@@ -472,10 +474,13 @@ func (s *Server) serveConn(c net.Conn, opts *ServeConnOpts, newf func(*serverCon
sc.conn.SetWriteDeadline(time.Time{})
}
- if s.NewWriteScheduler != nil {
+ switch {
+ case s.NewWriteScheduler != nil:
sc.writeSched = s.NewWriteScheduler()
- } else {
+ case clientPriorityDisabled(http1srv):
sc.writeSched = newRoundRobinWriteScheduler()
+ default:
+ sc.writeSched = newPriorityWriteSchedulerRFC9218()
}
// These start at the RFC-specified defaults. If there is a higher
@@ -648,6 +653,23 @@ type serverConn struct {
// Used by startGracefulShutdown.
shutdownOnce sync.Once
+
+ // Used for RFC 9218 prioritization.
+ hasIntermediary bool // connection is done via an intermediary / proxy
+ priorityAware bool // the client has sent priority signal, meaning that it is aware of it.
+}
+
+func (sc *serverConn) writeSchedIgnoresRFC7540() bool {
+ switch sc.writeSched.(type) {
+ case *priorityWriteSchedulerRFC9218:
+ return true
+ case *randomWriteScheduler:
+ return true
+ case *roundRobinWriteScheduler:
+ return true
+ default:
+ return false
+ }
}
func (sc *serverConn) maxHeaderListSize() uint32 {
@@ -938,6 +960,9 @@ func (sc *serverConn) serve(conf http2Config) {
if !disableExtendedConnectProtocol {
settings = append(settings, Setting{SettingEnableConnectProtocol, 1})
}
+ if sc.writeSchedIgnoresRFC7540() {
+ settings = append(settings, Setting{SettingNoRFC7540Priorities, 1})
+ }
sc.writeFrame(FrameWriteRequest{
write: settings,
})
@@ -1623,6 +1648,8 @@ func (sc *serverConn) processFrame(f Frame) error {
// A client cannot push. Thus, servers MUST treat the receipt of a PUSH_PROMISE
// frame as a connection error (Section 5.4.1) of type PROTOCOL_ERROR.
return sc.countError("push_promise", ConnectionError(ErrCodeProtocol))
+ case *PriorityUpdateFrame:
+ return sc.processPriorityUpdate(f)
default:
sc.vlogf("http2: server ignoring frame: %v", f.Header())
return nil
@@ -1803,6 +1830,10 @@ func (sc *serverConn) processSetting(s Setting) error {
case SettingEnableConnectProtocol:
// Receipt of this parameter by a server does not
// have any impact
+ case SettingNoRFC7540Priorities:
+ if s.Val > 1 {
+ return ConnectionError(ErrCodeProtocol)
+ }
default:
// Unknown setting: "An endpoint that receives a SETTINGS
// frame with any unknown or unsupported identifier MUST
@@ -2073,13 +2104,33 @@ func (sc *serverConn) processHeaders(f *MetaHeadersFrame) error {
if f.StreamEnded() {
initialState = stateHalfClosedRemote
}
- st := sc.newStream(id, 0, initialState)
+
+ // We are handling two special cases here:
+ // 1. When a request is sent via an intermediary, we force priority to be
+ // u=3,i. This is essentially a round-robin behavior, and is done to ensure
+ // fairness between, for example, multiple clients using the same proxy.
+ // 2. Until a client has shown that it is aware of RFC 9218, we make its
+ // streams non-incremental by default. This is done to preserve the
+ // historical behavior of handling streams in a round-robin manner, rather
+ // than one-by-one to completion.
+ initialPriority := defaultRFC9218Priority(sc.priorityAware && !sc.hasIntermediary)
+ if _, ok := sc.writeSched.(*priorityWriteSchedulerRFC9218); ok && !sc.hasIntermediary {
+ headerPriority, priorityAware, hasIntermediary := f.rfc9218Priority(sc.priorityAware)
+ initialPriority = headerPriority
+ sc.hasIntermediary = hasIntermediary
+ if priorityAware {
+ sc.priorityAware = true
+ }
+ }
+ st := sc.newStream(id, 0, initialState, initialPriority)
if f.HasPriority() {
if err := sc.checkPriority(f.StreamID, f.Priority); err != nil {
return err
}
- sc.writeSched.AdjustStream(st.id, f.Priority)
+ if !sc.writeSchedIgnoresRFC7540() {
+ sc.writeSched.AdjustStream(st.id, f.Priority)
+ }
}
rw, req, err := sc.newWriterAndRequest(st, f)
@@ -2120,7 +2171,7 @@ func (sc *serverConn) upgradeRequest(req *http.Request) {
sc.serveG.check()
id := uint32(1)
sc.maxClientStreamID = id
- st := sc.newStream(id, 0, stateHalfClosedRemote)
+ st := sc.newStream(id, 0, stateHalfClosedRemote, defaultRFC9218Priority(sc.priorityAware && !sc.hasIntermediary))
st.reqTrailer = req.Trailer
if st.reqTrailer != nil {
st.trailer = make(http.Header)
@@ -2185,11 +2236,32 @@ func (sc *serverConn) processPriority(f *PriorityFrame) error {
if err := sc.checkPriority(f.StreamID, f.PriorityParam); err != nil {
return err
}
+ // We need to avoid calling AdjustStream when using the RFC 9218 write
+ // scheduler. Otherwise, incremental's zero value in PriorityParam will
+ // unexpectedly make all streams non-incremental. This causes us to process
+ // streams one-by-one to completion rather than doing it in a round-robin
+ // manner (the historical behavior), which might be unexpected to users.
+ if sc.writeSchedIgnoresRFC7540() {
+ return nil
+ }
sc.writeSched.AdjustStream(f.StreamID, f.PriorityParam)
return nil
}
-func (sc *serverConn) newStream(id, pusherID uint32, state streamState) *stream {
+func (sc *serverConn) processPriorityUpdate(f *PriorityUpdateFrame) error {
+ sc.priorityAware = true
+ if _, ok := sc.writeSched.(*priorityWriteSchedulerRFC9218); !ok {
+ return nil
+ }
+ p, ok := parseRFC9218Priority(f.Priority, sc.priorityAware)
+ if !ok {
+ return sc.countError("unparsable_priority_update", streamError(f.PrioritizedStreamID, ErrCodeProtocol))
+ }
+ sc.writeSched.AdjustStream(f.PrioritizedStreamID, p)
+ return nil
+}
+
+func (sc *serverConn) newStream(id, pusherID uint32, state streamState, priority PriorityParam) *stream {
sc.serveG.check()
if id == 0 {
panic("internal error: cannot create stream with id 0")
@@ -2212,7 +2284,7 @@ func (sc *serverConn) newStream(id, pusherID uint32, state streamState) *stream
}
sc.streams[id] = st
- sc.writeSched.OpenStream(st.id, OpenStreamOptions{PusherID: pusherID})
+ sc.writeSched.OpenStream(st.id, OpenStreamOptions{PusherID: pusherID, priority: priority})
if st.isPushed() {
sc.curPushedStreams++
} else {
@@ -3218,7 +3290,7 @@ func (sc *serverConn) startPush(msg *startPushRequest) {
// transition to "half closed (remote)" after sending the initial HEADERS, but
// we start in "half closed (remote)" for simplicity.
// See further comments at the definition of stateHalfClosedRemote.
- promised := sc.newStream(promisedID, msg.parent.id, stateHalfClosedRemote)
+ promised := sc.newStream(promisedID, msg.parent.id, stateHalfClosedRemote, defaultRFC9218Priority(sc.priorityAware && !sc.hasIntermediary))
rw, req, err := sc.newWriterAndRequestNoBody(promised, httpcommon.ServerRequestParam{
Method: msg.method,
Scheme: msg.url.Scheme,
diff --git a/vendor/golang.org/x/net/http2/transport.go b/vendor/golang.org/x/net/http2/transport.go
index 1965913e..2e9c2f6a 100644
--- a/vendor/golang.org/x/net/http2/transport.go
+++ b/vendor/golang.org/x/net/http2/transport.go
@@ -376,11 +376,24 @@ type ClientConn struct {
// completely unresponsive connection.
pendingResets int
+ // readBeforeStreamID is the smallest stream ID that has not been followed by
+ // a frame read from the peer. We use this to determine when a request may
+ // have been sent to a completely unresponsive connection:
+ // If the request ID is less than readBeforeStreamID, then we have had some
+ // indication of life on the connection since sending the request.
+ readBeforeStreamID uint32
+
// reqHeaderMu is a 1-element semaphore channel controlling access to sending new requests.
// Write to reqHeaderMu to lock it, read from it to unlock.
// Lock reqmu BEFORE mu or wmu.
reqHeaderMu chan struct{}
+ // internalStateHook reports state changes back to the net/http.ClientConn.
+ // Note that this is different from the user state hook registered by
+ // net/http.ClientConn.SetStateHook: The internal hook calls ClientConn,
+ // which calls the user hook.
+ internalStateHook func()
+
// wmu is held while writing.
// Acquire BEFORE mu when holding both, to avoid blocking mu on network writes.
// Only acquire both at the same time when changing peer settings.
@@ -699,10 +712,6 @@ func canRetryError(err error) bool {
return true
}
if se, ok := err.(StreamError); ok {
- if se.Code == ErrCodeProtocol && se.Cause == errFromPeer {
- // See golang/go#47635, golang/go#42777
- return true
- }
return se.Code == ErrCodeRefusedStream
}
return false
@@ -710,7 +719,7 @@ func canRetryError(err error) bool {
func (t *Transport) dialClientConn(ctx context.Context, addr string, singleUse bool) (*ClientConn, error) {
if t.transportTestHooks != nil {
- return t.newClientConn(nil, singleUse)
+ return t.newClientConn(nil, singleUse, nil)
}
host, _, err := net.SplitHostPort(addr)
if err != nil {
@@ -720,7 +729,7 @@ func (t *Transport) dialClientConn(ctx context.Context, addr string, singleUse b
if err != nil {
return nil, err
}
- return t.newClientConn(tconn, singleUse)
+ return t.newClientConn(tconn, singleUse, nil)
}
func (t *Transport) newTLSConfig(host string) *tls.Config {
@@ -772,10 +781,10 @@ func (t *Transport) expectContinueTimeout() time.Duration {
}
func (t *Transport) NewClientConn(c net.Conn) (*ClientConn, error) {
- return t.newClientConn(c, t.disableKeepAlives())
+ return t.newClientConn(c, t.disableKeepAlives(), nil)
}
-func (t *Transport) newClientConn(c net.Conn, singleUse bool) (*ClientConn, error) {
+func (t *Transport) newClientConn(c net.Conn, singleUse bool, internalStateHook func()) (*ClientConn, error) {
conf := configFromTransport(t)
cc := &ClientConn{
t: t,
@@ -797,6 +806,7 @@ func (t *Transport) newClientConn(c net.Conn, singleUse bool) (*ClientConn, erro
pings: make(map[[8]byte]chan struct{}),
reqHeaderMu: make(chan struct{}, 1),
lastActive: time.Now(),
+ internalStateHook: internalStateHook,
}
if t.transportTestHooks != nil {
t.transportTestHooks.newclientconn(cc)
@@ -1037,10 +1047,7 @@ func (cc *ClientConn) idleStateLocked() (st clientConnIdleState) {
maxConcurrentOkay = cc.currentRequestCountLocked() < int(cc.maxConcurrentStreams)
}
- st.canTakeNewRequest = cc.goAway == nil && !cc.closed && !cc.closing && maxConcurrentOkay &&
- !cc.doNotReuse &&
- int64(cc.nextStreamID)+2*int64(cc.pendingRequests) < math.MaxInt32 &&
- !cc.tooIdleLocked()
+ st.canTakeNewRequest = maxConcurrentOkay && cc.isUsableLocked()
// If this connection has never been used for a request and is closed,
// then let it take a request (which will fail).
@@ -1056,6 +1063,31 @@ func (cc *ClientConn) idleStateLocked() (st clientConnIdleState) {
return
}
+func (cc *ClientConn) isUsableLocked() bool {
+ return cc.goAway == nil &&
+ !cc.closed &&
+ !cc.closing &&
+ !cc.doNotReuse &&
+ int64(cc.nextStreamID)+2*int64(cc.pendingRequests) < math.MaxInt32 &&
+ !cc.tooIdleLocked()
+}
+
+// canReserveLocked reports whether a net/http.ClientConn can reserve a slot on this conn.
+//
+// This follows slightly different rules than clientConnIdleState.canTakeNewRequest.
+// We only permit reservations up to the conn's concurrency limit.
+// This differs from ClientConn.ReserveNewRequest, which permits reservations
+// past the limit when StrictMaxConcurrentStreams is set.
+func (cc *ClientConn) canReserveLocked() bool {
+ if cc.currentRequestCountLocked() >= int(cc.maxConcurrentStreams) {
+ return false
+ }
+ if !cc.isUsableLocked() {
+ return false
+ }
+ return true
+}
+
// currentRequestCountLocked reports the number of concurrency slots currently in use,
// including active streams, reserved slots, and reset streams waiting for acknowledgement.
func (cc *ClientConn) currentRequestCountLocked() int {
@@ -1067,6 +1099,14 @@ func (cc *ClientConn) canTakeNewRequestLocked() bool {
return st.canTakeNewRequest
}
+// availableLocked reports the number of concurrency slots available.
+func (cc *ClientConn) availableLocked() int {
+ if !cc.canTakeNewRequestLocked() {
+ return 0
+ }
+ return max(0, int(cc.maxConcurrentStreams)-cc.currentRequestCountLocked())
+}
+
// tooIdleLocked reports whether this connection has been been sitting idle
// for too much wall time.
func (cc *ClientConn) tooIdleLocked() bool {
@@ -1091,6 +1131,7 @@ func (cc *ClientConn) closeConn() {
t := time.AfterFunc(250*time.Millisecond, cc.forceCloseConn)
defer t.Stop()
cc.tconn.Close()
+ cc.maybeCallStateHook()
}
// A tls.Conn.Close can hang for a long time if the peer is unresponsive.
@@ -1616,6 +1657,8 @@ func (cs *clientStream) cleanupWriteRequest(err error) {
}
bodyClosed := cs.reqBodyClosed
closeOnIdle := cc.singleUse || cc.doNotReuse || cc.t.disableKeepAlives() || cc.goAway != nil
+ // Have we read any frames from the connection since sending this request?
+ readSinceStream := cc.readBeforeStreamID > cs.ID
cc.mu.Unlock()
if mustCloseBody {
cs.reqBody.Close()
@@ -1647,8 +1690,10 @@ func (cs *clientStream) cleanupWriteRequest(err error) {
//
// This could be due to the server becoming unresponsive.
// To avoid sending too many requests on a dead connection,
- // we let the request continue to consume a concurrency slot
- // until we can confirm the server is still responding.
+ // if we haven't read any frames from the connection since
+ // sending this request, we let it continue to consume
+ // a concurrency slot until we can confirm the server is
+ // still responding.
// We do this by sending a PING frame along with the RST_STREAM
// (unless a ping is already in flight).
//
@@ -1659,7 +1704,7 @@ func (cs *clientStream) cleanupWriteRequest(err error) {
// because it's short lived and will probably be closed before
// we get the ping response.
ping := false
- if !closeOnIdle {
+ if !closeOnIdle && !readSinceStream {
cc.mu.Lock()
// rstStreamPingsBlocked works around a gRPC behavior:
// see comment on the field for details.
@@ -1693,6 +1738,7 @@ func (cs *clientStream) cleanupWriteRequest(err error) {
}
close(cs.donec)
+ cc.maybeCallStateHook()
}
// awaitOpenSlotForStreamLocked waits until len(streams) < maxConcurrentStreams.
@@ -2729,6 +2775,11 @@ func (rl *clientConnReadLoop) endStreamError(cs *clientStream, err error) {
cs.abortStream(err)
}
+func (rl *clientConnReadLoop) endStreamErrorLocked(cs *clientStream, err error) {
+ cs.readAborted = true
+ cs.abortStreamLocked(err)
+}
+
// Constants passed to streamByID for documentation purposes.
const (
headerOrDataFrame = true
@@ -2745,6 +2796,7 @@ func (rl *clientConnReadLoop) streamByID(id uint32, headerOrData bool) *clientSt
// See comment on ClientConn.rstStreamPingsBlocked for details.
rl.cc.rstStreamPingsBlocked = false
}
+ rl.cc.readBeforeStreamID = rl.cc.nextStreamID
cs := rl.cc.streams[id]
if cs != nil && !cs.readAborted {
return cs
@@ -2795,6 +2847,7 @@ func (rl *clientConnReadLoop) processSettings(f *SettingsFrame) error {
func (rl *clientConnReadLoop) processSettingsNoWrite(f *SettingsFrame) error {
cc := rl.cc
+ defer cc.maybeCallStateHook()
cc.mu.Lock()
defer cc.mu.Unlock()
@@ -2894,7 +2947,7 @@ func (rl *clientConnReadLoop) processWindowUpdate(f *WindowUpdateFrame) error {
if !fl.add(int32(f.Increment)) {
// For stream, the sender sends RST_STREAM with an error code of FLOW_CONTROL_ERROR
if cs != nil {
- rl.endStreamError(cs, StreamError{
+ rl.endStreamErrorLocked(cs, StreamError{
StreamID: f.StreamID,
Code: ErrCodeFlowControl,
})
@@ -2975,6 +3028,7 @@ func (cc *ClientConn) Ping(ctx context.Context) error {
func (rl *clientConnReadLoop) processPing(f *PingFrame) error {
if f.IsAck() {
cc := rl.cc
+ defer cc.maybeCallStateHook()
cc.mu.Lock()
defer cc.mu.Unlock()
// If ack, notify listener if any
@@ -3175,10 +3229,6 @@ func (gz *gzipReader) Close() error {
return gz.body.Close()
}
-type errorReader struct{ err error }
-
-func (r errorReader) Read(p []byte) (int, error) { return 0, r.err }
-
// isConnectionCloseRequest reports whether req should use its own
// connection for a single request and then close the connection.
func isConnectionCloseRequest(req *http.Request) bool {
@@ -3198,9 +3248,13 @@ func registerHTTPSProtocol(t *http.Transport, rt noDialH2RoundTripper) (err erro
}
// noDialH2RoundTripper is a RoundTripper which only tries to complete the request
-// if there's already has a cached connection to the host.
+// if there's already a cached connection to the host.
// (The field is exported so it can be accessed via reflect from net/http; tested
// by TestNoDialH2RoundTripperType)
+//
+// A noDialH2RoundTripper is registered with http1.Transport.RegisterProtocol,
+// and the http1.Transport can use type assertions to call non-RoundTrip methods on it.
+// This lets us expose, for example, NewClientConn to net/http.
type noDialH2RoundTripper struct{ *Transport }
func (rt noDialH2RoundTripper) RoundTrip(req *http.Request) (*http.Response, error) {
@@ -3211,6 +3265,85 @@ func (rt noDialH2RoundTripper) RoundTrip(req *http.Request) (*http.Response, err
return res, err
}
+func (rt noDialH2RoundTripper) NewClientConn(conn net.Conn, internalStateHook func()) (http.RoundTripper, error) {
+ tr := rt.Transport
+ cc, err := tr.newClientConn(conn, tr.disableKeepAlives(), internalStateHook)
+ if err != nil {
+ return nil, err
+ }
+
+ // RoundTrip should block when the conn is at its concurrency limit,
+ // not return an error. Setting strictMaxConcurrentStreams enables this.
+ cc.strictMaxConcurrentStreams = true
+
+ return netHTTPClientConn{cc}, nil
+}
+
+// netHTTPClientConn wraps ClientConn and implements the interface net/http expects from
+// the RoundTripper returned by NewClientConn.
+type netHTTPClientConn struct {
+ cc *ClientConn
+}
+
+func (cc netHTTPClientConn) RoundTrip(req *http.Request) (*http.Response, error) {
+ return cc.cc.RoundTrip(req)
+}
+
+func (cc netHTTPClientConn) Close() error {
+ return cc.cc.Close()
+}
+
+func (cc netHTTPClientConn) Err() error {
+ cc.cc.mu.Lock()
+ defer cc.cc.mu.Unlock()
+ if cc.cc.closed {
+ return errors.New("connection closed")
+ }
+ return nil
+}
+
+func (cc netHTTPClientConn) Reserve() error {
+ defer cc.cc.maybeCallStateHook()
+ cc.cc.mu.Lock()
+ defer cc.cc.mu.Unlock()
+ if !cc.cc.canReserveLocked() {
+ return errors.New("connection is unavailable")
+ }
+ cc.cc.streamsReserved++
+ return nil
+}
+
+func (cc netHTTPClientConn) Release() {
+ defer cc.cc.maybeCallStateHook()
+ cc.cc.mu.Lock()
+ defer cc.cc.mu.Unlock()
+ // We don't complain if streamsReserved is 0.
+ //
+ // This is consistent with RoundTrip: both Release and RoundTrip will
+ // consume a reservation iff one exists.
+ if cc.cc.streamsReserved > 0 {
+ cc.cc.streamsReserved--
+ }
+}
+
+func (cc netHTTPClientConn) Available() int {
+ cc.cc.mu.Lock()
+ defer cc.cc.mu.Unlock()
+ return cc.cc.availableLocked()
+}
+
+func (cc netHTTPClientConn) InFlight() int {
+ cc.cc.mu.Lock()
+ defer cc.cc.mu.Unlock()
+ return cc.cc.currentRequestCountLocked()
+}
+
+func (cc *ClientConn) maybeCallStateHook() {
+ if cc.internalStateHook != nil {
+ cc.internalStateHook()
+ }
+}
+
func (t *Transport) idleConnTimeout() time.Duration {
// to keep things backwards compatible, we use non-zero values of
// IdleConnTimeout, followed by using the IdleConnTimeout on the underlying
diff --git a/vendor/golang.org/x/net/http2/writesched.go b/vendor/golang.org/x/net/http2/writesched.go
index 7de27be5..551545f3 100644
--- a/vendor/golang.org/x/net/http2/writesched.go
+++ b/vendor/golang.org/x/net/http2/writesched.go
@@ -8,6 +8,8 @@ import "fmt"
// WriteScheduler is the interface implemented by HTTP/2 write schedulers.
// Methods are never called concurrently.
+//
+// Deprecated: User-provided write schedulers are deprecated.
type WriteScheduler interface {
// OpenStream opens a new stream in the write scheduler.
// It is illegal to call this with streamID=0 or with a streamID that is
@@ -38,6 +40,8 @@ type WriteScheduler interface {
}
// OpenStreamOptions specifies extra options for WriteScheduler.OpenStream.
+//
+// Deprecated: User-provided write schedulers are deprecated.
type OpenStreamOptions struct {
// PusherID is zero if the stream was initiated by the client. Otherwise,
// PusherID names the stream that pushed the newly opened stream.
@@ -47,6 +51,8 @@ type OpenStreamOptions struct {
}
// FrameWriteRequest is a request to write a frame.
+//
+// Deprecated: User-provided write schedulers are deprecated.
type FrameWriteRequest struct {
// write is the interface value that does the writing, once the
// WriteScheduler has selected this frame to write. The write
diff --git a/vendor/golang.org/x/net/http2/writesched_priority_rfc7540.go b/vendor/golang.org/x/net/http2/writesched_priority_rfc7540.go
index 4e33c29a..c3d3e9be 100644
--- a/vendor/golang.org/x/net/http2/writesched_priority_rfc7540.go
+++ b/vendor/golang.org/x/net/http2/writesched_priority_rfc7540.go
@@ -14,6 +14,8 @@ import (
const priorityDefaultWeightRFC7540 = 15 // 16 = 15 + 1
// PriorityWriteSchedulerConfig configures a priorityWriteScheduler.
+//
+// Deprecated: User-provided write schedulers are deprecated.
type PriorityWriteSchedulerConfig struct {
// MaxClosedNodesInTree controls the maximum number of closed streams to
// retain in the priority tree. Setting this to zero saves a small amount
@@ -55,7 +57,14 @@ type PriorityWriteSchedulerConfig struct {
// NewPriorityWriteScheduler constructs a WriteScheduler that schedules
// frames by following HTTP/2 priorities as described in RFC 7540 Section 5.3.
// If cfg is nil, default options are used.
+//
+// Deprecated: The RFC 7540 write scheduler has known bugs and performance issues,
+// and RFC 7540 prioritization was deprecated in RFC 9113.
func NewPriorityWriteScheduler(cfg *PriorityWriteSchedulerConfig) WriteScheduler {
+ return newPriorityWriteSchedulerRFC7540(cfg)
+}
+
+func newPriorityWriteSchedulerRFC7540(cfg *PriorityWriteSchedulerConfig) WriteScheduler {
if cfg == nil {
// For justification of these defaults, see:
// https://docs.google.com/document/d/1oLhNg1skaWD4_DtaoCxdSRN5erEXrH-KnLrMwEpOtFY
diff --git a/vendor/golang.org/x/net/http2/writesched_priority_rfc9218.go b/vendor/golang.org/x/net/http2/writesched_priority_rfc9218.go
index cb4cadc3..dfbfc1eb 100644
--- a/vendor/golang.org/x/net/http2/writesched_priority_rfc9218.go
+++ b/vendor/golang.org/x/net/http2/writesched_priority_rfc9218.go
@@ -37,6 +37,15 @@ type priorityWriteSchedulerRFC9218 struct {
// incremental streams or not, when urgency is the same in a given Pop()
// call.
prioritizeIncremental bool
+
+ // priorityUpdateBuf is used to buffer the most recent PRIORITY_UPDATE we
+ // receive per https://www.rfc-editor.org/rfc/rfc9218.html#name-the-priority_update-frame.
+ priorityUpdateBuf struct {
+ // streamID being 0 means that the buffer is empty. This is a safe
+ // assumption as PRIORITY_UPDATE for stream 0 is a PROTOCOL_ERROR.
+ streamID uint32
+ priority PriorityParam
+ }
}
func newPriorityWriteSchedulerRFC9218() WriteScheduler {
@@ -50,6 +59,10 @@ func (ws *priorityWriteSchedulerRFC9218) OpenStream(streamID uint32, opt OpenStr
if ws.streams[streamID].location != nil {
panic(fmt.Errorf("stream %d already opened", streamID))
}
+ if streamID == ws.priorityUpdateBuf.streamID {
+ ws.priorityUpdateBuf.streamID = 0
+ opt.priority = ws.priorityUpdateBuf.priority
+ }
q := ws.queuePool.get()
ws.streams[streamID] = streamMetadata{
location: q,
@@ -95,6 +108,8 @@ func (ws *priorityWriteSchedulerRFC9218) AdjustStream(streamID uint32, priority
metadata := ws.streams[streamID]
q, u, i := metadata.location, metadata.priority.urgency, metadata.priority.incremental
if q == nil {
+ ws.priorityUpdateBuf.streamID = streamID
+ ws.priorityUpdateBuf.priority = priority
return
}
diff --git a/vendor/golang.org/x/net/http2/writesched_random.go b/vendor/golang.org/x/net/http2/writesched_random.go
index f2e55e05..d5d4e221 100644
--- a/vendor/golang.org/x/net/http2/writesched_random.go
+++ b/vendor/golang.org/x/net/http2/writesched_random.go
@@ -10,6 +10,8 @@ import "math"
// priorities. Control frames like SETTINGS and PING are written before DATA
// frames, but if no control frames are queued and multiple streams have queued
// HEADERS or DATA frames, Pop selects a ready stream arbitrarily.
+//
+// Deprecated: User-provided write schedulers are deprecated.
func NewRandomWriteScheduler() WriteScheduler {
return &randomWriteScheduler{sq: make(map[uint32]*writeQueue)}
}
diff --git a/vendor/golang.org/x/net/internal/httpsfv/httpsfv.go b/vendor/golang.org/x/net/internal/httpsfv/httpsfv.go
new file mode 100644
index 00000000..4ae2ca5b
--- /dev/null
+++ b/vendor/golang.org/x/net/internal/httpsfv/httpsfv.go
@@ -0,0 +1,665 @@
+// Copyright 2025 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 httpsfv provides functionality for dealing with HTTP Structured
+// Field Values.
+package httpsfv
+
+import (
+ "slices"
+ "strconv"
+ "strings"
+ "time"
+ "unicode/utf8"
+)
+
+func isLCAlpha(b byte) bool {
+ return (b >= 'a' && b <= 'z')
+}
+
+func isAlpha(b byte) bool {
+ return isLCAlpha(b) || (b >= 'A' && b <= 'Z')
+}
+
+func isDigit(b byte) bool {
+ return b >= '0' && b <= '9'
+}
+
+func isVChar(b byte) bool {
+ return b >= 0x21 && b <= 0x7e
+}
+
+func isSP(b byte) bool {
+ return b == 0x20
+}
+
+func isTChar(b byte) bool {
+ if isAlpha(b) || isDigit(b) {
+ return true
+ }
+ return slices.Contains([]byte{'!', '#', '$', '%', '&', '\'', '*', '+', '-', '.', '^', '_', '`', '|', '~'}, b)
+}
+
+func countLeftWhitespace(s string) int {
+ i := 0
+ for _, ch := range []byte(s) {
+ if ch != ' ' && ch != '\t' {
+ break
+ }
+ i++
+ }
+ return i
+}
+
+// https://www.rfc-editor.org/rfc/rfc4648#section-8.
+func decOctetHex(ch1, ch2 byte) (ch byte, ok bool) {
+ decBase16 := func(in byte) (out byte, ok bool) {
+ if !isDigit(in) && !(in >= 'a' && in <= 'f') {
+ return 0, false
+ }
+ if isDigit(in) {
+ return in - '0', true
+ }
+ return in - 'a' + 10, true
+ }
+
+ if ch1, ok = decBase16(ch1); !ok {
+ return 0, ok
+ }
+ if ch2, ok = decBase16(ch2); !ok {
+ return 0, ok
+ }
+ return ch1<<4 | ch2, true
+}
+
+// ParseList parses a list from a given HTTP Structured Field Values.
+//
+// Given an HTTP SFV string that represents a list, it will call the given
+// function using each of the members and parameters contained in the list.
+// This allows the caller to extract information out of the list.
+//
+// This function will return once it encounters the end of the string, or
+// something that is not a list. If it cannot consume the entire given
+// string, the ok value returned will be false.
+//
+// https://www.rfc-editor.org/rfc/rfc9651.html#name-parsing-a-list.
+func ParseList(s string, f func(member, param string)) (ok bool) {
+ for len(s) != 0 {
+ var member, param string
+ if len(s) != 0 && s[0] == '(' {
+ if member, s, ok = consumeBareInnerList(s, nil); !ok {
+ return ok
+ }
+ } else {
+ if member, s, ok = consumeBareItem(s); !ok {
+ return ok
+ }
+ }
+ if param, s, ok = consumeParameter(s, nil); !ok {
+ return ok
+ }
+ if f != nil {
+ f(member, param)
+ }
+
+ s = s[countLeftWhitespace(s):]
+ if len(s) == 0 {
+ break
+ }
+ if s[0] != ',' {
+ return false
+ }
+ s = s[1:]
+ s = s[countLeftWhitespace(s):]
+ if len(s) == 0 {
+ return false
+ }
+ }
+ return true
+}
+
+// consumeBareInnerList consumes an inner list
+// (https://www.rfc-editor.org/rfc/rfc9651.html#name-parsing-an-inner-list),
+// except for the inner list's top-most parameter.
+// For example, given `(a;b c;d);e`, it will consume only `(a;b c;d)`.
+func consumeBareInnerList(s string, f func(bareItem, param string)) (consumed, rest string, ok bool) {
+ if len(s) == 0 || s[0] != '(' {
+ return "", s, false
+ }
+ rest = s[1:]
+ for len(rest) != 0 {
+ var bareItem, param string
+ rest = rest[countLeftWhitespace(rest):]
+ if len(rest) != 0 && rest[0] == ')' {
+ rest = rest[1:]
+ break
+ }
+ if bareItem, rest, ok = consumeBareItem(rest); !ok {
+ return "", s, ok
+ }
+ if param, rest, ok = consumeParameter(rest, nil); !ok {
+ return "", s, ok
+ }
+ if len(rest) == 0 || (rest[0] != ')' && !isSP(rest[0])) {
+ return "", s, false
+ }
+ if f != nil {
+ f(bareItem, param)
+ }
+ }
+ return s[:len(s)-len(rest)], rest, true
+}
+
+// ParseBareInnerList parses a bare inner list from a given HTTP Structured
+// Field Values.
+//
+// We define a bare inner list as an inner list
+// (https://www.rfc-editor.org/rfc/rfc9651.html#name-parsing-an-inner-list),
+// without the top-most parameter of the inner list. For example, given the
+// inner list `(a;b c;d);e`, the bare inner list would be `(a;b c;d)`.
+//
+// Given an HTTP SFV string that represents a bare inner list, it will call the
+// given function using each of the bare item and parameter within the bare
+// inner list. This allows the caller to extract information out of the bare
+// inner list.
+//
+// This function will return once it encounters the end of the bare inner list,
+// or something that is not a bare inner list. If it cannot consume the entire
+// given string, the ok value returned will be false.
+func ParseBareInnerList(s string, f func(bareItem, param string)) (ok bool) {
+ _, rest, ok := consumeBareInnerList(s, f)
+ return rest == "" && ok
+}
+
+// https://www.rfc-editor.org/rfc/rfc9651.html#name-parsing-an-item.
+func consumeItem(s string, f func(bareItem, param string)) (consumed, rest string, ok bool) {
+ var bareItem, param string
+ if bareItem, rest, ok = consumeBareItem(s); !ok {
+ return "", s, ok
+ }
+ if param, rest, ok = consumeParameter(rest, nil); !ok {
+ return "", s, ok
+ }
+ if f != nil {
+ f(bareItem, param)
+ }
+ return s[:len(s)-len(rest)], rest, true
+}
+
+// ParseItem parses an item from a given HTTP Structured Field Values.
+//
+// Given an HTTP SFV string that represents an item, it will call the given
+// function once, with the bare item and the parameter of the item. This allows
+// the caller to extract information out of the item.
+//
+// This function will return once it encounters the end of the string, or
+// something that is not an item. If it cannot consume the entire given
+// string, the ok value returned will be false.
+//
+// https://www.rfc-editor.org/rfc/rfc9651.html#name-parsing-an-item.
+func ParseItem(s string, f func(bareItem, param string)) (ok bool) {
+ _, rest, ok := consumeItem(s, f)
+ return rest == "" && ok
+}
+
+// ParseDictionary parses a dictionary from a given HTTP Structured Field
+// Values.
+//
+// Given an HTTP SFV string that represents a dictionary, it will call the
+// given function using each of the keys, values, and parameters contained in
+// the dictionary. This allows the caller to extract information out of the
+// dictionary.
+//
+// This function will return once it encounters the end of the string, or
+// something that is not a dictionary. If it cannot consume the entire given
+// string, the ok value returned will be false.
+//
+// https://www.rfc-editor.org/rfc/rfc9651.html#name-parsing-a-dictionary.
+func ParseDictionary(s string, f func(key, val, param string)) (ok bool) {
+ for len(s) != 0 {
+ var key, val, param string
+ val = "?1" // Default value for empty val is boolean true.
+ if key, s, ok = consumeKey(s); !ok {
+ return ok
+ }
+ if len(s) != 0 && s[0] == '=' {
+ s = s[1:]
+ if len(s) != 0 && s[0] == '(' {
+ if val, s, ok = consumeBareInnerList(s, nil); !ok {
+ return ok
+ }
+ } else {
+ if val, s, ok = consumeBareItem(s); !ok {
+ return ok
+ }
+ }
+ }
+ if param, s, ok = consumeParameter(s, nil); !ok {
+ return ok
+ }
+ if f != nil {
+ f(key, val, param)
+ }
+ s = s[countLeftWhitespace(s):]
+ if len(s) == 0 {
+ break
+ }
+ if s[0] == ',' {
+ s = s[1:]
+ }
+ s = s[countLeftWhitespace(s):]
+ if len(s) == 0 {
+ return false
+ }
+ }
+ return true
+}
+
+// https://www.rfc-editor.org/rfc/rfc9651.html#parse-param.
+func consumeParameter(s string, f func(key, val string)) (consumed, rest string, ok bool) {
+ rest = s
+ for len(rest) != 0 {
+ var key, val string
+ val = "?1" // Default value for empty val is boolean true.
+ if rest[0] != ';' {
+ break
+ }
+ rest = rest[1:]
+ rest = rest[countLeftWhitespace(rest):]
+ key, rest, ok = consumeKey(rest)
+ if !ok {
+ return "", s, ok
+ }
+ if len(rest) != 0 && rest[0] == '=' {
+ rest = rest[1:]
+ val, rest, ok = consumeBareItem(rest)
+ if !ok {
+ return "", s, ok
+ }
+ }
+ if f != nil {
+ f(key, val)
+ }
+ }
+ return s[:len(s)-len(rest)], rest, true
+}
+
+// ParseParameter parses a parameter from a given HTTP Structured Field Values.
+//
+// Given an HTTP SFV string that represents a parameter, it will call the given
+// function using each of the keys and values contained in the parameter. This
+// allows the caller to extract information out of the parameter.
+//
+// This function will return once it encounters the end of the string, or
+// something that is not a parameter. If it cannot consume the entire given
+// string, the ok value returned will be false.
+//
+// https://www.rfc-editor.org/rfc/rfc9651.html#parse-param.
+func ParseParameter(s string, f func(key, val string)) (ok bool) {
+ _, rest, ok := consumeParameter(s, f)
+ return rest == "" && ok
+}
+
+// https://www.rfc-editor.org/rfc/rfc9651.html#name-parsing-a-key.
+func consumeKey(s string) (consumed, rest string, ok bool) {
+ if len(s) == 0 || (!isLCAlpha(s[0]) && s[0] != '*') {
+ return "", s, false
+ }
+ i := 0
+ for _, ch := range []byte(s) {
+ if !isLCAlpha(ch) && !isDigit(ch) && !slices.Contains([]byte("_-.*"), ch) {
+ break
+ }
+ i++
+ }
+ return s[:i], s[i:], true
+}
+
+// https://www.rfc-editor.org/rfc/rfc9651.html#name-parsing-an-integer-or-decim.
+func consumeIntegerOrDecimal(s string) (consumed, rest string, ok bool) {
+ var i, signOffset, periodIndex int
+ var isDecimal bool
+ if i < len(s) && s[i] == '-' {
+ i++
+ signOffset++
+ }
+ if i >= len(s) {
+ return "", s, false
+ }
+ if !isDigit(s[i]) {
+ return "", s, false
+ }
+ for i < len(s) {
+ ch := s[i]
+ if isDigit(ch) {
+ i++
+ continue
+ }
+ if !isDecimal && ch == '.' {
+ if i-signOffset > 12 {
+ return "", s, false
+ }
+ periodIndex = i
+ isDecimal = true
+ i++
+ continue
+ }
+ break
+ }
+ if !isDecimal && i-signOffset > 15 {
+ return "", s, false
+ }
+ if isDecimal {
+ if i-signOffset > 16 {
+ return "", s, false
+ }
+ if s[i-1] == '.' {
+ return "", s, false
+ }
+ if i-periodIndex-1 > 3 {
+ return "", s, false
+ }
+ }
+ return s[:i], s[i:], true
+}
+
+// ParseInteger parses an integer from a given HTTP Structured Field Values.
+//
+// The entire HTTP SFV string must consist of a valid integer. It returns the
+// parsed integer and an ok boolean value, indicating success or not.
+//
+// https://www.rfc-editor.org/rfc/rfc9651.html#name-parsing-an-integer-or-decim.
+func ParseInteger(s string) (parsed int64, ok bool) {
+ if _, rest, ok := consumeIntegerOrDecimal(s); !ok || rest != "" {
+ return 0, false
+ }
+ if n, err := strconv.ParseInt(s, 10, 64); err == nil {
+ return n, true
+ }
+ return 0, false
+}
+
+// ParseDecimal parses a decimal from a given HTTP Structured Field Values.
+//
+// The entire HTTP SFV string must consist of a valid decimal. It returns the
+// parsed decimal and an ok boolean value, indicating success or not.
+//
+// https://www.rfc-editor.org/rfc/rfc9651.html#name-parsing-an-integer-or-decim.
+func ParseDecimal(s string) (parsed float64, ok bool) {
+ if _, rest, ok := consumeIntegerOrDecimal(s); !ok || rest != "" {
+ return 0, false
+ }
+ if !strings.Contains(s, ".") {
+ return 0, false
+ }
+ if n, err := strconv.ParseFloat(s, 64); err == nil {
+ return n, true
+ }
+ return 0, false
+}
+
+// https://www.rfc-editor.org/rfc/rfc9651.html#name-parsing-a-string.
+func consumeString(s string) (consumed, rest string, ok bool) {
+ if len(s) == 0 || s[0] != '"' {
+ return "", s, false
+ }
+ for i := 1; i < len(s); i++ {
+ switch ch := s[i]; ch {
+ case '\\':
+ if i+1 >= len(s) {
+ return "", s, false
+ }
+ i++
+ if ch = s[i]; ch != '"' && ch != '\\' {
+ return "", s, false
+ }
+ case '"':
+ return s[:i+1], s[i+1:], true
+ default:
+ if !isVChar(ch) && !isSP(ch) {
+ return "", s, false
+ }
+ }
+ }
+ return "", s, false
+}
+
+// ParseString parses a Go string from a given HTTP Structured Field Values.
+//
+// The entire HTTP SFV string must consist of a valid string. It returns the
+// parsed string and an ok boolean value, indicating success or not.
+//
+// https://www.rfc-editor.org/rfc/rfc9651.html#name-parsing-a-string.
+func ParseString(s string) (parsed string, ok bool) {
+ if _, rest, ok := consumeString(s); !ok || rest != "" {
+ return "", false
+ }
+ return s[1 : len(s)-1], true
+}
+
+// https://www.rfc-editor.org/rfc/rfc9651.html#name-parsing-a-token
+func consumeToken(s string) (consumed, rest string, ok bool) {
+ if len(s) == 0 || (!isAlpha(s[0]) && s[0] != '*') {
+ return "", s, false
+ }
+ i := 0
+ for _, ch := range []byte(s) {
+ if !isTChar(ch) && !slices.Contains([]byte(":/"), ch) {
+ break
+ }
+ i++
+ }
+ return s[:i], s[i:], true
+}
+
+// ParseToken parses a token from a given HTTP Structured Field Values.
+//
+// The entire HTTP SFV string must consist of a valid token. It returns the
+// parsed token and an ok boolean value, indicating success or not.
+//
+// https://www.rfc-editor.org/rfc/rfc9651.html#name-parsing-a-token
+func ParseToken(s string) (parsed string, ok bool) {
+ if _, rest, ok := consumeToken(s); !ok || rest != "" {
+ return "", false
+ }
+ return s, true
+}
+
+// https://www.rfc-editor.org/rfc/rfc9651.html#name-parsing-a-byte-sequence.
+func consumeByteSequence(s string) (consumed, rest string, ok bool) {
+ if len(s) == 0 || s[0] != ':' {
+ return "", s, false
+ }
+ for i := 1; i < len(s); i++ {
+ if ch := s[i]; ch == ':' {
+ return s[:i+1], s[i+1:], true
+ }
+ if ch := s[i]; !isAlpha(ch) && !isDigit(ch) && !slices.Contains([]byte("+/="), ch) {
+ return "", s, false
+ }
+ }
+ return "", s, false
+}
+
+// ParseByteSequence parses a byte sequence from a given HTTP Structured Field
+// Values.
+//
+// The entire HTTP SFV string must consist of a valid byte sequence. It returns
+// the parsed byte sequence and an ok boolean value, indicating success or not.
+//
+// https://www.rfc-editor.org/rfc/rfc9651.html#name-parsing-a-byte-sequence.
+func ParseByteSequence(s string) (parsed []byte, ok bool) {
+ if _, rest, ok := consumeByteSequence(s); !ok || rest != "" {
+ return nil, false
+ }
+ return []byte(s[1 : len(s)-1]), true
+}
+
+// https://www.rfc-editor.org/rfc/rfc9651.html#name-parsing-a-boolean.
+func consumeBoolean(s string) (consumed, rest string, ok bool) {
+ if len(s) >= 2 && (s[:2] == "?0" || s[:2] == "?1") {
+ return s[:2], s[2:], true
+ }
+ return "", s, false
+}
+
+// ParseBoolean parses a boolean from a given HTTP Structured Field Values.
+//
+// The entire HTTP SFV string must consist of a valid boolean. It returns the
+// parsed boolean and an ok boolean value, indicating success or not.
+//
+// https://www.rfc-editor.org/rfc/rfc9651.html#name-parsing-a-boolean.
+func ParseBoolean(s string) (parsed bool, ok bool) {
+ if _, rest, ok := consumeBoolean(s); !ok || rest != "" {
+ return false, false
+ }
+ return s == "?1", true
+}
+
+// https://www.rfc-editor.org/rfc/rfc9651.html#name-parsing-a-date.
+func consumeDate(s string) (consumed, rest string, ok bool) {
+ if len(s) == 0 || s[0] != '@' {
+ return "", s, false
+ }
+ if _, rest, ok = consumeIntegerOrDecimal(s[1:]); !ok {
+ return "", s, ok
+ }
+ consumed = s[:len(s)-len(rest)]
+ if slices.Contains([]byte(consumed), '.') {
+ return "", s, false
+ }
+ return consumed, rest, ok
+}
+
+// ParseDate parses a date from a given HTTP Structured Field Values.
+//
+// The entire HTTP SFV string must consist of a valid date. It returns the
+// parsed date and an ok boolean value, indicating success or not.
+//
+// https://www.rfc-editor.org/rfc/rfc9651.html#name-parsing-a-date.
+func ParseDate(s string) (parsed time.Time, ok bool) {
+ if _, rest, ok := consumeDate(s); !ok || rest != "" {
+ return time.Time{}, false
+ }
+ if n, ok := ParseInteger(s[1:]); !ok {
+ return time.Time{}, false
+ } else {
+ return time.Unix(n, 0), true
+ }
+}
+
+// https://www.rfc-editor.org/rfc/rfc9651.html#name-parsing-a-display-string.
+func consumeDisplayString(s string) (consumed, rest string, ok bool) {
+ // To prevent excessive allocation, especially when input is large, we
+ // maintain a buffer of 4 bytes to keep track of the last rune we
+ // encounter. This way, we can validate that the display string conforms to
+ // UTF-8 without actually building the whole string.
+ var lastRune [4]byte
+ var runeLen int
+ isPartOfValidRune := func(ch byte) bool {
+ lastRune[runeLen] = ch
+ runeLen++
+ if utf8.FullRune(lastRune[:runeLen]) {
+ r, s := utf8.DecodeRune(lastRune[:runeLen])
+ if r == utf8.RuneError {
+ return false
+ }
+ copy(lastRune[:], lastRune[s:runeLen])
+ runeLen -= s
+ return true
+ }
+ return runeLen <= 4
+ }
+
+ if len(s) <= 1 || s[:2] != `%"` {
+ return "", s, false
+ }
+ i := 2
+ for i < len(s) {
+ ch := s[i]
+ if !isVChar(ch) && !isSP(ch) {
+ return "", s, false
+ }
+ switch ch {
+ case '"':
+ if runeLen > 0 {
+ return "", s, false
+ }
+ return s[:i+1], s[i+1:], true
+ case '%':
+ if i+2 >= len(s) {
+ return "", s, false
+ }
+ if ch, ok = decOctetHex(s[i+1], s[i+2]); !ok {
+ return "", s, ok
+ }
+ if ok = isPartOfValidRune(ch); !ok {
+ return "", s, ok
+ }
+ i += 3
+ default:
+ if ok = isPartOfValidRune(ch); !ok {
+ return "", s, ok
+ }
+ i++
+ }
+ }
+ return "", s, false
+}
+
+// ParseDisplayString parses a display string from a given HTTP Structured
+// Field Values.
+//
+// The entire HTTP SFV string must consist of a valid display string. It
+// returns the parsed display string and an ok boolean value, indicating
+// success or not.
+//
+// https://www.rfc-editor.org/rfc/rfc9651.html#name-parsing-a-display-string.
+func ParseDisplayString(s string) (parsed string, ok bool) {
+ if _, rest, ok := consumeDisplayString(s); !ok || rest != "" {
+ return "", false
+ }
+ // consumeDisplayString() already validates that we have a valid display
+ // string. Therefore, we can just construct the display string, without
+ // validating it again.
+ s = s[2 : len(s)-1]
+ var b strings.Builder
+ for i := 0; i < len(s); {
+ if s[i] == '%' {
+ decoded, _ := decOctetHex(s[i+1], s[i+2])
+ b.WriteByte(decoded)
+ i += 3
+ continue
+ }
+ b.WriteByte(s[i])
+ i++
+ }
+ return b.String(), true
+}
+
+// https://www.rfc-editor.org/rfc/rfc9651.html#parse-bare-item.
+func consumeBareItem(s string) (consumed, rest string, ok bool) {
+ if len(s) == 0 {
+ return "", s, false
+ }
+ ch := s[0]
+ switch {
+ case ch == '-' || isDigit(ch):
+ return consumeIntegerOrDecimal(s)
+ case ch == '"':
+ return consumeString(s)
+ case ch == '*' || isAlpha(ch):
+ return consumeToken(s)
+ case ch == ':':
+ return consumeByteSequence(s)
+ case ch == '?':
+ return consumeBoolean(s)
+ case ch == '@':
+ return consumeDate(s)
+ case ch == '%':
+ return consumeDisplayString(s)
+ default:
+ return "", s, false
+ }
+}
diff --git a/vendor/golang.org/x/sys/plan9/syscall_plan9.go b/vendor/golang.org/x/sys/plan9/syscall_plan9.go
index d079d811..76191223 100644
--- a/vendor/golang.org/x/sys/plan9/syscall_plan9.go
+++ b/vendor/golang.org/x/sys/plan9/syscall_plan9.go
@@ -19,13 +19,7 @@ import (
// A Note is a string describing a process note.
// It implements the os.Signal interface.
-type Note string
-
-func (n Note) Signal() {}
-
-func (n Note) String() string {
- return string(n)
-}
+type Note = syscall.Note
var (
Stdin = 0
diff --git a/vendor/golang.org/x/sys/unix/ioctl_signed.go b/vendor/golang.org/x/sys/unix/ioctl_signed.go
index 5b0759bd..be0f3fba 100644
--- a/vendor/golang.org/x/sys/unix/ioctl_signed.go
+++ b/vendor/golang.org/x/sys/unix/ioctl_signed.go
@@ -6,9 +6,7 @@
package unix
-import (
- "unsafe"
-)
+import "unsafe"
// ioctl itself should not be exposed directly, but additional get/set
// functions for specific types are permissible.
@@ -28,6 +26,13 @@ func IoctlSetPointerInt(fd int, req int, value int) error {
return ioctlPtr(fd, req, unsafe.Pointer(&v))
}
+// IoctlSetString performs an ioctl operation which sets a string value
+// on fd, using the specified request number.
+func IoctlSetString(fd int, req int, value string) error {
+ bs := append([]byte(value), 0)
+ return ioctlPtr(fd, req, unsafe.Pointer(&bs[0]))
+}
+
// IoctlSetWinsize performs an ioctl on fd with a *Winsize argument.
//
// To change fd's window size, the req argument should be TIOCSWINSZ.
diff --git a/vendor/golang.org/x/sys/unix/ioctl_unsigned.go b/vendor/golang.org/x/sys/unix/ioctl_unsigned.go
index 20f470b9..f0c28213 100644
--- a/vendor/golang.org/x/sys/unix/ioctl_unsigned.go
+++ b/vendor/golang.org/x/sys/unix/ioctl_unsigned.go
@@ -6,9 +6,7 @@
package unix
-import (
- "unsafe"
-)
+import "unsafe"
// ioctl itself should not be exposed directly, but additional get/set
// functions for specific types are permissible.
@@ -28,6 +26,13 @@ func IoctlSetPointerInt(fd int, req uint, value int) error {
return ioctlPtr(fd, req, unsafe.Pointer(&v))
}
+// IoctlSetString performs an ioctl operation which sets a string value
+// on fd, using the specified request number.
+func IoctlSetString(fd int, req uint, value string) error {
+ bs := append([]byte(value), 0)
+ return ioctlPtr(fd, req, unsafe.Pointer(&bs[0]))
+}
+
// IoctlSetWinsize performs an ioctl on fd with a *Winsize argument.
//
// To change fd's window size, the req argument should be TIOCSWINSZ.
diff --git a/vendor/golang.org/x/sys/unix/syscall_solaris.go b/vendor/golang.org/x/sys/unix/syscall_solaris.go
index 18a3d9bd..a6a2ea0c 100644
--- a/vendor/golang.org/x/sys/unix/syscall_solaris.go
+++ b/vendor/golang.org/x/sys/unix/syscall_solaris.go
@@ -1052,14 +1052,6 @@ func IoctlSetIntRetInt(fd int, req int, arg int) (int, error) {
return ioctlRet(fd, req, uintptr(arg))
}
-func IoctlSetString(fd int, req int, val string) error {
- bs := make([]byte, len(val)+1)
- copy(bs[:len(bs)-1], val)
- err := ioctlPtr(fd, req, unsafe.Pointer(&bs[0]))
- runtime.KeepAlive(&bs[0])
- return err
-}
-
// Lifreq Helpers
func (l *Lifreq) SetName(name string) error {
diff --git a/vendor/golang.org/x/sys/unix/syscall_unix.go b/vendor/golang.org/x/sys/unix/syscall_unix.go
index 4e92e5aa..de6fccf9 100644
--- a/vendor/golang.org/x/sys/unix/syscall_unix.go
+++ b/vendor/golang.org/x/sys/unix/syscall_unix.go
@@ -367,7 +367,9 @@ func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from
iov[0].SetLen(len(p))
}
var rsa RawSockaddrAny
- n, oobn, recvflags, err = recvmsgRaw(fd, iov[:], oob, flags, &rsa)
+ if n, oobn, recvflags, err = recvmsgRaw(fd, iov[:], oob, flags, &rsa); err != nil {
+ return
+ }
// source address is only specified if the socket is unconnected
if rsa.Addr.Family != AF_UNSPEC {
from, err = anyToSockaddr(fd, &rsa)
@@ -389,8 +391,10 @@ func RecvmsgBuffers(fd int, buffers [][]byte, oob []byte, flags int) (n, oobn in
}
}
var rsa RawSockaddrAny
- n, oobn, recvflags, err = recvmsgRaw(fd, iov, oob, flags, &rsa)
- if err == nil && rsa.Addr.Family != AF_UNSPEC {
+ if n, oobn, recvflags, err = recvmsgRaw(fd, iov, oob, flags, &rsa); err != nil {
+ return
+ }
+ if rsa.Addr.Family != AF_UNSPEC {
from, err = anyToSockaddr(fd, &rsa)
}
return
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux.go b/vendor/golang.org/x/sys/unix/ztypes_linux.go
index c1a46701..45476a73 100644
--- a/vendor/golang.org/x/sys/unix/ztypes_linux.go
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux.go
@@ -593,110 +593,115 @@ const (
)
const (
- NDA_UNSPEC = 0x0
- NDA_DST = 0x1
- NDA_LLADDR = 0x2
- NDA_CACHEINFO = 0x3
- NDA_PROBES = 0x4
- NDA_VLAN = 0x5
- NDA_PORT = 0x6
- NDA_VNI = 0x7
- NDA_IFINDEX = 0x8
- NDA_MASTER = 0x9
- NDA_LINK_NETNSID = 0xa
- NDA_SRC_VNI = 0xb
- NTF_USE = 0x1
- NTF_SELF = 0x2
- NTF_MASTER = 0x4
- NTF_PROXY = 0x8
- NTF_EXT_LEARNED = 0x10
- NTF_OFFLOADED = 0x20
- NTF_ROUTER = 0x80
- NUD_INCOMPLETE = 0x1
- NUD_REACHABLE = 0x2
- NUD_STALE = 0x4
- NUD_DELAY = 0x8
- NUD_PROBE = 0x10
- NUD_FAILED = 0x20
- NUD_NOARP = 0x40
- NUD_PERMANENT = 0x80
- NUD_NONE = 0x0
- IFA_UNSPEC = 0x0
- IFA_ADDRESS = 0x1
- IFA_LOCAL = 0x2
- IFA_LABEL = 0x3
- IFA_BROADCAST = 0x4
- IFA_ANYCAST = 0x5
- IFA_CACHEINFO = 0x6
- IFA_MULTICAST = 0x7
- IFA_FLAGS = 0x8
- IFA_RT_PRIORITY = 0x9
- IFA_TARGET_NETNSID = 0xa
- IFAL_LABEL = 0x2
- IFAL_ADDRESS = 0x1
- RT_SCOPE_UNIVERSE = 0x0
- RT_SCOPE_SITE = 0xc8
- RT_SCOPE_LINK = 0xfd
- RT_SCOPE_HOST = 0xfe
- RT_SCOPE_NOWHERE = 0xff
- RT_TABLE_UNSPEC = 0x0
- RT_TABLE_COMPAT = 0xfc
- RT_TABLE_DEFAULT = 0xfd
- RT_TABLE_MAIN = 0xfe
- RT_TABLE_LOCAL = 0xff
- RT_TABLE_MAX = 0xffffffff
- RTA_UNSPEC = 0x0
- RTA_DST = 0x1
- RTA_SRC = 0x2
- RTA_IIF = 0x3
- RTA_OIF = 0x4
- RTA_GATEWAY = 0x5
- RTA_PRIORITY = 0x6
- RTA_PREFSRC = 0x7
- RTA_METRICS = 0x8
- RTA_MULTIPATH = 0x9
- RTA_FLOW = 0xb
- RTA_CACHEINFO = 0xc
- RTA_TABLE = 0xf
- RTA_MARK = 0x10
- RTA_MFC_STATS = 0x11
- RTA_VIA = 0x12
- RTA_NEWDST = 0x13
- RTA_PREF = 0x14
- RTA_ENCAP_TYPE = 0x15
- RTA_ENCAP = 0x16
- RTA_EXPIRES = 0x17
- RTA_PAD = 0x18
- RTA_UID = 0x19
- RTA_TTL_PROPAGATE = 0x1a
- RTA_IP_PROTO = 0x1b
- RTA_SPORT = 0x1c
- RTA_DPORT = 0x1d
- RTN_UNSPEC = 0x0
- RTN_UNICAST = 0x1
- RTN_LOCAL = 0x2
- RTN_BROADCAST = 0x3
- RTN_ANYCAST = 0x4
- RTN_MULTICAST = 0x5
- RTN_BLACKHOLE = 0x6
- RTN_UNREACHABLE = 0x7
- RTN_PROHIBIT = 0x8
- RTN_THROW = 0x9
- RTN_NAT = 0xa
- RTN_XRESOLVE = 0xb
- SizeofNlMsghdr = 0x10
- SizeofNlMsgerr = 0x14
- SizeofRtGenmsg = 0x1
- SizeofNlAttr = 0x4
- SizeofRtAttr = 0x4
- SizeofIfInfomsg = 0x10
- SizeofIfAddrmsg = 0x8
- SizeofIfAddrlblmsg = 0xc
- SizeofIfaCacheinfo = 0x10
- SizeofRtMsg = 0xc
- SizeofRtNexthop = 0x8
- SizeofNdUseroptmsg = 0x10
- SizeofNdMsg = 0xc
+ NDA_UNSPEC = 0x0
+ NDA_DST = 0x1
+ NDA_LLADDR = 0x2
+ NDA_CACHEINFO = 0x3
+ NDA_PROBES = 0x4
+ NDA_VLAN = 0x5
+ NDA_PORT = 0x6
+ NDA_VNI = 0x7
+ NDA_IFINDEX = 0x8
+ NDA_MASTER = 0x9
+ NDA_LINK_NETNSID = 0xa
+ NDA_SRC_VNI = 0xb
+ NTF_USE = 0x1
+ NTF_SELF = 0x2
+ NTF_MASTER = 0x4
+ NTF_PROXY = 0x8
+ NTF_EXT_LEARNED = 0x10
+ NTF_OFFLOADED = 0x20
+ NTF_ROUTER = 0x80
+ NUD_INCOMPLETE = 0x1
+ NUD_REACHABLE = 0x2
+ NUD_STALE = 0x4
+ NUD_DELAY = 0x8
+ NUD_PROBE = 0x10
+ NUD_FAILED = 0x20
+ NUD_NOARP = 0x40
+ NUD_PERMANENT = 0x80
+ NUD_NONE = 0x0
+ IFA_UNSPEC = 0x0
+ IFA_ADDRESS = 0x1
+ IFA_LOCAL = 0x2
+ IFA_LABEL = 0x3
+ IFA_BROADCAST = 0x4
+ IFA_ANYCAST = 0x5
+ IFA_CACHEINFO = 0x6
+ IFA_MULTICAST = 0x7
+ IFA_FLAGS = 0x8
+ IFA_RT_PRIORITY = 0x9
+ IFA_TARGET_NETNSID = 0xa
+ IFAL_LABEL = 0x2
+ IFAL_ADDRESS = 0x1
+ RT_SCOPE_UNIVERSE = 0x0
+ RT_SCOPE_SITE = 0xc8
+ RT_SCOPE_LINK = 0xfd
+ RT_SCOPE_HOST = 0xfe
+ RT_SCOPE_NOWHERE = 0xff
+ RT_TABLE_UNSPEC = 0x0
+ RT_TABLE_COMPAT = 0xfc
+ RT_TABLE_DEFAULT = 0xfd
+ RT_TABLE_MAIN = 0xfe
+ RT_TABLE_LOCAL = 0xff
+ RT_TABLE_MAX = 0xffffffff
+ RTA_UNSPEC = 0x0
+ RTA_DST = 0x1
+ RTA_SRC = 0x2
+ RTA_IIF = 0x3
+ RTA_OIF = 0x4
+ RTA_GATEWAY = 0x5
+ RTA_PRIORITY = 0x6
+ RTA_PREFSRC = 0x7
+ RTA_METRICS = 0x8
+ RTA_MULTIPATH = 0x9
+ RTA_FLOW = 0xb
+ RTA_CACHEINFO = 0xc
+ RTA_TABLE = 0xf
+ RTA_MARK = 0x10
+ RTA_MFC_STATS = 0x11
+ RTA_VIA = 0x12
+ RTA_NEWDST = 0x13
+ RTA_PREF = 0x14
+ RTA_ENCAP_TYPE = 0x15
+ RTA_ENCAP = 0x16
+ RTA_EXPIRES = 0x17
+ RTA_PAD = 0x18
+ RTA_UID = 0x19
+ RTA_TTL_PROPAGATE = 0x1a
+ RTA_IP_PROTO = 0x1b
+ RTA_SPORT = 0x1c
+ RTA_DPORT = 0x1d
+ RTN_UNSPEC = 0x0
+ RTN_UNICAST = 0x1
+ RTN_LOCAL = 0x2
+ RTN_BROADCAST = 0x3
+ RTN_ANYCAST = 0x4
+ RTN_MULTICAST = 0x5
+ RTN_BLACKHOLE = 0x6
+ RTN_UNREACHABLE = 0x7
+ RTN_PROHIBIT = 0x8
+ RTN_THROW = 0x9
+ RTN_NAT = 0xa
+ RTN_XRESOLVE = 0xb
+ PREFIX_UNSPEC = 0x0
+ PREFIX_ADDRESS = 0x1
+ PREFIX_CACHEINFO = 0x2
+ SizeofNlMsghdr = 0x10
+ SizeofNlMsgerr = 0x14
+ SizeofRtGenmsg = 0x1
+ SizeofNlAttr = 0x4
+ SizeofRtAttr = 0x4
+ SizeofIfInfomsg = 0x10
+ SizeofPrefixmsg = 0xc
+ SizeofPrefixCacheinfo = 0x8
+ SizeofIfAddrmsg = 0x8
+ SizeofIfAddrlblmsg = 0xc
+ SizeofIfaCacheinfo = 0x10
+ SizeofRtMsg = 0xc
+ SizeofRtNexthop = 0x8
+ SizeofNdUseroptmsg = 0x10
+ SizeofNdMsg = 0xc
)
type NlMsghdr struct {
@@ -735,6 +740,22 @@ type IfInfomsg struct {
Change uint32
}
+type Prefixmsg struct {
+ Family uint8
+ Pad1 uint8
+ Pad2 uint16
+ Ifindex int32
+ Type uint8
+ Len uint8
+ Flags uint8
+ Pad3 uint8
+}
+
+type PrefixCacheinfo struct {
+ Preferred_time uint32
+ Valid_time uint32
+}
+
type IfAddrmsg struct {
Family uint8
Prefixlen uint8
diff --git a/vendor/golang.org/x/sys/windows/aliases.go b/vendor/golang.org/x/sys/windows/aliases.go
index 16f90560..96317966 100644
--- a/vendor/golang.org/x/sys/windows/aliases.go
+++ b/vendor/golang.org/x/sys/windows/aliases.go
@@ -8,5 +8,6 @@ package windows
import "syscall"
+type Signal = syscall.Signal
type Errno = syscall.Errno
type SysProcAttr = syscall.SysProcAttr
diff --git a/vendor/golang.org/x/sys/windows/syscall_windows.go b/vendor/golang.org/x/sys/windows/syscall_windows.go
index 69439df2..d7664365 100644
--- a/vendor/golang.org/x/sys/windows/syscall_windows.go
+++ b/vendor/golang.org/x/sys/windows/syscall_windows.go
@@ -900,6 +900,7 @@ const socket_error = uintptr(^uint32(0))
//sys NotifyRouteChange2(family uint16, callback uintptr, callerContext unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode error) = iphlpapi.NotifyRouteChange2
//sys NotifyUnicastIpAddressChange(family uint16, callback uintptr, callerContext unsafe.Pointer, initialNotification bool, notificationHandle *Handle) (errcode error) = iphlpapi.NotifyUnicastIpAddressChange
//sys CancelMibChangeNotify2(notificationHandle Handle) (errcode error) = iphlpapi.CancelMibChangeNotify2
+//sys IsProcessorFeaturePresent(ProcessorFeature uint32) (ret bool) = kernel32.IsProcessorFeaturePresent
// For testing: clients can set this flag to force
// creation of IPv6 sockets to return EAFNOSUPPORT.
@@ -1489,20 +1490,6 @@ func Getgid() (gid int) { return -1 }
func Getegid() (egid int) { return -1 }
func Getgroups() (gids []int, err error) { return nil, syscall.EWINDOWS }
-type Signal int
-
-func (s Signal) Signal() {}
-
-func (s Signal) String() string {
- if 0 <= s && int(s) < len(signals) {
- str := signals[s]
- if str != "" {
- return str
- }
- }
- return "signal " + itoa(int(s))
-}
-
func LoadCreateSymbolicLink() error {
return procCreateSymbolicLinkW.Find()
}
diff --git a/vendor/golang.org/x/sys/windows/types_windows.go b/vendor/golang.org/x/sys/windows/types_windows.go
index 6e4f50eb..d5658a13 100644
--- a/vendor/golang.org/x/sys/windows/types_windows.go
+++ b/vendor/golang.org/x/sys/windows/types_windows.go
@@ -3938,3 +3938,88 @@ const (
MOUSE_EVENT = 0x0002
WINDOW_BUFFER_SIZE_EVENT = 0x0004
)
+
+// The processor features to be tested for IsProcessorFeaturePresent, see
+// https://learn.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-isprocessorfeaturepresent
+const (
+ PF_ARM_64BIT_LOADSTORE_ATOMIC = 25
+ PF_ARM_DIVIDE_INSTRUCTION_AVAILABLE = 24
+ PF_ARM_EXTERNAL_CACHE_AVAILABLE = 26
+ PF_ARM_FMAC_INSTRUCTIONS_AVAILABLE = 27
+ PF_ARM_VFP_32_REGISTERS_AVAILABLE = 18
+ PF_3DNOW_INSTRUCTIONS_AVAILABLE = 7
+ PF_CHANNELS_ENABLED = 16
+ PF_COMPARE_EXCHANGE_DOUBLE = 2
+ PF_COMPARE_EXCHANGE128 = 14
+ PF_COMPARE64_EXCHANGE128 = 15
+ PF_FASTFAIL_AVAILABLE = 23
+ PF_FLOATING_POINT_EMULATED = 1
+ PF_FLOATING_POINT_PRECISION_ERRATA = 0
+ PF_MMX_INSTRUCTIONS_AVAILABLE = 3
+ PF_NX_ENABLED = 12
+ PF_PAE_ENABLED = 9
+ PF_RDTSC_INSTRUCTION_AVAILABLE = 8
+ PF_RDWRFSGSBASE_AVAILABLE = 22
+ PF_SECOND_LEVEL_ADDRESS_TRANSLATION = 20
+ PF_SSE3_INSTRUCTIONS_AVAILABLE = 13
+ PF_SSSE3_INSTRUCTIONS_AVAILABLE = 36
+ PF_SSE4_1_INSTRUCTIONS_AVAILABLE = 37
+ PF_SSE4_2_INSTRUCTIONS_AVAILABLE = 38
+ PF_AVX_INSTRUCTIONS_AVAILABLE = 39
+ PF_AVX2_INSTRUCTIONS_AVAILABLE = 40
+ PF_AVX512F_INSTRUCTIONS_AVAILABLE = 41
+ PF_VIRT_FIRMWARE_ENABLED = 21
+ PF_XMMI_INSTRUCTIONS_AVAILABLE = 6
+ PF_XMMI64_INSTRUCTIONS_AVAILABLE = 10
+ PF_XSAVE_ENABLED = 17
+ PF_ARM_V8_INSTRUCTIONS_AVAILABLE = 29
+ PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE = 30
+ PF_ARM_V8_CRC32_INSTRUCTIONS_AVAILABLE = 31
+ PF_ARM_V81_ATOMIC_INSTRUCTIONS_AVAILABLE = 34
+ PF_ARM_V82_DP_INSTRUCTIONS_AVAILABLE = 43
+ PF_ARM_V83_JSCVT_INSTRUCTIONS_AVAILABLE = 44
+ PF_ARM_V83_LRCPC_INSTRUCTIONS_AVAILABLE = 45
+ PF_ARM_SVE_INSTRUCTIONS_AVAILABLE = 46
+ PF_ARM_SVE2_INSTRUCTIONS_AVAILABLE = 47
+ PF_ARM_SVE2_1_INSTRUCTIONS_AVAILABLE = 48
+ PF_ARM_SVE_AES_INSTRUCTIONS_AVAILABLE = 49
+ PF_ARM_SVE_PMULL128_INSTRUCTIONS_AVAILABLE = 50
+ PF_ARM_SVE_BITPERM_INSTRUCTIONS_AVAILABLE = 51
+ PF_ARM_SVE_BF16_INSTRUCTIONS_AVAILABLE = 52
+ PF_ARM_SVE_EBF16_INSTRUCTIONS_AVAILABLE = 53
+ PF_ARM_SVE_B16B16_INSTRUCTIONS_AVAILABLE = 54
+ PF_ARM_SVE_SHA3_INSTRUCTIONS_AVAILABLE = 55
+ PF_ARM_SVE_SM4_INSTRUCTIONS_AVAILABLE = 56
+ PF_ARM_SVE_I8MM_INSTRUCTIONS_AVAILABLE = 57
+ PF_ARM_SVE_F32MM_INSTRUCTIONS_AVAILABLE = 58
+ PF_ARM_SVE_F64MM_INSTRUCTIONS_AVAILABLE = 59
+ PF_BMI2_INSTRUCTIONS_AVAILABLE = 60
+ PF_MOVDIR64B_INSTRUCTION_AVAILABLE = 61
+ PF_ARM_LSE2_AVAILABLE = 62
+ PF_ARM_SHA3_INSTRUCTIONS_AVAILABLE = 64
+ PF_ARM_SHA512_INSTRUCTIONS_AVAILABLE = 65
+ PF_ARM_V82_I8MM_INSTRUCTIONS_AVAILABLE = 66
+ PF_ARM_V82_FP16_INSTRUCTIONS_AVAILABLE = 67
+ PF_ARM_V86_BF16_INSTRUCTIONS_AVAILABLE = 68
+ PF_ARM_V86_EBF16_INSTRUCTIONS_AVAILABLE = 69
+ PF_ARM_SME_INSTRUCTIONS_AVAILABLE = 70
+ PF_ARM_SME2_INSTRUCTIONS_AVAILABLE = 71
+ PF_ARM_SME2_1_INSTRUCTIONS_AVAILABLE = 72
+ PF_ARM_SME2_2_INSTRUCTIONS_AVAILABLE = 73
+ PF_ARM_SME_AES_INSTRUCTIONS_AVAILABLE = 74
+ PF_ARM_SME_SBITPERM_INSTRUCTIONS_AVAILABLE = 75
+ PF_ARM_SME_SF8MM4_INSTRUCTIONS_AVAILABLE = 76
+ PF_ARM_SME_SF8MM8_INSTRUCTIONS_AVAILABLE = 77
+ PF_ARM_SME_SF8DP2_INSTRUCTIONS_AVAILABLE = 78
+ PF_ARM_SME_SF8DP4_INSTRUCTIONS_AVAILABLE = 79
+ PF_ARM_SME_SF8FMA_INSTRUCTIONS_AVAILABLE = 80
+ PF_ARM_SME_F8F32_INSTRUCTIONS_AVAILABLE = 81
+ PF_ARM_SME_F8F16_INSTRUCTIONS_AVAILABLE = 82
+ PF_ARM_SME_F16F16_INSTRUCTIONS_AVAILABLE = 83
+ PF_ARM_SME_B16B16_INSTRUCTIONS_AVAILABLE = 84
+ PF_ARM_SME_F64F64_INSTRUCTIONS_AVAILABLE = 85
+ PF_ARM_SME_I16I64_INSTRUCTIONS_AVAILABLE = 86
+ PF_ARM_SME_LUTv2_INSTRUCTIONS_AVAILABLE = 87
+ PF_ARM_SME_FA64_INSTRUCTIONS_AVAILABLE = 88
+ PF_UMONITOR_INSTRUCTION_AVAILABLE = 89
+)
diff --git a/vendor/golang.org/x/sys/windows/zsyscall_windows.go b/vendor/golang.org/x/sys/windows/zsyscall_windows.go
index f25b7308..fe7a4ea1 100644
--- a/vendor/golang.org/x/sys/windows/zsyscall_windows.go
+++ b/vendor/golang.org/x/sys/windows/zsyscall_windows.go
@@ -320,6 +320,7 @@ var (
procGetVolumePathNamesForVolumeNameW = modkernel32.NewProc("GetVolumePathNamesForVolumeNameW")
procGetWindowsDirectoryW = modkernel32.NewProc("GetWindowsDirectoryW")
procInitializeProcThreadAttributeList = modkernel32.NewProc("InitializeProcThreadAttributeList")
+ procIsProcessorFeaturePresent = modkernel32.NewProc("IsProcessorFeaturePresent")
procIsWow64Process = modkernel32.NewProc("IsWow64Process")
procIsWow64Process2 = modkernel32.NewProc("IsWow64Process2")
procLoadLibraryExW = modkernel32.NewProc("LoadLibraryExW")
@@ -2786,6 +2787,12 @@ func initializeProcThreadAttributeList(attrlist *ProcThreadAttributeList, attrco
return
}
+func IsProcessorFeaturePresent(ProcessorFeature uint32) (ret bool) {
+ r0, _, _ := syscall.SyscallN(procIsProcessorFeaturePresent.Addr(), uintptr(ProcessorFeature))
+ ret = r0 != 0
+ return
+}
+
func IsWow64Process(handle Handle, isWow64 *bool) (err error) {
var _p0 uint32
if *isWow64 {
diff --git a/vendor/golang.org/x/term/terminal.go b/vendor/golang.org/x/term/terminal.go
index 9255449b..6ec537cd 100644
--- a/vendor/golang.org/x/term/terminal.go
+++ b/vendor/golang.org/x/term/terminal.go
@@ -160,7 +160,9 @@ const (
keyEnd
keyDeleteWord
keyDeleteLine
+ keyDelete
keyClearScreen
+ keyTranspose
keyPasteStart
keyPasteEnd
)
@@ -194,6 +196,8 @@ func bytesToKey(b []byte, pasteActive bool) (rune, []byte) {
return keyDeleteLine, b[1:]
case 12: // ^L
return keyClearScreen, b[1:]
+ case 20: // ^T
+ return keyTranspose, b[1:]
case 23: // ^W
return keyDeleteWord, b[1:]
case 14: // ^N
@@ -228,6 +232,10 @@ func bytesToKey(b []byte, pasteActive bool) (rune, []byte) {
}
}
+ if !pasteActive && len(b) >= 4 && b[0] == keyEscape && b[1] == '[' && b[2] == '3' && b[3] == '~' {
+ return keyDelete, b[4:]
+ }
+
if !pasteActive && len(b) >= 6 && b[0] == keyEscape && b[1] == '[' && b[2] == '1' && b[3] == ';' && b[4] == '3' {
switch b[5] {
case 'C':
@@ -590,7 +598,7 @@ func (t *Terminal) handleKey(key rune) (line string, ok bool) {
}
t.line = t.line[:t.pos]
t.moveCursorToPos(t.pos)
- case keyCtrlD:
+ case keyCtrlD, keyDelete:
// Erase the character under the current position.
// The EOF case when the line is empty is handled in
// readLine().
@@ -600,6 +608,24 @@ func (t *Terminal) handleKey(key rune) (line string, ok bool) {
}
case keyCtrlU:
t.eraseNPreviousChars(t.pos)
+ case keyTranspose:
+ // This transposes the two characters around the cursor and advances the cursor. Best-effort.
+ if len(t.line) < 2 || t.pos < 1 {
+ return
+ }
+ swap := t.pos
+ if swap == len(t.line) {
+ swap-- // special: at end of line, swap previous two chars
+ }
+ t.line[swap-1], t.line[swap] = t.line[swap], t.line[swap-1]
+ if t.pos < len(t.line) {
+ t.pos++
+ }
+ if t.echo {
+ t.moveCursorToPos(swap - 1)
+ t.writeLine(t.line[swap-1:])
+ t.moveCursorToPos(t.pos)
+ }
case keyClearScreen:
// Erases the screen and moves the cursor to the home position.
t.queue([]rune("\x1b[2J\x1b[H"))
diff --git a/vendor/golang.org/x/text/secure/bidirule/bidirule.go b/vendor/golang.org/x/text/secure/bidirule/bidirule.go
index e2b70f76..53863273 100644
--- a/vendor/golang.org/x/text/secure/bidirule/bidirule.go
+++ b/vendor/golang.org/x/text/secure/bidirule/bidirule.go
@@ -334,3 +334,7 @@ func (t *Transformer) advanceString(s string) (n int, ok bool) {
}
return n, true
}
+
+func (t *Transformer) isFinal() bool {
+ return t.state == ruleLTRFinal || t.state == ruleRTLFinal || t.state == ruleInitial
+}
diff --git a/vendor/golang.org/x/text/secure/bidirule/bidirule10.0.0.go b/vendor/golang.org/x/text/secure/bidirule/bidirule10.0.0.go
deleted file mode 100644
index 784bb880..00000000
--- a/vendor/golang.org/x/text/secure/bidirule/bidirule10.0.0.go
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright 2016 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.
-
-//go:build go1.10
-
-package bidirule
-
-func (t *Transformer) isFinal() bool {
- return t.state == ruleLTRFinal || t.state == ruleRTLFinal || t.state == ruleInitial
-}
diff --git a/vendor/golang.org/x/text/secure/bidirule/bidirule9.0.0.go b/vendor/golang.org/x/text/secure/bidirule/bidirule9.0.0.go
deleted file mode 100644
index 8e1e9439..00000000
--- a/vendor/golang.org/x/text/secure/bidirule/bidirule9.0.0.go
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright 2016 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.
-
-//go:build !go1.10
-
-package bidirule
-
-func (t *Transformer) isFinal() bool {
- if !t.isRTL() {
- return true
- }
- return t.state == ruleLTRFinal || t.state == ruleRTLFinal || t.state == ruleInitial
-}
diff --git a/vendor/golang.org/x/text/unicode/bidi/tables10.0.0.go b/vendor/golang.org/x/text/unicode/bidi/tables10.0.0.go
deleted file mode 100644
index d2bd7118..00000000
--- a/vendor/golang.org/x/text/unicode/bidi/tables10.0.0.go
+++ /dev/null
@@ -1,1815 +0,0 @@
-// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
-
-//go:build go1.10 && !go1.13
-
-package bidi
-
-// UnicodeVersion is the Unicode version from which the tables in this package are derived.
-const UnicodeVersion = "10.0.0"
-
-// xorMasks contains masks to be xor-ed with brackets to get the reverse
-// version.
-var xorMasks = []int32{ // 8 elements
- 0, 1, 6, 7, 3, 15, 29, 63,
-} // Size: 56 bytes
-
-// lookup returns the trie value for the first UTF-8 encoding in s and
-// the width in bytes of this encoding. The size will be 0 if s does not
-// hold enough bytes to complete the encoding. len(s) must be greater than 0.
-func (t *bidiTrie) lookup(s []byte) (v uint8, sz int) {
- c0 := s[0]
- switch {
- case c0 < 0x80: // is ASCII
- return bidiValues[c0], 1
- case c0 < 0xC2:
- return 0, 1 // Illegal UTF-8: not a starter, not ASCII.
- case c0 < 0xE0: // 2-byte UTF-8
- if len(s) < 2 {
- return 0, 0
- }
- i := bidiIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c1), 2
- case c0 < 0xF0: // 3-byte UTF-8
- if len(s) < 3 {
- return 0, 0
- }
- i := bidiIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = bidiIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c2), 3
- case c0 < 0xF8: // 4-byte UTF-8
- if len(s) < 4 {
- return 0, 0
- }
- i := bidiIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = bidiIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- o = uint32(i)<<6 + uint32(c2)
- i = bidiIndex[o]
- c3 := s[3]
- if c3 < 0x80 || 0xC0 <= c3 {
- return 0, 3 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c3), 4
- }
- // Illegal rune
- return 0, 1
-}
-
-// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.
-// s must start with a full and valid UTF-8 encoded rune.
-func (t *bidiTrie) lookupUnsafe(s []byte) uint8 {
- c0 := s[0]
- if c0 < 0x80 { // is ASCII
- return bidiValues[c0]
- }
- i := bidiIndex[c0]
- if c0 < 0xE0 { // 2-byte UTF-8
- return t.lookupValue(uint32(i), s[1])
- }
- i = bidiIndex[uint32(i)<<6+uint32(s[1])]
- if c0 < 0xF0 { // 3-byte UTF-8
- return t.lookupValue(uint32(i), s[2])
- }
- i = bidiIndex[uint32(i)<<6+uint32(s[2])]
- if c0 < 0xF8 { // 4-byte UTF-8
- return t.lookupValue(uint32(i), s[3])
- }
- return 0
-}
-
-// lookupString returns the trie value for the first UTF-8 encoding in s and
-// the width in bytes of this encoding. The size will be 0 if s does not
-// hold enough bytes to complete the encoding. len(s) must be greater than 0.
-func (t *bidiTrie) lookupString(s string) (v uint8, sz int) {
- c0 := s[0]
- switch {
- case c0 < 0x80: // is ASCII
- return bidiValues[c0], 1
- case c0 < 0xC2:
- return 0, 1 // Illegal UTF-8: not a starter, not ASCII.
- case c0 < 0xE0: // 2-byte UTF-8
- if len(s) < 2 {
- return 0, 0
- }
- i := bidiIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c1), 2
- case c0 < 0xF0: // 3-byte UTF-8
- if len(s) < 3 {
- return 0, 0
- }
- i := bidiIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = bidiIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c2), 3
- case c0 < 0xF8: // 4-byte UTF-8
- if len(s) < 4 {
- return 0, 0
- }
- i := bidiIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = bidiIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- o = uint32(i)<<6 + uint32(c2)
- i = bidiIndex[o]
- c3 := s[3]
- if c3 < 0x80 || 0xC0 <= c3 {
- return 0, 3 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c3), 4
- }
- // Illegal rune
- return 0, 1
-}
-
-// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.
-// s must start with a full and valid UTF-8 encoded rune.
-func (t *bidiTrie) lookupStringUnsafe(s string) uint8 {
- c0 := s[0]
- if c0 < 0x80 { // is ASCII
- return bidiValues[c0]
- }
- i := bidiIndex[c0]
- if c0 < 0xE0 { // 2-byte UTF-8
- return t.lookupValue(uint32(i), s[1])
- }
- i = bidiIndex[uint32(i)<<6+uint32(s[1])]
- if c0 < 0xF0 { // 3-byte UTF-8
- return t.lookupValue(uint32(i), s[2])
- }
- i = bidiIndex[uint32(i)<<6+uint32(s[2])]
- if c0 < 0xF8 { // 4-byte UTF-8
- return t.lookupValue(uint32(i), s[3])
- }
- return 0
-}
-
-// bidiTrie. Total size: 16128 bytes (15.75 KiB). Checksum: 8122d83e461996f.
-type bidiTrie struct{}
-
-func newBidiTrie(i int) *bidiTrie {
- return &bidiTrie{}
-}
-
-// lookupValue determines the type of block n and looks up the value for b.
-func (t *bidiTrie) lookupValue(n uint32, b byte) uint8 {
- switch {
- default:
- return uint8(bidiValues[n<<6+uint32(b)])
- }
-}
-
-// bidiValues: 228 blocks, 14592 entries, 14592 bytes
-// The third block is the zero block.
-var bidiValues = [14592]uint8{
- // Block 0x0, offset 0x0
- 0x00: 0x000b, 0x01: 0x000b, 0x02: 0x000b, 0x03: 0x000b, 0x04: 0x000b, 0x05: 0x000b,
- 0x06: 0x000b, 0x07: 0x000b, 0x08: 0x000b, 0x09: 0x0008, 0x0a: 0x0007, 0x0b: 0x0008,
- 0x0c: 0x0009, 0x0d: 0x0007, 0x0e: 0x000b, 0x0f: 0x000b, 0x10: 0x000b, 0x11: 0x000b,
- 0x12: 0x000b, 0x13: 0x000b, 0x14: 0x000b, 0x15: 0x000b, 0x16: 0x000b, 0x17: 0x000b,
- 0x18: 0x000b, 0x19: 0x000b, 0x1a: 0x000b, 0x1b: 0x000b, 0x1c: 0x0007, 0x1d: 0x0007,
- 0x1e: 0x0007, 0x1f: 0x0008, 0x20: 0x0009, 0x21: 0x000a, 0x22: 0x000a, 0x23: 0x0004,
- 0x24: 0x0004, 0x25: 0x0004, 0x26: 0x000a, 0x27: 0x000a, 0x28: 0x003a, 0x29: 0x002a,
- 0x2a: 0x000a, 0x2b: 0x0003, 0x2c: 0x0006, 0x2d: 0x0003, 0x2e: 0x0006, 0x2f: 0x0006,
- 0x30: 0x0002, 0x31: 0x0002, 0x32: 0x0002, 0x33: 0x0002, 0x34: 0x0002, 0x35: 0x0002,
- 0x36: 0x0002, 0x37: 0x0002, 0x38: 0x0002, 0x39: 0x0002, 0x3a: 0x0006, 0x3b: 0x000a,
- 0x3c: 0x000a, 0x3d: 0x000a, 0x3e: 0x000a, 0x3f: 0x000a,
- // Block 0x1, offset 0x40
- 0x40: 0x000a,
- 0x5b: 0x005a, 0x5c: 0x000a, 0x5d: 0x004a,
- 0x5e: 0x000a, 0x5f: 0x000a, 0x60: 0x000a,
- 0x7b: 0x005a,
- 0x7c: 0x000a, 0x7d: 0x004a, 0x7e: 0x000a, 0x7f: 0x000b,
- // Block 0x2, offset 0x80
- // Block 0x3, offset 0xc0
- 0xc0: 0x000b, 0xc1: 0x000b, 0xc2: 0x000b, 0xc3: 0x000b, 0xc4: 0x000b, 0xc5: 0x0007,
- 0xc6: 0x000b, 0xc7: 0x000b, 0xc8: 0x000b, 0xc9: 0x000b, 0xca: 0x000b, 0xcb: 0x000b,
- 0xcc: 0x000b, 0xcd: 0x000b, 0xce: 0x000b, 0xcf: 0x000b, 0xd0: 0x000b, 0xd1: 0x000b,
- 0xd2: 0x000b, 0xd3: 0x000b, 0xd4: 0x000b, 0xd5: 0x000b, 0xd6: 0x000b, 0xd7: 0x000b,
- 0xd8: 0x000b, 0xd9: 0x000b, 0xda: 0x000b, 0xdb: 0x000b, 0xdc: 0x000b, 0xdd: 0x000b,
- 0xde: 0x000b, 0xdf: 0x000b, 0xe0: 0x0006, 0xe1: 0x000a, 0xe2: 0x0004, 0xe3: 0x0004,
- 0xe4: 0x0004, 0xe5: 0x0004, 0xe6: 0x000a, 0xe7: 0x000a, 0xe8: 0x000a, 0xe9: 0x000a,
- 0xeb: 0x000a, 0xec: 0x000a, 0xed: 0x000b, 0xee: 0x000a, 0xef: 0x000a,
- 0xf0: 0x0004, 0xf1: 0x0004, 0xf2: 0x0002, 0xf3: 0x0002, 0xf4: 0x000a,
- 0xf6: 0x000a, 0xf7: 0x000a, 0xf8: 0x000a, 0xf9: 0x0002, 0xfb: 0x000a,
- 0xfc: 0x000a, 0xfd: 0x000a, 0xfe: 0x000a, 0xff: 0x000a,
- // Block 0x4, offset 0x100
- 0x117: 0x000a,
- 0x137: 0x000a,
- // Block 0x5, offset 0x140
- 0x179: 0x000a, 0x17a: 0x000a,
- // Block 0x6, offset 0x180
- 0x182: 0x000a, 0x183: 0x000a, 0x184: 0x000a, 0x185: 0x000a,
- 0x186: 0x000a, 0x187: 0x000a, 0x188: 0x000a, 0x189: 0x000a, 0x18a: 0x000a, 0x18b: 0x000a,
- 0x18c: 0x000a, 0x18d: 0x000a, 0x18e: 0x000a, 0x18f: 0x000a,
- 0x192: 0x000a, 0x193: 0x000a, 0x194: 0x000a, 0x195: 0x000a, 0x196: 0x000a, 0x197: 0x000a,
- 0x198: 0x000a, 0x199: 0x000a, 0x19a: 0x000a, 0x19b: 0x000a, 0x19c: 0x000a, 0x19d: 0x000a,
- 0x19e: 0x000a, 0x19f: 0x000a,
- 0x1a5: 0x000a, 0x1a6: 0x000a, 0x1a7: 0x000a, 0x1a8: 0x000a, 0x1a9: 0x000a,
- 0x1aa: 0x000a, 0x1ab: 0x000a, 0x1ac: 0x000a, 0x1ad: 0x000a, 0x1af: 0x000a,
- 0x1b0: 0x000a, 0x1b1: 0x000a, 0x1b2: 0x000a, 0x1b3: 0x000a, 0x1b4: 0x000a, 0x1b5: 0x000a,
- 0x1b6: 0x000a, 0x1b7: 0x000a, 0x1b8: 0x000a, 0x1b9: 0x000a, 0x1ba: 0x000a, 0x1bb: 0x000a,
- 0x1bc: 0x000a, 0x1bd: 0x000a, 0x1be: 0x000a, 0x1bf: 0x000a,
- // Block 0x7, offset 0x1c0
- 0x1c0: 0x000c, 0x1c1: 0x000c, 0x1c2: 0x000c, 0x1c3: 0x000c, 0x1c4: 0x000c, 0x1c5: 0x000c,
- 0x1c6: 0x000c, 0x1c7: 0x000c, 0x1c8: 0x000c, 0x1c9: 0x000c, 0x1ca: 0x000c, 0x1cb: 0x000c,
- 0x1cc: 0x000c, 0x1cd: 0x000c, 0x1ce: 0x000c, 0x1cf: 0x000c, 0x1d0: 0x000c, 0x1d1: 0x000c,
- 0x1d2: 0x000c, 0x1d3: 0x000c, 0x1d4: 0x000c, 0x1d5: 0x000c, 0x1d6: 0x000c, 0x1d7: 0x000c,
- 0x1d8: 0x000c, 0x1d9: 0x000c, 0x1da: 0x000c, 0x1db: 0x000c, 0x1dc: 0x000c, 0x1dd: 0x000c,
- 0x1de: 0x000c, 0x1df: 0x000c, 0x1e0: 0x000c, 0x1e1: 0x000c, 0x1e2: 0x000c, 0x1e3: 0x000c,
- 0x1e4: 0x000c, 0x1e5: 0x000c, 0x1e6: 0x000c, 0x1e7: 0x000c, 0x1e8: 0x000c, 0x1e9: 0x000c,
- 0x1ea: 0x000c, 0x1eb: 0x000c, 0x1ec: 0x000c, 0x1ed: 0x000c, 0x1ee: 0x000c, 0x1ef: 0x000c,
- 0x1f0: 0x000c, 0x1f1: 0x000c, 0x1f2: 0x000c, 0x1f3: 0x000c, 0x1f4: 0x000c, 0x1f5: 0x000c,
- 0x1f6: 0x000c, 0x1f7: 0x000c, 0x1f8: 0x000c, 0x1f9: 0x000c, 0x1fa: 0x000c, 0x1fb: 0x000c,
- 0x1fc: 0x000c, 0x1fd: 0x000c, 0x1fe: 0x000c, 0x1ff: 0x000c,
- // Block 0x8, offset 0x200
- 0x200: 0x000c, 0x201: 0x000c, 0x202: 0x000c, 0x203: 0x000c, 0x204: 0x000c, 0x205: 0x000c,
- 0x206: 0x000c, 0x207: 0x000c, 0x208: 0x000c, 0x209: 0x000c, 0x20a: 0x000c, 0x20b: 0x000c,
- 0x20c: 0x000c, 0x20d: 0x000c, 0x20e: 0x000c, 0x20f: 0x000c, 0x210: 0x000c, 0x211: 0x000c,
- 0x212: 0x000c, 0x213: 0x000c, 0x214: 0x000c, 0x215: 0x000c, 0x216: 0x000c, 0x217: 0x000c,
- 0x218: 0x000c, 0x219: 0x000c, 0x21a: 0x000c, 0x21b: 0x000c, 0x21c: 0x000c, 0x21d: 0x000c,
- 0x21e: 0x000c, 0x21f: 0x000c, 0x220: 0x000c, 0x221: 0x000c, 0x222: 0x000c, 0x223: 0x000c,
- 0x224: 0x000c, 0x225: 0x000c, 0x226: 0x000c, 0x227: 0x000c, 0x228: 0x000c, 0x229: 0x000c,
- 0x22a: 0x000c, 0x22b: 0x000c, 0x22c: 0x000c, 0x22d: 0x000c, 0x22e: 0x000c, 0x22f: 0x000c,
- 0x234: 0x000a, 0x235: 0x000a,
- 0x23e: 0x000a,
- // Block 0x9, offset 0x240
- 0x244: 0x000a, 0x245: 0x000a,
- 0x247: 0x000a,
- // Block 0xa, offset 0x280
- 0x2b6: 0x000a,
- // Block 0xb, offset 0x2c0
- 0x2c3: 0x000c, 0x2c4: 0x000c, 0x2c5: 0x000c,
- 0x2c6: 0x000c, 0x2c7: 0x000c, 0x2c8: 0x000c, 0x2c9: 0x000c,
- // Block 0xc, offset 0x300
- 0x30a: 0x000a,
- 0x30d: 0x000a, 0x30e: 0x000a, 0x30f: 0x0004, 0x310: 0x0001, 0x311: 0x000c,
- 0x312: 0x000c, 0x313: 0x000c, 0x314: 0x000c, 0x315: 0x000c, 0x316: 0x000c, 0x317: 0x000c,
- 0x318: 0x000c, 0x319: 0x000c, 0x31a: 0x000c, 0x31b: 0x000c, 0x31c: 0x000c, 0x31d: 0x000c,
- 0x31e: 0x000c, 0x31f: 0x000c, 0x320: 0x000c, 0x321: 0x000c, 0x322: 0x000c, 0x323: 0x000c,
- 0x324: 0x000c, 0x325: 0x000c, 0x326: 0x000c, 0x327: 0x000c, 0x328: 0x000c, 0x329: 0x000c,
- 0x32a: 0x000c, 0x32b: 0x000c, 0x32c: 0x000c, 0x32d: 0x000c, 0x32e: 0x000c, 0x32f: 0x000c,
- 0x330: 0x000c, 0x331: 0x000c, 0x332: 0x000c, 0x333: 0x000c, 0x334: 0x000c, 0x335: 0x000c,
- 0x336: 0x000c, 0x337: 0x000c, 0x338: 0x000c, 0x339: 0x000c, 0x33a: 0x000c, 0x33b: 0x000c,
- 0x33c: 0x000c, 0x33d: 0x000c, 0x33e: 0x0001, 0x33f: 0x000c,
- // Block 0xd, offset 0x340
- 0x340: 0x0001, 0x341: 0x000c, 0x342: 0x000c, 0x343: 0x0001, 0x344: 0x000c, 0x345: 0x000c,
- 0x346: 0x0001, 0x347: 0x000c, 0x348: 0x0001, 0x349: 0x0001, 0x34a: 0x0001, 0x34b: 0x0001,
- 0x34c: 0x0001, 0x34d: 0x0001, 0x34e: 0x0001, 0x34f: 0x0001, 0x350: 0x0001, 0x351: 0x0001,
- 0x352: 0x0001, 0x353: 0x0001, 0x354: 0x0001, 0x355: 0x0001, 0x356: 0x0001, 0x357: 0x0001,
- 0x358: 0x0001, 0x359: 0x0001, 0x35a: 0x0001, 0x35b: 0x0001, 0x35c: 0x0001, 0x35d: 0x0001,
- 0x35e: 0x0001, 0x35f: 0x0001, 0x360: 0x0001, 0x361: 0x0001, 0x362: 0x0001, 0x363: 0x0001,
- 0x364: 0x0001, 0x365: 0x0001, 0x366: 0x0001, 0x367: 0x0001, 0x368: 0x0001, 0x369: 0x0001,
- 0x36a: 0x0001, 0x36b: 0x0001, 0x36c: 0x0001, 0x36d: 0x0001, 0x36e: 0x0001, 0x36f: 0x0001,
- 0x370: 0x0001, 0x371: 0x0001, 0x372: 0x0001, 0x373: 0x0001, 0x374: 0x0001, 0x375: 0x0001,
- 0x376: 0x0001, 0x377: 0x0001, 0x378: 0x0001, 0x379: 0x0001, 0x37a: 0x0001, 0x37b: 0x0001,
- 0x37c: 0x0001, 0x37d: 0x0001, 0x37e: 0x0001, 0x37f: 0x0001,
- // Block 0xe, offset 0x380
- 0x380: 0x0005, 0x381: 0x0005, 0x382: 0x0005, 0x383: 0x0005, 0x384: 0x0005, 0x385: 0x0005,
- 0x386: 0x000a, 0x387: 0x000a, 0x388: 0x000d, 0x389: 0x0004, 0x38a: 0x0004, 0x38b: 0x000d,
- 0x38c: 0x0006, 0x38d: 0x000d, 0x38e: 0x000a, 0x38f: 0x000a, 0x390: 0x000c, 0x391: 0x000c,
- 0x392: 0x000c, 0x393: 0x000c, 0x394: 0x000c, 0x395: 0x000c, 0x396: 0x000c, 0x397: 0x000c,
- 0x398: 0x000c, 0x399: 0x000c, 0x39a: 0x000c, 0x39b: 0x000d, 0x39c: 0x000d, 0x39d: 0x000d,
- 0x39e: 0x000d, 0x39f: 0x000d, 0x3a0: 0x000d, 0x3a1: 0x000d, 0x3a2: 0x000d, 0x3a3: 0x000d,
- 0x3a4: 0x000d, 0x3a5: 0x000d, 0x3a6: 0x000d, 0x3a7: 0x000d, 0x3a8: 0x000d, 0x3a9: 0x000d,
- 0x3aa: 0x000d, 0x3ab: 0x000d, 0x3ac: 0x000d, 0x3ad: 0x000d, 0x3ae: 0x000d, 0x3af: 0x000d,
- 0x3b0: 0x000d, 0x3b1: 0x000d, 0x3b2: 0x000d, 0x3b3: 0x000d, 0x3b4: 0x000d, 0x3b5: 0x000d,
- 0x3b6: 0x000d, 0x3b7: 0x000d, 0x3b8: 0x000d, 0x3b9: 0x000d, 0x3ba: 0x000d, 0x3bb: 0x000d,
- 0x3bc: 0x000d, 0x3bd: 0x000d, 0x3be: 0x000d, 0x3bf: 0x000d,
- // Block 0xf, offset 0x3c0
- 0x3c0: 0x000d, 0x3c1: 0x000d, 0x3c2: 0x000d, 0x3c3: 0x000d, 0x3c4: 0x000d, 0x3c5: 0x000d,
- 0x3c6: 0x000d, 0x3c7: 0x000d, 0x3c8: 0x000d, 0x3c9: 0x000d, 0x3ca: 0x000d, 0x3cb: 0x000c,
- 0x3cc: 0x000c, 0x3cd: 0x000c, 0x3ce: 0x000c, 0x3cf: 0x000c, 0x3d0: 0x000c, 0x3d1: 0x000c,
- 0x3d2: 0x000c, 0x3d3: 0x000c, 0x3d4: 0x000c, 0x3d5: 0x000c, 0x3d6: 0x000c, 0x3d7: 0x000c,
- 0x3d8: 0x000c, 0x3d9: 0x000c, 0x3da: 0x000c, 0x3db: 0x000c, 0x3dc: 0x000c, 0x3dd: 0x000c,
- 0x3de: 0x000c, 0x3df: 0x000c, 0x3e0: 0x0005, 0x3e1: 0x0005, 0x3e2: 0x0005, 0x3e3: 0x0005,
- 0x3e4: 0x0005, 0x3e5: 0x0005, 0x3e6: 0x0005, 0x3e7: 0x0005, 0x3e8: 0x0005, 0x3e9: 0x0005,
- 0x3ea: 0x0004, 0x3eb: 0x0005, 0x3ec: 0x0005, 0x3ed: 0x000d, 0x3ee: 0x000d, 0x3ef: 0x000d,
- 0x3f0: 0x000c, 0x3f1: 0x000d, 0x3f2: 0x000d, 0x3f3: 0x000d, 0x3f4: 0x000d, 0x3f5: 0x000d,
- 0x3f6: 0x000d, 0x3f7: 0x000d, 0x3f8: 0x000d, 0x3f9: 0x000d, 0x3fa: 0x000d, 0x3fb: 0x000d,
- 0x3fc: 0x000d, 0x3fd: 0x000d, 0x3fe: 0x000d, 0x3ff: 0x000d,
- // Block 0x10, offset 0x400
- 0x400: 0x000d, 0x401: 0x000d, 0x402: 0x000d, 0x403: 0x000d, 0x404: 0x000d, 0x405: 0x000d,
- 0x406: 0x000d, 0x407: 0x000d, 0x408: 0x000d, 0x409: 0x000d, 0x40a: 0x000d, 0x40b: 0x000d,
- 0x40c: 0x000d, 0x40d: 0x000d, 0x40e: 0x000d, 0x40f: 0x000d, 0x410: 0x000d, 0x411: 0x000d,
- 0x412: 0x000d, 0x413: 0x000d, 0x414: 0x000d, 0x415: 0x000d, 0x416: 0x000d, 0x417: 0x000d,
- 0x418: 0x000d, 0x419: 0x000d, 0x41a: 0x000d, 0x41b: 0x000d, 0x41c: 0x000d, 0x41d: 0x000d,
- 0x41e: 0x000d, 0x41f: 0x000d, 0x420: 0x000d, 0x421: 0x000d, 0x422: 0x000d, 0x423: 0x000d,
- 0x424: 0x000d, 0x425: 0x000d, 0x426: 0x000d, 0x427: 0x000d, 0x428: 0x000d, 0x429: 0x000d,
- 0x42a: 0x000d, 0x42b: 0x000d, 0x42c: 0x000d, 0x42d: 0x000d, 0x42e: 0x000d, 0x42f: 0x000d,
- 0x430: 0x000d, 0x431: 0x000d, 0x432: 0x000d, 0x433: 0x000d, 0x434: 0x000d, 0x435: 0x000d,
- 0x436: 0x000d, 0x437: 0x000d, 0x438: 0x000d, 0x439: 0x000d, 0x43a: 0x000d, 0x43b: 0x000d,
- 0x43c: 0x000d, 0x43d: 0x000d, 0x43e: 0x000d, 0x43f: 0x000d,
- // Block 0x11, offset 0x440
- 0x440: 0x000d, 0x441: 0x000d, 0x442: 0x000d, 0x443: 0x000d, 0x444: 0x000d, 0x445: 0x000d,
- 0x446: 0x000d, 0x447: 0x000d, 0x448: 0x000d, 0x449: 0x000d, 0x44a: 0x000d, 0x44b: 0x000d,
- 0x44c: 0x000d, 0x44d: 0x000d, 0x44e: 0x000d, 0x44f: 0x000d, 0x450: 0x000d, 0x451: 0x000d,
- 0x452: 0x000d, 0x453: 0x000d, 0x454: 0x000d, 0x455: 0x000d, 0x456: 0x000c, 0x457: 0x000c,
- 0x458: 0x000c, 0x459: 0x000c, 0x45a: 0x000c, 0x45b: 0x000c, 0x45c: 0x000c, 0x45d: 0x0005,
- 0x45e: 0x000a, 0x45f: 0x000c, 0x460: 0x000c, 0x461: 0x000c, 0x462: 0x000c, 0x463: 0x000c,
- 0x464: 0x000c, 0x465: 0x000d, 0x466: 0x000d, 0x467: 0x000c, 0x468: 0x000c, 0x469: 0x000a,
- 0x46a: 0x000c, 0x46b: 0x000c, 0x46c: 0x000c, 0x46d: 0x000c, 0x46e: 0x000d, 0x46f: 0x000d,
- 0x470: 0x0002, 0x471: 0x0002, 0x472: 0x0002, 0x473: 0x0002, 0x474: 0x0002, 0x475: 0x0002,
- 0x476: 0x0002, 0x477: 0x0002, 0x478: 0x0002, 0x479: 0x0002, 0x47a: 0x000d, 0x47b: 0x000d,
- 0x47c: 0x000d, 0x47d: 0x000d, 0x47e: 0x000d, 0x47f: 0x000d,
- // Block 0x12, offset 0x480
- 0x480: 0x000d, 0x481: 0x000d, 0x482: 0x000d, 0x483: 0x000d, 0x484: 0x000d, 0x485: 0x000d,
- 0x486: 0x000d, 0x487: 0x000d, 0x488: 0x000d, 0x489: 0x000d, 0x48a: 0x000d, 0x48b: 0x000d,
- 0x48c: 0x000d, 0x48d: 0x000d, 0x48e: 0x000d, 0x48f: 0x000d, 0x490: 0x000d, 0x491: 0x000c,
- 0x492: 0x000d, 0x493: 0x000d, 0x494: 0x000d, 0x495: 0x000d, 0x496: 0x000d, 0x497: 0x000d,
- 0x498: 0x000d, 0x499: 0x000d, 0x49a: 0x000d, 0x49b: 0x000d, 0x49c: 0x000d, 0x49d: 0x000d,
- 0x49e: 0x000d, 0x49f: 0x000d, 0x4a0: 0x000d, 0x4a1: 0x000d, 0x4a2: 0x000d, 0x4a3: 0x000d,
- 0x4a4: 0x000d, 0x4a5: 0x000d, 0x4a6: 0x000d, 0x4a7: 0x000d, 0x4a8: 0x000d, 0x4a9: 0x000d,
- 0x4aa: 0x000d, 0x4ab: 0x000d, 0x4ac: 0x000d, 0x4ad: 0x000d, 0x4ae: 0x000d, 0x4af: 0x000d,
- 0x4b0: 0x000c, 0x4b1: 0x000c, 0x4b2: 0x000c, 0x4b3: 0x000c, 0x4b4: 0x000c, 0x4b5: 0x000c,
- 0x4b6: 0x000c, 0x4b7: 0x000c, 0x4b8: 0x000c, 0x4b9: 0x000c, 0x4ba: 0x000c, 0x4bb: 0x000c,
- 0x4bc: 0x000c, 0x4bd: 0x000c, 0x4be: 0x000c, 0x4bf: 0x000c,
- // Block 0x13, offset 0x4c0
- 0x4c0: 0x000c, 0x4c1: 0x000c, 0x4c2: 0x000c, 0x4c3: 0x000c, 0x4c4: 0x000c, 0x4c5: 0x000c,
- 0x4c6: 0x000c, 0x4c7: 0x000c, 0x4c8: 0x000c, 0x4c9: 0x000c, 0x4ca: 0x000c, 0x4cb: 0x000d,
- 0x4cc: 0x000d, 0x4cd: 0x000d, 0x4ce: 0x000d, 0x4cf: 0x000d, 0x4d0: 0x000d, 0x4d1: 0x000d,
- 0x4d2: 0x000d, 0x4d3: 0x000d, 0x4d4: 0x000d, 0x4d5: 0x000d, 0x4d6: 0x000d, 0x4d7: 0x000d,
- 0x4d8: 0x000d, 0x4d9: 0x000d, 0x4da: 0x000d, 0x4db: 0x000d, 0x4dc: 0x000d, 0x4dd: 0x000d,
- 0x4de: 0x000d, 0x4df: 0x000d, 0x4e0: 0x000d, 0x4e1: 0x000d, 0x4e2: 0x000d, 0x4e3: 0x000d,
- 0x4e4: 0x000d, 0x4e5: 0x000d, 0x4e6: 0x000d, 0x4e7: 0x000d, 0x4e8: 0x000d, 0x4e9: 0x000d,
- 0x4ea: 0x000d, 0x4eb: 0x000d, 0x4ec: 0x000d, 0x4ed: 0x000d, 0x4ee: 0x000d, 0x4ef: 0x000d,
- 0x4f0: 0x000d, 0x4f1: 0x000d, 0x4f2: 0x000d, 0x4f3: 0x000d, 0x4f4: 0x000d, 0x4f5: 0x000d,
- 0x4f6: 0x000d, 0x4f7: 0x000d, 0x4f8: 0x000d, 0x4f9: 0x000d, 0x4fa: 0x000d, 0x4fb: 0x000d,
- 0x4fc: 0x000d, 0x4fd: 0x000d, 0x4fe: 0x000d, 0x4ff: 0x000d,
- // Block 0x14, offset 0x500
- 0x500: 0x000d, 0x501: 0x000d, 0x502: 0x000d, 0x503: 0x000d, 0x504: 0x000d, 0x505: 0x000d,
- 0x506: 0x000d, 0x507: 0x000d, 0x508: 0x000d, 0x509: 0x000d, 0x50a: 0x000d, 0x50b: 0x000d,
- 0x50c: 0x000d, 0x50d: 0x000d, 0x50e: 0x000d, 0x50f: 0x000d, 0x510: 0x000d, 0x511: 0x000d,
- 0x512: 0x000d, 0x513: 0x000d, 0x514: 0x000d, 0x515: 0x000d, 0x516: 0x000d, 0x517: 0x000d,
- 0x518: 0x000d, 0x519: 0x000d, 0x51a: 0x000d, 0x51b: 0x000d, 0x51c: 0x000d, 0x51d: 0x000d,
- 0x51e: 0x000d, 0x51f: 0x000d, 0x520: 0x000d, 0x521: 0x000d, 0x522: 0x000d, 0x523: 0x000d,
- 0x524: 0x000d, 0x525: 0x000d, 0x526: 0x000c, 0x527: 0x000c, 0x528: 0x000c, 0x529: 0x000c,
- 0x52a: 0x000c, 0x52b: 0x000c, 0x52c: 0x000c, 0x52d: 0x000c, 0x52e: 0x000c, 0x52f: 0x000c,
- 0x530: 0x000c, 0x531: 0x000d, 0x532: 0x000d, 0x533: 0x000d, 0x534: 0x000d, 0x535: 0x000d,
- 0x536: 0x000d, 0x537: 0x000d, 0x538: 0x000d, 0x539: 0x000d, 0x53a: 0x000d, 0x53b: 0x000d,
- 0x53c: 0x000d, 0x53d: 0x000d, 0x53e: 0x000d, 0x53f: 0x000d,
- // Block 0x15, offset 0x540
- 0x540: 0x0001, 0x541: 0x0001, 0x542: 0x0001, 0x543: 0x0001, 0x544: 0x0001, 0x545: 0x0001,
- 0x546: 0x0001, 0x547: 0x0001, 0x548: 0x0001, 0x549: 0x0001, 0x54a: 0x0001, 0x54b: 0x0001,
- 0x54c: 0x0001, 0x54d: 0x0001, 0x54e: 0x0001, 0x54f: 0x0001, 0x550: 0x0001, 0x551: 0x0001,
- 0x552: 0x0001, 0x553: 0x0001, 0x554: 0x0001, 0x555: 0x0001, 0x556: 0x0001, 0x557: 0x0001,
- 0x558: 0x0001, 0x559: 0x0001, 0x55a: 0x0001, 0x55b: 0x0001, 0x55c: 0x0001, 0x55d: 0x0001,
- 0x55e: 0x0001, 0x55f: 0x0001, 0x560: 0x0001, 0x561: 0x0001, 0x562: 0x0001, 0x563: 0x0001,
- 0x564: 0x0001, 0x565: 0x0001, 0x566: 0x0001, 0x567: 0x0001, 0x568: 0x0001, 0x569: 0x0001,
- 0x56a: 0x0001, 0x56b: 0x000c, 0x56c: 0x000c, 0x56d: 0x000c, 0x56e: 0x000c, 0x56f: 0x000c,
- 0x570: 0x000c, 0x571: 0x000c, 0x572: 0x000c, 0x573: 0x000c, 0x574: 0x0001, 0x575: 0x0001,
- 0x576: 0x000a, 0x577: 0x000a, 0x578: 0x000a, 0x579: 0x000a, 0x57a: 0x0001, 0x57b: 0x0001,
- 0x57c: 0x0001, 0x57d: 0x0001, 0x57e: 0x0001, 0x57f: 0x0001,
- // Block 0x16, offset 0x580
- 0x580: 0x0001, 0x581: 0x0001, 0x582: 0x0001, 0x583: 0x0001, 0x584: 0x0001, 0x585: 0x0001,
- 0x586: 0x0001, 0x587: 0x0001, 0x588: 0x0001, 0x589: 0x0001, 0x58a: 0x0001, 0x58b: 0x0001,
- 0x58c: 0x0001, 0x58d: 0x0001, 0x58e: 0x0001, 0x58f: 0x0001, 0x590: 0x0001, 0x591: 0x0001,
- 0x592: 0x0001, 0x593: 0x0001, 0x594: 0x0001, 0x595: 0x0001, 0x596: 0x000c, 0x597: 0x000c,
- 0x598: 0x000c, 0x599: 0x000c, 0x59a: 0x0001, 0x59b: 0x000c, 0x59c: 0x000c, 0x59d: 0x000c,
- 0x59e: 0x000c, 0x59f: 0x000c, 0x5a0: 0x000c, 0x5a1: 0x000c, 0x5a2: 0x000c, 0x5a3: 0x000c,
- 0x5a4: 0x0001, 0x5a5: 0x000c, 0x5a6: 0x000c, 0x5a7: 0x000c, 0x5a8: 0x0001, 0x5a9: 0x000c,
- 0x5aa: 0x000c, 0x5ab: 0x000c, 0x5ac: 0x000c, 0x5ad: 0x000c, 0x5ae: 0x0001, 0x5af: 0x0001,
- 0x5b0: 0x0001, 0x5b1: 0x0001, 0x5b2: 0x0001, 0x5b3: 0x0001, 0x5b4: 0x0001, 0x5b5: 0x0001,
- 0x5b6: 0x0001, 0x5b7: 0x0001, 0x5b8: 0x0001, 0x5b9: 0x0001, 0x5ba: 0x0001, 0x5bb: 0x0001,
- 0x5bc: 0x0001, 0x5bd: 0x0001, 0x5be: 0x0001, 0x5bf: 0x0001,
- // Block 0x17, offset 0x5c0
- 0x5c0: 0x0001, 0x5c1: 0x0001, 0x5c2: 0x0001, 0x5c3: 0x0001, 0x5c4: 0x0001, 0x5c5: 0x0001,
- 0x5c6: 0x0001, 0x5c7: 0x0001, 0x5c8: 0x0001, 0x5c9: 0x0001, 0x5ca: 0x0001, 0x5cb: 0x0001,
- 0x5cc: 0x0001, 0x5cd: 0x0001, 0x5ce: 0x0001, 0x5cf: 0x0001, 0x5d0: 0x0001, 0x5d1: 0x0001,
- 0x5d2: 0x0001, 0x5d3: 0x0001, 0x5d4: 0x0001, 0x5d5: 0x0001, 0x5d6: 0x0001, 0x5d7: 0x0001,
- 0x5d8: 0x0001, 0x5d9: 0x000c, 0x5da: 0x000c, 0x5db: 0x000c, 0x5dc: 0x0001, 0x5dd: 0x0001,
- 0x5de: 0x0001, 0x5df: 0x0001, 0x5e0: 0x000d, 0x5e1: 0x000d, 0x5e2: 0x000d, 0x5e3: 0x000d,
- 0x5e4: 0x000d, 0x5e5: 0x000d, 0x5e6: 0x000d, 0x5e7: 0x000d, 0x5e8: 0x000d, 0x5e9: 0x000d,
- 0x5ea: 0x000d, 0x5eb: 0x000d, 0x5ec: 0x000d, 0x5ed: 0x000d, 0x5ee: 0x000d, 0x5ef: 0x000d,
- 0x5f0: 0x0001, 0x5f1: 0x0001, 0x5f2: 0x0001, 0x5f3: 0x0001, 0x5f4: 0x0001, 0x5f5: 0x0001,
- 0x5f6: 0x0001, 0x5f7: 0x0001, 0x5f8: 0x0001, 0x5f9: 0x0001, 0x5fa: 0x0001, 0x5fb: 0x0001,
- 0x5fc: 0x0001, 0x5fd: 0x0001, 0x5fe: 0x0001, 0x5ff: 0x0001,
- // Block 0x18, offset 0x600
- 0x600: 0x0001, 0x601: 0x0001, 0x602: 0x0001, 0x603: 0x0001, 0x604: 0x0001, 0x605: 0x0001,
- 0x606: 0x0001, 0x607: 0x0001, 0x608: 0x0001, 0x609: 0x0001, 0x60a: 0x0001, 0x60b: 0x0001,
- 0x60c: 0x0001, 0x60d: 0x0001, 0x60e: 0x0001, 0x60f: 0x0001, 0x610: 0x0001, 0x611: 0x0001,
- 0x612: 0x0001, 0x613: 0x0001, 0x614: 0x0001, 0x615: 0x0001, 0x616: 0x0001, 0x617: 0x0001,
- 0x618: 0x0001, 0x619: 0x0001, 0x61a: 0x0001, 0x61b: 0x0001, 0x61c: 0x0001, 0x61d: 0x0001,
- 0x61e: 0x0001, 0x61f: 0x0001, 0x620: 0x000d, 0x621: 0x000d, 0x622: 0x000d, 0x623: 0x000d,
- 0x624: 0x000d, 0x625: 0x000d, 0x626: 0x000d, 0x627: 0x000d, 0x628: 0x000d, 0x629: 0x000d,
- 0x62a: 0x000d, 0x62b: 0x000d, 0x62c: 0x000d, 0x62d: 0x000d, 0x62e: 0x000d, 0x62f: 0x000d,
- 0x630: 0x000d, 0x631: 0x000d, 0x632: 0x000d, 0x633: 0x000d, 0x634: 0x000d, 0x635: 0x000d,
- 0x636: 0x000d, 0x637: 0x000d, 0x638: 0x000d, 0x639: 0x000d, 0x63a: 0x000d, 0x63b: 0x000d,
- 0x63c: 0x000d, 0x63d: 0x000d, 0x63e: 0x000d, 0x63f: 0x000d,
- // Block 0x19, offset 0x640
- 0x640: 0x000d, 0x641: 0x000d, 0x642: 0x000d, 0x643: 0x000d, 0x644: 0x000d, 0x645: 0x000d,
- 0x646: 0x000d, 0x647: 0x000d, 0x648: 0x000d, 0x649: 0x000d, 0x64a: 0x000d, 0x64b: 0x000d,
- 0x64c: 0x000d, 0x64d: 0x000d, 0x64e: 0x000d, 0x64f: 0x000d, 0x650: 0x000d, 0x651: 0x000d,
- 0x652: 0x000d, 0x653: 0x000d, 0x654: 0x000c, 0x655: 0x000c, 0x656: 0x000c, 0x657: 0x000c,
- 0x658: 0x000c, 0x659: 0x000c, 0x65a: 0x000c, 0x65b: 0x000c, 0x65c: 0x000c, 0x65d: 0x000c,
- 0x65e: 0x000c, 0x65f: 0x000c, 0x660: 0x000c, 0x661: 0x000c, 0x662: 0x0005, 0x663: 0x000c,
- 0x664: 0x000c, 0x665: 0x000c, 0x666: 0x000c, 0x667: 0x000c, 0x668: 0x000c, 0x669: 0x000c,
- 0x66a: 0x000c, 0x66b: 0x000c, 0x66c: 0x000c, 0x66d: 0x000c, 0x66e: 0x000c, 0x66f: 0x000c,
- 0x670: 0x000c, 0x671: 0x000c, 0x672: 0x000c, 0x673: 0x000c, 0x674: 0x000c, 0x675: 0x000c,
- 0x676: 0x000c, 0x677: 0x000c, 0x678: 0x000c, 0x679: 0x000c, 0x67a: 0x000c, 0x67b: 0x000c,
- 0x67c: 0x000c, 0x67d: 0x000c, 0x67e: 0x000c, 0x67f: 0x000c,
- // Block 0x1a, offset 0x680
- 0x680: 0x000c, 0x681: 0x000c, 0x682: 0x000c,
- 0x6ba: 0x000c,
- 0x6bc: 0x000c,
- // Block 0x1b, offset 0x6c0
- 0x6c1: 0x000c, 0x6c2: 0x000c, 0x6c3: 0x000c, 0x6c4: 0x000c, 0x6c5: 0x000c,
- 0x6c6: 0x000c, 0x6c7: 0x000c, 0x6c8: 0x000c,
- 0x6cd: 0x000c, 0x6d1: 0x000c,
- 0x6d2: 0x000c, 0x6d3: 0x000c, 0x6d4: 0x000c, 0x6d5: 0x000c, 0x6d6: 0x000c, 0x6d7: 0x000c,
- 0x6e2: 0x000c, 0x6e3: 0x000c,
- // Block 0x1c, offset 0x700
- 0x701: 0x000c,
- 0x73c: 0x000c,
- // Block 0x1d, offset 0x740
- 0x741: 0x000c, 0x742: 0x000c, 0x743: 0x000c, 0x744: 0x000c,
- 0x74d: 0x000c,
- 0x762: 0x000c, 0x763: 0x000c,
- 0x772: 0x0004, 0x773: 0x0004,
- 0x77b: 0x0004,
- // Block 0x1e, offset 0x780
- 0x781: 0x000c, 0x782: 0x000c,
- 0x7bc: 0x000c,
- // Block 0x1f, offset 0x7c0
- 0x7c1: 0x000c, 0x7c2: 0x000c,
- 0x7c7: 0x000c, 0x7c8: 0x000c, 0x7cb: 0x000c,
- 0x7cc: 0x000c, 0x7cd: 0x000c, 0x7d1: 0x000c,
- 0x7f0: 0x000c, 0x7f1: 0x000c, 0x7f5: 0x000c,
- // Block 0x20, offset 0x800
- 0x801: 0x000c, 0x802: 0x000c, 0x803: 0x000c, 0x804: 0x000c, 0x805: 0x000c,
- 0x807: 0x000c, 0x808: 0x000c,
- 0x80d: 0x000c,
- 0x822: 0x000c, 0x823: 0x000c,
- 0x831: 0x0004,
- 0x83a: 0x000c, 0x83b: 0x000c,
- 0x83c: 0x000c, 0x83d: 0x000c, 0x83e: 0x000c, 0x83f: 0x000c,
- // Block 0x21, offset 0x840
- 0x841: 0x000c,
- 0x87c: 0x000c, 0x87f: 0x000c,
- // Block 0x22, offset 0x880
- 0x881: 0x000c, 0x882: 0x000c, 0x883: 0x000c, 0x884: 0x000c,
- 0x88d: 0x000c,
- 0x896: 0x000c,
- 0x8a2: 0x000c, 0x8a3: 0x000c,
- // Block 0x23, offset 0x8c0
- 0x8c2: 0x000c,
- // Block 0x24, offset 0x900
- 0x900: 0x000c,
- 0x90d: 0x000c,
- 0x933: 0x000a, 0x934: 0x000a, 0x935: 0x000a,
- 0x936: 0x000a, 0x937: 0x000a, 0x938: 0x000a, 0x939: 0x0004, 0x93a: 0x000a,
- // Block 0x25, offset 0x940
- 0x940: 0x000c,
- 0x97e: 0x000c, 0x97f: 0x000c,
- // Block 0x26, offset 0x980
- 0x980: 0x000c,
- 0x986: 0x000c, 0x987: 0x000c, 0x988: 0x000c, 0x98a: 0x000c, 0x98b: 0x000c,
- 0x98c: 0x000c, 0x98d: 0x000c,
- 0x995: 0x000c, 0x996: 0x000c,
- 0x9a2: 0x000c, 0x9a3: 0x000c,
- 0x9b8: 0x000a, 0x9b9: 0x000a, 0x9ba: 0x000a, 0x9bb: 0x000a,
- 0x9bc: 0x000a, 0x9bd: 0x000a, 0x9be: 0x000a,
- // Block 0x27, offset 0x9c0
- 0x9cc: 0x000c, 0x9cd: 0x000c,
- 0x9e2: 0x000c, 0x9e3: 0x000c,
- // Block 0x28, offset 0xa00
- 0xa00: 0x000c, 0xa01: 0x000c,
- 0xa3b: 0x000c,
- 0xa3c: 0x000c,
- // Block 0x29, offset 0xa40
- 0xa41: 0x000c, 0xa42: 0x000c, 0xa43: 0x000c, 0xa44: 0x000c,
- 0xa4d: 0x000c,
- 0xa62: 0x000c, 0xa63: 0x000c,
- // Block 0x2a, offset 0xa80
- 0xa8a: 0x000c,
- 0xa92: 0x000c, 0xa93: 0x000c, 0xa94: 0x000c, 0xa96: 0x000c,
- // Block 0x2b, offset 0xac0
- 0xaf1: 0x000c, 0xaf4: 0x000c, 0xaf5: 0x000c,
- 0xaf6: 0x000c, 0xaf7: 0x000c, 0xaf8: 0x000c, 0xaf9: 0x000c, 0xafa: 0x000c,
- 0xaff: 0x0004,
- // Block 0x2c, offset 0xb00
- 0xb07: 0x000c, 0xb08: 0x000c, 0xb09: 0x000c, 0xb0a: 0x000c, 0xb0b: 0x000c,
- 0xb0c: 0x000c, 0xb0d: 0x000c, 0xb0e: 0x000c,
- // Block 0x2d, offset 0xb40
- 0xb71: 0x000c, 0xb74: 0x000c, 0xb75: 0x000c,
- 0xb76: 0x000c, 0xb77: 0x000c, 0xb78: 0x000c, 0xb79: 0x000c, 0xb7b: 0x000c,
- 0xb7c: 0x000c,
- // Block 0x2e, offset 0xb80
- 0xb88: 0x000c, 0xb89: 0x000c, 0xb8a: 0x000c, 0xb8b: 0x000c,
- 0xb8c: 0x000c, 0xb8d: 0x000c,
- // Block 0x2f, offset 0xbc0
- 0xbd8: 0x000c, 0xbd9: 0x000c,
- 0xbf5: 0x000c,
- 0xbf7: 0x000c, 0xbf9: 0x000c, 0xbfa: 0x003a, 0xbfb: 0x002a,
- 0xbfc: 0x003a, 0xbfd: 0x002a,
- // Block 0x30, offset 0xc00
- 0xc31: 0x000c, 0xc32: 0x000c, 0xc33: 0x000c, 0xc34: 0x000c, 0xc35: 0x000c,
- 0xc36: 0x000c, 0xc37: 0x000c, 0xc38: 0x000c, 0xc39: 0x000c, 0xc3a: 0x000c, 0xc3b: 0x000c,
- 0xc3c: 0x000c, 0xc3d: 0x000c, 0xc3e: 0x000c,
- // Block 0x31, offset 0xc40
- 0xc40: 0x000c, 0xc41: 0x000c, 0xc42: 0x000c, 0xc43: 0x000c, 0xc44: 0x000c,
- 0xc46: 0x000c, 0xc47: 0x000c,
- 0xc4d: 0x000c, 0xc4e: 0x000c, 0xc4f: 0x000c, 0xc50: 0x000c, 0xc51: 0x000c,
- 0xc52: 0x000c, 0xc53: 0x000c, 0xc54: 0x000c, 0xc55: 0x000c, 0xc56: 0x000c, 0xc57: 0x000c,
- 0xc59: 0x000c, 0xc5a: 0x000c, 0xc5b: 0x000c, 0xc5c: 0x000c, 0xc5d: 0x000c,
- 0xc5e: 0x000c, 0xc5f: 0x000c, 0xc60: 0x000c, 0xc61: 0x000c, 0xc62: 0x000c, 0xc63: 0x000c,
- 0xc64: 0x000c, 0xc65: 0x000c, 0xc66: 0x000c, 0xc67: 0x000c, 0xc68: 0x000c, 0xc69: 0x000c,
- 0xc6a: 0x000c, 0xc6b: 0x000c, 0xc6c: 0x000c, 0xc6d: 0x000c, 0xc6e: 0x000c, 0xc6f: 0x000c,
- 0xc70: 0x000c, 0xc71: 0x000c, 0xc72: 0x000c, 0xc73: 0x000c, 0xc74: 0x000c, 0xc75: 0x000c,
- 0xc76: 0x000c, 0xc77: 0x000c, 0xc78: 0x000c, 0xc79: 0x000c, 0xc7a: 0x000c, 0xc7b: 0x000c,
- 0xc7c: 0x000c,
- // Block 0x32, offset 0xc80
- 0xc86: 0x000c,
- // Block 0x33, offset 0xcc0
- 0xced: 0x000c, 0xcee: 0x000c, 0xcef: 0x000c,
- 0xcf0: 0x000c, 0xcf2: 0x000c, 0xcf3: 0x000c, 0xcf4: 0x000c, 0xcf5: 0x000c,
- 0xcf6: 0x000c, 0xcf7: 0x000c, 0xcf9: 0x000c, 0xcfa: 0x000c,
- 0xcfd: 0x000c, 0xcfe: 0x000c,
- // Block 0x34, offset 0xd00
- 0xd18: 0x000c, 0xd19: 0x000c,
- 0xd1e: 0x000c, 0xd1f: 0x000c, 0xd20: 0x000c,
- 0xd31: 0x000c, 0xd32: 0x000c, 0xd33: 0x000c, 0xd34: 0x000c,
- // Block 0x35, offset 0xd40
- 0xd42: 0x000c, 0xd45: 0x000c,
- 0xd46: 0x000c,
- 0xd4d: 0x000c,
- 0xd5d: 0x000c,
- // Block 0x36, offset 0xd80
- 0xd9d: 0x000c,
- 0xd9e: 0x000c, 0xd9f: 0x000c,
- // Block 0x37, offset 0xdc0
- 0xdd0: 0x000a, 0xdd1: 0x000a,
- 0xdd2: 0x000a, 0xdd3: 0x000a, 0xdd4: 0x000a, 0xdd5: 0x000a, 0xdd6: 0x000a, 0xdd7: 0x000a,
- 0xdd8: 0x000a, 0xdd9: 0x000a,
- // Block 0x38, offset 0xe00
- 0xe00: 0x000a,
- // Block 0x39, offset 0xe40
- 0xe40: 0x0009,
- 0xe5b: 0x007a, 0xe5c: 0x006a,
- // Block 0x3a, offset 0xe80
- 0xe92: 0x000c, 0xe93: 0x000c, 0xe94: 0x000c,
- 0xeb2: 0x000c, 0xeb3: 0x000c, 0xeb4: 0x000c,
- // Block 0x3b, offset 0xec0
- 0xed2: 0x000c, 0xed3: 0x000c,
- 0xef2: 0x000c, 0xef3: 0x000c,
- // Block 0x3c, offset 0xf00
- 0xf34: 0x000c, 0xf35: 0x000c,
- 0xf37: 0x000c, 0xf38: 0x000c, 0xf39: 0x000c, 0xf3a: 0x000c, 0xf3b: 0x000c,
- 0xf3c: 0x000c, 0xf3d: 0x000c,
- // Block 0x3d, offset 0xf40
- 0xf46: 0x000c, 0xf49: 0x000c, 0xf4a: 0x000c, 0xf4b: 0x000c,
- 0xf4c: 0x000c, 0xf4d: 0x000c, 0xf4e: 0x000c, 0xf4f: 0x000c, 0xf50: 0x000c, 0xf51: 0x000c,
- 0xf52: 0x000c, 0xf53: 0x000c,
- 0xf5b: 0x0004, 0xf5d: 0x000c,
- 0xf70: 0x000a, 0xf71: 0x000a, 0xf72: 0x000a, 0xf73: 0x000a, 0xf74: 0x000a, 0xf75: 0x000a,
- 0xf76: 0x000a, 0xf77: 0x000a, 0xf78: 0x000a, 0xf79: 0x000a,
- // Block 0x3e, offset 0xf80
- 0xf80: 0x000a, 0xf81: 0x000a, 0xf82: 0x000a, 0xf83: 0x000a, 0xf84: 0x000a, 0xf85: 0x000a,
- 0xf86: 0x000a, 0xf87: 0x000a, 0xf88: 0x000a, 0xf89: 0x000a, 0xf8a: 0x000a, 0xf8b: 0x000c,
- 0xf8c: 0x000c, 0xf8d: 0x000c, 0xf8e: 0x000b,
- // Block 0x3f, offset 0xfc0
- 0xfc5: 0x000c,
- 0xfc6: 0x000c,
- 0xfe9: 0x000c,
- // Block 0x40, offset 0x1000
- 0x1020: 0x000c, 0x1021: 0x000c, 0x1022: 0x000c,
- 0x1027: 0x000c, 0x1028: 0x000c,
- 0x1032: 0x000c,
- 0x1039: 0x000c, 0x103a: 0x000c, 0x103b: 0x000c,
- // Block 0x41, offset 0x1040
- 0x1040: 0x000a, 0x1044: 0x000a, 0x1045: 0x000a,
- // Block 0x42, offset 0x1080
- 0x109e: 0x000a, 0x109f: 0x000a, 0x10a0: 0x000a, 0x10a1: 0x000a, 0x10a2: 0x000a, 0x10a3: 0x000a,
- 0x10a4: 0x000a, 0x10a5: 0x000a, 0x10a6: 0x000a, 0x10a7: 0x000a, 0x10a8: 0x000a, 0x10a9: 0x000a,
- 0x10aa: 0x000a, 0x10ab: 0x000a, 0x10ac: 0x000a, 0x10ad: 0x000a, 0x10ae: 0x000a, 0x10af: 0x000a,
- 0x10b0: 0x000a, 0x10b1: 0x000a, 0x10b2: 0x000a, 0x10b3: 0x000a, 0x10b4: 0x000a, 0x10b5: 0x000a,
- 0x10b6: 0x000a, 0x10b7: 0x000a, 0x10b8: 0x000a, 0x10b9: 0x000a, 0x10ba: 0x000a, 0x10bb: 0x000a,
- 0x10bc: 0x000a, 0x10bd: 0x000a, 0x10be: 0x000a, 0x10bf: 0x000a,
- // Block 0x43, offset 0x10c0
- 0x10d7: 0x000c,
- 0x10d8: 0x000c, 0x10db: 0x000c,
- // Block 0x44, offset 0x1100
- 0x1116: 0x000c,
- 0x1118: 0x000c, 0x1119: 0x000c, 0x111a: 0x000c, 0x111b: 0x000c, 0x111c: 0x000c, 0x111d: 0x000c,
- 0x111e: 0x000c, 0x1120: 0x000c, 0x1122: 0x000c,
- 0x1125: 0x000c, 0x1126: 0x000c, 0x1127: 0x000c, 0x1128: 0x000c, 0x1129: 0x000c,
- 0x112a: 0x000c, 0x112b: 0x000c, 0x112c: 0x000c,
- 0x1133: 0x000c, 0x1134: 0x000c, 0x1135: 0x000c,
- 0x1136: 0x000c, 0x1137: 0x000c, 0x1138: 0x000c, 0x1139: 0x000c, 0x113a: 0x000c, 0x113b: 0x000c,
- 0x113c: 0x000c, 0x113f: 0x000c,
- // Block 0x45, offset 0x1140
- 0x1170: 0x000c, 0x1171: 0x000c, 0x1172: 0x000c, 0x1173: 0x000c, 0x1174: 0x000c, 0x1175: 0x000c,
- 0x1176: 0x000c, 0x1177: 0x000c, 0x1178: 0x000c, 0x1179: 0x000c, 0x117a: 0x000c, 0x117b: 0x000c,
- 0x117c: 0x000c, 0x117d: 0x000c, 0x117e: 0x000c,
- // Block 0x46, offset 0x1180
- 0x1180: 0x000c, 0x1181: 0x000c, 0x1182: 0x000c, 0x1183: 0x000c,
- 0x11b4: 0x000c,
- 0x11b6: 0x000c, 0x11b7: 0x000c, 0x11b8: 0x000c, 0x11b9: 0x000c, 0x11ba: 0x000c,
- 0x11bc: 0x000c,
- // Block 0x47, offset 0x11c0
- 0x11c2: 0x000c,
- 0x11eb: 0x000c, 0x11ec: 0x000c, 0x11ed: 0x000c, 0x11ee: 0x000c, 0x11ef: 0x000c,
- 0x11f0: 0x000c, 0x11f1: 0x000c, 0x11f2: 0x000c, 0x11f3: 0x000c,
- // Block 0x48, offset 0x1200
- 0x1200: 0x000c, 0x1201: 0x000c,
- 0x1222: 0x000c, 0x1223: 0x000c,
- 0x1224: 0x000c, 0x1225: 0x000c, 0x1228: 0x000c, 0x1229: 0x000c,
- 0x122b: 0x000c, 0x122c: 0x000c, 0x122d: 0x000c,
- // Block 0x49, offset 0x1240
- 0x1266: 0x000c, 0x1268: 0x000c, 0x1269: 0x000c,
- 0x126d: 0x000c, 0x126f: 0x000c,
- 0x1270: 0x000c, 0x1271: 0x000c,
- // Block 0x4a, offset 0x1280
- 0x12ac: 0x000c, 0x12ad: 0x000c, 0x12ae: 0x000c, 0x12af: 0x000c,
- 0x12b0: 0x000c, 0x12b1: 0x000c, 0x12b2: 0x000c, 0x12b3: 0x000c,
- 0x12b6: 0x000c, 0x12b7: 0x000c,
- // Block 0x4b, offset 0x12c0
- 0x12d0: 0x000c, 0x12d1: 0x000c,
- 0x12d2: 0x000c, 0x12d4: 0x000c, 0x12d5: 0x000c, 0x12d6: 0x000c, 0x12d7: 0x000c,
- 0x12d8: 0x000c, 0x12d9: 0x000c, 0x12da: 0x000c, 0x12db: 0x000c, 0x12dc: 0x000c, 0x12dd: 0x000c,
- 0x12de: 0x000c, 0x12df: 0x000c, 0x12e0: 0x000c, 0x12e2: 0x000c, 0x12e3: 0x000c,
- 0x12e4: 0x000c, 0x12e5: 0x000c, 0x12e6: 0x000c, 0x12e7: 0x000c, 0x12e8: 0x000c,
- 0x12ed: 0x000c,
- 0x12f4: 0x000c,
- 0x12f8: 0x000c, 0x12f9: 0x000c,
- // Block 0x4c, offset 0x1300
- 0x1300: 0x000c, 0x1301: 0x000c, 0x1302: 0x000c, 0x1303: 0x000c, 0x1304: 0x000c, 0x1305: 0x000c,
- 0x1306: 0x000c, 0x1307: 0x000c, 0x1308: 0x000c, 0x1309: 0x000c, 0x130a: 0x000c, 0x130b: 0x000c,
- 0x130c: 0x000c, 0x130d: 0x000c, 0x130e: 0x000c, 0x130f: 0x000c, 0x1310: 0x000c, 0x1311: 0x000c,
- 0x1312: 0x000c, 0x1313: 0x000c, 0x1314: 0x000c, 0x1315: 0x000c, 0x1316: 0x000c, 0x1317: 0x000c,
- 0x1318: 0x000c, 0x1319: 0x000c, 0x131a: 0x000c, 0x131b: 0x000c, 0x131c: 0x000c, 0x131d: 0x000c,
- 0x131e: 0x000c, 0x131f: 0x000c, 0x1320: 0x000c, 0x1321: 0x000c, 0x1322: 0x000c, 0x1323: 0x000c,
- 0x1324: 0x000c, 0x1325: 0x000c, 0x1326: 0x000c, 0x1327: 0x000c, 0x1328: 0x000c, 0x1329: 0x000c,
- 0x132a: 0x000c, 0x132b: 0x000c, 0x132c: 0x000c, 0x132d: 0x000c, 0x132e: 0x000c, 0x132f: 0x000c,
- 0x1330: 0x000c, 0x1331: 0x000c, 0x1332: 0x000c, 0x1333: 0x000c, 0x1334: 0x000c, 0x1335: 0x000c,
- 0x1336: 0x000c, 0x1337: 0x000c, 0x1338: 0x000c, 0x1339: 0x000c, 0x133b: 0x000c,
- 0x133c: 0x000c, 0x133d: 0x000c, 0x133e: 0x000c, 0x133f: 0x000c,
- // Block 0x4d, offset 0x1340
- 0x137d: 0x000a, 0x137f: 0x000a,
- // Block 0x4e, offset 0x1380
- 0x1380: 0x000a, 0x1381: 0x000a,
- 0x138d: 0x000a, 0x138e: 0x000a, 0x138f: 0x000a,
- 0x139d: 0x000a,
- 0x139e: 0x000a, 0x139f: 0x000a,
- 0x13ad: 0x000a, 0x13ae: 0x000a, 0x13af: 0x000a,
- 0x13bd: 0x000a, 0x13be: 0x000a,
- // Block 0x4f, offset 0x13c0
- 0x13c0: 0x0009, 0x13c1: 0x0009, 0x13c2: 0x0009, 0x13c3: 0x0009, 0x13c4: 0x0009, 0x13c5: 0x0009,
- 0x13c6: 0x0009, 0x13c7: 0x0009, 0x13c8: 0x0009, 0x13c9: 0x0009, 0x13ca: 0x0009, 0x13cb: 0x000b,
- 0x13cc: 0x000b, 0x13cd: 0x000b, 0x13cf: 0x0001, 0x13d0: 0x000a, 0x13d1: 0x000a,
- 0x13d2: 0x000a, 0x13d3: 0x000a, 0x13d4: 0x000a, 0x13d5: 0x000a, 0x13d6: 0x000a, 0x13d7: 0x000a,
- 0x13d8: 0x000a, 0x13d9: 0x000a, 0x13da: 0x000a, 0x13db: 0x000a, 0x13dc: 0x000a, 0x13dd: 0x000a,
- 0x13de: 0x000a, 0x13df: 0x000a, 0x13e0: 0x000a, 0x13e1: 0x000a, 0x13e2: 0x000a, 0x13e3: 0x000a,
- 0x13e4: 0x000a, 0x13e5: 0x000a, 0x13e6: 0x000a, 0x13e7: 0x000a, 0x13e8: 0x0009, 0x13e9: 0x0007,
- 0x13ea: 0x000e, 0x13eb: 0x000e, 0x13ec: 0x000e, 0x13ed: 0x000e, 0x13ee: 0x000e, 0x13ef: 0x0006,
- 0x13f0: 0x0004, 0x13f1: 0x0004, 0x13f2: 0x0004, 0x13f3: 0x0004, 0x13f4: 0x0004, 0x13f5: 0x000a,
- 0x13f6: 0x000a, 0x13f7: 0x000a, 0x13f8: 0x000a, 0x13f9: 0x000a, 0x13fa: 0x000a, 0x13fb: 0x000a,
- 0x13fc: 0x000a, 0x13fd: 0x000a, 0x13fe: 0x000a, 0x13ff: 0x000a,
- // Block 0x50, offset 0x1400
- 0x1400: 0x000a, 0x1401: 0x000a, 0x1402: 0x000a, 0x1403: 0x000a, 0x1404: 0x0006, 0x1405: 0x009a,
- 0x1406: 0x008a, 0x1407: 0x000a, 0x1408: 0x000a, 0x1409: 0x000a, 0x140a: 0x000a, 0x140b: 0x000a,
- 0x140c: 0x000a, 0x140d: 0x000a, 0x140e: 0x000a, 0x140f: 0x000a, 0x1410: 0x000a, 0x1411: 0x000a,
- 0x1412: 0x000a, 0x1413: 0x000a, 0x1414: 0x000a, 0x1415: 0x000a, 0x1416: 0x000a, 0x1417: 0x000a,
- 0x1418: 0x000a, 0x1419: 0x000a, 0x141a: 0x000a, 0x141b: 0x000a, 0x141c: 0x000a, 0x141d: 0x000a,
- 0x141e: 0x000a, 0x141f: 0x0009, 0x1420: 0x000b, 0x1421: 0x000b, 0x1422: 0x000b, 0x1423: 0x000b,
- 0x1424: 0x000b, 0x1425: 0x000b, 0x1426: 0x000e, 0x1427: 0x000e, 0x1428: 0x000e, 0x1429: 0x000e,
- 0x142a: 0x000b, 0x142b: 0x000b, 0x142c: 0x000b, 0x142d: 0x000b, 0x142e: 0x000b, 0x142f: 0x000b,
- 0x1430: 0x0002, 0x1434: 0x0002, 0x1435: 0x0002,
- 0x1436: 0x0002, 0x1437: 0x0002, 0x1438: 0x0002, 0x1439: 0x0002, 0x143a: 0x0003, 0x143b: 0x0003,
- 0x143c: 0x000a, 0x143d: 0x009a, 0x143e: 0x008a,
- // Block 0x51, offset 0x1440
- 0x1440: 0x0002, 0x1441: 0x0002, 0x1442: 0x0002, 0x1443: 0x0002, 0x1444: 0x0002, 0x1445: 0x0002,
- 0x1446: 0x0002, 0x1447: 0x0002, 0x1448: 0x0002, 0x1449: 0x0002, 0x144a: 0x0003, 0x144b: 0x0003,
- 0x144c: 0x000a, 0x144d: 0x009a, 0x144e: 0x008a,
- 0x1460: 0x0004, 0x1461: 0x0004, 0x1462: 0x0004, 0x1463: 0x0004,
- 0x1464: 0x0004, 0x1465: 0x0004, 0x1466: 0x0004, 0x1467: 0x0004, 0x1468: 0x0004, 0x1469: 0x0004,
- 0x146a: 0x0004, 0x146b: 0x0004, 0x146c: 0x0004, 0x146d: 0x0004, 0x146e: 0x0004, 0x146f: 0x0004,
- 0x1470: 0x0004, 0x1471: 0x0004, 0x1472: 0x0004, 0x1473: 0x0004, 0x1474: 0x0004, 0x1475: 0x0004,
- 0x1476: 0x0004, 0x1477: 0x0004, 0x1478: 0x0004, 0x1479: 0x0004, 0x147a: 0x0004, 0x147b: 0x0004,
- 0x147c: 0x0004, 0x147d: 0x0004, 0x147e: 0x0004, 0x147f: 0x0004,
- // Block 0x52, offset 0x1480
- 0x1480: 0x0004, 0x1481: 0x0004, 0x1482: 0x0004, 0x1483: 0x0004, 0x1484: 0x0004, 0x1485: 0x0004,
- 0x1486: 0x0004, 0x1487: 0x0004, 0x1488: 0x0004, 0x1489: 0x0004, 0x148a: 0x0004, 0x148b: 0x0004,
- 0x148c: 0x0004, 0x148d: 0x0004, 0x148e: 0x0004, 0x148f: 0x0004, 0x1490: 0x000c, 0x1491: 0x000c,
- 0x1492: 0x000c, 0x1493: 0x000c, 0x1494: 0x000c, 0x1495: 0x000c, 0x1496: 0x000c, 0x1497: 0x000c,
- 0x1498: 0x000c, 0x1499: 0x000c, 0x149a: 0x000c, 0x149b: 0x000c, 0x149c: 0x000c, 0x149d: 0x000c,
- 0x149e: 0x000c, 0x149f: 0x000c, 0x14a0: 0x000c, 0x14a1: 0x000c, 0x14a2: 0x000c, 0x14a3: 0x000c,
- 0x14a4: 0x000c, 0x14a5: 0x000c, 0x14a6: 0x000c, 0x14a7: 0x000c, 0x14a8: 0x000c, 0x14a9: 0x000c,
- 0x14aa: 0x000c, 0x14ab: 0x000c, 0x14ac: 0x000c, 0x14ad: 0x000c, 0x14ae: 0x000c, 0x14af: 0x000c,
- 0x14b0: 0x000c,
- // Block 0x53, offset 0x14c0
- 0x14c0: 0x000a, 0x14c1: 0x000a, 0x14c3: 0x000a, 0x14c4: 0x000a, 0x14c5: 0x000a,
- 0x14c6: 0x000a, 0x14c8: 0x000a, 0x14c9: 0x000a,
- 0x14d4: 0x000a, 0x14d6: 0x000a, 0x14d7: 0x000a,
- 0x14d8: 0x000a,
- 0x14de: 0x000a, 0x14df: 0x000a, 0x14e0: 0x000a, 0x14e1: 0x000a, 0x14e2: 0x000a, 0x14e3: 0x000a,
- 0x14e5: 0x000a, 0x14e7: 0x000a, 0x14e9: 0x000a,
- 0x14ee: 0x0004,
- 0x14fa: 0x000a, 0x14fb: 0x000a,
- // Block 0x54, offset 0x1500
- 0x1500: 0x000a, 0x1501: 0x000a, 0x1502: 0x000a, 0x1503: 0x000a, 0x1504: 0x000a,
- 0x150a: 0x000a, 0x150b: 0x000a,
- 0x150c: 0x000a, 0x150d: 0x000a, 0x1510: 0x000a, 0x1511: 0x000a,
- 0x1512: 0x000a, 0x1513: 0x000a, 0x1514: 0x000a, 0x1515: 0x000a, 0x1516: 0x000a, 0x1517: 0x000a,
- 0x1518: 0x000a, 0x1519: 0x000a, 0x151a: 0x000a, 0x151b: 0x000a, 0x151c: 0x000a, 0x151d: 0x000a,
- 0x151e: 0x000a, 0x151f: 0x000a,
- // Block 0x55, offset 0x1540
- 0x1549: 0x000a, 0x154a: 0x000a, 0x154b: 0x000a,
- 0x1550: 0x000a, 0x1551: 0x000a,
- 0x1552: 0x000a, 0x1553: 0x000a, 0x1554: 0x000a, 0x1555: 0x000a, 0x1556: 0x000a, 0x1557: 0x000a,
- 0x1558: 0x000a, 0x1559: 0x000a, 0x155a: 0x000a, 0x155b: 0x000a, 0x155c: 0x000a, 0x155d: 0x000a,
- 0x155e: 0x000a, 0x155f: 0x000a, 0x1560: 0x000a, 0x1561: 0x000a, 0x1562: 0x000a, 0x1563: 0x000a,
- 0x1564: 0x000a, 0x1565: 0x000a, 0x1566: 0x000a, 0x1567: 0x000a, 0x1568: 0x000a, 0x1569: 0x000a,
- 0x156a: 0x000a, 0x156b: 0x000a, 0x156c: 0x000a, 0x156d: 0x000a, 0x156e: 0x000a, 0x156f: 0x000a,
- 0x1570: 0x000a, 0x1571: 0x000a, 0x1572: 0x000a, 0x1573: 0x000a, 0x1574: 0x000a, 0x1575: 0x000a,
- 0x1576: 0x000a, 0x1577: 0x000a, 0x1578: 0x000a, 0x1579: 0x000a, 0x157a: 0x000a, 0x157b: 0x000a,
- 0x157c: 0x000a, 0x157d: 0x000a, 0x157e: 0x000a, 0x157f: 0x000a,
- // Block 0x56, offset 0x1580
- 0x1580: 0x000a, 0x1581: 0x000a, 0x1582: 0x000a, 0x1583: 0x000a, 0x1584: 0x000a, 0x1585: 0x000a,
- 0x1586: 0x000a, 0x1587: 0x000a, 0x1588: 0x000a, 0x1589: 0x000a, 0x158a: 0x000a, 0x158b: 0x000a,
- 0x158c: 0x000a, 0x158d: 0x000a, 0x158e: 0x000a, 0x158f: 0x000a, 0x1590: 0x000a, 0x1591: 0x000a,
- 0x1592: 0x000a, 0x1593: 0x000a, 0x1594: 0x000a, 0x1595: 0x000a, 0x1596: 0x000a, 0x1597: 0x000a,
- 0x1598: 0x000a, 0x1599: 0x000a, 0x159a: 0x000a, 0x159b: 0x000a, 0x159c: 0x000a, 0x159d: 0x000a,
- 0x159e: 0x000a, 0x159f: 0x000a, 0x15a0: 0x000a, 0x15a1: 0x000a, 0x15a2: 0x000a, 0x15a3: 0x000a,
- 0x15a4: 0x000a, 0x15a5: 0x000a, 0x15a6: 0x000a, 0x15a7: 0x000a, 0x15a8: 0x000a, 0x15a9: 0x000a,
- 0x15aa: 0x000a, 0x15ab: 0x000a, 0x15ac: 0x000a, 0x15ad: 0x000a, 0x15ae: 0x000a, 0x15af: 0x000a,
- 0x15b0: 0x000a, 0x15b1: 0x000a, 0x15b2: 0x000a, 0x15b3: 0x000a, 0x15b4: 0x000a, 0x15b5: 0x000a,
- 0x15b6: 0x000a, 0x15b7: 0x000a, 0x15b8: 0x000a, 0x15b9: 0x000a, 0x15ba: 0x000a, 0x15bb: 0x000a,
- 0x15bc: 0x000a, 0x15bd: 0x000a, 0x15be: 0x000a, 0x15bf: 0x000a,
- // Block 0x57, offset 0x15c0
- 0x15c0: 0x000a, 0x15c1: 0x000a, 0x15c2: 0x000a, 0x15c3: 0x000a, 0x15c4: 0x000a, 0x15c5: 0x000a,
- 0x15c6: 0x000a, 0x15c7: 0x000a, 0x15c8: 0x000a, 0x15c9: 0x000a, 0x15ca: 0x000a, 0x15cb: 0x000a,
- 0x15cc: 0x000a, 0x15cd: 0x000a, 0x15ce: 0x000a, 0x15cf: 0x000a, 0x15d0: 0x000a, 0x15d1: 0x000a,
- 0x15d2: 0x0003, 0x15d3: 0x0004, 0x15d4: 0x000a, 0x15d5: 0x000a, 0x15d6: 0x000a, 0x15d7: 0x000a,
- 0x15d8: 0x000a, 0x15d9: 0x000a, 0x15da: 0x000a, 0x15db: 0x000a, 0x15dc: 0x000a, 0x15dd: 0x000a,
- 0x15de: 0x000a, 0x15df: 0x000a, 0x15e0: 0x000a, 0x15e1: 0x000a, 0x15e2: 0x000a, 0x15e3: 0x000a,
- 0x15e4: 0x000a, 0x15e5: 0x000a, 0x15e6: 0x000a, 0x15e7: 0x000a, 0x15e8: 0x000a, 0x15e9: 0x000a,
- 0x15ea: 0x000a, 0x15eb: 0x000a, 0x15ec: 0x000a, 0x15ed: 0x000a, 0x15ee: 0x000a, 0x15ef: 0x000a,
- 0x15f0: 0x000a, 0x15f1: 0x000a, 0x15f2: 0x000a, 0x15f3: 0x000a, 0x15f4: 0x000a, 0x15f5: 0x000a,
- 0x15f6: 0x000a, 0x15f7: 0x000a, 0x15f8: 0x000a, 0x15f9: 0x000a, 0x15fa: 0x000a, 0x15fb: 0x000a,
- 0x15fc: 0x000a, 0x15fd: 0x000a, 0x15fe: 0x000a, 0x15ff: 0x000a,
- // Block 0x58, offset 0x1600
- 0x1600: 0x000a, 0x1601: 0x000a, 0x1602: 0x000a, 0x1603: 0x000a, 0x1604: 0x000a, 0x1605: 0x000a,
- 0x1606: 0x000a, 0x1607: 0x000a, 0x1608: 0x003a, 0x1609: 0x002a, 0x160a: 0x003a, 0x160b: 0x002a,
- 0x160c: 0x000a, 0x160d: 0x000a, 0x160e: 0x000a, 0x160f: 0x000a, 0x1610: 0x000a, 0x1611: 0x000a,
- 0x1612: 0x000a, 0x1613: 0x000a, 0x1614: 0x000a, 0x1615: 0x000a, 0x1616: 0x000a, 0x1617: 0x000a,
- 0x1618: 0x000a, 0x1619: 0x000a, 0x161a: 0x000a, 0x161b: 0x000a, 0x161c: 0x000a, 0x161d: 0x000a,
- 0x161e: 0x000a, 0x161f: 0x000a, 0x1620: 0x000a, 0x1621: 0x000a, 0x1622: 0x000a, 0x1623: 0x000a,
- 0x1624: 0x000a, 0x1625: 0x000a, 0x1626: 0x000a, 0x1627: 0x000a, 0x1628: 0x000a, 0x1629: 0x009a,
- 0x162a: 0x008a, 0x162b: 0x000a, 0x162c: 0x000a, 0x162d: 0x000a, 0x162e: 0x000a, 0x162f: 0x000a,
- 0x1630: 0x000a, 0x1631: 0x000a, 0x1632: 0x000a, 0x1633: 0x000a, 0x1634: 0x000a, 0x1635: 0x000a,
- // Block 0x59, offset 0x1640
- 0x167b: 0x000a,
- 0x167c: 0x000a, 0x167d: 0x000a, 0x167e: 0x000a, 0x167f: 0x000a,
- // Block 0x5a, offset 0x1680
- 0x1680: 0x000a, 0x1681: 0x000a, 0x1682: 0x000a, 0x1683: 0x000a, 0x1684: 0x000a, 0x1685: 0x000a,
- 0x1686: 0x000a, 0x1687: 0x000a, 0x1688: 0x000a, 0x1689: 0x000a, 0x168a: 0x000a, 0x168b: 0x000a,
- 0x168c: 0x000a, 0x168d: 0x000a, 0x168e: 0x000a, 0x168f: 0x000a, 0x1690: 0x000a, 0x1691: 0x000a,
- 0x1692: 0x000a, 0x1693: 0x000a, 0x1694: 0x000a, 0x1696: 0x000a, 0x1697: 0x000a,
- 0x1698: 0x000a, 0x1699: 0x000a, 0x169a: 0x000a, 0x169b: 0x000a, 0x169c: 0x000a, 0x169d: 0x000a,
- 0x169e: 0x000a, 0x169f: 0x000a, 0x16a0: 0x000a, 0x16a1: 0x000a, 0x16a2: 0x000a, 0x16a3: 0x000a,
- 0x16a4: 0x000a, 0x16a5: 0x000a, 0x16a6: 0x000a, 0x16a7: 0x000a, 0x16a8: 0x000a, 0x16a9: 0x000a,
- 0x16aa: 0x000a, 0x16ab: 0x000a, 0x16ac: 0x000a, 0x16ad: 0x000a, 0x16ae: 0x000a, 0x16af: 0x000a,
- 0x16b0: 0x000a, 0x16b1: 0x000a, 0x16b2: 0x000a, 0x16b3: 0x000a, 0x16b4: 0x000a, 0x16b5: 0x000a,
- 0x16b6: 0x000a, 0x16b7: 0x000a, 0x16b8: 0x000a, 0x16b9: 0x000a, 0x16ba: 0x000a, 0x16bb: 0x000a,
- 0x16bc: 0x000a, 0x16bd: 0x000a, 0x16be: 0x000a, 0x16bf: 0x000a,
- // Block 0x5b, offset 0x16c0
- 0x16c0: 0x000a, 0x16c1: 0x000a, 0x16c2: 0x000a, 0x16c3: 0x000a, 0x16c4: 0x000a, 0x16c5: 0x000a,
- 0x16c6: 0x000a, 0x16c7: 0x000a, 0x16c8: 0x000a, 0x16c9: 0x000a, 0x16ca: 0x000a, 0x16cb: 0x000a,
- 0x16cc: 0x000a, 0x16cd: 0x000a, 0x16ce: 0x000a, 0x16cf: 0x000a, 0x16d0: 0x000a, 0x16d1: 0x000a,
- 0x16d2: 0x000a, 0x16d3: 0x000a, 0x16d4: 0x000a, 0x16d5: 0x000a, 0x16d6: 0x000a, 0x16d7: 0x000a,
- 0x16d8: 0x000a, 0x16d9: 0x000a, 0x16da: 0x000a, 0x16db: 0x000a, 0x16dc: 0x000a, 0x16dd: 0x000a,
- 0x16de: 0x000a, 0x16df: 0x000a, 0x16e0: 0x000a, 0x16e1: 0x000a, 0x16e2: 0x000a, 0x16e3: 0x000a,
- 0x16e4: 0x000a, 0x16e5: 0x000a, 0x16e6: 0x000a,
- // Block 0x5c, offset 0x1700
- 0x1700: 0x000a, 0x1701: 0x000a, 0x1702: 0x000a, 0x1703: 0x000a, 0x1704: 0x000a, 0x1705: 0x000a,
- 0x1706: 0x000a, 0x1707: 0x000a, 0x1708: 0x000a, 0x1709: 0x000a, 0x170a: 0x000a,
- 0x1720: 0x000a, 0x1721: 0x000a, 0x1722: 0x000a, 0x1723: 0x000a,
- 0x1724: 0x000a, 0x1725: 0x000a, 0x1726: 0x000a, 0x1727: 0x000a, 0x1728: 0x000a, 0x1729: 0x000a,
- 0x172a: 0x000a, 0x172b: 0x000a, 0x172c: 0x000a, 0x172d: 0x000a, 0x172e: 0x000a, 0x172f: 0x000a,
- 0x1730: 0x000a, 0x1731: 0x000a, 0x1732: 0x000a, 0x1733: 0x000a, 0x1734: 0x000a, 0x1735: 0x000a,
- 0x1736: 0x000a, 0x1737: 0x000a, 0x1738: 0x000a, 0x1739: 0x000a, 0x173a: 0x000a, 0x173b: 0x000a,
- 0x173c: 0x000a, 0x173d: 0x000a, 0x173e: 0x000a, 0x173f: 0x000a,
- // Block 0x5d, offset 0x1740
- 0x1740: 0x000a, 0x1741: 0x000a, 0x1742: 0x000a, 0x1743: 0x000a, 0x1744: 0x000a, 0x1745: 0x000a,
- 0x1746: 0x000a, 0x1747: 0x000a, 0x1748: 0x0002, 0x1749: 0x0002, 0x174a: 0x0002, 0x174b: 0x0002,
- 0x174c: 0x0002, 0x174d: 0x0002, 0x174e: 0x0002, 0x174f: 0x0002, 0x1750: 0x0002, 0x1751: 0x0002,
- 0x1752: 0x0002, 0x1753: 0x0002, 0x1754: 0x0002, 0x1755: 0x0002, 0x1756: 0x0002, 0x1757: 0x0002,
- 0x1758: 0x0002, 0x1759: 0x0002, 0x175a: 0x0002, 0x175b: 0x0002,
- // Block 0x5e, offset 0x1780
- 0x17aa: 0x000a, 0x17ab: 0x000a, 0x17ac: 0x000a, 0x17ad: 0x000a, 0x17ae: 0x000a, 0x17af: 0x000a,
- 0x17b0: 0x000a, 0x17b1: 0x000a, 0x17b2: 0x000a, 0x17b3: 0x000a, 0x17b4: 0x000a, 0x17b5: 0x000a,
- 0x17b6: 0x000a, 0x17b7: 0x000a, 0x17b8: 0x000a, 0x17b9: 0x000a, 0x17ba: 0x000a, 0x17bb: 0x000a,
- 0x17bc: 0x000a, 0x17bd: 0x000a, 0x17be: 0x000a, 0x17bf: 0x000a,
- // Block 0x5f, offset 0x17c0
- 0x17c0: 0x000a, 0x17c1: 0x000a, 0x17c2: 0x000a, 0x17c3: 0x000a, 0x17c4: 0x000a, 0x17c5: 0x000a,
- 0x17c6: 0x000a, 0x17c7: 0x000a, 0x17c8: 0x000a, 0x17c9: 0x000a, 0x17ca: 0x000a, 0x17cb: 0x000a,
- 0x17cc: 0x000a, 0x17cd: 0x000a, 0x17ce: 0x000a, 0x17cf: 0x000a, 0x17d0: 0x000a, 0x17d1: 0x000a,
- 0x17d2: 0x000a, 0x17d3: 0x000a, 0x17d4: 0x000a, 0x17d5: 0x000a, 0x17d6: 0x000a, 0x17d7: 0x000a,
- 0x17d8: 0x000a, 0x17d9: 0x000a, 0x17da: 0x000a, 0x17db: 0x000a, 0x17dc: 0x000a, 0x17dd: 0x000a,
- 0x17de: 0x000a, 0x17df: 0x000a, 0x17e0: 0x000a, 0x17e1: 0x000a, 0x17e2: 0x000a, 0x17e3: 0x000a,
- 0x17e4: 0x000a, 0x17e5: 0x000a, 0x17e6: 0x000a, 0x17e7: 0x000a, 0x17e8: 0x000a, 0x17e9: 0x000a,
- 0x17ea: 0x000a, 0x17eb: 0x000a, 0x17ed: 0x000a, 0x17ee: 0x000a, 0x17ef: 0x000a,
- 0x17f0: 0x000a, 0x17f1: 0x000a, 0x17f2: 0x000a, 0x17f3: 0x000a, 0x17f4: 0x000a, 0x17f5: 0x000a,
- 0x17f6: 0x000a, 0x17f7: 0x000a, 0x17f8: 0x000a, 0x17f9: 0x000a, 0x17fa: 0x000a, 0x17fb: 0x000a,
- 0x17fc: 0x000a, 0x17fd: 0x000a, 0x17fe: 0x000a, 0x17ff: 0x000a,
- // Block 0x60, offset 0x1800
- 0x1800: 0x000a, 0x1801: 0x000a, 0x1802: 0x000a, 0x1803: 0x000a, 0x1804: 0x000a, 0x1805: 0x000a,
- 0x1806: 0x000a, 0x1807: 0x000a, 0x1808: 0x000a, 0x1809: 0x000a, 0x180a: 0x000a, 0x180b: 0x000a,
- 0x180c: 0x000a, 0x180d: 0x000a, 0x180e: 0x000a, 0x180f: 0x000a, 0x1810: 0x000a, 0x1811: 0x000a,
- 0x1812: 0x000a, 0x1813: 0x000a, 0x1814: 0x000a, 0x1815: 0x000a, 0x1816: 0x000a, 0x1817: 0x000a,
- 0x1818: 0x000a, 0x1819: 0x000a, 0x181a: 0x000a, 0x181b: 0x000a, 0x181c: 0x000a, 0x181d: 0x000a,
- 0x181e: 0x000a, 0x181f: 0x000a, 0x1820: 0x000a, 0x1821: 0x000a, 0x1822: 0x000a, 0x1823: 0x000a,
- 0x1824: 0x000a, 0x1825: 0x000a, 0x1826: 0x000a, 0x1827: 0x000a, 0x1828: 0x003a, 0x1829: 0x002a,
- 0x182a: 0x003a, 0x182b: 0x002a, 0x182c: 0x003a, 0x182d: 0x002a, 0x182e: 0x003a, 0x182f: 0x002a,
- 0x1830: 0x003a, 0x1831: 0x002a, 0x1832: 0x003a, 0x1833: 0x002a, 0x1834: 0x003a, 0x1835: 0x002a,
- 0x1836: 0x000a, 0x1837: 0x000a, 0x1838: 0x000a, 0x1839: 0x000a, 0x183a: 0x000a, 0x183b: 0x000a,
- 0x183c: 0x000a, 0x183d: 0x000a, 0x183e: 0x000a, 0x183f: 0x000a,
- // Block 0x61, offset 0x1840
- 0x1840: 0x000a, 0x1841: 0x000a, 0x1842: 0x000a, 0x1843: 0x000a, 0x1844: 0x000a, 0x1845: 0x009a,
- 0x1846: 0x008a, 0x1847: 0x000a, 0x1848: 0x000a, 0x1849: 0x000a, 0x184a: 0x000a, 0x184b: 0x000a,
- 0x184c: 0x000a, 0x184d: 0x000a, 0x184e: 0x000a, 0x184f: 0x000a, 0x1850: 0x000a, 0x1851: 0x000a,
- 0x1852: 0x000a, 0x1853: 0x000a, 0x1854: 0x000a, 0x1855: 0x000a, 0x1856: 0x000a, 0x1857: 0x000a,
- 0x1858: 0x000a, 0x1859: 0x000a, 0x185a: 0x000a, 0x185b: 0x000a, 0x185c: 0x000a, 0x185d: 0x000a,
- 0x185e: 0x000a, 0x185f: 0x000a, 0x1860: 0x000a, 0x1861: 0x000a, 0x1862: 0x000a, 0x1863: 0x000a,
- 0x1864: 0x000a, 0x1865: 0x000a, 0x1866: 0x003a, 0x1867: 0x002a, 0x1868: 0x003a, 0x1869: 0x002a,
- 0x186a: 0x003a, 0x186b: 0x002a, 0x186c: 0x003a, 0x186d: 0x002a, 0x186e: 0x003a, 0x186f: 0x002a,
- 0x1870: 0x000a, 0x1871: 0x000a, 0x1872: 0x000a, 0x1873: 0x000a, 0x1874: 0x000a, 0x1875: 0x000a,
- 0x1876: 0x000a, 0x1877: 0x000a, 0x1878: 0x000a, 0x1879: 0x000a, 0x187a: 0x000a, 0x187b: 0x000a,
- 0x187c: 0x000a, 0x187d: 0x000a, 0x187e: 0x000a, 0x187f: 0x000a,
- // Block 0x62, offset 0x1880
- 0x1880: 0x000a, 0x1881: 0x000a, 0x1882: 0x000a, 0x1883: 0x007a, 0x1884: 0x006a, 0x1885: 0x009a,
- 0x1886: 0x008a, 0x1887: 0x00ba, 0x1888: 0x00aa, 0x1889: 0x009a, 0x188a: 0x008a, 0x188b: 0x007a,
- 0x188c: 0x006a, 0x188d: 0x00da, 0x188e: 0x002a, 0x188f: 0x003a, 0x1890: 0x00ca, 0x1891: 0x009a,
- 0x1892: 0x008a, 0x1893: 0x007a, 0x1894: 0x006a, 0x1895: 0x009a, 0x1896: 0x008a, 0x1897: 0x00ba,
- 0x1898: 0x00aa, 0x1899: 0x000a, 0x189a: 0x000a, 0x189b: 0x000a, 0x189c: 0x000a, 0x189d: 0x000a,
- 0x189e: 0x000a, 0x189f: 0x000a, 0x18a0: 0x000a, 0x18a1: 0x000a, 0x18a2: 0x000a, 0x18a3: 0x000a,
- 0x18a4: 0x000a, 0x18a5: 0x000a, 0x18a6: 0x000a, 0x18a7: 0x000a, 0x18a8: 0x000a, 0x18a9: 0x000a,
- 0x18aa: 0x000a, 0x18ab: 0x000a, 0x18ac: 0x000a, 0x18ad: 0x000a, 0x18ae: 0x000a, 0x18af: 0x000a,
- 0x18b0: 0x000a, 0x18b1: 0x000a, 0x18b2: 0x000a, 0x18b3: 0x000a, 0x18b4: 0x000a, 0x18b5: 0x000a,
- 0x18b6: 0x000a, 0x18b7: 0x000a, 0x18b8: 0x000a, 0x18b9: 0x000a, 0x18ba: 0x000a, 0x18bb: 0x000a,
- 0x18bc: 0x000a, 0x18bd: 0x000a, 0x18be: 0x000a, 0x18bf: 0x000a,
- // Block 0x63, offset 0x18c0
- 0x18c0: 0x000a, 0x18c1: 0x000a, 0x18c2: 0x000a, 0x18c3: 0x000a, 0x18c4: 0x000a, 0x18c5: 0x000a,
- 0x18c6: 0x000a, 0x18c7: 0x000a, 0x18c8: 0x000a, 0x18c9: 0x000a, 0x18ca: 0x000a, 0x18cb: 0x000a,
- 0x18cc: 0x000a, 0x18cd: 0x000a, 0x18ce: 0x000a, 0x18cf: 0x000a, 0x18d0: 0x000a, 0x18d1: 0x000a,
- 0x18d2: 0x000a, 0x18d3: 0x000a, 0x18d4: 0x000a, 0x18d5: 0x000a, 0x18d6: 0x000a, 0x18d7: 0x000a,
- 0x18d8: 0x003a, 0x18d9: 0x002a, 0x18da: 0x003a, 0x18db: 0x002a, 0x18dc: 0x000a, 0x18dd: 0x000a,
- 0x18de: 0x000a, 0x18df: 0x000a, 0x18e0: 0x000a, 0x18e1: 0x000a, 0x18e2: 0x000a, 0x18e3: 0x000a,
- 0x18e4: 0x000a, 0x18e5: 0x000a, 0x18e6: 0x000a, 0x18e7: 0x000a, 0x18e8: 0x000a, 0x18e9: 0x000a,
- 0x18ea: 0x000a, 0x18eb: 0x000a, 0x18ec: 0x000a, 0x18ed: 0x000a, 0x18ee: 0x000a, 0x18ef: 0x000a,
- 0x18f0: 0x000a, 0x18f1: 0x000a, 0x18f2: 0x000a, 0x18f3: 0x000a, 0x18f4: 0x000a, 0x18f5: 0x000a,
- 0x18f6: 0x000a, 0x18f7: 0x000a, 0x18f8: 0x000a, 0x18f9: 0x000a, 0x18fa: 0x000a, 0x18fb: 0x000a,
- 0x18fc: 0x003a, 0x18fd: 0x002a, 0x18fe: 0x000a, 0x18ff: 0x000a,
- // Block 0x64, offset 0x1900
- 0x1900: 0x000a, 0x1901: 0x000a, 0x1902: 0x000a, 0x1903: 0x000a, 0x1904: 0x000a, 0x1905: 0x000a,
- 0x1906: 0x000a, 0x1907: 0x000a, 0x1908: 0x000a, 0x1909: 0x000a, 0x190a: 0x000a, 0x190b: 0x000a,
- 0x190c: 0x000a, 0x190d: 0x000a, 0x190e: 0x000a, 0x190f: 0x000a, 0x1910: 0x000a, 0x1911: 0x000a,
- 0x1912: 0x000a, 0x1913: 0x000a, 0x1914: 0x000a, 0x1915: 0x000a, 0x1916: 0x000a, 0x1917: 0x000a,
- 0x1918: 0x000a, 0x1919: 0x000a, 0x191a: 0x000a, 0x191b: 0x000a, 0x191c: 0x000a, 0x191d: 0x000a,
- 0x191e: 0x000a, 0x191f: 0x000a, 0x1920: 0x000a, 0x1921: 0x000a, 0x1922: 0x000a, 0x1923: 0x000a,
- 0x1924: 0x000a, 0x1925: 0x000a, 0x1926: 0x000a, 0x1927: 0x000a, 0x1928: 0x000a, 0x1929: 0x000a,
- 0x192a: 0x000a, 0x192b: 0x000a, 0x192c: 0x000a, 0x192d: 0x000a, 0x192e: 0x000a, 0x192f: 0x000a,
- 0x1930: 0x000a, 0x1931: 0x000a, 0x1932: 0x000a, 0x1933: 0x000a,
- 0x1936: 0x000a, 0x1937: 0x000a, 0x1938: 0x000a, 0x1939: 0x000a, 0x193a: 0x000a, 0x193b: 0x000a,
- 0x193c: 0x000a, 0x193d: 0x000a, 0x193e: 0x000a, 0x193f: 0x000a,
- // Block 0x65, offset 0x1940
- 0x1940: 0x000a, 0x1941: 0x000a, 0x1942: 0x000a, 0x1943: 0x000a, 0x1944: 0x000a, 0x1945: 0x000a,
- 0x1946: 0x000a, 0x1947: 0x000a, 0x1948: 0x000a, 0x1949: 0x000a, 0x194a: 0x000a, 0x194b: 0x000a,
- 0x194c: 0x000a, 0x194d: 0x000a, 0x194e: 0x000a, 0x194f: 0x000a, 0x1950: 0x000a, 0x1951: 0x000a,
- 0x1952: 0x000a, 0x1953: 0x000a, 0x1954: 0x000a, 0x1955: 0x000a,
- 0x1958: 0x000a, 0x1959: 0x000a, 0x195a: 0x000a, 0x195b: 0x000a, 0x195c: 0x000a, 0x195d: 0x000a,
- 0x195e: 0x000a, 0x195f: 0x000a, 0x1960: 0x000a, 0x1961: 0x000a, 0x1962: 0x000a, 0x1963: 0x000a,
- 0x1964: 0x000a, 0x1965: 0x000a, 0x1966: 0x000a, 0x1967: 0x000a, 0x1968: 0x000a, 0x1969: 0x000a,
- 0x196a: 0x000a, 0x196b: 0x000a, 0x196c: 0x000a, 0x196d: 0x000a, 0x196e: 0x000a, 0x196f: 0x000a,
- 0x1970: 0x000a, 0x1971: 0x000a, 0x1972: 0x000a, 0x1973: 0x000a, 0x1974: 0x000a, 0x1975: 0x000a,
- 0x1976: 0x000a, 0x1977: 0x000a, 0x1978: 0x000a, 0x1979: 0x000a,
- 0x197d: 0x000a, 0x197e: 0x000a, 0x197f: 0x000a,
- // Block 0x66, offset 0x1980
- 0x1980: 0x000a, 0x1981: 0x000a, 0x1982: 0x000a, 0x1983: 0x000a, 0x1984: 0x000a, 0x1985: 0x000a,
- 0x1986: 0x000a, 0x1987: 0x000a, 0x1988: 0x000a, 0x198a: 0x000a, 0x198b: 0x000a,
- 0x198c: 0x000a, 0x198d: 0x000a, 0x198e: 0x000a, 0x198f: 0x000a, 0x1990: 0x000a, 0x1991: 0x000a,
- 0x1992: 0x000a,
- 0x19ac: 0x000a, 0x19ad: 0x000a, 0x19ae: 0x000a, 0x19af: 0x000a,
- // Block 0x67, offset 0x19c0
- 0x19e5: 0x000a, 0x19e6: 0x000a, 0x19e7: 0x000a, 0x19e8: 0x000a, 0x19e9: 0x000a,
- 0x19ea: 0x000a, 0x19ef: 0x000c,
- 0x19f0: 0x000c, 0x19f1: 0x000c,
- 0x19f9: 0x000a, 0x19fa: 0x000a, 0x19fb: 0x000a,
- 0x19fc: 0x000a, 0x19fd: 0x000a, 0x19fe: 0x000a, 0x19ff: 0x000a,
- // Block 0x68, offset 0x1a00
- 0x1a3f: 0x000c,
- // Block 0x69, offset 0x1a40
- 0x1a60: 0x000c, 0x1a61: 0x000c, 0x1a62: 0x000c, 0x1a63: 0x000c,
- 0x1a64: 0x000c, 0x1a65: 0x000c, 0x1a66: 0x000c, 0x1a67: 0x000c, 0x1a68: 0x000c, 0x1a69: 0x000c,
- 0x1a6a: 0x000c, 0x1a6b: 0x000c, 0x1a6c: 0x000c, 0x1a6d: 0x000c, 0x1a6e: 0x000c, 0x1a6f: 0x000c,
- 0x1a70: 0x000c, 0x1a71: 0x000c, 0x1a72: 0x000c, 0x1a73: 0x000c, 0x1a74: 0x000c, 0x1a75: 0x000c,
- 0x1a76: 0x000c, 0x1a77: 0x000c, 0x1a78: 0x000c, 0x1a79: 0x000c, 0x1a7a: 0x000c, 0x1a7b: 0x000c,
- 0x1a7c: 0x000c, 0x1a7d: 0x000c, 0x1a7e: 0x000c, 0x1a7f: 0x000c,
- // Block 0x6a, offset 0x1a80
- 0x1a80: 0x000a, 0x1a81: 0x000a, 0x1a82: 0x000a, 0x1a83: 0x000a, 0x1a84: 0x000a, 0x1a85: 0x000a,
- 0x1a86: 0x000a, 0x1a87: 0x000a, 0x1a88: 0x000a, 0x1a89: 0x000a, 0x1a8a: 0x000a, 0x1a8b: 0x000a,
- 0x1a8c: 0x000a, 0x1a8d: 0x000a, 0x1a8e: 0x000a, 0x1a8f: 0x000a, 0x1a90: 0x000a, 0x1a91: 0x000a,
- 0x1a92: 0x000a, 0x1a93: 0x000a, 0x1a94: 0x000a, 0x1a95: 0x000a, 0x1a96: 0x000a, 0x1a97: 0x000a,
- 0x1a98: 0x000a, 0x1a99: 0x000a, 0x1a9a: 0x000a, 0x1a9b: 0x000a, 0x1a9c: 0x000a, 0x1a9d: 0x000a,
- 0x1a9e: 0x000a, 0x1a9f: 0x000a, 0x1aa0: 0x000a, 0x1aa1: 0x000a, 0x1aa2: 0x003a, 0x1aa3: 0x002a,
- 0x1aa4: 0x003a, 0x1aa5: 0x002a, 0x1aa6: 0x003a, 0x1aa7: 0x002a, 0x1aa8: 0x003a, 0x1aa9: 0x002a,
- 0x1aaa: 0x000a, 0x1aab: 0x000a, 0x1aac: 0x000a, 0x1aad: 0x000a, 0x1aae: 0x000a, 0x1aaf: 0x000a,
- 0x1ab0: 0x000a, 0x1ab1: 0x000a, 0x1ab2: 0x000a, 0x1ab3: 0x000a, 0x1ab4: 0x000a, 0x1ab5: 0x000a,
- 0x1ab6: 0x000a, 0x1ab7: 0x000a, 0x1ab8: 0x000a, 0x1ab9: 0x000a, 0x1aba: 0x000a, 0x1abb: 0x000a,
- 0x1abc: 0x000a, 0x1abd: 0x000a, 0x1abe: 0x000a, 0x1abf: 0x000a,
- // Block 0x6b, offset 0x1ac0
- 0x1ac0: 0x000a, 0x1ac1: 0x000a, 0x1ac2: 0x000a, 0x1ac3: 0x000a, 0x1ac4: 0x000a, 0x1ac5: 0x000a,
- 0x1ac6: 0x000a, 0x1ac7: 0x000a, 0x1ac8: 0x000a, 0x1ac9: 0x000a,
- // Block 0x6c, offset 0x1b00
- 0x1b00: 0x000a, 0x1b01: 0x000a, 0x1b02: 0x000a, 0x1b03: 0x000a, 0x1b04: 0x000a, 0x1b05: 0x000a,
- 0x1b06: 0x000a, 0x1b07: 0x000a, 0x1b08: 0x000a, 0x1b09: 0x000a, 0x1b0a: 0x000a, 0x1b0b: 0x000a,
- 0x1b0c: 0x000a, 0x1b0d: 0x000a, 0x1b0e: 0x000a, 0x1b0f: 0x000a, 0x1b10: 0x000a, 0x1b11: 0x000a,
- 0x1b12: 0x000a, 0x1b13: 0x000a, 0x1b14: 0x000a, 0x1b15: 0x000a, 0x1b16: 0x000a, 0x1b17: 0x000a,
- 0x1b18: 0x000a, 0x1b19: 0x000a, 0x1b1b: 0x000a, 0x1b1c: 0x000a, 0x1b1d: 0x000a,
- 0x1b1e: 0x000a, 0x1b1f: 0x000a, 0x1b20: 0x000a, 0x1b21: 0x000a, 0x1b22: 0x000a, 0x1b23: 0x000a,
- 0x1b24: 0x000a, 0x1b25: 0x000a, 0x1b26: 0x000a, 0x1b27: 0x000a, 0x1b28: 0x000a, 0x1b29: 0x000a,
- 0x1b2a: 0x000a, 0x1b2b: 0x000a, 0x1b2c: 0x000a, 0x1b2d: 0x000a, 0x1b2e: 0x000a, 0x1b2f: 0x000a,
- 0x1b30: 0x000a, 0x1b31: 0x000a, 0x1b32: 0x000a, 0x1b33: 0x000a, 0x1b34: 0x000a, 0x1b35: 0x000a,
- 0x1b36: 0x000a, 0x1b37: 0x000a, 0x1b38: 0x000a, 0x1b39: 0x000a, 0x1b3a: 0x000a, 0x1b3b: 0x000a,
- 0x1b3c: 0x000a, 0x1b3d: 0x000a, 0x1b3e: 0x000a, 0x1b3f: 0x000a,
- // Block 0x6d, offset 0x1b40
- 0x1b40: 0x000a, 0x1b41: 0x000a, 0x1b42: 0x000a, 0x1b43: 0x000a, 0x1b44: 0x000a, 0x1b45: 0x000a,
- 0x1b46: 0x000a, 0x1b47: 0x000a, 0x1b48: 0x000a, 0x1b49: 0x000a, 0x1b4a: 0x000a, 0x1b4b: 0x000a,
- 0x1b4c: 0x000a, 0x1b4d: 0x000a, 0x1b4e: 0x000a, 0x1b4f: 0x000a, 0x1b50: 0x000a, 0x1b51: 0x000a,
- 0x1b52: 0x000a, 0x1b53: 0x000a, 0x1b54: 0x000a, 0x1b55: 0x000a, 0x1b56: 0x000a, 0x1b57: 0x000a,
- 0x1b58: 0x000a, 0x1b59: 0x000a, 0x1b5a: 0x000a, 0x1b5b: 0x000a, 0x1b5c: 0x000a, 0x1b5d: 0x000a,
- 0x1b5e: 0x000a, 0x1b5f: 0x000a, 0x1b60: 0x000a, 0x1b61: 0x000a, 0x1b62: 0x000a, 0x1b63: 0x000a,
- 0x1b64: 0x000a, 0x1b65: 0x000a, 0x1b66: 0x000a, 0x1b67: 0x000a, 0x1b68: 0x000a, 0x1b69: 0x000a,
- 0x1b6a: 0x000a, 0x1b6b: 0x000a, 0x1b6c: 0x000a, 0x1b6d: 0x000a, 0x1b6e: 0x000a, 0x1b6f: 0x000a,
- 0x1b70: 0x000a, 0x1b71: 0x000a, 0x1b72: 0x000a, 0x1b73: 0x000a,
- // Block 0x6e, offset 0x1b80
- 0x1b80: 0x000a, 0x1b81: 0x000a, 0x1b82: 0x000a, 0x1b83: 0x000a, 0x1b84: 0x000a, 0x1b85: 0x000a,
- 0x1b86: 0x000a, 0x1b87: 0x000a, 0x1b88: 0x000a, 0x1b89: 0x000a, 0x1b8a: 0x000a, 0x1b8b: 0x000a,
- 0x1b8c: 0x000a, 0x1b8d: 0x000a, 0x1b8e: 0x000a, 0x1b8f: 0x000a, 0x1b90: 0x000a, 0x1b91: 0x000a,
- 0x1b92: 0x000a, 0x1b93: 0x000a, 0x1b94: 0x000a, 0x1b95: 0x000a,
- 0x1bb0: 0x000a, 0x1bb1: 0x000a, 0x1bb2: 0x000a, 0x1bb3: 0x000a, 0x1bb4: 0x000a, 0x1bb5: 0x000a,
- 0x1bb6: 0x000a, 0x1bb7: 0x000a, 0x1bb8: 0x000a, 0x1bb9: 0x000a, 0x1bba: 0x000a, 0x1bbb: 0x000a,
- // Block 0x6f, offset 0x1bc0
- 0x1bc0: 0x0009, 0x1bc1: 0x000a, 0x1bc2: 0x000a, 0x1bc3: 0x000a, 0x1bc4: 0x000a,
- 0x1bc8: 0x003a, 0x1bc9: 0x002a, 0x1bca: 0x003a, 0x1bcb: 0x002a,
- 0x1bcc: 0x003a, 0x1bcd: 0x002a, 0x1bce: 0x003a, 0x1bcf: 0x002a, 0x1bd0: 0x003a, 0x1bd1: 0x002a,
- 0x1bd2: 0x000a, 0x1bd3: 0x000a, 0x1bd4: 0x003a, 0x1bd5: 0x002a, 0x1bd6: 0x003a, 0x1bd7: 0x002a,
- 0x1bd8: 0x003a, 0x1bd9: 0x002a, 0x1bda: 0x003a, 0x1bdb: 0x002a, 0x1bdc: 0x000a, 0x1bdd: 0x000a,
- 0x1bde: 0x000a, 0x1bdf: 0x000a, 0x1be0: 0x000a,
- 0x1bea: 0x000c, 0x1beb: 0x000c, 0x1bec: 0x000c, 0x1bed: 0x000c,
- 0x1bf0: 0x000a,
- 0x1bf6: 0x000a, 0x1bf7: 0x000a,
- 0x1bfd: 0x000a, 0x1bfe: 0x000a, 0x1bff: 0x000a,
- // Block 0x70, offset 0x1c00
- 0x1c19: 0x000c, 0x1c1a: 0x000c, 0x1c1b: 0x000a, 0x1c1c: 0x000a,
- 0x1c20: 0x000a,
- // Block 0x71, offset 0x1c40
- 0x1c7b: 0x000a,
- // Block 0x72, offset 0x1c80
- 0x1c80: 0x000a, 0x1c81: 0x000a, 0x1c82: 0x000a, 0x1c83: 0x000a, 0x1c84: 0x000a, 0x1c85: 0x000a,
- 0x1c86: 0x000a, 0x1c87: 0x000a, 0x1c88: 0x000a, 0x1c89: 0x000a, 0x1c8a: 0x000a, 0x1c8b: 0x000a,
- 0x1c8c: 0x000a, 0x1c8d: 0x000a, 0x1c8e: 0x000a, 0x1c8f: 0x000a, 0x1c90: 0x000a, 0x1c91: 0x000a,
- 0x1c92: 0x000a, 0x1c93: 0x000a, 0x1c94: 0x000a, 0x1c95: 0x000a, 0x1c96: 0x000a, 0x1c97: 0x000a,
- 0x1c98: 0x000a, 0x1c99: 0x000a, 0x1c9a: 0x000a, 0x1c9b: 0x000a, 0x1c9c: 0x000a, 0x1c9d: 0x000a,
- 0x1c9e: 0x000a, 0x1c9f: 0x000a, 0x1ca0: 0x000a, 0x1ca1: 0x000a, 0x1ca2: 0x000a, 0x1ca3: 0x000a,
- // Block 0x73, offset 0x1cc0
- 0x1cdd: 0x000a,
- 0x1cde: 0x000a,
- // Block 0x74, offset 0x1d00
- 0x1d10: 0x000a, 0x1d11: 0x000a,
- 0x1d12: 0x000a, 0x1d13: 0x000a, 0x1d14: 0x000a, 0x1d15: 0x000a, 0x1d16: 0x000a, 0x1d17: 0x000a,
- 0x1d18: 0x000a, 0x1d19: 0x000a, 0x1d1a: 0x000a, 0x1d1b: 0x000a, 0x1d1c: 0x000a, 0x1d1d: 0x000a,
- 0x1d1e: 0x000a, 0x1d1f: 0x000a,
- 0x1d3c: 0x000a, 0x1d3d: 0x000a, 0x1d3e: 0x000a,
- // Block 0x75, offset 0x1d40
- 0x1d71: 0x000a, 0x1d72: 0x000a, 0x1d73: 0x000a, 0x1d74: 0x000a, 0x1d75: 0x000a,
- 0x1d76: 0x000a, 0x1d77: 0x000a, 0x1d78: 0x000a, 0x1d79: 0x000a, 0x1d7a: 0x000a, 0x1d7b: 0x000a,
- 0x1d7c: 0x000a, 0x1d7d: 0x000a, 0x1d7e: 0x000a, 0x1d7f: 0x000a,
- // Block 0x76, offset 0x1d80
- 0x1d8c: 0x000a, 0x1d8d: 0x000a, 0x1d8e: 0x000a, 0x1d8f: 0x000a,
- // Block 0x77, offset 0x1dc0
- 0x1df7: 0x000a, 0x1df8: 0x000a, 0x1df9: 0x000a, 0x1dfa: 0x000a,
- // Block 0x78, offset 0x1e00
- 0x1e1e: 0x000a, 0x1e1f: 0x000a,
- 0x1e3f: 0x000a,
- // Block 0x79, offset 0x1e40
- 0x1e50: 0x000a, 0x1e51: 0x000a,
- 0x1e52: 0x000a, 0x1e53: 0x000a, 0x1e54: 0x000a, 0x1e55: 0x000a, 0x1e56: 0x000a, 0x1e57: 0x000a,
- 0x1e58: 0x000a, 0x1e59: 0x000a, 0x1e5a: 0x000a, 0x1e5b: 0x000a, 0x1e5c: 0x000a, 0x1e5d: 0x000a,
- 0x1e5e: 0x000a, 0x1e5f: 0x000a, 0x1e60: 0x000a, 0x1e61: 0x000a, 0x1e62: 0x000a, 0x1e63: 0x000a,
- 0x1e64: 0x000a, 0x1e65: 0x000a, 0x1e66: 0x000a, 0x1e67: 0x000a, 0x1e68: 0x000a, 0x1e69: 0x000a,
- 0x1e6a: 0x000a, 0x1e6b: 0x000a, 0x1e6c: 0x000a, 0x1e6d: 0x000a, 0x1e6e: 0x000a, 0x1e6f: 0x000a,
- 0x1e70: 0x000a, 0x1e71: 0x000a, 0x1e72: 0x000a, 0x1e73: 0x000a, 0x1e74: 0x000a, 0x1e75: 0x000a,
- 0x1e76: 0x000a, 0x1e77: 0x000a, 0x1e78: 0x000a, 0x1e79: 0x000a, 0x1e7a: 0x000a, 0x1e7b: 0x000a,
- 0x1e7c: 0x000a, 0x1e7d: 0x000a, 0x1e7e: 0x000a, 0x1e7f: 0x000a,
- // Block 0x7a, offset 0x1e80
- 0x1e80: 0x000a, 0x1e81: 0x000a, 0x1e82: 0x000a, 0x1e83: 0x000a, 0x1e84: 0x000a, 0x1e85: 0x000a,
- 0x1e86: 0x000a,
- // Block 0x7b, offset 0x1ec0
- 0x1ecd: 0x000a, 0x1ece: 0x000a, 0x1ecf: 0x000a,
- // Block 0x7c, offset 0x1f00
- 0x1f2f: 0x000c,
- 0x1f30: 0x000c, 0x1f31: 0x000c, 0x1f32: 0x000c, 0x1f33: 0x000a, 0x1f34: 0x000c, 0x1f35: 0x000c,
- 0x1f36: 0x000c, 0x1f37: 0x000c, 0x1f38: 0x000c, 0x1f39: 0x000c, 0x1f3a: 0x000c, 0x1f3b: 0x000c,
- 0x1f3c: 0x000c, 0x1f3d: 0x000c, 0x1f3e: 0x000a, 0x1f3f: 0x000a,
- // Block 0x7d, offset 0x1f40
- 0x1f5e: 0x000c, 0x1f5f: 0x000c,
- // Block 0x7e, offset 0x1f80
- 0x1fb0: 0x000c, 0x1fb1: 0x000c,
- // Block 0x7f, offset 0x1fc0
- 0x1fc0: 0x000a, 0x1fc1: 0x000a, 0x1fc2: 0x000a, 0x1fc3: 0x000a, 0x1fc4: 0x000a, 0x1fc5: 0x000a,
- 0x1fc6: 0x000a, 0x1fc7: 0x000a, 0x1fc8: 0x000a, 0x1fc9: 0x000a, 0x1fca: 0x000a, 0x1fcb: 0x000a,
- 0x1fcc: 0x000a, 0x1fcd: 0x000a, 0x1fce: 0x000a, 0x1fcf: 0x000a, 0x1fd0: 0x000a, 0x1fd1: 0x000a,
- 0x1fd2: 0x000a, 0x1fd3: 0x000a, 0x1fd4: 0x000a, 0x1fd5: 0x000a, 0x1fd6: 0x000a, 0x1fd7: 0x000a,
- 0x1fd8: 0x000a, 0x1fd9: 0x000a, 0x1fda: 0x000a, 0x1fdb: 0x000a, 0x1fdc: 0x000a, 0x1fdd: 0x000a,
- 0x1fde: 0x000a, 0x1fdf: 0x000a, 0x1fe0: 0x000a, 0x1fe1: 0x000a,
- // Block 0x80, offset 0x2000
- 0x2008: 0x000a,
- // Block 0x81, offset 0x2040
- 0x2042: 0x000c,
- 0x2046: 0x000c, 0x204b: 0x000c,
- 0x2065: 0x000c, 0x2066: 0x000c, 0x2068: 0x000a, 0x2069: 0x000a,
- 0x206a: 0x000a, 0x206b: 0x000a,
- 0x2078: 0x0004, 0x2079: 0x0004,
- // Block 0x82, offset 0x2080
- 0x20b4: 0x000a, 0x20b5: 0x000a,
- 0x20b6: 0x000a, 0x20b7: 0x000a,
- // Block 0x83, offset 0x20c0
- 0x20c4: 0x000c, 0x20c5: 0x000c,
- 0x20e0: 0x000c, 0x20e1: 0x000c, 0x20e2: 0x000c, 0x20e3: 0x000c,
- 0x20e4: 0x000c, 0x20e5: 0x000c, 0x20e6: 0x000c, 0x20e7: 0x000c, 0x20e8: 0x000c, 0x20e9: 0x000c,
- 0x20ea: 0x000c, 0x20eb: 0x000c, 0x20ec: 0x000c, 0x20ed: 0x000c, 0x20ee: 0x000c, 0x20ef: 0x000c,
- 0x20f0: 0x000c, 0x20f1: 0x000c,
- // Block 0x84, offset 0x2100
- 0x2126: 0x000c, 0x2127: 0x000c, 0x2128: 0x000c, 0x2129: 0x000c,
- 0x212a: 0x000c, 0x212b: 0x000c, 0x212c: 0x000c, 0x212d: 0x000c,
- // Block 0x85, offset 0x2140
- 0x2147: 0x000c, 0x2148: 0x000c, 0x2149: 0x000c, 0x214a: 0x000c, 0x214b: 0x000c,
- 0x214c: 0x000c, 0x214d: 0x000c, 0x214e: 0x000c, 0x214f: 0x000c, 0x2150: 0x000c, 0x2151: 0x000c,
- // Block 0x86, offset 0x2180
- 0x2180: 0x000c, 0x2181: 0x000c, 0x2182: 0x000c,
- 0x21b3: 0x000c,
- 0x21b6: 0x000c, 0x21b7: 0x000c, 0x21b8: 0x000c, 0x21b9: 0x000c,
- 0x21bc: 0x000c,
- // Block 0x87, offset 0x21c0
- 0x21e5: 0x000c,
- // Block 0x88, offset 0x2200
- 0x2229: 0x000c,
- 0x222a: 0x000c, 0x222b: 0x000c, 0x222c: 0x000c, 0x222d: 0x000c, 0x222e: 0x000c,
- 0x2231: 0x000c, 0x2232: 0x000c, 0x2235: 0x000c,
- 0x2236: 0x000c,
- // Block 0x89, offset 0x2240
- 0x2243: 0x000c,
- 0x224c: 0x000c,
- 0x227c: 0x000c,
- // Block 0x8a, offset 0x2280
- 0x22b0: 0x000c, 0x22b2: 0x000c, 0x22b3: 0x000c, 0x22b4: 0x000c,
- 0x22b7: 0x000c, 0x22b8: 0x000c,
- 0x22be: 0x000c, 0x22bf: 0x000c,
- // Block 0x8b, offset 0x22c0
- 0x22c1: 0x000c,
- 0x22ec: 0x000c, 0x22ed: 0x000c,
- 0x22f6: 0x000c,
- // Block 0x8c, offset 0x2300
- 0x2325: 0x000c, 0x2328: 0x000c,
- 0x232d: 0x000c,
- // Block 0x8d, offset 0x2340
- 0x235d: 0x0001,
- 0x235e: 0x000c, 0x235f: 0x0001, 0x2360: 0x0001, 0x2361: 0x0001, 0x2362: 0x0001, 0x2363: 0x0001,
- 0x2364: 0x0001, 0x2365: 0x0001, 0x2366: 0x0001, 0x2367: 0x0001, 0x2368: 0x0001, 0x2369: 0x0003,
- 0x236a: 0x0001, 0x236b: 0x0001, 0x236c: 0x0001, 0x236d: 0x0001, 0x236e: 0x0001, 0x236f: 0x0001,
- 0x2370: 0x0001, 0x2371: 0x0001, 0x2372: 0x0001, 0x2373: 0x0001, 0x2374: 0x0001, 0x2375: 0x0001,
- 0x2376: 0x0001, 0x2377: 0x0001, 0x2378: 0x0001, 0x2379: 0x0001, 0x237a: 0x0001, 0x237b: 0x0001,
- 0x237c: 0x0001, 0x237d: 0x0001, 0x237e: 0x0001, 0x237f: 0x0001,
- // Block 0x8e, offset 0x2380
- 0x2380: 0x0001, 0x2381: 0x0001, 0x2382: 0x0001, 0x2383: 0x0001, 0x2384: 0x0001, 0x2385: 0x0001,
- 0x2386: 0x0001, 0x2387: 0x0001, 0x2388: 0x0001, 0x2389: 0x0001, 0x238a: 0x0001, 0x238b: 0x0001,
- 0x238c: 0x0001, 0x238d: 0x0001, 0x238e: 0x0001, 0x238f: 0x0001, 0x2390: 0x000d, 0x2391: 0x000d,
- 0x2392: 0x000d, 0x2393: 0x000d, 0x2394: 0x000d, 0x2395: 0x000d, 0x2396: 0x000d, 0x2397: 0x000d,
- 0x2398: 0x000d, 0x2399: 0x000d, 0x239a: 0x000d, 0x239b: 0x000d, 0x239c: 0x000d, 0x239d: 0x000d,
- 0x239e: 0x000d, 0x239f: 0x000d, 0x23a0: 0x000d, 0x23a1: 0x000d, 0x23a2: 0x000d, 0x23a3: 0x000d,
- 0x23a4: 0x000d, 0x23a5: 0x000d, 0x23a6: 0x000d, 0x23a7: 0x000d, 0x23a8: 0x000d, 0x23a9: 0x000d,
- 0x23aa: 0x000d, 0x23ab: 0x000d, 0x23ac: 0x000d, 0x23ad: 0x000d, 0x23ae: 0x000d, 0x23af: 0x000d,
- 0x23b0: 0x000d, 0x23b1: 0x000d, 0x23b2: 0x000d, 0x23b3: 0x000d, 0x23b4: 0x000d, 0x23b5: 0x000d,
- 0x23b6: 0x000d, 0x23b7: 0x000d, 0x23b8: 0x000d, 0x23b9: 0x000d, 0x23ba: 0x000d, 0x23bb: 0x000d,
- 0x23bc: 0x000d, 0x23bd: 0x000d, 0x23be: 0x000d, 0x23bf: 0x000d,
- // Block 0x8f, offset 0x23c0
- 0x23c0: 0x000d, 0x23c1: 0x000d, 0x23c2: 0x000d, 0x23c3: 0x000d, 0x23c4: 0x000d, 0x23c5: 0x000d,
- 0x23c6: 0x000d, 0x23c7: 0x000d, 0x23c8: 0x000d, 0x23c9: 0x000d, 0x23ca: 0x000d, 0x23cb: 0x000d,
- 0x23cc: 0x000d, 0x23cd: 0x000d, 0x23ce: 0x000d, 0x23cf: 0x000d, 0x23d0: 0x000d, 0x23d1: 0x000d,
- 0x23d2: 0x000d, 0x23d3: 0x000d, 0x23d4: 0x000d, 0x23d5: 0x000d, 0x23d6: 0x000d, 0x23d7: 0x000d,
- 0x23d8: 0x000d, 0x23d9: 0x000d, 0x23da: 0x000d, 0x23db: 0x000d, 0x23dc: 0x000d, 0x23dd: 0x000d,
- 0x23de: 0x000d, 0x23df: 0x000d, 0x23e0: 0x000d, 0x23e1: 0x000d, 0x23e2: 0x000d, 0x23e3: 0x000d,
- 0x23e4: 0x000d, 0x23e5: 0x000d, 0x23e6: 0x000d, 0x23e7: 0x000d, 0x23e8: 0x000d, 0x23e9: 0x000d,
- 0x23ea: 0x000d, 0x23eb: 0x000d, 0x23ec: 0x000d, 0x23ed: 0x000d, 0x23ee: 0x000d, 0x23ef: 0x000d,
- 0x23f0: 0x000d, 0x23f1: 0x000d, 0x23f2: 0x000d, 0x23f3: 0x000d, 0x23f4: 0x000d, 0x23f5: 0x000d,
- 0x23f6: 0x000d, 0x23f7: 0x000d, 0x23f8: 0x000d, 0x23f9: 0x000d, 0x23fa: 0x000d, 0x23fb: 0x000d,
- 0x23fc: 0x000d, 0x23fd: 0x000d, 0x23fe: 0x000a, 0x23ff: 0x000a,
- // Block 0x90, offset 0x2400
- 0x2400: 0x000d, 0x2401: 0x000d, 0x2402: 0x000d, 0x2403: 0x000d, 0x2404: 0x000d, 0x2405: 0x000d,
- 0x2406: 0x000d, 0x2407: 0x000d, 0x2408: 0x000d, 0x2409: 0x000d, 0x240a: 0x000d, 0x240b: 0x000d,
- 0x240c: 0x000d, 0x240d: 0x000d, 0x240e: 0x000d, 0x240f: 0x000d, 0x2410: 0x000b, 0x2411: 0x000b,
- 0x2412: 0x000b, 0x2413: 0x000b, 0x2414: 0x000b, 0x2415: 0x000b, 0x2416: 0x000b, 0x2417: 0x000b,
- 0x2418: 0x000b, 0x2419: 0x000b, 0x241a: 0x000b, 0x241b: 0x000b, 0x241c: 0x000b, 0x241d: 0x000b,
- 0x241e: 0x000b, 0x241f: 0x000b, 0x2420: 0x000b, 0x2421: 0x000b, 0x2422: 0x000b, 0x2423: 0x000b,
- 0x2424: 0x000b, 0x2425: 0x000b, 0x2426: 0x000b, 0x2427: 0x000b, 0x2428: 0x000b, 0x2429: 0x000b,
- 0x242a: 0x000b, 0x242b: 0x000b, 0x242c: 0x000b, 0x242d: 0x000b, 0x242e: 0x000b, 0x242f: 0x000b,
- 0x2430: 0x000d, 0x2431: 0x000d, 0x2432: 0x000d, 0x2433: 0x000d, 0x2434: 0x000d, 0x2435: 0x000d,
- 0x2436: 0x000d, 0x2437: 0x000d, 0x2438: 0x000d, 0x2439: 0x000d, 0x243a: 0x000d, 0x243b: 0x000d,
- 0x243c: 0x000d, 0x243d: 0x000a, 0x243e: 0x000d, 0x243f: 0x000d,
- // Block 0x91, offset 0x2440
- 0x2440: 0x000c, 0x2441: 0x000c, 0x2442: 0x000c, 0x2443: 0x000c, 0x2444: 0x000c, 0x2445: 0x000c,
- 0x2446: 0x000c, 0x2447: 0x000c, 0x2448: 0x000c, 0x2449: 0x000c, 0x244a: 0x000c, 0x244b: 0x000c,
- 0x244c: 0x000c, 0x244d: 0x000c, 0x244e: 0x000c, 0x244f: 0x000c, 0x2450: 0x000a, 0x2451: 0x000a,
- 0x2452: 0x000a, 0x2453: 0x000a, 0x2454: 0x000a, 0x2455: 0x000a, 0x2456: 0x000a, 0x2457: 0x000a,
- 0x2458: 0x000a, 0x2459: 0x000a,
- 0x2460: 0x000c, 0x2461: 0x000c, 0x2462: 0x000c, 0x2463: 0x000c,
- 0x2464: 0x000c, 0x2465: 0x000c, 0x2466: 0x000c, 0x2467: 0x000c, 0x2468: 0x000c, 0x2469: 0x000c,
- 0x246a: 0x000c, 0x246b: 0x000c, 0x246c: 0x000c, 0x246d: 0x000c, 0x246e: 0x000c, 0x246f: 0x000c,
- 0x2470: 0x000a, 0x2471: 0x000a, 0x2472: 0x000a, 0x2473: 0x000a, 0x2474: 0x000a, 0x2475: 0x000a,
- 0x2476: 0x000a, 0x2477: 0x000a, 0x2478: 0x000a, 0x2479: 0x000a, 0x247a: 0x000a, 0x247b: 0x000a,
- 0x247c: 0x000a, 0x247d: 0x000a, 0x247e: 0x000a, 0x247f: 0x000a,
- // Block 0x92, offset 0x2480
- 0x2480: 0x000a, 0x2481: 0x000a, 0x2482: 0x000a, 0x2483: 0x000a, 0x2484: 0x000a, 0x2485: 0x000a,
- 0x2486: 0x000a, 0x2487: 0x000a, 0x2488: 0x000a, 0x2489: 0x000a, 0x248a: 0x000a, 0x248b: 0x000a,
- 0x248c: 0x000a, 0x248d: 0x000a, 0x248e: 0x000a, 0x248f: 0x000a, 0x2490: 0x0006, 0x2491: 0x000a,
- 0x2492: 0x0006, 0x2494: 0x000a, 0x2495: 0x0006, 0x2496: 0x000a, 0x2497: 0x000a,
- 0x2498: 0x000a, 0x2499: 0x009a, 0x249a: 0x008a, 0x249b: 0x007a, 0x249c: 0x006a, 0x249d: 0x009a,
- 0x249e: 0x008a, 0x249f: 0x0004, 0x24a0: 0x000a, 0x24a1: 0x000a, 0x24a2: 0x0003, 0x24a3: 0x0003,
- 0x24a4: 0x000a, 0x24a5: 0x000a, 0x24a6: 0x000a, 0x24a8: 0x000a, 0x24a9: 0x0004,
- 0x24aa: 0x0004, 0x24ab: 0x000a,
- 0x24b0: 0x000d, 0x24b1: 0x000d, 0x24b2: 0x000d, 0x24b3: 0x000d, 0x24b4: 0x000d, 0x24b5: 0x000d,
- 0x24b6: 0x000d, 0x24b7: 0x000d, 0x24b8: 0x000d, 0x24b9: 0x000d, 0x24ba: 0x000d, 0x24bb: 0x000d,
- 0x24bc: 0x000d, 0x24bd: 0x000d, 0x24be: 0x000d, 0x24bf: 0x000d,
- // Block 0x93, offset 0x24c0
- 0x24c0: 0x000d, 0x24c1: 0x000d, 0x24c2: 0x000d, 0x24c3: 0x000d, 0x24c4: 0x000d, 0x24c5: 0x000d,
- 0x24c6: 0x000d, 0x24c7: 0x000d, 0x24c8: 0x000d, 0x24c9: 0x000d, 0x24ca: 0x000d, 0x24cb: 0x000d,
- 0x24cc: 0x000d, 0x24cd: 0x000d, 0x24ce: 0x000d, 0x24cf: 0x000d, 0x24d0: 0x000d, 0x24d1: 0x000d,
- 0x24d2: 0x000d, 0x24d3: 0x000d, 0x24d4: 0x000d, 0x24d5: 0x000d, 0x24d6: 0x000d, 0x24d7: 0x000d,
- 0x24d8: 0x000d, 0x24d9: 0x000d, 0x24da: 0x000d, 0x24db: 0x000d, 0x24dc: 0x000d, 0x24dd: 0x000d,
- 0x24de: 0x000d, 0x24df: 0x000d, 0x24e0: 0x000d, 0x24e1: 0x000d, 0x24e2: 0x000d, 0x24e3: 0x000d,
- 0x24e4: 0x000d, 0x24e5: 0x000d, 0x24e6: 0x000d, 0x24e7: 0x000d, 0x24e8: 0x000d, 0x24e9: 0x000d,
- 0x24ea: 0x000d, 0x24eb: 0x000d, 0x24ec: 0x000d, 0x24ed: 0x000d, 0x24ee: 0x000d, 0x24ef: 0x000d,
- 0x24f0: 0x000d, 0x24f1: 0x000d, 0x24f2: 0x000d, 0x24f3: 0x000d, 0x24f4: 0x000d, 0x24f5: 0x000d,
- 0x24f6: 0x000d, 0x24f7: 0x000d, 0x24f8: 0x000d, 0x24f9: 0x000d, 0x24fa: 0x000d, 0x24fb: 0x000d,
- 0x24fc: 0x000d, 0x24fd: 0x000d, 0x24fe: 0x000d, 0x24ff: 0x000b,
- // Block 0x94, offset 0x2500
- 0x2501: 0x000a, 0x2502: 0x000a, 0x2503: 0x0004, 0x2504: 0x0004, 0x2505: 0x0004,
- 0x2506: 0x000a, 0x2507: 0x000a, 0x2508: 0x003a, 0x2509: 0x002a, 0x250a: 0x000a, 0x250b: 0x0003,
- 0x250c: 0x0006, 0x250d: 0x0003, 0x250e: 0x0006, 0x250f: 0x0006, 0x2510: 0x0002, 0x2511: 0x0002,
- 0x2512: 0x0002, 0x2513: 0x0002, 0x2514: 0x0002, 0x2515: 0x0002, 0x2516: 0x0002, 0x2517: 0x0002,
- 0x2518: 0x0002, 0x2519: 0x0002, 0x251a: 0x0006, 0x251b: 0x000a, 0x251c: 0x000a, 0x251d: 0x000a,
- 0x251e: 0x000a, 0x251f: 0x000a, 0x2520: 0x000a,
- 0x253b: 0x005a,
- 0x253c: 0x000a, 0x253d: 0x004a, 0x253e: 0x000a, 0x253f: 0x000a,
- // Block 0x95, offset 0x2540
- 0x2540: 0x000a,
- 0x255b: 0x005a, 0x255c: 0x000a, 0x255d: 0x004a,
- 0x255e: 0x000a, 0x255f: 0x00fa, 0x2560: 0x00ea, 0x2561: 0x000a, 0x2562: 0x003a, 0x2563: 0x002a,
- 0x2564: 0x000a, 0x2565: 0x000a,
- // Block 0x96, offset 0x2580
- 0x25a0: 0x0004, 0x25a1: 0x0004, 0x25a2: 0x000a, 0x25a3: 0x000a,
- 0x25a4: 0x000a, 0x25a5: 0x0004, 0x25a6: 0x0004, 0x25a8: 0x000a, 0x25a9: 0x000a,
- 0x25aa: 0x000a, 0x25ab: 0x000a, 0x25ac: 0x000a, 0x25ad: 0x000a, 0x25ae: 0x000a,
- 0x25b0: 0x000b, 0x25b1: 0x000b, 0x25b2: 0x000b, 0x25b3: 0x000b, 0x25b4: 0x000b, 0x25b5: 0x000b,
- 0x25b6: 0x000b, 0x25b7: 0x000b, 0x25b8: 0x000b, 0x25b9: 0x000a, 0x25ba: 0x000a, 0x25bb: 0x000a,
- 0x25bc: 0x000a, 0x25bd: 0x000a, 0x25be: 0x000b, 0x25bf: 0x000b,
- // Block 0x97, offset 0x25c0
- 0x25c1: 0x000a,
- // Block 0x98, offset 0x2600
- 0x2600: 0x000a, 0x2601: 0x000a, 0x2602: 0x000a, 0x2603: 0x000a, 0x2604: 0x000a, 0x2605: 0x000a,
- 0x2606: 0x000a, 0x2607: 0x000a, 0x2608: 0x000a, 0x2609: 0x000a, 0x260a: 0x000a, 0x260b: 0x000a,
- 0x260c: 0x000a, 0x2610: 0x000a, 0x2611: 0x000a,
- 0x2612: 0x000a, 0x2613: 0x000a, 0x2614: 0x000a, 0x2615: 0x000a, 0x2616: 0x000a, 0x2617: 0x000a,
- 0x2618: 0x000a, 0x2619: 0x000a, 0x261a: 0x000a, 0x261b: 0x000a,
- 0x2620: 0x000a,
- // Block 0x99, offset 0x2640
- 0x267d: 0x000c,
- // Block 0x9a, offset 0x2680
- 0x26a0: 0x000c, 0x26a1: 0x0002, 0x26a2: 0x0002, 0x26a3: 0x0002,
- 0x26a4: 0x0002, 0x26a5: 0x0002, 0x26a6: 0x0002, 0x26a7: 0x0002, 0x26a8: 0x0002, 0x26a9: 0x0002,
- 0x26aa: 0x0002, 0x26ab: 0x0002, 0x26ac: 0x0002, 0x26ad: 0x0002, 0x26ae: 0x0002, 0x26af: 0x0002,
- 0x26b0: 0x0002, 0x26b1: 0x0002, 0x26b2: 0x0002, 0x26b3: 0x0002, 0x26b4: 0x0002, 0x26b5: 0x0002,
- 0x26b6: 0x0002, 0x26b7: 0x0002, 0x26b8: 0x0002, 0x26b9: 0x0002, 0x26ba: 0x0002, 0x26bb: 0x0002,
- // Block 0x9b, offset 0x26c0
- 0x26f6: 0x000c, 0x26f7: 0x000c, 0x26f8: 0x000c, 0x26f9: 0x000c, 0x26fa: 0x000c,
- // Block 0x9c, offset 0x2700
- 0x2700: 0x0001, 0x2701: 0x0001, 0x2702: 0x0001, 0x2703: 0x0001, 0x2704: 0x0001, 0x2705: 0x0001,
- 0x2706: 0x0001, 0x2707: 0x0001, 0x2708: 0x0001, 0x2709: 0x0001, 0x270a: 0x0001, 0x270b: 0x0001,
- 0x270c: 0x0001, 0x270d: 0x0001, 0x270e: 0x0001, 0x270f: 0x0001, 0x2710: 0x0001, 0x2711: 0x0001,
- 0x2712: 0x0001, 0x2713: 0x0001, 0x2714: 0x0001, 0x2715: 0x0001, 0x2716: 0x0001, 0x2717: 0x0001,
- 0x2718: 0x0001, 0x2719: 0x0001, 0x271a: 0x0001, 0x271b: 0x0001, 0x271c: 0x0001, 0x271d: 0x0001,
- 0x271e: 0x0001, 0x271f: 0x0001, 0x2720: 0x0001, 0x2721: 0x0001, 0x2722: 0x0001, 0x2723: 0x0001,
- 0x2724: 0x0001, 0x2725: 0x0001, 0x2726: 0x0001, 0x2727: 0x0001, 0x2728: 0x0001, 0x2729: 0x0001,
- 0x272a: 0x0001, 0x272b: 0x0001, 0x272c: 0x0001, 0x272d: 0x0001, 0x272e: 0x0001, 0x272f: 0x0001,
- 0x2730: 0x0001, 0x2731: 0x0001, 0x2732: 0x0001, 0x2733: 0x0001, 0x2734: 0x0001, 0x2735: 0x0001,
- 0x2736: 0x0001, 0x2737: 0x0001, 0x2738: 0x0001, 0x2739: 0x0001, 0x273a: 0x0001, 0x273b: 0x0001,
- 0x273c: 0x0001, 0x273d: 0x0001, 0x273e: 0x0001, 0x273f: 0x0001,
- // Block 0x9d, offset 0x2740
- 0x2740: 0x0001, 0x2741: 0x0001, 0x2742: 0x0001, 0x2743: 0x0001, 0x2744: 0x0001, 0x2745: 0x0001,
- 0x2746: 0x0001, 0x2747: 0x0001, 0x2748: 0x0001, 0x2749: 0x0001, 0x274a: 0x0001, 0x274b: 0x0001,
- 0x274c: 0x0001, 0x274d: 0x0001, 0x274e: 0x0001, 0x274f: 0x0001, 0x2750: 0x0001, 0x2751: 0x0001,
- 0x2752: 0x0001, 0x2753: 0x0001, 0x2754: 0x0001, 0x2755: 0x0001, 0x2756: 0x0001, 0x2757: 0x0001,
- 0x2758: 0x0001, 0x2759: 0x0001, 0x275a: 0x0001, 0x275b: 0x0001, 0x275c: 0x0001, 0x275d: 0x0001,
- 0x275e: 0x0001, 0x275f: 0x000a, 0x2760: 0x0001, 0x2761: 0x0001, 0x2762: 0x0001, 0x2763: 0x0001,
- 0x2764: 0x0001, 0x2765: 0x0001, 0x2766: 0x0001, 0x2767: 0x0001, 0x2768: 0x0001, 0x2769: 0x0001,
- 0x276a: 0x0001, 0x276b: 0x0001, 0x276c: 0x0001, 0x276d: 0x0001, 0x276e: 0x0001, 0x276f: 0x0001,
- 0x2770: 0x0001, 0x2771: 0x0001, 0x2772: 0x0001, 0x2773: 0x0001, 0x2774: 0x0001, 0x2775: 0x0001,
- 0x2776: 0x0001, 0x2777: 0x0001, 0x2778: 0x0001, 0x2779: 0x0001, 0x277a: 0x0001, 0x277b: 0x0001,
- 0x277c: 0x0001, 0x277d: 0x0001, 0x277e: 0x0001, 0x277f: 0x0001,
- // Block 0x9e, offset 0x2780
- 0x2780: 0x0001, 0x2781: 0x000c, 0x2782: 0x000c, 0x2783: 0x000c, 0x2784: 0x0001, 0x2785: 0x000c,
- 0x2786: 0x000c, 0x2787: 0x0001, 0x2788: 0x0001, 0x2789: 0x0001, 0x278a: 0x0001, 0x278b: 0x0001,
- 0x278c: 0x000c, 0x278d: 0x000c, 0x278e: 0x000c, 0x278f: 0x000c, 0x2790: 0x0001, 0x2791: 0x0001,
- 0x2792: 0x0001, 0x2793: 0x0001, 0x2794: 0x0001, 0x2795: 0x0001, 0x2796: 0x0001, 0x2797: 0x0001,
- 0x2798: 0x0001, 0x2799: 0x0001, 0x279a: 0x0001, 0x279b: 0x0001, 0x279c: 0x0001, 0x279d: 0x0001,
- 0x279e: 0x0001, 0x279f: 0x0001, 0x27a0: 0x0001, 0x27a1: 0x0001, 0x27a2: 0x0001, 0x27a3: 0x0001,
- 0x27a4: 0x0001, 0x27a5: 0x0001, 0x27a6: 0x0001, 0x27a7: 0x0001, 0x27a8: 0x0001, 0x27a9: 0x0001,
- 0x27aa: 0x0001, 0x27ab: 0x0001, 0x27ac: 0x0001, 0x27ad: 0x0001, 0x27ae: 0x0001, 0x27af: 0x0001,
- 0x27b0: 0x0001, 0x27b1: 0x0001, 0x27b2: 0x0001, 0x27b3: 0x0001, 0x27b4: 0x0001, 0x27b5: 0x0001,
- 0x27b6: 0x0001, 0x27b7: 0x0001, 0x27b8: 0x000c, 0x27b9: 0x000c, 0x27ba: 0x000c, 0x27bb: 0x0001,
- 0x27bc: 0x0001, 0x27bd: 0x0001, 0x27be: 0x0001, 0x27bf: 0x000c,
- // Block 0x9f, offset 0x27c0
- 0x27c0: 0x0001, 0x27c1: 0x0001, 0x27c2: 0x0001, 0x27c3: 0x0001, 0x27c4: 0x0001, 0x27c5: 0x0001,
- 0x27c6: 0x0001, 0x27c7: 0x0001, 0x27c8: 0x0001, 0x27c9: 0x0001, 0x27ca: 0x0001, 0x27cb: 0x0001,
- 0x27cc: 0x0001, 0x27cd: 0x0001, 0x27ce: 0x0001, 0x27cf: 0x0001, 0x27d0: 0x0001, 0x27d1: 0x0001,
- 0x27d2: 0x0001, 0x27d3: 0x0001, 0x27d4: 0x0001, 0x27d5: 0x0001, 0x27d6: 0x0001, 0x27d7: 0x0001,
- 0x27d8: 0x0001, 0x27d9: 0x0001, 0x27da: 0x0001, 0x27db: 0x0001, 0x27dc: 0x0001, 0x27dd: 0x0001,
- 0x27de: 0x0001, 0x27df: 0x0001, 0x27e0: 0x0001, 0x27e1: 0x0001, 0x27e2: 0x0001, 0x27e3: 0x0001,
- 0x27e4: 0x0001, 0x27e5: 0x000c, 0x27e6: 0x000c, 0x27e7: 0x0001, 0x27e8: 0x0001, 0x27e9: 0x0001,
- 0x27ea: 0x0001, 0x27eb: 0x0001, 0x27ec: 0x0001, 0x27ed: 0x0001, 0x27ee: 0x0001, 0x27ef: 0x0001,
- 0x27f0: 0x0001, 0x27f1: 0x0001, 0x27f2: 0x0001, 0x27f3: 0x0001, 0x27f4: 0x0001, 0x27f5: 0x0001,
- 0x27f6: 0x0001, 0x27f7: 0x0001, 0x27f8: 0x0001, 0x27f9: 0x0001, 0x27fa: 0x0001, 0x27fb: 0x0001,
- 0x27fc: 0x0001, 0x27fd: 0x0001, 0x27fe: 0x0001, 0x27ff: 0x0001,
- // Block 0xa0, offset 0x2800
- 0x2800: 0x0001, 0x2801: 0x0001, 0x2802: 0x0001, 0x2803: 0x0001, 0x2804: 0x0001, 0x2805: 0x0001,
- 0x2806: 0x0001, 0x2807: 0x0001, 0x2808: 0x0001, 0x2809: 0x0001, 0x280a: 0x0001, 0x280b: 0x0001,
- 0x280c: 0x0001, 0x280d: 0x0001, 0x280e: 0x0001, 0x280f: 0x0001, 0x2810: 0x0001, 0x2811: 0x0001,
- 0x2812: 0x0001, 0x2813: 0x0001, 0x2814: 0x0001, 0x2815: 0x0001, 0x2816: 0x0001, 0x2817: 0x0001,
- 0x2818: 0x0001, 0x2819: 0x0001, 0x281a: 0x0001, 0x281b: 0x0001, 0x281c: 0x0001, 0x281d: 0x0001,
- 0x281e: 0x0001, 0x281f: 0x0001, 0x2820: 0x0001, 0x2821: 0x0001, 0x2822: 0x0001, 0x2823: 0x0001,
- 0x2824: 0x0001, 0x2825: 0x0001, 0x2826: 0x0001, 0x2827: 0x0001, 0x2828: 0x0001, 0x2829: 0x0001,
- 0x282a: 0x0001, 0x282b: 0x0001, 0x282c: 0x0001, 0x282d: 0x0001, 0x282e: 0x0001, 0x282f: 0x0001,
- 0x2830: 0x0001, 0x2831: 0x0001, 0x2832: 0x0001, 0x2833: 0x0001, 0x2834: 0x0001, 0x2835: 0x0001,
- 0x2836: 0x0001, 0x2837: 0x0001, 0x2838: 0x0001, 0x2839: 0x000a, 0x283a: 0x000a, 0x283b: 0x000a,
- 0x283c: 0x000a, 0x283d: 0x000a, 0x283e: 0x000a, 0x283f: 0x000a,
- // Block 0xa1, offset 0x2840
- 0x2840: 0x0001, 0x2841: 0x0001, 0x2842: 0x0001, 0x2843: 0x0001, 0x2844: 0x0001, 0x2845: 0x0001,
- 0x2846: 0x0001, 0x2847: 0x0001, 0x2848: 0x0001, 0x2849: 0x0001, 0x284a: 0x0001, 0x284b: 0x0001,
- 0x284c: 0x0001, 0x284d: 0x0001, 0x284e: 0x0001, 0x284f: 0x0001, 0x2850: 0x0001, 0x2851: 0x0001,
- 0x2852: 0x0001, 0x2853: 0x0001, 0x2854: 0x0001, 0x2855: 0x0001, 0x2856: 0x0001, 0x2857: 0x0001,
- 0x2858: 0x0001, 0x2859: 0x0001, 0x285a: 0x0001, 0x285b: 0x0001, 0x285c: 0x0001, 0x285d: 0x0001,
- 0x285e: 0x0001, 0x285f: 0x0001, 0x2860: 0x0005, 0x2861: 0x0005, 0x2862: 0x0005, 0x2863: 0x0005,
- 0x2864: 0x0005, 0x2865: 0x0005, 0x2866: 0x0005, 0x2867: 0x0005, 0x2868: 0x0005, 0x2869: 0x0005,
- 0x286a: 0x0005, 0x286b: 0x0005, 0x286c: 0x0005, 0x286d: 0x0005, 0x286e: 0x0005, 0x286f: 0x0005,
- 0x2870: 0x0005, 0x2871: 0x0005, 0x2872: 0x0005, 0x2873: 0x0005, 0x2874: 0x0005, 0x2875: 0x0005,
- 0x2876: 0x0005, 0x2877: 0x0005, 0x2878: 0x0005, 0x2879: 0x0005, 0x287a: 0x0005, 0x287b: 0x0005,
- 0x287c: 0x0005, 0x287d: 0x0005, 0x287e: 0x0005, 0x287f: 0x0001,
- // Block 0xa2, offset 0x2880
- 0x2881: 0x000c,
- 0x28b8: 0x000c, 0x28b9: 0x000c, 0x28ba: 0x000c, 0x28bb: 0x000c,
- 0x28bc: 0x000c, 0x28bd: 0x000c, 0x28be: 0x000c, 0x28bf: 0x000c,
- // Block 0xa3, offset 0x28c0
- 0x28c0: 0x000c, 0x28c1: 0x000c, 0x28c2: 0x000c, 0x28c3: 0x000c, 0x28c4: 0x000c, 0x28c5: 0x000c,
- 0x28c6: 0x000c,
- 0x28d2: 0x000a, 0x28d3: 0x000a, 0x28d4: 0x000a, 0x28d5: 0x000a, 0x28d6: 0x000a, 0x28d7: 0x000a,
- 0x28d8: 0x000a, 0x28d9: 0x000a, 0x28da: 0x000a, 0x28db: 0x000a, 0x28dc: 0x000a, 0x28dd: 0x000a,
- 0x28de: 0x000a, 0x28df: 0x000a, 0x28e0: 0x000a, 0x28e1: 0x000a, 0x28e2: 0x000a, 0x28e3: 0x000a,
- 0x28e4: 0x000a, 0x28e5: 0x000a,
- 0x28ff: 0x000c,
- // Block 0xa4, offset 0x2900
- 0x2900: 0x000c, 0x2901: 0x000c,
- 0x2933: 0x000c, 0x2934: 0x000c, 0x2935: 0x000c,
- 0x2936: 0x000c, 0x2939: 0x000c, 0x293a: 0x000c,
- // Block 0xa5, offset 0x2940
- 0x2940: 0x000c, 0x2941: 0x000c, 0x2942: 0x000c,
- 0x2967: 0x000c, 0x2968: 0x000c, 0x2969: 0x000c,
- 0x296a: 0x000c, 0x296b: 0x000c, 0x296d: 0x000c, 0x296e: 0x000c, 0x296f: 0x000c,
- 0x2970: 0x000c, 0x2971: 0x000c, 0x2972: 0x000c, 0x2973: 0x000c, 0x2974: 0x000c,
- // Block 0xa6, offset 0x2980
- 0x29b3: 0x000c,
- // Block 0xa7, offset 0x29c0
- 0x29c0: 0x000c, 0x29c1: 0x000c,
- 0x29f6: 0x000c, 0x29f7: 0x000c, 0x29f8: 0x000c, 0x29f9: 0x000c, 0x29fa: 0x000c, 0x29fb: 0x000c,
- 0x29fc: 0x000c, 0x29fd: 0x000c, 0x29fe: 0x000c,
- // Block 0xa8, offset 0x2a00
- 0x2a0a: 0x000c, 0x2a0b: 0x000c,
- 0x2a0c: 0x000c,
- // Block 0xa9, offset 0x2a40
- 0x2a6f: 0x000c,
- 0x2a70: 0x000c, 0x2a71: 0x000c, 0x2a74: 0x000c,
- 0x2a76: 0x000c, 0x2a77: 0x000c,
- 0x2a7e: 0x000c,
- // Block 0xaa, offset 0x2a80
- 0x2a9f: 0x000c, 0x2aa3: 0x000c,
- 0x2aa4: 0x000c, 0x2aa5: 0x000c, 0x2aa6: 0x000c, 0x2aa7: 0x000c, 0x2aa8: 0x000c, 0x2aa9: 0x000c,
- 0x2aaa: 0x000c,
- // Block 0xab, offset 0x2ac0
- 0x2ac0: 0x000c, 0x2ac1: 0x000c,
- 0x2afc: 0x000c,
- // Block 0xac, offset 0x2b00
- 0x2b00: 0x000c,
- 0x2b26: 0x000c, 0x2b27: 0x000c, 0x2b28: 0x000c, 0x2b29: 0x000c,
- 0x2b2a: 0x000c, 0x2b2b: 0x000c, 0x2b2c: 0x000c,
- 0x2b30: 0x000c, 0x2b31: 0x000c, 0x2b32: 0x000c, 0x2b33: 0x000c, 0x2b34: 0x000c,
- // Block 0xad, offset 0x2b40
- 0x2b78: 0x000c, 0x2b79: 0x000c, 0x2b7a: 0x000c, 0x2b7b: 0x000c,
- 0x2b7c: 0x000c, 0x2b7d: 0x000c, 0x2b7e: 0x000c, 0x2b7f: 0x000c,
- // Block 0xae, offset 0x2b80
- 0x2b82: 0x000c, 0x2b83: 0x000c, 0x2b84: 0x000c,
- 0x2b86: 0x000c,
- // Block 0xaf, offset 0x2bc0
- 0x2bf3: 0x000c, 0x2bf4: 0x000c, 0x2bf5: 0x000c,
- 0x2bf6: 0x000c, 0x2bf7: 0x000c, 0x2bf8: 0x000c, 0x2bfa: 0x000c,
- 0x2bff: 0x000c,
- // Block 0xb0, offset 0x2c00
- 0x2c00: 0x000c, 0x2c02: 0x000c, 0x2c03: 0x000c,
- // Block 0xb1, offset 0x2c40
- 0x2c72: 0x000c, 0x2c73: 0x000c, 0x2c74: 0x000c, 0x2c75: 0x000c,
- 0x2c7c: 0x000c, 0x2c7d: 0x000c, 0x2c7f: 0x000c,
- // Block 0xb2, offset 0x2c80
- 0x2c80: 0x000c,
- 0x2c9c: 0x000c, 0x2c9d: 0x000c,
- // Block 0xb3, offset 0x2cc0
- 0x2cf3: 0x000c, 0x2cf4: 0x000c, 0x2cf5: 0x000c,
- 0x2cf6: 0x000c, 0x2cf7: 0x000c, 0x2cf8: 0x000c, 0x2cf9: 0x000c, 0x2cfa: 0x000c,
- 0x2cfd: 0x000c, 0x2cff: 0x000c,
- // Block 0xb4, offset 0x2d00
- 0x2d00: 0x000c,
- 0x2d20: 0x000a, 0x2d21: 0x000a, 0x2d22: 0x000a, 0x2d23: 0x000a,
- 0x2d24: 0x000a, 0x2d25: 0x000a, 0x2d26: 0x000a, 0x2d27: 0x000a, 0x2d28: 0x000a, 0x2d29: 0x000a,
- 0x2d2a: 0x000a, 0x2d2b: 0x000a, 0x2d2c: 0x000a,
- // Block 0xb5, offset 0x2d40
- 0x2d6b: 0x000c, 0x2d6d: 0x000c,
- 0x2d70: 0x000c, 0x2d71: 0x000c, 0x2d72: 0x000c, 0x2d73: 0x000c, 0x2d74: 0x000c, 0x2d75: 0x000c,
- 0x2d77: 0x000c,
- // Block 0xb6, offset 0x2d80
- 0x2d9d: 0x000c,
- 0x2d9e: 0x000c, 0x2d9f: 0x000c, 0x2da2: 0x000c, 0x2da3: 0x000c,
- 0x2da4: 0x000c, 0x2da5: 0x000c, 0x2da7: 0x000c, 0x2da8: 0x000c, 0x2da9: 0x000c,
- 0x2daa: 0x000c, 0x2dab: 0x000c,
- // Block 0xb7, offset 0x2dc0
- 0x2dc1: 0x000c, 0x2dc2: 0x000c, 0x2dc3: 0x000c, 0x2dc4: 0x000c, 0x2dc5: 0x000c,
- 0x2dc6: 0x000c, 0x2dc9: 0x000c, 0x2dca: 0x000c,
- 0x2df3: 0x000c, 0x2df4: 0x000c, 0x2df5: 0x000c,
- 0x2df6: 0x000c, 0x2df7: 0x000c, 0x2df8: 0x000c, 0x2dfb: 0x000c,
- 0x2dfc: 0x000c, 0x2dfd: 0x000c, 0x2dfe: 0x000c,
- // Block 0xb8, offset 0x2e00
- 0x2e07: 0x000c,
- 0x2e11: 0x000c,
- 0x2e12: 0x000c, 0x2e13: 0x000c, 0x2e14: 0x000c, 0x2e15: 0x000c, 0x2e16: 0x000c,
- 0x2e19: 0x000c, 0x2e1a: 0x000c, 0x2e1b: 0x000c,
- // Block 0xb9, offset 0x2e40
- 0x2e4a: 0x000c, 0x2e4b: 0x000c,
- 0x2e4c: 0x000c, 0x2e4d: 0x000c, 0x2e4e: 0x000c, 0x2e4f: 0x000c, 0x2e50: 0x000c, 0x2e51: 0x000c,
- 0x2e52: 0x000c, 0x2e53: 0x000c, 0x2e54: 0x000c, 0x2e55: 0x000c, 0x2e56: 0x000c,
- 0x2e58: 0x000c, 0x2e59: 0x000c,
- // Block 0xba, offset 0x2e80
- 0x2eb0: 0x000c, 0x2eb1: 0x000c, 0x2eb2: 0x000c, 0x2eb3: 0x000c, 0x2eb4: 0x000c, 0x2eb5: 0x000c,
- 0x2eb6: 0x000c, 0x2eb8: 0x000c, 0x2eb9: 0x000c, 0x2eba: 0x000c, 0x2ebb: 0x000c,
- 0x2ebc: 0x000c, 0x2ebd: 0x000c,
- // Block 0xbb, offset 0x2ec0
- 0x2ed2: 0x000c, 0x2ed3: 0x000c, 0x2ed4: 0x000c, 0x2ed5: 0x000c, 0x2ed6: 0x000c, 0x2ed7: 0x000c,
- 0x2ed8: 0x000c, 0x2ed9: 0x000c, 0x2eda: 0x000c, 0x2edb: 0x000c, 0x2edc: 0x000c, 0x2edd: 0x000c,
- 0x2ede: 0x000c, 0x2edf: 0x000c, 0x2ee0: 0x000c, 0x2ee1: 0x000c, 0x2ee2: 0x000c, 0x2ee3: 0x000c,
- 0x2ee4: 0x000c, 0x2ee5: 0x000c, 0x2ee6: 0x000c, 0x2ee7: 0x000c,
- 0x2eea: 0x000c, 0x2eeb: 0x000c, 0x2eec: 0x000c, 0x2eed: 0x000c, 0x2eee: 0x000c, 0x2eef: 0x000c,
- 0x2ef0: 0x000c, 0x2ef2: 0x000c, 0x2ef3: 0x000c, 0x2ef5: 0x000c,
- 0x2ef6: 0x000c,
- // Block 0xbc, offset 0x2f00
- 0x2f31: 0x000c, 0x2f32: 0x000c, 0x2f33: 0x000c, 0x2f34: 0x000c, 0x2f35: 0x000c,
- 0x2f36: 0x000c, 0x2f3a: 0x000c,
- 0x2f3c: 0x000c, 0x2f3d: 0x000c, 0x2f3f: 0x000c,
- // Block 0xbd, offset 0x2f40
- 0x2f40: 0x000c, 0x2f41: 0x000c, 0x2f42: 0x000c, 0x2f43: 0x000c, 0x2f44: 0x000c, 0x2f45: 0x000c,
- 0x2f47: 0x000c,
- // Block 0xbe, offset 0x2f80
- 0x2fb0: 0x000c, 0x2fb1: 0x000c, 0x2fb2: 0x000c, 0x2fb3: 0x000c, 0x2fb4: 0x000c,
- // Block 0xbf, offset 0x2fc0
- 0x2ff0: 0x000c, 0x2ff1: 0x000c, 0x2ff2: 0x000c, 0x2ff3: 0x000c, 0x2ff4: 0x000c, 0x2ff5: 0x000c,
- 0x2ff6: 0x000c,
- // Block 0xc0, offset 0x3000
- 0x300f: 0x000c, 0x3010: 0x000c, 0x3011: 0x000c,
- 0x3012: 0x000c,
- // Block 0xc1, offset 0x3040
- 0x305d: 0x000c,
- 0x305e: 0x000c, 0x3060: 0x000b, 0x3061: 0x000b, 0x3062: 0x000b, 0x3063: 0x000b,
- // Block 0xc2, offset 0x3080
- 0x30a7: 0x000c, 0x30a8: 0x000c, 0x30a9: 0x000c,
- 0x30b3: 0x000b, 0x30b4: 0x000b, 0x30b5: 0x000b,
- 0x30b6: 0x000b, 0x30b7: 0x000b, 0x30b8: 0x000b, 0x30b9: 0x000b, 0x30ba: 0x000b, 0x30bb: 0x000c,
- 0x30bc: 0x000c, 0x30bd: 0x000c, 0x30be: 0x000c, 0x30bf: 0x000c,
- // Block 0xc3, offset 0x30c0
- 0x30c0: 0x000c, 0x30c1: 0x000c, 0x30c2: 0x000c, 0x30c5: 0x000c,
- 0x30c6: 0x000c, 0x30c7: 0x000c, 0x30c8: 0x000c, 0x30c9: 0x000c, 0x30ca: 0x000c, 0x30cb: 0x000c,
- 0x30ea: 0x000c, 0x30eb: 0x000c, 0x30ec: 0x000c, 0x30ed: 0x000c,
- // Block 0xc4, offset 0x3100
- 0x3100: 0x000a, 0x3101: 0x000a, 0x3102: 0x000c, 0x3103: 0x000c, 0x3104: 0x000c, 0x3105: 0x000a,
- // Block 0xc5, offset 0x3140
- 0x3140: 0x000a, 0x3141: 0x000a, 0x3142: 0x000a, 0x3143: 0x000a, 0x3144: 0x000a, 0x3145: 0x000a,
- 0x3146: 0x000a, 0x3147: 0x000a, 0x3148: 0x000a, 0x3149: 0x000a, 0x314a: 0x000a, 0x314b: 0x000a,
- 0x314c: 0x000a, 0x314d: 0x000a, 0x314e: 0x000a, 0x314f: 0x000a, 0x3150: 0x000a, 0x3151: 0x000a,
- 0x3152: 0x000a, 0x3153: 0x000a, 0x3154: 0x000a, 0x3155: 0x000a, 0x3156: 0x000a,
- // Block 0xc6, offset 0x3180
- 0x319b: 0x000a,
- // Block 0xc7, offset 0x31c0
- 0x31d5: 0x000a,
- // Block 0xc8, offset 0x3200
- 0x320f: 0x000a,
- // Block 0xc9, offset 0x3240
- 0x3249: 0x000a,
- // Block 0xca, offset 0x3280
- 0x3283: 0x000a,
- 0x328e: 0x0002, 0x328f: 0x0002, 0x3290: 0x0002, 0x3291: 0x0002,
- 0x3292: 0x0002, 0x3293: 0x0002, 0x3294: 0x0002, 0x3295: 0x0002, 0x3296: 0x0002, 0x3297: 0x0002,
- 0x3298: 0x0002, 0x3299: 0x0002, 0x329a: 0x0002, 0x329b: 0x0002, 0x329c: 0x0002, 0x329d: 0x0002,
- 0x329e: 0x0002, 0x329f: 0x0002, 0x32a0: 0x0002, 0x32a1: 0x0002, 0x32a2: 0x0002, 0x32a3: 0x0002,
- 0x32a4: 0x0002, 0x32a5: 0x0002, 0x32a6: 0x0002, 0x32a7: 0x0002, 0x32a8: 0x0002, 0x32a9: 0x0002,
- 0x32aa: 0x0002, 0x32ab: 0x0002, 0x32ac: 0x0002, 0x32ad: 0x0002, 0x32ae: 0x0002, 0x32af: 0x0002,
- 0x32b0: 0x0002, 0x32b1: 0x0002, 0x32b2: 0x0002, 0x32b3: 0x0002, 0x32b4: 0x0002, 0x32b5: 0x0002,
- 0x32b6: 0x0002, 0x32b7: 0x0002, 0x32b8: 0x0002, 0x32b9: 0x0002, 0x32ba: 0x0002, 0x32bb: 0x0002,
- 0x32bc: 0x0002, 0x32bd: 0x0002, 0x32be: 0x0002, 0x32bf: 0x0002,
- // Block 0xcb, offset 0x32c0
- 0x32c0: 0x000c, 0x32c1: 0x000c, 0x32c2: 0x000c, 0x32c3: 0x000c, 0x32c4: 0x000c, 0x32c5: 0x000c,
- 0x32c6: 0x000c, 0x32c7: 0x000c, 0x32c8: 0x000c, 0x32c9: 0x000c, 0x32ca: 0x000c, 0x32cb: 0x000c,
- 0x32cc: 0x000c, 0x32cd: 0x000c, 0x32ce: 0x000c, 0x32cf: 0x000c, 0x32d0: 0x000c, 0x32d1: 0x000c,
- 0x32d2: 0x000c, 0x32d3: 0x000c, 0x32d4: 0x000c, 0x32d5: 0x000c, 0x32d6: 0x000c, 0x32d7: 0x000c,
- 0x32d8: 0x000c, 0x32d9: 0x000c, 0x32da: 0x000c, 0x32db: 0x000c, 0x32dc: 0x000c, 0x32dd: 0x000c,
- 0x32de: 0x000c, 0x32df: 0x000c, 0x32e0: 0x000c, 0x32e1: 0x000c, 0x32e2: 0x000c, 0x32e3: 0x000c,
- 0x32e4: 0x000c, 0x32e5: 0x000c, 0x32e6: 0x000c, 0x32e7: 0x000c, 0x32e8: 0x000c, 0x32e9: 0x000c,
- 0x32ea: 0x000c, 0x32eb: 0x000c, 0x32ec: 0x000c, 0x32ed: 0x000c, 0x32ee: 0x000c, 0x32ef: 0x000c,
- 0x32f0: 0x000c, 0x32f1: 0x000c, 0x32f2: 0x000c, 0x32f3: 0x000c, 0x32f4: 0x000c, 0x32f5: 0x000c,
- 0x32f6: 0x000c, 0x32fb: 0x000c,
- 0x32fc: 0x000c, 0x32fd: 0x000c, 0x32fe: 0x000c, 0x32ff: 0x000c,
- // Block 0xcc, offset 0x3300
- 0x3300: 0x000c, 0x3301: 0x000c, 0x3302: 0x000c, 0x3303: 0x000c, 0x3304: 0x000c, 0x3305: 0x000c,
- 0x3306: 0x000c, 0x3307: 0x000c, 0x3308: 0x000c, 0x3309: 0x000c, 0x330a: 0x000c, 0x330b: 0x000c,
- 0x330c: 0x000c, 0x330d: 0x000c, 0x330e: 0x000c, 0x330f: 0x000c, 0x3310: 0x000c, 0x3311: 0x000c,
- 0x3312: 0x000c, 0x3313: 0x000c, 0x3314: 0x000c, 0x3315: 0x000c, 0x3316: 0x000c, 0x3317: 0x000c,
- 0x3318: 0x000c, 0x3319: 0x000c, 0x331a: 0x000c, 0x331b: 0x000c, 0x331c: 0x000c, 0x331d: 0x000c,
- 0x331e: 0x000c, 0x331f: 0x000c, 0x3320: 0x000c, 0x3321: 0x000c, 0x3322: 0x000c, 0x3323: 0x000c,
- 0x3324: 0x000c, 0x3325: 0x000c, 0x3326: 0x000c, 0x3327: 0x000c, 0x3328: 0x000c, 0x3329: 0x000c,
- 0x332a: 0x000c, 0x332b: 0x000c, 0x332c: 0x000c,
- 0x3335: 0x000c,
- // Block 0xcd, offset 0x3340
- 0x3344: 0x000c,
- 0x335b: 0x000c, 0x335c: 0x000c, 0x335d: 0x000c,
- 0x335e: 0x000c, 0x335f: 0x000c, 0x3361: 0x000c, 0x3362: 0x000c, 0x3363: 0x000c,
- 0x3364: 0x000c, 0x3365: 0x000c, 0x3366: 0x000c, 0x3367: 0x000c, 0x3368: 0x000c, 0x3369: 0x000c,
- 0x336a: 0x000c, 0x336b: 0x000c, 0x336c: 0x000c, 0x336d: 0x000c, 0x336e: 0x000c, 0x336f: 0x000c,
- // Block 0xce, offset 0x3380
- 0x3380: 0x000c, 0x3381: 0x000c, 0x3382: 0x000c, 0x3383: 0x000c, 0x3384: 0x000c, 0x3385: 0x000c,
- 0x3386: 0x000c, 0x3388: 0x000c, 0x3389: 0x000c, 0x338a: 0x000c, 0x338b: 0x000c,
- 0x338c: 0x000c, 0x338d: 0x000c, 0x338e: 0x000c, 0x338f: 0x000c, 0x3390: 0x000c, 0x3391: 0x000c,
- 0x3392: 0x000c, 0x3393: 0x000c, 0x3394: 0x000c, 0x3395: 0x000c, 0x3396: 0x000c, 0x3397: 0x000c,
- 0x3398: 0x000c, 0x339b: 0x000c, 0x339c: 0x000c, 0x339d: 0x000c,
- 0x339e: 0x000c, 0x339f: 0x000c, 0x33a0: 0x000c, 0x33a1: 0x000c, 0x33a3: 0x000c,
- 0x33a4: 0x000c, 0x33a6: 0x000c, 0x33a7: 0x000c, 0x33a8: 0x000c, 0x33a9: 0x000c,
- 0x33aa: 0x000c,
- // Block 0xcf, offset 0x33c0
- 0x33c0: 0x0001, 0x33c1: 0x0001, 0x33c2: 0x0001, 0x33c3: 0x0001, 0x33c4: 0x0001, 0x33c5: 0x0001,
- 0x33c6: 0x0001, 0x33c7: 0x0001, 0x33c8: 0x0001, 0x33c9: 0x0001, 0x33ca: 0x0001, 0x33cb: 0x0001,
- 0x33cc: 0x0001, 0x33cd: 0x0001, 0x33ce: 0x0001, 0x33cf: 0x0001, 0x33d0: 0x000c, 0x33d1: 0x000c,
- 0x33d2: 0x000c, 0x33d3: 0x000c, 0x33d4: 0x000c, 0x33d5: 0x000c, 0x33d6: 0x000c, 0x33d7: 0x0001,
- 0x33d8: 0x0001, 0x33d9: 0x0001, 0x33da: 0x0001, 0x33db: 0x0001, 0x33dc: 0x0001, 0x33dd: 0x0001,
- 0x33de: 0x0001, 0x33df: 0x0001, 0x33e0: 0x0001, 0x33e1: 0x0001, 0x33e2: 0x0001, 0x33e3: 0x0001,
- 0x33e4: 0x0001, 0x33e5: 0x0001, 0x33e6: 0x0001, 0x33e7: 0x0001, 0x33e8: 0x0001, 0x33e9: 0x0001,
- 0x33ea: 0x0001, 0x33eb: 0x0001, 0x33ec: 0x0001, 0x33ed: 0x0001, 0x33ee: 0x0001, 0x33ef: 0x0001,
- 0x33f0: 0x0001, 0x33f1: 0x0001, 0x33f2: 0x0001, 0x33f3: 0x0001, 0x33f4: 0x0001, 0x33f5: 0x0001,
- 0x33f6: 0x0001, 0x33f7: 0x0001, 0x33f8: 0x0001, 0x33f9: 0x0001, 0x33fa: 0x0001, 0x33fb: 0x0001,
- 0x33fc: 0x0001, 0x33fd: 0x0001, 0x33fe: 0x0001, 0x33ff: 0x0001,
- // Block 0xd0, offset 0x3400
- 0x3400: 0x0001, 0x3401: 0x0001, 0x3402: 0x0001, 0x3403: 0x0001, 0x3404: 0x000c, 0x3405: 0x000c,
- 0x3406: 0x000c, 0x3407: 0x000c, 0x3408: 0x000c, 0x3409: 0x000c, 0x340a: 0x000c, 0x340b: 0x0001,
- 0x340c: 0x0001, 0x340d: 0x0001, 0x340e: 0x0001, 0x340f: 0x0001, 0x3410: 0x0001, 0x3411: 0x0001,
- 0x3412: 0x0001, 0x3413: 0x0001, 0x3414: 0x0001, 0x3415: 0x0001, 0x3416: 0x0001, 0x3417: 0x0001,
- 0x3418: 0x0001, 0x3419: 0x0001, 0x341a: 0x0001, 0x341b: 0x0001, 0x341c: 0x0001, 0x341d: 0x0001,
- 0x341e: 0x0001, 0x341f: 0x0001, 0x3420: 0x0001, 0x3421: 0x0001, 0x3422: 0x0001, 0x3423: 0x0001,
- 0x3424: 0x0001, 0x3425: 0x0001, 0x3426: 0x0001, 0x3427: 0x0001, 0x3428: 0x0001, 0x3429: 0x0001,
- 0x342a: 0x0001, 0x342b: 0x0001, 0x342c: 0x0001, 0x342d: 0x0001, 0x342e: 0x0001, 0x342f: 0x0001,
- 0x3430: 0x0001, 0x3431: 0x0001, 0x3432: 0x0001, 0x3433: 0x0001, 0x3434: 0x0001, 0x3435: 0x0001,
- 0x3436: 0x0001, 0x3437: 0x0001, 0x3438: 0x0001, 0x3439: 0x0001, 0x343a: 0x0001, 0x343b: 0x0001,
- 0x343c: 0x0001, 0x343d: 0x0001, 0x343e: 0x0001, 0x343f: 0x0001,
- // Block 0xd1, offset 0x3440
- 0x3440: 0x000d, 0x3441: 0x000d, 0x3442: 0x000d, 0x3443: 0x000d, 0x3444: 0x000d, 0x3445: 0x000d,
- 0x3446: 0x000d, 0x3447: 0x000d, 0x3448: 0x000d, 0x3449: 0x000d, 0x344a: 0x000d, 0x344b: 0x000d,
- 0x344c: 0x000d, 0x344d: 0x000d, 0x344e: 0x000d, 0x344f: 0x000d, 0x3450: 0x000d, 0x3451: 0x000d,
- 0x3452: 0x000d, 0x3453: 0x000d, 0x3454: 0x000d, 0x3455: 0x000d, 0x3456: 0x000d, 0x3457: 0x000d,
- 0x3458: 0x000d, 0x3459: 0x000d, 0x345a: 0x000d, 0x345b: 0x000d, 0x345c: 0x000d, 0x345d: 0x000d,
- 0x345e: 0x000d, 0x345f: 0x000d, 0x3460: 0x000d, 0x3461: 0x000d, 0x3462: 0x000d, 0x3463: 0x000d,
- 0x3464: 0x000d, 0x3465: 0x000d, 0x3466: 0x000d, 0x3467: 0x000d, 0x3468: 0x000d, 0x3469: 0x000d,
- 0x346a: 0x000d, 0x346b: 0x000d, 0x346c: 0x000d, 0x346d: 0x000d, 0x346e: 0x000d, 0x346f: 0x000d,
- 0x3470: 0x000a, 0x3471: 0x000a, 0x3472: 0x000d, 0x3473: 0x000d, 0x3474: 0x000d, 0x3475: 0x000d,
- 0x3476: 0x000d, 0x3477: 0x000d, 0x3478: 0x000d, 0x3479: 0x000d, 0x347a: 0x000d, 0x347b: 0x000d,
- 0x347c: 0x000d, 0x347d: 0x000d, 0x347e: 0x000d, 0x347f: 0x000d,
- // Block 0xd2, offset 0x3480
- 0x3480: 0x000a, 0x3481: 0x000a, 0x3482: 0x000a, 0x3483: 0x000a, 0x3484: 0x000a, 0x3485: 0x000a,
- 0x3486: 0x000a, 0x3487: 0x000a, 0x3488: 0x000a, 0x3489: 0x000a, 0x348a: 0x000a, 0x348b: 0x000a,
- 0x348c: 0x000a, 0x348d: 0x000a, 0x348e: 0x000a, 0x348f: 0x000a, 0x3490: 0x000a, 0x3491: 0x000a,
- 0x3492: 0x000a, 0x3493: 0x000a, 0x3494: 0x000a, 0x3495: 0x000a, 0x3496: 0x000a, 0x3497: 0x000a,
- 0x3498: 0x000a, 0x3499: 0x000a, 0x349a: 0x000a, 0x349b: 0x000a, 0x349c: 0x000a, 0x349d: 0x000a,
- 0x349e: 0x000a, 0x349f: 0x000a, 0x34a0: 0x000a, 0x34a1: 0x000a, 0x34a2: 0x000a, 0x34a3: 0x000a,
- 0x34a4: 0x000a, 0x34a5: 0x000a, 0x34a6: 0x000a, 0x34a7: 0x000a, 0x34a8: 0x000a, 0x34a9: 0x000a,
- 0x34aa: 0x000a, 0x34ab: 0x000a,
- 0x34b0: 0x000a, 0x34b1: 0x000a, 0x34b2: 0x000a, 0x34b3: 0x000a, 0x34b4: 0x000a, 0x34b5: 0x000a,
- 0x34b6: 0x000a, 0x34b7: 0x000a, 0x34b8: 0x000a, 0x34b9: 0x000a, 0x34ba: 0x000a, 0x34bb: 0x000a,
- 0x34bc: 0x000a, 0x34bd: 0x000a, 0x34be: 0x000a, 0x34bf: 0x000a,
- // Block 0xd3, offset 0x34c0
- 0x34c0: 0x000a, 0x34c1: 0x000a, 0x34c2: 0x000a, 0x34c3: 0x000a, 0x34c4: 0x000a, 0x34c5: 0x000a,
- 0x34c6: 0x000a, 0x34c7: 0x000a, 0x34c8: 0x000a, 0x34c9: 0x000a, 0x34ca: 0x000a, 0x34cb: 0x000a,
- 0x34cc: 0x000a, 0x34cd: 0x000a, 0x34ce: 0x000a, 0x34cf: 0x000a, 0x34d0: 0x000a, 0x34d1: 0x000a,
- 0x34d2: 0x000a, 0x34d3: 0x000a,
- 0x34e0: 0x000a, 0x34e1: 0x000a, 0x34e2: 0x000a, 0x34e3: 0x000a,
- 0x34e4: 0x000a, 0x34e5: 0x000a, 0x34e6: 0x000a, 0x34e7: 0x000a, 0x34e8: 0x000a, 0x34e9: 0x000a,
- 0x34ea: 0x000a, 0x34eb: 0x000a, 0x34ec: 0x000a, 0x34ed: 0x000a, 0x34ee: 0x000a,
- 0x34f1: 0x000a, 0x34f2: 0x000a, 0x34f3: 0x000a, 0x34f4: 0x000a, 0x34f5: 0x000a,
- 0x34f6: 0x000a, 0x34f7: 0x000a, 0x34f8: 0x000a, 0x34f9: 0x000a, 0x34fa: 0x000a, 0x34fb: 0x000a,
- 0x34fc: 0x000a, 0x34fd: 0x000a, 0x34fe: 0x000a, 0x34ff: 0x000a,
- // Block 0xd4, offset 0x3500
- 0x3501: 0x000a, 0x3502: 0x000a, 0x3503: 0x000a, 0x3504: 0x000a, 0x3505: 0x000a,
- 0x3506: 0x000a, 0x3507: 0x000a, 0x3508: 0x000a, 0x3509: 0x000a, 0x350a: 0x000a, 0x350b: 0x000a,
- 0x350c: 0x000a, 0x350d: 0x000a, 0x350e: 0x000a, 0x350f: 0x000a, 0x3511: 0x000a,
- 0x3512: 0x000a, 0x3513: 0x000a, 0x3514: 0x000a, 0x3515: 0x000a, 0x3516: 0x000a, 0x3517: 0x000a,
- 0x3518: 0x000a, 0x3519: 0x000a, 0x351a: 0x000a, 0x351b: 0x000a, 0x351c: 0x000a, 0x351d: 0x000a,
- 0x351e: 0x000a, 0x351f: 0x000a, 0x3520: 0x000a, 0x3521: 0x000a, 0x3522: 0x000a, 0x3523: 0x000a,
- 0x3524: 0x000a, 0x3525: 0x000a, 0x3526: 0x000a, 0x3527: 0x000a, 0x3528: 0x000a, 0x3529: 0x000a,
- 0x352a: 0x000a, 0x352b: 0x000a, 0x352c: 0x000a, 0x352d: 0x000a, 0x352e: 0x000a, 0x352f: 0x000a,
- 0x3530: 0x000a, 0x3531: 0x000a, 0x3532: 0x000a, 0x3533: 0x000a, 0x3534: 0x000a, 0x3535: 0x000a,
- // Block 0xd5, offset 0x3540
- 0x3540: 0x0002, 0x3541: 0x0002, 0x3542: 0x0002, 0x3543: 0x0002, 0x3544: 0x0002, 0x3545: 0x0002,
- 0x3546: 0x0002, 0x3547: 0x0002, 0x3548: 0x0002, 0x3549: 0x0002, 0x354a: 0x0002, 0x354b: 0x000a,
- 0x354c: 0x000a,
- // Block 0xd6, offset 0x3580
- 0x35aa: 0x000a, 0x35ab: 0x000a,
- // Block 0xd7, offset 0x35c0
- 0x35e0: 0x000a, 0x35e1: 0x000a, 0x35e2: 0x000a, 0x35e3: 0x000a,
- 0x35e4: 0x000a, 0x35e5: 0x000a,
- // Block 0xd8, offset 0x3600
- 0x3600: 0x000a, 0x3601: 0x000a, 0x3602: 0x000a, 0x3603: 0x000a, 0x3604: 0x000a, 0x3605: 0x000a,
- 0x3606: 0x000a, 0x3607: 0x000a, 0x3608: 0x000a, 0x3609: 0x000a, 0x360a: 0x000a, 0x360b: 0x000a,
- 0x360c: 0x000a, 0x360d: 0x000a, 0x360e: 0x000a, 0x360f: 0x000a, 0x3610: 0x000a, 0x3611: 0x000a,
- 0x3612: 0x000a, 0x3613: 0x000a, 0x3614: 0x000a,
- 0x3620: 0x000a, 0x3621: 0x000a, 0x3622: 0x000a, 0x3623: 0x000a,
- 0x3624: 0x000a, 0x3625: 0x000a, 0x3626: 0x000a, 0x3627: 0x000a, 0x3628: 0x000a, 0x3629: 0x000a,
- 0x362a: 0x000a, 0x362b: 0x000a, 0x362c: 0x000a,
- 0x3630: 0x000a, 0x3631: 0x000a, 0x3632: 0x000a, 0x3633: 0x000a, 0x3634: 0x000a, 0x3635: 0x000a,
- 0x3636: 0x000a, 0x3637: 0x000a, 0x3638: 0x000a,
- // Block 0xd9, offset 0x3640
- 0x3640: 0x000a, 0x3641: 0x000a, 0x3642: 0x000a, 0x3643: 0x000a, 0x3644: 0x000a, 0x3645: 0x000a,
- 0x3646: 0x000a, 0x3647: 0x000a, 0x3648: 0x000a, 0x3649: 0x000a, 0x364a: 0x000a, 0x364b: 0x000a,
- 0x364c: 0x000a, 0x364d: 0x000a, 0x364e: 0x000a, 0x364f: 0x000a, 0x3650: 0x000a, 0x3651: 0x000a,
- 0x3652: 0x000a, 0x3653: 0x000a, 0x3654: 0x000a,
- // Block 0xda, offset 0x3680
- 0x3680: 0x000a, 0x3681: 0x000a, 0x3682: 0x000a, 0x3683: 0x000a, 0x3684: 0x000a, 0x3685: 0x000a,
- 0x3686: 0x000a, 0x3687: 0x000a, 0x3688: 0x000a, 0x3689: 0x000a, 0x368a: 0x000a, 0x368b: 0x000a,
- 0x3690: 0x000a, 0x3691: 0x000a,
- 0x3692: 0x000a, 0x3693: 0x000a, 0x3694: 0x000a, 0x3695: 0x000a, 0x3696: 0x000a, 0x3697: 0x000a,
- 0x3698: 0x000a, 0x3699: 0x000a, 0x369a: 0x000a, 0x369b: 0x000a, 0x369c: 0x000a, 0x369d: 0x000a,
- 0x369e: 0x000a, 0x369f: 0x000a, 0x36a0: 0x000a, 0x36a1: 0x000a, 0x36a2: 0x000a, 0x36a3: 0x000a,
- 0x36a4: 0x000a, 0x36a5: 0x000a, 0x36a6: 0x000a, 0x36a7: 0x000a, 0x36a8: 0x000a, 0x36a9: 0x000a,
- 0x36aa: 0x000a, 0x36ab: 0x000a, 0x36ac: 0x000a, 0x36ad: 0x000a, 0x36ae: 0x000a, 0x36af: 0x000a,
- 0x36b0: 0x000a, 0x36b1: 0x000a, 0x36b2: 0x000a, 0x36b3: 0x000a, 0x36b4: 0x000a, 0x36b5: 0x000a,
- 0x36b6: 0x000a, 0x36b7: 0x000a, 0x36b8: 0x000a, 0x36b9: 0x000a, 0x36ba: 0x000a, 0x36bb: 0x000a,
- 0x36bc: 0x000a, 0x36bd: 0x000a, 0x36be: 0x000a, 0x36bf: 0x000a,
- // Block 0xdb, offset 0x36c0
- 0x36c0: 0x000a, 0x36c1: 0x000a, 0x36c2: 0x000a, 0x36c3: 0x000a, 0x36c4: 0x000a, 0x36c5: 0x000a,
- 0x36c6: 0x000a, 0x36c7: 0x000a,
- 0x36d0: 0x000a, 0x36d1: 0x000a,
- 0x36d2: 0x000a, 0x36d3: 0x000a, 0x36d4: 0x000a, 0x36d5: 0x000a, 0x36d6: 0x000a, 0x36d7: 0x000a,
- 0x36d8: 0x000a, 0x36d9: 0x000a,
- 0x36e0: 0x000a, 0x36e1: 0x000a, 0x36e2: 0x000a, 0x36e3: 0x000a,
- 0x36e4: 0x000a, 0x36e5: 0x000a, 0x36e6: 0x000a, 0x36e7: 0x000a, 0x36e8: 0x000a, 0x36e9: 0x000a,
- 0x36ea: 0x000a, 0x36eb: 0x000a, 0x36ec: 0x000a, 0x36ed: 0x000a, 0x36ee: 0x000a, 0x36ef: 0x000a,
- 0x36f0: 0x000a, 0x36f1: 0x000a, 0x36f2: 0x000a, 0x36f3: 0x000a, 0x36f4: 0x000a, 0x36f5: 0x000a,
- 0x36f6: 0x000a, 0x36f7: 0x000a, 0x36f8: 0x000a, 0x36f9: 0x000a, 0x36fa: 0x000a, 0x36fb: 0x000a,
- 0x36fc: 0x000a, 0x36fd: 0x000a, 0x36fe: 0x000a, 0x36ff: 0x000a,
- // Block 0xdc, offset 0x3700
- 0x3700: 0x000a, 0x3701: 0x000a, 0x3702: 0x000a, 0x3703: 0x000a, 0x3704: 0x000a, 0x3705: 0x000a,
- 0x3706: 0x000a, 0x3707: 0x000a,
- 0x3710: 0x000a, 0x3711: 0x000a,
- 0x3712: 0x000a, 0x3713: 0x000a, 0x3714: 0x000a, 0x3715: 0x000a, 0x3716: 0x000a, 0x3717: 0x000a,
- 0x3718: 0x000a, 0x3719: 0x000a, 0x371a: 0x000a, 0x371b: 0x000a, 0x371c: 0x000a, 0x371d: 0x000a,
- 0x371e: 0x000a, 0x371f: 0x000a, 0x3720: 0x000a, 0x3721: 0x000a, 0x3722: 0x000a, 0x3723: 0x000a,
- 0x3724: 0x000a, 0x3725: 0x000a, 0x3726: 0x000a, 0x3727: 0x000a, 0x3728: 0x000a, 0x3729: 0x000a,
- 0x372a: 0x000a, 0x372b: 0x000a, 0x372c: 0x000a, 0x372d: 0x000a,
- // Block 0xdd, offset 0x3740
- 0x3740: 0x000a, 0x3741: 0x000a, 0x3742: 0x000a, 0x3743: 0x000a, 0x3744: 0x000a, 0x3745: 0x000a,
- 0x3746: 0x000a, 0x3747: 0x000a, 0x3748: 0x000a, 0x3749: 0x000a, 0x374a: 0x000a, 0x374b: 0x000a,
- 0x3750: 0x000a, 0x3751: 0x000a,
- 0x3752: 0x000a, 0x3753: 0x000a, 0x3754: 0x000a, 0x3755: 0x000a, 0x3756: 0x000a, 0x3757: 0x000a,
- 0x3758: 0x000a, 0x3759: 0x000a, 0x375a: 0x000a, 0x375b: 0x000a, 0x375c: 0x000a, 0x375d: 0x000a,
- 0x375e: 0x000a, 0x375f: 0x000a, 0x3760: 0x000a, 0x3761: 0x000a, 0x3762: 0x000a, 0x3763: 0x000a,
- 0x3764: 0x000a, 0x3765: 0x000a, 0x3766: 0x000a, 0x3767: 0x000a, 0x3768: 0x000a, 0x3769: 0x000a,
- 0x376a: 0x000a, 0x376b: 0x000a, 0x376c: 0x000a, 0x376d: 0x000a, 0x376e: 0x000a, 0x376f: 0x000a,
- 0x3770: 0x000a, 0x3771: 0x000a, 0x3772: 0x000a, 0x3773: 0x000a, 0x3774: 0x000a, 0x3775: 0x000a,
- 0x3776: 0x000a, 0x3777: 0x000a, 0x3778: 0x000a, 0x3779: 0x000a, 0x377a: 0x000a, 0x377b: 0x000a,
- 0x377c: 0x000a, 0x377d: 0x000a, 0x377e: 0x000a,
- // Block 0xde, offset 0x3780
- 0x3780: 0x000a, 0x3781: 0x000a, 0x3782: 0x000a, 0x3783: 0x000a, 0x3784: 0x000a, 0x3785: 0x000a,
- 0x3786: 0x000a, 0x3787: 0x000a, 0x3788: 0x000a, 0x3789: 0x000a, 0x378a: 0x000a, 0x378b: 0x000a,
- 0x378c: 0x000a, 0x3790: 0x000a, 0x3791: 0x000a,
- 0x3792: 0x000a, 0x3793: 0x000a, 0x3794: 0x000a, 0x3795: 0x000a, 0x3796: 0x000a, 0x3797: 0x000a,
- 0x3798: 0x000a, 0x3799: 0x000a, 0x379a: 0x000a, 0x379b: 0x000a, 0x379c: 0x000a, 0x379d: 0x000a,
- 0x379e: 0x000a, 0x379f: 0x000a, 0x37a0: 0x000a, 0x37a1: 0x000a, 0x37a2: 0x000a, 0x37a3: 0x000a,
- 0x37a4: 0x000a, 0x37a5: 0x000a, 0x37a6: 0x000a, 0x37a7: 0x000a, 0x37a8: 0x000a, 0x37a9: 0x000a,
- 0x37aa: 0x000a, 0x37ab: 0x000a,
- // Block 0xdf, offset 0x37c0
- 0x37c0: 0x000a, 0x37c1: 0x000a, 0x37c2: 0x000a, 0x37c3: 0x000a, 0x37c4: 0x000a, 0x37c5: 0x000a,
- 0x37c6: 0x000a, 0x37c7: 0x000a, 0x37c8: 0x000a, 0x37c9: 0x000a, 0x37ca: 0x000a, 0x37cb: 0x000a,
- 0x37cc: 0x000a, 0x37cd: 0x000a, 0x37ce: 0x000a, 0x37cf: 0x000a, 0x37d0: 0x000a, 0x37d1: 0x000a,
- 0x37d2: 0x000a, 0x37d3: 0x000a, 0x37d4: 0x000a, 0x37d5: 0x000a, 0x37d6: 0x000a, 0x37d7: 0x000a,
- // Block 0xe0, offset 0x3800
- 0x3800: 0x000a,
- 0x3810: 0x000a, 0x3811: 0x000a,
- 0x3812: 0x000a, 0x3813: 0x000a, 0x3814: 0x000a, 0x3815: 0x000a, 0x3816: 0x000a, 0x3817: 0x000a,
- 0x3818: 0x000a, 0x3819: 0x000a, 0x381a: 0x000a, 0x381b: 0x000a, 0x381c: 0x000a, 0x381d: 0x000a,
- 0x381e: 0x000a, 0x381f: 0x000a, 0x3820: 0x000a, 0x3821: 0x000a, 0x3822: 0x000a, 0x3823: 0x000a,
- 0x3824: 0x000a, 0x3825: 0x000a, 0x3826: 0x000a,
- // Block 0xe1, offset 0x3840
- 0x387e: 0x000b, 0x387f: 0x000b,
- // Block 0xe2, offset 0x3880
- 0x3880: 0x000b, 0x3881: 0x000b, 0x3882: 0x000b, 0x3883: 0x000b, 0x3884: 0x000b, 0x3885: 0x000b,
- 0x3886: 0x000b, 0x3887: 0x000b, 0x3888: 0x000b, 0x3889: 0x000b, 0x388a: 0x000b, 0x388b: 0x000b,
- 0x388c: 0x000b, 0x388d: 0x000b, 0x388e: 0x000b, 0x388f: 0x000b, 0x3890: 0x000b, 0x3891: 0x000b,
- 0x3892: 0x000b, 0x3893: 0x000b, 0x3894: 0x000b, 0x3895: 0x000b, 0x3896: 0x000b, 0x3897: 0x000b,
- 0x3898: 0x000b, 0x3899: 0x000b, 0x389a: 0x000b, 0x389b: 0x000b, 0x389c: 0x000b, 0x389d: 0x000b,
- 0x389e: 0x000b, 0x389f: 0x000b, 0x38a0: 0x000b, 0x38a1: 0x000b, 0x38a2: 0x000b, 0x38a3: 0x000b,
- 0x38a4: 0x000b, 0x38a5: 0x000b, 0x38a6: 0x000b, 0x38a7: 0x000b, 0x38a8: 0x000b, 0x38a9: 0x000b,
- 0x38aa: 0x000b, 0x38ab: 0x000b, 0x38ac: 0x000b, 0x38ad: 0x000b, 0x38ae: 0x000b, 0x38af: 0x000b,
- 0x38b0: 0x000b, 0x38b1: 0x000b, 0x38b2: 0x000b, 0x38b3: 0x000b, 0x38b4: 0x000b, 0x38b5: 0x000b,
- 0x38b6: 0x000b, 0x38b7: 0x000b, 0x38b8: 0x000b, 0x38b9: 0x000b, 0x38ba: 0x000b, 0x38bb: 0x000b,
- 0x38bc: 0x000b, 0x38bd: 0x000b, 0x38be: 0x000b, 0x38bf: 0x000b,
- // Block 0xe3, offset 0x38c0
- 0x38c0: 0x000c, 0x38c1: 0x000c, 0x38c2: 0x000c, 0x38c3: 0x000c, 0x38c4: 0x000c, 0x38c5: 0x000c,
- 0x38c6: 0x000c, 0x38c7: 0x000c, 0x38c8: 0x000c, 0x38c9: 0x000c, 0x38ca: 0x000c, 0x38cb: 0x000c,
- 0x38cc: 0x000c, 0x38cd: 0x000c, 0x38ce: 0x000c, 0x38cf: 0x000c, 0x38d0: 0x000c, 0x38d1: 0x000c,
- 0x38d2: 0x000c, 0x38d3: 0x000c, 0x38d4: 0x000c, 0x38d5: 0x000c, 0x38d6: 0x000c, 0x38d7: 0x000c,
- 0x38d8: 0x000c, 0x38d9: 0x000c, 0x38da: 0x000c, 0x38db: 0x000c, 0x38dc: 0x000c, 0x38dd: 0x000c,
- 0x38de: 0x000c, 0x38df: 0x000c, 0x38e0: 0x000c, 0x38e1: 0x000c, 0x38e2: 0x000c, 0x38e3: 0x000c,
- 0x38e4: 0x000c, 0x38e5: 0x000c, 0x38e6: 0x000c, 0x38e7: 0x000c, 0x38e8: 0x000c, 0x38e9: 0x000c,
- 0x38ea: 0x000c, 0x38eb: 0x000c, 0x38ec: 0x000c, 0x38ed: 0x000c, 0x38ee: 0x000c, 0x38ef: 0x000c,
- 0x38f0: 0x000b, 0x38f1: 0x000b, 0x38f2: 0x000b, 0x38f3: 0x000b, 0x38f4: 0x000b, 0x38f5: 0x000b,
- 0x38f6: 0x000b, 0x38f7: 0x000b, 0x38f8: 0x000b, 0x38f9: 0x000b, 0x38fa: 0x000b, 0x38fb: 0x000b,
- 0x38fc: 0x000b, 0x38fd: 0x000b, 0x38fe: 0x000b, 0x38ff: 0x000b,
-}
-
-// bidiIndex: 24 blocks, 1536 entries, 1536 bytes
-// Block 0 is the zero block.
-var bidiIndex = [1536]uint8{
- // Block 0x0, offset 0x0
- // Block 0x1, offset 0x40
- // Block 0x2, offset 0x80
- // Block 0x3, offset 0xc0
- 0xc2: 0x01, 0xc3: 0x02,
- 0xca: 0x03, 0xcb: 0x04, 0xcc: 0x05, 0xcd: 0x06, 0xce: 0x07, 0xcf: 0x08,
- 0xd2: 0x09, 0xd6: 0x0a, 0xd7: 0x0b,
- 0xd8: 0x0c, 0xd9: 0x0d, 0xda: 0x0e, 0xdb: 0x0f, 0xdc: 0x10, 0xdd: 0x11, 0xde: 0x12, 0xdf: 0x13,
- 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06,
- 0xea: 0x07, 0xef: 0x08,
- 0xf0: 0x11, 0xf1: 0x12, 0xf2: 0x12, 0xf3: 0x14, 0xf4: 0x15,
- // Block 0x4, offset 0x100
- 0x120: 0x14, 0x121: 0x15, 0x122: 0x16, 0x123: 0x17, 0x124: 0x18, 0x125: 0x19, 0x126: 0x1a, 0x127: 0x1b,
- 0x128: 0x1c, 0x129: 0x1d, 0x12a: 0x1c, 0x12b: 0x1e, 0x12c: 0x1f, 0x12d: 0x20, 0x12e: 0x21, 0x12f: 0x22,
- 0x130: 0x23, 0x131: 0x24, 0x132: 0x1a, 0x133: 0x25, 0x134: 0x26, 0x135: 0x27, 0x137: 0x28,
- 0x138: 0x29, 0x139: 0x2a, 0x13a: 0x2b, 0x13b: 0x2c, 0x13c: 0x2d, 0x13d: 0x2e, 0x13e: 0x2f, 0x13f: 0x30,
- // Block 0x5, offset 0x140
- 0x140: 0x31, 0x141: 0x32, 0x142: 0x33,
- 0x14d: 0x34, 0x14e: 0x35,
- 0x150: 0x36,
- 0x15a: 0x37, 0x15c: 0x38, 0x15d: 0x39, 0x15e: 0x3a, 0x15f: 0x3b,
- 0x160: 0x3c, 0x162: 0x3d, 0x164: 0x3e, 0x165: 0x3f, 0x167: 0x40,
- 0x168: 0x41, 0x169: 0x42, 0x16a: 0x43, 0x16c: 0x44, 0x16d: 0x45, 0x16e: 0x46, 0x16f: 0x47,
- 0x170: 0x48, 0x173: 0x49, 0x177: 0x4a,
- 0x17e: 0x4b, 0x17f: 0x4c,
- // Block 0x6, offset 0x180
- 0x180: 0x4d, 0x181: 0x4e, 0x182: 0x4f, 0x183: 0x50, 0x184: 0x51, 0x185: 0x52, 0x186: 0x53, 0x187: 0x54,
- 0x188: 0x55, 0x189: 0x54, 0x18a: 0x54, 0x18b: 0x54, 0x18c: 0x56, 0x18d: 0x57, 0x18e: 0x58, 0x18f: 0x54,
- 0x190: 0x59, 0x191: 0x5a, 0x192: 0x5b, 0x193: 0x5c, 0x194: 0x54, 0x195: 0x54, 0x196: 0x54, 0x197: 0x54,
- 0x198: 0x54, 0x199: 0x54, 0x19a: 0x5d, 0x19b: 0x54, 0x19c: 0x54, 0x19d: 0x5e, 0x19e: 0x54, 0x19f: 0x5f,
- 0x1a4: 0x54, 0x1a5: 0x54, 0x1a6: 0x60, 0x1a7: 0x61,
- 0x1a8: 0x54, 0x1a9: 0x54, 0x1aa: 0x54, 0x1ab: 0x54, 0x1ac: 0x54, 0x1ad: 0x62, 0x1ae: 0x63, 0x1af: 0x64,
- 0x1b3: 0x65, 0x1b5: 0x66, 0x1b7: 0x67,
- 0x1b8: 0x68, 0x1b9: 0x69, 0x1ba: 0x6a, 0x1bb: 0x6b, 0x1bc: 0x54, 0x1bd: 0x54, 0x1be: 0x54, 0x1bf: 0x6c,
- // Block 0x7, offset 0x1c0
- 0x1c0: 0x6d, 0x1c2: 0x6e, 0x1c3: 0x6f, 0x1c7: 0x70,
- 0x1c8: 0x71, 0x1c9: 0x72, 0x1ca: 0x73, 0x1cb: 0x74, 0x1cd: 0x75, 0x1cf: 0x76,
- // Block 0x8, offset 0x200
- 0x237: 0x54,
- // Block 0x9, offset 0x240
- 0x252: 0x77, 0x253: 0x78,
- 0x258: 0x79, 0x259: 0x7a, 0x25a: 0x7b, 0x25b: 0x7c, 0x25c: 0x7d, 0x25e: 0x7e,
- 0x260: 0x7f, 0x261: 0x80, 0x263: 0x81, 0x264: 0x82, 0x265: 0x83, 0x266: 0x84, 0x267: 0x85,
- 0x268: 0x86, 0x269: 0x87, 0x26a: 0x88, 0x26b: 0x89, 0x26f: 0x8a,
- // Block 0xa, offset 0x280
- 0x2ac: 0x8b, 0x2ad: 0x8c, 0x2ae: 0x0e, 0x2af: 0x0e,
- 0x2b0: 0x0e, 0x2b1: 0x0e, 0x2b2: 0x0e, 0x2b3: 0x0e, 0x2b4: 0x8d, 0x2b5: 0x0e, 0x2b6: 0x0e, 0x2b7: 0x8e,
- 0x2b8: 0x8f, 0x2b9: 0x90, 0x2ba: 0x0e, 0x2bb: 0x91, 0x2bc: 0x92, 0x2bd: 0x93, 0x2bf: 0x94,
- // Block 0xb, offset 0x2c0
- 0x2c4: 0x95, 0x2c5: 0x54, 0x2c6: 0x96, 0x2c7: 0x97,
- 0x2cb: 0x98, 0x2cd: 0x99,
- 0x2e0: 0x9a, 0x2e1: 0x9a, 0x2e2: 0x9a, 0x2e3: 0x9a, 0x2e4: 0x9b, 0x2e5: 0x9a, 0x2e6: 0x9a, 0x2e7: 0x9a,
- 0x2e8: 0x9c, 0x2e9: 0x9a, 0x2ea: 0x9a, 0x2eb: 0x9d, 0x2ec: 0x9e, 0x2ed: 0x9a, 0x2ee: 0x9a, 0x2ef: 0x9a,
- 0x2f0: 0x9a, 0x2f1: 0x9a, 0x2f2: 0x9a, 0x2f3: 0x9a, 0x2f4: 0x9a, 0x2f5: 0x9a, 0x2f6: 0x9a, 0x2f7: 0x9a,
- 0x2f8: 0x9a, 0x2f9: 0x9f, 0x2fa: 0x9a, 0x2fb: 0x9a, 0x2fc: 0x9a, 0x2fd: 0x9a, 0x2fe: 0x9a, 0x2ff: 0x9a,
- // Block 0xc, offset 0x300
- 0x300: 0xa0, 0x301: 0xa1, 0x302: 0xa2, 0x304: 0xa3, 0x305: 0xa4, 0x306: 0xa5, 0x307: 0xa6,
- 0x308: 0xa7, 0x30b: 0xa8, 0x30c: 0xa9, 0x30d: 0xaa,
- 0x310: 0xab, 0x311: 0xac, 0x312: 0xad, 0x313: 0xae, 0x316: 0xaf, 0x317: 0xb0,
- 0x318: 0xb1, 0x319: 0xb2, 0x31a: 0xb3, 0x31c: 0xb4,
- 0x328: 0xb5, 0x329: 0xb6, 0x32a: 0xb7,
- 0x330: 0xb8, 0x332: 0xb9, 0x334: 0xba, 0x335: 0xbb,
- // Block 0xd, offset 0x340
- 0x36b: 0xbc, 0x36c: 0xbd,
- 0x37e: 0xbe,
- // Block 0xe, offset 0x380
- 0x3b2: 0xbf,
- // Block 0xf, offset 0x3c0
- 0x3c5: 0xc0, 0x3c6: 0xc1,
- 0x3c8: 0x54, 0x3c9: 0xc2, 0x3cc: 0x54, 0x3cd: 0xc3,
- 0x3db: 0xc4, 0x3dc: 0xc5, 0x3dd: 0xc6, 0x3de: 0xc7, 0x3df: 0xc8,
- 0x3e8: 0xc9, 0x3e9: 0xca, 0x3ea: 0xcb,
- // Block 0x10, offset 0x400
- 0x400: 0xcc,
- 0x420: 0x9a, 0x421: 0x9a, 0x422: 0x9a, 0x423: 0xcd, 0x424: 0x9a, 0x425: 0xce, 0x426: 0x9a, 0x427: 0x9a,
- 0x428: 0x9a, 0x429: 0x9a, 0x42a: 0x9a, 0x42b: 0x9a, 0x42c: 0x9a, 0x42d: 0x9a, 0x42e: 0x9a, 0x42f: 0x9a,
- 0x430: 0x9a, 0x431: 0x9a, 0x432: 0x9a, 0x433: 0x9a, 0x434: 0x9a, 0x435: 0x9a, 0x436: 0x9a, 0x437: 0x9a,
- 0x438: 0x0e, 0x439: 0x0e, 0x43a: 0x0e, 0x43b: 0xcf, 0x43c: 0x9a, 0x43d: 0x9a, 0x43e: 0x9a, 0x43f: 0x9a,
- // Block 0x11, offset 0x440
- 0x440: 0xd0, 0x441: 0x54, 0x442: 0xd1, 0x443: 0xd2, 0x444: 0xd3, 0x445: 0xd4,
- 0x449: 0xd5, 0x44c: 0x54, 0x44d: 0x54, 0x44e: 0x54, 0x44f: 0x54,
- 0x450: 0x54, 0x451: 0x54, 0x452: 0x54, 0x453: 0x54, 0x454: 0x54, 0x455: 0x54, 0x456: 0x54, 0x457: 0x54,
- 0x458: 0x54, 0x459: 0x54, 0x45a: 0x54, 0x45b: 0xd6, 0x45c: 0x54, 0x45d: 0x6b, 0x45e: 0x54, 0x45f: 0xd7,
- 0x460: 0xd8, 0x461: 0xd9, 0x462: 0xda, 0x464: 0xdb, 0x465: 0xdc, 0x466: 0xdd, 0x467: 0xde,
- 0x47f: 0xdf,
- // Block 0x12, offset 0x480
- 0x4bf: 0xdf,
- // Block 0x13, offset 0x4c0
- 0x4d0: 0x09, 0x4d1: 0x0a, 0x4d6: 0x0b,
- 0x4db: 0x0c, 0x4dd: 0x0d, 0x4de: 0x0e, 0x4df: 0x0f,
- 0x4ef: 0x10,
- 0x4ff: 0x10,
- // Block 0x14, offset 0x500
- 0x50f: 0x10,
- 0x51f: 0x10,
- 0x52f: 0x10,
- 0x53f: 0x10,
- // Block 0x15, offset 0x540
- 0x540: 0xe0, 0x541: 0xe0, 0x542: 0xe0, 0x543: 0xe0, 0x544: 0x05, 0x545: 0x05, 0x546: 0x05, 0x547: 0xe1,
- 0x548: 0xe0, 0x549: 0xe0, 0x54a: 0xe0, 0x54b: 0xe0, 0x54c: 0xe0, 0x54d: 0xe0, 0x54e: 0xe0, 0x54f: 0xe0,
- 0x550: 0xe0, 0x551: 0xe0, 0x552: 0xe0, 0x553: 0xe0, 0x554: 0xe0, 0x555: 0xe0, 0x556: 0xe0, 0x557: 0xe0,
- 0x558: 0xe0, 0x559: 0xe0, 0x55a: 0xe0, 0x55b: 0xe0, 0x55c: 0xe0, 0x55d: 0xe0, 0x55e: 0xe0, 0x55f: 0xe0,
- 0x560: 0xe0, 0x561: 0xe0, 0x562: 0xe0, 0x563: 0xe0, 0x564: 0xe0, 0x565: 0xe0, 0x566: 0xe0, 0x567: 0xe0,
- 0x568: 0xe0, 0x569: 0xe0, 0x56a: 0xe0, 0x56b: 0xe0, 0x56c: 0xe0, 0x56d: 0xe0, 0x56e: 0xe0, 0x56f: 0xe0,
- 0x570: 0xe0, 0x571: 0xe0, 0x572: 0xe0, 0x573: 0xe0, 0x574: 0xe0, 0x575: 0xe0, 0x576: 0xe0, 0x577: 0xe0,
- 0x578: 0xe0, 0x579: 0xe0, 0x57a: 0xe0, 0x57b: 0xe0, 0x57c: 0xe0, 0x57d: 0xe0, 0x57e: 0xe0, 0x57f: 0xe0,
- // Block 0x16, offset 0x580
- 0x58f: 0x10,
- 0x59f: 0x10,
- 0x5a0: 0x13,
- 0x5af: 0x10,
- 0x5bf: 0x10,
- // Block 0x17, offset 0x5c0
- 0x5cf: 0x10,
-}
-
-// Total table size 16184 bytes (15KiB); checksum: F50EF68C
diff --git a/vendor/golang.org/x/text/unicode/bidi/tables11.0.0.go b/vendor/golang.org/x/text/unicode/bidi/tables11.0.0.go
deleted file mode 100644
index f76bdca2..00000000
--- a/vendor/golang.org/x/text/unicode/bidi/tables11.0.0.go
+++ /dev/null
@@ -1,1887 +0,0 @@
-// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
-
-//go:build go1.13 && !go1.14
-
-package bidi
-
-// UnicodeVersion is the Unicode version from which the tables in this package are derived.
-const UnicodeVersion = "11.0.0"
-
-// xorMasks contains masks to be xor-ed with brackets to get the reverse
-// version.
-var xorMasks = []int32{ // 8 elements
- 0, 1, 6, 7, 3, 15, 29, 63,
-} // Size: 56 bytes
-
-// lookup returns the trie value for the first UTF-8 encoding in s and
-// the width in bytes of this encoding. The size will be 0 if s does not
-// hold enough bytes to complete the encoding. len(s) must be greater than 0.
-func (t *bidiTrie) lookup(s []byte) (v uint8, sz int) {
- c0 := s[0]
- switch {
- case c0 < 0x80: // is ASCII
- return bidiValues[c0], 1
- case c0 < 0xC2:
- return 0, 1 // Illegal UTF-8: not a starter, not ASCII.
- case c0 < 0xE0: // 2-byte UTF-8
- if len(s) < 2 {
- return 0, 0
- }
- i := bidiIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c1), 2
- case c0 < 0xF0: // 3-byte UTF-8
- if len(s) < 3 {
- return 0, 0
- }
- i := bidiIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = bidiIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c2), 3
- case c0 < 0xF8: // 4-byte UTF-8
- if len(s) < 4 {
- return 0, 0
- }
- i := bidiIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = bidiIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- o = uint32(i)<<6 + uint32(c2)
- i = bidiIndex[o]
- c3 := s[3]
- if c3 < 0x80 || 0xC0 <= c3 {
- return 0, 3 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c3), 4
- }
- // Illegal rune
- return 0, 1
-}
-
-// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.
-// s must start with a full and valid UTF-8 encoded rune.
-func (t *bidiTrie) lookupUnsafe(s []byte) uint8 {
- c0 := s[0]
- if c0 < 0x80 { // is ASCII
- return bidiValues[c0]
- }
- i := bidiIndex[c0]
- if c0 < 0xE0 { // 2-byte UTF-8
- return t.lookupValue(uint32(i), s[1])
- }
- i = bidiIndex[uint32(i)<<6+uint32(s[1])]
- if c0 < 0xF0 { // 3-byte UTF-8
- return t.lookupValue(uint32(i), s[2])
- }
- i = bidiIndex[uint32(i)<<6+uint32(s[2])]
- if c0 < 0xF8 { // 4-byte UTF-8
- return t.lookupValue(uint32(i), s[3])
- }
- return 0
-}
-
-// lookupString returns the trie value for the first UTF-8 encoding in s and
-// the width in bytes of this encoding. The size will be 0 if s does not
-// hold enough bytes to complete the encoding. len(s) must be greater than 0.
-func (t *bidiTrie) lookupString(s string) (v uint8, sz int) {
- c0 := s[0]
- switch {
- case c0 < 0x80: // is ASCII
- return bidiValues[c0], 1
- case c0 < 0xC2:
- return 0, 1 // Illegal UTF-8: not a starter, not ASCII.
- case c0 < 0xE0: // 2-byte UTF-8
- if len(s) < 2 {
- return 0, 0
- }
- i := bidiIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c1), 2
- case c0 < 0xF0: // 3-byte UTF-8
- if len(s) < 3 {
- return 0, 0
- }
- i := bidiIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = bidiIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c2), 3
- case c0 < 0xF8: // 4-byte UTF-8
- if len(s) < 4 {
- return 0, 0
- }
- i := bidiIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = bidiIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- o = uint32(i)<<6 + uint32(c2)
- i = bidiIndex[o]
- c3 := s[3]
- if c3 < 0x80 || 0xC0 <= c3 {
- return 0, 3 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c3), 4
- }
- // Illegal rune
- return 0, 1
-}
-
-// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.
-// s must start with a full and valid UTF-8 encoded rune.
-func (t *bidiTrie) lookupStringUnsafe(s string) uint8 {
- c0 := s[0]
- if c0 < 0x80 { // is ASCII
- return bidiValues[c0]
- }
- i := bidiIndex[c0]
- if c0 < 0xE0 { // 2-byte UTF-8
- return t.lookupValue(uint32(i), s[1])
- }
- i = bidiIndex[uint32(i)<<6+uint32(s[1])]
- if c0 < 0xF0 { // 3-byte UTF-8
- return t.lookupValue(uint32(i), s[2])
- }
- i = bidiIndex[uint32(i)<<6+uint32(s[2])]
- if c0 < 0xF8 { // 4-byte UTF-8
- return t.lookupValue(uint32(i), s[3])
- }
- return 0
-}
-
-// bidiTrie. Total size: 16512 bytes (16.12 KiB). Checksum: 2a9cf1317f2ffaa.
-type bidiTrie struct{}
-
-func newBidiTrie(i int) *bidiTrie {
- return &bidiTrie{}
-}
-
-// lookupValue determines the type of block n and looks up the value for b.
-func (t *bidiTrie) lookupValue(n uint32, b byte) uint8 {
- switch {
- default:
- return uint8(bidiValues[n<<6+uint32(b)])
- }
-}
-
-// bidiValues: 234 blocks, 14976 entries, 14976 bytes
-// The third block is the zero block.
-var bidiValues = [14976]uint8{
- // Block 0x0, offset 0x0
- 0x00: 0x000b, 0x01: 0x000b, 0x02: 0x000b, 0x03: 0x000b, 0x04: 0x000b, 0x05: 0x000b,
- 0x06: 0x000b, 0x07: 0x000b, 0x08: 0x000b, 0x09: 0x0008, 0x0a: 0x0007, 0x0b: 0x0008,
- 0x0c: 0x0009, 0x0d: 0x0007, 0x0e: 0x000b, 0x0f: 0x000b, 0x10: 0x000b, 0x11: 0x000b,
- 0x12: 0x000b, 0x13: 0x000b, 0x14: 0x000b, 0x15: 0x000b, 0x16: 0x000b, 0x17: 0x000b,
- 0x18: 0x000b, 0x19: 0x000b, 0x1a: 0x000b, 0x1b: 0x000b, 0x1c: 0x0007, 0x1d: 0x0007,
- 0x1e: 0x0007, 0x1f: 0x0008, 0x20: 0x0009, 0x21: 0x000a, 0x22: 0x000a, 0x23: 0x0004,
- 0x24: 0x0004, 0x25: 0x0004, 0x26: 0x000a, 0x27: 0x000a, 0x28: 0x003a, 0x29: 0x002a,
- 0x2a: 0x000a, 0x2b: 0x0003, 0x2c: 0x0006, 0x2d: 0x0003, 0x2e: 0x0006, 0x2f: 0x0006,
- 0x30: 0x0002, 0x31: 0x0002, 0x32: 0x0002, 0x33: 0x0002, 0x34: 0x0002, 0x35: 0x0002,
- 0x36: 0x0002, 0x37: 0x0002, 0x38: 0x0002, 0x39: 0x0002, 0x3a: 0x0006, 0x3b: 0x000a,
- 0x3c: 0x000a, 0x3d: 0x000a, 0x3e: 0x000a, 0x3f: 0x000a,
- // Block 0x1, offset 0x40
- 0x40: 0x000a,
- 0x5b: 0x005a, 0x5c: 0x000a, 0x5d: 0x004a,
- 0x5e: 0x000a, 0x5f: 0x000a, 0x60: 0x000a,
- 0x7b: 0x005a,
- 0x7c: 0x000a, 0x7d: 0x004a, 0x7e: 0x000a, 0x7f: 0x000b,
- // Block 0x2, offset 0x80
- // Block 0x3, offset 0xc0
- 0xc0: 0x000b, 0xc1: 0x000b, 0xc2: 0x000b, 0xc3: 0x000b, 0xc4: 0x000b, 0xc5: 0x0007,
- 0xc6: 0x000b, 0xc7: 0x000b, 0xc8: 0x000b, 0xc9: 0x000b, 0xca: 0x000b, 0xcb: 0x000b,
- 0xcc: 0x000b, 0xcd: 0x000b, 0xce: 0x000b, 0xcf: 0x000b, 0xd0: 0x000b, 0xd1: 0x000b,
- 0xd2: 0x000b, 0xd3: 0x000b, 0xd4: 0x000b, 0xd5: 0x000b, 0xd6: 0x000b, 0xd7: 0x000b,
- 0xd8: 0x000b, 0xd9: 0x000b, 0xda: 0x000b, 0xdb: 0x000b, 0xdc: 0x000b, 0xdd: 0x000b,
- 0xde: 0x000b, 0xdf: 0x000b, 0xe0: 0x0006, 0xe1: 0x000a, 0xe2: 0x0004, 0xe3: 0x0004,
- 0xe4: 0x0004, 0xe5: 0x0004, 0xe6: 0x000a, 0xe7: 0x000a, 0xe8: 0x000a, 0xe9: 0x000a,
- 0xeb: 0x000a, 0xec: 0x000a, 0xed: 0x000b, 0xee: 0x000a, 0xef: 0x000a,
- 0xf0: 0x0004, 0xf1: 0x0004, 0xf2: 0x0002, 0xf3: 0x0002, 0xf4: 0x000a,
- 0xf6: 0x000a, 0xf7: 0x000a, 0xf8: 0x000a, 0xf9: 0x0002, 0xfb: 0x000a,
- 0xfc: 0x000a, 0xfd: 0x000a, 0xfe: 0x000a, 0xff: 0x000a,
- // Block 0x4, offset 0x100
- 0x117: 0x000a,
- 0x137: 0x000a,
- // Block 0x5, offset 0x140
- 0x179: 0x000a, 0x17a: 0x000a,
- // Block 0x6, offset 0x180
- 0x182: 0x000a, 0x183: 0x000a, 0x184: 0x000a, 0x185: 0x000a,
- 0x186: 0x000a, 0x187: 0x000a, 0x188: 0x000a, 0x189: 0x000a, 0x18a: 0x000a, 0x18b: 0x000a,
- 0x18c: 0x000a, 0x18d: 0x000a, 0x18e: 0x000a, 0x18f: 0x000a,
- 0x192: 0x000a, 0x193: 0x000a, 0x194: 0x000a, 0x195: 0x000a, 0x196: 0x000a, 0x197: 0x000a,
- 0x198: 0x000a, 0x199: 0x000a, 0x19a: 0x000a, 0x19b: 0x000a, 0x19c: 0x000a, 0x19d: 0x000a,
- 0x19e: 0x000a, 0x19f: 0x000a,
- 0x1a5: 0x000a, 0x1a6: 0x000a, 0x1a7: 0x000a, 0x1a8: 0x000a, 0x1a9: 0x000a,
- 0x1aa: 0x000a, 0x1ab: 0x000a, 0x1ac: 0x000a, 0x1ad: 0x000a, 0x1af: 0x000a,
- 0x1b0: 0x000a, 0x1b1: 0x000a, 0x1b2: 0x000a, 0x1b3: 0x000a, 0x1b4: 0x000a, 0x1b5: 0x000a,
- 0x1b6: 0x000a, 0x1b7: 0x000a, 0x1b8: 0x000a, 0x1b9: 0x000a, 0x1ba: 0x000a, 0x1bb: 0x000a,
- 0x1bc: 0x000a, 0x1bd: 0x000a, 0x1be: 0x000a, 0x1bf: 0x000a,
- // Block 0x7, offset 0x1c0
- 0x1c0: 0x000c, 0x1c1: 0x000c, 0x1c2: 0x000c, 0x1c3: 0x000c, 0x1c4: 0x000c, 0x1c5: 0x000c,
- 0x1c6: 0x000c, 0x1c7: 0x000c, 0x1c8: 0x000c, 0x1c9: 0x000c, 0x1ca: 0x000c, 0x1cb: 0x000c,
- 0x1cc: 0x000c, 0x1cd: 0x000c, 0x1ce: 0x000c, 0x1cf: 0x000c, 0x1d0: 0x000c, 0x1d1: 0x000c,
- 0x1d2: 0x000c, 0x1d3: 0x000c, 0x1d4: 0x000c, 0x1d5: 0x000c, 0x1d6: 0x000c, 0x1d7: 0x000c,
- 0x1d8: 0x000c, 0x1d9: 0x000c, 0x1da: 0x000c, 0x1db: 0x000c, 0x1dc: 0x000c, 0x1dd: 0x000c,
- 0x1de: 0x000c, 0x1df: 0x000c, 0x1e0: 0x000c, 0x1e1: 0x000c, 0x1e2: 0x000c, 0x1e3: 0x000c,
- 0x1e4: 0x000c, 0x1e5: 0x000c, 0x1e6: 0x000c, 0x1e7: 0x000c, 0x1e8: 0x000c, 0x1e9: 0x000c,
- 0x1ea: 0x000c, 0x1eb: 0x000c, 0x1ec: 0x000c, 0x1ed: 0x000c, 0x1ee: 0x000c, 0x1ef: 0x000c,
- 0x1f0: 0x000c, 0x1f1: 0x000c, 0x1f2: 0x000c, 0x1f3: 0x000c, 0x1f4: 0x000c, 0x1f5: 0x000c,
- 0x1f6: 0x000c, 0x1f7: 0x000c, 0x1f8: 0x000c, 0x1f9: 0x000c, 0x1fa: 0x000c, 0x1fb: 0x000c,
- 0x1fc: 0x000c, 0x1fd: 0x000c, 0x1fe: 0x000c, 0x1ff: 0x000c,
- // Block 0x8, offset 0x200
- 0x200: 0x000c, 0x201: 0x000c, 0x202: 0x000c, 0x203: 0x000c, 0x204: 0x000c, 0x205: 0x000c,
- 0x206: 0x000c, 0x207: 0x000c, 0x208: 0x000c, 0x209: 0x000c, 0x20a: 0x000c, 0x20b: 0x000c,
- 0x20c: 0x000c, 0x20d: 0x000c, 0x20e: 0x000c, 0x20f: 0x000c, 0x210: 0x000c, 0x211: 0x000c,
- 0x212: 0x000c, 0x213: 0x000c, 0x214: 0x000c, 0x215: 0x000c, 0x216: 0x000c, 0x217: 0x000c,
- 0x218: 0x000c, 0x219: 0x000c, 0x21a: 0x000c, 0x21b: 0x000c, 0x21c: 0x000c, 0x21d: 0x000c,
- 0x21e: 0x000c, 0x21f: 0x000c, 0x220: 0x000c, 0x221: 0x000c, 0x222: 0x000c, 0x223: 0x000c,
- 0x224: 0x000c, 0x225: 0x000c, 0x226: 0x000c, 0x227: 0x000c, 0x228: 0x000c, 0x229: 0x000c,
- 0x22a: 0x000c, 0x22b: 0x000c, 0x22c: 0x000c, 0x22d: 0x000c, 0x22e: 0x000c, 0x22f: 0x000c,
- 0x234: 0x000a, 0x235: 0x000a,
- 0x23e: 0x000a,
- // Block 0x9, offset 0x240
- 0x244: 0x000a, 0x245: 0x000a,
- 0x247: 0x000a,
- // Block 0xa, offset 0x280
- 0x2b6: 0x000a,
- // Block 0xb, offset 0x2c0
- 0x2c3: 0x000c, 0x2c4: 0x000c, 0x2c5: 0x000c,
- 0x2c6: 0x000c, 0x2c7: 0x000c, 0x2c8: 0x000c, 0x2c9: 0x000c,
- // Block 0xc, offset 0x300
- 0x30a: 0x000a,
- 0x30d: 0x000a, 0x30e: 0x000a, 0x30f: 0x0004, 0x310: 0x0001, 0x311: 0x000c,
- 0x312: 0x000c, 0x313: 0x000c, 0x314: 0x000c, 0x315: 0x000c, 0x316: 0x000c, 0x317: 0x000c,
- 0x318: 0x000c, 0x319: 0x000c, 0x31a: 0x000c, 0x31b: 0x000c, 0x31c: 0x000c, 0x31d: 0x000c,
- 0x31e: 0x000c, 0x31f: 0x000c, 0x320: 0x000c, 0x321: 0x000c, 0x322: 0x000c, 0x323: 0x000c,
- 0x324: 0x000c, 0x325: 0x000c, 0x326: 0x000c, 0x327: 0x000c, 0x328: 0x000c, 0x329: 0x000c,
- 0x32a: 0x000c, 0x32b: 0x000c, 0x32c: 0x000c, 0x32d: 0x000c, 0x32e: 0x000c, 0x32f: 0x000c,
- 0x330: 0x000c, 0x331: 0x000c, 0x332: 0x000c, 0x333: 0x000c, 0x334: 0x000c, 0x335: 0x000c,
- 0x336: 0x000c, 0x337: 0x000c, 0x338: 0x000c, 0x339: 0x000c, 0x33a: 0x000c, 0x33b: 0x000c,
- 0x33c: 0x000c, 0x33d: 0x000c, 0x33e: 0x0001, 0x33f: 0x000c,
- // Block 0xd, offset 0x340
- 0x340: 0x0001, 0x341: 0x000c, 0x342: 0x000c, 0x343: 0x0001, 0x344: 0x000c, 0x345: 0x000c,
- 0x346: 0x0001, 0x347: 0x000c, 0x348: 0x0001, 0x349: 0x0001, 0x34a: 0x0001, 0x34b: 0x0001,
- 0x34c: 0x0001, 0x34d: 0x0001, 0x34e: 0x0001, 0x34f: 0x0001, 0x350: 0x0001, 0x351: 0x0001,
- 0x352: 0x0001, 0x353: 0x0001, 0x354: 0x0001, 0x355: 0x0001, 0x356: 0x0001, 0x357: 0x0001,
- 0x358: 0x0001, 0x359: 0x0001, 0x35a: 0x0001, 0x35b: 0x0001, 0x35c: 0x0001, 0x35d: 0x0001,
- 0x35e: 0x0001, 0x35f: 0x0001, 0x360: 0x0001, 0x361: 0x0001, 0x362: 0x0001, 0x363: 0x0001,
- 0x364: 0x0001, 0x365: 0x0001, 0x366: 0x0001, 0x367: 0x0001, 0x368: 0x0001, 0x369: 0x0001,
- 0x36a: 0x0001, 0x36b: 0x0001, 0x36c: 0x0001, 0x36d: 0x0001, 0x36e: 0x0001, 0x36f: 0x0001,
- 0x370: 0x0001, 0x371: 0x0001, 0x372: 0x0001, 0x373: 0x0001, 0x374: 0x0001, 0x375: 0x0001,
- 0x376: 0x0001, 0x377: 0x0001, 0x378: 0x0001, 0x379: 0x0001, 0x37a: 0x0001, 0x37b: 0x0001,
- 0x37c: 0x0001, 0x37d: 0x0001, 0x37e: 0x0001, 0x37f: 0x0001,
- // Block 0xe, offset 0x380
- 0x380: 0x0005, 0x381: 0x0005, 0x382: 0x0005, 0x383: 0x0005, 0x384: 0x0005, 0x385: 0x0005,
- 0x386: 0x000a, 0x387: 0x000a, 0x388: 0x000d, 0x389: 0x0004, 0x38a: 0x0004, 0x38b: 0x000d,
- 0x38c: 0x0006, 0x38d: 0x000d, 0x38e: 0x000a, 0x38f: 0x000a, 0x390: 0x000c, 0x391: 0x000c,
- 0x392: 0x000c, 0x393: 0x000c, 0x394: 0x000c, 0x395: 0x000c, 0x396: 0x000c, 0x397: 0x000c,
- 0x398: 0x000c, 0x399: 0x000c, 0x39a: 0x000c, 0x39b: 0x000d, 0x39c: 0x000d, 0x39d: 0x000d,
- 0x39e: 0x000d, 0x39f: 0x000d, 0x3a0: 0x000d, 0x3a1: 0x000d, 0x3a2: 0x000d, 0x3a3: 0x000d,
- 0x3a4: 0x000d, 0x3a5: 0x000d, 0x3a6: 0x000d, 0x3a7: 0x000d, 0x3a8: 0x000d, 0x3a9: 0x000d,
- 0x3aa: 0x000d, 0x3ab: 0x000d, 0x3ac: 0x000d, 0x3ad: 0x000d, 0x3ae: 0x000d, 0x3af: 0x000d,
- 0x3b0: 0x000d, 0x3b1: 0x000d, 0x3b2: 0x000d, 0x3b3: 0x000d, 0x3b4: 0x000d, 0x3b5: 0x000d,
- 0x3b6: 0x000d, 0x3b7: 0x000d, 0x3b8: 0x000d, 0x3b9: 0x000d, 0x3ba: 0x000d, 0x3bb: 0x000d,
- 0x3bc: 0x000d, 0x3bd: 0x000d, 0x3be: 0x000d, 0x3bf: 0x000d,
- // Block 0xf, offset 0x3c0
- 0x3c0: 0x000d, 0x3c1: 0x000d, 0x3c2: 0x000d, 0x3c3: 0x000d, 0x3c4: 0x000d, 0x3c5: 0x000d,
- 0x3c6: 0x000d, 0x3c7: 0x000d, 0x3c8: 0x000d, 0x3c9: 0x000d, 0x3ca: 0x000d, 0x3cb: 0x000c,
- 0x3cc: 0x000c, 0x3cd: 0x000c, 0x3ce: 0x000c, 0x3cf: 0x000c, 0x3d0: 0x000c, 0x3d1: 0x000c,
- 0x3d2: 0x000c, 0x3d3: 0x000c, 0x3d4: 0x000c, 0x3d5: 0x000c, 0x3d6: 0x000c, 0x3d7: 0x000c,
- 0x3d8: 0x000c, 0x3d9: 0x000c, 0x3da: 0x000c, 0x3db: 0x000c, 0x3dc: 0x000c, 0x3dd: 0x000c,
- 0x3de: 0x000c, 0x3df: 0x000c, 0x3e0: 0x0005, 0x3e1: 0x0005, 0x3e2: 0x0005, 0x3e3: 0x0005,
- 0x3e4: 0x0005, 0x3e5: 0x0005, 0x3e6: 0x0005, 0x3e7: 0x0005, 0x3e8: 0x0005, 0x3e9: 0x0005,
- 0x3ea: 0x0004, 0x3eb: 0x0005, 0x3ec: 0x0005, 0x3ed: 0x000d, 0x3ee: 0x000d, 0x3ef: 0x000d,
- 0x3f0: 0x000c, 0x3f1: 0x000d, 0x3f2: 0x000d, 0x3f3: 0x000d, 0x3f4: 0x000d, 0x3f5: 0x000d,
- 0x3f6: 0x000d, 0x3f7: 0x000d, 0x3f8: 0x000d, 0x3f9: 0x000d, 0x3fa: 0x000d, 0x3fb: 0x000d,
- 0x3fc: 0x000d, 0x3fd: 0x000d, 0x3fe: 0x000d, 0x3ff: 0x000d,
- // Block 0x10, offset 0x400
- 0x400: 0x000d, 0x401: 0x000d, 0x402: 0x000d, 0x403: 0x000d, 0x404: 0x000d, 0x405: 0x000d,
- 0x406: 0x000d, 0x407: 0x000d, 0x408: 0x000d, 0x409: 0x000d, 0x40a: 0x000d, 0x40b: 0x000d,
- 0x40c: 0x000d, 0x40d: 0x000d, 0x40e: 0x000d, 0x40f: 0x000d, 0x410: 0x000d, 0x411: 0x000d,
- 0x412: 0x000d, 0x413: 0x000d, 0x414: 0x000d, 0x415: 0x000d, 0x416: 0x000d, 0x417: 0x000d,
- 0x418: 0x000d, 0x419: 0x000d, 0x41a: 0x000d, 0x41b: 0x000d, 0x41c: 0x000d, 0x41d: 0x000d,
- 0x41e: 0x000d, 0x41f: 0x000d, 0x420: 0x000d, 0x421: 0x000d, 0x422: 0x000d, 0x423: 0x000d,
- 0x424: 0x000d, 0x425: 0x000d, 0x426: 0x000d, 0x427: 0x000d, 0x428: 0x000d, 0x429: 0x000d,
- 0x42a: 0x000d, 0x42b: 0x000d, 0x42c: 0x000d, 0x42d: 0x000d, 0x42e: 0x000d, 0x42f: 0x000d,
- 0x430: 0x000d, 0x431: 0x000d, 0x432: 0x000d, 0x433: 0x000d, 0x434: 0x000d, 0x435: 0x000d,
- 0x436: 0x000d, 0x437: 0x000d, 0x438: 0x000d, 0x439: 0x000d, 0x43a: 0x000d, 0x43b: 0x000d,
- 0x43c: 0x000d, 0x43d: 0x000d, 0x43e: 0x000d, 0x43f: 0x000d,
- // Block 0x11, offset 0x440
- 0x440: 0x000d, 0x441: 0x000d, 0x442: 0x000d, 0x443: 0x000d, 0x444: 0x000d, 0x445: 0x000d,
- 0x446: 0x000d, 0x447: 0x000d, 0x448: 0x000d, 0x449: 0x000d, 0x44a: 0x000d, 0x44b: 0x000d,
- 0x44c: 0x000d, 0x44d: 0x000d, 0x44e: 0x000d, 0x44f: 0x000d, 0x450: 0x000d, 0x451: 0x000d,
- 0x452: 0x000d, 0x453: 0x000d, 0x454: 0x000d, 0x455: 0x000d, 0x456: 0x000c, 0x457: 0x000c,
- 0x458: 0x000c, 0x459: 0x000c, 0x45a: 0x000c, 0x45b: 0x000c, 0x45c: 0x000c, 0x45d: 0x0005,
- 0x45e: 0x000a, 0x45f: 0x000c, 0x460: 0x000c, 0x461: 0x000c, 0x462: 0x000c, 0x463: 0x000c,
- 0x464: 0x000c, 0x465: 0x000d, 0x466: 0x000d, 0x467: 0x000c, 0x468: 0x000c, 0x469: 0x000a,
- 0x46a: 0x000c, 0x46b: 0x000c, 0x46c: 0x000c, 0x46d: 0x000c, 0x46e: 0x000d, 0x46f: 0x000d,
- 0x470: 0x0002, 0x471: 0x0002, 0x472: 0x0002, 0x473: 0x0002, 0x474: 0x0002, 0x475: 0x0002,
- 0x476: 0x0002, 0x477: 0x0002, 0x478: 0x0002, 0x479: 0x0002, 0x47a: 0x000d, 0x47b: 0x000d,
- 0x47c: 0x000d, 0x47d: 0x000d, 0x47e: 0x000d, 0x47f: 0x000d,
- // Block 0x12, offset 0x480
- 0x480: 0x000d, 0x481: 0x000d, 0x482: 0x000d, 0x483: 0x000d, 0x484: 0x000d, 0x485: 0x000d,
- 0x486: 0x000d, 0x487: 0x000d, 0x488: 0x000d, 0x489: 0x000d, 0x48a: 0x000d, 0x48b: 0x000d,
- 0x48c: 0x000d, 0x48d: 0x000d, 0x48e: 0x000d, 0x48f: 0x000d, 0x490: 0x000d, 0x491: 0x000c,
- 0x492: 0x000d, 0x493: 0x000d, 0x494: 0x000d, 0x495: 0x000d, 0x496: 0x000d, 0x497: 0x000d,
- 0x498: 0x000d, 0x499: 0x000d, 0x49a: 0x000d, 0x49b: 0x000d, 0x49c: 0x000d, 0x49d: 0x000d,
- 0x49e: 0x000d, 0x49f: 0x000d, 0x4a0: 0x000d, 0x4a1: 0x000d, 0x4a2: 0x000d, 0x4a3: 0x000d,
- 0x4a4: 0x000d, 0x4a5: 0x000d, 0x4a6: 0x000d, 0x4a7: 0x000d, 0x4a8: 0x000d, 0x4a9: 0x000d,
- 0x4aa: 0x000d, 0x4ab: 0x000d, 0x4ac: 0x000d, 0x4ad: 0x000d, 0x4ae: 0x000d, 0x4af: 0x000d,
- 0x4b0: 0x000c, 0x4b1: 0x000c, 0x4b2: 0x000c, 0x4b3: 0x000c, 0x4b4: 0x000c, 0x4b5: 0x000c,
- 0x4b6: 0x000c, 0x4b7: 0x000c, 0x4b8: 0x000c, 0x4b9: 0x000c, 0x4ba: 0x000c, 0x4bb: 0x000c,
- 0x4bc: 0x000c, 0x4bd: 0x000c, 0x4be: 0x000c, 0x4bf: 0x000c,
- // Block 0x13, offset 0x4c0
- 0x4c0: 0x000c, 0x4c1: 0x000c, 0x4c2: 0x000c, 0x4c3: 0x000c, 0x4c4: 0x000c, 0x4c5: 0x000c,
- 0x4c6: 0x000c, 0x4c7: 0x000c, 0x4c8: 0x000c, 0x4c9: 0x000c, 0x4ca: 0x000c, 0x4cb: 0x000d,
- 0x4cc: 0x000d, 0x4cd: 0x000d, 0x4ce: 0x000d, 0x4cf: 0x000d, 0x4d0: 0x000d, 0x4d1: 0x000d,
- 0x4d2: 0x000d, 0x4d3: 0x000d, 0x4d4: 0x000d, 0x4d5: 0x000d, 0x4d6: 0x000d, 0x4d7: 0x000d,
- 0x4d8: 0x000d, 0x4d9: 0x000d, 0x4da: 0x000d, 0x4db: 0x000d, 0x4dc: 0x000d, 0x4dd: 0x000d,
- 0x4de: 0x000d, 0x4df: 0x000d, 0x4e0: 0x000d, 0x4e1: 0x000d, 0x4e2: 0x000d, 0x4e3: 0x000d,
- 0x4e4: 0x000d, 0x4e5: 0x000d, 0x4e6: 0x000d, 0x4e7: 0x000d, 0x4e8: 0x000d, 0x4e9: 0x000d,
- 0x4ea: 0x000d, 0x4eb: 0x000d, 0x4ec: 0x000d, 0x4ed: 0x000d, 0x4ee: 0x000d, 0x4ef: 0x000d,
- 0x4f0: 0x000d, 0x4f1: 0x000d, 0x4f2: 0x000d, 0x4f3: 0x000d, 0x4f4: 0x000d, 0x4f5: 0x000d,
- 0x4f6: 0x000d, 0x4f7: 0x000d, 0x4f8: 0x000d, 0x4f9: 0x000d, 0x4fa: 0x000d, 0x4fb: 0x000d,
- 0x4fc: 0x000d, 0x4fd: 0x000d, 0x4fe: 0x000d, 0x4ff: 0x000d,
- // Block 0x14, offset 0x500
- 0x500: 0x000d, 0x501: 0x000d, 0x502: 0x000d, 0x503: 0x000d, 0x504: 0x000d, 0x505: 0x000d,
- 0x506: 0x000d, 0x507: 0x000d, 0x508: 0x000d, 0x509: 0x000d, 0x50a: 0x000d, 0x50b: 0x000d,
- 0x50c: 0x000d, 0x50d: 0x000d, 0x50e: 0x000d, 0x50f: 0x000d, 0x510: 0x000d, 0x511: 0x000d,
- 0x512: 0x000d, 0x513: 0x000d, 0x514: 0x000d, 0x515: 0x000d, 0x516: 0x000d, 0x517: 0x000d,
- 0x518: 0x000d, 0x519: 0x000d, 0x51a: 0x000d, 0x51b: 0x000d, 0x51c: 0x000d, 0x51d: 0x000d,
- 0x51e: 0x000d, 0x51f: 0x000d, 0x520: 0x000d, 0x521: 0x000d, 0x522: 0x000d, 0x523: 0x000d,
- 0x524: 0x000d, 0x525: 0x000d, 0x526: 0x000c, 0x527: 0x000c, 0x528: 0x000c, 0x529: 0x000c,
- 0x52a: 0x000c, 0x52b: 0x000c, 0x52c: 0x000c, 0x52d: 0x000c, 0x52e: 0x000c, 0x52f: 0x000c,
- 0x530: 0x000c, 0x531: 0x000d, 0x532: 0x000d, 0x533: 0x000d, 0x534: 0x000d, 0x535: 0x000d,
- 0x536: 0x000d, 0x537: 0x000d, 0x538: 0x000d, 0x539: 0x000d, 0x53a: 0x000d, 0x53b: 0x000d,
- 0x53c: 0x000d, 0x53d: 0x000d, 0x53e: 0x000d, 0x53f: 0x000d,
- // Block 0x15, offset 0x540
- 0x540: 0x0001, 0x541: 0x0001, 0x542: 0x0001, 0x543: 0x0001, 0x544: 0x0001, 0x545: 0x0001,
- 0x546: 0x0001, 0x547: 0x0001, 0x548: 0x0001, 0x549: 0x0001, 0x54a: 0x0001, 0x54b: 0x0001,
- 0x54c: 0x0001, 0x54d: 0x0001, 0x54e: 0x0001, 0x54f: 0x0001, 0x550: 0x0001, 0x551: 0x0001,
- 0x552: 0x0001, 0x553: 0x0001, 0x554: 0x0001, 0x555: 0x0001, 0x556: 0x0001, 0x557: 0x0001,
- 0x558: 0x0001, 0x559: 0x0001, 0x55a: 0x0001, 0x55b: 0x0001, 0x55c: 0x0001, 0x55d: 0x0001,
- 0x55e: 0x0001, 0x55f: 0x0001, 0x560: 0x0001, 0x561: 0x0001, 0x562: 0x0001, 0x563: 0x0001,
- 0x564: 0x0001, 0x565: 0x0001, 0x566: 0x0001, 0x567: 0x0001, 0x568: 0x0001, 0x569: 0x0001,
- 0x56a: 0x0001, 0x56b: 0x000c, 0x56c: 0x000c, 0x56d: 0x000c, 0x56e: 0x000c, 0x56f: 0x000c,
- 0x570: 0x000c, 0x571: 0x000c, 0x572: 0x000c, 0x573: 0x000c, 0x574: 0x0001, 0x575: 0x0001,
- 0x576: 0x000a, 0x577: 0x000a, 0x578: 0x000a, 0x579: 0x000a, 0x57a: 0x0001, 0x57b: 0x0001,
- 0x57c: 0x0001, 0x57d: 0x000c, 0x57e: 0x0001, 0x57f: 0x0001,
- // Block 0x16, offset 0x580
- 0x580: 0x0001, 0x581: 0x0001, 0x582: 0x0001, 0x583: 0x0001, 0x584: 0x0001, 0x585: 0x0001,
- 0x586: 0x0001, 0x587: 0x0001, 0x588: 0x0001, 0x589: 0x0001, 0x58a: 0x0001, 0x58b: 0x0001,
- 0x58c: 0x0001, 0x58d: 0x0001, 0x58e: 0x0001, 0x58f: 0x0001, 0x590: 0x0001, 0x591: 0x0001,
- 0x592: 0x0001, 0x593: 0x0001, 0x594: 0x0001, 0x595: 0x0001, 0x596: 0x000c, 0x597: 0x000c,
- 0x598: 0x000c, 0x599: 0x000c, 0x59a: 0x0001, 0x59b: 0x000c, 0x59c: 0x000c, 0x59d: 0x000c,
- 0x59e: 0x000c, 0x59f: 0x000c, 0x5a0: 0x000c, 0x5a1: 0x000c, 0x5a2: 0x000c, 0x5a3: 0x000c,
- 0x5a4: 0x0001, 0x5a5: 0x000c, 0x5a6: 0x000c, 0x5a7: 0x000c, 0x5a8: 0x0001, 0x5a9: 0x000c,
- 0x5aa: 0x000c, 0x5ab: 0x000c, 0x5ac: 0x000c, 0x5ad: 0x000c, 0x5ae: 0x0001, 0x5af: 0x0001,
- 0x5b0: 0x0001, 0x5b1: 0x0001, 0x5b2: 0x0001, 0x5b3: 0x0001, 0x5b4: 0x0001, 0x5b5: 0x0001,
- 0x5b6: 0x0001, 0x5b7: 0x0001, 0x5b8: 0x0001, 0x5b9: 0x0001, 0x5ba: 0x0001, 0x5bb: 0x0001,
- 0x5bc: 0x0001, 0x5bd: 0x0001, 0x5be: 0x0001, 0x5bf: 0x0001,
- // Block 0x17, offset 0x5c0
- 0x5c0: 0x0001, 0x5c1: 0x0001, 0x5c2: 0x0001, 0x5c3: 0x0001, 0x5c4: 0x0001, 0x5c5: 0x0001,
- 0x5c6: 0x0001, 0x5c7: 0x0001, 0x5c8: 0x0001, 0x5c9: 0x0001, 0x5ca: 0x0001, 0x5cb: 0x0001,
- 0x5cc: 0x0001, 0x5cd: 0x0001, 0x5ce: 0x0001, 0x5cf: 0x0001, 0x5d0: 0x0001, 0x5d1: 0x0001,
- 0x5d2: 0x0001, 0x5d3: 0x0001, 0x5d4: 0x0001, 0x5d5: 0x0001, 0x5d6: 0x0001, 0x5d7: 0x0001,
- 0x5d8: 0x0001, 0x5d9: 0x000c, 0x5da: 0x000c, 0x5db: 0x000c, 0x5dc: 0x0001, 0x5dd: 0x0001,
- 0x5de: 0x0001, 0x5df: 0x0001, 0x5e0: 0x000d, 0x5e1: 0x000d, 0x5e2: 0x000d, 0x5e3: 0x000d,
- 0x5e4: 0x000d, 0x5e5: 0x000d, 0x5e6: 0x000d, 0x5e7: 0x000d, 0x5e8: 0x000d, 0x5e9: 0x000d,
- 0x5ea: 0x000d, 0x5eb: 0x000d, 0x5ec: 0x000d, 0x5ed: 0x000d, 0x5ee: 0x000d, 0x5ef: 0x000d,
- 0x5f0: 0x0001, 0x5f1: 0x0001, 0x5f2: 0x0001, 0x5f3: 0x0001, 0x5f4: 0x0001, 0x5f5: 0x0001,
- 0x5f6: 0x0001, 0x5f7: 0x0001, 0x5f8: 0x0001, 0x5f9: 0x0001, 0x5fa: 0x0001, 0x5fb: 0x0001,
- 0x5fc: 0x0001, 0x5fd: 0x0001, 0x5fe: 0x0001, 0x5ff: 0x0001,
- // Block 0x18, offset 0x600
- 0x600: 0x0001, 0x601: 0x0001, 0x602: 0x0001, 0x603: 0x0001, 0x604: 0x0001, 0x605: 0x0001,
- 0x606: 0x0001, 0x607: 0x0001, 0x608: 0x0001, 0x609: 0x0001, 0x60a: 0x0001, 0x60b: 0x0001,
- 0x60c: 0x0001, 0x60d: 0x0001, 0x60e: 0x0001, 0x60f: 0x0001, 0x610: 0x0001, 0x611: 0x0001,
- 0x612: 0x0001, 0x613: 0x0001, 0x614: 0x0001, 0x615: 0x0001, 0x616: 0x0001, 0x617: 0x0001,
- 0x618: 0x0001, 0x619: 0x0001, 0x61a: 0x0001, 0x61b: 0x0001, 0x61c: 0x0001, 0x61d: 0x0001,
- 0x61e: 0x0001, 0x61f: 0x0001, 0x620: 0x000d, 0x621: 0x000d, 0x622: 0x000d, 0x623: 0x000d,
- 0x624: 0x000d, 0x625: 0x000d, 0x626: 0x000d, 0x627: 0x000d, 0x628: 0x000d, 0x629: 0x000d,
- 0x62a: 0x000d, 0x62b: 0x000d, 0x62c: 0x000d, 0x62d: 0x000d, 0x62e: 0x000d, 0x62f: 0x000d,
- 0x630: 0x000d, 0x631: 0x000d, 0x632: 0x000d, 0x633: 0x000d, 0x634: 0x000d, 0x635: 0x000d,
- 0x636: 0x000d, 0x637: 0x000d, 0x638: 0x000d, 0x639: 0x000d, 0x63a: 0x000d, 0x63b: 0x000d,
- 0x63c: 0x000d, 0x63d: 0x000d, 0x63e: 0x000d, 0x63f: 0x000d,
- // Block 0x19, offset 0x640
- 0x640: 0x000d, 0x641: 0x000d, 0x642: 0x000d, 0x643: 0x000d, 0x644: 0x000d, 0x645: 0x000d,
- 0x646: 0x000d, 0x647: 0x000d, 0x648: 0x000d, 0x649: 0x000d, 0x64a: 0x000d, 0x64b: 0x000d,
- 0x64c: 0x000d, 0x64d: 0x000d, 0x64e: 0x000d, 0x64f: 0x000d, 0x650: 0x000d, 0x651: 0x000d,
- 0x652: 0x000d, 0x653: 0x000c, 0x654: 0x000c, 0x655: 0x000c, 0x656: 0x000c, 0x657: 0x000c,
- 0x658: 0x000c, 0x659: 0x000c, 0x65a: 0x000c, 0x65b: 0x000c, 0x65c: 0x000c, 0x65d: 0x000c,
- 0x65e: 0x000c, 0x65f: 0x000c, 0x660: 0x000c, 0x661: 0x000c, 0x662: 0x0005, 0x663: 0x000c,
- 0x664: 0x000c, 0x665: 0x000c, 0x666: 0x000c, 0x667: 0x000c, 0x668: 0x000c, 0x669: 0x000c,
- 0x66a: 0x000c, 0x66b: 0x000c, 0x66c: 0x000c, 0x66d: 0x000c, 0x66e: 0x000c, 0x66f: 0x000c,
- 0x670: 0x000c, 0x671: 0x000c, 0x672: 0x000c, 0x673: 0x000c, 0x674: 0x000c, 0x675: 0x000c,
- 0x676: 0x000c, 0x677: 0x000c, 0x678: 0x000c, 0x679: 0x000c, 0x67a: 0x000c, 0x67b: 0x000c,
- 0x67c: 0x000c, 0x67d: 0x000c, 0x67e: 0x000c, 0x67f: 0x000c,
- // Block 0x1a, offset 0x680
- 0x680: 0x000c, 0x681: 0x000c, 0x682: 0x000c,
- 0x6ba: 0x000c,
- 0x6bc: 0x000c,
- // Block 0x1b, offset 0x6c0
- 0x6c1: 0x000c, 0x6c2: 0x000c, 0x6c3: 0x000c, 0x6c4: 0x000c, 0x6c5: 0x000c,
- 0x6c6: 0x000c, 0x6c7: 0x000c, 0x6c8: 0x000c,
- 0x6cd: 0x000c, 0x6d1: 0x000c,
- 0x6d2: 0x000c, 0x6d3: 0x000c, 0x6d4: 0x000c, 0x6d5: 0x000c, 0x6d6: 0x000c, 0x6d7: 0x000c,
- 0x6e2: 0x000c, 0x6e3: 0x000c,
- // Block 0x1c, offset 0x700
- 0x701: 0x000c,
- 0x73c: 0x000c,
- // Block 0x1d, offset 0x740
- 0x741: 0x000c, 0x742: 0x000c, 0x743: 0x000c, 0x744: 0x000c,
- 0x74d: 0x000c,
- 0x762: 0x000c, 0x763: 0x000c,
- 0x772: 0x0004, 0x773: 0x0004,
- 0x77b: 0x0004,
- 0x77e: 0x000c,
- // Block 0x1e, offset 0x780
- 0x781: 0x000c, 0x782: 0x000c,
- 0x7bc: 0x000c,
- // Block 0x1f, offset 0x7c0
- 0x7c1: 0x000c, 0x7c2: 0x000c,
- 0x7c7: 0x000c, 0x7c8: 0x000c, 0x7cb: 0x000c,
- 0x7cc: 0x000c, 0x7cd: 0x000c, 0x7d1: 0x000c,
- 0x7f0: 0x000c, 0x7f1: 0x000c, 0x7f5: 0x000c,
- // Block 0x20, offset 0x800
- 0x801: 0x000c, 0x802: 0x000c, 0x803: 0x000c, 0x804: 0x000c, 0x805: 0x000c,
- 0x807: 0x000c, 0x808: 0x000c,
- 0x80d: 0x000c,
- 0x822: 0x000c, 0x823: 0x000c,
- 0x831: 0x0004,
- 0x83a: 0x000c, 0x83b: 0x000c,
- 0x83c: 0x000c, 0x83d: 0x000c, 0x83e: 0x000c, 0x83f: 0x000c,
- // Block 0x21, offset 0x840
- 0x841: 0x000c,
- 0x87c: 0x000c, 0x87f: 0x000c,
- // Block 0x22, offset 0x880
- 0x881: 0x000c, 0x882: 0x000c, 0x883: 0x000c, 0x884: 0x000c,
- 0x88d: 0x000c,
- 0x896: 0x000c,
- 0x8a2: 0x000c, 0x8a3: 0x000c,
- // Block 0x23, offset 0x8c0
- 0x8c2: 0x000c,
- // Block 0x24, offset 0x900
- 0x900: 0x000c,
- 0x90d: 0x000c,
- 0x933: 0x000a, 0x934: 0x000a, 0x935: 0x000a,
- 0x936: 0x000a, 0x937: 0x000a, 0x938: 0x000a, 0x939: 0x0004, 0x93a: 0x000a,
- // Block 0x25, offset 0x940
- 0x940: 0x000c, 0x944: 0x000c,
- 0x97e: 0x000c, 0x97f: 0x000c,
- // Block 0x26, offset 0x980
- 0x980: 0x000c,
- 0x986: 0x000c, 0x987: 0x000c, 0x988: 0x000c, 0x98a: 0x000c, 0x98b: 0x000c,
- 0x98c: 0x000c, 0x98d: 0x000c,
- 0x995: 0x000c, 0x996: 0x000c,
- 0x9a2: 0x000c, 0x9a3: 0x000c,
- 0x9b8: 0x000a, 0x9b9: 0x000a, 0x9ba: 0x000a, 0x9bb: 0x000a,
- 0x9bc: 0x000a, 0x9bd: 0x000a, 0x9be: 0x000a,
- // Block 0x27, offset 0x9c0
- 0x9cc: 0x000c, 0x9cd: 0x000c,
- 0x9e2: 0x000c, 0x9e3: 0x000c,
- // Block 0x28, offset 0xa00
- 0xa00: 0x000c, 0xa01: 0x000c,
- 0xa3b: 0x000c,
- 0xa3c: 0x000c,
- // Block 0x29, offset 0xa40
- 0xa41: 0x000c, 0xa42: 0x000c, 0xa43: 0x000c, 0xa44: 0x000c,
- 0xa4d: 0x000c,
- 0xa62: 0x000c, 0xa63: 0x000c,
- // Block 0x2a, offset 0xa80
- 0xa8a: 0x000c,
- 0xa92: 0x000c, 0xa93: 0x000c, 0xa94: 0x000c, 0xa96: 0x000c,
- // Block 0x2b, offset 0xac0
- 0xaf1: 0x000c, 0xaf4: 0x000c, 0xaf5: 0x000c,
- 0xaf6: 0x000c, 0xaf7: 0x000c, 0xaf8: 0x000c, 0xaf9: 0x000c, 0xafa: 0x000c,
- 0xaff: 0x0004,
- // Block 0x2c, offset 0xb00
- 0xb07: 0x000c, 0xb08: 0x000c, 0xb09: 0x000c, 0xb0a: 0x000c, 0xb0b: 0x000c,
- 0xb0c: 0x000c, 0xb0d: 0x000c, 0xb0e: 0x000c,
- // Block 0x2d, offset 0xb40
- 0xb71: 0x000c, 0xb74: 0x000c, 0xb75: 0x000c,
- 0xb76: 0x000c, 0xb77: 0x000c, 0xb78: 0x000c, 0xb79: 0x000c, 0xb7b: 0x000c,
- 0xb7c: 0x000c,
- // Block 0x2e, offset 0xb80
- 0xb88: 0x000c, 0xb89: 0x000c, 0xb8a: 0x000c, 0xb8b: 0x000c,
- 0xb8c: 0x000c, 0xb8d: 0x000c,
- // Block 0x2f, offset 0xbc0
- 0xbd8: 0x000c, 0xbd9: 0x000c,
- 0xbf5: 0x000c,
- 0xbf7: 0x000c, 0xbf9: 0x000c, 0xbfa: 0x003a, 0xbfb: 0x002a,
- 0xbfc: 0x003a, 0xbfd: 0x002a,
- // Block 0x30, offset 0xc00
- 0xc31: 0x000c, 0xc32: 0x000c, 0xc33: 0x000c, 0xc34: 0x000c, 0xc35: 0x000c,
- 0xc36: 0x000c, 0xc37: 0x000c, 0xc38: 0x000c, 0xc39: 0x000c, 0xc3a: 0x000c, 0xc3b: 0x000c,
- 0xc3c: 0x000c, 0xc3d: 0x000c, 0xc3e: 0x000c,
- // Block 0x31, offset 0xc40
- 0xc40: 0x000c, 0xc41: 0x000c, 0xc42: 0x000c, 0xc43: 0x000c, 0xc44: 0x000c,
- 0xc46: 0x000c, 0xc47: 0x000c,
- 0xc4d: 0x000c, 0xc4e: 0x000c, 0xc4f: 0x000c, 0xc50: 0x000c, 0xc51: 0x000c,
- 0xc52: 0x000c, 0xc53: 0x000c, 0xc54: 0x000c, 0xc55: 0x000c, 0xc56: 0x000c, 0xc57: 0x000c,
- 0xc59: 0x000c, 0xc5a: 0x000c, 0xc5b: 0x000c, 0xc5c: 0x000c, 0xc5d: 0x000c,
- 0xc5e: 0x000c, 0xc5f: 0x000c, 0xc60: 0x000c, 0xc61: 0x000c, 0xc62: 0x000c, 0xc63: 0x000c,
- 0xc64: 0x000c, 0xc65: 0x000c, 0xc66: 0x000c, 0xc67: 0x000c, 0xc68: 0x000c, 0xc69: 0x000c,
- 0xc6a: 0x000c, 0xc6b: 0x000c, 0xc6c: 0x000c, 0xc6d: 0x000c, 0xc6e: 0x000c, 0xc6f: 0x000c,
- 0xc70: 0x000c, 0xc71: 0x000c, 0xc72: 0x000c, 0xc73: 0x000c, 0xc74: 0x000c, 0xc75: 0x000c,
- 0xc76: 0x000c, 0xc77: 0x000c, 0xc78: 0x000c, 0xc79: 0x000c, 0xc7a: 0x000c, 0xc7b: 0x000c,
- 0xc7c: 0x000c,
- // Block 0x32, offset 0xc80
- 0xc86: 0x000c,
- // Block 0x33, offset 0xcc0
- 0xced: 0x000c, 0xcee: 0x000c, 0xcef: 0x000c,
- 0xcf0: 0x000c, 0xcf2: 0x000c, 0xcf3: 0x000c, 0xcf4: 0x000c, 0xcf5: 0x000c,
- 0xcf6: 0x000c, 0xcf7: 0x000c, 0xcf9: 0x000c, 0xcfa: 0x000c,
- 0xcfd: 0x000c, 0xcfe: 0x000c,
- // Block 0x34, offset 0xd00
- 0xd18: 0x000c, 0xd19: 0x000c,
- 0xd1e: 0x000c, 0xd1f: 0x000c, 0xd20: 0x000c,
- 0xd31: 0x000c, 0xd32: 0x000c, 0xd33: 0x000c, 0xd34: 0x000c,
- // Block 0x35, offset 0xd40
- 0xd42: 0x000c, 0xd45: 0x000c,
- 0xd46: 0x000c,
- 0xd4d: 0x000c,
- 0xd5d: 0x000c,
- // Block 0x36, offset 0xd80
- 0xd9d: 0x000c,
- 0xd9e: 0x000c, 0xd9f: 0x000c,
- // Block 0x37, offset 0xdc0
- 0xdd0: 0x000a, 0xdd1: 0x000a,
- 0xdd2: 0x000a, 0xdd3: 0x000a, 0xdd4: 0x000a, 0xdd5: 0x000a, 0xdd6: 0x000a, 0xdd7: 0x000a,
- 0xdd8: 0x000a, 0xdd9: 0x000a,
- // Block 0x38, offset 0xe00
- 0xe00: 0x000a,
- // Block 0x39, offset 0xe40
- 0xe40: 0x0009,
- 0xe5b: 0x007a, 0xe5c: 0x006a,
- // Block 0x3a, offset 0xe80
- 0xe92: 0x000c, 0xe93: 0x000c, 0xe94: 0x000c,
- 0xeb2: 0x000c, 0xeb3: 0x000c, 0xeb4: 0x000c,
- // Block 0x3b, offset 0xec0
- 0xed2: 0x000c, 0xed3: 0x000c,
- 0xef2: 0x000c, 0xef3: 0x000c,
- // Block 0x3c, offset 0xf00
- 0xf34: 0x000c, 0xf35: 0x000c,
- 0xf37: 0x000c, 0xf38: 0x000c, 0xf39: 0x000c, 0xf3a: 0x000c, 0xf3b: 0x000c,
- 0xf3c: 0x000c, 0xf3d: 0x000c,
- // Block 0x3d, offset 0xf40
- 0xf46: 0x000c, 0xf49: 0x000c, 0xf4a: 0x000c, 0xf4b: 0x000c,
- 0xf4c: 0x000c, 0xf4d: 0x000c, 0xf4e: 0x000c, 0xf4f: 0x000c, 0xf50: 0x000c, 0xf51: 0x000c,
- 0xf52: 0x000c, 0xf53: 0x000c,
- 0xf5b: 0x0004, 0xf5d: 0x000c,
- 0xf70: 0x000a, 0xf71: 0x000a, 0xf72: 0x000a, 0xf73: 0x000a, 0xf74: 0x000a, 0xf75: 0x000a,
- 0xf76: 0x000a, 0xf77: 0x000a, 0xf78: 0x000a, 0xf79: 0x000a,
- // Block 0x3e, offset 0xf80
- 0xf80: 0x000a, 0xf81: 0x000a, 0xf82: 0x000a, 0xf83: 0x000a, 0xf84: 0x000a, 0xf85: 0x000a,
- 0xf86: 0x000a, 0xf87: 0x000a, 0xf88: 0x000a, 0xf89: 0x000a, 0xf8a: 0x000a, 0xf8b: 0x000c,
- 0xf8c: 0x000c, 0xf8d: 0x000c, 0xf8e: 0x000b,
- // Block 0x3f, offset 0xfc0
- 0xfc5: 0x000c,
- 0xfc6: 0x000c,
- 0xfe9: 0x000c,
- // Block 0x40, offset 0x1000
- 0x1020: 0x000c, 0x1021: 0x000c, 0x1022: 0x000c,
- 0x1027: 0x000c, 0x1028: 0x000c,
- 0x1032: 0x000c,
- 0x1039: 0x000c, 0x103a: 0x000c, 0x103b: 0x000c,
- // Block 0x41, offset 0x1040
- 0x1040: 0x000a, 0x1044: 0x000a, 0x1045: 0x000a,
- // Block 0x42, offset 0x1080
- 0x109e: 0x000a, 0x109f: 0x000a, 0x10a0: 0x000a, 0x10a1: 0x000a, 0x10a2: 0x000a, 0x10a3: 0x000a,
- 0x10a4: 0x000a, 0x10a5: 0x000a, 0x10a6: 0x000a, 0x10a7: 0x000a, 0x10a8: 0x000a, 0x10a9: 0x000a,
- 0x10aa: 0x000a, 0x10ab: 0x000a, 0x10ac: 0x000a, 0x10ad: 0x000a, 0x10ae: 0x000a, 0x10af: 0x000a,
- 0x10b0: 0x000a, 0x10b1: 0x000a, 0x10b2: 0x000a, 0x10b3: 0x000a, 0x10b4: 0x000a, 0x10b5: 0x000a,
- 0x10b6: 0x000a, 0x10b7: 0x000a, 0x10b8: 0x000a, 0x10b9: 0x000a, 0x10ba: 0x000a, 0x10bb: 0x000a,
- 0x10bc: 0x000a, 0x10bd: 0x000a, 0x10be: 0x000a, 0x10bf: 0x000a,
- // Block 0x43, offset 0x10c0
- 0x10d7: 0x000c,
- 0x10d8: 0x000c, 0x10db: 0x000c,
- // Block 0x44, offset 0x1100
- 0x1116: 0x000c,
- 0x1118: 0x000c, 0x1119: 0x000c, 0x111a: 0x000c, 0x111b: 0x000c, 0x111c: 0x000c, 0x111d: 0x000c,
- 0x111e: 0x000c, 0x1120: 0x000c, 0x1122: 0x000c,
- 0x1125: 0x000c, 0x1126: 0x000c, 0x1127: 0x000c, 0x1128: 0x000c, 0x1129: 0x000c,
- 0x112a: 0x000c, 0x112b: 0x000c, 0x112c: 0x000c,
- 0x1133: 0x000c, 0x1134: 0x000c, 0x1135: 0x000c,
- 0x1136: 0x000c, 0x1137: 0x000c, 0x1138: 0x000c, 0x1139: 0x000c, 0x113a: 0x000c, 0x113b: 0x000c,
- 0x113c: 0x000c, 0x113f: 0x000c,
- // Block 0x45, offset 0x1140
- 0x1170: 0x000c, 0x1171: 0x000c, 0x1172: 0x000c, 0x1173: 0x000c, 0x1174: 0x000c, 0x1175: 0x000c,
- 0x1176: 0x000c, 0x1177: 0x000c, 0x1178: 0x000c, 0x1179: 0x000c, 0x117a: 0x000c, 0x117b: 0x000c,
- 0x117c: 0x000c, 0x117d: 0x000c, 0x117e: 0x000c,
- // Block 0x46, offset 0x1180
- 0x1180: 0x000c, 0x1181: 0x000c, 0x1182: 0x000c, 0x1183: 0x000c,
- 0x11b4: 0x000c,
- 0x11b6: 0x000c, 0x11b7: 0x000c, 0x11b8: 0x000c, 0x11b9: 0x000c, 0x11ba: 0x000c,
- 0x11bc: 0x000c,
- // Block 0x47, offset 0x11c0
- 0x11c2: 0x000c,
- 0x11eb: 0x000c, 0x11ec: 0x000c, 0x11ed: 0x000c, 0x11ee: 0x000c, 0x11ef: 0x000c,
- 0x11f0: 0x000c, 0x11f1: 0x000c, 0x11f2: 0x000c, 0x11f3: 0x000c,
- // Block 0x48, offset 0x1200
- 0x1200: 0x000c, 0x1201: 0x000c,
- 0x1222: 0x000c, 0x1223: 0x000c,
- 0x1224: 0x000c, 0x1225: 0x000c, 0x1228: 0x000c, 0x1229: 0x000c,
- 0x122b: 0x000c, 0x122c: 0x000c, 0x122d: 0x000c,
- // Block 0x49, offset 0x1240
- 0x1266: 0x000c, 0x1268: 0x000c, 0x1269: 0x000c,
- 0x126d: 0x000c, 0x126f: 0x000c,
- 0x1270: 0x000c, 0x1271: 0x000c,
- // Block 0x4a, offset 0x1280
- 0x12ac: 0x000c, 0x12ad: 0x000c, 0x12ae: 0x000c, 0x12af: 0x000c,
- 0x12b0: 0x000c, 0x12b1: 0x000c, 0x12b2: 0x000c, 0x12b3: 0x000c,
- 0x12b6: 0x000c, 0x12b7: 0x000c,
- // Block 0x4b, offset 0x12c0
- 0x12d0: 0x000c, 0x12d1: 0x000c,
- 0x12d2: 0x000c, 0x12d4: 0x000c, 0x12d5: 0x000c, 0x12d6: 0x000c, 0x12d7: 0x000c,
- 0x12d8: 0x000c, 0x12d9: 0x000c, 0x12da: 0x000c, 0x12db: 0x000c, 0x12dc: 0x000c, 0x12dd: 0x000c,
- 0x12de: 0x000c, 0x12df: 0x000c, 0x12e0: 0x000c, 0x12e2: 0x000c, 0x12e3: 0x000c,
- 0x12e4: 0x000c, 0x12e5: 0x000c, 0x12e6: 0x000c, 0x12e7: 0x000c, 0x12e8: 0x000c,
- 0x12ed: 0x000c,
- 0x12f4: 0x000c,
- 0x12f8: 0x000c, 0x12f9: 0x000c,
- // Block 0x4c, offset 0x1300
- 0x1300: 0x000c, 0x1301: 0x000c, 0x1302: 0x000c, 0x1303: 0x000c, 0x1304: 0x000c, 0x1305: 0x000c,
- 0x1306: 0x000c, 0x1307: 0x000c, 0x1308: 0x000c, 0x1309: 0x000c, 0x130a: 0x000c, 0x130b: 0x000c,
- 0x130c: 0x000c, 0x130d: 0x000c, 0x130e: 0x000c, 0x130f: 0x000c, 0x1310: 0x000c, 0x1311: 0x000c,
- 0x1312: 0x000c, 0x1313: 0x000c, 0x1314: 0x000c, 0x1315: 0x000c, 0x1316: 0x000c, 0x1317: 0x000c,
- 0x1318: 0x000c, 0x1319: 0x000c, 0x131a: 0x000c, 0x131b: 0x000c, 0x131c: 0x000c, 0x131d: 0x000c,
- 0x131e: 0x000c, 0x131f: 0x000c, 0x1320: 0x000c, 0x1321: 0x000c, 0x1322: 0x000c, 0x1323: 0x000c,
- 0x1324: 0x000c, 0x1325: 0x000c, 0x1326: 0x000c, 0x1327: 0x000c, 0x1328: 0x000c, 0x1329: 0x000c,
- 0x132a: 0x000c, 0x132b: 0x000c, 0x132c: 0x000c, 0x132d: 0x000c, 0x132e: 0x000c, 0x132f: 0x000c,
- 0x1330: 0x000c, 0x1331: 0x000c, 0x1332: 0x000c, 0x1333: 0x000c, 0x1334: 0x000c, 0x1335: 0x000c,
- 0x1336: 0x000c, 0x1337: 0x000c, 0x1338: 0x000c, 0x1339: 0x000c, 0x133b: 0x000c,
- 0x133c: 0x000c, 0x133d: 0x000c, 0x133e: 0x000c, 0x133f: 0x000c,
- // Block 0x4d, offset 0x1340
- 0x137d: 0x000a, 0x137f: 0x000a,
- // Block 0x4e, offset 0x1380
- 0x1380: 0x000a, 0x1381: 0x000a,
- 0x138d: 0x000a, 0x138e: 0x000a, 0x138f: 0x000a,
- 0x139d: 0x000a,
- 0x139e: 0x000a, 0x139f: 0x000a,
- 0x13ad: 0x000a, 0x13ae: 0x000a, 0x13af: 0x000a,
- 0x13bd: 0x000a, 0x13be: 0x000a,
- // Block 0x4f, offset 0x13c0
- 0x13c0: 0x0009, 0x13c1: 0x0009, 0x13c2: 0x0009, 0x13c3: 0x0009, 0x13c4: 0x0009, 0x13c5: 0x0009,
- 0x13c6: 0x0009, 0x13c7: 0x0009, 0x13c8: 0x0009, 0x13c9: 0x0009, 0x13ca: 0x0009, 0x13cb: 0x000b,
- 0x13cc: 0x000b, 0x13cd: 0x000b, 0x13cf: 0x0001, 0x13d0: 0x000a, 0x13d1: 0x000a,
- 0x13d2: 0x000a, 0x13d3: 0x000a, 0x13d4: 0x000a, 0x13d5: 0x000a, 0x13d6: 0x000a, 0x13d7: 0x000a,
- 0x13d8: 0x000a, 0x13d9: 0x000a, 0x13da: 0x000a, 0x13db: 0x000a, 0x13dc: 0x000a, 0x13dd: 0x000a,
- 0x13de: 0x000a, 0x13df: 0x000a, 0x13e0: 0x000a, 0x13e1: 0x000a, 0x13e2: 0x000a, 0x13e3: 0x000a,
- 0x13e4: 0x000a, 0x13e5: 0x000a, 0x13e6: 0x000a, 0x13e7: 0x000a, 0x13e8: 0x0009, 0x13e9: 0x0007,
- 0x13ea: 0x000e, 0x13eb: 0x000e, 0x13ec: 0x000e, 0x13ed: 0x000e, 0x13ee: 0x000e, 0x13ef: 0x0006,
- 0x13f0: 0x0004, 0x13f1: 0x0004, 0x13f2: 0x0004, 0x13f3: 0x0004, 0x13f4: 0x0004, 0x13f5: 0x000a,
- 0x13f6: 0x000a, 0x13f7: 0x000a, 0x13f8: 0x000a, 0x13f9: 0x000a, 0x13fa: 0x000a, 0x13fb: 0x000a,
- 0x13fc: 0x000a, 0x13fd: 0x000a, 0x13fe: 0x000a, 0x13ff: 0x000a,
- // Block 0x50, offset 0x1400
- 0x1400: 0x000a, 0x1401: 0x000a, 0x1402: 0x000a, 0x1403: 0x000a, 0x1404: 0x0006, 0x1405: 0x009a,
- 0x1406: 0x008a, 0x1407: 0x000a, 0x1408: 0x000a, 0x1409: 0x000a, 0x140a: 0x000a, 0x140b: 0x000a,
- 0x140c: 0x000a, 0x140d: 0x000a, 0x140e: 0x000a, 0x140f: 0x000a, 0x1410: 0x000a, 0x1411: 0x000a,
- 0x1412: 0x000a, 0x1413: 0x000a, 0x1414: 0x000a, 0x1415: 0x000a, 0x1416: 0x000a, 0x1417: 0x000a,
- 0x1418: 0x000a, 0x1419: 0x000a, 0x141a: 0x000a, 0x141b: 0x000a, 0x141c: 0x000a, 0x141d: 0x000a,
- 0x141e: 0x000a, 0x141f: 0x0009, 0x1420: 0x000b, 0x1421: 0x000b, 0x1422: 0x000b, 0x1423: 0x000b,
- 0x1424: 0x000b, 0x1425: 0x000b, 0x1426: 0x000e, 0x1427: 0x000e, 0x1428: 0x000e, 0x1429: 0x000e,
- 0x142a: 0x000b, 0x142b: 0x000b, 0x142c: 0x000b, 0x142d: 0x000b, 0x142e: 0x000b, 0x142f: 0x000b,
- 0x1430: 0x0002, 0x1434: 0x0002, 0x1435: 0x0002,
- 0x1436: 0x0002, 0x1437: 0x0002, 0x1438: 0x0002, 0x1439: 0x0002, 0x143a: 0x0003, 0x143b: 0x0003,
- 0x143c: 0x000a, 0x143d: 0x009a, 0x143e: 0x008a,
- // Block 0x51, offset 0x1440
- 0x1440: 0x0002, 0x1441: 0x0002, 0x1442: 0x0002, 0x1443: 0x0002, 0x1444: 0x0002, 0x1445: 0x0002,
- 0x1446: 0x0002, 0x1447: 0x0002, 0x1448: 0x0002, 0x1449: 0x0002, 0x144a: 0x0003, 0x144b: 0x0003,
- 0x144c: 0x000a, 0x144d: 0x009a, 0x144e: 0x008a,
- 0x1460: 0x0004, 0x1461: 0x0004, 0x1462: 0x0004, 0x1463: 0x0004,
- 0x1464: 0x0004, 0x1465: 0x0004, 0x1466: 0x0004, 0x1467: 0x0004, 0x1468: 0x0004, 0x1469: 0x0004,
- 0x146a: 0x0004, 0x146b: 0x0004, 0x146c: 0x0004, 0x146d: 0x0004, 0x146e: 0x0004, 0x146f: 0x0004,
- 0x1470: 0x0004, 0x1471: 0x0004, 0x1472: 0x0004, 0x1473: 0x0004, 0x1474: 0x0004, 0x1475: 0x0004,
- 0x1476: 0x0004, 0x1477: 0x0004, 0x1478: 0x0004, 0x1479: 0x0004, 0x147a: 0x0004, 0x147b: 0x0004,
- 0x147c: 0x0004, 0x147d: 0x0004, 0x147e: 0x0004, 0x147f: 0x0004,
- // Block 0x52, offset 0x1480
- 0x1480: 0x0004, 0x1481: 0x0004, 0x1482: 0x0004, 0x1483: 0x0004, 0x1484: 0x0004, 0x1485: 0x0004,
- 0x1486: 0x0004, 0x1487: 0x0004, 0x1488: 0x0004, 0x1489: 0x0004, 0x148a: 0x0004, 0x148b: 0x0004,
- 0x148c: 0x0004, 0x148d: 0x0004, 0x148e: 0x0004, 0x148f: 0x0004, 0x1490: 0x000c, 0x1491: 0x000c,
- 0x1492: 0x000c, 0x1493: 0x000c, 0x1494: 0x000c, 0x1495: 0x000c, 0x1496: 0x000c, 0x1497: 0x000c,
- 0x1498: 0x000c, 0x1499: 0x000c, 0x149a: 0x000c, 0x149b: 0x000c, 0x149c: 0x000c, 0x149d: 0x000c,
- 0x149e: 0x000c, 0x149f: 0x000c, 0x14a0: 0x000c, 0x14a1: 0x000c, 0x14a2: 0x000c, 0x14a3: 0x000c,
- 0x14a4: 0x000c, 0x14a5: 0x000c, 0x14a6: 0x000c, 0x14a7: 0x000c, 0x14a8: 0x000c, 0x14a9: 0x000c,
- 0x14aa: 0x000c, 0x14ab: 0x000c, 0x14ac: 0x000c, 0x14ad: 0x000c, 0x14ae: 0x000c, 0x14af: 0x000c,
- 0x14b0: 0x000c,
- // Block 0x53, offset 0x14c0
- 0x14c0: 0x000a, 0x14c1: 0x000a, 0x14c3: 0x000a, 0x14c4: 0x000a, 0x14c5: 0x000a,
- 0x14c6: 0x000a, 0x14c8: 0x000a, 0x14c9: 0x000a,
- 0x14d4: 0x000a, 0x14d6: 0x000a, 0x14d7: 0x000a,
- 0x14d8: 0x000a,
- 0x14de: 0x000a, 0x14df: 0x000a, 0x14e0: 0x000a, 0x14e1: 0x000a, 0x14e2: 0x000a, 0x14e3: 0x000a,
- 0x14e5: 0x000a, 0x14e7: 0x000a, 0x14e9: 0x000a,
- 0x14ee: 0x0004,
- 0x14fa: 0x000a, 0x14fb: 0x000a,
- // Block 0x54, offset 0x1500
- 0x1500: 0x000a, 0x1501: 0x000a, 0x1502: 0x000a, 0x1503: 0x000a, 0x1504: 0x000a,
- 0x150a: 0x000a, 0x150b: 0x000a,
- 0x150c: 0x000a, 0x150d: 0x000a, 0x1510: 0x000a, 0x1511: 0x000a,
- 0x1512: 0x000a, 0x1513: 0x000a, 0x1514: 0x000a, 0x1515: 0x000a, 0x1516: 0x000a, 0x1517: 0x000a,
- 0x1518: 0x000a, 0x1519: 0x000a, 0x151a: 0x000a, 0x151b: 0x000a, 0x151c: 0x000a, 0x151d: 0x000a,
- 0x151e: 0x000a, 0x151f: 0x000a,
- // Block 0x55, offset 0x1540
- 0x1549: 0x000a, 0x154a: 0x000a, 0x154b: 0x000a,
- 0x1550: 0x000a, 0x1551: 0x000a,
- 0x1552: 0x000a, 0x1553: 0x000a, 0x1554: 0x000a, 0x1555: 0x000a, 0x1556: 0x000a, 0x1557: 0x000a,
- 0x1558: 0x000a, 0x1559: 0x000a, 0x155a: 0x000a, 0x155b: 0x000a, 0x155c: 0x000a, 0x155d: 0x000a,
- 0x155e: 0x000a, 0x155f: 0x000a, 0x1560: 0x000a, 0x1561: 0x000a, 0x1562: 0x000a, 0x1563: 0x000a,
- 0x1564: 0x000a, 0x1565: 0x000a, 0x1566: 0x000a, 0x1567: 0x000a, 0x1568: 0x000a, 0x1569: 0x000a,
- 0x156a: 0x000a, 0x156b: 0x000a, 0x156c: 0x000a, 0x156d: 0x000a, 0x156e: 0x000a, 0x156f: 0x000a,
- 0x1570: 0x000a, 0x1571: 0x000a, 0x1572: 0x000a, 0x1573: 0x000a, 0x1574: 0x000a, 0x1575: 0x000a,
- 0x1576: 0x000a, 0x1577: 0x000a, 0x1578: 0x000a, 0x1579: 0x000a, 0x157a: 0x000a, 0x157b: 0x000a,
- 0x157c: 0x000a, 0x157d: 0x000a, 0x157e: 0x000a, 0x157f: 0x000a,
- // Block 0x56, offset 0x1580
- 0x1580: 0x000a, 0x1581: 0x000a, 0x1582: 0x000a, 0x1583: 0x000a, 0x1584: 0x000a, 0x1585: 0x000a,
- 0x1586: 0x000a, 0x1587: 0x000a, 0x1588: 0x000a, 0x1589: 0x000a, 0x158a: 0x000a, 0x158b: 0x000a,
- 0x158c: 0x000a, 0x158d: 0x000a, 0x158e: 0x000a, 0x158f: 0x000a, 0x1590: 0x000a, 0x1591: 0x000a,
- 0x1592: 0x000a, 0x1593: 0x000a, 0x1594: 0x000a, 0x1595: 0x000a, 0x1596: 0x000a, 0x1597: 0x000a,
- 0x1598: 0x000a, 0x1599: 0x000a, 0x159a: 0x000a, 0x159b: 0x000a, 0x159c: 0x000a, 0x159d: 0x000a,
- 0x159e: 0x000a, 0x159f: 0x000a, 0x15a0: 0x000a, 0x15a1: 0x000a, 0x15a2: 0x000a, 0x15a3: 0x000a,
- 0x15a4: 0x000a, 0x15a5: 0x000a, 0x15a6: 0x000a, 0x15a7: 0x000a, 0x15a8: 0x000a, 0x15a9: 0x000a,
- 0x15aa: 0x000a, 0x15ab: 0x000a, 0x15ac: 0x000a, 0x15ad: 0x000a, 0x15ae: 0x000a, 0x15af: 0x000a,
- 0x15b0: 0x000a, 0x15b1: 0x000a, 0x15b2: 0x000a, 0x15b3: 0x000a, 0x15b4: 0x000a, 0x15b5: 0x000a,
- 0x15b6: 0x000a, 0x15b7: 0x000a, 0x15b8: 0x000a, 0x15b9: 0x000a, 0x15ba: 0x000a, 0x15bb: 0x000a,
- 0x15bc: 0x000a, 0x15bd: 0x000a, 0x15be: 0x000a, 0x15bf: 0x000a,
- // Block 0x57, offset 0x15c0
- 0x15c0: 0x000a, 0x15c1: 0x000a, 0x15c2: 0x000a, 0x15c3: 0x000a, 0x15c4: 0x000a, 0x15c5: 0x000a,
- 0x15c6: 0x000a, 0x15c7: 0x000a, 0x15c8: 0x000a, 0x15c9: 0x000a, 0x15ca: 0x000a, 0x15cb: 0x000a,
- 0x15cc: 0x000a, 0x15cd: 0x000a, 0x15ce: 0x000a, 0x15cf: 0x000a, 0x15d0: 0x000a, 0x15d1: 0x000a,
- 0x15d2: 0x0003, 0x15d3: 0x0004, 0x15d4: 0x000a, 0x15d5: 0x000a, 0x15d6: 0x000a, 0x15d7: 0x000a,
- 0x15d8: 0x000a, 0x15d9: 0x000a, 0x15da: 0x000a, 0x15db: 0x000a, 0x15dc: 0x000a, 0x15dd: 0x000a,
- 0x15de: 0x000a, 0x15df: 0x000a, 0x15e0: 0x000a, 0x15e1: 0x000a, 0x15e2: 0x000a, 0x15e3: 0x000a,
- 0x15e4: 0x000a, 0x15e5: 0x000a, 0x15e6: 0x000a, 0x15e7: 0x000a, 0x15e8: 0x000a, 0x15e9: 0x000a,
- 0x15ea: 0x000a, 0x15eb: 0x000a, 0x15ec: 0x000a, 0x15ed: 0x000a, 0x15ee: 0x000a, 0x15ef: 0x000a,
- 0x15f0: 0x000a, 0x15f1: 0x000a, 0x15f2: 0x000a, 0x15f3: 0x000a, 0x15f4: 0x000a, 0x15f5: 0x000a,
- 0x15f6: 0x000a, 0x15f7: 0x000a, 0x15f8: 0x000a, 0x15f9: 0x000a, 0x15fa: 0x000a, 0x15fb: 0x000a,
- 0x15fc: 0x000a, 0x15fd: 0x000a, 0x15fe: 0x000a, 0x15ff: 0x000a,
- // Block 0x58, offset 0x1600
- 0x1600: 0x000a, 0x1601: 0x000a, 0x1602: 0x000a, 0x1603: 0x000a, 0x1604: 0x000a, 0x1605: 0x000a,
- 0x1606: 0x000a, 0x1607: 0x000a, 0x1608: 0x003a, 0x1609: 0x002a, 0x160a: 0x003a, 0x160b: 0x002a,
- 0x160c: 0x000a, 0x160d: 0x000a, 0x160e: 0x000a, 0x160f: 0x000a, 0x1610: 0x000a, 0x1611: 0x000a,
- 0x1612: 0x000a, 0x1613: 0x000a, 0x1614: 0x000a, 0x1615: 0x000a, 0x1616: 0x000a, 0x1617: 0x000a,
- 0x1618: 0x000a, 0x1619: 0x000a, 0x161a: 0x000a, 0x161b: 0x000a, 0x161c: 0x000a, 0x161d: 0x000a,
- 0x161e: 0x000a, 0x161f: 0x000a, 0x1620: 0x000a, 0x1621: 0x000a, 0x1622: 0x000a, 0x1623: 0x000a,
- 0x1624: 0x000a, 0x1625: 0x000a, 0x1626: 0x000a, 0x1627: 0x000a, 0x1628: 0x000a, 0x1629: 0x009a,
- 0x162a: 0x008a, 0x162b: 0x000a, 0x162c: 0x000a, 0x162d: 0x000a, 0x162e: 0x000a, 0x162f: 0x000a,
- 0x1630: 0x000a, 0x1631: 0x000a, 0x1632: 0x000a, 0x1633: 0x000a, 0x1634: 0x000a, 0x1635: 0x000a,
- // Block 0x59, offset 0x1640
- 0x167b: 0x000a,
- 0x167c: 0x000a, 0x167d: 0x000a, 0x167e: 0x000a, 0x167f: 0x000a,
- // Block 0x5a, offset 0x1680
- 0x1680: 0x000a, 0x1681: 0x000a, 0x1682: 0x000a, 0x1683: 0x000a, 0x1684: 0x000a, 0x1685: 0x000a,
- 0x1686: 0x000a, 0x1687: 0x000a, 0x1688: 0x000a, 0x1689: 0x000a, 0x168a: 0x000a, 0x168b: 0x000a,
- 0x168c: 0x000a, 0x168d: 0x000a, 0x168e: 0x000a, 0x168f: 0x000a, 0x1690: 0x000a, 0x1691: 0x000a,
- 0x1692: 0x000a, 0x1693: 0x000a, 0x1694: 0x000a, 0x1696: 0x000a, 0x1697: 0x000a,
- 0x1698: 0x000a, 0x1699: 0x000a, 0x169a: 0x000a, 0x169b: 0x000a, 0x169c: 0x000a, 0x169d: 0x000a,
- 0x169e: 0x000a, 0x169f: 0x000a, 0x16a0: 0x000a, 0x16a1: 0x000a, 0x16a2: 0x000a, 0x16a3: 0x000a,
- 0x16a4: 0x000a, 0x16a5: 0x000a, 0x16a6: 0x000a, 0x16a7: 0x000a, 0x16a8: 0x000a, 0x16a9: 0x000a,
- 0x16aa: 0x000a, 0x16ab: 0x000a, 0x16ac: 0x000a, 0x16ad: 0x000a, 0x16ae: 0x000a, 0x16af: 0x000a,
- 0x16b0: 0x000a, 0x16b1: 0x000a, 0x16b2: 0x000a, 0x16b3: 0x000a, 0x16b4: 0x000a, 0x16b5: 0x000a,
- 0x16b6: 0x000a, 0x16b7: 0x000a, 0x16b8: 0x000a, 0x16b9: 0x000a, 0x16ba: 0x000a, 0x16bb: 0x000a,
- 0x16bc: 0x000a, 0x16bd: 0x000a, 0x16be: 0x000a, 0x16bf: 0x000a,
- // Block 0x5b, offset 0x16c0
- 0x16c0: 0x000a, 0x16c1: 0x000a, 0x16c2: 0x000a, 0x16c3: 0x000a, 0x16c4: 0x000a, 0x16c5: 0x000a,
- 0x16c6: 0x000a, 0x16c7: 0x000a, 0x16c8: 0x000a, 0x16c9: 0x000a, 0x16ca: 0x000a, 0x16cb: 0x000a,
- 0x16cc: 0x000a, 0x16cd: 0x000a, 0x16ce: 0x000a, 0x16cf: 0x000a, 0x16d0: 0x000a, 0x16d1: 0x000a,
- 0x16d2: 0x000a, 0x16d3: 0x000a, 0x16d4: 0x000a, 0x16d5: 0x000a, 0x16d6: 0x000a, 0x16d7: 0x000a,
- 0x16d8: 0x000a, 0x16d9: 0x000a, 0x16da: 0x000a, 0x16db: 0x000a, 0x16dc: 0x000a, 0x16dd: 0x000a,
- 0x16de: 0x000a, 0x16df: 0x000a, 0x16e0: 0x000a, 0x16e1: 0x000a, 0x16e2: 0x000a, 0x16e3: 0x000a,
- 0x16e4: 0x000a, 0x16e5: 0x000a, 0x16e6: 0x000a,
- // Block 0x5c, offset 0x1700
- 0x1700: 0x000a, 0x1701: 0x000a, 0x1702: 0x000a, 0x1703: 0x000a, 0x1704: 0x000a, 0x1705: 0x000a,
- 0x1706: 0x000a, 0x1707: 0x000a, 0x1708: 0x000a, 0x1709: 0x000a, 0x170a: 0x000a,
- 0x1720: 0x000a, 0x1721: 0x000a, 0x1722: 0x000a, 0x1723: 0x000a,
- 0x1724: 0x000a, 0x1725: 0x000a, 0x1726: 0x000a, 0x1727: 0x000a, 0x1728: 0x000a, 0x1729: 0x000a,
- 0x172a: 0x000a, 0x172b: 0x000a, 0x172c: 0x000a, 0x172d: 0x000a, 0x172e: 0x000a, 0x172f: 0x000a,
- 0x1730: 0x000a, 0x1731: 0x000a, 0x1732: 0x000a, 0x1733: 0x000a, 0x1734: 0x000a, 0x1735: 0x000a,
- 0x1736: 0x000a, 0x1737: 0x000a, 0x1738: 0x000a, 0x1739: 0x000a, 0x173a: 0x000a, 0x173b: 0x000a,
- 0x173c: 0x000a, 0x173d: 0x000a, 0x173e: 0x000a, 0x173f: 0x000a,
- // Block 0x5d, offset 0x1740
- 0x1740: 0x000a, 0x1741: 0x000a, 0x1742: 0x000a, 0x1743: 0x000a, 0x1744: 0x000a, 0x1745: 0x000a,
- 0x1746: 0x000a, 0x1747: 0x000a, 0x1748: 0x0002, 0x1749: 0x0002, 0x174a: 0x0002, 0x174b: 0x0002,
- 0x174c: 0x0002, 0x174d: 0x0002, 0x174e: 0x0002, 0x174f: 0x0002, 0x1750: 0x0002, 0x1751: 0x0002,
- 0x1752: 0x0002, 0x1753: 0x0002, 0x1754: 0x0002, 0x1755: 0x0002, 0x1756: 0x0002, 0x1757: 0x0002,
- 0x1758: 0x0002, 0x1759: 0x0002, 0x175a: 0x0002, 0x175b: 0x0002,
- // Block 0x5e, offset 0x1780
- 0x17aa: 0x000a, 0x17ab: 0x000a, 0x17ac: 0x000a, 0x17ad: 0x000a, 0x17ae: 0x000a, 0x17af: 0x000a,
- 0x17b0: 0x000a, 0x17b1: 0x000a, 0x17b2: 0x000a, 0x17b3: 0x000a, 0x17b4: 0x000a, 0x17b5: 0x000a,
- 0x17b6: 0x000a, 0x17b7: 0x000a, 0x17b8: 0x000a, 0x17b9: 0x000a, 0x17ba: 0x000a, 0x17bb: 0x000a,
- 0x17bc: 0x000a, 0x17bd: 0x000a, 0x17be: 0x000a, 0x17bf: 0x000a,
- // Block 0x5f, offset 0x17c0
- 0x17c0: 0x000a, 0x17c1: 0x000a, 0x17c2: 0x000a, 0x17c3: 0x000a, 0x17c4: 0x000a, 0x17c5: 0x000a,
- 0x17c6: 0x000a, 0x17c7: 0x000a, 0x17c8: 0x000a, 0x17c9: 0x000a, 0x17ca: 0x000a, 0x17cb: 0x000a,
- 0x17cc: 0x000a, 0x17cd: 0x000a, 0x17ce: 0x000a, 0x17cf: 0x000a, 0x17d0: 0x000a, 0x17d1: 0x000a,
- 0x17d2: 0x000a, 0x17d3: 0x000a, 0x17d4: 0x000a, 0x17d5: 0x000a, 0x17d6: 0x000a, 0x17d7: 0x000a,
- 0x17d8: 0x000a, 0x17d9: 0x000a, 0x17da: 0x000a, 0x17db: 0x000a, 0x17dc: 0x000a, 0x17dd: 0x000a,
- 0x17de: 0x000a, 0x17df: 0x000a, 0x17e0: 0x000a, 0x17e1: 0x000a, 0x17e2: 0x000a, 0x17e3: 0x000a,
- 0x17e4: 0x000a, 0x17e5: 0x000a, 0x17e6: 0x000a, 0x17e7: 0x000a, 0x17e8: 0x000a, 0x17e9: 0x000a,
- 0x17ea: 0x000a, 0x17eb: 0x000a, 0x17ed: 0x000a, 0x17ee: 0x000a, 0x17ef: 0x000a,
- 0x17f0: 0x000a, 0x17f1: 0x000a, 0x17f2: 0x000a, 0x17f3: 0x000a, 0x17f4: 0x000a, 0x17f5: 0x000a,
- 0x17f6: 0x000a, 0x17f7: 0x000a, 0x17f8: 0x000a, 0x17f9: 0x000a, 0x17fa: 0x000a, 0x17fb: 0x000a,
- 0x17fc: 0x000a, 0x17fd: 0x000a, 0x17fe: 0x000a, 0x17ff: 0x000a,
- // Block 0x60, offset 0x1800
- 0x1800: 0x000a, 0x1801: 0x000a, 0x1802: 0x000a, 0x1803: 0x000a, 0x1804: 0x000a, 0x1805: 0x000a,
- 0x1806: 0x000a, 0x1807: 0x000a, 0x1808: 0x000a, 0x1809: 0x000a, 0x180a: 0x000a, 0x180b: 0x000a,
- 0x180c: 0x000a, 0x180d: 0x000a, 0x180e: 0x000a, 0x180f: 0x000a, 0x1810: 0x000a, 0x1811: 0x000a,
- 0x1812: 0x000a, 0x1813: 0x000a, 0x1814: 0x000a, 0x1815: 0x000a, 0x1816: 0x000a, 0x1817: 0x000a,
- 0x1818: 0x000a, 0x1819: 0x000a, 0x181a: 0x000a, 0x181b: 0x000a, 0x181c: 0x000a, 0x181d: 0x000a,
- 0x181e: 0x000a, 0x181f: 0x000a, 0x1820: 0x000a, 0x1821: 0x000a, 0x1822: 0x000a, 0x1823: 0x000a,
- 0x1824: 0x000a, 0x1825: 0x000a, 0x1826: 0x000a, 0x1827: 0x000a, 0x1828: 0x003a, 0x1829: 0x002a,
- 0x182a: 0x003a, 0x182b: 0x002a, 0x182c: 0x003a, 0x182d: 0x002a, 0x182e: 0x003a, 0x182f: 0x002a,
- 0x1830: 0x003a, 0x1831: 0x002a, 0x1832: 0x003a, 0x1833: 0x002a, 0x1834: 0x003a, 0x1835: 0x002a,
- 0x1836: 0x000a, 0x1837: 0x000a, 0x1838: 0x000a, 0x1839: 0x000a, 0x183a: 0x000a, 0x183b: 0x000a,
- 0x183c: 0x000a, 0x183d: 0x000a, 0x183e: 0x000a, 0x183f: 0x000a,
- // Block 0x61, offset 0x1840
- 0x1840: 0x000a, 0x1841: 0x000a, 0x1842: 0x000a, 0x1843: 0x000a, 0x1844: 0x000a, 0x1845: 0x009a,
- 0x1846: 0x008a, 0x1847: 0x000a, 0x1848: 0x000a, 0x1849: 0x000a, 0x184a: 0x000a, 0x184b: 0x000a,
- 0x184c: 0x000a, 0x184d: 0x000a, 0x184e: 0x000a, 0x184f: 0x000a, 0x1850: 0x000a, 0x1851: 0x000a,
- 0x1852: 0x000a, 0x1853: 0x000a, 0x1854: 0x000a, 0x1855: 0x000a, 0x1856: 0x000a, 0x1857: 0x000a,
- 0x1858: 0x000a, 0x1859: 0x000a, 0x185a: 0x000a, 0x185b: 0x000a, 0x185c: 0x000a, 0x185d: 0x000a,
- 0x185e: 0x000a, 0x185f: 0x000a, 0x1860: 0x000a, 0x1861: 0x000a, 0x1862: 0x000a, 0x1863: 0x000a,
- 0x1864: 0x000a, 0x1865: 0x000a, 0x1866: 0x003a, 0x1867: 0x002a, 0x1868: 0x003a, 0x1869: 0x002a,
- 0x186a: 0x003a, 0x186b: 0x002a, 0x186c: 0x003a, 0x186d: 0x002a, 0x186e: 0x003a, 0x186f: 0x002a,
- 0x1870: 0x000a, 0x1871: 0x000a, 0x1872: 0x000a, 0x1873: 0x000a, 0x1874: 0x000a, 0x1875: 0x000a,
- 0x1876: 0x000a, 0x1877: 0x000a, 0x1878: 0x000a, 0x1879: 0x000a, 0x187a: 0x000a, 0x187b: 0x000a,
- 0x187c: 0x000a, 0x187d: 0x000a, 0x187e: 0x000a, 0x187f: 0x000a,
- // Block 0x62, offset 0x1880
- 0x1880: 0x000a, 0x1881: 0x000a, 0x1882: 0x000a, 0x1883: 0x007a, 0x1884: 0x006a, 0x1885: 0x009a,
- 0x1886: 0x008a, 0x1887: 0x00ba, 0x1888: 0x00aa, 0x1889: 0x009a, 0x188a: 0x008a, 0x188b: 0x007a,
- 0x188c: 0x006a, 0x188d: 0x00da, 0x188e: 0x002a, 0x188f: 0x003a, 0x1890: 0x00ca, 0x1891: 0x009a,
- 0x1892: 0x008a, 0x1893: 0x007a, 0x1894: 0x006a, 0x1895: 0x009a, 0x1896: 0x008a, 0x1897: 0x00ba,
- 0x1898: 0x00aa, 0x1899: 0x000a, 0x189a: 0x000a, 0x189b: 0x000a, 0x189c: 0x000a, 0x189d: 0x000a,
- 0x189e: 0x000a, 0x189f: 0x000a, 0x18a0: 0x000a, 0x18a1: 0x000a, 0x18a2: 0x000a, 0x18a3: 0x000a,
- 0x18a4: 0x000a, 0x18a5: 0x000a, 0x18a6: 0x000a, 0x18a7: 0x000a, 0x18a8: 0x000a, 0x18a9: 0x000a,
- 0x18aa: 0x000a, 0x18ab: 0x000a, 0x18ac: 0x000a, 0x18ad: 0x000a, 0x18ae: 0x000a, 0x18af: 0x000a,
- 0x18b0: 0x000a, 0x18b1: 0x000a, 0x18b2: 0x000a, 0x18b3: 0x000a, 0x18b4: 0x000a, 0x18b5: 0x000a,
- 0x18b6: 0x000a, 0x18b7: 0x000a, 0x18b8: 0x000a, 0x18b9: 0x000a, 0x18ba: 0x000a, 0x18bb: 0x000a,
- 0x18bc: 0x000a, 0x18bd: 0x000a, 0x18be: 0x000a, 0x18bf: 0x000a,
- // Block 0x63, offset 0x18c0
- 0x18c0: 0x000a, 0x18c1: 0x000a, 0x18c2: 0x000a, 0x18c3: 0x000a, 0x18c4: 0x000a, 0x18c5: 0x000a,
- 0x18c6: 0x000a, 0x18c7: 0x000a, 0x18c8: 0x000a, 0x18c9: 0x000a, 0x18ca: 0x000a, 0x18cb: 0x000a,
- 0x18cc: 0x000a, 0x18cd: 0x000a, 0x18ce: 0x000a, 0x18cf: 0x000a, 0x18d0: 0x000a, 0x18d1: 0x000a,
- 0x18d2: 0x000a, 0x18d3: 0x000a, 0x18d4: 0x000a, 0x18d5: 0x000a, 0x18d6: 0x000a, 0x18d7: 0x000a,
- 0x18d8: 0x003a, 0x18d9: 0x002a, 0x18da: 0x003a, 0x18db: 0x002a, 0x18dc: 0x000a, 0x18dd: 0x000a,
- 0x18de: 0x000a, 0x18df: 0x000a, 0x18e0: 0x000a, 0x18e1: 0x000a, 0x18e2: 0x000a, 0x18e3: 0x000a,
- 0x18e4: 0x000a, 0x18e5: 0x000a, 0x18e6: 0x000a, 0x18e7: 0x000a, 0x18e8: 0x000a, 0x18e9: 0x000a,
- 0x18ea: 0x000a, 0x18eb: 0x000a, 0x18ec: 0x000a, 0x18ed: 0x000a, 0x18ee: 0x000a, 0x18ef: 0x000a,
- 0x18f0: 0x000a, 0x18f1: 0x000a, 0x18f2: 0x000a, 0x18f3: 0x000a, 0x18f4: 0x000a, 0x18f5: 0x000a,
- 0x18f6: 0x000a, 0x18f7: 0x000a, 0x18f8: 0x000a, 0x18f9: 0x000a, 0x18fa: 0x000a, 0x18fb: 0x000a,
- 0x18fc: 0x003a, 0x18fd: 0x002a, 0x18fe: 0x000a, 0x18ff: 0x000a,
- // Block 0x64, offset 0x1900
- 0x1900: 0x000a, 0x1901: 0x000a, 0x1902: 0x000a, 0x1903: 0x000a, 0x1904: 0x000a, 0x1905: 0x000a,
- 0x1906: 0x000a, 0x1907: 0x000a, 0x1908: 0x000a, 0x1909: 0x000a, 0x190a: 0x000a, 0x190b: 0x000a,
- 0x190c: 0x000a, 0x190d: 0x000a, 0x190e: 0x000a, 0x190f: 0x000a, 0x1910: 0x000a, 0x1911: 0x000a,
- 0x1912: 0x000a, 0x1913: 0x000a, 0x1914: 0x000a, 0x1915: 0x000a, 0x1916: 0x000a, 0x1917: 0x000a,
- 0x1918: 0x000a, 0x1919: 0x000a, 0x191a: 0x000a, 0x191b: 0x000a, 0x191c: 0x000a, 0x191d: 0x000a,
- 0x191e: 0x000a, 0x191f: 0x000a, 0x1920: 0x000a, 0x1921: 0x000a, 0x1922: 0x000a, 0x1923: 0x000a,
- 0x1924: 0x000a, 0x1925: 0x000a, 0x1926: 0x000a, 0x1927: 0x000a, 0x1928: 0x000a, 0x1929: 0x000a,
- 0x192a: 0x000a, 0x192b: 0x000a, 0x192c: 0x000a, 0x192d: 0x000a, 0x192e: 0x000a, 0x192f: 0x000a,
- 0x1930: 0x000a, 0x1931: 0x000a, 0x1932: 0x000a, 0x1933: 0x000a,
- 0x1936: 0x000a, 0x1937: 0x000a, 0x1938: 0x000a, 0x1939: 0x000a, 0x193a: 0x000a, 0x193b: 0x000a,
- 0x193c: 0x000a, 0x193d: 0x000a, 0x193e: 0x000a, 0x193f: 0x000a,
- // Block 0x65, offset 0x1940
- 0x1940: 0x000a, 0x1941: 0x000a, 0x1942: 0x000a, 0x1943: 0x000a, 0x1944: 0x000a, 0x1945: 0x000a,
- 0x1946: 0x000a, 0x1947: 0x000a, 0x1948: 0x000a, 0x1949: 0x000a, 0x194a: 0x000a, 0x194b: 0x000a,
- 0x194c: 0x000a, 0x194d: 0x000a, 0x194e: 0x000a, 0x194f: 0x000a, 0x1950: 0x000a, 0x1951: 0x000a,
- 0x1952: 0x000a, 0x1953: 0x000a, 0x1954: 0x000a, 0x1955: 0x000a,
- 0x1958: 0x000a, 0x1959: 0x000a, 0x195a: 0x000a, 0x195b: 0x000a, 0x195c: 0x000a, 0x195d: 0x000a,
- 0x195e: 0x000a, 0x195f: 0x000a, 0x1960: 0x000a, 0x1961: 0x000a, 0x1962: 0x000a, 0x1963: 0x000a,
- 0x1964: 0x000a, 0x1965: 0x000a, 0x1966: 0x000a, 0x1967: 0x000a, 0x1968: 0x000a, 0x1969: 0x000a,
- 0x196a: 0x000a, 0x196b: 0x000a, 0x196c: 0x000a, 0x196d: 0x000a, 0x196e: 0x000a, 0x196f: 0x000a,
- 0x1970: 0x000a, 0x1971: 0x000a, 0x1972: 0x000a, 0x1973: 0x000a, 0x1974: 0x000a, 0x1975: 0x000a,
- 0x1976: 0x000a, 0x1977: 0x000a, 0x1978: 0x000a, 0x1979: 0x000a, 0x197a: 0x000a, 0x197b: 0x000a,
- 0x197c: 0x000a, 0x197d: 0x000a, 0x197e: 0x000a, 0x197f: 0x000a,
- // Block 0x66, offset 0x1980
- 0x1980: 0x000a, 0x1981: 0x000a, 0x1982: 0x000a, 0x1983: 0x000a, 0x1984: 0x000a, 0x1985: 0x000a,
- 0x1986: 0x000a, 0x1987: 0x000a, 0x1988: 0x000a, 0x198a: 0x000a, 0x198b: 0x000a,
- 0x198c: 0x000a, 0x198d: 0x000a, 0x198e: 0x000a, 0x198f: 0x000a, 0x1990: 0x000a, 0x1991: 0x000a,
- 0x1992: 0x000a, 0x1993: 0x000a, 0x1994: 0x000a, 0x1995: 0x000a, 0x1996: 0x000a, 0x1997: 0x000a,
- 0x1998: 0x000a, 0x1999: 0x000a, 0x199a: 0x000a, 0x199b: 0x000a, 0x199c: 0x000a, 0x199d: 0x000a,
- 0x199e: 0x000a, 0x199f: 0x000a, 0x19a0: 0x000a, 0x19a1: 0x000a, 0x19a2: 0x000a, 0x19a3: 0x000a,
- 0x19a4: 0x000a, 0x19a5: 0x000a, 0x19a6: 0x000a, 0x19a7: 0x000a, 0x19a8: 0x000a, 0x19a9: 0x000a,
- 0x19aa: 0x000a, 0x19ab: 0x000a, 0x19ac: 0x000a, 0x19ad: 0x000a, 0x19ae: 0x000a, 0x19af: 0x000a,
- 0x19b0: 0x000a, 0x19b1: 0x000a, 0x19b2: 0x000a, 0x19b3: 0x000a, 0x19b4: 0x000a, 0x19b5: 0x000a,
- 0x19b6: 0x000a, 0x19b7: 0x000a, 0x19b8: 0x000a, 0x19b9: 0x000a, 0x19ba: 0x000a, 0x19bb: 0x000a,
- 0x19bc: 0x000a, 0x19bd: 0x000a, 0x19be: 0x000a,
- // Block 0x67, offset 0x19c0
- 0x19e5: 0x000a, 0x19e6: 0x000a, 0x19e7: 0x000a, 0x19e8: 0x000a, 0x19e9: 0x000a,
- 0x19ea: 0x000a, 0x19ef: 0x000c,
- 0x19f0: 0x000c, 0x19f1: 0x000c,
- 0x19f9: 0x000a, 0x19fa: 0x000a, 0x19fb: 0x000a,
- 0x19fc: 0x000a, 0x19fd: 0x000a, 0x19fe: 0x000a, 0x19ff: 0x000a,
- // Block 0x68, offset 0x1a00
- 0x1a3f: 0x000c,
- // Block 0x69, offset 0x1a40
- 0x1a60: 0x000c, 0x1a61: 0x000c, 0x1a62: 0x000c, 0x1a63: 0x000c,
- 0x1a64: 0x000c, 0x1a65: 0x000c, 0x1a66: 0x000c, 0x1a67: 0x000c, 0x1a68: 0x000c, 0x1a69: 0x000c,
- 0x1a6a: 0x000c, 0x1a6b: 0x000c, 0x1a6c: 0x000c, 0x1a6d: 0x000c, 0x1a6e: 0x000c, 0x1a6f: 0x000c,
- 0x1a70: 0x000c, 0x1a71: 0x000c, 0x1a72: 0x000c, 0x1a73: 0x000c, 0x1a74: 0x000c, 0x1a75: 0x000c,
- 0x1a76: 0x000c, 0x1a77: 0x000c, 0x1a78: 0x000c, 0x1a79: 0x000c, 0x1a7a: 0x000c, 0x1a7b: 0x000c,
- 0x1a7c: 0x000c, 0x1a7d: 0x000c, 0x1a7e: 0x000c, 0x1a7f: 0x000c,
- // Block 0x6a, offset 0x1a80
- 0x1a80: 0x000a, 0x1a81: 0x000a, 0x1a82: 0x000a, 0x1a83: 0x000a, 0x1a84: 0x000a, 0x1a85: 0x000a,
- 0x1a86: 0x000a, 0x1a87: 0x000a, 0x1a88: 0x000a, 0x1a89: 0x000a, 0x1a8a: 0x000a, 0x1a8b: 0x000a,
- 0x1a8c: 0x000a, 0x1a8d: 0x000a, 0x1a8e: 0x000a, 0x1a8f: 0x000a, 0x1a90: 0x000a, 0x1a91: 0x000a,
- 0x1a92: 0x000a, 0x1a93: 0x000a, 0x1a94: 0x000a, 0x1a95: 0x000a, 0x1a96: 0x000a, 0x1a97: 0x000a,
- 0x1a98: 0x000a, 0x1a99: 0x000a, 0x1a9a: 0x000a, 0x1a9b: 0x000a, 0x1a9c: 0x000a, 0x1a9d: 0x000a,
- 0x1a9e: 0x000a, 0x1a9f: 0x000a, 0x1aa0: 0x000a, 0x1aa1: 0x000a, 0x1aa2: 0x003a, 0x1aa3: 0x002a,
- 0x1aa4: 0x003a, 0x1aa5: 0x002a, 0x1aa6: 0x003a, 0x1aa7: 0x002a, 0x1aa8: 0x003a, 0x1aa9: 0x002a,
- 0x1aaa: 0x000a, 0x1aab: 0x000a, 0x1aac: 0x000a, 0x1aad: 0x000a, 0x1aae: 0x000a, 0x1aaf: 0x000a,
- 0x1ab0: 0x000a, 0x1ab1: 0x000a, 0x1ab2: 0x000a, 0x1ab3: 0x000a, 0x1ab4: 0x000a, 0x1ab5: 0x000a,
- 0x1ab6: 0x000a, 0x1ab7: 0x000a, 0x1ab8: 0x000a, 0x1ab9: 0x000a, 0x1aba: 0x000a, 0x1abb: 0x000a,
- 0x1abc: 0x000a, 0x1abd: 0x000a, 0x1abe: 0x000a, 0x1abf: 0x000a,
- // Block 0x6b, offset 0x1ac0
- 0x1ac0: 0x000a, 0x1ac1: 0x000a, 0x1ac2: 0x000a, 0x1ac3: 0x000a, 0x1ac4: 0x000a, 0x1ac5: 0x000a,
- 0x1ac6: 0x000a, 0x1ac7: 0x000a, 0x1ac8: 0x000a, 0x1ac9: 0x000a, 0x1aca: 0x000a, 0x1acb: 0x000a,
- 0x1acc: 0x000a, 0x1acd: 0x000a, 0x1ace: 0x000a,
- // Block 0x6c, offset 0x1b00
- 0x1b00: 0x000a, 0x1b01: 0x000a, 0x1b02: 0x000a, 0x1b03: 0x000a, 0x1b04: 0x000a, 0x1b05: 0x000a,
- 0x1b06: 0x000a, 0x1b07: 0x000a, 0x1b08: 0x000a, 0x1b09: 0x000a, 0x1b0a: 0x000a, 0x1b0b: 0x000a,
- 0x1b0c: 0x000a, 0x1b0d: 0x000a, 0x1b0e: 0x000a, 0x1b0f: 0x000a, 0x1b10: 0x000a, 0x1b11: 0x000a,
- 0x1b12: 0x000a, 0x1b13: 0x000a, 0x1b14: 0x000a, 0x1b15: 0x000a, 0x1b16: 0x000a, 0x1b17: 0x000a,
- 0x1b18: 0x000a, 0x1b19: 0x000a, 0x1b1b: 0x000a, 0x1b1c: 0x000a, 0x1b1d: 0x000a,
- 0x1b1e: 0x000a, 0x1b1f: 0x000a, 0x1b20: 0x000a, 0x1b21: 0x000a, 0x1b22: 0x000a, 0x1b23: 0x000a,
- 0x1b24: 0x000a, 0x1b25: 0x000a, 0x1b26: 0x000a, 0x1b27: 0x000a, 0x1b28: 0x000a, 0x1b29: 0x000a,
- 0x1b2a: 0x000a, 0x1b2b: 0x000a, 0x1b2c: 0x000a, 0x1b2d: 0x000a, 0x1b2e: 0x000a, 0x1b2f: 0x000a,
- 0x1b30: 0x000a, 0x1b31: 0x000a, 0x1b32: 0x000a, 0x1b33: 0x000a, 0x1b34: 0x000a, 0x1b35: 0x000a,
- 0x1b36: 0x000a, 0x1b37: 0x000a, 0x1b38: 0x000a, 0x1b39: 0x000a, 0x1b3a: 0x000a, 0x1b3b: 0x000a,
- 0x1b3c: 0x000a, 0x1b3d: 0x000a, 0x1b3e: 0x000a, 0x1b3f: 0x000a,
- // Block 0x6d, offset 0x1b40
- 0x1b40: 0x000a, 0x1b41: 0x000a, 0x1b42: 0x000a, 0x1b43: 0x000a, 0x1b44: 0x000a, 0x1b45: 0x000a,
- 0x1b46: 0x000a, 0x1b47: 0x000a, 0x1b48: 0x000a, 0x1b49: 0x000a, 0x1b4a: 0x000a, 0x1b4b: 0x000a,
- 0x1b4c: 0x000a, 0x1b4d: 0x000a, 0x1b4e: 0x000a, 0x1b4f: 0x000a, 0x1b50: 0x000a, 0x1b51: 0x000a,
- 0x1b52: 0x000a, 0x1b53: 0x000a, 0x1b54: 0x000a, 0x1b55: 0x000a, 0x1b56: 0x000a, 0x1b57: 0x000a,
- 0x1b58: 0x000a, 0x1b59: 0x000a, 0x1b5a: 0x000a, 0x1b5b: 0x000a, 0x1b5c: 0x000a, 0x1b5d: 0x000a,
- 0x1b5e: 0x000a, 0x1b5f: 0x000a, 0x1b60: 0x000a, 0x1b61: 0x000a, 0x1b62: 0x000a, 0x1b63: 0x000a,
- 0x1b64: 0x000a, 0x1b65: 0x000a, 0x1b66: 0x000a, 0x1b67: 0x000a, 0x1b68: 0x000a, 0x1b69: 0x000a,
- 0x1b6a: 0x000a, 0x1b6b: 0x000a, 0x1b6c: 0x000a, 0x1b6d: 0x000a, 0x1b6e: 0x000a, 0x1b6f: 0x000a,
- 0x1b70: 0x000a, 0x1b71: 0x000a, 0x1b72: 0x000a, 0x1b73: 0x000a,
- // Block 0x6e, offset 0x1b80
- 0x1b80: 0x000a, 0x1b81: 0x000a, 0x1b82: 0x000a, 0x1b83: 0x000a, 0x1b84: 0x000a, 0x1b85: 0x000a,
- 0x1b86: 0x000a, 0x1b87: 0x000a, 0x1b88: 0x000a, 0x1b89: 0x000a, 0x1b8a: 0x000a, 0x1b8b: 0x000a,
- 0x1b8c: 0x000a, 0x1b8d: 0x000a, 0x1b8e: 0x000a, 0x1b8f: 0x000a, 0x1b90: 0x000a, 0x1b91: 0x000a,
- 0x1b92: 0x000a, 0x1b93: 0x000a, 0x1b94: 0x000a, 0x1b95: 0x000a,
- 0x1bb0: 0x000a, 0x1bb1: 0x000a, 0x1bb2: 0x000a, 0x1bb3: 0x000a, 0x1bb4: 0x000a, 0x1bb5: 0x000a,
- 0x1bb6: 0x000a, 0x1bb7: 0x000a, 0x1bb8: 0x000a, 0x1bb9: 0x000a, 0x1bba: 0x000a, 0x1bbb: 0x000a,
- // Block 0x6f, offset 0x1bc0
- 0x1bc0: 0x0009, 0x1bc1: 0x000a, 0x1bc2: 0x000a, 0x1bc3: 0x000a, 0x1bc4: 0x000a,
- 0x1bc8: 0x003a, 0x1bc9: 0x002a, 0x1bca: 0x003a, 0x1bcb: 0x002a,
- 0x1bcc: 0x003a, 0x1bcd: 0x002a, 0x1bce: 0x003a, 0x1bcf: 0x002a, 0x1bd0: 0x003a, 0x1bd1: 0x002a,
- 0x1bd2: 0x000a, 0x1bd3: 0x000a, 0x1bd4: 0x003a, 0x1bd5: 0x002a, 0x1bd6: 0x003a, 0x1bd7: 0x002a,
- 0x1bd8: 0x003a, 0x1bd9: 0x002a, 0x1bda: 0x003a, 0x1bdb: 0x002a, 0x1bdc: 0x000a, 0x1bdd: 0x000a,
- 0x1bde: 0x000a, 0x1bdf: 0x000a, 0x1be0: 0x000a,
- 0x1bea: 0x000c, 0x1beb: 0x000c, 0x1bec: 0x000c, 0x1bed: 0x000c,
- 0x1bf0: 0x000a,
- 0x1bf6: 0x000a, 0x1bf7: 0x000a,
- 0x1bfd: 0x000a, 0x1bfe: 0x000a, 0x1bff: 0x000a,
- // Block 0x70, offset 0x1c00
- 0x1c19: 0x000c, 0x1c1a: 0x000c, 0x1c1b: 0x000a, 0x1c1c: 0x000a,
- 0x1c20: 0x000a,
- // Block 0x71, offset 0x1c40
- 0x1c7b: 0x000a,
- // Block 0x72, offset 0x1c80
- 0x1c80: 0x000a, 0x1c81: 0x000a, 0x1c82: 0x000a, 0x1c83: 0x000a, 0x1c84: 0x000a, 0x1c85: 0x000a,
- 0x1c86: 0x000a, 0x1c87: 0x000a, 0x1c88: 0x000a, 0x1c89: 0x000a, 0x1c8a: 0x000a, 0x1c8b: 0x000a,
- 0x1c8c: 0x000a, 0x1c8d: 0x000a, 0x1c8e: 0x000a, 0x1c8f: 0x000a, 0x1c90: 0x000a, 0x1c91: 0x000a,
- 0x1c92: 0x000a, 0x1c93: 0x000a, 0x1c94: 0x000a, 0x1c95: 0x000a, 0x1c96: 0x000a, 0x1c97: 0x000a,
- 0x1c98: 0x000a, 0x1c99: 0x000a, 0x1c9a: 0x000a, 0x1c9b: 0x000a, 0x1c9c: 0x000a, 0x1c9d: 0x000a,
- 0x1c9e: 0x000a, 0x1c9f: 0x000a, 0x1ca0: 0x000a, 0x1ca1: 0x000a, 0x1ca2: 0x000a, 0x1ca3: 0x000a,
- // Block 0x73, offset 0x1cc0
- 0x1cdd: 0x000a,
- 0x1cde: 0x000a,
- // Block 0x74, offset 0x1d00
- 0x1d10: 0x000a, 0x1d11: 0x000a,
- 0x1d12: 0x000a, 0x1d13: 0x000a, 0x1d14: 0x000a, 0x1d15: 0x000a, 0x1d16: 0x000a, 0x1d17: 0x000a,
- 0x1d18: 0x000a, 0x1d19: 0x000a, 0x1d1a: 0x000a, 0x1d1b: 0x000a, 0x1d1c: 0x000a, 0x1d1d: 0x000a,
- 0x1d1e: 0x000a, 0x1d1f: 0x000a,
- 0x1d3c: 0x000a, 0x1d3d: 0x000a, 0x1d3e: 0x000a,
- // Block 0x75, offset 0x1d40
- 0x1d71: 0x000a, 0x1d72: 0x000a, 0x1d73: 0x000a, 0x1d74: 0x000a, 0x1d75: 0x000a,
- 0x1d76: 0x000a, 0x1d77: 0x000a, 0x1d78: 0x000a, 0x1d79: 0x000a, 0x1d7a: 0x000a, 0x1d7b: 0x000a,
- 0x1d7c: 0x000a, 0x1d7d: 0x000a, 0x1d7e: 0x000a, 0x1d7f: 0x000a,
- // Block 0x76, offset 0x1d80
- 0x1d8c: 0x000a, 0x1d8d: 0x000a, 0x1d8e: 0x000a, 0x1d8f: 0x000a,
- // Block 0x77, offset 0x1dc0
- 0x1df7: 0x000a, 0x1df8: 0x000a, 0x1df9: 0x000a, 0x1dfa: 0x000a,
- // Block 0x78, offset 0x1e00
- 0x1e1e: 0x000a, 0x1e1f: 0x000a,
- 0x1e3f: 0x000a,
- // Block 0x79, offset 0x1e40
- 0x1e50: 0x000a, 0x1e51: 0x000a,
- 0x1e52: 0x000a, 0x1e53: 0x000a, 0x1e54: 0x000a, 0x1e55: 0x000a, 0x1e56: 0x000a, 0x1e57: 0x000a,
- 0x1e58: 0x000a, 0x1e59: 0x000a, 0x1e5a: 0x000a, 0x1e5b: 0x000a, 0x1e5c: 0x000a, 0x1e5d: 0x000a,
- 0x1e5e: 0x000a, 0x1e5f: 0x000a, 0x1e60: 0x000a, 0x1e61: 0x000a, 0x1e62: 0x000a, 0x1e63: 0x000a,
- 0x1e64: 0x000a, 0x1e65: 0x000a, 0x1e66: 0x000a, 0x1e67: 0x000a, 0x1e68: 0x000a, 0x1e69: 0x000a,
- 0x1e6a: 0x000a, 0x1e6b: 0x000a, 0x1e6c: 0x000a, 0x1e6d: 0x000a, 0x1e6e: 0x000a, 0x1e6f: 0x000a,
- 0x1e70: 0x000a, 0x1e71: 0x000a, 0x1e72: 0x000a, 0x1e73: 0x000a, 0x1e74: 0x000a, 0x1e75: 0x000a,
- 0x1e76: 0x000a, 0x1e77: 0x000a, 0x1e78: 0x000a, 0x1e79: 0x000a, 0x1e7a: 0x000a, 0x1e7b: 0x000a,
- 0x1e7c: 0x000a, 0x1e7d: 0x000a, 0x1e7e: 0x000a, 0x1e7f: 0x000a,
- // Block 0x7a, offset 0x1e80
- 0x1e80: 0x000a, 0x1e81: 0x000a, 0x1e82: 0x000a, 0x1e83: 0x000a, 0x1e84: 0x000a, 0x1e85: 0x000a,
- 0x1e86: 0x000a,
- // Block 0x7b, offset 0x1ec0
- 0x1ecd: 0x000a, 0x1ece: 0x000a, 0x1ecf: 0x000a,
- // Block 0x7c, offset 0x1f00
- 0x1f2f: 0x000c,
- 0x1f30: 0x000c, 0x1f31: 0x000c, 0x1f32: 0x000c, 0x1f33: 0x000a, 0x1f34: 0x000c, 0x1f35: 0x000c,
- 0x1f36: 0x000c, 0x1f37: 0x000c, 0x1f38: 0x000c, 0x1f39: 0x000c, 0x1f3a: 0x000c, 0x1f3b: 0x000c,
- 0x1f3c: 0x000c, 0x1f3d: 0x000c, 0x1f3e: 0x000a, 0x1f3f: 0x000a,
- // Block 0x7d, offset 0x1f40
- 0x1f5e: 0x000c, 0x1f5f: 0x000c,
- // Block 0x7e, offset 0x1f80
- 0x1fb0: 0x000c, 0x1fb1: 0x000c,
- // Block 0x7f, offset 0x1fc0
- 0x1fc0: 0x000a, 0x1fc1: 0x000a, 0x1fc2: 0x000a, 0x1fc3: 0x000a, 0x1fc4: 0x000a, 0x1fc5: 0x000a,
- 0x1fc6: 0x000a, 0x1fc7: 0x000a, 0x1fc8: 0x000a, 0x1fc9: 0x000a, 0x1fca: 0x000a, 0x1fcb: 0x000a,
- 0x1fcc: 0x000a, 0x1fcd: 0x000a, 0x1fce: 0x000a, 0x1fcf: 0x000a, 0x1fd0: 0x000a, 0x1fd1: 0x000a,
- 0x1fd2: 0x000a, 0x1fd3: 0x000a, 0x1fd4: 0x000a, 0x1fd5: 0x000a, 0x1fd6: 0x000a, 0x1fd7: 0x000a,
- 0x1fd8: 0x000a, 0x1fd9: 0x000a, 0x1fda: 0x000a, 0x1fdb: 0x000a, 0x1fdc: 0x000a, 0x1fdd: 0x000a,
- 0x1fde: 0x000a, 0x1fdf: 0x000a, 0x1fe0: 0x000a, 0x1fe1: 0x000a,
- // Block 0x80, offset 0x2000
- 0x2008: 0x000a,
- // Block 0x81, offset 0x2040
- 0x2042: 0x000c,
- 0x2046: 0x000c, 0x204b: 0x000c,
- 0x2065: 0x000c, 0x2066: 0x000c, 0x2068: 0x000a, 0x2069: 0x000a,
- 0x206a: 0x000a, 0x206b: 0x000a,
- 0x2078: 0x0004, 0x2079: 0x0004,
- // Block 0x82, offset 0x2080
- 0x20b4: 0x000a, 0x20b5: 0x000a,
- 0x20b6: 0x000a, 0x20b7: 0x000a,
- // Block 0x83, offset 0x20c0
- 0x20c4: 0x000c, 0x20c5: 0x000c,
- 0x20e0: 0x000c, 0x20e1: 0x000c, 0x20e2: 0x000c, 0x20e3: 0x000c,
- 0x20e4: 0x000c, 0x20e5: 0x000c, 0x20e6: 0x000c, 0x20e7: 0x000c, 0x20e8: 0x000c, 0x20e9: 0x000c,
- 0x20ea: 0x000c, 0x20eb: 0x000c, 0x20ec: 0x000c, 0x20ed: 0x000c, 0x20ee: 0x000c, 0x20ef: 0x000c,
- 0x20f0: 0x000c, 0x20f1: 0x000c,
- 0x20ff: 0x000c,
- // Block 0x84, offset 0x2100
- 0x2126: 0x000c, 0x2127: 0x000c, 0x2128: 0x000c, 0x2129: 0x000c,
- 0x212a: 0x000c, 0x212b: 0x000c, 0x212c: 0x000c, 0x212d: 0x000c,
- // Block 0x85, offset 0x2140
- 0x2147: 0x000c, 0x2148: 0x000c, 0x2149: 0x000c, 0x214a: 0x000c, 0x214b: 0x000c,
- 0x214c: 0x000c, 0x214d: 0x000c, 0x214e: 0x000c, 0x214f: 0x000c, 0x2150: 0x000c, 0x2151: 0x000c,
- // Block 0x86, offset 0x2180
- 0x2180: 0x000c, 0x2181: 0x000c, 0x2182: 0x000c,
- 0x21b3: 0x000c,
- 0x21b6: 0x000c, 0x21b7: 0x000c, 0x21b8: 0x000c, 0x21b9: 0x000c,
- 0x21bc: 0x000c,
- // Block 0x87, offset 0x21c0
- 0x21e5: 0x000c,
- // Block 0x88, offset 0x2200
- 0x2229: 0x000c,
- 0x222a: 0x000c, 0x222b: 0x000c, 0x222c: 0x000c, 0x222d: 0x000c, 0x222e: 0x000c,
- 0x2231: 0x000c, 0x2232: 0x000c, 0x2235: 0x000c,
- 0x2236: 0x000c,
- // Block 0x89, offset 0x2240
- 0x2243: 0x000c,
- 0x224c: 0x000c,
- 0x227c: 0x000c,
- // Block 0x8a, offset 0x2280
- 0x22b0: 0x000c, 0x22b2: 0x000c, 0x22b3: 0x000c, 0x22b4: 0x000c,
- 0x22b7: 0x000c, 0x22b8: 0x000c,
- 0x22be: 0x000c, 0x22bf: 0x000c,
- // Block 0x8b, offset 0x22c0
- 0x22c1: 0x000c,
- 0x22ec: 0x000c, 0x22ed: 0x000c,
- 0x22f6: 0x000c,
- // Block 0x8c, offset 0x2300
- 0x2325: 0x000c, 0x2328: 0x000c,
- 0x232d: 0x000c,
- // Block 0x8d, offset 0x2340
- 0x235d: 0x0001,
- 0x235e: 0x000c, 0x235f: 0x0001, 0x2360: 0x0001, 0x2361: 0x0001, 0x2362: 0x0001, 0x2363: 0x0001,
- 0x2364: 0x0001, 0x2365: 0x0001, 0x2366: 0x0001, 0x2367: 0x0001, 0x2368: 0x0001, 0x2369: 0x0003,
- 0x236a: 0x0001, 0x236b: 0x0001, 0x236c: 0x0001, 0x236d: 0x0001, 0x236e: 0x0001, 0x236f: 0x0001,
- 0x2370: 0x0001, 0x2371: 0x0001, 0x2372: 0x0001, 0x2373: 0x0001, 0x2374: 0x0001, 0x2375: 0x0001,
- 0x2376: 0x0001, 0x2377: 0x0001, 0x2378: 0x0001, 0x2379: 0x0001, 0x237a: 0x0001, 0x237b: 0x0001,
- 0x237c: 0x0001, 0x237d: 0x0001, 0x237e: 0x0001, 0x237f: 0x0001,
- // Block 0x8e, offset 0x2380
- 0x2380: 0x0001, 0x2381: 0x0001, 0x2382: 0x0001, 0x2383: 0x0001, 0x2384: 0x0001, 0x2385: 0x0001,
- 0x2386: 0x0001, 0x2387: 0x0001, 0x2388: 0x0001, 0x2389: 0x0001, 0x238a: 0x0001, 0x238b: 0x0001,
- 0x238c: 0x0001, 0x238d: 0x0001, 0x238e: 0x0001, 0x238f: 0x0001, 0x2390: 0x000d, 0x2391: 0x000d,
- 0x2392: 0x000d, 0x2393: 0x000d, 0x2394: 0x000d, 0x2395: 0x000d, 0x2396: 0x000d, 0x2397: 0x000d,
- 0x2398: 0x000d, 0x2399: 0x000d, 0x239a: 0x000d, 0x239b: 0x000d, 0x239c: 0x000d, 0x239d: 0x000d,
- 0x239e: 0x000d, 0x239f: 0x000d, 0x23a0: 0x000d, 0x23a1: 0x000d, 0x23a2: 0x000d, 0x23a3: 0x000d,
- 0x23a4: 0x000d, 0x23a5: 0x000d, 0x23a6: 0x000d, 0x23a7: 0x000d, 0x23a8: 0x000d, 0x23a9: 0x000d,
- 0x23aa: 0x000d, 0x23ab: 0x000d, 0x23ac: 0x000d, 0x23ad: 0x000d, 0x23ae: 0x000d, 0x23af: 0x000d,
- 0x23b0: 0x000d, 0x23b1: 0x000d, 0x23b2: 0x000d, 0x23b3: 0x000d, 0x23b4: 0x000d, 0x23b5: 0x000d,
- 0x23b6: 0x000d, 0x23b7: 0x000d, 0x23b8: 0x000d, 0x23b9: 0x000d, 0x23ba: 0x000d, 0x23bb: 0x000d,
- 0x23bc: 0x000d, 0x23bd: 0x000d, 0x23be: 0x000d, 0x23bf: 0x000d,
- // Block 0x8f, offset 0x23c0
- 0x23c0: 0x000d, 0x23c1: 0x000d, 0x23c2: 0x000d, 0x23c3: 0x000d, 0x23c4: 0x000d, 0x23c5: 0x000d,
- 0x23c6: 0x000d, 0x23c7: 0x000d, 0x23c8: 0x000d, 0x23c9: 0x000d, 0x23ca: 0x000d, 0x23cb: 0x000d,
- 0x23cc: 0x000d, 0x23cd: 0x000d, 0x23ce: 0x000d, 0x23cf: 0x000d, 0x23d0: 0x000d, 0x23d1: 0x000d,
- 0x23d2: 0x000d, 0x23d3: 0x000d, 0x23d4: 0x000d, 0x23d5: 0x000d, 0x23d6: 0x000d, 0x23d7: 0x000d,
- 0x23d8: 0x000d, 0x23d9: 0x000d, 0x23da: 0x000d, 0x23db: 0x000d, 0x23dc: 0x000d, 0x23dd: 0x000d,
- 0x23de: 0x000d, 0x23df: 0x000d, 0x23e0: 0x000d, 0x23e1: 0x000d, 0x23e2: 0x000d, 0x23e3: 0x000d,
- 0x23e4: 0x000d, 0x23e5: 0x000d, 0x23e6: 0x000d, 0x23e7: 0x000d, 0x23e8: 0x000d, 0x23e9: 0x000d,
- 0x23ea: 0x000d, 0x23eb: 0x000d, 0x23ec: 0x000d, 0x23ed: 0x000d, 0x23ee: 0x000d, 0x23ef: 0x000d,
- 0x23f0: 0x000d, 0x23f1: 0x000d, 0x23f2: 0x000d, 0x23f3: 0x000d, 0x23f4: 0x000d, 0x23f5: 0x000d,
- 0x23f6: 0x000d, 0x23f7: 0x000d, 0x23f8: 0x000d, 0x23f9: 0x000d, 0x23fa: 0x000d, 0x23fb: 0x000d,
- 0x23fc: 0x000d, 0x23fd: 0x000d, 0x23fe: 0x000a, 0x23ff: 0x000a,
- // Block 0x90, offset 0x2400
- 0x2400: 0x000d, 0x2401: 0x000d, 0x2402: 0x000d, 0x2403: 0x000d, 0x2404: 0x000d, 0x2405: 0x000d,
- 0x2406: 0x000d, 0x2407: 0x000d, 0x2408: 0x000d, 0x2409: 0x000d, 0x240a: 0x000d, 0x240b: 0x000d,
- 0x240c: 0x000d, 0x240d: 0x000d, 0x240e: 0x000d, 0x240f: 0x000d, 0x2410: 0x000b, 0x2411: 0x000b,
- 0x2412: 0x000b, 0x2413: 0x000b, 0x2414: 0x000b, 0x2415: 0x000b, 0x2416: 0x000b, 0x2417: 0x000b,
- 0x2418: 0x000b, 0x2419: 0x000b, 0x241a: 0x000b, 0x241b: 0x000b, 0x241c: 0x000b, 0x241d: 0x000b,
- 0x241e: 0x000b, 0x241f: 0x000b, 0x2420: 0x000b, 0x2421: 0x000b, 0x2422: 0x000b, 0x2423: 0x000b,
- 0x2424: 0x000b, 0x2425: 0x000b, 0x2426: 0x000b, 0x2427: 0x000b, 0x2428: 0x000b, 0x2429: 0x000b,
- 0x242a: 0x000b, 0x242b: 0x000b, 0x242c: 0x000b, 0x242d: 0x000b, 0x242e: 0x000b, 0x242f: 0x000b,
- 0x2430: 0x000d, 0x2431: 0x000d, 0x2432: 0x000d, 0x2433: 0x000d, 0x2434: 0x000d, 0x2435: 0x000d,
- 0x2436: 0x000d, 0x2437: 0x000d, 0x2438: 0x000d, 0x2439: 0x000d, 0x243a: 0x000d, 0x243b: 0x000d,
- 0x243c: 0x000d, 0x243d: 0x000a, 0x243e: 0x000d, 0x243f: 0x000d,
- // Block 0x91, offset 0x2440
- 0x2440: 0x000c, 0x2441: 0x000c, 0x2442: 0x000c, 0x2443: 0x000c, 0x2444: 0x000c, 0x2445: 0x000c,
- 0x2446: 0x000c, 0x2447: 0x000c, 0x2448: 0x000c, 0x2449: 0x000c, 0x244a: 0x000c, 0x244b: 0x000c,
- 0x244c: 0x000c, 0x244d: 0x000c, 0x244e: 0x000c, 0x244f: 0x000c, 0x2450: 0x000a, 0x2451: 0x000a,
- 0x2452: 0x000a, 0x2453: 0x000a, 0x2454: 0x000a, 0x2455: 0x000a, 0x2456: 0x000a, 0x2457: 0x000a,
- 0x2458: 0x000a, 0x2459: 0x000a,
- 0x2460: 0x000c, 0x2461: 0x000c, 0x2462: 0x000c, 0x2463: 0x000c,
- 0x2464: 0x000c, 0x2465: 0x000c, 0x2466: 0x000c, 0x2467: 0x000c, 0x2468: 0x000c, 0x2469: 0x000c,
- 0x246a: 0x000c, 0x246b: 0x000c, 0x246c: 0x000c, 0x246d: 0x000c, 0x246e: 0x000c, 0x246f: 0x000c,
- 0x2470: 0x000a, 0x2471: 0x000a, 0x2472: 0x000a, 0x2473: 0x000a, 0x2474: 0x000a, 0x2475: 0x000a,
- 0x2476: 0x000a, 0x2477: 0x000a, 0x2478: 0x000a, 0x2479: 0x000a, 0x247a: 0x000a, 0x247b: 0x000a,
- 0x247c: 0x000a, 0x247d: 0x000a, 0x247e: 0x000a, 0x247f: 0x000a,
- // Block 0x92, offset 0x2480
- 0x2480: 0x000a, 0x2481: 0x000a, 0x2482: 0x000a, 0x2483: 0x000a, 0x2484: 0x000a, 0x2485: 0x000a,
- 0x2486: 0x000a, 0x2487: 0x000a, 0x2488: 0x000a, 0x2489: 0x000a, 0x248a: 0x000a, 0x248b: 0x000a,
- 0x248c: 0x000a, 0x248d: 0x000a, 0x248e: 0x000a, 0x248f: 0x000a, 0x2490: 0x0006, 0x2491: 0x000a,
- 0x2492: 0x0006, 0x2494: 0x000a, 0x2495: 0x0006, 0x2496: 0x000a, 0x2497: 0x000a,
- 0x2498: 0x000a, 0x2499: 0x009a, 0x249a: 0x008a, 0x249b: 0x007a, 0x249c: 0x006a, 0x249d: 0x009a,
- 0x249e: 0x008a, 0x249f: 0x0004, 0x24a0: 0x000a, 0x24a1: 0x000a, 0x24a2: 0x0003, 0x24a3: 0x0003,
- 0x24a4: 0x000a, 0x24a5: 0x000a, 0x24a6: 0x000a, 0x24a8: 0x000a, 0x24a9: 0x0004,
- 0x24aa: 0x0004, 0x24ab: 0x000a,
- 0x24b0: 0x000d, 0x24b1: 0x000d, 0x24b2: 0x000d, 0x24b3: 0x000d, 0x24b4: 0x000d, 0x24b5: 0x000d,
- 0x24b6: 0x000d, 0x24b7: 0x000d, 0x24b8: 0x000d, 0x24b9: 0x000d, 0x24ba: 0x000d, 0x24bb: 0x000d,
- 0x24bc: 0x000d, 0x24bd: 0x000d, 0x24be: 0x000d, 0x24bf: 0x000d,
- // Block 0x93, offset 0x24c0
- 0x24c0: 0x000d, 0x24c1: 0x000d, 0x24c2: 0x000d, 0x24c3: 0x000d, 0x24c4: 0x000d, 0x24c5: 0x000d,
- 0x24c6: 0x000d, 0x24c7: 0x000d, 0x24c8: 0x000d, 0x24c9: 0x000d, 0x24ca: 0x000d, 0x24cb: 0x000d,
- 0x24cc: 0x000d, 0x24cd: 0x000d, 0x24ce: 0x000d, 0x24cf: 0x000d, 0x24d0: 0x000d, 0x24d1: 0x000d,
- 0x24d2: 0x000d, 0x24d3: 0x000d, 0x24d4: 0x000d, 0x24d5: 0x000d, 0x24d6: 0x000d, 0x24d7: 0x000d,
- 0x24d8: 0x000d, 0x24d9: 0x000d, 0x24da: 0x000d, 0x24db: 0x000d, 0x24dc: 0x000d, 0x24dd: 0x000d,
- 0x24de: 0x000d, 0x24df: 0x000d, 0x24e0: 0x000d, 0x24e1: 0x000d, 0x24e2: 0x000d, 0x24e3: 0x000d,
- 0x24e4: 0x000d, 0x24e5: 0x000d, 0x24e6: 0x000d, 0x24e7: 0x000d, 0x24e8: 0x000d, 0x24e9: 0x000d,
- 0x24ea: 0x000d, 0x24eb: 0x000d, 0x24ec: 0x000d, 0x24ed: 0x000d, 0x24ee: 0x000d, 0x24ef: 0x000d,
- 0x24f0: 0x000d, 0x24f1: 0x000d, 0x24f2: 0x000d, 0x24f3: 0x000d, 0x24f4: 0x000d, 0x24f5: 0x000d,
- 0x24f6: 0x000d, 0x24f7: 0x000d, 0x24f8: 0x000d, 0x24f9: 0x000d, 0x24fa: 0x000d, 0x24fb: 0x000d,
- 0x24fc: 0x000d, 0x24fd: 0x000d, 0x24fe: 0x000d, 0x24ff: 0x000b,
- // Block 0x94, offset 0x2500
- 0x2501: 0x000a, 0x2502: 0x000a, 0x2503: 0x0004, 0x2504: 0x0004, 0x2505: 0x0004,
- 0x2506: 0x000a, 0x2507: 0x000a, 0x2508: 0x003a, 0x2509: 0x002a, 0x250a: 0x000a, 0x250b: 0x0003,
- 0x250c: 0x0006, 0x250d: 0x0003, 0x250e: 0x0006, 0x250f: 0x0006, 0x2510: 0x0002, 0x2511: 0x0002,
- 0x2512: 0x0002, 0x2513: 0x0002, 0x2514: 0x0002, 0x2515: 0x0002, 0x2516: 0x0002, 0x2517: 0x0002,
- 0x2518: 0x0002, 0x2519: 0x0002, 0x251a: 0x0006, 0x251b: 0x000a, 0x251c: 0x000a, 0x251d: 0x000a,
- 0x251e: 0x000a, 0x251f: 0x000a, 0x2520: 0x000a,
- 0x253b: 0x005a,
- 0x253c: 0x000a, 0x253d: 0x004a, 0x253e: 0x000a, 0x253f: 0x000a,
- // Block 0x95, offset 0x2540
- 0x2540: 0x000a,
- 0x255b: 0x005a, 0x255c: 0x000a, 0x255d: 0x004a,
- 0x255e: 0x000a, 0x255f: 0x00fa, 0x2560: 0x00ea, 0x2561: 0x000a, 0x2562: 0x003a, 0x2563: 0x002a,
- 0x2564: 0x000a, 0x2565: 0x000a,
- // Block 0x96, offset 0x2580
- 0x25a0: 0x0004, 0x25a1: 0x0004, 0x25a2: 0x000a, 0x25a3: 0x000a,
- 0x25a4: 0x000a, 0x25a5: 0x0004, 0x25a6: 0x0004, 0x25a8: 0x000a, 0x25a9: 0x000a,
- 0x25aa: 0x000a, 0x25ab: 0x000a, 0x25ac: 0x000a, 0x25ad: 0x000a, 0x25ae: 0x000a,
- 0x25b0: 0x000b, 0x25b1: 0x000b, 0x25b2: 0x000b, 0x25b3: 0x000b, 0x25b4: 0x000b, 0x25b5: 0x000b,
- 0x25b6: 0x000b, 0x25b7: 0x000b, 0x25b8: 0x000b, 0x25b9: 0x000a, 0x25ba: 0x000a, 0x25bb: 0x000a,
- 0x25bc: 0x000a, 0x25bd: 0x000a, 0x25be: 0x000b, 0x25bf: 0x000b,
- // Block 0x97, offset 0x25c0
- 0x25c1: 0x000a,
- // Block 0x98, offset 0x2600
- 0x2600: 0x000a, 0x2601: 0x000a, 0x2602: 0x000a, 0x2603: 0x000a, 0x2604: 0x000a, 0x2605: 0x000a,
- 0x2606: 0x000a, 0x2607: 0x000a, 0x2608: 0x000a, 0x2609: 0x000a, 0x260a: 0x000a, 0x260b: 0x000a,
- 0x260c: 0x000a, 0x2610: 0x000a, 0x2611: 0x000a,
- 0x2612: 0x000a, 0x2613: 0x000a, 0x2614: 0x000a, 0x2615: 0x000a, 0x2616: 0x000a, 0x2617: 0x000a,
- 0x2618: 0x000a, 0x2619: 0x000a, 0x261a: 0x000a, 0x261b: 0x000a,
- 0x2620: 0x000a,
- // Block 0x99, offset 0x2640
- 0x267d: 0x000c,
- // Block 0x9a, offset 0x2680
- 0x26a0: 0x000c, 0x26a1: 0x0002, 0x26a2: 0x0002, 0x26a3: 0x0002,
- 0x26a4: 0x0002, 0x26a5: 0x0002, 0x26a6: 0x0002, 0x26a7: 0x0002, 0x26a8: 0x0002, 0x26a9: 0x0002,
- 0x26aa: 0x0002, 0x26ab: 0x0002, 0x26ac: 0x0002, 0x26ad: 0x0002, 0x26ae: 0x0002, 0x26af: 0x0002,
- 0x26b0: 0x0002, 0x26b1: 0x0002, 0x26b2: 0x0002, 0x26b3: 0x0002, 0x26b4: 0x0002, 0x26b5: 0x0002,
- 0x26b6: 0x0002, 0x26b7: 0x0002, 0x26b8: 0x0002, 0x26b9: 0x0002, 0x26ba: 0x0002, 0x26bb: 0x0002,
- // Block 0x9b, offset 0x26c0
- 0x26f6: 0x000c, 0x26f7: 0x000c, 0x26f8: 0x000c, 0x26f9: 0x000c, 0x26fa: 0x000c,
- // Block 0x9c, offset 0x2700
- 0x2700: 0x0001, 0x2701: 0x0001, 0x2702: 0x0001, 0x2703: 0x0001, 0x2704: 0x0001, 0x2705: 0x0001,
- 0x2706: 0x0001, 0x2707: 0x0001, 0x2708: 0x0001, 0x2709: 0x0001, 0x270a: 0x0001, 0x270b: 0x0001,
- 0x270c: 0x0001, 0x270d: 0x0001, 0x270e: 0x0001, 0x270f: 0x0001, 0x2710: 0x0001, 0x2711: 0x0001,
- 0x2712: 0x0001, 0x2713: 0x0001, 0x2714: 0x0001, 0x2715: 0x0001, 0x2716: 0x0001, 0x2717: 0x0001,
- 0x2718: 0x0001, 0x2719: 0x0001, 0x271a: 0x0001, 0x271b: 0x0001, 0x271c: 0x0001, 0x271d: 0x0001,
- 0x271e: 0x0001, 0x271f: 0x0001, 0x2720: 0x0001, 0x2721: 0x0001, 0x2722: 0x0001, 0x2723: 0x0001,
- 0x2724: 0x0001, 0x2725: 0x0001, 0x2726: 0x0001, 0x2727: 0x0001, 0x2728: 0x0001, 0x2729: 0x0001,
- 0x272a: 0x0001, 0x272b: 0x0001, 0x272c: 0x0001, 0x272d: 0x0001, 0x272e: 0x0001, 0x272f: 0x0001,
- 0x2730: 0x0001, 0x2731: 0x0001, 0x2732: 0x0001, 0x2733: 0x0001, 0x2734: 0x0001, 0x2735: 0x0001,
- 0x2736: 0x0001, 0x2737: 0x0001, 0x2738: 0x0001, 0x2739: 0x0001, 0x273a: 0x0001, 0x273b: 0x0001,
- 0x273c: 0x0001, 0x273d: 0x0001, 0x273e: 0x0001, 0x273f: 0x0001,
- // Block 0x9d, offset 0x2740
- 0x2740: 0x0001, 0x2741: 0x0001, 0x2742: 0x0001, 0x2743: 0x0001, 0x2744: 0x0001, 0x2745: 0x0001,
- 0x2746: 0x0001, 0x2747: 0x0001, 0x2748: 0x0001, 0x2749: 0x0001, 0x274a: 0x0001, 0x274b: 0x0001,
- 0x274c: 0x0001, 0x274d: 0x0001, 0x274e: 0x0001, 0x274f: 0x0001, 0x2750: 0x0001, 0x2751: 0x0001,
- 0x2752: 0x0001, 0x2753: 0x0001, 0x2754: 0x0001, 0x2755: 0x0001, 0x2756: 0x0001, 0x2757: 0x0001,
- 0x2758: 0x0001, 0x2759: 0x0001, 0x275a: 0x0001, 0x275b: 0x0001, 0x275c: 0x0001, 0x275d: 0x0001,
- 0x275e: 0x0001, 0x275f: 0x000a, 0x2760: 0x0001, 0x2761: 0x0001, 0x2762: 0x0001, 0x2763: 0x0001,
- 0x2764: 0x0001, 0x2765: 0x0001, 0x2766: 0x0001, 0x2767: 0x0001, 0x2768: 0x0001, 0x2769: 0x0001,
- 0x276a: 0x0001, 0x276b: 0x0001, 0x276c: 0x0001, 0x276d: 0x0001, 0x276e: 0x0001, 0x276f: 0x0001,
- 0x2770: 0x0001, 0x2771: 0x0001, 0x2772: 0x0001, 0x2773: 0x0001, 0x2774: 0x0001, 0x2775: 0x0001,
- 0x2776: 0x0001, 0x2777: 0x0001, 0x2778: 0x0001, 0x2779: 0x0001, 0x277a: 0x0001, 0x277b: 0x0001,
- 0x277c: 0x0001, 0x277d: 0x0001, 0x277e: 0x0001, 0x277f: 0x0001,
- // Block 0x9e, offset 0x2780
- 0x2780: 0x0001, 0x2781: 0x000c, 0x2782: 0x000c, 0x2783: 0x000c, 0x2784: 0x0001, 0x2785: 0x000c,
- 0x2786: 0x000c, 0x2787: 0x0001, 0x2788: 0x0001, 0x2789: 0x0001, 0x278a: 0x0001, 0x278b: 0x0001,
- 0x278c: 0x000c, 0x278d: 0x000c, 0x278e: 0x000c, 0x278f: 0x000c, 0x2790: 0x0001, 0x2791: 0x0001,
- 0x2792: 0x0001, 0x2793: 0x0001, 0x2794: 0x0001, 0x2795: 0x0001, 0x2796: 0x0001, 0x2797: 0x0001,
- 0x2798: 0x0001, 0x2799: 0x0001, 0x279a: 0x0001, 0x279b: 0x0001, 0x279c: 0x0001, 0x279d: 0x0001,
- 0x279e: 0x0001, 0x279f: 0x0001, 0x27a0: 0x0001, 0x27a1: 0x0001, 0x27a2: 0x0001, 0x27a3: 0x0001,
- 0x27a4: 0x0001, 0x27a5: 0x0001, 0x27a6: 0x0001, 0x27a7: 0x0001, 0x27a8: 0x0001, 0x27a9: 0x0001,
- 0x27aa: 0x0001, 0x27ab: 0x0001, 0x27ac: 0x0001, 0x27ad: 0x0001, 0x27ae: 0x0001, 0x27af: 0x0001,
- 0x27b0: 0x0001, 0x27b1: 0x0001, 0x27b2: 0x0001, 0x27b3: 0x0001, 0x27b4: 0x0001, 0x27b5: 0x0001,
- 0x27b6: 0x0001, 0x27b7: 0x0001, 0x27b8: 0x000c, 0x27b9: 0x000c, 0x27ba: 0x000c, 0x27bb: 0x0001,
- 0x27bc: 0x0001, 0x27bd: 0x0001, 0x27be: 0x0001, 0x27bf: 0x000c,
- // Block 0x9f, offset 0x27c0
- 0x27c0: 0x0001, 0x27c1: 0x0001, 0x27c2: 0x0001, 0x27c3: 0x0001, 0x27c4: 0x0001, 0x27c5: 0x0001,
- 0x27c6: 0x0001, 0x27c7: 0x0001, 0x27c8: 0x0001, 0x27c9: 0x0001, 0x27ca: 0x0001, 0x27cb: 0x0001,
- 0x27cc: 0x0001, 0x27cd: 0x0001, 0x27ce: 0x0001, 0x27cf: 0x0001, 0x27d0: 0x0001, 0x27d1: 0x0001,
- 0x27d2: 0x0001, 0x27d3: 0x0001, 0x27d4: 0x0001, 0x27d5: 0x0001, 0x27d6: 0x0001, 0x27d7: 0x0001,
- 0x27d8: 0x0001, 0x27d9: 0x0001, 0x27da: 0x0001, 0x27db: 0x0001, 0x27dc: 0x0001, 0x27dd: 0x0001,
- 0x27de: 0x0001, 0x27df: 0x0001, 0x27e0: 0x0001, 0x27e1: 0x0001, 0x27e2: 0x0001, 0x27e3: 0x0001,
- 0x27e4: 0x0001, 0x27e5: 0x000c, 0x27e6: 0x000c, 0x27e7: 0x0001, 0x27e8: 0x0001, 0x27e9: 0x0001,
- 0x27ea: 0x0001, 0x27eb: 0x0001, 0x27ec: 0x0001, 0x27ed: 0x0001, 0x27ee: 0x0001, 0x27ef: 0x0001,
- 0x27f0: 0x0001, 0x27f1: 0x0001, 0x27f2: 0x0001, 0x27f3: 0x0001, 0x27f4: 0x0001, 0x27f5: 0x0001,
- 0x27f6: 0x0001, 0x27f7: 0x0001, 0x27f8: 0x0001, 0x27f9: 0x0001, 0x27fa: 0x0001, 0x27fb: 0x0001,
- 0x27fc: 0x0001, 0x27fd: 0x0001, 0x27fe: 0x0001, 0x27ff: 0x0001,
- // Block 0xa0, offset 0x2800
- 0x2800: 0x0001, 0x2801: 0x0001, 0x2802: 0x0001, 0x2803: 0x0001, 0x2804: 0x0001, 0x2805: 0x0001,
- 0x2806: 0x0001, 0x2807: 0x0001, 0x2808: 0x0001, 0x2809: 0x0001, 0x280a: 0x0001, 0x280b: 0x0001,
- 0x280c: 0x0001, 0x280d: 0x0001, 0x280e: 0x0001, 0x280f: 0x0001, 0x2810: 0x0001, 0x2811: 0x0001,
- 0x2812: 0x0001, 0x2813: 0x0001, 0x2814: 0x0001, 0x2815: 0x0001, 0x2816: 0x0001, 0x2817: 0x0001,
- 0x2818: 0x0001, 0x2819: 0x0001, 0x281a: 0x0001, 0x281b: 0x0001, 0x281c: 0x0001, 0x281d: 0x0001,
- 0x281e: 0x0001, 0x281f: 0x0001, 0x2820: 0x0001, 0x2821: 0x0001, 0x2822: 0x0001, 0x2823: 0x0001,
- 0x2824: 0x0001, 0x2825: 0x0001, 0x2826: 0x0001, 0x2827: 0x0001, 0x2828: 0x0001, 0x2829: 0x0001,
- 0x282a: 0x0001, 0x282b: 0x0001, 0x282c: 0x0001, 0x282d: 0x0001, 0x282e: 0x0001, 0x282f: 0x0001,
- 0x2830: 0x0001, 0x2831: 0x0001, 0x2832: 0x0001, 0x2833: 0x0001, 0x2834: 0x0001, 0x2835: 0x0001,
- 0x2836: 0x0001, 0x2837: 0x0001, 0x2838: 0x0001, 0x2839: 0x000a, 0x283a: 0x000a, 0x283b: 0x000a,
- 0x283c: 0x000a, 0x283d: 0x000a, 0x283e: 0x000a, 0x283f: 0x000a,
- // Block 0xa1, offset 0x2840
- 0x2840: 0x000d, 0x2841: 0x000d, 0x2842: 0x000d, 0x2843: 0x000d, 0x2844: 0x000d, 0x2845: 0x000d,
- 0x2846: 0x000d, 0x2847: 0x000d, 0x2848: 0x000d, 0x2849: 0x000d, 0x284a: 0x000d, 0x284b: 0x000d,
- 0x284c: 0x000d, 0x284d: 0x000d, 0x284e: 0x000d, 0x284f: 0x000d, 0x2850: 0x000d, 0x2851: 0x000d,
- 0x2852: 0x000d, 0x2853: 0x000d, 0x2854: 0x000d, 0x2855: 0x000d, 0x2856: 0x000d, 0x2857: 0x000d,
- 0x2858: 0x000d, 0x2859: 0x000d, 0x285a: 0x000d, 0x285b: 0x000d, 0x285c: 0x000d, 0x285d: 0x000d,
- 0x285e: 0x000d, 0x285f: 0x000d, 0x2860: 0x000d, 0x2861: 0x000d, 0x2862: 0x000d, 0x2863: 0x000d,
- 0x2864: 0x000c, 0x2865: 0x000c, 0x2866: 0x000c, 0x2867: 0x000c, 0x2868: 0x000d, 0x2869: 0x000d,
- 0x286a: 0x000d, 0x286b: 0x000d, 0x286c: 0x000d, 0x286d: 0x000d, 0x286e: 0x000d, 0x286f: 0x000d,
- 0x2870: 0x0005, 0x2871: 0x0005, 0x2872: 0x0005, 0x2873: 0x0005, 0x2874: 0x0005, 0x2875: 0x0005,
- 0x2876: 0x0005, 0x2877: 0x0005, 0x2878: 0x0005, 0x2879: 0x0005, 0x287a: 0x000d, 0x287b: 0x000d,
- 0x287c: 0x000d, 0x287d: 0x000d, 0x287e: 0x000d, 0x287f: 0x000d,
- // Block 0xa2, offset 0x2880
- 0x2880: 0x0001, 0x2881: 0x0001, 0x2882: 0x0001, 0x2883: 0x0001, 0x2884: 0x0001, 0x2885: 0x0001,
- 0x2886: 0x0001, 0x2887: 0x0001, 0x2888: 0x0001, 0x2889: 0x0001, 0x288a: 0x0001, 0x288b: 0x0001,
- 0x288c: 0x0001, 0x288d: 0x0001, 0x288e: 0x0001, 0x288f: 0x0001, 0x2890: 0x0001, 0x2891: 0x0001,
- 0x2892: 0x0001, 0x2893: 0x0001, 0x2894: 0x0001, 0x2895: 0x0001, 0x2896: 0x0001, 0x2897: 0x0001,
- 0x2898: 0x0001, 0x2899: 0x0001, 0x289a: 0x0001, 0x289b: 0x0001, 0x289c: 0x0001, 0x289d: 0x0001,
- 0x289e: 0x0001, 0x289f: 0x0001, 0x28a0: 0x0005, 0x28a1: 0x0005, 0x28a2: 0x0005, 0x28a3: 0x0005,
- 0x28a4: 0x0005, 0x28a5: 0x0005, 0x28a6: 0x0005, 0x28a7: 0x0005, 0x28a8: 0x0005, 0x28a9: 0x0005,
- 0x28aa: 0x0005, 0x28ab: 0x0005, 0x28ac: 0x0005, 0x28ad: 0x0005, 0x28ae: 0x0005, 0x28af: 0x0005,
- 0x28b0: 0x0005, 0x28b1: 0x0005, 0x28b2: 0x0005, 0x28b3: 0x0005, 0x28b4: 0x0005, 0x28b5: 0x0005,
- 0x28b6: 0x0005, 0x28b7: 0x0005, 0x28b8: 0x0005, 0x28b9: 0x0005, 0x28ba: 0x0005, 0x28bb: 0x0005,
- 0x28bc: 0x0005, 0x28bd: 0x0005, 0x28be: 0x0005, 0x28bf: 0x0001,
- // Block 0xa3, offset 0x28c0
- 0x28c0: 0x0001, 0x28c1: 0x0001, 0x28c2: 0x0001, 0x28c3: 0x0001, 0x28c4: 0x0001, 0x28c5: 0x0001,
- 0x28c6: 0x0001, 0x28c7: 0x0001, 0x28c8: 0x0001, 0x28c9: 0x0001, 0x28ca: 0x0001, 0x28cb: 0x0001,
- 0x28cc: 0x0001, 0x28cd: 0x0001, 0x28ce: 0x0001, 0x28cf: 0x0001, 0x28d0: 0x0001, 0x28d1: 0x0001,
- 0x28d2: 0x0001, 0x28d3: 0x0001, 0x28d4: 0x0001, 0x28d5: 0x0001, 0x28d6: 0x0001, 0x28d7: 0x0001,
- 0x28d8: 0x0001, 0x28d9: 0x0001, 0x28da: 0x0001, 0x28db: 0x0001, 0x28dc: 0x0001, 0x28dd: 0x0001,
- 0x28de: 0x0001, 0x28df: 0x0001, 0x28e0: 0x0001, 0x28e1: 0x0001, 0x28e2: 0x0001, 0x28e3: 0x0001,
- 0x28e4: 0x0001, 0x28e5: 0x0001, 0x28e6: 0x0001, 0x28e7: 0x0001, 0x28e8: 0x0001, 0x28e9: 0x0001,
- 0x28ea: 0x0001, 0x28eb: 0x0001, 0x28ec: 0x0001, 0x28ed: 0x0001, 0x28ee: 0x0001, 0x28ef: 0x0001,
- 0x28f0: 0x000d, 0x28f1: 0x000d, 0x28f2: 0x000d, 0x28f3: 0x000d, 0x28f4: 0x000d, 0x28f5: 0x000d,
- 0x28f6: 0x000d, 0x28f7: 0x000d, 0x28f8: 0x000d, 0x28f9: 0x000d, 0x28fa: 0x000d, 0x28fb: 0x000d,
- 0x28fc: 0x000d, 0x28fd: 0x000d, 0x28fe: 0x000d, 0x28ff: 0x000d,
- // Block 0xa4, offset 0x2900
- 0x2900: 0x000d, 0x2901: 0x000d, 0x2902: 0x000d, 0x2903: 0x000d, 0x2904: 0x000d, 0x2905: 0x000d,
- 0x2906: 0x000c, 0x2907: 0x000c, 0x2908: 0x000c, 0x2909: 0x000c, 0x290a: 0x000c, 0x290b: 0x000c,
- 0x290c: 0x000c, 0x290d: 0x000c, 0x290e: 0x000c, 0x290f: 0x000c, 0x2910: 0x000c, 0x2911: 0x000d,
- 0x2912: 0x000d, 0x2913: 0x000d, 0x2914: 0x000d, 0x2915: 0x000d, 0x2916: 0x000d, 0x2917: 0x000d,
- 0x2918: 0x000d, 0x2919: 0x000d, 0x291a: 0x000d, 0x291b: 0x000d, 0x291c: 0x000d, 0x291d: 0x000d,
- 0x291e: 0x000d, 0x291f: 0x000d, 0x2920: 0x000d, 0x2921: 0x000d, 0x2922: 0x000d, 0x2923: 0x000d,
- 0x2924: 0x000d, 0x2925: 0x000d, 0x2926: 0x000d, 0x2927: 0x000d, 0x2928: 0x000d, 0x2929: 0x000d,
- 0x292a: 0x000d, 0x292b: 0x000d, 0x292c: 0x000d, 0x292d: 0x000d, 0x292e: 0x000d, 0x292f: 0x000d,
- 0x2930: 0x0001, 0x2931: 0x0001, 0x2932: 0x0001, 0x2933: 0x0001, 0x2934: 0x0001, 0x2935: 0x0001,
- 0x2936: 0x0001, 0x2937: 0x0001, 0x2938: 0x0001, 0x2939: 0x0001, 0x293a: 0x0001, 0x293b: 0x0001,
- 0x293c: 0x0001, 0x293d: 0x0001, 0x293e: 0x0001, 0x293f: 0x0001,
- // Block 0xa5, offset 0x2940
- 0x2941: 0x000c,
- 0x2978: 0x000c, 0x2979: 0x000c, 0x297a: 0x000c, 0x297b: 0x000c,
- 0x297c: 0x000c, 0x297d: 0x000c, 0x297e: 0x000c, 0x297f: 0x000c,
- // Block 0xa6, offset 0x2980
- 0x2980: 0x000c, 0x2981: 0x000c, 0x2982: 0x000c, 0x2983: 0x000c, 0x2984: 0x000c, 0x2985: 0x000c,
- 0x2986: 0x000c,
- 0x2992: 0x000a, 0x2993: 0x000a, 0x2994: 0x000a, 0x2995: 0x000a, 0x2996: 0x000a, 0x2997: 0x000a,
- 0x2998: 0x000a, 0x2999: 0x000a, 0x299a: 0x000a, 0x299b: 0x000a, 0x299c: 0x000a, 0x299d: 0x000a,
- 0x299e: 0x000a, 0x299f: 0x000a, 0x29a0: 0x000a, 0x29a1: 0x000a, 0x29a2: 0x000a, 0x29a3: 0x000a,
- 0x29a4: 0x000a, 0x29a5: 0x000a,
- 0x29bf: 0x000c,
- // Block 0xa7, offset 0x29c0
- 0x29c0: 0x000c, 0x29c1: 0x000c,
- 0x29f3: 0x000c, 0x29f4: 0x000c, 0x29f5: 0x000c,
- 0x29f6: 0x000c, 0x29f9: 0x000c, 0x29fa: 0x000c,
- // Block 0xa8, offset 0x2a00
- 0x2a00: 0x000c, 0x2a01: 0x000c, 0x2a02: 0x000c,
- 0x2a27: 0x000c, 0x2a28: 0x000c, 0x2a29: 0x000c,
- 0x2a2a: 0x000c, 0x2a2b: 0x000c, 0x2a2d: 0x000c, 0x2a2e: 0x000c, 0x2a2f: 0x000c,
- 0x2a30: 0x000c, 0x2a31: 0x000c, 0x2a32: 0x000c, 0x2a33: 0x000c, 0x2a34: 0x000c,
- // Block 0xa9, offset 0x2a40
- 0x2a73: 0x000c,
- // Block 0xaa, offset 0x2a80
- 0x2a80: 0x000c, 0x2a81: 0x000c,
- 0x2ab6: 0x000c, 0x2ab7: 0x000c, 0x2ab8: 0x000c, 0x2ab9: 0x000c, 0x2aba: 0x000c, 0x2abb: 0x000c,
- 0x2abc: 0x000c, 0x2abd: 0x000c, 0x2abe: 0x000c,
- // Block 0xab, offset 0x2ac0
- 0x2ac9: 0x000c, 0x2aca: 0x000c, 0x2acb: 0x000c,
- 0x2acc: 0x000c,
- // Block 0xac, offset 0x2b00
- 0x2b2f: 0x000c,
- 0x2b30: 0x000c, 0x2b31: 0x000c, 0x2b34: 0x000c,
- 0x2b36: 0x000c, 0x2b37: 0x000c,
- 0x2b3e: 0x000c,
- // Block 0xad, offset 0x2b40
- 0x2b5f: 0x000c, 0x2b63: 0x000c,
- 0x2b64: 0x000c, 0x2b65: 0x000c, 0x2b66: 0x000c, 0x2b67: 0x000c, 0x2b68: 0x000c, 0x2b69: 0x000c,
- 0x2b6a: 0x000c,
- // Block 0xae, offset 0x2b80
- 0x2b80: 0x000c,
- 0x2ba6: 0x000c, 0x2ba7: 0x000c, 0x2ba8: 0x000c, 0x2ba9: 0x000c,
- 0x2baa: 0x000c, 0x2bab: 0x000c, 0x2bac: 0x000c,
- 0x2bb0: 0x000c, 0x2bb1: 0x000c, 0x2bb2: 0x000c, 0x2bb3: 0x000c, 0x2bb4: 0x000c,
- // Block 0xaf, offset 0x2bc0
- 0x2bf8: 0x000c, 0x2bf9: 0x000c, 0x2bfa: 0x000c, 0x2bfb: 0x000c,
- 0x2bfc: 0x000c, 0x2bfd: 0x000c, 0x2bfe: 0x000c, 0x2bff: 0x000c,
- // Block 0xb0, offset 0x2c00
- 0x2c02: 0x000c, 0x2c03: 0x000c, 0x2c04: 0x000c,
- 0x2c06: 0x000c,
- 0x2c1e: 0x000c,
- // Block 0xb1, offset 0x2c40
- 0x2c73: 0x000c, 0x2c74: 0x000c, 0x2c75: 0x000c,
- 0x2c76: 0x000c, 0x2c77: 0x000c, 0x2c78: 0x000c, 0x2c7a: 0x000c,
- 0x2c7f: 0x000c,
- // Block 0xb2, offset 0x2c80
- 0x2c80: 0x000c, 0x2c82: 0x000c, 0x2c83: 0x000c,
- // Block 0xb3, offset 0x2cc0
- 0x2cf2: 0x000c, 0x2cf3: 0x000c, 0x2cf4: 0x000c, 0x2cf5: 0x000c,
- 0x2cfc: 0x000c, 0x2cfd: 0x000c, 0x2cff: 0x000c,
- // Block 0xb4, offset 0x2d00
- 0x2d00: 0x000c,
- 0x2d1c: 0x000c, 0x2d1d: 0x000c,
- // Block 0xb5, offset 0x2d40
- 0x2d73: 0x000c, 0x2d74: 0x000c, 0x2d75: 0x000c,
- 0x2d76: 0x000c, 0x2d77: 0x000c, 0x2d78: 0x000c, 0x2d79: 0x000c, 0x2d7a: 0x000c,
- 0x2d7d: 0x000c, 0x2d7f: 0x000c,
- // Block 0xb6, offset 0x2d80
- 0x2d80: 0x000c,
- 0x2da0: 0x000a, 0x2da1: 0x000a, 0x2da2: 0x000a, 0x2da3: 0x000a,
- 0x2da4: 0x000a, 0x2da5: 0x000a, 0x2da6: 0x000a, 0x2da7: 0x000a, 0x2da8: 0x000a, 0x2da9: 0x000a,
- 0x2daa: 0x000a, 0x2dab: 0x000a, 0x2dac: 0x000a,
- // Block 0xb7, offset 0x2dc0
- 0x2deb: 0x000c, 0x2ded: 0x000c,
- 0x2df0: 0x000c, 0x2df1: 0x000c, 0x2df2: 0x000c, 0x2df3: 0x000c, 0x2df4: 0x000c, 0x2df5: 0x000c,
- 0x2df7: 0x000c,
- // Block 0xb8, offset 0x2e00
- 0x2e1d: 0x000c,
- 0x2e1e: 0x000c, 0x2e1f: 0x000c, 0x2e22: 0x000c, 0x2e23: 0x000c,
- 0x2e24: 0x000c, 0x2e25: 0x000c, 0x2e27: 0x000c, 0x2e28: 0x000c, 0x2e29: 0x000c,
- 0x2e2a: 0x000c, 0x2e2b: 0x000c,
- // Block 0xb9, offset 0x2e40
- 0x2e6f: 0x000c,
- 0x2e70: 0x000c, 0x2e71: 0x000c, 0x2e72: 0x000c, 0x2e73: 0x000c, 0x2e74: 0x000c, 0x2e75: 0x000c,
- 0x2e76: 0x000c, 0x2e77: 0x000c, 0x2e79: 0x000c, 0x2e7a: 0x000c,
- // Block 0xba, offset 0x2e80
- 0x2e81: 0x000c, 0x2e82: 0x000c, 0x2e83: 0x000c, 0x2e84: 0x000c, 0x2e85: 0x000c,
- 0x2e86: 0x000c, 0x2e89: 0x000c, 0x2e8a: 0x000c,
- 0x2eb3: 0x000c, 0x2eb4: 0x000c, 0x2eb5: 0x000c,
- 0x2eb6: 0x000c, 0x2eb7: 0x000c, 0x2eb8: 0x000c, 0x2ebb: 0x000c,
- 0x2ebc: 0x000c, 0x2ebd: 0x000c, 0x2ebe: 0x000c,
- // Block 0xbb, offset 0x2ec0
- 0x2ec7: 0x000c,
- 0x2ed1: 0x000c,
- 0x2ed2: 0x000c, 0x2ed3: 0x000c, 0x2ed4: 0x000c, 0x2ed5: 0x000c, 0x2ed6: 0x000c,
- 0x2ed9: 0x000c, 0x2eda: 0x000c, 0x2edb: 0x000c,
- // Block 0xbc, offset 0x2f00
- 0x2f0a: 0x000c, 0x2f0b: 0x000c,
- 0x2f0c: 0x000c, 0x2f0d: 0x000c, 0x2f0e: 0x000c, 0x2f0f: 0x000c, 0x2f10: 0x000c, 0x2f11: 0x000c,
- 0x2f12: 0x000c, 0x2f13: 0x000c, 0x2f14: 0x000c, 0x2f15: 0x000c, 0x2f16: 0x000c,
- 0x2f18: 0x000c, 0x2f19: 0x000c,
- // Block 0xbd, offset 0x2f40
- 0x2f70: 0x000c, 0x2f71: 0x000c, 0x2f72: 0x000c, 0x2f73: 0x000c, 0x2f74: 0x000c, 0x2f75: 0x000c,
- 0x2f76: 0x000c, 0x2f78: 0x000c, 0x2f79: 0x000c, 0x2f7a: 0x000c, 0x2f7b: 0x000c,
- 0x2f7c: 0x000c, 0x2f7d: 0x000c,
- // Block 0xbe, offset 0x2f80
- 0x2f92: 0x000c, 0x2f93: 0x000c, 0x2f94: 0x000c, 0x2f95: 0x000c, 0x2f96: 0x000c, 0x2f97: 0x000c,
- 0x2f98: 0x000c, 0x2f99: 0x000c, 0x2f9a: 0x000c, 0x2f9b: 0x000c, 0x2f9c: 0x000c, 0x2f9d: 0x000c,
- 0x2f9e: 0x000c, 0x2f9f: 0x000c, 0x2fa0: 0x000c, 0x2fa1: 0x000c, 0x2fa2: 0x000c, 0x2fa3: 0x000c,
- 0x2fa4: 0x000c, 0x2fa5: 0x000c, 0x2fa6: 0x000c, 0x2fa7: 0x000c,
- 0x2faa: 0x000c, 0x2fab: 0x000c, 0x2fac: 0x000c, 0x2fad: 0x000c, 0x2fae: 0x000c, 0x2faf: 0x000c,
- 0x2fb0: 0x000c, 0x2fb2: 0x000c, 0x2fb3: 0x000c, 0x2fb5: 0x000c,
- 0x2fb6: 0x000c,
- // Block 0xbf, offset 0x2fc0
- 0x2ff1: 0x000c, 0x2ff2: 0x000c, 0x2ff3: 0x000c, 0x2ff4: 0x000c, 0x2ff5: 0x000c,
- 0x2ff6: 0x000c, 0x2ffa: 0x000c,
- 0x2ffc: 0x000c, 0x2ffd: 0x000c, 0x2fff: 0x000c,
- // Block 0xc0, offset 0x3000
- 0x3000: 0x000c, 0x3001: 0x000c, 0x3002: 0x000c, 0x3003: 0x000c, 0x3004: 0x000c, 0x3005: 0x000c,
- 0x3007: 0x000c,
- // Block 0xc1, offset 0x3040
- 0x3050: 0x000c, 0x3051: 0x000c,
- 0x3055: 0x000c, 0x3057: 0x000c,
- // Block 0xc2, offset 0x3080
- 0x30b3: 0x000c, 0x30b4: 0x000c,
- // Block 0xc3, offset 0x30c0
- 0x30f0: 0x000c, 0x30f1: 0x000c, 0x30f2: 0x000c, 0x30f3: 0x000c, 0x30f4: 0x000c,
- // Block 0xc4, offset 0x3100
- 0x3130: 0x000c, 0x3131: 0x000c, 0x3132: 0x000c, 0x3133: 0x000c, 0x3134: 0x000c, 0x3135: 0x000c,
- 0x3136: 0x000c,
- // Block 0xc5, offset 0x3140
- 0x314f: 0x000c, 0x3150: 0x000c, 0x3151: 0x000c,
- 0x3152: 0x000c,
- // Block 0xc6, offset 0x3180
- 0x319d: 0x000c,
- 0x319e: 0x000c, 0x31a0: 0x000b, 0x31a1: 0x000b, 0x31a2: 0x000b, 0x31a3: 0x000b,
- // Block 0xc7, offset 0x31c0
- 0x31e7: 0x000c, 0x31e8: 0x000c, 0x31e9: 0x000c,
- 0x31f3: 0x000b, 0x31f4: 0x000b, 0x31f5: 0x000b,
- 0x31f6: 0x000b, 0x31f7: 0x000b, 0x31f8: 0x000b, 0x31f9: 0x000b, 0x31fa: 0x000b, 0x31fb: 0x000c,
- 0x31fc: 0x000c, 0x31fd: 0x000c, 0x31fe: 0x000c, 0x31ff: 0x000c,
- // Block 0xc8, offset 0x3200
- 0x3200: 0x000c, 0x3201: 0x000c, 0x3202: 0x000c, 0x3205: 0x000c,
- 0x3206: 0x000c, 0x3207: 0x000c, 0x3208: 0x000c, 0x3209: 0x000c, 0x320a: 0x000c, 0x320b: 0x000c,
- 0x322a: 0x000c, 0x322b: 0x000c, 0x322c: 0x000c, 0x322d: 0x000c,
- // Block 0xc9, offset 0x3240
- 0x3240: 0x000a, 0x3241: 0x000a, 0x3242: 0x000c, 0x3243: 0x000c, 0x3244: 0x000c, 0x3245: 0x000a,
- // Block 0xca, offset 0x3280
- 0x3280: 0x000a, 0x3281: 0x000a, 0x3282: 0x000a, 0x3283: 0x000a, 0x3284: 0x000a, 0x3285: 0x000a,
- 0x3286: 0x000a, 0x3287: 0x000a, 0x3288: 0x000a, 0x3289: 0x000a, 0x328a: 0x000a, 0x328b: 0x000a,
- 0x328c: 0x000a, 0x328d: 0x000a, 0x328e: 0x000a, 0x328f: 0x000a, 0x3290: 0x000a, 0x3291: 0x000a,
- 0x3292: 0x000a, 0x3293: 0x000a, 0x3294: 0x000a, 0x3295: 0x000a, 0x3296: 0x000a,
- // Block 0xcb, offset 0x32c0
- 0x32db: 0x000a,
- // Block 0xcc, offset 0x3300
- 0x3315: 0x000a,
- // Block 0xcd, offset 0x3340
- 0x334f: 0x000a,
- // Block 0xce, offset 0x3380
- 0x3389: 0x000a,
- // Block 0xcf, offset 0x33c0
- 0x33c3: 0x000a,
- 0x33ce: 0x0002, 0x33cf: 0x0002, 0x33d0: 0x0002, 0x33d1: 0x0002,
- 0x33d2: 0x0002, 0x33d3: 0x0002, 0x33d4: 0x0002, 0x33d5: 0x0002, 0x33d6: 0x0002, 0x33d7: 0x0002,
- 0x33d8: 0x0002, 0x33d9: 0x0002, 0x33da: 0x0002, 0x33db: 0x0002, 0x33dc: 0x0002, 0x33dd: 0x0002,
- 0x33de: 0x0002, 0x33df: 0x0002, 0x33e0: 0x0002, 0x33e1: 0x0002, 0x33e2: 0x0002, 0x33e3: 0x0002,
- 0x33e4: 0x0002, 0x33e5: 0x0002, 0x33e6: 0x0002, 0x33e7: 0x0002, 0x33e8: 0x0002, 0x33e9: 0x0002,
- 0x33ea: 0x0002, 0x33eb: 0x0002, 0x33ec: 0x0002, 0x33ed: 0x0002, 0x33ee: 0x0002, 0x33ef: 0x0002,
- 0x33f0: 0x0002, 0x33f1: 0x0002, 0x33f2: 0x0002, 0x33f3: 0x0002, 0x33f4: 0x0002, 0x33f5: 0x0002,
- 0x33f6: 0x0002, 0x33f7: 0x0002, 0x33f8: 0x0002, 0x33f9: 0x0002, 0x33fa: 0x0002, 0x33fb: 0x0002,
- 0x33fc: 0x0002, 0x33fd: 0x0002, 0x33fe: 0x0002, 0x33ff: 0x0002,
- // Block 0xd0, offset 0x3400
- 0x3400: 0x000c, 0x3401: 0x000c, 0x3402: 0x000c, 0x3403: 0x000c, 0x3404: 0x000c, 0x3405: 0x000c,
- 0x3406: 0x000c, 0x3407: 0x000c, 0x3408: 0x000c, 0x3409: 0x000c, 0x340a: 0x000c, 0x340b: 0x000c,
- 0x340c: 0x000c, 0x340d: 0x000c, 0x340e: 0x000c, 0x340f: 0x000c, 0x3410: 0x000c, 0x3411: 0x000c,
- 0x3412: 0x000c, 0x3413: 0x000c, 0x3414: 0x000c, 0x3415: 0x000c, 0x3416: 0x000c, 0x3417: 0x000c,
- 0x3418: 0x000c, 0x3419: 0x000c, 0x341a: 0x000c, 0x341b: 0x000c, 0x341c: 0x000c, 0x341d: 0x000c,
- 0x341e: 0x000c, 0x341f: 0x000c, 0x3420: 0x000c, 0x3421: 0x000c, 0x3422: 0x000c, 0x3423: 0x000c,
- 0x3424: 0x000c, 0x3425: 0x000c, 0x3426: 0x000c, 0x3427: 0x000c, 0x3428: 0x000c, 0x3429: 0x000c,
- 0x342a: 0x000c, 0x342b: 0x000c, 0x342c: 0x000c, 0x342d: 0x000c, 0x342e: 0x000c, 0x342f: 0x000c,
- 0x3430: 0x000c, 0x3431: 0x000c, 0x3432: 0x000c, 0x3433: 0x000c, 0x3434: 0x000c, 0x3435: 0x000c,
- 0x3436: 0x000c, 0x343b: 0x000c,
- 0x343c: 0x000c, 0x343d: 0x000c, 0x343e: 0x000c, 0x343f: 0x000c,
- // Block 0xd1, offset 0x3440
- 0x3440: 0x000c, 0x3441: 0x000c, 0x3442: 0x000c, 0x3443: 0x000c, 0x3444: 0x000c, 0x3445: 0x000c,
- 0x3446: 0x000c, 0x3447: 0x000c, 0x3448: 0x000c, 0x3449: 0x000c, 0x344a: 0x000c, 0x344b: 0x000c,
- 0x344c: 0x000c, 0x344d: 0x000c, 0x344e: 0x000c, 0x344f: 0x000c, 0x3450: 0x000c, 0x3451: 0x000c,
- 0x3452: 0x000c, 0x3453: 0x000c, 0x3454: 0x000c, 0x3455: 0x000c, 0x3456: 0x000c, 0x3457: 0x000c,
- 0x3458: 0x000c, 0x3459: 0x000c, 0x345a: 0x000c, 0x345b: 0x000c, 0x345c: 0x000c, 0x345d: 0x000c,
- 0x345e: 0x000c, 0x345f: 0x000c, 0x3460: 0x000c, 0x3461: 0x000c, 0x3462: 0x000c, 0x3463: 0x000c,
- 0x3464: 0x000c, 0x3465: 0x000c, 0x3466: 0x000c, 0x3467: 0x000c, 0x3468: 0x000c, 0x3469: 0x000c,
- 0x346a: 0x000c, 0x346b: 0x000c, 0x346c: 0x000c,
- 0x3475: 0x000c,
- // Block 0xd2, offset 0x3480
- 0x3484: 0x000c,
- 0x349b: 0x000c, 0x349c: 0x000c, 0x349d: 0x000c,
- 0x349e: 0x000c, 0x349f: 0x000c, 0x34a1: 0x000c, 0x34a2: 0x000c, 0x34a3: 0x000c,
- 0x34a4: 0x000c, 0x34a5: 0x000c, 0x34a6: 0x000c, 0x34a7: 0x000c, 0x34a8: 0x000c, 0x34a9: 0x000c,
- 0x34aa: 0x000c, 0x34ab: 0x000c, 0x34ac: 0x000c, 0x34ad: 0x000c, 0x34ae: 0x000c, 0x34af: 0x000c,
- // Block 0xd3, offset 0x34c0
- 0x34c0: 0x000c, 0x34c1: 0x000c, 0x34c2: 0x000c, 0x34c3: 0x000c, 0x34c4: 0x000c, 0x34c5: 0x000c,
- 0x34c6: 0x000c, 0x34c8: 0x000c, 0x34c9: 0x000c, 0x34ca: 0x000c, 0x34cb: 0x000c,
- 0x34cc: 0x000c, 0x34cd: 0x000c, 0x34ce: 0x000c, 0x34cf: 0x000c, 0x34d0: 0x000c, 0x34d1: 0x000c,
- 0x34d2: 0x000c, 0x34d3: 0x000c, 0x34d4: 0x000c, 0x34d5: 0x000c, 0x34d6: 0x000c, 0x34d7: 0x000c,
- 0x34d8: 0x000c, 0x34db: 0x000c, 0x34dc: 0x000c, 0x34dd: 0x000c,
- 0x34de: 0x000c, 0x34df: 0x000c, 0x34e0: 0x000c, 0x34e1: 0x000c, 0x34e3: 0x000c,
- 0x34e4: 0x000c, 0x34e6: 0x000c, 0x34e7: 0x000c, 0x34e8: 0x000c, 0x34e9: 0x000c,
- 0x34ea: 0x000c,
- // Block 0xd4, offset 0x3500
- 0x3500: 0x0001, 0x3501: 0x0001, 0x3502: 0x0001, 0x3503: 0x0001, 0x3504: 0x0001, 0x3505: 0x0001,
- 0x3506: 0x0001, 0x3507: 0x0001, 0x3508: 0x0001, 0x3509: 0x0001, 0x350a: 0x0001, 0x350b: 0x0001,
- 0x350c: 0x0001, 0x350d: 0x0001, 0x350e: 0x0001, 0x350f: 0x0001, 0x3510: 0x000c, 0x3511: 0x000c,
- 0x3512: 0x000c, 0x3513: 0x000c, 0x3514: 0x000c, 0x3515: 0x000c, 0x3516: 0x000c, 0x3517: 0x0001,
- 0x3518: 0x0001, 0x3519: 0x0001, 0x351a: 0x0001, 0x351b: 0x0001, 0x351c: 0x0001, 0x351d: 0x0001,
- 0x351e: 0x0001, 0x351f: 0x0001, 0x3520: 0x0001, 0x3521: 0x0001, 0x3522: 0x0001, 0x3523: 0x0001,
- 0x3524: 0x0001, 0x3525: 0x0001, 0x3526: 0x0001, 0x3527: 0x0001, 0x3528: 0x0001, 0x3529: 0x0001,
- 0x352a: 0x0001, 0x352b: 0x0001, 0x352c: 0x0001, 0x352d: 0x0001, 0x352e: 0x0001, 0x352f: 0x0001,
- 0x3530: 0x0001, 0x3531: 0x0001, 0x3532: 0x0001, 0x3533: 0x0001, 0x3534: 0x0001, 0x3535: 0x0001,
- 0x3536: 0x0001, 0x3537: 0x0001, 0x3538: 0x0001, 0x3539: 0x0001, 0x353a: 0x0001, 0x353b: 0x0001,
- 0x353c: 0x0001, 0x353d: 0x0001, 0x353e: 0x0001, 0x353f: 0x0001,
- // Block 0xd5, offset 0x3540
- 0x3540: 0x0001, 0x3541: 0x0001, 0x3542: 0x0001, 0x3543: 0x0001, 0x3544: 0x000c, 0x3545: 0x000c,
- 0x3546: 0x000c, 0x3547: 0x000c, 0x3548: 0x000c, 0x3549: 0x000c, 0x354a: 0x000c, 0x354b: 0x0001,
- 0x354c: 0x0001, 0x354d: 0x0001, 0x354e: 0x0001, 0x354f: 0x0001, 0x3550: 0x0001, 0x3551: 0x0001,
- 0x3552: 0x0001, 0x3553: 0x0001, 0x3554: 0x0001, 0x3555: 0x0001, 0x3556: 0x0001, 0x3557: 0x0001,
- 0x3558: 0x0001, 0x3559: 0x0001, 0x355a: 0x0001, 0x355b: 0x0001, 0x355c: 0x0001, 0x355d: 0x0001,
- 0x355e: 0x0001, 0x355f: 0x0001, 0x3560: 0x0001, 0x3561: 0x0001, 0x3562: 0x0001, 0x3563: 0x0001,
- 0x3564: 0x0001, 0x3565: 0x0001, 0x3566: 0x0001, 0x3567: 0x0001, 0x3568: 0x0001, 0x3569: 0x0001,
- 0x356a: 0x0001, 0x356b: 0x0001, 0x356c: 0x0001, 0x356d: 0x0001, 0x356e: 0x0001, 0x356f: 0x0001,
- 0x3570: 0x0001, 0x3571: 0x0001, 0x3572: 0x0001, 0x3573: 0x0001, 0x3574: 0x0001, 0x3575: 0x0001,
- 0x3576: 0x0001, 0x3577: 0x0001, 0x3578: 0x0001, 0x3579: 0x0001, 0x357a: 0x0001, 0x357b: 0x0001,
- 0x357c: 0x0001, 0x357d: 0x0001, 0x357e: 0x0001, 0x357f: 0x0001,
- // Block 0xd6, offset 0x3580
- 0x3580: 0x000d, 0x3581: 0x000d, 0x3582: 0x000d, 0x3583: 0x000d, 0x3584: 0x000d, 0x3585: 0x000d,
- 0x3586: 0x000d, 0x3587: 0x000d, 0x3588: 0x000d, 0x3589: 0x000d, 0x358a: 0x000d, 0x358b: 0x000d,
- 0x358c: 0x000d, 0x358d: 0x000d, 0x358e: 0x000d, 0x358f: 0x000d, 0x3590: 0x000d, 0x3591: 0x000d,
- 0x3592: 0x000d, 0x3593: 0x000d, 0x3594: 0x000d, 0x3595: 0x000d, 0x3596: 0x000d, 0x3597: 0x000d,
- 0x3598: 0x000d, 0x3599: 0x000d, 0x359a: 0x000d, 0x359b: 0x000d, 0x359c: 0x000d, 0x359d: 0x000d,
- 0x359e: 0x000d, 0x359f: 0x000d, 0x35a0: 0x000d, 0x35a1: 0x000d, 0x35a2: 0x000d, 0x35a3: 0x000d,
- 0x35a4: 0x000d, 0x35a5: 0x000d, 0x35a6: 0x000d, 0x35a7: 0x000d, 0x35a8: 0x000d, 0x35a9: 0x000d,
- 0x35aa: 0x000d, 0x35ab: 0x000d, 0x35ac: 0x000d, 0x35ad: 0x000d, 0x35ae: 0x000d, 0x35af: 0x000d,
- 0x35b0: 0x000a, 0x35b1: 0x000a, 0x35b2: 0x000d, 0x35b3: 0x000d, 0x35b4: 0x000d, 0x35b5: 0x000d,
- 0x35b6: 0x000d, 0x35b7: 0x000d, 0x35b8: 0x000d, 0x35b9: 0x000d, 0x35ba: 0x000d, 0x35bb: 0x000d,
- 0x35bc: 0x000d, 0x35bd: 0x000d, 0x35be: 0x000d, 0x35bf: 0x000d,
- // Block 0xd7, offset 0x35c0
- 0x35c0: 0x000a, 0x35c1: 0x000a, 0x35c2: 0x000a, 0x35c3: 0x000a, 0x35c4: 0x000a, 0x35c5: 0x000a,
- 0x35c6: 0x000a, 0x35c7: 0x000a, 0x35c8: 0x000a, 0x35c9: 0x000a, 0x35ca: 0x000a, 0x35cb: 0x000a,
- 0x35cc: 0x000a, 0x35cd: 0x000a, 0x35ce: 0x000a, 0x35cf: 0x000a, 0x35d0: 0x000a, 0x35d1: 0x000a,
- 0x35d2: 0x000a, 0x35d3: 0x000a, 0x35d4: 0x000a, 0x35d5: 0x000a, 0x35d6: 0x000a, 0x35d7: 0x000a,
- 0x35d8: 0x000a, 0x35d9: 0x000a, 0x35da: 0x000a, 0x35db: 0x000a, 0x35dc: 0x000a, 0x35dd: 0x000a,
- 0x35de: 0x000a, 0x35df: 0x000a, 0x35e0: 0x000a, 0x35e1: 0x000a, 0x35e2: 0x000a, 0x35e3: 0x000a,
- 0x35e4: 0x000a, 0x35e5: 0x000a, 0x35e6: 0x000a, 0x35e7: 0x000a, 0x35e8: 0x000a, 0x35e9: 0x000a,
- 0x35ea: 0x000a, 0x35eb: 0x000a,
- 0x35f0: 0x000a, 0x35f1: 0x000a, 0x35f2: 0x000a, 0x35f3: 0x000a, 0x35f4: 0x000a, 0x35f5: 0x000a,
- 0x35f6: 0x000a, 0x35f7: 0x000a, 0x35f8: 0x000a, 0x35f9: 0x000a, 0x35fa: 0x000a, 0x35fb: 0x000a,
- 0x35fc: 0x000a, 0x35fd: 0x000a, 0x35fe: 0x000a, 0x35ff: 0x000a,
- // Block 0xd8, offset 0x3600
- 0x3600: 0x000a, 0x3601: 0x000a, 0x3602: 0x000a, 0x3603: 0x000a, 0x3604: 0x000a, 0x3605: 0x000a,
- 0x3606: 0x000a, 0x3607: 0x000a, 0x3608: 0x000a, 0x3609: 0x000a, 0x360a: 0x000a, 0x360b: 0x000a,
- 0x360c: 0x000a, 0x360d: 0x000a, 0x360e: 0x000a, 0x360f: 0x000a, 0x3610: 0x000a, 0x3611: 0x000a,
- 0x3612: 0x000a, 0x3613: 0x000a,
- 0x3620: 0x000a, 0x3621: 0x000a, 0x3622: 0x000a, 0x3623: 0x000a,
- 0x3624: 0x000a, 0x3625: 0x000a, 0x3626: 0x000a, 0x3627: 0x000a, 0x3628: 0x000a, 0x3629: 0x000a,
- 0x362a: 0x000a, 0x362b: 0x000a, 0x362c: 0x000a, 0x362d: 0x000a, 0x362e: 0x000a,
- 0x3631: 0x000a, 0x3632: 0x000a, 0x3633: 0x000a, 0x3634: 0x000a, 0x3635: 0x000a,
- 0x3636: 0x000a, 0x3637: 0x000a, 0x3638: 0x000a, 0x3639: 0x000a, 0x363a: 0x000a, 0x363b: 0x000a,
- 0x363c: 0x000a, 0x363d: 0x000a, 0x363e: 0x000a, 0x363f: 0x000a,
- // Block 0xd9, offset 0x3640
- 0x3641: 0x000a, 0x3642: 0x000a, 0x3643: 0x000a, 0x3644: 0x000a, 0x3645: 0x000a,
- 0x3646: 0x000a, 0x3647: 0x000a, 0x3648: 0x000a, 0x3649: 0x000a, 0x364a: 0x000a, 0x364b: 0x000a,
- 0x364c: 0x000a, 0x364d: 0x000a, 0x364e: 0x000a, 0x364f: 0x000a, 0x3651: 0x000a,
- 0x3652: 0x000a, 0x3653: 0x000a, 0x3654: 0x000a, 0x3655: 0x000a, 0x3656: 0x000a, 0x3657: 0x000a,
- 0x3658: 0x000a, 0x3659: 0x000a, 0x365a: 0x000a, 0x365b: 0x000a, 0x365c: 0x000a, 0x365d: 0x000a,
- 0x365e: 0x000a, 0x365f: 0x000a, 0x3660: 0x000a, 0x3661: 0x000a, 0x3662: 0x000a, 0x3663: 0x000a,
- 0x3664: 0x000a, 0x3665: 0x000a, 0x3666: 0x000a, 0x3667: 0x000a, 0x3668: 0x000a, 0x3669: 0x000a,
- 0x366a: 0x000a, 0x366b: 0x000a, 0x366c: 0x000a, 0x366d: 0x000a, 0x366e: 0x000a, 0x366f: 0x000a,
- 0x3670: 0x000a, 0x3671: 0x000a, 0x3672: 0x000a, 0x3673: 0x000a, 0x3674: 0x000a, 0x3675: 0x000a,
- // Block 0xda, offset 0x3680
- 0x3680: 0x0002, 0x3681: 0x0002, 0x3682: 0x0002, 0x3683: 0x0002, 0x3684: 0x0002, 0x3685: 0x0002,
- 0x3686: 0x0002, 0x3687: 0x0002, 0x3688: 0x0002, 0x3689: 0x0002, 0x368a: 0x0002, 0x368b: 0x000a,
- 0x368c: 0x000a,
- 0x36af: 0x000a,
- // Block 0xdb, offset 0x36c0
- 0x36ea: 0x000a, 0x36eb: 0x000a,
- // Block 0xdc, offset 0x3700
- 0x3720: 0x000a, 0x3721: 0x000a, 0x3722: 0x000a, 0x3723: 0x000a,
- 0x3724: 0x000a, 0x3725: 0x000a,
- // Block 0xdd, offset 0x3740
- 0x3740: 0x000a, 0x3741: 0x000a, 0x3742: 0x000a, 0x3743: 0x000a, 0x3744: 0x000a, 0x3745: 0x000a,
- 0x3746: 0x000a, 0x3747: 0x000a, 0x3748: 0x000a, 0x3749: 0x000a, 0x374a: 0x000a, 0x374b: 0x000a,
- 0x374c: 0x000a, 0x374d: 0x000a, 0x374e: 0x000a, 0x374f: 0x000a, 0x3750: 0x000a, 0x3751: 0x000a,
- 0x3752: 0x000a, 0x3753: 0x000a, 0x3754: 0x000a,
- 0x3760: 0x000a, 0x3761: 0x000a, 0x3762: 0x000a, 0x3763: 0x000a,
- 0x3764: 0x000a, 0x3765: 0x000a, 0x3766: 0x000a, 0x3767: 0x000a, 0x3768: 0x000a, 0x3769: 0x000a,
- 0x376a: 0x000a, 0x376b: 0x000a, 0x376c: 0x000a,
- 0x3770: 0x000a, 0x3771: 0x000a, 0x3772: 0x000a, 0x3773: 0x000a, 0x3774: 0x000a, 0x3775: 0x000a,
- 0x3776: 0x000a, 0x3777: 0x000a, 0x3778: 0x000a, 0x3779: 0x000a,
- // Block 0xde, offset 0x3780
- 0x3780: 0x000a, 0x3781: 0x000a, 0x3782: 0x000a, 0x3783: 0x000a, 0x3784: 0x000a, 0x3785: 0x000a,
- 0x3786: 0x000a, 0x3787: 0x000a, 0x3788: 0x000a, 0x3789: 0x000a, 0x378a: 0x000a, 0x378b: 0x000a,
- 0x378c: 0x000a, 0x378d: 0x000a, 0x378e: 0x000a, 0x378f: 0x000a, 0x3790: 0x000a, 0x3791: 0x000a,
- 0x3792: 0x000a, 0x3793: 0x000a, 0x3794: 0x000a, 0x3795: 0x000a, 0x3796: 0x000a, 0x3797: 0x000a,
- 0x3798: 0x000a,
- // Block 0xdf, offset 0x37c0
- 0x37c0: 0x000a, 0x37c1: 0x000a, 0x37c2: 0x000a, 0x37c3: 0x000a, 0x37c4: 0x000a, 0x37c5: 0x000a,
- 0x37c6: 0x000a, 0x37c7: 0x000a, 0x37c8: 0x000a, 0x37c9: 0x000a, 0x37ca: 0x000a, 0x37cb: 0x000a,
- 0x37d0: 0x000a, 0x37d1: 0x000a,
- 0x37d2: 0x000a, 0x37d3: 0x000a, 0x37d4: 0x000a, 0x37d5: 0x000a, 0x37d6: 0x000a, 0x37d7: 0x000a,
- 0x37d8: 0x000a, 0x37d9: 0x000a, 0x37da: 0x000a, 0x37db: 0x000a, 0x37dc: 0x000a, 0x37dd: 0x000a,
- 0x37de: 0x000a, 0x37df: 0x000a, 0x37e0: 0x000a, 0x37e1: 0x000a, 0x37e2: 0x000a, 0x37e3: 0x000a,
- 0x37e4: 0x000a, 0x37e5: 0x000a, 0x37e6: 0x000a, 0x37e7: 0x000a, 0x37e8: 0x000a, 0x37e9: 0x000a,
- 0x37ea: 0x000a, 0x37eb: 0x000a, 0x37ec: 0x000a, 0x37ed: 0x000a, 0x37ee: 0x000a, 0x37ef: 0x000a,
- 0x37f0: 0x000a, 0x37f1: 0x000a, 0x37f2: 0x000a, 0x37f3: 0x000a, 0x37f4: 0x000a, 0x37f5: 0x000a,
- 0x37f6: 0x000a, 0x37f7: 0x000a, 0x37f8: 0x000a, 0x37f9: 0x000a, 0x37fa: 0x000a, 0x37fb: 0x000a,
- 0x37fc: 0x000a, 0x37fd: 0x000a, 0x37fe: 0x000a, 0x37ff: 0x000a,
- // Block 0xe0, offset 0x3800
- 0x3800: 0x000a, 0x3801: 0x000a, 0x3802: 0x000a, 0x3803: 0x000a, 0x3804: 0x000a, 0x3805: 0x000a,
- 0x3806: 0x000a, 0x3807: 0x000a,
- 0x3810: 0x000a, 0x3811: 0x000a,
- 0x3812: 0x000a, 0x3813: 0x000a, 0x3814: 0x000a, 0x3815: 0x000a, 0x3816: 0x000a, 0x3817: 0x000a,
- 0x3818: 0x000a, 0x3819: 0x000a,
- 0x3820: 0x000a, 0x3821: 0x000a, 0x3822: 0x000a, 0x3823: 0x000a,
- 0x3824: 0x000a, 0x3825: 0x000a, 0x3826: 0x000a, 0x3827: 0x000a, 0x3828: 0x000a, 0x3829: 0x000a,
- 0x382a: 0x000a, 0x382b: 0x000a, 0x382c: 0x000a, 0x382d: 0x000a, 0x382e: 0x000a, 0x382f: 0x000a,
- 0x3830: 0x000a, 0x3831: 0x000a, 0x3832: 0x000a, 0x3833: 0x000a, 0x3834: 0x000a, 0x3835: 0x000a,
- 0x3836: 0x000a, 0x3837: 0x000a, 0x3838: 0x000a, 0x3839: 0x000a, 0x383a: 0x000a, 0x383b: 0x000a,
- 0x383c: 0x000a, 0x383d: 0x000a, 0x383e: 0x000a, 0x383f: 0x000a,
- // Block 0xe1, offset 0x3840
- 0x3840: 0x000a, 0x3841: 0x000a, 0x3842: 0x000a, 0x3843: 0x000a, 0x3844: 0x000a, 0x3845: 0x000a,
- 0x3846: 0x000a, 0x3847: 0x000a,
- 0x3850: 0x000a, 0x3851: 0x000a,
- 0x3852: 0x000a, 0x3853: 0x000a, 0x3854: 0x000a, 0x3855: 0x000a, 0x3856: 0x000a, 0x3857: 0x000a,
- 0x3858: 0x000a, 0x3859: 0x000a, 0x385a: 0x000a, 0x385b: 0x000a, 0x385c: 0x000a, 0x385d: 0x000a,
- 0x385e: 0x000a, 0x385f: 0x000a, 0x3860: 0x000a, 0x3861: 0x000a, 0x3862: 0x000a, 0x3863: 0x000a,
- 0x3864: 0x000a, 0x3865: 0x000a, 0x3866: 0x000a, 0x3867: 0x000a, 0x3868: 0x000a, 0x3869: 0x000a,
- 0x386a: 0x000a, 0x386b: 0x000a, 0x386c: 0x000a, 0x386d: 0x000a,
- // Block 0xe2, offset 0x3880
- 0x3880: 0x000a, 0x3881: 0x000a, 0x3882: 0x000a, 0x3883: 0x000a, 0x3884: 0x000a, 0x3885: 0x000a,
- 0x3886: 0x000a, 0x3887: 0x000a, 0x3888: 0x000a, 0x3889: 0x000a, 0x388a: 0x000a, 0x388b: 0x000a,
- 0x3890: 0x000a, 0x3891: 0x000a,
- 0x3892: 0x000a, 0x3893: 0x000a, 0x3894: 0x000a, 0x3895: 0x000a, 0x3896: 0x000a, 0x3897: 0x000a,
- 0x3898: 0x000a, 0x3899: 0x000a, 0x389a: 0x000a, 0x389b: 0x000a, 0x389c: 0x000a, 0x389d: 0x000a,
- 0x389e: 0x000a, 0x389f: 0x000a, 0x38a0: 0x000a, 0x38a1: 0x000a, 0x38a2: 0x000a, 0x38a3: 0x000a,
- 0x38a4: 0x000a, 0x38a5: 0x000a, 0x38a6: 0x000a, 0x38a7: 0x000a, 0x38a8: 0x000a, 0x38a9: 0x000a,
- 0x38aa: 0x000a, 0x38ab: 0x000a, 0x38ac: 0x000a, 0x38ad: 0x000a, 0x38ae: 0x000a, 0x38af: 0x000a,
- 0x38b0: 0x000a, 0x38b1: 0x000a, 0x38b2: 0x000a, 0x38b3: 0x000a, 0x38b4: 0x000a, 0x38b5: 0x000a,
- 0x38b6: 0x000a, 0x38b7: 0x000a, 0x38b8: 0x000a, 0x38b9: 0x000a, 0x38ba: 0x000a, 0x38bb: 0x000a,
- 0x38bc: 0x000a, 0x38bd: 0x000a, 0x38be: 0x000a,
- // Block 0xe3, offset 0x38c0
- 0x38c0: 0x000a, 0x38c1: 0x000a, 0x38c2: 0x000a, 0x38c3: 0x000a, 0x38c4: 0x000a, 0x38c5: 0x000a,
- 0x38c6: 0x000a, 0x38c7: 0x000a, 0x38c8: 0x000a, 0x38c9: 0x000a, 0x38ca: 0x000a, 0x38cb: 0x000a,
- 0x38cc: 0x000a, 0x38cd: 0x000a, 0x38ce: 0x000a, 0x38cf: 0x000a, 0x38d0: 0x000a, 0x38d1: 0x000a,
- 0x38d2: 0x000a, 0x38d3: 0x000a, 0x38d4: 0x000a, 0x38d5: 0x000a, 0x38d6: 0x000a, 0x38d7: 0x000a,
- 0x38d8: 0x000a, 0x38d9: 0x000a, 0x38da: 0x000a, 0x38db: 0x000a, 0x38dc: 0x000a, 0x38dd: 0x000a,
- 0x38de: 0x000a, 0x38df: 0x000a, 0x38e0: 0x000a, 0x38e1: 0x000a, 0x38e2: 0x000a, 0x38e3: 0x000a,
- 0x38e4: 0x000a, 0x38e5: 0x000a, 0x38e6: 0x000a, 0x38e7: 0x000a, 0x38e8: 0x000a, 0x38e9: 0x000a,
- 0x38ea: 0x000a, 0x38eb: 0x000a, 0x38ec: 0x000a, 0x38ed: 0x000a, 0x38ee: 0x000a, 0x38ef: 0x000a,
- 0x38f0: 0x000a, 0x38f3: 0x000a, 0x38f4: 0x000a, 0x38f5: 0x000a,
- 0x38f6: 0x000a, 0x38fa: 0x000a,
- 0x38fc: 0x000a, 0x38fd: 0x000a, 0x38fe: 0x000a, 0x38ff: 0x000a,
- // Block 0xe4, offset 0x3900
- 0x3900: 0x000a, 0x3901: 0x000a, 0x3902: 0x000a, 0x3903: 0x000a, 0x3904: 0x000a, 0x3905: 0x000a,
- 0x3906: 0x000a, 0x3907: 0x000a, 0x3908: 0x000a, 0x3909: 0x000a, 0x390a: 0x000a, 0x390b: 0x000a,
- 0x390c: 0x000a, 0x390d: 0x000a, 0x390e: 0x000a, 0x390f: 0x000a, 0x3910: 0x000a, 0x3911: 0x000a,
- 0x3912: 0x000a, 0x3913: 0x000a, 0x3914: 0x000a, 0x3915: 0x000a, 0x3916: 0x000a, 0x3917: 0x000a,
- 0x3918: 0x000a, 0x3919: 0x000a, 0x391a: 0x000a, 0x391b: 0x000a, 0x391c: 0x000a, 0x391d: 0x000a,
- 0x391e: 0x000a, 0x391f: 0x000a, 0x3920: 0x000a, 0x3921: 0x000a, 0x3922: 0x000a,
- 0x3930: 0x000a, 0x3931: 0x000a, 0x3932: 0x000a, 0x3933: 0x000a, 0x3934: 0x000a, 0x3935: 0x000a,
- 0x3936: 0x000a, 0x3937: 0x000a, 0x3938: 0x000a, 0x3939: 0x000a,
- // Block 0xe5, offset 0x3940
- 0x3940: 0x000a, 0x3941: 0x000a, 0x3942: 0x000a,
- 0x3950: 0x000a, 0x3951: 0x000a,
- 0x3952: 0x000a, 0x3953: 0x000a, 0x3954: 0x000a, 0x3955: 0x000a, 0x3956: 0x000a, 0x3957: 0x000a,
- 0x3958: 0x000a, 0x3959: 0x000a, 0x395a: 0x000a, 0x395b: 0x000a, 0x395c: 0x000a, 0x395d: 0x000a,
- 0x395e: 0x000a, 0x395f: 0x000a, 0x3960: 0x000a, 0x3961: 0x000a, 0x3962: 0x000a, 0x3963: 0x000a,
- 0x3964: 0x000a, 0x3965: 0x000a, 0x3966: 0x000a, 0x3967: 0x000a, 0x3968: 0x000a, 0x3969: 0x000a,
- 0x396a: 0x000a, 0x396b: 0x000a, 0x396c: 0x000a, 0x396d: 0x000a, 0x396e: 0x000a, 0x396f: 0x000a,
- 0x3970: 0x000a, 0x3971: 0x000a, 0x3972: 0x000a, 0x3973: 0x000a, 0x3974: 0x000a, 0x3975: 0x000a,
- 0x3976: 0x000a, 0x3977: 0x000a, 0x3978: 0x000a, 0x3979: 0x000a, 0x397a: 0x000a, 0x397b: 0x000a,
- 0x397c: 0x000a, 0x397d: 0x000a, 0x397e: 0x000a, 0x397f: 0x000a,
- // Block 0xe6, offset 0x3980
- 0x39a0: 0x000a, 0x39a1: 0x000a, 0x39a2: 0x000a, 0x39a3: 0x000a,
- 0x39a4: 0x000a, 0x39a5: 0x000a, 0x39a6: 0x000a, 0x39a7: 0x000a, 0x39a8: 0x000a, 0x39a9: 0x000a,
- 0x39aa: 0x000a, 0x39ab: 0x000a, 0x39ac: 0x000a, 0x39ad: 0x000a,
- // Block 0xe7, offset 0x39c0
- 0x39fe: 0x000b, 0x39ff: 0x000b,
- // Block 0xe8, offset 0x3a00
- 0x3a00: 0x000b, 0x3a01: 0x000b, 0x3a02: 0x000b, 0x3a03: 0x000b, 0x3a04: 0x000b, 0x3a05: 0x000b,
- 0x3a06: 0x000b, 0x3a07: 0x000b, 0x3a08: 0x000b, 0x3a09: 0x000b, 0x3a0a: 0x000b, 0x3a0b: 0x000b,
- 0x3a0c: 0x000b, 0x3a0d: 0x000b, 0x3a0e: 0x000b, 0x3a0f: 0x000b, 0x3a10: 0x000b, 0x3a11: 0x000b,
- 0x3a12: 0x000b, 0x3a13: 0x000b, 0x3a14: 0x000b, 0x3a15: 0x000b, 0x3a16: 0x000b, 0x3a17: 0x000b,
- 0x3a18: 0x000b, 0x3a19: 0x000b, 0x3a1a: 0x000b, 0x3a1b: 0x000b, 0x3a1c: 0x000b, 0x3a1d: 0x000b,
- 0x3a1e: 0x000b, 0x3a1f: 0x000b, 0x3a20: 0x000b, 0x3a21: 0x000b, 0x3a22: 0x000b, 0x3a23: 0x000b,
- 0x3a24: 0x000b, 0x3a25: 0x000b, 0x3a26: 0x000b, 0x3a27: 0x000b, 0x3a28: 0x000b, 0x3a29: 0x000b,
- 0x3a2a: 0x000b, 0x3a2b: 0x000b, 0x3a2c: 0x000b, 0x3a2d: 0x000b, 0x3a2e: 0x000b, 0x3a2f: 0x000b,
- 0x3a30: 0x000b, 0x3a31: 0x000b, 0x3a32: 0x000b, 0x3a33: 0x000b, 0x3a34: 0x000b, 0x3a35: 0x000b,
- 0x3a36: 0x000b, 0x3a37: 0x000b, 0x3a38: 0x000b, 0x3a39: 0x000b, 0x3a3a: 0x000b, 0x3a3b: 0x000b,
- 0x3a3c: 0x000b, 0x3a3d: 0x000b, 0x3a3e: 0x000b, 0x3a3f: 0x000b,
- // Block 0xe9, offset 0x3a40
- 0x3a40: 0x000c, 0x3a41: 0x000c, 0x3a42: 0x000c, 0x3a43: 0x000c, 0x3a44: 0x000c, 0x3a45: 0x000c,
- 0x3a46: 0x000c, 0x3a47: 0x000c, 0x3a48: 0x000c, 0x3a49: 0x000c, 0x3a4a: 0x000c, 0x3a4b: 0x000c,
- 0x3a4c: 0x000c, 0x3a4d: 0x000c, 0x3a4e: 0x000c, 0x3a4f: 0x000c, 0x3a50: 0x000c, 0x3a51: 0x000c,
- 0x3a52: 0x000c, 0x3a53: 0x000c, 0x3a54: 0x000c, 0x3a55: 0x000c, 0x3a56: 0x000c, 0x3a57: 0x000c,
- 0x3a58: 0x000c, 0x3a59: 0x000c, 0x3a5a: 0x000c, 0x3a5b: 0x000c, 0x3a5c: 0x000c, 0x3a5d: 0x000c,
- 0x3a5e: 0x000c, 0x3a5f: 0x000c, 0x3a60: 0x000c, 0x3a61: 0x000c, 0x3a62: 0x000c, 0x3a63: 0x000c,
- 0x3a64: 0x000c, 0x3a65: 0x000c, 0x3a66: 0x000c, 0x3a67: 0x000c, 0x3a68: 0x000c, 0x3a69: 0x000c,
- 0x3a6a: 0x000c, 0x3a6b: 0x000c, 0x3a6c: 0x000c, 0x3a6d: 0x000c, 0x3a6e: 0x000c, 0x3a6f: 0x000c,
- 0x3a70: 0x000b, 0x3a71: 0x000b, 0x3a72: 0x000b, 0x3a73: 0x000b, 0x3a74: 0x000b, 0x3a75: 0x000b,
- 0x3a76: 0x000b, 0x3a77: 0x000b, 0x3a78: 0x000b, 0x3a79: 0x000b, 0x3a7a: 0x000b, 0x3a7b: 0x000b,
- 0x3a7c: 0x000b, 0x3a7d: 0x000b, 0x3a7e: 0x000b, 0x3a7f: 0x000b,
-}
-
-// bidiIndex: 24 blocks, 1536 entries, 1536 bytes
-// Block 0 is the zero block.
-var bidiIndex = [1536]uint8{
- // Block 0x0, offset 0x0
- // Block 0x1, offset 0x40
- // Block 0x2, offset 0x80
- // Block 0x3, offset 0xc0
- 0xc2: 0x01, 0xc3: 0x02,
- 0xca: 0x03, 0xcb: 0x04, 0xcc: 0x05, 0xcd: 0x06, 0xce: 0x07, 0xcf: 0x08,
- 0xd2: 0x09, 0xd6: 0x0a, 0xd7: 0x0b,
- 0xd8: 0x0c, 0xd9: 0x0d, 0xda: 0x0e, 0xdb: 0x0f, 0xdc: 0x10, 0xdd: 0x11, 0xde: 0x12, 0xdf: 0x13,
- 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06,
- 0xea: 0x07, 0xef: 0x08,
- 0xf0: 0x11, 0xf1: 0x12, 0xf2: 0x12, 0xf3: 0x14, 0xf4: 0x15,
- // Block 0x4, offset 0x100
- 0x120: 0x14, 0x121: 0x15, 0x122: 0x16, 0x123: 0x17, 0x124: 0x18, 0x125: 0x19, 0x126: 0x1a, 0x127: 0x1b,
- 0x128: 0x1c, 0x129: 0x1d, 0x12a: 0x1c, 0x12b: 0x1e, 0x12c: 0x1f, 0x12d: 0x20, 0x12e: 0x21, 0x12f: 0x22,
- 0x130: 0x23, 0x131: 0x24, 0x132: 0x1a, 0x133: 0x25, 0x134: 0x26, 0x135: 0x27, 0x137: 0x28,
- 0x138: 0x29, 0x139: 0x2a, 0x13a: 0x2b, 0x13b: 0x2c, 0x13c: 0x2d, 0x13d: 0x2e, 0x13e: 0x2f, 0x13f: 0x30,
- // Block 0x5, offset 0x140
- 0x140: 0x31, 0x141: 0x32, 0x142: 0x33,
- 0x14d: 0x34, 0x14e: 0x35,
- 0x150: 0x36,
- 0x15a: 0x37, 0x15c: 0x38, 0x15d: 0x39, 0x15e: 0x3a, 0x15f: 0x3b,
- 0x160: 0x3c, 0x162: 0x3d, 0x164: 0x3e, 0x165: 0x3f, 0x167: 0x40,
- 0x168: 0x41, 0x169: 0x42, 0x16a: 0x43, 0x16c: 0x44, 0x16d: 0x45, 0x16e: 0x46, 0x16f: 0x47,
- 0x170: 0x48, 0x173: 0x49, 0x177: 0x4a,
- 0x17e: 0x4b, 0x17f: 0x4c,
- // Block 0x6, offset 0x180
- 0x180: 0x4d, 0x181: 0x4e, 0x182: 0x4f, 0x183: 0x50, 0x184: 0x51, 0x185: 0x52, 0x186: 0x53, 0x187: 0x54,
- 0x188: 0x55, 0x189: 0x54, 0x18a: 0x54, 0x18b: 0x54, 0x18c: 0x56, 0x18d: 0x57, 0x18e: 0x58, 0x18f: 0x54,
- 0x190: 0x59, 0x191: 0x5a, 0x192: 0x5b, 0x193: 0x5c, 0x194: 0x54, 0x195: 0x54, 0x196: 0x54, 0x197: 0x54,
- 0x198: 0x54, 0x199: 0x54, 0x19a: 0x5d, 0x19b: 0x54, 0x19c: 0x54, 0x19d: 0x5e, 0x19e: 0x54, 0x19f: 0x5f,
- 0x1a4: 0x54, 0x1a5: 0x54, 0x1a6: 0x60, 0x1a7: 0x61,
- 0x1a8: 0x54, 0x1a9: 0x54, 0x1aa: 0x54, 0x1ab: 0x54, 0x1ac: 0x54, 0x1ad: 0x62, 0x1ae: 0x63, 0x1af: 0x64,
- 0x1b3: 0x65, 0x1b5: 0x66, 0x1b7: 0x67,
- 0x1b8: 0x68, 0x1b9: 0x69, 0x1ba: 0x6a, 0x1bb: 0x6b, 0x1bc: 0x54, 0x1bd: 0x54, 0x1be: 0x54, 0x1bf: 0x6c,
- // Block 0x7, offset 0x1c0
- 0x1c0: 0x6d, 0x1c2: 0x6e, 0x1c3: 0x6f, 0x1c7: 0x70,
- 0x1c8: 0x71, 0x1c9: 0x72, 0x1ca: 0x73, 0x1cb: 0x74, 0x1cd: 0x75, 0x1cf: 0x76,
- // Block 0x8, offset 0x200
- 0x237: 0x54,
- // Block 0x9, offset 0x240
- 0x252: 0x77, 0x253: 0x78,
- 0x258: 0x79, 0x259: 0x7a, 0x25a: 0x7b, 0x25b: 0x7c, 0x25c: 0x7d, 0x25e: 0x7e,
- 0x260: 0x7f, 0x261: 0x80, 0x263: 0x81, 0x264: 0x82, 0x265: 0x83, 0x266: 0x84, 0x267: 0x85,
- 0x268: 0x86, 0x269: 0x87, 0x26a: 0x88, 0x26b: 0x89, 0x26f: 0x8a,
- // Block 0xa, offset 0x280
- 0x2ac: 0x8b, 0x2ad: 0x8c, 0x2ae: 0x0e, 0x2af: 0x0e,
- 0x2b0: 0x0e, 0x2b1: 0x0e, 0x2b2: 0x0e, 0x2b3: 0x0e, 0x2b4: 0x8d, 0x2b5: 0x0e, 0x2b6: 0x0e, 0x2b7: 0x8e,
- 0x2b8: 0x8f, 0x2b9: 0x90, 0x2ba: 0x0e, 0x2bb: 0x91, 0x2bc: 0x92, 0x2bd: 0x93, 0x2bf: 0x94,
- // Block 0xb, offset 0x2c0
- 0x2c4: 0x95, 0x2c5: 0x54, 0x2c6: 0x96, 0x2c7: 0x97,
- 0x2cb: 0x98, 0x2cd: 0x99,
- 0x2e0: 0x9a, 0x2e1: 0x9a, 0x2e2: 0x9a, 0x2e3: 0x9a, 0x2e4: 0x9b, 0x2e5: 0x9a, 0x2e6: 0x9a, 0x2e7: 0x9a,
- 0x2e8: 0x9c, 0x2e9: 0x9a, 0x2ea: 0x9a, 0x2eb: 0x9d, 0x2ec: 0x9e, 0x2ed: 0x9a, 0x2ee: 0x9a, 0x2ef: 0x9a,
- 0x2f0: 0x9a, 0x2f1: 0x9a, 0x2f2: 0x9a, 0x2f3: 0x9a, 0x2f4: 0x9f, 0x2f5: 0x9a, 0x2f6: 0x9a, 0x2f7: 0x9a,
- 0x2f8: 0x9a, 0x2f9: 0xa0, 0x2fa: 0x9a, 0x2fb: 0x9a, 0x2fc: 0xa1, 0x2fd: 0xa2, 0x2fe: 0x9a, 0x2ff: 0x9a,
- // Block 0xc, offset 0x300
- 0x300: 0xa3, 0x301: 0xa4, 0x302: 0xa5, 0x304: 0xa6, 0x305: 0xa7, 0x306: 0xa8, 0x307: 0xa9,
- 0x308: 0xaa, 0x30b: 0xab, 0x30c: 0x26, 0x30d: 0xac,
- 0x310: 0xad, 0x311: 0xae, 0x312: 0xaf, 0x313: 0xb0, 0x316: 0xb1, 0x317: 0xb2,
- 0x318: 0xb3, 0x319: 0xb4, 0x31a: 0xb5, 0x31c: 0xb6,
- 0x320: 0xb7,
- 0x328: 0xb8, 0x329: 0xb9, 0x32a: 0xba,
- 0x330: 0xbb, 0x332: 0xbc, 0x334: 0xbd, 0x335: 0xbe, 0x336: 0xbf,
- 0x33b: 0xc0,
- // Block 0xd, offset 0x340
- 0x36b: 0xc1, 0x36c: 0xc2,
- 0x37e: 0xc3,
- // Block 0xe, offset 0x380
- 0x3b2: 0xc4,
- // Block 0xf, offset 0x3c0
- 0x3c5: 0xc5, 0x3c6: 0xc6,
- 0x3c8: 0x54, 0x3c9: 0xc7, 0x3cc: 0x54, 0x3cd: 0xc8,
- 0x3db: 0xc9, 0x3dc: 0xca, 0x3dd: 0xcb, 0x3de: 0xcc, 0x3df: 0xcd,
- 0x3e8: 0xce, 0x3e9: 0xcf, 0x3ea: 0xd0,
- // Block 0x10, offset 0x400
- 0x400: 0xd1,
- 0x420: 0x9a, 0x421: 0x9a, 0x422: 0x9a, 0x423: 0xd2, 0x424: 0x9a, 0x425: 0xd3, 0x426: 0x9a, 0x427: 0x9a,
- 0x428: 0x9a, 0x429: 0x9a, 0x42a: 0x9a, 0x42b: 0x9a, 0x42c: 0x9a, 0x42d: 0x9a, 0x42e: 0x9a, 0x42f: 0x9a,
- 0x430: 0x9a, 0x431: 0xa1, 0x432: 0x0e, 0x433: 0x9a, 0x434: 0x9a, 0x435: 0x9a, 0x436: 0x9a, 0x437: 0x9a,
- 0x438: 0x0e, 0x439: 0x0e, 0x43a: 0x0e, 0x43b: 0xd4, 0x43c: 0x9a, 0x43d: 0x9a, 0x43e: 0x9a, 0x43f: 0x9a,
- // Block 0x11, offset 0x440
- 0x440: 0xd5, 0x441: 0x54, 0x442: 0xd6, 0x443: 0xd7, 0x444: 0xd8, 0x445: 0xd9,
- 0x449: 0xda, 0x44c: 0x54, 0x44d: 0x54, 0x44e: 0x54, 0x44f: 0x54,
- 0x450: 0x54, 0x451: 0x54, 0x452: 0x54, 0x453: 0x54, 0x454: 0x54, 0x455: 0x54, 0x456: 0x54, 0x457: 0x54,
- 0x458: 0x54, 0x459: 0x54, 0x45a: 0x54, 0x45b: 0xdb, 0x45c: 0x54, 0x45d: 0x6b, 0x45e: 0x54, 0x45f: 0xdc,
- 0x460: 0xdd, 0x461: 0xde, 0x462: 0xdf, 0x464: 0xe0, 0x465: 0xe1, 0x466: 0xe2, 0x467: 0xe3,
- 0x469: 0xe4,
- 0x47f: 0xe5,
- // Block 0x12, offset 0x480
- 0x4bf: 0xe5,
- // Block 0x13, offset 0x4c0
- 0x4d0: 0x09, 0x4d1: 0x0a, 0x4d6: 0x0b,
- 0x4db: 0x0c, 0x4dd: 0x0d, 0x4de: 0x0e, 0x4df: 0x0f,
- 0x4ef: 0x10,
- 0x4ff: 0x10,
- // Block 0x14, offset 0x500
- 0x50f: 0x10,
- 0x51f: 0x10,
- 0x52f: 0x10,
- 0x53f: 0x10,
- // Block 0x15, offset 0x540
- 0x540: 0xe6, 0x541: 0xe6, 0x542: 0xe6, 0x543: 0xe6, 0x544: 0x05, 0x545: 0x05, 0x546: 0x05, 0x547: 0xe7,
- 0x548: 0xe6, 0x549: 0xe6, 0x54a: 0xe6, 0x54b: 0xe6, 0x54c: 0xe6, 0x54d: 0xe6, 0x54e: 0xe6, 0x54f: 0xe6,
- 0x550: 0xe6, 0x551: 0xe6, 0x552: 0xe6, 0x553: 0xe6, 0x554: 0xe6, 0x555: 0xe6, 0x556: 0xe6, 0x557: 0xe6,
- 0x558: 0xe6, 0x559: 0xe6, 0x55a: 0xe6, 0x55b: 0xe6, 0x55c: 0xe6, 0x55d: 0xe6, 0x55e: 0xe6, 0x55f: 0xe6,
- 0x560: 0xe6, 0x561: 0xe6, 0x562: 0xe6, 0x563: 0xe6, 0x564: 0xe6, 0x565: 0xe6, 0x566: 0xe6, 0x567: 0xe6,
- 0x568: 0xe6, 0x569: 0xe6, 0x56a: 0xe6, 0x56b: 0xe6, 0x56c: 0xe6, 0x56d: 0xe6, 0x56e: 0xe6, 0x56f: 0xe6,
- 0x570: 0xe6, 0x571: 0xe6, 0x572: 0xe6, 0x573: 0xe6, 0x574: 0xe6, 0x575: 0xe6, 0x576: 0xe6, 0x577: 0xe6,
- 0x578: 0xe6, 0x579: 0xe6, 0x57a: 0xe6, 0x57b: 0xe6, 0x57c: 0xe6, 0x57d: 0xe6, 0x57e: 0xe6, 0x57f: 0xe6,
- // Block 0x16, offset 0x580
- 0x58f: 0x10,
- 0x59f: 0x10,
- 0x5a0: 0x13,
- 0x5af: 0x10,
- 0x5bf: 0x10,
- // Block 0x17, offset 0x5c0
- 0x5cf: 0x10,
-}
-
-// Total table size 16568 bytes (16KiB); checksum: F50EF68C
diff --git a/vendor/golang.org/x/text/unicode/bidi/tables12.0.0.go b/vendor/golang.org/x/text/unicode/bidi/tables12.0.0.go
deleted file mode 100644
index 3aa2c3bd..00000000
--- a/vendor/golang.org/x/text/unicode/bidi/tables12.0.0.go
+++ /dev/null
@@ -1,1923 +0,0 @@
-// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
-
-//go:build go1.14 && !go1.16
-
-package bidi
-
-// UnicodeVersion is the Unicode version from which the tables in this package are derived.
-const UnicodeVersion = "12.0.0"
-
-// xorMasks contains masks to be xor-ed with brackets to get the reverse
-// version.
-var xorMasks = []int32{ // 8 elements
- 0, 1, 6, 7, 3, 15, 29, 63,
-} // Size: 56 bytes
-
-// lookup returns the trie value for the first UTF-8 encoding in s and
-// the width in bytes of this encoding. The size will be 0 if s does not
-// hold enough bytes to complete the encoding. len(s) must be greater than 0.
-func (t *bidiTrie) lookup(s []byte) (v uint8, sz int) {
- c0 := s[0]
- switch {
- case c0 < 0x80: // is ASCII
- return bidiValues[c0], 1
- case c0 < 0xC2:
- return 0, 1 // Illegal UTF-8: not a starter, not ASCII.
- case c0 < 0xE0: // 2-byte UTF-8
- if len(s) < 2 {
- return 0, 0
- }
- i := bidiIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c1), 2
- case c0 < 0xF0: // 3-byte UTF-8
- if len(s) < 3 {
- return 0, 0
- }
- i := bidiIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = bidiIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c2), 3
- case c0 < 0xF8: // 4-byte UTF-8
- if len(s) < 4 {
- return 0, 0
- }
- i := bidiIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = bidiIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- o = uint32(i)<<6 + uint32(c2)
- i = bidiIndex[o]
- c3 := s[3]
- if c3 < 0x80 || 0xC0 <= c3 {
- return 0, 3 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c3), 4
- }
- // Illegal rune
- return 0, 1
-}
-
-// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.
-// s must start with a full and valid UTF-8 encoded rune.
-func (t *bidiTrie) lookupUnsafe(s []byte) uint8 {
- c0 := s[0]
- if c0 < 0x80 { // is ASCII
- return bidiValues[c0]
- }
- i := bidiIndex[c0]
- if c0 < 0xE0 { // 2-byte UTF-8
- return t.lookupValue(uint32(i), s[1])
- }
- i = bidiIndex[uint32(i)<<6+uint32(s[1])]
- if c0 < 0xF0 { // 3-byte UTF-8
- return t.lookupValue(uint32(i), s[2])
- }
- i = bidiIndex[uint32(i)<<6+uint32(s[2])]
- if c0 < 0xF8 { // 4-byte UTF-8
- return t.lookupValue(uint32(i), s[3])
- }
- return 0
-}
-
-// lookupString returns the trie value for the first UTF-8 encoding in s and
-// the width in bytes of this encoding. The size will be 0 if s does not
-// hold enough bytes to complete the encoding. len(s) must be greater than 0.
-func (t *bidiTrie) lookupString(s string) (v uint8, sz int) {
- c0 := s[0]
- switch {
- case c0 < 0x80: // is ASCII
- return bidiValues[c0], 1
- case c0 < 0xC2:
- return 0, 1 // Illegal UTF-8: not a starter, not ASCII.
- case c0 < 0xE0: // 2-byte UTF-8
- if len(s) < 2 {
- return 0, 0
- }
- i := bidiIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c1), 2
- case c0 < 0xF0: // 3-byte UTF-8
- if len(s) < 3 {
- return 0, 0
- }
- i := bidiIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = bidiIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c2), 3
- case c0 < 0xF8: // 4-byte UTF-8
- if len(s) < 4 {
- return 0, 0
- }
- i := bidiIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = bidiIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- o = uint32(i)<<6 + uint32(c2)
- i = bidiIndex[o]
- c3 := s[3]
- if c3 < 0x80 || 0xC0 <= c3 {
- return 0, 3 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c3), 4
- }
- // Illegal rune
- return 0, 1
-}
-
-// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.
-// s must start with a full and valid UTF-8 encoded rune.
-func (t *bidiTrie) lookupStringUnsafe(s string) uint8 {
- c0 := s[0]
- if c0 < 0x80 { // is ASCII
- return bidiValues[c0]
- }
- i := bidiIndex[c0]
- if c0 < 0xE0 { // 2-byte UTF-8
- return t.lookupValue(uint32(i), s[1])
- }
- i = bidiIndex[uint32(i)<<6+uint32(s[1])]
- if c0 < 0xF0 { // 3-byte UTF-8
- return t.lookupValue(uint32(i), s[2])
- }
- i = bidiIndex[uint32(i)<<6+uint32(s[2])]
- if c0 < 0xF8 { // 4-byte UTF-8
- return t.lookupValue(uint32(i), s[3])
- }
- return 0
-}
-
-// bidiTrie. Total size: 16896 bytes (16.50 KiB). Checksum: 6f0927067913dc6d.
-type bidiTrie struct{}
-
-func newBidiTrie(i int) *bidiTrie {
- return &bidiTrie{}
-}
-
-// lookupValue determines the type of block n and looks up the value for b.
-func (t *bidiTrie) lookupValue(n uint32, b byte) uint8 {
- switch {
- default:
- return uint8(bidiValues[n<<6+uint32(b)])
- }
-}
-
-// bidiValues: 240 blocks, 15360 entries, 15360 bytes
-// The third block is the zero block.
-var bidiValues = [15360]uint8{
- // Block 0x0, offset 0x0
- 0x00: 0x000b, 0x01: 0x000b, 0x02: 0x000b, 0x03: 0x000b, 0x04: 0x000b, 0x05: 0x000b,
- 0x06: 0x000b, 0x07: 0x000b, 0x08: 0x000b, 0x09: 0x0008, 0x0a: 0x0007, 0x0b: 0x0008,
- 0x0c: 0x0009, 0x0d: 0x0007, 0x0e: 0x000b, 0x0f: 0x000b, 0x10: 0x000b, 0x11: 0x000b,
- 0x12: 0x000b, 0x13: 0x000b, 0x14: 0x000b, 0x15: 0x000b, 0x16: 0x000b, 0x17: 0x000b,
- 0x18: 0x000b, 0x19: 0x000b, 0x1a: 0x000b, 0x1b: 0x000b, 0x1c: 0x0007, 0x1d: 0x0007,
- 0x1e: 0x0007, 0x1f: 0x0008, 0x20: 0x0009, 0x21: 0x000a, 0x22: 0x000a, 0x23: 0x0004,
- 0x24: 0x0004, 0x25: 0x0004, 0x26: 0x000a, 0x27: 0x000a, 0x28: 0x003a, 0x29: 0x002a,
- 0x2a: 0x000a, 0x2b: 0x0003, 0x2c: 0x0006, 0x2d: 0x0003, 0x2e: 0x0006, 0x2f: 0x0006,
- 0x30: 0x0002, 0x31: 0x0002, 0x32: 0x0002, 0x33: 0x0002, 0x34: 0x0002, 0x35: 0x0002,
- 0x36: 0x0002, 0x37: 0x0002, 0x38: 0x0002, 0x39: 0x0002, 0x3a: 0x0006, 0x3b: 0x000a,
- 0x3c: 0x000a, 0x3d: 0x000a, 0x3e: 0x000a, 0x3f: 0x000a,
- // Block 0x1, offset 0x40
- 0x40: 0x000a,
- 0x5b: 0x005a, 0x5c: 0x000a, 0x5d: 0x004a,
- 0x5e: 0x000a, 0x5f: 0x000a, 0x60: 0x000a,
- 0x7b: 0x005a,
- 0x7c: 0x000a, 0x7d: 0x004a, 0x7e: 0x000a, 0x7f: 0x000b,
- // Block 0x2, offset 0x80
- // Block 0x3, offset 0xc0
- 0xc0: 0x000b, 0xc1: 0x000b, 0xc2: 0x000b, 0xc3: 0x000b, 0xc4: 0x000b, 0xc5: 0x0007,
- 0xc6: 0x000b, 0xc7: 0x000b, 0xc8: 0x000b, 0xc9: 0x000b, 0xca: 0x000b, 0xcb: 0x000b,
- 0xcc: 0x000b, 0xcd: 0x000b, 0xce: 0x000b, 0xcf: 0x000b, 0xd0: 0x000b, 0xd1: 0x000b,
- 0xd2: 0x000b, 0xd3: 0x000b, 0xd4: 0x000b, 0xd5: 0x000b, 0xd6: 0x000b, 0xd7: 0x000b,
- 0xd8: 0x000b, 0xd9: 0x000b, 0xda: 0x000b, 0xdb: 0x000b, 0xdc: 0x000b, 0xdd: 0x000b,
- 0xde: 0x000b, 0xdf: 0x000b, 0xe0: 0x0006, 0xe1: 0x000a, 0xe2: 0x0004, 0xe3: 0x0004,
- 0xe4: 0x0004, 0xe5: 0x0004, 0xe6: 0x000a, 0xe7: 0x000a, 0xe8: 0x000a, 0xe9: 0x000a,
- 0xeb: 0x000a, 0xec: 0x000a, 0xed: 0x000b, 0xee: 0x000a, 0xef: 0x000a,
- 0xf0: 0x0004, 0xf1: 0x0004, 0xf2: 0x0002, 0xf3: 0x0002, 0xf4: 0x000a,
- 0xf6: 0x000a, 0xf7: 0x000a, 0xf8: 0x000a, 0xf9: 0x0002, 0xfb: 0x000a,
- 0xfc: 0x000a, 0xfd: 0x000a, 0xfe: 0x000a, 0xff: 0x000a,
- // Block 0x4, offset 0x100
- 0x117: 0x000a,
- 0x137: 0x000a,
- // Block 0x5, offset 0x140
- 0x179: 0x000a, 0x17a: 0x000a,
- // Block 0x6, offset 0x180
- 0x182: 0x000a, 0x183: 0x000a, 0x184: 0x000a, 0x185: 0x000a,
- 0x186: 0x000a, 0x187: 0x000a, 0x188: 0x000a, 0x189: 0x000a, 0x18a: 0x000a, 0x18b: 0x000a,
- 0x18c: 0x000a, 0x18d: 0x000a, 0x18e: 0x000a, 0x18f: 0x000a,
- 0x192: 0x000a, 0x193: 0x000a, 0x194: 0x000a, 0x195: 0x000a, 0x196: 0x000a, 0x197: 0x000a,
- 0x198: 0x000a, 0x199: 0x000a, 0x19a: 0x000a, 0x19b: 0x000a, 0x19c: 0x000a, 0x19d: 0x000a,
- 0x19e: 0x000a, 0x19f: 0x000a,
- 0x1a5: 0x000a, 0x1a6: 0x000a, 0x1a7: 0x000a, 0x1a8: 0x000a, 0x1a9: 0x000a,
- 0x1aa: 0x000a, 0x1ab: 0x000a, 0x1ac: 0x000a, 0x1ad: 0x000a, 0x1af: 0x000a,
- 0x1b0: 0x000a, 0x1b1: 0x000a, 0x1b2: 0x000a, 0x1b3: 0x000a, 0x1b4: 0x000a, 0x1b5: 0x000a,
- 0x1b6: 0x000a, 0x1b7: 0x000a, 0x1b8: 0x000a, 0x1b9: 0x000a, 0x1ba: 0x000a, 0x1bb: 0x000a,
- 0x1bc: 0x000a, 0x1bd: 0x000a, 0x1be: 0x000a, 0x1bf: 0x000a,
- // Block 0x7, offset 0x1c0
- 0x1c0: 0x000c, 0x1c1: 0x000c, 0x1c2: 0x000c, 0x1c3: 0x000c, 0x1c4: 0x000c, 0x1c5: 0x000c,
- 0x1c6: 0x000c, 0x1c7: 0x000c, 0x1c8: 0x000c, 0x1c9: 0x000c, 0x1ca: 0x000c, 0x1cb: 0x000c,
- 0x1cc: 0x000c, 0x1cd: 0x000c, 0x1ce: 0x000c, 0x1cf: 0x000c, 0x1d0: 0x000c, 0x1d1: 0x000c,
- 0x1d2: 0x000c, 0x1d3: 0x000c, 0x1d4: 0x000c, 0x1d5: 0x000c, 0x1d6: 0x000c, 0x1d7: 0x000c,
- 0x1d8: 0x000c, 0x1d9: 0x000c, 0x1da: 0x000c, 0x1db: 0x000c, 0x1dc: 0x000c, 0x1dd: 0x000c,
- 0x1de: 0x000c, 0x1df: 0x000c, 0x1e0: 0x000c, 0x1e1: 0x000c, 0x1e2: 0x000c, 0x1e3: 0x000c,
- 0x1e4: 0x000c, 0x1e5: 0x000c, 0x1e6: 0x000c, 0x1e7: 0x000c, 0x1e8: 0x000c, 0x1e9: 0x000c,
- 0x1ea: 0x000c, 0x1eb: 0x000c, 0x1ec: 0x000c, 0x1ed: 0x000c, 0x1ee: 0x000c, 0x1ef: 0x000c,
- 0x1f0: 0x000c, 0x1f1: 0x000c, 0x1f2: 0x000c, 0x1f3: 0x000c, 0x1f4: 0x000c, 0x1f5: 0x000c,
- 0x1f6: 0x000c, 0x1f7: 0x000c, 0x1f8: 0x000c, 0x1f9: 0x000c, 0x1fa: 0x000c, 0x1fb: 0x000c,
- 0x1fc: 0x000c, 0x1fd: 0x000c, 0x1fe: 0x000c, 0x1ff: 0x000c,
- // Block 0x8, offset 0x200
- 0x200: 0x000c, 0x201: 0x000c, 0x202: 0x000c, 0x203: 0x000c, 0x204: 0x000c, 0x205: 0x000c,
- 0x206: 0x000c, 0x207: 0x000c, 0x208: 0x000c, 0x209: 0x000c, 0x20a: 0x000c, 0x20b: 0x000c,
- 0x20c: 0x000c, 0x20d: 0x000c, 0x20e: 0x000c, 0x20f: 0x000c, 0x210: 0x000c, 0x211: 0x000c,
- 0x212: 0x000c, 0x213: 0x000c, 0x214: 0x000c, 0x215: 0x000c, 0x216: 0x000c, 0x217: 0x000c,
- 0x218: 0x000c, 0x219: 0x000c, 0x21a: 0x000c, 0x21b: 0x000c, 0x21c: 0x000c, 0x21d: 0x000c,
- 0x21e: 0x000c, 0x21f: 0x000c, 0x220: 0x000c, 0x221: 0x000c, 0x222: 0x000c, 0x223: 0x000c,
- 0x224: 0x000c, 0x225: 0x000c, 0x226: 0x000c, 0x227: 0x000c, 0x228: 0x000c, 0x229: 0x000c,
- 0x22a: 0x000c, 0x22b: 0x000c, 0x22c: 0x000c, 0x22d: 0x000c, 0x22e: 0x000c, 0x22f: 0x000c,
- 0x234: 0x000a, 0x235: 0x000a,
- 0x23e: 0x000a,
- // Block 0x9, offset 0x240
- 0x244: 0x000a, 0x245: 0x000a,
- 0x247: 0x000a,
- // Block 0xa, offset 0x280
- 0x2b6: 0x000a,
- // Block 0xb, offset 0x2c0
- 0x2c3: 0x000c, 0x2c4: 0x000c, 0x2c5: 0x000c,
- 0x2c6: 0x000c, 0x2c7: 0x000c, 0x2c8: 0x000c, 0x2c9: 0x000c,
- // Block 0xc, offset 0x300
- 0x30a: 0x000a,
- 0x30d: 0x000a, 0x30e: 0x000a, 0x30f: 0x0004, 0x310: 0x0001, 0x311: 0x000c,
- 0x312: 0x000c, 0x313: 0x000c, 0x314: 0x000c, 0x315: 0x000c, 0x316: 0x000c, 0x317: 0x000c,
- 0x318: 0x000c, 0x319: 0x000c, 0x31a: 0x000c, 0x31b: 0x000c, 0x31c: 0x000c, 0x31d: 0x000c,
- 0x31e: 0x000c, 0x31f: 0x000c, 0x320: 0x000c, 0x321: 0x000c, 0x322: 0x000c, 0x323: 0x000c,
- 0x324: 0x000c, 0x325: 0x000c, 0x326: 0x000c, 0x327: 0x000c, 0x328: 0x000c, 0x329: 0x000c,
- 0x32a: 0x000c, 0x32b: 0x000c, 0x32c: 0x000c, 0x32d: 0x000c, 0x32e: 0x000c, 0x32f: 0x000c,
- 0x330: 0x000c, 0x331: 0x000c, 0x332: 0x000c, 0x333: 0x000c, 0x334: 0x000c, 0x335: 0x000c,
- 0x336: 0x000c, 0x337: 0x000c, 0x338: 0x000c, 0x339: 0x000c, 0x33a: 0x000c, 0x33b: 0x000c,
- 0x33c: 0x000c, 0x33d: 0x000c, 0x33e: 0x0001, 0x33f: 0x000c,
- // Block 0xd, offset 0x340
- 0x340: 0x0001, 0x341: 0x000c, 0x342: 0x000c, 0x343: 0x0001, 0x344: 0x000c, 0x345: 0x000c,
- 0x346: 0x0001, 0x347: 0x000c, 0x348: 0x0001, 0x349: 0x0001, 0x34a: 0x0001, 0x34b: 0x0001,
- 0x34c: 0x0001, 0x34d: 0x0001, 0x34e: 0x0001, 0x34f: 0x0001, 0x350: 0x0001, 0x351: 0x0001,
- 0x352: 0x0001, 0x353: 0x0001, 0x354: 0x0001, 0x355: 0x0001, 0x356: 0x0001, 0x357: 0x0001,
- 0x358: 0x0001, 0x359: 0x0001, 0x35a: 0x0001, 0x35b: 0x0001, 0x35c: 0x0001, 0x35d: 0x0001,
- 0x35e: 0x0001, 0x35f: 0x0001, 0x360: 0x0001, 0x361: 0x0001, 0x362: 0x0001, 0x363: 0x0001,
- 0x364: 0x0001, 0x365: 0x0001, 0x366: 0x0001, 0x367: 0x0001, 0x368: 0x0001, 0x369: 0x0001,
- 0x36a: 0x0001, 0x36b: 0x0001, 0x36c: 0x0001, 0x36d: 0x0001, 0x36e: 0x0001, 0x36f: 0x0001,
- 0x370: 0x0001, 0x371: 0x0001, 0x372: 0x0001, 0x373: 0x0001, 0x374: 0x0001, 0x375: 0x0001,
- 0x376: 0x0001, 0x377: 0x0001, 0x378: 0x0001, 0x379: 0x0001, 0x37a: 0x0001, 0x37b: 0x0001,
- 0x37c: 0x0001, 0x37d: 0x0001, 0x37e: 0x0001, 0x37f: 0x0001,
- // Block 0xe, offset 0x380
- 0x380: 0x0005, 0x381: 0x0005, 0x382: 0x0005, 0x383: 0x0005, 0x384: 0x0005, 0x385: 0x0005,
- 0x386: 0x000a, 0x387: 0x000a, 0x388: 0x000d, 0x389: 0x0004, 0x38a: 0x0004, 0x38b: 0x000d,
- 0x38c: 0x0006, 0x38d: 0x000d, 0x38e: 0x000a, 0x38f: 0x000a, 0x390: 0x000c, 0x391: 0x000c,
- 0x392: 0x000c, 0x393: 0x000c, 0x394: 0x000c, 0x395: 0x000c, 0x396: 0x000c, 0x397: 0x000c,
- 0x398: 0x000c, 0x399: 0x000c, 0x39a: 0x000c, 0x39b: 0x000d, 0x39c: 0x000d, 0x39d: 0x000d,
- 0x39e: 0x000d, 0x39f: 0x000d, 0x3a0: 0x000d, 0x3a1: 0x000d, 0x3a2: 0x000d, 0x3a3: 0x000d,
- 0x3a4: 0x000d, 0x3a5: 0x000d, 0x3a6: 0x000d, 0x3a7: 0x000d, 0x3a8: 0x000d, 0x3a9: 0x000d,
- 0x3aa: 0x000d, 0x3ab: 0x000d, 0x3ac: 0x000d, 0x3ad: 0x000d, 0x3ae: 0x000d, 0x3af: 0x000d,
- 0x3b0: 0x000d, 0x3b1: 0x000d, 0x3b2: 0x000d, 0x3b3: 0x000d, 0x3b4: 0x000d, 0x3b5: 0x000d,
- 0x3b6: 0x000d, 0x3b7: 0x000d, 0x3b8: 0x000d, 0x3b9: 0x000d, 0x3ba: 0x000d, 0x3bb: 0x000d,
- 0x3bc: 0x000d, 0x3bd: 0x000d, 0x3be: 0x000d, 0x3bf: 0x000d,
- // Block 0xf, offset 0x3c0
- 0x3c0: 0x000d, 0x3c1: 0x000d, 0x3c2: 0x000d, 0x3c3: 0x000d, 0x3c4: 0x000d, 0x3c5: 0x000d,
- 0x3c6: 0x000d, 0x3c7: 0x000d, 0x3c8: 0x000d, 0x3c9: 0x000d, 0x3ca: 0x000d, 0x3cb: 0x000c,
- 0x3cc: 0x000c, 0x3cd: 0x000c, 0x3ce: 0x000c, 0x3cf: 0x000c, 0x3d0: 0x000c, 0x3d1: 0x000c,
- 0x3d2: 0x000c, 0x3d3: 0x000c, 0x3d4: 0x000c, 0x3d5: 0x000c, 0x3d6: 0x000c, 0x3d7: 0x000c,
- 0x3d8: 0x000c, 0x3d9: 0x000c, 0x3da: 0x000c, 0x3db: 0x000c, 0x3dc: 0x000c, 0x3dd: 0x000c,
- 0x3de: 0x000c, 0x3df: 0x000c, 0x3e0: 0x0005, 0x3e1: 0x0005, 0x3e2: 0x0005, 0x3e3: 0x0005,
- 0x3e4: 0x0005, 0x3e5: 0x0005, 0x3e6: 0x0005, 0x3e7: 0x0005, 0x3e8: 0x0005, 0x3e9: 0x0005,
- 0x3ea: 0x0004, 0x3eb: 0x0005, 0x3ec: 0x0005, 0x3ed: 0x000d, 0x3ee: 0x000d, 0x3ef: 0x000d,
- 0x3f0: 0x000c, 0x3f1: 0x000d, 0x3f2: 0x000d, 0x3f3: 0x000d, 0x3f4: 0x000d, 0x3f5: 0x000d,
- 0x3f6: 0x000d, 0x3f7: 0x000d, 0x3f8: 0x000d, 0x3f9: 0x000d, 0x3fa: 0x000d, 0x3fb: 0x000d,
- 0x3fc: 0x000d, 0x3fd: 0x000d, 0x3fe: 0x000d, 0x3ff: 0x000d,
- // Block 0x10, offset 0x400
- 0x400: 0x000d, 0x401: 0x000d, 0x402: 0x000d, 0x403: 0x000d, 0x404: 0x000d, 0x405: 0x000d,
- 0x406: 0x000d, 0x407: 0x000d, 0x408: 0x000d, 0x409: 0x000d, 0x40a: 0x000d, 0x40b: 0x000d,
- 0x40c: 0x000d, 0x40d: 0x000d, 0x40e: 0x000d, 0x40f: 0x000d, 0x410: 0x000d, 0x411: 0x000d,
- 0x412: 0x000d, 0x413: 0x000d, 0x414: 0x000d, 0x415: 0x000d, 0x416: 0x000d, 0x417: 0x000d,
- 0x418: 0x000d, 0x419: 0x000d, 0x41a: 0x000d, 0x41b: 0x000d, 0x41c: 0x000d, 0x41d: 0x000d,
- 0x41e: 0x000d, 0x41f: 0x000d, 0x420: 0x000d, 0x421: 0x000d, 0x422: 0x000d, 0x423: 0x000d,
- 0x424: 0x000d, 0x425: 0x000d, 0x426: 0x000d, 0x427: 0x000d, 0x428: 0x000d, 0x429: 0x000d,
- 0x42a: 0x000d, 0x42b: 0x000d, 0x42c: 0x000d, 0x42d: 0x000d, 0x42e: 0x000d, 0x42f: 0x000d,
- 0x430: 0x000d, 0x431: 0x000d, 0x432: 0x000d, 0x433: 0x000d, 0x434: 0x000d, 0x435: 0x000d,
- 0x436: 0x000d, 0x437: 0x000d, 0x438: 0x000d, 0x439: 0x000d, 0x43a: 0x000d, 0x43b: 0x000d,
- 0x43c: 0x000d, 0x43d: 0x000d, 0x43e: 0x000d, 0x43f: 0x000d,
- // Block 0x11, offset 0x440
- 0x440: 0x000d, 0x441: 0x000d, 0x442: 0x000d, 0x443: 0x000d, 0x444: 0x000d, 0x445: 0x000d,
- 0x446: 0x000d, 0x447: 0x000d, 0x448: 0x000d, 0x449: 0x000d, 0x44a: 0x000d, 0x44b: 0x000d,
- 0x44c: 0x000d, 0x44d: 0x000d, 0x44e: 0x000d, 0x44f: 0x000d, 0x450: 0x000d, 0x451: 0x000d,
- 0x452: 0x000d, 0x453: 0x000d, 0x454: 0x000d, 0x455: 0x000d, 0x456: 0x000c, 0x457: 0x000c,
- 0x458: 0x000c, 0x459: 0x000c, 0x45a: 0x000c, 0x45b: 0x000c, 0x45c: 0x000c, 0x45d: 0x0005,
- 0x45e: 0x000a, 0x45f: 0x000c, 0x460: 0x000c, 0x461: 0x000c, 0x462: 0x000c, 0x463: 0x000c,
- 0x464: 0x000c, 0x465: 0x000d, 0x466: 0x000d, 0x467: 0x000c, 0x468: 0x000c, 0x469: 0x000a,
- 0x46a: 0x000c, 0x46b: 0x000c, 0x46c: 0x000c, 0x46d: 0x000c, 0x46e: 0x000d, 0x46f: 0x000d,
- 0x470: 0x0002, 0x471: 0x0002, 0x472: 0x0002, 0x473: 0x0002, 0x474: 0x0002, 0x475: 0x0002,
- 0x476: 0x0002, 0x477: 0x0002, 0x478: 0x0002, 0x479: 0x0002, 0x47a: 0x000d, 0x47b: 0x000d,
- 0x47c: 0x000d, 0x47d: 0x000d, 0x47e: 0x000d, 0x47f: 0x000d,
- // Block 0x12, offset 0x480
- 0x480: 0x000d, 0x481: 0x000d, 0x482: 0x000d, 0x483: 0x000d, 0x484: 0x000d, 0x485: 0x000d,
- 0x486: 0x000d, 0x487: 0x000d, 0x488: 0x000d, 0x489: 0x000d, 0x48a: 0x000d, 0x48b: 0x000d,
- 0x48c: 0x000d, 0x48d: 0x000d, 0x48e: 0x000d, 0x48f: 0x000d, 0x490: 0x000d, 0x491: 0x000c,
- 0x492: 0x000d, 0x493: 0x000d, 0x494: 0x000d, 0x495: 0x000d, 0x496: 0x000d, 0x497: 0x000d,
- 0x498: 0x000d, 0x499: 0x000d, 0x49a: 0x000d, 0x49b: 0x000d, 0x49c: 0x000d, 0x49d: 0x000d,
- 0x49e: 0x000d, 0x49f: 0x000d, 0x4a0: 0x000d, 0x4a1: 0x000d, 0x4a2: 0x000d, 0x4a3: 0x000d,
- 0x4a4: 0x000d, 0x4a5: 0x000d, 0x4a6: 0x000d, 0x4a7: 0x000d, 0x4a8: 0x000d, 0x4a9: 0x000d,
- 0x4aa: 0x000d, 0x4ab: 0x000d, 0x4ac: 0x000d, 0x4ad: 0x000d, 0x4ae: 0x000d, 0x4af: 0x000d,
- 0x4b0: 0x000c, 0x4b1: 0x000c, 0x4b2: 0x000c, 0x4b3: 0x000c, 0x4b4: 0x000c, 0x4b5: 0x000c,
- 0x4b6: 0x000c, 0x4b7: 0x000c, 0x4b8: 0x000c, 0x4b9: 0x000c, 0x4ba: 0x000c, 0x4bb: 0x000c,
- 0x4bc: 0x000c, 0x4bd: 0x000c, 0x4be: 0x000c, 0x4bf: 0x000c,
- // Block 0x13, offset 0x4c0
- 0x4c0: 0x000c, 0x4c1: 0x000c, 0x4c2: 0x000c, 0x4c3: 0x000c, 0x4c4: 0x000c, 0x4c5: 0x000c,
- 0x4c6: 0x000c, 0x4c7: 0x000c, 0x4c8: 0x000c, 0x4c9: 0x000c, 0x4ca: 0x000c, 0x4cb: 0x000d,
- 0x4cc: 0x000d, 0x4cd: 0x000d, 0x4ce: 0x000d, 0x4cf: 0x000d, 0x4d0: 0x000d, 0x4d1: 0x000d,
- 0x4d2: 0x000d, 0x4d3: 0x000d, 0x4d4: 0x000d, 0x4d5: 0x000d, 0x4d6: 0x000d, 0x4d7: 0x000d,
- 0x4d8: 0x000d, 0x4d9: 0x000d, 0x4da: 0x000d, 0x4db: 0x000d, 0x4dc: 0x000d, 0x4dd: 0x000d,
- 0x4de: 0x000d, 0x4df: 0x000d, 0x4e0: 0x000d, 0x4e1: 0x000d, 0x4e2: 0x000d, 0x4e3: 0x000d,
- 0x4e4: 0x000d, 0x4e5: 0x000d, 0x4e6: 0x000d, 0x4e7: 0x000d, 0x4e8: 0x000d, 0x4e9: 0x000d,
- 0x4ea: 0x000d, 0x4eb: 0x000d, 0x4ec: 0x000d, 0x4ed: 0x000d, 0x4ee: 0x000d, 0x4ef: 0x000d,
- 0x4f0: 0x000d, 0x4f1: 0x000d, 0x4f2: 0x000d, 0x4f3: 0x000d, 0x4f4: 0x000d, 0x4f5: 0x000d,
- 0x4f6: 0x000d, 0x4f7: 0x000d, 0x4f8: 0x000d, 0x4f9: 0x000d, 0x4fa: 0x000d, 0x4fb: 0x000d,
- 0x4fc: 0x000d, 0x4fd: 0x000d, 0x4fe: 0x000d, 0x4ff: 0x000d,
- // Block 0x14, offset 0x500
- 0x500: 0x000d, 0x501: 0x000d, 0x502: 0x000d, 0x503: 0x000d, 0x504: 0x000d, 0x505: 0x000d,
- 0x506: 0x000d, 0x507: 0x000d, 0x508: 0x000d, 0x509: 0x000d, 0x50a: 0x000d, 0x50b: 0x000d,
- 0x50c: 0x000d, 0x50d: 0x000d, 0x50e: 0x000d, 0x50f: 0x000d, 0x510: 0x000d, 0x511: 0x000d,
- 0x512: 0x000d, 0x513: 0x000d, 0x514: 0x000d, 0x515: 0x000d, 0x516: 0x000d, 0x517: 0x000d,
- 0x518: 0x000d, 0x519: 0x000d, 0x51a: 0x000d, 0x51b: 0x000d, 0x51c: 0x000d, 0x51d: 0x000d,
- 0x51e: 0x000d, 0x51f: 0x000d, 0x520: 0x000d, 0x521: 0x000d, 0x522: 0x000d, 0x523: 0x000d,
- 0x524: 0x000d, 0x525: 0x000d, 0x526: 0x000c, 0x527: 0x000c, 0x528: 0x000c, 0x529: 0x000c,
- 0x52a: 0x000c, 0x52b: 0x000c, 0x52c: 0x000c, 0x52d: 0x000c, 0x52e: 0x000c, 0x52f: 0x000c,
- 0x530: 0x000c, 0x531: 0x000d, 0x532: 0x000d, 0x533: 0x000d, 0x534: 0x000d, 0x535: 0x000d,
- 0x536: 0x000d, 0x537: 0x000d, 0x538: 0x000d, 0x539: 0x000d, 0x53a: 0x000d, 0x53b: 0x000d,
- 0x53c: 0x000d, 0x53d: 0x000d, 0x53e: 0x000d, 0x53f: 0x000d,
- // Block 0x15, offset 0x540
- 0x540: 0x0001, 0x541: 0x0001, 0x542: 0x0001, 0x543: 0x0001, 0x544: 0x0001, 0x545: 0x0001,
- 0x546: 0x0001, 0x547: 0x0001, 0x548: 0x0001, 0x549: 0x0001, 0x54a: 0x0001, 0x54b: 0x0001,
- 0x54c: 0x0001, 0x54d: 0x0001, 0x54e: 0x0001, 0x54f: 0x0001, 0x550: 0x0001, 0x551: 0x0001,
- 0x552: 0x0001, 0x553: 0x0001, 0x554: 0x0001, 0x555: 0x0001, 0x556: 0x0001, 0x557: 0x0001,
- 0x558: 0x0001, 0x559: 0x0001, 0x55a: 0x0001, 0x55b: 0x0001, 0x55c: 0x0001, 0x55d: 0x0001,
- 0x55e: 0x0001, 0x55f: 0x0001, 0x560: 0x0001, 0x561: 0x0001, 0x562: 0x0001, 0x563: 0x0001,
- 0x564: 0x0001, 0x565: 0x0001, 0x566: 0x0001, 0x567: 0x0001, 0x568: 0x0001, 0x569: 0x0001,
- 0x56a: 0x0001, 0x56b: 0x000c, 0x56c: 0x000c, 0x56d: 0x000c, 0x56e: 0x000c, 0x56f: 0x000c,
- 0x570: 0x000c, 0x571: 0x000c, 0x572: 0x000c, 0x573: 0x000c, 0x574: 0x0001, 0x575: 0x0001,
- 0x576: 0x000a, 0x577: 0x000a, 0x578: 0x000a, 0x579: 0x000a, 0x57a: 0x0001, 0x57b: 0x0001,
- 0x57c: 0x0001, 0x57d: 0x000c, 0x57e: 0x0001, 0x57f: 0x0001,
- // Block 0x16, offset 0x580
- 0x580: 0x0001, 0x581: 0x0001, 0x582: 0x0001, 0x583: 0x0001, 0x584: 0x0001, 0x585: 0x0001,
- 0x586: 0x0001, 0x587: 0x0001, 0x588: 0x0001, 0x589: 0x0001, 0x58a: 0x0001, 0x58b: 0x0001,
- 0x58c: 0x0001, 0x58d: 0x0001, 0x58e: 0x0001, 0x58f: 0x0001, 0x590: 0x0001, 0x591: 0x0001,
- 0x592: 0x0001, 0x593: 0x0001, 0x594: 0x0001, 0x595: 0x0001, 0x596: 0x000c, 0x597: 0x000c,
- 0x598: 0x000c, 0x599: 0x000c, 0x59a: 0x0001, 0x59b: 0x000c, 0x59c: 0x000c, 0x59d: 0x000c,
- 0x59e: 0x000c, 0x59f: 0x000c, 0x5a0: 0x000c, 0x5a1: 0x000c, 0x5a2: 0x000c, 0x5a3: 0x000c,
- 0x5a4: 0x0001, 0x5a5: 0x000c, 0x5a6: 0x000c, 0x5a7: 0x000c, 0x5a8: 0x0001, 0x5a9: 0x000c,
- 0x5aa: 0x000c, 0x5ab: 0x000c, 0x5ac: 0x000c, 0x5ad: 0x000c, 0x5ae: 0x0001, 0x5af: 0x0001,
- 0x5b0: 0x0001, 0x5b1: 0x0001, 0x5b2: 0x0001, 0x5b3: 0x0001, 0x5b4: 0x0001, 0x5b5: 0x0001,
- 0x5b6: 0x0001, 0x5b7: 0x0001, 0x5b8: 0x0001, 0x5b9: 0x0001, 0x5ba: 0x0001, 0x5bb: 0x0001,
- 0x5bc: 0x0001, 0x5bd: 0x0001, 0x5be: 0x0001, 0x5bf: 0x0001,
- // Block 0x17, offset 0x5c0
- 0x5c0: 0x0001, 0x5c1: 0x0001, 0x5c2: 0x0001, 0x5c3: 0x0001, 0x5c4: 0x0001, 0x5c5: 0x0001,
- 0x5c6: 0x0001, 0x5c7: 0x0001, 0x5c8: 0x0001, 0x5c9: 0x0001, 0x5ca: 0x0001, 0x5cb: 0x0001,
- 0x5cc: 0x0001, 0x5cd: 0x0001, 0x5ce: 0x0001, 0x5cf: 0x0001, 0x5d0: 0x0001, 0x5d1: 0x0001,
- 0x5d2: 0x0001, 0x5d3: 0x0001, 0x5d4: 0x0001, 0x5d5: 0x0001, 0x5d6: 0x0001, 0x5d7: 0x0001,
- 0x5d8: 0x0001, 0x5d9: 0x000c, 0x5da: 0x000c, 0x5db: 0x000c, 0x5dc: 0x0001, 0x5dd: 0x0001,
- 0x5de: 0x0001, 0x5df: 0x0001, 0x5e0: 0x000d, 0x5e1: 0x000d, 0x5e2: 0x000d, 0x5e3: 0x000d,
- 0x5e4: 0x000d, 0x5e5: 0x000d, 0x5e6: 0x000d, 0x5e7: 0x000d, 0x5e8: 0x000d, 0x5e9: 0x000d,
- 0x5ea: 0x000d, 0x5eb: 0x000d, 0x5ec: 0x000d, 0x5ed: 0x000d, 0x5ee: 0x000d, 0x5ef: 0x000d,
- 0x5f0: 0x0001, 0x5f1: 0x0001, 0x5f2: 0x0001, 0x5f3: 0x0001, 0x5f4: 0x0001, 0x5f5: 0x0001,
- 0x5f6: 0x0001, 0x5f7: 0x0001, 0x5f8: 0x0001, 0x5f9: 0x0001, 0x5fa: 0x0001, 0x5fb: 0x0001,
- 0x5fc: 0x0001, 0x5fd: 0x0001, 0x5fe: 0x0001, 0x5ff: 0x0001,
- // Block 0x18, offset 0x600
- 0x600: 0x0001, 0x601: 0x0001, 0x602: 0x0001, 0x603: 0x0001, 0x604: 0x0001, 0x605: 0x0001,
- 0x606: 0x0001, 0x607: 0x0001, 0x608: 0x0001, 0x609: 0x0001, 0x60a: 0x0001, 0x60b: 0x0001,
- 0x60c: 0x0001, 0x60d: 0x0001, 0x60e: 0x0001, 0x60f: 0x0001, 0x610: 0x0001, 0x611: 0x0001,
- 0x612: 0x0001, 0x613: 0x0001, 0x614: 0x0001, 0x615: 0x0001, 0x616: 0x0001, 0x617: 0x0001,
- 0x618: 0x0001, 0x619: 0x0001, 0x61a: 0x0001, 0x61b: 0x0001, 0x61c: 0x0001, 0x61d: 0x0001,
- 0x61e: 0x0001, 0x61f: 0x0001, 0x620: 0x000d, 0x621: 0x000d, 0x622: 0x000d, 0x623: 0x000d,
- 0x624: 0x000d, 0x625: 0x000d, 0x626: 0x000d, 0x627: 0x000d, 0x628: 0x000d, 0x629: 0x000d,
- 0x62a: 0x000d, 0x62b: 0x000d, 0x62c: 0x000d, 0x62d: 0x000d, 0x62e: 0x000d, 0x62f: 0x000d,
- 0x630: 0x000d, 0x631: 0x000d, 0x632: 0x000d, 0x633: 0x000d, 0x634: 0x000d, 0x635: 0x000d,
- 0x636: 0x000d, 0x637: 0x000d, 0x638: 0x000d, 0x639: 0x000d, 0x63a: 0x000d, 0x63b: 0x000d,
- 0x63c: 0x000d, 0x63d: 0x000d, 0x63e: 0x000d, 0x63f: 0x000d,
- // Block 0x19, offset 0x640
- 0x640: 0x000d, 0x641: 0x000d, 0x642: 0x000d, 0x643: 0x000d, 0x644: 0x000d, 0x645: 0x000d,
- 0x646: 0x000d, 0x647: 0x000d, 0x648: 0x000d, 0x649: 0x000d, 0x64a: 0x000d, 0x64b: 0x000d,
- 0x64c: 0x000d, 0x64d: 0x000d, 0x64e: 0x000d, 0x64f: 0x000d, 0x650: 0x000d, 0x651: 0x000d,
- 0x652: 0x000d, 0x653: 0x000c, 0x654: 0x000c, 0x655: 0x000c, 0x656: 0x000c, 0x657: 0x000c,
- 0x658: 0x000c, 0x659: 0x000c, 0x65a: 0x000c, 0x65b: 0x000c, 0x65c: 0x000c, 0x65d: 0x000c,
- 0x65e: 0x000c, 0x65f: 0x000c, 0x660: 0x000c, 0x661: 0x000c, 0x662: 0x0005, 0x663: 0x000c,
- 0x664: 0x000c, 0x665: 0x000c, 0x666: 0x000c, 0x667: 0x000c, 0x668: 0x000c, 0x669: 0x000c,
- 0x66a: 0x000c, 0x66b: 0x000c, 0x66c: 0x000c, 0x66d: 0x000c, 0x66e: 0x000c, 0x66f: 0x000c,
- 0x670: 0x000c, 0x671: 0x000c, 0x672: 0x000c, 0x673: 0x000c, 0x674: 0x000c, 0x675: 0x000c,
- 0x676: 0x000c, 0x677: 0x000c, 0x678: 0x000c, 0x679: 0x000c, 0x67a: 0x000c, 0x67b: 0x000c,
- 0x67c: 0x000c, 0x67d: 0x000c, 0x67e: 0x000c, 0x67f: 0x000c,
- // Block 0x1a, offset 0x680
- 0x680: 0x000c, 0x681: 0x000c, 0x682: 0x000c,
- 0x6ba: 0x000c,
- 0x6bc: 0x000c,
- // Block 0x1b, offset 0x6c0
- 0x6c1: 0x000c, 0x6c2: 0x000c, 0x6c3: 0x000c, 0x6c4: 0x000c, 0x6c5: 0x000c,
- 0x6c6: 0x000c, 0x6c7: 0x000c, 0x6c8: 0x000c,
- 0x6cd: 0x000c, 0x6d1: 0x000c,
- 0x6d2: 0x000c, 0x6d3: 0x000c, 0x6d4: 0x000c, 0x6d5: 0x000c, 0x6d6: 0x000c, 0x6d7: 0x000c,
- 0x6e2: 0x000c, 0x6e3: 0x000c,
- // Block 0x1c, offset 0x700
- 0x701: 0x000c,
- 0x73c: 0x000c,
- // Block 0x1d, offset 0x740
- 0x741: 0x000c, 0x742: 0x000c, 0x743: 0x000c, 0x744: 0x000c,
- 0x74d: 0x000c,
- 0x762: 0x000c, 0x763: 0x000c,
- 0x772: 0x0004, 0x773: 0x0004,
- 0x77b: 0x0004,
- 0x77e: 0x000c,
- // Block 0x1e, offset 0x780
- 0x781: 0x000c, 0x782: 0x000c,
- 0x7bc: 0x000c,
- // Block 0x1f, offset 0x7c0
- 0x7c1: 0x000c, 0x7c2: 0x000c,
- 0x7c7: 0x000c, 0x7c8: 0x000c, 0x7cb: 0x000c,
- 0x7cc: 0x000c, 0x7cd: 0x000c, 0x7d1: 0x000c,
- 0x7f0: 0x000c, 0x7f1: 0x000c, 0x7f5: 0x000c,
- // Block 0x20, offset 0x800
- 0x801: 0x000c, 0x802: 0x000c, 0x803: 0x000c, 0x804: 0x000c, 0x805: 0x000c,
- 0x807: 0x000c, 0x808: 0x000c,
- 0x80d: 0x000c,
- 0x822: 0x000c, 0x823: 0x000c,
- 0x831: 0x0004,
- 0x83a: 0x000c, 0x83b: 0x000c,
- 0x83c: 0x000c, 0x83d: 0x000c, 0x83e: 0x000c, 0x83f: 0x000c,
- // Block 0x21, offset 0x840
- 0x841: 0x000c,
- 0x87c: 0x000c, 0x87f: 0x000c,
- // Block 0x22, offset 0x880
- 0x881: 0x000c, 0x882: 0x000c, 0x883: 0x000c, 0x884: 0x000c,
- 0x88d: 0x000c,
- 0x896: 0x000c,
- 0x8a2: 0x000c, 0x8a3: 0x000c,
- // Block 0x23, offset 0x8c0
- 0x8c2: 0x000c,
- // Block 0x24, offset 0x900
- 0x900: 0x000c,
- 0x90d: 0x000c,
- 0x933: 0x000a, 0x934: 0x000a, 0x935: 0x000a,
- 0x936: 0x000a, 0x937: 0x000a, 0x938: 0x000a, 0x939: 0x0004, 0x93a: 0x000a,
- // Block 0x25, offset 0x940
- 0x940: 0x000c, 0x944: 0x000c,
- 0x97e: 0x000c, 0x97f: 0x000c,
- // Block 0x26, offset 0x980
- 0x980: 0x000c,
- 0x986: 0x000c, 0x987: 0x000c, 0x988: 0x000c, 0x98a: 0x000c, 0x98b: 0x000c,
- 0x98c: 0x000c, 0x98d: 0x000c,
- 0x995: 0x000c, 0x996: 0x000c,
- 0x9a2: 0x000c, 0x9a3: 0x000c,
- 0x9b8: 0x000a, 0x9b9: 0x000a, 0x9ba: 0x000a, 0x9bb: 0x000a,
- 0x9bc: 0x000a, 0x9bd: 0x000a, 0x9be: 0x000a,
- // Block 0x27, offset 0x9c0
- 0x9cc: 0x000c, 0x9cd: 0x000c,
- 0x9e2: 0x000c, 0x9e3: 0x000c,
- // Block 0x28, offset 0xa00
- 0xa00: 0x000c, 0xa01: 0x000c,
- 0xa3b: 0x000c,
- 0xa3c: 0x000c,
- // Block 0x29, offset 0xa40
- 0xa41: 0x000c, 0xa42: 0x000c, 0xa43: 0x000c, 0xa44: 0x000c,
- 0xa4d: 0x000c,
- 0xa62: 0x000c, 0xa63: 0x000c,
- // Block 0x2a, offset 0xa80
- 0xa8a: 0x000c,
- 0xa92: 0x000c, 0xa93: 0x000c, 0xa94: 0x000c, 0xa96: 0x000c,
- // Block 0x2b, offset 0xac0
- 0xaf1: 0x000c, 0xaf4: 0x000c, 0xaf5: 0x000c,
- 0xaf6: 0x000c, 0xaf7: 0x000c, 0xaf8: 0x000c, 0xaf9: 0x000c, 0xafa: 0x000c,
- 0xaff: 0x0004,
- // Block 0x2c, offset 0xb00
- 0xb07: 0x000c, 0xb08: 0x000c, 0xb09: 0x000c, 0xb0a: 0x000c, 0xb0b: 0x000c,
- 0xb0c: 0x000c, 0xb0d: 0x000c, 0xb0e: 0x000c,
- // Block 0x2d, offset 0xb40
- 0xb71: 0x000c, 0xb74: 0x000c, 0xb75: 0x000c,
- 0xb76: 0x000c, 0xb77: 0x000c, 0xb78: 0x000c, 0xb79: 0x000c, 0xb7a: 0x000c, 0xb7b: 0x000c,
- 0xb7c: 0x000c,
- // Block 0x2e, offset 0xb80
- 0xb88: 0x000c, 0xb89: 0x000c, 0xb8a: 0x000c, 0xb8b: 0x000c,
- 0xb8c: 0x000c, 0xb8d: 0x000c,
- // Block 0x2f, offset 0xbc0
- 0xbd8: 0x000c, 0xbd9: 0x000c,
- 0xbf5: 0x000c,
- 0xbf7: 0x000c, 0xbf9: 0x000c, 0xbfa: 0x003a, 0xbfb: 0x002a,
- 0xbfc: 0x003a, 0xbfd: 0x002a,
- // Block 0x30, offset 0xc00
- 0xc31: 0x000c, 0xc32: 0x000c, 0xc33: 0x000c, 0xc34: 0x000c, 0xc35: 0x000c,
- 0xc36: 0x000c, 0xc37: 0x000c, 0xc38: 0x000c, 0xc39: 0x000c, 0xc3a: 0x000c, 0xc3b: 0x000c,
- 0xc3c: 0x000c, 0xc3d: 0x000c, 0xc3e: 0x000c,
- // Block 0x31, offset 0xc40
- 0xc40: 0x000c, 0xc41: 0x000c, 0xc42: 0x000c, 0xc43: 0x000c, 0xc44: 0x000c,
- 0xc46: 0x000c, 0xc47: 0x000c,
- 0xc4d: 0x000c, 0xc4e: 0x000c, 0xc4f: 0x000c, 0xc50: 0x000c, 0xc51: 0x000c,
- 0xc52: 0x000c, 0xc53: 0x000c, 0xc54: 0x000c, 0xc55: 0x000c, 0xc56: 0x000c, 0xc57: 0x000c,
- 0xc59: 0x000c, 0xc5a: 0x000c, 0xc5b: 0x000c, 0xc5c: 0x000c, 0xc5d: 0x000c,
- 0xc5e: 0x000c, 0xc5f: 0x000c, 0xc60: 0x000c, 0xc61: 0x000c, 0xc62: 0x000c, 0xc63: 0x000c,
- 0xc64: 0x000c, 0xc65: 0x000c, 0xc66: 0x000c, 0xc67: 0x000c, 0xc68: 0x000c, 0xc69: 0x000c,
- 0xc6a: 0x000c, 0xc6b: 0x000c, 0xc6c: 0x000c, 0xc6d: 0x000c, 0xc6e: 0x000c, 0xc6f: 0x000c,
- 0xc70: 0x000c, 0xc71: 0x000c, 0xc72: 0x000c, 0xc73: 0x000c, 0xc74: 0x000c, 0xc75: 0x000c,
- 0xc76: 0x000c, 0xc77: 0x000c, 0xc78: 0x000c, 0xc79: 0x000c, 0xc7a: 0x000c, 0xc7b: 0x000c,
- 0xc7c: 0x000c,
- // Block 0x32, offset 0xc80
- 0xc86: 0x000c,
- // Block 0x33, offset 0xcc0
- 0xced: 0x000c, 0xcee: 0x000c, 0xcef: 0x000c,
- 0xcf0: 0x000c, 0xcf2: 0x000c, 0xcf3: 0x000c, 0xcf4: 0x000c, 0xcf5: 0x000c,
- 0xcf6: 0x000c, 0xcf7: 0x000c, 0xcf9: 0x000c, 0xcfa: 0x000c,
- 0xcfd: 0x000c, 0xcfe: 0x000c,
- // Block 0x34, offset 0xd00
- 0xd18: 0x000c, 0xd19: 0x000c,
- 0xd1e: 0x000c, 0xd1f: 0x000c, 0xd20: 0x000c,
- 0xd31: 0x000c, 0xd32: 0x000c, 0xd33: 0x000c, 0xd34: 0x000c,
- // Block 0x35, offset 0xd40
- 0xd42: 0x000c, 0xd45: 0x000c,
- 0xd46: 0x000c,
- 0xd4d: 0x000c,
- 0xd5d: 0x000c,
- // Block 0x36, offset 0xd80
- 0xd9d: 0x000c,
- 0xd9e: 0x000c, 0xd9f: 0x000c,
- // Block 0x37, offset 0xdc0
- 0xdd0: 0x000a, 0xdd1: 0x000a,
- 0xdd2: 0x000a, 0xdd3: 0x000a, 0xdd4: 0x000a, 0xdd5: 0x000a, 0xdd6: 0x000a, 0xdd7: 0x000a,
- 0xdd8: 0x000a, 0xdd9: 0x000a,
- // Block 0x38, offset 0xe00
- 0xe00: 0x000a,
- // Block 0x39, offset 0xe40
- 0xe40: 0x0009,
- 0xe5b: 0x007a, 0xe5c: 0x006a,
- // Block 0x3a, offset 0xe80
- 0xe92: 0x000c, 0xe93: 0x000c, 0xe94: 0x000c,
- 0xeb2: 0x000c, 0xeb3: 0x000c, 0xeb4: 0x000c,
- // Block 0x3b, offset 0xec0
- 0xed2: 0x000c, 0xed3: 0x000c,
- 0xef2: 0x000c, 0xef3: 0x000c,
- // Block 0x3c, offset 0xf00
- 0xf34: 0x000c, 0xf35: 0x000c,
- 0xf37: 0x000c, 0xf38: 0x000c, 0xf39: 0x000c, 0xf3a: 0x000c, 0xf3b: 0x000c,
- 0xf3c: 0x000c, 0xf3d: 0x000c,
- // Block 0x3d, offset 0xf40
- 0xf46: 0x000c, 0xf49: 0x000c, 0xf4a: 0x000c, 0xf4b: 0x000c,
- 0xf4c: 0x000c, 0xf4d: 0x000c, 0xf4e: 0x000c, 0xf4f: 0x000c, 0xf50: 0x000c, 0xf51: 0x000c,
- 0xf52: 0x000c, 0xf53: 0x000c,
- 0xf5b: 0x0004, 0xf5d: 0x000c,
- 0xf70: 0x000a, 0xf71: 0x000a, 0xf72: 0x000a, 0xf73: 0x000a, 0xf74: 0x000a, 0xf75: 0x000a,
- 0xf76: 0x000a, 0xf77: 0x000a, 0xf78: 0x000a, 0xf79: 0x000a,
- // Block 0x3e, offset 0xf80
- 0xf80: 0x000a, 0xf81: 0x000a, 0xf82: 0x000a, 0xf83: 0x000a, 0xf84: 0x000a, 0xf85: 0x000a,
- 0xf86: 0x000a, 0xf87: 0x000a, 0xf88: 0x000a, 0xf89: 0x000a, 0xf8a: 0x000a, 0xf8b: 0x000c,
- 0xf8c: 0x000c, 0xf8d: 0x000c, 0xf8e: 0x000b,
- // Block 0x3f, offset 0xfc0
- 0xfc5: 0x000c,
- 0xfc6: 0x000c,
- 0xfe9: 0x000c,
- // Block 0x40, offset 0x1000
- 0x1020: 0x000c, 0x1021: 0x000c, 0x1022: 0x000c,
- 0x1027: 0x000c, 0x1028: 0x000c,
- 0x1032: 0x000c,
- 0x1039: 0x000c, 0x103a: 0x000c, 0x103b: 0x000c,
- // Block 0x41, offset 0x1040
- 0x1040: 0x000a, 0x1044: 0x000a, 0x1045: 0x000a,
- // Block 0x42, offset 0x1080
- 0x109e: 0x000a, 0x109f: 0x000a, 0x10a0: 0x000a, 0x10a1: 0x000a, 0x10a2: 0x000a, 0x10a3: 0x000a,
- 0x10a4: 0x000a, 0x10a5: 0x000a, 0x10a6: 0x000a, 0x10a7: 0x000a, 0x10a8: 0x000a, 0x10a9: 0x000a,
- 0x10aa: 0x000a, 0x10ab: 0x000a, 0x10ac: 0x000a, 0x10ad: 0x000a, 0x10ae: 0x000a, 0x10af: 0x000a,
- 0x10b0: 0x000a, 0x10b1: 0x000a, 0x10b2: 0x000a, 0x10b3: 0x000a, 0x10b4: 0x000a, 0x10b5: 0x000a,
- 0x10b6: 0x000a, 0x10b7: 0x000a, 0x10b8: 0x000a, 0x10b9: 0x000a, 0x10ba: 0x000a, 0x10bb: 0x000a,
- 0x10bc: 0x000a, 0x10bd: 0x000a, 0x10be: 0x000a, 0x10bf: 0x000a,
- // Block 0x43, offset 0x10c0
- 0x10d7: 0x000c,
- 0x10d8: 0x000c, 0x10db: 0x000c,
- // Block 0x44, offset 0x1100
- 0x1116: 0x000c,
- 0x1118: 0x000c, 0x1119: 0x000c, 0x111a: 0x000c, 0x111b: 0x000c, 0x111c: 0x000c, 0x111d: 0x000c,
- 0x111e: 0x000c, 0x1120: 0x000c, 0x1122: 0x000c,
- 0x1125: 0x000c, 0x1126: 0x000c, 0x1127: 0x000c, 0x1128: 0x000c, 0x1129: 0x000c,
- 0x112a: 0x000c, 0x112b: 0x000c, 0x112c: 0x000c,
- 0x1133: 0x000c, 0x1134: 0x000c, 0x1135: 0x000c,
- 0x1136: 0x000c, 0x1137: 0x000c, 0x1138: 0x000c, 0x1139: 0x000c, 0x113a: 0x000c, 0x113b: 0x000c,
- 0x113c: 0x000c, 0x113f: 0x000c,
- // Block 0x45, offset 0x1140
- 0x1170: 0x000c, 0x1171: 0x000c, 0x1172: 0x000c, 0x1173: 0x000c, 0x1174: 0x000c, 0x1175: 0x000c,
- 0x1176: 0x000c, 0x1177: 0x000c, 0x1178: 0x000c, 0x1179: 0x000c, 0x117a: 0x000c, 0x117b: 0x000c,
- 0x117c: 0x000c, 0x117d: 0x000c, 0x117e: 0x000c,
- // Block 0x46, offset 0x1180
- 0x1180: 0x000c, 0x1181: 0x000c, 0x1182: 0x000c, 0x1183: 0x000c,
- 0x11b4: 0x000c,
- 0x11b6: 0x000c, 0x11b7: 0x000c, 0x11b8: 0x000c, 0x11b9: 0x000c, 0x11ba: 0x000c,
- 0x11bc: 0x000c,
- // Block 0x47, offset 0x11c0
- 0x11c2: 0x000c,
- 0x11eb: 0x000c, 0x11ec: 0x000c, 0x11ed: 0x000c, 0x11ee: 0x000c, 0x11ef: 0x000c,
- 0x11f0: 0x000c, 0x11f1: 0x000c, 0x11f2: 0x000c, 0x11f3: 0x000c,
- // Block 0x48, offset 0x1200
- 0x1200: 0x000c, 0x1201: 0x000c,
- 0x1222: 0x000c, 0x1223: 0x000c,
- 0x1224: 0x000c, 0x1225: 0x000c, 0x1228: 0x000c, 0x1229: 0x000c,
- 0x122b: 0x000c, 0x122c: 0x000c, 0x122d: 0x000c,
- // Block 0x49, offset 0x1240
- 0x1266: 0x000c, 0x1268: 0x000c, 0x1269: 0x000c,
- 0x126d: 0x000c, 0x126f: 0x000c,
- 0x1270: 0x000c, 0x1271: 0x000c,
- // Block 0x4a, offset 0x1280
- 0x12ac: 0x000c, 0x12ad: 0x000c, 0x12ae: 0x000c, 0x12af: 0x000c,
- 0x12b0: 0x000c, 0x12b1: 0x000c, 0x12b2: 0x000c, 0x12b3: 0x000c,
- 0x12b6: 0x000c, 0x12b7: 0x000c,
- // Block 0x4b, offset 0x12c0
- 0x12d0: 0x000c, 0x12d1: 0x000c,
- 0x12d2: 0x000c, 0x12d4: 0x000c, 0x12d5: 0x000c, 0x12d6: 0x000c, 0x12d7: 0x000c,
- 0x12d8: 0x000c, 0x12d9: 0x000c, 0x12da: 0x000c, 0x12db: 0x000c, 0x12dc: 0x000c, 0x12dd: 0x000c,
- 0x12de: 0x000c, 0x12df: 0x000c, 0x12e0: 0x000c, 0x12e2: 0x000c, 0x12e3: 0x000c,
- 0x12e4: 0x000c, 0x12e5: 0x000c, 0x12e6: 0x000c, 0x12e7: 0x000c, 0x12e8: 0x000c,
- 0x12ed: 0x000c,
- 0x12f4: 0x000c,
- 0x12f8: 0x000c, 0x12f9: 0x000c,
- // Block 0x4c, offset 0x1300
- 0x1300: 0x000c, 0x1301: 0x000c, 0x1302: 0x000c, 0x1303: 0x000c, 0x1304: 0x000c, 0x1305: 0x000c,
- 0x1306: 0x000c, 0x1307: 0x000c, 0x1308: 0x000c, 0x1309: 0x000c, 0x130a: 0x000c, 0x130b: 0x000c,
- 0x130c: 0x000c, 0x130d: 0x000c, 0x130e: 0x000c, 0x130f: 0x000c, 0x1310: 0x000c, 0x1311: 0x000c,
- 0x1312: 0x000c, 0x1313: 0x000c, 0x1314: 0x000c, 0x1315: 0x000c, 0x1316: 0x000c, 0x1317: 0x000c,
- 0x1318: 0x000c, 0x1319: 0x000c, 0x131a: 0x000c, 0x131b: 0x000c, 0x131c: 0x000c, 0x131d: 0x000c,
- 0x131e: 0x000c, 0x131f: 0x000c, 0x1320: 0x000c, 0x1321: 0x000c, 0x1322: 0x000c, 0x1323: 0x000c,
- 0x1324: 0x000c, 0x1325: 0x000c, 0x1326: 0x000c, 0x1327: 0x000c, 0x1328: 0x000c, 0x1329: 0x000c,
- 0x132a: 0x000c, 0x132b: 0x000c, 0x132c: 0x000c, 0x132d: 0x000c, 0x132e: 0x000c, 0x132f: 0x000c,
- 0x1330: 0x000c, 0x1331: 0x000c, 0x1332: 0x000c, 0x1333: 0x000c, 0x1334: 0x000c, 0x1335: 0x000c,
- 0x1336: 0x000c, 0x1337: 0x000c, 0x1338: 0x000c, 0x1339: 0x000c, 0x133b: 0x000c,
- 0x133c: 0x000c, 0x133d: 0x000c, 0x133e: 0x000c, 0x133f: 0x000c,
- // Block 0x4d, offset 0x1340
- 0x137d: 0x000a, 0x137f: 0x000a,
- // Block 0x4e, offset 0x1380
- 0x1380: 0x000a, 0x1381: 0x000a,
- 0x138d: 0x000a, 0x138e: 0x000a, 0x138f: 0x000a,
- 0x139d: 0x000a,
- 0x139e: 0x000a, 0x139f: 0x000a,
- 0x13ad: 0x000a, 0x13ae: 0x000a, 0x13af: 0x000a,
- 0x13bd: 0x000a, 0x13be: 0x000a,
- // Block 0x4f, offset 0x13c0
- 0x13c0: 0x0009, 0x13c1: 0x0009, 0x13c2: 0x0009, 0x13c3: 0x0009, 0x13c4: 0x0009, 0x13c5: 0x0009,
- 0x13c6: 0x0009, 0x13c7: 0x0009, 0x13c8: 0x0009, 0x13c9: 0x0009, 0x13ca: 0x0009, 0x13cb: 0x000b,
- 0x13cc: 0x000b, 0x13cd: 0x000b, 0x13cf: 0x0001, 0x13d0: 0x000a, 0x13d1: 0x000a,
- 0x13d2: 0x000a, 0x13d3: 0x000a, 0x13d4: 0x000a, 0x13d5: 0x000a, 0x13d6: 0x000a, 0x13d7: 0x000a,
- 0x13d8: 0x000a, 0x13d9: 0x000a, 0x13da: 0x000a, 0x13db: 0x000a, 0x13dc: 0x000a, 0x13dd: 0x000a,
- 0x13de: 0x000a, 0x13df: 0x000a, 0x13e0: 0x000a, 0x13e1: 0x000a, 0x13e2: 0x000a, 0x13e3: 0x000a,
- 0x13e4: 0x000a, 0x13e5: 0x000a, 0x13e6: 0x000a, 0x13e7: 0x000a, 0x13e8: 0x0009, 0x13e9: 0x0007,
- 0x13ea: 0x000e, 0x13eb: 0x000e, 0x13ec: 0x000e, 0x13ed: 0x000e, 0x13ee: 0x000e, 0x13ef: 0x0006,
- 0x13f0: 0x0004, 0x13f1: 0x0004, 0x13f2: 0x0004, 0x13f3: 0x0004, 0x13f4: 0x0004, 0x13f5: 0x000a,
- 0x13f6: 0x000a, 0x13f7: 0x000a, 0x13f8: 0x000a, 0x13f9: 0x000a, 0x13fa: 0x000a, 0x13fb: 0x000a,
- 0x13fc: 0x000a, 0x13fd: 0x000a, 0x13fe: 0x000a, 0x13ff: 0x000a,
- // Block 0x50, offset 0x1400
- 0x1400: 0x000a, 0x1401: 0x000a, 0x1402: 0x000a, 0x1403: 0x000a, 0x1404: 0x0006, 0x1405: 0x009a,
- 0x1406: 0x008a, 0x1407: 0x000a, 0x1408: 0x000a, 0x1409: 0x000a, 0x140a: 0x000a, 0x140b: 0x000a,
- 0x140c: 0x000a, 0x140d: 0x000a, 0x140e: 0x000a, 0x140f: 0x000a, 0x1410: 0x000a, 0x1411: 0x000a,
- 0x1412: 0x000a, 0x1413: 0x000a, 0x1414: 0x000a, 0x1415: 0x000a, 0x1416: 0x000a, 0x1417: 0x000a,
- 0x1418: 0x000a, 0x1419: 0x000a, 0x141a: 0x000a, 0x141b: 0x000a, 0x141c: 0x000a, 0x141d: 0x000a,
- 0x141e: 0x000a, 0x141f: 0x0009, 0x1420: 0x000b, 0x1421: 0x000b, 0x1422: 0x000b, 0x1423: 0x000b,
- 0x1424: 0x000b, 0x1425: 0x000b, 0x1426: 0x000e, 0x1427: 0x000e, 0x1428: 0x000e, 0x1429: 0x000e,
- 0x142a: 0x000b, 0x142b: 0x000b, 0x142c: 0x000b, 0x142d: 0x000b, 0x142e: 0x000b, 0x142f: 0x000b,
- 0x1430: 0x0002, 0x1434: 0x0002, 0x1435: 0x0002,
- 0x1436: 0x0002, 0x1437: 0x0002, 0x1438: 0x0002, 0x1439: 0x0002, 0x143a: 0x0003, 0x143b: 0x0003,
- 0x143c: 0x000a, 0x143d: 0x009a, 0x143e: 0x008a,
- // Block 0x51, offset 0x1440
- 0x1440: 0x0002, 0x1441: 0x0002, 0x1442: 0x0002, 0x1443: 0x0002, 0x1444: 0x0002, 0x1445: 0x0002,
- 0x1446: 0x0002, 0x1447: 0x0002, 0x1448: 0x0002, 0x1449: 0x0002, 0x144a: 0x0003, 0x144b: 0x0003,
- 0x144c: 0x000a, 0x144d: 0x009a, 0x144e: 0x008a,
- 0x1460: 0x0004, 0x1461: 0x0004, 0x1462: 0x0004, 0x1463: 0x0004,
- 0x1464: 0x0004, 0x1465: 0x0004, 0x1466: 0x0004, 0x1467: 0x0004, 0x1468: 0x0004, 0x1469: 0x0004,
- 0x146a: 0x0004, 0x146b: 0x0004, 0x146c: 0x0004, 0x146d: 0x0004, 0x146e: 0x0004, 0x146f: 0x0004,
- 0x1470: 0x0004, 0x1471: 0x0004, 0x1472: 0x0004, 0x1473: 0x0004, 0x1474: 0x0004, 0x1475: 0x0004,
- 0x1476: 0x0004, 0x1477: 0x0004, 0x1478: 0x0004, 0x1479: 0x0004, 0x147a: 0x0004, 0x147b: 0x0004,
- 0x147c: 0x0004, 0x147d: 0x0004, 0x147e: 0x0004, 0x147f: 0x0004,
- // Block 0x52, offset 0x1480
- 0x1480: 0x0004, 0x1481: 0x0004, 0x1482: 0x0004, 0x1483: 0x0004, 0x1484: 0x0004, 0x1485: 0x0004,
- 0x1486: 0x0004, 0x1487: 0x0004, 0x1488: 0x0004, 0x1489: 0x0004, 0x148a: 0x0004, 0x148b: 0x0004,
- 0x148c: 0x0004, 0x148d: 0x0004, 0x148e: 0x0004, 0x148f: 0x0004, 0x1490: 0x000c, 0x1491: 0x000c,
- 0x1492: 0x000c, 0x1493: 0x000c, 0x1494: 0x000c, 0x1495: 0x000c, 0x1496: 0x000c, 0x1497: 0x000c,
- 0x1498: 0x000c, 0x1499: 0x000c, 0x149a: 0x000c, 0x149b: 0x000c, 0x149c: 0x000c, 0x149d: 0x000c,
- 0x149e: 0x000c, 0x149f: 0x000c, 0x14a0: 0x000c, 0x14a1: 0x000c, 0x14a2: 0x000c, 0x14a3: 0x000c,
- 0x14a4: 0x000c, 0x14a5: 0x000c, 0x14a6: 0x000c, 0x14a7: 0x000c, 0x14a8: 0x000c, 0x14a9: 0x000c,
- 0x14aa: 0x000c, 0x14ab: 0x000c, 0x14ac: 0x000c, 0x14ad: 0x000c, 0x14ae: 0x000c, 0x14af: 0x000c,
- 0x14b0: 0x000c,
- // Block 0x53, offset 0x14c0
- 0x14c0: 0x000a, 0x14c1: 0x000a, 0x14c3: 0x000a, 0x14c4: 0x000a, 0x14c5: 0x000a,
- 0x14c6: 0x000a, 0x14c8: 0x000a, 0x14c9: 0x000a,
- 0x14d4: 0x000a, 0x14d6: 0x000a, 0x14d7: 0x000a,
- 0x14d8: 0x000a,
- 0x14de: 0x000a, 0x14df: 0x000a, 0x14e0: 0x000a, 0x14e1: 0x000a, 0x14e2: 0x000a, 0x14e3: 0x000a,
- 0x14e5: 0x000a, 0x14e7: 0x000a, 0x14e9: 0x000a,
- 0x14ee: 0x0004,
- 0x14fa: 0x000a, 0x14fb: 0x000a,
- // Block 0x54, offset 0x1500
- 0x1500: 0x000a, 0x1501: 0x000a, 0x1502: 0x000a, 0x1503: 0x000a, 0x1504: 0x000a,
- 0x150a: 0x000a, 0x150b: 0x000a,
- 0x150c: 0x000a, 0x150d: 0x000a, 0x1510: 0x000a, 0x1511: 0x000a,
- 0x1512: 0x000a, 0x1513: 0x000a, 0x1514: 0x000a, 0x1515: 0x000a, 0x1516: 0x000a, 0x1517: 0x000a,
- 0x1518: 0x000a, 0x1519: 0x000a, 0x151a: 0x000a, 0x151b: 0x000a, 0x151c: 0x000a, 0x151d: 0x000a,
- 0x151e: 0x000a, 0x151f: 0x000a,
- // Block 0x55, offset 0x1540
- 0x1549: 0x000a, 0x154a: 0x000a, 0x154b: 0x000a,
- 0x1550: 0x000a, 0x1551: 0x000a,
- 0x1552: 0x000a, 0x1553: 0x000a, 0x1554: 0x000a, 0x1555: 0x000a, 0x1556: 0x000a, 0x1557: 0x000a,
- 0x1558: 0x000a, 0x1559: 0x000a, 0x155a: 0x000a, 0x155b: 0x000a, 0x155c: 0x000a, 0x155d: 0x000a,
- 0x155e: 0x000a, 0x155f: 0x000a, 0x1560: 0x000a, 0x1561: 0x000a, 0x1562: 0x000a, 0x1563: 0x000a,
- 0x1564: 0x000a, 0x1565: 0x000a, 0x1566: 0x000a, 0x1567: 0x000a, 0x1568: 0x000a, 0x1569: 0x000a,
- 0x156a: 0x000a, 0x156b: 0x000a, 0x156c: 0x000a, 0x156d: 0x000a, 0x156e: 0x000a, 0x156f: 0x000a,
- 0x1570: 0x000a, 0x1571: 0x000a, 0x1572: 0x000a, 0x1573: 0x000a, 0x1574: 0x000a, 0x1575: 0x000a,
- 0x1576: 0x000a, 0x1577: 0x000a, 0x1578: 0x000a, 0x1579: 0x000a, 0x157a: 0x000a, 0x157b: 0x000a,
- 0x157c: 0x000a, 0x157d: 0x000a, 0x157e: 0x000a, 0x157f: 0x000a,
- // Block 0x56, offset 0x1580
- 0x1580: 0x000a, 0x1581: 0x000a, 0x1582: 0x000a, 0x1583: 0x000a, 0x1584: 0x000a, 0x1585: 0x000a,
- 0x1586: 0x000a, 0x1587: 0x000a, 0x1588: 0x000a, 0x1589: 0x000a, 0x158a: 0x000a, 0x158b: 0x000a,
- 0x158c: 0x000a, 0x158d: 0x000a, 0x158e: 0x000a, 0x158f: 0x000a, 0x1590: 0x000a, 0x1591: 0x000a,
- 0x1592: 0x000a, 0x1593: 0x000a, 0x1594: 0x000a, 0x1595: 0x000a, 0x1596: 0x000a, 0x1597: 0x000a,
- 0x1598: 0x000a, 0x1599: 0x000a, 0x159a: 0x000a, 0x159b: 0x000a, 0x159c: 0x000a, 0x159d: 0x000a,
- 0x159e: 0x000a, 0x159f: 0x000a, 0x15a0: 0x000a, 0x15a1: 0x000a, 0x15a2: 0x000a, 0x15a3: 0x000a,
- 0x15a4: 0x000a, 0x15a5: 0x000a, 0x15a6: 0x000a, 0x15a7: 0x000a, 0x15a8: 0x000a, 0x15a9: 0x000a,
- 0x15aa: 0x000a, 0x15ab: 0x000a, 0x15ac: 0x000a, 0x15ad: 0x000a, 0x15ae: 0x000a, 0x15af: 0x000a,
- 0x15b0: 0x000a, 0x15b1: 0x000a, 0x15b2: 0x000a, 0x15b3: 0x000a, 0x15b4: 0x000a, 0x15b5: 0x000a,
- 0x15b6: 0x000a, 0x15b7: 0x000a, 0x15b8: 0x000a, 0x15b9: 0x000a, 0x15ba: 0x000a, 0x15bb: 0x000a,
- 0x15bc: 0x000a, 0x15bd: 0x000a, 0x15be: 0x000a, 0x15bf: 0x000a,
- // Block 0x57, offset 0x15c0
- 0x15c0: 0x000a, 0x15c1: 0x000a, 0x15c2: 0x000a, 0x15c3: 0x000a, 0x15c4: 0x000a, 0x15c5: 0x000a,
- 0x15c6: 0x000a, 0x15c7: 0x000a, 0x15c8: 0x000a, 0x15c9: 0x000a, 0x15ca: 0x000a, 0x15cb: 0x000a,
- 0x15cc: 0x000a, 0x15cd: 0x000a, 0x15ce: 0x000a, 0x15cf: 0x000a, 0x15d0: 0x000a, 0x15d1: 0x000a,
- 0x15d2: 0x0003, 0x15d3: 0x0004, 0x15d4: 0x000a, 0x15d5: 0x000a, 0x15d6: 0x000a, 0x15d7: 0x000a,
- 0x15d8: 0x000a, 0x15d9: 0x000a, 0x15da: 0x000a, 0x15db: 0x000a, 0x15dc: 0x000a, 0x15dd: 0x000a,
- 0x15de: 0x000a, 0x15df: 0x000a, 0x15e0: 0x000a, 0x15e1: 0x000a, 0x15e2: 0x000a, 0x15e3: 0x000a,
- 0x15e4: 0x000a, 0x15e5: 0x000a, 0x15e6: 0x000a, 0x15e7: 0x000a, 0x15e8: 0x000a, 0x15e9: 0x000a,
- 0x15ea: 0x000a, 0x15eb: 0x000a, 0x15ec: 0x000a, 0x15ed: 0x000a, 0x15ee: 0x000a, 0x15ef: 0x000a,
- 0x15f0: 0x000a, 0x15f1: 0x000a, 0x15f2: 0x000a, 0x15f3: 0x000a, 0x15f4: 0x000a, 0x15f5: 0x000a,
- 0x15f6: 0x000a, 0x15f7: 0x000a, 0x15f8: 0x000a, 0x15f9: 0x000a, 0x15fa: 0x000a, 0x15fb: 0x000a,
- 0x15fc: 0x000a, 0x15fd: 0x000a, 0x15fe: 0x000a, 0x15ff: 0x000a,
- // Block 0x58, offset 0x1600
- 0x1600: 0x000a, 0x1601: 0x000a, 0x1602: 0x000a, 0x1603: 0x000a, 0x1604: 0x000a, 0x1605: 0x000a,
- 0x1606: 0x000a, 0x1607: 0x000a, 0x1608: 0x003a, 0x1609: 0x002a, 0x160a: 0x003a, 0x160b: 0x002a,
- 0x160c: 0x000a, 0x160d: 0x000a, 0x160e: 0x000a, 0x160f: 0x000a, 0x1610: 0x000a, 0x1611: 0x000a,
- 0x1612: 0x000a, 0x1613: 0x000a, 0x1614: 0x000a, 0x1615: 0x000a, 0x1616: 0x000a, 0x1617: 0x000a,
- 0x1618: 0x000a, 0x1619: 0x000a, 0x161a: 0x000a, 0x161b: 0x000a, 0x161c: 0x000a, 0x161d: 0x000a,
- 0x161e: 0x000a, 0x161f: 0x000a, 0x1620: 0x000a, 0x1621: 0x000a, 0x1622: 0x000a, 0x1623: 0x000a,
- 0x1624: 0x000a, 0x1625: 0x000a, 0x1626: 0x000a, 0x1627: 0x000a, 0x1628: 0x000a, 0x1629: 0x009a,
- 0x162a: 0x008a, 0x162b: 0x000a, 0x162c: 0x000a, 0x162d: 0x000a, 0x162e: 0x000a, 0x162f: 0x000a,
- 0x1630: 0x000a, 0x1631: 0x000a, 0x1632: 0x000a, 0x1633: 0x000a, 0x1634: 0x000a, 0x1635: 0x000a,
- // Block 0x59, offset 0x1640
- 0x167b: 0x000a,
- 0x167c: 0x000a, 0x167d: 0x000a, 0x167e: 0x000a, 0x167f: 0x000a,
- // Block 0x5a, offset 0x1680
- 0x1680: 0x000a, 0x1681: 0x000a, 0x1682: 0x000a, 0x1683: 0x000a, 0x1684: 0x000a, 0x1685: 0x000a,
- 0x1686: 0x000a, 0x1687: 0x000a, 0x1688: 0x000a, 0x1689: 0x000a, 0x168a: 0x000a, 0x168b: 0x000a,
- 0x168c: 0x000a, 0x168d: 0x000a, 0x168e: 0x000a, 0x168f: 0x000a, 0x1690: 0x000a, 0x1691: 0x000a,
- 0x1692: 0x000a, 0x1693: 0x000a, 0x1694: 0x000a, 0x1696: 0x000a, 0x1697: 0x000a,
- 0x1698: 0x000a, 0x1699: 0x000a, 0x169a: 0x000a, 0x169b: 0x000a, 0x169c: 0x000a, 0x169d: 0x000a,
- 0x169e: 0x000a, 0x169f: 0x000a, 0x16a0: 0x000a, 0x16a1: 0x000a, 0x16a2: 0x000a, 0x16a3: 0x000a,
- 0x16a4: 0x000a, 0x16a5: 0x000a, 0x16a6: 0x000a, 0x16a7: 0x000a, 0x16a8: 0x000a, 0x16a9: 0x000a,
- 0x16aa: 0x000a, 0x16ab: 0x000a, 0x16ac: 0x000a, 0x16ad: 0x000a, 0x16ae: 0x000a, 0x16af: 0x000a,
- 0x16b0: 0x000a, 0x16b1: 0x000a, 0x16b2: 0x000a, 0x16b3: 0x000a, 0x16b4: 0x000a, 0x16b5: 0x000a,
- 0x16b6: 0x000a, 0x16b7: 0x000a, 0x16b8: 0x000a, 0x16b9: 0x000a, 0x16ba: 0x000a, 0x16bb: 0x000a,
- 0x16bc: 0x000a, 0x16bd: 0x000a, 0x16be: 0x000a, 0x16bf: 0x000a,
- // Block 0x5b, offset 0x16c0
- 0x16c0: 0x000a, 0x16c1: 0x000a, 0x16c2: 0x000a, 0x16c3: 0x000a, 0x16c4: 0x000a, 0x16c5: 0x000a,
- 0x16c6: 0x000a, 0x16c7: 0x000a, 0x16c8: 0x000a, 0x16c9: 0x000a, 0x16ca: 0x000a, 0x16cb: 0x000a,
- 0x16cc: 0x000a, 0x16cd: 0x000a, 0x16ce: 0x000a, 0x16cf: 0x000a, 0x16d0: 0x000a, 0x16d1: 0x000a,
- 0x16d2: 0x000a, 0x16d3: 0x000a, 0x16d4: 0x000a, 0x16d5: 0x000a, 0x16d6: 0x000a, 0x16d7: 0x000a,
- 0x16d8: 0x000a, 0x16d9: 0x000a, 0x16da: 0x000a, 0x16db: 0x000a, 0x16dc: 0x000a, 0x16dd: 0x000a,
- 0x16de: 0x000a, 0x16df: 0x000a, 0x16e0: 0x000a, 0x16e1: 0x000a, 0x16e2: 0x000a, 0x16e3: 0x000a,
- 0x16e4: 0x000a, 0x16e5: 0x000a, 0x16e6: 0x000a,
- // Block 0x5c, offset 0x1700
- 0x1700: 0x000a, 0x1701: 0x000a, 0x1702: 0x000a, 0x1703: 0x000a, 0x1704: 0x000a, 0x1705: 0x000a,
- 0x1706: 0x000a, 0x1707: 0x000a, 0x1708: 0x000a, 0x1709: 0x000a, 0x170a: 0x000a,
- 0x1720: 0x000a, 0x1721: 0x000a, 0x1722: 0x000a, 0x1723: 0x000a,
- 0x1724: 0x000a, 0x1725: 0x000a, 0x1726: 0x000a, 0x1727: 0x000a, 0x1728: 0x000a, 0x1729: 0x000a,
- 0x172a: 0x000a, 0x172b: 0x000a, 0x172c: 0x000a, 0x172d: 0x000a, 0x172e: 0x000a, 0x172f: 0x000a,
- 0x1730: 0x000a, 0x1731: 0x000a, 0x1732: 0x000a, 0x1733: 0x000a, 0x1734: 0x000a, 0x1735: 0x000a,
- 0x1736: 0x000a, 0x1737: 0x000a, 0x1738: 0x000a, 0x1739: 0x000a, 0x173a: 0x000a, 0x173b: 0x000a,
- 0x173c: 0x000a, 0x173d: 0x000a, 0x173e: 0x000a, 0x173f: 0x000a,
- // Block 0x5d, offset 0x1740
- 0x1740: 0x000a, 0x1741: 0x000a, 0x1742: 0x000a, 0x1743: 0x000a, 0x1744: 0x000a, 0x1745: 0x000a,
- 0x1746: 0x000a, 0x1747: 0x000a, 0x1748: 0x0002, 0x1749: 0x0002, 0x174a: 0x0002, 0x174b: 0x0002,
- 0x174c: 0x0002, 0x174d: 0x0002, 0x174e: 0x0002, 0x174f: 0x0002, 0x1750: 0x0002, 0x1751: 0x0002,
- 0x1752: 0x0002, 0x1753: 0x0002, 0x1754: 0x0002, 0x1755: 0x0002, 0x1756: 0x0002, 0x1757: 0x0002,
- 0x1758: 0x0002, 0x1759: 0x0002, 0x175a: 0x0002, 0x175b: 0x0002,
- // Block 0x5e, offset 0x1780
- 0x17aa: 0x000a, 0x17ab: 0x000a, 0x17ac: 0x000a, 0x17ad: 0x000a, 0x17ae: 0x000a, 0x17af: 0x000a,
- 0x17b0: 0x000a, 0x17b1: 0x000a, 0x17b2: 0x000a, 0x17b3: 0x000a, 0x17b4: 0x000a, 0x17b5: 0x000a,
- 0x17b6: 0x000a, 0x17b7: 0x000a, 0x17b8: 0x000a, 0x17b9: 0x000a, 0x17ba: 0x000a, 0x17bb: 0x000a,
- 0x17bc: 0x000a, 0x17bd: 0x000a, 0x17be: 0x000a, 0x17bf: 0x000a,
- // Block 0x5f, offset 0x17c0
- 0x17c0: 0x000a, 0x17c1: 0x000a, 0x17c2: 0x000a, 0x17c3: 0x000a, 0x17c4: 0x000a, 0x17c5: 0x000a,
- 0x17c6: 0x000a, 0x17c7: 0x000a, 0x17c8: 0x000a, 0x17c9: 0x000a, 0x17ca: 0x000a, 0x17cb: 0x000a,
- 0x17cc: 0x000a, 0x17cd: 0x000a, 0x17ce: 0x000a, 0x17cf: 0x000a, 0x17d0: 0x000a, 0x17d1: 0x000a,
- 0x17d2: 0x000a, 0x17d3: 0x000a, 0x17d4: 0x000a, 0x17d5: 0x000a, 0x17d6: 0x000a, 0x17d7: 0x000a,
- 0x17d8: 0x000a, 0x17d9: 0x000a, 0x17da: 0x000a, 0x17db: 0x000a, 0x17dc: 0x000a, 0x17dd: 0x000a,
- 0x17de: 0x000a, 0x17df: 0x000a, 0x17e0: 0x000a, 0x17e1: 0x000a, 0x17e2: 0x000a, 0x17e3: 0x000a,
- 0x17e4: 0x000a, 0x17e5: 0x000a, 0x17e6: 0x000a, 0x17e7: 0x000a, 0x17e8: 0x000a, 0x17e9: 0x000a,
- 0x17ea: 0x000a, 0x17eb: 0x000a, 0x17ed: 0x000a, 0x17ee: 0x000a, 0x17ef: 0x000a,
- 0x17f0: 0x000a, 0x17f1: 0x000a, 0x17f2: 0x000a, 0x17f3: 0x000a, 0x17f4: 0x000a, 0x17f5: 0x000a,
- 0x17f6: 0x000a, 0x17f7: 0x000a, 0x17f8: 0x000a, 0x17f9: 0x000a, 0x17fa: 0x000a, 0x17fb: 0x000a,
- 0x17fc: 0x000a, 0x17fd: 0x000a, 0x17fe: 0x000a, 0x17ff: 0x000a,
- // Block 0x60, offset 0x1800
- 0x1800: 0x000a, 0x1801: 0x000a, 0x1802: 0x000a, 0x1803: 0x000a, 0x1804: 0x000a, 0x1805: 0x000a,
- 0x1806: 0x000a, 0x1807: 0x000a, 0x1808: 0x000a, 0x1809: 0x000a, 0x180a: 0x000a, 0x180b: 0x000a,
- 0x180c: 0x000a, 0x180d: 0x000a, 0x180e: 0x000a, 0x180f: 0x000a, 0x1810: 0x000a, 0x1811: 0x000a,
- 0x1812: 0x000a, 0x1813: 0x000a, 0x1814: 0x000a, 0x1815: 0x000a, 0x1816: 0x000a, 0x1817: 0x000a,
- 0x1818: 0x000a, 0x1819: 0x000a, 0x181a: 0x000a, 0x181b: 0x000a, 0x181c: 0x000a, 0x181d: 0x000a,
- 0x181e: 0x000a, 0x181f: 0x000a, 0x1820: 0x000a, 0x1821: 0x000a, 0x1822: 0x000a, 0x1823: 0x000a,
- 0x1824: 0x000a, 0x1825: 0x000a, 0x1826: 0x000a, 0x1827: 0x000a, 0x1828: 0x003a, 0x1829: 0x002a,
- 0x182a: 0x003a, 0x182b: 0x002a, 0x182c: 0x003a, 0x182d: 0x002a, 0x182e: 0x003a, 0x182f: 0x002a,
- 0x1830: 0x003a, 0x1831: 0x002a, 0x1832: 0x003a, 0x1833: 0x002a, 0x1834: 0x003a, 0x1835: 0x002a,
- 0x1836: 0x000a, 0x1837: 0x000a, 0x1838: 0x000a, 0x1839: 0x000a, 0x183a: 0x000a, 0x183b: 0x000a,
- 0x183c: 0x000a, 0x183d: 0x000a, 0x183e: 0x000a, 0x183f: 0x000a,
- // Block 0x61, offset 0x1840
- 0x1840: 0x000a, 0x1841: 0x000a, 0x1842: 0x000a, 0x1843: 0x000a, 0x1844: 0x000a, 0x1845: 0x009a,
- 0x1846: 0x008a, 0x1847: 0x000a, 0x1848: 0x000a, 0x1849: 0x000a, 0x184a: 0x000a, 0x184b: 0x000a,
- 0x184c: 0x000a, 0x184d: 0x000a, 0x184e: 0x000a, 0x184f: 0x000a, 0x1850: 0x000a, 0x1851: 0x000a,
- 0x1852: 0x000a, 0x1853: 0x000a, 0x1854: 0x000a, 0x1855: 0x000a, 0x1856: 0x000a, 0x1857: 0x000a,
- 0x1858: 0x000a, 0x1859: 0x000a, 0x185a: 0x000a, 0x185b: 0x000a, 0x185c: 0x000a, 0x185d: 0x000a,
- 0x185e: 0x000a, 0x185f: 0x000a, 0x1860: 0x000a, 0x1861: 0x000a, 0x1862: 0x000a, 0x1863: 0x000a,
- 0x1864: 0x000a, 0x1865: 0x000a, 0x1866: 0x003a, 0x1867: 0x002a, 0x1868: 0x003a, 0x1869: 0x002a,
- 0x186a: 0x003a, 0x186b: 0x002a, 0x186c: 0x003a, 0x186d: 0x002a, 0x186e: 0x003a, 0x186f: 0x002a,
- 0x1870: 0x000a, 0x1871: 0x000a, 0x1872: 0x000a, 0x1873: 0x000a, 0x1874: 0x000a, 0x1875: 0x000a,
- 0x1876: 0x000a, 0x1877: 0x000a, 0x1878: 0x000a, 0x1879: 0x000a, 0x187a: 0x000a, 0x187b: 0x000a,
- 0x187c: 0x000a, 0x187d: 0x000a, 0x187e: 0x000a, 0x187f: 0x000a,
- // Block 0x62, offset 0x1880
- 0x1880: 0x000a, 0x1881: 0x000a, 0x1882: 0x000a, 0x1883: 0x007a, 0x1884: 0x006a, 0x1885: 0x009a,
- 0x1886: 0x008a, 0x1887: 0x00ba, 0x1888: 0x00aa, 0x1889: 0x009a, 0x188a: 0x008a, 0x188b: 0x007a,
- 0x188c: 0x006a, 0x188d: 0x00da, 0x188e: 0x002a, 0x188f: 0x003a, 0x1890: 0x00ca, 0x1891: 0x009a,
- 0x1892: 0x008a, 0x1893: 0x007a, 0x1894: 0x006a, 0x1895: 0x009a, 0x1896: 0x008a, 0x1897: 0x00ba,
- 0x1898: 0x00aa, 0x1899: 0x000a, 0x189a: 0x000a, 0x189b: 0x000a, 0x189c: 0x000a, 0x189d: 0x000a,
- 0x189e: 0x000a, 0x189f: 0x000a, 0x18a0: 0x000a, 0x18a1: 0x000a, 0x18a2: 0x000a, 0x18a3: 0x000a,
- 0x18a4: 0x000a, 0x18a5: 0x000a, 0x18a6: 0x000a, 0x18a7: 0x000a, 0x18a8: 0x000a, 0x18a9: 0x000a,
- 0x18aa: 0x000a, 0x18ab: 0x000a, 0x18ac: 0x000a, 0x18ad: 0x000a, 0x18ae: 0x000a, 0x18af: 0x000a,
- 0x18b0: 0x000a, 0x18b1: 0x000a, 0x18b2: 0x000a, 0x18b3: 0x000a, 0x18b4: 0x000a, 0x18b5: 0x000a,
- 0x18b6: 0x000a, 0x18b7: 0x000a, 0x18b8: 0x000a, 0x18b9: 0x000a, 0x18ba: 0x000a, 0x18bb: 0x000a,
- 0x18bc: 0x000a, 0x18bd: 0x000a, 0x18be: 0x000a, 0x18bf: 0x000a,
- // Block 0x63, offset 0x18c0
- 0x18c0: 0x000a, 0x18c1: 0x000a, 0x18c2: 0x000a, 0x18c3: 0x000a, 0x18c4: 0x000a, 0x18c5: 0x000a,
- 0x18c6: 0x000a, 0x18c7: 0x000a, 0x18c8: 0x000a, 0x18c9: 0x000a, 0x18ca: 0x000a, 0x18cb: 0x000a,
- 0x18cc: 0x000a, 0x18cd: 0x000a, 0x18ce: 0x000a, 0x18cf: 0x000a, 0x18d0: 0x000a, 0x18d1: 0x000a,
- 0x18d2: 0x000a, 0x18d3: 0x000a, 0x18d4: 0x000a, 0x18d5: 0x000a, 0x18d6: 0x000a, 0x18d7: 0x000a,
- 0x18d8: 0x003a, 0x18d9: 0x002a, 0x18da: 0x003a, 0x18db: 0x002a, 0x18dc: 0x000a, 0x18dd: 0x000a,
- 0x18de: 0x000a, 0x18df: 0x000a, 0x18e0: 0x000a, 0x18e1: 0x000a, 0x18e2: 0x000a, 0x18e3: 0x000a,
- 0x18e4: 0x000a, 0x18e5: 0x000a, 0x18e6: 0x000a, 0x18e7: 0x000a, 0x18e8: 0x000a, 0x18e9: 0x000a,
- 0x18ea: 0x000a, 0x18eb: 0x000a, 0x18ec: 0x000a, 0x18ed: 0x000a, 0x18ee: 0x000a, 0x18ef: 0x000a,
- 0x18f0: 0x000a, 0x18f1: 0x000a, 0x18f2: 0x000a, 0x18f3: 0x000a, 0x18f4: 0x000a, 0x18f5: 0x000a,
- 0x18f6: 0x000a, 0x18f7: 0x000a, 0x18f8: 0x000a, 0x18f9: 0x000a, 0x18fa: 0x000a, 0x18fb: 0x000a,
- 0x18fc: 0x003a, 0x18fd: 0x002a, 0x18fe: 0x000a, 0x18ff: 0x000a,
- // Block 0x64, offset 0x1900
- 0x1900: 0x000a, 0x1901: 0x000a, 0x1902: 0x000a, 0x1903: 0x000a, 0x1904: 0x000a, 0x1905: 0x000a,
- 0x1906: 0x000a, 0x1907: 0x000a, 0x1908: 0x000a, 0x1909: 0x000a, 0x190a: 0x000a, 0x190b: 0x000a,
- 0x190c: 0x000a, 0x190d: 0x000a, 0x190e: 0x000a, 0x190f: 0x000a, 0x1910: 0x000a, 0x1911: 0x000a,
- 0x1912: 0x000a, 0x1913: 0x000a, 0x1914: 0x000a, 0x1915: 0x000a, 0x1916: 0x000a, 0x1917: 0x000a,
- 0x1918: 0x000a, 0x1919: 0x000a, 0x191a: 0x000a, 0x191b: 0x000a, 0x191c: 0x000a, 0x191d: 0x000a,
- 0x191e: 0x000a, 0x191f: 0x000a, 0x1920: 0x000a, 0x1921: 0x000a, 0x1922: 0x000a, 0x1923: 0x000a,
- 0x1924: 0x000a, 0x1925: 0x000a, 0x1926: 0x000a, 0x1927: 0x000a, 0x1928: 0x000a, 0x1929: 0x000a,
- 0x192a: 0x000a, 0x192b: 0x000a, 0x192c: 0x000a, 0x192d: 0x000a, 0x192e: 0x000a, 0x192f: 0x000a,
- 0x1930: 0x000a, 0x1931: 0x000a, 0x1932: 0x000a, 0x1933: 0x000a,
- 0x1936: 0x000a, 0x1937: 0x000a, 0x1938: 0x000a, 0x1939: 0x000a, 0x193a: 0x000a, 0x193b: 0x000a,
- 0x193c: 0x000a, 0x193d: 0x000a, 0x193e: 0x000a, 0x193f: 0x000a,
- // Block 0x65, offset 0x1940
- 0x1940: 0x000a, 0x1941: 0x000a, 0x1942: 0x000a, 0x1943: 0x000a, 0x1944: 0x000a, 0x1945: 0x000a,
- 0x1946: 0x000a, 0x1947: 0x000a, 0x1948: 0x000a, 0x1949: 0x000a, 0x194a: 0x000a, 0x194b: 0x000a,
- 0x194c: 0x000a, 0x194d: 0x000a, 0x194e: 0x000a, 0x194f: 0x000a, 0x1950: 0x000a, 0x1951: 0x000a,
- 0x1952: 0x000a, 0x1953: 0x000a, 0x1954: 0x000a, 0x1955: 0x000a,
- 0x1958: 0x000a, 0x1959: 0x000a, 0x195a: 0x000a, 0x195b: 0x000a, 0x195c: 0x000a, 0x195d: 0x000a,
- 0x195e: 0x000a, 0x195f: 0x000a, 0x1960: 0x000a, 0x1961: 0x000a, 0x1962: 0x000a, 0x1963: 0x000a,
- 0x1964: 0x000a, 0x1965: 0x000a, 0x1966: 0x000a, 0x1967: 0x000a, 0x1968: 0x000a, 0x1969: 0x000a,
- 0x196a: 0x000a, 0x196b: 0x000a, 0x196c: 0x000a, 0x196d: 0x000a, 0x196e: 0x000a, 0x196f: 0x000a,
- 0x1970: 0x000a, 0x1971: 0x000a, 0x1972: 0x000a, 0x1973: 0x000a, 0x1974: 0x000a, 0x1975: 0x000a,
- 0x1976: 0x000a, 0x1977: 0x000a, 0x1978: 0x000a, 0x1979: 0x000a, 0x197a: 0x000a, 0x197b: 0x000a,
- 0x197c: 0x000a, 0x197d: 0x000a, 0x197e: 0x000a, 0x197f: 0x000a,
- // Block 0x66, offset 0x1980
- 0x19a5: 0x000a, 0x19a6: 0x000a, 0x19a7: 0x000a, 0x19a8: 0x000a, 0x19a9: 0x000a,
- 0x19aa: 0x000a, 0x19af: 0x000c,
- 0x19b0: 0x000c, 0x19b1: 0x000c,
- 0x19b9: 0x000a, 0x19ba: 0x000a, 0x19bb: 0x000a,
- 0x19bc: 0x000a, 0x19bd: 0x000a, 0x19be: 0x000a, 0x19bf: 0x000a,
- // Block 0x67, offset 0x19c0
- 0x19ff: 0x000c,
- // Block 0x68, offset 0x1a00
- 0x1a20: 0x000c, 0x1a21: 0x000c, 0x1a22: 0x000c, 0x1a23: 0x000c,
- 0x1a24: 0x000c, 0x1a25: 0x000c, 0x1a26: 0x000c, 0x1a27: 0x000c, 0x1a28: 0x000c, 0x1a29: 0x000c,
- 0x1a2a: 0x000c, 0x1a2b: 0x000c, 0x1a2c: 0x000c, 0x1a2d: 0x000c, 0x1a2e: 0x000c, 0x1a2f: 0x000c,
- 0x1a30: 0x000c, 0x1a31: 0x000c, 0x1a32: 0x000c, 0x1a33: 0x000c, 0x1a34: 0x000c, 0x1a35: 0x000c,
- 0x1a36: 0x000c, 0x1a37: 0x000c, 0x1a38: 0x000c, 0x1a39: 0x000c, 0x1a3a: 0x000c, 0x1a3b: 0x000c,
- 0x1a3c: 0x000c, 0x1a3d: 0x000c, 0x1a3e: 0x000c, 0x1a3f: 0x000c,
- // Block 0x69, offset 0x1a40
- 0x1a40: 0x000a, 0x1a41: 0x000a, 0x1a42: 0x000a, 0x1a43: 0x000a, 0x1a44: 0x000a, 0x1a45: 0x000a,
- 0x1a46: 0x000a, 0x1a47: 0x000a, 0x1a48: 0x000a, 0x1a49: 0x000a, 0x1a4a: 0x000a, 0x1a4b: 0x000a,
- 0x1a4c: 0x000a, 0x1a4d: 0x000a, 0x1a4e: 0x000a, 0x1a4f: 0x000a, 0x1a50: 0x000a, 0x1a51: 0x000a,
- 0x1a52: 0x000a, 0x1a53: 0x000a, 0x1a54: 0x000a, 0x1a55: 0x000a, 0x1a56: 0x000a, 0x1a57: 0x000a,
- 0x1a58: 0x000a, 0x1a59: 0x000a, 0x1a5a: 0x000a, 0x1a5b: 0x000a, 0x1a5c: 0x000a, 0x1a5d: 0x000a,
- 0x1a5e: 0x000a, 0x1a5f: 0x000a, 0x1a60: 0x000a, 0x1a61: 0x000a, 0x1a62: 0x003a, 0x1a63: 0x002a,
- 0x1a64: 0x003a, 0x1a65: 0x002a, 0x1a66: 0x003a, 0x1a67: 0x002a, 0x1a68: 0x003a, 0x1a69: 0x002a,
- 0x1a6a: 0x000a, 0x1a6b: 0x000a, 0x1a6c: 0x000a, 0x1a6d: 0x000a, 0x1a6e: 0x000a, 0x1a6f: 0x000a,
- 0x1a70: 0x000a, 0x1a71: 0x000a, 0x1a72: 0x000a, 0x1a73: 0x000a, 0x1a74: 0x000a, 0x1a75: 0x000a,
- 0x1a76: 0x000a, 0x1a77: 0x000a, 0x1a78: 0x000a, 0x1a79: 0x000a, 0x1a7a: 0x000a, 0x1a7b: 0x000a,
- 0x1a7c: 0x000a, 0x1a7d: 0x000a, 0x1a7e: 0x000a, 0x1a7f: 0x000a,
- // Block 0x6a, offset 0x1a80
- 0x1a80: 0x000a, 0x1a81: 0x000a, 0x1a82: 0x000a, 0x1a83: 0x000a, 0x1a84: 0x000a, 0x1a85: 0x000a,
- 0x1a86: 0x000a, 0x1a87: 0x000a, 0x1a88: 0x000a, 0x1a89: 0x000a, 0x1a8a: 0x000a, 0x1a8b: 0x000a,
- 0x1a8c: 0x000a, 0x1a8d: 0x000a, 0x1a8e: 0x000a, 0x1a8f: 0x000a,
- // Block 0x6b, offset 0x1ac0
- 0x1ac0: 0x000a, 0x1ac1: 0x000a, 0x1ac2: 0x000a, 0x1ac3: 0x000a, 0x1ac4: 0x000a, 0x1ac5: 0x000a,
- 0x1ac6: 0x000a, 0x1ac7: 0x000a, 0x1ac8: 0x000a, 0x1ac9: 0x000a, 0x1aca: 0x000a, 0x1acb: 0x000a,
- 0x1acc: 0x000a, 0x1acd: 0x000a, 0x1ace: 0x000a, 0x1acf: 0x000a, 0x1ad0: 0x000a, 0x1ad1: 0x000a,
- 0x1ad2: 0x000a, 0x1ad3: 0x000a, 0x1ad4: 0x000a, 0x1ad5: 0x000a, 0x1ad6: 0x000a, 0x1ad7: 0x000a,
- 0x1ad8: 0x000a, 0x1ad9: 0x000a, 0x1adb: 0x000a, 0x1adc: 0x000a, 0x1add: 0x000a,
- 0x1ade: 0x000a, 0x1adf: 0x000a, 0x1ae0: 0x000a, 0x1ae1: 0x000a, 0x1ae2: 0x000a, 0x1ae3: 0x000a,
- 0x1ae4: 0x000a, 0x1ae5: 0x000a, 0x1ae6: 0x000a, 0x1ae7: 0x000a, 0x1ae8: 0x000a, 0x1ae9: 0x000a,
- 0x1aea: 0x000a, 0x1aeb: 0x000a, 0x1aec: 0x000a, 0x1aed: 0x000a, 0x1aee: 0x000a, 0x1aef: 0x000a,
- 0x1af0: 0x000a, 0x1af1: 0x000a, 0x1af2: 0x000a, 0x1af3: 0x000a, 0x1af4: 0x000a, 0x1af5: 0x000a,
- 0x1af6: 0x000a, 0x1af7: 0x000a, 0x1af8: 0x000a, 0x1af9: 0x000a, 0x1afa: 0x000a, 0x1afb: 0x000a,
- 0x1afc: 0x000a, 0x1afd: 0x000a, 0x1afe: 0x000a, 0x1aff: 0x000a,
- // Block 0x6c, offset 0x1b00
- 0x1b00: 0x000a, 0x1b01: 0x000a, 0x1b02: 0x000a, 0x1b03: 0x000a, 0x1b04: 0x000a, 0x1b05: 0x000a,
- 0x1b06: 0x000a, 0x1b07: 0x000a, 0x1b08: 0x000a, 0x1b09: 0x000a, 0x1b0a: 0x000a, 0x1b0b: 0x000a,
- 0x1b0c: 0x000a, 0x1b0d: 0x000a, 0x1b0e: 0x000a, 0x1b0f: 0x000a, 0x1b10: 0x000a, 0x1b11: 0x000a,
- 0x1b12: 0x000a, 0x1b13: 0x000a, 0x1b14: 0x000a, 0x1b15: 0x000a, 0x1b16: 0x000a, 0x1b17: 0x000a,
- 0x1b18: 0x000a, 0x1b19: 0x000a, 0x1b1a: 0x000a, 0x1b1b: 0x000a, 0x1b1c: 0x000a, 0x1b1d: 0x000a,
- 0x1b1e: 0x000a, 0x1b1f: 0x000a, 0x1b20: 0x000a, 0x1b21: 0x000a, 0x1b22: 0x000a, 0x1b23: 0x000a,
- 0x1b24: 0x000a, 0x1b25: 0x000a, 0x1b26: 0x000a, 0x1b27: 0x000a, 0x1b28: 0x000a, 0x1b29: 0x000a,
- 0x1b2a: 0x000a, 0x1b2b: 0x000a, 0x1b2c: 0x000a, 0x1b2d: 0x000a, 0x1b2e: 0x000a, 0x1b2f: 0x000a,
- 0x1b30: 0x000a, 0x1b31: 0x000a, 0x1b32: 0x000a, 0x1b33: 0x000a,
- // Block 0x6d, offset 0x1b40
- 0x1b40: 0x000a, 0x1b41: 0x000a, 0x1b42: 0x000a, 0x1b43: 0x000a, 0x1b44: 0x000a, 0x1b45: 0x000a,
- 0x1b46: 0x000a, 0x1b47: 0x000a, 0x1b48: 0x000a, 0x1b49: 0x000a, 0x1b4a: 0x000a, 0x1b4b: 0x000a,
- 0x1b4c: 0x000a, 0x1b4d: 0x000a, 0x1b4e: 0x000a, 0x1b4f: 0x000a, 0x1b50: 0x000a, 0x1b51: 0x000a,
- 0x1b52: 0x000a, 0x1b53: 0x000a, 0x1b54: 0x000a, 0x1b55: 0x000a,
- 0x1b70: 0x000a, 0x1b71: 0x000a, 0x1b72: 0x000a, 0x1b73: 0x000a, 0x1b74: 0x000a, 0x1b75: 0x000a,
- 0x1b76: 0x000a, 0x1b77: 0x000a, 0x1b78: 0x000a, 0x1b79: 0x000a, 0x1b7a: 0x000a, 0x1b7b: 0x000a,
- // Block 0x6e, offset 0x1b80
- 0x1b80: 0x0009, 0x1b81: 0x000a, 0x1b82: 0x000a, 0x1b83: 0x000a, 0x1b84: 0x000a,
- 0x1b88: 0x003a, 0x1b89: 0x002a, 0x1b8a: 0x003a, 0x1b8b: 0x002a,
- 0x1b8c: 0x003a, 0x1b8d: 0x002a, 0x1b8e: 0x003a, 0x1b8f: 0x002a, 0x1b90: 0x003a, 0x1b91: 0x002a,
- 0x1b92: 0x000a, 0x1b93: 0x000a, 0x1b94: 0x003a, 0x1b95: 0x002a, 0x1b96: 0x003a, 0x1b97: 0x002a,
- 0x1b98: 0x003a, 0x1b99: 0x002a, 0x1b9a: 0x003a, 0x1b9b: 0x002a, 0x1b9c: 0x000a, 0x1b9d: 0x000a,
- 0x1b9e: 0x000a, 0x1b9f: 0x000a, 0x1ba0: 0x000a,
- 0x1baa: 0x000c, 0x1bab: 0x000c, 0x1bac: 0x000c, 0x1bad: 0x000c,
- 0x1bb0: 0x000a,
- 0x1bb6: 0x000a, 0x1bb7: 0x000a,
- 0x1bbd: 0x000a, 0x1bbe: 0x000a, 0x1bbf: 0x000a,
- // Block 0x6f, offset 0x1bc0
- 0x1bd9: 0x000c, 0x1bda: 0x000c, 0x1bdb: 0x000a, 0x1bdc: 0x000a,
- 0x1be0: 0x000a,
- // Block 0x70, offset 0x1c00
- 0x1c3b: 0x000a,
- // Block 0x71, offset 0x1c40
- 0x1c40: 0x000a, 0x1c41: 0x000a, 0x1c42: 0x000a, 0x1c43: 0x000a, 0x1c44: 0x000a, 0x1c45: 0x000a,
- 0x1c46: 0x000a, 0x1c47: 0x000a, 0x1c48: 0x000a, 0x1c49: 0x000a, 0x1c4a: 0x000a, 0x1c4b: 0x000a,
- 0x1c4c: 0x000a, 0x1c4d: 0x000a, 0x1c4e: 0x000a, 0x1c4f: 0x000a, 0x1c50: 0x000a, 0x1c51: 0x000a,
- 0x1c52: 0x000a, 0x1c53: 0x000a, 0x1c54: 0x000a, 0x1c55: 0x000a, 0x1c56: 0x000a, 0x1c57: 0x000a,
- 0x1c58: 0x000a, 0x1c59: 0x000a, 0x1c5a: 0x000a, 0x1c5b: 0x000a, 0x1c5c: 0x000a, 0x1c5d: 0x000a,
- 0x1c5e: 0x000a, 0x1c5f: 0x000a, 0x1c60: 0x000a, 0x1c61: 0x000a, 0x1c62: 0x000a, 0x1c63: 0x000a,
- // Block 0x72, offset 0x1c80
- 0x1c9d: 0x000a,
- 0x1c9e: 0x000a,
- // Block 0x73, offset 0x1cc0
- 0x1cd0: 0x000a, 0x1cd1: 0x000a,
- 0x1cd2: 0x000a, 0x1cd3: 0x000a, 0x1cd4: 0x000a, 0x1cd5: 0x000a, 0x1cd6: 0x000a, 0x1cd7: 0x000a,
- 0x1cd8: 0x000a, 0x1cd9: 0x000a, 0x1cda: 0x000a, 0x1cdb: 0x000a, 0x1cdc: 0x000a, 0x1cdd: 0x000a,
- 0x1cde: 0x000a, 0x1cdf: 0x000a,
- 0x1cfc: 0x000a, 0x1cfd: 0x000a, 0x1cfe: 0x000a,
- // Block 0x74, offset 0x1d00
- 0x1d31: 0x000a, 0x1d32: 0x000a, 0x1d33: 0x000a, 0x1d34: 0x000a, 0x1d35: 0x000a,
- 0x1d36: 0x000a, 0x1d37: 0x000a, 0x1d38: 0x000a, 0x1d39: 0x000a, 0x1d3a: 0x000a, 0x1d3b: 0x000a,
- 0x1d3c: 0x000a, 0x1d3d: 0x000a, 0x1d3e: 0x000a, 0x1d3f: 0x000a,
- // Block 0x75, offset 0x1d40
- 0x1d4c: 0x000a, 0x1d4d: 0x000a, 0x1d4e: 0x000a, 0x1d4f: 0x000a,
- // Block 0x76, offset 0x1d80
- 0x1db7: 0x000a, 0x1db8: 0x000a, 0x1db9: 0x000a, 0x1dba: 0x000a,
- // Block 0x77, offset 0x1dc0
- 0x1dde: 0x000a, 0x1ddf: 0x000a,
- 0x1dff: 0x000a,
- // Block 0x78, offset 0x1e00
- 0x1e10: 0x000a, 0x1e11: 0x000a,
- 0x1e12: 0x000a, 0x1e13: 0x000a, 0x1e14: 0x000a, 0x1e15: 0x000a, 0x1e16: 0x000a, 0x1e17: 0x000a,
- 0x1e18: 0x000a, 0x1e19: 0x000a, 0x1e1a: 0x000a, 0x1e1b: 0x000a, 0x1e1c: 0x000a, 0x1e1d: 0x000a,
- 0x1e1e: 0x000a, 0x1e1f: 0x000a, 0x1e20: 0x000a, 0x1e21: 0x000a, 0x1e22: 0x000a, 0x1e23: 0x000a,
- 0x1e24: 0x000a, 0x1e25: 0x000a, 0x1e26: 0x000a, 0x1e27: 0x000a, 0x1e28: 0x000a, 0x1e29: 0x000a,
- 0x1e2a: 0x000a, 0x1e2b: 0x000a, 0x1e2c: 0x000a, 0x1e2d: 0x000a, 0x1e2e: 0x000a, 0x1e2f: 0x000a,
- 0x1e30: 0x000a, 0x1e31: 0x000a, 0x1e32: 0x000a, 0x1e33: 0x000a, 0x1e34: 0x000a, 0x1e35: 0x000a,
- 0x1e36: 0x000a, 0x1e37: 0x000a, 0x1e38: 0x000a, 0x1e39: 0x000a, 0x1e3a: 0x000a, 0x1e3b: 0x000a,
- 0x1e3c: 0x000a, 0x1e3d: 0x000a, 0x1e3e: 0x000a, 0x1e3f: 0x000a,
- // Block 0x79, offset 0x1e40
- 0x1e40: 0x000a, 0x1e41: 0x000a, 0x1e42: 0x000a, 0x1e43: 0x000a, 0x1e44: 0x000a, 0x1e45: 0x000a,
- 0x1e46: 0x000a,
- // Block 0x7a, offset 0x1e80
- 0x1e8d: 0x000a, 0x1e8e: 0x000a, 0x1e8f: 0x000a,
- // Block 0x7b, offset 0x1ec0
- 0x1eef: 0x000c,
- 0x1ef0: 0x000c, 0x1ef1: 0x000c, 0x1ef2: 0x000c, 0x1ef3: 0x000a, 0x1ef4: 0x000c, 0x1ef5: 0x000c,
- 0x1ef6: 0x000c, 0x1ef7: 0x000c, 0x1ef8: 0x000c, 0x1ef9: 0x000c, 0x1efa: 0x000c, 0x1efb: 0x000c,
- 0x1efc: 0x000c, 0x1efd: 0x000c, 0x1efe: 0x000a, 0x1eff: 0x000a,
- // Block 0x7c, offset 0x1f00
- 0x1f1e: 0x000c, 0x1f1f: 0x000c,
- // Block 0x7d, offset 0x1f40
- 0x1f70: 0x000c, 0x1f71: 0x000c,
- // Block 0x7e, offset 0x1f80
- 0x1f80: 0x000a, 0x1f81: 0x000a, 0x1f82: 0x000a, 0x1f83: 0x000a, 0x1f84: 0x000a, 0x1f85: 0x000a,
- 0x1f86: 0x000a, 0x1f87: 0x000a, 0x1f88: 0x000a, 0x1f89: 0x000a, 0x1f8a: 0x000a, 0x1f8b: 0x000a,
- 0x1f8c: 0x000a, 0x1f8d: 0x000a, 0x1f8e: 0x000a, 0x1f8f: 0x000a, 0x1f90: 0x000a, 0x1f91: 0x000a,
- 0x1f92: 0x000a, 0x1f93: 0x000a, 0x1f94: 0x000a, 0x1f95: 0x000a, 0x1f96: 0x000a, 0x1f97: 0x000a,
- 0x1f98: 0x000a, 0x1f99: 0x000a, 0x1f9a: 0x000a, 0x1f9b: 0x000a, 0x1f9c: 0x000a, 0x1f9d: 0x000a,
- 0x1f9e: 0x000a, 0x1f9f: 0x000a, 0x1fa0: 0x000a, 0x1fa1: 0x000a,
- // Block 0x7f, offset 0x1fc0
- 0x1fc8: 0x000a,
- // Block 0x80, offset 0x2000
- 0x2002: 0x000c,
- 0x2006: 0x000c, 0x200b: 0x000c,
- 0x2025: 0x000c, 0x2026: 0x000c, 0x2028: 0x000a, 0x2029: 0x000a,
- 0x202a: 0x000a, 0x202b: 0x000a,
- 0x2038: 0x0004, 0x2039: 0x0004,
- // Block 0x81, offset 0x2040
- 0x2074: 0x000a, 0x2075: 0x000a,
- 0x2076: 0x000a, 0x2077: 0x000a,
- // Block 0x82, offset 0x2080
- 0x2084: 0x000c, 0x2085: 0x000c,
- 0x20a0: 0x000c, 0x20a1: 0x000c, 0x20a2: 0x000c, 0x20a3: 0x000c,
- 0x20a4: 0x000c, 0x20a5: 0x000c, 0x20a6: 0x000c, 0x20a7: 0x000c, 0x20a8: 0x000c, 0x20a9: 0x000c,
- 0x20aa: 0x000c, 0x20ab: 0x000c, 0x20ac: 0x000c, 0x20ad: 0x000c, 0x20ae: 0x000c, 0x20af: 0x000c,
- 0x20b0: 0x000c, 0x20b1: 0x000c,
- 0x20bf: 0x000c,
- // Block 0x83, offset 0x20c0
- 0x20e6: 0x000c, 0x20e7: 0x000c, 0x20e8: 0x000c, 0x20e9: 0x000c,
- 0x20ea: 0x000c, 0x20eb: 0x000c, 0x20ec: 0x000c, 0x20ed: 0x000c,
- // Block 0x84, offset 0x2100
- 0x2107: 0x000c, 0x2108: 0x000c, 0x2109: 0x000c, 0x210a: 0x000c, 0x210b: 0x000c,
- 0x210c: 0x000c, 0x210d: 0x000c, 0x210e: 0x000c, 0x210f: 0x000c, 0x2110: 0x000c, 0x2111: 0x000c,
- // Block 0x85, offset 0x2140
- 0x2140: 0x000c, 0x2141: 0x000c, 0x2142: 0x000c,
- 0x2173: 0x000c,
- 0x2176: 0x000c, 0x2177: 0x000c, 0x2178: 0x000c, 0x2179: 0x000c,
- 0x217c: 0x000c, 0x217d: 0x000c,
- // Block 0x86, offset 0x2180
- 0x21a5: 0x000c,
- // Block 0x87, offset 0x21c0
- 0x21e9: 0x000c,
- 0x21ea: 0x000c, 0x21eb: 0x000c, 0x21ec: 0x000c, 0x21ed: 0x000c, 0x21ee: 0x000c,
- 0x21f1: 0x000c, 0x21f2: 0x000c, 0x21f5: 0x000c,
- 0x21f6: 0x000c,
- // Block 0x88, offset 0x2200
- 0x2203: 0x000c,
- 0x220c: 0x000c,
- 0x223c: 0x000c,
- // Block 0x89, offset 0x2240
- 0x2270: 0x000c, 0x2272: 0x000c, 0x2273: 0x000c, 0x2274: 0x000c,
- 0x2277: 0x000c, 0x2278: 0x000c,
- 0x227e: 0x000c, 0x227f: 0x000c,
- // Block 0x8a, offset 0x2280
- 0x2281: 0x000c,
- 0x22ac: 0x000c, 0x22ad: 0x000c,
- 0x22b6: 0x000c,
- // Block 0x8b, offset 0x22c0
- 0x22e5: 0x000c, 0x22e8: 0x000c,
- 0x22ed: 0x000c,
- // Block 0x8c, offset 0x2300
- 0x231d: 0x0001,
- 0x231e: 0x000c, 0x231f: 0x0001, 0x2320: 0x0001, 0x2321: 0x0001, 0x2322: 0x0001, 0x2323: 0x0001,
- 0x2324: 0x0001, 0x2325: 0x0001, 0x2326: 0x0001, 0x2327: 0x0001, 0x2328: 0x0001, 0x2329: 0x0003,
- 0x232a: 0x0001, 0x232b: 0x0001, 0x232c: 0x0001, 0x232d: 0x0001, 0x232e: 0x0001, 0x232f: 0x0001,
- 0x2330: 0x0001, 0x2331: 0x0001, 0x2332: 0x0001, 0x2333: 0x0001, 0x2334: 0x0001, 0x2335: 0x0001,
- 0x2336: 0x0001, 0x2337: 0x0001, 0x2338: 0x0001, 0x2339: 0x0001, 0x233a: 0x0001, 0x233b: 0x0001,
- 0x233c: 0x0001, 0x233d: 0x0001, 0x233e: 0x0001, 0x233f: 0x0001,
- // Block 0x8d, offset 0x2340
- 0x2340: 0x0001, 0x2341: 0x0001, 0x2342: 0x0001, 0x2343: 0x0001, 0x2344: 0x0001, 0x2345: 0x0001,
- 0x2346: 0x0001, 0x2347: 0x0001, 0x2348: 0x0001, 0x2349: 0x0001, 0x234a: 0x0001, 0x234b: 0x0001,
- 0x234c: 0x0001, 0x234d: 0x0001, 0x234e: 0x0001, 0x234f: 0x0001, 0x2350: 0x000d, 0x2351: 0x000d,
- 0x2352: 0x000d, 0x2353: 0x000d, 0x2354: 0x000d, 0x2355: 0x000d, 0x2356: 0x000d, 0x2357: 0x000d,
- 0x2358: 0x000d, 0x2359: 0x000d, 0x235a: 0x000d, 0x235b: 0x000d, 0x235c: 0x000d, 0x235d: 0x000d,
- 0x235e: 0x000d, 0x235f: 0x000d, 0x2360: 0x000d, 0x2361: 0x000d, 0x2362: 0x000d, 0x2363: 0x000d,
- 0x2364: 0x000d, 0x2365: 0x000d, 0x2366: 0x000d, 0x2367: 0x000d, 0x2368: 0x000d, 0x2369: 0x000d,
- 0x236a: 0x000d, 0x236b: 0x000d, 0x236c: 0x000d, 0x236d: 0x000d, 0x236e: 0x000d, 0x236f: 0x000d,
- 0x2370: 0x000d, 0x2371: 0x000d, 0x2372: 0x000d, 0x2373: 0x000d, 0x2374: 0x000d, 0x2375: 0x000d,
- 0x2376: 0x000d, 0x2377: 0x000d, 0x2378: 0x000d, 0x2379: 0x000d, 0x237a: 0x000d, 0x237b: 0x000d,
- 0x237c: 0x000d, 0x237d: 0x000d, 0x237e: 0x000d, 0x237f: 0x000d,
- // Block 0x8e, offset 0x2380
- 0x2380: 0x000d, 0x2381: 0x000d, 0x2382: 0x000d, 0x2383: 0x000d, 0x2384: 0x000d, 0x2385: 0x000d,
- 0x2386: 0x000d, 0x2387: 0x000d, 0x2388: 0x000d, 0x2389: 0x000d, 0x238a: 0x000d, 0x238b: 0x000d,
- 0x238c: 0x000d, 0x238d: 0x000d, 0x238e: 0x000d, 0x238f: 0x000d, 0x2390: 0x000d, 0x2391: 0x000d,
- 0x2392: 0x000d, 0x2393: 0x000d, 0x2394: 0x000d, 0x2395: 0x000d, 0x2396: 0x000d, 0x2397: 0x000d,
- 0x2398: 0x000d, 0x2399: 0x000d, 0x239a: 0x000d, 0x239b: 0x000d, 0x239c: 0x000d, 0x239d: 0x000d,
- 0x239e: 0x000d, 0x239f: 0x000d, 0x23a0: 0x000d, 0x23a1: 0x000d, 0x23a2: 0x000d, 0x23a3: 0x000d,
- 0x23a4: 0x000d, 0x23a5: 0x000d, 0x23a6: 0x000d, 0x23a7: 0x000d, 0x23a8: 0x000d, 0x23a9: 0x000d,
- 0x23aa: 0x000d, 0x23ab: 0x000d, 0x23ac: 0x000d, 0x23ad: 0x000d, 0x23ae: 0x000d, 0x23af: 0x000d,
- 0x23b0: 0x000d, 0x23b1: 0x000d, 0x23b2: 0x000d, 0x23b3: 0x000d, 0x23b4: 0x000d, 0x23b5: 0x000d,
- 0x23b6: 0x000d, 0x23b7: 0x000d, 0x23b8: 0x000d, 0x23b9: 0x000d, 0x23ba: 0x000d, 0x23bb: 0x000d,
- 0x23bc: 0x000d, 0x23bd: 0x000d, 0x23be: 0x000a, 0x23bf: 0x000a,
- // Block 0x8f, offset 0x23c0
- 0x23c0: 0x000d, 0x23c1: 0x000d, 0x23c2: 0x000d, 0x23c3: 0x000d, 0x23c4: 0x000d, 0x23c5: 0x000d,
- 0x23c6: 0x000d, 0x23c7: 0x000d, 0x23c8: 0x000d, 0x23c9: 0x000d, 0x23ca: 0x000d, 0x23cb: 0x000d,
- 0x23cc: 0x000d, 0x23cd: 0x000d, 0x23ce: 0x000d, 0x23cf: 0x000d, 0x23d0: 0x000b, 0x23d1: 0x000b,
- 0x23d2: 0x000b, 0x23d3: 0x000b, 0x23d4: 0x000b, 0x23d5: 0x000b, 0x23d6: 0x000b, 0x23d7: 0x000b,
- 0x23d8: 0x000b, 0x23d9: 0x000b, 0x23da: 0x000b, 0x23db: 0x000b, 0x23dc: 0x000b, 0x23dd: 0x000b,
- 0x23de: 0x000b, 0x23df: 0x000b, 0x23e0: 0x000b, 0x23e1: 0x000b, 0x23e2: 0x000b, 0x23e3: 0x000b,
- 0x23e4: 0x000b, 0x23e5: 0x000b, 0x23e6: 0x000b, 0x23e7: 0x000b, 0x23e8: 0x000b, 0x23e9: 0x000b,
- 0x23ea: 0x000b, 0x23eb: 0x000b, 0x23ec: 0x000b, 0x23ed: 0x000b, 0x23ee: 0x000b, 0x23ef: 0x000b,
- 0x23f0: 0x000d, 0x23f1: 0x000d, 0x23f2: 0x000d, 0x23f3: 0x000d, 0x23f4: 0x000d, 0x23f5: 0x000d,
- 0x23f6: 0x000d, 0x23f7: 0x000d, 0x23f8: 0x000d, 0x23f9: 0x000d, 0x23fa: 0x000d, 0x23fb: 0x000d,
- 0x23fc: 0x000d, 0x23fd: 0x000a, 0x23fe: 0x000d, 0x23ff: 0x000d,
- // Block 0x90, offset 0x2400
- 0x2400: 0x000c, 0x2401: 0x000c, 0x2402: 0x000c, 0x2403: 0x000c, 0x2404: 0x000c, 0x2405: 0x000c,
- 0x2406: 0x000c, 0x2407: 0x000c, 0x2408: 0x000c, 0x2409: 0x000c, 0x240a: 0x000c, 0x240b: 0x000c,
- 0x240c: 0x000c, 0x240d: 0x000c, 0x240e: 0x000c, 0x240f: 0x000c, 0x2410: 0x000a, 0x2411: 0x000a,
- 0x2412: 0x000a, 0x2413: 0x000a, 0x2414: 0x000a, 0x2415: 0x000a, 0x2416: 0x000a, 0x2417: 0x000a,
- 0x2418: 0x000a, 0x2419: 0x000a,
- 0x2420: 0x000c, 0x2421: 0x000c, 0x2422: 0x000c, 0x2423: 0x000c,
- 0x2424: 0x000c, 0x2425: 0x000c, 0x2426: 0x000c, 0x2427: 0x000c, 0x2428: 0x000c, 0x2429: 0x000c,
- 0x242a: 0x000c, 0x242b: 0x000c, 0x242c: 0x000c, 0x242d: 0x000c, 0x242e: 0x000c, 0x242f: 0x000c,
- 0x2430: 0x000a, 0x2431: 0x000a, 0x2432: 0x000a, 0x2433: 0x000a, 0x2434: 0x000a, 0x2435: 0x000a,
- 0x2436: 0x000a, 0x2437: 0x000a, 0x2438: 0x000a, 0x2439: 0x000a, 0x243a: 0x000a, 0x243b: 0x000a,
- 0x243c: 0x000a, 0x243d: 0x000a, 0x243e: 0x000a, 0x243f: 0x000a,
- // Block 0x91, offset 0x2440
- 0x2440: 0x000a, 0x2441: 0x000a, 0x2442: 0x000a, 0x2443: 0x000a, 0x2444: 0x000a, 0x2445: 0x000a,
- 0x2446: 0x000a, 0x2447: 0x000a, 0x2448: 0x000a, 0x2449: 0x000a, 0x244a: 0x000a, 0x244b: 0x000a,
- 0x244c: 0x000a, 0x244d: 0x000a, 0x244e: 0x000a, 0x244f: 0x000a, 0x2450: 0x0006, 0x2451: 0x000a,
- 0x2452: 0x0006, 0x2454: 0x000a, 0x2455: 0x0006, 0x2456: 0x000a, 0x2457: 0x000a,
- 0x2458: 0x000a, 0x2459: 0x009a, 0x245a: 0x008a, 0x245b: 0x007a, 0x245c: 0x006a, 0x245d: 0x009a,
- 0x245e: 0x008a, 0x245f: 0x0004, 0x2460: 0x000a, 0x2461: 0x000a, 0x2462: 0x0003, 0x2463: 0x0003,
- 0x2464: 0x000a, 0x2465: 0x000a, 0x2466: 0x000a, 0x2468: 0x000a, 0x2469: 0x0004,
- 0x246a: 0x0004, 0x246b: 0x000a,
- 0x2470: 0x000d, 0x2471: 0x000d, 0x2472: 0x000d, 0x2473: 0x000d, 0x2474: 0x000d, 0x2475: 0x000d,
- 0x2476: 0x000d, 0x2477: 0x000d, 0x2478: 0x000d, 0x2479: 0x000d, 0x247a: 0x000d, 0x247b: 0x000d,
- 0x247c: 0x000d, 0x247d: 0x000d, 0x247e: 0x000d, 0x247f: 0x000d,
- // Block 0x92, offset 0x2480
- 0x2480: 0x000d, 0x2481: 0x000d, 0x2482: 0x000d, 0x2483: 0x000d, 0x2484: 0x000d, 0x2485: 0x000d,
- 0x2486: 0x000d, 0x2487: 0x000d, 0x2488: 0x000d, 0x2489: 0x000d, 0x248a: 0x000d, 0x248b: 0x000d,
- 0x248c: 0x000d, 0x248d: 0x000d, 0x248e: 0x000d, 0x248f: 0x000d, 0x2490: 0x000d, 0x2491: 0x000d,
- 0x2492: 0x000d, 0x2493: 0x000d, 0x2494: 0x000d, 0x2495: 0x000d, 0x2496: 0x000d, 0x2497: 0x000d,
- 0x2498: 0x000d, 0x2499: 0x000d, 0x249a: 0x000d, 0x249b: 0x000d, 0x249c: 0x000d, 0x249d: 0x000d,
- 0x249e: 0x000d, 0x249f: 0x000d, 0x24a0: 0x000d, 0x24a1: 0x000d, 0x24a2: 0x000d, 0x24a3: 0x000d,
- 0x24a4: 0x000d, 0x24a5: 0x000d, 0x24a6: 0x000d, 0x24a7: 0x000d, 0x24a8: 0x000d, 0x24a9: 0x000d,
- 0x24aa: 0x000d, 0x24ab: 0x000d, 0x24ac: 0x000d, 0x24ad: 0x000d, 0x24ae: 0x000d, 0x24af: 0x000d,
- 0x24b0: 0x000d, 0x24b1: 0x000d, 0x24b2: 0x000d, 0x24b3: 0x000d, 0x24b4: 0x000d, 0x24b5: 0x000d,
- 0x24b6: 0x000d, 0x24b7: 0x000d, 0x24b8: 0x000d, 0x24b9: 0x000d, 0x24ba: 0x000d, 0x24bb: 0x000d,
- 0x24bc: 0x000d, 0x24bd: 0x000d, 0x24be: 0x000d, 0x24bf: 0x000b,
- // Block 0x93, offset 0x24c0
- 0x24c1: 0x000a, 0x24c2: 0x000a, 0x24c3: 0x0004, 0x24c4: 0x0004, 0x24c5: 0x0004,
- 0x24c6: 0x000a, 0x24c7: 0x000a, 0x24c8: 0x003a, 0x24c9: 0x002a, 0x24ca: 0x000a, 0x24cb: 0x0003,
- 0x24cc: 0x0006, 0x24cd: 0x0003, 0x24ce: 0x0006, 0x24cf: 0x0006, 0x24d0: 0x0002, 0x24d1: 0x0002,
- 0x24d2: 0x0002, 0x24d3: 0x0002, 0x24d4: 0x0002, 0x24d5: 0x0002, 0x24d6: 0x0002, 0x24d7: 0x0002,
- 0x24d8: 0x0002, 0x24d9: 0x0002, 0x24da: 0x0006, 0x24db: 0x000a, 0x24dc: 0x000a, 0x24dd: 0x000a,
- 0x24de: 0x000a, 0x24df: 0x000a, 0x24e0: 0x000a,
- 0x24fb: 0x005a,
- 0x24fc: 0x000a, 0x24fd: 0x004a, 0x24fe: 0x000a, 0x24ff: 0x000a,
- // Block 0x94, offset 0x2500
- 0x2500: 0x000a,
- 0x251b: 0x005a, 0x251c: 0x000a, 0x251d: 0x004a,
- 0x251e: 0x000a, 0x251f: 0x00fa, 0x2520: 0x00ea, 0x2521: 0x000a, 0x2522: 0x003a, 0x2523: 0x002a,
- 0x2524: 0x000a, 0x2525: 0x000a,
- // Block 0x95, offset 0x2540
- 0x2560: 0x0004, 0x2561: 0x0004, 0x2562: 0x000a, 0x2563: 0x000a,
- 0x2564: 0x000a, 0x2565: 0x0004, 0x2566: 0x0004, 0x2568: 0x000a, 0x2569: 0x000a,
- 0x256a: 0x000a, 0x256b: 0x000a, 0x256c: 0x000a, 0x256d: 0x000a, 0x256e: 0x000a,
- 0x2570: 0x000b, 0x2571: 0x000b, 0x2572: 0x000b, 0x2573: 0x000b, 0x2574: 0x000b, 0x2575: 0x000b,
- 0x2576: 0x000b, 0x2577: 0x000b, 0x2578: 0x000b, 0x2579: 0x000a, 0x257a: 0x000a, 0x257b: 0x000a,
- 0x257c: 0x000a, 0x257d: 0x000a, 0x257e: 0x000b, 0x257f: 0x000b,
- // Block 0x96, offset 0x2580
- 0x2581: 0x000a,
- // Block 0x97, offset 0x25c0
- 0x25c0: 0x000a, 0x25c1: 0x000a, 0x25c2: 0x000a, 0x25c3: 0x000a, 0x25c4: 0x000a, 0x25c5: 0x000a,
- 0x25c6: 0x000a, 0x25c7: 0x000a, 0x25c8: 0x000a, 0x25c9: 0x000a, 0x25ca: 0x000a, 0x25cb: 0x000a,
- 0x25cc: 0x000a, 0x25d0: 0x000a, 0x25d1: 0x000a,
- 0x25d2: 0x000a, 0x25d3: 0x000a, 0x25d4: 0x000a, 0x25d5: 0x000a, 0x25d6: 0x000a, 0x25d7: 0x000a,
- 0x25d8: 0x000a, 0x25d9: 0x000a, 0x25da: 0x000a, 0x25db: 0x000a,
- 0x25e0: 0x000a,
- // Block 0x98, offset 0x2600
- 0x263d: 0x000c,
- // Block 0x99, offset 0x2640
- 0x2660: 0x000c, 0x2661: 0x0002, 0x2662: 0x0002, 0x2663: 0x0002,
- 0x2664: 0x0002, 0x2665: 0x0002, 0x2666: 0x0002, 0x2667: 0x0002, 0x2668: 0x0002, 0x2669: 0x0002,
- 0x266a: 0x0002, 0x266b: 0x0002, 0x266c: 0x0002, 0x266d: 0x0002, 0x266e: 0x0002, 0x266f: 0x0002,
- 0x2670: 0x0002, 0x2671: 0x0002, 0x2672: 0x0002, 0x2673: 0x0002, 0x2674: 0x0002, 0x2675: 0x0002,
- 0x2676: 0x0002, 0x2677: 0x0002, 0x2678: 0x0002, 0x2679: 0x0002, 0x267a: 0x0002, 0x267b: 0x0002,
- // Block 0x9a, offset 0x2680
- 0x26b6: 0x000c, 0x26b7: 0x000c, 0x26b8: 0x000c, 0x26b9: 0x000c, 0x26ba: 0x000c,
- // Block 0x9b, offset 0x26c0
- 0x26c0: 0x0001, 0x26c1: 0x0001, 0x26c2: 0x0001, 0x26c3: 0x0001, 0x26c4: 0x0001, 0x26c5: 0x0001,
- 0x26c6: 0x0001, 0x26c7: 0x0001, 0x26c8: 0x0001, 0x26c9: 0x0001, 0x26ca: 0x0001, 0x26cb: 0x0001,
- 0x26cc: 0x0001, 0x26cd: 0x0001, 0x26ce: 0x0001, 0x26cf: 0x0001, 0x26d0: 0x0001, 0x26d1: 0x0001,
- 0x26d2: 0x0001, 0x26d3: 0x0001, 0x26d4: 0x0001, 0x26d5: 0x0001, 0x26d6: 0x0001, 0x26d7: 0x0001,
- 0x26d8: 0x0001, 0x26d9: 0x0001, 0x26da: 0x0001, 0x26db: 0x0001, 0x26dc: 0x0001, 0x26dd: 0x0001,
- 0x26de: 0x0001, 0x26df: 0x0001, 0x26e0: 0x0001, 0x26e1: 0x0001, 0x26e2: 0x0001, 0x26e3: 0x0001,
- 0x26e4: 0x0001, 0x26e5: 0x0001, 0x26e6: 0x0001, 0x26e7: 0x0001, 0x26e8: 0x0001, 0x26e9: 0x0001,
- 0x26ea: 0x0001, 0x26eb: 0x0001, 0x26ec: 0x0001, 0x26ed: 0x0001, 0x26ee: 0x0001, 0x26ef: 0x0001,
- 0x26f0: 0x0001, 0x26f1: 0x0001, 0x26f2: 0x0001, 0x26f3: 0x0001, 0x26f4: 0x0001, 0x26f5: 0x0001,
- 0x26f6: 0x0001, 0x26f7: 0x0001, 0x26f8: 0x0001, 0x26f9: 0x0001, 0x26fa: 0x0001, 0x26fb: 0x0001,
- 0x26fc: 0x0001, 0x26fd: 0x0001, 0x26fe: 0x0001, 0x26ff: 0x0001,
- // Block 0x9c, offset 0x2700
- 0x2700: 0x0001, 0x2701: 0x0001, 0x2702: 0x0001, 0x2703: 0x0001, 0x2704: 0x0001, 0x2705: 0x0001,
- 0x2706: 0x0001, 0x2707: 0x0001, 0x2708: 0x0001, 0x2709: 0x0001, 0x270a: 0x0001, 0x270b: 0x0001,
- 0x270c: 0x0001, 0x270d: 0x0001, 0x270e: 0x0001, 0x270f: 0x0001, 0x2710: 0x0001, 0x2711: 0x0001,
- 0x2712: 0x0001, 0x2713: 0x0001, 0x2714: 0x0001, 0x2715: 0x0001, 0x2716: 0x0001, 0x2717: 0x0001,
- 0x2718: 0x0001, 0x2719: 0x0001, 0x271a: 0x0001, 0x271b: 0x0001, 0x271c: 0x0001, 0x271d: 0x0001,
- 0x271e: 0x0001, 0x271f: 0x000a, 0x2720: 0x0001, 0x2721: 0x0001, 0x2722: 0x0001, 0x2723: 0x0001,
- 0x2724: 0x0001, 0x2725: 0x0001, 0x2726: 0x0001, 0x2727: 0x0001, 0x2728: 0x0001, 0x2729: 0x0001,
- 0x272a: 0x0001, 0x272b: 0x0001, 0x272c: 0x0001, 0x272d: 0x0001, 0x272e: 0x0001, 0x272f: 0x0001,
- 0x2730: 0x0001, 0x2731: 0x0001, 0x2732: 0x0001, 0x2733: 0x0001, 0x2734: 0x0001, 0x2735: 0x0001,
- 0x2736: 0x0001, 0x2737: 0x0001, 0x2738: 0x0001, 0x2739: 0x0001, 0x273a: 0x0001, 0x273b: 0x0001,
- 0x273c: 0x0001, 0x273d: 0x0001, 0x273e: 0x0001, 0x273f: 0x0001,
- // Block 0x9d, offset 0x2740
- 0x2740: 0x0001, 0x2741: 0x000c, 0x2742: 0x000c, 0x2743: 0x000c, 0x2744: 0x0001, 0x2745: 0x000c,
- 0x2746: 0x000c, 0x2747: 0x0001, 0x2748: 0x0001, 0x2749: 0x0001, 0x274a: 0x0001, 0x274b: 0x0001,
- 0x274c: 0x000c, 0x274d: 0x000c, 0x274e: 0x000c, 0x274f: 0x000c, 0x2750: 0x0001, 0x2751: 0x0001,
- 0x2752: 0x0001, 0x2753: 0x0001, 0x2754: 0x0001, 0x2755: 0x0001, 0x2756: 0x0001, 0x2757: 0x0001,
- 0x2758: 0x0001, 0x2759: 0x0001, 0x275a: 0x0001, 0x275b: 0x0001, 0x275c: 0x0001, 0x275d: 0x0001,
- 0x275e: 0x0001, 0x275f: 0x0001, 0x2760: 0x0001, 0x2761: 0x0001, 0x2762: 0x0001, 0x2763: 0x0001,
- 0x2764: 0x0001, 0x2765: 0x0001, 0x2766: 0x0001, 0x2767: 0x0001, 0x2768: 0x0001, 0x2769: 0x0001,
- 0x276a: 0x0001, 0x276b: 0x0001, 0x276c: 0x0001, 0x276d: 0x0001, 0x276e: 0x0001, 0x276f: 0x0001,
- 0x2770: 0x0001, 0x2771: 0x0001, 0x2772: 0x0001, 0x2773: 0x0001, 0x2774: 0x0001, 0x2775: 0x0001,
- 0x2776: 0x0001, 0x2777: 0x0001, 0x2778: 0x000c, 0x2779: 0x000c, 0x277a: 0x000c, 0x277b: 0x0001,
- 0x277c: 0x0001, 0x277d: 0x0001, 0x277e: 0x0001, 0x277f: 0x000c,
- // Block 0x9e, offset 0x2780
- 0x2780: 0x0001, 0x2781: 0x0001, 0x2782: 0x0001, 0x2783: 0x0001, 0x2784: 0x0001, 0x2785: 0x0001,
- 0x2786: 0x0001, 0x2787: 0x0001, 0x2788: 0x0001, 0x2789: 0x0001, 0x278a: 0x0001, 0x278b: 0x0001,
- 0x278c: 0x0001, 0x278d: 0x0001, 0x278e: 0x0001, 0x278f: 0x0001, 0x2790: 0x0001, 0x2791: 0x0001,
- 0x2792: 0x0001, 0x2793: 0x0001, 0x2794: 0x0001, 0x2795: 0x0001, 0x2796: 0x0001, 0x2797: 0x0001,
- 0x2798: 0x0001, 0x2799: 0x0001, 0x279a: 0x0001, 0x279b: 0x0001, 0x279c: 0x0001, 0x279d: 0x0001,
- 0x279e: 0x0001, 0x279f: 0x0001, 0x27a0: 0x0001, 0x27a1: 0x0001, 0x27a2: 0x0001, 0x27a3: 0x0001,
- 0x27a4: 0x0001, 0x27a5: 0x000c, 0x27a6: 0x000c, 0x27a7: 0x0001, 0x27a8: 0x0001, 0x27a9: 0x0001,
- 0x27aa: 0x0001, 0x27ab: 0x0001, 0x27ac: 0x0001, 0x27ad: 0x0001, 0x27ae: 0x0001, 0x27af: 0x0001,
- 0x27b0: 0x0001, 0x27b1: 0x0001, 0x27b2: 0x0001, 0x27b3: 0x0001, 0x27b4: 0x0001, 0x27b5: 0x0001,
- 0x27b6: 0x0001, 0x27b7: 0x0001, 0x27b8: 0x0001, 0x27b9: 0x0001, 0x27ba: 0x0001, 0x27bb: 0x0001,
- 0x27bc: 0x0001, 0x27bd: 0x0001, 0x27be: 0x0001, 0x27bf: 0x0001,
- // Block 0x9f, offset 0x27c0
- 0x27c0: 0x0001, 0x27c1: 0x0001, 0x27c2: 0x0001, 0x27c3: 0x0001, 0x27c4: 0x0001, 0x27c5: 0x0001,
- 0x27c6: 0x0001, 0x27c7: 0x0001, 0x27c8: 0x0001, 0x27c9: 0x0001, 0x27ca: 0x0001, 0x27cb: 0x0001,
- 0x27cc: 0x0001, 0x27cd: 0x0001, 0x27ce: 0x0001, 0x27cf: 0x0001, 0x27d0: 0x0001, 0x27d1: 0x0001,
- 0x27d2: 0x0001, 0x27d3: 0x0001, 0x27d4: 0x0001, 0x27d5: 0x0001, 0x27d6: 0x0001, 0x27d7: 0x0001,
- 0x27d8: 0x0001, 0x27d9: 0x0001, 0x27da: 0x0001, 0x27db: 0x0001, 0x27dc: 0x0001, 0x27dd: 0x0001,
- 0x27de: 0x0001, 0x27df: 0x0001, 0x27e0: 0x0001, 0x27e1: 0x0001, 0x27e2: 0x0001, 0x27e3: 0x0001,
- 0x27e4: 0x0001, 0x27e5: 0x0001, 0x27e6: 0x0001, 0x27e7: 0x0001, 0x27e8: 0x0001, 0x27e9: 0x0001,
- 0x27ea: 0x0001, 0x27eb: 0x0001, 0x27ec: 0x0001, 0x27ed: 0x0001, 0x27ee: 0x0001, 0x27ef: 0x0001,
- 0x27f0: 0x0001, 0x27f1: 0x0001, 0x27f2: 0x0001, 0x27f3: 0x0001, 0x27f4: 0x0001, 0x27f5: 0x0001,
- 0x27f6: 0x0001, 0x27f7: 0x0001, 0x27f8: 0x0001, 0x27f9: 0x000a, 0x27fa: 0x000a, 0x27fb: 0x000a,
- 0x27fc: 0x000a, 0x27fd: 0x000a, 0x27fe: 0x000a, 0x27ff: 0x000a,
- // Block 0xa0, offset 0x2800
- 0x2800: 0x000d, 0x2801: 0x000d, 0x2802: 0x000d, 0x2803: 0x000d, 0x2804: 0x000d, 0x2805: 0x000d,
- 0x2806: 0x000d, 0x2807: 0x000d, 0x2808: 0x000d, 0x2809: 0x000d, 0x280a: 0x000d, 0x280b: 0x000d,
- 0x280c: 0x000d, 0x280d: 0x000d, 0x280e: 0x000d, 0x280f: 0x000d, 0x2810: 0x000d, 0x2811: 0x000d,
- 0x2812: 0x000d, 0x2813: 0x000d, 0x2814: 0x000d, 0x2815: 0x000d, 0x2816: 0x000d, 0x2817: 0x000d,
- 0x2818: 0x000d, 0x2819: 0x000d, 0x281a: 0x000d, 0x281b: 0x000d, 0x281c: 0x000d, 0x281d: 0x000d,
- 0x281e: 0x000d, 0x281f: 0x000d, 0x2820: 0x000d, 0x2821: 0x000d, 0x2822: 0x000d, 0x2823: 0x000d,
- 0x2824: 0x000c, 0x2825: 0x000c, 0x2826: 0x000c, 0x2827: 0x000c, 0x2828: 0x000d, 0x2829: 0x000d,
- 0x282a: 0x000d, 0x282b: 0x000d, 0x282c: 0x000d, 0x282d: 0x000d, 0x282e: 0x000d, 0x282f: 0x000d,
- 0x2830: 0x0005, 0x2831: 0x0005, 0x2832: 0x0005, 0x2833: 0x0005, 0x2834: 0x0005, 0x2835: 0x0005,
- 0x2836: 0x0005, 0x2837: 0x0005, 0x2838: 0x0005, 0x2839: 0x0005, 0x283a: 0x000d, 0x283b: 0x000d,
- 0x283c: 0x000d, 0x283d: 0x000d, 0x283e: 0x000d, 0x283f: 0x000d,
- // Block 0xa1, offset 0x2840
- 0x2840: 0x0001, 0x2841: 0x0001, 0x2842: 0x0001, 0x2843: 0x0001, 0x2844: 0x0001, 0x2845: 0x0001,
- 0x2846: 0x0001, 0x2847: 0x0001, 0x2848: 0x0001, 0x2849: 0x0001, 0x284a: 0x0001, 0x284b: 0x0001,
- 0x284c: 0x0001, 0x284d: 0x0001, 0x284e: 0x0001, 0x284f: 0x0001, 0x2850: 0x0001, 0x2851: 0x0001,
- 0x2852: 0x0001, 0x2853: 0x0001, 0x2854: 0x0001, 0x2855: 0x0001, 0x2856: 0x0001, 0x2857: 0x0001,
- 0x2858: 0x0001, 0x2859: 0x0001, 0x285a: 0x0001, 0x285b: 0x0001, 0x285c: 0x0001, 0x285d: 0x0001,
- 0x285e: 0x0001, 0x285f: 0x0001, 0x2860: 0x0005, 0x2861: 0x0005, 0x2862: 0x0005, 0x2863: 0x0005,
- 0x2864: 0x0005, 0x2865: 0x0005, 0x2866: 0x0005, 0x2867: 0x0005, 0x2868: 0x0005, 0x2869: 0x0005,
- 0x286a: 0x0005, 0x286b: 0x0005, 0x286c: 0x0005, 0x286d: 0x0005, 0x286e: 0x0005, 0x286f: 0x0005,
- 0x2870: 0x0005, 0x2871: 0x0005, 0x2872: 0x0005, 0x2873: 0x0005, 0x2874: 0x0005, 0x2875: 0x0005,
- 0x2876: 0x0005, 0x2877: 0x0005, 0x2878: 0x0005, 0x2879: 0x0005, 0x287a: 0x0005, 0x287b: 0x0005,
- 0x287c: 0x0005, 0x287d: 0x0005, 0x287e: 0x0005, 0x287f: 0x0001,
- // Block 0xa2, offset 0x2880
- 0x2880: 0x0001, 0x2881: 0x0001, 0x2882: 0x0001, 0x2883: 0x0001, 0x2884: 0x0001, 0x2885: 0x0001,
- 0x2886: 0x0001, 0x2887: 0x0001, 0x2888: 0x0001, 0x2889: 0x0001, 0x288a: 0x0001, 0x288b: 0x0001,
- 0x288c: 0x0001, 0x288d: 0x0001, 0x288e: 0x0001, 0x288f: 0x0001, 0x2890: 0x0001, 0x2891: 0x0001,
- 0x2892: 0x0001, 0x2893: 0x0001, 0x2894: 0x0001, 0x2895: 0x0001, 0x2896: 0x0001, 0x2897: 0x0001,
- 0x2898: 0x0001, 0x2899: 0x0001, 0x289a: 0x0001, 0x289b: 0x0001, 0x289c: 0x0001, 0x289d: 0x0001,
- 0x289e: 0x0001, 0x289f: 0x0001, 0x28a0: 0x0001, 0x28a1: 0x0001, 0x28a2: 0x0001, 0x28a3: 0x0001,
- 0x28a4: 0x0001, 0x28a5: 0x0001, 0x28a6: 0x0001, 0x28a7: 0x0001, 0x28a8: 0x0001, 0x28a9: 0x0001,
- 0x28aa: 0x0001, 0x28ab: 0x0001, 0x28ac: 0x0001, 0x28ad: 0x0001, 0x28ae: 0x0001, 0x28af: 0x0001,
- 0x28b0: 0x000d, 0x28b1: 0x000d, 0x28b2: 0x000d, 0x28b3: 0x000d, 0x28b4: 0x000d, 0x28b5: 0x000d,
- 0x28b6: 0x000d, 0x28b7: 0x000d, 0x28b8: 0x000d, 0x28b9: 0x000d, 0x28ba: 0x000d, 0x28bb: 0x000d,
- 0x28bc: 0x000d, 0x28bd: 0x000d, 0x28be: 0x000d, 0x28bf: 0x000d,
- // Block 0xa3, offset 0x28c0
- 0x28c0: 0x000d, 0x28c1: 0x000d, 0x28c2: 0x000d, 0x28c3: 0x000d, 0x28c4: 0x000d, 0x28c5: 0x000d,
- 0x28c6: 0x000c, 0x28c7: 0x000c, 0x28c8: 0x000c, 0x28c9: 0x000c, 0x28ca: 0x000c, 0x28cb: 0x000c,
- 0x28cc: 0x000c, 0x28cd: 0x000c, 0x28ce: 0x000c, 0x28cf: 0x000c, 0x28d0: 0x000c, 0x28d1: 0x000d,
- 0x28d2: 0x000d, 0x28d3: 0x000d, 0x28d4: 0x000d, 0x28d5: 0x000d, 0x28d6: 0x000d, 0x28d7: 0x000d,
- 0x28d8: 0x000d, 0x28d9: 0x000d, 0x28da: 0x000d, 0x28db: 0x000d, 0x28dc: 0x000d, 0x28dd: 0x000d,
- 0x28de: 0x000d, 0x28df: 0x000d, 0x28e0: 0x000d, 0x28e1: 0x000d, 0x28e2: 0x000d, 0x28e3: 0x000d,
- 0x28e4: 0x000d, 0x28e5: 0x000d, 0x28e6: 0x000d, 0x28e7: 0x000d, 0x28e8: 0x000d, 0x28e9: 0x000d,
- 0x28ea: 0x000d, 0x28eb: 0x000d, 0x28ec: 0x000d, 0x28ed: 0x000d, 0x28ee: 0x000d, 0x28ef: 0x000d,
- 0x28f0: 0x0001, 0x28f1: 0x0001, 0x28f2: 0x0001, 0x28f3: 0x0001, 0x28f4: 0x0001, 0x28f5: 0x0001,
- 0x28f6: 0x0001, 0x28f7: 0x0001, 0x28f8: 0x0001, 0x28f9: 0x0001, 0x28fa: 0x0001, 0x28fb: 0x0001,
- 0x28fc: 0x0001, 0x28fd: 0x0001, 0x28fe: 0x0001, 0x28ff: 0x0001,
- // Block 0xa4, offset 0x2900
- 0x2901: 0x000c,
- 0x2938: 0x000c, 0x2939: 0x000c, 0x293a: 0x000c, 0x293b: 0x000c,
- 0x293c: 0x000c, 0x293d: 0x000c, 0x293e: 0x000c, 0x293f: 0x000c,
- // Block 0xa5, offset 0x2940
- 0x2940: 0x000c, 0x2941: 0x000c, 0x2942: 0x000c, 0x2943: 0x000c, 0x2944: 0x000c, 0x2945: 0x000c,
- 0x2946: 0x000c,
- 0x2952: 0x000a, 0x2953: 0x000a, 0x2954: 0x000a, 0x2955: 0x000a, 0x2956: 0x000a, 0x2957: 0x000a,
- 0x2958: 0x000a, 0x2959: 0x000a, 0x295a: 0x000a, 0x295b: 0x000a, 0x295c: 0x000a, 0x295d: 0x000a,
- 0x295e: 0x000a, 0x295f: 0x000a, 0x2960: 0x000a, 0x2961: 0x000a, 0x2962: 0x000a, 0x2963: 0x000a,
- 0x2964: 0x000a, 0x2965: 0x000a,
- 0x297f: 0x000c,
- // Block 0xa6, offset 0x2980
- 0x2980: 0x000c, 0x2981: 0x000c,
- 0x29b3: 0x000c, 0x29b4: 0x000c, 0x29b5: 0x000c,
- 0x29b6: 0x000c, 0x29b9: 0x000c, 0x29ba: 0x000c,
- // Block 0xa7, offset 0x29c0
- 0x29c0: 0x000c, 0x29c1: 0x000c, 0x29c2: 0x000c,
- 0x29e7: 0x000c, 0x29e8: 0x000c, 0x29e9: 0x000c,
- 0x29ea: 0x000c, 0x29eb: 0x000c, 0x29ed: 0x000c, 0x29ee: 0x000c, 0x29ef: 0x000c,
- 0x29f0: 0x000c, 0x29f1: 0x000c, 0x29f2: 0x000c, 0x29f3: 0x000c, 0x29f4: 0x000c,
- // Block 0xa8, offset 0x2a00
- 0x2a33: 0x000c,
- // Block 0xa9, offset 0x2a40
- 0x2a40: 0x000c, 0x2a41: 0x000c,
- 0x2a76: 0x000c, 0x2a77: 0x000c, 0x2a78: 0x000c, 0x2a79: 0x000c, 0x2a7a: 0x000c, 0x2a7b: 0x000c,
- 0x2a7c: 0x000c, 0x2a7d: 0x000c, 0x2a7e: 0x000c,
- // Block 0xaa, offset 0x2a80
- 0x2a89: 0x000c, 0x2a8a: 0x000c, 0x2a8b: 0x000c,
- 0x2a8c: 0x000c,
- // Block 0xab, offset 0x2ac0
- 0x2aef: 0x000c,
- 0x2af0: 0x000c, 0x2af1: 0x000c, 0x2af4: 0x000c,
- 0x2af6: 0x000c, 0x2af7: 0x000c,
- 0x2afe: 0x000c,
- // Block 0xac, offset 0x2b00
- 0x2b1f: 0x000c, 0x2b23: 0x000c,
- 0x2b24: 0x000c, 0x2b25: 0x000c, 0x2b26: 0x000c, 0x2b27: 0x000c, 0x2b28: 0x000c, 0x2b29: 0x000c,
- 0x2b2a: 0x000c,
- // Block 0xad, offset 0x2b40
- 0x2b40: 0x000c,
- 0x2b66: 0x000c, 0x2b67: 0x000c, 0x2b68: 0x000c, 0x2b69: 0x000c,
- 0x2b6a: 0x000c, 0x2b6b: 0x000c, 0x2b6c: 0x000c,
- 0x2b70: 0x000c, 0x2b71: 0x000c, 0x2b72: 0x000c, 0x2b73: 0x000c, 0x2b74: 0x000c,
- // Block 0xae, offset 0x2b80
- 0x2bb8: 0x000c, 0x2bb9: 0x000c, 0x2bba: 0x000c, 0x2bbb: 0x000c,
- 0x2bbc: 0x000c, 0x2bbd: 0x000c, 0x2bbe: 0x000c, 0x2bbf: 0x000c,
- // Block 0xaf, offset 0x2bc0
- 0x2bc2: 0x000c, 0x2bc3: 0x000c, 0x2bc4: 0x000c,
- 0x2bc6: 0x000c,
- 0x2bde: 0x000c,
- // Block 0xb0, offset 0x2c00
- 0x2c33: 0x000c, 0x2c34: 0x000c, 0x2c35: 0x000c,
- 0x2c36: 0x000c, 0x2c37: 0x000c, 0x2c38: 0x000c, 0x2c3a: 0x000c,
- 0x2c3f: 0x000c,
- // Block 0xb1, offset 0x2c40
- 0x2c40: 0x000c, 0x2c42: 0x000c, 0x2c43: 0x000c,
- // Block 0xb2, offset 0x2c80
- 0x2cb2: 0x000c, 0x2cb3: 0x000c, 0x2cb4: 0x000c, 0x2cb5: 0x000c,
- 0x2cbc: 0x000c, 0x2cbd: 0x000c, 0x2cbf: 0x000c,
- // Block 0xb3, offset 0x2cc0
- 0x2cc0: 0x000c,
- 0x2cdc: 0x000c, 0x2cdd: 0x000c,
- // Block 0xb4, offset 0x2d00
- 0x2d33: 0x000c, 0x2d34: 0x000c, 0x2d35: 0x000c,
- 0x2d36: 0x000c, 0x2d37: 0x000c, 0x2d38: 0x000c, 0x2d39: 0x000c, 0x2d3a: 0x000c,
- 0x2d3d: 0x000c, 0x2d3f: 0x000c,
- // Block 0xb5, offset 0x2d40
- 0x2d40: 0x000c,
- 0x2d60: 0x000a, 0x2d61: 0x000a, 0x2d62: 0x000a, 0x2d63: 0x000a,
- 0x2d64: 0x000a, 0x2d65: 0x000a, 0x2d66: 0x000a, 0x2d67: 0x000a, 0x2d68: 0x000a, 0x2d69: 0x000a,
- 0x2d6a: 0x000a, 0x2d6b: 0x000a, 0x2d6c: 0x000a,
- // Block 0xb6, offset 0x2d80
- 0x2dab: 0x000c, 0x2dad: 0x000c,
- 0x2db0: 0x000c, 0x2db1: 0x000c, 0x2db2: 0x000c, 0x2db3: 0x000c, 0x2db4: 0x000c, 0x2db5: 0x000c,
- 0x2db7: 0x000c,
- // Block 0xb7, offset 0x2dc0
- 0x2ddd: 0x000c,
- 0x2dde: 0x000c, 0x2ddf: 0x000c, 0x2de2: 0x000c, 0x2de3: 0x000c,
- 0x2de4: 0x000c, 0x2de5: 0x000c, 0x2de7: 0x000c, 0x2de8: 0x000c, 0x2de9: 0x000c,
- 0x2dea: 0x000c, 0x2deb: 0x000c,
- // Block 0xb8, offset 0x2e00
- 0x2e2f: 0x000c,
- 0x2e30: 0x000c, 0x2e31: 0x000c, 0x2e32: 0x000c, 0x2e33: 0x000c, 0x2e34: 0x000c, 0x2e35: 0x000c,
- 0x2e36: 0x000c, 0x2e37: 0x000c, 0x2e39: 0x000c, 0x2e3a: 0x000c,
- // Block 0xb9, offset 0x2e40
- 0x2e54: 0x000c, 0x2e55: 0x000c, 0x2e56: 0x000c, 0x2e57: 0x000c,
- 0x2e5a: 0x000c, 0x2e5b: 0x000c,
- 0x2e60: 0x000c,
- // Block 0xba, offset 0x2e80
- 0x2e81: 0x000c, 0x2e82: 0x000c, 0x2e83: 0x000c, 0x2e84: 0x000c, 0x2e85: 0x000c,
- 0x2e86: 0x000c, 0x2e89: 0x000c, 0x2e8a: 0x000c,
- 0x2eb3: 0x000c, 0x2eb4: 0x000c, 0x2eb5: 0x000c,
- 0x2eb6: 0x000c, 0x2eb7: 0x000c, 0x2eb8: 0x000c, 0x2ebb: 0x000c,
- 0x2ebc: 0x000c, 0x2ebd: 0x000c, 0x2ebe: 0x000c,
- // Block 0xbb, offset 0x2ec0
- 0x2ec7: 0x000c,
- 0x2ed1: 0x000c,
- 0x2ed2: 0x000c, 0x2ed3: 0x000c, 0x2ed4: 0x000c, 0x2ed5: 0x000c, 0x2ed6: 0x000c,
- 0x2ed9: 0x000c, 0x2eda: 0x000c, 0x2edb: 0x000c,
- // Block 0xbc, offset 0x2f00
- 0x2f0a: 0x000c, 0x2f0b: 0x000c,
- 0x2f0c: 0x000c, 0x2f0d: 0x000c, 0x2f0e: 0x000c, 0x2f0f: 0x000c, 0x2f10: 0x000c, 0x2f11: 0x000c,
- 0x2f12: 0x000c, 0x2f13: 0x000c, 0x2f14: 0x000c, 0x2f15: 0x000c, 0x2f16: 0x000c,
- 0x2f18: 0x000c, 0x2f19: 0x000c,
- // Block 0xbd, offset 0x2f40
- 0x2f70: 0x000c, 0x2f71: 0x000c, 0x2f72: 0x000c, 0x2f73: 0x000c, 0x2f74: 0x000c, 0x2f75: 0x000c,
- 0x2f76: 0x000c, 0x2f78: 0x000c, 0x2f79: 0x000c, 0x2f7a: 0x000c, 0x2f7b: 0x000c,
- 0x2f7c: 0x000c, 0x2f7d: 0x000c,
- // Block 0xbe, offset 0x2f80
- 0x2f92: 0x000c, 0x2f93: 0x000c, 0x2f94: 0x000c, 0x2f95: 0x000c, 0x2f96: 0x000c, 0x2f97: 0x000c,
- 0x2f98: 0x000c, 0x2f99: 0x000c, 0x2f9a: 0x000c, 0x2f9b: 0x000c, 0x2f9c: 0x000c, 0x2f9d: 0x000c,
- 0x2f9e: 0x000c, 0x2f9f: 0x000c, 0x2fa0: 0x000c, 0x2fa1: 0x000c, 0x2fa2: 0x000c, 0x2fa3: 0x000c,
- 0x2fa4: 0x000c, 0x2fa5: 0x000c, 0x2fa6: 0x000c, 0x2fa7: 0x000c,
- 0x2faa: 0x000c, 0x2fab: 0x000c, 0x2fac: 0x000c, 0x2fad: 0x000c, 0x2fae: 0x000c, 0x2faf: 0x000c,
- 0x2fb0: 0x000c, 0x2fb2: 0x000c, 0x2fb3: 0x000c, 0x2fb5: 0x000c,
- 0x2fb6: 0x000c,
- // Block 0xbf, offset 0x2fc0
- 0x2ff1: 0x000c, 0x2ff2: 0x000c, 0x2ff3: 0x000c, 0x2ff4: 0x000c, 0x2ff5: 0x000c,
- 0x2ff6: 0x000c, 0x2ffa: 0x000c,
- 0x2ffc: 0x000c, 0x2ffd: 0x000c, 0x2fff: 0x000c,
- // Block 0xc0, offset 0x3000
- 0x3000: 0x000c, 0x3001: 0x000c, 0x3002: 0x000c, 0x3003: 0x000c, 0x3004: 0x000c, 0x3005: 0x000c,
- 0x3007: 0x000c,
- // Block 0xc1, offset 0x3040
- 0x3050: 0x000c, 0x3051: 0x000c,
- 0x3055: 0x000c, 0x3057: 0x000c,
- // Block 0xc2, offset 0x3080
- 0x30b3: 0x000c, 0x30b4: 0x000c,
- // Block 0xc3, offset 0x30c0
- 0x30d5: 0x000a, 0x30d6: 0x000a, 0x30d7: 0x000a,
- 0x30d8: 0x000a, 0x30d9: 0x000a, 0x30da: 0x000a, 0x30db: 0x000a, 0x30dc: 0x000a, 0x30dd: 0x0004,
- 0x30de: 0x0004, 0x30df: 0x0004, 0x30e0: 0x0004, 0x30e1: 0x000a, 0x30e2: 0x000a, 0x30e3: 0x000a,
- 0x30e4: 0x000a, 0x30e5: 0x000a, 0x30e6: 0x000a, 0x30e7: 0x000a, 0x30e8: 0x000a, 0x30e9: 0x000a,
- 0x30ea: 0x000a, 0x30eb: 0x000a, 0x30ec: 0x000a, 0x30ed: 0x000a, 0x30ee: 0x000a, 0x30ef: 0x000a,
- 0x30f0: 0x000a, 0x30f1: 0x000a,
- // Block 0xc4, offset 0x3100
- 0x3130: 0x000c, 0x3131: 0x000c, 0x3132: 0x000c, 0x3133: 0x000c, 0x3134: 0x000c,
- // Block 0xc5, offset 0x3140
- 0x3170: 0x000c, 0x3171: 0x000c, 0x3172: 0x000c, 0x3173: 0x000c, 0x3174: 0x000c, 0x3175: 0x000c,
- 0x3176: 0x000c,
- // Block 0xc6, offset 0x3180
- 0x318f: 0x000c,
- // Block 0xc7, offset 0x31c0
- 0x31cf: 0x000c, 0x31d0: 0x000c, 0x31d1: 0x000c,
- 0x31d2: 0x000c,
- // Block 0xc8, offset 0x3200
- 0x3222: 0x000a,
- // Block 0xc9, offset 0x3240
- 0x325d: 0x000c,
- 0x325e: 0x000c, 0x3260: 0x000b, 0x3261: 0x000b, 0x3262: 0x000b, 0x3263: 0x000b,
- // Block 0xca, offset 0x3280
- 0x32a7: 0x000c, 0x32a8: 0x000c, 0x32a9: 0x000c,
- 0x32b3: 0x000b, 0x32b4: 0x000b, 0x32b5: 0x000b,
- 0x32b6: 0x000b, 0x32b7: 0x000b, 0x32b8: 0x000b, 0x32b9: 0x000b, 0x32ba: 0x000b, 0x32bb: 0x000c,
- 0x32bc: 0x000c, 0x32bd: 0x000c, 0x32be: 0x000c, 0x32bf: 0x000c,
- // Block 0xcb, offset 0x32c0
- 0x32c0: 0x000c, 0x32c1: 0x000c, 0x32c2: 0x000c, 0x32c5: 0x000c,
- 0x32c6: 0x000c, 0x32c7: 0x000c, 0x32c8: 0x000c, 0x32c9: 0x000c, 0x32ca: 0x000c, 0x32cb: 0x000c,
- 0x32ea: 0x000c, 0x32eb: 0x000c, 0x32ec: 0x000c, 0x32ed: 0x000c,
- // Block 0xcc, offset 0x3300
- 0x3300: 0x000a, 0x3301: 0x000a, 0x3302: 0x000c, 0x3303: 0x000c, 0x3304: 0x000c, 0x3305: 0x000a,
- // Block 0xcd, offset 0x3340
- 0x3340: 0x000a, 0x3341: 0x000a, 0x3342: 0x000a, 0x3343: 0x000a, 0x3344: 0x000a, 0x3345: 0x000a,
- 0x3346: 0x000a, 0x3347: 0x000a, 0x3348: 0x000a, 0x3349: 0x000a, 0x334a: 0x000a, 0x334b: 0x000a,
- 0x334c: 0x000a, 0x334d: 0x000a, 0x334e: 0x000a, 0x334f: 0x000a, 0x3350: 0x000a, 0x3351: 0x000a,
- 0x3352: 0x000a, 0x3353: 0x000a, 0x3354: 0x000a, 0x3355: 0x000a, 0x3356: 0x000a,
- // Block 0xce, offset 0x3380
- 0x339b: 0x000a,
- // Block 0xcf, offset 0x33c0
- 0x33d5: 0x000a,
- // Block 0xd0, offset 0x3400
- 0x340f: 0x000a,
- // Block 0xd1, offset 0x3440
- 0x3449: 0x000a,
- // Block 0xd2, offset 0x3480
- 0x3483: 0x000a,
- 0x348e: 0x0002, 0x348f: 0x0002, 0x3490: 0x0002, 0x3491: 0x0002,
- 0x3492: 0x0002, 0x3493: 0x0002, 0x3494: 0x0002, 0x3495: 0x0002, 0x3496: 0x0002, 0x3497: 0x0002,
- 0x3498: 0x0002, 0x3499: 0x0002, 0x349a: 0x0002, 0x349b: 0x0002, 0x349c: 0x0002, 0x349d: 0x0002,
- 0x349e: 0x0002, 0x349f: 0x0002, 0x34a0: 0x0002, 0x34a1: 0x0002, 0x34a2: 0x0002, 0x34a3: 0x0002,
- 0x34a4: 0x0002, 0x34a5: 0x0002, 0x34a6: 0x0002, 0x34a7: 0x0002, 0x34a8: 0x0002, 0x34a9: 0x0002,
- 0x34aa: 0x0002, 0x34ab: 0x0002, 0x34ac: 0x0002, 0x34ad: 0x0002, 0x34ae: 0x0002, 0x34af: 0x0002,
- 0x34b0: 0x0002, 0x34b1: 0x0002, 0x34b2: 0x0002, 0x34b3: 0x0002, 0x34b4: 0x0002, 0x34b5: 0x0002,
- 0x34b6: 0x0002, 0x34b7: 0x0002, 0x34b8: 0x0002, 0x34b9: 0x0002, 0x34ba: 0x0002, 0x34bb: 0x0002,
- 0x34bc: 0x0002, 0x34bd: 0x0002, 0x34be: 0x0002, 0x34bf: 0x0002,
- // Block 0xd3, offset 0x34c0
- 0x34c0: 0x000c, 0x34c1: 0x000c, 0x34c2: 0x000c, 0x34c3: 0x000c, 0x34c4: 0x000c, 0x34c5: 0x000c,
- 0x34c6: 0x000c, 0x34c7: 0x000c, 0x34c8: 0x000c, 0x34c9: 0x000c, 0x34ca: 0x000c, 0x34cb: 0x000c,
- 0x34cc: 0x000c, 0x34cd: 0x000c, 0x34ce: 0x000c, 0x34cf: 0x000c, 0x34d0: 0x000c, 0x34d1: 0x000c,
- 0x34d2: 0x000c, 0x34d3: 0x000c, 0x34d4: 0x000c, 0x34d5: 0x000c, 0x34d6: 0x000c, 0x34d7: 0x000c,
- 0x34d8: 0x000c, 0x34d9: 0x000c, 0x34da: 0x000c, 0x34db: 0x000c, 0x34dc: 0x000c, 0x34dd: 0x000c,
- 0x34de: 0x000c, 0x34df: 0x000c, 0x34e0: 0x000c, 0x34e1: 0x000c, 0x34e2: 0x000c, 0x34e3: 0x000c,
- 0x34e4: 0x000c, 0x34e5: 0x000c, 0x34e6: 0x000c, 0x34e7: 0x000c, 0x34e8: 0x000c, 0x34e9: 0x000c,
- 0x34ea: 0x000c, 0x34eb: 0x000c, 0x34ec: 0x000c, 0x34ed: 0x000c, 0x34ee: 0x000c, 0x34ef: 0x000c,
- 0x34f0: 0x000c, 0x34f1: 0x000c, 0x34f2: 0x000c, 0x34f3: 0x000c, 0x34f4: 0x000c, 0x34f5: 0x000c,
- 0x34f6: 0x000c, 0x34fb: 0x000c,
- 0x34fc: 0x000c, 0x34fd: 0x000c, 0x34fe: 0x000c, 0x34ff: 0x000c,
- // Block 0xd4, offset 0x3500
- 0x3500: 0x000c, 0x3501: 0x000c, 0x3502: 0x000c, 0x3503: 0x000c, 0x3504: 0x000c, 0x3505: 0x000c,
- 0x3506: 0x000c, 0x3507: 0x000c, 0x3508: 0x000c, 0x3509: 0x000c, 0x350a: 0x000c, 0x350b: 0x000c,
- 0x350c: 0x000c, 0x350d: 0x000c, 0x350e: 0x000c, 0x350f: 0x000c, 0x3510: 0x000c, 0x3511: 0x000c,
- 0x3512: 0x000c, 0x3513: 0x000c, 0x3514: 0x000c, 0x3515: 0x000c, 0x3516: 0x000c, 0x3517: 0x000c,
- 0x3518: 0x000c, 0x3519: 0x000c, 0x351a: 0x000c, 0x351b: 0x000c, 0x351c: 0x000c, 0x351d: 0x000c,
- 0x351e: 0x000c, 0x351f: 0x000c, 0x3520: 0x000c, 0x3521: 0x000c, 0x3522: 0x000c, 0x3523: 0x000c,
- 0x3524: 0x000c, 0x3525: 0x000c, 0x3526: 0x000c, 0x3527: 0x000c, 0x3528: 0x000c, 0x3529: 0x000c,
- 0x352a: 0x000c, 0x352b: 0x000c, 0x352c: 0x000c,
- 0x3535: 0x000c,
- // Block 0xd5, offset 0x3540
- 0x3544: 0x000c,
- 0x355b: 0x000c, 0x355c: 0x000c, 0x355d: 0x000c,
- 0x355e: 0x000c, 0x355f: 0x000c, 0x3561: 0x000c, 0x3562: 0x000c, 0x3563: 0x000c,
- 0x3564: 0x000c, 0x3565: 0x000c, 0x3566: 0x000c, 0x3567: 0x000c, 0x3568: 0x000c, 0x3569: 0x000c,
- 0x356a: 0x000c, 0x356b: 0x000c, 0x356c: 0x000c, 0x356d: 0x000c, 0x356e: 0x000c, 0x356f: 0x000c,
- // Block 0xd6, offset 0x3580
- 0x3580: 0x000c, 0x3581: 0x000c, 0x3582: 0x000c, 0x3583: 0x000c, 0x3584: 0x000c, 0x3585: 0x000c,
- 0x3586: 0x000c, 0x3588: 0x000c, 0x3589: 0x000c, 0x358a: 0x000c, 0x358b: 0x000c,
- 0x358c: 0x000c, 0x358d: 0x000c, 0x358e: 0x000c, 0x358f: 0x000c, 0x3590: 0x000c, 0x3591: 0x000c,
- 0x3592: 0x000c, 0x3593: 0x000c, 0x3594: 0x000c, 0x3595: 0x000c, 0x3596: 0x000c, 0x3597: 0x000c,
- 0x3598: 0x000c, 0x359b: 0x000c, 0x359c: 0x000c, 0x359d: 0x000c,
- 0x359e: 0x000c, 0x359f: 0x000c, 0x35a0: 0x000c, 0x35a1: 0x000c, 0x35a3: 0x000c,
- 0x35a4: 0x000c, 0x35a6: 0x000c, 0x35a7: 0x000c, 0x35a8: 0x000c, 0x35a9: 0x000c,
- 0x35aa: 0x000c,
- // Block 0xd7, offset 0x35c0
- 0x35ec: 0x000c, 0x35ed: 0x000c, 0x35ee: 0x000c, 0x35ef: 0x000c,
- 0x35ff: 0x0004,
- // Block 0xd8, offset 0x3600
- 0x3600: 0x0001, 0x3601: 0x0001, 0x3602: 0x0001, 0x3603: 0x0001, 0x3604: 0x0001, 0x3605: 0x0001,
- 0x3606: 0x0001, 0x3607: 0x0001, 0x3608: 0x0001, 0x3609: 0x0001, 0x360a: 0x0001, 0x360b: 0x0001,
- 0x360c: 0x0001, 0x360d: 0x0001, 0x360e: 0x0001, 0x360f: 0x0001, 0x3610: 0x000c, 0x3611: 0x000c,
- 0x3612: 0x000c, 0x3613: 0x000c, 0x3614: 0x000c, 0x3615: 0x000c, 0x3616: 0x000c, 0x3617: 0x0001,
- 0x3618: 0x0001, 0x3619: 0x0001, 0x361a: 0x0001, 0x361b: 0x0001, 0x361c: 0x0001, 0x361d: 0x0001,
- 0x361e: 0x0001, 0x361f: 0x0001, 0x3620: 0x0001, 0x3621: 0x0001, 0x3622: 0x0001, 0x3623: 0x0001,
- 0x3624: 0x0001, 0x3625: 0x0001, 0x3626: 0x0001, 0x3627: 0x0001, 0x3628: 0x0001, 0x3629: 0x0001,
- 0x362a: 0x0001, 0x362b: 0x0001, 0x362c: 0x0001, 0x362d: 0x0001, 0x362e: 0x0001, 0x362f: 0x0001,
- 0x3630: 0x0001, 0x3631: 0x0001, 0x3632: 0x0001, 0x3633: 0x0001, 0x3634: 0x0001, 0x3635: 0x0001,
- 0x3636: 0x0001, 0x3637: 0x0001, 0x3638: 0x0001, 0x3639: 0x0001, 0x363a: 0x0001, 0x363b: 0x0001,
- 0x363c: 0x0001, 0x363d: 0x0001, 0x363e: 0x0001, 0x363f: 0x0001,
- // Block 0xd9, offset 0x3640
- 0x3640: 0x0001, 0x3641: 0x0001, 0x3642: 0x0001, 0x3643: 0x0001, 0x3644: 0x000c, 0x3645: 0x000c,
- 0x3646: 0x000c, 0x3647: 0x000c, 0x3648: 0x000c, 0x3649: 0x000c, 0x364a: 0x000c, 0x364b: 0x0001,
- 0x364c: 0x0001, 0x364d: 0x0001, 0x364e: 0x0001, 0x364f: 0x0001, 0x3650: 0x0001, 0x3651: 0x0001,
- 0x3652: 0x0001, 0x3653: 0x0001, 0x3654: 0x0001, 0x3655: 0x0001, 0x3656: 0x0001, 0x3657: 0x0001,
- 0x3658: 0x0001, 0x3659: 0x0001, 0x365a: 0x0001, 0x365b: 0x0001, 0x365c: 0x0001, 0x365d: 0x0001,
- 0x365e: 0x0001, 0x365f: 0x0001, 0x3660: 0x0001, 0x3661: 0x0001, 0x3662: 0x0001, 0x3663: 0x0001,
- 0x3664: 0x0001, 0x3665: 0x0001, 0x3666: 0x0001, 0x3667: 0x0001, 0x3668: 0x0001, 0x3669: 0x0001,
- 0x366a: 0x0001, 0x366b: 0x0001, 0x366c: 0x0001, 0x366d: 0x0001, 0x366e: 0x0001, 0x366f: 0x0001,
- 0x3670: 0x0001, 0x3671: 0x0001, 0x3672: 0x0001, 0x3673: 0x0001, 0x3674: 0x0001, 0x3675: 0x0001,
- 0x3676: 0x0001, 0x3677: 0x0001, 0x3678: 0x0001, 0x3679: 0x0001, 0x367a: 0x0001, 0x367b: 0x0001,
- 0x367c: 0x0001, 0x367d: 0x0001, 0x367e: 0x0001, 0x367f: 0x0001,
- // Block 0xda, offset 0x3680
- 0x3680: 0x000d, 0x3681: 0x000d, 0x3682: 0x000d, 0x3683: 0x000d, 0x3684: 0x000d, 0x3685: 0x000d,
- 0x3686: 0x000d, 0x3687: 0x000d, 0x3688: 0x000d, 0x3689: 0x000d, 0x368a: 0x000d, 0x368b: 0x000d,
- 0x368c: 0x000d, 0x368d: 0x000d, 0x368e: 0x000d, 0x368f: 0x000d, 0x3690: 0x0001, 0x3691: 0x0001,
- 0x3692: 0x0001, 0x3693: 0x0001, 0x3694: 0x0001, 0x3695: 0x0001, 0x3696: 0x0001, 0x3697: 0x0001,
- 0x3698: 0x0001, 0x3699: 0x0001, 0x369a: 0x0001, 0x369b: 0x0001, 0x369c: 0x0001, 0x369d: 0x0001,
- 0x369e: 0x0001, 0x369f: 0x0001, 0x36a0: 0x0001, 0x36a1: 0x0001, 0x36a2: 0x0001, 0x36a3: 0x0001,
- 0x36a4: 0x0001, 0x36a5: 0x0001, 0x36a6: 0x0001, 0x36a7: 0x0001, 0x36a8: 0x0001, 0x36a9: 0x0001,
- 0x36aa: 0x0001, 0x36ab: 0x0001, 0x36ac: 0x0001, 0x36ad: 0x0001, 0x36ae: 0x0001, 0x36af: 0x0001,
- 0x36b0: 0x0001, 0x36b1: 0x0001, 0x36b2: 0x0001, 0x36b3: 0x0001, 0x36b4: 0x0001, 0x36b5: 0x0001,
- 0x36b6: 0x0001, 0x36b7: 0x0001, 0x36b8: 0x0001, 0x36b9: 0x0001, 0x36ba: 0x0001, 0x36bb: 0x0001,
- 0x36bc: 0x0001, 0x36bd: 0x0001, 0x36be: 0x0001, 0x36bf: 0x0001,
- // Block 0xdb, offset 0x36c0
- 0x36c0: 0x000d, 0x36c1: 0x000d, 0x36c2: 0x000d, 0x36c3: 0x000d, 0x36c4: 0x000d, 0x36c5: 0x000d,
- 0x36c6: 0x000d, 0x36c7: 0x000d, 0x36c8: 0x000d, 0x36c9: 0x000d, 0x36ca: 0x000d, 0x36cb: 0x000d,
- 0x36cc: 0x000d, 0x36cd: 0x000d, 0x36ce: 0x000d, 0x36cf: 0x000d, 0x36d0: 0x000d, 0x36d1: 0x000d,
- 0x36d2: 0x000d, 0x36d3: 0x000d, 0x36d4: 0x000d, 0x36d5: 0x000d, 0x36d6: 0x000d, 0x36d7: 0x000d,
- 0x36d8: 0x000d, 0x36d9: 0x000d, 0x36da: 0x000d, 0x36db: 0x000d, 0x36dc: 0x000d, 0x36dd: 0x000d,
- 0x36de: 0x000d, 0x36df: 0x000d, 0x36e0: 0x000d, 0x36e1: 0x000d, 0x36e2: 0x000d, 0x36e3: 0x000d,
- 0x36e4: 0x000d, 0x36e5: 0x000d, 0x36e6: 0x000d, 0x36e7: 0x000d, 0x36e8: 0x000d, 0x36e9: 0x000d,
- 0x36ea: 0x000d, 0x36eb: 0x000d, 0x36ec: 0x000d, 0x36ed: 0x000d, 0x36ee: 0x000d, 0x36ef: 0x000d,
- 0x36f0: 0x000a, 0x36f1: 0x000a, 0x36f2: 0x000d, 0x36f3: 0x000d, 0x36f4: 0x000d, 0x36f5: 0x000d,
- 0x36f6: 0x000d, 0x36f7: 0x000d, 0x36f8: 0x000d, 0x36f9: 0x000d, 0x36fa: 0x000d, 0x36fb: 0x000d,
- 0x36fc: 0x000d, 0x36fd: 0x000d, 0x36fe: 0x000d, 0x36ff: 0x000d,
- // Block 0xdc, offset 0x3700
- 0x3700: 0x000a, 0x3701: 0x000a, 0x3702: 0x000a, 0x3703: 0x000a, 0x3704: 0x000a, 0x3705: 0x000a,
- 0x3706: 0x000a, 0x3707: 0x000a, 0x3708: 0x000a, 0x3709: 0x000a, 0x370a: 0x000a, 0x370b: 0x000a,
- 0x370c: 0x000a, 0x370d: 0x000a, 0x370e: 0x000a, 0x370f: 0x000a, 0x3710: 0x000a, 0x3711: 0x000a,
- 0x3712: 0x000a, 0x3713: 0x000a, 0x3714: 0x000a, 0x3715: 0x000a, 0x3716: 0x000a, 0x3717: 0x000a,
- 0x3718: 0x000a, 0x3719: 0x000a, 0x371a: 0x000a, 0x371b: 0x000a, 0x371c: 0x000a, 0x371d: 0x000a,
- 0x371e: 0x000a, 0x371f: 0x000a, 0x3720: 0x000a, 0x3721: 0x000a, 0x3722: 0x000a, 0x3723: 0x000a,
- 0x3724: 0x000a, 0x3725: 0x000a, 0x3726: 0x000a, 0x3727: 0x000a, 0x3728: 0x000a, 0x3729: 0x000a,
- 0x372a: 0x000a, 0x372b: 0x000a,
- 0x3730: 0x000a, 0x3731: 0x000a, 0x3732: 0x000a, 0x3733: 0x000a, 0x3734: 0x000a, 0x3735: 0x000a,
- 0x3736: 0x000a, 0x3737: 0x000a, 0x3738: 0x000a, 0x3739: 0x000a, 0x373a: 0x000a, 0x373b: 0x000a,
- 0x373c: 0x000a, 0x373d: 0x000a, 0x373e: 0x000a, 0x373f: 0x000a,
- // Block 0xdd, offset 0x3740
- 0x3740: 0x000a, 0x3741: 0x000a, 0x3742: 0x000a, 0x3743: 0x000a, 0x3744: 0x000a, 0x3745: 0x000a,
- 0x3746: 0x000a, 0x3747: 0x000a, 0x3748: 0x000a, 0x3749: 0x000a, 0x374a: 0x000a, 0x374b: 0x000a,
- 0x374c: 0x000a, 0x374d: 0x000a, 0x374e: 0x000a, 0x374f: 0x000a, 0x3750: 0x000a, 0x3751: 0x000a,
- 0x3752: 0x000a, 0x3753: 0x000a,
- 0x3760: 0x000a, 0x3761: 0x000a, 0x3762: 0x000a, 0x3763: 0x000a,
- 0x3764: 0x000a, 0x3765: 0x000a, 0x3766: 0x000a, 0x3767: 0x000a, 0x3768: 0x000a, 0x3769: 0x000a,
- 0x376a: 0x000a, 0x376b: 0x000a, 0x376c: 0x000a, 0x376d: 0x000a, 0x376e: 0x000a,
- 0x3771: 0x000a, 0x3772: 0x000a, 0x3773: 0x000a, 0x3774: 0x000a, 0x3775: 0x000a,
- 0x3776: 0x000a, 0x3777: 0x000a, 0x3778: 0x000a, 0x3779: 0x000a, 0x377a: 0x000a, 0x377b: 0x000a,
- 0x377c: 0x000a, 0x377d: 0x000a, 0x377e: 0x000a, 0x377f: 0x000a,
- // Block 0xde, offset 0x3780
- 0x3781: 0x000a, 0x3782: 0x000a, 0x3783: 0x000a, 0x3784: 0x000a, 0x3785: 0x000a,
- 0x3786: 0x000a, 0x3787: 0x000a, 0x3788: 0x000a, 0x3789: 0x000a, 0x378a: 0x000a, 0x378b: 0x000a,
- 0x378c: 0x000a, 0x378d: 0x000a, 0x378e: 0x000a, 0x378f: 0x000a, 0x3791: 0x000a,
- 0x3792: 0x000a, 0x3793: 0x000a, 0x3794: 0x000a, 0x3795: 0x000a, 0x3796: 0x000a, 0x3797: 0x000a,
- 0x3798: 0x000a, 0x3799: 0x000a, 0x379a: 0x000a, 0x379b: 0x000a, 0x379c: 0x000a, 0x379d: 0x000a,
- 0x379e: 0x000a, 0x379f: 0x000a, 0x37a0: 0x000a, 0x37a1: 0x000a, 0x37a2: 0x000a, 0x37a3: 0x000a,
- 0x37a4: 0x000a, 0x37a5: 0x000a, 0x37a6: 0x000a, 0x37a7: 0x000a, 0x37a8: 0x000a, 0x37a9: 0x000a,
- 0x37aa: 0x000a, 0x37ab: 0x000a, 0x37ac: 0x000a, 0x37ad: 0x000a, 0x37ae: 0x000a, 0x37af: 0x000a,
- 0x37b0: 0x000a, 0x37b1: 0x000a, 0x37b2: 0x000a, 0x37b3: 0x000a, 0x37b4: 0x000a, 0x37b5: 0x000a,
- // Block 0xdf, offset 0x37c0
- 0x37c0: 0x0002, 0x37c1: 0x0002, 0x37c2: 0x0002, 0x37c3: 0x0002, 0x37c4: 0x0002, 0x37c5: 0x0002,
- 0x37c6: 0x0002, 0x37c7: 0x0002, 0x37c8: 0x0002, 0x37c9: 0x0002, 0x37ca: 0x0002, 0x37cb: 0x000a,
- 0x37cc: 0x000a,
- 0x37ef: 0x000a,
- // Block 0xe0, offset 0x3800
- 0x382a: 0x000a, 0x382b: 0x000a, 0x382c: 0x000a,
- // Block 0xe1, offset 0x3840
- 0x3860: 0x000a, 0x3861: 0x000a, 0x3862: 0x000a, 0x3863: 0x000a,
- 0x3864: 0x000a, 0x3865: 0x000a,
- // Block 0xe2, offset 0x3880
- 0x3880: 0x000a, 0x3881: 0x000a, 0x3882: 0x000a, 0x3883: 0x000a, 0x3884: 0x000a, 0x3885: 0x000a,
- 0x3886: 0x000a, 0x3887: 0x000a, 0x3888: 0x000a, 0x3889: 0x000a, 0x388a: 0x000a, 0x388b: 0x000a,
- 0x388c: 0x000a, 0x388d: 0x000a, 0x388e: 0x000a, 0x388f: 0x000a, 0x3890: 0x000a, 0x3891: 0x000a,
- 0x3892: 0x000a, 0x3893: 0x000a, 0x3894: 0x000a, 0x3895: 0x000a,
- 0x38a0: 0x000a, 0x38a1: 0x000a, 0x38a2: 0x000a, 0x38a3: 0x000a,
- 0x38a4: 0x000a, 0x38a5: 0x000a, 0x38a6: 0x000a, 0x38a7: 0x000a, 0x38a8: 0x000a, 0x38a9: 0x000a,
- 0x38aa: 0x000a, 0x38ab: 0x000a, 0x38ac: 0x000a,
- 0x38b0: 0x000a, 0x38b1: 0x000a, 0x38b2: 0x000a, 0x38b3: 0x000a, 0x38b4: 0x000a, 0x38b5: 0x000a,
- 0x38b6: 0x000a, 0x38b7: 0x000a, 0x38b8: 0x000a, 0x38b9: 0x000a, 0x38ba: 0x000a,
- // Block 0xe3, offset 0x38c0
- 0x38c0: 0x000a, 0x38c1: 0x000a, 0x38c2: 0x000a, 0x38c3: 0x000a, 0x38c4: 0x000a, 0x38c5: 0x000a,
- 0x38c6: 0x000a, 0x38c7: 0x000a, 0x38c8: 0x000a, 0x38c9: 0x000a, 0x38ca: 0x000a, 0x38cb: 0x000a,
- 0x38cc: 0x000a, 0x38cd: 0x000a, 0x38ce: 0x000a, 0x38cf: 0x000a, 0x38d0: 0x000a, 0x38d1: 0x000a,
- 0x38d2: 0x000a, 0x38d3: 0x000a, 0x38d4: 0x000a, 0x38d5: 0x000a, 0x38d6: 0x000a, 0x38d7: 0x000a,
- 0x38d8: 0x000a,
- 0x38e0: 0x000a, 0x38e1: 0x000a, 0x38e2: 0x000a, 0x38e3: 0x000a,
- 0x38e4: 0x000a, 0x38e5: 0x000a, 0x38e6: 0x000a, 0x38e7: 0x000a, 0x38e8: 0x000a, 0x38e9: 0x000a,
- 0x38ea: 0x000a, 0x38eb: 0x000a,
- // Block 0xe4, offset 0x3900
- 0x3900: 0x000a, 0x3901: 0x000a, 0x3902: 0x000a, 0x3903: 0x000a, 0x3904: 0x000a, 0x3905: 0x000a,
- 0x3906: 0x000a, 0x3907: 0x000a, 0x3908: 0x000a, 0x3909: 0x000a, 0x390a: 0x000a, 0x390b: 0x000a,
- 0x3910: 0x000a, 0x3911: 0x000a,
- 0x3912: 0x000a, 0x3913: 0x000a, 0x3914: 0x000a, 0x3915: 0x000a, 0x3916: 0x000a, 0x3917: 0x000a,
- 0x3918: 0x000a, 0x3919: 0x000a, 0x391a: 0x000a, 0x391b: 0x000a, 0x391c: 0x000a, 0x391d: 0x000a,
- 0x391e: 0x000a, 0x391f: 0x000a, 0x3920: 0x000a, 0x3921: 0x000a, 0x3922: 0x000a, 0x3923: 0x000a,
- 0x3924: 0x000a, 0x3925: 0x000a, 0x3926: 0x000a, 0x3927: 0x000a, 0x3928: 0x000a, 0x3929: 0x000a,
- 0x392a: 0x000a, 0x392b: 0x000a, 0x392c: 0x000a, 0x392d: 0x000a, 0x392e: 0x000a, 0x392f: 0x000a,
- 0x3930: 0x000a, 0x3931: 0x000a, 0x3932: 0x000a, 0x3933: 0x000a, 0x3934: 0x000a, 0x3935: 0x000a,
- 0x3936: 0x000a, 0x3937: 0x000a, 0x3938: 0x000a, 0x3939: 0x000a, 0x393a: 0x000a, 0x393b: 0x000a,
- 0x393c: 0x000a, 0x393d: 0x000a, 0x393e: 0x000a, 0x393f: 0x000a,
- // Block 0xe5, offset 0x3940
- 0x3940: 0x000a, 0x3941: 0x000a, 0x3942: 0x000a, 0x3943: 0x000a, 0x3944: 0x000a, 0x3945: 0x000a,
- 0x3946: 0x000a, 0x3947: 0x000a,
- 0x3950: 0x000a, 0x3951: 0x000a,
- 0x3952: 0x000a, 0x3953: 0x000a, 0x3954: 0x000a, 0x3955: 0x000a, 0x3956: 0x000a, 0x3957: 0x000a,
- 0x3958: 0x000a, 0x3959: 0x000a,
- 0x3960: 0x000a, 0x3961: 0x000a, 0x3962: 0x000a, 0x3963: 0x000a,
- 0x3964: 0x000a, 0x3965: 0x000a, 0x3966: 0x000a, 0x3967: 0x000a, 0x3968: 0x000a, 0x3969: 0x000a,
- 0x396a: 0x000a, 0x396b: 0x000a, 0x396c: 0x000a, 0x396d: 0x000a, 0x396e: 0x000a, 0x396f: 0x000a,
- 0x3970: 0x000a, 0x3971: 0x000a, 0x3972: 0x000a, 0x3973: 0x000a, 0x3974: 0x000a, 0x3975: 0x000a,
- 0x3976: 0x000a, 0x3977: 0x000a, 0x3978: 0x000a, 0x3979: 0x000a, 0x397a: 0x000a, 0x397b: 0x000a,
- 0x397c: 0x000a, 0x397d: 0x000a, 0x397e: 0x000a, 0x397f: 0x000a,
- // Block 0xe6, offset 0x3980
- 0x3980: 0x000a, 0x3981: 0x000a, 0x3982: 0x000a, 0x3983: 0x000a, 0x3984: 0x000a, 0x3985: 0x000a,
- 0x3986: 0x000a, 0x3987: 0x000a,
- 0x3990: 0x000a, 0x3991: 0x000a,
- 0x3992: 0x000a, 0x3993: 0x000a, 0x3994: 0x000a, 0x3995: 0x000a, 0x3996: 0x000a, 0x3997: 0x000a,
- 0x3998: 0x000a, 0x3999: 0x000a, 0x399a: 0x000a, 0x399b: 0x000a, 0x399c: 0x000a, 0x399d: 0x000a,
- 0x399e: 0x000a, 0x399f: 0x000a, 0x39a0: 0x000a, 0x39a1: 0x000a, 0x39a2: 0x000a, 0x39a3: 0x000a,
- 0x39a4: 0x000a, 0x39a5: 0x000a, 0x39a6: 0x000a, 0x39a7: 0x000a, 0x39a8: 0x000a, 0x39a9: 0x000a,
- 0x39aa: 0x000a, 0x39ab: 0x000a, 0x39ac: 0x000a, 0x39ad: 0x000a,
- // Block 0xe7, offset 0x39c0
- 0x39c0: 0x000a, 0x39c1: 0x000a, 0x39c2: 0x000a, 0x39c3: 0x000a, 0x39c4: 0x000a, 0x39c5: 0x000a,
- 0x39c6: 0x000a, 0x39c7: 0x000a, 0x39c8: 0x000a, 0x39c9: 0x000a, 0x39ca: 0x000a, 0x39cb: 0x000a,
- 0x39cd: 0x000a, 0x39ce: 0x000a, 0x39cf: 0x000a, 0x39d0: 0x000a, 0x39d1: 0x000a,
- 0x39d2: 0x000a, 0x39d3: 0x000a, 0x39d4: 0x000a, 0x39d5: 0x000a, 0x39d6: 0x000a, 0x39d7: 0x000a,
- 0x39d8: 0x000a, 0x39d9: 0x000a, 0x39da: 0x000a, 0x39db: 0x000a, 0x39dc: 0x000a, 0x39dd: 0x000a,
- 0x39de: 0x000a, 0x39df: 0x000a, 0x39e0: 0x000a, 0x39e1: 0x000a, 0x39e2: 0x000a, 0x39e3: 0x000a,
- 0x39e4: 0x000a, 0x39e5: 0x000a, 0x39e6: 0x000a, 0x39e7: 0x000a, 0x39e8: 0x000a, 0x39e9: 0x000a,
- 0x39ea: 0x000a, 0x39eb: 0x000a, 0x39ec: 0x000a, 0x39ed: 0x000a, 0x39ee: 0x000a, 0x39ef: 0x000a,
- 0x39f0: 0x000a, 0x39f1: 0x000a, 0x39f2: 0x000a, 0x39f3: 0x000a, 0x39f4: 0x000a, 0x39f5: 0x000a,
- 0x39f6: 0x000a, 0x39f7: 0x000a, 0x39f8: 0x000a, 0x39f9: 0x000a, 0x39fa: 0x000a, 0x39fb: 0x000a,
- 0x39fc: 0x000a, 0x39fd: 0x000a, 0x39fe: 0x000a, 0x39ff: 0x000a,
- // Block 0xe8, offset 0x3a00
- 0x3a00: 0x000a, 0x3a01: 0x000a, 0x3a02: 0x000a, 0x3a03: 0x000a, 0x3a04: 0x000a, 0x3a05: 0x000a,
- 0x3a06: 0x000a, 0x3a07: 0x000a, 0x3a08: 0x000a, 0x3a09: 0x000a, 0x3a0a: 0x000a, 0x3a0b: 0x000a,
- 0x3a0c: 0x000a, 0x3a0d: 0x000a, 0x3a0e: 0x000a, 0x3a0f: 0x000a, 0x3a10: 0x000a, 0x3a11: 0x000a,
- 0x3a12: 0x000a, 0x3a13: 0x000a, 0x3a14: 0x000a, 0x3a15: 0x000a, 0x3a16: 0x000a, 0x3a17: 0x000a,
- 0x3a18: 0x000a, 0x3a19: 0x000a, 0x3a1a: 0x000a, 0x3a1b: 0x000a, 0x3a1c: 0x000a, 0x3a1d: 0x000a,
- 0x3a1e: 0x000a, 0x3a1f: 0x000a, 0x3a20: 0x000a, 0x3a21: 0x000a, 0x3a22: 0x000a, 0x3a23: 0x000a,
- 0x3a24: 0x000a, 0x3a25: 0x000a, 0x3a26: 0x000a, 0x3a27: 0x000a, 0x3a28: 0x000a, 0x3a29: 0x000a,
- 0x3a2a: 0x000a, 0x3a2b: 0x000a, 0x3a2c: 0x000a, 0x3a2d: 0x000a, 0x3a2e: 0x000a, 0x3a2f: 0x000a,
- 0x3a30: 0x000a, 0x3a31: 0x000a, 0x3a33: 0x000a, 0x3a34: 0x000a, 0x3a35: 0x000a,
- 0x3a36: 0x000a, 0x3a3a: 0x000a, 0x3a3b: 0x000a,
- 0x3a3c: 0x000a, 0x3a3d: 0x000a, 0x3a3e: 0x000a, 0x3a3f: 0x000a,
- // Block 0xe9, offset 0x3a40
- 0x3a40: 0x000a, 0x3a41: 0x000a, 0x3a42: 0x000a, 0x3a43: 0x000a, 0x3a44: 0x000a, 0x3a45: 0x000a,
- 0x3a46: 0x000a, 0x3a47: 0x000a, 0x3a48: 0x000a, 0x3a49: 0x000a, 0x3a4a: 0x000a, 0x3a4b: 0x000a,
- 0x3a4c: 0x000a, 0x3a4d: 0x000a, 0x3a4e: 0x000a, 0x3a4f: 0x000a, 0x3a50: 0x000a, 0x3a51: 0x000a,
- 0x3a52: 0x000a, 0x3a53: 0x000a, 0x3a54: 0x000a, 0x3a55: 0x000a, 0x3a56: 0x000a, 0x3a57: 0x000a,
- 0x3a58: 0x000a, 0x3a59: 0x000a, 0x3a5a: 0x000a, 0x3a5b: 0x000a, 0x3a5c: 0x000a, 0x3a5d: 0x000a,
- 0x3a5e: 0x000a, 0x3a5f: 0x000a, 0x3a60: 0x000a, 0x3a61: 0x000a, 0x3a62: 0x000a,
- 0x3a65: 0x000a, 0x3a66: 0x000a, 0x3a67: 0x000a, 0x3a68: 0x000a, 0x3a69: 0x000a,
- 0x3a6a: 0x000a, 0x3a6e: 0x000a, 0x3a6f: 0x000a,
- 0x3a70: 0x000a, 0x3a71: 0x000a, 0x3a72: 0x000a, 0x3a73: 0x000a, 0x3a74: 0x000a, 0x3a75: 0x000a,
- 0x3a76: 0x000a, 0x3a77: 0x000a, 0x3a78: 0x000a, 0x3a79: 0x000a, 0x3a7a: 0x000a, 0x3a7b: 0x000a,
- 0x3a7c: 0x000a, 0x3a7d: 0x000a, 0x3a7e: 0x000a, 0x3a7f: 0x000a,
- // Block 0xea, offset 0x3a80
- 0x3a80: 0x000a, 0x3a81: 0x000a, 0x3a82: 0x000a, 0x3a83: 0x000a, 0x3a84: 0x000a, 0x3a85: 0x000a,
- 0x3a86: 0x000a, 0x3a87: 0x000a, 0x3a88: 0x000a, 0x3a89: 0x000a, 0x3a8a: 0x000a,
- 0x3a8d: 0x000a, 0x3a8e: 0x000a, 0x3a8f: 0x000a, 0x3a90: 0x000a, 0x3a91: 0x000a,
- 0x3a92: 0x000a, 0x3a93: 0x000a, 0x3a94: 0x000a, 0x3a95: 0x000a, 0x3a96: 0x000a, 0x3a97: 0x000a,
- 0x3a98: 0x000a, 0x3a99: 0x000a, 0x3a9a: 0x000a, 0x3a9b: 0x000a, 0x3a9c: 0x000a, 0x3a9d: 0x000a,
- 0x3a9e: 0x000a, 0x3a9f: 0x000a, 0x3aa0: 0x000a, 0x3aa1: 0x000a, 0x3aa2: 0x000a, 0x3aa3: 0x000a,
- 0x3aa4: 0x000a, 0x3aa5: 0x000a, 0x3aa6: 0x000a, 0x3aa7: 0x000a, 0x3aa8: 0x000a, 0x3aa9: 0x000a,
- 0x3aaa: 0x000a, 0x3aab: 0x000a, 0x3aac: 0x000a, 0x3aad: 0x000a, 0x3aae: 0x000a, 0x3aaf: 0x000a,
- 0x3ab0: 0x000a, 0x3ab1: 0x000a, 0x3ab2: 0x000a, 0x3ab3: 0x000a, 0x3ab4: 0x000a, 0x3ab5: 0x000a,
- 0x3ab6: 0x000a, 0x3ab7: 0x000a, 0x3ab8: 0x000a, 0x3ab9: 0x000a, 0x3aba: 0x000a, 0x3abb: 0x000a,
- 0x3abc: 0x000a, 0x3abd: 0x000a, 0x3abe: 0x000a, 0x3abf: 0x000a,
- // Block 0xeb, offset 0x3ac0
- 0x3ac0: 0x000a, 0x3ac1: 0x000a, 0x3ac2: 0x000a, 0x3ac3: 0x000a, 0x3ac4: 0x000a, 0x3ac5: 0x000a,
- 0x3ac6: 0x000a, 0x3ac7: 0x000a, 0x3ac8: 0x000a, 0x3ac9: 0x000a, 0x3aca: 0x000a, 0x3acb: 0x000a,
- 0x3acc: 0x000a, 0x3acd: 0x000a, 0x3ace: 0x000a, 0x3acf: 0x000a, 0x3ad0: 0x000a, 0x3ad1: 0x000a,
- 0x3ad2: 0x000a, 0x3ad3: 0x000a,
- 0x3ae0: 0x000a, 0x3ae1: 0x000a, 0x3ae2: 0x000a, 0x3ae3: 0x000a,
- 0x3ae4: 0x000a, 0x3ae5: 0x000a, 0x3ae6: 0x000a, 0x3ae7: 0x000a, 0x3ae8: 0x000a, 0x3ae9: 0x000a,
- 0x3aea: 0x000a, 0x3aeb: 0x000a, 0x3aec: 0x000a, 0x3aed: 0x000a,
- 0x3af0: 0x000a, 0x3af1: 0x000a, 0x3af2: 0x000a, 0x3af3: 0x000a,
- 0x3af8: 0x000a, 0x3af9: 0x000a, 0x3afa: 0x000a,
- // Block 0xec, offset 0x3b00
- 0x3b00: 0x000a, 0x3b01: 0x000a, 0x3b02: 0x000a,
- 0x3b10: 0x000a, 0x3b11: 0x000a,
- 0x3b12: 0x000a, 0x3b13: 0x000a, 0x3b14: 0x000a, 0x3b15: 0x000a,
- // Block 0xed, offset 0x3b40
- 0x3b7e: 0x000b, 0x3b7f: 0x000b,
- // Block 0xee, offset 0x3b80
- 0x3b80: 0x000b, 0x3b81: 0x000b, 0x3b82: 0x000b, 0x3b83: 0x000b, 0x3b84: 0x000b, 0x3b85: 0x000b,
- 0x3b86: 0x000b, 0x3b87: 0x000b, 0x3b88: 0x000b, 0x3b89: 0x000b, 0x3b8a: 0x000b, 0x3b8b: 0x000b,
- 0x3b8c: 0x000b, 0x3b8d: 0x000b, 0x3b8e: 0x000b, 0x3b8f: 0x000b, 0x3b90: 0x000b, 0x3b91: 0x000b,
- 0x3b92: 0x000b, 0x3b93: 0x000b, 0x3b94: 0x000b, 0x3b95: 0x000b, 0x3b96: 0x000b, 0x3b97: 0x000b,
- 0x3b98: 0x000b, 0x3b99: 0x000b, 0x3b9a: 0x000b, 0x3b9b: 0x000b, 0x3b9c: 0x000b, 0x3b9d: 0x000b,
- 0x3b9e: 0x000b, 0x3b9f: 0x000b, 0x3ba0: 0x000b, 0x3ba1: 0x000b, 0x3ba2: 0x000b, 0x3ba3: 0x000b,
- 0x3ba4: 0x000b, 0x3ba5: 0x000b, 0x3ba6: 0x000b, 0x3ba7: 0x000b, 0x3ba8: 0x000b, 0x3ba9: 0x000b,
- 0x3baa: 0x000b, 0x3bab: 0x000b, 0x3bac: 0x000b, 0x3bad: 0x000b, 0x3bae: 0x000b, 0x3baf: 0x000b,
- 0x3bb0: 0x000b, 0x3bb1: 0x000b, 0x3bb2: 0x000b, 0x3bb3: 0x000b, 0x3bb4: 0x000b, 0x3bb5: 0x000b,
- 0x3bb6: 0x000b, 0x3bb7: 0x000b, 0x3bb8: 0x000b, 0x3bb9: 0x000b, 0x3bba: 0x000b, 0x3bbb: 0x000b,
- 0x3bbc: 0x000b, 0x3bbd: 0x000b, 0x3bbe: 0x000b, 0x3bbf: 0x000b,
- // Block 0xef, offset 0x3bc0
- 0x3bc0: 0x000c, 0x3bc1: 0x000c, 0x3bc2: 0x000c, 0x3bc3: 0x000c, 0x3bc4: 0x000c, 0x3bc5: 0x000c,
- 0x3bc6: 0x000c, 0x3bc7: 0x000c, 0x3bc8: 0x000c, 0x3bc9: 0x000c, 0x3bca: 0x000c, 0x3bcb: 0x000c,
- 0x3bcc: 0x000c, 0x3bcd: 0x000c, 0x3bce: 0x000c, 0x3bcf: 0x000c, 0x3bd0: 0x000c, 0x3bd1: 0x000c,
- 0x3bd2: 0x000c, 0x3bd3: 0x000c, 0x3bd4: 0x000c, 0x3bd5: 0x000c, 0x3bd6: 0x000c, 0x3bd7: 0x000c,
- 0x3bd8: 0x000c, 0x3bd9: 0x000c, 0x3bda: 0x000c, 0x3bdb: 0x000c, 0x3bdc: 0x000c, 0x3bdd: 0x000c,
- 0x3bde: 0x000c, 0x3bdf: 0x000c, 0x3be0: 0x000c, 0x3be1: 0x000c, 0x3be2: 0x000c, 0x3be3: 0x000c,
- 0x3be4: 0x000c, 0x3be5: 0x000c, 0x3be6: 0x000c, 0x3be7: 0x000c, 0x3be8: 0x000c, 0x3be9: 0x000c,
- 0x3bea: 0x000c, 0x3beb: 0x000c, 0x3bec: 0x000c, 0x3bed: 0x000c, 0x3bee: 0x000c, 0x3bef: 0x000c,
- 0x3bf0: 0x000b, 0x3bf1: 0x000b, 0x3bf2: 0x000b, 0x3bf3: 0x000b, 0x3bf4: 0x000b, 0x3bf5: 0x000b,
- 0x3bf6: 0x000b, 0x3bf7: 0x000b, 0x3bf8: 0x000b, 0x3bf9: 0x000b, 0x3bfa: 0x000b, 0x3bfb: 0x000b,
- 0x3bfc: 0x000b, 0x3bfd: 0x000b, 0x3bfe: 0x000b, 0x3bff: 0x000b,
-}
-
-// bidiIndex: 24 blocks, 1536 entries, 1536 bytes
-// Block 0 is the zero block.
-var bidiIndex = [1536]uint8{
- // Block 0x0, offset 0x0
- // Block 0x1, offset 0x40
- // Block 0x2, offset 0x80
- // Block 0x3, offset 0xc0
- 0xc2: 0x01, 0xc3: 0x02,
- 0xca: 0x03, 0xcb: 0x04, 0xcc: 0x05, 0xcd: 0x06, 0xce: 0x07, 0xcf: 0x08,
- 0xd2: 0x09, 0xd6: 0x0a, 0xd7: 0x0b,
- 0xd8: 0x0c, 0xd9: 0x0d, 0xda: 0x0e, 0xdb: 0x0f, 0xdc: 0x10, 0xdd: 0x11, 0xde: 0x12, 0xdf: 0x13,
- 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06,
- 0xea: 0x07, 0xef: 0x08,
- 0xf0: 0x11, 0xf1: 0x12, 0xf2: 0x12, 0xf3: 0x14, 0xf4: 0x15,
- // Block 0x4, offset 0x100
- 0x120: 0x14, 0x121: 0x15, 0x122: 0x16, 0x123: 0x17, 0x124: 0x18, 0x125: 0x19, 0x126: 0x1a, 0x127: 0x1b,
- 0x128: 0x1c, 0x129: 0x1d, 0x12a: 0x1c, 0x12b: 0x1e, 0x12c: 0x1f, 0x12d: 0x20, 0x12e: 0x21, 0x12f: 0x22,
- 0x130: 0x23, 0x131: 0x24, 0x132: 0x1a, 0x133: 0x25, 0x134: 0x26, 0x135: 0x27, 0x137: 0x28,
- 0x138: 0x29, 0x139: 0x2a, 0x13a: 0x2b, 0x13b: 0x2c, 0x13c: 0x2d, 0x13d: 0x2e, 0x13e: 0x2f, 0x13f: 0x30,
- // Block 0x5, offset 0x140
- 0x140: 0x31, 0x141: 0x32, 0x142: 0x33,
- 0x14d: 0x34, 0x14e: 0x35,
- 0x150: 0x36,
- 0x15a: 0x37, 0x15c: 0x38, 0x15d: 0x39, 0x15e: 0x3a, 0x15f: 0x3b,
- 0x160: 0x3c, 0x162: 0x3d, 0x164: 0x3e, 0x165: 0x3f, 0x167: 0x40,
- 0x168: 0x41, 0x169: 0x42, 0x16a: 0x43, 0x16c: 0x44, 0x16d: 0x45, 0x16e: 0x46, 0x16f: 0x47,
- 0x170: 0x48, 0x173: 0x49, 0x177: 0x4a,
- 0x17e: 0x4b, 0x17f: 0x4c,
- // Block 0x6, offset 0x180
- 0x180: 0x4d, 0x181: 0x4e, 0x182: 0x4f, 0x183: 0x50, 0x184: 0x51, 0x185: 0x52, 0x186: 0x53, 0x187: 0x54,
- 0x188: 0x55, 0x189: 0x54, 0x18a: 0x54, 0x18b: 0x54, 0x18c: 0x56, 0x18d: 0x57, 0x18e: 0x58, 0x18f: 0x54,
- 0x190: 0x59, 0x191: 0x5a, 0x192: 0x5b, 0x193: 0x5c, 0x194: 0x54, 0x195: 0x54, 0x196: 0x54, 0x197: 0x54,
- 0x198: 0x54, 0x199: 0x54, 0x19a: 0x5d, 0x19b: 0x54, 0x19c: 0x54, 0x19d: 0x5e, 0x19e: 0x54, 0x19f: 0x5f,
- 0x1a4: 0x54, 0x1a5: 0x54, 0x1a6: 0x60, 0x1a7: 0x61,
- 0x1a8: 0x54, 0x1a9: 0x54, 0x1aa: 0x54, 0x1ab: 0x54, 0x1ac: 0x54, 0x1ad: 0x62, 0x1ae: 0x63, 0x1af: 0x54,
- 0x1b3: 0x64, 0x1b5: 0x65, 0x1b7: 0x66,
- 0x1b8: 0x67, 0x1b9: 0x68, 0x1ba: 0x69, 0x1bb: 0x6a, 0x1bc: 0x54, 0x1bd: 0x54, 0x1be: 0x54, 0x1bf: 0x6b,
- // Block 0x7, offset 0x1c0
- 0x1c0: 0x6c, 0x1c2: 0x6d, 0x1c3: 0x6e, 0x1c7: 0x6f,
- 0x1c8: 0x70, 0x1c9: 0x71, 0x1ca: 0x72, 0x1cb: 0x73, 0x1cd: 0x74, 0x1cf: 0x75,
- // Block 0x8, offset 0x200
- 0x237: 0x54,
- // Block 0x9, offset 0x240
- 0x252: 0x76, 0x253: 0x77,
- 0x258: 0x78, 0x259: 0x79, 0x25a: 0x7a, 0x25b: 0x7b, 0x25c: 0x7c, 0x25e: 0x7d,
- 0x260: 0x7e, 0x261: 0x7f, 0x263: 0x80, 0x264: 0x81, 0x265: 0x82, 0x266: 0x83, 0x267: 0x84,
- 0x268: 0x85, 0x269: 0x86, 0x26a: 0x87, 0x26b: 0x88, 0x26f: 0x89,
- // Block 0xa, offset 0x280
- 0x2ac: 0x8a, 0x2ad: 0x8b, 0x2ae: 0x0e, 0x2af: 0x0e,
- 0x2b0: 0x0e, 0x2b1: 0x0e, 0x2b2: 0x0e, 0x2b3: 0x0e, 0x2b4: 0x8c, 0x2b5: 0x0e, 0x2b6: 0x0e, 0x2b7: 0x8d,
- 0x2b8: 0x8e, 0x2b9: 0x8f, 0x2ba: 0x0e, 0x2bb: 0x90, 0x2bc: 0x91, 0x2bd: 0x92, 0x2bf: 0x93,
- // Block 0xb, offset 0x2c0
- 0x2c4: 0x94, 0x2c5: 0x54, 0x2c6: 0x95, 0x2c7: 0x96,
- 0x2cb: 0x97, 0x2cd: 0x98,
- 0x2e0: 0x99, 0x2e1: 0x99, 0x2e2: 0x99, 0x2e3: 0x99, 0x2e4: 0x9a, 0x2e5: 0x99, 0x2e6: 0x99, 0x2e7: 0x99,
- 0x2e8: 0x9b, 0x2e9: 0x99, 0x2ea: 0x99, 0x2eb: 0x9c, 0x2ec: 0x9d, 0x2ed: 0x99, 0x2ee: 0x99, 0x2ef: 0x99,
- 0x2f0: 0x99, 0x2f1: 0x99, 0x2f2: 0x99, 0x2f3: 0x99, 0x2f4: 0x9e, 0x2f5: 0x99, 0x2f6: 0x99, 0x2f7: 0x99,
- 0x2f8: 0x99, 0x2f9: 0x9f, 0x2fa: 0x99, 0x2fb: 0x99, 0x2fc: 0xa0, 0x2fd: 0xa1, 0x2fe: 0x99, 0x2ff: 0x99,
- // Block 0xc, offset 0x300
- 0x300: 0xa2, 0x301: 0xa3, 0x302: 0xa4, 0x304: 0xa5, 0x305: 0xa6, 0x306: 0xa7, 0x307: 0xa8,
- 0x308: 0xa9, 0x30b: 0xaa, 0x30c: 0x26, 0x30d: 0xab,
- 0x310: 0xac, 0x311: 0xad, 0x312: 0xae, 0x313: 0xaf, 0x316: 0xb0, 0x317: 0xb1,
- 0x318: 0xb2, 0x319: 0xb3, 0x31a: 0xb4, 0x31c: 0xb5,
- 0x320: 0xb6, 0x327: 0xb7,
- 0x328: 0xb8, 0x329: 0xb9, 0x32a: 0xba,
- 0x330: 0xbb, 0x332: 0xbc, 0x334: 0xbd, 0x335: 0xbe, 0x336: 0xbf,
- 0x33b: 0xc0, 0x33f: 0xc1,
- // Block 0xd, offset 0x340
- 0x36b: 0xc2, 0x36c: 0xc3,
- 0x37d: 0xc4, 0x37e: 0xc5, 0x37f: 0xc6,
- // Block 0xe, offset 0x380
- 0x3b2: 0xc7,
- // Block 0xf, offset 0x3c0
- 0x3c5: 0xc8, 0x3c6: 0xc9,
- 0x3c8: 0x54, 0x3c9: 0xca, 0x3cc: 0x54, 0x3cd: 0xcb,
- 0x3db: 0xcc, 0x3dc: 0xcd, 0x3dd: 0xce, 0x3de: 0xcf, 0x3df: 0xd0,
- 0x3e8: 0xd1, 0x3e9: 0xd2, 0x3ea: 0xd3,
- // Block 0x10, offset 0x400
- 0x400: 0xd4, 0x404: 0xc3,
- 0x40b: 0xd5,
- 0x420: 0x99, 0x421: 0x99, 0x422: 0x99, 0x423: 0xd6, 0x424: 0x99, 0x425: 0xd7, 0x426: 0x99, 0x427: 0x99,
- 0x428: 0x99, 0x429: 0x99, 0x42a: 0x99, 0x42b: 0x99, 0x42c: 0x99, 0x42d: 0x99, 0x42e: 0x99, 0x42f: 0x99,
- 0x430: 0x99, 0x431: 0xa0, 0x432: 0x0e, 0x433: 0x99, 0x434: 0x0e, 0x435: 0xd8, 0x436: 0x99, 0x437: 0x99,
- 0x438: 0x0e, 0x439: 0x0e, 0x43a: 0x0e, 0x43b: 0xd9, 0x43c: 0x99, 0x43d: 0x99, 0x43e: 0x99, 0x43f: 0x99,
- // Block 0x11, offset 0x440
- 0x440: 0xda, 0x441: 0x54, 0x442: 0xdb, 0x443: 0xdc, 0x444: 0xdd, 0x445: 0xde,
- 0x449: 0xdf, 0x44c: 0x54, 0x44d: 0x54, 0x44e: 0x54, 0x44f: 0x54,
- 0x450: 0x54, 0x451: 0x54, 0x452: 0x54, 0x453: 0x54, 0x454: 0x54, 0x455: 0x54, 0x456: 0x54, 0x457: 0x54,
- 0x458: 0x54, 0x459: 0x54, 0x45a: 0x54, 0x45b: 0xe0, 0x45c: 0x54, 0x45d: 0x6a, 0x45e: 0x54, 0x45f: 0xe1,
- 0x460: 0xe2, 0x461: 0xe3, 0x462: 0xe4, 0x464: 0xe5, 0x465: 0xe6, 0x466: 0xe7, 0x467: 0xe8,
- 0x468: 0x54, 0x469: 0xe9, 0x46a: 0xea,
- 0x47f: 0xeb,
- // Block 0x12, offset 0x480
- 0x4bf: 0xeb,
- // Block 0x13, offset 0x4c0
- 0x4d0: 0x09, 0x4d1: 0x0a, 0x4d6: 0x0b,
- 0x4db: 0x0c, 0x4dd: 0x0d, 0x4de: 0x0e, 0x4df: 0x0f,
- 0x4ef: 0x10,
- 0x4ff: 0x10,
- // Block 0x14, offset 0x500
- 0x50f: 0x10,
- 0x51f: 0x10,
- 0x52f: 0x10,
- 0x53f: 0x10,
- // Block 0x15, offset 0x540
- 0x540: 0xec, 0x541: 0xec, 0x542: 0xec, 0x543: 0xec, 0x544: 0x05, 0x545: 0x05, 0x546: 0x05, 0x547: 0xed,
- 0x548: 0xec, 0x549: 0xec, 0x54a: 0xec, 0x54b: 0xec, 0x54c: 0xec, 0x54d: 0xec, 0x54e: 0xec, 0x54f: 0xec,
- 0x550: 0xec, 0x551: 0xec, 0x552: 0xec, 0x553: 0xec, 0x554: 0xec, 0x555: 0xec, 0x556: 0xec, 0x557: 0xec,
- 0x558: 0xec, 0x559: 0xec, 0x55a: 0xec, 0x55b: 0xec, 0x55c: 0xec, 0x55d: 0xec, 0x55e: 0xec, 0x55f: 0xec,
- 0x560: 0xec, 0x561: 0xec, 0x562: 0xec, 0x563: 0xec, 0x564: 0xec, 0x565: 0xec, 0x566: 0xec, 0x567: 0xec,
- 0x568: 0xec, 0x569: 0xec, 0x56a: 0xec, 0x56b: 0xec, 0x56c: 0xec, 0x56d: 0xec, 0x56e: 0xec, 0x56f: 0xec,
- 0x570: 0xec, 0x571: 0xec, 0x572: 0xec, 0x573: 0xec, 0x574: 0xec, 0x575: 0xec, 0x576: 0xec, 0x577: 0xec,
- 0x578: 0xec, 0x579: 0xec, 0x57a: 0xec, 0x57b: 0xec, 0x57c: 0xec, 0x57d: 0xec, 0x57e: 0xec, 0x57f: 0xec,
- // Block 0x16, offset 0x580
- 0x58f: 0x10,
- 0x59f: 0x10,
- 0x5a0: 0x13,
- 0x5af: 0x10,
- 0x5bf: 0x10,
- // Block 0x17, offset 0x5c0
- 0x5cf: 0x10,
-}
-
-// Total table size 16952 bytes (16KiB); checksum: F50EF68C
diff --git a/vendor/golang.org/x/text/unicode/bidi/tables13.0.0.go b/vendor/golang.org/x/text/unicode/bidi/tables13.0.0.go
deleted file mode 100644
index a7137579..00000000
--- a/vendor/golang.org/x/text/unicode/bidi/tables13.0.0.go
+++ /dev/null
@@ -1,1955 +0,0 @@
-// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
-
-//go:build go1.16 && !go1.21
-
-package bidi
-
-// UnicodeVersion is the Unicode version from which the tables in this package are derived.
-const UnicodeVersion = "13.0.0"
-
-// xorMasks contains masks to be xor-ed with brackets to get the reverse
-// version.
-var xorMasks = []int32{ // 8 elements
- 0, 1, 6, 7, 3, 15, 29, 63,
-} // Size: 56 bytes
-
-// lookup returns the trie value for the first UTF-8 encoding in s and
-// the width in bytes of this encoding. The size will be 0 if s does not
-// hold enough bytes to complete the encoding. len(s) must be greater than 0.
-func (t *bidiTrie) lookup(s []byte) (v uint8, sz int) {
- c0 := s[0]
- switch {
- case c0 < 0x80: // is ASCII
- return bidiValues[c0], 1
- case c0 < 0xC2:
- return 0, 1 // Illegal UTF-8: not a starter, not ASCII.
- case c0 < 0xE0: // 2-byte UTF-8
- if len(s) < 2 {
- return 0, 0
- }
- i := bidiIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c1), 2
- case c0 < 0xF0: // 3-byte UTF-8
- if len(s) < 3 {
- return 0, 0
- }
- i := bidiIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = bidiIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c2), 3
- case c0 < 0xF8: // 4-byte UTF-8
- if len(s) < 4 {
- return 0, 0
- }
- i := bidiIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = bidiIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- o = uint32(i)<<6 + uint32(c2)
- i = bidiIndex[o]
- c3 := s[3]
- if c3 < 0x80 || 0xC0 <= c3 {
- return 0, 3 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c3), 4
- }
- // Illegal rune
- return 0, 1
-}
-
-// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.
-// s must start with a full and valid UTF-8 encoded rune.
-func (t *bidiTrie) lookupUnsafe(s []byte) uint8 {
- c0 := s[0]
- if c0 < 0x80 { // is ASCII
- return bidiValues[c0]
- }
- i := bidiIndex[c0]
- if c0 < 0xE0 { // 2-byte UTF-8
- return t.lookupValue(uint32(i), s[1])
- }
- i = bidiIndex[uint32(i)<<6+uint32(s[1])]
- if c0 < 0xF0 { // 3-byte UTF-8
- return t.lookupValue(uint32(i), s[2])
- }
- i = bidiIndex[uint32(i)<<6+uint32(s[2])]
- if c0 < 0xF8 { // 4-byte UTF-8
- return t.lookupValue(uint32(i), s[3])
- }
- return 0
-}
-
-// lookupString returns the trie value for the first UTF-8 encoding in s and
-// the width in bytes of this encoding. The size will be 0 if s does not
-// hold enough bytes to complete the encoding. len(s) must be greater than 0.
-func (t *bidiTrie) lookupString(s string) (v uint8, sz int) {
- c0 := s[0]
- switch {
- case c0 < 0x80: // is ASCII
- return bidiValues[c0], 1
- case c0 < 0xC2:
- return 0, 1 // Illegal UTF-8: not a starter, not ASCII.
- case c0 < 0xE0: // 2-byte UTF-8
- if len(s) < 2 {
- return 0, 0
- }
- i := bidiIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c1), 2
- case c0 < 0xF0: // 3-byte UTF-8
- if len(s) < 3 {
- return 0, 0
- }
- i := bidiIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = bidiIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c2), 3
- case c0 < 0xF8: // 4-byte UTF-8
- if len(s) < 4 {
- return 0, 0
- }
- i := bidiIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = bidiIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- o = uint32(i)<<6 + uint32(c2)
- i = bidiIndex[o]
- c3 := s[3]
- if c3 < 0x80 || 0xC0 <= c3 {
- return 0, 3 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c3), 4
- }
- // Illegal rune
- return 0, 1
-}
-
-// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.
-// s must start with a full and valid UTF-8 encoded rune.
-func (t *bidiTrie) lookupStringUnsafe(s string) uint8 {
- c0 := s[0]
- if c0 < 0x80 { // is ASCII
- return bidiValues[c0]
- }
- i := bidiIndex[c0]
- if c0 < 0xE0 { // 2-byte UTF-8
- return t.lookupValue(uint32(i), s[1])
- }
- i = bidiIndex[uint32(i)<<6+uint32(s[1])]
- if c0 < 0xF0 { // 3-byte UTF-8
- return t.lookupValue(uint32(i), s[2])
- }
- i = bidiIndex[uint32(i)<<6+uint32(s[2])]
- if c0 < 0xF8 { // 4-byte UTF-8
- return t.lookupValue(uint32(i), s[3])
- }
- return 0
-}
-
-// bidiTrie. Total size: 17408 bytes (17.00 KiB). Checksum: df85fcbfe9b8377f.
-type bidiTrie struct{}
-
-func newBidiTrie(i int) *bidiTrie {
- return &bidiTrie{}
-}
-
-// lookupValue determines the type of block n and looks up the value for b.
-func (t *bidiTrie) lookupValue(n uint32, b byte) uint8 {
- switch {
- default:
- return uint8(bidiValues[n<<6+uint32(b)])
- }
-}
-
-// bidiValues: 248 blocks, 15872 entries, 15872 bytes
-// The third block is the zero block.
-var bidiValues = [15872]uint8{
- // Block 0x0, offset 0x0
- 0x00: 0x000b, 0x01: 0x000b, 0x02: 0x000b, 0x03: 0x000b, 0x04: 0x000b, 0x05: 0x000b,
- 0x06: 0x000b, 0x07: 0x000b, 0x08: 0x000b, 0x09: 0x0008, 0x0a: 0x0007, 0x0b: 0x0008,
- 0x0c: 0x0009, 0x0d: 0x0007, 0x0e: 0x000b, 0x0f: 0x000b, 0x10: 0x000b, 0x11: 0x000b,
- 0x12: 0x000b, 0x13: 0x000b, 0x14: 0x000b, 0x15: 0x000b, 0x16: 0x000b, 0x17: 0x000b,
- 0x18: 0x000b, 0x19: 0x000b, 0x1a: 0x000b, 0x1b: 0x000b, 0x1c: 0x0007, 0x1d: 0x0007,
- 0x1e: 0x0007, 0x1f: 0x0008, 0x20: 0x0009, 0x21: 0x000a, 0x22: 0x000a, 0x23: 0x0004,
- 0x24: 0x0004, 0x25: 0x0004, 0x26: 0x000a, 0x27: 0x000a, 0x28: 0x003a, 0x29: 0x002a,
- 0x2a: 0x000a, 0x2b: 0x0003, 0x2c: 0x0006, 0x2d: 0x0003, 0x2e: 0x0006, 0x2f: 0x0006,
- 0x30: 0x0002, 0x31: 0x0002, 0x32: 0x0002, 0x33: 0x0002, 0x34: 0x0002, 0x35: 0x0002,
- 0x36: 0x0002, 0x37: 0x0002, 0x38: 0x0002, 0x39: 0x0002, 0x3a: 0x0006, 0x3b: 0x000a,
- 0x3c: 0x000a, 0x3d: 0x000a, 0x3e: 0x000a, 0x3f: 0x000a,
- // Block 0x1, offset 0x40
- 0x40: 0x000a,
- 0x5b: 0x005a, 0x5c: 0x000a, 0x5d: 0x004a,
- 0x5e: 0x000a, 0x5f: 0x000a, 0x60: 0x000a,
- 0x7b: 0x005a,
- 0x7c: 0x000a, 0x7d: 0x004a, 0x7e: 0x000a, 0x7f: 0x000b,
- // Block 0x2, offset 0x80
- // Block 0x3, offset 0xc0
- 0xc0: 0x000b, 0xc1: 0x000b, 0xc2: 0x000b, 0xc3: 0x000b, 0xc4: 0x000b, 0xc5: 0x0007,
- 0xc6: 0x000b, 0xc7: 0x000b, 0xc8: 0x000b, 0xc9: 0x000b, 0xca: 0x000b, 0xcb: 0x000b,
- 0xcc: 0x000b, 0xcd: 0x000b, 0xce: 0x000b, 0xcf: 0x000b, 0xd0: 0x000b, 0xd1: 0x000b,
- 0xd2: 0x000b, 0xd3: 0x000b, 0xd4: 0x000b, 0xd5: 0x000b, 0xd6: 0x000b, 0xd7: 0x000b,
- 0xd8: 0x000b, 0xd9: 0x000b, 0xda: 0x000b, 0xdb: 0x000b, 0xdc: 0x000b, 0xdd: 0x000b,
- 0xde: 0x000b, 0xdf: 0x000b, 0xe0: 0x0006, 0xe1: 0x000a, 0xe2: 0x0004, 0xe3: 0x0004,
- 0xe4: 0x0004, 0xe5: 0x0004, 0xe6: 0x000a, 0xe7: 0x000a, 0xe8: 0x000a, 0xe9: 0x000a,
- 0xeb: 0x000a, 0xec: 0x000a, 0xed: 0x000b, 0xee: 0x000a, 0xef: 0x000a,
- 0xf0: 0x0004, 0xf1: 0x0004, 0xf2: 0x0002, 0xf3: 0x0002, 0xf4: 0x000a,
- 0xf6: 0x000a, 0xf7: 0x000a, 0xf8: 0x000a, 0xf9: 0x0002, 0xfb: 0x000a,
- 0xfc: 0x000a, 0xfd: 0x000a, 0xfe: 0x000a, 0xff: 0x000a,
- // Block 0x4, offset 0x100
- 0x117: 0x000a,
- 0x137: 0x000a,
- // Block 0x5, offset 0x140
- 0x179: 0x000a, 0x17a: 0x000a,
- // Block 0x6, offset 0x180
- 0x182: 0x000a, 0x183: 0x000a, 0x184: 0x000a, 0x185: 0x000a,
- 0x186: 0x000a, 0x187: 0x000a, 0x188: 0x000a, 0x189: 0x000a, 0x18a: 0x000a, 0x18b: 0x000a,
- 0x18c: 0x000a, 0x18d: 0x000a, 0x18e: 0x000a, 0x18f: 0x000a,
- 0x192: 0x000a, 0x193: 0x000a, 0x194: 0x000a, 0x195: 0x000a, 0x196: 0x000a, 0x197: 0x000a,
- 0x198: 0x000a, 0x199: 0x000a, 0x19a: 0x000a, 0x19b: 0x000a, 0x19c: 0x000a, 0x19d: 0x000a,
- 0x19e: 0x000a, 0x19f: 0x000a,
- 0x1a5: 0x000a, 0x1a6: 0x000a, 0x1a7: 0x000a, 0x1a8: 0x000a, 0x1a9: 0x000a,
- 0x1aa: 0x000a, 0x1ab: 0x000a, 0x1ac: 0x000a, 0x1ad: 0x000a, 0x1af: 0x000a,
- 0x1b0: 0x000a, 0x1b1: 0x000a, 0x1b2: 0x000a, 0x1b3: 0x000a, 0x1b4: 0x000a, 0x1b5: 0x000a,
- 0x1b6: 0x000a, 0x1b7: 0x000a, 0x1b8: 0x000a, 0x1b9: 0x000a, 0x1ba: 0x000a, 0x1bb: 0x000a,
- 0x1bc: 0x000a, 0x1bd: 0x000a, 0x1be: 0x000a, 0x1bf: 0x000a,
- // Block 0x7, offset 0x1c0
- 0x1c0: 0x000c, 0x1c1: 0x000c, 0x1c2: 0x000c, 0x1c3: 0x000c, 0x1c4: 0x000c, 0x1c5: 0x000c,
- 0x1c6: 0x000c, 0x1c7: 0x000c, 0x1c8: 0x000c, 0x1c9: 0x000c, 0x1ca: 0x000c, 0x1cb: 0x000c,
- 0x1cc: 0x000c, 0x1cd: 0x000c, 0x1ce: 0x000c, 0x1cf: 0x000c, 0x1d0: 0x000c, 0x1d1: 0x000c,
- 0x1d2: 0x000c, 0x1d3: 0x000c, 0x1d4: 0x000c, 0x1d5: 0x000c, 0x1d6: 0x000c, 0x1d7: 0x000c,
- 0x1d8: 0x000c, 0x1d9: 0x000c, 0x1da: 0x000c, 0x1db: 0x000c, 0x1dc: 0x000c, 0x1dd: 0x000c,
- 0x1de: 0x000c, 0x1df: 0x000c, 0x1e0: 0x000c, 0x1e1: 0x000c, 0x1e2: 0x000c, 0x1e3: 0x000c,
- 0x1e4: 0x000c, 0x1e5: 0x000c, 0x1e6: 0x000c, 0x1e7: 0x000c, 0x1e8: 0x000c, 0x1e9: 0x000c,
- 0x1ea: 0x000c, 0x1eb: 0x000c, 0x1ec: 0x000c, 0x1ed: 0x000c, 0x1ee: 0x000c, 0x1ef: 0x000c,
- 0x1f0: 0x000c, 0x1f1: 0x000c, 0x1f2: 0x000c, 0x1f3: 0x000c, 0x1f4: 0x000c, 0x1f5: 0x000c,
- 0x1f6: 0x000c, 0x1f7: 0x000c, 0x1f8: 0x000c, 0x1f9: 0x000c, 0x1fa: 0x000c, 0x1fb: 0x000c,
- 0x1fc: 0x000c, 0x1fd: 0x000c, 0x1fe: 0x000c, 0x1ff: 0x000c,
- // Block 0x8, offset 0x200
- 0x200: 0x000c, 0x201: 0x000c, 0x202: 0x000c, 0x203: 0x000c, 0x204: 0x000c, 0x205: 0x000c,
- 0x206: 0x000c, 0x207: 0x000c, 0x208: 0x000c, 0x209: 0x000c, 0x20a: 0x000c, 0x20b: 0x000c,
- 0x20c: 0x000c, 0x20d: 0x000c, 0x20e: 0x000c, 0x20f: 0x000c, 0x210: 0x000c, 0x211: 0x000c,
- 0x212: 0x000c, 0x213: 0x000c, 0x214: 0x000c, 0x215: 0x000c, 0x216: 0x000c, 0x217: 0x000c,
- 0x218: 0x000c, 0x219: 0x000c, 0x21a: 0x000c, 0x21b: 0x000c, 0x21c: 0x000c, 0x21d: 0x000c,
- 0x21e: 0x000c, 0x21f: 0x000c, 0x220: 0x000c, 0x221: 0x000c, 0x222: 0x000c, 0x223: 0x000c,
- 0x224: 0x000c, 0x225: 0x000c, 0x226: 0x000c, 0x227: 0x000c, 0x228: 0x000c, 0x229: 0x000c,
- 0x22a: 0x000c, 0x22b: 0x000c, 0x22c: 0x000c, 0x22d: 0x000c, 0x22e: 0x000c, 0x22f: 0x000c,
- 0x234: 0x000a, 0x235: 0x000a,
- 0x23e: 0x000a,
- // Block 0x9, offset 0x240
- 0x244: 0x000a, 0x245: 0x000a,
- 0x247: 0x000a,
- // Block 0xa, offset 0x280
- 0x2b6: 0x000a,
- // Block 0xb, offset 0x2c0
- 0x2c3: 0x000c, 0x2c4: 0x000c, 0x2c5: 0x000c,
- 0x2c6: 0x000c, 0x2c7: 0x000c, 0x2c8: 0x000c, 0x2c9: 0x000c,
- // Block 0xc, offset 0x300
- 0x30a: 0x000a,
- 0x30d: 0x000a, 0x30e: 0x000a, 0x30f: 0x0004, 0x310: 0x0001, 0x311: 0x000c,
- 0x312: 0x000c, 0x313: 0x000c, 0x314: 0x000c, 0x315: 0x000c, 0x316: 0x000c, 0x317: 0x000c,
- 0x318: 0x000c, 0x319: 0x000c, 0x31a: 0x000c, 0x31b: 0x000c, 0x31c: 0x000c, 0x31d: 0x000c,
- 0x31e: 0x000c, 0x31f: 0x000c, 0x320: 0x000c, 0x321: 0x000c, 0x322: 0x000c, 0x323: 0x000c,
- 0x324: 0x000c, 0x325: 0x000c, 0x326: 0x000c, 0x327: 0x000c, 0x328: 0x000c, 0x329: 0x000c,
- 0x32a: 0x000c, 0x32b: 0x000c, 0x32c: 0x000c, 0x32d: 0x000c, 0x32e: 0x000c, 0x32f: 0x000c,
- 0x330: 0x000c, 0x331: 0x000c, 0x332: 0x000c, 0x333: 0x000c, 0x334: 0x000c, 0x335: 0x000c,
- 0x336: 0x000c, 0x337: 0x000c, 0x338: 0x000c, 0x339: 0x000c, 0x33a: 0x000c, 0x33b: 0x000c,
- 0x33c: 0x000c, 0x33d: 0x000c, 0x33e: 0x0001, 0x33f: 0x000c,
- // Block 0xd, offset 0x340
- 0x340: 0x0001, 0x341: 0x000c, 0x342: 0x000c, 0x343: 0x0001, 0x344: 0x000c, 0x345: 0x000c,
- 0x346: 0x0001, 0x347: 0x000c, 0x348: 0x0001, 0x349: 0x0001, 0x34a: 0x0001, 0x34b: 0x0001,
- 0x34c: 0x0001, 0x34d: 0x0001, 0x34e: 0x0001, 0x34f: 0x0001, 0x350: 0x0001, 0x351: 0x0001,
- 0x352: 0x0001, 0x353: 0x0001, 0x354: 0x0001, 0x355: 0x0001, 0x356: 0x0001, 0x357: 0x0001,
- 0x358: 0x0001, 0x359: 0x0001, 0x35a: 0x0001, 0x35b: 0x0001, 0x35c: 0x0001, 0x35d: 0x0001,
- 0x35e: 0x0001, 0x35f: 0x0001, 0x360: 0x0001, 0x361: 0x0001, 0x362: 0x0001, 0x363: 0x0001,
- 0x364: 0x0001, 0x365: 0x0001, 0x366: 0x0001, 0x367: 0x0001, 0x368: 0x0001, 0x369: 0x0001,
- 0x36a: 0x0001, 0x36b: 0x0001, 0x36c: 0x0001, 0x36d: 0x0001, 0x36e: 0x0001, 0x36f: 0x0001,
- 0x370: 0x0001, 0x371: 0x0001, 0x372: 0x0001, 0x373: 0x0001, 0x374: 0x0001, 0x375: 0x0001,
- 0x376: 0x0001, 0x377: 0x0001, 0x378: 0x0001, 0x379: 0x0001, 0x37a: 0x0001, 0x37b: 0x0001,
- 0x37c: 0x0001, 0x37d: 0x0001, 0x37e: 0x0001, 0x37f: 0x0001,
- // Block 0xe, offset 0x380
- 0x380: 0x0005, 0x381: 0x0005, 0x382: 0x0005, 0x383: 0x0005, 0x384: 0x0005, 0x385: 0x0005,
- 0x386: 0x000a, 0x387: 0x000a, 0x388: 0x000d, 0x389: 0x0004, 0x38a: 0x0004, 0x38b: 0x000d,
- 0x38c: 0x0006, 0x38d: 0x000d, 0x38e: 0x000a, 0x38f: 0x000a, 0x390: 0x000c, 0x391: 0x000c,
- 0x392: 0x000c, 0x393: 0x000c, 0x394: 0x000c, 0x395: 0x000c, 0x396: 0x000c, 0x397: 0x000c,
- 0x398: 0x000c, 0x399: 0x000c, 0x39a: 0x000c, 0x39b: 0x000d, 0x39c: 0x000d, 0x39d: 0x000d,
- 0x39e: 0x000d, 0x39f: 0x000d, 0x3a0: 0x000d, 0x3a1: 0x000d, 0x3a2: 0x000d, 0x3a3: 0x000d,
- 0x3a4: 0x000d, 0x3a5: 0x000d, 0x3a6: 0x000d, 0x3a7: 0x000d, 0x3a8: 0x000d, 0x3a9: 0x000d,
- 0x3aa: 0x000d, 0x3ab: 0x000d, 0x3ac: 0x000d, 0x3ad: 0x000d, 0x3ae: 0x000d, 0x3af: 0x000d,
- 0x3b0: 0x000d, 0x3b1: 0x000d, 0x3b2: 0x000d, 0x3b3: 0x000d, 0x3b4: 0x000d, 0x3b5: 0x000d,
- 0x3b6: 0x000d, 0x3b7: 0x000d, 0x3b8: 0x000d, 0x3b9: 0x000d, 0x3ba: 0x000d, 0x3bb: 0x000d,
- 0x3bc: 0x000d, 0x3bd: 0x000d, 0x3be: 0x000d, 0x3bf: 0x000d,
- // Block 0xf, offset 0x3c0
- 0x3c0: 0x000d, 0x3c1: 0x000d, 0x3c2: 0x000d, 0x3c3: 0x000d, 0x3c4: 0x000d, 0x3c5: 0x000d,
- 0x3c6: 0x000d, 0x3c7: 0x000d, 0x3c8: 0x000d, 0x3c9: 0x000d, 0x3ca: 0x000d, 0x3cb: 0x000c,
- 0x3cc: 0x000c, 0x3cd: 0x000c, 0x3ce: 0x000c, 0x3cf: 0x000c, 0x3d0: 0x000c, 0x3d1: 0x000c,
- 0x3d2: 0x000c, 0x3d3: 0x000c, 0x3d4: 0x000c, 0x3d5: 0x000c, 0x3d6: 0x000c, 0x3d7: 0x000c,
- 0x3d8: 0x000c, 0x3d9: 0x000c, 0x3da: 0x000c, 0x3db: 0x000c, 0x3dc: 0x000c, 0x3dd: 0x000c,
- 0x3de: 0x000c, 0x3df: 0x000c, 0x3e0: 0x0005, 0x3e1: 0x0005, 0x3e2: 0x0005, 0x3e3: 0x0005,
- 0x3e4: 0x0005, 0x3e5: 0x0005, 0x3e6: 0x0005, 0x3e7: 0x0005, 0x3e8: 0x0005, 0x3e9: 0x0005,
- 0x3ea: 0x0004, 0x3eb: 0x0005, 0x3ec: 0x0005, 0x3ed: 0x000d, 0x3ee: 0x000d, 0x3ef: 0x000d,
- 0x3f0: 0x000c, 0x3f1: 0x000d, 0x3f2: 0x000d, 0x3f3: 0x000d, 0x3f4: 0x000d, 0x3f5: 0x000d,
- 0x3f6: 0x000d, 0x3f7: 0x000d, 0x3f8: 0x000d, 0x3f9: 0x000d, 0x3fa: 0x000d, 0x3fb: 0x000d,
- 0x3fc: 0x000d, 0x3fd: 0x000d, 0x3fe: 0x000d, 0x3ff: 0x000d,
- // Block 0x10, offset 0x400
- 0x400: 0x000d, 0x401: 0x000d, 0x402: 0x000d, 0x403: 0x000d, 0x404: 0x000d, 0x405: 0x000d,
- 0x406: 0x000d, 0x407: 0x000d, 0x408: 0x000d, 0x409: 0x000d, 0x40a: 0x000d, 0x40b: 0x000d,
- 0x40c: 0x000d, 0x40d: 0x000d, 0x40e: 0x000d, 0x40f: 0x000d, 0x410: 0x000d, 0x411: 0x000d,
- 0x412: 0x000d, 0x413: 0x000d, 0x414: 0x000d, 0x415: 0x000d, 0x416: 0x000d, 0x417: 0x000d,
- 0x418: 0x000d, 0x419: 0x000d, 0x41a: 0x000d, 0x41b: 0x000d, 0x41c: 0x000d, 0x41d: 0x000d,
- 0x41e: 0x000d, 0x41f: 0x000d, 0x420: 0x000d, 0x421: 0x000d, 0x422: 0x000d, 0x423: 0x000d,
- 0x424: 0x000d, 0x425: 0x000d, 0x426: 0x000d, 0x427: 0x000d, 0x428: 0x000d, 0x429: 0x000d,
- 0x42a: 0x000d, 0x42b: 0x000d, 0x42c: 0x000d, 0x42d: 0x000d, 0x42e: 0x000d, 0x42f: 0x000d,
- 0x430: 0x000d, 0x431: 0x000d, 0x432: 0x000d, 0x433: 0x000d, 0x434: 0x000d, 0x435: 0x000d,
- 0x436: 0x000d, 0x437: 0x000d, 0x438: 0x000d, 0x439: 0x000d, 0x43a: 0x000d, 0x43b: 0x000d,
- 0x43c: 0x000d, 0x43d: 0x000d, 0x43e: 0x000d, 0x43f: 0x000d,
- // Block 0x11, offset 0x440
- 0x440: 0x000d, 0x441: 0x000d, 0x442: 0x000d, 0x443: 0x000d, 0x444: 0x000d, 0x445: 0x000d,
- 0x446: 0x000d, 0x447: 0x000d, 0x448: 0x000d, 0x449: 0x000d, 0x44a: 0x000d, 0x44b: 0x000d,
- 0x44c: 0x000d, 0x44d: 0x000d, 0x44e: 0x000d, 0x44f: 0x000d, 0x450: 0x000d, 0x451: 0x000d,
- 0x452: 0x000d, 0x453: 0x000d, 0x454: 0x000d, 0x455: 0x000d, 0x456: 0x000c, 0x457: 0x000c,
- 0x458: 0x000c, 0x459: 0x000c, 0x45a: 0x000c, 0x45b: 0x000c, 0x45c: 0x000c, 0x45d: 0x0005,
- 0x45e: 0x000a, 0x45f: 0x000c, 0x460: 0x000c, 0x461: 0x000c, 0x462: 0x000c, 0x463: 0x000c,
- 0x464: 0x000c, 0x465: 0x000d, 0x466: 0x000d, 0x467: 0x000c, 0x468: 0x000c, 0x469: 0x000a,
- 0x46a: 0x000c, 0x46b: 0x000c, 0x46c: 0x000c, 0x46d: 0x000c, 0x46e: 0x000d, 0x46f: 0x000d,
- 0x470: 0x0002, 0x471: 0x0002, 0x472: 0x0002, 0x473: 0x0002, 0x474: 0x0002, 0x475: 0x0002,
- 0x476: 0x0002, 0x477: 0x0002, 0x478: 0x0002, 0x479: 0x0002, 0x47a: 0x000d, 0x47b: 0x000d,
- 0x47c: 0x000d, 0x47d: 0x000d, 0x47e: 0x000d, 0x47f: 0x000d,
- // Block 0x12, offset 0x480
- 0x480: 0x000d, 0x481: 0x000d, 0x482: 0x000d, 0x483: 0x000d, 0x484: 0x000d, 0x485: 0x000d,
- 0x486: 0x000d, 0x487: 0x000d, 0x488: 0x000d, 0x489: 0x000d, 0x48a: 0x000d, 0x48b: 0x000d,
- 0x48c: 0x000d, 0x48d: 0x000d, 0x48e: 0x000d, 0x48f: 0x000d, 0x490: 0x000d, 0x491: 0x000c,
- 0x492: 0x000d, 0x493: 0x000d, 0x494: 0x000d, 0x495: 0x000d, 0x496: 0x000d, 0x497: 0x000d,
- 0x498: 0x000d, 0x499: 0x000d, 0x49a: 0x000d, 0x49b: 0x000d, 0x49c: 0x000d, 0x49d: 0x000d,
- 0x49e: 0x000d, 0x49f: 0x000d, 0x4a0: 0x000d, 0x4a1: 0x000d, 0x4a2: 0x000d, 0x4a3: 0x000d,
- 0x4a4: 0x000d, 0x4a5: 0x000d, 0x4a6: 0x000d, 0x4a7: 0x000d, 0x4a8: 0x000d, 0x4a9: 0x000d,
- 0x4aa: 0x000d, 0x4ab: 0x000d, 0x4ac: 0x000d, 0x4ad: 0x000d, 0x4ae: 0x000d, 0x4af: 0x000d,
- 0x4b0: 0x000c, 0x4b1: 0x000c, 0x4b2: 0x000c, 0x4b3: 0x000c, 0x4b4: 0x000c, 0x4b5: 0x000c,
- 0x4b6: 0x000c, 0x4b7: 0x000c, 0x4b8: 0x000c, 0x4b9: 0x000c, 0x4ba: 0x000c, 0x4bb: 0x000c,
- 0x4bc: 0x000c, 0x4bd: 0x000c, 0x4be: 0x000c, 0x4bf: 0x000c,
- // Block 0x13, offset 0x4c0
- 0x4c0: 0x000c, 0x4c1: 0x000c, 0x4c2: 0x000c, 0x4c3: 0x000c, 0x4c4: 0x000c, 0x4c5: 0x000c,
- 0x4c6: 0x000c, 0x4c7: 0x000c, 0x4c8: 0x000c, 0x4c9: 0x000c, 0x4ca: 0x000c, 0x4cb: 0x000d,
- 0x4cc: 0x000d, 0x4cd: 0x000d, 0x4ce: 0x000d, 0x4cf: 0x000d, 0x4d0: 0x000d, 0x4d1: 0x000d,
- 0x4d2: 0x000d, 0x4d3: 0x000d, 0x4d4: 0x000d, 0x4d5: 0x000d, 0x4d6: 0x000d, 0x4d7: 0x000d,
- 0x4d8: 0x000d, 0x4d9: 0x000d, 0x4da: 0x000d, 0x4db: 0x000d, 0x4dc: 0x000d, 0x4dd: 0x000d,
- 0x4de: 0x000d, 0x4df: 0x000d, 0x4e0: 0x000d, 0x4e1: 0x000d, 0x4e2: 0x000d, 0x4e3: 0x000d,
- 0x4e4: 0x000d, 0x4e5: 0x000d, 0x4e6: 0x000d, 0x4e7: 0x000d, 0x4e8: 0x000d, 0x4e9: 0x000d,
- 0x4ea: 0x000d, 0x4eb: 0x000d, 0x4ec: 0x000d, 0x4ed: 0x000d, 0x4ee: 0x000d, 0x4ef: 0x000d,
- 0x4f0: 0x000d, 0x4f1: 0x000d, 0x4f2: 0x000d, 0x4f3: 0x000d, 0x4f4: 0x000d, 0x4f5: 0x000d,
- 0x4f6: 0x000d, 0x4f7: 0x000d, 0x4f8: 0x000d, 0x4f9: 0x000d, 0x4fa: 0x000d, 0x4fb: 0x000d,
- 0x4fc: 0x000d, 0x4fd: 0x000d, 0x4fe: 0x000d, 0x4ff: 0x000d,
- // Block 0x14, offset 0x500
- 0x500: 0x000d, 0x501: 0x000d, 0x502: 0x000d, 0x503: 0x000d, 0x504: 0x000d, 0x505: 0x000d,
- 0x506: 0x000d, 0x507: 0x000d, 0x508: 0x000d, 0x509: 0x000d, 0x50a: 0x000d, 0x50b: 0x000d,
- 0x50c: 0x000d, 0x50d: 0x000d, 0x50e: 0x000d, 0x50f: 0x000d, 0x510: 0x000d, 0x511: 0x000d,
- 0x512: 0x000d, 0x513: 0x000d, 0x514: 0x000d, 0x515: 0x000d, 0x516: 0x000d, 0x517: 0x000d,
- 0x518: 0x000d, 0x519: 0x000d, 0x51a: 0x000d, 0x51b: 0x000d, 0x51c: 0x000d, 0x51d: 0x000d,
- 0x51e: 0x000d, 0x51f: 0x000d, 0x520: 0x000d, 0x521: 0x000d, 0x522: 0x000d, 0x523: 0x000d,
- 0x524: 0x000d, 0x525: 0x000d, 0x526: 0x000c, 0x527: 0x000c, 0x528: 0x000c, 0x529: 0x000c,
- 0x52a: 0x000c, 0x52b: 0x000c, 0x52c: 0x000c, 0x52d: 0x000c, 0x52e: 0x000c, 0x52f: 0x000c,
- 0x530: 0x000c, 0x531: 0x000d, 0x532: 0x000d, 0x533: 0x000d, 0x534: 0x000d, 0x535: 0x000d,
- 0x536: 0x000d, 0x537: 0x000d, 0x538: 0x000d, 0x539: 0x000d, 0x53a: 0x000d, 0x53b: 0x000d,
- 0x53c: 0x000d, 0x53d: 0x000d, 0x53e: 0x000d, 0x53f: 0x000d,
- // Block 0x15, offset 0x540
- 0x540: 0x0001, 0x541: 0x0001, 0x542: 0x0001, 0x543: 0x0001, 0x544: 0x0001, 0x545: 0x0001,
- 0x546: 0x0001, 0x547: 0x0001, 0x548: 0x0001, 0x549: 0x0001, 0x54a: 0x0001, 0x54b: 0x0001,
- 0x54c: 0x0001, 0x54d: 0x0001, 0x54e: 0x0001, 0x54f: 0x0001, 0x550: 0x0001, 0x551: 0x0001,
- 0x552: 0x0001, 0x553: 0x0001, 0x554: 0x0001, 0x555: 0x0001, 0x556: 0x0001, 0x557: 0x0001,
- 0x558: 0x0001, 0x559: 0x0001, 0x55a: 0x0001, 0x55b: 0x0001, 0x55c: 0x0001, 0x55d: 0x0001,
- 0x55e: 0x0001, 0x55f: 0x0001, 0x560: 0x0001, 0x561: 0x0001, 0x562: 0x0001, 0x563: 0x0001,
- 0x564: 0x0001, 0x565: 0x0001, 0x566: 0x0001, 0x567: 0x0001, 0x568: 0x0001, 0x569: 0x0001,
- 0x56a: 0x0001, 0x56b: 0x000c, 0x56c: 0x000c, 0x56d: 0x000c, 0x56e: 0x000c, 0x56f: 0x000c,
- 0x570: 0x000c, 0x571: 0x000c, 0x572: 0x000c, 0x573: 0x000c, 0x574: 0x0001, 0x575: 0x0001,
- 0x576: 0x000a, 0x577: 0x000a, 0x578: 0x000a, 0x579: 0x000a, 0x57a: 0x0001, 0x57b: 0x0001,
- 0x57c: 0x0001, 0x57d: 0x000c, 0x57e: 0x0001, 0x57f: 0x0001,
- // Block 0x16, offset 0x580
- 0x580: 0x0001, 0x581: 0x0001, 0x582: 0x0001, 0x583: 0x0001, 0x584: 0x0001, 0x585: 0x0001,
- 0x586: 0x0001, 0x587: 0x0001, 0x588: 0x0001, 0x589: 0x0001, 0x58a: 0x0001, 0x58b: 0x0001,
- 0x58c: 0x0001, 0x58d: 0x0001, 0x58e: 0x0001, 0x58f: 0x0001, 0x590: 0x0001, 0x591: 0x0001,
- 0x592: 0x0001, 0x593: 0x0001, 0x594: 0x0001, 0x595: 0x0001, 0x596: 0x000c, 0x597: 0x000c,
- 0x598: 0x000c, 0x599: 0x000c, 0x59a: 0x0001, 0x59b: 0x000c, 0x59c: 0x000c, 0x59d: 0x000c,
- 0x59e: 0x000c, 0x59f: 0x000c, 0x5a0: 0x000c, 0x5a1: 0x000c, 0x5a2: 0x000c, 0x5a3: 0x000c,
- 0x5a4: 0x0001, 0x5a5: 0x000c, 0x5a6: 0x000c, 0x5a7: 0x000c, 0x5a8: 0x0001, 0x5a9: 0x000c,
- 0x5aa: 0x000c, 0x5ab: 0x000c, 0x5ac: 0x000c, 0x5ad: 0x000c, 0x5ae: 0x0001, 0x5af: 0x0001,
- 0x5b0: 0x0001, 0x5b1: 0x0001, 0x5b2: 0x0001, 0x5b3: 0x0001, 0x5b4: 0x0001, 0x5b5: 0x0001,
- 0x5b6: 0x0001, 0x5b7: 0x0001, 0x5b8: 0x0001, 0x5b9: 0x0001, 0x5ba: 0x0001, 0x5bb: 0x0001,
- 0x5bc: 0x0001, 0x5bd: 0x0001, 0x5be: 0x0001, 0x5bf: 0x0001,
- // Block 0x17, offset 0x5c0
- 0x5c0: 0x0001, 0x5c1: 0x0001, 0x5c2: 0x0001, 0x5c3: 0x0001, 0x5c4: 0x0001, 0x5c5: 0x0001,
- 0x5c6: 0x0001, 0x5c7: 0x0001, 0x5c8: 0x0001, 0x5c9: 0x0001, 0x5ca: 0x0001, 0x5cb: 0x0001,
- 0x5cc: 0x0001, 0x5cd: 0x0001, 0x5ce: 0x0001, 0x5cf: 0x0001, 0x5d0: 0x0001, 0x5d1: 0x0001,
- 0x5d2: 0x0001, 0x5d3: 0x0001, 0x5d4: 0x0001, 0x5d5: 0x0001, 0x5d6: 0x0001, 0x5d7: 0x0001,
- 0x5d8: 0x0001, 0x5d9: 0x000c, 0x5da: 0x000c, 0x5db: 0x000c, 0x5dc: 0x0001, 0x5dd: 0x0001,
- 0x5de: 0x0001, 0x5df: 0x0001, 0x5e0: 0x000d, 0x5e1: 0x000d, 0x5e2: 0x000d, 0x5e3: 0x000d,
- 0x5e4: 0x000d, 0x5e5: 0x000d, 0x5e6: 0x000d, 0x5e7: 0x000d, 0x5e8: 0x000d, 0x5e9: 0x000d,
- 0x5ea: 0x000d, 0x5eb: 0x000d, 0x5ec: 0x000d, 0x5ed: 0x000d, 0x5ee: 0x000d, 0x5ef: 0x000d,
- 0x5f0: 0x0001, 0x5f1: 0x0001, 0x5f2: 0x0001, 0x5f3: 0x0001, 0x5f4: 0x0001, 0x5f5: 0x0001,
- 0x5f6: 0x0001, 0x5f7: 0x0001, 0x5f8: 0x0001, 0x5f9: 0x0001, 0x5fa: 0x0001, 0x5fb: 0x0001,
- 0x5fc: 0x0001, 0x5fd: 0x0001, 0x5fe: 0x0001, 0x5ff: 0x0001,
- // Block 0x18, offset 0x600
- 0x600: 0x0001, 0x601: 0x0001, 0x602: 0x0001, 0x603: 0x0001, 0x604: 0x0001, 0x605: 0x0001,
- 0x606: 0x0001, 0x607: 0x0001, 0x608: 0x0001, 0x609: 0x0001, 0x60a: 0x0001, 0x60b: 0x0001,
- 0x60c: 0x0001, 0x60d: 0x0001, 0x60e: 0x0001, 0x60f: 0x0001, 0x610: 0x0001, 0x611: 0x0001,
- 0x612: 0x0001, 0x613: 0x0001, 0x614: 0x0001, 0x615: 0x0001, 0x616: 0x0001, 0x617: 0x0001,
- 0x618: 0x0001, 0x619: 0x0001, 0x61a: 0x0001, 0x61b: 0x0001, 0x61c: 0x0001, 0x61d: 0x0001,
- 0x61e: 0x0001, 0x61f: 0x0001, 0x620: 0x000d, 0x621: 0x000d, 0x622: 0x000d, 0x623: 0x000d,
- 0x624: 0x000d, 0x625: 0x000d, 0x626: 0x000d, 0x627: 0x000d, 0x628: 0x000d, 0x629: 0x000d,
- 0x62a: 0x000d, 0x62b: 0x000d, 0x62c: 0x000d, 0x62d: 0x000d, 0x62e: 0x000d, 0x62f: 0x000d,
- 0x630: 0x000d, 0x631: 0x000d, 0x632: 0x000d, 0x633: 0x000d, 0x634: 0x000d, 0x635: 0x000d,
- 0x636: 0x000d, 0x637: 0x000d, 0x638: 0x000d, 0x639: 0x000d, 0x63a: 0x000d, 0x63b: 0x000d,
- 0x63c: 0x000d, 0x63d: 0x000d, 0x63e: 0x000d, 0x63f: 0x000d,
- // Block 0x19, offset 0x640
- 0x640: 0x000d, 0x641: 0x000d, 0x642: 0x000d, 0x643: 0x000d, 0x644: 0x000d, 0x645: 0x000d,
- 0x646: 0x000d, 0x647: 0x000d, 0x648: 0x000d, 0x649: 0x000d, 0x64a: 0x000d, 0x64b: 0x000d,
- 0x64c: 0x000d, 0x64d: 0x000d, 0x64e: 0x000d, 0x64f: 0x000d, 0x650: 0x000d, 0x651: 0x000d,
- 0x652: 0x000d, 0x653: 0x000c, 0x654: 0x000c, 0x655: 0x000c, 0x656: 0x000c, 0x657: 0x000c,
- 0x658: 0x000c, 0x659: 0x000c, 0x65a: 0x000c, 0x65b: 0x000c, 0x65c: 0x000c, 0x65d: 0x000c,
- 0x65e: 0x000c, 0x65f: 0x000c, 0x660: 0x000c, 0x661: 0x000c, 0x662: 0x0005, 0x663: 0x000c,
- 0x664: 0x000c, 0x665: 0x000c, 0x666: 0x000c, 0x667: 0x000c, 0x668: 0x000c, 0x669: 0x000c,
- 0x66a: 0x000c, 0x66b: 0x000c, 0x66c: 0x000c, 0x66d: 0x000c, 0x66e: 0x000c, 0x66f: 0x000c,
- 0x670: 0x000c, 0x671: 0x000c, 0x672: 0x000c, 0x673: 0x000c, 0x674: 0x000c, 0x675: 0x000c,
- 0x676: 0x000c, 0x677: 0x000c, 0x678: 0x000c, 0x679: 0x000c, 0x67a: 0x000c, 0x67b: 0x000c,
- 0x67c: 0x000c, 0x67d: 0x000c, 0x67e: 0x000c, 0x67f: 0x000c,
- // Block 0x1a, offset 0x680
- 0x680: 0x000c, 0x681: 0x000c, 0x682: 0x000c,
- 0x6ba: 0x000c,
- 0x6bc: 0x000c,
- // Block 0x1b, offset 0x6c0
- 0x6c1: 0x000c, 0x6c2: 0x000c, 0x6c3: 0x000c, 0x6c4: 0x000c, 0x6c5: 0x000c,
- 0x6c6: 0x000c, 0x6c7: 0x000c, 0x6c8: 0x000c,
- 0x6cd: 0x000c, 0x6d1: 0x000c,
- 0x6d2: 0x000c, 0x6d3: 0x000c, 0x6d4: 0x000c, 0x6d5: 0x000c, 0x6d6: 0x000c, 0x6d7: 0x000c,
- 0x6e2: 0x000c, 0x6e3: 0x000c,
- // Block 0x1c, offset 0x700
- 0x701: 0x000c,
- 0x73c: 0x000c,
- // Block 0x1d, offset 0x740
- 0x741: 0x000c, 0x742: 0x000c, 0x743: 0x000c, 0x744: 0x000c,
- 0x74d: 0x000c,
- 0x762: 0x000c, 0x763: 0x000c,
- 0x772: 0x0004, 0x773: 0x0004,
- 0x77b: 0x0004,
- 0x77e: 0x000c,
- // Block 0x1e, offset 0x780
- 0x781: 0x000c, 0x782: 0x000c,
- 0x7bc: 0x000c,
- // Block 0x1f, offset 0x7c0
- 0x7c1: 0x000c, 0x7c2: 0x000c,
- 0x7c7: 0x000c, 0x7c8: 0x000c, 0x7cb: 0x000c,
- 0x7cc: 0x000c, 0x7cd: 0x000c, 0x7d1: 0x000c,
- 0x7f0: 0x000c, 0x7f1: 0x000c, 0x7f5: 0x000c,
- // Block 0x20, offset 0x800
- 0x801: 0x000c, 0x802: 0x000c, 0x803: 0x000c, 0x804: 0x000c, 0x805: 0x000c,
- 0x807: 0x000c, 0x808: 0x000c,
- 0x80d: 0x000c,
- 0x822: 0x000c, 0x823: 0x000c,
- 0x831: 0x0004,
- 0x83a: 0x000c, 0x83b: 0x000c,
- 0x83c: 0x000c, 0x83d: 0x000c, 0x83e: 0x000c, 0x83f: 0x000c,
- // Block 0x21, offset 0x840
- 0x841: 0x000c,
- 0x87c: 0x000c, 0x87f: 0x000c,
- // Block 0x22, offset 0x880
- 0x881: 0x000c, 0x882: 0x000c, 0x883: 0x000c, 0x884: 0x000c,
- 0x88d: 0x000c,
- 0x895: 0x000c, 0x896: 0x000c,
- 0x8a2: 0x000c, 0x8a3: 0x000c,
- // Block 0x23, offset 0x8c0
- 0x8c2: 0x000c,
- // Block 0x24, offset 0x900
- 0x900: 0x000c,
- 0x90d: 0x000c,
- 0x933: 0x000a, 0x934: 0x000a, 0x935: 0x000a,
- 0x936: 0x000a, 0x937: 0x000a, 0x938: 0x000a, 0x939: 0x0004, 0x93a: 0x000a,
- // Block 0x25, offset 0x940
- 0x940: 0x000c, 0x944: 0x000c,
- 0x97e: 0x000c, 0x97f: 0x000c,
- // Block 0x26, offset 0x980
- 0x980: 0x000c,
- 0x986: 0x000c, 0x987: 0x000c, 0x988: 0x000c, 0x98a: 0x000c, 0x98b: 0x000c,
- 0x98c: 0x000c, 0x98d: 0x000c,
- 0x995: 0x000c, 0x996: 0x000c,
- 0x9a2: 0x000c, 0x9a3: 0x000c,
- 0x9b8: 0x000a, 0x9b9: 0x000a, 0x9ba: 0x000a, 0x9bb: 0x000a,
- 0x9bc: 0x000a, 0x9bd: 0x000a, 0x9be: 0x000a,
- // Block 0x27, offset 0x9c0
- 0x9cc: 0x000c, 0x9cd: 0x000c,
- 0x9e2: 0x000c, 0x9e3: 0x000c,
- // Block 0x28, offset 0xa00
- 0xa00: 0x000c, 0xa01: 0x000c,
- 0xa3b: 0x000c,
- 0xa3c: 0x000c,
- // Block 0x29, offset 0xa40
- 0xa41: 0x000c, 0xa42: 0x000c, 0xa43: 0x000c, 0xa44: 0x000c,
- 0xa4d: 0x000c,
- 0xa62: 0x000c, 0xa63: 0x000c,
- // Block 0x2a, offset 0xa80
- 0xa81: 0x000c,
- // Block 0x2b, offset 0xac0
- 0xaca: 0x000c,
- 0xad2: 0x000c, 0xad3: 0x000c, 0xad4: 0x000c, 0xad6: 0x000c,
- // Block 0x2c, offset 0xb00
- 0xb31: 0x000c, 0xb34: 0x000c, 0xb35: 0x000c,
- 0xb36: 0x000c, 0xb37: 0x000c, 0xb38: 0x000c, 0xb39: 0x000c, 0xb3a: 0x000c,
- 0xb3f: 0x0004,
- // Block 0x2d, offset 0xb40
- 0xb47: 0x000c, 0xb48: 0x000c, 0xb49: 0x000c, 0xb4a: 0x000c, 0xb4b: 0x000c,
- 0xb4c: 0x000c, 0xb4d: 0x000c, 0xb4e: 0x000c,
- // Block 0x2e, offset 0xb80
- 0xbb1: 0x000c, 0xbb4: 0x000c, 0xbb5: 0x000c,
- 0xbb6: 0x000c, 0xbb7: 0x000c, 0xbb8: 0x000c, 0xbb9: 0x000c, 0xbba: 0x000c, 0xbbb: 0x000c,
- 0xbbc: 0x000c,
- // Block 0x2f, offset 0xbc0
- 0xbc8: 0x000c, 0xbc9: 0x000c, 0xbca: 0x000c, 0xbcb: 0x000c,
- 0xbcc: 0x000c, 0xbcd: 0x000c,
- // Block 0x30, offset 0xc00
- 0xc18: 0x000c, 0xc19: 0x000c,
- 0xc35: 0x000c,
- 0xc37: 0x000c, 0xc39: 0x000c, 0xc3a: 0x003a, 0xc3b: 0x002a,
- 0xc3c: 0x003a, 0xc3d: 0x002a,
- // Block 0x31, offset 0xc40
- 0xc71: 0x000c, 0xc72: 0x000c, 0xc73: 0x000c, 0xc74: 0x000c, 0xc75: 0x000c,
- 0xc76: 0x000c, 0xc77: 0x000c, 0xc78: 0x000c, 0xc79: 0x000c, 0xc7a: 0x000c, 0xc7b: 0x000c,
- 0xc7c: 0x000c, 0xc7d: 0x000c, 0xc7e: 0x000c,
- // Block 0x32, offset 0xc80
- 0xc80: 0x000c, 0xc81: 0x000c, 0xc82: 0x000c, 0xc83: 0x000c, 0xc84: 0x000c,
- 0xc86: 0x000c, 0xc87: 0x000c,
- 0xc8d: 0x000c, 0xc8e: 0x000c, 0xc8f: 0x000c, 0xc90: 0x000c, 0xc91: 0x000c,
- 0xc92: 0x000c, 0xc93: 0x000c, 0xc94: 0x000c, 0xc95: 0x000c, 0xc96: 0x000c, 0xc97: 0x000c,
- 0xc99: 0x000c, 0xc9a: 0x000c, 0xc9b: 0x000c, 0xc9c: 0x000c, 0xc9d: 0x000c,
- 0xc9e: 0x000c, 0xc9f: 0x000c, 0xca0: 0x000c, 0xca1: 0x000c, 0xca2: 0x000c, 0xca3: 0x000c,
- 0xca4: 0x000c, 0xca5: 0x000c, 0xca6: 0x000c, 0xca7: 0x000c, 0xca8: 0x000c, 0xca9: 0x000c,
- 0xcaa: 0x000c, 0xcab: 0x000c, 0xcac: 0x000c, 0xcad: 0x000c, 0xcae: 0x000c, 0xcaf: 0x000c,
- 0xcb0: 0x000c, 0xcb1: 0x000c, 0xcb2: 0x000c, 0xcb3: 0x000c, 0xcb4: 0x000c, 0xcb5: 0x000c,
- 0xcb6: 0x000c, 0xcb7: 0x000c, 0xcb8: 0x000c, 0xcb9: 0x000c, 0xcba: 0x000c, 0xcbb: 0x000c,
- 0xcbc: 0x000c,
- // Block 0x33, offset 0xcc0
- 0xcc6: 0x000c,
- // Block 0x34, offset 0xd00
- 0xd2d: 0x000c, 0xd2e: 0x000c, 0xd2f: 0x000c,
- 0xd30: 0x000c, 0xd32: 0x000c, 0xd33: 0x000c, 0xd34: 0x000c, 0xd35: 0x000c,
- 0xd36: 0x000c, 0xd37: 0x000c, 0xd39: 0x000c, 0xd3a: 0x000c,
- 0xd3d: 0x000c, 0xd3e: 0x000c,
- // Block 0x35, offset 0xd40
- 0xd58: 0x000c, 0xd59: 0x000c,
- 0xd5e: 0x000c, 0xd5f: 0x000c, 0xd60: 0x000c,
- 0xd71: 0x000c, 0xd72: 0x000c, 0xd73: 0x000c, 0xd74: 0x000c,
- // Block 0x36, offset 0xd80
- 0xd82: 0x000c, 0xd85: 0x000c,
- 0xd86: 0x000c,
- 0xd8d: 0x000c,
- 0xd9d: 0x000c,
- // Block 0x37, offset 0xdc0
- 0xddd: 0x000c,
- 0xdde: 0x000c, 0xddf: 0x000c,
- // Block 0x38, offset 0xe00
- 0xe10: 0x000a, 0xe11: 0x000a,
- 0xe12: 0x000a, 0xe13: 0x000a, 0xe14: 0x000a, 0xe15: 0x000a, 0xe16: 0x000a, 0xe17: 0x000a,
- 0xe18: 0x000a, 0xe19: 0x000a,
- // Block 0x39, offset 0xe40
- 0xe40: 0x000a,
- // Block 0x3a, offset 0xe80
- 0xe80: 0x0009,
- 0xe9b: 0x007a, 0xe9c: 0x006a,
- // Block 0x3b, offset 0xec0
- 0xed2: 0x000c, 0xed3: 0x000c, 0xed4: 0x000c,
- 0xef2: 0x000c, 0xef3: 0x000c, 0xef4: 0x000c,
- // Block 0x3c, offset 0xf00
- 0xf12: 0x000c, 0xf13: 0x000c,
- 0xf32: 0x000c, 0xf33: 0x000c,
- // Block 0x3d, offset 0xf40
- 0xf74: 0x000c, 0xf75: 0x000c,
- 0xf77: 0x000c, 0xf78: 0x000c, 0xf79: 0x000c, 0xf7a: 0x000c, 0xf7b: 0x000c,
- 0xf7c: 0x000c, 0xf7d: 0x000c,
- // Block 0x3e, offset 0xf80
- 0xf86: 0x000c, 0xf89: 0x000c, 0xf8a: 0x000c, 0xf8b: 0x000c,
- 0xf8c: 0x000c, 0xf8d: 0x000c, 0xf8e: 0x000c, 0xf8f: 0x000c, 0xf90: 0x000c, 0xf91: 0x000c,
- 0xf92: 0x000c, 0xf93: 0x000c,
- 0xf9b: 0x0004, 0xf9d: 0x000c,
- 0xfb0: 0x000a, 0xfb1: 0x000a, 0xfb2: 0x000a, 0xfb3: 0x000a, 0xfb4: 0x000a, 0xfb5: 0x000a,
- 0xfb6: 0x000a, 0xfb7: 0x000a, 0xfb8: 0x000a, 0xfb9: 0x000a,
- // Block 0x3f, offset 0xfc0
- 0xfc0: 0x000a, 0xfc1: 0x000a, 0xfc2: 0x000a, 0xfc3: 0x000a, 0xfc4: 0x000a, 0xfc5: 0x000a,
- 0xfc6: 0x000a, 0xfc7: 0x000a, 0xfc8: 0x000a, 0xfc9: 0x000a, 0xfca: 0x000a, 0xfcb: 0x000c,
- 0xfcc: 0x000c, 0xfcd: 0x000c, 0xfce: 0x000b,
- // Block 0x40, offset 0x1000
- 0x1005: 0x000c,
- 0x1006: 0x000c,
- 0x1029: 0x000c,
- // Block 0x41, offset 0x1040
- 0x1060: 0x000c, 0x1061: 0x000c, 0x1062: 0x000c,
- 0x1067: 0x000c, 0x1068: 0x000c,
- 0x1072: 0x000c,
- 0x1079: 0x000c, 0x107a: 0x000c, 0x107b: 0x000c,
- // Block 0x42, offset 0x1080
- 0x1080: 0x000a, 0x1084: 0x000a, 0x1085: 0x000a,
- // Block 0x43, offset 0x10c0
- 0x10de: 0x000a, 0x10df: 0x000a, 0x10e0: 0x000a, 0x10e1: 0x000a, 0x10e2: 0x000a, 0x10e3: 0x000a,
- 0x10e4: 0x000a, 0x10e5: 0x000a, 0x10e6: 0x000a, 0x10e7: 0x000a, 0x10e8: 0x000a, 0x10e9: 0x000a,
- 0x10ea: 0x000a, 0x10eb: 0x000a, 0x10ec: 0x000a, 0x10ed: 0x000a, 0x10ee: 0x000a, 0x10ef: 0x000a,
- 0x10f0: 0x000a, 0x10f1: 0x000a, 0x10f2: 0x000a, 0x10f3: 0x000a, 0x10f4: 0x000a, 0x10f5: 0x000a,
- 0x10f6: 0x000a, 0x10f7: 0x000a, 0x10f8: 0x000a, 0x10f9: 0x000a, 0x10fa: 0x000a, 0x10fb: 0x000a,
- 0x10fc: 0x000a, 0x10fd: 0x000a, 0x10fe: 0x000a, 0x10ff: 0x000a,
- // Block 0x44, offset 0x1100
- 0x1117: 0x000c,
- 0x1118: 0x000c, 0x111b: 0x000c,
- // Block 0x45, offset 0x1140
- 0x1156: 0x000c,
- 0x1158: 0x000c, 0x1159: 0x000c, 0x115a: 0x000c, 0x115b: 0x000c, 0x115c: 0x000c, 0x115d: 0x000c,
- 0x115e: 0x000c, 0x1160: 0x000c, 0x1162: 0x000c,
- 0x1165: 0x000c, 0x1166: 0x000c, 0x1167: 0x000c, 0x1168: 0x000c, 0x1169: 0x000c,
- 0x116a: 0x000c, 0x116b: 0x000c, 0x116c: 0x000c,
- 0x1173: 0x000c, 0x1174: 0x000c, 0x1175: 0x000c,
- 0x1176: 0x000c, 0x1177: 0x000c, 0x1178: 0x000c, 0x1179: 0x000c, 0x117a: 0x000c, 0x117b: 0x000c,
- 0x117c: 0x000c, 0x117f: 0x000c,
- // Block 0x46, offset 0x1180
- 0x11b0: 0x000c, 0x11b1: 0x000c, 0x11b2: 0x000c, 0x11b3: 0x000c, 0x11b4: 0x000c, 0x11b5: 0x000c,
- 0x11b6: 0x000c, 0x11b7: 0x000c, 0x11b8: 0x000c, 0x11b9: 0x000c, 0x11ba: 0x000c, 0x11bb: 0x000c,
- 0x11bc: 0x000c, 0x11bd: 0x000c, 0x11be: 0x000c, 0x11bf: 0x000c,
- // Block 0x47, offset 0x11c0
- 0x11c0: 0x000c,
- // Block 0x48, offset 0x1200
- 0x1200: 0x000c, 0x1201: 0x000c, 0x1202: 0x000c, 0x1203: 0x000c,
- 0x1234: 0x000c,
- 0x1236: 0x000c, 0x1237: 0x000c, 0x1238: 0x000c, 0x1239: 0x000c, 0x123a: 0x000c,
- 0x123c: 0x000c,
- // Block 0x49, offset 0x1240
- 0x1242: 0x000c,
- 0x126b: 0x000c, 0x126c: 0x000c, 0x126d: 0x000c, 0x126e: 0x000c, 0x126f: 0x000c,
- 0x1270: 0x000c, 0x1271: 0x000c, 0x1272: 0x000c, 0x1273: 0x000c,
- // Block 0x4a, offset 0x1280
- 0x1280: 0x000c, 0x1281: 0x000c,
- 0x12a2: 0x000c, 0x12a3: 0x000c,
- 0x12a4: 0x000c, 0x12a5: 0x000c, 0x12a8: 0x000c, 0x12a9: 0x000c,
- 0x12ab: 0x000c, 0x12ac: 0x000c, 0x12ad: 0x000c,
- // Block 0x4b, offset 0x12c0
- 0x12e6: 0x000c, 0x12e8: 0x000c, 0x12e9: 0x000c,
- 0x12ed: 0x000c, 0x12ef: 0x000c,
- 0x12f0: 0x000c, 0x12f1: 0x000c,
- // Block 0x4c, offset 0x1300
- 0x132c: 0x000c, 0x132d: 0x000c, 0x132e: 0x000c, 0x132f: 0x000c,
- 0x1330: 0x000c, 0x1331: 0x000c, 0x1332: 0x000c, 0x1333: 0x000c,
- 0x1336: 0x000c, 0x1337: 0x000c,
- // Block 0x4d, offset 0x1340
- 0x1350: 0x000c, 0x1351: 0x000c,
- 0x1352: 0x000c, 0x1354: 0x000c, 0x1355: 0x000c, 0x1356: 0x000c, 0x1357: 0x000c,
- 0x1358: 0x000c, 0x1359: 0x000c, 0x135a: 0x000c, 0x135b: 0x000c, 0x135c: 0x000c, 0x135d: 0x000c,
- 0x135e: 0x000c, 0x135f: 0x000c, 0x1360: 0x000c, 0x1362: 0x000c, 0x1363: 0x000c,
- 0x1364: 0x000c, 0x1365: 0x000c, 0x1366: 0x000c, 0x1367: 0x000c, 0x1368: 0x000c,
- 0x136d: 0x000c,
- 0x1374: 0x000c,
- 0x1378: 0x000c, 0x1379: 0x000c,
- // Block 0x4e, offset 0x1380
- 0x1380: 0x000c, 0x1381: 0x000c, 0x1382: 0x000c, 0x1383: 0x000c, 0x1384: 0x000c, 0x1385: 0x000c,
- 0x1386: 0x000c, 0x1387: 0x000c, 0x1388: 0x000c, 0x1389: 0x000c, 0x138a: 0x000c, 0x138b: 0x000c,
- 0x138c: 0x000c, 0x138d: 0x000c, 0x138e: 0x000c, 0x138f: 0x000c, 0x1390: 0x000c, 0x1391: 0x000c,
- 0x1392: 0x000c, 0x1393: 0x000c, 0x1394: 0x000c, 0x1395: 0x000c, 0x1396: 0x000c, 0x1397: 0x000c,
- 0x1398: 0x000c, 0x1399: 0x000c, 0x139a: 0x000c, 0x139b: 0x000c, 0x139c: 0x000c, 0x139d: 0x000c,
- 0x139e: 0x000c, 0x139f: 0x000c, 0x13a0: 0x000c, 0x13a1: 0x000c, 0x13a2: 0x000c, 0x13a3: 0x000c,
- 0x13a4: 0x000c, 0x13a5: 0x000c, 0x13a6: 0x000c, 0x13a7: 0x000c, 0x13a8: 0x000c, 0x13a9: 0x000c,
- 0x13aa: 0x000c, 0x13ab: 0x000c, 0x13ac: 0x000c, 0x13ad: 0x000c, 0x13ae: 0x000c, 0x13af: 0x000c,
- 0x13b0: 0x000c, 0x13b1: 0x000c, 0x13b2: 0x000c, 0x13b3: 0x000c, 0x13b4: 0x000c, 0x13b5: 0x000c,
- 0x13b6: 0x000c, 0x13b7: 0x000c, 0x13b8: 0x000c, 0x13b9: 0x000c, 0x13bb: 0x000c,
- 0x13bc: 0x000c, 0x13bd: 0x000c, 0x13be: 0x000c, 0x13bf: 0x000c,
- // Block 0x4f, offset 0x13c0
- 0x13fd: 0x000a, 0x13ff: 0x000a,
- // Block 0x50, offset 0x1400
- 0x1400: 0x000a, 0x1401: 0x000a,
- 0x140d: 0x000a, 0x140e: 0x000a, 0x140f: 0x000a,
- 0x141d: 0x000a,
- 0x141e: 0x000a, 0x141f: 0x000a,
- 0x142d: 0x000a, 0x142e: 0x000a, 0x142f: 0x000a,
- 0x143d: 0x000a, 0x143e: 0x000a,
- // Block 0x51, offset 0x1440
- 0x1440: 0x0009, 0x1441: 0x0009, 0x1442: 0x0009, 0x1443: 0x0009, 0x1444: 0x0009, 0x1445: 0x0009,
- 0x1446: 0x0009, 0x1447: 0x0009, 0x1448: 0x0009, 0x1449: 0x0009, 0x144a: 0x0009, 0x144b: 0x000b,
- 0x144c: 0x000b, 0x144d: 0x000b, 0x144f: 0x0001, 0x1450: 0x000a, 0x1451: 0x000a,
- 0x1452: 0x000a, 0x1453: 0x000a, 0x1454: 0x000a, 0x1455: 0x000a, 0x1456: 0x000a, 0x1457: 0x000a,
- 0x1458: 0x000a, 0x1459: 0x000a, 0x145a: 0x000a, 0x145b: 0x000a, 0x145c: 0x000a, 0x145d: 0x000a,
- 0x145e: 0x000a, 0x145f: 0x000a, 0x1460: 0x000a, 0x1461: 0x000a, 0x1462: 0x000a, 0x1463: 0x000a,
- 0x1464: 0x000a, 0x1465: 0x000a, 0x1466: 0x000a, 0x1467: 0x000a, 0x1468: 0x0009, 0x1469: 0x0007,
- 0x146a: 0x000e, 0x146b: 0x000e, 0x146c: 0x000e, 0x146d: 0x000e, 0x146e: 0x000e, 0x146f: 0x0006,
- 0x1470: 0x0004, 0x1471: 0x0004, 0x1472: 0x0004, 0x1473: 0x0004, 0x1474: 0x0004, 0x1475: 0x000a,
- 0x1476: 0x000a, 0x1477: 0x000a, 0x1478: 0x000a, 0x1479: 0x000a, 0x147a: 0x000a, 0x147b: 0x000a,
- 0x147c: 0x000a, 0x147d: 0x000a, 0x147e: 0x000a, 0x147f: 0x000a,
- // Block 0x52, offset 0x1480
- 0x1480: 0x000a, 0x1481: 0x000a, 0x1482: 0x000a, 0x1483: 0x000a, 0x1484: 0x0006, 0x1485: 0x009a,
- 0x1486: 0x008a, 0x1487: 0x000a, 0x1488: 0x000a, 0x1489: 0x000a, 0x148a: 0x000a, 0x148b: 0x000a,
- 0x148c: 0x000a, 0x148d: 0x000a, 0x148e: 0x000a, 0x148f: 0x000a, 0x1490: 0x000a, 0x1491: 0x000a,
- 0x1492: 0x000a, 0x1493: 0x000a, 0x1494: 0x000a, 0x1495: 0x000a, 0x1496: 0x000a, 0x1497: 0x000a,
- 0x1498: 0x000a, 0x1499: 0x000a, 0x149a: 0x000a, 0x149b: 0x000a, 0x149c: 0x000a, 0x149d: 0x000a,
- 0x149e: 0x000a, 0x149f: 0x0009, 0x14a0: 0x000b, 0x14a1: 0x000b, 0x14a2: 0x000b, 0x14a3: 0x000b,
- 0x14a4: 0x000b, 0x14a5: 0x000b, 0x14a6: 0x000e, 0x14a7: 0x000e, 0x14a8: 0x000e, 0x14a9: 0x000e,
- 0x14aa: 0x000b, 0x14ab: 0x000b, 0x14ac: 0x000b, 0x14ad: 0x000b, 0x14ae: 0x000b, 0x14af: 0x000b,
- 0x14b0: 0x0002, 0x14b4: 0x0002, 0x14b5: 0x0002,
- 0x14b6: 0x0002, 0x14b7: 0x0002, 0x14b8: 0x0002, 0x14b9: 0x0002, 0x14ba: 0x0003, 0x14bb: 0x0003,
- 0x14bc: 0x000a, 0x14bd: 0x009a, 0x14be: 0x008a,
- // Block 0x53, offset 0x14c0
- 0x14c0: 0x0002, 0x14c1: 0x0002, 0x14c2: 0x0002, 0x14c3: 0x0002, 0x14c4: 0x0002, 0x14c5: 0x0002,
- 0x14c6: 0x0002, 0x14c7: 0x0002, 0x14c8: 0x0002, 0x14c9: 0x0002, 0x14ca: 0x0003, 0x14cb: 0x0003,
- 0x14cc: 0x000a, 0x14cd: 0x009a, 0x14ce: 0x008a,
- 0x14e0: 0x0004, 0x14e1: 0x0004, 0x14e2: 0x0004, 0x14e3: 0x0004,
- 0x14e4: 0x0004, 0x14e5: 0x0004, 0x14e6: 0x0004, 0x14e7: 0x0004, 0x14e8: 0x0004, 0x14e9: 0x0004,
- 0x14ea: 0x0004, 0x14eb: 0x0004, 0x14ec: 0x0004, 0x14ed: 0x0004, 0x14ee: 0x0004, 0x14ef: 0x0004,
- 0x14f0: 0x0004, 0x14f1: 0x0004, 0x14f2: 0x0004, 0x14f3: 0x0004, 0x14f4: 0x0004, 0x14f5: 0x0004,
- 0x14f6: 0x0004, 0x14f7: 0x0004, 0x14f8: 0x0004, 0x14f9: 0x0004, 0x14fa: 0x0004, 0x14fb: 0x0004,
- 0x14fc: 0x0004, 0x14fd: 0x0004, 0x14fe: 0x0004, 0x14ff: 0x0004,
- // Block 0x54, offset 0x1500
- 0x1500: 0x0004, 0x1501: 0x0004, 0x1502: 0x0004, 0x1503: 0x0004, 0x1504: 0x0004, 0x1505: 0x0004,
- 0x1506: 0x0004, 0x1507: 0x0004, 0x1508: 0x0004, 0x1509: 0x0004, 0x150a: 0x0004, 0x150b: 0x0004,
- 0x150c: 0x0004, 0x150d: 0x0004, 0x150e: 0x0004, 0x150f: 0x0004, 0x1510: 0x000c, 0x1511: 0x000c,
- 0x1512: 0x000c, 0x1513: 0x000c, 0x1514: 0x000c, 0x1515: 0x000c, 0x1516: 0x000c, 0x1517: 0x000c,
- 0x1518: 0x000c, 0x1519: 0x000c, 0x151a: 0x000c, 0x151b: 0x000c, 0x151c: 0x000c, 0x151d: 0x000c,
- 0x151e: 0x000c, 0x151f: 0x000c, 0x1520: 0x000c, 0x1521: 0x000c, 0x1522: 0x000c, 0x1523: 0x000c,
- 0x1524: 0x000c, 0x1525: 0x000c, 0x1526: 0x000c, 0x1527: 0x000c, 0x1528: 0x000c, 0x1529: 0x000c,
- 0x152a: 0x000c, 0x152b: 0x000c, 0x152c: 0x000c, 0x152d: 0x000c, 0x152e: 0x000c, 0x152f: 0x000c,
- 0x1530: 0x000c,
- // Block 0x55, offset 0x1540
- 0x1540: 0x000a, 0x1541: 0x000a, 0x1543: 0x000a, 0x1544: 0x000a, 0x1545: 0x000a,
- 0x1546: 0x000a, 0x1548: 0x000a, 0x1549: 0x000a,
- 0x1554: 0x000a, 0x1556: 0x000a, 0x1557: 0x000a,
- 0x1558: 0x000a,
- 0x155e: 0x000a, 0x155f: 0x000a, 0x1560: 0x000a, 0x1561: 0x000a, 0x1562: 0x000a, 0x1563: 0x000a,
- 0x1565: 0x000a, 0x1567: 0x000a, 0x1569: 0x000a,
- 0x156e: 0x0004,
- 0x157a: 0x000a, 0x157b: 0x000a,
- // Block 0x56, offset 0x1580
- 0x1580: 0x000a, 0x1581: 0x000a, 0x1582: 0x000a, 0x1583: 0x000a, 0x1584: 0x000a,
- 0x158a: 0x000a, 0x158b: 0x000a,
- 0x158c: 0x000a, 0x158d: 0x000a, 0x1590: 0x000a, 0x1591: 0x000a,
- 0x1592: 0x000a, 0x1593: 0x000a, 0x1594: 0x000a, 0x1595: 0x000a, 0x1596: 0x000a, 0x1597: 0x000a,
- 0x1598: 0x000a, 0x1599: 0x000a, 0x159a: 0x000a, 0x159b: 0x000a, 0x159c: 0x000a, 0x159d: 0x000a,
- 0x159e: 0x000a, 0x159f: 0x000a,
- // Block 0x57, offset 0x15c0
- 0x15c9: 0x000a, 0x15ca: 0x000a, 0x15cb: 0x000a,
- 0x15d0: 0x000a, 0x15d1: 0x000a,
- 0x15d2: 0x000a, 0x15d3: 0x000a, 0x15d4: 0x000a, 0x15d5: 0x000a, 0x15d6: 0x000a, 0x15d7: 0x000a,
- 0x15d8: 0x000a, 0x15d9: 0x000a, 0x15da: 0x000a, 0x15db: 0x000a, 0x15dc: 0x000a, 0x15dd: 0x000a,
- 0x15de: 0x000a, 0x15df: 0x000a, 0x15e0: 0x000a, 0x15e1: 0x000a, 0x15e2: 0x000a, 0x15e3: 0x000a,
- 0x15e4: 0x000a, 0x15e5: 0x000a, 0x15e6: 0x000a, 0x15e7: 0x000a, 0x15e8: 0x000a, 0x15e9: 0x000a,
- 0x15ea: 0x000a, 0x15eb: 0x000a, 0x15ec: 0x000a, 0x15ed: 0x000a, 0x15ee: 0x000a, 0x15ef: 0x000a,
- 0x15f0: 0x000a, 0x15f1: 0x000a, 0x15f2: 0x000a, 0x15f3: 0x000a, 0x15f4: 0x000a, 0x15f5: 0x000a,
- 0x15f6: 0x000a, 0x15f7: 0x000a, 0x15f8: 0x000a, 0x15f9: 0x000a, 0x15fa: 0x000a, 0x15fb: 0x000a,
- 0x15fc: 0x000a, 0x15fd: 0x000a, 0x15fe: 0x000a, 0x15ff: 0x000a,
- // Block 0x58, offset 0x1600
- 0x1600: 0x000a, 0x1601: 0x000a, 0x1602: 0x000a, 0x1603: 0x000a, 0x1604: 0x000a, 0x1605: 0x000a,
- 0x1606: 0x000a, 0x1607: 0x000a, 0x1608: 0x000a, 0x1609: 0x000a, 0x160a: 0x000a, 0x160b: 0x000a,
- 0x160c: 0x000a, 0x160d: 0x000a, 0x160e: 0x000a, 0x160f: 0x000a, 0x1610: 0x000a, 0x1611: 0x000a,
- 0x1612: 0x000a, 0x1613: 0x000a, 0x1614: 0x000a, 0x1615: 0x000a, 0x1616: 0x000a, 0x1617: 0x000a,
- 0x1618: 0x000a, 0x1619: 0x000a, 0x161a: 0x000a, 0x161b: 0x000a, 0x161c: 0x000a, 0x161d: 0x000a,
- 0x161e: 0x000a, 0x161f: 0x000a, 0x1620: 0x000a, 0x1621: 0x000a, 0x1622: 0x000a, 0x1623: 0x000a,
- 0x1624: 0x000a, 0x1625: 0x000a, 0x1626: 0x000a, 0x1627: 0x000a, 0x1628: 0x000a, 0x1629: 0x000a,
- 0x162a: 0x000a, 0x162b: 0x000a, 0x162c: 0x000a, 0x162d: 0x000a, 0x162e: 0x000a, 0x162f: 0x000a,
- 0x1630: 0x000a, 0x1631: 0x000a, 0x1632: 0x000a, 0x1633: 0x000a, 0x1634: 0x000a, 0x1635: 0x000a,
- 0x1636: 0x000a, 0x1637: 0x000a, 0x1638: 0x000a, 0x1639: 0x000a, 0x163a: 0x000a, 0x163b: 0x000a,
- 0x163c: 0x000a, 0x163d: 0x000a, 0x163e: 0x000a, 0x163f: 0x000a,
- // Block 0x59, offset 0x1640
- 0x1640: 0x000a, 0x1641: 0x000a, 0x1642: 0x000a, 0x1643: 0x000a, 0x1644: 0x000a, 0x1645: 0x000a,
- 0x1646: 0x000a, 0x1647: 0x000a, 0x1648: 0x000a, 0x1649: 0x000a, 0x164a: 0x000a, 0x164b: 0x000a,
- 0x164c: 0x000a, 0x164d: 0x000a, 0x164e: 0x000a, 0x164f: 0x000a, 0x1650: 0x000a, 0x1651: 0x000a,
- 0x1652: 0x0003, 0x1653: 0x0004, 0x1654: 0x000a, 0x1655: 0x000a, 0x1656: 0x000a, 0x1657: 0x000a,
- 0x1658: 0x000a, 0x1659: 0x000a, 0x165a: 0x000a, 0x165b: 0x000a, 0x165c: 0x000a, 0x165d: 0x000a,
- 0x165e: 0x000a, 0x165f: 0x000a, 0x1660: 0x000a, 0x1661: 0x000a, 0x1662: 0x000a, 0x1663: 0x000a,
- 0x1664: 0x000a, 0x1665: 0x000a, 0x1666: 0x000a, 0x1667: 0x000a, 0x1668: 0x000a, 0x1669: 0x000a,
- 0x166a: 0x000a, 0x166b: 0x000a, 0x166c: 0x000a, 0x166d: 0x000a, 0x166e: 0x000a, 0x166f: 0x000a,
- 0x1670: 0x000a, 0x1671: 0x000a, 0x1672: 0x000a, 0x1673: 0x000a, 0x1674: 0x000a, 0x1675: 0x000a,
- 0x1676: 0x000a, 0x1677: 0x000a, 0x1678: 0x000a, 0x1679: 0x000a, 0x167a: 0x000a, 0x167b: 0x000a,
- 0x167c: 0x000a, 0x167d: 0x000a, 0x167e: 0x000a, 0x167f: 0x000a,
- // Block 0x5a, offset 0x1680
- 0x1680: 0x000a, 0x1681: 0x000a, 0x1682: 0x000a, 0x1683: 0x000a, 0x1684: 0x000a, 0x1685: 0x000a,
- 0x1686: 0x000a, 0x1687: 0x000a, 0x1688: 0x003a, 0x1689: 0x002a, 0x168a: 0x003a, 0x168b: 0x002a,
- 0x168c: 0x000a, 0x168d: 0x000a, 0x168e: 0x000a, 0x168f: 0x000a, 0x1690: 0x000a, 0x1691: 0x000a,
- 0x1692: 0x000a, 0x1693: 0x000a, 0x1694: 0x000a, 0x1695: 0x000a, 0x1696: 0x000a, 0x1697: 0x000a,
- 0x1698: 0x000a, 0x1699: 0x000a, 0x169a: 0x000a, 0x169b: 0x000a, 0x169c: 0x000a, 0x169d: 0x000a,
- 0x169e: 0x000a, 0x169f: 0x000a, 0x16a0: 0x000a, 0x16a1: 0x000a, 0x16a2: 0x000a, 0x16a3: 0x000a,
- 0x16a4: 0x000a, 0x16a5: 0x000a, 0x16a6: 0x000a, 0x16a7: 0x000a, 0x16a8: 0x000a, 0x16a9: 0x009a,
- 0x16aa: 0x008a, 0x16ab: 0x000a, 0x16ac: 0x000a, 0x16ad: 0x000a, 0x16ae: 0x000a, 0x16af: 0x000a,
- 0x16b0: 0x000a, 0x16b1: 0x000a, 0x16b2: 0x000a, 0x16b3: 0x000a, 0x16b4: 0x000a, 0x16b5: 0x000a,
- // Block 0x5b, offset 0x16c0
- 0x16fb: 0x000a,
- 0x16fc: 0x000a, 0x16fd: 0x000a, 0x16fe: 0x000a, 0x16ff: 0x000a,
- // Block 0x5c, offset 0x1700
- 0x1700: 0x000a, 0x1701: 0x000a, 0x1702: 0x000a, 0x1703: 0x000a, 0x1704: 0x000a, 0x1705: 0x000a,
- 0x1706: 0x000a, 0x1707: 0x000a, 0x1708: 0x000a, 0x1709: 0x000a, 0x170a: 0x000a, 0x170b: 0x000a,
- 0x170c: 0x000a, 0x170d: 0x000a, 0x170e: 0x000a, 0x170f: 0x000a, 0x1710: 0x000a, 0x1711: 0x000a,
- 0x1712: 0x000a, 0x1713: 0x000a, 0x1714: 0x000a, 0x1716: 0x000a, 0x1717: 0x000a,
- 0x1718: 0x000a, 0x1719: 0x000a, 0x171a: 0x000a, 0x171b: 0x000a, 0x171c: 0x000a, 0x171d: 0x000a,
- 0x171e: 0x000a, 0x171f: 0x000a, 0x1720: 0x000a, 0x1721: 0x000a, 0x1722: 0x000a, 0x1723: 0x000a,
- 0x1724: 0x000a, 0x1725: 0x000a, 0x1726: 0x000a, 0x1727: 0x000a, 0x1728: 0x000a, 0x1729: 0x000a,
- 0x172a: 0x000a, 0x172b: 0x000a, 0x172c: 0x000a, 0x172d: 0x000a, 0x172e: 0x000a, 0x172f: 0x000a,
- 0x1730: 0x000a, 0x1731: 0x000a, 0x1732: 0x000a, 0x1733: 0x000a, 0x1734: 0x000a, 0x1735: 0x000a,
- 0x1736: 0x000a, 0x1737: 0x000a, 0x1738: 0x000a, 0x1739: 0x000a, 0x173a: 0x000a, 0x173b: 0x000a,
- 0x173c: 0x000a, 0x173d: 0x000a, 0x173e: 0x000a, 0x173f: 0x000a,
- // Block 0x5d, offset 0x1740
- 0x1740: 0x000a, 0x1741: 0x000a, 0x1742: 0x000a, 0x1743: 0x000a, 0x1744: 0x000a, 0x1745: 0x000a,
- 0x1746: 0x000a, 0x1747: 0x000a, 0x1748: 0x000a, 0x1749: 0x000a, 0x174a: 0x000a, 0x174b: 0x000a,
- 0x174c: 0x000a, 0x174d: 0x000a, 0x174e: 0x000a, 0x174f: 0x000a, 0x1750: 0x000a, 0x1751: 0x000a,
- 0x1752: 0x000a, 0x1753: 0x000a, 0x1754: 0x000a, 0x1755: 0x000a, 0x1756: 0x000a, 0x1757: 0x000a,
- 0x1758: 0x000a, 0x1759: 0x000a, 0x175a: 0x000a, 0x175b: 0x000a, 0x175c: 0x000a, 0x175d: 0x000a,
- 0x175e: 0x000a, 0x175f: 0x000a, 0x1760: 0x000a, 0x1761: 0x000a, 0x1762: 0x000a, 0x1763: 0x000a,
- 0x1764: 0x000a, 0x1765: 0x000a, 0x1766: 0x000a,
- // Block 0x5e, offset 0x1780
- 0x1780: 0x000a, 0x1781: 0x000a, 0x1782: 0x000a, 0x1783: 0x000a, 0x1784: 0x000a, 0x1785: 0x000a,
- 0x1786: 0x000a, 0x1787: 0x000a, 0x1788: 0x000a, 0x1789: 0x000a, 0x178a: 0x000a,
- 0x17a0: 0x000a, 0x17a1: 0x000a, 0x17a2: 0x000a, 0x17a3: 0x000a,
- 0x17a4: 0x000a, 0x17a5: 0x000a, 0x17a6: 0x000a, 0x17a7: 0x000a, 0x17a8: 0x000a, 0x17a9: 0x000a,
- 0x17aa: 0x000a, 0x17ab: 0x000a, 0x17ac: 0x000a, 0x17ad: 0x000a, 0x17ae: 0x000a, 0x17af: 0x000a,
- 0x17b0: 0x000a, 0x17b1: 0x000a, 0x17b2: 0x000a, 0x17b3: 0x000a, 0x17b4: 0x000a, 0x17b5: 0x000a,
- 0x17b6: 0x000a, 0x17b7: 0x000a, 0x17b8: 0x000a, 0x17b9: 0x000a, 0x17ba: 0x000a, 0x17bb: 0x000a,
- 0x17bc: 0x000a, 0x17bd: 0x000a, 0x17be: 0x000a, 0x17bf: 0x000a,
- // Block 0x5f, offset 0x17c0
- 0x17c0: 0x000a, 0x17c1: 0x000a, 0x17c2: 0x000a, 0x17c3: 0x000a, 0x17c4: 0x000a, 0x17c5: 0x000a,
- 0x17c6: 0x000a, 0x17c7: 0x000a, 0x17c8: 0x0002, 0x17c9: 0x0002, 0x17ca: 0x0002, 0x17cb: 0x0002,
- 0x17cc: 0x0002, 0x17cd: 0x0002, 0x17ce: 0x0002, 0x17cf: 0x0002, 0x17d0: 0x0002, 0x17d1: 0x0002,
- 0x17d2: 0x0002, 0x17d3: 0x0002, 0x17d4: 0x0002, 0x17d5: 0x0002, 0x17d6: 0x0002, 0x17d7: 0x0002,
- 0x17d8: 0x0002, 0x17d9: 0x0002, 0x17da: 0x0002, 0x17db: 0x0002,
- // Block 0x60, offset 0x1800
- 0x182a: 0x000a, 0x182b: 0x000a, 0x182c: 0x000a, 0x182d: 0x000a, 0x182e: 0x000a, 0x182f: 0x000a,
- 0x1830: 0x000a, 0x1831: 0x000a, 0x1832: 0x000a, 0x1833: 0x000a, 0x1834: 0x000a, 0x1835: 0x000a,
- 0x1836: 0x000a, 0x1837: 0x000a, 0x1838: 0x000a, 0x1839: 0x000a, 0x183a: 0x000a, 0x183b: 0x000a,
- 0x183c: 0x000a, 0x183d: 0x000a, 0x183e: 0x000a, 0x183f: 0x000a,
- // Block 0x61, offset 0x1840
- 0x1840: 0x000a, 0x1841: 0x000a, 0x1842: 0x000a, 0x1843: 0x000a, 0x1844: 0x000a, 0x1845: 0x000a,
- 0x1846: 0x000a, 0x1847: 0x000a, 0x1848: 0x000a, 0x1849: 0x000a, 0x184a: 0x000a, 0x184b: 0x000a,
- 0x184c: 0x000a, 0x184d: 0x000a, 0x184e: 0x000a, 0x184f: 0x000a, 0x1850: 0x000a, 0x1851: 0x000a,
- 0x1852: 0x000a, 0x1853: 0x000a, 0x1854: 0x000a, 0x1855: 0x000a, 0x1856: 0x000a, 0x1857: 0x000a,
- 0x1858: 0x000a, 0x1859: 0x000a, 0x185a: 0x000a, 0x185b: 0x000a, 0x185c: 0x000a, 0x185d: 0x000a,
- 0x185e: 0x000a, 0x185f: 0x000a, 0x1860: 0x000a, 0x1861: 0x000a, 0x1862: 0x000a, 0x1863: 0x000a,
- 0x1864: 0x000a, 0x1865: 0x000a, 0x1866: 0x000a, 0x1867: 0x000a, 0x1868: 0x000a, 0x1869: 0x000a,
- 0x186a: 0x000a, 0x186b: 0x000a, 0x186d: 0x000a, 0x186e: 0x000a, 0x186f: 0x000a,
- 0x1870: 0x000a, 0x1871: 0x000a, 0x1872: 0x000a, 0x1873: 0x000a, 0x1874: 0x000a, 0x1875: 0x000a,
- 0x1876: 0x000a, 0x1877: 0x000a, 0x1878: 0x000a, 0x1879: 0x000a, 0x187a: 0x000a, 0x187b: 0x000a,
- 0x187c: 0x000a, 0x187d: 0x000a, 0x187e: 0x000a, 0x187f: 0x000a,
- // Block 0x62, offset 0x1880
- 0x1880: 0x000a, 0x1881: 0x000a, 0x1882: 0x000a, 0x1883: 0x000a, 0x1884: 0x000a, 0x1885: 0x000a,
- 0x1886: 0x000a, 0x1887: 0x000a, 0x1888: 0x000a, 0x1889: 0x000a, 0x188a: 0x000a, 0x188b: 0x000a,
- 0x188c: 0x000a, 0x188d: 0x000a, 0x188e: 0x000a, 0x188f: 0x000a, 0x1890: 0x000a, 0x1891: 0x000a,
- 0x1892: 0x000a, 0x1893: 0x000a, 0x1894: 0x000a, 0x1895: 0x000a, 0x1896: 0x000a, 0x1897: 0x000a,
- 0x1898: 0x000a, 0x1899: 0x000a, 0x189a: 0x000a, 0x189b: 0x000a, 0x189c: 0x000a, 0x189d: 0x000a,
- 0x189e: 0x000a, 0x189f: 0x000a, 0x18a0: 0x000a, 0x18a1: 0x000a, 0x18a2: 0x000a, 0x18a3: 0x000a,
- 0x18a4: 0x000a, 0x18a5: 0x000a, 0x18a6: 0x000a, 0x18a7: 0x000a, 0x18a8: 0x003a, 0x18a9: 0x002a,
- 0x18aa: 0x003a, 0x18ab: 0x002a, 0x18ac: 0x003a, 0x18ad: 0x002a, 0x18ae: 0x003a, 0x18af: 0x002a,
- 0x18b0: 0x003a, 0x18b1: 0x002a, 0x18b2: 0x003a, 0x18b3: 0x002a, 0x18b4: 0x003a, 0x18b5: 0x002a,
- 0x18b6: 0x000a, 0x18b7: 0x000a, 0x18b8: 0x000a, 0x18b9: 0x000a, 0x18ba: 0x000a, 0x18bb: 0x000a,
- 0x18bc: 0x000a, 0x18bd: 0x000a, 0x18be: 0x000a, 0x18bf: 0x000a,
- // Block 0x63, offset 0x18c0
- 0x18c0: 0x000a, 0x18c1: 0x000a, 0x18c2: 0x000a, 0x18c3: 0x000a, 0x18c4: 0x000a, 0x18c5: 0x009a,
- 0x18c6: 0x008a, 0x18c7: 0x000a, 0x18c8: 0x000a, 0x18c9: 0x000a, 0x18ca: 0x000a, 0x18cb: 0x000a,
- 0x18cc: 0x000a, 0x18cd: 0x000a, 0x18ce: 0x000a, 0x18cf: 0x000a, 0x18d0: 0x000a, 0x18d1: 0x000a,
- 0x18d2: 0x000a, 0x18d3: 0x000a, 0x18d4: 0x000a, 0x18d5: 0x000a, 0x18d6: 0x000a, 0x18d7: 0x000a,
- 0x18d8: 0x000a, 0x18d9: 0x000a, 0x18da: 0x000a, 0x18db: 0x000a, 0x18dc: 0x000a, 0x18dd: 0x000a,
- 0x18de: 0x000a, 0x18df: 0x000a, 0x18e0: 0x000a, 0x18e1: 0x000a, 0x18e2: 0x000a, 0x18e3: 0x000a,
- 0x18e4: 0x000a, 0x18e5: 0x000a, 0x18e6: 0x003a, 0x18e7: 0x002a, 0x18e8: 0x003a, 0x18e9: 0x002a,
- 0x18ea: 0x003a, 0x18eb: 0x002a, 0x18ec: 0x003a, 0x18ed: 0x002a, 0x18ee: 0x003a, 0x18ef: 0x002a,
- 0x18f0: 0x000a, 0x18f1: 0x000a, 0x18f2: 0x000a, 0x18f3: 0x000a, 0x18f4: 0x000a, 0x18f5: 0x000a,
- 0x18f6: 0x000a, 0x18f7: 0x000a, 0x18f8: 0x000a, 0x18f9: 0x000a, 0x18fa: 0x000a, 0x18fb: 0x000a,
- 0x18fc: 0x000a, 0x18fd: 0x000a, 0x18fe: 0x000a, 0x18ff: 0x000a,
- // Block 0x64, offset 0x1900
- 0x1900: 0x000a, 0x1901: 0x000a, 0x1902: 0x000a, 0x1903: 0x007a, 0x1904: 0x006a, 0x1905: 0x009a,
- 0x1906: 0x008a, 0x1907: 0x00ba, 0x1908: 0x00aa, 0x1909: 0x009a, 0x190a: 0x008a, 0x190b: 0x007a,
- 0x190c: 0x006a, 0x190d: 0x00da, 0x190e: 0x002a, 0x190f: 0x003a, 0x1910: 0x00ca, 0x1911: 0x009a,
- 0x1912: 0x008a, 0x1913: 0x007a, 0x1914: 0x006a, 0x1915: 0x009a, 0x1916: 0x008a, 0x1917: 0x00ba,
- 0x1918: 0x00aa, 0x1919: 0x000a, 0x191a: 0x000a, 0x191b: 0x000a, 0x191c: 0x000a, 0x191d: 0x000a,
- 0x191e: 0x000a, 0x191f: 0x000a, 0x1920: 0x000a, 0x1921: 0x000a, 0x1922: 0x000a, 0x1923: 0x000a,
- 0x1924: 0x000a, 0x1925: 0x000a, 0x1926: 0x000a, 0x1927: 0x000a, 0x1928: 0x000a, 0x1929: 0x000a,
- 0x192a: 0x000a, 0x192b: 0x000a, 0x192c: 0x000a, 0x192d: 0x000a, 0x192e: 0x000a, 0x192f: 0x000a,
- 0x1930: 0x000a, 0x1931: 0x000a, 0x1932: 0x000a, 0x1933: 0x000a, 0x1934: 0x000a, 0x1935: 0x000a,
- 0x1936: 0x000a, 0x1937: 0x000a, 0x1938: 0x000a, 0x1939: 0x000a, 0x193a: 0x000a, 0x193b: 0x000a,
- 0x193c: 0x000a, 0x193d: 0x000a, 0x193e: 0x000a, 0x193f: 0x000a,
- // Block 0x65, offset 0x1940
- 0x1940: 0x000a, 0x1941: 0x000a, 0x1942: 0x000a, 0x1943: 0x000a, 0x1944: 0x000a, 0x1945: 0x000a,
- 0x1946: 0x000a, 0x1947: 0x000a, 0x1948: 0x000a, 0x1949: 0x000a, 0x194a: 0x000a, 0x194b: 0x000a,
- 0x194c: 0x000a, 0x194d: 0x000a, 0x194e: 0x000a, 0x194f: 0x000a, 0x1950: 0x000a, 0x1951: 0x000a,
- 0x1952: 0x000a, 0x1953: 0x000a, 0x1954: 0x000a, 0x1955: 0x000a, 0x1956: 0x000a, 0x1957: 0x000a,
- 0x1958: 0x003a, 0x1959: 0x002a, 0x195a: 0x003a, 0x195b: 0x002a, 0x195c: 0x000a, 0x195d: 0x000a,
- 0x195e: 0x000a, 0x195f: 0x000a, 0x1960: 0x000a, 0x1961: 0x000a, 0x1962: 0x000a, 0x1963: 0x000a,
- 0x1964: 0x000a, 0x1965: 0x000a, 0x1966: 0x000a, 0x1967: 0x000a, 0x1968: 0x000a, 0x1969: 0x000a,
- 0x196a: 0x000a, 0x196b: 0x000a, 0x196c: 0x000a, 0x196d: 0x000a, 0x196e: 0x000a, 0x196f: 0x000a,
- 0x1970: 0x000a, 0x1971: 0x000a, 0x1972: 0x000a, 0x1973: 0x000a, 0x1974: 0x000a, 0x1975: 0x000a,
- 0x1976: 0x000a, 0x1977: 0x000a, 0x1978: 0x000a, 0x1979: 0x000a, 0x197a: 0x000a, 0x197b: 0x000a,
- 0x197c: 0x003a, 0x197d: 0x002a, 0x197e: 0x000a, 0x197f: 0x000a,
- // Block 0x66, offset 0x1980
- 0x1980: 0x000a, 0x1981: 0x000a, 0x1982: 0x000a, 0x1983: 0x000a, 0x1984: 0x000a, 0x1985: 0x000a,
- 0x1986: 0x000a, 0x1987: 0x000a, 0x1988: 0x000a, 0x1989: 0x000a, 0x198a: 0x000a, 0x198b: 0x000a,
- 0x198c: 0x000a, 0x198d: 0x000a, 0x198e: 0x000a, 0x198f: 0x000a, 0x1990: 0x000a, 0x1991: 0x000a,
- 0x1992: 0x000a, 0x1993: 0x000a, 0x1994: 0x000a, 0x1995: 0x000a, 0x1996: 0x000a, 0x1997: 0x000a,
- 0x1998: 0x000a, 0x1999: 0x000a, 0x199a: 0x000a, 0x199b: 0x000a, 0x199c: 0x000a, 0x199d: 0x000a,
- 0x199e: 0x000a, 0x199f: 0x000a, 0x19a0: 0x000a, 0x19a1: 0x000a, 0x19a2: 0x000a, 0x19a3: 0x000a,
- 0x19a4: 0x000a, 0x19a5: 0x000a, 0x19a6: 0x000a, 0x19a7: 0x000a, 0x19a8: 0x000a, 0x19a9: 0x000a,
- 0x19aa: 0x000a, 0x19ab: 0x000a, 0x19ac: 0x000a, 0x19ad: 0x000a, 0x19ae: 0x000a, 0x19af: 0x000a,
- 0x19b0: 0x000a, 0x19b1: 0x000a, 0x19b2: 0x000a, 0x19b3: 0x000a,
- 0x19b6: 0x000a, 0x19b7: 0x000a, 0x19b8: 0x000a, 0x19b9: 0x000a, 0x19ba: 0x000a, 0x19bb: 0x000a,
- 0x19bc: 0x000a, 0x19bd: 0x000a, 0x19be: 0x000a, 0x19bf: 0x000a,
- // Block 0x67, offset 0x19c0
- 0x19c0: 0x000a, 0x19c1: 0x000a, 0x19c2: 0x000a, 0x19c3: 0x000a, 0x19c4: 0x000a, 0x19c5: 0x000a,
- 0x19c6: 0x000a, 0x19c7: 0x000a, 0x19c8: 0x000a, 0x19c9: 0x000a, 0x19ca: 0x000a, 0x19cb: 0x000a,
- 0x19cc: 0x000a, 0x19cd: 0x000a, 0x19ce: 0x000a, 0x19cf: 0x000a, 0x19d0: 0x000a, 0x19d1: 0x000a,
- 0x19d2: 0x000a, 0x19d3: 0x000a, 0x19d4: 0x000a, 0x19d5: 0x000a, 0x19d7: 0x000a,
- 0x19d8: 0x000a, 0x19d9: 0x000a, 0x19da: 0x000a, 0x19db: 0x000a, 0x19dc: 0x000a, 0x19dd: 0x000a,
- 0x19de: 0x000a, 0x19df: 0x000a, 0x19e0: 0x000a, 0x19e1: 0x000a, 0x19e2: 0x000a, 0x19e3: 0x000a,
- 0x19e4: 0x000a, 0x19e5: 0x000a, 0x19e6: 0x000a, 0x19e7: 0x000a, 0x19e8: 0x000a, 0x19e9: 0x000a,
- 0x19ea: 0x000a, 0x19eb: 0x000a, 0x19ec: 0x000a, 0x19ed: 0x000a, 0x19ee: 0x000a, 0x19ef: 0x000a,
- 0x19f0: 0x000a, 0x19f1: 0x000a, 0x19f2: 0x000a, 0x19f3: 0x000a, 0x19f4: 0x000a, 0x19f5: 0x000a,
- 0x19f6: 0x000a, 0x19f7: 0x000a, 0x19f8: 0x000a, 0x19f9: 0x000a, 0x19fa: 0x000a, 0x19fb: 0x000a,
- 0x19fc: 0x000a, 0x19fd: 0x000a, 0x19fe: 0x000a, 0x19ff: 0x000a,
- // Block 0x68, offset 0x1a00
- 0x1a25: 0x000a, 0x1a26: 0x000a, 0x1a27: 0x000a, 0x1a28: 0x000a, 0x1a29: 0x000a,
- 0x1a2a: 0x000a, 0x1a2f: 0x000c,
- 0x1a30: 0x000c, 0x1a31: 0x000c,
- 0x1a39: 0x000a, 0x1a3a: 0x000a, 0x1a3b: 0x000a,
- 0x1a3c: 0x000a, 0x1a3d: 0x000a, 0x1a3e: 0x000a, 0x1a3f: 0x000a,
- // Block 0x69, offset 0x1a40
- 0x1a7f: 0x000c,
- // Block 0x6a, offset 0x1a80
- 0x1aa0: 0x000c, 0x1aa1: 0x000c, 0x1aa2: 0x000c, 0x1aa3: 0x000c,
- 0x1aa4: 0x000c, 0x1aa5: 0x000c, 0x1aa6: 0x000c, 0x1aa7: 0x000c, 0x1aa8: 0x000c, 0x1aa9: 0x000c,
- 0x1aaa: 0x000c, 0x1aab: 0x000c, 0x1aac: 0x000c, 0x1aad: 0x000c, 0x1aae: 0x000c, 0x1aaf: 0x000c,
- 0x1ab0: 0x000c, 0x1ab1: 0x000c, 0x1ab2: 0x000c, 0x1ab3: 0x000c, 0x1ab4: 0x000c, 0x1ab5: 0x000c,
- 0x1ab6: 0x000c, 0x1ab7: 0x000c, 0x1ab8: 0x000c, 0x1ab9: 0x000c, 0x1aba: 0x000c, 0x1abb: 0x000c,
- 0x1abc: 0x000c, 0x1abd: 0x000c, 0x1abe: 0x000c, 0x1abf: 0x000c,
- // Block 0x6b, offset 0x1ac0
- 0x1ac0: 0x000a, 0x1ac1: 0x000a, 0x1ac2: 0x000a, 0x1ac3: 0x000a, 0x1ac4: 0x000a, 0x1ac5: 0x000a,
- 0x1ac6: 0x000a, 0x1ac7: 0x000a, 0x1ac8: 0x000a, 0x1ac9: 0x000a, 0x1aca: 0x000a, 0x1acb: 0x000a,
- 0x1acc: 0x000a, 0x1acd: 0x000a, 0x1ace: 0x000a, 0x1acf: 0x000a, 0x1ad0: 0x000a, 0x1ad1: 0x000a,
- 0x1ad2: 0x000a, 0x1ad3: 0x000a, 0x1ad4: 0x000a, 0x1ad5: 0x000a, 0x1ad6: 0x000a, 0x1ad7: 0x000a,
- 0x1ad8: 0x000a, 0x1ad9: 0x000a, 0x1ada: 0x000a, 0x1adb: 0x000a, 0x1adc: 0x000a, 0x1add: 0x000a,
- 0x1ade: 0x000a, 0x1adf: 0x000a, 0x1ae0: 0x000a, 0x1ae1: 0x000a, 0x1ae2: 0x003a, 0x1ae3: 0x002a,
- 0x1ae4: 0x003a, 0x1ae5: 0x002a, 0x1ae6: 0x003a, 0x1ae7: 0x002a, 0x1ae8: 0x003a, 0x1ae9: 0x002a,
- 0x1aea: 0x000a, 0x1aeb: 0x000a, 0x1aec: 0x000a, 0x1aed: 0x000a, 0x1aee: 0x000a, 0x1aef: 0x000a,
- 0x1af0: 0x000a, 0x1af1: 0x000a, 0x1af2: 0x000a, 0x1af3: 0x000a, 0x1af4: 0x000a, 0x1af5: 0x000a,
- 0x1af6: 0x000a, 0x1af7: 0x000a, 0x1af8: 0x000a, 0x1af9: 0x000a, 0x1afa: 0x000a, 0x1afb: 0x000a,
- 0x1afc: 0x000a, 0x1afd: 0x000a, 0x1afe: 0x000a, 0x1aff: 0x000a,
- // Block 0x6c, offset 0x1b00
- 0x1b00: 0x000a, 0x1b01: 0x000a, 0x1b02: 0x000a, 0x1b03: 0x000a, 0x1b04: 0x000a, 0x1b05: 0x000a,
- 0x1b06: 0x000a, 0x1b07: 0x000a, 0x1b08: 0x000a, 0x1b09: 0x000a, 0x1b0a: 0x000a, 0x1b0b: 0x000a,
- 0x1b0c: 0x000a, 0x1b0d: 0x000a, 0x1b0e: 0x000a, 0x1b0f: 0x000a, 0x1b10: 0x000a, 0x1b11: 0x000a,
- 0x1b12: 0x000a,
- // Block 0x6d, offset 0x1b40
- 0x1b40: 0x000a, 0x1b41: 0x000a, 0x1b42: 0x000a, 0x1b43: 0x000a, 0x1b44: 0x000a, 0x1b45: 0x000a,
- 0x1b46: 0x000a, 0x1b47: 0x000a, 0x1b48: 0x000a, 0x1b49: 0x000a, 0x1b4a: 0x000a, 0x1b4b: 0x000a,
- 0x1b4c: 0x000a, 0x1b4d: 0x000a, 0x1b4e: 0x000a, 0x1b4f: 0x000a, 0x1b50: 0x000a, 0x1b51: 0x000a,
- 0x1b52: 0x000a, 0x1b53: 0x000a, 0x1b54: 0x000a, 0x1b55: 0x000a, 0x1b56: 0x000a, 0x1b57: 0x000a,
- 0x1b58: 0x000a, 0x1b59: 0x000a, 0x1b5b: 0x000a, 0x1b5c: 0x000a, 0x1b5d: 0x000a,
- 0x1b5e: 0x000a, 0x1b5f: 0x000a, 0x1b60: 0x000a, 0x1b61: 0x000a, 0x1b62: 0x000a, 0x1b63: 0x000a,
- 0x1b64: 0x000a, 0x1b65: 0x000a, 0x1b66: 0x000a, 0x1b67: 0x000a, 0x1b68: 0x000a, 0x1b69: 0x000a,
- 0x1b6a: 0x000a, 0x1b6b: 0x000a, 0x1b6c: 0x000a, 0x1b6d: 0x000a, 0x1b6e: 0x000a, 0x1b6f: 0x000a,
- 0x1b70: 0x000a, 0x1b71: 0x000a, 0x1b72: 0x000a, 0x1b73: 0x000a, 0x1b74: 0x000a, 0x1b75: 0x000a,
- 0x1b76: 0x000a, 0x1b77: 0x000a, 0x1b78: 0x000a, 0x1b79: 0x000a, 0x1b7a: 0x000a, 0x1b7b: 0x000a,
- 0x1b7c: 0x000a, 0x1b7d: 0x000a, 0x1b7e: 0x000a, 0x1b7f: 0x000a,
- // Block 0x6e, offset 0x1b80
- 0x1b80: 0x000a, 0x1b81: 0x000a, 0x1b82: 0x000a, 0x1b83: 0x000a, 0x1b84: 0x000a, 0x1b85: 0x000a,
- 0x1b86: 0x000a, 0x1b87: 0x000a, 0x1b88: 0x000a, 0x1b89: 0x000a, 0x1b8a: 0x000a, 0x1b8b: 0x000a,
- 0x1b8c: 0x000a, 0x1b8d: 0x000a, 0x1b8e: 0x000a, 0x1b8f: 0x000a, 0x1b90: 0x000a, 0x1b91: 0x000a,
- 0x1b92: 0x000a, 0x1b93: 0x000a, 0x1b94: 0x000a, 0x1b95: 0x000a, 0x1b96: 0x000a, 0x1b97: 0x000a,
- 0x1b98: 0x000a, 0x1b99: 0x000a, 0x1b9a: 0x000a, 0x1b9b: 0x000a, 0x1b9c: 0x000a, 0x1b9d: 0x000a,
- 0x1b9e: 0x000a, 0x1b9f: 0x000a, 0x1ba0: 0x000a, 0x1ba1: 0x000a, 0x1ba2: 0x000a, 0x1ba3: 0x000a,
- 0x1ba4: 0x000a, 0x1ba5: 0x000a, 0x1ba6: 0x000a, 0x1ba7: 0x000a, 0x1ba8: 0x000a, 0x1ba9: 0x000a,
- 0x1baa: 0x000a, 0x1bab: 0x000a, 0x1bac: 0x000a, 0x1bad: 0x000a, 0x1bae: 0x000a, 0x1baf: 0x000a,
- 0x1bb0: 0x000a, 0x1bb1: 0x000a, 0x1bb2: 0x000a, 0x1bb3: 0x000a,
- // Block 0x6f, offset 0x1bc0
- 0x1bc0: 0x000a, 0x1bc1: 0x000a, 0x1bc2: 0x000a, 0x1bc3: 0x000a, 0x1bc4: 0x000a, 0x1bc5: 0x000a,
- 0x1bc6: 0x000a, 0x1bc7: 0x000a, 0x1bc8: 0x000a, 0x1bc9: 0x000a, 0x1bca: 0x000a, 0x1bcb: 0x000a,
- 0x1bcc: 0x000a, 0x1bcd: 0x000a, 0x1bce: 0x000a, 0x1bcf: 0x000a, 0x1bd0: 0x000a, 0x1bd1: 0x000a,
- 0x1bd2: 0x000a, 0x1bd3: 0x000a, 0x1bd4: 0x000a, 0x1bd5: 0x000a,
- 0x1bf0: 0x000a, 0x1bf1: 0x000a, 0x1bf2: 0x000a, 0x1bf3: 0x000a, 0x1bf4: 0x000a, 0x1bf5: 0x000a,
- 0x1bf6: 0x000a, 0x1bf7: 0x000a, 0x1bf8: 0x000a, 0x1bf9: 0x000a, 0x1bfa: 0x000a, 0x1bfb: 0x000a,
- // Block 0x70, offset 0x1c00
- 0x1c00: 0x0009, 0x1c01: 0x000a, 0x1c02: 0x000a, 0x1c03: 0x000a, 0x1c04: 0x000a,
- 0x1c08: 0x003a, 0x1c09: 0x002a, 0x1c0a: 0x003a, 0x1c0b: 0x002a,
- 0x1c0c: 0x003a, 0x1c0d: 0x002a, 0x1c0e: 0x003a, 0x1c0f: 0x002a, 0x1c10: 0x003a, 0x1c11: 0x002a,
- 0x1c12: 0x000a, 0x1c13: 0x000a, 0x1c14: 0x003a, 0x1c15: 0x002a, 0x1c16: 0x003a, 0x1c17: 0x002a,
- 0x1c18: 0x003a, 0x1c19: 0x002a, 0x1c1a: 0x003a, 0x1c1b: 0x002a, 0x1c1c: 0x000a, 0x1c1d: 0x000a,
- 0x1c1e: 0x000a, 0x1c1f: 0x000a, 0x1c20: 0x000a,
- 0x1c2a: 0x000c, 0x1c2b: 0x000c, 0x1c2c: 0x000c, 0x1c2d: 0x000c,
- 0x1c30: 0x000a,
- 0x1c36: 0x000a, 0x1c37: 0x000a,
- 0x1c3d: 0x000a, 0x1c3e: 0x000a, 0x1c3f: 0x000a,
- // Block 0x71, offset 0x1c40
- 0x1c59: 0x000c, 0x1c5a: 0x000c, 0x1c5b: 0x000a, 0x1c5c: 0x000a,
- 0x1c60: 0x000a,
- // Block 0x72, offset 0x1c80
- 0x1cbb: 0x000a,
- // Block 0x73, offset 0x1cc0
- 0x1cc0: 0x000a, 0x1cc1: 0x000a, 0x1cc2: 0x000a, 0x1cc3: 0x000a, 0x1cc4: 0x000a, 0x1cc5: 0x000a,
- 0x1cc6: 0x000a, 0x1cc7: 0x000a, 0x1cc8: 0x000a, 0x1cc9: 0x000a, 0x1cca: 0x000a, 0x1ccb: 0x000a,
- 0x1ccc: 0x000a, 0x1ccd: 0x000a, 0x1cce: 0x000a, 0x1ccf: 0x000a, 0x1cd0: 0x000a, 0x1cd1: 0x000a,
- 0x1cd2: 0x000a, 0x1cd3: 0x000a, 0x1cd4: 0x000a, 0x1cd5: 0x000a, 0x1cd6: 0x000a, 0x1cd7: 0x000a,
- 0x1cd8: 0x000a, 0x1cd9: 0x000a, 0x1cda: 0x000a, 0x1cdb: 0x000a, 0x1cdc: 0x000a, 0x1cdd: 0x000a,
- 0x1cde: 0x000a, 0x1cdf: 0x000a, 0x1ce0: 0x000a, 0x1ce1: 0x000a, 0x1ce2: 0x000a, 0x1ce3: 0x000a,
- // Block 0x74, offset 0x1d00
- 0x1d1d: 0x000a,
- 0x1d1e: 0x000a,
- // Block 0x75, offset 0x1d40
- 0x1d50: 0x000a, 0x1d51: 0x000a,
- 0x1d52: 0x000a, 0x1d53: 0x000a, 0x1d54: 0x000a, 0x1d55: 0x000a, 0x1d56: 0x000a, 0x1d57: 0x000a,
- 0x1d58: 0x000a, 0x1d59: 0x000a, 0x1d5a: 0x000a, 0x1d5b: 0x000a, 0x1d5c: 0x000a, 0x1d5d: 0x000a,
- 0x1d5e: 0x000a, 0x1d5f: 0x000a,
- 0x1d7c: 0x000a, 0x1d7d: 0x000a, 0x1d7e: 0x000a,
- // Block 0x76, offset 0x1d80
- 0x1db1: 0x000a, 0x1db2: 0x000a, 0x1db3: 0x000a, 0x1db4: 0x000a, 0x1db5: 0x000a,
- 0x1db6: 0x000a, 0x1db7: 0x000a, 0x1db8: 0x000a, 0x1db9: 0x000a, 0x1dba: 0x000a, 0x1dbb: 0x000a,
- 0x1dbc: 0x000a, 0x1dbd: 0x000a, 0x1dbe: 0x000a, 0x1dbf: 0x000a,
- // Block 0x77, offset 0x1dc0
- 0x1dcc: 0x000a, 0x1dcd: 0x000a, 0x1dce: 0x000a, 0x1dcf: 0x000a,
- // Block 0x78, offset 0x1e00
- 0x1e37: 0x000a, 0x1e38: 0x000a, 0x1e39: 0x000a, 0x1e3a: 0x000a,
- // Block 0x79, offset 0x1e40
- 0x1e5e: 0x000a, 0x1e5f: 0x000a,
- 0x1e7f: 0x000a,
- // Block 0x7a, offset 0x1e80
- 0x1e90: 0x000a, 0x1e91: 0x000a,
- 0x1e92: 0x000a, 0x1e93: 0x000a, 0x1e94: 0x000a, 0x1e95: 0x000a, 0x1e96: 0x000a, 0x1e97: 0x000a,
- 0x1e98: 0x000a, 0x1e99: 0x000a, 0x1e9a: 0x000a, 0x1e9b: 0x000a, 0x1e9c: 0x000a, 0x1e9d: 0x000a,
- 0x1e9e: 0x000a, 0x1e9f: 0x000a, 0x1ea0: 0x000a, 0x1ea1: 0x000a, 0x1ea2: 0x000a, 0x1ea3: 0x000a,
- 0x1ea4: 0x000a, 0x1ea5: 0x000a, 0x1ea6: 0x000a, 0x1ea7: 0x000a, 0x1ea8: 0x000a, 0x1ea9: 0x000a,
- 0x1eaa: 0x000a, 0x1eab: 0x000a, 0x1eac: 0x000a, 0x1ead: 0x000a, 0x1eae: 0x000a, 0x1eaf: 0x000a,
- 0x1eb0: 0x000a, 0x1eb1: 0x000a, 0x1eb2: 0x000a, 0x1eb3: 0x000a, 0x1eb4: 0x000a, 0x1eb5: 0x000a,
- 0x1eb6: 0x000a, 0x1eb7: 0x000a, 0x1eb8: 0x000a, 0x1eb9: 0x000a, 0x1eba: 0x000a, 0x1ebb: 0x000a,
- 0x1ebc: 0x000a, 0x1ebd: 0x000a, 0x1ebe: 0x000a, 0x1ebf: 0x000a,
- // Block 0x7b, offset 0x1ec0
- 0x1ec0: 0x000a, 0x1ec1: 0x000a, 0x1ec2: 0x000a, 0x1ec3: 0x000a, 0x1ec4: 0x000a, 0x1ec5: 0x000a,
- 0x1ec6: 0x000a,
- // Block 0x7c, offset 0x1f00
- 0x1f0d: 0x000a, 0x1f0e: 0x000a, 0x1f0f: 0x000a,
- // Block 0x7d, offset 0x1f40
- 0x1f6f: 0x000c,
- 0x1f70: 0x000c, 0x1f71: 0x000c, 0x1f72: 0x000c, 0x1f73: 0x000a, 0x1f74: 0x000c, 0x1f75: 0x000c,
- 0x1f76: 0x000c, 0x1f77: 0x000c, 0x1f78: 0x000c, 0x1f79: 0x000c, 0x1f7a: 0x000c, 0x1f7b: 0x000c,
- 0x1f7c: 0x000c, 0x1f7d: 0x000c, 0x1f7e: 0x000a, 0x1f7f: 0x000a,
- // Block 0x7e, offset 0x1f80
- 0x1f9e: 0x000c, 0x1f9f: 0x000c,
- // Block 0x7f, offset 0x1fc0
- 0x1ff0: 0x000c, 0x1ff1: 0x000c,
- // Block 0x80, offset 0x2000
- 0x2000: 0x000a, 0x2001: 0x000a, 0x2002: 0x000a, 0x2003: 0x000a, 0x2004: 0x000a, 0x2005: 0x000a,
- 0x2006: 0x000a, 0x2007: 0x000a, 0x2008: 0x000a, 0x2009: 0x000a, 0x200a: 0x000a, 0x200b: 0x000a,
- 0x200c: 0x000a, 0x200d: 0x000a, 0x200e: 0x000a, 0x200f: 0x000a, 0x2010: 0x000a, 0x2011: 0x000a,
- 0x2012: 0x000a, 0x2013: 0x000a, 0x2014: 0x000a, 0x2015: 0x000a, 0x2016: 0x000a, 0x2017: 0x000a,
- 0x2018: 0x000a, 0x2019: 0x000a, 0x201a: 0x000a, 0x201b: 0x000a, 0x201c: 0x000a, 0x201d: 0x000a,
- 0x201e: 0x000a, 0x201f: 0x000a, 0x2020: 0x000a, 0x2021: 0x000a,
- // Block 0x81, offset 0x2040
- 0x2048: 0x000a,
- // Block 0x82, offset 0x2080
- 0x2082: 0x000c,
- 0x2086: 0x000c, 0x208b: 0x000c,
- 0x20a5: 0x000c, 0x20a6: 0x000c, 0x20a8: 0x000a, 0x20a9: 0x000a,
- 0x20aa: 0x000a, 0x20ab: 0x000a, 0x20ac: 0x000c,
- 0x20b8: 0x0004, 0x20b9: 0x0004,
- // Block 0x83, offset 0x20c0
- 0x20f4: 0x000a, 0x20f5: 0x000a,
- 0x20f6: 0x000a, 0x20f7: 0x000a,
- // Block 0x84, offset 0x2100
- 0x2104: 0x000c, 0x2105: 0x000c,
- 0x2120: 0x000c, 0x2121: 0x000c, 0x2122: 0x000c, 0x2123: 0x000c,
- 0x2124: 0x000c, 0x2125: 0x000c, 0x2126: 0x000c, 0x2127: 0x000c, 0x2128: 0x000c, 0x2129: 0x000c,
- 0x212a: 0x000c, 0x212b: 0x000c, 0x212c: 0x000c, 0x212d: 0x000c, 0x212e: 0x000c, 0x212f: 0x000c,
- 0x2130: 0x000c, 0x2131: 0x000c,
- 0x213f: 0x000c,
- // Block 0x85, offset 0x2140
- 0x2166: 0x000c, 0x2167: 0x000c, 0x2168: 0x000c, 0x2169: 0x000c,
- 0x216a: 0x000c, 0x216b: 0x000c, 0x216c: 0x000c, 0x216d: 0x000c,
- // Block 0x86, offset 0x2180
- 0x2187: 0x000c, 0x2188: 0x000c, 0x2189: 0x000c, 0x218a: 0x000c, 0x218b: 0x000c,
- 0x218c: 0x000c, 0x218d: 0x000c, 0x218e: 0x000c, 0x218f: 0x000c, 0x2190: 0x000c, 0x2191: 0x000c,
- // Block 0x87, offset 0x21c0
- 0x21c0: 0x000c, 0x21c1: 0x000c, 0x21c2: 0x000c,
- 0x21f3: 0x000c,
- 0x21f6: 0x000c, 0x21f7: 0x000c, 0x21f8: 0x000c, 0x21f9: 0x000c,
- 0x21fc: 0x000c, 0x21fd: 0x000c,
- // Block 0x88, offset 0x2200
- 0x2225: 0x000c,
- // Block 0x89, offset 0x2240
- 0x2269: 0x000c,
- 0x226a: 0x000c, 0x226b: 0x000c, 0x226c: 0x000c, 0x226d: 0x000c, 0x226e: 0x000c,
- 0x2271: 0x000c, 0x2272: 0x000c, 0x2275: 0x000c,
- 0x2276: 0x000c,
- // Block 0x8a, offset 0x2280
- 0x2283: 0x000c,
- 0x228c: 0x000c,
- 0x22bc: 0x000c,
- // Block 0x8b, offset 0x22c0
- 0x22f0: 0x000c, 0x22f2: 0x000c, 0x22f3: 0x000c, 0x22f4: 0x000c,
- 0x22f7: 0x000c, 0x22f8: 0x000c,
- 0x22fe: 0x000c, 0x22ff: 0x000c,
- // Block 0x8c, offset 0x2300
- 0x2301: 0x000c,
- 0x232c: 0x000c, 0x232d: 0x000c,
- 0x2336: 0x000c,
- // Block 0x8d, offset 0x2340
- 0x236a: 0x000a, 0x236b: 0x000a,
- // Block 0x8e, offset 0x2380
- 0x23a5: 0x000c, 0x23a8: 0x000c,
- 0x23ad: 0x000c,
- // Block 0x8f, offset 0x23c0
- 0x23dd: 0x0001,
- 0x23de: 0x000c, 0x23df: 0x0001, 0x23e0: 0x0001, 0x23e1: 0x0001, 0x23e2: 0x0001, 0x23e3: 0x0001,
- 0x23e4: 0x0001, 0x23e5: 0x0001, 0x23e6: 0x0001, 0x23e7: 0x0001, 0x23e8: 0x0001, 0x23e9: 0x0003,
- 0x23ea: 0x0001, 0x23eb: 0x0001, 0x23ec: 0x0001, 0x23ed: 0x0001, 0x23ee: 0x0001, 0x23ef: 0x0001,
- 0x23f0: 0x0001, 0x23f1: 0x0001, 0x23f2: 0x0001, 0x23f3: 0x0001, 0x23f4: 0x0001, 0x23f5: 0x0001,
- 0x23f6: 0x0001, 0x23f7: 0x0001, 0x23f8: 0x0001, 0x23f9: 0x0001, 0x23fa: 0x0001, 0x23fb: 0x0001,
- 0x23fc: 0x0001, 0x23fd: 0x0001, 0x23fe: 0x0001, 0x23ff: 0x0001,
- // Block 0x90, offset 0x2400
- 0x2400: 0x0001, 0x2401: 0x0001, 0x2402: 0x0001, 0x2403: 0x0001, 0x2404: 0x0001, 0x2405: 0x0001,
- 0x2406: 0x0001, 0x2407: 0x0001, 0x2408: 0x0001, 0x2409: 0x0001, 0x240a: 0x0001, 0x240b: 0x0001,
- 0x240c: 0x0001, 0x240d: 0x0001, 0x240e: 0x0001, 0x240f: 0x0001, 0x2410: 0x000d, 0x2411: 0x000d,
- 0x2412: 0x000d, 0x2413: 0x000d, 0x2414: 0x000d, 0x2415: 0x000d, 0x2416: 0x000d, 0x2417: 0x000d,
- 0x2418: 0x000d, 0x2419: 0x000d, 0x241a: 0x000d, 0x241b: 0x000d, 0x241c: 0x000d, 0x241d: 0x000d,
- 0x241e: 0x000d, 0x241f: 0x000d, 0x2420: 0x000d, 0x2421: 0x000d, 0x2422: 0x000d, 0x2423: 0x000d,
- 0x2424: 0x000d, 0x2425: 0x000d, 0x2426: 0x000d, 0x2427: 0x000d, 0x2428: 0x000d, 0x2429: 0x000d,
- 0x242a: 0x000d, 0x242b: 0x000d, 0x242c: 0x000d, 0x242d: 0x000d, 0x242e: 0x000d, 0x242f: 0x000d,
- 0x2430: 0x000d, 0x2431: 0x000d, 0x2432: 0x000d, 0x2433: 0x000d, 0x2434: 0x000d, 0x2435: 0x000d,
- 0x2436: 0x000d, 0x2437: 0x000d, 0x2438: 0x000d, 0x2439: 0x000d, 0x243a: 0x000d, 0x243b: 0x000d,
- 0x243c: 0x000d, 0x243d: 0x000d, 0x243e: 0x000d, 0x243f: 0x000d,
- // Block 0x91, offset 0x2440
- 0x2440: 0x000d, 0x2441: 0x000d, 0x2442: 0x000d, 0x2443: 0x000d, 0x2444: 0x000d, 0x2445: 0x000d,
- 0x2446: 0x000d, 0x2447: 0x000d, 0x2448: 0x000d, 0x2449: 0x000d, 0x244a: 0x000d, 0x244b: 0x000d,
- 0x244c: 0x000d, 0x244d: 0x000d, 0x244e: 0x000d, 0x244f: 0x000d, 0x2450: 0x000d, 0x2451: 0x000d,
- 0x2452: 0x000d, 0x2453: 0x000d, 0x2454: 0x000d, 0x2455: 0x000d, 0x2456: 0x000d, 0x2457: 0x000d,
- 0x2458: 0x000d, 0x2459: 0x000d, 0x245a: 0x000d, 0x245b: 0x000d, 0x245c: 0x000d, 0x245d: 0x000d,
- 0x245e: 0x000d, 0x245f: 0x000d, 0x2460: 0x000d, 0x2461: 0x000d, 0x2462: 0x000d, 0x2463: 0x000d,
- 0x2464: 0x000d, 0x2465: 0x000d, 0x2466: 0x000d, 0x2467: 0x000d, 0x2468: 0x000d, 0x2469: 0x000d,
- 0x246a: 0x000d, 0x246b: 0x000d, 0x246c: 0x000d, 0x246d: 0x000d, 0x246e: 0x000d, 0x246f: 0x000d,
- 0x2470: 0x000d, 0x2471: 0x000d, 0x2472: 0x000d, 0x2473: 0x000d, 0x2474: 0x000d, 0x2475: 0x000d,
- 0x2476: 0x000d, 0x2477: 0x000d, 0x2478: 0x000d, 0x2479: 0x000d, 0x247a: 0x000d, 0x247b: 0x000d,
- 0x247c: 0x000d, 0x247d: 0x000d, 0x247e: 0x000a, 0x247f: 0x000a,
- // Block 0x92, offset 0x2480
- 0x2480: 0x000d, 0x2481: 0x000d, 0x2482: 0x000d, 0x2483: 0x000d, 0x2484: 0x000d, 0x2485: 0x000d,
- 0x2486: 0x000d, 0x2487: 0x000d, 0x2488: 0x000d, 0x2489: 0x000d, 0x248a: 0x000d, 0x248b: 0x000d,
- 0x248c: 0x000d, 0x248d: 0x000d, 0x248e: 0x000d, 0x248f: 0x000d, 0x2490: 0x000b, 0x2491: 0x000b,
- 0x2492: 0x000b, 0x2493: 0x000b, 0x2494: 0x000b, 0x2495: 0x000b, 0x2496: 0x000b, 0x2497: 0x000b,
- 0x2498: 0x000b, 0x2499: 0x000b, 0x249a: 0x000b, 0x249b: 0x000b, 0x249c: 0x000b, 0x249d: 0x000b,
- 0x249e: 0x000b, 0x249f: 0x000b, 0x24a0: 0x000b, 0x24a1: 0x000b, 0x24a2: 0x000b, 0x24a3: 0x000b,
- 0x24a4: 0x000b, 0x24a5: 0x000b, 0x24a6: 0x000b, 0x24a7: 0x000b, 0x24a8: 0x000b, 0x24a9: 0x000b,
- 0x24aa: 0x000b, 0x24ab: 0x000b, 0x24ac: 0x000b, 0x24ad: 0x000b, 0x24ae: 0x000b, 0x24af: 0x000b,
- 0x24b0: 0x000d, 0x24b1: 0x000d, 0x24b2: 0x000d, 0x24b3: 0x000d, 0x24b4: 0x000d, 0x24b5: 0x000d,
- 0x24b6: 0x000d, 0x24b7: 0x000d, 0x24b8: 0x000d, 0x24b9: 0x000d, 0x24ba: 0x000d, 0x24bb: 0x000d,
- 0x24bc: 0x000d, 0x24bd: 0x000a, 0x24be: 0x000d, 0x24bf: 0x000d,
- // Block 0x93, offset 0x24c0
- 0x24c0: 0x000c, 0x24c1: 0x000c, 0x24c2: 0x000c, 0x24c3: 0x000c, 0x24c4: 0x000c, 0x24c5: 0x000c,
- 0x24c6: 0x000c, 0x24c7: 0x000c, 0x24c8: 0x000c, 0x24c9: 0x000c, 0x24ca: 0x000c, 0x24cb: 0x000c,
- 0x24cc: 0x000c, 0x24cd: 0x000c, 0x24ce: 0x000c, 0x24cf: 0x000c, 0x24d0: 0x000a, 0x24d1: 0x000a,
- 0x24d2: 0x000a, 0x24d3: 0x000a, 0x24d4: 0x000a, 0x24d5: 0x000a, 0x24d6: 0x000a, 0x24d7: 0x000a,
- 0x24d8: 0x000a, 0x24d9: 0x000a,
- 0x24e0: 0x000c, 0x24e1: 0x000c, 0x24e2: 0x000c, 0x24e3: 0x000c,
- 0x24e4: 0x000c, 0x24e5: 0x000c, 0x24e6: 0x000c, 0x24e7: 0x000c, 0x24e8: 0x000c, 0x24e9: 0x000c,
- 0x24ea: 0x000c, 0x24eb: 0x000c, 0x24ec: 0x000c, 0x24ed: 0x000c, 0x24ee: 0x000c, 0x24ef: 0x000c,
- 0x24f0: 0x000a, 0x24f1: 0x000a, 0x24f2: 0x000a, 0x24f3: 0x000a, 0x24f4: 0x000a, 0x24f5: 0x000a,
- 0x24f6: 0x000a, 0x24f7: 0x000a, 0x24f8: 0x000a, 0x24f9: 0x000a, 0x24fa: 0x000a, 0x24fb: 0x000a,
- 0x24fc: 0x000a, 0x24fd: 0x000a, 0x24fe: 0x000a, 0x24ff: 0x000a,
- // Block 0x94, offset 0x2500
- 0x2500: 0x000a, 0x2501: 0x000a, 0x2502: 0x000a, 0x2503: 0x000a, 0x2504: 0x000a, 0x2505: 0x000a,
- 0x2506: 0x000a, 0x2507: 0x000a, 0x2508: 0x000a, 0x2509: 0x000a, 0x250a: 0x000a, 0x250b: 0x000a,
- 0x250c: 0x000a, 0x250d: 0x000a, 0x250e: 0x000a, 0x250f: 0x000a, 0x2510: 0x0006, 0x2511: 0x000a,
- 0x2512: 0x0006, 0x2514: 0x000a, 0x2515: 0x0006, 0x2516: 0x000a, 0x2517: 0x000a,
- 0x2518: 0x000a, 0x2519: 0x009a, 0x251a: 0x008a, 0x251b: 0x007a, 0x251c: 0x006a, 0x251d: 0x009a,
- 0x251e: 0x008a, 0x251f: 0x0004, 0x2520: 0x000a, 0x2521: 0x000a, 0x2522: 0x0003, 0x2523: 0x0003,
- 0x2524: 0x000a, 0x2525: 0x000a, 0x2526: 0x000a, 0x2528: 0x000a, 0x2529: 0x0004,
- 0x252a: 0x0004, 0x252b: 0x000a,
- 0x2530: 0x000d, 0x2531: 0x000d, 0x2532: 0x000d, 0x2533: 0x000d, 0x2534: 0x000d, 0x2535: 0x000d,
- 0x2536: 0x000d, 0x2537: 0x000d, 0x2538: 0x000d, 0x2539: 0x000d, 0x253a: 0x000d, 0x253b: 0x000d,
- 0x253c: 0x000d, 0x253d: 0x000d, 0x253e: 0x000d, 0x253f: 0x000d,
- // Block 0x95, offset 0x2540
- 0x2540: 0x000d, 0x2541: 0x000d, 0x2542: 0x000d, 0x2543: 0x000d, 0x2544: 0x000d, 0x2545: 0x000d,
- 0x2546: 0x000d, 0x2547: 0x000d, 0x2548: 0x000d, 0x2549: 0x000d, 0x254a: 0x000d, 0x254b: 0x000d,
- 0x254c: 0x000d, 0x254d: 0x000d, 0x254e: 0x000d, 0x254f: 0x000d, 0x2550: 0x000d, 0x2551: 0x000d,
- 0x2552: 0x000d, 0x2553: 0x000d, 0x2554: 0x000d, 0x2555: 0x000d, 0x2556: 0x000d, 0x2557: 0x000d,
- 0x2558: 0x000d, 0x2559: 0x000d, 0x255a: 0x000d, 0x255b: 0x000d, 0x255c: 0x000d, 0x255d: 0x000d,
- 0x255e: 0x000d, 0x255f: 0x000d, 0x2560: 0x000d, 0x2561: 0x000d, 0x2562: 0x000d, 0x2563: 0x000d,
- 0x2564: 0x000d, 0x2565: 0x000d, 0x2566: 0x000d, 0x2567: 0x000d, 0x2568: 0x000d, 0x2569: 0x000d,
- 0x256a: 0x000d, 0x256b: 0x000d, 0x256c: 0x000d, 0x256d: 0x000d, 0x256e: 0x000d, 0x256f: 0x000d,
- 0x2570: 0x000d, 0x2571: 0x000d, 0x2572: 0x000d, 0x2573: 0x000d, 0x2574: 0x000d, 0x2575: 0x000d,
- 0x2576: 0x000d, 0x2577: 0x000d, 0x2578: 0x000d, 0x2579: 0x000d, 0x257a: 0x000d, 0x257b: 0x000d,
- 0x257c: 0x000d, 0x257d: 0x000d, 0x257e: 0x000d, 0x257f: 0x000b,
- // Block 0x96, offset 0x2580
- 0x2581: 0x000a, 0x2582: 0x000a, 0x2583: 0x0004, 0x2584: 0x0004, 0x2585: 0x0004,
- 0x2586: 0x000a, 0x2587: 0x000a, 0x2588: 0x003a, 0x2589: 0x002a, 0x258a: 0x000a, 0x258b: 0x0003,
- 0x258c: 0x0006, 0x258d: 0x0003, 0x258e: 0x0006, 0x258f: 0x0006, 0x2590: 0x0002, 0x2591: 0x0002,
- 0x2592: 0x0002, 0x2593: 0x0002, 0x2594: 0x0002, 0x2595: 0x0002, 0x2596: 0x0002, 0x2597: 0x0002,
- 0x2598: 0x0002, 0x2599: 0x0002, 0x259a: 0x0006, 0x259b: 0x000a, 0x259c: 0x000a, 0x259d: 0x000a,
- 0x259e: 0x000a, 0x259f: 0x000a, 0x25a0: 0x000a,
- 0x25bb: 0x005a,
- 0x25bc: 0x000a, 0x25bd: 0x004a, 0x25be: 0x000a, 0x25bf: 0x000a,
- // Block 0x97, offset 0x25c0
- 0x25c0: 0x000a,
- 0x25db: 0x005a, 0x25dc: 0x000a, 0x25dd: 0x004a,
- 0x25de: 0x000a, 0x25df: 0x00fa, 0x25e0: 0x00ea, 0x25e1: 0x000a, 0x25e2: 0x003a, 0x25e3: 0x002a,
- 0x25e4: 0x000a, 0x25e5: 0x000a,
- // Block 0x98, offset 0x2600
- 0x2620: 0x0004, 0x2621: 0x0004, 0x2622: 0x000a, 0x2623: 0x000a,
- 0x2624: 0x000a, 0x2625: 0x0004, 0x2626: 0x0004, 0x2628: 0x000a, 0x2629: 0x000a,
- 0x262a: 0x000a, 0x262b: 0x000a, 0x262c: 0x000a, 0x262d: 0x000a, 0x262e: 0x000a,
- 0x2630: 0x000b, 0x2631: 0x000b, 0x2632: 0x000b, 0x2633: 0x000b, 0x2634: 0x000b, 0x2635: 0x000b,
- 0x2636: 0x000b, 0x2637: 0x000b, 0x2638: 0x000b, 0x2639: 0x000a, 0x263a: 0x000a, 0x263b: 0x000a,
- 0x263c: 0x000a, 0x263d: 0x000a, 0x263e: 0x000b, 0x263f: 0x000b,
- // Block 0x99, offset 0x2640
- 0x2641: 0x000a,
- // Block 0x9a, offset 0x2680
- 0x2680: 0x000a, 0x2681: 0x000a, 0x2682: 0x000a, 0x2683: 0x000a, 0x2684: 0x000a, 0x2685: 0x000a,
- 0x2686: 0x000a, 0x2687: 0x000a, 0x2688: 0x000a, 0x2689: 0x000a, 0x268a: 0x000a, 0x268b: 0x000a,
- 0x268c: 0x000a, 0x2690: 0x000a, 0x2691: 0x000a,
- 0x2692: 0x000a, 0x2693: 0x000a, 0x2694: 0x000a, 0x2695: 0x000a, 0x2696: 0x000a, 0x2697: 0x000a,
- 0x2698: 0x000a, 0x2699: 0x000a, 0x269a: 0x000a, 0x269b: 0x000a, 0x269c: 0x000a,
- 0x26a0: 0x000a,
- // Block 0x9b, offset 0x26c0
- 0x26fd: 0x000c,
- // Block 0x9c, offset 0x2700
- 0x2720: 0x000c, 0x2721: 0x0002, 0x2722: 0x0002, 0x2723: 0x0002,
- 0x2724: 0x0002, 0x2725: 0x0002, 0x2726: 0x0002, 0x2727: 0x0002, 0x2728: 0x0002, 0x2729: 0x0002,
- 0x272a: 0x0002, 0x272b: 0x0002, 0x272c: 0x0002, 0x272d: 0x0002, 0x272e: 0x0002, 0x272f: 0x0002,
- 0x2730: 0x0002, 0x2731: 0x0002, 0x2732: 0x0002, 0x2733: 0x0002, 0x2734: 0x0002, 0x2735: 0x0002,
- 0x2736: 0x0002, 0x2737: 0x0002, 0x2738: 0x0002, 0x2739: 0x0002, 0x273a: 0x0002, 0x273b: 0x0002,
- // Block 0x9d, offset 0x2740
- 0x2776: 0x000c, 0x2777: 0x000c, 0x2778: 0x000c, 0x2779: 0x000c, 0x277a: 0x000c,
- // Block 0x9e, offset 0x2780
- 0x2780: 0x0001, 0x2781: 0x0001, 0x2782: 0x0001, 0x2783: 0x0001, 0x2784: 0x0001, 0x2785: 0x0001,
- 0x2786: 0x0001, 0x2787: 0x0001, 0x2788: 0x0001, 0x2789: 0x0001, 0x278a: 0x0001, 0x278b: 0x0001,
- 0x278c: 0x0001, 0x278d: 0x0001, 0x278e: 0x0001, 0x278f: 0x0001, 0x2790: 0x0001, 0x2791: 0x0001,
- 0x2792: 0x0001, 0x2793: 0x0001, 0x2794: 0x0001, 0x2795: 0x0001, 0x2796: 0x0001, 0x2797: 0x0001,
- 0x2798: 0x0001, 0x2799: 0x0001, 0x279a: 0x0001, 0x279b: 0x0001, 0x279c: 0x0001, 0x279d: 0x0001,
- 0x279e: 0x0001, 0x279f: 0x0001, 0x27a0: 0x0001, 0x27a1: 0x0001, 0x27a2: 0x0001, 0x27a3: 0x0001,
- 0x27a4: 0x0001, 0x27a5: 0x0001, 0x27a6: 0x0001, 0x27a7: 0x0001, 0x27a8: 0x0001, 0x27a9: 0x0001,
- 0x27aa: 0x0001, 0x27ab: 0x0001, 0x27ac: 0x0001, 0x27ad: 0x0001, 0x27ae: 0x0001, 0x27af: 0x0001,
- 0x27b0: 0x0001, 0x27b1: 0x0001, 0x27b2: 0x0001, 0x27b3: 0x0001, 0x27b4: 0x0001, 0x27b5: 0x0001,
- 0x27b6: 0x0001, 0x27b7: 0x0001, 0x27b8: 0x0001, 0x27b9: 0x0001, 0x27ba: 0x0001, 0x27bb: 0x0001,
- 0x27bc: 0x0001, 0x27bd: 0x0001, 0x27be: 0x0001, 0x27bf: 0x0001,
- // Block 0x9f, offset 0x27c0
- 0x27c0: 0x0001, 0x27c1: 0x0001, 0x27c2: 0x0001, 0x27c3: 0x0001, 0x27c4: 0x0001, 0x27c5: 0x0001,
- 0x27c6: 0x0001, 0x27c7: 0x0001, 0x27c8: 0x0001, 0x27c9: 0x0001, 0x27ca: 0x0001, 0x27cb: 0x0001,
- 0x27cc: 0x0001, 0x27cd: 0x0001, 0x27ce: 0x0001, 0x27cf: 0x0001, 0x27d0: 0x0001, 0x27d1: 0x0001,
- 0x27d2: 0x0001, 0x27d3: 0x0001, 0x27d4: 0x0001, 0x27d5: 0x0001, 0x27d6: 0x0001, 0x27d7: 0x0001,
- 0x27d8: 0x0001, 0x27d9: 0x0001, 0x27da: 0x0001, 0x27db: 0x0001, 0x27dc: 0x0001, 0x27dd: 0x0001,
- 0x27de: 0x0001, 0x27df: 0x000a, 0x27e0: 0x0001, 0x27e1: 0x0001, 0x27e2: 0x0001, 0x27e3: 0x0001,
- 0x27e4: 0x0001, 0x27e5: 0x0001, 0x27e6: 0x0001, 0x27e7: 0x0001, 0x27e8: 0x0001, 0x27e9: 0x0001,
- 0x27ea: 0x0001, 0x27eb: 0x0001, 0x27ec: 0x0001, 0x27ed: 0x0001, 0x27ee: 0x0001, 0x27ef: 0x0001,
- 0x27f0: 0x0001, 0x27f1: 0x0001, 0x27f2: 0x0001, 0x27f3: 0x0001, 0x27f4: 0x0001, 0x27f5: 0x0001,
- 0x27f6: 0x0001, 0x27f7: 0x0001, 0x27f8: 0x0001, 0x27f9: 0x0001, 0x27fa: 0x0001, 0x27fb: 0x0001,
- 0x27fc: 0x0001, 0x27fd: 0x0001, 0x27fe: 0x0001, 0x27ff: 0x0001,
- // Block 0xa0, offset 0x2800
- 0x2800: 0x0001, 0x2801: 0x000c, 0x2802: 0x000c, 0x2803: 0x000c, 0x2804: 0x0001, 0x2805: 0x000c,
- 0x2806: 0x000c, 0x2807: 0x0001, 0x2808: 0x0001, 0x2809: 0x0001, 0x280a: 0x0001, 0x280b: 0x0001,
- 0x280c: 0x000c, 0x280d: 0x000c, 0x280e: 0x000c, 0x280f: 0x000c, 0x2810: 0x0001, 0x2811: 0x0001,
- 0x2812: 0x0001, 0x2813: 0x0001, 0x2814: 0x0001, 0x2815: 0x0001, 0x2816: 0x0001, 0x2817: 0x0001,
- 0x2818: 0x0001, 0x2819: 0x0001, 0x281a: 0x0001, 0x281b: 0x0001, 0x281c: 0x0001, 0x281d: 0x0001,
- 0x281e: 0x0001, 0x281f: 0x0001, 0x2820: 0x0001, 0x2821: 0x0001, 0x2822: 0x0001, 0x2823: 0x0001,
- 0x2824: 0x0001, 0x2825: 0x0001, 0x2826: 0x0001, 0x2827: 0x0001, 0x2828: 0x0001, 0x2829: 0x0001,
- 0x282a: 0x0001, 0x282b: 0x0001, 0x282c: 0x0001, 0x282d: 0x0001, 0x282e: 0x0001, 0x282f: 0x0001,
- 0x2830: 0x0001, 0x2831: 0x0001, 0x2832: 0x0001, 0x2833: 0x0001, 0x2834: 0x0001, 0x2835: 0x0001,
- 0x2836: 0x0001, 0x2837: 0x0001, 0x2838: 0x000c, 0x2839: 0x000c, 0x283a: 0x000c, 0x283b: 0x0001,
- 0x283c: 0x0001, 0x283d: 0x0001, 0x283e: 0x0001, 0x283f: 0x000c,
- // Block 0xa1, offset 0x2840
- 0x2840: 0x0001, 0x2841: 0x0001, 0x2842: 0x0001, 0x2843: 0x0001, 0x2844: 0x0001, 0x2845: 0x0001,
- 0x2846: 0x0001, 0x2847: 0x0001, 0x2848: 0x0001, 0x2849: 0x0001, 0x284a: 0x0001, 0x284b: 0x0001,
- 0x284c: 0x0001, 0x284d: 0x0001, 0x284e: 0x0001, 0x284f: 0x0001, 0x2850: 0x0001, 0x2851: 0x0001,
- 0x2852: 0x0001, 0x2853: 0x0001, 0x2854: 0x0001, 0x2855: 0x0001, 0x2856: 0x0001, 0x2857: 0x0001,
- 0x2858: 0x0001, 0x2859: 0x0001, 0x285a: 0x0001, 0x285b: 0x0001, 0x285c: 0x0001, 0x285d: 0x0001,
- 0x285e: 0x0001, 0x285f: 0x0001, 0x2860: 0x0001, 0x2861: 0x0001, 0x2862: 0x0001, 0x2863: 0x0001,
- 0x2864: 0x0001, 0x2865: 0x000c, 0x2866: 0x000c, 0x2867: 0x0001, 0x2868: 0x0001, 0x2869: 0x0001,
- 0x286a: 0x0001, 0x286b: 0x0001, 0x286c: 0x0001, 0x286d: 0x0001, 0x286e: 0x0001, 0x286f: 0x0001,
- 0x2870: 0x0001, 0x2871: 0x0001, 0x2872: 0x0001, 0x2873: 0x0001, 0x2874: 0x0001, 0x2875: 0x0001,
- 0x2876: 0x0001, 0x2877: 0x0001, 0x2878: 0x0001, 0x2879: 0x0001, 0x287a: 0x0001, 0x287b: 0x0001,
- 0x287c: 0x0001, 0x287d: 0x0001, 0x287e: 0x0001, 0x287f: 0x0001,
- // Block 0xa2, offset 0x2880
- 0x2880: 0x0001, 0x2881: 0x0001, 0x2882: 0x0001, 0x2883: 0x0001, 0x2884: 0x0001, 0x2885: 0x0001,
- 0x2886: 0x0001, 0x2887: 0x0001, 0x2888: 0x0001, 0x2889: 0x0001, 0x288a: 0x0001, 0x288b: 0x0001,
- 0x288c: 0x0001, 0x288d: 0x0001, 0x288e: 0x0001, 0x288f: 0x0001, 0x2890: 0x0001, 0x2891: 0x0001,
- 0x2892: 0x0001, 0x2893: 0x0001, 0x2894: 0x0001, 0x2895: 0x0001, 0x2896: 0x0001, 0x2897: 0x0001,
- 0x2898: 0x0001, 0x2899: 0x0001, 0x289a: 0x0001, 0x289b: 0x0001, 0x289c: 0x0001, 0x289d: 0x0001,
- 0x289e: 0x0001, 0x289f: 0x0001, 0x28a0: 0x0001, 0x28a1: 0x0001, 0x28a2: 0x0001, 0x28a3: 0x0001,
- 0x28a4: 0x0001, 0x28a5: 0x0001, 0x28a6: 0x0001, 0x28a7: 0x0001, 0x28a8: 0x0001, 0x28a9: 0x0001,
- 0x28aa: 0x0001, 0x28ab: 0x0001, 0x28ac: 0x0001, 0x28ad: 0x0001, 0x28ae: 0x0001, 0x28af: 0x0001,
- 0x28b0: 0x0001, 0x28b1: 0x0001, 0x28b2: 0x0001, 0x28b3: 0x0001, 0x28b4: 0x0001, 0x28b5: 0x0001,
- 0x28b6: 0x0001, 0x28b7: 0x0001, 0x28b8: 0x0001, 0x28b9: 0x000a, 0x28ba: 0x000a, 0x28bb: 0x000a,
- 0x28bc: 0x000a, 0x28bd: 0x000a, 0x28be: 0x000a, 0x28bf: 0x000a,
- // Block 0xa3, offset 0x28c0
- 0x28c0: 0x000d, 0x28c1: 0x000d, 0x28c2: 0x000d, 0x28c3: 0x000d, 0x28c4: 0x000d, 0x28c5: 0x000d,
- 0x28c6: 0x000d, 0x28c7: 0x000d, 0x28c8: 0x000d, 0x28c9: 0x000d, 0x28ca: 0x000d, 0x28cb: 0x000d,
- 0x28cc: 0x000d, 0x28cd: 0x000d, 0x28ce: 0x000d, 0x28cf: 0x000d, 0x28d0: 0x000d, 0x28d1: 0x000d,
- 0x28d2: 0x000d, 0x28d3: 0x000d, 0x28d4: 0x000d, 0x28d5: 0x000d, 0x28d6: 0x000d, 0x28d7: 0x000d,
- 0x28d8: 0x000d, 0x28d9: 0x000d, 0x28da: 0x000d, 0x28db: 0x000d, 0x28dc: 0x000d, 0x28dd: 0x000d,
- 0x28de: 0x000d, 0x28df: 0x000d, 0x28e0: 0x000d, 0x28e1: 0x000d, 0x28e2: 0x000d, 0x28e3: 0x000d,
- 0x28e4: 0x000c, 0x28e5: 0x000c, 0x28e6: 0x000c, 0x28e7: 0x000c, 0x28e8: 0x000d, 0x28e9: 0x000d,
- 0x28ea: 0x000d, 0x28eb: 0x000d, 0x28ec: 0x000d, 0x28ed: 0x000d, 0x28ee: 0x000d, 0x28ef: 0x000d,
- 0x28f0: 0x0005, 0x28f1: 0x0005, 0x28f2: 0x0005, 0x28f3: 0x0005, 0x28f4: 0x0005, 0x28f5: 0x0005,
- 0x28f6: 0x0005, 0x28f7: 0x0005, 0x28f8: 0x0005, 0x28f9: 0x0005, 0x28fa: 0x000d, 0x28fb: 0x000d,
- 0x28fc: 0x000d, 0x28fd: 0x000d, 0x28fe: 0x000d, 0x28ff: 0x000d,
- // Block 0xa4, offset 0x2900
- 0x2900: 0x0001, 0x2901: 0x0001, 0x2902: 0x0001, 0x2903: 0x0001, 0x2904: 0x0001, 0x2905: 0x0001,
- 0x2906: 0x0001, 0x2907: 0x0001, 0x2908: 0x0001, 0x2909: 0x0001, 0x290a: 0x0001, 0x290b: 0x0001,
- 0x290c: 0x0001, 0x290d: 0x0001, 0x290e: 0x0001, 0x290f: 0x0001, 0x2910: 0x0001, 0x2911: 0x0001,
- 0x2912: 0x0001, 0x2913: 0x0001, 0x2914: 0x0001, 0x2915: 0x0001, 0x2916: 0x0001, 0x2917: 0x0001,
- 0x2918: 0x0001, 0x2919: 0x0001, 0x291a: 0x0001, 0x291b: 0x0001, 0x291c: 0x0001, 0x291d: 0x0001,
- 0x291e: 0x0001, 0x291f: 0x0001, 0x2920: 0x0005, 0x2921: 0x0005, 0x2922: 0x0005, 0x2923: 0x0005,
- 0x2924: 0x0005, 0x2925: 0x0005, 0x2926: 0x0005, 0x2927: 0x0005, 0x2928: 0x0005, 0x2929: 0x0005,
- 0x292a: 0x0005, 0x292b: 0x0005, 0x292c: 0x0005, 0x292d: 0x0005, 0x292e: 0x0005, 0x292f: 0x0005,
- 0x2930: 0x0005, 0x2931: 0x0005, 0x2932: 0x0005, 0x2933: 0x0005, 0x2934: 0x0005, 0x2935: 0x0005,
- 0x2936: 0x0005, 0x2937: 0x0005, 0x2938: 0x0005, 0x2939: 0x0005, 0x293a: 0x0005, 0x293b: 0x0005,
- 0x293c: 0x0005, 0x293d: 0x0005, 0x293e: 0x0005, 0x293f: 0x0001,
- // Block 0xa5, offset 0x2940
- 0x2940: 0x0001, 0x2941: 0x0001, 0x2942: 0x0001, 0x2943: 0x0001, 0x2944: 0x0001, 0x2945: 0x0001,
- 0x2946: 0x0001, 0x2947: 0x0001, 0x2948: 0x0001, 0x2949: 0x0001, 0x294a: 0x0001, 0x294b: 0x0001,
- 0x294c: 0x0001, 0x294d: 0x0001, 0x294e: 0x0001, 0x294f: 0x0001, 0x2950: 0x0001, 0x2951: 0x0001,
- 0x2952: 0x0001, 0x2953: 0x0001, 0x2954: 0x0001, 0x2955: 0x0001, 0x2956: 0x0001, 0x2957: 0x0001,
- 0x2958: 0x0001, 0x2959: 0x0001, 0x295a: 0x0001, 0x295b: 0x0001, 0x295c: 0x0001, 0x295d: 0x0001,
- 0x295e: 0x0001, 0x295f: 0x0001, 0x2960: 0x0001, 0x2961: 0x0001, 0x2962: 0x0001, 0x2963: 0x0001,
- 0x2964: 0x0001, 0x2965: 0x0001, 0x2966: 0x0001, 0x2967: 0x0001, 0x2968: 0x0001, 0x2969: 0x0001,
- 0x296a: 0x0001, 0x296b: 0x000c, 0x296c: 0x000c, 0x296d: 0x0001, 0x296e: 0x0001, 0x296f: 0x0001,
- 0x2970: 0x0001, 0x2971: 0x0001, 0x2972: 0x0001, 0x2973: 0x0001, 0x2974: 0x0001, 0x2975: 0x0001,
- 0x2976: 0x0001, 0x2977: 0x0001, 0x2978: 0x0001, 0x2979: 0x0001, 0x297a: 0x0001, 0x297b: 0x0001,
- 0x297c: 0x0001, 0x297d: 0x0001, 0x297e: 0x0001, 0x297f: 0x0001,
- // Block 0xa6, offset 0x2980
- 0x2980: 0x0001, 0x2981: 0x0001, 0x2982: 0x0001, 0x2983: 0x0001, 0x2984: 0x0001, 0x2985: 0x0001,
- 0x2986: 0x0001, 0x2987: 0x0001, 0x2988: 0x0001, 0x2989: 0x0001, 0x298a: 0x0001, 0x298b: 0x0001,
- 0x298c: 0x0001, 0x298d: 0x0001, 0x298e: 0x0001, 0x298f: 0x0001, 0x2990: 0x0001, 0x2991: 0x0001,
- 0x2992: 0x0001, 0x2993: 0x0001, 0x2994: 0x0001, 0x2995: 0x0001, 0x2996: 0x0001, 0x2997: 0x0001,
- 0x2998: 0x0001, 0x2999: 0x0001, 0x299a: 0x0001, 0x299b: 0x0001, 0x299c: 0x0001, 0x299d: 0x0001,
- 0x299e: 0x0001, 0x299f: 0x0001, 0x29a0: 0x0001, 0x29a1: 0x0001, 0x29a2: 0x0001, 0x29a3: 0x0001,
- 0x29a4: 0x0001, 0x29a5: 0x0001, 0x29a6: 0x0001, 0x29a7: 0x0001, 0x29a8: 0x0001, 0x29a9: 0x0001,
- 0x29aa: 0x0001, 0x29ab: 0x0001, 0x29ac: 0x0001, 0x29ad: 0x0001, 0x29ae: 0x0001, 0x29af: 0x0001,
- 0x29b0: 0x000d, 0x29b1: 0x000d, 0x29b2: 0x000d, 0x29b3: 0x000d, 0x29b4: 0x000d, 0x29b5: 0x000d,
- 0x29b6: 0x000d, 0x29b7: 0x000d, 0x29b8: 0x000d, 0x29b9: 0x000d, 0x29ba: 0x000d, 0x29bb: 0x000d,
- 0x29bc: 0x000d, 0x29bd: 0x000d, 0x29be: 0x000d, 0x29bf: 0x000d,
- // Block 0xa7, offset 0x29c0
- 0x29c0: 0x000d, 0x29c1: 0x000d, 0x29c2: 0x000d, 0x29c3: 0x000d, 0x29c4: 0x000d, 0x29c5: 0x000d,
- 0x29c6: 0x000c, 0x29c7: 0x000c, 0x29c8: 0x000c, 0x29c9: 0x000c, 0x29ca: 0x000c, 0x29cb: 0x000c,
- 0x29cc: 0x000c, 0x29cd: 0x000c, 0x29ce: 0x000c, 0x29cf: 0x000c, 0x29d0: 0x000c, 0x29d1: 0x000d,
- 0x29d2: 0x000d, 0x29d3: 0x000d, 0x29d4: 0x000d, 0x29d5: 0x000d, 0x29d6: 0x000d, 0x29d7: 0x000d,
- 0x29d8: 0x000d, 0x29d9: 0x000d, 0x29da: 0x000d, 0x29db: 0x000d, 0x29dc: 0x000d, 0x29dd: 0x000d,
- 0x29de: 0x000d, 0x29df: 0x000d, 0x29e0: 0x000d, 0x29e1: 0x000d, 0x29e2: 0x000d, 0x29e3: 0x000d,
- 0x29e4: 0x000d, 0x29e5: 0x000d, 0x29e6: 0x000d, 0x29e7: 0x000d, 0x29e8: 0x000d, 0x29e9: 0x000d,
- 0x29ea: 0x000d, 0x29eb: 0x000d, 0x29ec: 0x000d, 0x29ed: 0x000d, 0x29ee: 0x000d, 0x29ef: 0x000d,
- 0x29f0: 0x0001, 0x29f1: 0x0001, 0x29f2: 0x0001, 0x29f3: 0x0001, 0x29f4: 0x0001, 0x29f5: 0x0001,
- 0x29f6: 0x0001, 0x29f7: 0x0001, 0x29f8: 0x0001, 0x29f9: 0x0001, 0x29fa: 0x0001, 0x29fb: 0x0001,
- 0x29fc: 0x0001, 0x29fd: 0x0001, 0x29fe: 0x0001, 0x29ff: 0x0001,
- // Block 0xa8, offset 0x2a00
- 0x2a01: 0x000c,
- 0x2a38: 0x000c, 0x2a39: 0x000c, 0x2a3a: 0x000c, 0x2a3b: 0x000c,
- 0x2a3c: 0x000c, 0x2a3d: 0x000c, 0x2a3e: 0x000c, 0x2a3f: 0x000c,
- // Block 0xa9, offset 0x2a40
- 0x2a40: 0x000c, 0x2a41: 0x000c, 0x2a42: 0x000c, 0x2a43: 0x000c, 0x2a44: 0x000c, 0x2a45: 0x000c,
- 0x2a46: 0x000c,
- 0x2a52: 0x000a, 0x2a53: 0x000a, 0x2a54: 0x000a, 0x2a55: 0x000a, 0x2a56: 0x000a, 0x2a57: 0x000a,
- 0x2a58: 0x000a, 0x2a59: 0x000a, 0x2a5a: 0x000a, 0x2a5b: 0x000a, 0x2a5c: 0x000a, 0x2a5d: 0x000a,
- 0x2a5e: 0x000a, 0x2a5f: 0x000a, 0x2a60: 0x000a, 0x2a61: 0x000a, 0x2a62: 0x000a, 0x2a63: 0x000a,
- 0x2a64: 0x000a, 0x2a65: 0x000a,
- 0x2a7f: 0x000c,
- // Block 0xaa, offset 0x2a80
- 0x2a80: 0x000c, 0x2a81: 0x000c,
- 0x2ab3: 0x000c, 0x2ab4: 0x000c, 0x2ab5: 0x000c,
- 0x2ab6: 0x000c, 0x2ab9: 0x000c, 0x2aba: 0x000c,
- // Block 0xab, offset 0x2ac0
- 0x2ac0: 0x000c, 0x2ac1: 0x000c, 0x2ac2: 0x000c,
- 0x2ae7: 0x000c, 0x2ae8: 0x000c, 0x2ae9: 0x000c,
- 0x2aea: 0x000c, 0x2aeb: 0x000c, 0x2aed: 0x000c, 0x2aee: 0x000c, 0x2aef: 0x000c,
- 0x2af0: 0x000c, 0x2af1: 0x000c, 0x2af2: 0x000c, 0x2af3: 0x000c, 0x2af4: 0x000c,
- // Block 0xac, offset 0x2b00
- 0x2b33: 0x000c,
- // Block 0xad, offset 0x2b40
- 0x2b40: 0x000c, 0x2b41: 0x000c,
- 0x2b76: 0x000c, 0x2b77: 0x000c, 0x2b78: 0x000c, 0x2b79: 0x000c, 0x2b7a: 0x000c, 0x2b7b: 0x000c,
- 0x2b7c: 0x000c, 0x2b7d: 0x000c, 0x2b7e: 0x000c,
- // Block 0xae, offset 0x2b80
- 0x2b89: 0x000c, 0x2b8a: 0x000c, 0x2b8b: 0x000c,
- 0x2b8c: 0x000c, 0x2b8f: 0x000c,
- // Block 0xaf, offset 0x2bc0
- 0x2bef: 0x000c,
- 0x2bf0: 0x000c, 0x2bf1: 0x000c, 0x2bf4: 0x000c,
- 0x2bf6: 0x000c, 0x2bf7: 0x000c,
- 0x2bfe: 0x000c,
- // Block 0xb0, offset 0x2c00
- 0x2c1f: 0x000c, 0x2c23: 0x000c,
- 0x2c24: 0x000c, 0x2c25: 0x000c, 0x2c26: 0x000c, 0x2c27: 0x000c, 0x2c28: 0x000c, 0x2c29: 0x000c,
- 0x2c2a: 0x000c,
- // Block 0xb1, offset 0x2c40
- 0x2c40: 0x000c,
- 0x2c66: 0x000c, 0x2c67: 0x000c, 0x2c68: 0x000c, 0x2c69: 0x000c,
- 0x2c6a: 0x000c, 0x2c6b: 0x000c, 0x2c6c: 0x000c,
- 0x2c70: 0x000c, 0x2c71: 0x000c, 0x2c72: 0x000c, 0x2c73: 0x000c, 0x2c74: 0x000c,
- // Block 0xb2, offset 0x2c80
- 0x2cb8: 0x000c, 0x2cb9: 0x000c, 0x2cba: 0x000c, 0x2cbb: 0x000c,
- 0x2cbc: 0x000c, 0x2cbd: 0x000c, 0x2cbe: 0x000c, 0x2cbf: 0x000c,
- // Block 0xb3, offset 0x2cc0
- 0x2cc2: 0x000c, 0x2cc3: 0x000c, 0x2cc4: 0x000c,
- 0x2cc6: 0x000c,
- 0x2cde: 0x000c,
- // Block 0xb4, offset 0x2d00
- 0x2d33: 0x000c, 0x2d34: 0x000c, 0x2d35: 0x000c,
- 0x2d36: 0x000c, 0x2d37: 0x000c, 0x2d38: 0x000c, 0x2d3a: 0x000c,
- 0x2d3f: 0x000c,
- // Block 0xb5, offset 0x2d40
- 0x2d40: 0x000c, 0x2d42: 0x000c, 0x2d43: 0x000c,
- // Block 0xb6, offset 0x2d80
- 0x2db2: 0x000c, 0x2db3: 0x000c, 0x2db4: 0x000c, 0x2db5: 0x000c,
- 0x2dbc: 0x000c, 0x2dbd: 0x000c, 0x2dbf: 0x000c,
- // Block 0xb7, offset 0x2dc0
- 0x2dc0: 0x000c,
- 0x2ddc: 0x000c, 0x2ddd: 0x000c,
- // Block 0xb8, offset 0x2e00
- 0x2e33: 0x000c, 0x2e34: 0x000c, 0x2e35: 0x000c,
- 0x2e36: 0x000c, 0x2e37: 0x000c, 0x2e38: 0x000c, 0x2e39: 0x000c, 0x2e3a: 0x000c,
- 0x2e3d: 0x000c, 0x2e3f: 0x000c,
- // Block 0xb9, offset 0x2e40
- 0x2e40: 0x000c,
- 0x2e60: 0x000a, 0x2e61: 0x000a, 0x2e62: 0x000a, 0x2e63: 0x000a,
- 0x2e64: 0x000a, 0x2e65: 0x000a, 0x2e66: 0x000a, 0x2e67: 0x000a, 0x2e68: 0x000a, 0x2e69: 0x000a,
- 0x2e6a: 0x000a, 0x2e6b: 0x000a, 0x2e6c: 0x000a,
- // Block 0xba, offset 0x2e80
- 0x2eab: 0x000c, 0x2ead: 0x000c,
- 0x2eb0: 0x000c, 0x2eb1: 0x000c, 0x2eb2: 0x000c, 0x2eb3: 0x000c, 0x2eb4: 0x000c, 0x2eb5: 0x000c,
- 0x2eb7: 0x000c,
- // Block 0xbb, offset 0x2ec0
- 0x2edd: 0x000c,
- 0x2ede: 0x000c, 0x2edf: 0x000c, 0x2ee2: 0x000c, 0x2ee3: 0x000c,
- 0x2ee4: 0x000c, 0x2ee5: 0x000c, 0x2ee7: 0x000c, 0x2ee8: 0x000c, 0x2ee9: 0x000c,
- 0x2eea: 0x000c, 0x2eeb: 0x000c,
- // Block 0xbc, offset 0x2f00
- 0x2f2f: 0x000c,
- 0x2f30: 0x000c, 0x2f31: 0x000c, 0x2f32: 0x000c, 0x2f33: 0x000c, 0x2f34: 0x000c, 0x2f35: 0x000c,
- 0x2f36: 0x000c, 0x2f37: 0x000c, 0x2f39: 0x000c, 0x2f3a: 0x000c,
- // Block 0xbd, offset 0x2f40
- 0x2f7b: 0x000c,
- 0x2f7c: 0x000c, 0x2f7e: 0x000c,
- // Block 0xbe, offset 0x2f80
- 0x2f83: 0x000c,
- // Block 0xbf, offset 0x2fc0
- 0x2fd4: 0x000c, 0x2fd5: 0x000c, 0x2fd6: 0x000c, 0x2fd7: 0x000c,
- 0x2fda: 0x000c, 0x2fdb: 0x000c,
- 0x2fe0: 0x000c,
- // Block 0xc0, offset 0x3000
- 0x3001: 0x000c, 0x3002: 0x000c, 0x3003: 0x000c, 0x3004: 0x000c, 0x3005: 0x000c,
- 0x3006: 0x000c, 0x3009: 0x000c, 0x300a: 0x000c,
- 0x3033: 0x000c, 0x3034: 0x000c, 0x3035: 0x000c,
- 0x3036: 0x000c, 0x3037: 0x000c, 0x3038: 0x000c, 0x303b: 0x000c,
- 0x303c: 0x000c, 0x303d: 0x000c, 0x303e: 0x000c,
- // Block 0xc1, offset 0x3040
- 0x3047: 0x000c,
- 0x3051: 0x000c,
- 0x3052: 0x000c, 0x3053: 0x000c, 0x3054: 0x000c, 0x3055: 0x000c, 0x3056: 0x000c,
- 0x3059: 0x000c, 0x305a: 0x000c, 0x305b: 0x000c,
- // Block 0xc2, offset 0x3080
- 0x308a: 0x000c, 0x308b: 0x000c,
- 0x308c: 0x000c, 0x308d: 0x000c, 0x308e: 0x000c, 0x308f: 0x000c, 0x3090: 0x000c, 0x3091: 0x000c,
- 0x3092: 0x000c, 0x3093: 0x000c, 0x3094: 0x000c, 0x3095: 0x000c, 0x3096: 0x000c,
- 0x3098: 0x000c, 0x3099: 0x000c,
- // Block 0xc3, offset 0x30c0
- 0x30f0: 0x000c, 0x30f1: 0x000c, 0x30f2: 0x000c, 0x30f3: 0x000c, 0x30f4: 0x000c, 0x30f5: 0x000c,
- 0x30f6: 0x000c, 0x30f8: 0x000c, 0x30f9: 0x000c, 0x30fa: 0x000c, 0x30fb: 0x000c,
- 0x30fc: 0x000c, 0x30fd: 0x000c,
- // Block 0xc4, offset 0x3100
- 0x3112: 0x000c, 0x3113: 0x000c, 0x3114: 0x000c, 0x3115: 0x000c, 0x3116: 0x000c, 0x3117: 0x000c,
- 0x3118: 0x000c, 0x3119: 0x000c, 0x311a: 0x000c, 0x311b: 0x000c, 0x311c: 0x000c, 0x311d: 0x000c,
- 0x311e: 0x000c, 0x311f: 0x000c, 0x3120: 0x000c, 0x3121: 0x000c, 0x3122: 0x000c, 0x3123: 0x000c,
- 0x3124: 0x000c, 0x3125: 0x000c, 0x3126: 0x000c, 0x3127: 0x000c,
- 0x312a: 0x000c, 0x312b: 0x000c, 0x312c: 0x000c, 0x312d: 0x000c, 0x312e: 0x000c, 0x312f: 0x000c,
- 0x3130: 0x000c, 0x3132: 0x000c, 0x3133: 0x000c, 0x3135: 0x000c,
- 0x3136: 0x000c,
- // Block 0xc5, offset 0x3140
- 0x3171: 0x000c, 0x3172: 0x000c, 0x3173: 0x000c, 0x3174: 0x000c, 0x3175: 0x000c,
- 0x3176: 0x000c, 0x317a: 0x000c,
- 0x317c: 0x000c, 0x317d: 0x000c, 0x317f: 0x000c,
- // Block 0xc6, offset 0x3180
- 0x3180: 0x000c, 0x3181: 0x000c, 0x3182: 0x000c, 0x3183: 0x000c, 0x3184: 0x000c, 0x3185: 0x000c,
- 0x3187: 0x000c,
- // Block 0xc7, offset 0x31c0
- 0x31d0: 0x000c, 0x31d1: 0x000c,
- 0x31d5: 0x000c, 0x31d7: 0x000c,
- // Block 0xc8, offset 0x3200
- 0x3233: 0x000c, 0x3234: 0x000c,
- // Block 0xc9, offset 0x3240
- 0x3255: 0x000a, 0x3256: 0x000a, 0x3257: 0x000a,
- 0x3258: 0x000a, 0x3259: 0x000a, 0x325a: 0x000a, 0x325b: 0x000a, 0x325c: 0x000a, 0x325d: 0x0004,
- 0x325e: 0x0004, 0x325f: 0x0004, 0x3260: 0x0004, 0x3261: 0x000a, 0x3262: 0x000a, 0x3263: 0x000a,
- 0x3264: 0x000a, 0x3265: 0x000a, 0x3266: 0x000a, 0x3267: 0x000a, 0x3268: 0x000a, 0x3269: 0x000a,
- 0x326a: 0x000a, 0x326b: 0x000a, 0x326c: 0x000a, 0x326d: 0x000a, 0x326e: 0x000a, 0x326f: 0x000a,
- 0x3270: 0x000a, 0x3271: 0x000a,
- // Block 0xca, offset 0x3280
- 0x32b0: 0x000c, 0x32b1: 0x000c, 0x32b2: 0x000c, 0x32b3: 0x000c, 0x32b4: 0x000c,
- // Block 0xcb, offset 0x32c0
- 0x32f0: 0x000c, 0x32f1: 0x000c, 0x32f2: 0x000c, 0x32f3: 0x000c, 0x32f4: 0x000c, 0x32f5: 0x000c,
- 0x32f6: 0x000c,
- // Block 0xcc, offset 0x3300
- 0x330f: 0x000c,
- // Block 0xcd, offset 0x3340
- 0x334f: 0x000c, 0x3350: 0x000c, 0x3351: 0x000c,
- 0x3352: 0x000c,
- // Block 0xce, offset 0x3380
- 0x33a2: 0x000a,
- 0x33a4: 0x000c,
- // Block 0xcf, offset 0x33c0
- 0x33dd: 0x000c,
- 0x33de: 0x000c, 0x33e0: 0x000b, 0x33e1: 0x000b, 0x33e2: 0x000b, 0x33e3: 0x000b,
- // Block 0xd0, offset 0x3400
- 0x3427: 0x000c, 0x3428: 0x000c, 0x3429: 0x000c,
- 0x3433: 0x000b, 0x3434: 0x000b, 0x3435: 0x000b,
- 0x3436: 0x000b, 0x3437: 0x000b, 0x3438: 0x000b, 0x3439: 0x000b, 0x343a: 0x000b, 0x343b: 0x000c,
- 0x343c: 0x000c, 0x343d: 0x000c, 0x343e: 0x000c, 0x343f: 0x000c,
- // Block 0xd1, offset 0x3440
- 0x3440: 0x000c, 0x3441: 0x000c, 0x3442: 0x000c, 0x3445: 0x000c,
- 0x3446: 0x000c, 0x3447: 0x000c, 0x3448: 0x000c, 0x3449: 0x000c, 0x344a: 0x000c, 0x344b: 0x000c,
- 0x346a: 0x000c, 0x346b: 0x000c, 0x346c: 0x000c, 0x346d: 0x000c,
- // Block 0xd2, offset 0x3480
- 0x3480: 0x000a, 0x3481: 0x000a, 0x3482: 0x000c, 0x3483: 0x000c, 0x3484: 0x000c, 0x3485: 0x000a,
- // Block 0xd3, offset 0x34c0
- 0x34c0: 0x000a, 0x34c1: 0x000a, 0x34c2: 0x000a, 0x34c3: 0x000a, 0x34c4: 0x000a, 0x34c5: 0x000a,
- 0x34c6: 0x000a, 0x34c7: 0x000a, 0x34c8: 0x000a, 0x34c9: 0x000a, 0x34ca: 0x000a, 0x34cb: 0x000a,
- 0x34cc: 0x000a, 0x34cd: 0x000a, 0x34ce: 0x000a, 0x34cf: 0x000a, 0x34d0: 0x000a, 0x34d1: 0x000a,
- 0x34d2: 0x000a, 0x34d3: 0x000a, 0x34d4: 0x000a, 0x34d5: 0x000a, 0x34d6: 0x000a,
- // Block 0xd4, offset 0x3500
- 0x351b: 0x000a,
- // Block 0xd5, offset 0x3540
- 0x3555: 0x000a,
- // Block 0xd6, offset 0x3580
- 0x358f: 0x000a,
- // Block 0xd7, offset 0x35c0
- 0x35c9: 0x000a,
- // Block 0xd8, offset 0x3600
- 0x3603: 0x000a,
- 0x360e: 0x0002, 0x360f: 0x0002, 0x3610: 0x0002, 0x3611: 0x0002,
- 0x3612: 0x0002, 0x3613: 0x0002, 0x3614: 0x0002, 0x3615: 0x0002, 0x3616: 0x0002, 0x3617: 0x0002,
- 0x3618: 0x0002, 0x3619: 0x0002, 0x361a: 0x0002, 0x361b: 0x0002, 0x361c: 0x0002, 0x361d: 0x0002,
- 0x361e: 0x0002, 0x361f: 0x0002, 0x3620: 0x0002, 0x3621: 0x0002, 0x3622: 0x0002, 0x3623: 0x0002,
- 0x3624: 0x0002, 0x3625: 0x0002, 0x3626: 0x0002, 0x3627: 0x0002, 0x3628: 0x0002, 0x3629: 0x0002,
- 0x362a: 0x0002, 0x362b: 0x0002, 0x362c: 0x0002, 0x362d: 0x0002, 0x362e: 0x0002, 0x362f: 0x0002,
- 0x3630: 0x0002, 0x3631: 0x0002, 0x3632: 0x0002, 0x3633: 0x0002, 0x3634: 0x0002, 0x3635: 0x0002,
- 0x3636: 0x0002, 0x3637: 0x0002, 0x3638: 0x0002, 0x3639: 0x0002, 0x363a: 0x0002, 0x363b: 0x0002,
- 0x363c: 0x0002, 0x363d: 0x0002, 0x363e: 0x0002, 0x363f: 0x0002,
- // Block 0xd9, offset 0x3640
- 0x3640: 0x000c, 0x3641: 0x000c, 0x3642: 0x000c, 0x3643: 0x000c, 0x3644: 0x000c, 0x3645: 0x000c,
- 0x3646: 0x000c, 0x3647: 0x000c, 0x3648: 0x000c, 0x3649: 0x000c, 0x364a: 0x000c, 0x364b: 0x000c,
- 0x364c: 0x000c, 0x364d: 0x000c, 0x364e: 0x000c, 0x364f: 0x000c, 0x3650: 0x000c, 0x3651: 0x000c,
- 0x3652: 0x000c, 0x3653: 0x000c, 0x3654: 0x000c, 0x3655: 0x000c, 0x3656: 0x000c, 0x3657: 0x000c,
- 0x3658: 0x000c, 0x3659: 0x000c, 0x365a: 0x000c, 0x365b: 0x000c, 0x365c: 0x000c, 0x365d: 0x000c,
- 0x365e: 0x000c, 0x365f: 0x000c, 0x3660: 0x000c, 0x3661: 0x000c, 0x3662: 0x000c, 0x3663: 0x000c,
- 0x3664: 0x000c, 0x3665: 0x000c, 0x3666: 0x000c, 0x3667: 0x000c, 0x3668: 0x000c, 0x3669: 0x000c,
- 0x366a: 0x000c, 0x366b: 0x000c, 0x366c: 0x000c, 0x366d: 0x000c, 0x366e: 0x000c, 0x366f: 0x000c,
- 0x3670: 0x000c, 0x3671: 0x000c, 0x3672: 0x000c, 0x3673: 0x000c, 0x3674: 0x000c, 0x3675: 0x000c,
- 0x3676: 0x000c, 0x367b: 0x000c,
- 0x367c: 0x000c, 0x367d: 0x000c, 0x367e: 0x000c, 0x367f: 0x000c,
- // Block 0xda, offset 0x3680
- 0x3680: 0x000c, 0x3681: 0x000c, 0x3682: 0x000c, 0x3683: 0x000c, 0x3684: 0x000c, 0x3685: 0x000c,
- 0x3686: 0x000c, 0x3687: 0x000c, 0x3688: 0x000c, 0x3689: 0x000c, 0x368a: 0x000c, 0x368b: 0x000c,
- 0x368c: 0x000c, 0x368d: 0x000c, 0x368e: 0x000c, 0x368f: 0x000c, 0x3690: 0x000c, 0x3691: 0x000c,
- 0x3692: 0x000c, 0x3693: 0x000c, 0x3694: 0x000c, 0x3695: 0x000c, 0x3696: 0x000c, 0x3697: 0x000c,
- 0x3698: 0x000c, 0x3699: 0x000c, 0x369a: 0x000c, 0x369b: 0x000c, 0x369c: 0x000c, 0x369d: 0x000c,
- 0x369e: 0x000c, 0x369f: 0x000c, 0x36a0: 0x000c, 0x36a1: 0x000c, 0x36a2: 0x000c, 0x36a3: 0x000c,
- 0x36a4: 0x000c, 0x36a5: 0x000c, 0x36a6: 0x000c, 0x36a7: 0x000c, 0x36a8: 0x000c, 0x36a9: 0x000c,
- 0x36aa: 0x000c, 0x36ab: 0x000c, 0x36ac: 0x000c,
- 0x36b5: 0x000c,
- // Block 0xdb, offset 0x36c0
- 0x36c4: 0x000c,
- 0x36db: 0x000c, 0x36dc: 0x000c, 0x36dd: 0x000c,
- 0x36de: 0x000c, 0x36df: 0x000c, 0x36e1: 0x000c, 0x36e2: 0x000c, 0x36e3: 0x000c,
- 0x36e4: 0x000c, 0x36e5: 0x000c, 0x36e6: 0x000c, 0x36e7: 0x000c, 0x36e8: 0x000c, 0x36e9: 0x000c,
- 0x36ea: 0x000c, 0x36eb: 0x000c, 0x36ec: 0x000c, 0x36ed: 0x000c, 0x36ee: 0x000c, 0x36ef: 0x000c,
- // Block 0xdc, offset 0x3700
- 0x3700: 0x000c, 0x3701: 0x000c, 0x3702: 0x000c, 0x3703: 0x000c, 0x3704: 0x000c, 0x3705: 0x000c,
- 0x3706: 0x000c, 0x3708: 0x000c, 0x3709: 0x000c, 0x370a: 0x000c, 0x370b: 0x000c,
- 0x370c: 0x000c, 0x370d: 0x000c, 0x370e: 0x000c, 0x370f: 0x000c, 0x3710: 0x000c, 0x3711: 0x000c,
- 0x3712: 0x000c, 0x3713: 0x000c, 0x3714: 0x000c, 0x3715: 0x000c, 0x3716: 0x000c, 0x3717: 0x000c,
- 0x3718: 0x000c, 0x371b: 0x000c, 0x371c: 0x000c, 0x371d: 0x000c,
- 0x371e: 0x000c, 0x371f: 0x000c, 0x3720: 0x000c, 0x3721: 0x000c, 0x3723: 0x000c,
- 0x3724: 0x000c, 0x3726: 0x000c, 0x3727: 0x000c, 0x3728: 0x000c, 0x3729: 0x000c,
- 0x372a: 0x000c,
- // Block 0xdd, offset 0x3740
- 0x376c: 0x000c, 0x376d: 0x000c, 0x376e: 0x000c, 0x376f: 0x000c,
- 0x377f: 0x0004,
- // Block 0xde, offset 0x3780
- 0x3780: 0x0001, 0x3781: 0x0001, 0x3782: 0x0001, 0x3783: 0x0001, 0x3784: 0x0001, 0x3785: 0x0001,
- 0x3786: 0x0001, 0x3787: 0x0001, 0x3788: 0x0001, 0x3789: 0x0001, 0x378a: 0x0001, 0x378b: 0x0001,
- 0x378c: 0x0001, 0x378d: 0x0001, 0x378e: 0x0001, 0x378f: 0x0001, 0x3790: 0x000c, 0x3791: 0x000c,
- 0x3792: 0x000c, 0x3793: 0x000c, 0x3794: 0x000c, 0x3795: 0x000c, 0x3796: 0x000c, 0x3797: 0x0001,
- 0x3798: 0x0001, 0x3799: 0x0001, 0x379a: 0x0001, 0x379b: 0x0001, 0x379c: 0x0001, 0x379d: 0x0001,
- 0x379e: 0x0001, 0x379f: 0x0001, 0x37a0: 0x0001, 0x37a1: 0x0001, 0x37a2: 0x0001, 0x37a3: 0x0001,
- 0x37a4: 0x0001, 0x37a5: 0x0001, 0x37a6: 0x0001, 0x37a7: 0x0001, 0x37a8: 0x0001, 0x37a9: 0x0001,
- 0x37aa: 0x0001, 0x37ab: 0x0001, 0x37ac: 0x0001, 0x37ad: 0x0001, 0x37ae: 0x0001, 0x37af: 0x0001,
- 0x37b0: 0x0001, 0x37b1: 0x0001, 0x37b2: 0x0001, 0x37b3: 0x0001, 0x37b4: 0x0001, 0x37b5: 0x0001,
- 0x37b6: 0x0001, 0x37b7: 0x0001, 0x37b8: 0x0001, 0x37b9: 0x0001, 0x37ba: 0x0001, 0x37bb: 0x0001,
- 0x37bc: 0x0001, 0x37bd: 0x0001, 0x37be: 0x0001, 0x37bf: 0x0001,
- // Block 0xdf, offset 0x37c0
- 0x37c0: 0x0001, 0x37c1: 0x0001, 0x37c2: 0x0001, 0x37c3: 0x0001, 0x37c4: 0x000c, 0x37c5: 0x000c,
- 0x37c6: 0x000c, 0x37c7: 0x000c, 0x37c8: 0x000c, 0x37c9: 0x000c, 0x37ca: 0x000c, 0x37cb: 0x0001,
- 0x37cc: 0x0001, 0x37cd: 0x0001, 0x37ce: 0x0001, 0x37cf: 0x0001, 0x37d0: 0x0001, 0x37d1: 0x0001,
- 0x37d2: 0x0001, 0x37d3: 0x0001, 0x37d4: 0x0001, 0x37d5: 0x0001, 0x37d6: 0x0001, 0x37d7: 0x0001,
- 0x37d8: 0x0001, 0x37d9: 0x0001, 0x37da: 0x0001, 0x37db: 0x0001, 0x37dc: 0x0001, 0x37dd: 0x0001,
- 0x37de: 0x0001, 0x37df: 0x0001, 0x37e0: 0x0001, 0x37e1: 0x0001, 0x37e2: 0x0001, 0x37e3: 0x0001,
- 0x37e4: 0x0001, 0x37e5: 0x0001, 0x37e6: 0x0001, 0x37e7: 0x0001, 0x37e8: 0x0001, 0x37e9: 0x0001,
- 0x37ea: 0x0001, 0x37eb: 0x0001, 0x37ec: 0x0001, 0x37ed: 0x0001, 0x37ee: 0x0001, 0x37ef: 0x0001,
- 0x37f0: 0x0001, 0x37f1: 0x0001, 0x37f2: 0x0001, 0x37f3: 0x0001, 0x37f4: 0x0001, 0x37f5: 0x0001,
- 0x37f6: 0x0001, 0x37f7: 0x0001, 0x37f8: 0x0001, 0x37f9: 0x0001, 0x37fa: 0x0001, 0x37fb: 0x0001,
- 0x37fc: 0x0001, 0x37fd: 0x0001, 0x37fe: 0x0001, 0x37ff: 0x0001,
- // Block 0xe0, offset 0x3800
- 0x3800: 0x000d, 0x3801: 0x000d, 0x3802: 0x000d, 0x3803: 0x000d, 0x3804: 0x000d, 0x3805: 0x000d,
- 0x3806: 0x000d, 0x3807: 0x000d, 0x3808: 0x000d, 0x3809: 0x000d, 0x380a: 0x000d, 0x380b: 0x000d,
- 0x380c: 0x000d, 0x380d: 0x000d, 0x380e: 0x000d, 0x380f: 0x000d, 0x3810: 0x0001, 0x3811: 0x0001,
- 0x3812: 0x0001, 0x3813: 0x0001, 0x3814: 0x0001, 0x3815: 0x0001, 0x3816: 0x0001, 0x3817: 0x0001,
- 0x3818: 0x0001, 0x3819: 0x0001, 0x381a: 0x0001, 0x381b: 0x0001, 0x381c: 0x0001, 0x381d: 0x0001,
- 0x381e: 0x0001, 0x381f: 0x0001, 0x3820: 0x0001, 0x3821: 0x0001, 0x3822: 0x0001, 0x3823: 0x0001,
- 0x3824: 0x0001, 0x3825: 0x0001, 0x3826: 0x0001, 0x3827: 0x0001, 0x3828: 0x0001, 0x3829: 0x0001,
- 0x382a: 0x0001, 0x382b: 0x0001, 0x382c: 0x0001, 0x382d: 0x0001, 0x382e: 0x0001, 0x382f: 0x0001,
- 0x3830: 0x0001, 0x3831: 0x0001, 0x3832: 0x0001, 0x3833: 0x0001, 0x3834: 0x0001, 0x3835: 0x0001,
- 0x3836: 0x0001, 0x3837: 0x0001, 0x3838: 0x0001, 0x3839: 0x0001, 0x383a: 0x0001, 0x383b: 0x0001,
- 0x383c: 0x0001, 0x383d: 0x0001, 0x383e: 0x0001, 0x383f: 0x0001,
- // Block 0xe1, offset 0x3840
- 0x3840: 0x000d, 0x3841: 0x000d, 0x3842: 0x000d, 0x3843: 0x000d, 0x3844: 0x000d, 0x3845: 0x000d,
- 0x3846: 0x000d, 0x3847: 0x000d, 0x3848: 0x000d, 0x3849: 0x000d, 0x384a: 0x000d, 0x384b: 0x000d,
- 0x384c: 0x000d, 0x384d: 0x000d, 0x384e: 0x000d, 0x384f: 0x000d, 0x3850: 0x000d, 0x3851: 0x000d,
- 0x3852: 0x000d, 0x3853: 0x000d, 0x3854: 0x000d, 0x3855: 0x000d, 0x3856: 0x000d, 0x3857: 0x000d,
- 0x3858: 0x000d, 0x3859: 0x000d, 0x385a: 0x000d, 0x385b: 0x000d, 0x385c: 0x000d, 0x385d: 0x000d,
- 0x385e: 0x000d, 0x385f: 0x000d, 0x3860: 0x000d, 0x3861: 0x000d, 0x3862: 0x000d, 0x3863: 0x000d,
- 0x3864: 0x000d, 0x3865: 0x000d, 0x3866: 0x000d, 0x3867: 0x000d, 0x3868: 0x000d, 0x3869: 0x000d,
- 0x386a: 0x000d, 0x386b: 0x000d, 0x386c: 0x000d, 0x386d: 0x000d, 0x386e: 0x000d, 0x386f: 0x000d,
- 0x3870: 0x000a, 0x3871: 0x000a, 0x3872: 0x000d, 0x3873: 0x000d, 0x3874: 0x000d, 0x3875: 0x000d,
- 0x3876: 0x000d, 0x3877: 0x000d, 0x3878: 0x000d, 0x3879: 0x000d, 0x387a: 0x000d, 0x387b: 0x000d,
- 0x387c: 0x000d, 0x387d: 0x000d, 0x387e: 0x000d, 0x387f: 0x000d,
- // Block 0xe2, offset 0x3880
- 0x3880: 0x000a, 0x3881: 0x000a, 0x3882: 0x000a, 0x3883: 0x000a, 0x3884: 0x000a, 0x3885: 0x000a,
- 0x3886: 0x000a, 0x3887: 0x000a, 0x3888: 0x000a, 0x3889: 0x000a, 0x388a: 0x000a, 0x388b: 0x000a,
- 0x388c: 0x000a, 0x388d: 0x000a, 0x388e: 0x000a, 0x388f: 0x000a, 0x3890: 0x000a, 0x3891: 0x000a,
- 0x3892: 0x000a, 0x3893: 0x000a, 0x3894: 0x000a, 0x3895: 0x000a, 0x3896: 0x000a, 0x3897: 0x000a,
- 0x3898: 0x000a, 0x3899: 0x000a, 0x389a: 0x000a, 0x389b: 0x000a, 0x389c: 0x000a, 0x389d: 0x000a,
- 0x389e: 0x000a, 0x389f: 0x000a, 0x38a0: 0x000a, 0x38a1: 0x000a, 0x38a2: 0x000a, 0x38a3: 0x000a,
- 0x38a4: 0x000a, 0x38a5: 0x000a, 0x38a6: 0x000a, 0x38a7: 0x000a, 0x38a8: 0x000a, 0x38a9: 0x000a,
- 0x38aa: 0x000a, 0x38ab: 0x000a,
- 0x38b0: 0x000a, 0x38b1: 0x000a, 0x38b2: 0x000a, 0x38b3: 0x000a, 0x38b4: 0x000a, 0x38b5: 0x000a,
- 0x38b6: 0x000a, 0x38b7: 0x000a, 0x38b8: 0x000a, 0x38b9: 0x000a, 0x38ba: 0x000a, 0x38bb: 0x000a,
- 0x38bc: 0x000a, 0x38bd: 0x000a, 0x38be: 0x000a, 0x38bf: 0x000a,
- // Block 0xe3, offset 0x38c0
- 0x38c0: 0x000a, 0x38c1: 0x000a, 0x38c2: 0x000a, 0x38c3: 0x000a, 0x38c4: 0x000a, 0x38c5: 0x000a,
- 0x38c6: 0x000a, 0x38c7: 0x000a, 0x38c8: 0x000a, 0x38c9: 0x000a, 0x38ca: 0x000a, 0x38cb: 0x000a,
- 0x38cc: 0x000a, 0x38cd: 0x000a, 0x38ce: 0x000a, 0x38cf: 0x000a, 0x38d0: 0x000a, 0x38d1: 0x000a,
- 0x38d2: 0x000a, 0x38d3: 0x000a,
- 0x38e0: 0x000a, 0x38e1: 0x000a, 0x38e2: 0x000a, 0x38e3: 0x000a,
- 0x38e4: 0x000a, 0x38e5: 0x000a, 0x38e6: 0x000a, 0x38e7: 0x000a, 0x38e8: 0x000a, 0x38e9: 0x000a,
- 0x38ea: 0x000a, 0x38eb: 0x000a, 0x38ec: 0x000a, 0x38ed: 0x000a, 0x38ee: 0x000a,
- 0x38f1: 0x000a, 0x38f2: 0x000a, 0x38f3: 0x000a, 0x38f4: 0x000a, 0x38f5: 0x000a,
- 0x38f6: 0x000a, 0x38f7: 0x000a, 0x38f8: 0x000a, 0x38f9: 0x000a, 0x38fa: 0x000a, 0x38fb: 0x000a,
- 0x38fc: 0x000a, 0x38fd: 0x000a, 0x38fe: 0x000a, 0x38ff: 0x000a,
- // Block 0xe4, offset 0x3900
- 0x3901: 0x000a, 0x3902: 0x000a, 0x3903: 0x000a, 0x3904: 0x000a, 0x3905: 0x000a,
- 0x3906: 0x000a, 0x3907: 0x000a, 0x3908: 0x000a, 0x3909: 0x000a, 0x390a: 0x000a, 0x390b: 0x000a,
- 0x390c: 0x000a, 0x390d: 0x000a, 0x390e: 0x000a, 0x390f: 0x000a, 0x3911: 0x000a,
- 0x3912: 0x000a, 0x3913: 0x000a, 0x3914: 0x000a, 0x3915: 0x000a, 0x3916: 0x000a, 0x3917: 0x000a,
- 0x3918: 0x000a, 0x3919: 0x000a, 0x391a: 0x000a, 0x391b: 0x000a, 0x391c: 0x000a, 0x391d: 0x000a,
- 0x391e: 0x000a, 0x391f: 0x000a, 0x3920: 0x000a, 0x3921: 0x000a, 0x3922: 0x000a, 0x3923: 0x000a,
- 0x3924: 0x000a, 0x3925: 0x000a, 0x3926: 0x000a, 0x3927: 0x000a, 0x3928: 0x000a, 0x3929: 0x000a,
- 0x392a: 0x000a, 0x392b: 0x000a, 0x392c: 0x000a, 0x392d: 0x000a, 0x392e: 0x000a, 0x392f: 0x000a,
- 0x3930: 0x000a, 0x3931: 0x000a, 0x3932: 0x000a, 0x3933: 0x000a, 0x3934: 0x000a, 0x3935: 0x000a,
- // Block 0xe5, offset 0x3940
- 0x3940: 0x0002, 0x3941: 0x0002, 0x3942: 0x0002, 0x3943: 0x0002, 0x3944: 0x0002, 0x3945: 0x0002,
- 0x3946: 0x0002, 0x3947: 0x0002, 0x3948: 0x0002, 0x3949: 0x0002, 0x394a: 0x0002, 0x394b: 0x000a,
- 0x394c: 0x000a, 0x394d: 0x000a, 0x394e: 0x000a, 0x394f: 0x000a,
- 0x396f: 0x000a,
- // Block 0xe6, offset 0x3980
- 0x39aa: 0x000a, 0x39ab: 0x000a, 0x39ac: 0x000a, 0x39ad: 0x000a, 0x39ae: 0x000a, 0x39af: 0x000a,
- // Block 0xe7, offset 0x39c0
- 0x39ed: 0x000a,
- // Block 0xe8, offset 0x3a00
- 0x3a20: 0x000a, 0x3a21: 0x000a, 0x3a22: 0x000a, 0x3a23: 0x000a,
- 0x3a24: 0x000a, 0x3a25: 0x000a,
- // Block 0xe9, offset 0x3a40
- 0x3a40: 0x000a, 0x3a41: 0x000a, 0x3a42: 0x000a, 0x3a43: 0x000a, 0x3a44: 0x000a, 0x3a45: 0x000a,
- 0x3a46: 0x000a, 0x3a47: 0x000a, 0x3a48: 0x000a, 0x3a49: 0x000a, 0x3a4a: 0x000a, 0x3a4b: 0x000a,
- 0x3a4c: 0x000a, 0x3a4d: 0x000a, 0x3a4e: 0x000a, 0x3a4f: 0x000a, 0x3a50: 0x000a, 0x3a51: 0x000a,
- 0x3a52: 0x000a, 0x3a53: 0x000a, 0x3a54: 0x000a, 0x3a55: 0x000a, 0x3a56: 0x000a, 0x3a57: 0x000a,
- 0x3a60: 0x000a, 0x3a61: 0x000a, 0x3a62: 0x000a, 0x3a63: 0x000a,
- 0x3a64: 0x000a, 0x3a65: 0x000a, 0x3a66: 0x000a, 0x3a67: 0x000a, 0x3a68: 0x000a, 0x3a69: 0x000a,
- 0x3a6a: 0x000a, 0x3a6b: 0x000a, 0x3a6c: 0x000a,
- 0x3a70: 0x000a, 0x3a71: 0x000a, 0x3a72: 0x000a, 0x3a73: 0x000a, 0x3a74: 0x000a, 0x3a75: 0x000a,
- 0x3a76: 0x000a, 0x3a77: 0x000a, 0x3a78: 0x000a, 0x3a79: 0x000a, 0x3a7a: 0x000a, 0x3a7b: 0x000a,
- 0x3a7c: 0x000a,
- // Block 0xea, offset 0x3a80
- 0x3a80: 0x000a, 0x3a81: 0x000a, 0x3a82: 0x000a, 0x3a83: 0x000a, 0x3a84: 0x000a, 0x3a85: 0x000a,
- 0x3a86: 0x000a, 0x3a87: 0x000a, 0x3a88: 0x000a, 0x3a89: 0x000a, 0x3a8a: 0x000a, 0x3a8b: 0x000a,
- 0x3a8c: 0x000a, 0x3a8d: 0x000a, 0x3a8e: 0x000a, 0x3a8f: 0x000a, 0x3a90: 0x000a, 0x3a91: 0x000a,
- 0x3a92: 0x000a, 0x3a93: 0x000a, 0x3a94: 0x000a, 0x3a95: 0x000a, 0x3a96: 0x000a, 0x3a97: 0x000a,
- 0x3a98: 0x000a,
- 0x3aa0: 0x000a, 0x3aa1: 0x000a, 0x3aa2: 0x000a, 0x3aa3: 0x000a,
- 0x3aa4: 0x000a, 0x3aa5: 0x000a, 0x3aa6: 0x000a, 0x3aa7: 0x000a, 0x3aa8: 0x000a, 0x3aa9: 0x000a,
- 0x3aaa: 0x000a, 0x3aab: 0x000a,
- // Block 0xeb, offset 0x3ac0
- 0x3ac0: 0x000a, 0x3ac1: 0x000a, 0x3ac2: 0x000a, 0x3ac3: 0x000a, 0x3ac4: 0x000a, 0x3ac5: 0x000a,
- 0x3ac6: 0x000a, 0x3ac7: 0x000a, 0x3ac8: 0x000a, 0x3ac9: 0x000a, 0x3aca: 0x000a, 0x3acb: 0x000a,
- 0x3ad0: 0x000a, 0x3ad1: 0x000a,
- 0x3ad2: 0x000a, 0x3ad3: 0x000a, 0x3ad4: 0x000a, 0x3ad5: 0x000a, 0x3ad6: 0x000a, 0x3ad7: 0x000a,
- 0x3ad8: 0x000a, 0x3ad9: 0x000a, 0x3ada: 0x000a, 0x3adb: 0x000a, 0x3adc: 0x000a, 0x3add: 0x000a,
- 0x3ade: 0x000a, 0x3adf: 0x000a, 0x3ae0: 0x000a, 0x3ae1: 0x000a, 0x3ae2: 0x000a, 0x3ae3: 0x000a,
- 0x3ae4: 0x000a, 0x3ae5: 0x000a, 0x3ae6: 0x000a, 0x3ae7: 0x000a, 0x3ae8: 0x000a, 0x3ae9: 0x000a,
- 0x3aea: 0x000a, 0x3aeb: 0x000a, 0x3aec: 0x000a, 0x3aed: 0x000a, 0x3aee: 0x000a, 0x3aef: 0x000a,
- 0x3af0: 0x000a, 0x3af1: 0x000a, 0x3af2: 0x000a, 0x3af3: 0x000a, 0x3af4: 0x000a, 0x3af5: 0x000a,
- 0x3af6: 0x000a, 0x3af7: 0x000a, 0x3af8: 0x000a, 0x3af9: 0x000a, 0x3afa: 0x000a, 0x3afb: 0x000a,
- 0x3afc: 0x000a, 0x3afd: 0x000a, 0x3afe: 0x000a, 0x3aff: 0x000a,
- // Block 0xec, offset 0x3b00
- 0x3b00: 0x000a, 0x3b01: 0x000a, 0x3b02: 0x000a, 0x3b03: 0x000a, 0x3b04: 0x000a, 0x3b05: 0x000a,
- 0x3b06: 0x000a, 0x3b07: 0x000a,
- 0x3b10: 0x000a, 0x3b11: 0x000a,
- 0x3b12: 0x000a, 0x3b13: 0x000a, 0x3b14: 0x000a, 0x3b15: 0x000a, 0x3b16: 0x000a, 0x3b17: 0x000a,
- 0x3b18: 0x000a, 0x3b19: 0x000a,
- 0x3b20: 0x000a, 0x3b21: 0x000a, 0x3b22: 0x000a, 0x3b23: 0x000a,
- 0x3b24: 0x000a, 0x3b25: 0x000a, 0x3b26: 0x000a, 0x3b27: 0x000a, 0x3b28: 0x000a, 0x3b29: 0x000a,
- 0x3b2a: 0x000a, 0x3b2b: 0x000a, 0x3b2c: 0x000a, 0x3b2d: 0x000a, 0x3b2e: 0x000a, 0x3b2f: 0x000a,
- 0x3b30: 0x000a, 0x3b31: 0x000a, 0x3b32: 0x000a, 0x3b33: 0x000a, 0x3b34: 0x000a, 0x3b35: 0x000a,
- 0x3b36: 0x000a, 0x3b37: 0x000a, 0x3b38: 0x000a, 0x3b39: 0x000a, 0x3b3a: 0x000a, 0x3b3b: 0x000a,
- 0x3b3c: 0x000a, 0x3b3d: 0x000a, 0x3b3e: 0x000a, 0x3b3f: 0x000a,
- // Block 0xed, offset 0x3b40
- 0x3b40: 0x000a, 0x3b41: 0x000a, 0x3b42: 0x000a, 0x3b43: 0x000a, 0x3b44: 0x000a, 0x3b45: 0x000a,
- 0x3b46: 0x000a, 0x3b47: 0x000a,
- 0x3b50: 0x000a, 0x3b51: 0x000a,
- 0x3b52: 0x000a, 0x3b53: 0x000a, 0x3b54: 0x000a, 0x3b55: 0x000a, 0x3b56: 0x000a, 0x3b57: 0x000a,
- 0x3b58: 0x000a, 0x3b59: 0x000a, 0x3b5a: 0x000a, 0x3b5b: 0x000a, 0x3b5c: 0x000a, 0x3b5d: 0x000a,
- 0x3b5e: 0x000a, 0x3b5f: 0x000a, 0x3b60: 0x000a, 0x3b61: 0x000a, 0x3b62: 0x000a, 0x3b63: 0x000a,
- 0x3b64: 0x000a, 0x3b65: 0x000a, 0x3b66: 0x000a, 0x3b67: 0x000a, 0x3b68: 0x000a, 0x3b69: 0x000a,
- 0x3b6a: 0x000a, 0x3b6b: 0x000a, 0x3b6c: 0x000a, 0x3b6d: 0x000a,
- 0x3b70: 0x000a, 0x3b71: 0x000a,
- // Block 0xee, offset 0x3b80
- 0x3b80: 0x000a, 0x3b81: 0x000a, 0x3b82: 0x000a, 0x3b83: 0x000a, 0x3b84: 0x000a, 0x3b85: 0x000a,
- 0x3b86: 0x000a, 0x3b87: 0x000a, 0x3b88: 0x000a, 0x3b89: 0x000a, 0x3b8a: 0x000a, 0x3b8b: 0x000a,
- 0x3b8c: 0x000a, 0x3b8d: 0x000a, 0x3b8e: 0x000a, 0x3b8f: 0x000a, 0x3b90: 0x000a, 0x3b91: 0x000a,
- 0x3b92: 0x000a, 0x3b93: 0x000a, 0x3b94: 0x000a, 0x3b95: 0x000a, 0x3b96: 0x000a, 0x3b97: 0x000a,
- 0x3b98: 0x000a, 0x3b99: 0x000a, 0x3b9a: 0x000a, 0x3b9b: 0x000a, 0x3b9c: 0x000a, 0x3b9d: 0x000a,
- 0x3b9e: 0x000a, 0x3b9f: 0x000a, 0x3ba0: 0x000a, 0x3ba1: 0x000a, 0x3ba2: 0x000a, 0x3ba3: 0x000a,
- 0x3ba4: 0x000a, 0x3ba5: 0x000a, 0x3ba6: 0x000a, 0x3ba7: 0x000a, 0x3ba8: 0x000a, 0x3ba9: 0x000a,
- 0x3baa: 0x000a, 0x3bab: 0x000a, 0x3bac: 0x000a, 0x3bad: 0x000a, 0x3bae: 0x000a, 0x3baf: 0x000a,
- 0x3bb0: 0x000a, 0x3bb1: 0x000a, 0x3bb2: 0x000a, 0x3bb3: 0x000a, 0x3bb4: 0x000a, 0x3bb5: 0x000a,
- 0x3bb6: 0x000a, 0x3bb7: 0x000a, 0x3bb8: 0x000a, 0x3bba: 0x000a, 0x3bbb: 0x000a,
- 0x3bbc: 0x000a, 0x3bbd: 0x000a, 0x3bbe: 0x000a, 0x3bbf: 0x000a,
- // Block 0xef, offset 0x3bc0
- 0x3bc0: 0x000a, 0x3bc1: 0x000a, 0x3bc2: 0x000a, 0x3bc3: 0x000a, 0x3bc4: 0x000a, 0x3bc5: 0x000a,
- 0x3bc6: 0x000a, 0x3bc7: 0x000a, 0x3bc8: 0x000a, 0x3bc9: 0x000a, 0x3bca: 0x000a, 0x3bcb: 0x000a,
- 0x3bcd: 0x000a, 0x3bce: 0x000a, 0x3bcf: 0x000a, 0x3bd0: 0x000a, 0x3bd1: 0x000a,
- 0x3bd2: 0x000a, 0x3bd3: 0x000a, 0x3bd4: 0x000a, 0x3bd5: 0x000a, 0x3bd6: 0x000a, 0x3bd7: 0x000a,
- 0x3bd8: 0x000a, 0x3bd9: 0x000a, 0x3bda: 0x000a, 0x3bdb: 0x000a, 0x3bdc: 0x000a, 0x3bdd: 0x000a,
- 0x3bde: 0x000a, 0x3bdf: 0x000a, 0x3be0: 0x000a, 0x3be1: 0x000a, 0x3be2: 0x000a, 0x3be3: 0x000a,
- 0x3be4: 0x000a, 0x3be5: 0x000a, 0x3be6: 0x000a, 0x3be7: 0x000a, 0x3be8: 0x000a, 0x3be9: 0x000a,
- 0x3bea: 0x000a, 0x3beb: 0x000a, 0x3bec: 0x000a, 0x3bed: 0x000a, 0x3bee: 0x000a, 0x3bef: 0x000a,
- 0x3bf0: 0x000a, 0x3bf1: 0x000a, 0x3bf2: 0x000a, 0x3bf3: 0x000a, 0x3bf4: 0x000a, 0x3bf5: 0x000a,
- 0x3bf6: 0x000a, 0x3bf7: 0x000a, 0x3bf8: 0x000a, 0x3bf9: 0x000a, 0x3bfa: 0x000a, 0x3bfb: 0x000a,
- 0x3bfc: 0x000a, 0x3bfd: 0x000a, 0x3bfe: 0x000a, 0x3bff: 0x000a,
- // Block 0xf0, offset 0x3c00
- 0x3c00: 0x000a, 0x3c01: 0x000a, 0x3c02: 0x000a, 0x3c03: 0x000a, 0x3c04: 0x000a, 0x3c05: 0x000a,
- 0x3c06: 0x000a, 0x3c07: 0x000a, 0x3c08: 0x000a, 0x3c09: 0x000a, 0x3c0a: 0x000a, 0x3c0b: 0x000a,
- 0x3c0c: 0x000a, 0x3c0d: 0x000a, 0x3c0e: 0x000a, 0x3c0f: 0x000a, 0x3c10: 0x000a, 0x3c11: 0x000a,
- 0x3c12: 0x000a, 0x3c13: 0x000a,
- 0x3c20: 0x000a, 0x3c21: 0x000a, 0x3c22: 0x000a, 0x3c23: 0x000a,
- 0x3c24: 0x000a, 0x3c25: 0x000a, 0x3c26: 0x000a, 0x3c27: 0x000a, 0x3c28: 0x000a, 0x3c29: 0x000a,
- 0x3c2a: 0x000a, 0x3c2b: 0x000a, 0x3c2c: 0x000a, 0x3c2d: 0x000a,
- 0x3c30: 0x000a, 0x3c31: 0x000a, 0x3c32: 0x000a, 0x3c33: 0x000a, 0x3c34: 0x000a,
- 0x3c38: 0x000a, 0x3c39: 0x000a, 0x3c3a: 0x000a,
- // Block 0xf1, offset 0x3c40
- 0x3c40: 0x000a, 0x3c41: 0x000a, 0x3c42: 0x000a, 0x3c43: 0x000a, 0x3c44: 0x000a, 0x3c45: 0x000a,
- 0x3c46: 0x000a,
- 0x3c50: 0x000a, 0x3c51: 0x000a,
- 0x3c52: 0x000a, 0x3c53: 0x000a, 0x3c54: 0x000a, 0x3c55: 0x000a, 0x3c56: 0x000a, 0x3c57: 0x000a,
- 0x3c58: 0x000a, 0x3c59: 0x000a, 0x3c5a: 0x000a, 0x3c5b: 0x000a, 0x3c5c: 0x000a, 0x3c5d: 0x000a,
- 0x3c5e: 0x000a, 0x3c5f: 0x000a, 0x3c60: 0x000a, 0x3c61: 0x000a, 0x3c62: 0x000a, 0x3c63: 0x000a,
- 0x3c64: 0x000a, 0x3c65: 0x000a, 0x3c66: 0x000a, 0x3c67: 0x000a, 0x3c68: 0x000a,
- 0x3c70: 0x000a, 0x3c71: 0x000a, 0x3c72: 0x000a, 0x3c73: 0x000a, 0x3c74: 0x000a, 0x3c75: 0x000a,
- 0x3c76: 0x000a,
- // Block 0xf2, offset 0x3c80
- 0x3c80: 0x000a, 0x3c81: 0x000a, 0x3c82: 0x000a,
- 0x3c90: 0x000a, 0x3c91: 0x000a,
- 0x3c92: 0x000a, 0x3c93: 0x000a, 0x3c94: 0x000a, 0x3c95: 0x000a, 0x3c96: 0x000a,
- // Block 0xf3, offset 0x3cc0
- 0x3cc0: 0x000a, 0x3cc1: 0x000a, 0x3cc2: 0x000a, 0x3cc3: 0x000a, 0x3cc4: 0x000a, 0x3cc5: 0x000a,
- 0x3cc6: 0x000a, 0x3cc7: 0x000a, 0x3cc8: 0x000a, 0x3cc9: 0x000a, 0x3cca: 0x000a, 0x3ccb: 0x000a,
- 0x3ccc: 0x000a, 0x3ccd: 0x000a, 0x3cce: 0x000a, 0x3ccf: 0x000a, 0x3cd0: 0x000a, 0x3cd1: 0x000a,
- 0x3cd2: 0x000a, 0x3cd4: 0x000a, 0x3cd5: 0x000a, 0x3cd6: 0x000a, 0x3cd7: 0x000a,
- 0x3cd8: 0x000a, 0x3cd9: 0x000a, 0x3cda: 0x000a, 0x3cdb: 0x000a, 0x3cdc: 0x000a, 0x3cdd: 0x000a,
- 0x3cde: 0x000a, 0x3cdf: 0x000a, 0x3ce0: 0x000a, 0x3ce1: 0x000a, 0x3ce2: 0x000a, 0x3ce3: 0x000a,
- 0x3ce4: 0x000a, 0x3ce5: 0x000a, 0x3ce6: 0x000a, 0x3ce7: 0x000a, 0x3ce8: 0x000a, 0x3ce9: 0x000a,
- 0x3cea: 0x000a, 0x3ceb: 0x000a, 0x3cec: 0x000a, 0x3ced: 0x000a, 0x3cee: 0x000a, 0x3cef: 0x000a,
- 0x3cf0: 0x000a, 0x3cf1: 0x000a, 0x3cf2: 0x000a, 0x3cf3: 0x000a, 0x3cf4: 0x000a, 0x3cf5: 0x000a,
- 0x3cf6: 0x000a, 0x3cf7: 0x000a, 0x3cf8: 0x000a, 0x3cf9: 0x000a, 0x3cfa: 0x000a, 0x3cfb: 0x000a,
- 0x3cfc: 0x000a, 0x3cfd: 0x000a, 0x3cfe: 0x000a, 0x3cff: 0x000a,
- // Block 0xf4, offset 0x3d00
- 0x3d00: 0x000a, 0x3d01: 0x000a, 0x3d02: 0x000a, 0x3d03: 0x000a, 0x3d04: 0x000a, 0x3d05: 0x000a,
- 0x3d06: 0x000a, 0x3d07: 0x000a, 0x3d08: 0x000a, 0x3d09: 0x000a, 0x3d0a: 0x000a,
- 0x3d30: 0x0002, 0x3d31: 0x0002, 0x3d32: 0x0002, 0x3d33: 0x0002, 0x3d34: 0x0002, 0x3d35: 0x0002,
- 0x3d36: 0x0002, 0x3d37: 0x0002, 0x3d38: 0x0002, 0x3d39: 0x0002,
- // Block 0xf5, offset 0x3d40
- 0x3d7e: 0x000b, 0x3d7f: 0x000b,
- // Block 0xf6, offset 0x3d80
- 0x3d80: 0x000b, 0x3d81: 0x000b, 0x3d82: 0x000b, 0x3d83: 0x000b, 0x3d84: 0x000b, 0x3d85: 0x000b,
- 0x3d86: 0x000b, 0x3d87: 0x000b, 0x3d88: 0x000b, 0x3d89: 0x000b, 0x3d8a: 0x000b, 0x3d8b: 0x000b,
- 0x3d8c: 0x000b, 0x3d8d: 0x000b, 0x3d8e: 0x000b, 0x3d8f: 0x000b, 0x3d90: 0x000b, 0x3d91: 0x000b,
- 0x3d92: 0x000b, 0x3d93: 0x000b, 0x3d94: 0x000b, 0x3d95: 0x000b, 0x3d96: 0x000b, 0x3d97: 0x000b,
- 0x3d98: 0x000b, 0x3d99: 0x000b, 0x3d9a: 0x000b, 0x3d9b: 0x000b, 0x3d9c: 0x000b, 0x3d9d: 0x000b,
- 0x3d9e: 0x000b, 0x3d9f: 0x000b, 0x3da0: 0x000b, 0x3da1: 0x000b, 0x3da2: 0x000b, 0x3da3: 0x000b,
- 0x3da4: 0x000b, 0x3da5: 0x000b, 0x3da6: 0x000b, 0x3da7: 0x000b, 0x3da8: 0x000b, 0x3da9: 0x000b,
- 0x3daa: 0x000b, 0x3dab: 0x000b, 0x3dac: 0x000b, 0x3dad: 0x000b, 0x3dae: 0x000b, 0x3daf: 0x000b,
- 0x3db0: 0x000b, 0x3db1: 0x000b, 0x3db2: 0x000b, 0x3db3: 0x000b, 0x3db4: 0x000b, 0x3db5: 0x000b,
- 0x3db6: 0x000b, 0x3db7: 0x000b, 0x3db8: 0x000b, 0x3db9: 0x000b, 0x3dba: 0x000b, 0x3dbb: 0x000b,
- 0x3dbc: 0x000b, 0x3dbd: 0x000b, 0x3dbe: 0x000b, 0x3dbf: 0x000b,
- // Block 0xf7, offset 0x3dc0
- 0x3dc0: 0x000c, 0x3dc1: 0x000c, 0x3dc2: 0x000c, 0x3dc3: 0x000c, 0x3dc4: 0x000c, 0x3dc5: 0x000c,
- 0x3dc6: 0x000c, 0x3dc7: 0x000c, 0x3dc8: 0x000c, 0x3dc9: 0x000c, 0x3dca: 0x000c, 0x3dcb: 0x000c,
- 0x3dcc: 0x000c, 0x3dcd: 0x000c, 0x3dce: 0x000c, 0x3dcf: 0x000c, 0x3dd0: 0x000c, 0x3dd1: 0x000c,
- 0x3dd2: 0x000c, 0x3dd3: 0x000c, 0x3dd4: 0x000c, 0x3dd5: 0x000c, 0x3dd6: 0x000c, 0x3dd7: 0x000c,
- 0x3dd8: 0x000c, 0x3dd9: 0x000c, 0x3dda: 0x000c, 0x3ddb: 0x000c, 0x3ddc: 0x000c, 0x3ddd: 0x000c,
- 0x3dde: 0x000c, 0x3ddf: 0x000c, 0x3de0: 0x000c, 0x3de1: 0x000c, 0x3de2: 0x000c, 0x3de3: 0x000c,
- 0x3de4: 0x000c, 0x3de5: 0x000c, 0x3de6: 0x000c, 0x3de7: 0x000c, 0x3de8: 0x000c, 0x3de9: 0x000c,
- 0x3dea: 0x000c, 0x3deb: 0x000c, 0x3dec: 0x000c, 0x3ded: 0x000c, 0x3dee: 0x000c, 0x3def: 0x000c,
- 0x3df0: 0x000b, 0x3df1: 0x000b, 0x3df2: 0x000b, 0x3df3: 0x000b, 0x3df4: 0x000b, 0x3df5: 0x000b,
- 0x3df6: 0x000b, 0x3df7: 0x000b, 0x3df8: 0x000b, 0x3df9: 0x000b, 0x3dfa: 0x000b, 0x3dfb: 0x000b,
- 0x3dfc: 0x000b, 0x3dfd: 0x000b, 0x3dfe: 0x000b, 0x3dff: 0x000b,
-}
-
-// bidiIndex: 24 blocks, 1536 entries, 1536 bytes
-// Block 0 is the zero block.
-var bidiIndex = [1536]uint8{
- // Block 0x0, offset 0x0
- // Block 0x1, offset 0x40
- // Block 0x2, offset 0x80
- // Block 0x3, offset 0xc0
- 0xc2: 0x01, 0xc3: 0x02,
- 0xca: 0x03, 0xcb: 0x04, 0xcc: 0x05, 0xcd: 0x06, 0xce: 0x07, 0xcf: 0x08,
- 0xd2: 0x09, 0xd6: 0x0a, 0xd7: 0x0b,
- 0xd8: 0x0c, 0xd9: 0x0d, 0xda: 0x0e, 0xdb: 0x0f, 0xdc: 0x10, 0xdd: 0x11, 0xde: 0x12, 0xdf: 0x13,
- 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06,
- 0xea: 0x07, 0xef: 0x08,
- 0xf0: 0x11, 0xf1: 0x12, 0xf2: 0x12, 0xf3: 0x14, 0xf4: 0x15,
- // Block 0x4, offset 0x100
- 0x120: 0x14, 0x121: 0x15, 0x122: 0x16, 0x123: 0x17, 0x124: 0x18, 0x125: 0x19, 0x126: 0x1a, 0x127: 0x1b,
- 0x128: 0x1c, 0x129: 0x1d, 0x12a: 0x1c, 0x12b: 0x1e, 0x12c: 0x1f, 0x12d: 0x20, 0x12e: 0x21, 0x12f: 0x22,
- 0x130: 0x23, 0x131: 0x24, 0x132: 0x1a, 0x133: 0x25, 0x134: 0x26, 0x135: 0x27, 0x136: 0x28, 0x137: 0x29,
- 0x138: 0x2a, 0x139: 0x2b, 0x13a: 0x2c, 0x13b: 0x2d, 0x13c: 0x2e, 0x13d: 0x2f, 0x13e: 0x30, 0x13f: 0x31,
- // Block 0x5, offset 0x140
- 0x140: 0x32, 0x141: 0x33, 0x142: 0x34,
- 0x14d: 0x35, 0x14e: 0x36,
- 0x150: 0x37,
- 0x15a: 0x38, 0x15c: 0x39, 0x15d: 0x3a, 0x15e: 0x3b, 0x15f: 0x3c,
- 0x160: 0x3d, 0x162: 0x3e, 0x164: 0x3f, 0x165: 0x40, 0x167: 0x41,
- 0x168: 0x42, 0x169: 0x43, 0x16a: 0x44, 0x16b: 0x45, 0x16c: 0x46, 0x16d: 0x47, 0x16e: 0x48, 0x16f: 0x49,
- 0x170: 0x4a, 0x173: 0x4b, 0x177: 0x4c,
- 0x17e: 0x4d, 0x17f: 0x4e,
- // Block 0x6, offset 0x180
- 0x180: 0x4f, 0x181: 0x50, 0x182: 0x51, 0x183: 0x52, 0x184: 0x53, 0x185: 0x54, 0x186: 0x55, 0x187: 0x56,
- 0x188: 0x57, 0x189: 0x56, 0x18a: 0x56, 0x18b: 0x56, 0x18c: 0x58, 0x18d: 0x59, 0x18e: 0x5a, 0x18f: 0x56,
- 0x190: 0x5b, 0x191: 0x5c, 0x192: 0x5d, 0x193: 0x5e, 0x194: 0x56, 0x195: 0x56, 0x196: 0x56, 0x197: 0x56,
- 0x198: 0x56, 0x199: 0x56, 0x19a: 0x5f, 0x19b: 0x56, 0x19c: 0x56, 0x19d: 0x60, 0x19e: 0x56, 0x19f: 0x61,
- 0x1a4: 0x56, 0x1a5: 0x56, 0x1a6: 0x62, 0x1a7: 0x63,
- 0x1a8: 0x56, 0x1a9: 0x56, 0x1aa: 0x56, 0x1ab: 0x56, 0x1ac: 0x56, 0x1ad: 0x64, 0x1ae: 0x65, 0x1af: 0x56,
- 0x1b3: 0x66, 0x1b5: 0x67, 0x1b7: 0x68,
- 0x1b8: 0x69, 0x1b9: 0x6a, 0x1ba: 0x6b, 0x1bb: 0x6c, 0x1bc: 0x56, 0x1bd: 0x56, 0x1be: 0x56, 0x1bf: 0x6d,
- // Block 0x7, offset 0x1c0
- 0x1c0: 0x6e, 0x1c2: 0x6f, 0x1c3: 0x70, 0x1c7: 0x71,
- 0x1c8: 0x72, 0x1c9: 0x73, 0x1ca: 0x74, 0x1cb: 0x75, 0x1cd: 0x76, 0x1cf: 0x77,
- // Block 0x8, offset 0x200
- 0x237: 0x56,
- // Block 0x9, offset 0x240
- 0x252: 0x78, 0x253: 0x79,
- 0x258: 0x7a, 0x259: 0x7b, 0x25a: 0x7c, 0x25b: 0x7d, 0x25c: 0x7e, 0x25e: 0x7f,
- 0x260: 0x80, 0x261: 0x81, 0x263: 0x82, 0x264: 0x83, 0x265: 0x84, 0x266: 0x85, 0x267: 0x86,
- 0x268: 0x87, 0x269: 0x88, 0x26a: 0x89, 0x26b: 0x8a, 0x26d: 0x8b, 0x26f: 0x8c,
- // Block 0xa, offset 0x280
- 0x2ac: 0x8d, 0x2ad: 0x8e, 0x2ae: 0x0e, 0x2af: 0x0e,
- 0x2b0: 0x0e, 0x2b1: 0x0e, 0x2b2: 0x0e, 0x2b3: 0x0e, 0x2b4: 0x8f, 0x2b5: 0x0e, 0x2b6: 0x0e, 0x2b7: 0x90,
- 0x2b8: 0x91, 0x2b9: 0x92, 0x2ba: 0x0e, 0x2bb: 0x93, 0x2bc: 0x94, 0x2bd: 0x95, 0x2bf: 0x96,
- // Block 0xb, offset 0x2c0
- 0x2c4: 0x97, 0x2c5: 0x56, 0x2c6: 0x98, 0x2c7: 0x99,
- 0x2cb: 0x9a, 0x2cd: 0x9b,
- 0x2e0: 0x9c, 0x2e1: 0x9c, 0x2e2: 0x9c, 0x2e3: 0x9c, 0x2e4: 0x9d, 0x2e5: 0x9c, 0x2e6: 0x9c, 0x2e7: 0x9c,
- 0x2e8: 0x9e, 0x2e9: 0x9c, 0x2ea: 0x9c, 0x2eb: 0x9f, 0x2ec: 0xa0, 0x2ed: 0x9c, 0x2ee: 0x9c, 0x2ef: 0x9c,
- 0x2f0: 0x9c, 0x2f1: 0x9c, 0x2f2: 0x9c, 0x2f3: 0x9c, 0x2f4: 0xa1, 0x2f5: 0x9c, 0x2f6: 0x9c, 0x2f7: 0x9c,
- 0x2f8: 0x9c, 0x2f9: 0xa2, 0x2fa: 0xa3, 0x2fb: 0x9c, 0x2fc: 0xa4, 0x2fd: 0xa5, 0x2fe: 0x9c, 0x2ff: 0x9c,
- // Block 0xc, offset 0x300
- 0x300: 0xa6, 0x301: 0xa7, 0x302: 0xa8, 0x304: 0xa9, 0x305: 0xaa, 0x306: 0xab, 0x307: 0xac,
- 0x308: 0xad, 0x30b: 0xae, 0x30c: 0x26, 0x30d: 0xaf,
- 0x310: 0xb0, 0x311: 0xb1, 0x312: 0xb2, 0x313: 0xb3, 0x316: 0xb4, 0x317: 0xb5,
- 0x318: 0xb6, 0x319: 0xb7, 0x31a: 0xb8, 0x31c: 0xb9,
- 0x320: 0xba, 0x324: 0xbb, 0x325: 0xbc, 0x327: 0xbd,
- 0x328: 0xbe, 0x329: 0xbf, 0x32a: 0xc0,
- 0x330: 0xc1, 0x332: 0xc2, 0x334: 0xc3, 0x335: 0xc4, 0x336: 0xc5,
- 0x33b: 0xc6, 0x33f: 0xc7,
- // Block 0xd, offset 0x340
- 0x36b: 0xc8, 0x36c: 0xc9,
- 0x37d: 0xca, 0x37e: 0xcb, 0x37f: 0xcc,
- // Block 0xe, offset 0x380
- 0x3b2: 0xcd,
- // Block 0xf, offset 0x3c0
- 0x3c5: 0xce, 0x3c6: 0xcf,
- 0x3c8: 0x56, 0x3c9: 0xd0, 0x3cc: 0x56, 0x3cd: 0xd1,
- 0x3db: 0xd2, 0x3dc: 0xd3, 0x3dd: 0xd4, 0x3de: 0xd5, 0x3df: 0xd6,
- 0x3e8: 0xd7, 0x3e9: 0xd8, 0x3ea: 0xd9,
- // Block 0x10, offset 0x400
- 0x400: 0xda, 0x404: 0xc9,
- 0x40b: 0xdb,
- 0x420: 0x9c, 0x421: 0x9c, 0x422: 0x9c, 0x423: 0xdc, 0x424: 0x9c, 0x425: 0xdd, 0x426: 0x9c, 0x427: 0x9c,
- 0x428: 0x9c, 0x429: 0x9c, 0x42a: 0x9c, 0x42b: 0x9c, 0x42c: 0x9c, 0x42d: 0x9c, 0x42e: 0x9c, 0x42f: 0x9c,
- 0x430: 0x9c, 0x431: 0xa4, 0x432: 0x0e, 0x433: 0x9c, 0x434: 0x0e, 0x435: 0xde, 0x436: 0x9c, 0x437: 0x9c,
- 0x438: 0x0e, 0x439: 0x0e, 0x43a: 0x0e, 0x43b: 0xdf, 0x43c: 0x9c, 0x43d: 0x9c, 0x43e: 0x9c, 0x43f: 0x9c,
- // Block 0x11, offset 0x440
- 0x440: 0xe0, 0x441: 0x56, 0x442: 0xe1, 0x443: 0xe2, 0x444: 0xe3, 0x445: 0xe4, 0x446: 0xe5,
- 0x449: 0xe6, 0x44c: 0x56, 0x44d: 0x56, 0x44e: 0x56, 0x44f: 0x56,
- 0x450: 0x56, 0x451: 0x56, 0x452: 0x56, 0x453: 0x56, 0x454: 0x56, 0x455: 0x56, 0x456: 0x56, 0x457: 0x56,
- 0x458: 0x56, 0x459: 0x56, 0x45a: 0x56, 0x45b: 0xe7, 0x45c: 0x56, 0x45d: 0x6c, 0x45e: 0x56, 0x45f: 0xe8,
- 0x460: 0xe9, 0x461: 0xea, 0x462: 0xeb, 0x464: 0x56, 0x465: 0xec, 0x466: 0x56, 0x467: 0xed,
- 0x468: 0x56, 0x469: 0xee, 0x46a: 0xef, 0x46b: 0xf0, 0x46c: 0x56, 0x46d: 0x56, 0x46e: 0xf1, 0x46f: 0xf2,
- 0x47f: 0xf3,
- // Block 0x12, offset 0x480
- 0x4bf: 0xf3,
- // Block 0x13, offset 0x4c0
- 0x4d0: 0x09, 0x4d1: 0x0a, 0x4d6: 0x0b,
- 0x4db: 0x0c, 0x4dd: 0x0d, 0x4de: 0x0e, 0x4df: 0x0f,
- 0x4ef: 0x10,
- 0x4ff: 0x10,
- // Block 0x14, offset 0x500
- 0x50f: 0x10,
- 0x51f: 0x10,
- 0x52f: 0x10,
- 0x53f: 0x10,
- // Block 0x15, offset 0x540
- 0x540: 0xf4, 0x541: 0xf4, 0x542: 0xf4, 0x543: 0xf4, 0x544: 0x05, 0x545: 0x05, 0x546: 0x05, 0x547: 0xf5,
- 0x548: 0xf4, 0x549: 0xf4, 0x54a: 0xf4, 0x54b: 0xf4, 0x54c: 0xf4, 0x54d: 0xf4, 0x54e: 0xf4, 0x54f: 0xf4,
- 0x550: 0xf4, 0x551: 0xf4, 0x552: 0xf4, 0x553: 0xf4, 0x554: 0xf4, 0x555: 0xf4, 0x556: 0xf4, 0x557: 0xf4,
- 0x558: 0xf4, 0x559: 0xf4, 0x55a: 0xf4, 0x55b: 0xf4, 0x55c: 0xf4, 0x55d: 0xf4, 0x55e: 0xf4, 0x55f: 0xf4,
- 0x560: 0xf4, 0x561: 0xf4, 0x562: 0xf4, 0x563: 0xf4, 0x564: 0xf4, 0x565: 0xf4, 0x566: 0xf4, 0x567: 0xf4,
- 0x568: 0xf4, 0x569: 0xf4, 0x56a: 0xf4, 0x56b: 0xf4, 0x56c: 0xf4, 0x56d: 0xf4, 0x56e: 0xf4, 0x56f: 0xf4,
- 0x570: 0xf4, 0x571: 0xf4, 0x572: 0xf4, 0x573: 0xf4, 0x574: 0xf4, 0x575: 0xf4, 0x576: 0xf4, 0x577: 0xf4,
- 0x578: 0xf4, 0x579: 0xf4, 0x57a: 0xf4, 0x57b: 0xf4, 0x57c: 0xf4, 0x57d: 0xf4, 0x57e: 0xf4, 0x57f: 0xf4,
- // Block 0x16, offset 0x580
- 0x58f: 0x10,
- 0x59f: 0x10,
- 0x5a0: 0x13,
- 0x5af: 0x10,
- 0x5bf: 0x10,
- // Block 0x17, offset 0x5c0
- 0x5cf: 0x10,
-}
-
-// Total table size 17464 bytes (17KiB); checksum: F50EF68C
diff --git a/vendor/golang.org/x/text/unicode/bidi/tables15.0.0.go b/vendor/golang.org/x/text/unicode/bidi/tables15.0.0.go
index f15746f7..9f7e52da 100644
--- a/vendor/golang.org/x/text/unicode/bidi/tables15.0.0.go
+++ b/vendor/golang.org/x/text/unicode/bidi/tables15.0.0.go
@@ -1,6 +1,6 @@
// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
-//go:build go1.21
+//go:build !go1.27
package bidi
diff --git a/vendor/golang.org/x/text/unicode/bidi/tables17.0.0.go b/vendor/golang.org/x/text/unicode/bidi/tables17.0.0.go
new file mode 100644
index 00000000..3dd7cf66
--- /dev/null
+++ b/vendor/golang.org/x/text/unicode/bidi/tables17.0.0.go
@@ -0,0 +1,2135 @@
+// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
+
+//go:build go1.27
+
+package bidi
+
+// UnicodeVersion is the Unicode version from which the tables in this package are derived.
+const UnicodeVersion = "17.0.0"
+
+// xorMasks contains masks to be xor-ed with brackets to get the reverse
+// version.
+var xorMasks = []int32{ // 8 elements
+ 0, 1, 6, 7, 3, 15, 29, 63,
+} // Size: 56 bytes
+
+// lookup returns the trie value for the first UTF-8 encoding in s and
+// the width in bytes of this encoding. The size will be 0 if s does not
+// hold enough bytes to complete the encoding. len(s) must be greater than 0.
+func (t *bidiTrie) lookup(s []byte) (v uint8, sz int) {
+ c0 := s[0]
+ switch {
+ case c0 < 0x80: // is ASCII
+ return bidiValues[c0], 1
+ case c0 < 0xC2:
+ return 0, 1 // Illegal UTF-8: not a starter, not ASCII.
+ case c0 < 0xE0: // 2-byte UTF-8
+ if len(s) < 2 {
+ return 0, 0
+ }
+ i := bidiIndex[c0]
+ c1 := s[1]
+ if c1 < 0x80 || 0xC0 <= c1 {
+ return 0, 1 // Illegal UTF-8: not a continuation byte.
+ }
+ return t.lookupValue(uint32(i), c1), 2
+ case c0 < 0xF0: // 3-byte UTF-8
+ if len(s) < 3 {
+ return 0, 0
+ }
+ i := bidiIndex[c0]
+ c1 := s[1]
+ if c1 < 0x80 || 0xC0 <= c1 {
+ return 0, 1 // Illegal UTF-8: not a continuation byte.
+ }
+ o := uint32(i)<<6 + uint32(c1)
+ i = bidiIndex[o]
+ c2 := s[2]
+ if c2 < 0x80 || 0xC0 <= c2 {
+ return 0, 2 // Illegal UTF-8: not a continuation byte.
+ }
+ return t.lookupValue(uint32(i), c2), 3
+ case c0 < 0xF8: // 4-byte UTF-8
+ if len(s) < 4 {
+ return 0, 0
+ }
+ i := bidiIndex[c0]
+ c1 := s[1]
+ if c1 < 0x80 || 0xC0 <= c1 {
+ return 0, 1 // Illegal UTF-8: not a continuation byte.
+ }
+ o := uint32(i)<<6 + uint32(c1)
+ i = bidiIndex[o]
+ c2 := s[2]
+ if c2 < 0x80 || 0xC0 <= c2 {
+ return 0, 2 // Illegal UTF-8: not a continuation byte.
+ }
+ o = uint32(i)<<6 + uint32(c2)
+ i = bidiIndex[o]
+ c3 := s[3]
+ if c3 < 0x80 || 0xC0 <= c3 {
+ return 0, 3 // Illegal UTF-8: not a continuation byte.
+ }
+ return t.lookupValue(uint32(i), c3), 4
+ }
+ // Illegal rune
+ return 0, 1
+}
+
+// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.
+// s must start with a full and valid UTF-8 encoded rune.
+func (t *bidiTrie) lookupUnsafe(s []byte) uint8 {
+ c0 := s[0]
+ if c0 < 0x80 { // is ASCII
+ return bidiValues[c0]
+ }
+ i := bidiIndex[c0]
+ if c0 < 0xE0 { // 2-byte UTF-8
+ return t.lookupValue(uint32(i), s[1])
+ }
+ i = bidiIndex[uint32(i)<<6+uint32(s[1])]
+ if c0 < 0xF0 { // 3-byte UTF-8
+ return t.lookupValue(uint32(i), s[2])
+ }
+ i = bidiIndex[uint32(i)<<6+uint32(s[2])]
+ if c0 < 0xF8 { // 4-byte UTF-8
+ return t.lookupValue(uint32(i), s[3])
+ }
+ return 0
+}
+
+// lookupString returns the trie value for the first UTF-8 encoding in s and
+// the width in bytes of this encoding. The size will be 0 if s does not
+// hold enough bytes to complete the encoding. len(s) must be greater than 0.
+func (t *bidiTrie) lookupString(s string) (v uint8, sz int) {
+ c0 := s[0]
+ switch {
+ case c0 < 0x80: // is ASCII
+ return bidiValues[c0], 1
+ case c0 < 0xC2:
+ return 0, 1 // Illegal UTF-8: not a starter, not ASCII.
+ case c0 < 0xE0: // 2-byte UTF-8
+ if len(s) < 2 {
+ return 0, 0
+ }
+ i := bidiIndex[c0]
+ c1 := s[1]
+ if c1 < 0x80 || 0xC0 <= c1 {
+ return 0, 1 // Illegal UTF-8: not a continuation byte.
+ }
+ return t.lookupValue(uint32(i), c1), 2
+ case c0 < 0xF0: // 3-byte UTF-8
+ if len(s) < 3 {
+ return 0, 0
+ }
+ i := bidiIndex[c0]
+ c1 := s[1]
+ if c1 < 0x80 || 0xC0 <= c1 {
+ return 0, 1 // Illegal UTF-8: not a continuation byte.
+ }
+ o := uint32(i)<<6 + uint32(c1)
+ i = bidiIndex[o]
+ c2 := s[2]
+ if c2 < 0x80 || 0xC0 <= c2 {
+ return 0, 2 // Illegal UTF-8: not a continuation byte.
+ }
+ return t.lookupValue(uint32(i), c2), 3
+ case c0 < 0xF8: // 4-byte UTF-8
+ if len(s) < 4 {
+ return 0, 0
+ }
+ i := bidiIndex[c0]
+ c1 := s[1]
+ if c1 < 0x80 || 0xC0 <= c1 {
+ return 0, 1 // Illegal UTF-8: not a continuation byte.
+ }
+ o := uint32(i)<<6 + uint32(c1)
+ i = bidiIndex[o]
+ c2 := s[2]
+ if c2 < 0x80 || 0xC0 <= c2 {
+ return 0, 2 // Illegal UTF-8: not a continuation byte.
+ }
+ o = uint32(i)<<6 + uint32(c2)
+ i = bidiIndex[o]
+ c3 := s[3]
+ if c3 < 0x80 || 0xC0 <= c3 {
+ return 0, 3 // Illegal UTF-8: not a continuation byte.
+ }
+ return t.lookupValue(uint32(i), c3), 4
+ }
+ // Illegal rune
+ return 0, 1
+}
+
+// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.
+// s must start with a full and valid UTF-8 encoded rune.
+func (t *bidiTrie) lookupStringUnsafe(s string) uint8 {
+ c0 := s[0]
+ if c0 < 0x80 { // is ASCII
+ return bidiValues[c0]
+ }
+ i := bidiIndex[c0]
+ if c0 < 0xE0 { // 2-byte UTF-8
+ return t.lookupValue(uint32(i), s[1])
+ }
+ i = bidiIndex[uint32(i)<<6+uint32(s[1])]
+ if c0 < 0xF0 { // 3-byte UTF-8
+ return t.lookupValue(uint32(i), s[2])
+ }
+ i = bidiIndex[uint32(i)<<6+uint32(s[2])]
+ if c0 < 0xF8 { // 4-byte UTF-8
+ return t.lookupValue(uint32(i), s[3])
+ }
+ return 0
+}
+
+// bidiTrie. Total size: 20608 bytes (20.12 KiB). Checksum: 291cd0103a32a537.
+type bidiTrie struct{}
+
+func newBidiTrie(i int) *bidiTrie {
+ return &bidiTrie{}
+}
+
+// lookupValue determines the type of block n and looks up the value for b.
+func (t *bidiTrie) lookupValue(n uint32, b byte) uint8 {
+ switch {
+ default:
+ return uint8(bidiValues[n<<6+uint32(b)])
+ }
+}
+
+// bidiValues: 270 blocks, 17280 entries, 17280 bytes
+// The third block is the zero block.
+var bidiValues = [17280]uint8{
+ // Block 0x0, offset 0x0
+ 0x00: 0x000b, 0x01: 0x000b, 0x02: 0x000b, 0x03: 0x000b, 0x04: 0x000b, 0x05: 0x000b,
+ 0x06: 0x000b, 0x07: 0x000b, 0x08: 0x000b, 0x09: 0x0008, 0x0a: 0x0007, 0x0b: 0x0008,
+ 0x0c: 0x0009, 0x0d: 0x0007, 0x0e: 0x000b, 0x0f: 0x000b, 0x10: 0x000b, 0x11: 0x000b,
+ 0x12: 0x000b, 0x13: 0x000b, 0x14: 0x000b, 0x15: 0x000b, 0x16: 0x000b, 0x17: 0x000b,
+ 0x18: 0x000b, 0x19: 0x000b, 0x1a: 0x000b, 0x1b: 0x000b, 0x1c: 0x0007, 0x1d: 0x0007,
+ 0x1e: 0x0007, 0x1f: 0x0008, 0x20: 0x0009, 0x21: 0x000a, 0x22: 0x000a, 0x23: 0x0004,
+ 0x24: 0x0004, 0x25: 0x0004, 0x26: 0x000a, 0x27: 0x000a, 0x28: 0x003a, 0x29: 0x002a,
+ 0x2a: 0x000a, 0x2b: 0x0003, 0x2c: 0x0006, 0x2d: 0x0003, 0x2e: 0x0006, 0x2f: 0x0006,
+ 0x30: 0x0002, 0x31: 0x0002, 0x32: 0x0002, 0x33: 0x0002, 0x34: 0x0002, 0x35: 0x0002,
+ 0x36: 0x0002, 0x37: 0x0002, 0x38: 0x0002, 0x39: 0x0002, 0x3a: 0x0006, 0x3b: 0x000a,
+ 0x3c: 0x000a, 0x3d: 0x000a, 0x3e: 0x000a, 0x3f: 0x000a,
+ // Block 0x1, offset 0x40
+ 0x40: 0x000a,
+ 0x5b: 0x005a, 0x5c: 0x000a, 0x5d: 0x004a,
+ 0x5e: 0x000a, 0x5f: 0x000a, 0x60: 0x000a,
+ 0x7b: 0x005a,
+ 0x7c: 0x000a, 0x7d: 0x004a, 0x7e: 0x000a, 0x7f: 0x000b,
+ // Block 0x2, offset 0x80
+ // Block 0x3, offset 0xc0
+ 0xc0: 0x000b, 0xc1: 0x000b, 0xc2: 0x000b, 0xc3: 0x000b, 0xc4: 0x000b, 0xc5: 0x0007,
+ 0xc6: 0x000b, 0xc7: 0x000b, 0xc8: 0x000b, 0xc9: 0x000b, 0xca: 0x000b, 0xcb: 0x000b,
+ 0xcc: 0x000b, 0xcd: 0x000b, 0xce: 0x000b, 0xcf: 0x000b, 0xd0: 0x000b, 0xd1: 0x000b,
+ 0xd2: 0x000b, 0xd3: 0x000b, 0xd4: 0x000b, 0xd5: 0x000b, 0xd6: 0x000b, 0xd7: 0x000b,
+ 0xd8: 0x000b, 0xd9: 0x000b, 0xda: 0x000b, 0xdb: 0x000b, 0xdc: 0x000b, 0xdd: 0x000b,
+ 0xde: 0x000b, 0xdf: 0x000b, 0xe0: 0x0006, 0xe1: 0x000a, 0xe2: 0x0004, 0xe3: 0x0004,
+ 0xe4: 0x0004, 0xe5: 0x0004, 0xe6: 0x000a, 0xe7: 0x000a, 0xe8: 0x000a, 0xe9: 0x000a,
+ 0xeb: 0x000a, 0xec: 0x000a, 0xed: 0x000b, 0xee: 0x000a, 0xef: 0x000a,
+ 0xf0: 0x0004, 0xf1: 0x0004, 0xf2: 0x0002, 0xf3: 0x0002, 0xf4: 0x000a,
+ 0xf6: 0x000a, 0xf7: 0x000a, 0xf8: 0x000a, 0xf9: 0x0002, 0xfb: 0x000a,
+ 0xfc: 0x000a, 0xfd: 0x000a, 0xfe: 0x000a, 0xff: 0x000a,
+ // Block 0x4, offset 0x100
+ 0x117: 0x000a,
+ 0x137: 0x000a,
+ // Block 0x5, offset 0x140
+ 0x179: 0x000a, 0x17a: 0x000a,
+ // Block 0x6, offset 0x180
+ 0x182: 0x000a, 0x183: 0x000a, 0x184: 0x000a, 0x185: 0x000a,
+ 0x186: 0x000a, 0x187: 0x000a, 0x188: 0x000a, 0x189: 0x000a, 0x18a: 0x000a, 0x18b: 0x000a,
+ 0x18c: 0x000a, 0x18d: 0x000a, 0x18e: 0x000a, 0x18f: 0x000a,
+ 0x192: 0x000a, 0x193: 0x000a, 0x194: 0x000a, 0x195: 0x000a, 0x196: 0x000a, 0x197: 0x000a,
+ 0x198: 0x000a, 0x199: 0x000a, 0x19a: 0x000a, 0x19b: 0x000a, 0x19c: 0x000a, 0x19d: 0x000a,
+ 0x19e: 0x000a, 0x19f: 0x000a,
+ 0x1a5: 0x000a, 0x1a6: 0x000a, 0x1a7: 0x000a, 0x1a8: 0x000a, 0x1a9: 0x000a,
+ 0x1aa: 0x000a, 0x1ab: 0x000a, 0x1ac: 0x000a, 0x1ad: 0x000a, 0x1af: 0x000a,
+ 0x1b0: 0x000a, 0x1b1: 0x000a, 0x1b2: 0x000a, 0x1b3: 0x000a, 0x1b4: 0x000a, 0x1b5: 0x000a,
+ 0x1b6: 0x000a, 0x1b7: 0x000a, 0x1b8: 0x000a, 0x1b9: 0x000a, 0x1ba: 0x000a, 0x1bb: 0x000a,
+ 0x1bc: 0x000a, 0x1bd: 0x000a, 0x1be: 0x000a, 0x1bf: 0x000a,
+ // Block 0x7, offset 0x1c0
+ 0x1c0: 0x000c, 0x1c1: 0x000c, 0x1c2: 0x000c, 0x1c3: 0x000c, 0x1c4: 0x000c, 0x1c5: 0x000c,
+ 0x1c6: 0x000c, 0x1c7: 0x000c, 0x1c8: 0x000c, 0x1c9: 0x000c, 0x1ca: 0x000c, 0x1cb: 0x000c,
+ 0x1cc: 0x000c, 0x1cd: 0x000c, 0x1ce: 0x000c, 0x1cf: 0x000c, 0x1d0: 0x000c, 0x1d1: 0x000c,
+ 0x1d2: 0x000c, 0x1d3: 0x000c, 0x1d4: 0x000c, 0x1d5: 0x000c, 0x1d6: 0x000c, 0x1d7: 0x000c,
+ 0x1d8: 0x000c, 0x1d9: 0x000c, 0x1da: 0x000c, 0x1db: 0x000c, 0x1dc: 0x000c, 0x1dd: 0x000c,
+ 0x1de: 0x000c, 0x1df: 0x000c, 0x1e0: 0x000c, 0x1e1: 0x000c, 0x1e2: 0x000c, 0x1e3: 0x000c,
+ 0x1e4: 0x000c, 0x1e5: 0x000c, 0x1e6: 0x000c, 0x1e7: 0x000c, 0x1e8: 0x000c, 0x1e9: 0x000c,
+ 0x1ea: 0x000c, 0x1eb: 0x000c, 0x1ec: 0x000c, 0x1ed: 0x000c, 0x1ee: 0x000c, 0x1ef: 0x000c,
+ 0x1f0: 0x000c, 0x1f1: 0x000c, 0x1f2: 0x000c, 0x1f3: 0x000c, 0x1f4: 0x000c, 0x1f5: 0x000c,
+ 0x1f6: 0x000c, 0x1f7: 0x000c, 0x1f8: 0x000c, 0x1f9: 0x000c, 0x1fa: 0x000c, 0x1fb: 0x000c,
+ 0x1fc: 0x000c, 0x1fd: 0x000c, 0x1fe: 0x000c, 0x1ff: 0x000c,
+ // Block 0x8, offset 0x200
+ 0x200: 0x000c, 0x201: 0x000c, 0x202: 0x000c, 0x203: 0x000c, 0x204: 0x000c, 0x205: 0x000c,
+ 0x206: 0x000c, 0x207: 0x000c, 0x208: 0x000c, 0x209: 0x000c, 0x20a: 0x000c, 0x20b: 0x000c,
+ 0x20c: 0x000c, 0x20d: 0x000c, 0x20e: 0x000c, 0x20f: 0x000c, 0x210: 0x000c, 0x211: 0x000c,
+ 0x212: 0x000c, 0x213: 0x000c, 0x214: 0x000c, 0x215: 0x000c, 0x216: 0x000c, 0x217: 0x000c,
+ 0x218: 0x000c, 0x219: 0x000c, 0x21a: 0x000c, 0x21b: 0x000c, 0x21c: 0x000c, 0x21d: 0x000c,
+ 0x21e: 0x000c, 0x21f: 0x000c, 0x220: 0x000c, 0x221: 0x000c, 0x222: 0x000c, 0x223: 0x000c,
+ 0x224: 0x000c, 0x225: 0x000c, 0x226: 0x000c, 0x227: 0x000c, 0x228: 0x000c, 0x229: 0x000c,
+ 0x22a: 0x000c, 0x22b: 0x000c, 0x22c: 0x000c, 0x22d: 0x000c, 0x22e: 0x000c, 0x22f: 0x000c,
+ 0x234: 0x000a, 0x235: 0x000a,
+ 0x23e: 0x000a,
+ // Block 0x9, offset 0x240
+ 0x244: 0x000a, 0x245: 0x000a,
+ 0x247: 0x000a,
+ // Block 0xa, offset 0x280
+ 0x2b6: 0x000a,
+ // Block 0xb, offset 0x2c0
+ 0x2c3: 0x000c, 0x2c4: 0x000c, 0x2c5: 0x000c,
+ 0x2c6: 0x000c, 0x2c7: 0x000c, 0x2c8: 0x000c, 0x2c9: 0x000c,
+ // Block 0xc, offset 0x300
+ 0x30a: 0x000a,
+ 0x30d: 0x000a, 0x30e: 0x000a, 0x30f: 0x0004, 0x310: 0x0001, 0x311: 0x000c,
+ 0x312: 0x000c, 0x313: 0x000c, 0x314: 0x000c, 0x315: 0x000c, 0x316: 0x000c, 0x317: 0x000c,
+ 0x318: 0x000c, 0x319: 0x000c, 0x31a: 0x000c, 0x31b: 0x000c, 0x31c: 0x000c, 0x31d: 0x000c,
+ 0x31e: 0x000c, 0x31f: 0x000c, 0x320: 0x000c, 0x321: 0x000c, 0x322: 0x000c, 0x323: 0x000c,
+ 0x324: 0x000c, 0x325: 0x000c, 0x326: 0x000c, 0x327: 0x000c, 0x328: 0x000c, 0x329: 0x000c,
+ 0x32a: 0x000c, 0x32b: 0x000c, 0x32c: 0x000c, 0x32d: 0x000c, 0x32e: 0x000c, 0x32f: 0x000c,
+ 0x330: 0x000c, 0x331: 0x000c, 0x332: 0x000c, 0x333: 0x000c, 0x334: 0x000c, 0x335: 0x000c,
+ 0x336: 0x000c, 0x337: 0x000c, 0x338: 0x000c, 0x339: 0x000c, 0x33a: 0x000c, 0x33b: 0x000c,
+ 0x33c: 0x000c, 0x33d: 0x000c, 0x33e: 0x0001, 0x33f: 0x000c,
+ // Block 0xd, offset 0x340
+ 0x340: 0x0001, 0x341: 0x000c, 0x342: 0x000c, 0x343: 0x0001, 0x344: 0x000c, 0x345: 0x000c,
+ 0x346: 0x0001, 0x347: 0x000c, 0x348: 0x0001, 0x349: 0x0001, 0x34a: 0x0001, 0x34b: 0x0001,
+ 0x34c: 0x0001, 0x34d: 0x0001, 0x34e: 0x0001, 0x34f: 0x0001, 0x350: 0x0001, 0x351: 0x0001,
+ 0x352: 0x0001, 0x353: 0x0001, 0x354: 0x0001, 0x355: 0x0001, 0x356: 0x0001, 0x357: 0x0001,
+ 0x358: 0x0001, 0x359: 0x0001, 0x35a: 0x0001, 0x35b: 0x0001, 0x35c: 0x0001, 0x35d: 0x0001,
+ 0x35e: 0x0001, 0x35f: 0x0001, 0x360: 0x0001, 0x361: 0x0001, 0x362: 0x0001, 0x363: 0x0001,
+ 0x364: 0x0001, 0x365: 0x0001, 0x366: 0x0001, 0x367: 0x0001, 0x368: 0x0001, 0x369: 0x0001,
+ 0x36a: 0x0001, 0x36b: 0x0001, 0x36c: 0x0001, 0x36d: 0x0001, 0x36e: 0x0001, 0x36f: 0x0001,
+ 0x370: 0x0001, 0x371: 0x0001, 0x372: 0x0001, 0x373: 0x0001, 0x374: 0x0001, 0x375: 0x0001,
+ 0x376: 0x0001, 0x377: 0x0001, 0x378: 0x0001, 0x379: 0x0001, 0x37a: 0x0001, 0x37b: 0x0001,
+ 0x37c: 0x0001, 0x37d: 0x0001, 0x37e: 0x0001, 0x37f: 0x0001,
+ // Block 0xe, offset 0x380
+ 0x380: 0x0005, 0x381: 0x0005, 0x382: 0x0005, 0x383: 0x0005, 0x384: 0x0005, 0x385: 0x0005,
+ 0x386: 0x000a, 0x387: 0x000a, 0x388: 0x000d, 0x389: 0x0004, 0x38a: 0x0004, 0x38b: 0x000d,
+ 0x38c: 0x0006, 0x38d: 0x000d, 0x38e: 0x000a, 0x38f: 0x000a, 0x390: 0x000c, 0x391: 0x000c,
+ 0x392: 0x000c, 0x393: 0x000c, 0x394: 0x000c, 0x395: 0x000c, 0x396: 0x000c, 0x397: 0x000c,
+ 0x398: 0x000c, 0x399: 0x000c, 0x39a: 0x000c, 0x39b: 0x000d, 0x39c: 0x000d, 0x39d: 0x000d,
+ 0x39e: 0x000d, 0x39f: 0x000d, 0x3a0: 0x000d, 0x3a1: 0x000d, 0x3a2: 0x000d, 0x3a3: 0x000d,
+ 0x3a4: 0x000d, 0x3a5: 0x000d, 0x3a6: 0x000d, 0x3a7: 0x000d, 0x3a8: 0x000d, 0x3a9: 0x000d,
+ 0x3aa: 0x000d, 0x3ab: 0x000d, 0x3ac: 0x000d, 0x3ad: 0x000d, 0x3ae: 0x000d, 0x3af: 0x000d,
+ 0x3b0: 0x000d, 0x3b1: 0x000d, 0x3b2: 0x000d, 0x3b3: 0x000d, 0x3b4: 0x000d, 0x3b5: 0x000d,
+ 0x3b6: 0x000d, 0x3b7: 0x000d, 0x3b8: 0x000d, 0x3b9: 0x000d, 0x3ba: 0x000d, 0x3bb: 0x000d,
+ 0x3bc: 0x000d, 0x3bd: 0x000d, 0x3be: 0x000d, 0x3bf: 0x000d,
+ // Block 0xf, offset 0x3c0
+ 0x3c0: 0x000d, 0x3c1: 0x000d, 0x3c2: 0x000d, 0x3c3: 0x000d, 0x3c4: 0x000d, 0x3c5: 0x000d,
+ 0x3c6: 0x000d, 0x3c7: 0x000d, 0x3c8: 0x000d, 0x3c9: 0x000d, 0x3ca: 0x000d, 0x3cb: 0x000c,
+ 0x3cc: 0x000c, 0x3cd: 0x000c, 0x3ce: 0x000c, 0x3cf: 0x000c, 0x3d0: 0x000c, 0x3d1: 0x000c,
+ 0x3d2: 0x000c, 0x3d3: 0x000c, 0x3d4: 0x000c, 0x3d5: 0x000c, 0x3d6: 0x000c, 0x3d7: 0x000c,
+ 0x3d8: 0x000c, 0x3d9: 0x000c, 0x3da: 0x000c, 0x3db: 0x000c, 0x3dc: 0x000c, 0x3dd: 0x000c,
+ 0x3de: 0x000c, 0x3df: 0x000c, 0x3e0: 0x0005, 0x3e1: 0x0005, 0x3e2: 0x0005, 0x3e3: 0x0005,
+ 0x3e4: 0x0005, 0x3e5: 0x0005, 0x3e6: 0x0005, 0x3e7: 0x0005, 0x3e8: 0x0005, 0x3e9: 0x0005,
+ 0x3ea: 0x0004, 0x3eb: 0x0005, 0x3ec: 0x0005, 0x3ed: 0x000d, 0x3ee: 0x000d, 0x3ef: 0x000d,
+ 0x3f0: 0x000c, 0x3f1: 0x000d, 0x3f2: 0x000d, 0x3f3: 0x000d, 0x3f4: 0x000d, 0x3f5: 0x000d,
+ 0x3f6: 0x000d, 0x3f7: 0x000d, 0x3f8: 0x000d, 0x3f9: 0x000d, 0x3fa: 0x000d, 0x3fb: 0x000d,
+ 0x3fc: 0x000d, 0x3fd: 0x000d, 0x3fe: 0x000d, 0x3ff: 0x000d,
+ // Block 0x10, offset 0x400
+ 0x400: 0x000d, 0x401: 0x000d, 0x402: 0x000d, 0x403: 0x000d, 0x404: 0x000d, 0x405: 0x000d,
+ 0x406: 0x000d, 0x407: 0x000d, 0x408: 0x000d, 0x409: 0x000d, 0x40a: 0x000d, 0x40b: 0x000d,
+ 0x40c: 0x000d, 0x40d: 0x000d, 0x40e: 0x000d, 0x40f: 0x000d, 0x410: 0x000d, 0x411: 0x000d,
+ 0x412: 0x000d, 0x413: 0x000d, 0x414: 0x000d, 0x415: 0x000d, 0x416: 0x000d, 0x417: 0x000d,
+ 0x418: 0x000d, 0x419: 0x000d, 0x41a: 0x000d, 0x41b: 0x000d, 0x41c: 0x000d, 0x41d: 0x000d,
+ 0x41e: 0x000d, 0x41f: 0x000d, 0x420: 0x000d, 0x421: 0x000d, 0x422: 0x000d, 0x423: 0x000d,
+ 0x424: 0x000d, 0x425: 0x000d, 0x426: 0x000d, 0x427: 0x000d, 0x428: 0x000d, 0x429: 0x000d,
+ 0x42a: 0x000d, 0x42b: 0x000d, 0x42c: 0x000d, 0x42d: 0x000d, 0x42e: 0x000d, 0x42f: 0x000d,
+ 0x430: 0x000d, 0x431: 0x000d, 0x432: 0x000d, 0x433: 0x000d, 0x434: 0x000d, 0x435: 0x000d,
+ 0x436: 0x000d, 0x437: 0x000d, 0x438: 0x000d, 0x439: 0x000d, 0x43a: 0x000d, 0x43b: 0x000d,
+ 0x43c: 0x000d, 0x43d: 0x000d, 0x43e: 0x000d, 0x43f: 0x000d,
+ // Block 0x11, offset 0x440
+ 0x440: 0x000d, 0x441: 0x000d, 0x442: 0x000d, 0x443: 0x000d, 0x444: 0x000d, 0x445: 0x000d,
+ 0x446: 0x000d, 0x447: 0x000d, 0x448: 0x000d, 0x449: 0x000d, 0x44a: 0x000d, 0x44b: 0x000d,
+ 0x44c: 0x000d, 0x44d: 0x000d, 0x44e: 0x000d, 0x44f: 0x000d, 0x450: 0x000d, 0x451: 0x000d,
+ 0x452: 0x000d, 0x453: 0x000d, 0x454: 0x000d, 0x455: 0x000d, 0x456: 0x000c, 0x457: 0x000c,
+ 0x458: 0x000c, 0x459: 0x000c, 0x45a: 0x000c, 0x45b: 0x000c, 0x45c: 0x000c, 0x45d: 0x0005,
+ 0x45e: 0x000a, 0x45f: 0x000c, 0x460: 0x000c, 0x461: 0x000c, 0x462: 0x000c, 0x463: 0x000c,
+ 0x464: 0x000c, 0x465: 0x000d, 0x466: 0x000d, 0x467: 0x000c, 0x468: 0x000c, 0x469: 0x000a,
+ 0x46a: 0x000c, 0x46b: 0x000c, 0x46c: 0x000c, 0x46d: 0x000c, 0x46e: 0x000d, 0x46f: 0x000d,
+ 0x470: 0x0002, 0x471: 0x0002, 0x472: 0x0002, 0x473: 0x0002, 0x474: 0x0002, 0x475: 0x0002,
+ 0x476: 0x0002, 0x477: 0x0002, 0x478: 0x0002, 0x479: 0x0002, 0x47a: 0x000d, 0x47b: 0x000d,
+ 0x47c: 0x000d, 0x47d: 0x000d, 0x47e: 0x000d, 0x47f: 0x000d,
+ // Block 0x12, offset 0x480
+ 0x480: 0x000d, 0x481: 0x000d, 0x482: 0x000d, 0x483: 0x000d, 0x484: 0x000d, 0x485: 0x000d,
+ 0x486: 0x000d, 0x487: 0x000d, 0x488: 0x000d, 0x489: 0x000d, 0x48a: 0x000d, 0x48b: 0x000d,
+ 0x48c: 0x000d, 0x48d: 0x000d, 0x48e: 0x000d, 0x48f: 0x000d, 0x490: 0x000d, 0x491: 0x000c,
+ 0x492: 0x000d, 0x493: 0x000d, 0x494: 0x000d, 0x495: 0x000d, 0x496: 0x000d, 0x497: 0x000d,
+ 0x498: 0x000d, 0x499: 0x000d, 0x49a: 0x000d, 0x49b: 0x000d, 0x49c: 0x000d, 0x49d: 0x000d,
+ 0x49e: 0x000d, 0x49f: 0x000d, 0x4a0: 0x000d, 0x4a1: 0x000d, 0x4a2: 0x000d, 0x4a3: 0x000d,
+ 0x4a4: 0x000d, 0x4a5: 0x000d, 0x4a6: 0x000d, 0x4a7: 0x000d, 0x4a8: 0x000d, 0x4a9: 0x000d,
+ 0x4aa: 0x000d, 0x4ab: 0x000d, 0x4ac: 0x000d, 0x4ad: 0x000d, 0x4ae: 0x000d, 0x4af: 0x000d,
+ 0x4b0: 0x000c, 0x4b1: 0x000c, 0x4b2: 0x000c, 0x4b3: 0x000c, 0x4b4: 0x000c, 0x4b5: 0x000c,
+ 0x4b6: 0x000c, 0x4b7: 0x000c, 0x4b8: 0x000c, 0x4b9: 0x000c, 0x4ba: 0x000c, 0x4bb: 0x000c,
+ 0x4bc: 0x000c, 0x4bd: 0x000c, 0x4be: 0x000c, 0x4bf: 0x000c,
+ // Block 0x13, offset 0x4c0
+ 0x4c0: 0x000c, 0x4c1: 0x000c, 0x4c2: 0x000c, 0x4c3: 0x000c, 0x4c4: 0x000c, 0x4c5: 0x000c,
+ 0x4c6: 0x000c, 0x4c7: 0x000c, 0x4c8: 0x000c, 0x4c9: 0x000c, 0x4ca: 0x000c, 0x4cb: 0x000d,
+ 0x4cc: 0x000d, 0x4cd: 0x000d, 0x4ce: 0x000d, 0x4cf: 0x000d, 0x4d0: 0x000d, 0x4d1: 0x000d,
+ 0x4d2: 0x000d, 0x4d3: 0x000d, 0x4d4: 0x000d, 0x4d5: 0x000d, 0x4d6: 0x000d, 0x4d7: 0x000d,
+ 0x4d8: 0x000d, 0x4d9: 0x000d, 0x4da: 0x000d, 0x4db: 0x000d, 0x4dc: 0x000d, 0x4dd: 0x000d,
+ 0x4de: 0x000d, 0x4df: 0x000d, 0x4e0: 0x000d, 0x4e1: 0x000d, 0x4e2: 0x000d, 0x4e3: 0x000d,
+ 0x4e4: 0x000d, 0x4e5: 0x000d, 0x4e6: 0x000d, 0x4e7: 0x000d, 0x4e8: 0x000d, 0x4e9: 0x000d,
+ 0x4ea: 0x000d, 0x4eb: 0x000d, 0x4ec: 0x000d, 0x4ed: 0x000d, 0x4ee: 0x000d, 0x4ef: 0x000d,
+ 0x4f0: 0x000d, 0x4f1: 0x000d, 0x4f2: 0x000d, 0x4f3: 0x000d, 0x4f4: 0x000d, 0x4f5: 0x000d,
+ 0x4f6: 0x000d, 0x4f7: 0x000d, 0x4f8: 0x000d, 0x4f9: 0x000d, 0x4fa: 0x000d, 0x4fb: 0x000d,
+ 0x4fc: 0x000d, 0x4fd: 0x000d, 0x4fe: 0x000d, 0x4ff: 0x000d,
+ // Block 0x14, offset 0x500
+ 0x500: 0x000d, 0x501: 0x000d, 0x502: 0x000d, 0x503: 0x000d, 0x504: 0x000d, 0x505: 0x000d,
+ 0x506: 0x000d, 0x507: 0x000d, 0x508: 0x000d, 0x509: 0x000d, 0x50a: 0x000d, 0x50b: 0x000d,
+ 0x50c: 0x000d, 0x50d: 0x000d, 0x50e: 0x000d, 0x50f: 0x000d, 0x510: 0x000d, 0x511: 0x000d,
+ 0x512: 0x000d, 0x513: 0x000d, 0x514: 0x000d, 0x515: 0x000d, 0x516: 0x000d, 0x517: 0x000d,
+ 0x518: 0x000d, 0x519: 0x000d, 0x51a: 0x000d, 0x51b: 0x000d, 0x51c: 0x000d, 0x51d: 0x000d,
+ 0x51e: 0x000d, 0x51f: 0x000d, 0x520: 0x000d, 0x521: 0x000d, 0x522: 0x000d, 0x523: 0x000d,
+ 0x524: 0x000d, 0x525: 0x000d, 0x526: 0x000c, 0x527: 0x000c, 0x528: 0x000c, 0x529: 0x000c,
+ 0x52a: 0x000c, 0x52b: 0x000c, 0x52c: 0x000c, 0x52d: 0x000c, 0x52e: 0x000c, 0x52f: 0x000c,
+ 0x530: 0x000c, 0x531: 0x000d, 0x532: 0x000d, 0x533: 0x000d, 0x534: 0x000d, 0x535: 0x000d,
+ 0x536: 0x000d, 0x537: 0x000d, 0x538: 0x000d, 0x539: 0x000d, 0x53a: 0x000d, 0x53b: 0x000d,
+ 0x53c: 0x000d, 0x53d: 0x000d, 0x53e: 0x000d, 0x53f: 0x000d,
+ // Block 0x15, offset 0x540
+ 0x540: 0x0001, 0x541: 0x0001, 0x542: 0x0001, 0x543: 0x0001, 0x544: 0x0001, 0x545: 0x0001,
+ 0x546: 0x0001, 0x547: 0x0001, 0x548: 0x0001, 0x549: 0x0001, 0x54a: 0x0001, 0x54b: 0x0001,
+ 0x54c: 0x0001, 0x54d: 0x0001, 0x54e: 0x0001, 0x54f: 0x0001, 0x550: 0x0001, 0x551: 0x0001,
+ 0x552: 0x0001, 0x553: 0x0001, 0x554: 0x0001, 0x555: 0x0001, 0x556: 0x0001, 0x557: 0x0001,
+ 0x558: 0x0001, 0x559: 0x0001, 0x55a: 0x0001, 0x55b: 0x0001, 0x55c: 0x0001, 0x55d: 0x0001,
+ 0x55e: 0x0001, 0x55f: 0x0001, 0x560: 0x0001, 0x561: 0x0001, 0x562: 0x0001, 0x563: 0x0001,
+ 0x564: 0x0001, 0x565: 0x0001, 0x566: 0x0001, 0x567: 0x0001, 0x568: 0x0001, 0x569: 0x0001,
+ 0x56a: 0x0001, 0x56b: 0x000c, 0x56c: 0x000c, 0x56d: 0x000c, 0x56e: 0x000c, 0x56f: 0x000c,
+ 0x570: 0x000c, 0x571: 0x000c, 0x572: 0x000c, 0x573: 0x000c, 0x574: 0x0001, 0x575: 0x0001,
+ 0x576: 0x000a, 0x577: 0x000a, 0x578: 0x000a, 0x579: 0x000a, 0x57a: 0x0001, 0x57b: 0x0001,
+ 0x57c: 0x0001, 0x57d: 0x000c, 0x57e: 0x0001, 0x57f: 0x0001,
+ // Block 0x16, offset 0x580
+ 0x580: 0x0001, 0x581: 0x0001, 0x582: 0x0001, 0x583: 0x0001, 0x584: 0x0001, 0x585: 0x0001,
+ 0x586: 0x0001, 0x587: 0x0001, 0x588: 0x0001, 0x589: 0x0001, 0x58a: 0x0001, 0x58b: 0x0001,
+ 0x58c: 0x0001, 0x58d: 0x0001, 0x58e: 0x0001, 0x58f: 0x0001, 0x590: 0x0001, 0x591: 0x0001,
+ 0x592: 0x0001, 0x593: 0x0001, 0x594: 0x0001, 0x595: 0x0001, 0x596: 0x000c, 0x597: 0x000c,
+ 0x598: 0x000c, 0x599: 0x000c, 0x59a: 0x0001, 0x59b: 0x000c, 0x59c: 0x000c, 0x59d: 0x000c,
+ 0x59e: 0x000c, 0x59f: 0x000c, 0x5a0: 0x000c, 0x5a1: 0x000c, 0x5a2: 0x000c, 0x5a3: 0x000c,
+ 0x5a4: 0x0001, 0x5a5: 0x000c, 0x5a6: 0x000c, 0x5a7: 0x000c, 0x5a8: 0x0001, 0x5a9: 0x000c,
+ 0x5aa: 0x000c, 0x5ab: 0x000c, 0x5ac: 0x000c, 0x5ad: 0x000c, 0x5ae: 0x0001, 0x5af: 0x0001,
+ 0x5b0: 0x0001, 0x5b1: 0x0001, 0x5b2: 0x0001, 0x5b3: 0x0001, 0x5b4: 0x0001, 0x5b5: 0x0001,
+ 0x5b6: 0x0001, 0x5b7: 0x0001, 0x5b8: 0x0001, 0x5b9: 0x0001, 0x5ba: 0x0001, 0x5bb: 0x0001,
+ 0x5bc: 0x0001, 0x5bd: 0x0001, 0x5be: 0x0001, 0x5bf: 0x0001,
+ // Block 0x17, offset 0x5c0
+ 0x5c0: 0x0001, 0x5c1: 0x0001, 0x5c2: 0x0001, 0x5c3: 0x0001, 0x5c4: 0x0001, 0x5c5: 0x0001,
+ 0x5c6: 0x0001, 0x5c7: 0x0001, 0x5c8: 0x0001, 0x5c9: 0x0001, 0x5ca: 0x0001, 0x5cb: 0x0001,
+ 0x5cc: 0x0001, 0x5cd: 0x0001, 0x5ce: 0x0001, 0x5cf: 0x0001, 0x5d0: 0x0001, 0x5d1: 0x0001,
+ 0x5d2: 0x0001, 0x5d3: 0x0001, 0x5d4: 0x0001, 0x5d5: 0x0001, 0x5d6: 0x0001, 0x5d7: 0x0001,
+ 0x5d8: 0x0001, 0x5d9: 0x000c, 0x5da: 0x000c, 0x5db: 0x000c, 0x5dc: 0x0001, 0x5dd: 0x0001,
+ 0x5de: 0x0001, 0x5df: 0x0001, 0x5e0: 0x000d, 0x5e1: 0x000d, 0x5e2: 0x000d, 0x5e3: 0x000d,
+ 0x5e4: 0x000d, 0x5e5: 0x000d, 0x5e6: 0x000d, 0x5e7: 0x000d, 0x5e8: 0x000d, 0x5e9: 0x000d,
+ 0x5ea: 0x000d, 0x5eb: 0x0001, 0x5ec: 0x0001, 0x5ed: 0x0001, 0x5ee: 0x0001, 0x5ef: 0x0001,
+ 0x5f0: 0x000d, 0x5f1: 0x000d, 0x5f2: 0x000d, 0x5f3: 0x000d, 0x5f4: 0x000d, 0x5f5: 0x000d,
+ 0x5f6: 0x000d, 0x5f7: 0x000d, 0x5f8: 0x000d, 0x5f9: 0x000d, 0x5fa: 0x000d, 0x5fb: 0x000d,
+ 0x5fc: 0x000d, 0x5fd: 0x000d, 0x5fe: 0x000d, 0x5ff: 0x000d,
+ // Block 0x18, offset 0x600
+ 0x600: 0x000d, 0x601: 0x000d, 0x602: 0x000d, 0x603: 0x000d, 0x604: 0x000d, 0x605: 0x000d,
+ 0x606: 0x000d, 0x607: 0x000d, 0x608: 0x000d, 0x609: 0x000d, 0x60a: 0x000d, 0x60b: 0x000d,
+ 0x60c: 0x000d, 0x60d: 0x000d, 0x60e: 0x000d, 0x60f: 0x000d, 0x610: 0x0005, 0x611: 0x0005,
+ 0x612: 0x0001, 0x613: 0x0001, 0x614: 0x0001, 0x615: 0x0001, 0x616: 0x0001, 0x617: 0x000c,
+ 0x618: 0x000c, 0x619: 0x000c, 0x61a: 0x000c, 0x61b: 0x000c, 0x61c: 0x000c, 0x61d: 0x000c,
+ 0x61e: 0x000c, 0x61f: 0x000c, 0x620: 0x000d, 0x621: 0x000d, 0x622: 0x000d, 0x623: 0x000d,
+ 0x624: 0x000d, 0x625: 0x000d, 0x626: 0x000d, 0x627: 0x000d, 0x628: 0x000d, 0x629: 0x000d,
+ 0x62a: 0x000d, 0x62b: 0x000d, 0x62c: 0x000d, 0x62d: 0x000d, 0x62e: 0x000d, 0x62f: 0x000d,
+ 0x630: 0x000d, 0x631: 0x000d, 0x632: 0x000d, 0x633: 0x000d, 0x634: 0x000d, 0x635: 0x000d,
+ 0x636: 0x000d, 0x637: 0x000d, 0x638: 0x000d, 0x639: 0x000d, 0x63a: 0x000d, 0x63b: 0x000d,
+ 0x63c: 0x000d, 0x63d: 0x000d, 0x63e: 0x000d, 0x63f: 0x000d,
+ // Block 0x19, offset 0x640
+ 0x640: 0x000d, 0x641: 0x000d, 0x642: 0x000d, 0x643: 0x000d, 0x644: 0x000d, 0x645: 0x000d,
+ 0x646: 0x000d, 0x647: 0x000d, 0x648: 0x000d, 0x649: 0x000d, 0x64a: 0x000c, 0x64b: 0x000c,
+ 0x64c: 0x000c, 0x64d: 0x000c, 0x64e: 0x000c, 0x64f: 0x000c, 0x650: 0x000c, 0x651: 0x000c,
+ 0x652: 0x000c, 0x653: 0x000c, 0x654: 0x000c, 0x655: 0x000c, 0x656: 0x000c, 0x657: 0x000c,
+ 0x658: 0x000c, 0x659: 0x000c, 0x65a: 0x000c, 0x65b: 0x000c, 0x65c: 0x000c, 0x65d: 0x000c,
+ 0x65e: 0x000c, 0x65f: 0x000c, 0x660: 0x000c, 0x661: 0x000c, 0x662: 0x0005, 0x663: 0x000c,
+ 0x664: 0x000c, 0x665: 0x000c, 0x666: 0x000c, 0x667: 0x000c, 0x668: 0x000c, 0x669: 0x000c,
+ 0x66a: 0x000c, 0x66b: 0x000c, 0x66c: 0x000c, 0x66d: 0x000c, 0x66e: 0x000c, 0x66f: 0x000c,
+ 0x670: 0x000c, 0x671: 0x000c, 0x672: 0x000c, 0x673: 0x000c, 0x674: 0x000c, 0x675: 0x000c,
+ 0x676: 0x000c, 0x677: 0x000c, 0x678: 0x000c, 0x679: 0x000c, 0x67a: 0x000c, 0x67b: 0x000c,
+ 0x67c: 0x000c, 0x67d: 0x000c, 0x67e: 0x000c, 0x67f: 0x000c,
+ // Block 0x1a, offset 0x680
+ 0x680: 0x000c, 0x681: 0x000c, 0x682: 0x000c,
+ 0x6ba: 0x000c,
+ 0x6bc: 0x000c,
+ // Block 0x1b, offset 0x6c0
+ 0x6c1: 0x000c, 0x6c2: 0x000c, 0x6c3: 0x000c, 0x6c4: 0x000c, 0x6c5: 0x000c,
+ 0x6c6: 0x000c, 0x6c7: 0x000c, 0x6c8: 0x000c,
+ 0x6cd: 0x000c, 0x6d1: 0x000c,
+ 0x6d2: 0x000c, 0x6d3: 0x000c, 0x6d4: 0x000c, 0x6d5: 0x000c, 0x6d6: 0x000c, 0x6d7: 0x000c,
+ 0x6e2: 0x000c, 0x6e3: 0x000c,
+ // Block 0x1c, offset 0x700
+ 0x701: 0x000c,
+ 0x73c: 0x000c,
+ // Block 0x1d, offset 0x740
+ 0x741: 0x000c, 0x742: 0x000c, 0x743: 0x000c, 0x744: 0x000c,
+ 0x74d: 0x000c,
+ 0x762: 0x000c, 0x763: 0x000c,
+ 0x772: 0x0004, 0x773: 0x0004,
+ 0x77b: 0x0004,
+ 0x77e: 0x000c,
+ // Block 0x1e, offset 0x780
+ 0x781: 0x000c, 0x782: 0x000c,
+ 0x7bc: 0x000c,
+ // Block 0x1f, offset 0x7c0
+ 0x7c1: 0x000c, 0x7c2: 0x000c,
+ 0x7c7: 0x000c, 0x7c8: 0x000c, 0x7cb: 0x000c,
+ 0x7cc: 0x000c, 0x7cd: 0x000c, 0x7d1: 0x000c,
+ 0x7f0: 0x000c, 0x7f1: 0x000c, 0x7f5: 0x000c,
+ // Block 0x20, offset 0x800
+ 0x801: 0x000c, 0x802: 0x000c, 0x803: 0x000c, 0x804: 0x000c, 0x805: 0x000c,
+ 0x807: 0x000c, 0x808: 0x000c,
+ 0x80d: 0x000c,
+ 0x822: 0x000c, 0x823: 0x000c,
+ 0x831: 0x0004,
+ 0x83a: 0x000c, 0x83b: 0x000c,
+ 0x83c: 0x000c, 0x83d: 0x000c, 0x83e: 0x000c, 0x83f: 0x000c,
+ // Block 0x21, offset 0x840
+ 0x841: 0x000c,
+ 0x87c: 0x000c, 0x87f: 0x000c,
+ // Block 0x22, offset 0x880
+ 0x881: 0x000c, 0x882: 0x000c, 0x883: 0x000c, 0x884: 0x000c,
+ 0x88d: 0x000c,
+ 0x895: 0x000c, 0x896: 0x000c,
+ 0x8a2: 0x000c, 0x8a3: 0x000c,
+ // Block 0x23, offset 0x8c0
+ 0x8c2: 0x000c,
+ // Block 0x24, offset 0x900
+ 0x900: 0x000c,
+ 0x90d: 0x000c,
+ 0x933: 0x000a, 0x934: 0x000a, 0x935: 0x000a,
+ 0x936: 0x000a, 0x937: 0x000a, 0x938: 0x000a, 0x939: 0x0004, 0x93a: 0x000a,
+ // Block 0x25, offset 0x940
+ 0x940: 0x000c, 0x944: 0x000c,
+ 0x97c: 0x000c, 0x97e: 0x000c, 0x97f: 0x000c,
+ // Block 0x26, offset 0x980
+ 0x980: 0x000c,
+ 0x986: 0x000c, 0x987: 0x000c, 0x988: 0x000c, 0x98a: 0x000c, 0x98b: 0x000c,
+ 0x98c: 0x000c, 0x98d: 0x000c,
+ 0x995: 0x000c, 0x996: 0x000c,
+ 0x9a2: 0x000c, 0x9a3: 0x000c,
+ 0x9b8: 0x000a, 0x9b9: 0x000a, 0x9ba: 0x000a, 0x9bb: 0x000a,
+ 0x9bc: 0x000a, 0x9bd: 0x000a, 0x9be: 0x000a,
+ // Block 0x27, offset 0x9c0
+ 0x9cc: 0x000c, 0x9cd: 0x000c,
+ 0x9e2: 0x000c, 0x9e3: 0x000c,
+ // Block 0x28, offset 0xa00
+ 0xa00: 0x000c, 0xa01: 0x000c,
+ 0xa3b: 0x000c,
+ 0xa3c: 0x000c,
+ // Block 0x29, offset 0xa40
+ 0xa41: 0x000c, 0xa42: 0x000c, 0xa43: 0x000c, 0xa44: 0x000c,
+ 0xa4d: 0x000c,
+ 0xa62: 0x000c, 0xa63: 0x000c,
+ // Block 0x2a, offset 0xa80
+ 0xa81: 0x000c,
+ // Block 0x2b, offset 0xac0
+ 0xaca: 0x000c,
+ 0xad2: 0x000c, 0xad3: 0x000c, 0xad4: 0x000c, 0xad6: 0x000c,
+ // Block 0x2c, offset 0xb00
+ 0xb31: 0x000c, 0xb34: 0x000c, 0xb35: 0x000c,
+ 0xb36: 0x000c, 0xb37: 0x000c, 0xb38: 0x000c, 0xb39: 0x000c, 0xb3a: 0x000c,
+ 0xb3f: 0x0004,
+ // Block 0x2d, offset 0xb40
+ 0xb47: 0x000c, 0xb48: 0x000c, 0xb49: 0x000c, 0xb4a: 0x000c, 0xb4b: 0x000c,
+ 0xb4c: 0x000c, 0xb4d: 0x000c, 0xb4e: 0x000c,
+ // Block 0x2e, offset 0xb80
+ 0xbb1: 0x000c, 0xbb4: 0x000c, 0xbb5: 0x000c,
+ 0xbb6: 0x000c, 0xbb7: 0x000c, 0xbb8: 0x000c, 0xbb9: 0x000c, 0xbba: 0x000c, 0xbbb: 0x000c,
+ 0xbbc: 0x000c,
+ // Block 0x2f, offset 0xbc0
+ 0xbc8: 0x000c, 0xbc9: 0x000c, 0xbca: 0x000c, 0xbcb: 0x000c,
+ 0xbcc: 0x000c, 0xbcd: 0x000c, 0xbce: 0x000c,
+ // Block 0x30, offset 0xc00
+ 0xc18: 0x000c, 0xc19: 0x000c,
+ 0xc35: 0x000c,
+ 0xc37: 0x000c, 0xc39: 0x000c, 0xc3a: 0x003a, 0xc3b: 0x002a,
+ 0xc3c: 0x003a, 0xc3d: 0x002a,
+ // Block 0x31, offset 0xc40
+ 0xc71: 0x000c, 0xc72: 0x000c, 0xc73: 0x000c, 0xc74: 0x000c, 0xc75: 0x000c,
+ 0xc76: 0x000c, 0xc77: 0x000c, 0xc78: 0x000c, 0xc79: 0x000c, 0xc7a: 0x000c, 0xc7b: 0x000c,
+ 0xc7c: 0x000c, 0xc7d: 0x000c, 0xc7e: 0x000c,
+ // Block 0x32, offset 0xc80
+ 0xc80: 0x000c, 0xc81: 0x000c, 0xc82: 0x000c, 0xc83: 0x000c, 0xc84: 0x000c,
+ 0xc86: 0x000c, 0xc87: 0x000c,
+ 0xc8d: 0x000c, 0xc8e: 0x000c, 0xc8f: 0x000c, 0xc90: 0x000c, 0xc91: 0x000c,
+ 0xc92: 0x000c, 0xc93: 0x000c, 0xc94: 0x000c, 0xc95: 0x000c, 0xc96: 0x000c, 0xc97: 0x000c,
+ 0xc99: 0x000c, 0xc9a: 0x000c, 0xc9b: 0x000c, 0xc9c: 0x000c, 0xc9d: 0x000c,
+ 0xc9e: 0x000c, 0xc9f: 0x000c, 0xca0: 0x000c, 0xca1: 0x000c, 0xca2: 0x000c, 0xca3: 0x000c,
+ 0xca4: 0x000c, 0xca5: 0x000c, 0xca6: 0x000c, 0xca7: 0x000c, 0xca8: 0x000c, 0xca9: 0x000c,
+ 0xcaa: 0x000c, 0xcab: 0x000c, 0xcac: 0x000c, 0xcad: 0x000c, 0xcae: 0x000c, 0xcaf: 0x000c,
+ 0xcb0: 0x000c, 0xcb1: 0x000c, 0xcb2: 0x000c, 0xcb3: 0x000c, 0xcb4: 0x000c, 0xcb5: 0x000c,
+ 0xcb6: 0x000c, 0xcb7: 0x000c, 0xcb8: 0x000c, 0xcb9: 0x000c, 0xcba: 0x000c, 0xcbb: 0x000c,
+ 0xcbc: 0x000c,
+ // Block 0x33, offset 0xcc0
+ 0xcc6: 0x000c,
+ // Block 0x34, offset 0xd00
+ 0xd2d: 0x000c, 0xd2e: 0x000c, 0xd2f: 0x000c,
+ 0xd30: 0x000c, 0xd32: 0x000c, 0xd33: 0x000c, 0xd34: 0x000c, 0xd35: 0x000c,
+ 0xd36: 0x000c, 0xd37: 0x000c, 0xd39: 0x000c, 0xd3a: 0x000c,
+ 0xd3d: 0x000c, 0xd3e: 0x000c,
+ // Block 0x35, offset 0xd40
+ 0xd58: 0x000c, 0xd59: 0x000c,
+ 0xd5e: 0x000c, 0xd5f: 0x000c, 0xd60: 0x000c,
+ 0xd71: 0x000c, 0xd72: 0x000c, 0xd73: 0x000c, 0xd74: 0x000c,
+ // Block 0x36, offset 0xd80
+ 0xd82: 0x000c, 0xd85: 0x000c,
+ 0xd86: 0x000c,
+ 0xd8d: 0x000c,
+ 0xd9d: 0x000c,
+ // Block 0x37, offset 0xdc0
+ 0xddd: 0x000c,
+ 0xdde: 0x000c, 0xddf: 0x000c,
+ // Block 0x38, offset 0xe00
+ 0xe10: 0x000a, 0xe11: 0x000a,
+ 0xe12: 0x000a, 0xe13: 0x000a, 0xe14: 0x000a, 0xe15: 0x000a, 0xe16: 0x000a, 0xe17: 0x000a,
+ 0xe18: 0x000a, 0xe19: 0x000a,
+ // Block 0x39, offset 0xe40
+ 0xe40: 0x000a,
+ // Block 0x3a, offset 0xe80
+ 0xe80: 0x0009,
+ 0xe9b: 0x007a, 0xe9c: 0x006a,
+ // Block 0x3b, offset 0xec0
+ 0xed2: 0x000c, 0xed3: 0x000c, 0xed4: 0x000c,
+ 0xef2: 0x000c, 0xef3: 0x000c,
+ // Block 0x3c, offset 0xf00
+ 0xf12: 0x000c, 0xf13: 0x000c,
+ 0xf32: 0x000c, 0xf33: 0x000c,
+ // Block 0x3d, offset 0xf40
+ 0xf74: 0x000c, 0xf75: 0x000c,
+ 0xf77: 0x000c, 0xf78: 0x000c, 0xf79: 0x000c, 0xf7a: 0x000c, 0xf7b: 0x000c,
+ 0xf7c: 0x000c, 0xf7d: 0x000c,
+ // Block 0x3e, offset 0xf80
+ 0xf86: 0x000c, 0xf89: 0x000c, 0xf8a: 0x000c, 0xf8b: 0x000c,
+ 0xf8c: 0x000c, 0xf8d: 0x000c, 0xf8e: 0x000c, 0xf8f: 0x000c, 0xf90: 0x000c, 0xf91: 0x000c,
+ 0xf92: 0x000c, 0xf93: 0x000c,
+ 0xf9b: 0x0004, 0xf9d: 0x000c,
+ 0xfb0: 0x000a, 0xfb1: 0x000a, 0xfb2: 0x000a, 0xfb3: 0x000a, 0xfb4: 0x000a, 0xfb5: 0x000a,
+ 0xfb6: 0x000a, 0xfb7: 0x000a, 0xfb8: 0x000a, 0xfb9: 0x000a,
+ // Block 0x3f, offset 0xfc0
+ 0xfc0: 0x000a, 0xfc1: 0x000a, 0xfc2: 0x000a, 0xfc3: 0x000a, 0xfc4: 0x000a, 0xfc5: 0x000a,
+ 0xfc6: 0x000a, 0xfc7: 0x000a, 0xfc8: 0x000a, 0xfc9: 0x000a, 0xfca: 0x000a, 0xfcb: 0x000c,
+ 0xfcc: 0x000c, 0xfcd: 0x000c, 0xfce: 0x000b, 0xfcf: 0x000c,
+ // Block 0x40, offset 0x1000
+ 0x1005: 0x000c,
+ 0x1006: 0x000c,
+ 0x1029: 0x000c,
+ // Block 0x41, offset 0x1040
+ 0x1060: 0x000c, 0x1061: 0x000c, 0x1062: 0x000c,
+ 0x1067: 0x000c, 0x1068: 0x000c,
+ 0x1072: 0x000c,
+ 0x1079: 0x000c, 0x107a: 0x000c, 0x107b: 0x000c,
+ // Block 0x42, offset 0x1080
+ 0x1080: 0x000a, 0x1084: 0x000a, 0x1085: 0x000a,
+ // Block 0x43, offset 0x10c0
+ 0x10de: 0x000a, 0x10df: 0x000a, 0x10e0: 0x000a, 0x10e1: 0x000a, 0x10e2: 0x000a, 0x10e3: 0x000a,
+ 0x10e4: 0x000a, 0x10e5: 0x000a, 0x10e6: 0x000a, 0x10e7: 0x000a, 0x10e8: 0x000a, 0x10e9: 0x000a,
+ 0x10ea: 0x000a, 0x10eb: 0x000a, 0x10ec: 0x000a, 0x10ed: 0x000a, 0x10ee: 0x000a, 0x10ef: 0x000a,
+ 0x10f0: 0x000a, 0x10f1: 0x000a, 0x10f2: 0x000a, 0x10f3: 0x000a, 0x10f4: 0x000a, 0x10f5: 0x000a,
+ 0x10f6: 0x000a, 0x10f7: 0x000a, 0x10f8: 0x000a, 0x10f9: 0x000a, 0x10fa: 0x000a, 0x10fb: 0x000a,
+ 0x10fc: 0x000a, 0x10fd: 0x000a, 0x10fe: 0x000a, 0x10ff: 0x000a,
+ // Block 0x44, offset 0x1100
+ 0x1117: 0x000c,
+ 0x1118: 0x000c, 0x111b: 0x000c,
+ // Block 0x45, offset 0x1140
+ 0x1156: 0x000c,
+ 0x1158: 0x000c, 0x1159: 0x000c, 0x115a: 0x000c, 0x115b: 0x000c, 0x115c: 0x000c, 0x115d: 0x000c,
+ 0x115e: 0x000c, 0x1160: 0x000c, 0x1162: 0x000c,
+ 0x1165: 0x000c, 0x1166: 0x000c, 0x1167: 0x000c, 0x1168: 0x000c, 0x1169: 0x000c,
+ 0x116a: 0x000c, 0x116b: 0x000c, 0x116c: 0x000c,
+ 0x1173: 0x000c, 0x1174: 0x000c, 0x1175: 0x000c,
+ 0x1176: 0x000c, 0x1177: 0x000c, 0x1178: 0x000c, 0x1179: 0x000c, 0x117a: 0x000c, 0x117b: 0x000c,
+ 0x117c: 0x000c, 0x117f: 0x000c,
+ // Block 0x46, offset 0x1180
+ 0x11b0: 0x000c, 0x11b1: 0x000c, 0x11b2: 0x000c, 0x11b3: 0x000c, 0x11b4: 0x000c, 0x11b5: 0x000c,
+ 0x11b6: 0x000c, 0x11b7: 0x000c, 0x11b8: 0x000c, 0x11b9: 0x000c, 0x11ba: 0x000c, 0x11bb: 0x000c,
+ 0x11bc: 0x000c, 0x11bd: 0x000c, 0x11be: 0x000c, 0x11bf: 0x000c,
+ // Block 0x47, offset 0x11c0
+ 0x11c0: 0x000c, 0x11c1: 0x000c, 0x11c2: 0x000c, 0x11c3: 0x000c, 0x11c4: 0x000c, 0x11c5: 0x000c,
+ 0x11c6: 0x000c, 0x11c7: 0x000c, 0x11c8: 0x000c, 0x11c9: 0x000c, 0x11ca: 0x000c, 0x11cb: 0x000c,
+ 0x11cc: 0x000c, 0x11cd: 0x000c, 0x11ce: 0x000c, 0x11cf: 0x000c, 0x11d0: 0x000c, 0x11d1: 0x000c,
+ 0x11d2: 0x000c, 0x11d3: 0x000c, 0x11d4: 0x000c, 0x11d5: 0x000c, 0x11d6: 0x000c, 0x11d7: 0x000c,
+ 0x11d8: 0x000c, 0x11d9: 0x000c, 0x11da: 0x000c, 0x11db: 0x000c, 0x11dc: 0x000c, 0x11dd: 0x000c,
+ 0x11e0: 0x000c, 0x11e1: 0x000c, 0x11e2: 0x000c, 0x11e3: 0x000c,
+ 0x11e4: 0x000c, 0x11e5: 0x000c, 0x11e6: 0x000c, 0x11e7: 0x000c, 0x11e8: 0x000c, 0x11e9: 0x000c,
+ 0x11ea: 0x000c, 0x11eb: 0x000c,
+ // Block 0x48, offset 0x1200
+ 0x1200: 0x000c, 0x1201: 0x000c, 0x1202: 0x000c, 0x1203: 0x000c,
+ 0x1234: 0x000c,
+ 0x1236: 0x000c, 0x1237: 0x000c, 0x1238: 0x000c, 0x1239: 0x000c, 0x123a: 0x000c,
+ 0x123c: 0x000c,
+ // Block 0x49, offset 0x1240
+ 0x1242: 0x000c,
+ 0x126b: 0x000c, 0x126c: 0x000c, 0x126d: 0x000c, 0x126e: 0x000c, 0x126f: 0x000c,
+ 0x1270: 0x000c, 0x1271: 0x000c, 0x1272: 0x000c, 0x1273: 0x000c,
+ // Block 0x4a, offset 0x1280
+ 0x1280: 0x000c, 0x1281: 0x000c,
+ 0x12a2: 0x000c, 0x12a3: 0x000c,
+ 0x12a4: 0x000c, 0x12a5: 0x000c, 0x12a8: 0x000c, 0x12a9: 0x000c,
+ 0x12ab: 0x000c, 0x12ac: 0x000c, 0x12ad: 0x000c,
+ // Block 0x4b, offset 0x12c0
+ 0x12e6: 0x000c, 0x12e8: 0x000c, 0x12e9: 0x000c,
+ 0x12ed: 0x000c, 0x12ef: 0x000c,
+ 0x12f0: 0x000c, 0x12f1: 0x000c,
+ // Block 0x4c, offset 0x1300
+ 0x132c: 0x000c, 0x132d: 0x000c, 0x132e: 0x000c, 0x132f: 0x000c,
+ 0x1330: 0x000c, 0x1331: 0x000c, 0x1332: 0x000c, 0x1333: 0x000c,
+ 0x1336: 0x000c, 0x1337: 0x000c,
+ // Block 0x4d, offset 0x1340
+ 0x1350: 0x000c, 0x1351: 0x000c,
+ 0x1352: 0x000c, 0x1354: 0x000c, 0x1355: 0x000c, 0x1356: 0x000c, 0x1357: 0x000c,
+ 0x1358: 0x000c, 0x1359: 0x000c, 0x135a: 0x000c, 0x135b: 0x000c, 0x135c: 0x000c, 0x135d: 0x000c,
+ 0x135e: 0x000c, 0x135f: 0x000c, 0x1360: 0x000c, 0x1362: 0x000c, 0x1363: 0x000c,
+ 0x1364: 0x000c, 0x1365: 0x000c, 0x1366: 0x000c, 0x1367: 0x000c, 0x1368: 0x000c,
+ 0x136d: 0x000c,
+ 0x1374: 0x000c,
+ 0x1378: 0x000c, 0x1379: 0x000c,
+ // Block 0x4e, offset 0x1380
+ 0x13bd: 0x000a, 0x13bf: 0x000a,
+ // Block 0x4f, offset 0x13c0
+ 0x13c0: 0x000a, 0x13c1: 0x000a,
+ 0x13cd: 0x000a, 0x13ce: 0x000a, 0x13cf: 0x000a,
+ 0x13dd: 0x000a,
+ 0x13de: 0x000a, 0x13df: 0x000a,
+ 0x13ed: 0x000a, 0x13ee: 0x000a, 0x13ef: 0x000a,
+ 0x13fd: 0x000a, 0x13fe: 0x000a,
+ // Block 0x50, offset 0x1400
+ 0x1400: 0x0009, 0x1401: 0x0009, 0x1402: 0x0009, 0x1403: 0x0009, 0x1404: 0x0009, 0x1405: 0x0009,
+ 0x1406: 0x0009, 0x1407: 0x0009, 0x1408: 0x0009, 0x1409: 0x0009, 0x140a: 0x0009, 0x140b: 0x000b,
+ 0x140c: 0x000b, 0x140d: 0x000b, 0x140f: 0x0001, 0x1410: 0x000a, 0x1411: 0x000a,
+ 0x1412: 0x000a, 0x1413: 0x000a, 0x1414: 0x000a, 0x1415: 0x000a, 0x1416: 0x000a, 0x1417: 0x000a,
+ 0x1418: 0x000a, 0x1419: 0x000a, 0x141a: 0x000a, 0x141b: 0x000a, 0x141c: 0x000a, 0x141d: 0x000a,
+ 0x141e: 0x000a, 0x141f: 0x000a, 0x1420: 0x000a, 0x1421: 0x000a, 0x1422: 0x000a, 0x1423: 0x000a,
+ 0x1424: 0x000a, 0x1425: 0x000a, 0x1426: 0x000a, 0x1427: 0x000a, 0x1428: 0x0009, 0x1429: 0x0007,
+ 0x142a: 0x000e, 0x142b: 0x000e, 0x142c: 0x000e, 0x142d: 0x000e, 0x142e: 0x000e, 0x142f: 0x0006,
+ 0x1430: 0x0004, 0x1431: 0x0004, 0x1432: 0x0004, 0x1433: 0x0004, 0x1434: 0x0004, 0x1435: 0x000a,
+ 0x1436: 0x000a, 0x1437: 0x000a, 0x1438: 0x000a, 0x1439: 0x000a, 0x143a: 0x000a, 0x143b: 0x000a,
+ 0x143c: 0x000a, 0x143d: 0x000a, 0x143e: 0x000a, 0x143f: 0x000a,
+ // Block 0x51, offset 0x1440
+ 0x1440: 0x000a, 0x1441: 0x000a, 0x1442: 0x000a, 0x1443: 0x000a, 0x1444: 0x0006, 0x1445: 0x009a,
+ 0x1446: 0x008a, 0x1447: 0x000a, 0x1448: 0x000a, 0x1449: 0x000a, 0x144a: 0x000a, 0x144b: 0x000a,
+ 0x144c: 0x000a, 0x144d: 0x000a, 0x144e: 0x000a, 0x144f: 0x000a, 0x1450: 0x000a, 0x1451: 0x000a,
+ 0x1452: 0x000a, 0x1453: 0x000a, 0x1454: 0x000a, 0x1455: 0x000a, 0x1456: 0x000a, 0x1457: 0x000a,
+ 0x1458: 0x000a, 0x1459: 0x000a, 0x145a: 0x000a, 0x145b: 0x000a, 0x145c: 0x000a, 0x145d: 0x000a,
+ 0x145e: 0x000a, 0x145f: 0x0009, 0x1460: 0x000b, 0x1461: 0x000b, 0x1462: 0x000b, 0x1463: 0x000b,
+ 0x1464: 0x000b, 0x1465: 0x000b, 0x1466: 0x000e, 0x1467: 0x000e, 0x1468: 0x000e, 0x1469: 0x000e,
+ 0x146a: 0x000b, 0x146b: 0x000b, 0x146c: 0x000b, 0x146d: 0x000b, 0x146e: 0x000b, 0x146f: 0x000b,
+ 0x1470: 0x0002, 0x1474: 0x0002, 0x1475: 0x0002,
+ 0x1476: 0x0002, 0x1477: 0x0002, 0x1478: 0x0002, 0x1479: 0x0002, 0x147a: 0x0003, 0x147b: 0x0003,
+ 0x147c: 0x000a, 0x147d: 0x009a, 0x147e: 0x008a,
+ // Block 0x52, offset 0x1480
+ 0x1480: 0x0002, 0x1481: 0x0002, 0x1482: 0x0002, 0x1483: 0x0002, 0x1484: 0x0002, 0x1485: 0x0002,
+ 0x1486: 0x0002, 0x1487: 0x0002, 0x1488: 0x0002, 0x1489: 0x0002, 0x148a: 0x0003, 0x148b: 0x0003,
+ 0x148c: 0x000a, 0x148d: 0x009a, 0x148e: 0x008a,
+ 0x14a0: 0x0004, 0x14a1: 0x0004, 0x14a2: 0x0004, 0x14a3: 0x0004,
+ 0x14a4: 0x0004, 0x14a5: 0x0004, 0x14a6: 0x0004, 0x14a7: 0x0004, 0x14a8: 0x0004, 0x14a9: 0x0004,
+ 0x14aa: 0x0004, 0x14ab: 0x0004, 0x14ac: 0x0004, 0x14ad: 0x0004, 0x14ae: 0x0004, 0x14af: 0x0004,
+ 0x14b0: 0x0004, 0x14b1: 0x0004, 0x14b2: 0x0004, 0x14b3: 0x0004, 0x14b4: 0x0004, 0x14b5: 0x0004,
+ 0x14b6: 0x0004, 0x14b7: 0x0004, 0x14b8: 0x0004, 0x14b9: 0x0004, 0x14ba: 0x0004, 0x14bb: 0x0004,
+ 0x14bc: 0x0004, 0x14bd: 0x0004, 0x14be: 0x0004, 0x14bf: 0x0004,
+ // Block 0x53, offset 0x14c0
+ 0x14c0: 0x0004, 0x14c1: 0x0004, 0x14c2: 0x0004, 0x14c3: 0x0004, 0x14c4: 0x0004, 0x14c5: 0x0004,
+ 0x14c6: 0x0004, 0x14c7: 0x0004, 0x14c8: 0x0004, 0x14c9: 0x0004, 0x14ca: 0x0004, 0x14cb: 0x0004,
+ 0x14cc: 0x0004, 0x14cd: 0x0004, 0x14ce: 0x0004, 0x14cf: 0x0004, 0x14d0: 0x000c, 0x14d1: 0x000c,
+ 0x14d2: 0x000c, 0x14d3: 0x000c, 0x14d4: 0x000c, 0x14d5: 0x000c, 0x14d6: 0x000c, 0x14d7: 0x000c,
+ 0x14d8: 0x000c, 0x14d9: 0x000c, 0x14da: 0x000c, 0x14db: 0x000c, 0x14dc: 0x000c, 0x14dd: 0x000c,
+ 0x14de: 0x000c, 0x14df: 0x000c, 0x14e0: 0x000c, 0x14e1: 0x000c, 0x14e2: 0x000c, 0x14e3: 0x000c,
+ 0x14e4: 0x000c, 0x14e5: 0x000c, 0x14e6: 0x000c, 0x14e7: 0x000c, 0x14e8: 0x000c, 0x14e9: 0x000c,
+ 0x14ea: 0x000c, 0x14eb: 0x000c, 0x14ec: 0x000c, 0x14ed: 0x000c, 0x14ee: 0x000c, 0x14ef: 0x000c,
+ 0x14f0: 0x000c,
+ // Block 0x54, offset 0x1500
+ 0x1500: 0x000a, 0x1501: 0x000a, 0x1503: 0x000a, 0x1504: 0x000a, 0x1505: 0x000a,
+ 0x1506: 0x000a, 0x1508: 0x000a, 0x1509: 0x000a,
+ 0x1514: 0x000a, 0x1516: 0x000a, 0x1517: 0x000a,
+ 0x1518: 0x000a,
+ 0x151e: 0x000a, 0x151f: 0x000a, 0x1520: 0x000a, 0x1521: 0x000a, 0x1522: 0x000a, 0x1523: 0x000a,
+ 0x1525: 0x000a, 0x1527: 0x000a, 0x1529: 0x000a,
+ 0x152e: 0x0004,
+ 0x153a: 0x000a, 0x153b: 0x000a,
+ // Block 0x55, offset 0x1540
+ 0x1540: 0x000a, 0x1541: 0x000a, 0x1542: 0x000a, 0x1543: 0x000a, 0x1544: 0x000a,
+ 0x154a: 0x000a, 0x154b: 0x000a,
+ 0x154c: 0x000a, 0x154d: 0x000a, 0x1550: 0x000a, 0x1551: 0x000a,
+ 0x1552: 0x000a, 0x1553: 0x000a, 0x1554: 0x000a, 0x1555: 0x000a, 0x1556: 0x000a, 0x1557: 0x000a,
+ 0x1558: 0x000a, 0x1559: 0x000a, 0x155a: 0x000a, 0x155b: 0x000a, 0x155c: 0x000a, 0x155d: 0x000a,
+ 0x155e: 0x000a, 0x155f: 0x000a,
+ // Block 0x56, offset 0x1580
+ 0x1589: 0x000a, 0x158a: 0x000a, 0x158b: 0x000a,
+ 0x1590: 0x000a, 0x1591: 0x000a,
+ 0x1592: 0x000a, 0x1593: 0x000a, 0x1594: 0x000a, 0x1595: 0x000a, 0x1596: 0x000a, 0x1597: 0x000a,
+ 0x1598: 0x000a, 0x1599: 0x000a, 0x159a: 0x000a, 0x159b: 0x000a, 0x159c: 0x000a, 0x159d: 0x000a,
+ 0x159e: 0x000a, 0x159f: 0x000a, 0x15a0: 0x000a, 0x15a1: 0x000a, 0x15a2: 0x000a, 0x15a3: 0x000a,
+ 0x15a4: 0x000a, 0x15a5: 0x000a, 0x15a6: 0x000a, 0x15a7: 0x000a, 0x15a8: 0x000a, 0x15a9: 0x000a,
+ 0x15aa: 0x000a, 0x15ab: 0x000a, 0x15ac: 0x000a, 0x15ad: 0x000a, 0x15ae: 0x000a, 0x15af: 0x000a,
+ 0x15b0: 0x000a, 0x15b1: 0x000a, 0x15b2: 0x000a, 0x15b3: 0x000a, 0x15b4: 0x000a, 0x15b5: 0x000a,
+ 0x15b6: 0x000a, 0x15b7: 0x000a, 0x15b8: 0x000a, 0x15b9: 0x000a, 0x15ba: 0x000a, 0x15bb: 0x000a,
+ 0x15bc: 0x000a, 0x15bd: 0x000a, 0x15be: 0x000a, 0x15bf: 0x000a,
+ // Block 0x57, offset 0x15c0
+ 0x15c0: 0x000a, 0x15c1: 0x000a, 0x15c2: 0x000a, 0x15c3: 0x000a, 0x15c4: 0x000a, 0x15c5: 0x000a,
+ 0x15c6: 0x000a, 0x15c7: 0x000a, 0x15c8: 0x000a, 0x15c9: 0x000a, 0x15ca: 0x000a, 0x15cb: 0x000a,
+ 0x15cc: 0x000a, 0x15cd: 0x000a, 0x15ce: 0x000a, 0x15cf: 0x000a, 0x15d0: 0x000a, 0x15d1: 0x000a,
+ 0x15d2: 0x000a, 0x15d3: 0x000a, 0x15d4: 0x000a, 0x15d5: 0x000a, 0x15d6: 0x000a, 0x15d7: 0x000a,
+ 0x15d8: 0x000a, 0x15d9: 0x000a, 0x15da: 0x000a, 0x15db: 0x000a, 0x15dc: 0x000a, 0x15dd: 0x000a,
+ 0x15de: 0x000a, 0x15df: 0x000a, 0x15e0: 0x000a, 0x15e1: 0x000a, 0x15e2: 0x000a, 0x15e3: 0x000a,
+ 0x15e4: 0x000a, 0x15e5: 0x000a, 0x15e6: 0x000a, 0x15e7: 0x000a, 0x15e8: 0x000a, 0x15e9: 0x000a,
+ 0x15ea: 0x000a, 0x15eb: 0x000a, 0x15ec: 0x000a, 0x15ed: 0x000a, 0x15ee: 0x000a, 0x15ef: 0x000a,
+ 0x15f0: 0x000a, 0x15f1: 0x000a, 0x15f2: 0x000a, 0x15f3: 0x000a, 0x15f4: 0x000a, 0x15f5: 0x000a,
+ 0x15f6: 0x000a, 0x15f7: 0x000a, 0x15f8: 0x000a, 0x15f9: 0x000a, 0x15fa: 0x000a, 0x15fb: 0x000a,
+ 0x15fc: 0x000a, 0x15fd: 0x000a, 0x15fe: 0x000a, 0x15ff: 0x000a,
+ // Block 0x58, offset 0x1600
+ 0x1600: 0x000a, 0x1601: 0x000a, 0x1602: 0x000a, 0x1603: 0x000a, 0x1604: 0x000a, 0x1605: 0x000a,
+ 0x1606: 0x000a, 0x1607: 0x000a, 0x1608: 0x000a, 0x1609: 0x000a, 0x160a: 0x000a, 0x160b: 0x000a,
+ 0x160c: 0x000a, 0x160d: 0x000a, 0x160e: 0x000a, 0x160f: 0x000a, 0x1610: 0x000a, 0x1611: 0x000a,
+ 0x1612: 0x0003, 0x1613: 0x0004, 0x1614: 0x000a, 0x1615: 0x000a, 0x1616: 0x000a, 0x1617: 0x000a,
+ 0x1618: 0x000a, 0x1619: 0x000a, 0x161a: 0x000a, 0x161b: 0x000a, 0x161c: 0x000a, 0x161d: 0x000a,
+ 0x161e: 0x000a, 0x161f: 0x000a, 0x1620: 0x000a, 0x1621: 0x000a, 0x1622: 0x000a, 0x1623: 0x000a,
+ 0x1624: 0x000a, 0x1625: 0x000a, 0x1626: 0x000a, 0x1627: 0x000a, 0x1628: 0x000a, 0x1629: 0x000a,
+ 0x162a: 0x000a, 0x162b: 0x000a, 0x162c: 0x000a, 0x162d: 0x000a, 0x162e: 0x000a, 0x162f: 0x000a,
+ 0x1630: 0x000a, 0x1631: 0x000a, 0x1632: 0x000a, 0x1633: 0x000a, 0x1634: 0x000a, 0x1635: 0x000a,
+ 0x1636: 0x000a, 0x1637: 0x000a, 0x1638: 0x000a, 0x1639: 0x000a, 0x163a: 0x000a, 0x163b: 0x000a,
+ 0x163c: 0x000a, 0x163d: 0x000a, 0x163e: 0x000a, 0x163f: 0x000a,
+ // Block 0x59, offset 0x1640
+ 0x1640: 0x000a, 0x1641: 0x000a, 0x1642: 0x000a, 0x1643: 0x000a, 0x1644: 0x000a, 0x1645: 0x000a,
+ 0x1646: 0x000a, 0x1647: 0x000a, 0x1648: 0x003a, 0x1649: 0x002a, 0x164a: 0x003a, 0x164b: 0x002a,
+ 0x164c: 0x000a, 0x164d: 0x000a, 0x164e: 0x000a, 0x164f: 0x000a, 0x1650: 0x000a, 0x1651: 0x000a,
+ 0x1652: 0x000a, 0x1653: 0x000a, 0x1654: 0x000a, 0x1655: 0x000a, 0x1656: 0x000a, 0x1657: 0x000a,
+ 0x1658: 0x000a, 0x1659: 0x000a, 0x165a: 0x000a, 0x165b: 0x000a, 0x165c: 0x000a, 0x165d: 0x000a,
+ 0x165e: 0x000a, 0x165f: 0x000a, 0x1660: 0x000a, 0x1661: 0x000a, 0x1662: 0x000a, 0x1663: 0x000a,
+ 0x1664: 0x000a, 0x1665: 0x000a, 0x1666: 0x000a, 0x1667: 0x000a, 0x1668: 0x000a, 0x1669: 0x009a,
+ 0x166a: 0x008a, 0x166b: 0x000a, 0x166c: 0x000a, 0x166d: 0x000a, 0x166e: 0x000a, 0x166f: 0x000a,
+ 0x1670: 0x000a, 0x1671: 0x000a, 0x1672: 0x000a, 0x1673: 0x000a, 0x1674: 0x000a, 0x1675: 0x000a,
+ // Block 0x5a, offset 0x1680
+ 0x16bb: 0x000a,
+ 0x16bc: 0x000a, 0x16bd: 0x000a, 0x16be: 0x000a, 0x16bf: 0x000a,
+ // Block 0x5b, offset 0x16c0
+ 0x16c0: 0x000a, 0x16c1: 0x000a, 0x16c2: 0x000a, 0x16c3: 0x000a, 0x16c4: 0x000a, 0x16c5: 0x000a,
+ 0x16c6: 0x000a, 0x16c7: 0x000a, 0x16c8: 0x000a, 0x16c9: 0x000a, 0x16ca: 0x000a, 0x16cb: 0x000a,
+ 0x16cc: 0x000a, 0x16cd: 0x000a, 0x16ce: 0x000a, 0x16cf: 0x000a, 0x16d0: 0x000a, 0x16d1: 0x000a,
+ 0x16d2: 0x000a, 0x16d3: 0x000a, 0x16d4: 0x000a, 0x16d6: 0x000a, 0x16d7: 0x000a,
+ 0x16d8: 0x000a, 0x16d9: 0x000a, 0x16da: 0x000a, 0x16db: 0x000a, 0x16dc: 0x000a, 0x16dd: 0x000a,
+ 0x16de: 0x000a, 0x16df: 0x000a, 0x16e0: 0x000a, 0x16e1: 0x000a, 0x16e2: 0x000a, 0x16e3: 0x000a,
+ 0x16e4: 0x000a, 0x16e5: 0x000a, 0x16e6: 0x000a, 0x16e7: 0x000a, 0x16e8: 0x000a, 0x16e9: 0x000a,
+ 0x16ea: 0x000a, 0x16eb: 0x000a, 0x16ec: 0x000a, 0x16ed: 0x000a, 0x16ee: 0x000a, 0x16ef: 0x000a,
+ 0x16f0: 0x000a, 0x16f1: 0x000a, 0x16f2: 0x000a, 0x16f3: 0x000a, 0x16f4: 0x000a, 0x16f5: 0x000a,
+ 0x16f6: 0x000a, 0x16f7: 0x000a, 0x16f8: 0x000a, 0x16f9: 0x000a, 0x16fa: 0x000a, 0x16fb: 0x000a,
+ 0x16fc: 0x000a, 0x16fd: 0x000a, 0x16fe: 0x000a, 0x16ff: 0x000a,
+ // Block 0x5c, offset 0x1700
+ 0x1700: 0x000a, 0x1701: 0x000a, 0x1702: 0x000a, 0x1703: 0x000a, 0x1704: 0x000a, 0x1705: 0x000a,
+ 0x1706: 0x000a, 0x1707: 0x000a, 0x1708: 0x000a, 0x1709: 0x000a, 0x170a: 0x000a, 0x170b: 0x000a,
+ 0x170c: 0x000a, 0x170d: 0x000a, 0x170e: 0x000a, 0x170f: 0x000a, 0x1710: 0x000a, 0x1711: 0x000a,
+ 0x1712: 0x000a, 0x1713: 0x000a, 0x1714: 0x000a, 0x1715: 0x000a, 0x1716: 0x000a, 0x1717: 0x000a,
+ 0x1718: 0x000a, 0x1719: 0x000a, 0x171a: 0x000a, 0x171b: 0x000a, 0x171c: 0x000a, 0x171d: 0x000a,
+ 0x171e: 0x000a, 0x171f: 0x000a, 0x1720: 0x000a, 0x1721: 0x000a, 0x1722: 0x000a, 0x1723: 0x000a,
+ 0x1724: 0x000a, 0x1725: 0x000a, 0x1726: 0x000a, 0x1727: 0x000a, 0x1728: 0x000a, 0x1729: 0x000a,
+ // Block 0x5d, offset 0x1740
+ 0x1740: 0x000a, 0x1741: 0x000a, 0x1742: 0x000a, 0x1743: 0x000a, 0x1744: 0x000a, 0x1745: 0x000a,
+ 0x1746: 0x000a, 0x1747: 0x000a, 0x1748: 0x000a, 0x1749: 0x000a, 0x174a: 0x000a,
+ 0x1760: 0x000a, 0x1761: 0x000a, 0x1762: 0x000a, 0x1763: 0x000a,
+ 0x1764: 0x000a, 0x1765: 0x000a, 0x1766: 0x000a, 0x1767: 0x000a, 0x1768: 0x000a, 0x1769: 0x000a,
+ 0x176a: 0x000a, 0x176b: 0x000a, 0x176c: 0x000a, 0x176d: 0x000a, 0x176e: 0x000a, 0x176f: 0x000a,
+ 0x1770: 0x000a, 0x1771: 0x000a, 0x1772: 0x000a, 0x1773: 0x000a, 0x1774: 0x000a, 0x1775: 0x000a,
+ 0x1776: 0x000a, 0x1777: 0x000a, 0x1778: 0x000a, 0x1779: 0x000a, 0x177a: 0x000a, 0x177b: 0x000a,
+ 0x177c: 0x000a, 0x177d: 0x000a, 0x177e: 0x000a, 0x177f: 0x000a,
+ // Block 0x5e, offset 0x1780
+ 0x1780: 0x000a, 0x1781: 0x000a, 0x1782: 0x000a, 0x1783: 0x000a, 0x1784: 0x000a, 0x1785: 0x000a,
+ 0x1786: 0x000a, 0x1787: 0x000a, 0x1788: 0x0002, 0x1789: 0x0002, 0x178a: 0x0002, 0x178b: 0x0002,
+ 0x178c: 0x0002, 0x178d: 0x0002, 0x178e: 0x0002, 0x178f: 0x0002, 0x1790: 0x0002, 0x1791: 0x0002,
+ 0x1792: 0x0002, 0x1793: 0x0002, 0x1794: 0x0002, 0x1795: 0x0002, 0x1796: 0x0002, 0x1797: 0x0002,
+ 0x1798: 0x0002, 0x1799: 0x0002, 0x179a: 0x0002, 0x179b: 0x0002,
+ // Block 0x5f, offset 0x17c0
+ 0x17ea: 0x000a, 0x17eb: 0x000a, 0x17ec: 0x000a, 0x17ed: 0x000a, 0x17ee: 0x000a, 0x17ef: 0x000a,
+ 0x17f0: 0x000a, 0x17f1: 0x000a, 0x17f2: 0x000a, 0x17f3: 0x000a, 0x17f4: 0x000a, 0x17f5: 0x000a,
+ 0x17f6: 0x000a, 0x17f7: 0x000a, 0x17f8: 0x000a, 0x17f9: 0x000a, 0x17fa: 0x000a, 0x17fb: 0x000a,
+ 0x17fc: 0x000a, 0x17fd: 0x000a, 0x17fe: 0x000a, 0x17ff: 0x000a,
+ // Block 0x60, offset 0x1800
+ 0x1800: 0x000a, 0x1801: 0x000a, 0x1802: 0x000a, 0x1803: 0x000a, 0x1804: 0x000a, 0x1805: 0x000a,
+ 0x1806: 0x000a, 0x1807: 0x000a, 0x1808: 0x000a, 0x1809: 0x000a, 0x180a: 0x000a, 0x180b: 0x000a,
+ 0x180c: 0x000a, 0x180d: 0x000a, 0x180e: 0x000a, 0x180f: 0x000a, 0x1810: 0x000a, 0x1811: 0x000a,
+ 0x1812: 0x000a, 0x1813: 0x000a, 0x1814: 0x000a, 0x1815: 0x000a, 0x1816: 0x000a, 0x1817: 0x000a,
+ 0x1818: 0x000a, 0x1819: 0x000a, 0x181a: 0x000a, 0x181b: 0x000a, 0x181c: 0x000a, 0x181d: 0x000a,
+ 0x181e: 0x000a, 0x181f: 0x000a, 0x1820: 0x000a, 0x1821: 0x000a, 0x1822: 0x000a, 0x1823: 0x000a,
+ 0x1824: 0x000a, 0x1825: 0x000a, 0x1826: 0x000a, 0x1827: 0x000a, 0x1828: 0x000a, 0x1829: 0x000a,
+ 0x182a: 0x000a, 0x182b: 0x000a, 0x182d: 0x000a, 0x182e: 0x000a, 0x182f: 0x000a,
+ 0x1830: 0x000a, 0x1831: 0x000a, 0x1832: 0x000a, 0x1833: 0x000a, 0x1834: 0x000a, 0x1835: 0x000a,
+ 0x1836: 0x000a, 0x1837: 0x000a, 0x1838: 0x000a, 0x1839: 0x000a, 0x183a: 0x000a, 0x183b: 0x000a,
+ 0x183c: 0x000a, 0x183d: 0x000a, 0x183e: 0x000a, 0x183f: 0x000a,
+ // Block 0x61, offset 0x1840
+ 0x1840: 0x000a, 0x1841: 0x000a, 0x1842: 0x000a, 0x1843: 0x000a, 0x1844: 0x000a, 0x1845: 0x000a,
+ 0x1846: 0x000a, 0x1847: 0x000a, 0x1848: 0x000a, 0x1849: 0x000a, 0x184a: 0x000a, 0x184b: 0x000a,
+ 0x184c: 0x000a, 0x184d: 0x000a, 0x184e: 0x000a, 0x184f: 0x000a, 0x1850: 0x000a, 0x1851: 0x000a,
+ 0x1852: 0x000a, 0x1853: 0x000a, 0x1854: 0x000a, 0x1855: 0x000a, 0x1856: 0x000a, 0x1857: 0x000a,
+ 0x1858: 0x000a, 0x1859: 0x000a, 0x185a: 0x000a, 0x185b: 0x000a, 0x185c: 0x000a, 0x185d: 0x000a,
+ 0x185e: 0x000a, 0x185f: 0x000a, 0x1860: 0x000a, 0x1861: 0x000a, 0x1862: 0x000a, 0x1863: 0x000a,
+ 0x1864: 0x000a, 0x1865: 0x000a, 0x1866: 0x000a, 0x1867: 0x000a, 0x1868: 0x003a, 0x1869: 0x002a,
+ 0x186a: 0x003a, 0x186b: 0x002a, 0x186c: 0x003a, 0x186d: 0x002a, 0x186e: 0x003a, 0x186f: 0x002a,
+ 0x1870: 0x003a, 0x1871: 0x002a, 0x1872: 0x003a, 0x1873: 0x002a, 0x1874: 0x003a, 0x1875: 0x002a,
+ 0x1876: 0x000a, 0x1877: 0x000a, 0x1878: 0x000a, 0x1879: 0x000a, 0x187a: 0x000a, 0x187b: 0x000a,
+ 0x187c: 0x000a, 0x187d: 0x000a, 0x187e: 0x000a, 0x187f: 0x000a,
+ // Block 0x62, offset 0x1880
+ 0x1880: 0x000a, 0x1881: 0x000a, 0x1882: 0x000a, 0x1883: 0x000a, 0x1884: 0x000a, 0x1885: 0x009a,
+ 0x1886: 0x008a, 0x1887: 0x000a, 0x1888: 0x000a, 0x1889: 0x000a, 0x188a: 0x000a, 0x188b: 0x000a,
+ 0x188c: 0x000a, 0x188d: 0x000a, 0x188e: 0x000a, 0x188f: 0x000a, 0x1890: 0x000a, 0x1891: 0x000a,
+ 0x1892: 0x000a, 0x1893: 0x000a, 0x1894: 0x000a, 0x1895: 0x000a, 0x1896: 0x000a, 0x1897: 0x000a,
+ 0x1898: 0x000a, 0x1899: 0x000a, 0x189a: 0x000a, 0x189b: 0x000a, 0x189c: 0x000a, 0x189d: 0x000a,
+ 0x189e: 0x000a, 0x189f: 0x000a, 0x18a0: 0x000a, 0x18a1: 0x000a, 0x18a2: 0x000a, 0x18a3: 0x000a,
+ 0x18a4: 0x000a, 0x18a5: 0x000a, 0x18a6: 0x003a, 0x18a7: 0x002a, 0x18a8: 0x003a, 0x18a9: 0x002a,
+ 0x18aa: 0x003a, 0x18ab: 0x002a, 0x18ac: 0x003a, 0x18ad: 0x002a, 0x18ae: 0x003a, 0x18af: 0x002a,
+ 0x18b0: 0x000a, 0x18b1: 0x000a, 0x18b2: 0x000a, 0x18b3: 0x000a, 0x18b4: 0x000a, 0x18b5: 0x000a,
+ 0x18b6: 0x000a, 0x18b7: 0x000a, 0x18b8: 0x000a, 0x18b9: 0x000a, 0x18ba: 0x000a, 0x18bb: 0x000a,
+ 0x18bc: 0x000a, 0x18bd: 0x000a, 0x18be: 0x000a, 0x18bf: 0x000a,
+ // Block 0x63, offset 0x18c0
+ 0x18c0: 0x000a, 0x18c1: 0x000a, 0x18c2: 0x000a, 0x18c3: 0x007a, 0x18c4: 0x006a, 0x18c5: 0x009a,
+ 0x18c6: 0x008a, 0x18c7: 0x00ba, 0x18c8: 0x00aa, 0x18c9: 0x009a, 0x18ca: 0x008a, 0x18cb: 0x007a,
+ 0x18cc: 0x006a, 0x18cd: 0x00da, 0x18ce: 0x002a, 0x18cf: 0x003a, 0x18d0: 0x00ca, 0x18d1: 0x009a,
+ 0x18d2: 0x008a, 0x18d3: 0x007a, 0x18d4: 0x006a, 0x18d5: 0x009a, 0x18d6: 0x008a, 0x18d7: 0x00ba,
+ 0x18d8: 0x00aa, 0x18d9: 0x000a, 0x18da: 0x000a, 0x18db: 0x000a, 0x18dc: 0x000a, 0x18dd: 0x000a,
+ 0x18de: 0x000a, 0x18df: 0x000a, 0x18e0: 0x000a, 0x18e1: 0x000a, 0x18e2: 0x000a, 0x18e3: 0x000a,
+ 0x18e4: 0x000a, 0x18e5: 0x000a, 0x18e6: 0x000a, 0x18e7: 0x000a, 0x18e8: 0x000a, 0x18e9: 0x000a,
+ 0x18ea: 0x000a, 0x18eb: 0x000a, 0x18ec: 0x000a, 0x18ed: 0x000a, 0x18ee: 0x000a, 0x18ef: 0x000a,
+ 0x18f0: 0x000a, 0x18f1: 0x000a, 0x18f2: 0x000a, 0x18f3: 0x000a, 0x18f4: 0x000a, 0x18f5: 0x000a,
+ 0x18f6: 0x000a, 0x18f7: 0x000a, 0x18f8: 0x000a, 0x18f9: 0x000a, 0x18fa: 0x000a, 0x18fb: 0x000a,
+ 0x18fc: 0x000a, 0x18fd: 0x000a, 0x18fe: 0x000a, 0x18ff: 0x000a,
+ // Block 0x64, offset 0x1900
+ 0x1900: 0x000a, 0x1901: 0x000a, 0x1902: 0x000a, 0x1903: 0x000a, 0x1904: 0x000a, 0x1905: 0x000a,
+ 0x1906: 0x000a, 0x1907: 0x000a, 0x1908: 0x000a, 0x1909: 0x000a, 0x190a: 0x000a, 0x190b: 0x000a,
+ 0x190c: 0x000a, 0x190d: 0x000a, 0x190e: 0x000a, 0x190f: 0x000a, 0x1910: 0x000a, 0x1911: 0x000a,
+ 0x1912: 0x000a, 0x1913: 0x000a, 0x1914: 0x000a, 0x1915: 0x000a, 0x1916: 0x000a, 0x1917: 0x000a,
+ 0x1918: 0x003a, 0x1919: 0x002a, 0x191a: 0x003a, 0x191b: 0x002a, 0x191c: 0x000a, 0x191d: 0x000a,
+ 0x191e: 0x000a, 0x191f: 0x000a, 0x1920: 0x000a, 0x1921: 0x000a, 0x1922: 0x000a, 0x1923: 0x000a,
+ 0x1924: 0x000a, 0x1925: 0x000a, 0x1926: 0x000a, 0x1927: 0x000a, 0x1928: 0x000a, 0x1929: 0x000a,
+ 0x192a: 0x000a, 0x192b: 0x000a, 0x192c: 0x000a, 0x192d: 0x000a, 0x192e: 0x000a, 0x192f: 0x000a,
+ 0x1930: 0x000a, 0x1931: 0x000a, 0x1932: 0x000a, 0x1933: 0x000a, 0x1934: 0x000a, 0x1935: 0x000a,
+ 0x1936: 0x000a, 0x1937: 0x000a, 0x1938: 0x000a, 0x1939: 0x000a, 0x193a: 0x000a, 0x193b: 0x000a,
+ 0x193c: 0x003a, 0x193d: 0x002a, 0x193e: 0x000a, 0x193f: 0x000a,
+ // Block 0x65, offset 0x1940
+ 0x1940: 0x000a, 0x1941: 0x000a, 0x1942: 0x000a, 0x1943: 0x000a, 0x1944: 0x000a, 0x1945: 0x000a,
+ 0x1946: 0x000a, 0x1947: 0x000a, 0x1948: 0x000a, 0x1949: 0x000a, 0x194a: 0x000a, 0x194b: 0x000a,
+ 0x194c: 0x000a, 0x194d: 0x000a, 0x194e: 0x000a, 0x194f: 0x000a, 0x1950: 0x000a, 0x1951: 0x000a,
+ 0x1952: 0x000a, 0x1953: 0x000a, 0x1954: 0x000a, 0x1955: 0x000a, 0x1956: 0x000a, 0x1957: 0x000a,
+ 0x1958: 0x000a, 0x1959: 0x000a, 0x195a: 0x000a, 0x195b: 0x000a, 0x195c: 0x000a, 0x195d: 0x000a,
+ 0x195e: 0x000a, 0x195f: 0x000a, 0x1960: 0x000a, 0x1961: 0x000a, 0x1962: 0x000a, 0x1963: 0x000a,
+ 0x1964: 0x000a, 0x1965: 0x000a, 0x1966: 0x000a, 0x1967: 0x000a, 0x1968: 0x000a, 0x1969: 0x000a,
+ 0x196a: 0x000a, 0x196b: 0x000a, 0x196c: 0x000a, 0x196d: 0x000a, 0x196e: 0x000a, 0x196f: 0x000a,
+ 0x1970: 0x000a, 0x1971: 0x000a, 0x1972: 0x000a, 0x1973: 0x000a,
+ 0x1976: 0x000a, 0x1977: 0x000a, 0x1978: 0x000a, 0x1979: 0x000a, 0x197a: 0x000a, 0x197b: 0x000a,
+ 0x197c: 0x000a, 0x197d: 0x000a, 0x197e: 0x000a, 0x197f: 0x000a,
+ // Block 0x66, offset 0x1980
+ 0x19a5: 0x000a, 0x19a6: 0x000a, 0x19a7: 0x000a, 0x19a8: 0x000a, 0x19a9: 0x000a,
+ 0x19aa: 0x000a, 0x19af: 0x000c,
+ 0x19b0: 0x000c, 0x19b1: 0x000c,
+ 0x19b9: 0x000a, 0x19ba: 0x000a, 0x19bb: 0x000a,
+ 0x19bc: 0x000a, 0x19bd: 0x000a, 0x19be: 0x000a, 0x19bf: 0x000a,
+ // Block 0x67, offset 0x19c0
+ 0x19ff: 0x000c,
+ // Block 0x68, offset 0x1a00
+ 0x1a20: 0x000c, 0x1a21: 0x000c, 0x1a22: 0x000c, 0x1a23: 0x000c,
+ 0x1a24: 0x000c, 0x1a25: 0x000c, 0x1a26: 0x000c, 0x1a27: 0x000c, 0x1a28: 0x000c, 0x1a29: 0x000c,
+ 0x1a2a: 0x000c, 0x1a2b: 0x000c, 0x1a2c: 0x000c, 0x1a2d: 0x000c, 0x1a2e: 0x000c, 0x1a2f: 0x000c,
+ 0x1a30: 0x000c, 0x1a31: 0x000c, 0x1a32: 0x000c, 0x1a33: 0x000c, 0x1a34: 0x000c, 0x1a35: 0x000c,
+ 0x1a36: 0x000c, 0x1a37: 0x000c, 0x1a38: 0x000c, 0x1a39: 0x000c, 0x1a3a: 0x000c, 0x1a3b: 0x000c,
+ 0x1a3c: 0x000c, 0x1a3d: 0x000c, 0x1a3e: 0x000c, 0x1a3f: 0x000c,
+ // Block 0x69, offset 0x1a40
+ 0x1a40: 0x000a, 0x1a41: 0x000a, 0x1a42: 0x000a, 0x1a43: 0x000a, 0x1a44: 0x000a, 0x1a45: 0x000a,
+ 0x1a46: 0x000a, 0x1a47: 0x000a, 0x1a48: 0x000a, 0x1a49: 0x000a, 0x1a4a: 0x000a, 0x1a4b: 0x000a,
+ 0x1a4c: 0x000a, 0x1a4d: 0x000a, 0x1a4e: 0x000a, 0x1a4f: 0x000a, 0x1a50: 0x000a, 0x1a51: 0x000a,
+ 0x1a52: 0x000a, 0x1a53: 0x000a, 0x1a54: 0x000a, 0x1a55: 0x000a, 0x1a56: 0x000a, 0x1a57: 0x000a,
+ 0x1a58: 0x000a, 0x1a59: 0x000a, 0x1a5a: 0x000a, 0x1a5b: 0x000a, 0x1a5c: 0x000a, 0x1a5d: 0x000a,
+ 0x1a5e: 0x000a, 0x1a5f: 0x000a, 0x1a60: 0x000a, 0x1a61: 0x000a, 0x1a62: 0x003a, 0x1a63: 0x002a,
+ 0x1a64: 0x003a, 0x1a65: 0x002a, 0x1a66: 0x003a, 0x1a67: 0x002a, 0x1a68: 0x003a, 0x1a69: 0x002a,
+ 0x1a6a: 0x000a, 0x1a6b: 0x000a, 0x1a6c: 0x000a, 0x1a6d: 0x000a, 0x1a6e: 0x000a, 0x1a6f: 0x000a,
+ 0x1a70: 0x000a, 0x1a71: 0x000a, 0x1a72: 0x000a, 0x1a73: 0x000a, 0x1a74: 0x000a, 0x1a75: 0x000a,
+ 0x1a76: 0x000a, 0x1a77: 0x000a, 0x1a78: 0x000a, 0x1a79: 0x000a, 0x1a7a: 0x000a, 0x1a7b: 0x000a,
+ 0x1a7c: 0x000a, 0x1a7d: 0x000a, 0x1a7e: 0x000a, 0x1a7f: 0x000a,
+ // Block 0x6a, offset 0x1a80
+ 0x1a80: 0x000a, 0x1a81: 0x000a, 0x1a82: 0x000a, 0x1a83: 0x000a, 0x1a84: 0x000a, 0x1a85: 0x000a,
+ 0x1a86: 0x000a, 0x1a87: 0x000a, 0x1a88: 0x000a, 0x1a89: 0x000a, 0x1a8a: 0x000a, 0x1a8b: 0x000a,
+ 0x1a8c: 0x000a, 0x1a8d: 0x000a, 0x1a8e: 0x000a, 0x1a8f: 0x000a, 0x1a90: 0x000a, 0x1a91: 0x000a,
+ 0x1a92: 0x000a, 0x1a93: 0x000a, 0x1a94: 0x000a, 0x1a95: 0x009a, 0x1a96: 0x008a, 0x1a97: 0x00ba,
+ 0x1a98: 0x00aa, 0x1a99: 0x009a, 0x1a9a: 0x008a, 0x1a9b: 0x007a, 0x1a9c: 0x006a, 0x1a9d: 0x000a,
+ // Block 0x6b, offset 0x1ac0
+ 0x1ac0: 0x000a, 0x1ac1: 0x000a, 0x1ac2: 0x000a, 0x1ac3: 0x000a, 0x1ac4: 0x000a, 0x1ac5: 0x000a,
+ 0x1ac6: 0x000a, 0x1ac7: 0x000a, 0x1ac8: 0x000a, 0x1ac9: 0x000a, 0x1aca: 0x000a, 0x1acb: 0x000a,
+ 0x1acc: 0x000a, 0x1acd: 0x000a, 0x1ace: 0x000a, 0x1acf: 0x000a, 0x1ad0: 0x000a, 0x1ad1: 0x000a,
+ 0x1ad2: 0x000a, 0x1ad3: 0x000a, 0x1ad4: 0x000a, 0x1ad5: 0x000a, 0x1ad6: 0x000a, 0x1ad7: 0x000a,
+ 0x1ad8: 0x000a, 0x1ad9: 0x000a, 0x1adb: 0x000a, 0x1adc: 0x000a, 0x1add: 0x000a,
+ 0x1ade: 0x000a, 0x1adf: 0x000a, 0x1ae0: 0x000a, 0x1ae1: 0x000a, 0x1ae2: 0x000a, 0x1ae3: 0x000a,
+ 0x1ae4: 0x000a, 0x1ae5: 0x000a, 0x1ae6: 0x000a, 0x1ae7: 0x000a, 0x1ae8: 0x000a, 0x1ae9: 0x000a,
+ 0x1aea: 0x000a, 0x1aeb: 0x000a, 0x1aec: 0x000a, 0x1aed: 0x000a, 0x1aee: 0x000a, 0x1aef: 0x000a,
+ 0x1af0: 0x000a, 0x1af1: 0x000a, 0x1af2: 0x000a, 0x1af3: 0x000a, 0x1af4: 0x000a, 0x1af5: 0x000a,
+ 0x1af6: 0x000a, 0x1af7: 0x000a, 0x1af8: 0x000a, 0x1af9: 0x000a, 0x1afa: 0x000a, 0x1afb: 0x000a,
+ 0x1afc: 0x000a, 0x1afd: 0x000a, 0x1afe: 0x000a, 0x1aff: 0x000a,
+ // Block 0x6c, offset 0x1b00
+ 0x1b00: 0x000a, 0x1b01: 0x000a, 0x1b02: 0x000a, 0x1b03: 0x000a, 0x1b04: 0x000a, 0x1b05: 0x000a,
+ 0x1b06: 0x000a, 0x1b07: 0x000a, 0x1b08: 0x000a, 0x1b09: 0x000a, 0x1b0a: 0x000a, 0x1b0b: 0x000a,
+ 0x1b0c: 0x000a, 0x1b0d: 0x000a, 0x1b0e: 0x000a, 0x1b0f: 0x000a, 0x1b10: 0x000a, 0x1b11: 0x000a,
+ 0x1b12: 0x000a, 0x1b13: 0x000a, 0x1b14: 0x000a, 0x1b15: 0x000a, 0x1b16: 0x000a, 0x1b17: 0x000a,
+ 0x1b18: 0x000a, 0x1b19: 0x000a, 0x1b1a: 0x000a, 0x1b1b: 0x000a, 0x1b1c: 0x000a, 0x1b1d: 0x000a,
+ 0x1b1e: 0x000a, 0x1b1f: 0x000a, 0x1b20: 0x000a, 0x1b21: 0x000a, 0x1b22: 0x000a, 0x1b23: 0x000a,
+ 0x1b24: 0x000a, 0x1b25: 0x000a, 0x1b26: 0x000a, 0x1b27: 0x000a, 0x1b28: 0x000a, 0x1b29: 0x000a,
+ 0x1b2a: 0x000a, 0x1b2b: 0x000a, 0x1b2c: 0x000a, 0x1b2d: 0x000a, 0x1b2e: 0x000a, 0x1b2f: 0x000a,
+ 0x1b30: 0x000a, 0x1b31: 0x000a, 0x1b32: 0x000a, 0x1b33: 0x000a,
+ // Block 0x6d, offset 0x1b40
+ 0x1b40: 0x000a, 0x1b41: 0x000a, 0x1b42: 0x000a, 0x1b43: 0x000a, 0x1b44: 0x000a, 0x1b45: 0x000a,
+ 0x1b46: 0x000a, 0x1b47: 0x000a, 0x1b48: 0x000a, 0x1b49: 0x000a, 0x1b4a: 0x000a, 0x1b4b: 0x000a,
+ 0x1b4c: 0x000a, 0x1b4d: 0x000a, 0x1b4e: 0x000a, 0x1b4f: 0x000a, 0x1b50: 0x000a, 0x1b51: 0x000a,
+ 0x1b52: 0x000a, 0x1b53: 0x000a, 0x1b54: 0x000a, 0x1b55: 0x000a,
+ 0x1b70: 0x000a, 0x1b71: 0x000a, 0x1b72: 0x000a, 0x1b73: 0x000a, 0x1b74: 0x000a, 0x1b75: 0x000a,
+ 0x1b76: 0x000a, 0x1b77: 0x000a, 0x1b78: 0x000a, 0x1b79: 0x000a, 0x1b7a: 0x000a, 0x1b7b: 0x000a,
+ 0x1b7c: 0x000a, 0x1b7d: 0x000a, 0x1b7e: 0x000a, 0x1b7f: 0x000a,
+ // Block 0x6e, offset 0x1b80
+ 0x1b80: 0x0009, 0x1b81: 0x000a, 0x1b82: 0x000a, 0x1b83: 0x000a, 0x1b84: 0x000a,
+ 0x1b88: 0x003a, 0x1b89: 0x002a, 0x1b8a: 0x003a, 0x1b8b: 0x002a,
+ 0x1b8c: 0x003a, 0x1b8d: 0x002a, 0x1b8e: 0x003a, 0x1b8f: 0x002a, 0x1b90: 0x003a, 0x1b91: 0x002a,
+ 0x1b92: 0x000a, 0x1b93: 0x000a, 0x1b94: 0x003a, 0x1b95: 0x002a, 0x1b96: 0x003a, 0x1b97: 0x002a,
+ 0x1b98: 0x003a, 0x1b99: 0x002a, 0x1b9a: 0x003a, 0x1b9b: 0x002a, 0x1b9c: 0x000a, 0x1b9d: 0x000a,
+ 0x1b9e: 0x000a, 0x1b9f: 0x000a, 0x1ba0: 0x000a,
+ 0x1baa: 0x000c, 0x1bab: 0x000c, 0x1bac: 0x000c, 0x1bad: 0x000c,
+ 0x1bb0: 0x000a,
+ 0x1bb6: 0x000a, 0x1bb7: 0x000a,
+ 0x1bbd: 0x000a, 0x1bbe: 0x000a, 0x1bbf: 0x000a,
+ // Block 0x6f, offset 0x1bc0
+ 0x1bd9: 0x000c, 0x1bda: 0x000c, 0x1bdb: 0x000a, 0x1bdc: 0x000a,
+ 0x1be0: 0x000a,
+ // Block 0x70, offset 0x1c00
+ 0x1c3b: 0x000a,
+ // Block 0x71, offset 0x1c40
+ 0x1c40: 0x000a, 0x1c41: 0x000a, 0x1c42: 0x000a, 0x1c43: 0x000a, 0x1c44: 0x000a, 0x1c45: 0x000a,
+ 0x1c46: 0x000a, 0x1c47: 0x000a, 0x1c48: 0x000a, 0x1c49: 0x000a, 0x1c4a: 0x000a, 0x1c4b: 0x000a,
+ 0x1c4c: 0x000a, 0x1c4d: 0x000a, 0x1c4e: 0x000a, 0x1c4f: 0x000a, 0x1c50: 0x000a, 0x1c51: 0x000a,
+ 0x1c52: 0x000a, 0x1c53: 0x000a, 0x1c54: 0x000a, 0x1c55: 0x000a, 0x1c56: 0x000a, 0x1c57: 0x000a,
+ 0x1c58: 0x000a, 0x1c59: 0x000a, 0x1c5a: 0x000a, 0x1c5b: 0x000a, 0x1c5c: 0x000a, 0x1c5d: 0x000a,
+ 0x1c5e: 0x000a, 0x1c5f: 0x000a, 0x1c60: 0x000a, 0x1c61: 0x000a, 0x1c62: 0x000a, 0x1c63: 0x000a,
+ 0x1c64: 0x000a, 0x1c65: 0x000a,
+ 0x1c6f: 0x000a,
+ // Block 0x72, offset 0x1c80
+ 0x1c9d: 0x000a,
+ 0x1c9e: 0x000a,
+ // Block 0x73, offset 0x1cc0
+ 0x1cd0: 0x000a, 0x1cd1: 0x000a,
+ 0x1cd2: 0x000a, 0x1cd3: 0x000a, 0x1cd4: 0x000a, 0x1cd5: 0x000a, 0x1cd6: 0x000a, 0x1cd7: 0x000a,
+ 0x1cd8: 0x000a, 0x1cd9: 0x000a, 0x1cda: 0x000a, 0x1cdb: 0x000a, 0x1cdc: 0x000a, 0x1cdd: 0x000a,
+ 0x1cde: 0x000a, 0x1cdf: 0x000a,
+ 0x1cfc: 0x000a, 0x1cfd: 0x000a, 0x1cfe: 0x000a,
+ // Block 0x74, offset 0x1d00
+ 0x1d31: 0x000a, 0x1d32: 0x000a, 0x1d33: 0x000a, 0x1d34: 0x000a, 0x1d35: 0x000a,
+ 0x1d36: 0x000a, 0x1d37: 0x000a, 0x1d38: 0x000a, 0x1d39: 0x000a, 0x1d3a: 0x000a, 0x1d3b: 0x000a,
+ 0x1d3c: 0x000a, 0x1d3d: 0x000a, 0x1d3e: 0x000a, 0x1d3f: 0x000a,
+ // Block 0x75, offset 0x1d40
+ 0x1d4c: 0x000a, 0x1d4d: 0x000a, 0x1d4e: 0x000a, 0x1d4f: 0x000a,
+ // Block 0x76, offset 0x1d80
+ 0x1db7: 0x000a, 0x1db8: 0x000a, 0x1db9: 0x000a, 0x1dba: 0x000a,
+ // Block 0x77, offset 0x1dc0
+ 0x1dde: 0x000a, 0x1ddf: 0x000a,
+ 0x1dff: 0x000a,
+ // Block 0x78, offset 0x1e00
+ 0x1e10: 0x000a, 0x1e11: 0x000a,
+ 0x1e12: 0x000a, 0x1e13: 0x000a, 0x1e14: 0x000a, 0x1e15: 0x000a, 0x1e16: 0x000a, 0x1e17: 0x000a,
+ 0x1e18: 0x000a, 0x1e19: 0x000a, 0x1e1a: 0x000a, 0x1e1b: 0x000a, 0x1e1c: 0x000a, 0x1e1d: 0x000a,
+ 0x1e1e: 0x000a, 0x1e1f: 0x000a, 0x1e20: 0x000a, 0x1e21: 0x000a, 0x1e22: 0x000a, 0x1e23: 0x000a,
+ 0x1e24: 0x000a, 0x1e25: 0x000a, 0x1e26: 0x000a, 0x1e27: 0x000a, 0x1e28: 0x000a, 0x1e29: 0x000a,
+ 0x1e2a: 0x000a, 0x1e2b: 0x000a, 0x1e2c: 0x000a, 0x1e2d: 0x000a, 0x1e2e: 0x000a, 0x1e2f: 0x000a,
+ 0x1e30: 0x000a, 0x1e31: 0x000a, 0x1e32: 0x000a, 0x1e33: 0x000a, 0x1e34: 0x000a, 0x1e35: 0x000a,
+ 0x1e36: 0x000a, 0x1e37: 0x000a, 0x1e38: 0x000a, 0x1e39: 0x000a, 0x1e3a: 0x000a, 0x1e3b: 0x000a,
+ 0x1e3c: 0x000a, 0x1e3d: 0x000a, 0x1e3e: 0x000a, 0x1e3f: 0x000a,
+ // Block 0x79, offset 0x1e40
+ 0x1e40: 0x000a, 0x1e41: 0x000a, 0x1e42: 0x000a, 0x1e43: 0x000a, 0x1e44: 0x000a, 0x1e45: 0x000a,
+ 0x1e46: 0x000a,
+ // Block 0x7a, offset 0x1e80
+ 0x1e8d: 0x000a, 0x1e8e: 0x000a, 0x1e8f: 0x000a,
+ // Block 0x7b, offset 0x1ec0
+ 0x1eef: 0x000c,
+ 0x1ef0: 0x000c, 0x1ef1: 0x000c, 0x1ef2: 0x000c, 0x1ef3: 0x000a, 0x1ef4: 0x000c, 0x1ef5: 0x000c,
+ 0x1ef6: 0x000c, 0x1ef7: 0x000c, 0x1ef8: 0x000c, 0x1ef9: 0x000c, 0x1efa: 0x000c, 0x1efb: 0x000c,
+ 0x1efc: 0x000c, 0x1efd: 0x000c, 0x1efe: 0x000a, 0x1eff: 0x000a,
+ // Block 0x7c, offset 0x1f00
+ 0x1f1e: 0x000c, 0x1f1f: 0x000c,
+ // Block 0x7d, offset 0x1f40
+ 0x1f70: 0x000c, 0x1f71: 0x000c,
+ // Block 0x7e, offset 0x1f80
+ 0x1f80: 0x000a, 0x1f81: 0x000a, 0x1f82: 0x000a, 0x1f83: 0x000a, 0x1f84: 0x000a, 0x1f85: 0x000a,
+ 0x1f86: 0x000a, 0x1f87: 0x000a, 0x1f88: 0x000a, 0x1f89: 0x000a, 0x1f8a: 0x000a, 0x1f8b: 0x000a,
+ 0x1f8c: 0x000a, 0x1f8d: 0x000a, 0x1f8e: 0x000a, 0x1f8f: 0x000a, 0x1f90: 0x000a, 0x1f91: 0x000a,
+ 0x1f92: 0x000a, 0x1f93: 0x000a, 0x1f94: 0x000a, 0x1f95: 0x000a, 0x1f96: 0x000a, 0x1f97: 0x000a,
+ 0x1f98: 0x000a, 0x1f99: 0x000a, 0x1f9a: 0x000a, 0x1f9b: 0x000a, 0x1f9c: 0x000a, 0x1f9d: 0x000a,
+ 0x1f9e: 0x000a, 0x1f9f: 0x000a, 0x1fa0: 0x000a, 0x1fa1: 0x000a,
+ // Block 0x7f, offset 0x1fc0
+ 0x1fc8: 0x000a,
+ // Block 0x80, offset 0x2000
+ 0x2002: 0x000c,
+ 0x2006: 0x000c, 0x200b: 0x000c,
+ 0x2025: 0x000c, 0x2026: 0x000c, 0x2028: 0x000a, 0x2029: 0x000a,
+ 0x202a: 0x000a, 0x202b: 0x000a, 0x202c: 0x000c,
+ 0x2038: 0x0004, 0x2039: 0x0004,
+ // Block 0x81, offset 0x2040
+ 0x2074: 0x000a, 0x2075: 0x000a,
+ 0x2076: 0x000a, 0x2077: 0x000a,
+ // Block 0x82, offset 0x2080
+ 0x2084: 0x000c, 0x2085: 0x000c,
+ 0x20a0: 0x000c, 0x20a1: 0x000c, 0x20a2: 0x000c, 0x20a3: 0x000c,
+ 0x20a4: 0x000c, 0x20a5: 0x000c, 0x20a6: 0x000c, 0x20a7: 0x000c, 0x20a8: 0x000c, 0x20a9: 0x000c,
+ 0x20aa: 0x000c, 0x20ab: 0x000c, 0x20ac: 0x000c, 0x20ad: 0x000c, 0x20ae: 0x000c, 0x20af: 0x000c,
+ 0x20b0: 0x000c, 0x20b1: 0x000c,
+ 0x20bf: 0x000c,
+ // Block 0x83, offset 0x20c0
+ 0x20e6: 0x000c, 0x20e7: 0x000c, 0x20e8: 0x000c, 0x20e9: 0x000c,
+ 0x20ea: 0x000c, 0x20eb: 0x000c, 0x20ec: 0x000c, 0x20ed: 0x000c,
+ // Block 0x84, offset 0x2100
+ 0x2107: 0x000c, 0x2108: 0x000c, 0x2109: 0x000c, 0x210a: 0x000c, 0x210b: 0x000c,
+ 0x210c: 0x000c, 0x210d: 0x000c, 0x210e: 0x000c, 0x210f: 0x000c, 0x2110: 0x000c, 0x2111: 0x000c,
+ // Block 0x85, offset 0x2140
+ 0x2140: 0x000c, 0x2141: 0x000c, 0x2142: 0x000c,
+ 0x2173: 0x000c,
+ 0x2176: 0x000c, 0x2177: 0x000c, 0x2178: 0x000c, 0x2179: 0x000c,
+ 0x217c: 0x000c, 0x217d: 0x000c,
+ // Block 0x86, offset 0x2180
+ 0x21a5: 0x000c,
+ // Block 0x87, offset 0x21c0
+ 0x21e9: 0x000c,
+ 0x21ea: 0x000c, 0x21eb: 0x000c, 0x21ec: 0x000c, 0x21ed: 0x000c, 0x21ee: 0x000c,
+ 0x21f1: 0x000c, 0x21f2: 0x000c, 0x21f5: 0x000c,
+ 0x21f6: 0x000c,
+ // Block 0x88, offset 0x2200
+ 0x2203: 0x000c,
+ 0x220c: 0x000c,
+ 0x223c: 0x000c,
+ // Block 0x89, offset 0x2240
+ 0x2270: 0x000c, 0x2272: 0x000c, 0x2273: 0x000c, 0x2274: 0x000c,
+ 0x2277: 0x000c, 0x2278: 0x000c,
+ 0x227e: 0x000c, 0x227f: 0x000c,
+ // Block 0x8a, offset 0x2280
+ 0x2281: 0x000c,
+ 0x22ac: 0x000c, 0x22ad: 0x000c,
+ 0x22b6: 0x000c,
+ // Block 0x8b, offset 0x22c0
+ 0x22ea: 0x000a, 0x22eb: 0x000a,
+ // Block 0x8c, offset 0x2300
+ 0x2325: 0x000c, 0x2328: 0x000c,
+ 0x232d: 0x000c,
+ // Block 0x8d, offset 0x2340
+ 0x235d: 0x0001,
+ 0x235e: 0x000c, 0x235f: 0x0001, 0x2360: 0x0001, 0x2361: 0x0001, 0x2362: 0x0001, 0x2363: 0x0001,
+ 0x2364: 0x0001, 0x2365: 0x0001, 0x2366: 0x0001, 0x2367: 0x0001, 0x2368: 0x0001, 0x2369: 0x0003,
+ 0x236a: 0x0001, 0x236b: 0x0001, 0x236c: 0x0001, 0x236d: 0x0001, 0x236e: 0x0001, 0x236f: 0x0001,
+ 0x2370: 0x0001, 0x2371: 0x0001, 0x2372: 0x0001, 0x2373: 0x0001, 0x2374: 0x0001, 0x2375: 0x0001,
+ 0x2376: 0x0001, 0x2377: 0x0001, 0x2378: 0x0001, 0x2379: 0x0001, 0x237a: 0x0001, 0x237b: 0x0001,
+ 0x237c: 0x0001, 0x237d: 0x0001, 0x237e: 0x0001, 0x237f: 0x0001,
+ // Block 0x8e, offset 0x2380
+ 0x2380: 0x0001, 0x2381: 0x0001, 0x2382: 0x0001, 0x2383: 0x0001, 0x2384: 0x0001, 0x2385: 0x0001,
+ 0x2386: 0x0001, 0x2387: 0x0001, 0x2388: 0x0001, 0x2389: 0x0001, 0x238a: 0x0001, 0x238b: 0x0001,
+ 0x238c: 0x0001, 0x238d: 0x0001, 0x238e: 0x0001, 0x238f: 0x0001, 0x2390: 0x000d, 0x2391: 0x000d,
+ 0x2392: 0x000d, 0x2393: 0x000d, 0x2394: 0x000d, 0x2395: 0x000d, 0x2396: 0x000d, 0x2397: 0x000d,
+ 0x2398: 0x000d, 0x2399: 0x000d, 0x239a: 0x000d, 0x239b: 0x000d, 0x239c: 0x000d, 0x239d: 0x000d,
+ 0x239e: 0x000d, 0x239f: 0x000d, 0x23a0: 0x000d, 0x23a1: 0x000d, 0x23a2: 0x000d, 0x23a3: 0x000d,
+ 0x23a4: 0x000d, 0x23a5: 0x000d, 0x23a6: 0x000d, 0x23a7: 0x000d, 0x23a8: 0x000d, 0x23a9: 0x000d,
+ 0x23aa: 0x000d, 0x23ab: 0x000d, 0x23ac: 0x000d, 0x23ad: 0x000d, 0x23ae: 0x000d, 0x23af: 0x000d,
+ 0x23b0: 0x000d, 0x23b1: 0x000d, 0x23b2: 0x000d, 0x23b3: 0x000d, 0x23b4: 0x000d, 0x23b5: 0x000d,
+ 0x23b6: 0x000d, 0x23b7: 0x000d, 0x23b8: 0x000d, 0x23b9: 0x000d, 0x23ba: 0x000d, 0x23bb: 0x000d,
+ 0x23bc: 0x000d, 0x23bd: 0x000d, 0x23be: 0x000d, 0x23bf: 0x000d,
+ // Block 0x8f, offset 0x23c0
+ 0x23c0: 0x000d, 0x23c1: 0x000d, 0x23c2: 0x000d, 0x23c3: 0x000a, 0x23c4: 0x000a, 0x23c5: 0x000a,
+ 0x23c6: 0x000a, 0x23c7: 0x000a, 0x23c8: 0x000a, 0x23c9: 0x000a, 0x23ca: 0x000a, 0x23cb: 0x000a,
+ 0x23cc: 0x000a, 0x23cd: 0x000a, 0x23ce: 0x000a, 0x23cf: 0x000a, 0x23d0: 0x000a, 0x23d1: 0x000a,
+ 0x23d2: 0x000a, 0x23d3: 0x000d, 0x23d4: 0x000d, 0x23d5: 0x000d, 0x23d6: 0x000d, 0x23d7: 0x000d,
+ 0x23d8: 0x000d, 0x23d9: 0x000d, 0x23da: 0x000d, 0x23db: 0x000d, 0x23dc: 0x000d, 0x23dd: 0x000d,
+ 0x23de: 0x000d, 0x23df: 0x000d, 0x23e0: 0x000d, 0x23e1: 0x000d, 0x23e2: 0x000d, 0x23e3: 0x000d,
+ 0x23e4: 0x000d, 0x23e5: 0x000d, 0x23e6: 0x000d, 0x23e7: 0x000d, 0x23e8: 0x000d, 0x23e9: 0x000d,
+ 0x23ea: 0x000d, 0x23eb: 0x000d, 0x23ec: 0x000d, 0x23ed: 0x000d, 0x23ee: 0x000d, 0x23ef: 0x000d,
+ 0x23f0: 0x000d, 0x23f1: 0x000d, 0x23f2: 0x000d, 0x23f3: 0x000d, 0x23f4: 0x000d, 0x23f5: 0x000d,
+ 0x23f6: 0x000d, 0x23f7: 0x000d, 0x23f8: 0x000d, 0x23f9: 0x000d, 0x23fa: 0x000d, 0x23fb: 0x000d,
+ 0x23fc: 0x000d, 0x23fd: 0x000d, 0x23fe: 0x000d, 0x23ff: 0x000d,
+ // Block 0x90, offset 0x2400
+ 0x2400: 0x000d, 0x2401: 0x000d, 0x2402: 0x000d, 0x2403: 0x000d, 0x2404: 0x000d, 0x2405: 0x000d,
+ 0x2406: 0x000d, 0x2407: 0x000d, 0x2408: 0x000d, 0x2409: 0x000d, 0x240a: 0x000d, 0x240b: 0x000d,
+ 0x240c: 0x000d, 0x240d: 0x000d, 0x240e: 0x000d, 0x240f: 0x000d, 0x2410: 0x000d, 0x2411: 0x000d,
+ 0x2412: 0x000d, 0x2413: 0x000d, 0x2414: 0x000d, 0x2415: 0x000d, 0x2416: 0x000d, 0x2417: 0x000d,
+ 0x2418: 0x000d, 0x2419: 0x000d, 0x241a: 0x000d, 0x241b: 0x000d, 0x241c: 0x000d, 0x241d: 0x000d,
+ 0x241e: 0x000d, 0x241f: 0x000d, 0x2420: 0x000d, 0x2421: 0x000d, 0x2422: 0x000d, 0x2423: 0x000d,
+ 0x2424: 0x000d, 0x2425: 0x000d, 0x2426: 0x000d, 0x2427: 0x000d, 0x2428: 0x000d, 0x2429: 0x000d,
+ 0x242a: 0x000d, 0x242b: 0x000d, 0x242c: 0x000d, 0x242d: 0x000d, 0x242e: 0x000d, 0x242f: 0x000d,
+ 0x2430: 0x000d, 0x2431: 0x000d, 0x2432: 0x000d, 0x2433: 0x000d, 0x2434: 0x000d, 0x2435: 0x000d,
+ 0x2436: 0x000d, 0x2437: 0x000d, 0x2438: 0x000d, 0x2439: 0x000d, 0x243a: 0x000d, 0x243b: 0x000d,
+ 0x243c: 0x000d, 0x243d: 0x000d, 0x243e: 0x000a, 0x243f: 0x000a,
+ // Block 0x91, offset 0x2440
+ 0x2440: 0x000a, 0x2441: 0x000a, 0x2442: 0x000a, 0x2443: 0x000a, 0x2444: 0x000a, 0x2445: 0x000a,
+ 0x2446: 0x000a, 0x2447: 0x000a, 0x2448: 0x000a, 0x2449: 0x000a, 0x244a: 0x000a, 0x244b: 0x000a,
+ 0x244c: 0x000a, 0x244d: 0x000a, 0x244e: 0x000a, 0x244f: 0x000a, 0x2450: 0x000d, 0x2451: 0x000d,
+ 0x2452: 0x000d, 0x2453: 0x000d, 0x2454: 0x000d, 0x2455: 0x000d, 0x2456: 0x000d, 0x2457: 0x000d,
+ 0x2458: 0x000d, 0x2459: 0x000d, 0x245a: 0x000d, 0x245b: 0x000d, 0x245c: 0x000d, 0x245d: 0x000d,
+ 0x245e: 0x000d, 0x245f: 0x000d, 0x2460: 0x000d, 0x2461: 0x000d, 0x2462: 0x000d, 0x2463: 0x000d,
+ 0x2464: 0x000d, 0x2465: 0x000d, 0x2466: 0x000d, 0x2467: 0x000d, 0x2468: 0x000d, 0x2469: 0x000d,
+ 0x246a: 0x000d, 0x246b: 0x000d, 0x246c: 0x000d, 0x246d: 0x000d, 0x246e: 0x000d, 0x246f: 0x000d,
+ 0x2470: 0x000d, 0x2471: 0x000d, 0x2472: 0x000d, 0x2473: 0x000d, 0x2474: 0x000d, 0x2475: 0x000d,
+ 0x2476: 0x000d, 0x2477: 0x000d, 0x2478: 0x000d, 0x2479: 0x000d, 0x247a: 0x000d, 0x247b: 0x000d,
+ 0x247c: 0x000d, 0x247d: 0x000d, 0x247e: 0x000d, 0x247f: 0x000d,
+ // Block 0x92, offset 0x2480
+ 0x2480: 0x000d, 0x2481: 0x000d, 0x2482: 0x000d, 0x2483: 0x000d, 0x2484: 0x000d, 0x2485: 0x000d,
+ 0x2486: 0x000d, 0x2487: 0x000d, 0x2488: 0x000d, 0x2489: 0x000d, 0x248a: 0x000d, 0x248b: 0x000d,
+ 0x248c: 0x000d, 0x248d: 0x000d, 0x248e: 0x000d, 0x248f: 0x000d, 0x2490: 0x000a, 0x2491: 0x000a,
+ 0x2492: 0x000d, 0x2493: 0x000d, 0x2494: 0x000d, 0x2495: 0x000d, 0x2496: 0x000d, 0x2497: 0x000d,
+ 0x2498: 0x000d, 0x2499: 0x000d, 0x249a: 0x000d, 0x249b: 0x000d, 0x249c: 0x000d, 0x249d: 0x000d,
+ 0x249e: 0x000d, 0x249f: 0x000d, 0x24a0: 0x000d, 0x24a1: 0x000d, 0x24a2: 0x000d, 0x24a3: 0x000d,
+ 0x24a4: 0x000d, 0x24a5: 0x000d, 0x24a6: 0x000d, 0x24a7: 0x000d, 0x24a8: 0x000d, 0x24a9: 0x000d,
+ 0x24aa: 0x000d, 0x24ab: 0x000d, 0x24ac: 0x000d, 0x24ad: 0x000d, 0x24ae: 0x000d, 0x24af: 0x000d,
+ 0x24b0: 0x000d, 0x24b1: 0x000d, 0x24b2: 0x000d, 0x24b3: 0x000d, 0x24b4: 0x000d, 0x24b5: 0x000d,
+ 0x24b6: 0x000d, 0x24b7: 0x000d, 0x24b8: 0x000d, 0x24b9: 0x000d, 0x24ba: 0x000d, 0x24bb: 0x000d,
+ 0x24bc: 0x000d, 0x24bd: 0x000d, 0x24be: 0x000d, 0x24bf: 0x000d,
+ // Block 0x93, offset 0x24c0
+ 0x24c0: 0x000d, 0x24c1: 0x000d, 0x24c2: 0x000d, 0x24c3: 0x000d, 0x24c4: 0x000d, 0x24c5: 0x000d,
+ 0x24c6: 0x000d, 0x24c7: 0x000d, 0x24c8: 0x000a, 0x24c9: 0x000a, 0x24ca: 0x000a, 0x24cb: 0x000a,
+ 0x24cc: 0x000a, 0x24cd: 0x000a, 0x24ce: 0x000a, 0x24cf: 0x000a, 0x24d0: 0x000b, 0x24d1: 0x000b,
+ 0x24d2: 0x000b, 0x24d3: 0x000b, 0x24d4: 0x000b, 0x24d5: 0x000b, 0x24d6: 0x000b, 0x24d7: 0x000b,
+ 0x24d8: 0x000b, 0x24d9: 0x000b, 0x24da: 0x000b, 0x24db: 0x000b, 0x24dc: 0x000b, 0x24dd: 0x000b,
+ 0x24de: 0x000b, 0x24df: 0x000b, 0x24e0: 0x000b, 0x24e1: 0x000b, 0x24e2: 0x000b, 0x24e3: 0x000b,
+ 0x24e4: 0x000b, 0x24e5: 0x000b, 0x24e6: 0x000b, 0x24e7: 0x000b, 0x24e8: 0x000b, 0x24e9: 0x000b,
+ 0x24ea: 0x000b, 0x24eb: 0x000b, 0x24ec: 0x000b, 0x24ed: 0x000b, 0x24ee: 0x000b, 0x24ef: 0x000b,
+ 0x24f0: 0x000d, 0x24f1: 0x000d, 0x24f2: 0x000d, 0x24f3: 0x000d, 0x24f4: 0x000d, 0x24f5: 0x000d,
+ 0x24f6: 0x000d, 0x24f7: 0x000d, 0x24f8: 0x000d, 0x24f9: 0x000d, 0x24fa: 0x000d, 0x24fb: 0x000d,
+ 0x24fc: 0x000d, 0x24fd: 0x000a, 0x24fe: 0x000a, 0x24ff: 0x000a,
+ // Block 0x94, offset 0x2500
+ 0x2500: 0x000c, 0x2501: 0x000c, 0x2502: 0x000c, 0x2503: 0x000c, 0x2504: 0x000c, 0x2505: 0x000c,
+ 0x2506: 0x000c, 0x2507: 0x000c, 0x2508: 0x000c, 0x2509: 0x000c, 0x250a: 0x000c, 0x250b: 0x000c,
+ 0x250c: 0x000c, 0x250d: 0x000c, 0x250e: 0x000c, 0x250f: 0x000c, 0x2510: 0x000a, 0x2511: 0x000a,
+ 0x2512: 0x000a, 0x2513: 0x000a, 0x2514: 0x000a, 0x2515: 0x000a, 0x2516: 0x000a, 0x2517: 0x000a,
+ 0x2518: 0x000a, 0x2519: 0x000a,
+ 0x2520: 0x000c, 0x2521: 0x000c, 0x2522: 0x000c, 0x2523: 0x000c,
+ 0x2524: 0x000c, 0x2525: 0x000c, 0x2526: 0x000c, 0x2527: 0x000c, 0x2528: 0x000c, 0x2529: 0x000c,
+ 0x252a: 0x000c, 0x252b: 0x000c, 0x252c: 0x000c, 0x252d: 0x000c, 0x252e: 0x000c, 0x252f: 0x000c,
+ 0x2530: 0x000a, 0x2531: 0x000a, 0x2532: 0x000a, 0x2533: 0x000a, 0x2534: 0x000a, 0x2535: 0x000a,
+ 0x2536: 0x000a, 0x2537: 0x000a, 0x2538: 0x000a, 0x2539: 0x000a, 0x253a: 0x000a, 0x253b: 0x000a,
+ 0x253c: 0x000a, 0x253d: 0x000a, 0x253e: 0x000a, 0x253f: 0x000a,
+ // Block 0x95, offset 0x2540
+ 0x2540: 0x000a, 0x2541: 0x000a, 0x2542: 0x000a, 0x2543: 0x000a, 0x2544: 0x000a, 0x2545: 0x000a,
+ 0x2546: 0x000a, 0x2547: 0x000a, 0x2548: 0x000a, 0x2549: 0x000a, 0x254a: 0x000a, 0x254b: 0x000a,
+ 0x254c: 0x000a, 0x254d: 0x000a, 0x254e: 0x000a, 0x254f: 0x000a, 0x2550: 0x0006, 0x2551: 0x000a,
+ 0x2552: 0x0006, 0x2554: 0x000a, 0x2555: 0x0006, 0x2556: 0x000a, 0x2557: 0x000a,
+ 0x2558: 0x000a, 0x2559: 0x009a, 0x255a: 0x008a, 0x255b: 0x007a, 0x255c: 0x006a, 0x255d: 0x009a,
+ 0x255e: 0x008a, 0x255f: 0x0004, 0x2560: 0x000a, 0x2561: 0x000a, 0x2562: 0x0003, 0x2563: 0x0003,
+ 0x2564: 0x000a, 0x2565: 0x000a, 0x2566: 0x000a, 0x2568: 0x000a, 0x2569: 0x0004,
+ 0x256a: 0x0004, 0x256b: 0x000a,
+ 0x2570: 0x000d, 0x2571: 0x000d, 0x2572: 0x000d, 0x2573: 0x000d, 0x2574: 0x000d, 0x2575: 0x000d,
+ 0x2576: 0x000d, 0x2577: 0x000d, 0x2578: 0x000d, 0x2579: 0x000d, 0x257a: 0x000d, 0x257b: 0x000d,
+ 0x257c: 0x000d, 0x257d: 0x000d, 0x257e: 0x000d, 0x257f: 0x000d,
+ // Block 0x96, offset 0x2580
+ 0x2580: 0x000d, 0x2581: 0x000d, 0x2582: 0x000d, 0x2583: 0x000d, 0x2584: 0x000d, 0x2585: 0x000d,
+ 0x2586: 0x000d, 0x2587: 0x000d, 0x2588: 0x000d, 0x2589: 0x000d, 0x258a: 0x000d, 0x258b: 0x000d,
+ 0x258c: 0x000d, 0x258d: 0x000d, 0x258e: 0x000d, 0x258f: 0x000d, 0x2590: 0x000d, 0x2591: 0x000d,
+ 0x2592: 0x000d, 0x2593: 0x000d, 0x2594: 0x000d, 0x2595: 0x000d, 0x2596: 0x000d, 0x2597: 0x000d,
+ 0x2598: 0x000d, 0x2599: 0x000d, 0x259a: 0x000d, 0x259b: 0x000d, 0x259c: 0x000d, 0x259d: 0x000d,
+ 0x259e: 0x000d, 0x259f: 0x000d, 0x25a0: 0x000d, 0x25a1: 0x000d, 0x25a2: 0x000d, 0x25a3: 0x000d,
+ 0x25a4: 0x000d, 0x25a5: 0x000d, 0x25a6: 0x000d, 0x25a7: 0x000d, 0x25a8: 0x000d, 0x25a9: 0x000d,
+ 0x25aa: 0x000d, 0x25ab: 0x000d, 0x25ac: 0x000d, 0x25ad: 0x000d, 0x25ae: 0x000d, 0x25af: 0x000d,
+ 0x25b0: 0x000d, 0x25b1: 0x000d, 0x25b2: 0x000d, 0x25b3: 0x000d, 0x25b4: 0x000d, 0x25b5: 0x000d,
+ 0x25b6: 0x000d, 0x25b7: 0x000d, 0x25b8: 0x000d, 0x25b9: 0x000d, 0x25ba: 0x000d, 0x25bb: 0x000d,
+ 0x25bc: 0x000d, 0x25bd: 0x000d, 0x25be: 0x000d, 0x25bf: 0x000b,
+ // Block 0x97, offset 0x25c0
+ 0x25c1: 0x000a, 0x25c2: 0x000a, 0x25c3: 0x0004, 0x25c4: 0x0004, 0x25c5: 0x0004,
+ 0x25c6: 0x000a, 0x25c7: 0x000a, 0x25c8: 0x003a, 0x25c9: 0x002a, 0x25ca: 0x000a, 0x25cb: 0x0003,
+ 0x25cc: 0x0006, 0x25cd: 0x0003, 0x25ce: 0x0006, 0x25cf: 0x0006, 0x25d0: 0x0002, 0x25d1: 0x0002,
+ 0x25d2: 0x0002, 0x25d3: 0x0002, 0x25d4: 0x0002, 0x25d5: 0x0002, 0x25d6: 0x0002, 0x25d7: 0x0002,
+ 0x25d8: 0x0002, 0x25d9: 0x0002, 0x25da: 0x0006, 0x25db: 0x000a, 0x25dc: 0x000a, 0x25dd: 0x000a,
+ 0x25de: 0x000a, 0x25df: 0x000a, 0x25e0: 0x000a,
+ 0x25fb: 0x005a,
+ 0x25fc: 0x000a, 0x25fd: 0x004a, 0x25fe: 0x000a, 0x25ff: 0x000a,
+ // Block 0x98, offset 0x2600
+ 0x2600: 0x000a,
+ 0x261b: 0x005a, 0x261c: 0x000a, 0x261d: 0x004a,
+ 0x261e: 0x000a, 0x261f: 0x00fa, 0x2620: 0x00ea, 0x2621: 0x000a, 0x2622: 0x003a, 0x2623: 0x002a,
+ 0x2624: 0x000a, 0x2625: 0x000a,
+ // Block 0x99, offset 0x2640
+ 0x2660: 0x0004, 0x2661: 0x0004, 0x2662: 0x000a, 0x2663: 0x000a,
+ 0x2664: 0x000a, 0x2665: 0x0004, 0x2666: 0x0004, 0x2668: 0x000a, 0x2669: 0x000a,
+ 0x266a: 0x000a, 0x266b: 0x000a, 0x266c: 0x000a, 0x266d: 0x000a, 0x266e: 0x000a,
+ 0x2670: 0x000b, 0x2671: 0x000b, 0x2672: 0x000b, 0x2673: 0x000b, 0x2674: 0x000b, 0x2675: 0x000b,
+ 0x2676: 0x000b, 0x2677: 0x000b, 0x2678: 0x000b, 0x2679: 0x000a, 0x267a: 0x000a, 0x267b: 0x000a,
+ 0x267c: 0x000a, 0x267d: 0x000a, 0x267e: 0x000b, 0x267f: 0x000b,
+ // Block 0x9a, offset 0x2680
+ 0x2681: 0x000a,
+ // Block 0x9b, offset 0x26c0
+ 0x26c0: 0x000a, 0x26c1: 0x000a, 0x26c2: 0x000a, 0x26c3: 0x000a, 0x26c4: 0x000a, 0x26c5: 0x000a,
+ 0x26c6: 0x000a, 0x26c7: 0x000a, 0x26c8: 0x000a, 0x26c9: 0x000a, 0x26ca: 0x000a, 0x26cb: 0x000a,
+ 0x26cc: 0x000a, 0x26d0: 0x000a, 0x26d1: 0x000a,
+ 0x26d2: 0x000a, 0x26d3: 0x000a, 0x26d4: 0x000a, 0x26d5: 0x000a, 0x26d6: 0x000a, 0x26d7: 0x000a,
+ 0x26d8: 0x000a, 0x26d9: 0x000a, 0x26da: 0x000a, 0x26db: 0x000a, 0x26dc: 0x000a,
+ 0x26e0: 0x000a,
+ // Block 0x9c, offset 0x2700
+ 0x273d: 0x000c,
+ // Block 0x9d, offset 0x2740
+ 0x2760: 0x000c, 0x2761: 0x0002, 0x2762: 0x0002, 0x2763: 0x0002,
+ 0x2764: 0x0002, 0x2765: 0x0002, 0x2766: 0x0002, 0x2767: 0x0002, 0x2768: 0x0002, 0x2769: 0x0002,
+ 0x276a: 0x0002, 0x276b: 0x0002, 0x276c: 0x0002, 0x276d: 0x0002, 0x276e: 0x0002, 0x276f: 0x0002,
+ 0x2770: 0x0002, 0x2771: 0x0002, 0x2772: 0x0002, 0x2773: 0x0002, 0x2774: 0x0002, 0x2775: 0x0002,
+ 0x2776: 0x0002, 0x2777: 0x0002, 0x2778: 0x0002, 0x2779: 0x0002, 0x277a: 0x0002, 0x277b: 0x0002,
+ // Block 0x9e, offset 0x2780
+ 0x27b6: 0x000c, 0x27b7: 0x000c, 0x27b8: 0x000c, 0x27b9: 0x000c, 0x27ba: 0x000c,
+ // Block 0x9f, offset 0x27c0
+ 0x27c0: 0x0001, 0x27c1: 0x0001, 0x27c2: 0x0001, 0x27c3: 0x0001, 0x27c4: 0x0001, 0x27c5: 0x0001,
+ 0x27c6: 0x0001, 0x27c7: 0x0001, 0x27c8: 0x0001, 0x27c9: 0x0001, 0x27ca: 0x0001, 0x27cb: 0x0001,
+ 0x27cc: 0x0001, 0x27cd: 0x0001, 0x27ce: 0x0001, 0x27cf: 0x0001, 0x27d0: 0x0001, 0x27d1: 0x0001,
+ 0x27d2: 0x0001, 0x27d3: 0x0001, 0x27d4: 0x0001, 0x27d5: 0x0001, 0x27d6: 0x0001, 0x27d7: 0x0001,
+ 0x27d8: 0x0001, 0x27d9: 0x0001, 0x27da: 0x0001, 0x27db: 0x0001, 0x27dc: 0x0001, 0x27dd: 0x0001,
+ 0x27de: 0x0001, 0x27df: 0x0001, 0x27e0: 0x0001, 0x27e1: 0x0001, 0x27e2: 0x0001, 0x27e3: 0x0001,
+ 0x27e4: 0x0001, 0x27e5: 0x0001, 0x27e6: 0x0001, 0x27e7: 0x0001, 0x27e8: 0x0001, 0x27e9: 0x0001,
+ 0x27ea: 0x0001, 0x27eb: 0x0001, 0x27ec: 0x0001, 0x27ed: 0x0001, 0x27ee: 0x0001, 0x27ef: 0x0001,
+ 0x27f0: 0x0001, 0x27f1: 0x0001, 0x27f2: 0x0001, 0x27f3: 0x0001, 0x27f4: 0x0001, 0x27f5: 0x0001,
+ 0x27f6: 0x0001, 0x27f7: 0x0001, 0x27f8: 0x0001, 0x27f9: 0x0001, 0x27fa: 0x0001, 0x27fb: 0x0001,
+ 0x27fc: 0x0001, 0x27fd: 0x0001, 0x27fe: 0x0001, 0x27ff: 0x0001,
+ // Block 0xa0, offset 0x2800
+ 0x2800: 0x0001, 0x2801: 0x0001, 0x2802: 0x0001, 0x2803: 0x0001, 0x2804: 0x0001, 0x2805: 0x0001,
+ 0x2806: 0x0001, 0x2807: 0x0001, 0x2808: 0x0001, 0x2809: 0x0001, 0x280a: 0x0001, 0x280b: 0x0001,
+ 0x280c: 0x0001, 0x280d: 0x0001, 0x280e: 0x0001, 0x280f: 0x0001, 0x2810: 0x0001, 0x2811: 0x0001,
+ 0x2812: 0x0001, 0x2813: 0x0001, 0x2814: 0x0001, 0x2815: 0x0001, 0x2816: 0x0001, 0x2817: 0x0001,
+ 0x2818: 0x0001, 0x2819: 0x0001, 0x281a: 0x0001, 0x281b: 0x0001, 0x281c: 0x0001, 0x281d: 0x0001,
+ 0x281e: 0x0001, 0x281f: 0x000a, 0x2820: 0x0001, 0x2821: 0x0001, 0x2822: 0x0001, 0x2823: 0x0001,
+ 0x2824: 0x0001, 0x2825: 0x0001, 0x2826: 0x0001, 0x2827: 0x0001, 0x2828: 0x0001, 0x2829: 0x0001,
+ 0x282a: 0x0001, 0x282b: 0x0001, 0x282c: 0x0001, 0x282d: 0x0001, 0x282e: 0x0001, 0x282f: 0x0001,
+ 0x2830: 0x0001, 0x2831: 0x0001, 0x2832: 0x0001, 0x2833: 0x0001, 0x2834: 0x0001, 0x2835: 0x0001,
+ 0x2836: 0x0001, 0x2837: 0x0001, 0x2838: 0x0001, 0x2839: 0x0001, 0x283a: 0x0001, 0x283b: 0x0001,
+ 0x283c: 0x0001, 0x283d: 0x0001, 0x283e: 0x0001, 0x283f: 0x0001,
+ // Block 0xa1, offset 0x2840
+ 0x2840: 0x0001, 0x2841: 0x000c, 0x2842: 0x000c, 0x2843: 0x000c, 0x2844: 0x0001, 0x2845: 0x000c,
+ 0x2846: 0x000c, 0x2847: 0x0001, 0x2848: 0x0001, 0x2849: 0x0001, 0x284a: 0x0001, 0x284b: 0x0001,
+ 0x284c: 0x000c, 0x284d: 0x000c, 0x284e: 0x000c, 0x284f: 0x000c, 0x2850: 0x0001, 0x2851: 0x0001,
+ 0x2852: 0x0001, 0x2853: 0x0001, 0x2854: 0x0001, 0x2855: 0x0001, 0x2856: 0x0001, 0x2857: 0x0001,
+ 0x2858: 0x0001, 0x2859: 0x0001, 0x285a: 0x0001, 0x285b: 0x0001, 0x285c: 0x0001, 0x285d: 0x0001,
+ 0x285e: 0x0001, 0x285f: 0x0001, 0x2860: 0x0001, 0x2861: 0x0001, 0x2862: 0x0001, 0x2863: 0x0001,
+ 0x2864: 0x0001, 0x2865: 0x0001, 0x2866: 0x0001, 0x2867: 0x0001, 0x2868: 0x0001, 0x2869: 0x0001,
+ 0x286a: 0x0001, 0x286b: 0x0001, 0x286c: 0x0001, 0x286d: 0x0001, 0x286e: 0x0001, 0x286f: 0x0001,
+ 0x2870: 0x0001, 0x2871: 0x0001, 0x2872: 0x0001, 0x2873: 0x0001, 0x2874: 0x0001, 0x2875: 0x0001,
+ 0x2876: 0x0001, 0x2877: 0x0001, 0x2878: 0x000c, 0x2879: 0x000c, 0x287a: 0x000c, 0x287b: 0x0001,
+ 0x287c: 0x0001, 0x287d: 0x0001, 0x287e: 0x0001, 0x287f: 0x000c,
+ // Block 0xa2, offset 0x2880
+ 0x2880: 0x0001, 0x2881: 0x0001, 0x2882: 0x0001, 0x2883: 0x0001, 0x2884: 0x0001, 0x2885: 0x0001,
+ 0x2886: 0x0001, 0x2887: 0x0001, 0x2888: 0x0001, 0x2889: 0x0001, 0x288a: 0x0001, 0x288b: 0x0001,
+ 0x288c: 0x0001, 0x288d: 0x0001, 0x288e: 0x0001, 0x288f: 0x0001, 0x2890: 0x0001, 0x2891: 0x0001,
+ 0x2892: 0x0001, 0x2893: 0x0001, 0x2894: 0x0001, 0x2895: 0x0001, 0x2896: 0x0001, 0x2897: 0x0001,
+ 0x2898: 0x0001, 0x2899: 0x0001, 0x289a: 0x0001, 0x289b: 0x0001, 0x289c: 0x0001, 0x289d: 0x0001,
+ 0x289e: 0x0001, 0x289f: 0x0001, 0x28a0: 0x0001, 0x28a1: 0x0001, 0x28a2: 0x0001, 0x28a3: 0x0001,
+ 0x28a4: 0x0001, 0x28a5: 0x000c, 0x28a6: 0x000c, 0x28a7: 0x0001, 0x28a8: 0x0001, 0x28a9: 0x0001,
+ 0x28aa: 0x0001, 0x28ab: 0x0001, 0x28ac: 0x0001, 0x28ad: 0x0001, 0x28ae: 0x0001, 0x28af: 0x0001,
+ 0x28b0: 0x0001, 0x28b1: 0x0001, 0x28b2: 0x0001, 0x28b3: 0x0001, 0x28b4: 0x0001, 0x28b5: 0x0001,
+ 0x28b6: 0x0001, 0x28b7: 0x0001, 0x28b8: 0x0001, 0x28b9: 0x0001, 0x28ba: 0x0001, 0x28bb: 0x0001,
+ 0x28bc: 0x0001, 0x28bd: 0x0001, 0x28be: 0x0001, 0x28bf: 0x0001,
+ // Block 0xa3, offset 0x28c0
+ 0x28c0: 0x0001, 0x28c1: 0x0001, 0x28c2: 0x0001, 0x28c3: 0x0001, 0x28c4: 0x0001, 0x28c5: 0x0001,
+ 0x28c6: 0x0001, 0x28c7: 0x0001, 0x28c8: 0x0001, 0x28c9: 0x0001, 0x28ca: 0x0001, 0x28cb: 0x0001,
+ 0x28cc: 0x0001, 0x28cd: 0x0001, 0x28ce: 0x0001, 0x28cf: 0x0001, 0x28d0: 0x0001, 0x28d1: 0x0001,
+ 0x28d2: 0x0001, 0x28d3: 0x0001, 0x28d4: 0x0001, 0x28d5: 0x0001, 0x28d6: 0x0001, 0x28d7: 0x0001,
+ 0x28d8: 0x0001, 0x28d9: 0x0001, 0x28da: 0x0001, 0x28db: 0x0001, 0x28dc: 0x0001, 0x28dd: 0x0001,
+ 0x28de: 0x0001, 0x28df: 0x0001, 0x28e0: 0x0001, 0x28e1: 0x0001, 0x28e2: 0x0001, 0x28e3: 0x0001,
+ 0x28e4: 0x0001, 0x28e5: 0x0001, 0x28e6: 0x0001, 0x28e7: 0x0001, 0x28e8: 0x0001, 0x28e9: 0x0001,
+ 0x28ea: 0x0001, 0x28eb: 0x0001, 0x28ec: 0x0001, 0x28ed: 0x0001, 0x28ee: 0x0001, 0x28ef: 0x0001,
+ 0x28f0: 0x0001, 0x28f1: 0x0001, 0x28f2: 0x0001, 0x28f3: 0x0001, 0x28f4: 0x0001, 0x28f5: 0x0001,
+ 0x28f6: 0x0001, 0x28f7: 0x0001, 0x28f8: 0x0001, 0x28f9: 0x000a, 0x28fa: 0x000a, 0x28fb: 0x000a,
+ 0x28fc: 0x000a, 0x28fd: 0x000a, 0x28fe: 0x000a, 0x28ff: 0x000a,
+ // Block 0xa4, offset 0x2900
+ 0x2900: 0x000d, 0x2901: 0x000d, 0x2902: 0x000d, 0x2903: 0x000d, 0x2904: 0x000d, 0x2905: 0x000d,
+ 0x2906: 0x000d, 0x2907: 0x000d, 0x2908: 0x000d, 0x2909: 0x000d, 0x290a: 0x000d, 0x290b: 0x000d,
+ 0x290c: 0x000d, 0x290d: 0x000d, 0x290e: 0x000d, 0x290f: 0x000d, 0x2910: 0x000d, 0x2911: 0x000d,
+ 0x2912: 0x000d, 0x2913: 0x000d, 0x2914: 0x000d, 0x2915: 0x000d, 0x2916: 0x000d, 0x2917: 0x000d,
+ 0x2918: 0x000d, 0x2919: 0x000d, 0x291a: 0x000d, 0x291b: 0x000d, 0x291c: 0x000d, 0x291d: 0x000d,
+ 0x291e: 0x000d, 0x291f: 0x000d, 0x2920: 0x000d, 0x2921: 0x000d, 0x2922: 0x000d, 0x2923: 0x000d,
+ 0x2924: 0x000c, 0x2925: 0x000c, 0x2926: 0x000c, 0x2927: 0x000c, 0x2928: 0x0001, 0x2929: 0x0001,
+ 0x292a: 0x0001, 0x292b: 0x0001, 0x292c: 0x0001, 0x292d: 0x0001, 0x292e: 0x0001, 0x292f: 0x0001,
+ 0x2930: 0x0005, 0x2931: 0x0005, 0x2932: 0x0005, 0x2933: 0x0005, 0x2934: 0x0005, 0x2935: 0x0005,
+ 0x2936: 0x0005, 0x2937: 0x0005, 0x2938: 0x0005, 0x2939: 0x0005, 0x293a: 0x0001, 0x293b: 0x0001,
+ 0x293c: 0x0001, 0x293d: 0x0001, 0x293e: 0x0001, 0x293f: 0x0001,
+ // Block 0xa5, offset 0x2940
+ 0x2940: 0x0005, 0x2941: 0x0005, 0x2942: 0x0005, 0x2943: 0x0005, 0x2944: 0x0005, 0x2945: 0x0005,
+ 0x2946: 0x0005, 0x2947: 0x0005, 0x2948: 0x0005, 0x2949: 0x0005, 0x294a: 0x0001, 0x294b: 0x0001,
+ 0x294c: 0x0001, 0x294d: 0x0001, 0x294e: 0x0001, 0x294f: 0x0001, 0x2950: 0x0001, 0x2951: 0x0001,
+ 0x2952: 0x0001, 0x2953: 0x0001, 0x2954: 0x0001, 0x2955: 0x0001, 0x2956: 0x0001, 0x2957: 0x0001,
+ 0x2958: 0x0001, 0x2959: 0x0001, 0x295a: 0x0001, 0x295b: 0x0001, 0x295c: 0x0001, 0x295d: 0x0001,
+ 0x295e: 0x0001, 0x295f: 0x0001, 0x2960: 0x0001, 0x2961: 0x0001, 0x2962: 0x0001, 0x2963: 0x0001,
+ 0x2964: 0x0001, 0x2965: 0x0001, 0x2966: 0x0001, 0x2967: 0x0001, 0x2968: 0x0001, 0x2969: 0x000c,
+ 0x296a: 0x000c, 0x296b: 0x000c, 0x296c: 0x000c, 0x296d: 0x000c, 0x296e: 0x000a, 0x296f: 0x0001,
+ 0x2970: 0x0001, 0x2971: 0x0001, 0x2972: 0x0001, 0x2973: 0x0001, 0x2974: 0x0001, 0x2975: 0x0001,
+ 0x2976: 0x0001, 0x2977: 0x0001, 0x2978: 0x0001, 0x2979: 0x0001, 0x297a: 0x0001, 0x297b: 0x0001,
+ 0x297c: 0x0001, 0x297d: 0x0001, 0x297e: 0x0001, 0x297f: 0x0001,
+ // Block 0xa6, offset 0x2980
+ 0x2980: 0x0001, 0x2981: 0x0001, 0x2982: 0x0001, 0x2983: 0x0001, 0x2984: 0x0001, 0x2985: 0x0001,
+ 0x2986: 0x0001, 0x2987: 0x0001, 0x2988: 0x0001, 0x2989: 0x0001, 0x298a: 0x0001, 0x298b: 0x0001,
+ 0x298c: 0x0001, 0x298d: 0x0001, 0x298e: 0x0001, 0x298f: 0x0001, 0x2990: 0x0001, 0x2991: 0x0001,
+ 0x2992: 0x0001, 0x2993: 0x0001, 0x2994: 0x0001, 0x2995: 0x0001, 0x2996: 0x0001, 0x2997: 0x0001,
+ 0x2998: 0x0001, 0x2999: 0x0001, 0x299a: 0x0001, 0x299b: 0x0001, 0x299c: 0x0001, 0x299d: 0x0001,
+ 0x299e: 0x0001, 0x299f: 0x0001, 0x29a0: 0x0005, 0x29a1: 0x0005, 0x29a2: 0x0005, 0x29a3: 0x0005,
+ 0x29a4: 0x0005, 0x29a5: 0x0005, 0x29a6: 0x0005, 0x29a7: 0x0005, 0x29a8: 0x0005, 0x29a9: 0x0005,
+ 0x29aa: 0x0005, 0x29ab: 0x0005, 0x29ac: 0x0005, 0x29ad: 0x0005, 0x29ae: 0x0005, 0x29af: 0x0005,
+ 0x29b0: 0x0005, 0x29b1: 0x0005, 0x29b2: 0x0005, 0x29b3: 0x0005, 0x29b4: 0x0005, 0x29b5: 0x0005,
+ 0x29b6: 0x0005, 0x29b7: 0x0005, 0x29b8: 0x0005, 0x29b9: 0x0005, 0x29ba: 0x0005, 0x29bb: 0x0005,
+ 0x29bc: 0x0005, 0x29bd: 0x0005, 0x29be: 0x0005, 0x29bf: 0x0001,
+ // Block 0xa7, offset 0x29c0
+ 0x29c0: 0x0001, 0x29c1: 0x0001, 0x29c2: 0x0001, 0x29c3: 0x0001, 0x29c4: 0x0001, 0x29c5: 0x0001,
+ 0x29c6: 0x0001, 0x29c7: 0x0001, 0x29c8: 0x0001, 0x29c9: 0x0001, 0x29ca: 0x0001, 0x29cb: 0x0001,
+ 0x29cc: 0x0001, 0x29cd: 0x0001, 0x29ce: 0x0001, 0x29cf: 0x0001, 0x29d0: 0x0001, 0x29d1: 0x0001,
+ 0x29d2: 0x0001, 0x29d3: 0x0001, 0x29d4: 0x0001, 0x29d5: 0x0001, 0x29d6: 0x0001, 0x29d7: 0x0001,
+ 0x29d8: 0x0001, 0x29d9: 0x0001, 0x29da: 0x0001, 0x29db: 0x0001, 0x29dc: 0x0001, 0x29dd: 0x0001,
+ 0x29de: 0x0001, 0x29df: 0x0001, 0x29e0: 0x0001, 0x29e1: 0x0001, 0x29e2: 0x0001, 0x29e3: 0x0001,
+ 0x29e4: 0x0001, 0x29e5: 0x0001, 0x29e6: 0x0001, 0x29e7: 0x0001, 0x29e8: 0x0001, 0x29e9: 0x0001,
+ 0x29ea: 0x0001, 0x29eb: 0x000c, 0x29ec: 0x000c, 0x29ed: 0x0001, 0x29ee: 0x0001, 0x29ef: 0x0001,
+ 0x29f0: 0x0001, 0x29f1: 0x0001, 0x29f2: 0x0001, 0x29f3: 0x0001, 0x29f4: 0x0001, 0x29f5: 0x0001,
+ 0x29f6: 0x0001, 0x29f7: 0x0001, 0x29f8: 0x0001, 0x29f9: 0x0001, 0x29fa: 0x0001, 0x29fb: 0x0001,
+ 0x29fc: 0x0001, 0x29fd: 0x0001, 0x29fe: 0x0001, 0x29ff: 0x0001,
+ // Block 0xa8, offset 0x2a00
+ 0x2a00: 0x0001, 0x2a01: 0x0001, 0x2a02: 0x000d, 0x2a03: 0x000d, 0x2a04: 0x000d, 0x2a05: 0x000d,
+ 0x2a06: 0x000d, 0x2a07: 0x000d, 0x2a08: 0x0001, 0x2a09: 0x0001, 0x2a0a: 0x0001, 0x2a0b: 0x0001,
+ 0x2a0c: 0x0001, 0x2a0d: 0x0001, 0x2a0e: 0x0001, 0x2a0f: 0x0001, 0x2a10: 0x000a, 0x2a11: 0x000a,
+ 0x2a12: 0x000a, 0x2a13: 0x000a, 0x2a14: 0x000a, 0x2a15: 0x000a, 0x2a16: 0x000a, 0x2a17: 0x000a,
+ 0x2a18: 0x000a, 0x2a19: 0x0001, 0x2a1a: 0x0001, 0x2a1b: 0x0001, 0x2a1c: 0x0001, 0x2a1d: 0x0001,
+ 0x2a1e: 0x0001, 0x2a1f: 0x0001, 0x2a20: 0x0001, 0x2a21: 0x0001, 0x2a22: 0x0001, 0x2a23: 0x0001,
+ 0x2a24: 0x0001, 0x2a25: 0x0001, 0x2a26: 0x0001, 0x2a27: 0x0001, 0x2a28: 0x0001, 0x2a29: 0x0001,
+ 0x2a2a: 0x0001, 0x2a2b: 0x0001, 0x2a2c: 0x0001, 0x2a2d: 0x0001, 0x2a2e: 0x0001, 0x2a2f: 0x0001,
+ 0x2a30: 0x0001, 0x2a31: 0x0001, 0x2a32: 0x0001, 0x2a33: 0x0001, 0x2a34: 0x0001, 0x2a35: 0x0001,
+ 0x2a36: 0x0001, 0x2a37: 0x0001, 0x2a38: 0x0001, 0x2a39: 0x0001, 0x2a3a: 0x000c, 0x2a3b: 0x000c,
+ 0x2a3c: 0x000c, 0x2a3d: 0x000c, 0x2a3e: 0x000c, 0x2a3f: 0x000c,
+ // Block 0xa9, offset 0x2a40
+ 0x2a40: 0x0001, 0x2a41: 0x0001, 0x2a42: 0x0001, 0x2a43: 0x0001, 0x2a44: 0x0001, 0x2a45: 0x0001,
+ 0x2a46: 0x0001, 0x2a47: 0x0001, 0x2a48: 0x0001, 0x2a49: 0x0001, 0x2a4a: 0x0001, 0x2a4b: 0x0001,
+ 0x2a4c: 0x0001, 0x2a4d: 0x0001, 0x2a4e: 0x0001, 0x2a4f: 0x0001, 0x2a50: 0x0001, 0x2a51: 0x0001,
+ 0x2a52: 0x0001, 0x2a53: 0x0001, 0x2a54: 0x0001, 0x2a55: 0x0001, 0x2a56: 0x0001, 0x2a57: 0x0001,
+ 0x2a58: 0x0001, 0x2a59: 0x0001, 0x2a5a: 0x0001, 0x2a5b: 0x0001, 0x2a5c: 0x0001, 0x2a5d: 0x0001,
+ 0x2a5e: 0x0001, 0x2a5f: 0x0001, 0x2a60: 0x0001, 0x2a61: 0x0001, 0x2a62: 0x0001, 0x2a63: 0x0001,
+ 0x2a64: 0x0001, 0x2a65: 0x0001, 0x2a66: 0x0001, 0x2a67: 0x0001, 0x2a68: 0x0001, 0x2a69: 0x0001,
+ 0x2a6a: 0x0001, 0x2a6b: 0x0001, 0x2a6c: 0x0001, 0x2a6d: 0x0001, 0x2a6e: 0x0001, 0x2a6f: 0x0001,
+ 0x2a70: 0x000d, 0x2a71: 0x000d, 0x2a72: 0x000d, 0x2a73: 0x000d, 0x2a74: 0x000d, 0x2a75: 0x000d,
+ 0x2a76: 0x000d, 0x2a77: 0x000d, 0x2a78: 0x000d, 0x2a79: 0x000d, 0x2a7a: 0x000d, 0x2a7b: 0x000d,
+ 0x2a7c: 0x000d, 0x2a7d: 0x000d, 0x2a7e: 0x000d, 0x2a7f: 0x000d,
+ // Block 0xaa, offset 0x2a80
+ 0x2a80: 0x000d, 0x2a81: 0x000d, 0x2a82: 0x000d, 0x2a83: 0x000d, 0x2a84: 0x000d, 0x2a85: 0x000d,
+ 0x2a86: 0x000c, 0x2a87: 0x000c, 0x2a88: 0x000c, 0x2a89: 0x000c, 0x2a8a: 0x000c, 0x2a8b: 0x000c,
+ 0x2a8c: 0x000c, 0x2a8d: 0x000c, 0x2a8e: 0x000c, 0x2a8f: 0x000c, 0x2a90: 0x000c, 0x2a91: 0x000d,
+ 0x2a92: 0x000d, 0x2a93: 0x000d, 0x2a94: 0x000d, 0x2a95: 0x000d, 0x2a96: 0x000d, 0x2a97: 0x000d,
+ 0x2a98: 0x000d, 0x2a99: 0x000d, 0x2a9a: 0x0001, 0x2a9b: 0x0001, 0x2a9c: 0x0001, 0x2a9d: 0x0001,
+ 0x2a9e: 0x0001, 0x2a9f: 0x0001, 0x2aa0: 0x0001, 0x2aa1: 0x0001, 0x2aa2: 0x0001, 0x2aa3: 0x0001,
+ 0x2aa4: 0x0001, 0x2aa5: 0x0001, 0x2aa6: 0x0001, 0x2aa7: 0x0001, 0x2aa8: 0x0001, 0x2aa9: 0x0001,
+ 0x2aaa: 0x0001, 0x2aab: 0x0001, 0x2aac: 0x0001, 0x2aad: 0x0001, 0x2aae: 0x0001, 0x2aaf: 0x0001,
+ 0x2ab0: 0x0001, 0x2ab1: 0x0001, 0x2ab2: 0x0001, 0x2ab3: 0x0001, 0x2ab4: 0x0001, 0x2ab5: 0x0001,
+ 0x2ab6: 0x0001, 0x2ab7: 0x0001, 0x2ab8: 0x0001, 0x2ab9: 0x0001, 0x2aba: 0x0001, 0x2abb: 0x0001,
+ 0x2abc: 0x0001, 0x2abd: 0x0001, 0x2abe: 0x0001, 0x2abf: 0x0001,
+ // Block 0xab, offset 0x2ac0
+ 0x2ac0: 0x0001, 0x2ac1: 0x0001, 0x2ac2: 0x000c, 0x2ac3: 0x000c, 0x2ac4: 0x000c, 0x2ac5: 0x000c,
+ 0x2ac6: 0x0001, 0x2ac7: 0x0001, 0x2ac8: 0x0001, 0x2ac9: 0x0001, 0x2aca: 0x0001, 0x2acb: 0x0001,
+ 0x2acc: 0x0001, 0x2acd: 0x0001, 0x2ace: 0x0001, 0x2acf: 0x0001, 0x2ad0: 0x0001, 0x2ad1: 0x0001,
+ 0x2ad2: 0x0001, 0x2ad3: 0x0001, 0x2ad4: 0x0001, 0x2ad5: 0x0001, 0x2ad6: 0x0001, 0x2ad7: 0x0001,
+ 0x2ad8: 0x0001, 0x2ad9: 0x0001, 0x2ada: 0x0001, 0x2adb: 0x0001, 0x2adc: 0x0001, 0x2add: 0x0001,
+ 0x2ade: 0x0001, 0x2adf: 0x0001, 0x2ae0: 0x0001, 0x2ae1: 0x0001, 0x2ae2: 0x0001, 0x2ae3: 0x0001,
+ 0x2ae4: 0x0001, 0x2ae5: 0x0001, 0x2ae6: 0x0001, 0x2ae7: 0x0001, 0x2ae8: 0x0001, 0x2ae9: 0x0001,
+ 0x2aea: 0x0001, 0x2aeb: 0x0001, 0x2aec: 0x0001, 0x2aed: 0x0001, 0x2aee: 0x0001, 0x2aef: 0x0001,
+ 0x2af0: 0x0001, 0x2af1: 0x0001, 0x2af2: 0x0001, 0x2af3: 0x0001, 0x2af4: 0x0001, 0x2af5: 0x0001,
+ 0x2af6: 0x0001, 0x2af7: 0x0001, 0x2af8: 0x0001, 0x2af9: 0x0001, 0x2afa: 0x0001, 0x2afb: 0x0001,
+ 0x2afc: 0x0001, 0x2afd: 0x0001, 0x2afe: 0x0001, 0x2aff: 0x0001,
+ // Block 0xac, offset 0x2b00
+ 0x2b01: 0x000c,
+ 0x2b38: 0x000c, 0x2b39: 0x000c, 0x2b3a: 0x000c, 0x2b3b: 0x000c,
+ 0x2b3c: 0x000c, 0x2b3d: 0x000c, 0x2b3e: 0x000c, 0x2b3f: 0x000c,
+ // Block 0xad, offset 0x2b40
+ 0x2b40: 0x000c, 0x2b41: 0x000c, 0x2b42: 0x000c, 0x2b43: 0x000c, 0x2b44: 0x000c, 0x2b45: 0x000c,
+ 0x2b46: 0x000c,
+ 0x2b52: 0x000a, 0x2b53: 0x000a, 0x2b54: 0x000a, 0x2b55: 0x000a, 0x2b56: 0x000a, 0x2b57: 0x000a,
+ 0x2b58: 0x000a, 0x2b59: 0x000a, 0x2b5a: 0x000a, 0x2b5b: 0x000a, 0x2b5c: 0x000a, 0x2b5d: 0x000a,
+ 0x2b5e: 0x000a, 0x2b5f: 0x000a, 0x2b60: 0x000a, 0x2b61: 0x000a, 0x2b62: 0x000a, 0x2b63: 0x000a,
+ 0x2b64: 0x000a, 0x2b65: 0x000a,
+ 0x2b70: 0x000c, 0x2b73: 0x000c, 0x2b74: 0x000c,
+ 0x2b7f: 0x000c,
+ // Block 0xae, offset 0x2b80
+ 0x2b80: 0x000c, 0x2b81: 0x000c,
+ 0x2bb3: 0x000c, 0x2bb4: 0x000c, 0x2bb5: 0x000c,
+ 0x2bb6: 0x000c, 0x2bb9: 0x000c, 0x2bba: 0x000c,
+ // Block 0xaf, offset 0x2bc0
+ 0x2bc0: 0x000c, 0x2bc1: 0x000c, 0x2bc2: 0x000c,
+ 0x2be7: 0x000c, 0x2be8: 0x000c, 0x2be9: 0x000c,
+ 0x2bea: 0x000c, 0x2beb: 0x000c, 0x2bed: 0x000c, 0x2bee: 0x000c, 0x2bef: 0x000c,
+ 0x2bf0: 0x000c, 0x2bf1: 0x000c, 0x2bf2: 0x000c, 0x2bf3: 0x000c, 0x2bf4: 0x000c,
+ // Block 0xb0, offset 0x2c00
+ 0x2c33: 0x000c,
+ // Block 0xb1, offset 0x2c40
+ 0x2c40: 0x000c, 0x2c41: 0x000c,
+ 0x2c76: 0x000c, 0x2c77: 0x000c, 0x2c78: 0x000c, 0x2c79: 0x000c, 0x2c7a: 0x000c, 0x2c7b: 0x000c,
+ 0x2c7c: 0x000c, 0x2c7d: 0x000c, 0x2c7e: 0x000c,
+ // Block 0xb2, offset 0x2c80
+ 0x2c89: 0x000c, 0x2c8a: 0x000c, 0x2c8b: 0x000c,
+ 0x2c8c: 0x000c, 0x2c8f: 0x000c,
+ // Block 0xb3, offset 0x2cc0
+ 0x2cef: 0x000c,
+ 0x2cf0: 0x000c, 0x2cf1: 0x000c, 0x2cf4: 0x000c,
+ 0x2cf6: 0x000c, 0x2cf7: 0x000c,
+ 0x2cfe: 0x000c,
+ // Block 0xb4, offset 0x2d00
+ 0x2d1f: 0x000c, 0x2d23: 0x000c,
+ 0x2d24: 0x000c, 0x2d25: 0x000c, 0x2d26: 0x000c, 0x2d27: 0x000c, 0x2d28: 0x000c, 0x2d29: 0x000c,
+ 0x2d2a: 0x000c,
+ // Block 0xb5, offset 0x2d40
+ 0x2d40: 0x000c,
+ 0x2d66: 0x000c, 0x2d67: 0x000c, 0x2d68: 0x000c, 0x2d69: 0x000c,
+ 0x2d6a: 0x000c, 0x2d6b: 0x000c, 0x2d6c: 0x000c,
+ 0x2d70: 0x000c, 0x2d71: 0x000c, 0x2d72: 0x000c, 0x2d73: 0x000c, 0x2d74: 0x000c,
+ // Block 0xb6, offset 0x2d80
+ 0x2dbb: 0x000c,
+ 0x2dbc: 0x000c, 0x2dbd: 0x000c, 0x2dbe: 0x000c, 0x2dbf: 0x000c,
+ // Block 0xb7, offset 0x2dc0
+ 0x2dc0: 0x000c,
+ 0x2dce: 0x000c, 0x2dd0: 0x000c,
+ 0x2dd2: 0x000c,
+ 0x2de1: 0x000c, 0x2de2: 0x000c,
+ // Block 0xb8, offset 0x2e00
+ 0x2e38: 0x000c, 0x2e39: 0x000c, 0x2e3a: 0x000c, 0x2e3b: 0x000c,
+ 0x2e3c: 0x000c, 0x2e3d: 0x000c, 0x2e3e: 0x000c, 0x2e3f: 0x000c,
+ // Block 0xb9, offset 0x2e40
+ 0x2e42: 0x000c, 0x2e43: 0x000c, 0x2e44: 0x000c,
+ 0x2e46: 0x000c,
+ 0x2e5e: 0x000c,
+ // Block 0xba, offset 0x2e80
+ 0x2eb3: 0x000c, 0x2eb4: 0x000c, 0x2eb5: 0x000c,
+ 0x2eb6: 0x000c, 0x2eb7: 0x000c, 0x2eb8: 0x000c, 0x2eba: 0x000c,
+ 0x2ebf: 0x000c,
+ // Block 0xbb, offset 0x2ec0
+ 0x2ec0: 0x000c, 0x2ec2: 0x000c, 0x2ec3: 0x000c,
+ // Block 0xbc, offset 0x2f00
+ 0x2f32: 0x000c, 0x2f33: 0x000c, 0x2f34: 0x000c, 0x2f35: 0x000c,
+ 0x2f3c: 0x000c, 0x2f3d: 0x000c, 0x2f3f: 0x000c,
+ // Block 0xbd, offset 0x2f40
+ 0x2f40: 0x000c,
+ 0x2f5c: 0x000c, 0x2f5d: 0x000c,
+ // Block 0xbe, offset 0x2f80
+ 0x2fb3: 0x000c, 0x2fb4: 0x000c, 0x2fb5: 0x000c,
+ 0x2fb6: 0x000c, 0x2fb7: 0x000c, 0x2fb8: 0x000c, 0x2fb9: 0x000c, 0x2fba: 0x000c,
+ 0x2fbd: 0x000c, 0x2fbf: 0x000c,
+ // Block 0xbf, offset 0x2fc0
+ 0x2fc0: 0x000c,
+ 0x2fe0: 0x000a, 0x2fe1: 0x000a, 0x2fe2: 0x000a, 0x2fe3: 0x000a,
+ 0x2fe4: 0x000a, 0x2fe5: 0x000a, 0x2fe6: 0x000a, 0x2fe7: 0x000a, 0x2fe8: 0x000a, 0x2fe9: 0x000a,
+ 0x2fea: 0x000a, 0x2feb: 0x000a, 0x2fec: 0x000a,
+ // Block 0xc0, offset 0x3000
+ 0x302b: 0x000c, 0x302d: 0x000c,
+ 0x3030: 0x000c, 0x3031: 0x000c, 0x3032: 0x000c, 0x3033: 0x000c, 0x3034: 0x000c, 0x3035: 0x000c,
+ 0x3037: 0x000c,
+ // Block 0xc1, offset 0x3040
+ 0x305d: 0x000c,
+ 0x305f: 0x000c, 0x3062: 0x000c, 0x3063: 0x000c,
+ 0x3064: 0x000c, 0x3065: 0x000c, 0x3067: 0x000c, 0x3068: 0x000c, 0x3069: 0x000c,
+ 0x306a: 0x000c, 0x306b: 0x000c,
+ // Block 0xc2, offset 0x3080
+ 0x30af: 0x000c,
+ 0x30b0: 0x000c, 0x30b1: 0x000c, 0x30b2: 0x000c, 0x30b3: 0x000c, 0x30b4: 0x000c, 0x30b5: 0x000c,
+ 0x30b6: 0x000c, 0x30b7: 0x000c, 0x30b9: 0x000c, 0x30ba: 0x000c,
+ // Block 0xc3, offset 0x30c0
+ 0x30fb: 0x000c,
+ 0x30fc: 0x000c, 0x30fe: 0x000c,
+ // Block 0xc4, offset 0x3100
+ 0x3103: 0x000c,
+ // Block 0xc5, offset 0x3140
+ 0x3154: 0x000c, 0x3155: 0x000c, 0x3156: 0x000c, 0x3157: 0x000c,
+ 0x315a: 0x000c, 0x315b: 0x000c,
+ 0x3160: 0x000c,
+ // Block 0xc6, offset 0x3180
+ 0x3181: 0x000c, 0x3182: 0x000c, 0x3183: 0x000c, 0x3184: 0x000c, 0x3185: 0x000c,
+ 0x3186: 0x000c, 0x3189: 0x000c, 0x318a: 0x000c,
+ 0x31b3: 0x000c, 0x31b4: 0x000c, 0x31b5: 0x000c,
+ 0x31b6: 0x000c, 0x31b7: 0x000c, 0x31b8: 0x000c, 0x31bb: 0x000c,
+ 0x31bc: 0x000c, 0x31bd: 0x000c, 0x31be: 0x000c,
+ // Block 0xc7, offset 0x31c0
+ 0x31c7: 0x000c,
+ 0x31d1: 0x000c,
+ 0x31d2: 0x000c, 0x31d3: 0x000c, 0x31d4: 0x000c, 0x31d5: 0x000c, 0x31d6: 0x000c,
+ 0x31d9: 0x000c, 0x31da: 0x000c, 0x31db: 0x000c,
+ // Block 0xc8, offset 0x3200
+ 0x320a: 0x000c, 0x320b: 0x000c,
+ 0x320c: 0x000c, 0x320d: 0x000c, 0x320e: 0x000c, 0x320f: 0x000c, 0x3210: 0x000c, 0x3211: 0x000c,
+ 0x3212: 0x000c, 0x3213: 0x000c, 0x3214: 0x000c, 0x3215: 0x000c, 0x3216: 0x000c,
+ 0x3218: 0x000c, 0x3219: 0x000c,
+ // Block 0xc9, offset 0x3240
+ 0x3260: 0x000c, 0x3262: 0x000c, 0x3263: 0x000c,
+ 0x3264: 0x000c, 0x3266: 0x000c,
+ // Block 0xca, offset 0x3280
+ 0x32b0: 0x000c, 0x32b1: 0x000c, 0x32b2: 0x000c, 0x32b3: 0x000c, 0x32b4: 0x000c, 0x32b5: 0x000c,
+ 0x32b6: 0x000c, 0x32b8: 0x000c, 0x32b9: 0x000c, 0x32ba: 0x000c, 0x32bb: 0x000c,
+ 0x32bc: 0x000c, 0x32bd: 0x000c,
+ // Block 0xcb, offset 0x32c0
+ 0x32d2: 0x000c, 0x32d3: 0x000c, 0x32d4: 0x000c, 0x32d5: 0x000c, 0x32d6: 0x000c, 0x32d7: 0x000c,
+ 0x32d8: 0x000c, 0x32d9: 0x000c, 0x32da: 0x000c, 0x32db: 0x000c, 0x32dc: 0x000c, 0x32dd: 0x000c,
+ 0x32de: 0x000c, 0x32df: 0x000c, 0x32e0: 0x000c, 0x32e1: 0x000c, 0x32e2: 0x000c, 0x32e3: 0x000c,
+ 0x32e4: 0x000c, 0x32e5: 0x000c, 0x32e6: 0x000c, 0x32e7: 0x000c,
+ 0x32ea: 0x000c, 0x32eb: 0x000c, 0x32ec: 0x000c, 0x32ed: 0x000c, 0x32ee: 0x000c, 0x32ef: 0x000c,
+ 0x32f0: 0x000c, 0x32f2: 0x000c, 0x32f3: 0x000c, 0x32f5: 0x000c,
+ 0x32f6: 0x000c,
+ // Block 0xcc, offset 0x3300
+ 0x3331: 0x000c, 0x3332: 0x000c, 0x3333: 0x000c, 0x3334: 0x000c, 0x3335: 0x000c,
+ 0x3336: 0x000c, 0x333a: 0x000c,
+ 0x333c: 0x000c, 0x333d: 0x000c, 0x333f: 0x000c,
+ // Block 0xcd, offset 0x3340
+ 0x3340: 0x000c, 0x3341: 0x000c, 0x3342: 0x000c, 0x3343: 0x000c, 0x3344: 0x000c, 0x3345: 0x000c,
+ 0x3347: 0x000c,
+ // Block 0xce, offset 0x3380
+ 0x3390: 0x000c, 0x3391: 0x000c,
+ 0x3395: 0x000c, 0x3397: 0x000c,
+ // Block 0xcf, offset 0x33c0
+ 0x33f3: 0x000c, 0x33f4: 0x000c,
+ // Block 0xd0, offset 0x3400
+ 0x3400: 0x000c, 0x3401: 0x000c,
+ 0x3436: 0x000c, 0x3437: 0x000c, 0x3438: 0x000c, 0x3439: 0x000c, 0x343a: 0x000c,
+ // Block 0xd1, offset 0x3440
+ 0x3440: 0x000c, 0x3442: 0x000c,
+ 0x345a: 0x000c,
+ // Block 0xd2, offset 0x3480
+ 0x3495: 0x000a, 0x3496: 0x000a, 0x3497: 0x000a,
+ 0x3498: 0x000a, 0x3499: 0x000a, 0x349a: 0x000a, 0x349b: 0x000a, 0x349c: 0x000a, 0x349d: 0x0004,
+ 0x349e: 0x0004, 0x349f: 0x0004, 0x34a0: 0x0004, 0x34a1: 0x000a, 0x34a2: 0x000a, 0x34a3: 0x000a,
+ 0x34a4: 0x000a, 0x34a5: 0x000a, 0x34a6: 0x000a, 0x34a7: 0x000a, 0x34a8: 0x000a, 0x34a9: 0x000a,
+ 0x34aa: 0x000a, 0x34ab: 0x000a, 0x34ac: 0x000a, 0x34ad: 0x000a, 0x34ae: 0x000a, 0x34af: 0x000a,
+ 0x34b0: 0x000a, 0x34b1: 0x000a,
+ // Block 0xd3, offset 0x34c0
+ 0x34c0: 0x000c,
+ 0x34c7: 0x000c, 0x34c8: 0x000c, 0x34c9: 0x000c, 0x34ca: 0x000c, 0x34cb: 0x000c,
+ 0x34cc: 0x000c, 0x34cd: 0x000c, 0x34ce: 0x000c, 0x34cf: 0x000c, 0x34d0: 0x000c, 0x34d1: 0x000c,
+ 0x34d2: 0x000c, 0x34d3: 0x000c, 0x34d4: 0x000c, 0x34d5: 0x000c,
+ // Block 0xd4, offset 0x3500
+ 0x351e: 0x000c, 0x351f: 0x000c, 0x3520: 0x000c, 0x3521: 0x000c, 0x3522: 0x000c, 0x3523: 0x000c,
+ 0x3524: 0x000c, 0x3525: 0x000c, 0x3526: 0x000c, 0x3527: 0x000c, 0x3528: 0x000c, 0x3529: 0x000c,
+ 0x352d: 0x000c, 0x352e: 0x000c, 0x352f: 0x000c,
+ // Block 0xd5, offset 0x3540
+ 0x3570: 0x000c, 0x3571: 0x000c, 0x3572: 0x000c, 0x3573: 0x000c, 0x3574: 0x000c,
+ // Block 0xd6, offset 0x3580
+ 0x35b0: 0x000c, 0x35b1: 0x000c, 0x35b2: 0x000c, 0x35b3: 0x000c, 0x35b4: 0x000c, 0x35b5: 0x000c,
+ 0x35b6: 0x000c,
+ // Block 0xd7, offset 0x35c0
+ 0x35cf: 0x000c,
+ // Block 0xd8, offset 0x3600
+ 0x360f: 0x000c, 0x3610: 0x000c, 0x3611: 0x000c,
+ 0x3612: 0x000c,
+ // Block 0xd9, offset 0x3640
+ 0x3662: 0x000a,
+ 0x3664: 0x000c,
+ // Block 0xda, offset 0x3680
+ 0x369d: 0x000c,
+ 0x369e: 0x000c, 0x36a0: 0x000b, 0x36a1: 0x000b, 0x36a2: 0x000b, 0x36a3: 0x000b,
+ // Block 0xdb, offset 0x36c0
+ 0x36c0: 0x000a, 0x36c1: 0x000a, 0x36c2: 0x000a, 0x36c3: 0x000a, 0x36c4: 0x000a, 0x36c5: 0x000a,
+ 0x36c6: 0x000a, 0x36c7: 0x000a, 0x36c8: 0x000a, 0x36c9: 0x000a, 0x36ca: 0x000a, 0x36cb: 0x000a,
+ 0x36cc: 0x000a, 0x36cd: 0x000a, 0x36ce: 0x000a, 0x36cf: 0x000a, 0x36d0: 0x000a, 0x36d1: 0x000a,
+ 0x36d2: 0x000a, 0x36d3: 0x000a, 0x36d4: 0x000a, 0x36d5: 0x000a,
+ 0x36f0: 0x0002, 0x36f1: 0x0002, 0x36f2: 0x0002, 0x36f3: 0x0002, 0x36f4: 0x0002, 0x36f5: 0x0002,
+ 0x36f6: 0x0002, 0x36f7: 0x0002, 0x36f8: 0x0002, 0x36f9: 0x0002, 0x36fa: 0x000a, 0x36fb: 0x000a,
+ 0x36fc: 0x000a,
+ // Block 0xdc, offset 0x3700
+ 0x3700: 0x000a, 0x3701: 0x000a, 0x3702: 0x000a, 0x3703: 0x000a, 0x3704: 0x000a, 0x3705: 0x000a,
+ 0x3706: 0x000a, 0x3707: 0x000a, 0x3708: 0x000a, 0x3709: 0x000a, 0x370a: 0x000a, 0x370b: 0x000a,
+ 0x370c: 0x000a, 0x370d: 0x000a, 0x370e: 0x000a, 0x370f: 0x000a, 0x3710: 0x000a, 0x3711: 0x000a,
+ 0x3712: 0x000a, 0x3713: 0x000a, 0x3714: 0x000a, 0x3715: 0x000a, 0x3716: 0x000a, 0x3717: 0x000a,
+ 0x3718: 0x000a, 0x3719: 0x000a, 0x371a: 0x000a, 0x371b: 0x000a, 0x371c: 0x000a, 0x371d: 0x000a,
+ 0x371e: 0x000a, 0x371f: 0x000a, 0x3720: 0x000a, 0x3721: 0x000a, 0x3722: 0x000a, 0x3723: 0x000a,
+ 0x3724: 0x000a, 0x3725: 0x000a, 0x3726: 0x000a, 0x3727: 0x000a, 0x3728: 0x000a, 0x3729: 0x000a,
+ 0x372a: 0x000a, 0x372b: 0x000a, 0x372c: 0x000a, 0x372d: 0x000a, 0x372e: 0x000a, 0x372f: 0x000a,
+ 0x3730: 0x000a, 0x3731: 0x000a, 0x3732: 0x000a, 0x3733: 0x000a,
+ 0x373a: 0x000a, 0x373b: 0x000a,
+ 0x373c: 0x000a, 0x373d: 0x000a, 0x373e: 0x000a, 0x373f: 0x000a,
+ // Block 0xdd, offset 0x3740
+ 0x3740: 0x000a, 0x3741: 0x000a, 0x3742: 0x000a, 0x3743: 0x000a, 0x3744: 0x000a, 0x3745: 0x000a,
+ 0x3746: 0x000a, 0x3747: 0x000a, 0x3748: 0x000a, 0x3749: 0x000a, 0x374a: 0x000a, 0x374b: 0x000a,
+ 0x374c: 0x000a, 0x374d: 0x000a, 0x374e: 0x000a, 0x374f: 0x000a, 0x3750: 0x000a,
+ 0x3760: 0x000a, 0x3761: 0x000a, 0x3762: 0x000a, 0x3763: 0x000a,
+ 0x3764: 0x000a, 0x3765: 0x000a, 0x3766: 0x000a, 0x3767: 0x000a, 0x3768: 0x000a, 0x3769: 0x000a,
+ 0x376a: 0x000a, 0x376b: 0x000a, 0x376c: 0x000a, 0x376d: 0x000a, 0x376e: 0x000a, 0x376f: 0x000a,
+ 0x3770: 0x000a,
+ // Block 0xde, offset 0x3780
+ 0x3780: 0x000c, 0x3781: 0x000c, 0x3782: 0x000c, 0x3783: 0x000c, 0x3784: 0x000c, 0x3785: 0x000c,
+ 0x3786: 0x000c, 0x3787: 0x000c, 0x3788: 0x000c, 0x3789: 0x000c, 0x378a: 0x000c, 0x378b: 0x000c,
+ 0x378c: 0x000c, 0x378d: 0x000c, 0x378e: 0x000c, 0x378f: 0x000c, 0x3790: 0x000c, 0x3791: 0x000c,
+ 0x3792: 0x000c, 0x3793: 0x000c, 0x3794: 0x000c, 0x3795: 0x000c, 0x3796: 0x000c, 0x3797: 0x000c,
+ 0x3798: 0x000c, 0x3799: 0x000c, 0x379a: 0x000c, 0x379b: 0x000c, 0x379c: 0x000c, 0x379d: 0x000c,
+ 0x379e: 0x000c, 0x379f: 0x000c, 0x37a0: 0x000c, 0x37a1: 0x000c, 0x37a2: 0x000c, 0x37a3: 0x000c,
+ 0x37a4: 0x000c, 0x37a5: 0x000c, 0x37a6: 0x000c, 0x37a7: 0x000c, 0x37a8: 0x000c, 0x37a9: 0x000c,
+ 0x37aa: 0x000c, 0x37ab: 0x000c, 0x37ac: 0x000c, 0x37ad: 0x000c,
+ 0x37b0: 0x000c, 0x37b1: 0x000c, 0x37b2: 0x000c, 0x37b3: 0x000c, 0x37b4: 0x000c, 0x37b5: 0x000c,
+ 0x37b6: 0x000c, 0x37b7: 0x000c, 0x37b8: 0x000c, 0x37b9: 0x000c, 0x37ba: 0x000c, 0x37bb: 0x000c,
+ 0x37bc: 0x000c, 0x37bd: 0x000c, 0x37be: 0x000c, 0x37bf: 0x000c,
+ // Block 0xdf, offset 0x37c0
+ 0x37c0: 0x000c, 0x37c1: 0x000c, 0x37c2: 0x000c, 0x37c3: 0x000c, 0x37c4: 0x000c, 0x37c5: 0x000c,
+ 0x37c6: 0x000c,
+ // Block 0xe0, offset 0x3800
+ 0x3827: 0x000c, 0x3828: 0x000c, 0x3829: 0x000c,
+ 0x3833: 0x000b, 0x3834: 0x000b, 0x3835: 0x000b,
+ 0x3836: 0x000b, 0x3837: 0x000b, 0x3838: 0x000b, 0x3839: 0x000b, 0x383a: 0x000b, 0x383b: 0x000c,
+ 0x383c: 0x000c, 0x383d: 0x000c, 0x383e: 0x000c, 0x383f: 0x000c,
+ // Block 0xe1, offset 0x3840
+ 0x3840: 0x000c, 0x3841: 0x000c, 0x3842: 0x000c, 0x3845: 0x000c,
+ 0x3846: 0x000c, 0x3847: 0x000c, 0x3848: 0x000c, 0x3849: 0x000c, 0x384a: 0x000c, 0x384b: 0x000c,
+ 0x386a: 0x000c, 0x386b: 0x000c, 0x386c: 0x000c, 0x386d: 0x000c,
+ // Block 0xe2, offset 0x3880
+ 0x38a9: 0x000a,
+ 0x38aa: 0x000a,
+ // Block 0xe3, offset 0x38c0
+ 0x38c0: 0x000a, 0x38c1: 0x000a, 0x38c2: 0x000c, 0x38c3: 0x000c, 0x38c4: 0x000c, 0x38c5: 0x000a,
+ // Block 0xe4, offset 0x3900
+ 0x3900: 0x000a, 0x3901: 0x000a, 0x3902: 0x000a, 0x3903: 0x000a, 0x3904: 0x000a, 0x3905: 0x000a,
+ 0x3906: 0x000a, 0x3907: 0x000a, 0x3908: 0x000a, 0x3909: 0x000a, 0x390a: 0x000a, 0x390b: 0x000a,
+ 0x390c: 0x000a, 0x390d: 0x000a, 0x390e: 0x000a, 0x390f: 0x000a, 0x3910: 0x000a, 0x3911: 0x000a,
+ 0x3912: 0x000a, 0x3913: 0x000a, 0x3914: 0x000a, 0x3915: 0x000a, 0x3916: 0x000a,
+ // Block 0xe5, offset 0x3940
+ 0x3941: 0x000a,
+ 0x395b: 0x000a,
+ 0x397b: 0x000a,
+ // Block 0xe6, offset 0x3980
+ 0x3995: 0x000a,
+ 0x39b5: 0x000a,
+ // Block 0xe7, offset 0x39c0
+ 0x39cf: 0x000a,
+ 0x39ef: 0x000a,
+ // Block 0xe8, offset 0x3a00
+ 0x3a09: 0x000a,
+ 0x3a29: 0x000a,
+ // Block 0xe9, offset 0x3a40
+ 0x3a43: 0x000a,
+ 0x3a4e: 0x0002, 0x3a4f: 0x0002, 0x3a50: 0x0002, 0x3a51: 0x0002,
+ 0x3a52: 0x0002, 0x3a53: 0x0002, 0x3a54: 0x0002, 0x3a55: 0x0002, 0x3a56: 0x0002, 0x3a57: 0x0002,
+ 0x3a58: 0x0002, 0x3a59: 0x0002, 0x3a5a: 0x0002, 0x3a5b: 0x0002, 0x3a5c: 0x0002, 0x3a5d: 0x0002,
+ 0x3a5e: 0x0002, 0x3a5f: 0x0002, 0x3a60: 0x0002, 0x3a61: 0x0002, 0x3a62: 0x0002, 0x3a63: 0x0002,
+ 0x3a64: 0x0002, 0x3a65: 0x0002, 0x3a66: 0x0002, 0x3a67: 0x0002, 0x3a68: 0x0002, 0x3a69: 0x0002,
+ 0x3a6a: 0x0002, 0x3a6b: 0x0002, 0x3a6c: 0x0002, 0x3a6d: 0x0002, 0x3a6e: 0x0002, 0x3a6f: 0x0002,
+ 0x3a70: 0x0002, 0x3a71: 0x0002, 0x3a72: 0x0002, 0x3a73: 0x0002, 0x3a74: 0x0002, 0x3a75: 0x0002,
+ 0x3a76: 0x0002, 0x3a77: 0x0002, 0x3a78: 0x0002, 0x3a79: 0x0002, 0x3a7a: 0x0002, 0x3a7b: 0x0002,
+ 0x3a7c: 0x0002, 0x3a7d: 0x0002, 0x3a7e: 0x0002, 0x3a7f: 0x0002,
+ // Block 0xea, offset 0x3a80
+ 0x3a80: 0x000c, 0x3a81: 0x000c, 0x3a82: 0x000c, 0x3a83: 0x000c, 0x3a84: 0x000c, 0x3a85: 0x000c,
+ 0x3a86: 0x000c, 0x3a87: 0x000c, 0x3a88: 0x000c, 0x3a89: 0x000c, 0x3a8a: 0x000c, 0x3a8b: 0x000c,
+ 0x3a8c: 0x000c, 0x3a8d: 0x000c, 0x3a8e: 0x000c, 0x3a8f: 0x000c, 0x3a90: 0x000c, 0x3a91: 0x000c,
+ 0x3a92: 0x000c, 0x3a93: 0x000c, 0x3a94: 0x000c, 0x3a95: 0x000c, 0x3a96: 0x000c, 0x3a97: 0x000c,
+ 0x3a98: 0x000c, 0x3a99: 0x000c, 0x3a9a: 0x000c, 0x3a9b: 0x000c, 0x3a9c: 0x000c, 0x3a9d: 0x000c,
+ 0x3a9e: 0x000c, 0x3a9f: 0x000c, 0x3aa0: 0x000c, 0x3aa1: 0x000c, 0x3aa2: 0x000c, 0x3aa3: 0x000c,
+ 0x3aa4: 0x000c, 0x3aa5: 0x000c, 0x3aa6: 0x000c, 0x3aa7: 0x000c, 0x3aa8: 0x000c, 0x3aa9: 0x000c,
+ 0x3aaa: 0x000c, 0x3aab: 0x000c, 0x3aac: 0x000c, 0x3aad: 0x000c, 0x3aae: 0x000c, 0x3aaf: 0x000c,
+ 0x3ab0: 0x000c, 0x3ab1: 0x000c, 0x3ab2: 0x000c, 0x3ab3: 0x000c, 0x3ab4: 0x000c, 0x3ab5: 0x000c,
+ 0x3ab6: 0x000c, 0x3abb: 0x000c,
+ 0x3abc: 0x000c, 0x3abd: 0x000c, 0x3abe: 0x000c, 0x3abf: 0x000c,
+ // Block 0xeb, offset 0x3ac0
+ 0x3ac0: 0x000c, 0x3ac1: 0x000c, 0x3ac2: 0x000c, 0x3ac3: 0x000c, 0x3ac4: 0x000c, 0x3ac5: 0x000c,
+ 0x3ac6: 0x000c, 0x3ac7: 0x000c, 0x3ac8: 0x000c, 0x3ac9: 0x000c, 0x3aca: 0x000c, 0x3acb: 0x000c,
+ 0x3acc: 0x000c, 0x3acd: 0x000c, 0x3ace: 0x000c, 0x3acf: 0x000c, 0x3ad0: 0x000c, 0x3ad1: 0x000c,
+ 0x3ad2: 0x000c, 0x3ad3: 0x000c, 0x3ad4: 0x000c, 0x3ad5: 0x000c, 0x3ad6: 0x000c, 0x3ad7: 0x000c,
+ 0x3ad8: 0x000c, 0x3ad9: 0x000c, 0x3ada: 0x000c, 0x3adb: 0x000c, 0x3adc: 0x000c, 0x3add: 0x000c,
+ 0x3ade: 0x000c, 0x3adf: 0x000c, 0x3ae0: 0x000c, 0x3ae1: 0x000c, 0x3ae2: 0x000c, 0x3ae3: 0x000c,
+ 0x3ae4: 0x000c, 0x3ae5: 0x000c, 0x3ae6: 0x000c, 0x3ae7: 0x000c, 0x3ae8: 0x000c, 0x3ae9: 0x000c,
+ 0x3aea: 0x000c, 0x3aeb: 0x000c, 0x3aec: 0x000c,
+ 0x3af5: 0x000c,
+ // Block 0xec, offset 0x3b00
+ 0x3b04: 0x000c,
+ 0x3b1b: 0x000c, 0x3b1c: 0x000c, 0x3b1d: 0x000c,
+ 0x3b1e: 0x000c, 0x3b1f: 0x000c, 0x3b21: 0x000c, 0x3b22: 0x000c, 0x3b23: 0x000c,
+ 0x3b24: 0x000c, 0x3b25: 0x000c, 0x3b26: 0x000c, 0x3b27: 0x000c, 0x3b28: 0x000c, 0x3b29: 0x000c,
+ 0x3b2a: 0x000c, 0x3b2b: 0x000c, 0x3b2c: 0x000c, 0x3b2d: 0x000c, 0x3b2e: 0x000c, 0x3b2f: 0x000c,
+ // Block 0xed, offset 0x3b40
+ 0x3b40: 0x000c, 0x3b41: 0x000c, 0x3b42: 0x000c, 0x3b43: 0x000c, 0x3b44: 0x000c, 0x3b45: 0x000c,
+ 0x3b46: 0x000c, 0x3b48: 0x000c, 0x3b49: 0x000c, 0x3b4a: 0x000c, 0x3b4b: 0x000c,
+ 0x3b4c: 0x000c, 0x3b4d: 0x000c, 0x3b4e: 0x000c, 0x3b4f: 0x000c, 0x3b50: 0x000c, 0x3b51: 0x000c,
+ 0x3b52: 0x000c, 0x3b53: 0x000c, 0x3b54: 0x000c, 0x3b55: 0x000c, 0x3b56: 0x000c, 0x3b57: 0x000c,
+ 0x3b58: 0x000c, 0x3b5b: 0x000c, 0x3b5c: 0x000c, 0x3b5d: 0x000c,
+ 0x3b5e: 0x000c, 0x3b5f: 0x000c, 0x3b60: 0x000c, 0x3b61: 0x000c, 0x3b63: 0x000c,
+ 0x3b64: 0x000c, 0x3b66: 0x000c, 0x3b67: 0x000c, 0x3b68: 0x000c, 0x3b69: 0x000c,
+ 0x3b6a: 0x000c,
+ // Block 0xee, offset 0x3b80
+ 0x3bae: 0x000c,
+ // Block 0xef, offset 0x3bc0
+ 0x3bec: 0x000c, 0x3bed: 0x000c, 0x3bee: 0x000c, 0x3bef: 0x000c,
+ 0x3bff: 0x0004,
+ // Block 0xf0, offset 0x3c00
+ 0x3c2c: 0x000c, 0x3c2d: 0x000c, 0x3c2e: 0x000c, 0x3c2f: 0x000c,
+ // Block 0xf1, offset 0x3c40
+ 0x3c6e: 0x000c, 0x3c6f: 0x000c,
+ // Block 0xf2, offset 0x3c80
+ 0x3ca3: 0x000c,
+ 0x3ca6: 0x000c,
+ 0x3cae: 0x000c, 0x3caf: 0x000c,
+ 0x3cb5: 0x000c,
+ // Block 0xf3, offset 0x3cc0
+ 0x3cc0: 0x0001, 0x3cc1: 0x0001, 0x3cc2: 0x0001, 0x3cc3: 0x0001, 0x3cc4: 0x0001, 0x3cc5: 0x0001,
+ 0x3cc6: 0x0001, 0x3cc7: 0x0001, 0x3cc8: 0x0001, 0x3cc9: 0x0001, 0x3cca: 0x0001, 0x3ccb: 0x0001,
+ 0x3ccc: 0x0001, 0x3ccd: 0x0001, 0x3cce: 0x0001, 0x3ccf: 0x0001, 0x3cd0: 0x000c, 0x3cd1: 0x000c,
+ 0x3cd2: 0x000c, 0x3cd3: 0x000c, 0x3cd4: 0x000c, 0x3cd5: 0x000c, 0x3cd6: 0x000c, 0x3cd7: 0x0001,
+ 0x3cd8: 0x0001, 0x3cd9: 0x0001, 0x3cda: 0x0001, 0x3cdb: 0x0001, 0x3cdc: 0x0001, 0x3cdd: 0x0001,
+ 0x3cde: 0x0001, 0x3cdf: 0x0001, 0x3ce0: 0x0001, 0x3ce1: 0x0001, 0x3ce2: 0x0001, 0x3ce3: 0x0001,
+ 0x3ce4: 0x0001, 0x3ce5: 0x0001, 0x3ce6: 0x0001, 0x3ce7: 0x0001, 0x3ce8: 0x0001, 0x3ce9: 0x0001,
+ 0x3cea: 0x0001, 0x3ceb: 0x0001, 0x3cec: 0x0001, 0x3ced: 0x0001, 0x3cee: 0x0001, 0x3cef: 0x0001,
+ 0x3cf0: 0x0001, 0x3cf1: 0x0001, 0x3cf2: 0x0001, 0x3cf3: 0x0001, 0x3cf4: 0x0001, 0x3cf5: 0x0001,
+ 0x3cf6: 0x0001, 0x3cf7: 0x0001, 0x3cf8: 0x0001, 0x3cf9: 0x0001, 0x3cfa: 0x0001, 0x3cfb: 0x0001,
+ 0x3cfc: 0x0001, 0x3cfd: 0x0001, 0x3cfe: 0x0001, 0x3cff: 0x0001,
+ // Block 0xf4, offset 0x3d00
+ 0x3d00: 0x0001, 0x3d01: 0x0001, 0x3d02: 0x0001, 0x3d03: 0x0001, 0x3d04: 0x000c, 0x3d05: 0x000c,
+ 0x3d06: 0x000c, 0x3d07: 0x000c, 0x3d08: 0x000c, 0x3d09: 0x000c, 0x3d0a: 0x000c, 0x3d0b: 0x0001,
+ 0x3d0c: 0x0001, 0x3d0d: 0x0001, 0x3d0e: 0x0001, 0x3d0f: 0x0001, 0x3d10: 0x0001, 0x3d11: 0x0001,
+ 0x3d12: 0x0001, 0x3d13: 0x0001, 0x3d14: 0x0001, 0x3d15: 0x0001, 0x3d16: 0x0001, 0x3d17: 0x0001,
+ 0x3d18: 0x0001, 0x3d19: 0x0001, 0x3d1a: 0x0001, 0x3d1b: 0x0001, 0x3d1c: 0x0001, 0x3d1d: 0x0001,
+ 0x3d1e: 0x0001, 0x3d1f: 0x0001, 0x3d20: 0x0001, 0x3d21: 0x0001, 0x3d22: 0x0001, 0x3d23: 0x0001,
+ 0x3d24: 0x0001, 0x3d25: 0x0001, 0x3d26: 0x0001, 0x3d27: 0x0001, 0x3d28: 0x0001, 0x3d29: 0x0001,
+ 0x3d2a: 0x0001, 0x3d2b: 0x0001, 0x3d2c: 0x0001, 0x3d2d: 0x0001, 0x3d2e: 0x0001, 0x3d2f: 0x0001,
+ 0x3d30: 0x0001, 0x3d31: 0x0001, 0x3d32: 0x0001, 0x3d33: 0x0001, 0x3d34: 0x0001, 0x3d35: 0x0001,
+ 0x3d36: 0x0001, 0x3d37: 0x0001, 0x3d38: 0x0001, 0x3d39: 0x0001, 0x3d3a: 0x0001, 0x3d3b: 0x0001,
+ 0x3d3c: 0x0001, 0x3d3d: 0x0001, 0x3d3e: 0x0001, 0x3d3f: 0x0001,
+ // Block 0xf5, offset 0x3d40
+ 0x3d40: 0x0001, 0x3d41: 0x0001, 0x3d42: 0x0001, 0x3d43: 0x0001, 0x3d44: 0x0001, 0x3d45: 0x0001,
+ 0x3d46: 0x0001, 0x3d47: 0x0001, 0x3d48: 0x0001, 0x3d49: 0x0001, 0x3d4a: 0x0001, 0x3d4b: 0x0001,
+ 0x3d4c: 0x0001, 0x3d4d: 0x0001, 0x3d4e: 0x0001, 0x3d4f: 0x0001, 0x3d50: 0x0001, 0x3d51: 0x0001,
+ 0x3d52: 0x0001, 0x3d53: 0x0001, 0x3d54: 0x0001, 0x3d55: 0x0001, 0x3d56: 0x0001, 0x3d57: 0x0001,
+ 0x3d58: 0x0001, 0x3d59: 0x0001, 0x3d5a: 0x0001, 0x3d5b: 0x0001, 0x3d5c: 0x0001, 0x3d5d: 0x0001,
+ 0x3d5e: 0x0001, 0x3d5f: 0x0001, 0x3d60: 0x0001, 0x3d61: 0x0001, 0x3d62: 0x0001, 0x3d63: 0x0001,
+ 0x3d64: 0x0001, 0x3d65: 0x0001, 0x3d66: 0x0001, 0x3d67: 0x0001, 0x3d68: 0x0001, 0x3d69: 0x0001,
+ 0x3d6a: 0x0001, 0x3d6b: 0x0001, 0x3d6c: 0x0001, 0x3d6d: 0x0001, 0x3d6e: 0x0001, 0x3d6f: 0x0001,
+ 0x3d70: 0x0001, 0x3d71: 0x000d, 0x3d72: 0x000d, 0x3d73: 0x000d, 0x3d74: 0x000d, 0x3d75: 0x000d,
+ 0x3d76: 0x000d, 0x3d77: 0x000d, 0x3d78: 0x000d, 0x3d79: 0x000d, 0x3d7a: 0x000d, 0x3d7b: 0x000d,
+ 0x3d7c: 0x000d, 0x3d7d: 0x000d, 0x3d7e: 0x000d, 0x3d7f: 0x000d,
+ // Block 0xf6, offset 0x3d80
+ 0x3d80: 0x000d, 0x3d81: 0x000d, 0x3d82: 0x000d, 0x3d83: 0x000d, 0x3d84: 0x000d, 0x3d85: 0x000d,
+ 0x3d86: 0x000d, 0x3d87: 0x000d, 0x3d88: 0x000d, 0x3d89: 0x000d, 0x3d8a: 0x000d, 0x3d8b: 0x000d,
+ 0x3d8c: 0x000d, 0x3d8d: 0x000d, 0x3d8e: 0x000d, 0x3d8f: 0x000d, 0x3d90: 0x000d, 0x3d91: 0x000d,
+ 0x3d92: 0x000d, 0x3d93: 0x000d, 0x3d94: 0x000d, 0x3d95: 0x000d, 0x3d96: 0x000d, 0x3d97: 0x000d,
+ 0x3d98: 0x000d, 0x3d99: 0x000d, 0x3d9a: 0x000d, 0x3d9b: 0x000d, 0x3d9c: 0x000d, 0x3d9d: 0x000d,
+ 0x3d9e: 0x000d, 0x3d9f: 0x000d, 0x3da0: 0x000d, 0x3da1: 0x000d, 0x3da2: 0x000d, 0x3da3: 0x000d,
+ 0x3da4: 0x000d, 0x3da5: 0x000d, 0x3da6: 0x000d, 0x3da7: 0x000d, 0x3da8: 0x000d, 0x3da9: 0x000d,
+ 0x3daa: 0x000d, 0x3dab: 0x000d, 0x3dac: 0x000d, 0x3dad: 0x000d, 0x3dae: 0x000d, 0x3daf: 0x000d,
+ 0x3db0: 0x000d, 0x3db1: 0x000d, 0x3db2: 0x000d, 0x3db3: 0x000d, 0x3db4: 0x000d, 0x3db5: 0x0001,
+ 0x3db6: 0x0001, 0x3db7: 0x0001, 0x3db8: 0x0001, 0x3db9: 0x0001, 0x3dba: 0x0001, 0x3dbb: 0x0001,
+ 0x3dbc: 0x0001, 0x3dbd: 0x0001, 0x3dbe: 0x0001, 0x3dbf: 0x0001,
+ // Block 0xf7, offset 0x3dc0
+ 0x3dc0: 0x0001, 0x3dc1: 0x000d, 0x3dc2: 0x000d, 0x3dc3: 0x000d, 0x3dc4: 0x000d, 0x3dc5: 0x000d,
+ 0x3dc6: 0x000d, 0x3dc7: 0x000d, 0x3dc8: 0x000d, 0x3dc9: 0x000d, 0x3dca: 0x000d, 0x3dcb: 0x000d,
+ 0x3dcc: 0x000d, 0x3dcd: 0x000d, 0x3dce: 0x000d, 0x3dcf: 0x000d, 0x3dd0: 0x000d, 0x3dd1: 0x000d,
+ 0x3dd2: 0x000d, 0x3dd3: 0x000d, 0x3dd4: 0x000d, 0x3dd5: 0x000d, 0x3dd6: 0x000d, 0x3dd7: 0x000d,
+ 0x3dd8: 0x000d, 0x3dd9: 0x000d, 0x3dda: 0x000d, 0x3ddb: 0x000d, 0x3ddc: 0x000d, 0x3ddd: 0x000d,
+ 0x3dde: 0x000d, 0x3ddf: 0x000d, 0x3de0: 0x000d, 0x3de1: 0x000d, 0x3de2: 0x000d, 0x3de3: 0x000d,
+ 0x3de4: 0x000d, 0x3de5: 0x000d, 0x3de6: 0x000d, 0x3de7: 0x000d, 0x3de8: 0x000d, 0x3de9: 0x000d,
+ 0x3dea: 0x000d, 0x3deb: 0x000d, 0x3dec: 0x000d, 0x3ded: 0x000d, 0x3dee: 0x000d, 0x3def: 0x000d,
+ 0x3df0: 0x000d, 0x3df1: 0x000d, 0x3df2: 0x000d, 0x3df3: 0x000d, 0x3df4: 0x000d, 0x3df5: 0x000d,
+ 0x3df6: 0x000d, 0x3df7: 0x000d, 0x3df8: 0x000d, 0x3df9: 0x000d, 0x3dfa: 0x000d, 0x3dfb: 0x000d,
+ 0x3dfc: 0x000d, 0x3dfd: 0x000d, 0x3dfe: 0x0001, 0x3dff: 0x0001,
+ // Block 0xf8, offset 0x3e00
+ 0x3e00: 0x000d, 0x3e01: 0x000d, 0x3e02: 0x000d, 0x3e03: 0x000d, 0x3e04: 0x000d, 0x3e05: 0x000d,
+ 0x3e06: 0x000d, 0x3e07: 0x000d, 0x3e08: 0x000d, 0x3e09: 0x000d, 0x3e0a: 0x000d, 0x3e0b: 0x000d,
+ 0x3e0c: 0x000d, 0x3e0d: 0x000d, 0x3e0e: 0x000d, 0x3e0f: 0x000d, 0x3e10: 0x000d, 0x3e11: 0x000d,
+ 0x3e12: 0x000d, 0x3e13: 0x000d, 0x3e14: 0x000d, 0x3e15: 0x000d, 0x3e16: 0x000d, 0x3e17: 0x000d,
+ 0x3e18: 0x000d, 0x3e19: 0x000d, 0x3e1a: 0x000d, 0x3e1b: 0x000d, 0x3e1c: 0x000d, 0x3e1d: 0x000d,
+ 0x3e1e: 0x000d, 0x3e1f: 0x000d, 0x3e20: 0x000d, 0x3e21: 0x000d, 0x3e22: 0x000d, 0x3e23: 0x000d,
+ 0x3e24: 0x000d, 0x3e25: 0x000d, 0x3e26: 0x000d, 0x3e27: 0x000d, 0x3e28: 0x000d, 0x3e29: 0x000d,
+ 0x3e2a: 0x000d, 0x3e2b: 0x000d, 0x3e2c: 0x000d, 0x3e2d: 0x000d, 0x3e2e: 0x000d, 0x3e2f: 0x000d,
+ 0x3e30: 0x000a, 0x3e31: 0x000a, 0x3e32: 0x000d, 0x3e33: 0x000d, 0x3e34: 0x000d, 0x3e35: 0x000d,
+ 0x3e36: 0x000d, 0x3e37: 0x000d, 0x3e38: 0x000d, 0x3e39: 0x000d, 0x3e3a: 0x000d, 0x3e3b: 0x000d,
+ 0x3e3c: 0x000d, 0x3e3d: 0x000d, 0x3e3e: 0x000d, 0x3e3f: 0x000d,
+ // Block 0xf9, offset 0x3e40
+ 0x3e40: 0x000a, 0x3e41: 0x000a, 0x3e42: 0x000a, 0x3e43: 0x000a, 0x3e44: 0x000a, 0x3e45: 0x000a,
+ 0x3e46: 0x000a, 0x3e47: 0x000a, 0x3e48: 0x000a, 0x3e49: 0x000a, 0x3e4a: 0x000a, 0x3e4b: 0x000a,
+ 0x3e4c: 0x000a, 0x3e4d: 0x000a, 0x3e4e: 0x000a, 0x3e4f: 0x000a, 0x3e50: 0x000a, 0x3e51: 0x000a,
+ 0x3e52: 0x000a, 0x3e53: 0x000a, 0x3e54: 0x000a, 0x3e55: 0x000a, 0x3e56: 0x000a, 0x3e57: 0x000a,
+ 0x3e58: 0x000a, 0x3e59: 0x000a, 0x3e5a: 0x000a, 0x3e5b: 0x000a, 0x3e5c: 0x000a, 0x3e5d: 0x000a,
+ 0x3e5e: 0x000a, 0x3e5f: 0x000a, 0x3e60: 0x000a, 0x3e61: 0x000a, 0x3e62: 0x000a, 0x3e63: 0x000a,
+ 0x3e64: 0x000a, 0x3e65: 0x000a, 0x3e66: 0x000a, 0x3e67: 0x000a, 0x3e68: 0x000a, 0x3e69: 0x000a,
+ 0x3e6a: 0x000a, 0x3e6b: 0x000a,
+ 0x3e70: 0x000a, 0x3e71: 0x000a, 0x3e72: 0x000a, 0x3e73: 0x000a, 0x3e74: 0x000a, 0x3e75: 0x000a,
+ 0x3e76: 0x000a, 0x3e77: 0x000a, 0x3e78: 0x000a, 0x3e79: 0x000a, 0x3e7a: 0x000a, 0x3e7b: 0x000a,
+ 0x3e7c: 0x000a, 0x3e7d: 0x000a, 0x3e7e: 0x000a, 0x3e7f: 0x000a,
+ // Block 0xfa, offset 0x3e80
+ 0x3e80: 0x000a, 0x3e81: 0x000a, 0x3e82: 0x000a, 0x3e83: 0x000a, 0x3e84: 0x000a, 0x3e85: 0x000a,
+ 0x3e86: 0x000a, 0x3e87: 0x000a, 0x3e88: 0x000a, 0x3e89: 0x000a, 0x3e8a: 0x000a, 0x3e8b: 0x000a,
+ 0x3e8c: 0x000a, 0x3e8d: 0x000a, 0x3e8e: 0x000a, 0x3e8f: 0x000a, 0x3e90: 0x000a, 0x3e91: 0x000a,
+ 0x3e92: 0x000a, 0x3e93: 0x000a,
+ 0x3ea0: 0x000a, 0x3ea1: 0x000a, 0x3ea2: 0x000a, 0x3ea3: 0x000a,
+ 0x3ea4: 0x000a, 0x3ea5: 0x000a, 0x3ea6: 0x000a, 0x3ea7: 0x000a, 0x3ea8: 0x000a, 0x3ea9: 0x000a,
+ 0x3eaa: 0x000a, 0x3eab: 0x000a, 0x3eac: 0x000a, 0x3ead: 0x000a, 0x3eae: 0x000a,
+ 0x3eb1: 0x000a, 0x3eb2: 0x000a, 0x3eb3: 0x000a, 0x3eb4: 0x000a, 0x3eb5: 0x000a,
+ 0x3eb6: 0x000a, 0x3eb7: 0x000a, 0x3eb8: 0x000a, 0x3eb9: 0x000a, 0x3eba: 0x000a, 0x3ebb: 0x000a,
+ 0x3ebc: 0x000a, 0x3ebd: 0x000a, 0x3ebe: 0x000a, 0x3ebf: 0x000a,
+ // Block 0xfb, offset 0x3ec0
+ 0x3ec1: 0x000a, 0x3ec2: 0x000a, 0x3ec3: 0x000a, 0x3ec4: 0x000a, 0x3ec5: 0x000a,
+ 0x3ec6: 0x000a, 0x3ec7: 0x000a, 0x3ec8: 0x000a, 0x3ec9: 0x000a, 0x3eca: 0x000a, 0x3ecb: 0x000a,
+ 0x3ecc: 0x000a, 0x3ecd: 0x000a, 0x3ece: 0x000a, 0x3ecf: 0x000a, 0x3ed1: 0x000a,
+ 0x3ed2: 0x000a, 0x3ed3: 0x000a, 0x3ed4: 0x000a, 0x3ed5: 0x000a, 0x3ed6: 0x000a, 0x3ed7: 0x000a,
+ 0x3ed8: 0x000a, 0x3ed9: 0x000a, 0x3eda: 0x000a, 0x3edb: 0x000a, 0x3edc: 0x000a, 0x3edd: 0x000a,
+ 0x3ede: 0x000a, 0x3edf: 0x000a, 0x3ee0: 0x000a, 0x3ee1: 0x000a, 0x3ee2: 0x000a, 0x3ee3: 0x000a,
+ 0x3ee4: 0x000a, 0x3ee5: 0x000a, 0x3ee6: 0x000a, 0x3ee7: 0x000a, 0x3ee8: 0x000a, 0x3ee9: 0x000a,
+ 0x3eea: 0x000a, 0x3eeb: 0x000a, 0x3eec: 0x000a, 0x3eed: 0x000a, 0x3eee: 0x000a, 0x3eef: 0x000a,
+ 0x3ef0: 0x000a, 0x3ef1: 0x000a, 0x3ef2: 0x000a, 0x3ef3: 0x000a, 0x3ef4: 0x000a, 0x3ef5: 0x000a,
+ // Block 0xfc, offset 0x3f00
+ 0x3f00: 0x0002, 0x3f01: 0x0002, 0x3f02: 0x0002, 0x3f03: 0x0002, 0x3f04: 0x0002, 0x3f05: 0x0002,
+ 0x3f06: 0x0002, 0x3f07: 0x0002, 0x3f08: 0x0002, 0x3f09: 0x0002, 0x3f0a: 0x0002, 0x3f0b: 0x000a,
+ 0x3f0c: 0x000a, 0x3f0d: 0x000a, 0x3f0e: 0x000a, 0x3f0f: 0x000a,
+ 0x3f2f: 0x000a,
+ // Block 0xfd, offset 0x3f40
+ 0x3f6a: 0x000a, 0x3f6b: 0x000a, 0x3f6c: 0x000a, 0x3f6d: 0x000a, 0x3f6e: 0x000a, 0x3f6f: 0x000a,
+ // Block 0xfe, offset 0x3f80
+ 0x3fad: 0x000a,
+ // Block 0xff, offset 0x3fc0
+ 0x3fe0: 0x000a, 0x3fe1: 0x000a, 0x3fe2: 0x000a, 0x3fe3: 0x000a,
+ 0x3fe4: 0x000a, 0x3fe5: 0x000a,
+ // Block 0x100, offset 0x4000
+ 0x4000: 0x000a, 0x4001: 0x000a, 0x4002: 0x000a, 0x4003: 0x000a, 0x4004: 0x000a, 0x4005: 0x000a,
+ 0x4006: 0x000a, 0x4007: 0x000a, 0x4008: 0x000a, 0x4009: 0x000a, 0x400a: 0x000a, 0x400b: 0x000a,
+ 0x400c: 0x000a, 0x400d: 0x000a, 0x400e: 0x000a, 0x400f: 0x000a, 0x4010: 0x000a, 0x4011: 0x000a,
+ 0x4012: 0x000a, 0x4013: 0x000a, 0x4014: 0x000a, 0x4015: 0x000a, 0x4016: 0x000a, 0x4017: 0x000a,
+ 0x4018: 0x000a, 0x401c: 0x000a, 0x401d: 0x000a,
+ 0x401e: 0x000a, 0x401f: 0x000a, 0x4020: 0x000a, 0x4021: 0x000a, 0x4022: 0x000a, 0x4023: 0x000a,
+ 0x4024: 0x000a, 0x4025: 0x000a, 0x4026: 0x000a, 0x4027: 0x000a, 0x4028: 0x000a, 0x4029: 0x000a,
+ 0x402a: 0x000a, 0x402b: 0x000a, 0x402c: 0x000a,
+ 0x4030: 0x000a, 0x4031: 0x000a, 0x4032: 0x000a, 0x4033: 0x000a, 0x4034: 0x000a, 0x4035: 0x000a,
+ 0x4036: 0x000a, 0x4037: 0x000a, 0x4038: 0x000a, 0x4039: 0x000a, 0x403a: 0x000a, 0x403b: 0x000a,
+ 0x403c: 0x000a,
+ // Block 0x101, offset 0x4040
+ 0x4040: 0x000a, 0x4041: 0x000a, 0x4042: 0x000a, 0x4043: 0x000a, 0x4044: 0x000a, 0x4045: 0x000a,
+ 0x4046: 0x000a, 0x4047: 0x000a, 0x4048: 0x000a, 0x4049: 0x000a, 0x404a: 0x000a, 0x404b: 0x000a,
+ 0x404c: 0x000a, 0x404d: 0x000a, 0x404e: 0x000a, 0x404f: 0x000a, 0x4050: 0x000a, 0x4051: 0x000a,
+ 0x4052: 0x000a, 0x4053: 0x000a, 0x4054: 0x000a, 0x4055: 0x000a, 0x4056: 0x000a, 0x4057: 0x000a,
+ 0x4058: 0x000a, 0x4059: 0x000a,
+ 0x4060: 0x000a, 0x4061: 0x000a, 0x4062: 0x000a, 0x4063: 0x000a,
+ 0x4064: 0x000a, 0x4065: 0x000a, 0x4066: 0x000a, 0x4067: 0x000a, 0x4068: 0x000a, 0x4069: 0x000a,
+ 0x406a: 0x000a, 0x406b: 0x000a,
+ 0x4070: 0x000a,
+ // Block 0x102, offset 0x4080
+ 0x4080: 0x000a, 0x4081: 0x000a, 0x4082: 0x000a, 0x4083: 0x000a, 0x4084: 0x000a, 0x4085: 0x000a,
+ 0x4086: 0x000a, 0x4087: 0x000a, 0x4088: 0x000a, 0x4089: 0x000a, 0x408a: 0x000a, 0x408b: 0x000a,
+ 0x4090: 0x000a, 0x4091: 0x000a,
+ 0x4092: 0x000a, 0x4093: 0x000a, 0x4094: 0x000a, 0x4095: 0x000a, 0x4096: 0x000a, 0x4097: 0x000a,
+ 0x4098: 0x000a, 0x4099: 0x000a, 0x409a: 0x000a, 0x409b: 0x000a, 0x409c: 0x000a, 0x409d: 0x000a,
+ 0x409e: 0x000a, 0x409f: 0x000a, 0x40a0: 0x000a, 0x40a1: 0x000a, 0x40a2: 0x000a, 0x40a3: 0x000a,
+ 0x40a4: 0x000a, 0x40a5: 0x000a, 0x40a6: 0x000a, 0x40a7: 0x000a, 0x40a8: 0x000a, 0x40a9: 0x000a,
+ 0x40aa: 0x000a, 0x40ab: 0x000a, 0x40ac: 0x000a, 0x40ad: 0x000a, 0x40ae: 0x000a, 0x40af: 0x000a,
+ 0x40b0: 0x000a, 0x40b1: 0x000a, 0x40b2: 0x000a, 0x40b3: 0x000a, 0x40b4: 0x000a, 0x40b5: 0x000a,
+ 0x40b6: 0x000a, 0x40b7: 0x000a, 0x40b8: 0x000a, 0x40b9: 0x000a, 0x40ba: 0x000a, 0x40bb: 0x000a,
+ 0x40bc: 0x000a, 0x40bd: 0x000a, 0x40be: 0x000a, 0x40bf: 0x000a,
+ // Block 0x103, offset 0x40c0
+ 0x40c0: 0x000a, 0x40c1: 0x000a, 0x40c2: 0x000a, 0x40c3: 0x000a, 0x40c4: 0x000a, 0x40c5: 0x000a,
+ 0x40c6: 0x000a, 0x40c7: 0x000a,
+ 0x40d0: 0x000a, 0x40d1: 0x000a,
+ 0x40d2: 0x000a, 0x40d3: 0x000a, 0x40d4: 0x000a, 0x40d5: 0x000a, 0x40d6: 0x000a, 0x40d7: 0x000a,
+ 0x40d8: 0x000a, 0x40d9: 0x000a,
+ 0x40e0: 0x000a, 0x40e1: 0x000a, 0x40e2: 0x000a, 0x40e3: 0x000a,
+ 0x40e4: 0x000a, 0x40e5: 0x000a, 0x40e6: 0x000a, 0x40e7: 0x000a, 0x40e8: 0x000a, 0x40e9: 0x000a,
+ 0x40ea: 0x000a, 0x40eb: 0x000a, 0x40ec: 0x000a, 0x40ed: 0x000a, 0x40ee: 0x000a, 0x40ef: 0x000a,
+ 0x40f0: 0x000a, 0x40f1: 0x000a, 0x40f2: 0x000a, 0x40f3: 0x000a, 0x40f4: 0x000a, 0x40f5: 0x000a,
+ 0x40f6: 0x000a, 0x40f7: 0x000a, 0x40f8: 0x000a, 0x40f9: 0x000a, 0x40fa: 0x000a, 0x40fb: 0x000a,
+ 0x40fc: 0x000a, 0x40fd: 0x000a, 0x40fe: 0x000a, 0x40ff: 0x000a,
+ // Block 0x104, offset 0x4100
+ 0x4100: 0x000a, 0x4101: 0x000a, 0x4102: 0x000a, 0x4103: 0x000a, 0x4104: 0x000a, 0x4105: 0x000a,
+ 0x4106: 0x000a, 0x4107: 0x000a,
+ 0x4110: 0x000a, 0x4111: 0x000a,
+ 0x4112: 0x000a, 0x4113: 0x000a, 0x4114: 0x000a, 0x4115: 0x000a, 0x4116: 0x000a, 0x4117: 0x000a,
+ 0x4118: 0x000a, 0x4119: 0x000a, 0x411a: 0x000a, 0x411b: 0x000a, 0x411c: 0x000a, 0x411d: 0x000a,
+ 0x411e: 0x000a, 0x411f: 0x000a, 0x4120: 0x000a, 0x4121: 0x000a, 0x4122: 0x000a, 0x4123: 0x000a,
+ 0x4124: 0x000a, 0x4125: 0x000a, 0x4126: 0x000a, 0x4127: 0x000a, 0x4128: 0x000a, 0x4129: 0x000a,
+ 0x412a: 0x000a, 0x412b: 0x000a, 0x412c: 0x000a, 0x412d: 0x000a,
+ 0x4130: 0x000a, 0x4131: 0x000a, 0x4132: 0x000a, 0x4133: 0x000a, 0x4134: 0x000a, 0x4135: 0x000a,
+ 0x4136: 0x000a, 0x4137: 0x000a, 0x4138: 0x000a, 0x4139: 0x000a, 0x413a: 0x000a, 0x413b: 0x000a,
+ // Block 0x105, offset 0x4140
+ 0x4140: 0x000a, 0x4141: 0x000a,
+ 0x4150: 0x000a, 0x4151: 0x000a,
+ 0x4152: 0x000a, 0x4153: 0x000a, 0x4154: 0x000a, 0x4155: 0x000a, 0x4156: 0x000a, 0x4157: 0x000a,
+ 0x4158: 0x000a,
+ // Block 0x106, offset 0x4180
+ 0x4180: 0x000a, 0x4181: 0x000a, 0x4182: 0x000a, 0x4183: 0x000a, 0x4184: 0x000a, 0x4185: 0x000a,
+ 0x4186: 0x000a, 0x4187: 0x000a, 0x4188: 0x000a, 0x4189: 0x000a, 0x418a: 0x000a, 0x418b: 0x000a,
+ 0x418c: 0x000a, 0x418d: 0x000a, 0x418e: 0x000a, 0x418f: 0x000a, 0x4190: 0x000a, 0x4191: 0x000a,
+ 0x4192: 0x000a, 0x4193: 0x000a, 0x4194: 0x000a, 0x4195: 0x000a, 0x4196: 0x000a, 0x4197: 0x000a,
+ 0x41a0: 0x000a, 0x41a1: 0x000a, 0x41a2: 0x000a, 0x41a3: 0x000a,
+ 0x41a4: 0x000a, 0x41a5: 0x000a, 0x41a6: 0x000a, 0x41a7: 0x000a, 0x41a8: 0x000a, 0x41a9: 0x000a,
+ 0x41aa: 0x000a, 0x41ab: 0x000a, 0x41ac: 0x000a, 0x41ad: 0x000a,
+ 0x41b0: 0x000a, 0x41b1: 0x000a, 0x41b2: 0x000a, 0x41b3: 0x000a, 0x41b4: 0x000a, 0x41b5: 0x000a,
+ 0x41b6: 0x000a, 0x41b7: 0x000a, 0x41b8: 0x000a, 0x41b9: 0x000a, 0x41ba: 0x000a, 0x41bb: 0x000a,
+ 0x41bc: 0x000a,
+ // Block 0x107, offset 0x41c0
+ 0x41c0: 0x000a, 0x41c1: 0x000a, 0x41c2: 0x000a, 0x41c3: 0x000a, 0x41c4: 0x000a, 0x41c5: 0x000a,
+ 0x41c6: 0x000a, 0x41c7: 0x000a, 0x41c8: 0x000a, 0x41c9: 0x000a, 0x41ca: 0x000a,
+ 0x41ce: 0x000a, 0x41cf: 0x000a, 0x41d0: 0x000a, 0x41d1: 0x000a,
+ 0x41d2: 0x000a, 0x41d3: 0x000a, 0x41d4: 0x000a, 0x41d5: 0x000a, 0x41d6: 0x000a, 0x41d7: 0x000a,
+ 0x41d8: 0x000a, 0x41d9: 0x000a, 0x41da: 0x000a, 0x41db: 0x000a, 0x41dc: 0x000a, 0x41dd: 0x000a,
+ 0x41de: 0x000a, 0x41df: 0x000a, 0x41e0: 0x000a, 0x41e1: 0x000a, 0x41e2: 0x000a, 0x41e3: 0x000a,
+ 0x41e4: 0x000a, 0x41e5: 0x000a, 0x41e6: 0x000a, 0x41e7: 0x000a, 0x41e8: 0x000a, 0x41e9: 0x000a,
+ 0x41ea: 0x000a, 0x41eb: 0x000a, 0x41ec: 0x000a, 0x41ed: 0x000a, 0x41ee: 0x000a, 0x41ef: 0x000a,
+ 0x41f0: 0x000a, 0x41f1: 0x000a, 0x41f2: 0x000a, 0x41f3: 0x000a, 0x41f4: 0x000a, 0x41f5: 0x000a,
+ 0x41f6: 0x000a, 0x41f7: 0x000a, 0x41f8: 0x000a, 0x41f9: 0x000a, 0x41fa: 0x000a, 0x41fb: 0x000a,
+ 0x41fc: 0x000a, 0x41fd: 0x000a, 0x41fe: 0x000a, 0x41ff: 0x000a,
+ // Block 0x108, offset 0x4200
+ 0x4200: 0x000a, 0x4201: 0x000a, 0x4202: 0x000a, 0x4203: 0x000a, 0x4204: 0x000a, 0x4205: 0x000a,
+ 0x4206: 0x000a, 0x4208: 0x000a,
+ 0x420d: 0x000a, 0x420e: 0x000a, 0x420f: 0x000a, 0x4210: 0x000a, 0x4211: 0x000a,
+ 0x4212: 0x000a, 0x4213: 0x000a, 0x4214: 0x000a, 0x4215: 0x000a, 0x4216: 0x000a, 0x4217: 0x000a,
+ 0x4218: 0x000a, 0x4219: 0x000a, 0x421a: 0x000a, 0x421b: 0x000a, 0x421c: 0x000a,
+ 0x421f: 0x000a, 0x4220: 0x000a, 0x4221: 0x000a, 0x4222: 0x000a, 0x4223: 0x000a,
+ 0x4224: 0x000a, 0x4225: 0x000a, 0x4226: 0x000a, 0x4227: 0x000a, 0x4228: 0x000a, 0x4229: 0x000a,
+ 0x422a: 0x000a, 0x422f: 0x000a,
+ 0x4230: 0x000a, 0x4231: 0x000a, 0x4232: 0x000a, 0x4233: 0x000a, 0x4234: 0x000a, 0x4235: 0x000a,
+ 0x4236: 0x000a, 0x4237: 0x000a, 0x4238: 0x000a,
+ // Block 0x109, offset 0x4240
+ 0x4240: 0x000a, 0x4241: 0x000a, 0x4242: 0x000a, 0x4243: 0x000a, 0x4244: 0x000a, 0x4245: 0x000a,
+ 0x4246: 0x000a, 0x4247: 0x000a, 0x4248: 0x000a, 0x4249: 0x000a, 0x424a: 0x000a, 0x424b: 0x000a,
+ 0x424c: 0x000a, 0x424d: 0x000a, 0x424e: 0x000a, 0x424f: 0x000a, 0x4250: 0x000a, 0x4251: 0x000a,
+ 0x4252: 0x000a, 0x4254: 0x000a, 0x4255: 0x000a, 0x4256: 0x000a, 0x4257: 0x000a,
+ 0x4258: 0x000a, 0x4259: 0x000a, 0x425a: 0x000a, 0x425b: 0x000a, 0x425c: 0x000a, 0x425d: 0x000a,
+ 0x425e: 0x000a, 0x425f: 0x000a, 0x4260: 0x000a, 0x4261: 0x000a, 0x4262: 0x000a, 0x4263: 0x000a,
+ 0x4264: 0x000a, 0x4265: 0x000a, 0x4266: 0x000a, 0x4267: 0x000a, 0x4268: 0x000a, 0x4269: 0x000a,
+ 0x426a: 0x000a, 0x426b: 0x000a, 0x426c: 0x000a, 0x426d: 0x000a, 0x426e: 0x000a, 0x426f: 0x000a,
+ 0x4270: 0x000a, 0x4271: 0x000a, 0x4272: 0x000a, 0x4273: 0x000a, 0x4274: 0x000a, 0x4275: 0x000a,
+ 0x4276: 0x000a, 0x4277: 0x000a, 0x4278: 0x000a, 0x4279: 0x000a, 0x427a: 0x000a, 0x427b: 0x000a,
+ 0x427c: 0x000a, 0x427d: 0x000a, 0x427e: 0x000a, 0x427f: 0x000a,
+ // Block 0x10a, offset 0x4280
+ 0x4280: 0x000a, 0x4281: 0x000a, 0x4282: 0x000a, 0x4283: 0x000a, 0x4284: 0x000a, 0x4285: 0x000a,
+ 0x4286: 0x000a, 0x4287: 0x000a, 0x4288: 0x000a, 0x4289: 0x000a, 0x428a: 0x000a, 0x428b: 0x000a,
+ 0x428c: 0x000a, 0x428d: 0x000a, 0x428e: 0x000a, 0x428f: 0x000a, 0x4290: 0x000a, 0x4291: 0x000a,
+ 0x4292: 0x000a, 0x4293: 0x000a, 0x4294: 0x000a, 0x4295: 0x000a, 0x4296: 0x000a, 0x4297: 0x000a,
+ 0x4298: 0x000a, 0x4299: 0x000a, 0x429a: 0x000a, 0x429b: 0x000a, 0x429c: 0x000a, 0x429d: 0x000a,
+ 0x429e: 0x000a, 0x429f: 0x000a, 0x42a0: 0x000a, 0x42a1: 0x000a, 0x42a2: 0x000a, 0x42a3: 0x000a,
+ 0x42a4: 0x000a, 0x42a5: 0x000a, 0x42a6: 0x000a, 0x42a7: 0x000a, 0x42a8: 0x000a, 0x42a9: 0x000a,
+ 0x42aa: 0x000a, 0x42ab: 0x000a, 0x42ac: 0x000a, 0x42ad: 0x000a, 0x42ae: 0x000a, 0x42af: 0x000a,
+ 0x42b0: 0x0002, 0x42b1: 0x0002, 0x42b2: 0x0002, 0x42b3: 0x0002, 0x42b4: 0x0002, 0x42b5: 0x0002,
+ 0x42b6: 0x0002, 0x42b7: 0x0002, 0x42b8: 0x0002, 0x42b9: 0x0002, 0x42ba: 0x000a,
+ // Block 0x10b, offset 0x42c0
+ 0x42fe: 0x000b, 0x42ff: 0x000b,
+ // Block 0x10c, offset 0x4300
+ 0x4300: 0x000b, 0x4301: 0x000b, 0x4302: 0x000b, 0x4303: 0x000b, 0x4304: 0x000b, 0x4305: 0x000b,
+ 0x4306: 0x000b, 0x4307: 0x000b, 0x4308: 0x000b, 0x4309: 0x000b, 0x430a: 0x000b, 0x430b: 0x000b,
+ 0x430c: 0x000b, 0x430d: 0x000b, 0x430e: 0x000b, 0x430f: 0x000b, 0x4310: 0x000b, 0x4311: 0x000b,
+ 0x4312: 0x000b, 0x4313: 0x000b, 0x4314: 0x000b, 0x4315: 0x000b, 0x4316: 0x000b, 0x4317: 0x000b,
+ 0x4318: 0x000b, 0x4319: 0x000b, 0x431a: 0x000b, 0x431b: 0x000b, 0x431c: 0x000b, 0x431d: 0x000b,
+ 0x431e: 0x000b, 0x431f: 0x000b, 0x4320: 0x000b, 0x4321: 0x000b, 0x4322: 0x000b, 0x4323: 0x000b,
+ 0x4324: 0x000b, 0x4325: 0x000b, 0x4326: 0x000b, 0x4327: 0x000b, 0x4328: 0x000b, 0x4329: 0x000b,
+ 0x432a: 0x000b, 0x432b: 0x000b, 0x432c: 0x000b, 0x432d: 0x000b, 0x432e: 0x000b, 0x432f: 0x000b,
+ 0x4330: 0x000b, 0x4331: 0x000b, 0x4332: 0x000b, 0x4333: 0x000b, 0x4334: 0x000b, 0x4335: 0x000b,
+ 0x4336: 0x000b, 0x4337: 0x000b, 0x4338: 0x000b, 0x4339: 0x000b, 0x433a: 0x000b, 0x433b: 0x000b,
+ 0x433c: 0x000b, 0x433d: 0x000b, 0x433e: 0x000b, 0x433f: 0x000b,
+ // Block 0x10d, offset 0x4340
+ 0x4340: 0x000c, 0x4341: 0x000c, 0x4342: 0x000c, 0x4343: 0x000c, 0x4344: 0x000c, 0x4345: 0x000c,
+ 0x4346: 0x000c, 0x4347: 0x000c, 0x4348: 0x000c, 0x4349: 0x000c, 0x434a: 0x000c, 0x434b: 0x000c,
+ 0x434c: 0x000c, 0x434d: 0x000c, 0x434e: 0x000c, 0x434f: 0x000c, 0x4350: 0x000c, 0x4351: 0x000c,
+ 0x4352: 0x000c, 0x4353: 0x000c, 0x4354: 0x000c, 0x4355: 0x000c, 0x4356: 0x000c, 0x4357: 0x000c,
+ 0x4358: 0x000c, 0x4359: 0x000c, 0x435a: 0x000c, 0x435b: 0x000c, 0x435c: 0x000c, 0x435d: 0x000c,
+ 0x435e: 0x000c, 0x435f: 0x000c, 0x4360: 0x000c, 0x4361: 0x000c, 0x4362: 0x000c, 0x4363: 0x000c,
+ 0x4364: 0x000c, 0x4365: 0x000c, 0x4366: 0x000c, 0x4367: 0x000c, 0x4368: 0x000c, 0x4369: 0x000c,
+ 0x436a: 0x000c, 0x436b: 0x000c, 0x436c: 0x000c, 0x436d: 0x000c, 0x436e: 0x000c, 0x436f: 0x000c,
+ 0x4370: 0x000b, 0x4371: 0x000b, 0x4372: 0x000b, 0x4373: 0x000b, 0x4374: 0x000b, 0x4375: 0x000b,
+ 0x4376: 0x000b, 0x4377: 0x000b, 0x4378: 0x000b, 0x4379: 0x000b, 0x437a: 0x000b, 0x437b: 0x000b,
+ 0x437c: 0x000b, 0x437d: 0x000b, 0x437e: 0x000b, 0x437f: 0x000b,
+}
+
+// bidiIndex: 26 blocks, 1664 entries, 3328 bytes
+// Block 0 is the zero block.
+var bidiIndex = [1664]uint16{
+ // Block 0x0, offset 0x0
+ // Block 0x1, offset 0x40
+ // Block 0x2, offset 0x80
+ // Block 0x3, offset 0xc0
+ 0xc2: 0x01, 0xc3: 0x02,
+ 0xca: 0x03, 0xcb: 0x04, 0xcc: 0x05, 0xcd: 0x06, 0xce: 0x07, 0xcf: 0x08,
+ 0xd2: 0x09, 0xd6: 0x0a, 0xd7: 0x0b,
+ 0xd8: 0x0c, 0xd9: 0x0d, 0xda: 0x0e, 0xdb: 0x0f, 0xdc: 0x10, 0xdd: 0x11, 0xde: 0x12, 0xdf: 0x13,
+ 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06,
+ 0xea: 0x07, 0xef: 0x08,
+ 0xf0: 0x13, 0xf1: 0x14, 0xf2: 0x14, 0xf3: 0x16, 0xf4: 0x17,
+ // Block 0x4, offset 0x100
+ 0x120: 0x14, 0x121: 0x15, 0x122: 0x16, 0x123: 0x17, 0x124: 0x18, 0x125: 0x19, 0x126: 0x1a, 0x127: 0x1b,
+ 0x128: 0x1c, 0x129: 0x1d, 0x12a: 0x1c, 0x12b: 0x1e, 0x12c: 0x1f, 0x12d: 0x20, 0x12e: 0x21, 0x12f: 0x22,
+ 0x130: 0x23, 0x131: 0x24, 0x132: 0x1a, 0x133: 0x25, 0x134: 0x26, 0x135: 0x27, 0x136: 0x28, 0x137: 0x29,
+ 0x138: 0x2a, 0x139: 0x2b, 0x13a: 0x2c, 0x13b: 0x2d, 0x13c: 0x2e, 0x13d: 0x2f, 0x13e: 0x30, 0x13f: 0x31,
+ // Block 0x5, offset 0x140
+ 0x140: 0x32, 0x141: 0x33, 0x142: 0x34,
+ 0x14d: 0x35, 0x14e: 0x36,
+ 0x150: 0x37,
+ 0x15a: 0x38, 0x15c: 0x39, 0x15d: 0x3a, 0x15e: 0x3b, 0x15f: 0x3c,
+ 0x160: 0x3d, 0x162: 0x3e, 0x164: 0x3f, 0x165: 0x40, 0x167: 0x41,
+ 0x168: 0x42, 0x169: 0x43, 0x16a: 0x44, 0x16b: 0x45, 0x16c: 0x46, 0x16d: 0x47, 0x16e: 0x48, 0x16f: 0x49,
+ 0x170: 0x4a, 0x173: 0x4b, 0x177: 0x05,
+ 0x17e: 0x4c, 0x17f: 0x4d,
+ // Block 0x6, offset 0x180
+ 0x180: 0x4e, 0x181: 0x4f, 0x182: 0x50, 0x183: 0x51, 0x184: 0x52, 0x185: 0x53, 0x186: 0x54, 0x187: 0x55,
+ 0x188: 0x56, 0x189: 0x55, 0x18a: 0x55, 0x18b: 0x55, 0x18c: 0x57, 0x18d: 0x58, 0x18e: 0x59, 0x18f: 0x55,
+ 0x190: 0x5a, 0x191: 0x5b, 0x192: 0x5c, 0x193: 0x5d, 0x194: 0x55, 0x195: 0x55, 0x196: 0x55, 0x197: 0x55,
+ 0x198: 0x55, 0x199: 0x55, 0x19a: 0x5e, 0x19b: 0x55, 0x19c: 0x55, 0x19d: 0x5f, 0x19e: 0x55, 0x19f: 0x60,
+ 0x1a4: 0x55, 0x1a5: 0x55, 0x1a6: 0x61, 0x1a7: 0x62,
+ 0x1a8: 0x55, 0x1a9: 0x55, 0x1aa: 0x55, 0x1ab: 0x55, 0x1ac: 0x55, 0x1ad: 0x63, 0x1ae: 0x55, 0x1af: 0x55,
+ 0x1b3: 0x64, 0x1b5: 0x65, 0x1b7: 0x66,
+ 0x1b8: 0x67, 0x1b9: 0x68, 0x1ba: 0x69, 0x1bb: 0x6a, 0x1bc: 0x55, 0x1bd: 0x55, 0x1be: 0x55, 0x1bf: 0x6b,
+ // Block 0x7, offset 0x1c0
+ 0x1c0: 0x6c, 0x1c2: 0x6d, 0x1c3: 0x6e, 0x1c7: 0x6f,
+ 0x1c8: 0x70, 0x1c9: 0x71, 0x1ca: 0x72, 0x1cb: 0x73, 0x1cd: 0x74, 0x1cf: 0x75,
+ // Block 0x8, offset 0x200
+ 0x237: 0x55,
+ // Block 0x9, offset 0x240
+ 0x252: 0x76, 0x253: 0x77,
+ 0x258: 0x78, 0x259: 0x79, 0x25a: 0x7a, 0x25b: 0x7b, 0x25c: 0x7c, 0x25e: 0x7d,
+ 0x260: 0x7e, 0x261: 0x7f, 0x263: 0x80, 0x264: 0x81, 0x265: 0x82, 0x266: 0x83, 0x267: 0x84,
+ 0x268: 0x85, 0x269: 0x86, 0x26a: 0x87, 0x26b: 0x88, 0x26d: 0x89, 0x26f: 0x8a,
+ // Block 0xa, offset 0x280
+ 0x2ac: 0x8b, 0x2ad: 0x8c, 0x2ae: 0x0e, 0x2af: 0x8d,
+ 0x2b0: 0x0e, 0x2b1: 0x0e, 0x2b2: 0x0e, 0x2b3: 0x0e, 0x2b4: 0x8e, 0x2b5: 0x8f, 0x2b6: 0x90, 0x2b7: 0x91,
+ 0x2b8: 0x92, 0x2b9: 0x93, 0x2ba: 0x0e, 0x2bb: 0x94, 0x2bc: 0x95, 0x2bd: 0x96, 0x2bf: 0x97,
+ // Block 0xb, offset 0x2c0
+ 0x2c4: 0x98, 0x2c5: 0x55, 0x2c6: 0x99, 0x2c7: 0x9a,
+ 0x2cb: 0x9b, 0x2cd: 0x9c,
+ 0x2e0: 0x9d, 0x2e1: 0x9d, 0x2e2: 0x9d, 0x2e3: 0x9d, 0x2e4: 0x9e, 0x2e5: 0x9d, 0x2e6: 0x9d, 0x2e7: 0x9d,
+ 0x2e8: 0x9f, 0x2e9: 0x9d, 0x2ea: 0x9d, 0x2eb: 0xa0, 0x2ec: 0xa1, 0x2ed: 0x9d, 0x2ee: 0x9d, 0x2ef: 0x9d,
+ 0x2f0: 0x9d, 0x2f1: 0x9d, 0x2f2: 0x9d, 0x2f3: 0x9d, 0x2f4: 0xa2, 0x2f5: 0xa3, 0x2f6: 0x9d, 0x2f7: 0x9d,
+ 0x2f8: 0x9d, 0x2f9: 0xa4, 0x2fa: 0xa5, 0x2fb: 0xa6, 0x2fc: 0xa7, 0x2fd: 0xa8, 0x2fe: 0xa9, 0x2ff: 0x9d,
+ // Block 0xc, offset 0x300
+ 0x300: 0xaa, 0x301: 0xab, 0x302: 0xac, 0x303: 0x21, 0x304: 0xad, 0x305: 0xae, 0x306: 0xaf, 0x307: 0xb0,
+ 0x308: 0xb1, 0x309: 0x28, 0x30b: 0xb2, 0x30c: 0x26, 0x30d: 0xb3, 0x30e: 0xb4, 0x30f: 0xb5,
+ 0x310: 0xb6, 0x311: 0xb7, 0x312: 0xb8, 0x313: 0xb9, 0x316: 0xba, 0x317: 0xbb,
+ 0x318: 0xbc, 0x319: 0xbd, 0x31a: 0xbe, 0x31c: 0xbf,
+ 0x320: 0xc0, 0x324: 0xc1, 0x325: 0xc2, 0x327: 0xc3,
+ 0x328: 0xc4, 0x329: 0xc5, 0x32a: 0xc6, 0x32d: 0xc7,
+ 0x330: 0xc8, 0x332: 0xc9, 0x334: 0xca, 0x335: 0xcb, 0x336: 0xcc,
+ 0x33b: 0xcd, 0x33c: 0xce, 0x33d: 0xcf, 0x33f: 0xd0,
+ // Block 0xd, offset 0x340
+ 0x351: 0xd1,
+ // Block 0xe, offset 0x380
+ 0x384: 0xd2,
+ 0x3ab: 0xd3, 0x3ac: 0xd4,
+ 0x3bd: 0xd5, 0x3be: 0xd6, 0x3bf: 0xd7,
+ // Block 0xf, offset 0x3c0
+ 0x3f2: 0xd8,
+ // Block 0x10, offset 0x400
+ 0x430: 0x55, 0x431: 0x55, 0x432: 0x55, 0x433: 0xd9, 0x434: 0x55, 0x435: 0x55, 0x436: 0x55, 0x437: 0x55,
+ 0x438: 0x55, 0x439: 0x55, 0x43a: 0xda, 0x43b: 0xdb, 0x43c: 0xdc, 0x43d: 0xdd,
+ // Block 0x11, offset 0x440
+ 0x445: 0xde, 0x446: 0xdf, 0x447: 0xe0,
+ 0x448: 0x55, 0x449: 0xe1, 0x44c: 0x55, 0x44d: 0xe2,
+ 0x45b: 0xe3, 0x45c: 0xe4, 0x45d: 0xe5, 0x45e: 0xe6, 0x45f: 0xe7,
+ 0x468: 0xe8, 0x469: 0xe9, 0x46a: 0xea,
+ // Block 0x12, offset 0x480
+ 0x480: 0xeb, 0x482: 0xd5, 0x484: 0xd4,
+ 0x48a: 0xec, 0x48b: 0xed,
+ 0x493: 0xee, 0x497: 0xef,
+ 0x49b: 0xf0,
+ 0x4a0: 0x9d, 0x4a1: 0x9d, 0x4a2: 0x9d, 0x4a3: 0xf1, 0x4a4: 0x9d, 0x4a5: 0xf2, 0x4a6: 0x9d, 0x4a7: 0x9d,
+ 0x4a8: 0x9d, 0x4a9: 0x9d, 0x4aa: 0x9d, 0x4ab: 0x9d, 0x4ac: 0x9d, 0x4ad: 0x9d, 0x4ae: 0x9d, 0x4af: 0x9d,
+ 0x4b0: 0x9d, 0x4b1: 0xf3, 0x4b2: 0xf4, 0x4b3: 0x9d, 0x4b4: 0xf5, 0x4b5: 0x9d, 0x4b6: 0x9d, 0x4b7: 0x9d,
+ 0x4b8: 0x0e, 0x4b9: 0x0e, 0x4ba: 0x0e, 0x4bb: 0xf6, 0x4bc: 0x9d, 0x4bd: 0x9d, 0x4be: 0x9d, 0x4bf: 0x9d,
+ // Block 0x13, offset 0x4c0
+ 0x4c0: 0xf7, 0x4c1: 0x55, 0x4c2: 0xf8, 0x4c3: 0xf9, 0x4c4: 0xfa, 0x4c5: 0xfb, 0x4c6: 0xfc,
+ 0x4c9: 0xfd, 0x4cc: 0x55, 0x4cd: 0x55, 0x4ce: 0x55, 0x4cf: 0x55,
+ 0x4d0: 0x55, 0x4d1: 0x55, 0x4d2: 0x55, 0x4d3: 0x55, 0x4d4: 0x55, 0x4d5: 0x55, 0x4d6: 0x55, 0x4d7: 0x55,
+ 0x4d8: 0x55, 0x4d9: 0x55, 0x4da: 0x55, 0x4db: 0xfe, 0x4dc: 0x55, 0x4dd: 0x55, 0x4de: 0x55, 0x4df: 0xff,
+ 0x4e0: 0x100, 0x4e1: 0x101, 0x4e2: 0x102, 0x4e3: 0x103, 0x4e4: 0x55, 0x4e5: 0x55, 0x4e6: 0x55, 0x4e7: 0x55,
+ 0x4e8: 0x55, 0x4e9: 0x104, 0x4ea: 0x105, 0x4eb: 0x106, 0x4ec: 0x55, 0x4ed: 0x55, 0x4ee: 0x107, 0x4ef: 0x108,
+ 0x4ff: 0x109,
+ // Block 0x14, offset 0x500
+ 0x53f: 0x109,
+ // Block 0x15, offset 0x540
+ 0x550: 0x09, 0x551: 0x0a, 0x553: 0x0b, 0x556: 0x0c,
+ 0x55b: 0x0d, 0x55c: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,
+ 0x56f: 0x12,
+ 0x57f: 0x12,
+ // Block 0x16, offset 0x580
+ 0x58f: 0x12,
+ 0x59f: 0x12,
+ 0x5af: 0x12,
+ 0x5bf: 0x12,
+ // Block 0x17, offset 0x5c0
+ 0x5c0: 0x10a, 0x5c1: 0x10a, 0x5c2: 0x10a, 0x5c3: 0x10a, 0x5c4: 0x05, 0x5c5: 0x05, 0x5c6: 0x05, 0x5c7: 0x10b,
+ 0x5c8: 0x10a, 0x5c9: 0x10a, 0x5ca: 0x10a, 0x5cb: 0x10a, 0x5cc: 0x10a, 0x5cd: 0x10a, 0x5ce: 0x10a, 0x5cf: 0x10a,
+ 0x5d0: 0x10a, 0x5d1: 0x10a, 0x5d2: 0x10a, 0x5d3: 0x10a, 0x5d4: 0x10a, 0x5d5: 0x10a, 0x5d6: 0x10a, 0x5d7: 0x10a,
+ 0x5d8: 0x10a, 0x5d9: 0x10a, 0x5da: 0x10a, 0x5db: 0x10a, 0x5dc: 0x10a, 0x5dd: 0x10a, 0x5de: 0x10a, 0x5df: 0x10a,
+ 0x5e0: 0x10a, 0x5e1: 0x10a, 0x5e2: 0x10a, 0x5e3: 0x10a, 0x5e4: 0x10a, 0x5e5: 0x10a, 0x5e6: 0x10a, 0x5e7: 0x10a,
+ 0x5e8: 0x10a, 0x5e9: 0x10a, 0x5ea: 0x10a, 0x5eb: 0x10a, 0x5ec: 0x10a, 0x5ed: 0x10a, 0x5ee: 0x10a, 0x5ef: 0x10a,
+ 0x5f0: 0x10a, 0x5f1: 0x10a, 0x5f2: 0x10a, 0x5f3: 0x10a, 0x5f4: 0x10a, 0x5f5: 0x10a, 0x5f6: 0x10a, 0x5f7: 0x10a,
+ 0x5f8: 0x10a, 0x5f9: 0x10a, 0x5fa: 0x10a, 0x5fb: 0x10a, 0x5fc: 0x10a, 0x5fd: 0x10a, 0x5fe: 0x10a, 0x5ff: 0x10a,
+ // Block 0x18, offset 0x600
+ 0x60f: 0x12,
+ 0x61f: 0x12,
+ 0x620: 0x15,
+ 0x62f: 0x12,
+ 0x63f: 0x12,
+ // Block 0x19, offset 0x640
+ 0x64f: 0x12,
+}
+
+// Total table size 20664 bytes (20KiB); checksum: F50EF68C
diff --git a/vendor/golang.org/x/text/unicode/bidi/tables9.0.0.go b/vendor/golang.org/x/text/unicode/bidi/tables9.0.0.go
deleted file mode 100644
index c164d379..00000000
--- a/vendor/golang.org/x/text/unicode/bidi/tables9.0.0.go
+++ /dev/null
@@ -1,1781 +0,0 @@
-// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
-
-//go:build !go1.10
-
-package bidi
-
-// UnicodeVersion is the Unicode version from which the tables in this package are derived.
-const UnicodeVersion = "9.0.0"
-
-// xorMasks contains masks to be xor-ed with brackets to get the reverse
-// version.
-var xorMasks = []int32{ // 8 elements
- 0, 1, 6, 7, 3, 15, 29, 63,
-} // Size: 56 bytes
-
-// lookup returns the trie value for the first UTF-8 encoding in s and
-// the width in bytes of this encoding. The size will be 0 if s does not
-// hold enough bytes to complete the encoding. len(s) must be greater than 0.
-func (t *bidiTrie) lookup(s []byte) (v uint8, sz int) {
- c0 := s[0]
- switch {
- case c0 < 0x80: // is ASCII
- return bidiValues[c0], 1
- case c0 < 0xC2:
- return 0, 1 // Illegal UTF-8: not a starter, not ASCII.
- case c0 < 0xE0: // 2-byte UTF-8
- if len(s) < 2 {
- return 0, 0
- }
- i := bidiIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c1), 2
- case c0 < 0xF0: // 3-byte UTF-8
- if len(s) < 3 {
- return 0, 0
- }
- i := bidiIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = bidiIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c2), 3
- case c0 < 0xF8: // 4-byte UTF-8
- if len(s) < 4 {
- return 0, 0
- }
- i := bidiIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = bidiIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- o = uint32(i)<<6 + uint32(c2)
- i = bidiIndex[o]
- c3 := s[3]
- if c3 < 0x80 || 0xC0 <= c3 {
- return 0, 3 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c3), 4
- }
- // Illegal rune
- return 0, 1
-}
-
-// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.
-// s must start with a full and valid UTF-8 encoded rune.
-func (t *bidiTrie) lookupUnsafe(s []byte) uint8 {
- c0 := s[0]
- if c0 < 0x80 { // is ASCII
- return bidiValues[c0]
- }
- i := bidiIndex[c0]
- if c0 < 0xE0 { // 2-byte UTF-8
- return t.lookupValue(uint32(i), s[1])
- }
- i = bidiIndex[uint32(i)<<6+uint32(s[1])]
- if c0 < 0xF0 { // 3-byte UTF-8
- return t.lookupValue(uint32(i), s[2])
- }
- i = bidiIndex[uint32(i)<<6+uint32(s[2])]
- if c0 < 0xF8 { // 4-byte UTF-8
- return t.lookupValue(uint32(i), s[3])
- }
- return 0
-}
-
-// lookupString returns the trie value for the first UTF-8 encoding in s and
-// the width in bytes of this encoding. The size will be 0 if s does not
-// hold enough bytes to complete the encoding. len(s) must be greater than 0.
-func (t *bidiTrie) lookupString(s string) (v uint8, sz int) {
- c0 := s[0]
- switch {
- case c0 < 0x80: // is ASCII
- return bidiValues[c0], 1
- case c0 < 0xC2:
- return 0, 1 // Illegal UTF-8: not a starter, not ASCII.
- case c0 < 0xE0: // 2-byte UTF-8
- if len(s) < 2 {
- return 0, 0
- }
- i := bidiIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c1), 2
- case c0 < 0xF0: // 3-byte UTF-8
- if len(s) < 3 {
- return 0, 0
- }
- i := bidiIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = bidiIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c2), 3
- case c0 < 0xF8: // 4-byte UTF-8
- if len(s) < 4 {
- return 0, 0
- }
- i := bidiIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = bidiIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- o = uint32(i)<<6 + uint32(c2)
- i = bidiIndex[o]
- c3 := s[3]
- if c3 < 0x80 || 0xC0 <= c3 {
- return 0, 3 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c3), 4
- }
- // Illegal rune
- return 0, 1
-}
-
-// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.
-// s must start with a full and valid UTF-8 encoded rune.
-func (t *bidiTrie) lookupStringUnsafe(s string) uint8 {
- c0 := s[0]
- if c0 < 0x80 { // is ASCII
- return bidiValues[c0]
- }
- i := bidiIndex[c0]
- if c0 < 0xE0 { // 2-byte UTF-8
- return t.lookupValue(uint32(i), s[1])
- }
- i = bidiIndex[uint32(i)<<6+uint32(s[1])]
- if c0 < 0xF0 { // 3-byte UTF-8
- return t.lookupValue(uint32(i), s[2])
- }
- i = bidiIndex[uint32(i)<<6+uint32(s[2])]
- if c0 < 0xF8 { // 4-byte UTF-8
- return t.lookupValue(uint32(i), s[3])
- }
- return 0
-}
-
-// bidiTrie. Total size: 15744 bytes (15.38 KiB). Checksum: b4c3b70954803b86.
-type bidiTrie struct{}
-
-func newBidiTrie(i int) *bidiTrie {
- return &bidiTrie{}
-}
-
-// lookupValue determines the type of block n and looks up the value for b.
-func (t *bidiTrie) lookupValue(n uint32, b byte) uint8 {
- switch {
- default:
- return uint8(bidiValues[n<<6+uint32(b)])
- }
-}
-
-// bidiValues: 222 blocks, 14208 entries, 14208 bytes
-// The third block is the zero block.
-var bidiValues = [14208]uint8{
- // Block 0x0, offset 0x0
- 0x00: 0x000b, 0x01: 0x000b, 0x02: 0x000b, 0x03: 0x000b, 0x04: 0x000b, 0x05: 0x000b,
- 0x06: 0x000b, 0x07: 0x000b, 0x08: 0x000b, 0x09: 0x0008, 0x0a: 0x0007, 0x0b: 0x0008,
- 0x0c: 0x0009, 0x0d: 0x0007, 0x0e: 0x000b, 0x0f: 0x000b, 0x10: 0x000b, 0x11: 0x000b,
- 0x12: 0x000b, 0x13: 0x000b, 0x14: 0x000b, 0x15: 0x000b, 0x16: 0x000b, 0x17: 0x000b,
- 0x18: 0x000b, 0x19: 0x000b, 0x1a: 0x000b, 0x1b: 0x000b, 0x1c: 0x0007, 0x1d: 0x0007,
- 0x1e: 0x0007, 0x1f: 0x0008, 0x20: 0x0009, 0x21: 0x000a, 0x22: 0x000a, 0x23: 0x0004,
- 0x24: 0x0004, 0x25: 0x0004, 0x26: 0x000a, 0x27: 0x000a, 0x28: 0x003a, 0x29: 0x002a,
- 0x2a: 0x000a, 0x2b: 0x0003, 0x2c: 0x0006, 0x2d: 0x0003, 0x2e: 0x0006, 0x2f: 0x0006,
- 0x30: 0x0002, 0x31: 0x0002, 0x32: 0x0002, 0x33: 0x0002, 0x34: 0x0002, 0x35: 0x0002,
- 0x36: 0x0002, 0x37: 0x0002, 0x38: 0x0002, 0x39: 0x0002, 0x3a: 0x0006, 0x3b: 0x000a,
- 0x3c: 0x000a, 0x3d: 0x000a, 0x3e: 0x000a, 0x3f: 0x000a,
- // Block 0x1, offset 0x40
- 0x40: 0x000a,
- 0x5b: 0x005a, 0x5c: 0x000a, 0x5d: 0x004a,
- 0x5e: 0x000a, 0x5f: 0x000a, 0x60: 0x000a,
- 0x7b: 0x005a,
- 0x7c: 0x000a, 0x7d: 0x004a, 0x7e: 0x000a, 0x7f: 0x000b,
- // Block 0x2, offset 0x80
- // Block 0x3, offset 0xc0
- 0xc0: 0x000b, 0xc1: 0x000b, 0xc2: 0x000b, 0xc3: 0x000b, 0xc4: 0x000b, 0xc5: 0x0007,
- 0xc6: 0x000b, 0xc7: 0x000b, 0xc8: 0x000b, 0xc9: 0x000b, 0xca: 0x000b, 0xcb: 0x000b,
- 0xcc: 0x000b, 0xcd: 0x000b, 0xce: 0x000b, 0xcf: 0x000b, 0xd0: 0x000b, 0xd1: 0x000b,
- 0xd2: 0x000b, 0xd3: 0x000b, 0xd4: 0x000b, 0xd5: 0x000b, 0xd6: 0x000b, 0xd7: 0x000b,
- 0xd8: 0x000b, 0xd9: 0x000b, 0xda: 0x000b, 0xdb: 0x000b, 0xdc: 0x000b, 0xdd: 0x000b,
- 0xde: 0x000b, 0xdf: 0x000b, 0xe0: 0x0006, 0xe1: 0x000a, 0xe2: 0x0004, 0xe3: 0x0004,
- 0xe4: 0x0004, 0xe5: 0x0004, 0xe6: 0x000a, 0xe7: 0x000a, 0xe8: 0x000a, 0xe9: 0x000a,
- 0xeb: 0x000a, 0xec: 0x000a, 0xed: 0x000b, 0xee: 0x000a, 0xef: 0x000a,
- 0xf0: 0x0004, 0xf1: 0x0004, 0xf2: 0x0002, 0xf3: 0x0002, 0xf4: 0x000a,
- 0xf6: 0x000a, 0xf7: 0x000a, 0xf8: 0x000a, 0xf9: 0x0002, 0xfb: 0x000a,
- 0xfc: 0x000a, 0xfd: 0x000a, 0xfe: 0x000a, 0xff: 0x000a,
- // Block 0x4, offset 0x100
- 0x117: 0x000a,
- 0x137: 0x000a,
- // Block 0x5, offset 0x140
- 0x179: 0x000a, 0x17a: 0x000a,
- // Block 0x6, offset 0x180
- 0x182: 0x000a, 0x183: 0x000a, 0x184: 0x000a, 0x185: 0x000a,
- 0x186: 0x000a, 0x187: 0x000a, 0x188: 0x000a, 0x189: 0x000a, 0x18a: 0x000a, 0x18b: 0x000a,
- 0x18c: 0x000a, 0x18d: 0x000a, 0x18e: 0x000a, 0x18f: 0x000a,
- 0x192: 0x000a, 0x193: 0x000a, 0x194: 0x000a, 0x195: 0x000a, 0x196: 0x000a, 0x197: 0x000a,
- 0x198: 0x000a, 0x199: 0x000a, 0x19a: 0x000a, 0x19b: 0x000a, 0x19c: 0x000a, 0x19d: 0x000a,
- 0x19e: 0x000a, 0x19f: 0x000a,
- 0x1a5: 0x000a, 0x1a6: 0x000a, 0x1a7: 0x000a, 0x1a8: 0x000a, 0x1a9: 0x000a,
- 0x1aa: 0x000a, 0x1ab: 0x000a, 0x1ac: 0x000a, 0x1ad: 0x000a, 0x1af: 0x000a,
- 0x1b0: 0x000a, 0x1b1: 0x000a, 0x1b2: 0x000a, 0x1b3: 0x000a, 0x1b4: 0x000a, 0x1b5: 0x000a,
- 0x1b6: 0x000a, 0x1b7: 0x000a, 0x1b8: 0x000a, 0x1b9: 0x000a, 0x1ba: 0x000a, 0x1bb: 0x000a,
- 0x1bc: 0x000a, 0x1bd: 0x000a, 0x1be: 0x000a, 0x1bf: 0x000a,
- // Block 0x7, offset 0x1c0
- 0x1c0: 0x000c, 0x1c1: 0x000c, 0x1c2: 0x000c, 0x1c3: 0x000c, 0x1c4: 0x000c, 0x1c5: 0x000c,
- 0x1c6: 0x000c, 0x1c7: 0x000c, 0x1c8: 0x000c, 0x1c9: 0x000c, 0x1ca: 0x000c, 0x1cb: 0x000c,
- 0x1cc: 0x000c, 0x1cd: 0x000c, 0x1ce: 0x000c, 0x1cf: 0x000c, 0x1d0: 0x000c, 0x1d1: 0x000c,
- 0x1d2: 0x000c, 0x1d3: 0x000c, 0x1d4: 0x000c, 0x1d5: 0x000c, 0x1d6: 0x000c, 0x1d7: 0x000c,
- 0x1d8: 0x000c, 0x1d9: 0x000c, 0x1da: 0x000c, 0x1db: 0x000c, 0x1dc: 0x000c, 0x1dd: 0x000c,
- 0x1de: 0x000c, 0x1df: 0x000c, 0x1e0: 0x000c, 0x1e1: 0x000c, 0x1e2: 0x000c, 0x1e3: 0x000c,
- 0x1e4: 0x000c, 0x1e5: 0x000c, 0x1e6: 0x000c, 0x1e7: 0x000c, 0x1e8: 0x000c, 0x1e9: 0x000c,
- 0x1ea: 0x000c, 0x1eb: 0x000c, 0x1ec: 0x000c, 0x1ed: 0x000c, 0x1ee: 0x000c, 0x1ef: 0x000c,
- 0x1f0: 0x000c, 0x1f1: 0x000c, 0x1f2: 0x000c, 0x1f3: 0x000c, 0x1f4: 0x000c, 0x1f5: 0x000c,
- 0x1f6: 0x000c, 0x1f7: 0x000c, 0x1f8: 0x000c, 0x1f9: 0x000c, 0x1fa: 0x000c, 0x1fb: 0x000c,
- 0x1fc: 0x000c, 0x1fd: 0x000c, 0x1fe: 0x000c, 0x1ff: 0x000c,
- // Block 0x8, offset 0x200
- 0x200: 0x000c, 0x201: 0x000c, 0x202: 0x000c, 0x203: 0x000c, 0x204: 0x000c, 0x205: 0x000c,
- 0x206: 0x000c, 0x207: 0x000c, 0x208: 0x000c, 0x209: 0x000c, 0x20a: 0x000c, 0x20b: 0x000c,
- 0x20c: 0x000c, 0x20d: 0x000c, 0x20e: 0x000c, 0x20f: 0x000c, 0x210: 0x000c, 0x211: 0x000c,
- 0x212: 0x000c, 0x213: 0x000c, 0x214: 0x000c, 0x215: 0x000c, 0x216: 0x000c, 0x217: 0x000c,
- 0x218: 0x000c, 0x219: 0x000c, 0x21a: 0x000c, 0x21b: 0x000c, 0x21c: 0x000c, 0x21d: 0x000c,
- 0x21e: 0x000c, 0x21f: 0x000c, 0x220: 0x000c, 0x221: 0x000c, 0x222: 0x000c, 0x223: 0x000c,
- 0x224: 0x000c, 0x225: 0x000c, 0x226: 0x000c, 0x227: 0x000c, 0x228: 0x000c, 0x229: 0x000c,
- 0x22a: 0x000c, 0x22b: 0x000c, 0x22c: 0x000c, 0x22d: 0x000c, 0x22e: 0x000c, 0x22f: 0x000c,
- 0x234: 0x000a, 0x235: 0x000a,
- 0x23e: 0x000a,
- // Block 0x9, offset 0x240
- 0x244: 0x000a, 0x245: 0x000a,
- 0x247: 0x000a,
- // Block 0xa, offset 0x280
- 0x2b6: 0x000a,
- // Block 0xb, offset 0x2c0
- 0x2c3: 0x000c, 0x2c4: 0x000c, 0x2c5: 0x000c,
- 0x2c6: 0x000c, 0x2c7: 0x000c, 0x2c8: 0x000c, 0x2c9: 0x000c,
- // Block 0xc, offset 0x300
- 0x30a: 0x000a,
- 0x30d: 0x000a, 0x30e: 0x000a, 0x30f: 0x0004, 0x310: 0x0001, 0x311: 0x000c,
- 0x312: 0x000c, 0x313: 0x000c, 0x314: 0x000c, 0x315: 0x000c, 0x316: 0x000c, 0x317: 0x000c,
- 0x318: 0x000c, 0x319: 0x000c, 0x31a: 0x000c, 0x31b: 0x000c, 0x31c: 0x000c, 0x31d: 0x000c,
- 0x31e: 0x000c, 0x31f: 0x000c, 0x320: 0x000c, 0x321: 0x000c, 0x322: 0x000c, 0x323: 0x000c,
- 0x324: 0x000c, 0x325: 0x000c, 0x326: 0x000c, 0x327: 0x000c, 0x328: 0x000c, 0x329: 0x000c,
- 0x32a: 0x000c, 0x32b: 0x000c, 0x32c: 0x000c, 0x32d: 0x000c, 0x32e: 0x000c, 0x32f: 0x000c,
- 0x330: 0x000c, 0x331: 0x000c, 0x332: 0x000c, 0x333: 0x000c, 0x334: 0x000c, 0x335: 0x000c,
- 0x336: 0x000c, 0x337: 0x000c, 0x338: 0x000c, 0x339: 0x000c, 0x33a: 0x000c, 0x33b: 0x000c,
- 0x33c: 0x000c, 0x33d: 0x000c, 0x33e: 0x0001, 0x33f: 0x000c,
- // Block 0xd, offset 0x340
- 0x340: 0x0001, 0x341: 0x000c, 0x342: 0x000c, 0x343: 0x0001, 0x344: 0x000c, 0x345: 0x000c,
- 0x346: 0x0001, 0x347: 0x000c, 0x348: 0x0001, 0x349: 0x0001, 0x34a: 0x0001, 0x34b: 0x0001,
- 0x34c: 0x0001, 0x34d: 0x0001, 0x34e: 0x0001, 0x34f: 0x0001, 0x350: 0x0001, 0x351: 0x0001,
- 0x352: 0x0001, 0x353: 0x0001, 0x354: 0x0001, 0x355: 0x0001, 0x356: 0x0001, 0x357: 0x0001,
- 0x358: 0x0001, 0x359: 0x0001, 0x35a: 0x0001, 0x35b: 0x0001, 0x35c: 0x0001, 0x35d: 0x0001,
- 0x35e: 0x0001, 0x35f: 0x0001, 0x360: 0x0001, 0x361: 0x0001, 0x362: 0x0001, 0x363: 0x0001,
- 0x364: 0x0001, 0x365: 0x0001, 0x366: 0x0001, 0x367: 0x0001, 0x368: 0x0001, 0x369: 0x0001,
- 0x36a: 0x0001, 0x36b: 0x0001, 0x36c: 0x0001, 0x36d: 0x0001, 0x36e: 0x0001, 0x36f: 0x0001,
- 0x370: 0x0001, 0x371: 0x0001, 0x372: 0x0001, 0x373: 0x0001, 0x374: 0x0001, 0x375: 0x0001,
- 0x376: 0x0001, 0x377: 0x0001, 0x378: 0x0001, 0x379: 0x0001, 0x37a: 0x0001, 0x37b: 0x0001,
- 0x37c: 0x0001, 0x37d: 0x0001, 0x37e: 0x0001, 0x37f: 0x0001,
- // Block 0xe, offset 0x380
- 0x380: 0x0005, 0x381: 0x0005, 0x382: 0x0005, 0x383: 0x0005, 0x384: 0x0005, 0x385: 0x0005,
- 0x386: 0x000a, 0x387: 0x000a, 0x388: 0x000d, 0x389: 0x0004, 0x38a: 0x0004, 0x38b: 0x000d,
- 0x38c: 0x0006, 0x38d: 0x000d, 0x38e: 0x000a, 0x38f: 0x000a, 0x390: 0x000c, 0x391: 0x000c,
- 0x392: 0x000c, 0x393: 0x000c, 0x394: 0x000c, 0x395: 0x000c, 0x396: 0x000c, 0x397: 0x000c,
- 0x398: 0x000c, 0x399: 0x000c, 0x39a: 0x000c, 0x39b: 0x000d, 0x39c: 0x000d, 0x39d: 0x000d,
- 0x39e: 0x000d, 0x39f: 0x000d, 0x3a0: 0x000d, 0x3a1: 0x000d, 0x3a2: 0x000d, 0x3a3: 0x000d,
- 0x3a4: 0x000d, 0x3a5: 0x000d, 0x3a6: 0x000d, 0x3a7: 0x000d, 0x3a8: 0x000d, 0x3a9: 0x000d,
- 0x3aa: 0x000d, 0x3ab: 0x000d, 0x3ac: 0x000d, 0x3ad: 0x000d, 0x3ae: 0x000d, 0x3af: 0x000d,
- 0x3b0: 0x000d, 0x3b1: 0x000d, 0x3b2: 0x000d, 0x3b3: 0x000d, 0x3b4: 0x000d, 0x3b5: 0x000d,
- 0x3b6: 0x000d, 0x3b7: 0x000d, 0x3b8: 0x000d, 0x3b9: 0x000d, 0x3ba: 0x000d, 0x3bb: 0x000d,
- 0x3bc: 0x000d, 0x3bd: 0x000d, 0x3be: 0x000d, 0x3bf: 0x000d,
- // Block 0xf, offset 0x3c0
- 0x3c0: 0x000d, 0x3c1: 0x000d, 0x3c2: 0x000d, 0x3c3: 0x000d, 0x3c4: 0x000d, 0x3c5: 0x000d,
- 0x3c6: 0x000d, 0x3c7: 0x000d, 0x3c8: 0x000d, 0x3c9: 0x000d, 0x3ca: 0x000d, 0x3cb: 0x000c,
- 0x3cc: 0x000c, 0x3cd: 0x000c, 0x3ce: 0x000c, 0x3cf: 0x000c, 0x3d0: 0x000c, 0x3d1: 0x000c,
- 0x3d2: 0x000c, 0x3d3: 0x000c, 0x3d4: 0x000c, 0x3d5: 0x000c, 0x3d6: 0x000c, 0x3d7: 0x000c,
- 0x3d8: 0x000c, 0x3d9: 0x000c, 0x3da: 0x000c, 0x3db: 0x000c, 0x3dc: 0x000c, 0x3dd: 0x000c,
- 0x3de: 0x000c, 0x3df: 0x000c, 0x3e0: 0x0005, 0x3e1: 0x0005, 0x3e2: 0x0005, 0x3e3: 0x0005,
- 0x3e4: 0x0005, 0x3e5: 0x0005, 0x3e6: 0x0005, 0x3e7: 0x0005, 0x3e8: 0x0005, 0x3e9: 0x0005,
- 0x3ea: 0x0004, 0x3eb: 0x0005, 0x3ec: 0x0005, 0x3ed: 0x000d, 0x3ee: 0x000d, 0x3ef: 0x000d,
- 0x3f0: 0x000c, 0x3f1: 0x000d, 0x3f2: 0x000d, 0x3f3: 0x000d, 0x3f4: 0x000d, 0x3f5: 0x000d,
- 0x3f6: 0x000d, 0x3f7: 0x000d, 0x3f8: 0x000d, 0x3f9: 0x000d, 0x3fa: 0x000d, 0x3fb: 0x000d,
- 0x3fc: 0x000d, 0x3fd: 0x000d, 0x3fe: 0x000d, 0x3ff: 0x000d,
- // Block 0x10, offset 0x400
- 0x400: 0x000d, 0x401: 0x000d, 0x402: 0x000d, 0x403: 0x000d, 0x404: 0x000d, 0x405: 0x000d,
- 0x406: 0x000d, 0x407: 0x000d, 0x408: 0x000d, 0x409: 0x000d, 0x40a: 0x000d, 0x40b: 0x000d,
- 0x40c: 0x000d, 0x40d: 0x000d, 0x40e: 0x000d, 0x40f: 0x000d, 0x410: 0x000d, 0x411: 0x000d,
- 0x412: 0x000d, 0x413: 0x000d, 0x414: 0x000d, 0x415: 0x000d, 0x416: 0x000d, 0x417: 0x000d,
- 0x418: 0x000d, 0x419: 0x000d, 0x41a: 0x000d, 0x41b: 0x000d, 0x41c: 0x000d, 0x41d: 0x000d,
- 0x41e: 0x000d, 0x41f: 0x000d, 0x420: 0x000d, 0x421: 0x000d, 0x422: 0x000d, 0x423: 0x000d,
- 0x424: 0x000d, 0x425: 0x000d, 0x426: 0x000d, 0x427: 0x000d, 0x428: 0x000d, 0x429: 0x000d,
- 0x42a: 0x000d, 0x42b: 0x000d, 0x42c: 0x000d, 0x42d: 0x000d, 0x42e: 0x000d, 0x42f: 0x000d,
- 0x430: 0x000d, 0x431: 0x000d, 0x432: 0x000d, 0x433: 0x000d, 0x434: 0x000d, 0x435: 0x000d,
- 0x436: 0x000d, 0x437: 0x000d, 0x438: 0x000d, 0x439: 0x000d, 0x43a: 0x000d, 0x43b: 0x000d,
- 0x43c: 0x000d, 0x43d: 0x000d, 0x43e: 0x000d, 0x43f: 0x000d,
- // Block 0x11, offset 0x440
- 0x440: 0x000d, 0x441: 0x000d, 0x442: 0x000d, 0x443: 0x000d, 0x444: 0x000d, 0x445: 0x000d,
- 0x446: 0x000d, 0x447: 0x000d, 0x448: 0x000d, 0x449: 0x000d, 0x44a: 0x000d, 0x44b: 0x000d,
- 0x44c: 0x000d, 0x44d: 0x000d, 0x44e: 0x000d, 0x44f: 0x000d, 0x450: 0x000d, 0x451: 0x000d,
- 0x452: 0x000d, 0x453: 0x000d, 0x454: 0x000d, 0x455: 0x000d, 0x456: 0x000c, 0x457: 0x000c,
- 0x458: 0x000c, 0x459: 0x000c, 0x45a: 0x000c, 0x45b: 0x000c, 0x45c: 0x000c, 0x45d: 0x0005,
- 0x45e: 0x000a, 0x45f: 0x000c, 0x460: 0x000c, 0x461: 0x000c, 0x462: 0x000c, 0x463: 0x000c,
- 0x464: 0x000c, 0x465: 0x000d, 0x466: 0x000d, 0x467: 0x000c, 0x468: 0x000c, 0x469: 0x000a,
- 0x46a: 0x000c, 0x46b: 0x000c, 0x46c: 0x000c, 0x46d: 0x000c, 0x46e: 0x000d, 0x46f: 0x000d,
- 0x470: 0x0002, 0x471: 0x0002, 0x472: 0x0002, 0x473: 0x0002, 0x474: 0x0002, 0x475: 0x0002,
- 0x476: 0x0002, 0x477: 0x0002, 0x478: 0x0002, 0x479: 0x0002, 0x47a: 0x000d, 0x47b: 0x000d,
- 0x47c: 0x000d, 0x47d: 0x000d, 0x47e: 0x000d, 0x47f: 0x000d,
- // Block 0x12, offset 0x480
- 0x480: 0x000d, 0x481: 0x000d, 0x482: 0x000d, 0x483: 0x000d, 0x484: 0x000d, 0x485: 0x000d,
- 0x486: 0x000d, 0x487: 0x000d, 0x488: 0x000d, 0x489: 0x000d, 0x48a: 0x000d, 0x48b: 0x000d,
- 0x48c: 0x000d, 0x48d: 0x000d, 0x48e: 0x000d, 0x48f: 0x000d, 0x490: 0x000d, 0x491: 0x000c,
- 0x492: 0x000d, 0x493: 0x000d, 0x494: 0x000d, 0x495: 0x000d, 0x496: 0x000d, 0x497: 0x000d,
- 0x498: 0x000d, 0x499: 0x000d, 0x49a: 0x000d, 0x49b: 0x000d, 0x49c: 0x000d, 0x49d: 0x000d,
- 0x49e: 0x000d, 0x49f: 0x000d, 0x4a0: 0x000d, 0x4a1: 0x000d, 0x4a2: 0x000d, 0x4a3: 0x000d,
- 0x4a4: 0x000d, 0x4a5: 0x000d, 0x4a6: 0x000d, 0x4a7: 0x000d, 0x4a8: 0x000d, 0x4a9: 0x000d,
- 0x4aa: 0x000d, 0x4ab: 0x000d, 0x4ac: 0x000d, 0x4ad: 0x000d, 0x4ae: 0x000d, 0x4af: 0x000d,
- 0x4b0: 0x000c, 0x4b1: 0x000c, 0x4b2: 0x000c, 0x4b3: 0x000c, 0x4b4: 0x000c, 0x4b5: 0x000c,
- 0x4b6: 0x000c, 0x4b7: 0x000c, 0x4b8: 0x000c, 0x4b9: 0x000c, 0x4ba: 0x000c, 0x4bb: 0x000c,
- 0x4bc: 0x000c, 0x4bd: 0x000c, 0x4be: 0x000c, 0x4bf: 0x000c,
- // Block 0x13, offset 0x4c0
- 0x4c0: 0x000c, 0x4c1: 0x000c, 0x4c2: 0x000c, 0x4c3: 0x000c, 0x4c4: 0x000c, 0x4c5: 0x000c,
- 0x4c6: 0x000c, 0x4c7: 0x000c, 0x4c8: 0x000c, 0x4c9: 0x000c, 0x4ca: 0x000c, 0x4cb: 0x000d,
- 0x4cc: 0x000d, 0x4cd: 0x000d, 0x4ce: 0x000d, 0x4cf: 0x000d, 0x4d0: 0x000d, 0x4d1: 0x000d,
- 0x4d2: 0x000d, 0x4d3: 0x000d, 0x4d4: 0x000d, 0x4d5: 0x000d, 0x4d6: 0x000d, 0x4d7: 0x000d,
- 0x4d8: 0x000d, 0x4d9: 0x000d, 0x4da: 0x000d, 0x4db: 0x000d, 0x4dc: 0x000d, 0x4dd: 0x000d,
- 0x4de: 0x000d, 0x4df: 0x000d, 0x4e0: 0x000d, 0x4e1: 0x000d, 0x4e2: 0x000d, 0x4e3: 0x000d,
- 0x4e4: 0x000d, 0x4e5: 0x000d, 0x4e6: 0x000d, 0x4e7: 0x000d, 0x4e8: 0x000d, 0x4e9: 0x000d,
- 0x4ea: 0x000d, 0x4eb: 0x000d, 0x4ec: 0x000d, 0x4ed: 0x000d, 0x4ee: 0x000d, 0x4ef: 0x000d,
- 0x4f0: 0x000d, 0x4f1: 0x000d, 0x4f2: 0x000d, 0x4f3: 0x000d, 0x4f4: 0x000d, 0x4f5: 0x000d,
- 0x4f6: 0x000d, 0x4f7: 0x000d, 0x4f8: 0x000d, 0x4f9: 0x000d, 0x4fa: 0x000d, 0x4fb: 0x000d,
- 0x4fc: 0x000d, 0x4fd: 0x000d, 0x4fe: 0x000d, 0x4ff: 0x000d,
- // Block 0x14, offset 0x500
- 0x500: 0x000d, 0x501: 0x000d, 0x502: 0x000d, 0x503: 0x000d, 0x504: 0x000d, 0x505: 0x000d,
- 0x506: 0x000d, 0x507: 0x000d, 0x508: 0x000d, 0x509: 0x000d, 0x50a: 0x000d, 0x50b: 0x000d,
- 0x50c: 0x000d, 0x50d: 0x000d, 0x50e: 0x000d, 0x50f: 0x000d, 0x510: 0x000d, 0x511: 0x000d,
- 0x512: 0x000d, 0x513: 0x000d, 0x514: 0x000d, 0x515: 0x000d, 0x516: 0x000d, 0x517: 0x000d,
- 0x518: 0x000d, 0x519: 0x000d, 0x51a: 0x000d, 0x51b: 0x000d, 0x51c: 0x000d, 0x51d: 0x000d,
- 0x51e: 0x000d, 0x51f: 0x000d, 0x520: 0x000d, 0x521: 0x000d, 0x522: 0x000d, 0x523: 0x000d,
- 0x524: 0x000d, 0x525: 0x000d, 0x526: 0x000c, 0x527: 0x000c, 0x528: 0x000c, 0x529: 0x000c,
- 0x52a: 0x000c, 0x52b: 0x000c, 0x52c: 0x000c, 0x52d: 0x000c, 0x52e: 0x000c, 0x52f: 0x000c,
- 0x530: 0x000c, 0x531: 0x000d, 0x532: 0x000d, 0x533: 0x000d, 0x534: 0x000d, 0x535: 0x000d,
- 0x536: 0x000d, 0x537: 0x000d, 0x538: 0x000d, 0x539: 0x000d, 0x53a: 0x000d, 0x53b: 0x000d,
- 0x53c: 0x000d, 0x53d: 0x000d, 0x53e: 0x000d, 0x53f: 0x000d,
- // Block 0x15, offset 0x540
- 0x540: 0x0001, 0x541: 0x0001, 0x542: 0x0001, 0x543: 0x0001, 0x544: 0x0001, 0x545: 0x0001,
- 0x546: 0x0001, 0x547: 0x0001, 0x548: 0x0001, 0x549: 0x0001, 0x54a: 0x0001, 0x54b: 0x0001,
- 0x54c: 0x0001, 0x54d: 0x0001, 0x54e: 0x0001, 0x54f: 0x0001, 0x550: 0x0001, 0x551: 0x0001,
- 0x552: 0x0001, 0x553: 0x0001, 0x554: 0x0001, 0x555: 0x0001, 0x556: 0x0001, 0x557: 0x0001,
- 0x558: 0x0001, 0x559: 0x0001, 0x55a: 0x0001, 0x55b: 0x0001, 0x55c: 0x0001, 0x55d: 0x0001,
- 0x55e: 0x0001, 0x55f: 0x0001, 0x560: 0x0001, 0x561: 0x0001, 0x562: 0x0001, 0x563: 0x0001,
- 0x564: 0x0001, 0x565: 0x0001, 0x566: 0x0001, 0x567: 0x0001, 0x568: 0x0001, 0x569: 0x0001,
- 0x56a: 0x0001, 0x56b: 0x000c, 0x56c: 0x000c, 0x56d: 0x000c, 0x56e: 0x000c, 0x56f: 0x000c,
- 0x570: 0x000c, 0x571: 0x000c, 0x572: 0x000c, 0x573: 0x000c, 0x574: 0x0001, 0x575: 0x0001,
- 0x576: 0x000a, 0x577: 0x000a, 0x578: 0x000a, 0x579: 0x000a, 0x57a: 0x0001, 0x57b: 0x0001,
- 0x57c: 0x0001, 0x57d: 0x0001, 0x57e: 0x0001, 0x57f: 0x0001,
- // Block 0x16, offset 0x580
- 0x580: 0x0001, 0x581: 0x0001, 0x582: 0x0001, 0x583: 0x0001, 0x584: 0x0001, 0x585: 0x0001,
- 0x586: 0x0001, 0x587: 0x0001, 0x588: 0x0001, 0x589: 0x0001, 0x58a: 0x0001, 0x58b: 0x0001,
- 0x58c: 0x0001, 0x58d: 0x0001, 0x58e: 0x0001, 0x58f: 0x0001, 0x590: 0x0001, 0x591: 0x0001,
- 0x592: 0x0001, 0x593: 0x0001, 0x594: 0x0001, 0x595: 0x0001, 0x596: 0x000c, 0x597: 0x000c,
- 0x598: 0x000c, 0x599: 0x000c, 0x59a: 0x0001, 0x59b: 0x000c, 0x59c: 0x000c, 0x59d: 0x000c,
- 0x59e: 0x000c, 0x59f: 0x000c, 0x5a0: 0x000c, 0x5a1: 0x000c, 0x5a2: 0x000c, 0x5a3: 0x000c,
- 0x5a4: 0x0001, 0x5a5: 0x000c, 0x5a6: 0x000c, 0x5a7: 0x000c, 0x5a8: 0x0001, 0x5a9: 0x000c,
- 0x5aa: 0x000c, 0x5ab: 0x000c, 0x5ac: 0x000c, 0x5ad: 0x000c, 0x5ae: 0x0001, 0x5af: 0x0001,
- 0x5b0: 0x0001, 0x5b1: 0x0001, 0x5b2: 0x0001, 0x5b3: 0x0001, 0x5b4: 0x0001, 0x5b5: 0x0001,
- 0x5b6: 0x0001, 0x5b7: 0x0001, 0x5b8: 0x0001, 0x5b9: 0x0001, 0x5ba: 0x0001, 0x5bb: 0x0001,
- 0x5bc: 0x0001, 0x5bd: 0x0001, 0x5be: 0x0001, 0x5bf: 0x0001,
- // Block 0x17, offset 0x5c0
- 0x5c0: 0x0001, 0x5c1: 0x0001, 0x5c2: 0x0001, 0x5c3: 0x0001, 0x5c4: 0x0001, 0x5c5: 0x0001,
- 0x5c6: 0x0001, 0x5c7: 0x0001, 0x5c8: 0x0001, 0x5c9: 0x0001, 0x5ca: 0x0001, 0x5cb: 0x0001,
- 0x5cc: 0x0001, 0x5cd: 0x0001, 0x5ce: 0x0001, 0x5cf: 0x0001, 0x5d0: 0x0001, 0x5d1: 0x0001,
- 0x5d2: 0x0001, 0x5d3: 0x0001, 0x5d4: 0x0001, 0x5d5: 0x0001, 0x5d6: 0x0001, 0x5d7: 0x0001,
- 0x5d8: 0x0001, 0x5d9: 0x000c, 0x5da: 0x000c, 0x5db: 0x000c, 0x5dc: 0x0001, 0x5dd: 0x0001,
- 0x5de: 0x0001, 0x5df: 0x0001, 0x5e0: 0x0001, 0x5e1: 0x0001, 0x5e2: 0x0001, 0x5e3: 0x0001,
- 0x5e4: 0x0001, 0x5e5: 0x0001, 0x5e6: 0x0001, 0x5e7: 0x0001, 0x5e8: 0x0001, 0x5e9: 0x0001,
- 0x5ea: 0x0001, 0x5eb: 0x0001, 0x5ec: 0x0001, 0x5ed: 0x0001, 0x5ee: 0x0001, 0x5ef: 0x0001,
- 0x5f0: 0x0001, 0x5f1: 0x0001, 0x5f2: 0x0001, 0x5f3: 0x0001, 0x5f4: 0x0001, 0x5f5: 0x0001,
- 0x5f6: 0x0001, 0x5f7: 0x0001, 0x5f8: 0x0001, 0x5f9: 0x0001, 0x5fa: 0x0001, 0x5fb: 0x0001,
- 0x5fc: 0x0001, 0x5fd: 0x0001, 0x5fe: 0x0001, 0x5ff: 0x0001,
- // Block 0x18, offset 0x600
- 0x600: 0x0001, 0x601: 0x0001, 0x602: 0x0001, 0x603: 0x0001, 0x604: 0x0001, 0x605: 0x0001,
- 0x606: 0x0001, 0x607: 0x0001, 0x608: 0x0001, 0x609: 0x0001, 0x60a: 0x0001, 0x60b: 0x0001,
- 0x60c: 0x0001, 0x60d: 0x0001, 0x60e: 0x0001, 0x60f: 0x0001, 0x610: 0x0001, 0x611: 0x0001,
- 0x612: 0x0001, 0x613: 0x0001, 0x614: 0x0001, 0x615: 0x0001, 0x616: 0x0001, 0x617: 0x0001,
- 0x618: 0x0001, 0x619: 0x0001, 0x61a: 0x0001, 0x61b: 0x0001, 0x61c: 0x0001, 0x61d: 0x0001,
- 0x61e: 0x0001, 0x61f: 0x0001, 0x620: 0x000d, 0x621: 0x000d, 0x622: 0x000d, 0x623: 0x000d,
- 0x624: 0x000d, 0x625: 0x000d, 0x626: 0x000d, 0x627: 0x000d, 0x628: 0x000d, 0x629: 0x000d,
- 0x62a: 0x000d, 0x62b: 0x000d, 0x62c: 0x000d, 0x62d: 0x000d, 0x62e: 0x000d, 0x62f: 0x000d,
- 0x630: 0x000d, 0x631: 0x000d, 0x632: 0x000d, 0x633: 0x000d, 0x634: 0x000d, 0x635: 0x000d,
- 0x636: 0x000d, 0x637: 0x000d, 0x638: 0x000d, 0x639: 0x000d, 0x63a: 0x000d, 0x63b: 0x000d,
- 0x63c: 0x000d, 0x63d: 0x000d, 0x63e: 0x000d, 0x63f: 0x000d,
- // Block 0x19, offset 0x640
- 0x640: 0x000d, 0x641: 0x000d, 0x642: 0x000d, 0x643: 0x000d, 0x644: 0x000d, 0x645: 0x000d,
- 0x646: 0x000d, 0x647: 0x000d, 0x648: 0x000d, 0x649: 0x000d, 0x64a: 0x000d, 0x64b: 0x000d,
- 0x64c: 0x000d, 0x64d: 0x000d, 0x64e: 0x000d, 0x64f: 0x000d, 0x650: 0x000d, 0x651: 0x000d,
- 0x652: 0x000d, 0x653: 0x000d, 0x654: 0x000c, 0x655: 0x000c, 0x656: 0x000c, 0x657: 0x000c,
- 0x658: 0x000c, 0x659: 0x000c, 0x65a: 0x000c, 0x65b: 0x000c, 0x65c: 0x000c, 0x65d: 0x000c,
- 0x65e: 0x000c, 0x65f: 0x000c, 0x660: 0x000c, 0x661: 0x000c, 0x662: 0x0005, 0x663: 0x000c,
- 0x664: 0x000c, 0x665: 0x000c, 0x666: 0x000c, 0x667: 0x000c, 0x668: 0x000c, 0x669: 0x000c,
- 0x66a: 0x000c, 0x66b: 0x000c, 0x66c: 0x000c, 0x66d: 0x000c, 0x66e: 0x000c, 0x66f: 0x000c,
- 0x670: 0x000c, 0x671: 0x000c, 0x672: 0x000c, 0x673: 0x000c, 0x674: 0x000c, 0x675: 0x000c,
- 0x676: 0x000c, 0x677: 0x000c, 0x678: 0x000c, 0x679: 0x000c, 0x67a: 0x000c, 0x67b: 0x000c,
- 0x67c: 0x000c, 0x67d: 0x000c, 0x67e: 0x000c, 0x67f: 0x000c,
- // Block 0x1a, offset 0x680
- 0x680: 0x000c, 0x681: 0x000c, 0x682: 0x000c,
- 0x6ba: 0x000c,
- 0x6bc: 0x000c,
- // Block 0x1b, offset 0x6c0
- 0x6c1: 0x000c, 0x6c2: 0x000c, 0x6c3: 0x000c, 0x6c4: 0x000c, 0x6c5: 0x000c,
- 0x6c6: 0x000c, 0x6c7: 0x000c, 0x6c8: 0x000c,
- 0x6cd: 0x000c, 0x6d1: 0x000c,
- 0x6d2: 0x000c, 0x6d3: 0x000c, 0x6d4: 0x000c, 0x6d5: 0x000c, 0x6d6: 0x000c, 0x6d7: 0x000c,
- 0x6e2: 0x000c, 0x6e3: 0x000c,
- // Block 0x1c, offset 0x700
- 0x701: 0x000c,
- 0x73c: 0x000c,
- // Block 0x1d, offset 0x740
- 0x741: 0x000c, 0x742: 0x000c, 0x743: 0x000c, 0x744: 0x000c,
- 0x74d: 0x000c,
- 0x762: 0x000c, 0x763: 0x000c,
- 0x772: 0x0004, 0x773: 0x0004,
- 0x77b: 0x0004,
- // Block 0x1e, offset 0x780
- 0x781: 0x000c, 0x782: 0x000c,
- 0x7bc: 0x000c,
- // Block 0x1f, offset 0x7c0
- 0x7c1: 0x000c, 0x7c2: 0x000c,
- 0x7c7: 0x000c, 0x7c8: 0x000c, 0x7cb: 0x000c,
- 0x7cc: 0x000c, 0x7cd: 0x000c, 0x7d1: 0x000c,
- 0x7f0: 0x000c, 0x7f1: 0x000c, 0x7f5: 0x000c,
- // Block 0x20, offset 0x800
- 0x801: 0x000c, 0x802: 0x000c, 0x803: 0x000c, 0x804: 0x000c, 0x805: 0x000c,
- 0x807: 0x000c, 0x808: 0x000c,
- 0x80d: 0x000c,
- 0x822: 0x000c, 0x823: 0x000c,
- 0x831: 0x0004,
- // Block 0x21, offset 0x840
- 0x841: 0x000c,
- 0x87c: 0x000c, 0x87f: 0x000c,
- // Block 0x22, offset 0x880
- 0x881: 0x000c, 0x882: 0x000c, 0x883: 0x000c, 0x884: 0x000c,
- 0x88d: 0x000c,
- 0x896: 0x000c,
- 0x8a2: 0x000c, 0x8a3: 0x000c,
- // Block 0x23, offset 0x8c0
- 0x8c2: 0x000c,
- // Block 0x24, offset 0x900
- 0x900: 0x000c,
- 0x90d: 0x000c,
- 0x933: 0x000a, 0x934: 0x000a, 0x935: 0x000a,
- 0x936: 0x000a, 0x937: 0x000a, 0x938: 0x000a, 0x939: 0x0004, 0x93a: 0x000a,
- // Block 0x25, offset 0x940
- 0x940: 0x000c,
- 0x97e: 0x000c, 0x97f: 0x000c,
- // Block 0x26, offset 0x980
- 0x980: 0x000c,
- 0x986: 0x000c, 0x987: 0x000c, 0x988: 0x000c, 0x98a: 0x000c, 0x98b: 0x000c,
- 0x98c: 0x000c, 0x98d: 0x000c,
- 0x995: 0x000c, 0x996: 0x000c,
- 0x9a2: 0x000c, 0x9a3: 0x000c,
- 0x9b8: 0x000a, 0x9b9: 0x000a, 0x9ba: 0x000a, 0x9bb: 0x000a,
- 0x9bc: 0x000a, 0x9bd: 0x000a, 0x9be: 0x000a,
- // Block 0x27, offset 0x9c0
- 0x9cc: 0x000c, 0x9cd: 0x000c,
- 0x9e2: 0x000c, 0x9e3: 0x000c,
- // Block 0x28, offset 0xa00
- 0xa01: 0x000c,
- // Block 0x29, offset 0xa40
- 0xa41: 0x000c, 0xa42: 0x000c, 0xa43: 0x000c, 0xa44: 0x000c,
- 0xa4d: 0x000c,
- 0xa62: 0x000c, 0xa63: 0x000c,
- // Block 0x2a, offset 0xa80
- 0xa8a: 0x000c,
- 0xa92: 0x000c, 0xa93: 0x000c, 0xa94: 0x000c, 0xa96: 0x000c,
- // Block 0x2b, offset 0xac0
- 0xaf1: 0x000c, 0xaf4: 0x000c, 0xaf5: 0x000c,
- 0xaf6: 0x000c, 0xaf7: 0x000c, 0xaf8: 0x000c, 0xaf9: 0x000c, 0xafa: 0x000c,
- 0xaff: 0x0004,
- // Block 0x2c, offset 0xb00
- 0xb07: 0x000c, 0xb08: 0x000c, 0xb09: 0x000c, 0xb0a: 0x000c, 0xb0b: 0x000c,
- 0xb0c: 0x000c, 0xb0d: 0x000c, 0xb0e: 0x000c,
- // Block 0x2d, offset 0xb40
- 0xb71: 0x000c, 0xb74: 0x000c, 0xb75: 0x000c,
- 0xb76: 0x000c, 0xb77: 0x000c, 0xb78: 0x000c, 0xb79: 0x000c, 0xb7b: 0x000c,
- 0xb7c: 0x000c,
- // Block 0x2e, offset 0xb80
- 0xb88: 0x000c, 0xb89: 0x000c, 0xb8a: 0x000c, 0xb8b: 0x000c,
- 0xb8c: 0x000c, 0xb8d: 0x000c,
- // Block 0x2f, offset 0xbc0
- 0xbd8: 0x000c, 0xbd9: 0x000c,
- 0xbf5: 0x000c,
- 0xbf7: 0x000c, 0xbf9: 0x000c, 0xbfa: 0x003a, 0xbfb: 0x002a,
- 0xbfc: 0x003a, 0xbfd: 0x002a,
- // Block 0x30, offset 0xc00
- 0xc31: 0x000c, 0xc32: 0x000c, 0xc33: 0x000c, 0xc34: 0x000c, 0xc35: 0x000c,
- 0xc36: 0x000c, 0xc37: 0x000c, 0xc38: 0x000c, 0xc39: 0x000c, 0xc3a: 0x000c, 0xc3b: 0x000c,
- 0xc3c: 0x000c, 0xc3d: 0x000c, 0xc3e: 0x000c,
- // Block 0x31, offset 0xc40
- 0xc40: 0x000c, 0xc41: 0x000c, 0xc42: 0x000c, 0xc43: 0x000c, 0xc44: 0x000c,
- 0xc46: 0x000c, 0xc47: 0x000c,
- 0xc4d: 0x000c, 0xc4e: 0x000c, 0xc4f: 0x000c, 0xc50: 0x000c, 0xc51: 0x000c,
- 0xc52: 0x000c, 0xc53: 0x000c, 0xc54: 0x000c, 0xc55: 0x000c, 0xc56: 0x000c, 0xc57: 0x000c,
- 0xc59: 0x000c, 0xc5a: 0x000c, 0xc5b: 0x000c, 0xc5c: 0x000c, 0xc5d: 0x000c,
- 0xc5e: 0x000c, 0xc5f: 0x000c, 0xc60: 0x000c, 0xc61: 0x000c, 0xc62: 0x000c, 0xc63: 0x000c,
- 0xc64: 0x000c, 0xc65: 0x000c, 0xc66: 0x000c, 0xc67: 0x000c, 0xc68: 0x000c, 0xc69: 0x000c,
- 0xc6a: 0x000c, 0xc6b: 0x000c, 0xc6c: 0x000c, 0xc6d: 0x000c, 0xc6e: 0x000c, 0xc6f: 0x000c,
- 0xc70: 0x000c, 0xc71: 0x000c, 0xc72: 0x000c, 0xc73: 0x000c, 0xc74: 0x000c, 0xc75: 0x000c,
- 0xc76: 0x000c, 0xc77: 0x000c, 0xc78: 0x000c, 0xc79: 0x000c, 0xc7a: 0x000c, 0xc7b: 0x000c,
- 0xc7c: 0x000c,
- // Block 0x32, offset 0xc80
- 0xc86: 0x000c,
- // Block 0x33, offset 0xcc0
- 0xced: 0x000c, 0xcee: 0x000c, 0xcef: 0x000c,
- 0xcf0: 0x000c, 0xcf2: 0x000c, 0xcf3: 0x000c, 0xcf4: 0x000c, 0xcf5: 0x000c,
- 0xcf6: 0x000c, 0xcf7: 0x000c, 0xcf9: 0x000c, 0xcfa: 0x000c,
- 0xcfd: 0x000c, 0xcfe: 0x000c,
- // Block 0x34, offset 0xd00
- 0xd18: 0x000c, 0xd19: 0x000c,
- 0xd1e: 0x000c, 0xd1f: 0x000c, 0xd20: 0x000c,
- 0xd31: 0x000c, 0xd32: 0x000c, 0xd33: 0x000c, 0xd34: 0x000c,
- // Block 0x35, offset 0xd40
- 0xd42: 0x000c, 0xd45: 0x000c,
- 0xd46: 0x000c,
- 0xd4d: 0x000c,
- 0xd5d: 0x000c,
- // Block 0x36, offset 0xd80
- 0xd9d: 0x000c,
- 0xd9e: 0x000c, 0xd9f: 0x000c,
- // Block 0x37, offset 0xdc0
- 0xdd0: 0x000a, 0xdd1: 0x000a,
- 0xdd2: 0x000a, 0xdd3: 0x000a, 0xdd4: 0x000a, 0xdd5: 0x000a, 0xdd6: 0x000a, 0xdd7: 0x000a,
- 0xdd8: 0x000a, 0xdd9: 0x000a,
- // Block 0x38, offset 0xe00
- 0xe00: 0x000a,
- // Block 0x39, offset 0xe40
- 0xe40: 0x0009,
- 0xe5b: 0x007a, 0xe5c: 0x006a,
- // Block 0x3a, offset 0xe80
- 0xe92: 0x000c, 0xe93: 0x000c, 0xe94: 0x000c,
- 0xeb2: 0x000c, 0xeb3: 0x000c, 0xeb4: 0x000c,
- // Block 0x3b, offset 0xec0
- 0xed2: 0x000c, 0xed3: 0x000c,
- 0xef2: 0x000c, 0xef3: 0x000c,
- // Block 0x3c, offset 0xf00
- 0xf34: 0x000c, 0xf35: 0x000c,
- 0xf37: 0x000c, 0xf38: 0x000c, 0xf39: 0x000c, 0xf3a: 0x000c, 0xf3b: 0x000c,
- 0xf3c: 0x000c, 0xf3d: 0x000c,
- // Block 0x3d, offset 0xf40
- 0xf46: 0x000c, 0xf49: 0x000c, 0xf4a: 0x000c, 0xf4b: 0x000c,
- 0xf4c: 0x000c, 0xf4d: 0x000c, 0xf4e: 0x000c, 0xf4f: 0x000c, 0xf50: 0x000c, 0xf51: 0x000c,
- 0xf52: 0x000c, 0xf53: 0x000c,
- 0xf5b: 0x0004, 0xf5d: 0x000c,
- 0xf70: 0x000a, 0xf71: 0x000a, 0xf72: 0x000a, 0xf73: 0x000a, 0xf74: 0x000a, 0xf75: 0x000a,
- 0xf76: 0x000a, 0xf77: 0x000a, 0xf78: 0x000a, 0xf79: 0x000a,
- // Block 0x3e, offset 0xf80
- 0xf80: 0x000a, 0xf81: 0x000a, 0xf82: 0x000a, 0xf83: 0x000a, 0xf84: 0x000a, 0xf85: 0x000a,
- 0xf86: 0x000a, 0xf87: 0x000a, 0xf88: 0x000a, 0xf89: 0x000a, 0xf8a: 0x000a, 0xf8b: 0x000c,
- 0xf8c: 0x000c, 0xf8d: 0x000c, 0xf8e: 0x000b,
- // Block 0x3f, offset 0xfc0
- 0xfc5: 0x000c,
- 0xfc6: 0x000c,
- 0xfe9: 0x000c,
- // Block 0x40, offset 0x1000
- 0x1020: 0x000c, 0x1021: 0x000c, 0x1022: 0x000c,
- 0x1027: 0x000c, 0x1028: 0x000c,
- 0x1032: 0x000c,
- 0x1039: 0x000c, 0x103a: 0x000c, 0x103b: 0x000c,
- // Block 0x41, offset 0x1040
- 0x1040: 0x000a, 0x1044: 0x000a, 0x1045: 0x000a,
- // Block 0x42, offset 0x1080
- 0x109e: 0x000a, 0x109f: 0x000a, 0x10a0: 0x000a, 0x10a1: 0x000a, 0x10a2: 0x000a, 0x10a3: 0x000a,
- 0x10a4: 0x000a, 0x10a5: 0x000a, 0x10a6: 0x000a, 0x10a7: 0x000a, 0x10a8: 0x000a, 0x10a9: 0x000a,
- 0x10aa: 0x000a, 0x10ab: 0x000a, 0x10ac: 0x000a, 0x10ad: 0x000a, 0x10ae: 0x000a, 0x10af: 0x000a,
- 0x10b0: 0x000a, 0x10b1: 0x000a, 0x10b2: 0x000a, 0x10b3: 0x000a, 0x10b4: 0x000a, 0x10b5: 0x000a,
- 0x10b6: 0x000a, 0x10b7: 0x000a, 0x10b8: 0x000a, 0x10b9: 0x000a, 0x10ba: 0x000a, 0x10bb: 0x000a,
- 0x10bc: 0x000a, 0x10bd: 0x000a, 0x10be: 0x000a, 0x10bf: 0x000a,
- // Block 0x43, offset 0x10c0
- 0x10d7: 0x000c,
- 0x10d8: 0x000c, 0x10db: 0x000c,
- // Block 0x44, offset 0x1100
- 0x1116: 0x000c,
- 0x1118: 0x000c, 0x1119: 0x000c, 0x111a: 0x000c, 0x111b: 0x000c, 0x111c: 0x000c, 0x111d: 0x000c,
- 0x111e: 0x000c, 0x1120: 0x000c, 0x1122: 0x000c,
- 0x1125: 0x000c, 0x1126: 0x000c, 0x1127: 0x000c, 0x1128: 0x000c, 0x1129: 0x000c,
- 0x112a: 0x000c, 0x112b: 0x000c, 0x112c: 0x000c,
- 0x1133: 0x000c, 0x1134: 0x000c, 0x1135: 0x000c,
- 0x1136: 0x000c, 0x1137: 0x000c, 0x1138: 0x000c, 0x1139: 0x000c, 0x113a: 0x000c, 0x113b: 0x000c,
- 0x113c: 0x000c, 0x113f: 0x000c,
- // Block 0x45, offset 0x1140
- 0x1170: 0x000c, 0x1171: 0x000c, 0x1172: 0x000c, 0x1173: 0x000c, 0x1174: 0x000c, 0x1175: 0x000c,
- 0x1176: 0x000c, 0x1177: 0x000c, 0x1178: 0x000c, 0x1179: 0x000c, 0x117a: 0x000c, 0x117b: 0x000c,
- 0x117c: 0x000c, 0x117d: 0x000c, 0x117e: 0x000c,
- // Block 0x46, offset 0x1180
- 0x1180: 0x000c, 0x1181: 0x000c, 0x1182: 0x000c, 0x1183: 0x000c,
- 0x11b4: 0x000c,
- 0x11b6: 0x000c, 0x11b7: 0x000c, 0x11b8: 0x000c, 0x11b9: 0x000c, 0x11ba: 0x000c,
- 0x11bc: 0x000c,
- // Block 0x47, offset 0x11c0
- 0x11c2: 0x000c,
- 0x11eb: 0x000c, 0x11ec: 0x000c, 0x11ed: 0x000c, 0x11ee: 0x000c, 0x11ef: 0x000c,
- 0x11f0: 0x000c, 0x11f1: 0x000c, 0x11f2: 0x000c, 0x11f3: 0x000c,
- // Block 0x48, offset 0x1200
- 0x1200: 0x000c, 0x1201: 0x000c,
- 0x1222: 0x000c, 0x1223: 0x000c,
- 0x1224: 0x000c, 0x1225: 0x000c, 0x1228: 0x000c, 0x1229: 0x000c,
- 0x122b: 0x000c, 0x122c: 0x000c, 0x122d: 0x000c,
- // Block 0x49, offset 0x1240
- 0x1266: 0x000c, 0x1268: 0x000c, 0x1269: 0x000c,
- 0x126d: 0x000c, 0x126f: 0x000c,
- 0x1270: 0x000c, 0x1271: 0x000c,
- // Block 0x4a, offset 0x1280
- 0x12ac: 0x000c, 0x12ad: 0x000c, 0x12ae: 0x000c, 0x12af: 0x000c,
- 0x12b0: 0x000c, 0x12b1: 0x000c, 0x12b2: 0x000c, 0x12b3: 0x000c,
- 0x12b6: 0x000c, 0x12b7: 0x000c,
- // Block 0x4b, offset 0x12c0
- 0x12d0: 0x000c, 0x12d1: 0x000c,
- 0x12d2: 0x000c, 0x12d4: 0x000c, 0x12d5: 0x000c, 0x12d6: 0x000c, 0x12d7: 0x000c,
- 0x12d8: 0x000c, 0x12d9: 0x000c, 0x12da: 0x000c, 0x12db: 0x000c, 0x12dc: 0x000c, 0x12dd: 0x000c,
- 0x12de: 0x000c, 0x12df: 0x000c, 0x12e0: 0x000c, 0x12e2: 0x000c, 0x12e3: 0x000c,
- 0x12e4: 0x000c, 0x12e5: 0x000c, 0x12e6: 0x000c, 0x12e7: 0x000c, 0x12e8: 0x000c,
- 0x12ed: 0x000c,
- 0x12f4: 0x000c,
- 0x12f8: 0x000c, 0x12f9: 0x000c,
- // Block 0x4c, offset 0x1300
- 0x1300: 0x000c, 0x1301: 0x000c, 0x1302: 0x000c, 0x1303: 0x000c, 0x1304: 0x000c, 0x1305: 0x000c,
- 0x1306: 0x000c, 0x1307: 0x000c, 0x1308: 0x000c, 0x1309: 0x000c, 0x130a: 0x000c, 0x130b: 0x000c,
- 0x130c: 0x000c, 0x130d: 0x000c, 0x130e: 0x000c, 0x130f: 0x000c, 0x1310: 0x000c, 0x1311: 0x000c,
- 0x1312: 0x000c, 0x1313: 0x000c, 0x1314: 0x000c, 0x1315: 0x000c, 0x1316: 0x000c, 0x1317: 0x000c,
- 0x1318: 0x000c, 0x1319: 0x000c, 0x131a: 0x000c, 0x131b: 0x000c, 0x131c: 0x000c, 0x131d: 0x000c,
- 0x131e: 0x000c, 0x131f: 0x000c, 0x1320: 0x000c, 0x1321: 0x000c, 0x1322: 0x000c, 0x1323: 0x000c,
- 0x1324: 0x000c, 0x1325: 0x000c, 0x1326: 0x000c, 0x1327: 0x000c, 0x1328: 0x000c, 0x1329: 0x000c,
- 0x132a: 0x000c, 0x132b: 0x000c, 0x132c: 0x000c, 0x132d: 0x000c, 0x132e: 0x000c, 0x132f: 0x000c,
- 0x1330: 0x000c, 0x1331: 0x000c, 0x1332: 0x000c, 0x1333: 0x000c, 0x1334: 0x000c, 0x1335: 0x000c,
- 0x133b: 0x000c,
- 0x133c: 0x000c, 0x133d: 0x000c, 0x133e: 0x000c, 0x133f: 0x000c,
- // Block 0x4d, offset 0x1340
- 0x137d: 0x000a, 0x137f: 0x000a,
- // Block 0x4e, offset 0x1380
- 0x1380: 0x000a, 0x1381: 0x000a,
- 0x138d: 0x000a, 0x138e: 0x000a, 0x138f: 0x000a,
- 0x139d: 0x000a,
- 0x139e: 0x000a, 0x139f: 0x000a,
- 0x13ad: 0x000a, 0x13ae: 0x000a, 0x13af: 0x000a,
- 0x13bd: 0x000a, 0x13be: 0x000a,
- // Block 0x4f, offset 0x13c0
- 0x13c0: 0x0009, 0x13c1: 0x0009, 0x13c2: 0x0009, 0x13c3: 0x0009, 0x13c4: 0x0009, 0x13c5: 0x0009,
- 0x13c6: 0x0009, 0x13c7: 0x0009, 0x13c8: 0x0009, 0x13c9: 0x0009, 0x13ca: 0x0009, 0x13cb: 0x000b,
- 0x13cc: 0x000b, 0x13cd: 0x000b, 0x13cf: 0x0001, 0x13d0: 0x000a, 0x13d1: 0x000a,
- 0x13d2: 0x000a, 0x13d3: 0x000a, 0x13d4: 0x000a, 0x13d5: 0x000a, 0x13d6: 0x000a, 0x13d7: 0x000a,
- 0x13d8: 0x000a, 0x13d9: 0x000a, 0x13da: 0x000a, 0x13db: 0x000a, 0x13dc: 0x000a, 0x13dd: 0x000a,
- 0x13de: 0x000a, 0x13df: 0x000a, 0x13e0: 0x000a, 0x13e1: 0x000a, 0x13e2: 0x000a, 0x13e3: 0x000a,
- 0x13e4: 0x000a, 0x13e5: 0x000a, 0x13e6: 0x000a, 0x13e7: 0x000a, 0x13e8: 0x0009, 0x13e9: 0x0007,
- 0x13ea: 0x000e, 0x13eb: 0x000e, 0x13ec: 0x000e, 0x13ed: 0x000e, 0x13ee: 0x000e, 0x13ef: 0x0006,
- 0x13f0: 0x0004, 0x13f1: 0x0004, 0x13f2: 0x0004, 0x13f3: 0x0004, 0x13f4: 0x0004, 0x13f5: 0x000a,
- 0x13f6: 0x000a, 0x13f7: 0x000a, 0x13f8: 0x000a, 0x13f9: 0x000a, 0x13fa: 0x000a, 0x13fb: 0x000a,
- 0x13fc: 0x000a, 0x13fd: 0x000a, 0x13fe: 0x000a, 0x13ff: 0x000a,
- // Block 0x50, offset 0x1400
- 0x1400: 0x000a, 0x1401: 0x000a, 0x1402: 0x000a, 0x1403: 0x000a, 0x1404: 0x0006, 0x1405: 0x009a,
- 0x1406: 0x008a, 0x1407: 0x000a, 0x1408: 0x000a, 0x1409: 0x000a, 0x140a: 0x000a, 0x140b: 0x000a,
- 0x140c: 0x000a, 0x140d: 0x000a, 0x140e: 0x000a, 0x140f: 0x000a, 0x1410: 0x000a, 0x1411: 0x000a,
- 0x1412: 0x000a, 0x1413: 0x000a, 0x1414: 0x000a, 0x1415: 0x000a, 0x1416: 0x000a, 0x1417: 0x000a,
- 0x1418: 0x000a, 0x1419: 0x000a, 0x141a: 0x000a, 0x141b: 0x000a, 0x141c: 0x000a, 0x141d: 0x000a,
- 0x141e: 0x000a, 0x141f: 0x0009, 0x1420: 0x000b, 0x1421: 0x000b, 0x1422: 0x000b, 0x1423: 0x000b,
- 0x1424: 0x000b, 0x1425: 0x000b, 0x1426: 0x000e, 0x1427: 0x000e, 0x1428: 0x000e, 0x1429: 0x000e,
- 0x142a: 0x000b, 0x142b: 0x000b, 0x142c: 0x000b, 0x142d: 0x000b, 0x142e: 0x000b, 0x142f: 0x000b,
- 0x1430: 0x0002, 0x1434: 0x0002, 0x1435: 0x0002,
- 0x1436: 0x0002, 0x1437: 0x0002, 0x1438: 0x0002, 0x1439: 0x0002, 0x143a: 0x0003, 0x143b: 0x0003,
- 0x143c: 0x000a, 0x143d: 0x009a, 0x143e: 0x008a,
- // Block 0x51, offset 0x1440
- 0x1440: 0x0002, 0x1441: 0x0002, 0x1442: 0x0002, 0x1443: 0x0002, 0x1444: 0x0002, 0x1445: 0x0002,
- 0x1446: 0x0002, 0x1447: 0x0002, 0x1448: 0x0002, 0x1449: 0x0002, 0x144a: 0x0003, 0x144b: 0x0003,
- 0x144c: 0x000a, 0x144d: 0x009a, 0x144e: 0x008a,
- 0x1460: 0x0004, 0x1461: 0x0004, 0x1462: 0x0004, 0x1463: 0x0004,
- 0x1464: 0x0004, 0x1465: 0x0004, 0x1466: 0x0004, 0x1467: 0x0004, 0x1468: 0x0004, 0x1469: 0x0004,
- 0x146a: 0x0004, 0x146b: 0x0004, 0x146c: 0x0004, 0x146d: 0x0004, 0x146e: 0x0004, 0x146f: 0x0004,
- 0x1470: 0x0004, 0x1471: 0x0004, 0x1472: 0x0004, 0x1473: 0x0004, 0x1474: 0x0004, 0x1475: 0x0004,
- 0x1476: 0x0004, 0x1477: 0x0004, 0x1478: 0x0004, 0x1479: 0x0004, 0x147a: 0x0004, 0x147b: 0x0004,
- 0x147c: 0x0004, 0x147d: 0x0004, 0x147e: 0x0004, 0x147f: 0x0004,
- // Block 0x52, offset 0x1480
- 0x1480: 0x0004, 0x1481: 0x0004, 0x1482: 0x0004, 0x1483: 0x0004, 0x1484: 0x0004, 0x1485: 0x0004,
- 0x1486: 0x0004, 0x1487: 0x0004, 0x1488: 0x0004, 0x1489: 0x0004, 0x148a: 0x0004, 0x148b: 0x0004,
- 0x148c: 0x0004, 0x148d: 0x0004, 0x148e: 0x0004, 0x148f: 0x0004, 0x1490: 0x000c, 0x1491: 0x000c,
- 0x1492: 0x000c, 0x1493: 0x000c, 0x1494: 0x000c, 0x1495: 0x000c, 0x1496: 0x000c, 0x1497: 0x000c,
- 0x1498: 0x000c, 0x1499: 0x000c, 0x149a: 0x000c, 0x149b: 0x000c, 0x149c: 0x000c, 0x149d: 0x000c,
- 0x149e: 0x000c, 0x149f: 0x000c, 0x14a0: 0x000c, 0x14a1: 0x000c, 0x14a2: 0x000c, 0x14a3: 0x000c,
- 0x14a4: 0x000c, 0x14a5: 0x000c, 0x14a6: 0x000c, 0x14a7: 0x000c, 0x14a8: 0x000c, 0x14a9: 0x000c,
- 0x14aa: 0x000c, 0x14ab: 0x000c, 0x14ac: 0x000c, 0x14ad: 0x000c, 0x14ae: 0x000c, 0x14af: 0x000c,
- 0x14b0: 0x000c,
- // Block 0x53, offset 0x14c0
- 0x14c0: 0x000a, 0x14c1: 0x000a, 0x14c3: 0x000a, 0x14c4: 0x000a, 0x14c5: 0x000a,
- 0x14c6: 0x000a, 0x14c8: 0x000a, 0x14c9: 0x000a,
- 0x14d4: 0x000a, 0x14d6: 0x000a, 0x14d7: 0x000a,
- 0x14d8: 0x000a,
- 0x14de: 0x000a, 0x14df: 0x000a, 0x14e0: 0x000a, 0x14e1: 0x000a, 0x14e2: 0x000a, 0x14e3: 0x000a,
- 0x14e5: 0x000a, 0x14e7: 0x000a, 0x14e9: 0x000a,
- 0x14ee: 0x0004,
- 0x14fa: 0x000a, 0x14fb: 0x000a,
- // Block 0x54, offset 0x1500
- 0x1500: 0x000a, 0x1501: 0x000a, 0x1502: 0x000a, 0x1503: 0x000a, 0x1504: 0x000a,
- 0x150a: 0x000a, 0x150b: 0x000a,
- 0x150c: 0x000a, 0x150d: 0x000a, 0x1510: 0x000a, 0x1511: 0x000a,
- 0x1512: 0x000a, 0x1513: 0x000a, 0x1514: 0x000a, 0x1515: 0x000a, 0x1516: 0x000a, 0x1517: 0x000a,
- 0x1518: 0x000a, 0x1519: 0x000a, 0x151a: 0x000a, 0x151b: 0x000a, 0x151c: 0x000a, 0x151d: 0x000a,
- 0x151e: 0x000a, 0x151f: 0x000a,
- // Block 0x55, offset 0x1540
- 0x1549: 0x000a, 0x154a: 0x000a, 0x154b: 0x000a,
- 0x1550: 0x000a, 0x1551: 0x000a,
- 0x1552: 0x000a, 0x1553: 0x000a, 0x1554: 0x000a, 0x1555: 0x000a, 0x1556: 0x000a, 0x1557: 0x000a,
- 0x1558: 0x000a, 0x1559: 0x000a, 0x155a: 0x000a, 0x155b: 0x000a, 0x155c: 0x000a, 0x155d: 0x000a,
- 0x155e: 0x000a, 0x155f: 0x000a, 0x1560: 0x000a, 0x1561: 0x000a, 0x1562: 0x000a, 0x1563: 0x000a,
- 0x1564: 0x000a, 0x1565: 0x000a, 0x1566: 0x000a, 0x1567: 0x000a, 0x1568: 0x000a, 0x1569: 0x000a,
- 0x156a: 0x000a, 0x156b: 0x000a, 0x156c: 0x000a, 0x156d: 0x000a, 0x156e: 0x000a, 0x156f: 0x000a,
- 0x1570: 0x000a, 0x1571: 0x000a, 0x1572: 0x000a, 0x1573: 0x000a, 0x1574: 0x000a, 0x1575: 0x000a,
- 0x1576: 0x000a, 0x1577: 0x000a, 0x1578: 0x000a, 0x1579: 0x000a, 0x157a: 0x000a, 0x157b: 0x000a,
- 0x157c: 0x000a, 0x157d: 0x000a, 0x157e: 0x000a, 0x157f: 0x000a,
- // Block 0x56, offset 0x1580
- 0x1580: 0x000a, 0x1581: 0x000a, 0x1582: 0x000a, 0x1583: 0x000a, 0x1584: 0x000a, 0x1585: 0x000a,
- 0x1586: 0x000a, 0x1587: 0x000a, 0x1588: 0x000a, 0x1589: 0x000a, 0x158a: 0x000a, 0x158b: 0x000a,
- 0x158c: 0x000a, 0x158d: 0x000a, 0x158e: 0x000a, 0x158f: 0x000a, 0x1590: 0x000a, 0x1591: 0x000a,
- 0x1592: 0x000a, 0x1593: 0x000a, 0x1594: 0x000a, 0x1595: 0x000a, 0x1596: 0x000a, 0x1597: 0x000a,
- 0x1598: 0x000a, 0x1599: 0x000a, 0x159a: 0x000a, 0x159b: 0x000a, 0x159c: 0x000a, 0x159d: 0x000a,
- 0x159e: 0x000a, 0x159f: 0x000a, 0x15a0: 0x000a, 0x15a1: 0x000a, 0x15a2: 0x000a, 0x15a3: 0x000a,
- 0x15a4: 0x000a, 0x15a5: 0x000a, 0x15a6: 0x000a, 0x15a7: 0x000a, 0x15a8: 0x000a, 0x15a9: 0x000a,
- 0x15aa: 0x000a, 0x15ab: 0x000a, 0x15ac: 0x000a, 0x15ad: 0x000a, 0x15ae: 0x000a, 0x15af: 0x000a,
- 0x15b0: 0x000a, 0x15b1: 0x000a, 0x15b2: 0x000a, 0x15b3: 0x000a, 0x15b4: 0x000a, 0x15b5: 0x000a,
- 0x15b6: 0x000a, 0x15b7: 0x000a, 0x15b8: 0x000a, 0x15b9: 0x000a, 0x15ba: 0x000a, 0x15bb: 0x000a,
- 0x15bc: 0x000a, 0x15bd: 0x000a, 0x15be: 0x000a, 0x15bf: 0x000a,
- // Block 0x57, offset 0x15c0
- 0x15c0: 0x000a, 0x15c1: 0x000a, 0x15c2: 0x000a, 0x15c3: 0x000a, 0x15c4: 0x000a, 0x15c5: 0x000a,
- 0x15c6: 0x000a, 0x15c7: 0x000a, 0x15c8: 0x000a, 0x15c9: 0x000a, 0x15ca: 0x000a, 0x15cb: 0x000a,
- 0x15cc: 0x000a, 0x15cd: 0x000a, 0x15ce: 0x000a, 0x15cf: 0x000a, 0x15d0: 0x000a, 0x15d1: 0x000a,
- 0x15d2: 0x0003, 0x15d3: 0x0004, 0x15d4: 0x000a, 0x15d5: 0x000a, 0x15d6: 0x000a, 0x15d7: 0x000a,
- 0x15d8: 0x000a, 0x15d9: 0x000a, 0x15da: 0x000a, 0x15db: 0x000a, 0x15dc: 0x000a, 0x15dd: 0x000a,
- 0x15de: 0x000a, 0x15df: 0x000a, 0x15e0: 0x000a, 0x15e1: 0x000a, 0x15e2: 0x000a, 0x15e3: 0x000a,
- 0x15e4: 0x000a, 0x15e5: 0x000a, 0x15e6: 0x000a, 0x15e7: 0x000a, 0x15e8: 0x000a, 0x15e9: 0x000a,
- 0x15ea: 0x000a, 0x15eb: 0x000a, 0x15ec: 0x000a, 0x15ed: 0x000a, 0x15ee: 0x000a, 0x15ef: 0x000a,
- 0x15f0: 0x000a, 0x15f1: 0x000a, 0x15f2: 0x000a, 0x15f3: 0x000a, 0x15f4: 0x000a, 0x15f5: 0x000a,
- 0x15f6: 0x000a, 0x15f7: 0x000a, 0x15f8: 0x000a, 0x15f9: 0x000a, 0x15fa: 0x000a, 0x15fb: 0x000a,
- 0x15fc: 0x000a, 0x15fd: 0x000a, 0x15fe: 0x000a, 0x15ff: 0x000a,
- // Block 0x58, offset 0x1600
- 0x1600: 0x000a, 0x1601: 0x000a, 0x1602: 0x000a, 0x1603: 0x000a, 0x1604: 0x000a, 0x1605: 0x000a,
- 0x1606: 0x000a, 0x1607: 0x000a, 0x1608: 0x003a, 0x1609: 0x002a, 0x160a: 0x003a, 0x160b: 0x002a,
- 0x160c: 0x000a, 0x160d: 0x000a, 0x160e: 0x000a, 0x160f: 0x000a, 0x1610: 0x000a, 0x1611: 0x000a,
- 0x1612: 0x000a, 0x1613: 0x000a, 0x1614: 0x000a, 0x1615: 0x000a, 0x1616: 0x000a, 0x1617: 0x000a,
- 0x1618: 0x000a, 0x1619: 0x000a, 0x161a: 0x000a, 0x161b: 0x000a, 0x161c: 0x000a, 0x161d: 0x000a,
- 0x161e: 0x000a, 0x161f: 0x000a, 0x1620: 0x000a, 0x1621: 0x000a, 0x1622: 0x000a, 0x1623: 0x000a,
- 0x1624: 0x000a, 0x1625: 0x000a, 0x1626: 0x000a, 0x1627: 0x000a, 0x1628: 0x000a, 0x1629: 0x009a,
- 0x162a: 0x008a, 0x162b: 0x000a, 0x162c: 0x000a, 0x162d: 0x000a, 0x162e: 0x000a, 0x162f: 0x000a,
- 0x1630: 0x000a, 0x1631: 0x000a, 0x1632: 0x000a, 0x1633: 0x000a, 0x1634: 0x000a, 0x1635: 0x000a,
- // Block 0x59, offset 0x1640
- 0x167b: 0x000a,
- 0x167c: 0x000a, 0x167d: 0x000a, 0x167e: 0x000a, 0x167f: 0x000a,
- // Block 0x5a, offset 0x1680
- 0x1680: 0x000a, 0x1681: 0x000a, 0x1682: 0x000a, 0x1683: 0x000a, 0x1684: 0x000a, 0x1685: 0x000a,
- 0x1686: 0x000a, 0x1687: 0x000a, 0x1688: 0x000a, 0x1689: 0x000a, 0x168a: 0x000a, 0x168b: 0x000a,
- 0x168c: 0x000a, 0x168d: 0x000a, 0x168e: 0x000a, 0x168f: 0x000a, 0x1690: 0x000a, 0x1691: 0x000a,
- 0x1692: 0x000a, 0x1693: 0x000a, 0x1694: 0x000a, 0x1696: 0x000a, 0x1697: 0x000a,
- 0x1698: 0x000a, 0x1699: 0x000a, 0x169a: 0x000a, 0x169b: 0x000a, 0x169c: 0x000a, 0x169d: 0x000a,
- 0x169e: 0x000a, 0x169f: 0x000a, 0x16a0: 0x000a, 0x16a1: 0x000a, 0x16a2: 0x000a, 0x16a3: 0x000a,
- 0x16a4: 0x000a, 0x16a5: 0x000a, 0x16a6: 0x000a, 0x16a7: 0x000a, 0x16a8: 0x000a, 0x16a9: 0x000a,
- 0x16aa: 0x000a, 0x16ab: 0x000a, 0x16ac: 0x000a, 0x16ad: 0x000a, 0x16ae: 0x000a, 0x16af: 0x000a,
- 0x16b0: 0x000a, 0x16b1: 0x000a, 0x16b2: 0x000a, 0x16b3: 0x000a, 0x16b4: 0x000a, 0x16b5: 0x000a,
- 0x16b6: 0x000a, 0x16b7: 0x000a, 0x16b8: 0x000a, 0x16b9: 0x000a, 0x16ba: 0x000a, 0x16bb: 0x000a,
- 0x16bc: 0x000a, 0x16bd: 0x000a, 0x16be: 0x000a, 0x16bf: 0x000a,
- // Block 0x5b, offset 0x16c0
- 0x16c0: 0x000a, 0x16c1: 0x000a, 0x16c2: 0x000a, 0x16c3: 0x000a, 0x16c4: 0x000a, 0x16c5: 0x000a,
- 0x16c6: 0x000a, 0x16c7: 0x000a, 0x16c8: 0x000a, 0x16c9: 0x000a, 0x16ca: 0x000a, 0x16cb: 0x000a,
- 0x16cc: 0x000a, 0x16cd: 0x000a, 0x16ce: 0x000a, 0x16cf: 0x000a, 0x16d0: 0x000a, 0x16d1: 0x000a,
- 0x16d2: 0x000a, 0x16d3: 0x000a, 0x16d4: 0x000a, 0x16d5: 0x000a, 0x16d6: 0x000a, 0x16d7: 0x000a,
- 0x16d8: 0x000a, 0x16d9: 0x000a, 0x16da: 0x000a, 0x16db: 0x000a, 0x16dc: 0x000a, 0x16dd: 0x000a,
- 0x16de: 0x000a, 0x16df: 0x000a, 0x16e0: 0x000a, 0x16e1: 0x000a, 0x16e2: 0x000a, 0x16e3: 0x000a,
- 0x16e4: 0x000a, 0x16e5: 0x000a, 0x16e6: 0x000a, 0x16e7: 0x000a, 0x16e8: 0x000a, 0x16e9: 0x000a,
- 0x16ea: 0x000a, 0x16eb: 0x000a, 0x16ec: 0x000a, 0x16ed: 0x000a, 0x16ee: 0x000a, 0x16ef: 0x000a,
- 0x16f0: 0x000a, 0x16f1: 0x000a, 0x16f2: 0x000a, 0x16f3: 0x000a, 0x16f4: 0x000a, 0x16f5: 0x000a,
- 0x16f6: 0x000a, 0x16f7: 0x000a, 0x16f8: 0x000a, 0x16f9: 0x000a, 0x16fa: 0x000a, 0x16fb: 0x000a,
- 0x16fc: 0x000a, 0x16fd: 0x000a, 0x16fe: 0x000a,
- // Block 0x5c, offset 0x1700
- 0x1700: 0x000a, 0x1701: 0x000a, 0x1702: 0x000a, 0x1703: 0x000a, 0x1704: 0x000a, 0x1705: 0x000a,
- 0x1706: 0x000a, 0x1707: 0x000a, 0x1708: 0x000a, 0x1709: 0x000a, 0x170a: 0x000a, 0x170b: 0x000a,
- 0x170c: 0x000a, 0x170d: 0x000a, 0x170e: 0x000a, 0x170f: 0x000a, 0x1710: 0x000a, 0x1711: 0x000a,
- 0x1712: 0x000a, 0x1713: 0x000a, 0x1714: 0x000a, 0x1715: 0x000a, 0x1716: 0x000a, 0x1717: 0x000a,
- 0x1718: 0x000a, 0x1719: 0x000a, 0x171a: 0x000a, 0x171b: 0x000a, 0x171c: 0x000a, 0x171d: 0x000a,
- 0x171e: 0x000a, 0x171f: 0x000a, 0x1720: 0x000a, 0x1721: 0x000a, 0x1722: 0x000a, 0x1723: 0x000a,
- 0x1724: 0x000a, 0x1725: 0x000a, 0x1726: 0x000a,
- // Block 0x5d, offset 0x1740
- 0x1740: 0x000a, 0x1741: 0x000a, 0x1742: 0x000a, 0x1743: 0x000a, 0x1744: 0x000a, 0x1745: 0x000a,
- 0x1746: 0x000a, 0x1747: 0x000a, 0x1748: 0x000a, 0x1749: 0x000a, 0x174a: 0x000a,
- 0x1760: 0x000a, 0x1761: 0x000a, 0x1762: 0x000a, 0x1763: 0x000a,
- 0x1764: 0x000a, 0x1765: 0x000a, 0x1766: 0x000a, 0x1767: 0x000a, 0x1768: 0x000a, 0x1769: 0x000a,
- 0x176a: 0x000a, 0x176b: 0x000a, 0x176c: 0x000a, 0x176d: 0x000a, 0x176e: 0x000a, 0x176f: 0x000a,
- 0x1770: 0x000a, 0x1771: 0x000a, 0x1772: 0x000a, 0x1773: 0x000a, 0x1774: 0x000a, 0x1775: 0x000a,
- 0x1776: 0x000a, 0x1777: 0x000a, 0x1778: 0x000a, 0x1779: 0x000a, 0x177a: 0x000a, 0x177b: 0x000a,
- 0x177c: 0x000a, 0x177d: 0x000a, 0x177e: 0x000a, 0x177f: 0x000a,
- // Block 0x5e, offset 0x1780
- 0x1780: 0x000a, 0x1781: 0x000a, 0x1782: 0x000a, 0x1783: 0x000a, 0x1784: 0x000a, 0x1785: 0x000a,
- 0x1786: 0x000a, 0x1787: 0x000a, 0x1788: 0x0002, 0x1789: 0x0002, 0x178a: 0x0002, 0x178b: 0x0002,
- 0x178c: 0x0002, 0x178d: 0x0002, 0x178e: 0x0002, 0x178f: 0x0002, 0x1790: 0x0002, 0x1791: 0x0002,
- 0x1792: 0x0002, 0x1793: 0x0002, 0x1794: 0x0002, 0x1795: 0x0002, 0x1796: 0x0002, 0x1797: 0x0002,
- 0x1798: 0x0002, 0x1799: 0x0002, 0x179a: 0x0002, 0x179b: 0x0002,
- // Block 0x5f, offset 0x17c0
- 0x17ea: 0x000a, 0x17eb: 0x000a, 0x17ec: 0x000a, 0x17ed: 0x000a, 0x17ee: 0x000a, 0x17ef: 0x000a,
- 0x17f0: 0x000a, 0x17f1: 0x000a, 0x17f2: 0x000a, 0x17f3: 0x000a, 0x17f4: 0x000a, 0x17f5: 0x000a,
- 0x17f6: 0x000a, 0x17f7: 0x000a, 0x17f8: 0x000a, 0x17f9: 0x000a, 0x17fa: 0x000a, 0x17fb: 0x000a,
- 0x17fc: 0x000a, 0x17fd: 0x000a, 0x17fe: 0x000a, 0x17ff: 0x000a,
- // Block 0x60, offset 0x1800
- 0x1800: 0x000a, 0x1801: 0x000a, 0x1802: 0x000a, 0x1803: 0x000a, 0x1804: 0x000a, 0x1805: 0x000a,
- 0x1806: 0x000a, 0x1807: 0x000a, 0x1808: 0x000a, 0x1809: 0x000a, 0x180a: 0x000a, 0x180b: 0x000a,
- 0x180c: 0x000a, 0x180d: 0x000a, 0x180e: 0x000a, 0x180f: 0x000a, 0x1810: 0x000a, 0x1811: 0x000a,
- 0x1812: 0x000a, 0x1813: 0x000a, 0x1814: 0x000a, 0x1815: 0x000a, 0x1816: 0x000a, 0x1817: 0x000a,
- 0x1818: 0x000a, 0x1819: 0x000a, 0x181a: 0x000a, 0x181b: 0x000a, 0x181c: 0x000a, 0x181d: 0x000a,
- 0x181e: 0x000a, 0x181f: 0x000a, 0x1820: 0x000a, 0x1821: 0x000a, 0x1822: 0x000a, 0x1823: 0x000a,
- 0x1824: 0x000a, 0x1825: 0x000a, 0x1826: 0x000a, 0x1827: 0x000a, 0x1828: 0x000a, 0x1829: 0x000a,
- 0x182a: 0x000a, 0x182b: 0x000a, 0x182d: 0x000a, 0x182e: 0x000a, 0x182f: 0x000a,
- 0x1830: 0x000a, 0x1831: 0x000a, 0x1832: 0x000a, 0x1833: 0x000a, 0x1834: 0x000a, 0x1835: 0x000a,
- 0x1836: 0x000a, 0x1837: 0x000a, 0x1838: 0x000a, 0x1839: 0x000a, 0x183a: 0x000a, 0x183b: 0x000a,
- 0x183c: 0x000a, 0x183d: 0x000a, 0x183e: 0x000a, 0x183f: 0x000a,
- // Block 0x61, offset 0x1840
- 0x1840: 0x000a, 0x1841: 0x000a, 0x1842: 0x000a, 0x1843: 0x000a, 0x1844: 0x000a, 0x1845: 0x000a,
- 0x1846: 0x000a, 0x1847: 0x000a, 0x1848: 0x000a, 0x1849: 0x000a, 0x184a: 0x000a, 0x184b: 0x000a,
- 0x184c: 0x000a, 0x184d: 0x000a, 0x184e: 0x000a, 0x184f: 0x000a, 0x1850: 0x000a, 0x1851: 0x000a,
- 0x1852: 0x000a, 0x1853: 0x000a, 0x1854: 0x000a, 0x1855: 0x000a, 0x1856: 0x000a, 0x1857: 0x000a,
- 0x1858: 0x000a, 0x1859: 0x000a, 0x185a: 0x000a, 0x185b: 0x000a, 0x185c: 0x000a, 0x185d: 0x000a,
- 0x185e: 0x000a, 0x185f: 0x000a, 0x1860: 0x000a, 0x1861: 0x000a, 0x1862: 0x000a, 0x1863: 0x000a,
- 0x1864: 0x000a, 0x1865: 0x000a, 0x1866: 0x000a, 0x1867: 0x000a, 0x1868: 0x003a, 0x1869: 0x002a,
- 0x186a: 0x003a, 0x186b: 0x002a, 0x186c: 0x003a, 0x186d: 0x002a, 0x186e: 0x003a, 0x186f: 0x002a,
- 0x1870: 0x003a, 0x1871: 0x002a, 0x1872: 0x003a, 0x1873: 0x002a, 0x1874: 0x003a, 0x1875: 0x002a,
- 0x1876: 0x000a, 0x1877: 0x000a, 0x1878: 0x000a, 0x1879: 0x000a, 0x187a: 0x000a, 0x187b: 0x000a,
- 0x187c: 0x000a, 0x187d: 0x000a, 0x187e: 0x000a, 0x187f: 0x000a,
- // Block 0x62, offset 0x1880
- 0x1880: 0x000a, 0x1881: 0x000a, 0x1882: 0x000a, 0x1883: 0x000a, 0x1884: 0x000a, 0x1885: 0x009a,
- 0x1886: 0x008a, 0x1887: 0x000a, 0x1888: 0x000a, 0x1889: 0x000a, 0x188a: 0x000a, 0x188b: 0x000a,
- 0x188c: 0x000a, 0x188d: 0x000a, 0x188e: 0x000a, 0x188f: 0x000a, 0x1890: 0x000a, 0x1891: 0x000a,
- 0x1892: 0x000a, 0x1893: 0x000a, 0x1894: 0x000a, 0x1895: 0x000a, 0x1896: 0x000a, 0x1897: 0x000a,
- 0x1898: 0x000a, 0x1899: 0x000a, 0x189a: 0x000a, 0x189b: 0x000a, 0x189c: 0x000a, 0x189d: 0x000a,
- 0x189e: 0x000a, 0x189f: 0x000a, 0x18a0: 0x000a, 0x18a1: 0x000a, 0x18a2: 0x000a, 0x18a3: 0x000a,
- 0x18a4: 0x000a, 0x18a5: 0x000a, 0x18a6: 0x003a, 0x18a7: 0x002a, 0x18a8: 0x003a, 0x18a9: 0x002a,
- 0x18aa: 0x003a, 0x18ab: 0x002a, 0x18ac: 0x003a, 0x18ad: 0x002a, 0x18ae: 0x003a, 0x18af: 0x002a,
- 0x18b0: 0x000a, 0x18b1: 0x000a, 0x18b2: 0x000a, 0x18b3: 0x000a, 0x18b4: 0x000a, 0x18b5: 0x000a,
- 0x18b6: 0x000a, 0x18b7: 0x000a, 0x18b8: 0x000a, 0x18b9: 0x000a, 0x18ba: 0x000a, 0x18bb: 0x000a,
- 0x18bc: 0x000a, 0x18bd: 0x000a, 0x18be: 0x000a, 0x18bf: 0x000a,
- // Block 0x63, offset 0x18c0
- 0x18c0: 0x000a, 0x18c1: 0x000a, 0x18c2: 0x000a, 0x18c3: 0x007a, 0x18c4: 0x006a, 0x18c5: 0x009a,
- 0x18c6: 0x008a, 0x18c7: 0x00ba, 0x18c8: 0x00aa, 0x18c9: 0x009a, 0x18ca: 0x008a, 0x18cb: 0x007a,
- 0x18cc: 0x006a, 0x18cd: 0x00da, 0x18ce: 0x002a, 0x18cf: 0x003a, 0x18d0: 0x00ca, 0x18d1: 0x009a,
- 0x18d2: 0x008a, 0x18d3: 0x007a, 0x18d4: 0x006a, 0x18d5: 0x009a, 0x18d6: 0x008a, 0x18d7: 0x00ba,
- 0x18d8: 0x00aa, 0x18d9: 0x000a, 0x18da: 0x000a, 0x18db: 0x000a, 0x18dc: 0x000a, 0x18dd: 0x000a,
- 0x18de: 0x000a, 0x18df: 0x000a, 0x18e0: 0x000a, 0x18e1: 0x000a, 0x18e2: 0x000a, 0x18e3: 0x000a,
- 0x18e4: 0x000a, 0x18e5: 0x000a, 0x18e6: 0x000a, 0x18e7: 0x000a, 0x18e8: 0x000a, 0x18e9: 0x000a,
- 0x18ea: 0x000a, 0x18eb: 0x000a, 0x18ec: 0x000a, 0x18ed: 0x000a, 0x18ee: 0x000a, 0x18ef: 0x000a,
- 0x18f0: 0x000a, 0x18f1: 0x000a, 0x18f2: 0x000a, 0x18f3: 0x000a, 0x18f4: 0x000a, 0x18f5: 0x000a,
- 0x18f6: 0x000a, 0x18f7: 0x000a, 0x18f8: 0x000a, 0x18f9: 0x000a, 0x18fa: 0x000a, 0x18fb: 0x000a,
- 0x18fc: 0x000a, 0x18fd: 0x000a, 0x18fe: 0x000a, 0x18ff: 0x000a,
- // Block 0x64, offset 0x1900
- 0x1900: 0x000a, 0x1901: 0x000a, 0x1902: 0x000a, 0x1903: 0x000a, 0x1904: 0x000a, 0x1905: 0x000a,
- 0x1906: 0x000a, 0x1907: 0x000a, 0x1908: 0x000a, 0x1909: 0x000a, 0x190a: 0x000a, 0x190b: 0x000a,
- 0x190c: 0x000a, 0x190d: 0x000a, 0x190e: 0x000a, 0x190f: 0x000a, 0x1910: 0x000a, 0x1911: 0x000a,
- 0x1912: 0x000a, 0x1913: 0x000a, 0x1914: 0x000a, 0x1915: 0x000a, 0x1916: 0x000a, 0x1917: 0x000a,
- 0x1918: 0x003a, 0x1919: 0x002a, 0x191a: 0x003a, 0x191b: 0x002a, 0x191c: 0x000a, 0x191d: 0x000a,
- 0x191e: 0x000a, 0x191f: 0x000a, 0x1920: 0x000a, 0x1921: 0x000a, 0x1922: 0x000a, 0x1923: 0x000a,
- 0x1924: 0x000a, 0x1925: 0x000a, 0x1926: 0x000a, 0x1927: 0x000a, 0x1928: 0x000a, 0x1929: 0x000a,
- 0x192a: 0x000a, 0x192b: 0x000a, 0x192c: 0x000a, 0x192d: 0x000a, 0x192e: 0x000a, 0x192f: 0x000a,
- 0x1930: 0x000a, 0x1931: 0x000a, 0x1932: 0x000a, 0x1933: 0x000a, 0x1934: 0x000a, 0x1935: 0x000a,
- 0x1936: 0x000a, 0x1937: 0x000a, 0x1938: 0x000a, 0x1939: 0x000a, 0x193a: 0x000a, 0x193b: 0x000a,
- 0x193c: 0x003a, 0x193d: 0x002a, 0x193e: 0x000a, 0x193f: 0x000a,
- // Block 0x65, offset 0x1940
- 0x1940: 0x000a, 0x1941: 0x000a, 0x1942: 0x000a, 0x1943: 0x000a, 0x1944: 0x000a, 0x1945: 0x000a,
- 0x1946: 0x000a, 0x1947: 0x000a, 0x1948: 0x000a, 0x1949: 0x000a, 0x194a: 0x000a, 0x194b: 0x000a,
- 0x194c: 0x000a, 0x194d: 0x000a, 0x194e: 0x000a, 0x194f: 0x000a, 0x1950: 0x000a, 0x1951: 0x000a,
- 0x1952: 0x000a, 0x1953: 0x000a, 0x1954: 0x000a, 0x1955: 0x000a, 0x1956: 0x000a, 0x1957: 0x000a,
- 0x1958: 0x000a, 0x1959: 0x000a, 0x195a: 0x000a, 0x195b: 0x000a, 0x195c: 0x000a, 0x195d: 0x000a,
- 0x195e: 0x000a, 0x195f: 0x000a, 0x1960: 0x000a, 0x1961: 0x000a, 0x1962: 0x000a, 0x1963: 0x000a,
- 0x1964: 0x000a, 0x1965: 0x000a, 0x1966: 0x000a, 0x1967: 0x000a, 0x1968: 0x000a, 0x1969: 0x000a,
- 0x196a: 0x000a, 0x196b: 0x000a, 0x196c: 0x000a, 0x196d: 0x000a, 0x196e: 0x000a, 0x196f: 0x000a,
- 0x1970: 0x000a, 0x1971: 0x000a, 0x1972: 0x000a, 0x1973: 0x000a,
- 0x1976: 0x000a, 0x1977: 0x000a, 0x1978: 0x000a, 0x1979: 0x000a, 0x197a: 0x000a, 0x197b: 0x000a,
- 0x197c: 0x000a, 0x197d: 0x000a, 0x197e: 0x000a, 0x197f: 0x000a,
- // Block 0x66, offset 0x1980
- 0x1980: 0x000a, 0x1981: 0x000a, 0x1982: 0x000a, 0x1983: 0x000a, 0x1984: 0x000a, 0x1985: 0x000a,
- 0x1986: 0x000a, 0x1987: 0x000a, 0x1988: 0x000a, 0x1989: 0x000a, 0x198a: 0x000a, 0x198b: 0x000a,
- 0x198c: 0x000a, 0x198d: 0x000a, 0x198e: 0x000a, 0x198f: 0x000a, 0x1990: 0x000a, 0x1991: 0x000a,
- 0x1992: 0x000a, 0x1993: 0x000a, 0x1994: 0x000a, 0x1995: 0x000a,
- 0x1998: 0x000a, 0x1999: 0x000a, 0x199a: 0x000a, 0x199b: 0x000a, 0x199c: 0x000a, 0x199d: 0x000a,
- 0x199e: 0x000a, 0x199f: 0x000a, 0x19a0: 0x000a, 0x19a1: 0x000a, 0x19a2: 0x000a, 0x19a3: 0x000a,
- 0x19a4: 0x000a, 0x19a5: 0x000a, 0x19a6: 0x000a, 0x19a7: 0x000a, 0x19a8: 0x000a, 0x19a9: 0x000a,
- 0x19aa: 0x000a, 0x19ab: 0x000a, 0x19ac: 0x000a, 0x19ad: 0x000a, 0x19ae: 0x000a, 0x19af: 0x000a,
- 0x19b0: 0x000a, 0x19b1: 0x000a, 0x19b2: 0x000a, 0x19b3: 0x000a, 0x19b4: 0x000a, 0x19b5: 0x000a,
- 0x19b6: 0x000a, 0x19b7: 0x000a, 0x19b8: 0x000a, 0x19b9: 0x000a,
- 0x19bd: 0x000a, 0x19be: 0x000a, 0x19bf: 0x000a,
- // Block 0x67, offset 0x19c0
- 0x19c0: 0x000a, 0x19c1: 0x000a, 0x19c2: 0x000a, 0x19c3: 0x000a, 0x19c4: 0x000a, 0x19c5: 0x000a,
- 0x19c6: 0x000a, 0x19c7: 0x000a, 0x19c8: 0x000a, 0x19ca: 0x000a, 0x19cb: 0x000a,
- 0x19cc: 0x000a, 0x19cd: 0x000a, 0x19ce: 0x000a, 0x19cf: 0x000a, 0x19d0: 0x000a, 0x19d1: 0x000a,
- 0x19ec: 0x000a, 0x19ed: 0x000a, 0x19ee: 0x000a, 0x19ef: 0x000a,
- // Block 0x68, offset 0x1a00
- 0x1a25: 0x000a, 0x1a26: 0x000a, 0x1a27: 0x000a, 0x1a28: 0x000a, 0x1a29: 0x000a,
- 0x1a2a: 0x000a, 0x1a2f: 0x000c,
- 0x1a30: 0x000c, 0x1a31: 0x000c,
- 0x1a39: 0x000a, 0x1a3a: 0x000a, 0x1a3b: 0x000a,
- 0x1a3c: 0x000a, 0x1a3d: 0x000a, 0x1a3e: 0x000a, 0x1a3f: 0x000a,
- // Block 0x69, offset 0x1a40
- 0x1a7f: 0x000c,
- // Block 0x6a, offset 0x1a80
- 0x1aa0: 0x000c, 0x1aa1: 0x000c, 0x1aa2: 0x000c, 0x1aa3: 0x000c,
- 0x1aa4: 0x000c, 0x1aa5: 0x000c, 0x1aa6: 0x000c, 0x1aa7: 0x000c, 0x1aa8: 0x000c, 0x1aa9: 0x000c,
- 0x1aaa: 0x000c, 0x1aab: 0x000c, 0x1aac: 0x000c, 0x1aad: 0x000c, 0x1aae: 0x000c, 0x1aaf: 0x000c,
- 0x1ab0: 0x000c, 0x1ab1: 0x000c, 0x1ab2: 0x000c, 0x1ab3: 0x000c, 0x1ab4: 0x000c, 0x1ab5: 0x000c,
- 0x1ab6: 0x000c, 0x1ab7: 0x000c, 0x1ab8: 0x000c, 0x1ab9: 0x000c, 0x1aba: 0x000c, 0x1abb: 0x000c,
- 0x1abc: 0x000c, 0x1abd: 0x000c, 0x1abe: 0x000c, 0x1abf: 0x000c,
- // Block 0x6b, offset 0x1ac0
- 0x1ac0: 0x000a, 0x1ac1: 0x000a, 0x1ac2: 0x000a, 0x1ac3: 0x000a, 0x1ac4: 0x000a, 0x1ac5: 0x000a,
- 0x1ac6: 0x000a, 0x1ac7: 0x000a, 0x1ac8: 0x000a, 0x1ac9: 0x000a, 0x1aca: 0x000a, 0x1acb: 0x000a,
- 0x1acc: 0x000a, 0x1acd: 0x000a, 0x1ace: 0x000a, 0x1acf: 0x000a, 0x1ad0: 0x000a, 0x1ad1: 0x000a,
- 0x1ad2: 0x000a, 0x1ad3: 0x000a, 0x1ad4: 0x000a, 0x1ad5: 0x000a, 0x1ad6: 0x000a, 0x1ad7: 0x000a,
- 0x1ad8: 0x000a, 0x1ad9: 0x000a, 0x1ada: 0x000a, 0x1adb: 0x000a, 0x1adc: 0x000a, 0x1add: 0x000a,
- 0x1ade: 0x000a, 0x1adf: 0x000a, 0x1ae0: 0x000a, 0x1ae1: 0x000a, 0x1ae2: 0x003a, 0x1ae3: 0x002a,
- 0x1ae4: 0x003a, 0x1ae5: 0x002a, 0x1ae6: 0x003a, 0x1ae7: 0x002a, 0x1ae8: 0x003a, 0x1ae9: 0x002a,
- 0x1aea: 0x000a, 0x1aeb: 0x000a, 0x1aec: 0x000a, 0x1aed: 0x000a, 0x1aee: 0x000a, 0x1aef: 0x000a,
- 0x1af0: 0x000a, 0x1af1: 0x000a, 0x1af2: 0x000a, 0x1af3: 0x000a, 0x1af4: 0x000a, 0x1af5: 0x000a,
- 0x1af6: 0x000a, 0x1af7: 0x000a, 0x1af8: 0x000a, 0x1af9: 0x000a, 0x1afa: 0x000a, 0x1afb: 0x000a,
- 0x1afc: 0x000a, 0x1afd: 0x000a, 0x1afe: 0x000a, 0x1aff: 0x000a,
- // Block 0x6c, offset 0x1b00
- 0x1b00: 0x000a, 0x1b01: 0x000a, 0x1b02: 0x000a, 0x1b03: 0x000a, 0x1b04: 0x000a,
- // Block 0x6d, offset 0x1b40
- 0x1b40: 0x000a, 0x1b41: 0x000a, 0x1b42: 0x000a, 0x1b43: 0x000a, 0x1b44: 0x000a, 0x1b45: 0x000a,
- 0x1b46: 0x000a, 0x1b47: 0x000a, 0x1b48: 0x000a, 0x1b49: 0x000a, 0x1b4a: 0x000a, 0x1b4b: 0x000a,
- 0x1b4c: 0x000a, 0x1b4d: 0x000a, 0x1b4e: 0x000a, 0x1b4f: 0x000a, 0x1b50: 0x000a, 0x1b51: 0x000a,
- 0x1b52: 0x000a, 0x1b53: 0x000a, 0x1b54: 0x000a, 0x1b55: 0x000a, 0x1b56: 0x000a, 0x1b57: 0x000a,
- 0x1b58: 0x000a, 0x1b59: 0x000a, 0x1b5b: 0x000a, 0x1b5c: 0x000a, 0x1b5d: 0x000a,
- 0x1b5e: 0x000a, 0x1b5f: 0x000a, 0x1b60: 0x000a, 0x1b61: 0x000a, 0x1b62: 0x000a, 0x1b63: 0x000a,
- 0x1b64: 0x000a, 0x1b65: 0x000a, 0x1b66: 0x000a, 0x1b67: 0x000a, 0x1b68: 0x000a, 0x1b69: 0x000a,
- 0x1b6a: 0x000a, 0x1b6b: 0x000a, 0x1b6c: 0x000a, 0x1b6d: 0x000a, 0x1b6e: 0x000a, 0x1b6f: 0x000a,
- 0x1b70: 0x000a, 0x1b71: 0x000a, 0x1b72: 0x000a, 0x1b73: 0x000a, 0x1b74: 0x000a, 0x1b75: 0x000a,
- 0x1b76: 0x000a, 0x1b77: 0x000a, 0x1b78: 0x000a, 0x1b79: 0x000a, 0x1b7a: 0x000a, 0x1b7b: 0x000a,
- 0x1b7c: 0x000a, 0x1b7d: 0x000a, 0x1b7e: 0x000a, 0x1b7f: 0x000a,
- // Block 0x6e, offset 0x1b80
- 0x1b80: 0x000a, 0x1b81: 0x000a, 0x1b82: 0x000a, 0x1b83: 0x000a, 0x1b84: 0x000a, 0x1b85: 0x000a,
- 0x1b86: 0x000a, 0x1b87: 0x000a, 0x1b88: 0x000a, 0x1b89: 0x000a, 0x1b8a: 0x000a, 0x1b8b: 0x000a,
- 0x1b8c: 0x000a, 0x1b8d: 0x000a, 0x1b8e: 0x000a, 0x1b8f: 0x000a, 0x1b90: 0x000a, 0x1b91: 0x000a,
- 0x1b92: 0x000a, 0x1b93: 0x000a, 0x1b94: 0x000a, 0x1b95: 0x000a, 0x1b96: 0x000a, 0x1b97: 0x000a,
- 0x1b98: 0x000a, 0x1b99: 0x000a, 0x1b9a: 0x000a, 0x1b9b: 0x000a, 0x1b9c: 0x000a, 0x1b9d: 0x000a,
- 0x1b9e: 0x000a, 0x1b9f: 0x000a, 0x1ba0: 0x000a, 0x1ba1: 0x000a, 0x1ba2: 0x000a, 0x1ba3: 0x000a,
- 0x1ba4: 0x000a, 0x1ba5: 0x000a, 0x1ba6: 0x000a, 0x1ba7: 0x000a, 0x1ba8: 0x000a, 0x1ba9: 0x000a,
- 0x1baa: 0x000a, 0x1bab: 0x000a, 0x1bac: 0x000a, 0x1bad: 0x000a, 0x1bae: 0x000a, 0x1baf: 0x000a,
- 0x1bb0: 0x000a, 0x1bb1: 0x000a, 0x1bb2: 0x000a, 0x1bb3: 0x000a,
- // Block 0x6f, offset 0x1bc0
- 0x1bc0: 0x000a, 0x1bc1: 0x000a, 0x1bc2: 0x000a, 0x1bc3: 0x000a, 0x1bc4: 0x000a, 0x1bc5: 0x000a,
- 0x1bc6: 0x000a, 0x1bc7: 0x000a, 0x1bc8: 0x000a, 0x1bc9: 0x000a, 0x1bca: 0x000a, 0x1bcb: 0x000a,
- 0x1bcc: 0x000a, 0x1bcd: 0x000a, 0x1bce: 0x000a, 0x1bcf: 0x000a, 0x1bd0: 0x000a, 0x1bd1: 0x000a,
- 0x1bd2: 0x000a, 0x1bd3: 0x000a, 0x1bd4: 0x000a, 0x1bd5: 0x000a,
- 0x1bf0: 0x000a, 0x1bf1: 0x000a, 0x1bf2: 0x000a, 0x1bf3: 0x000a, 0x1bf4: 0x000a, 0x1bf5: 0x000a,
- 0x1bf6: 0x000a, 0x1bf7: 0x000a, 0x1bf8: 0x000a, 0x1bf9: 0x000a, 0x1bfa: 0x000a, 0x1bfb: 0x000a,
- // Block 0x70, offset 0x1c00
- 0x1c00: 0x0009, 0x1c01: 0x000a, 0x1c02: 0x000a, 0x1c03: 0x000a, 0x1c04: 0x000a,
- 0x1c08: 0x003a, 0x1c09: 0x002a, 0x1c0a: 0x003a, 0x1c0b: 0x002a,
- 0x1c0c: 0x003a, 0x1c0d: 0x002a, 0x1c0e: 0x003a, 0x1c0f: 0x002a, 0x1c10: 0x003a, 0x1c11: 0x002a,
- 0x1c12: 0x000a, 0x1c13: 0x000a, 0x1c14: 0x003a, 0x1c15: 0x002a, 0x1c16: 0x003a, 0x1c17: 0x002a,
- 0x1c18: 0x003a, 0x1c19: 0x002a, 0x1c1a: 0x003a, 0x1c1b: 0x002a, 0x1c1c: 0x000a, 0x1c1d: 0x000a,
- 0x1c1e: 0x000a, 0x1c1f: 0x000a, 0x1c20: 0x000a,
- 0x1c2a: 0x000c, 0x1c2b: 0x000c, 0x1c2c: 0x000c, 0x1c2d: 0x000c,
- 0x1c30: 0x000a,
- 0x1c36: 0x000a, 0x1c37: 0x000a,
- 0x1c3d: 0x000a, 0x1c3e: 0x000a, 0x1c3f: 0x000a,
- // Block 0x71, offset 0x1c40
- 0x1c59: 0x000c, 0x1c5a: 0x000c, 0x1c5b: 0x000a, 0x1c5c: 0x000a,
- 0x1c60: 0x000a,
- // Block 0x72, offset 0x1c80
- 0x1cbb: 0x000a,
- // Block 0x73, offset 0x1cc0
- 0x1cc0: 0x000a, 0x1cc1: 0x000a, 0x1cc2: 0x000a, 0x1cc3: 0x000a, 0x1cc4: 0x000a, 0x1cc5: 0x000a,
- 0x1cc6: 0x000a, 0x1cc7: 0x000a, 0x1cc8: 0x000a, 0x1cc9: 0x000a, 0x1cca: 0x000a, 0x1ccb: 0x000a,
- 0x1ccc: 0x000a, 0x1ccd: 0x000a, 0x1cce: 0x000a, 0x1ccf: 0x000a, 0x1cd0: 0x000a, 0x1cd1: 0x000a,
- 0x1cd2: 0x000a, 0x1cd3: 0x000a, 0x1cd4: 0x000a, 0x1cd5: 0x000a, 0x1cd6: 0x000a, 0x1cd7: 0x000a,
- 0x1cd8: 0x000a, 0x1cd9: 0x000a, 0x1cda: 0x000a, 0x1cdb: 0x000a, 0x1cdc: 0x000a, 0x1cdd: 0x000a,
- 0x1cde: 0x000a, 0x1cdf: 0x000a, 0x1ce0: 0x000a, 0x1ce1: 0x000a, 0x1ce2: 0x000a, 0x1ce3: 0x000a,
- // Block 0x74, offset 0x1d00
- 0x1d1d: 0x000a,
- 0x1d1e: 0x000a,
- // Block 0x75, offset 0x1d40
- 0x1d50: 0x000a, 0x1d51: 0x000a,
- 0x1d52: 0x000a, 0x1d53: 0x000a, 0x1d54: 0x000a, 0x1d55: 0x000a, 0x1d56: 0x000a, 0x1d57: 0x000a,
- 0x1d58: 0x000a, 0x1d59: 0x000a, 0x1d5a: 0x000a, 0x1d5b: 0x000a, 0x1d5c: 0x000a, 0x1d5d: 0x000a,
- 0x1d5e: 0x000a, 0x1d5f: 0x000a,
- 0x1d7c: 0x000a, 0x1d7d: 0x000a, 0x1d7e: 0x000a,
- // Block 0x76, offset 0x1d80
- 0x1db1: 0x000a, 0x1db2: 0x000a, 0x1db3: 0x000a, 0x1db4: 0x000a, 0x1db5: 0x000a,
- 0x1db6: 0x000a, 0x1db7: 0x000a, 0x1db8: 0x000a, 0x1db9: 0x000a, 0x1dba: 0x000a, 0x1dbb: 0x000a,
- 0x1dbc: 0x000a, 0x1dbd: 0x000a, 0x1dbe: 0x000a, 0x1dbf: 0x000a,
- // Block 0x77, offset 0x1dc0
- 0x1dcc: 0x000a, 0x1dcd: 0x000a, 0x1dce: 0x000a, 0x1dcf: 0x000a,
- // Block 0x78, offset 0x1e00
- 0x1e37: 0x000a, 0x1e38: 0x000a, 0x1e39: 0x000a, 0x1e3a: 0x000a,
- // Block 0x79, offset 0x1e40
- 0x1e5e: 0x000a, 0x1e5f: 0x000a,
- 0x1e7f: 0x000a,
- // Block 0x7a, offset 0x1e80
- 0x1e90: 0x000a, 0x1e91: 0x000a,
- 0x1e92: 0x000a, 0x1e93: 0x000a, 0x1e94: 0x000a, 0x1e95: 0x000a, 0x1e96: 0x000a, 0x1e97: 0x000a,
- 0x1e98: 0x000a, 0x1e99: 0x000a, 0x1e9a: 0x000a, 0x1e9b: 0x000a, 0x1e9c: 0x000a, 0x1e9d: 0x000a,
- 0x1e9e: 0x000a, 0x1e9f: 0x000a, 0x1ea0: 0x000a, 0x1ea1: 0x000a, 0x1ea2: 0x000a, 0x1ea3: 0x000a,
- 0x1ea4: 0x000a, 0x1ea5: 0x000a, 0x1ea6: 0x000a, 0x1ea7: 0x000a, 0x1ea8: 0x000a, 0x1ea9: 0x000a,
- 0x1eaa: 0x000a, 0x1eab: 0x000a, 0x1eac: 0x000a, 0x1ead: 0x000a, 0x1eae: 0x000a, 0x1eaf: 0x000a,
- 0x1eb0: 0x000a, 0x1eb1: 0x000a, 0x1eb2: 0x000a, 0x1eb3: 0x000a, 0x1eb4: 0x000a, 0x1eb5: 0x000a,
- 0x1eb6: 0x000a, 0x1eb7: 0x000a, 0x1eb8: 0x000a, 0x1eb9: 0x000a, 0x1eba: 0x000a, 0x1ebb: 0x000a,
- 0x1ebc: 0x000a, 0x1ebd: 0x000a, 0x1ebe: 0x000a, 0x1ebf: 0x000a,
- // Block 0x7b, offset 0x1ec0
- 0x1ec0: 0x000a, 0x1ec1: 0x000a, 0x1ec2: 0x000a, 0x1ec3: 0x000a, 0x1ec4: 0x000a, 0x1ec5: 0x000a,
- 0x1ec6: 0x000a,
- // Block 0x7c, offset 0x1f00
- 0x1f0d: 0x000a, 0x1f0e: 0x000a, 0x1f0f: 0x000a,
- // Block 0x7d, offset 0x1f40
- 0x1f6f: 0x000c,
- 0x1f70: 0x000c, 0x1f71: 0x000c, 0x1f72: 0x000c, 0x1f73: 0x000a, 0x1f74: 0x000c, 0x1f75: 0x000c,
- 0x1f76: 0x000c, 0x1f77: 0x000c, 0x1f78: 0x000c, 0x1f79: 0x000c, 0x1f7a: 0x000c, 0x1f7b: 0x000c,
- 0x1f7c: 0x000c, 0x1f7d: 0x000c, 0x1f7e: 0x000a, 0x1f7f: 0x000a,
- // Block 0x7e, offset 0x1f80
- 0x1f9e: 0x000c, 0x1f9f: 0x000c,
- // Block 0x7f, offset 0x1fc0
- 0x1ff0: 0x000c, 0x1ff1: 0x000c,
- // Block 0x80, offset 0x2000
- 0x2000: 0x000a, 0x2001: 0x000a, 0x2002: 0x000a, 0x2003: 0x000a, 0x2004: 0x000a, 0x2005: 0x000a,
- 0x2006: 0x000a, 0x2007: 0x000a, 0x2008: 0x000a, 0x2009: 0x000a, 0x200a: 0x000a, 0x200b: 0x000a,
- 0x200c: 0x000a, 0x200d: 0x000a, 0x200e: 0x000a, 0x200f: 0x000a, 0x2010: 0x000a, 0x2011: 0x000a,
- 0x2012: 0x000a, 0x2013: 0x000a, 0x2014: 0x000a, 0x2015: 0x000a, 0x2016: 0x000a, 0x2017: 0x000a,
- 0x2018: 0x000a, 0x2019: 0x000a, 0x201a: 0x000a, 0x201b: 0x000a, 0x201c: 0x000a, 0x201d: 0x000a,
- 0x201e: 0x000a, 0x201f: 0x000a, 0x2020: 0x000a, 0x2021: 0x000a,
- // Block 0x81, offset 0x2040
- 0x2048: 0x000a,
- // Block 0x82, offset 0x2080
- 0x2082: 0x000c,
- 0x2086: 0x000c, 0x208b: 0x000c,
- 0x20a5: 0x000c, 0x20a6: 0x000c, 0x20a8: 0x000a, 0x20a9: 0x000a,
- 0x20aa: 0x000a, 0x20ab: 0x000a,
- 0x20b8: 0x0004, 0x20b9: 0x0004,
- // Block 0x83, offset 0x20c0
- 0x20f4: 0x000a, 0x20f5: 0x000a,
- 0x20f6: 0x000a, 0x20f7: 0x000a,
- // Block 0x84, offset 0x2100
- 0x2104: 0x000c, 0x2105: 0x000c,
- 0x2120: 0x000c, 0x2121: 0x000c, 0x2122: 0x000c, 0x2123: 0x000c,
- 0x2124: 0x000c, 0x2125: 0x000c, 0x2126: 0x000c, 0x2127: 0x000c, 0x2128: 0x000c, 0x2129: 0x000c,
- 0x212a: 0x000c, 0x212b: 0x000c, 0x212c: 0x000c, 0x212d: 0x000c, 0x212e: 0x000c, 0x212f: 0x000c,
- 0x2130: 0x000c, 0x2131: 0x000c,
- // Block 0x85, offset 0x2140
- 0x2166: 0x000c, 0x2167: 0x000c, 0x2168: 0x000c, 0x2169: 0x000c,
- 0x216a: 0x000c, 0x216b: 0x000c, 0x216c: 0x000c, 0x216d: 0x000c,
- // Block 0x86, offset 0x2180
- 0x2187: 0x000c, 0x2188: 0x000c, 0x2189: 0x000c, 0x218a: 0x000c, 0x218b: 0x000c,
- 0x218c: 0x000c, 0x218d: 0x000c, 0x218e: 0x000c, 0x218f: 0x000c, 0x2190: 0x000c, 0x2191: 0x000c,
- // Block 0x87, offset 0x21c0
- 0x21c0: 0x000c, 0x21c1: 0x000c, 0x21c2: 0x000c,
- 0x21f3: 0x000c,
- 0x21f6: 0x000c, 0x21f7: 0x000c, 0x21f8: 0x000c, 0x21f9: 0x000c,
- 0x21fc: 0x000c,
- // Block 0x88, offset 0x2200
- 0x2225: 0x000c,
- // Block 0x89, offset 0x2240
- 0x2269: 0x000c,
- 0x226a: 0x000c, 0x226b: 0x000c, 0x226c: 0x000c, 0x226d: 0x000c, 0x226e: 0x000c,
- 0x2271: 0x000c, 0x2272: 0x000c, 0x2275: 0x000c,
- 0x2276: 0x000c,
- // Block 0x8a, offset 0x2280
- 0x2283: 0x000c,
- 0x228c: 0x000c,
- 0x22bc: 0x000c,
- // Block 0x8b, offset 0x22c0
- 0x22f0: 0x000c, 0x22f2: 0x000c, 0x22f3: 0x000c, 0x22f4: 0x000c,
- 0x22f7: 0x000c, 0x22f8: 0x000c,
- 0x22fe: 0x000c, 0x22ff: 0x000c,
- // Block 0x8c, offset 0x2300
- 0x2301: 0x000c,
- 0x232c: 0x000c, 0x232d: 0x000c,
- 0x2336: 0x000c,
- // Block 0x8d, offset 0x2340
- 0x2365: 0x000c, 0x2368: 0x000c,
- 0x236d: 0x000c,
- // Block 0x8e, offset 0x2380
- 0x239d: 0x0001,
- 0x239e: 0x000c, 0x239f: 0x0001, 0x23a0: 0x0001, 0x23a1: 0x0001, 0x23a2: 0x0001, 0x23a3: 0x0001,
- 0x23a4: 0x0001, 0x23a5: 0x0001, 0x23a6: 0x0001, 0x23a7: 0x0001, 0x23a8: 0x0001, 0x23a9: 0x0003,
- 0x23aa: 0x0001, 0x23ab: 0x0001, 0x23ac: 0x0001, 0x23ad: 0x0001, 0x23ae: 0x0001, 0x23af: 0x0001,
- 0x23b0: 0x0001, 0x23b1: 0x0001, 0x23b2: 0x0001, 0x23b3: 0x0001, 0x23b4: 0x0001, 0x23b5: 0x0001,
- 0x23b6: 0x0001, 0x23b7: 0x0001, 0x23b8: 0x0001, 0x23b9: 0x0001, 0x23ba: 0x0001, 0x23bb: 0x0001,
- 0x23bc: 0x0001, 0x23bd: 0x0001, 0x23be: 0x0001, 0x23bf: 0x0001,
- // Block 0x8f, offset 0x23c0
- 0x23c0: 0x0001, 0x23c1: 0x0001, 0x23c2: 0x0001, 0x23c3: 0x0001, 0x23c4: 0x0001, 0x23c5: 0x0001,
- 0x23c6: 0x0001, 0x23c7: 0x0001, 0x23c8: 0x0001, 0x23c9: 0x0001, 0x23ca: 0x0001, 0x23cb: 0x0001,
- 0x23cc: 0x0001, 0x23cd: 0x0001, 0x23ce: 0x0001, 0x23cf: 0x0001, 0x23d0: 0x000d, 0x23d1: 0x000d,
- 0x23d2: 0x000d, 0x23d3: 0x000d, 0x23d4: 0x000d, 0x23d5: 0x000d, 0x23d6: 0x000d, 0x23d7: 0x000d,
- 0x23d8: 0x000d, 0x23d9: 0x000d, 0x23da: 0x000d, 0x23db: 0x000d, 0x23dc: 0x000d, 0x23dd: 0x000d,
- 0x23de: 0x000d, 0x23df: 0x000d, 0x23e0: 0x000d, 0x23e1: 0x000d, 0x23e2: 0x000d, 0x23e3: 0x000d,
- 0x23e4: 0x000d, 0x23e5: 0x000d, 0x23e6: 0x000d, 0x23e7: 0x000d, 0x23e8: 0x000d, 0x23e9: 0x000d,
- 0x23ea: 0x000d, 0x23eb: 0x000d, 0x23ec: 0x000d, 0x23ed: 0x000d, 0x23ee: 0x000d, 0x23ef: 0x000d,
- 0x23f0: 0x000d, 0x23f1: 0x000d, 0x23f2: 0x000d, 0x23f3: 0x000d, 0x23f4: 0x000d, 0x23f5: 0x000d,
- 0x23f6: 0x000d, 0x23f7: 0x000d, 0x23f8: 0x000d, 0x23f9: 0x000d, 0x23fa: 0x000d, 0x23fb: 0x000d,
- 0x23fc: 0x000d, 0x23fd: 0x000d, 0x23fe: 0x000d, 0x23ff: 0x000d,
- // Block 0x90, offset 0x2400
- 0x2400: 0x000d, 0x2401: 0x000d, 0x2402: 0x000d, 0x2403: 0x000d, 0x2404: 0x000d, 0x2405: 0x000d,
- 0x2406: 0x000d, 0x2407: 0x000d, 0x2408: 0x000d, 0x2409: 0x000d, 0x240a: 0x000d, 0x240b: 0x000d,
- 0x240c: 0x000d, 0x240d: 0x000d, 0x240e: 0x000d, 0x240f: 0x000d, 0x2410: 0x000d, 0x2411: 0x000d,
- 0x2412: 0x000d, 0x2413: 0x000d, 0x2414: 0x000d, 0x2415: 0x000d, 0x2416: 0x000d, 0x2417: 0x000d,
- 0x2418: 0x000d, 0x2419: 0x000d, 0x241a: 0x000d, 0x241b: 0x000d, 0x241c: 0x000d, 0x241d: 0x000d,
- 0x241e: 0x000d, 0x241f: 0x000d, 0x2420: 0x000d, 0x2421: 0x000d, 0x2422: 0x000d, 0x2423: 0x000d,
- 0x2424: 0x000d, 0x2425: 0x000d, 0x2426: 0x000d, 0x2427: 0x000d, 0x2428: 0x000d, 0x2429: 0x000d,
- 0x242a: 0x000d, 0x242b: 0x000d, 0x242c: 0x000d, 0x242d: 0x000d, 0x242e: 0x000d, 0x242f: 0x000d,
- 0x2430: 0x000d, 0x2431: 0x000d, 0x2432: 0x000d, 0x2433: 0x000d, 0x2434: 0x000d, 0x2435: 0x000d,
- 0x2436: 0x000d, 0x2437: 0x000d, 0x2438: 0x000d, 0x2439: 0x000d, 0x243a: 0x000d, 0x243b: 0x000d,
- 0x243c: 0x000d, 0x243d: 0x000d, 0x243e: 0x000a, 0x243f: 0x000a,
- // Block 0x91, offset 0x2440
- 0x2440: 0x000d, 0x2441: 0x000d, 0x2442: 0x000d, 0x2443: 0x000d, 0x2444: 0x000d, 0x2445: 0x000d,
- 0x2446: 0x000d, 0x2447: 0x000d, 0x2448: 0x000d, 0x2449: 0x000d, 0x244a: 0x000d, 0x244b: 0x000d,
- 0x244c: 0x000d, 0x244d: 0x000d, 0x244e: 0x000d, 0x244f: 0x000d, 0x2450: 0x000b, 0x2451: 0x000b,
- 0x2452: 0x000b, 0x2453: 0x000b, 0x2454: 0x000b, 0x2455: 0x000b, 0x2456: 0x000b, 0x2457: 0x000b,
- 0x2458: 0x000b, 0x2459: 0x000b, 0x245a: 0x000b, 0x245b: 0x000b, 0x245c: 0x000b, 0x245d: 0x000b,
- 0x245e: 0x000b, 0x245f: 0x000b, 0x2460: 0x000b, 0x2461: 0x000b, 0x2462: 0x000b, 0x2463: 0x000b,
- 0x2464: 0x000b, 0x2465: 0x000b, 0x2466: 0x000b, 0x2467: 0x000b, 0x2468: 0x000b, 0x2469: 0x000b,
- 0x246a: 0x000b, 0x246b: 0x000b, 0x246c: 0x000b, 0x246d: 0x000b, 0x246e: 0x000b, 0x246f: 0x000b,
- 0x2470: 0x000d, 0x2471: 0x000d, 0x2472: 0x000d, 0x2473: 0x000d, 0x2474: 0x000d, 0x2475: 0x000d,
- 0x2476: 0x000d, 0x2477: 0x000d, 0x2478: 0x000d, 0x2479: 0x000d, 0x247a: 0x000d, 0x247b: 0x000d,
- 0x247c: 0x000d, 0x247d: 0x000a, 0x247e: 0x000d, 0x247f: 0x000d,
- // Block 0x92, offset 0x2480
- 0x2480: 0x000c, 0x2481: 0x000c, 0x2482: 0x000c, 0x2483: 0x000c, 0x2484: 0x000c, 0x2485: 0x000c,
- 0x2486: 0x000c, 0x2487: 0x000c, 0x2488: 0x000c, 0x2489: 0x000c, 0x248a: 0x000c, 0x248b: 0x000c,
- 0x248c: 0x000c, 0x248d: 0x000c, 0x248e: 0x000c, 0x248f: 0x000c, 0x2490: 0x000a, 0x2491: 0x000a,
- 0x2492: 0x000a, 0x2493: 0x000a, 0x2494: 0x000a, 0x2495: 0x000a, 0x2496: 0x000a, 0x2497: 0x000a,
- 0x2498: 0x000a, 0x2499: 0x000a,
- 0x24a0: 0x000c, 0x24a1: 0x000c, 0x24a2: 0x000c, 0x24a3: 0x000c,
- 0x24a4: 0x000c, 0x24a5: 0x000c, 0x24a6: 0x000c, 0x24a7: 0x000c, 0x24a8: 0x000c, 0x24a9: 0x000c,
- 0x24aa: 0x000c, 0x24ab: 0x000c, 0x24ac: 0x000c, 0x24ad: 0x000c, 0x24ae: 0x000c, 0x24af: 0x000c,
- 0x24b0: 0x000a, 0x24b1: 0x000a, 0x24b2: 0x000a, 0x24b3: 0x000a, 0x24b4: 0x000a, 0x24b5: 0x000a,
- 0x24b6: 0x000a, 0x24b7: 0x000a, 0x24b8: 0x000a, 0x24b9: 0x000a, 0x24ba: 0x000a, 0x24bb: 0x000a,
- 0x24bc: 0x000a, 0x24bd: 0x000a, 0x24be: 0x000a, 0x24bf: 0x000a,
- // Block 0x93, offset 0x24c0
- 0x24c0: 0x000a, 0x24c1: 0x000a, 0x24c2: 0x000a, 0x24c3: 0x000a, 0x24c4: 0x000a, 0x24c5: 0x000a,
- 0x24c6: 0x000a, 0x24c7: 0x000a, 0x24c8: 0x000a, 0x24c9: 0x000a, 0x24ca: 0x000a, 0x24cb: 0x000a,
- 0x24cc: 0x000a, 0x24cd: 0x000a, 0x24ce: 0x000a, 0x24cf: 0x000a, 0x24d0: 0x0006, 0x24d1: 0x000a,
- 0x24d2: 0x0006, 0x24d4: 0x000a, 0x24d5: 0x0006, 0x24d6: 0x000a, 0x24d7: 0x000a,
- 0x24d8: 0x000a, 0x24d9: 0x009a, 0x24da: 0x008a, 0x24db: 0x007a, 0x24dc: 0x006a, 0x24dd: 0x009a,
- 0x24de: 0x008a, 0x24df: 0x0004, 0x24e0: 0x000a, 0x24e1: 0x000a, 0x24e2: 0x0003, 0x24e3: 0x0003,
- 0x24e4: 0x000a, 0x24e5: 0x000a, 0x24e6: 0x000a, 0x24e8: 0x000a, 0x24e9: 0x0004,
- 0x24ea: 0x0004, 0x24eb: 0x000a,
- 0x24f0: 0x000d, 0x24f1: 0x000d, 0x24f2: 0x000d, 0x24f3: 0x000d, 0x24f4: 0x000d, 0x24f5: 0x000d,
- 0x24f6: 0x000d, 0x24f7: 0x000d, 0x24f8: 0x000d, 0x24f9: 0x000d, 0x24fa: 0x000d, 0x24fb: 0x000d,
- 0x24fc: 0x000d, 0x24fd: 0x000d, 0x24fe: 0x000d, 0x24ff: 0x000d,
- // Block 0x94, offset 0x2500
- 0x2500: 0x000d, 0x2501: 0x000d, 0x2502: 0x000d, 0x2503: 0x000d, 0x2504: 0x000d, 0x2505: 0x000d,
- 0x2506: 0x000d, 0x2507: 0x000d, 0x2508: 0x000d, 0x2509: 0x000d, 0x250a: 0x000d, 0x250b: 0x000d,
- 0x250c: 0x000d, 0x250d: 0x000d, 0x250e: 0x000d, 0x250f: 0x000d, 0x2510: 0x000d, 0x2511: 0x000d,
- 0x2512: 0x000d, 0x2513: 0x000d, 0x2514: 0x000d, 0x2515: 0x000d, 0x2516: 0x000d, 0x2517: 0x000d,
- 0x2518: 0x000d, 0x2519: 0x000d, 0x251a: 0x000d, 0x251b: 0x000d, 0x251c: 0x000d, 0x251d: 0x000d,
- 0x251e: 0x000d, 0x251f: 0x000d, 0x2520: 0x000d, 0x2521: 0x000d, 0x2522: 0x000d, 0x2523: 0x000d,
- 0x2524: 0x000d, 0x2525: 0x000d, 0x2526: 0x000d, 0x2527: 0x000d, 0x2528: 0x000d, 0x2529: 0x000d,
- 0x252a: 0x000d, 0x252b: 0x000d, 0x252c: 0x000d, 0x252d: 0x000d, 0x252e: 0x000d, 0x252f: 0x000d,
- 0x2530: 0x000d, 0x2531: 0x000d, 0x2532: 0x000d, 0x2533: 0x000d, 0x2534: 0x000d, 0x2535: 0x000d,
- 0x2536: 0x000d, 0x2537: 0x000d, 0x2538: 0x000d, 0x2539: 0x000d, 0x253a: 0x000d, 0x253b: 0x000d,
- 0x253c: 0x000d, 0x253d: 0x000d, 0x253e: 0x000d, 0x253f: 0x000b,
- // Block 0x95, offset 0x2540
- 0x2541: 0x000a, 0x2542: 0x000a, 0x2543: 0x0004, 0x2544: 0x0004, 0x2545: 0x0004,
- 0x2546: 0x000a, 0x2547: 0x000a, 0x2548: 0x003a, 0x2549: 0x002a, 0x254a: 0x000a, 0x254b: 0x0003,
- 0x254c: 0x0006, 0x254d: 0x0003, 0x254e: 0x0006, 0x254f: 0x0006, 0x2550: 0x0002, 0x2551: 0x0002,
- 0x2552: 0x0002, 0x2553: 0x0002, 0x2554: 0x0002, 0x2555: 0x0002, 0x2556: 0x0002, 0x2557: 0x0002,
- 0x2558: 0x0002, 0x2559: 0x0002, 0x255a: 0x0006, 0x255b: 0x000a, 0x255c: 0x000a, 0x255d: 0x000a,
- 0x255e: 0x000a, 0x255f: 0x000a, 0x2560: 0x000a,
- 0x257b: 0x005a,
- 0x257c: 0x000a, 0x257d: 0x004a, 0x257e: 0x000a, 0x257f: 0x000a,
- // Block 0x96, offset 0x2580
- 0x2580: 0x000a,
- 0x259b: 0x005a, 0x259c: 0x000a, 0x259d: 0x004a,
- 0x259e: 0x000a, 0x259f: 0x00fa, 0x25a0: 0x00ea, 0x25a1: 0x000a, 0x25a2: 0x003a, 0x25a3: 0x002a,
- 0x25a4: 0x000a, 0x25a5: 0x000a,
- // Block 0x97, offset 0x25c0
- 0x25e0: 0x0004, 0x25e1: 0x0004, 0x25e2: 0x000a, 0x25e3: 0x000a,
- 0x25e4: 0x000a, 0x25e5: 0x0004, 0x25e6: 0x0004, 0x25e8: 0x000a, 0x25e9: 0x000a,
- 0x25ea: 0x000a, 0x25eb: 0x000a, 0x25ec: 0x000a, 0x25ed: 0x000a, 0x25ee: 0x000a,
- 0x25f0: 0x000b, 0x25f1: 0x000b, 0x25f2: 0x000b, 0x25f3: 0x000b, 0x25f4: 0x000b, 0x25f5: 0x000b,
- 0x25f6: 0x000b, 0x25f7: 0x000b, 0x25f8: 0x000b, 0x25f9: 0x000a, 0x25fa: 0x000a, 0x25fb: 0x000a,
- 0x25fc: 0x000a, 0x25fd: 0x000a, 0x25fe: 0x000b, 0x25ff: 0x000b,
- // Block 0x98, offset 0x2600
- 0x2601: 0x000a,
- // Block 0x99, offset 0x2640
- 0x2640: 0x000a, 0x2641: 0x000a, 0x2642: 0x000a, 0x2643: 0x000a, 0x2644: 0x000a, 0x2645: 0x000a,
- 0x2646: 0x000a, 0x2647: 0x000a, 0x2648: 0x000a, 0x2649: 0x000a, 0x264a: 0x000a, 0x264b: 0x000a,
- 0x264c: 0x000a, 0x2650: 0x000a, 0x2651: 0x000a,
- 0x2652: 0x000a, 0x2653: 0x000a, 0x2654: 0x000a, 0x2655: 0x000a, 0x2656: 0x000a, 0x2657: 0x000a,
- 0x2658: 0x000a, 0x2659: 0x000a, 0x265a: 0x000a, 0x265b: 0x000a,
- 0x2660: 0x000a,
- // Block 0x9a, offset 0x2680
- 0x26bd: 0x000c,
- // Block 0x9b, offset 0x26c0
- 0x26e0: 0x000c, 0x26e1: 0x0002, 0x26e2: 0x0002, 0x26e3: 0x0002,
- 0x26e4: 0x0002, 0x26e5: 0x0002, 0x26e6: 0x0002, 0x26e7: 0x0002, 0x26e8: 0x0002, 0x26e9: 0x0002,
- 0x26ea: 0x0002, 0x26eb: 0x0002, 0x26ec: 0x0002, 0x26ed: 0x0002, 0x26ee: 0x0002, 0x26ef: 0x0002,
- 0x26f0: 0x0002, 0x26f1: 0x0002, 0x26f2: 0x0002, 0x26f3: 0x0002, 0x26f4: 0x0002, 0x26f5: 0x0002,
- 0x26f6: 0x0002, 0x26f7: 0x0002, 0x26f8: 0x0002, 0x26f9: 0x0002, 0x26fa: 0x0002, 0x26fb: 0x0002,
- // Block 0x9c, offset 0x2700
- 0x2736: 0x000c, 0x2737: 0x000c, 0x2738: 0x000c, 0x2739: 0x000c, 0x273a: 0x000c,
- // Block 0x9d, offset 0x2740
- 0x2740: 0x0001, 0x2741: 0x0001, 0x2742: 0x0001, 0x2743: 0x0001, 0x2744: 0x0001, 0x2745: 0x0001,
- 0x2746: 0x0001, 0x2747: 0x0001, 0x2748: 0x0001, 0x2749: 0x0001, 0x274a: 0x0001, 0x274b: 0x0001,
- 0x274c: 0x0001, 0x274d: 0x0001, 0x274e: 0x0001, 0x274f: 0x0001, 0x2750: 0x0001, 0x2751: 0x0001,
- 0x2752: 0x0001, 0x2753: 0x0001, 0x2754: 0x0001, 0x2755: 0x0001, 0x2756: 0x0001, 0x2757: 0x0001,
- 0x2758: 0x0001, 0x2759: 0x0001, 0x275a: 0x0001, 0x275b: 0x0001, 0x275c: 0x0001, 0x275d: 0x0001,
- 0x275e: 0x0001, 0x275f: 0x0001, 0x2760: 0x0001, 0x2761: 0x0001, 0x2762: 0x0001, 0x2763: 0x0001,
- 0x2764: 0x0001, 0x2765: 0x0001, 0x2766: 0x0001, 0x2767: 0x0001, 0x2768: 0x0001, 0x2769: 0x0001,
- 0x276a: 0x0001, 0x276b: 0x0001, 0x276c: 0x0001, 0x276d: 0x0001, 0x276e: 0x0001, 0x276f: 0x0001,
- 0x2770: 0x0001, 0x2771: 0x0001, 0x2772: 0x0001, 0x2773: 0x0001, 0x2774: 0x0001, 0x2775: 0x0001,
- 0x2776: 0x0001, 0x2777: 0x0001, 0x2778: 0x0001, 0x2779: 0x0001, 0x277a: 0x0001, 0x277b: 0x0001,
- 0x277c: 0x0001, 0x277d: 0x0001, 0x277e: 0x0001, 0x277f: 0x0001,
- // Block 0x9e, offset 0x2780
- 0x2780: 0x0001, 0x2781: 0x0001, 0x2782: 0x0001, 0x2783: 0x0001, 0x2784: 0x0001, 0x2785: 0x0001,
- 0x2786: 0x0001, 0x2787: 0x0001, 0x2788: 0x0001, 0x2789: 0x0001, 0x278a: 0x0001, 0x278b: 0x0001,
- 0x278c: 0x0001, 0x278d: 0x0001, 0x278e: 0x0001, 0x278f: 0x0001, 0x2790: 0x0001, 0x2791: 0x0001,
- 0x2792: 0x0001, 0x2793: 0x0001, 0x2794: 0x0001, 0x2795: 0x0001, 0x2796: 0x0001, 0x2797: 0x0001,
- 0x2798: 0x0001, 0x2799: 0x0001, 0x279a: 0x0001, 0x279b: 0x0001, 0x279c: 0x0001, 0x279d: 0x0001,
- 0x279e: 0x0001, 0x279f: 0x000a, 0x27a0: 0x0001, 0x27a1: 0x0001, 0x27a2: 0x0001, 0x27a3: 0x0001,
- 0x27a4: 0x0001, 0x27a5: 0x0001, 0x27a6: 0x0001, 0x27a7: 0x0001, 0x27a8: 0x0001, 0x27a9: 0x0001,
- 0x27aa: 0x0001, 0x27ab: 0x0001, 0x27ac: 0x0001, 0x27ad: 0x0001, 0x27ae: 0x0001, 0x27af: 0x0001,
- 0x27b0: 0x0001, 0x27b1: 0x0001, 0x27b2: 0x0001, 0x27b3: 0x0001, 0x27b4: 0x0001, 0x27b5: 0x0001,
- 0x27b6: 0x0001, 0x27b7: 0x0001, 0x27b8: 0x0001, 0x27b9: 0x0001, 0x27ba: 0x0001, 0x27bb: 0x0001,
- 0x27bc: 0x0001, 0x27bd: 0x0001, 0x27be: 0x0001, 0x27bf: 0x0001,
- // Block 0x9f, offset 0x27c0
- 0x27c0: 0x0001, 0x27c1: 0x000c, 0x27c2: 0x000c, 0x27c3: 0x000c, 0x27c4: 0x0001, 0x27c5: 0x000c,
- 0x27c6: 0x000c, 0x27c7: 0x0001, 0x27c8: 0x0001, 0x27c9: 0x0001, 0x27ca: 0x0001, 0x27cb: 0x0001,
- 0x27cc: 0x000c, 0x27cd: 0x000c, 0x27ce: 0x000c, 0x27cf: 0x000c, 0x27d0: 0x0001, 0x27d1: 0x0001,
- 0x27d2: 0x0001, 0x27d3: 0x0001, 0x27d4: 0x0001, 0x27d5: 0x0001, 0x27d6: 0x0001, 0x27d7: 0x0001,
- 0x27d8: 0x0001, 0x27d9: 0x0001, 0x27da: 0x0001, 0x27db: 0x0001, 0x27dc: 0x0001, 0x27dd: 0x0001,
- 0x27de: 0x0001, 0x27df: 0x0001, 0x27e0: 0x0001, 0x27e1: 0x0001, 0x27e2: 0x0001, 0x27e3: 0x0001,
- 0x27e4: 0x0001, 0x27e5: 0x0001, 0x27e6: 0x0001, 0x27e7: 0x0001, 0x27e8: 0x0001, 0x27e9: 0x0001,
- 0x27ea: 0x0001, 0x27eb: 0x0001, 0x27ec: 0x0001, 0x27ed: 0x0001, 0x27ee: 0x0001, 0x27ef: 0x0001,
- 0x27f0: 0x0001, 0x27f1: 0x0001, 0x27f2: 0x0001, 0x27f3: 0x0001, 0x27f4: 0x0001, 0x27f5: 0x0001,
- 0x27f6: 0x0001, 0x27f7: 0x0001, 0x27f8: 0x000c, 0x27f9: 0x000c, 0x27fa: 0x000c, 0x27fb: 0x0001,
- 0x27fc: 0x0001, 0x27fd: 0x0001, 0x27fe: 0x0001, 0x27ff: 0x000c,
- // Block 0xa0, offset 0x2800
- 0x2800: 0x0001, 0x2801: 0x0001, 0x2802: 0x0001, 0x2803: 0x0001, 0x2804: 0x0001, 0x2805: 0x0001,
- 0x2806: 0x0001, 0x2807: 0x0001, 0x2808: 0x0001, 0x2809: 0x0001, 0x280a: 0x0001, 0x280b: 0x0001,
- 0x280c: 0x0001, 0x280d: 0x0001, 0x280e: 0x0001, 0x280f: 0x0001, 0x2810: 0x0001, 0x2811: 0x0001,
- 0x2812: 0x0001, 0x2813: 0x0001, 0x2814: 0x0001, 0x2815: 0x0001, 0x2816: 0x0001, 0x2817: 0x0001,
- 0x2818: 0x0001, 0x2819: 0x0001, 0x281a: 0x0001, 0x281b: 0x0001, 0x281c: 0x0001, 0x281d: 0x0001,
- 0x281e: 0x0001, 0x281f: 0x0001, 0x2820: 0x0001, 0x2821: 0x0001, 0x2822: 0x0001, 0x2823: 0x0001,
- 0x2824: 0x0001, 0x2825: 0x000c, 0x2826: 0x000c, 0x2827: 0x0001, 0x2828: 0x0001, 0x2829: 0x0001,
- 0x282a: 0x0001, 0x282b: 0x0001, 0x282c: 0x0001, 0x282d: 0x0001, 0x282e: 0x0001, 0x282f: 0x0001,
- 0x2830: 0x0001, 0x2831: 0x0001, 0x2832: 0x0001, 0x2833: 0x0001, 0x2834: 0x0001, 0x2835: 0x0001,
- 0x2836: 0x0001, 0x2837: 0x0001, 0x2838: 0x0001, 0x2839: 0x0001, 0x283a: 0x0001, 0x283b: 0x0001,
- 0x283c: 0x0001, 0x283d: 0x0001, 0x283e: 0x0001, 0x283f: 0x0001,
- // Block 0xa1, offset 0x2840
- 0x2840: 0x0001, 0x2841: 0x0001, 0x2842: 0x0001, 0x2843: 0x0001, 0x2844: 0x0001, 0x2845: 0x0001,
- 0x2846: 0x0001, 0x2847: 0x0001, 0x2848: 0x0001, 0x2849: 0x0001, 0x284a: 0x0001, 0x284b: 0x0001,
- 0x284c: 0x0001, 0x284d: 0x0001, 0x284e: 0x0001, 0x284f: 0x0001, 0x2850: 0x0001, 0x2851: 0x0001,
- 0x2852: 0x0001, 0x2853: 0x0001, 0x2854: 0x0001, 0x2855: 0x0001, 0x2856: 0x0001, 0x2857: 0x0001,
- 0x2858: 0x0001, 0x2859: 0x0001, 0x285a: 0x0001, 0x285b: 0x0001, 0x285c: 0x0001, 0x285d: 0x0001,
- 0x285e: 0x0001, 0x285f: 0x0001, 0x2860: 0x0001, 0x2861: 0x0001, 0x2862: 0x0001, 0x2863: 0x0001,
- 0x2864: 0x0001, 0x2865: 0x0001, 0x2866: 0x0001, 0x2867: 0x0001, 0x2868: 0x0001, 0x2869: 0x0001,
- 0x286a: 0x0001, 0x286b: 0x0001, 0x286c: 0x0001, 0x286d: 0x0001, 0x286e: 0x0001, 0x286f: 0x0001,
- 0x2870: 0x0001, 0x2871: 0x0001, 0x2872: 0x0001, 0x2873: 0x0001, 0x2874: 0x0001, 0x2875: 0x0001,
- 0x2876: 0x0001, 0x2877: 0x0001, 0x2878: 0x0001, 0x2879: 0x000a, 0x287a: 0x000a, 0x287b: 0x000a,
- 0x287c: 0x000a, 0x287d: 0x000a, 0x287e: 0x000a, 0x287f: 0x000a,
- // Block 0xa2, offset 0x2880
- 0x2880: 0x0001, 0x2881: 0x0001, 0x2882: 0x0001, 0x2883: 0x0001, 0x2884: 0x0001, 0x2885: 0x0001,
- 0x2886: 0x0001, 0x2887: 0x0001, 0x2888: 0x0001, 0x2889: 0x0001, 0x288a: 0x0001, 0x288b: 0x0001,
- 0x288c: 0x0001, 0x288d: 0x0001, 0x288e: 0x0001, 0x288f: 0x0001, 0x2890: 0x0001, 0x2891: 0x0001,
- 0x2892: 0x0001, 0x2893: 0x0001, 0x2894: 0x0001, 0x2895: 0x0001, 0x2896: 0x0001, 0x2897: 0x0001,
- 0x2898: 0x0001, 0x2899: 0x0001, 0x289a: 0x0001, 0x289b: 0x0001, 0x289c: 0x0001, 0x289d: 0x0001,
- 0x289e: 0x0001, 0x289f: 0x0001, 0x28a0: 0x0005, 0x28a1: 0x0005, 0x28a2: 0x0005, 0x28a3: 0x0005,
- 0x28a4: 0x0005, 0x28a5: 0x0005, 0x28a6: 0x0005, 0x28a7: 0x0005, 0x28a8: 0x0005, 0x28a9: 0x0005,
- 0x28aa: 0x0005, 0x28ab: 0x0005, 0x28ac: 0x0005, 0x28ad: 0x0005, 0x28ae: 0x0005, 0x28af: 0x0005,
- 0x28b0: 0x0005, 0x28b1: 0x0005, 0x28b2: 0x0005, 0x28b3: 0x0005, 0x28b4: 0x0005, 0x28b5: 0x0005,
- 0x28b6: 0x0005, 0x28b7: 0x0005, 0x28b8: 0x0005, 0x28b9: 0x0005, 0x28ba: 0x0005, 0x28bb: 0x0005,
- 0x28bc: 0x0005, 0x28bd: 0x0005, 0x28be: 0x0005, 0x28bf: 0x0001,
- // Block 0xa3, offset 0x28c0
- 0x28c1: 0x000c,
- 0x28f8: 0x000c, 0x28f9: 0x000c, 0x28fa: 0x000c, 0x28fb: 0x000c,
- 0x28fc: 0x000c, 0x28fd: 0x000c, 0x28fe: 0x000c, 0x28ff: 0x000c,
- // Block 0xa4, offset 0x2900
- 0x2900: 0x000c, 0x2901: 0x000c, 0x2902: 0x000c, 0x2903: 0x000c, 0x2904: 0x000c, 0x2905: 0x000c,
- 0x2906: 0x000c,
- 0x2912: 0x000a, 0x2913: 0x000a, 0x2914: 0x000a, 0x2915: 0x000a, 0x2916: 0x000a, 0x2917: 0x000a,
- 0x2918: 0x000a, 0x2919: 0x000a, 0x291a: 0x000a, 0x291b: 0x000a, 0x291c: 0x000a, 0x291d: 0x000a,
- 0x291e: 0x000a, 0x291f: 0x000a, 0x2920: 0x000a, 0x2921: 0x000a, 0x2922: 0x000a, 0x2923: 0x000a,
- 0x2924: 0x000a, 0x2925: 0x000a,
- 0x293f: 0x000c,
- // Block 0xa5, offset 0x2940
- 0x2940: 0x000c, 0x2941: 0x000c,
- 0x2973: 0x000c, 0x2974: 0x000c, 0x2975: 0x000c,
- 0x2976: 0x000c, 0x2979: 0x000c, 0x297a: 0x000c,
- // Block 0xa6, offset 0x2980
- 0x2980: 0x000c, 0x2981: 0x000c, 0x2982: 0x000c,
- 0x29a7: 0x000c, 0x29a8: 0x000c, 0x29a9: 0x000c,
- 0x29aa: 0x000c, 0x29ab: 0x000c, 0x29ad: 0x000c, 0x29ae: 0x000c, 0x29af: 0x000c,
- 0x29b0: 0x000c, 0x29b1: 0x000c, 0x29b2: 0x000c, 0x29b3: 0x000c, 0x29b4: 0x000c,
- // Block 0xa7, offset 0x29c0
- 0x29f3: 0x000c,
- // Block 0xa8, offset 0x2a00
- 0x2a00: 0x000c, 0x2a01: 0x000c,
- 0x2a36: 0x000c, 0x2a37: 0x000c, 0x2a38: 0x000c, 0x2a39: 0x000c, 0x2a3a: 0x000c, 0x2a3b: 0x000c,
- 0x2a3c: 0x000c, 0x2a3d: 0x000c, 0x2a3e: 0x000c,
- // Block 0xa9, offset 0x2a40
- 0x2a4a: 0x000c, 0x2a4b: 0x000c,
- 0x2a4c: 0x000c,
- // Block 0xaa, offset 0x2a80
- 0x2aaf: 0x000c,
- 0x2ab0: 0x000c, 0x2ab1: 0x000c, 0x2ab4: 0x000c,
- 0x2ab6: 0x000c, 0x2ab7: 0x000c,
- 0x2abe: 0x000c,
- // Block 0xab, offset 0x2ac0
- 0x2adf: 0x000c, 0x2ae3: 0x000c,
- 0x2ae4: 0x000c, 0x2ae5: 0x000c, 0x2ae6: 0x000c, 0x2ae7: 0x000c, 0x2ae8: 0x000c, 0x2ae9: 0x000c,
- 0x2aea: 0x000c,
- // Block 0xac, offset 0x2b00
- 0x2b00: 0x000c, 0x2b01: 0x000c,
- 0x2b3c: 0x000c,
- // Block 0xad, offset 0x2b40
- 0x2b40: 0x000c,
- 0x2b66: 0x000c, 0x2b67: 0x000c, 0x2b68: 0x000c, 0x2b69: 0x000c,
- 0x2b6a: 0x000c, 0x2b6b: 0x000c, 0x2b6c: 0x000c,
- 0x2b70: 0x000c, 0x2b71: 0x000c, 0x2b72: 0x000c, 0x2b73: 0x000c, 0x2b74: 0x000c,
- // Block 0xae, offset 0x2b80
- 0x2bb8: 0x000c, 0x2bb9: 0x000c, 0x2bba: 0x000c, 0x2bbb: 0x000c,
- 0x2bbc: 0x000c, 0x2bbd: 0x000c, 0x2bbe: 0x000c, 0x2bbf: 0x000c,
- // Block 0xaf, offset 0x2bc0
- 0x2bc2: 0x000c, 0x2bc3: 0x000c, 0x2bc4: 0x000c,
- 0x2bc6: 0x000c,
- // Block 0xb0, offset 0x2c00
- 0x2c33: 0x000c, 0x2c34: 0x000c, 0x2c35: 0x000c,
- 0x2c36: 0x000c, 0x2c37: 0x000c, 0x2c38: 0x000c, 0x2c3a: 0x000c,
- 0x2c3f: 0x000c,
- // Block 0xb1, offset 0x2c40
- 0x2c40: 0x000c, 0x2c42: 0x000c, 0x2c43: 0x000c,
- // Block 0xb2, offset 0x2c80
- 0x2cb2: 0x000c, 0x2cb3: 0x000c, 0x2cb4: 0x000c, 0x2cb5: 0x000c,
- 0x2cbc: 0x000c, 0x2cbd: 0x000c, 0x2cbf: 0x000c,
- // Block 0xb3, offset 0x2cc0
- 0x2cc0: 0x000c,
- 0x2cdc: 0x000c, 0x2cdd: 0x000c,
- // Block 0xb4, offset 0x2d00
- 0x2d33: 0x000c, 0x2d34: 0x000c, 0x2d35: 0x000c,
- 0x2d36: 0x000c, 0x2d37: 0x000c, 0x2d38: 0x000c, 0x2d39: 0x000c, 0x2d3a: 0x000c,
- 0x2d3d: 0x000c, 0x2d3f: 0x000c,
- // Block 0xb5, offset 0x2d40
- 0x2d40: 0x000c,
- 0x2d60: 0x000a, 0x2d61: 0x000a, 0x2d62: 0x000a, 0x2d63: 0x000a,
- 0x2d64: 0x000a, 0x2d65: 0x000a, 0x2d66: 0x000a, 0x2d67: 0x000a, 0x2d68: 0x000a, 0x2d69: 0x000a,
- 0x2d6a: 0x000a, 0x2d6b: 0x000a, 0x2d6c: 0x000a,
- // Block 0xb6, offset 0x2d80
- 0x2dab: 0x000c, 0x2dad: 0x000c,
- 0x2db0: 0x000c, 0x2db1: 0x000c, 0x2db2: 0x000c, 0x2db3: 0x000c, 0x2db4: 0x000c, 0x2db5: 0x000c,
- 0x2db7: 0x000c,
- // Block 0xb7, offset 0x2dc0
- 0x2ddd: 0x000c,
- 0x2dde: 0x000c, 0x2ddf: 0x000c, 0x2de2: 0x000c, 0x2de3: 0x000c,
- 0x2de4: 0x000c, 0x2de5: 0x000c, 0x2de7: 0x000c, 0x2de8: 0x000c, 0x2de9: 0x000c,
- 0x2dea: 0x000c, 0x2deb: 0x000c,
- // Block 0xb8, offset 0x2e00
- 0x2e30: 0x000c, 0x2e31: 0x000c, 0x2e32: 0x000c, 0x2e33: 0x000c, 0x2e34: 0x000c, 0x2e35: 0x000c,
- 0x2e36: 0x000c, 0x2e38: 0x000c, 0x2e39: 0x000c, 0x2e3a: 0x000c, 0x2e3b: 0x000c,
- 0x2e3c: 0x000c, 0x2e3d: 0x000c,
- // Block 0xb9, offset 0x2e40
- 0x2e52: 0x000c, 0x2e53: 0x000c, 0x2e54: 0x000c, 0x2e55: 0x000c, 0x2e56: 0x000c, 0x2e57: 0x000c,
- 0x2e58: 0x000c, 0x2e59: 0x000c, 0x2e5a: 0x000c, 0x2e5b: 0x000c, 0x2e5c: 0x000c, 0x2e5d: 0x000c,
- 0x2e5e: 0x000c, 0x2e5f: 0x000c, 0x2e60: 0x000c, 0x2e61: 0x000c, 0x2e62: 0x000c, 0x2e63: 0x000c,
- 0x2e64: 0x000c, 0x2e65: 0x000c, 0x2e66: 0x000c, 0x2e67: 0x000c,
- 0x2e6a: 0x000c, 0x2e6b: 0x000c, 0x2e6c: 0x000c, 0x2e6d: 0x000c, 0x2e6e: 0x000c, 0x2e6f: 0x000c,
- 0x2e70: 0x000c, 0x2e72: 0x000c, 0x2e73: 0x000c, 0x2e75: 0x000c,
- 0x2e76: 0x000c,
- // Block 0xba, offset 0x2e80
- 0x2eb0: 0x000c, 0x2eb1: 0x000c, 0x2eb2: 0x000c, 0x2eb3: 0x000c, 0x2eb4: 0x000c,
- // Block 0xbb, offset 0x2ec0
- 0x2ef0: 0x000c, 0x2ef1: 0x000c, 0x2ef2: 0x000c, 0x2ef3: 0x000c, 0x2ef4: 0x000c, 0x2ef5: 0x000c,
- 0x2ef6: 0x000c,
- // Block 0xbc, offset 0x2f00
- 0x2f0f: 0x000c, 0x2f10: 0x000c, 0x2f11: 0x000c,
- 0x2f12: 0x000c,
- // Block 0xbd, offset 0x2f40
- 0x2f5d: 0x000c,
- 0x2f5e: 0x000c, 0x2f60: 0x000b, 0x2f61: 0x000b, 0x2f62: 0x000b, 0x2f63: 0x000b,
- // Block 0xbe, offset 0x2f80
- 0x2fa7: 0x000c, 0x2fa8: 0x000c, 0x2fa9: 0x000c,
- 0x2fb3: 0x000b, 0x2fb4: 0x000b, 0x2fb5: 0x000b,
- 0x2fb6: 0x000b, 0x2fb7: 0x000b, 0x2fb8: 0x000b, 0x2fb9: 0x000b, 0x2fba: 0x000b, 0x2fbb: 0x000c,
- 0x2fbc: 0x000c, 0x2fbd: 0x000c, 0x2fbe: 0x000c, 0x2fbf: 0x000c,
- // Block 0xbf, offset 0x2fc0
- 0x2fc0: 0x000c, 0x2fc1: 0x000c, 0x2fc2: 0x000c, 0x2fc5: 0x000c,
- 0x2fc6: 0x000c, 0x2fc7: 0x000c, 0x2fc8: 0x000c, 0x2fc9: 0x000c, 0x2fca: 0x000c, 0x2fcb: 0x000c,
- 0x2fea: 0x000c, 0x2feb: 0x000c, 0x2fec: 0x000c, 0x2fed: 0x000c,
- // Block 0xc0, offset 0x3000
- 0x3000: 0x000a, 0x3001: 0x000a, 0x3002: 0x000c, 0x3003: 0x000c, 0x3004: 0x000c, 0x3005: 0x000a,
- // Block 0xc1, offset 0x3040
- 0x3040: 0x000a, 0x3041: 0x000a, 0x3042: 0x000a, 0x3043: 0x000a, 0x3044: 0x000a, 0x3045: 0x000a,
- 0x3046: 0x000a, 0x3047: 0x000a, 0x3048: 0x000a, 0x3049: 0x000a, 0x304a: 0x000a, 0x304b: 0x000a,
- 0x304c: 0x000a, 0x304d: 0x000a, 0x304e: 0x000a, 0x304f: 0x000a, 0x3050: 0x000a, 0x3051: 0x000a,
- 0x3052: 0x000a, 0x3053: 0x000a, 0x3054: 0x000a, 0x3055: 0x000a, 0x3056: 0x000a,
- // Block 0xc2, offset 0x3080
- 0x309b: 0x000a,
- // Block 0xc3, offset 0x30c0
- 0x30d5: 0x000a,
- // Block 0xc4, offset 0x3100
- 0x310f: 0x000a,
- // Block 0xc5, offset 0x3140
- 0x3149: 0x000a,
- // Block 0xc6, offset 0x3180
- 0x3183: 0x000a,
- 0x318e: 0x0002, 0x318f: 0x0002, 0x3190: 0x0002, 0x3191: 0x0002,
- 0x3192: 0x0002, 0x3193: 0x0002, 0x3194: 0x0002, 0x3195: 0x0002, 0x3196: 0x0002, 0x3197: 0x0002,
- 0x3198: 0x0002, 0x3199: 0x0002, 0x319a: 0x0002, 0x319b: 0x0002, 0x319c: 0x0002, 0x319d: 0x0002,
- 0x319e: 0x0002, 0x319f: 0x0002, 0x31a0: 0x0002, 0x31a1: 0x0002, 0x31a2: 0x0002, 0x31a3: 0x0002,
- 0x31a4: 0x0002, 0x31a5: 0x0002, 0x31a6: 0x0002, 0x31a7: 0x0002, 0x31a8: 0x0002, 0x31a9: 0x0002,
- 0x31aa: 0x0002, 0x31ab: 0x0002, 0x31ac: 0x0002, 0x31ad: 0x0002, 0x31ae: 0x0002, 0x31af: 0x0002,
- 0x31b0: 0x0002, 0x31b1: 0x0002, 0x31b2: 0x0002, 0x31b3: 0x0002, 0x31b4: 0x0002, 0x31b5: 0x0002,
- 0x31b6: 0x0002, 0x31b7: 0x0002, 0x31b8: 0x0002, 0x31b9: 0x0002, 0x31ba: 0x0002, 0x31bb: 0x0002,
- 0x31bc: 0x0002, 0x31bd: 0x0002, 0x31be: 0x0002, 0x31bf: 0x0002,
- // Block 0xc7, offset 0x31c0
- 0x31c0: 0x000c, 0x31c1: 0x000c, 0x31c2: 0x000c, 0x31c3: 0x000c, 0x31c4: 0x000c, 0x31c5: 0x000c,
- 0x31c6: 0x000c, 0x31c7: 0x000c, 0x31c8: 0x000c, 0x31c9: 0x000c, 0x31ca: 0x000c, 0x31cb: 0x000c,
- 0x31cc: 0x000c, 0x31cd: 0x000c, 0x31ce: 0x000c, 0x31cf: 0x000c, 0x31d0: 0x000c, 0x31d1: 0x000c,
- 0x31d2: 0x000c, 0x31d3: 0x000c, 0x31d4: 0x000c, 0x31d5: 0x000c, 0x31d6: 0x000c, 0x31d7: 0x000c,
- 0x31d8: 0x000c, 0x31d9: 0x000c, 0x31da: 0x000c, 0x31db: 0x000c, 0x31dc: 0x000c, 0x31dd: 0x000c,
- 0x31de: 0x000c, 0x31df: 0x000c, 0x31e0: 0x000c, 0x31e1: 0x000c, 0x31e2: 0x000c, 0x31e3: 0x000c,
- 0x31e4: 0x000c, 0x31e5: 0x000c, 0x31e6: 0x000c, 0x31e7: 0x000c, 0x31e8: 0x000c, 0x31e9: 0x000c,
- 0x31ea: 0x000c, 0x31eb: 0x000c, 0x31ec: 0x000c, 0x31ed: 0x000c, 0x31ee: 0x000c, 0x31ef: 0x000c,
- 0x31f0: 0x000c, 0x31f1: 0x000c, 0x31f2: 0x000c, 0x31f3: 0x000c, 0x31f4: 0x000c, 0x31f5: 0x000c,
- 0x31f6: 0x000c, 0x31fb: 0x000c,
- 0x31fc: 0x000c, 0x31fd: 0x000c, 0x31fe: 0x000c, 0x31ff: 0x000c,
- // Block 0xc8, offset 0x3200
- 0x3200: 0x000c, 0x3201: 0x000c, 0x3202: 0x000c, 0x3203: 0x000c, 0x3204: 0x000c, 0x3205: 0x000c,
- 0x3206: 0x000c, 0x3207: 0x000c, 0x3208: 0x000c, 0x3209: 0x000c, 0x320a: 0x000c, 0x320b: 0x000c,
- 0x320c: 0x000c, 0x320d: 0x000c, 0x320e: 0x000c, 0x320f: 0x000c, 0x3210: 0x000c, 0x3211: 0x000c,
- 0x3212: 0x000c, 0x3213: 0x000c, 0x3214: 0x000c, 0x3215: 0x000c, 0x3216: 0x000c, 0x3217: 0x000c,
- 0x3218: 0x000c, 0x3219: 0x000c, 0x321a: 0x000c, 0x321b: 0x000c, 0x321c: 0x000c, 0x321d: 0x000c,
- 0x321e: 0x000c, 0x321f: 0x000c, 0x3220: 0x000c, 0x3221: 0x000c, 0x3222: 0x000c, 0x3223: 0x000c,
- 0x3224: 0x000c, 0x3225: 0x000c, 0x3226: 0x000c, 0x3227: 0x000c, 0x3228: 0x000c, 0x3229: 0x000c,
- 0x322a: 0x000c, 0x322b: 0x000c, 0x322c: 0x000c,
- 0x3235: 0x000c,
- // Block 0xc9, offset 0x3240
- 0x3244: 0x000c,
- 0x325b: 0x000c, 0x325c: 0x000c, 0x325d: 0x000c,
- 0x325e: 0x000c, 0x325f: 0x000c, 0x3261: 0x000c, 0x3262: 0x000c, 0x3263: 0x000c,
- 0x3264: 0x000c, 0x3265: 0x000c, 0x3266: 0x000c, 0x3267: 0x000c, 0x3268: 0x000c, 0x3269: 0x000c,
- 0x326a: 0x000c, 0x326b: 0x000c, 0x326c: 0x000c, 0x326d: 0x000c, 0x326e: 0x000c, 0x326f: 0x000c,
- // Block 0xca, offset 0x3280
- 0x3280: 0x000c, 0x3281: 0x000c, 0x3282: 0x000c, 0x3283: 0x000c, 0x3284: 0x000c, 0x3285: 0x000c,
- 0x3286: 0x000c, 0x3288: 0x000c, 0x3289: 0x000c, 0x328a: 0x000c, 0x328b: 0x000c,
- 0x328c: 0x000c, 0x328d: 0x000c, 0x328e: 0x000c, 0x328f: 0x000c, 0x3290: 0x000c, 0x3291: 0x000c,
- 0x3292: 0x000c, 0x3293: 0x000c, 0x3294: 0x000c, 0x3295: 0x000c, 0x3296: 0x000c, 0x3297: 0x000c,
- 0x3298: 0x000c, 0x329b: 0x000c, 0x329c: 0x000c, 0x329d: 0x000c,
- 0x329e: 0x000c, 0x329f: 0x000c, 0x32a0: 0x000c, 0x32a1: 0x000c, 0x32a3: 0x000c,
- 0x32a4: 0x000c, 0x32a6: 0x000c, 0x32a7: 0x000c, 0x32a8: 0x000c, 0x32a9: 0x000c,
- 0x32aa: 0x000c,
- // Block 0xcb, offset 0x32c0
- 0x32c0: 0x0001, 0x32c1: 0x0001, 0x32c2: 0x0001, 0x32c3: 0x0001, 0x32c4: 0x0001, 0x32c5: 0x0001,
- 0x32c6: 0x0001, 0x32c7: 0x0001, 0x32c8: 0x0001, 0x32c9: 0x0001, 0x32ca: 0x0001, 0x32cb: 0x0001,
- 0x32cc: 0x0001, 0x32cd: 0x0001, 0x32ce: 0x0001, 0x32cf: 0x0001, 0x32d0: 0x000c, 0x32d1: 0x000c,
- 0x32d2: 0x000c, 0x32d3: 0x000c, 0x32d4: 0x000c, 0x32d5: 0x000c, 0x32d6: 0x000c, 0x32d7: 0x0001,
- 0x32d8: 0x0001, 0x32d9: 0x0001, 0x32da: 0x0001, 0x32db: 0x0001, 0x32dc: 0x0001, 0x32dd: 0x0001,
- 0x32de: 0x0001, 0x32df: 0x0001, 0x32e0: 0x0001, 0x32e1: 0x0001, 0x32e2: 0x0001, 0x32e3: 0x0001,
- 0x32e4: 0x0001, 0x32e5: 0x0001, 0x32e6: 0x0001, 0x32e7: 0x0001, 0x32e8: 0x0001, 0x32e9: 0x0001,
- 0x32ea: 0x0001, 0x32eb: 0x0001, 0x32ec: 0x0001, 0x32ed: 0x0001, 0x32ee: 0x0001, 0x32ef: 0x0001,
- 0x32f0: 0x0001, 0x32f1: 0x0001, 0x32f2: 0x0001, 0x32f3: 0x0001, 0x32f4: 0x0001, 0x32f5: 0x0001,
- 0x32f6: 0x0001, 0x32f7: 0x0001, 0x32f8: 0x0001, 0x32f9: 0x0001, 0x32fa: 0x0001, 0x32fb: 0x0001,
- 0x32fc: 0x0001, 0x32fd: 0x0001, 0x32fe: 0x0001, 0x32ff: 0x0001,
- // Block 0xcc, offset 0x3300
- 0x3300: 0x0001, 0x3301: 0x0001, 0x3302: 0x0001, 0x3303: 0x0001, 0x3304: 0x000c, 0x3305: 0x000c,
- 0x3306: 0x000c, 0x3307: 0x000c, 0x3308: 0x000c, 0x3309: 0x000c, 0x330a: 0x000c, 0x330b: 0x0001,
- 0x330c: 0x0001, 0x330d: 0x0001, 0x330e: 0x0001, 0x330f: 0x0001, 0x3310: 0x0001, 0x3311: 0x0001,
- 0x3312: 0x0001, 0x3313: 0x0001, 0x3314: 0x0001, 0x3315: 0x0001, 0x3316: 0x0001, 0x3317: 0x0001,
- 0x3318: 0x0001, 0x3319: 0x0001, 0x331a: 0x0001, 0x331b: 0x0001, 0x331c: 0x0001, 0x331d: 0x0001,
- 0x331e: 0x0001, 0x331f: 0x0001, 0x3320: 0x0001, 0x3321: 0x0001, 0x3322: 0x0001, 0x3323: 0x0001,
- 0x3324: 0x0001, 0x3325: 0x0001, 0x3326: 0x0001, 0x3327: 0x0001, 0x3328: 0x0001, 0x3329: 0x0001,
- 0x332a: 0x0001, 0x332b: 0x0001, 0x332c: 0x0001, 0x332d: 0x0001, 0x332e: 0x0001, 0x332f: 0x0001,
- 0x3330: 0x0001, 0x3331: 0x0001, 0x3332: 0x0001, 0x3333: 0x0001, 0x3334: 0x0001, 0x3335: 0x0001,
- 0x3336: 0x0001, 0x3337: 0x0001, 0x3338: 0x0001, 0x3339: 0x0001, 0x333a: 0x0001, 0x333b: 0x0001,
- 0x333c: 0x0001, 0x333d: 0x0001, 0x333e: 0x0001, 0x333f: 0x0001,
- // Block 0xcd, offset 0x3340
- 0x3340: 0x000d, 0x3341: 0x000d, 0x3342: 0x000d, 0x3343: 0x000d, 0x3344: 0x000d, 0x3345: 0x000d,
- 0x3346: 0x000d, 0x3347: 0x000d, 0x3348: 0x000d, 0x3349: 0x000d, 0x334a: 0x000d, 0x334b: 0x000d,
- 0x334c: 0x000d, 0x334d: 0x000d, 0x334e: 0x000d, 0x334f: 0x000d, 0x3350: 0x000d, 0x3351: 0x000d,
- 0x3352: 0x000d, 0x3353: 0x000d, 0x3354: 0x000d, 0x3355: 0x000d, 0x3356: 0x000d, 0x3357: 0x000d,
- 0x3358: 0x000d, 0x3359: 0x000d, 0x335a: 0x000d, 0x335b: 0x000d, 0x335c: 0x000d, 0x335d: 0x000d,
- 0x335e: 0x000d, 0x335f: 0x000d, 0x3360: 0x000d, 0x3361: 0x000d, 0x3362: 0x000d, 0x3363: 0x000d,
- 0x3364: 0x000d, 0x3365: 0x000d, 0x3366: 0x000d, 0x3367: 0x000d, 0x3368: 0x000d, 0x3369: 0x000d,
- 0x336a: 0x000d, 0x336b: 0x000d, 0x336c: 0x000d, 0x336d: 0x000d, 0x336e: 0x000d, 0x336f: 0x000d,
- 0x3370: 0x000a, 0x3371: 0x000a, 0x3372: 0x000d, 0x3373: 0x000d, 0x3374: 0x000d, 0x3375: 0x000d,
- 0x3376: 0x000d, 0x3377: 0x000d, 0x3378: 0x000d, 0x3379: 0x000d, 0x337a: 0x000d, 0x337b: 0x000d,
- 0x337c: 0x000d, 0x337d: 0x000d, 0x337e: 0x000d, 0x337f: 0x000d,
- // Block 0xce, offset 0x3380
- 0x3380: 0x000a, 0x3381: 0x000a, 0x3382: 0x000a, 0x3383: 0x000a, 0x3384: 0x000a, 0x3385: 0x000a,
- 0x3386: 0x000a, 0x3387: 0x000a, 0x3388: 0x000a, 0x3389: 0x000a, 0x338a: 0x000a, 0x338b: 0x000a,
- 0x338c: 0x000a, 0x338d: 0x000a, 0x338e: 0x000a, 0x338f: 0x000a, 0x3390: 0x000a, 0x3391: 0x000a,
- 0x3392: 0x000a, 0x3393: 0x000a, 0x3394: 0x000a, 0x3395: 0x000a, 0x3396: 0x000a, 0x3397: 0x000a,
- 0x3398: 0x000a, 0x3399: 0x000a, 0x339a: 0x000a, 0x339b: 0x000a, 0x339c: 0x000a, 0x339d: 0x000a,
- 0x339e: 0x000a, 0x339f: 0x000a, 0x33a0: 0x000a, 0x33a1: 0x000a, 0x33a2: 0x000a, 0x33a3: 0x000a,
- 0x33a4: 0x000a, 0x33a5: 0x000a, 0x33a6: 0x000a, 0x33a7: 0x000a, 0x33a8: 0x000a, 0x33a9: 0x000a,
- 0x33aa: 0x000a, 0x33ab: 0x000a,
- 0x33b0: 0x000a, 0x33b1: 0x000a, 0x33b2: 0x000a, 0x33b3: 0x000a, 0x33b4: 0x000a, 0x33b5: 0x000a,
- 0x33b6: 0x000a, 0x33b7: 0x000a, 0x33b8: 0x000a, 0x33b9: 0x000a, 0x33ba: 0x000a, 0x33bb: 0x000a,
- 0x33bc: 0x000a, 0x33bd: 0x000a, 0x33be: 0x000a, 0x33bf: 0x000a,
- // Block 0xcf, offset 0x33c0
- 0x33c0: 0x000a, 0x33c1: 0x000a, 0x33c2: 0x000a, 0x33c3: 0x000a, 0x33c4: 0x000a, 0x33c5: 0x000a,
- 0x33c6: 0x000a, 0x33c7: 0x000a, 0x33c8: 0x000a, 0x33c9: 0x000a, 0x33ca: 0x000a, 0x33cb: 0x000a,
- 0x33cc: 0x000a, 0x33cd: 0x000a, 0x33ce: 0x000a, 0x33cf: 0x000a, 0x33d0: 0x000a, 0x33d1: 0x000a,
- 0x33d2: 0x000a, 0x33d3: 0x000a,
- 0x33e0: 0x000a, 0x33e1: 0x000a, 0x33e2: 0x000a, 0x33e3: 0x000a,
- 0x33e4: 0x000a, 0x33e5: 0x000a, 0x33e6: 0x000a, 0x33e7: 0x000a, 0x33e8: 0x000a, 0x33e9: 0x000a,
- 0x33ea: 0x000a, 0x33eb: 0x000a, 0x33ec: 0x000a, 0x33ed: 0x000a, 0x33ee: 0x000a,
- 0x33f1: 0x000a, 0x33f2: 0x000a, 0x33f3: 0x000a, 0x33f4: 0x000a, 0x33f5: 0x000a,
- 0x33f6: 0x000a, 0x33f7: 0x000a, 0x33f8: 0x000a, 0x33f9: 0x000a, 0x33fa: 0x000a, 0x33fb: 0x000a,
- 0x33fc: 0x000a, 0x33fd: 0x000a, 0x33fe: 0x000a, 0x33ff: 0x000a,
- // Block 0xd0, offset 0x3400
- 0x3401: 0x000a, 0x3402: 0x000a, 0x3403: 0x000a, 0x3404: 0x000a, 0x3405: 0x000a,
- 0x3406: 0x000a, 0x3407: 0x000a, 0x3408: 0x000a, 0x3409: 0x000a, 0x340a: 0x000a, 0x340b: 0x000a,
- 0x340c: 0x000a, 0x340d: 0x000a, 0x340e: 0x000a, 0x340f: 0x000a, 0x3411: 0x000a,
- 0x3412: 0x000a, 0x3413: 0x000a, 0x3414: 0x000a, 0x3415: 0x000a, 0x3416: 0x000a, 0x3417: 0x000a,
- 0x3418: 0x000a, 0x3419: 0x000a, 0x341a: 0x000a, 0x341b: 0x000a, 0x341c: 0x000a, 0x341d: 0x000a,
- 0x341e: 0x000a, 0x341f: 0x000a, 0x3420: 0x000a, 0x3421: 0x000a, 0x3422: 0x000a, 0x3423: 0x000a,
- 0x3424: 0x000a, 0x3425: 0x000a, 0x3426: 0x000a, 0x3427: 0x000a, 0x3428: 0x000a, 0x3429: 0x000a,
- 0x342a: 0x000a, 0x342b: 0x000a, 0x342c: 0x000a, 0x342d: 0x000a, 0x342e: 0x000a, 0x342f: 0x000a,
- 0x3430: 0x000a, 0x3431: 0x000a, 0x3432: 0x000a, 0x3433: 0x000a, 0x3434: 0x000a, 0x3435: 0x000a,
- // Block 0xd1, offset 0x3440
- 0x3440: 0x0002, 0x3441: 0x0002, 0x3442: 0x0002, 0x3443: 0x0002, 0x3444: 0x0002, 0x3445: 0x0002,
- 0x3446: 0x0002, 0x3447: 0x0002, 0x3448: 0x0002, 0x3449: 0x0002, 0x344a: 0x0002, 0x344b: 0x000a,
- 0x344c: 0x000a,
- // Block 0xd2, offset 0x3480
- 0x34aa: 0x000a, 0x34ab: 0x000a,
- // Block 0xd3, offset 0x34c0
- 0x34c0: 0x000a, 0x34c1: 0x000a, 0x34c2: 0x000a, 0x34c3: 0x000a, 0x34c4: 0x000a, 0x34c5: 0x000a,
- 0x34c6: 0x000a, 0x34c7: 0x000a, 0x34c8: 0x000a, 0x34c9: 0x000a, 0x34ca: 0x000a, 0x34cb: 0x000a,
- 0x34cc: 0x000a, 0x34cd: 0x000a, 0x34ce: 0x000a, 0x34cf: 0x000a, 0x34d0: 0x000a, 0x34d1: 0x000a,
- 0x34d2: 0x000a,
- 0x34e0: 0x000a, 0x34e1: 0x000a, 0x34e2: 0x000a, 0x34e3: 0x000a,
- 0x34e4: 0x000a, 0x34e5: 0x000a, 0x34e6: 0x000a, 0x34e7: 0x000a, 0x34e8: 0x000a, 0x34e9: 0x000a,
- 0x34ea: 0x000a, 0x34eb: 0x000a, 0x34ec: 0x000a,
- 0x34f0: 0x000a, 0x34f1: 0x000a, 0x34f2: 0x000a, 0x34f3: 0x000a, 0x34f4: 0x000a, 0x34f5: 0x000a,
- 0x34f6: 0x000a,
- // Block 0xd4, offset 0x3500
- 0x3500: 0x000a, 0x3501: 0x000a, 0x3502: 0x000a, 0x3503: 0x000a, 0x3504: 0x000a, 0x3505: 0x000a,
- 0x3506: 0x000a, 0x3507: 0x000a, 0x3508: 0x000a, 0x3509: 0x000a, 0x350a: 0x000a, 0x350b: 0x000a,
- 0x350c: 0x000a, 0x350d: 0x000a, 0x350e: 0x000a, 0x350f: 0x000a, 0x3510: 0x000a, 0x3511: 0x000a,
- 0x3512: 0x000a, 0x3513: 0x000a, 0x3514: 0x000a,
- // Block 0xd5, offset 0x3540
- 0x3540: 0x000a, 0x3541: 0x000a, 0x3542: 0x000a, 0x3543: 0x000a, 0x3544: 0x000a, 0x3545: 0x000a,
- 0x3546: 0x000a, 0x3547: 0x000a, 0x3548: 0x000a, 0x3549: 0x000a, 0x354a: 0x000a, 0x354b: 0x000a,
- 0x3550: 0x000a, 0x3551: 0x000a,
- 0x3552: 0x000a, 0x3553: 0x000a, 0x3554: 0x000a, 0x3555: 0x000a, 0x3556: 0x000a, 0x3557: 0x000a,
- 0x3558: 0x000a, 0x3559: 0x000a, 0x355a: 0x000a, 0x355b: 0x000a, 0x355c: 0x000a, 0x355d: 0x000a,
- 0x355e: 0x000a, 0x355f: 0x000a, 0x3560: 0x000a, 0x3561: 0x000a, 0x3562: 0x000a, 0x3563: 0x000a,
- 0x3564: 0x000a, 0x3565: 0x000a, 0x3566: 0x000a, 0x3567: 0x000a, 0x3568: 0x000a, 0x3569: 0x000a,
- 0x356a: 0x000a, 0x356b: 0x000a, 0x356c: 0x000a, 0x356d: 0x000a, 0x356e: 0x000a, 0x356f: 0x000a,
- 0x3570: 0x000a, 0x3571: 0x000a, 0x3572: 0x000a, 0x3573: 0x000a, 0x3574: 0x000a, 0x3575: 0x000a,
- 0x3576: 0x000a, 0x3577: 0x000a, 0x3578: 0x000a, 0x3579: 0x000a, 0x357a: 0x000a, 0x357b: 0x000a,
- 0x357c: 0x000a, 0x357d: 0x000a, 0x357e: 0x000a, 0x357f: 0x000a,
- // Block 0xd6, offset 0x3580
- 0x3580: 0x000a, 0x3581: 0x000a, 0x3582: 0x000a, 0x3583: 0x000a, 0x3584: 0x000a, 0x3585: 0x000a,
- 0x3586: 0x000a, 0x3587: 0x000a,
- 0x3590: 0x000a, 0x3591: 0x000a,
- 0x3592: 0x000a, 0x3593: 0x000a, 0x3594: 0x000a, 0x3595: 0x000a, 0x3596: 0x000a, 0x3597: 0x000a,
- 0x3598: 0x000a, 0x3599: 0x000a,
- 0x35a0: 0x000a, 0x35a1: 0x000a, 0x35a2: 0x000a, 0x35a3: 0x000a,
- 0x35a4: 0x000a, 0x35a5: 0x000a, 0x35a6: 0x000a, 0x35a7: 0x000a, 0x35a8: 0x000a, 0x35a9: 0x000a,
- 0x35aa: 0x000a, 0x35ab: 0x000a, 0x35ac: 0x000a, 0x35ad: 0x000a, 0x35ae: 0x000a, 0x35af: 0x000a,
- 0x35b0: 0x000a, 0x35b1: 0x000a, 0x35b2: 0x000a, 0x35b3: 0x000a, 0x35b4: 0x000a, 0x35b5: 0x000a,
- 0x35b6: 0x000a, 0x35b7: 0x000a, 0x35b8: 0x000a, 0x35b9: 0x000a, 0x35ba: 0x000a, 0x35bb: 0x000a,
- 0x35bc: 0x000a, 0x35bd: 0x000a, 0x35be: 0x000a, 0x35bf: 0x000a,
- // Block 0xd7, offset 0x35c0
- 0x35c0: 0x000a, 0x35c1: 0x000a, 0x35c2: 0x000a, 0x35c3: 0x000a, 0x35c4: 0x000a, 0x35c5: 0x000a,
- 0x35c6: 0x000a, 0x35c7: 0x000a,
- 0x35d0: 0x000a, 0x35d1: 0x000a,
- 0x35d2: 0x000a, 0x35d3: 0x000a, 0x35d4: 0x000a, 0x35d5: 0x000a, 0x35d6: 0x000a, 0x35d7: 0x000a,
- 0x35d8: 0x000a, 0x35d9: 0x000a, 0x35da: 0x000a, 0x35db: 0x000a, 0x35dc: 0x000a, 0x35dd: 0x000a,
- 0x35de: 0x000a, 0x35df: 0x000a, 0x35e0: 0x000a, 0x35e1: 0x000a, 0x35e2: 0x000a, 0x35e3: 0x000a,
- 0x35e4: 0x000a, 0x35e5: 0x000a, 0x35e6: 0x000a, 0x35e7: 0x000a, 0x35e8: 0x000a, 0x35e9: 0x000a,
- 0x35ea: 0x000a, 0x35eb: 0x000a, 0x35ec: 0x000a, 0x35ed: 0x000a,
- // Block 0xd8, offset 0x3600
- 0x3610: 0x000a, 0x3611: 0x000a,
- 0x3612: 0x000a, 0x3613: 0x000a, 0x3614: 0x000a, 0x3615: 0x000a, 0x3616: 0x000a, 0x3617: 0x000a,
- 0x3618: 0x000a, 0x3619: 0x000a, 0x361a: 0x000a, 0x361b: 0x000a, 0x361c: 0x000a, 0x361d: 0x000a,
- 0x361e: 0x000a, 0x3620: 0x000a, 0x3621: 0x000a, 0x3622: 0x000a, 0x3623: 0x000a,
- 0x3624: 0x000a, 0x3625: 0x000a, 0x3626: 0x000a, 0x3627: 0x000a,
- 0x3630: 0x000a, 0x3633: 0x000a, 0x3634: 0x000a, 0x3635: 0x000a,
- 0x3636: 0x000a, 0x3637: 0x000a, 0x3638: 0x000a, 0x3639: 0x000a, 0x363a: 0x000a, 0x363b: 0x000a,
- 0x363c: 0x000a, 0x363d: 0x000a, 0x363e: 0x000a,
- // Block 0xd9, offset 0x3640
- 0x3640: 0x000a, 0x3641: 0x000a, 0x3642: 0x000a, 0x3643: 0x000a, 0x3644: 0x000a, 0x3645: 0x000a,
- 0x3646: 0x000a, 0x3647: 0x000a, 0x3648: 0x000a, 0x3649: 0x000a, 0x364a: 0x000a, 0x364b: 0x000a,
- 0x3650: 0x000a, 0x3651: 0x000a,
- 0x3652: 0x000a, 0x3653: 0x000a, 0x3654: 0x000a, 0x3655: 0x000a, 0x3656: 0x000a, 0x3657: 0x000a,
- 0x3658: 0x000a, 0x3659: 0x000a, 0x365a: 0x000a, 0x365b: 0x000a, 0x365c: 0x000a, 0x365d: 0x000a,
- 0x365e: 0x000a,
- // Block 0xda, offset 0x3680
- 0x3680: 0x000a, 0x3681: 0x000a, 0x3682: 0x000a, 0x3683: 0x000a, 0x3684: 0x000a, 0x3685: 0x000a,
- 0x3686: 0x000a, 0x3687: 0x000a, 0x3688: 0x000a, 0x3689: 0x000a, 0x368a: 0x000a, 0x368b: 0x000a,
- 0x368c: 0x000a, 0x368d: 0x000a, 0x368e: 0x000a, 0x368f: 0x000a, 0x3690: 0x000a, 0x3691: 0x000a,
- // Block 0xdb, offset 0x36c0
- 0x36fe: 0x000b, 0x36ff: 0x000b,
- // Block 0xdc, offset 0x3700
- 0x3700: 0x000b, 0x3701: 0x000b, 0x3702: 0x000b, 0x3703: 0x000b, 0x3704: 0x000b, 0x3705: 0x000b,
- 0x3706: 0x000b, 0x3707: 0x000b, 0x3708: 0x000b, 0x3709: 0x000b, 0x370a: 0x000b, 0x370b: 0x000b,
- 0x370c: 0x000b, 0x370d: 0x000b, 0x370e: 0x000b, 0x370f: 0x000b, 0x3710: 0x000b, 0x3711: 0x000b,
- 0x3712: 0x000b, 0x3713: 0x000b, 0x3714: 0x000b, 0x3715: 0x000b, 0x3716: 0x000b, 0x3717: 0x000b,
- 0x3718: 0x000b, 0x3719: 0x000b, 0x371a: 0x000b, 0x371b: 0x000b, 0x371c: 0x000b, 0x371d: 0x000b,
- 0x371e: 0x000b, 0x371f: 0x000b, 0x3720: 0x000b, 0x3721: 0x000b, 0x3722: 0x000b, 0x3723: 0x000b,
- 0x3724: 0x000b, 0x3725: 0x000b, 0x3726: 0x000b, 0x3727: 0x000b, 0x3728: 0x000b, 0x3729: 0x000b,
- 0x372a: 0x000b, 0x372b: 0x000b, 0x372c: 0x000b, 0x372d: 0x000b, 0x372e: 0x000b, 0x372f: 0x000b,
- 0x3730: 0x000b, 0x3731: 0x000b, 0x3732: 0x000b, 0x3733: 0x000b, 0x3734: 0x000b, 0x3735: 0x000b,
- 0x3736: 0x000b, 0x3737: 0x000b, 0x3738: 0x000b, 0x3739: 0x000b, 0x373a: 0x000b, 0x373b: 0x000b,
- 0x373c: 0x000b, 0x373d: 0x000b, 0x373e: 0x000b, 0x373f: 0x000b,
- // Block 0xdd, offset 0x3740
- 0x3740: 0x000c, 0x3741: 0x000c, 0x3742: 0x000c, 0x3743: 0x000c, 0x3744: 0x000c, 0x3745: 0x000c,
- 0x3746: 0x000c, 0x3747: 0x000c, 0x3748: 0x000c, 0x3749: 0x000c, 0x374a: 0x000c, 0x374b: 0x000c,
- 0x374c: 0x000c, 0x374d: 0x000c, 0x374e: 0x000c, 0x374f: 0x000c, 0x3750: 0x000c, 0x3751: 0x000c,
- 0x3752: 0x000c, 0x3753: 0x000c, 0x3754: 0x000c, 0x3755: 0x000c, 0x3756: 0x000c, 0x3757: 0x000c,
- 0x3758: 0x000c, 0x3759: 0x000c, 0x375a: 0x000c, 0x375b: 0x000c, 0x375c: 0x000c, 0x375d: 0x000c,
- 0x375e: 0x000c, 0x375f: 0x000c, 0x3760: 0x000c, 0x3761: 0x000c, 0x3762: 0x000c, 0x3763: 0x000c,
- 0x3764: 0x000c, 0x3765: 0x000c, 0x3766: 0x000c, 0x3767: 0x000c, 0x3768: 0x000c, 0x3769: 0x000c,
- 0x376a: 0x000c, 0x376b: 0x000c, 0x376c: 0x000c, 0x376d: 0x000c, 0x376e: 0x000c, 0x376f: 0x000c,
- 0x3770: 0x000b, 0x3771: 0x000b, 0x3772: 0x000b, 0x3773: 0x000b, 0x3774: 0x000b, 0x3775: 0x000b,
- 0x3776: 0x000b, 0x3777: 0x000b, 0x3778: 0x000b, 0x3779: 0x000b, 0x377a: 0x000b, 0x377b: 0x000b,
- 0x377c: 0x000b, 0x377d: 0x000b, 0x377e: 0x000b, 0x377f: 0x000b,
-}
-
-// bidiIndex: 24 blocks, 1536 entries, 1536 bytes
-// Block 0 is the zero block.
-var bidiIndex = [1536]uint8{
- // Block 0x0, offset 0x0
- // Block 0x1, offset 0x40
- // Block 0x2, offset 0x80
- // Block 0x3, offset 0xc0
- 0xc2: 0x01, 0xc3: 0x02,
- 0xca: 0x03, 0xcb: 0x04, 0xcc: 0x05, 0xcd: 0x06, 0xce: 0x07, 0xcf: 0x08,
- 0xd2: 0x09, 0xd6: 0x0a, 0xd7: 0x0b,
- 0xd8: 0x0c, 0xd9: 0x0d, 0xda: 0x0e, 0xdb: 0x0f, 0xdc: 0x10, 0xdd: 0x11, 0xde: 0x12, 0xdf: 0x13,
- 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, 0xe4: 0x06,
- 0xea: 0x07, 0xef: 0x08,
- 0xf0: 0x11, 0xf1: 0x12, 0xf2: 0x12, 0xf3: 0x14, 0xf4: 0x15,
- // Block 0x4, offset 0x100
- 0x120: 0x14, 0x121: 0x15, 0x122: 0x16, 0x123: 0x17, 0x124: 0x18, 0x125: 0x19, 0x126: 0x1a, 0x127: 0x1b,
- 0x128: 0x1c, 0x129: 0x1d, 0x12a: 0x1c, 0x12b: 0x1e, 0x12c: 0x1f, 0x12d: 0x20, 0x12e: 0x21, 0x12f: 0x22,
- 0x130: 0x23, 0x131: 0x24, 0x132: 0x1a, 0x133: 0x25, 0x134: 0x26, 0x135: 0x27, 0x137: 0x28,
- 0x138: 0x29, 0x139: 0x2a, 0x13a: 0x2b, 0x13b: 0x2c, 0x13c: 0x2d, 0x13d: 0x2e, 0x13e: 0x2f, 0x13f: 0x30,
- // Block 0x5, offset 0x140
- 0x140: 0x31, 0x141: 0x32, 0x142: 0x33,
- 0x14d: 0x34, 0x14e: 0x35,
- 0x150: 0x36,
- 0x15a: 0x37, 0x15c: 0x38, 0x15d: 0x39, 0x15e: 0x3a, 0x15f: 0x3b,
- 0x160: 0x3c, 0x162: 0x3d, 0x164: 0x3e, 0x165: 0x3f, 0x167: 0x40,
- 0x168: 0x41, 0x169: 0x42, 0x16a: 0x43, 0x16c: 0x44, 0x16d: 0x45, 0x16e: 0x46, 0x16f: 0x47,
- 0x170: 0x48, 0x173: 0x49, 0x177: 0x4a,
- 0x17e: 0x4b, 0x17f: 0x4c,
- // Block 0x6, offset 0x180
- 0x180: 0x4d, 0x181: 0x4e, 0x182: 0x4f, 0x183: 0x50, 0x184: 0x51, 0x185: 0x52, 0x186: 0x53, 0x187: 0x54,
- 0x188: 0x55, 0x189: 0x54, 0x18a: 0x54, 0x18b: 0x54, 0x18c: 0x56, 0x18d: 0x57, 0x18e: 0x58, 0x18f: 0x59,
- 0x190: 0x5a, 0x191: 0x5b, 0x192: 0x5c, 0x193: 0x5d, 0x194: 0x54, 0x195: 0x54, 0x196: 0x54, 0x197: 0x54,
- 0x198: 0x54, 0x199: 0x54, 0x19a: 0x5e, 0x19b: 0x54, 0x19c: 0x54, 0x19d: 0x5f, 0x19e: 0x54, 0x19f: 0x60,
- 0x1a4: 0x54, 0x1a5: 0x54, 0x1a6: 0x61, 0x1a7: 0x62,
- 0x1a8: 0x54, 0x1a9: 0x54, 0x1aa: 0x54, 0x1ab: 0x54, 0x1ac: 0x54, 0x1ad: 0x63, 0x1ae: 0x64, 0x1af: 0x65,
- 0x1b3: 0x66, 0x1b5: 0x67, 0x1b7: 0x68,
- 0x1b8: 0x69, 0x1b9: 0x6a, 0x1ba: 0x6b, 0x1bb: 0x6c, 0x1bc: 0x54, 0x1bd: 0x54, 0x1be: 0x54, 0x1bf: 0x6d,
- // Block 0x7, offset 0x1c0
- 0x1c0: 0x6e, 0x1c2: 0x6f, 0x1c3: 0x70, 0x1c7: 0x71,
- 0x1c8: 0x72, 0x1c9: 0x73, 0x1ca: 0x74, 0x1cb: 0x75, 0x1cd: 0x76, 0x1cf: 0x77,
- // Block 0x8, offset 0x200
- 0x237: 0x54,
- // Block 0x9, offset 0x240
- 0x252: 0x78, 0x253: 0x79,
- 0x258: 0x7a, 0x259: 0x7b, 0x25a: 0x7c, 0x25b: 0x7d, 0x25c: 0x7e, 0x25e: 0x7f,
- 0x260: 0x80, 0x261: 0x81, 0x263: 0x82, 0x264: 0x83, 0x265: 0x84, 0x266: 0x85, 0x267: 0x86,
- 0x268: 0x87, 0x269: 0x88, 0x26a: 0x89, 0x26b: 0x8a, 0x26f: 0x8b,
- // Block 0xa, offset 0x280
- 0x2ac: 0x8c, 0x2ad: 0x8d, 0x2ae: 0x0e, 0x2af: 0x0e,
- 0x2b0: 0x0e, 0x2b1: 0x0e, 0x2b2: 0x0e, 0x2b3: 0x0e, 0x2b4: 0x8e, 0x2b5: 0x0e, 0x2b6: 0x0e, 0x2b7: 0x8f,
- 0x2b8: 0x90, 0x2b9: 0x91, 0x2ba: 0x0e, 0x2bb: 0x92, 0x2bc: 0x93, 0x2bd: 0x94, 0x2bf: 0x95,
- // Block 0xb, offset 0x2c0
- 0x2c4: 0x96, 0x2c5: 0x54, 0x2c6: 0x97, 0x2c7: 0x98,
- 0x2cb: 0x99, 0x2cd: 0x9a,
- 0x2e0: 0x9b, 0x2e1: 0x9b, 0x2e2: 0x9b, 0x2e3: 0x9b, 0x2e4: 0x9c, 0x2e5: 0x9b, 0x2e6: 0x9b, 0x2e7: 0x9b,
- 0x2e8: 0x9d, 0x2e9: 0x9b, 0x2ea: 0x9b, 0x2eb: 0x9e, 0x2ec: 0x9f, 0x2ed: 0x9b, 0x2ee: 0x9b, 0x2ef: 0x9b,
- 0x2f0: 0x9b, 0x2f1: 0x9b, 0x2f2: 0x9b, 0x2f3: 0x9b, 0x2f4: 0x9b, 0x2f5: 0x9b, 0x2f6: 0x9b, 0x2f7: 0x9b,
- 0x2f8: 0x9b, 0x2f9: 0xa0, 0x2fa: 0x9b, 0x2fb: 0x9b, 0x2fc: 0x9b, 0x2fd: 0x9b, 0x2fe: 0x9b, 0x2ff: 0x9b,
- // Block 0xc, offset 0x300
- 0x300: 0xa1, 0x301: 0xa2, 0x302: 0xa3, 0x304: 0xa4, 0x305: 0xa5, 0x306: 0xa6, 0x307: 0xa7,
- 0x308: 0xa8, 0x30b: 0xa9, 0x30c: 0xaa, 0x30d: 0xab,
- 0x310: 0xac, 0x311: 0xad, 0x312: 0xae, 0x313: 0xaf, 0x316: 0xb0, 0x317: 0xb1,
- 0x318: 0xb2, 0x319: 0xb3, 0x31a: 0xb4, 0x31c: 0xb5,
- 0x330: 0xb6, 0x332: 0xb7,
- // Block 0xd, offset 0x340
- 0x36b: 0xb8, 0x36c: 0xb9,
- 0x37e: 0xba,
- // Block 0xe, offset 0x380
- 0x3b2: 0xbb,
- // Block 0xf, offset 0x3c0
- 0x3c5: 0xbc, 0x3c6: 0xbd,
- 0x3c8: 0x54, 0x3c9: 0xbe, 0x3cc: 0x54, 0x3cd: 0xbf,
- 0x3db: 0xc0, 0x3dc: 0xc1, 0x3dd: 0xc2, 0x3de: 0xc3, 0x3df: 0xc4,
- 0x3e8: 0xc5, 0x3e9: 0xc6, 0x3ea: 0xc7,
- // Block 0x10, offset 0x400
- 0x400: 0xc8,
- 0x420: 0x9b, 0x421: 0x9b, 0x422: 0x9b, 0x423: 0xc9, 0x424: 0x9b, 0x425: 0xca, 0x426: 0x9b, 0x427: 0x9b,
- 0x428: 0x9b, 0x429: 0x9b, 0x42a: 0x9b, 0x42b: 0x9b, 0x42c: 0x9b, 0x42d: 0x9b, 0x42e: 0x9b, 0x42f: 0x9b,
- 0x430: 0x9b, 0x431: 0x9b, 0x432: 0x9b, 0x433: 0x9b, 0x434: 0x9b, 0x435: 0x9b, 0x436: 0x9b, 0x437: 0x9b,
- 0x438: 0x0e, 0x439: 0x0e, 0x43a: 0x0e, 0x43b: 0xcb, 0x43c: 0x9b, 0x43d: 0x9b, 0x43e: 0x9b, 0x43f: 0x9b,
- // Block 0x11, offset 0x440
- 0x440: 0xcc, 0x441: 0x54, 0x442: 0xcd, 0x443: 0xce, 0x444: 0xcf, 0x445: 0xd0,
- 0x44c: 0x54, 0x44d: 0x54, 0x44e: 0x54, 0x44f: 0x54,
- 0x450: 0x54, 0x451: 0x54, 0x452: 0x54, 0x453: 0x54, 0x454: 0x54, 0x455: 0x54, 0x456: 0x54, 0x457: 0x54,
- 0x458: 0x54, 0x459: 0x54, 0x45a: 0x54, 0x45b: 0xd1, 0x45c: 0x54, 0x45d: 0x6c, 0x45e: 0x54, 0x45f: 0xd2,
- 0x460: 0xd3, 0x461: 0xd4, 0x462: 0xd5, 0x464: 0xd6, 0x465: 0xd7, 0x466: 0xd8, 0x467: 0x36,
- 0x47f: 0xd9,
- // Block 0x12, offset 0x480
- 0x4bf: 0xd9,
- // Block 0x13, offset 0x4c0
- 0x4d0: 0x09, 0x4d1: 0x0a, 0x4d6: 0x0b,
- 0x4db: 0x0c, 0x4dd: 0x0d, 0x4de: 0x0e, 0x4df: 0x0f,
- 0x4ef: 0x10,
- 0x4ff: 0x10,
- // Block 0x14, offset 0x500
- 0x50f: 0x10,
- 0x51f: 0x10,
- 0x52f: 0x10,
- 0x53f: 0x10,
- // Block 0x15, offset 0x540
- 0x540: 0xda, 0x541: 0xda, 0x542: 0xda, 0x543: 0xda, 0x544: 0x05, 0x545: 0x05, 0x546: 0x05, 0x547: 0xdb,
- 0x548: 0xda, 0x549: 0xda, 0x54a: 0xda, 0x54b: 0xda, 0x54c: 0xda, 0x54d: 0xda, 0x54e: 0xda, 0x54f: 0xda,
- 0x550: 0xda, 0x551: 0xda, 0x552: 0xda, 0x553: 0xda, 0x554: 0xda, 0x555: 0xda, 0x556: 0xda, 0x557: 0xda,
- 0x558: 0xda, 0x559: 0xda, 0x55a: 0xda, 0x55b: 0xda, 0x55c: 0xda, 0x55d: 0xda, 0x55e: 0xda, 0x55f: 0xda,
- 0x560: 0xda, 0x561: 0xda, 0x562: 0xda, 0x563: 0xda, 0x564: 0xda, 0x565: 0xda, 0x566: 0xda, 0x567: 0xda,
- 0x568: 0xda, 0x569: 0xda, 0x56a: 0xda, 0x56b: 0xda, 0x56c: 0xda, 0x56d: 0xda, 0x56e: 0xda, 0x56f: 0xda,
- 0x570: 0xda, 0x571: 0xda, 0x572: 0xda, 0x573: 0xda, 0x574: 0xda, 0x575: 0xda, 0x576: 0xda, 0x577: 0xda,
- 0x578: 0xda, 0x579: 0xda, 0x57a: 0xda, 0x57b: 0xda, 0x57c: 0xda, 0x57d: 0xda, 0x57e: 0xda, 0x57f: 0xda,
- // Block 0x16, offset 0x580
- 0x58f: 0x10,
- 0x59f: 0x10,
- 0x5a0: 0x13,
- 0x5af: 0x10,
- 0x5bf: 0x10,
- // Block 0x17, offset 0x5c0
- 0x5cf: 0x10,
-}
-
-// Total table size 15800 bytes (15KiB); checksum: F50EF68C
diff --git a/vendor/golang.org/x/text/unicode/norm/forminfo.go b/vendor/golang.org/x/text/unicode/norm/forminfo.go
index 487335d1..f3a234e5 100644
--- a/vendor/golang.org/x/text/unicode/norm/forminfo.go
+++ b/vendor/golang.org/x/text/unicode/norm/forminfo.go
@@ -13,15 +13,18 @@ import "encoding/binary"
// a rune to a uint16. The values take two forms. For v >= 0x8000:
// bits
// 15: 1 (inverse of NFD_QC bit of qcInfo)
-// 13..7: qcInfo (see below). isYesD is always true (no decomposition).
+// 12..7: qcInfo (see below). isYesD is always true (no decomposition).
// 6..0: ccc (compressed CCC value).
// For v < 0x8000, the respective rune has a decomposition and v is an index
// into a byte array of UTF-8 decomposition sequences and additional info and
// has the form:
// * [ []]
// The header contains the number of bytes in the decomposition (excluding this
-// length byte). The two most significant bits of this length byte correspond
-// to bit 5 and 4 of qcInfo (see below). The byte sequence itself starts at v+1.
+// length byte), with 33 mapped to 31 to fit in 5 bits.
+// (If any 31- or 32-byte decompositions come along, we could switch to using
+// use a general lookup table as long as there are at most 32 distinct lengths.)
+// The three most significant bits of this length byte correspond
+// to bit 5, 4, and 3 of qcInfo (see below). The byte sequence itself starts at v+1.
// The byte sequence is followed by a trailing and leading CCC if the values
// for these are not zero. The value of v determines which ccc are appended
// to the sequences. For v < firstCCC, there are none, for v >= firstCCC,
@@ -32,8 +35,8 @@ import "encoding/binary"
const (
qcInfoMask = 0x3F // to clear all but the relevant bits in a qcInfo
- headerLenMask = 0x3F // extract the length value from the header byte
- headerFlagsMask = 0xC0 // extract the qcInfo bits from the header byte
+ headerLenMask = 0x1F // extract the length value from the header byte (31 => 33)
+ headerFlagsMask = 0xE0 // extract the qcInfo bits from the header byte
)
// Properties provides access to normalization properties of a rune.
@@ -109,14 +112,14 @@ func (p Properties) BoundaryAfter() bool {
return p.isInert()
}
-// We pack quick check data in 4 bits:
+// We pack quick check data in 6 bits:
//
// 5: Combines forward (0 == false, 1 == true)
// 4..3: NFC_QC Yes(00), No (10), or Maybe (11)
// 2: NFD_QC Yes (0) or No (1). No also means there is a decomposition.
// 1..0: Number of trailing non-starters.
//
-// When all 4 bits are zero, the character is inert, meaning it is never
+// When all 6 bits are zero, the character is inert, meaning it is never
// influenced by normalization.
type qcInfo uint8
@@ -152,6 +155,9 @@ func (p Properties) Decomposition() []byte {
}
i := p.index
n := decomps[i] & headerLenMask
+ if n == 31 {
+ n = 33
+ }
i++
return decomps[i : i+uint16(n)]
}
@@ -260,7 +266,11 @@ func compInfo(v uint16, sz int) Properties {
f := (qcInfo(h&headerFlagsMask) >> 2) | 0x4
p := Properties{size: uint8(sz), flags: f, index: v}
if v >= firstCCC {
- v += uint16(h&headerLenMask) + 1
+ n := uint16(h & headerLenMask)
+ if n == 31 {
+ n = 33
+ }
+ v += n + 1
c := decomps[v]
p.tccc = c >> 2
p.flags |= qcInfo(c & 0x3)
diff --git a/vendor/golang.org/x/text/unicode/norm/tables10.0.0.go b/vendor/golang.org/x/text/unicode/norm/tables10.0.0.go
deleted file mode 100644
index 1af161c7..00000000
--- a/vendor/golang.org/x/text/unicode/norm/tables10.0.0.go
+++ /dev/null
@@ -1,7657 +0,0 @@
-// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
-
-//go:build go1.10 && !go1.13
-
-package norm
-
-import "sync"
-
-const (
- // Version is the Unicode edition from which the tables are derived.
- Version = "10.0.0"
-
- // MaxTransformChunkSize indicates the maximum number of bytes that Transform
- // may need to write atomically for any Form. Making a destination buffer at
- // least this size ensures that Transform can always make progress and that
- // the user does not need to grow the buffer on an ErrShortDst.
- MaxTransformChunkSize = 35 + maxNonStarters*4
-)
-
-var ccc = [55]uint8{
- 0, 1, 7, 8, 9, 10, 11, 12,
- 13, 14, 15, 16, 17, 18, 19, 20,
- 21, 22, 23, 24, 25, 26, 27, 28,
- 29, 30, 31, 32, 33, 34, 35, 36,
- 84, 91, 103, 107, 118, 122, 129, 130,
- 132, 202, 214, 216, 218, 220, 222, 224,
- 226, 228, 230, 232, 233, 234, 240,
-}
-
-const (
- firstMulti = 0x186D
- firstCCC = 0x2C9E
- endMulti = 0x2F60
- firstLeadingCCC = 0x49AE
- firstCCCZeroExcept = 0x4A78
- firstStarterWithNLead = 0x4A9F
- lastDecomp = 0x4AA1
- maxDecomp = 0x8000
-)
-
-// decomps: 19105 bytes
-var decomps = [...]byte{
- // Bytes 0 - 3f
- 0x00, 0x41, 0x20, 0x41, 0x21, 0x41, 0x22, 0x41,
- 0x23, 0x41, 0x24, 0x41, 0x25, 0x41, 0x26, 0x41,
- 0x27, 0x41, 0x28, 0x41, 0x29, 0x41, 0x2A, 0x41,
- 0x2B, 0x41, 0x2C, 0x41, 0x2D, 0x41, 0x2E, 0x41,
- 0x2F, 0x41, 0x30, 0x41, 0x31, 0x41, 0x32, 0x41,
- 0x33, 0x41, 0x34, 0x41, 0x35, 0x41, 0x36, 0x41,
- 0x37, 0x41, 0x38, 0x41, 0x39, 0x41, 0x3A, 0x41,
- 0x3B, 0x41, 0x3C, 0x41, 0x3D, 0x41, 0x3E, 0x41,
- // Bytes 40 - 7f
- 0x3F, 0x41, 0x40, 0x41, 0x41, 0x41, 0x42, 0x41,
- 0x43, 0x41, 0x44, 0x41, 0x45, 0x41, 0x46, 0x41,
- 0x47, 0x41, 0x48, 0x41, 0x49, 0x41, 0x4A, 0x41,
- 0x4B, 0x41, 0x4C, 0x41, 0x4D, 0x41, 0x4E, 0x41,
- 0x4F, 0x41, 0x50, 0x41, 0x51, 0x41, 0x52, 0x41,
- 0x53, 0x41, 0x54, 0x41, 0x55, 0x41, 0x56, 0x41,
- 0x57, 0x41, 0x58, 0x41, 0x59, 0x41, 0x5A, 0x41,
- 0x5B, 0x41, 0x5C, 0x41, 0x5D, 0x41, 0x5E, 0x41,
- // Bytes 80 - bf
- 0x5F, 0x41, 0x60, 0x41, 0x61, 0x41, 0x62, 0x41,
- 0x63, 0x41, 0x64, 0x41, 0x65, 0x41, 0x66, 0x41,
- 0x67, 0x41, 0x68, 0x41, 0x69, 0x41, 0x6A, 0x41,
- 0x6B, 0x41, 0x6C, 0x41, 0x6D, 0x41, 0x6E, 0x41,
- 0x6F, 0x41, 0x70, 0x41, 0x71, 0x41, 0x72, 0x41,
- 0x73, 0x41, 0x74, 0x41, 0x75, 0x41, 0x76, 0x41,
- 0x77, 0x41, 0x78, 0x41, 0x79, 0x41, 0x7A, 0x41,
- 0x7B, 0x41, 0x7C, 0x41, 0x7D, 0x41, 0x7E, 0x42,
- // Bytes c0 - ff
- 0xC2, 0xA2, 0x42, 0xC2, 0xA3, 0x42, 0xC2, 0xA5,
- 0x42, 0xC2, 0xA6, 0x42, 0xC2, 0xAC, 0x42, 0xC2,
- 0xB7, 0x42, 0xC3, 0x86, 0x42, 0xC3, 0xB0, 0x42,
- 0xC4, 0xA6, 0x42, 0xC4, 0xA7, 0x42, 0xC4, 0xB1,
- 0x42, 0xC5, 0x8B, 0x42, 0xC5, 0x93, 0x42, 0xC6,
- 0x8E, 0x42, 0xC6, 0x90, 0x42, 0xC6, 0xAB, 0x42,
- 0xC8, 0xA2, 0x42, 0xC8, 0xB7, 0x42, 0xC9, 0x90,
- 0x42, 0xC9, 0x91, 0x42, 0xC9, 0x92, 0x42, 0xC9,
- // Bytes 100 - 13f
- 0x94, 0x42, 0xC9, 0x95, 0x42, 0xC9, 0x99, 0x42,
- 0xC9, 0x9B, 0x42, 0xC9, 0x9C, 0x42, 0xC9, 0x9F,
- 0x42, 0xC9, 0xA1, 0x42, 0xC9, 0xA3, 0x42, 0xC9,
- 0xA5, 0x42, 0xC9, 0xA6, 0x42, 0xC9, 0xA8, 0x42,
- 0xC9, 0xA9, 0x42, 0xC9, 0xAA, 0x42, 0xC9, 0xAB,
- 0x42, 0xC9, 0xAD, 0x42, 0xC9, 0xAF, 0x42, 0xC9,
- 0xB0, 0x42, 0xC9, 0xB1, 0x42, 0xC9, 0xB2, 0x42,
- 0xC9, 0xB3, 0x42, 0xC9, 0xB4, 0x42, 0xC9, 0xB5,
- // Bytes 140 - 17f
- 0x42, 0xC9, 0xB8, 0x42, 0xC9, 0xB9, 0x42, 0xC9,
- 0xBB, 0x42, 0xCA, 0x81, 0x42, 0xCA, 0x82, 0x42,
- 0xCA, 0x83, 0x42, 0xCA, 0x89, 0x42, 0xCA, 0x8A,
- 0x42, 0xCA, 0x8B, 0x42, 0xCA, 0x8C, 0x42, 0xCA,
- 0x90, 0x42, 0xCA, 0x91, 0x42, 0xCA, 0x92, 0x42,
- 0xCA, 0x95, 0x42, 0xCA, 0x9D, 0x42, 0xCA, 0x9F,
- 0x42, 0xCA, 0xB9, 0x42, 0xCE, 0x91, 0x42, 0xCE,
- 0x92, 0x42, 0xCE, 0x93, 0x42, 0xCE, 0x94, 0x42,
- // Bytes 180 - 1bf
- 0xCE, 0x95, 0x42, 0xCE, 0x96, 0x42, 0xCE, 0x97,
- 0x42, 0xCE, 0x98, 0x42, 0xCE, 0x99, 0x42, 0xCE,
- 0x9A, 0x42, 0xCE, 0x9B, 0x42, 0xCE, 0x9C, 0x42,
- 0xCE, 0x9D, 0x42, 0xCE, 0x9E, 0x42, 0xCE, 0x9F,
- 0x42, 0xCE, 0xA0, 0x42, 0xCE, 0xA1, 0x42, 0xCE,
- 0xA3, 0x42, 0xCE, 0xA4, 0x42, 0xCE, 0xA5, 0x42,
- 0xCE, 0xA6, 0x42, 0xCE, 0xA7, 0x42, 0xCE, 0xA8,
- 0x42, 0xCE, 0xA9, 0x42, 0xCE, 0xB1, 0x42, 0xCE,
- // Bytes 1c0 - 1ff
- 0xB2, 0x42, 0xCE, 0xB3, 0x42, 0xCE, 0xB4, 0x42,
- 0xCE, 0xB5, 0x42, 0xCE, 0xB6, 0x42, 0xCE, 0xB7,
- 0x42, 0xCE, 0xB8, 0x42, 0xCE, 0xB9, 0x42, 0xCE,
- 0xBA, 0x42, 0xCE, 0xBB, 0x42, 0xCE, 0xBC, 0x42,
- 0xCE, 0xBD, 0x42, 0xCE, 0xBE, 0x42, 0xCE, 0xBF,
- 0x42, 0xCF, 0x80, 0x42, 0xCF, 0x81, 0x42, 0xCF,
- 0x82, 0x42, 0xCF, 0x83, 0x42, 0xCF, 0x84, 0x42,
- 0xCF, 0x85, 0x42, 0xCF, 0x86, 0x42, 0xCF, 0x87,
- // Bytes 200 - 23f
- 0x42, 0xCF, 0x88, 0x42, 0xCF, 0x89, 0x42, 0xCF,
- 0x9C, 0x42, 0xCF, 0x9D, 0x42, 0xD0, 0xBD, 0x42,
- 0xD1, 0x8A, 0x42, 0xD1, 0x8C, 0x42, 0xD7, 0x90,
- 0x42, 0xD7, 0x91, 0x42, 0xD7, 0x92, 0x42, 0xD7,
- 0x93, 0x42, 0xD7, 0x94, 0x42, 0xD7, 0x9B, 0x42,
- 0xD7, 0x9C, 0x42, 0xD7, 0x9D, 0x42, 0xD7, 0xA2,
- 0x42, 0xD7, 0xA8, 0x42, 0xD7, 0xAA, 0x42, 0xD8,
- 0xA1, 0x42, 0xD8, 0xA7, 0x42, 0xD8, 0xA8, 0x42,
- // Bytes 240 - 27f
- 0xD8, 0xA9, 0x42, 0xD8, 0xAA, 0x42, 0xD8, 0xAB,
- 0x42, 0xD8, 0xAC, 0x42, 0xD8, 0xAD, 0x42, 0xD8,
- 0xAE, 0x42, 0xD8, 0xAF, 0x42, 0xD8, 0xB0, 0x42,
- 0xD8, 0xB1, 0x42, 0xD8, 0xB2, 0x42, 0xD8, 0xB3,
- 0x42, 0xD8, 0xB4, 0x42, 0xD8, 0xB5, 0x42, 0xD8,
- 0xB6, 0x42, 0xD8, 0xB7, 0x42, 0xD8, 0xB8, 0x42,
- 0xD8, 0xB9, 0x42, 0xD8, 0xBA, 0x42, 0xD9, 0x81,
- 0x42, 0xD9, 0x82, 0x42, 0xD9, 0x83, 0x42, 0xD9,
- // Bytes 280 - 2bf
- 0x84, 0x42, 0xD9, 0x85, 0x42, 0xD9, 0x86, 0x42,
- 0xD9, 0x87, 0x42, 0xD9, 0x88, 0x42, 0xD9, 0x89,
- 0x42, 0xD9, 0x8A, 0x42, 0xD9, 0xAE, 0x42, 0xD9,
- 0xAF, 0x42, 0xD9, 0xB1, 0x42, 0xD9, 0xB9, 0x42,
- 0xD9, 0xBA, 0x42, 0xD9, 0xBB, 0x42, 0xD9, 0xBE,
- 0x42, 0xD9, 0xBF, 0x42, 0xDA, 0x80, 0x42, 0xDA,
- 0x83, 0x42, 0xDA, 0x84, 0x42, 0xDA, 0x86, 0x42,
- 0xDA, 0x87, 0x42, 0xDA, 0x88, 0x42, 0xDA, 0x8C,
- // Bytes 2c0 - 2ff
- 0x42, 0xDA, 0x8D, 0x42, 0xDA, 0x8E, 0x42, 0xDA,
- 0x91, 0x42, 0xDA, 0x98, 0x42, 0xDA, 0xA1, 0x42,
- 0xDA, 0xA4, 0x42, 0xDA, 0xA6, 0x42, 0xDA, 0xA9,
- 0x42, 0xDA, 0xAD, 0x42, 0xDA, 0xAF, 0x42, 0xDA,
- 0xB1, 0x42, 0xDA, 0xB3, 0x42, 0xDA, 0xBA, 0x42,
- 0xDA, 0xBB, 0x42, 0xDA, 0xBE, 0x42, 0xDB, 0x81,
- 0x42, 0xDB, 0x85, 0x42, 0xDB, 0x86, 0x42, 0xDB,
- 0x87, 0x42, 0xDB, 0x88, 0x42, 0xDB, 0x89, 0x42,
- // Bytes 300 - 33f
- 0xDB, 0x8B, 0x42, 0xDB, 0x8C, 0x42, 0xDB, 0x90,
- 0x42, 0xDB, 0x92, 0x43, 0xE0, 0xBC, 0x8B, 0x43,
- 0xE1, 0x83, 0x9C, 0x43, 0xE1, 0x84, 0x80, 0x43,
- 0xE1, 0x84, 0x81, 0x43, 0xE1, 0x84, 0x82, 0x43,
- 0xE1, 0x84, 0x83, 0x43, 0xE1, 0x84, 0x84, 0x43,
- 0xE1, 0x84, 0x85, 0x43, 0xE1, 0x84, 0x86, 0x43,
- 0xE1, 0x84, 0x87, 0x43, 0xE1, 0x84, 0x88, 0x43,
- 0xE1, 0x84, 0x89, 0x43, 0xE1, 0x84, 0x8A, 0x43,
- // Bytes 340 - 37f
- 0xE1, 0x84, 0x8B, 0x43, 0xE1, 0x84, 0x8C, 0x43,
- 0xE1, 0x84, 0x8D, 0x43, 0xE1, 0x84, 0x8E, 0x43,
- 0xE1, 0x84, 0x8F, 0x43, 0xE1, 0x84, 0x90, 0x43,
- 0xE1, 0x84, 0x91, 0x43, 0xE1, 0x84, 0x92, 0x43,
- 0xE1, 0x84, 0x94, 0x43, 0xE1, 0x84, 0x95, 0x43,
- 0xE1, 0x84, 0x9A, 0x43, 0xE1, 0x84, 0x9C, 0x43,
- 0xE1, 0x84, 0x9D, 0x43, 0xE1, 0x84, 0x9E, 0x43,
- 0xE1, 0x84, 0xA0, 0x43, 0xE1, 0x84, 0xA1, 0x43,
- // Bytes 380 - 3bf
- 0xE1, 0x84, 0xA2, 0x43, 0xE1, 0x84, 0xA3, 0x43,
- 0xE1, 0x84, 0xA7, 0x43, 0xE1, 0x84, 0xA9, 0x43,
- 0xE1, 0x84, 0xAB, 0x43, 0xE1, 0x84, 0xAC, 0x43,
- 0xE1, 0x84, 0xAD, 0x43, 0xE1, 0x84, 0xAE, 0x43,
- 0xE1, 0x84, 0xAF, 0x43, 0xE1, 0x84, 0xB2, 0x43,
- 0xE1, 0x84, 0xB6, 0x43, 0xE1, 0x85, 0x80, 0x43,
- 0xE1, 0x85, 0x87, 0x43, 0xE1, 0x85, 0x8C, 0x43,
- 0xE1, 0x85, 0x97, 0x43, 0xE1, 0x85, 0x98, 0x43,
- // Bytes 3c0 - 3ff
- 0xE1, 0x85, 0x99, 0x43, 0xE1, 0x85, 0xA0, 0x43,
- 0xE1, 0x86, 0x84, 0x43, 0xE1, 0x86, 0x85, 0x43,
- 0xE1, 0x86, 0x88, 0x43, 0xE1, 0x86, 0x91, 0x43,
- 0xE1, 0x86, 0x92, 0x43, 0xE1, 0x86, 0x94, 0x43,
- 0xE1, 0x86, 0x9E, 0x43, 0xE1, 0x86, 0xA1, 0x43,
- 0xE1, 0x87, 0x87, 0x43, 0xE1, 0x87, 0x88, 0x43,
- 0xE1, 0x87, 0x8C, 0x43, 0xE1, 0x87, 0x8E, 0x43,
- 0xE1, 0x87, 0x93, 0x43, 0xE1, 0x87, 0x97, 0x43,
- // Bytes 400 - 43f
- 0xE1, 0x87, 0x99, 0x43, 0xE1, 0x87, 0x9D, 0x43,
- 0xE1, 0x87, 0x9F, 0x43, 0xE1, 0x87, 0xB1, 0x43,
- 0xE1, 0x87, 0xB2, 0x43, 0xE1, 0xB4, 0x82, 0x43,
- 0xE1, 0xB4, 0x96, 0x43, 0xE1, 0xB4, 0x97, 0x43,
- 0xE1, 0xB4, 0x9C, 0x43, 0xE1, 0xB4, 0x9D, 0x43,
- 0xE1, 0xB4, 0xA5, 0x43, 0xE1, 0xB5, 0xBB, 0x43,
- 0xE1, 0xB6, 0x85, 0x43, 0xE2, 0x80, 0x82, 0x43,
- 0xE2, 0x80, 0x83, 0x43, 0xE2, 0x80, 0x90, 0x43,
- // Bytes 440 - 47f
- 0xE2, 0x80, 0x93, 0x43, 0xE2, 0x80, 0x94, 0x43,
- 0xE2, 0x82, 0xA9, 0x43, 0xE2, 0x86, 0x90, 0x43,
- 0xE2, 0x86, 0x91, 0x43, 0xE2, 0x86, 0x92, 0x43,
- 0xE2, 0x86, 0x93, 0x43, 0xE2, 0x88, 0x82, 0x43,
- 0xE2, 0x88, 0x87, 0x43, 0xE2, 0x88, 0x91, 0x43,
- 0xE2, 0x88, 0x92, 0x43, 0xE2, 0x94, 0x82, 0x43,
- 0xE2, 0x96, 0xA0, 0x43, 0xE2, 0x97, 0x8B, 0x43,
- 0xE2, 0xA6, 0x85, 0x43, 0xE2, 0xA6, 0x86, 0x43,
- // Bytes 480 - 4bf
- 0xE2, 0xB5, 0xA1, 0x43, 0xE3, 0x80, 0x81, 0x43,
- 0xE3, 0x80, 0x82, 0x43, 0xE3, 0x80, 0x88, 0x43,
- 0xE3, 0x80, 0x89, 0x43, 0xE3, 0x80, 0x8A, 0x43,
- 0xE3, 0x80, 0x8B, 0x43, 0xE3, 0x80, 0x8C, 0x43,
- 0xE3, 0x80, 0x8D, 0x43, 0xE3, 0x80, 0x8E, 0x43,
- 0xE3, 0x80, 0x8F, 0x43, 0xE3, 0x80, 0x90, 0x43,
- 0xE3, 0x80, 0x91, 0x43, 0xE3, 0x80, 0x92, 0x43,
- 0xE3, 0x80, 0x94, 0x43, 0xE3, 0x80, 0x95, 0x43,
- // Bytes 4c0 - 4ff
- 0xE3, 0x80, 0x96, 0x43, 0xE3, 0x80, 0x97, 0x43,
- 0xE3, 0x82, 0xA1, 0x43, 0xE3, 0x82, 0xA2, 0x43,
- 0xE3, 0x82, 0xA3, 0x43, 0xE3, 0x82, 0xA4, 0x43,
- 0xE3, 0x82, 0xA5, 0x43, 0xE3, 0x82, 0xA6, 0x43,
- 0xE3, 0x82, 0xA7, 0x43, 0xE3, 0x82, 0xA8, 0x43,
- 0xE3, 0x82, 0xA9, 0x43, 0xE3, 0x82, 0xAA, 0x43,
- 0xE3, 0x82, 0xAB, 0x43, 0xE3, 0x82, 0xAD, 0x43,
- 0xE3, 0x82, 0xAF, 0x43, 0xE3, 0x82, 0xB1, 0x43,
- // Bytes 500 - 53f
- 0xE3, 0x82, 0xB3, 0x43, 0xE3, 0x82, 0xB5, 0x43,
- 0xE3, 0x82, 0xB7, 0x43, 0xE3, 0x82, 0xB9, 0x43,
- 0xE3, 0x82, 0xBB, 0x43, 0xE3, 0x82, 0xBD, 0x43,
- 0xE3, 0x82, 0xBF, 0x43, 0xE3, 0x83, 0x81, 0x43,
- 0xE3, 0x83, 0x83, 0x43, 0xE3, 0x83, 0x84, 0x43,
- 0xE3, 0x83, 0x86, 0x43, 0xE3, 0x83, 0x88, 0x43,
- 0xE3, 0x83, 0x8A, 0x43, 0xE3, 0x83, 0x8B, 0x43,
- 0xE3, 0x83, 0x8C, 0x43, 0xE3, 0x83, 0x8D, 0x43,
- // Bytes 540 - 57f
- 0xE3, 0x83, 0x8E, 0x43, 0xE3, 0x83, 0x8F, 0x43,
- 0xE3, 0x83, 0x92, 0x43, 0xE3, 0x83, 0x95, 0x43,
- 0xE3, 0x83, 0x98, 0x43, 0xE3, 0x83, 0x9B, 0x43,
- 0xE3, 0x83, 0x9E, 0x43, 0xE3, 0x83, 0x9F, 0x43,
- 0xE3, 0x83, 0xA0, 0x43, 0xE3, 0x83, 0xA1, 0x43,
- 0xE3, 0x83, 0xA2, 0x43, 0xE3, 0x83, 0xA3, 0x43,
- 0xE3, 0x83, 0xA4, 0x43, 0xE3, 0x83, 0xA5, 0x43,
- 0xE3, 0x83, 0xA6, 0x43, 0xE3, 0x83, 0xA7, 0x43,
- // Bytes 580 - 5bf
- 0xE3, 0x83, 0xA8, 0x43, 0xE3, 0x83, 0xA9, 0x43,
- 0xE3, 0x83, 0xAA, 0x43, 0xE3, 0x83, 0xAB, 0x43,
- 0xE3, 0x83, 0xAC, 0x43, 0xE3, 0x83, 0xAD, 0x43,
- 0xE3, 0x83, 0xAF, 0x43, 0xE3, 0x83, 0xB0, 0x43,
- 0xE3, 0x83, 0xB1, 0x43, 0xE3, 0x83, 0xB2, 0x43,
- 0xE3, 0x83, 0xB3, 0x43, 0xE3, 0x83, 0xBB, 0x43,
- 0xE3, 0x83, 0xBC, 0x43, 0xE3, 0x92, 0x9E, 0x43,
- 0xE3, 0x92, 0xB9, 0x43, 0xE3, 0x92, 0xBB, 0x43,
- // Bytes 5c0 - 5ff
- 0xE3, 0x93, 0x9F, 0x43, 0xE3, 0x94, 0x95, 0x43,
- 0xE3, 0x9B, 0xAE, 0x43, 0xE3, 0x9B, 0xBC, 0x43,
- 0xE3, 0x9E, 0x81, 0x43, 0xE3, 0xA0, 0xAF, 0x43,
- 0xE3, 0xA1, 0xA2, 0x43, 0xE3, 0xA1, 0xBC, 0x43,
- 0xE3, 0xA3, 0x87, 0x43, 0xE3, 0xA3, 0xA3, 0x43,
- 0xE3, 0xA4, 0x9C, 0x43, 0xE3, 0xA4, 0xBA, 0x43,
- 0xE3, 0xA8, 0xAE, 0x43, 0xE3, 0xA9, 0xAC, 0x43,
- 0xE3, 0xAB, 0xA4, 0x43, 0xE3, 0xAC, 0x88, 0x43,
- // Bytes 600 - 63f
- 0xE3, 0xAC, 0x99, 0x43, 0xE3, 0xAD, 0x89, 0x43,
- 0xE3, 0xAE, 0x9D, 0x43, 0xE3, 0xB0, 0x98, 0x43,
- 0xE3, 0xB1, 0x8E, 0x43, 0xE3, 0xB4, 0xB3, 0x43,
- 0xE3, 0xB6, 0x96, 0x43, 0xE3, 0xBA, 0xAC, 0x43,
- 0xE3, 0xBA, 0xB8, 0x43, 0xE3, 0xBC, 0x9B, 0x43,
- 0xE3, 0xBF, 0xBC, 0x43, 0xE4, 0x80, 0x88, 0x43,
- 0xE4, 0x80, 0x98, 0x43, 0xE4, 0x80, 0xB9, 0x43,
- 0xE4, 0x81, 0x86, 0x43, 0xE4, 0x82, 0x96, 0x43,
- // Bytes 640 - 67f
- 0xE4, 0x83, 0xA3, 0x43, 0xE4, 0x84, 0xAF, 0x43,
- 0xE4, 0x88, 0x82, 0x43, 0xE4, 0x88, 0xA7, 0x43,
- 0xE4, 0x8A, 0xA0, 0x43, 0xE4, 0x8C, 0x81, 0x43,
- 0xE4, 0x8C, 0xB4, 0x43, 0xE4, 0x8D, 0x99, 0x43,
- 0xE4, 0x8F, 0x95, 0x43, 0xE4, 0x8F, 0x99, 0x43,
- 0xE4, 0x90, 0x8B, 0x43, 0xE4, 0x91, 0xAB, 0x43,
- 0xE4, 0x94, 0xAB, 0x43, 0xE4, 0x95, 0x9D, 0x43,
- 0xE4, 0x95, 0xA1, 0x43, 0xE4, 0x95, 0xAB, 0x43,
- // Bytes 680 - 6bf
- 0xE4, 0x97, 0x97, 0x43, 0xE4, 0x97, 0xB9, 0x43,
- 0xE4, 0x98, 0xB5, 0x43, 0xE4, 0x9A, 0xBE, 0x43,
- 0xE4, 0x9B, 0x87, 0x43, 0xE4, 0xA6, 0x95, 0x43,
- 0xE4, 0xA7, 0xA6, 0x43, 0xE4, 0xA9, 0xAE, 0x43,
- 0xE4, 0xA9, 0xB6, 0x43, 0xE4, 0xAA, 0xB2, 0x43,
- 0xE4, 0xAC, 0xB3, 0x43, 0xE4, 0xAF, 0x8E, 0x43,
- 0xE4, 0xB3, 0x8E, 0x43, 0xE4, 0xB3, 0xAD, 0x43,
- 0xE4, 0xB3, 0xB8, 0x43, 0xE4, 0xB5, 0x96, 0x43,
- // Bytes 6c0 - 6ff
- 0xE4, 0xB8, 0x80, 0x43, 0xE4, 0xB8, 0x81, 0x43,
- 0xE4, 0xB8, 0x83, 0x43, 0xE4, 0xB8, 0x89, 0x43,
- 0xE4, 0xB8, 0x8A, 0x43, 0xE4, 0xB8, 0x8B, 0x43,
- 0xE4, 0xB8, 0x8D, 0x43, 0xE4, 0xB8, 0x99, 0x43,
- 0xE4, 0xB8, 0xA6, 0x43, 0xE4, 0xB8, 0xA8, 0x43,
- 0xE4, 0xB8, 0xAD, 0x43, 0xE4, 0xB8, 0xB2, 0x43,
- 0xE4, 0xB8, 0xB6, 0x43, 0xE4, 0xB8, 0xB8, 0x43,
- 0xE4, 0xB8, 0xB9, 0x43, 0xE4, 0xB8, 0xBD, 0x43,
- // Bytes 700 - 73f
- 0xE4, 0xB8, 0xBF, 0x43, 0xE4, 0xB9, 0x81, 0x43,
- 0xE4, 0xB9, 0x99, 0x43, 0xE4, 0xB9, 0x9D, 0x43,
- 0xE4, 0xBA, 0x82, 0x43, 0xE4, 0xBA, 0x85, 0x43,
- 0xE4, 0xBA, 0x86, 0x43, 0xE4, 0xBA, 0x8C, 0x43,
- 0xE4, 0xBA, 0x94, 0x43, 0xE4, 0xBA, 0xA0, 0x43,
- 0xE4, 0xBA, 0xA4, 0x43, 0xE4, 0xBA, 0xAE, 0x43,
- 0xE4, 0xBA, 0xBA, 0x43, 0xE4, 0xBB, 0x80, 0x43,
- 0xE4, 0xBB, 0x8C, 0x43, 0xE4, 0xBB, 0xA4, 0x43,
- // Bytes 740 - 77f
- 0xE4, 0xBC, 0x81, 0x43, 0xE4, 0xBC, 0x91, 0x43,
- 0xE4, 0xBD, 0xA0, 0x43, 0xE4, 0xBE, 0x80, 0x43,
- 0xE4, 0xBE, 0x86, 0x43, 0xE4, 0xBE, 0x8B, 0x43,
- 0xE4, 0xBE, 0xAE, 0x43, 0xE4, 0xBE, 0xBB, 0x43,
- 0xE4, 0xBE, 0xBF, 0x43, 0xE5, 0x80, 0x82, 0x43,
- 0xE5, 0x80, 0xAB, 0x43, 0xE5, 0x81, 0xBA, 0x43,
- 0xE5, 0x82, 0x99, 0x43, 0xE5, 0x83, 0x8F, 0x43,
- 0xE5, 0x83, 0x9A, 0x43, 0xE5, 0x83, 0xA7, 0x43,
- // Bytes 780 - 7bf
- 0xE5, 0x84, 0xAA, 0x43, 0xE5, 0x84, 0xBF, 0x43,
- 0xE5, 0x85, 0x80, 0x43, 0xE5, 0x85, 0x85, 0x43,
- 0xE5, 0x85, 0x8D, 0x43, 0xE5, 0x85, 0x94, 0x43,
- 0xE5, 0x85, 0xA4, 0x43, 0xE5, 0x85, 0xA5, 0x43,
- 0xE5, 0x85, 0xA7, 0x43, 0xE5, 0x85, 0xA8, 0x43,
- 0xE5, 0x85, 0xA9, 0x43, 0xE5, 0x85, 0xAB, 0x43,
- 0xE5, 0x85, 0xAD, 0x43, 0xE5, 0x85, 0xB7, 0x43,
- 0xE5, 0x86, 0x80, 0x43, 0xE5, 0x86, 0x82, 0x43,
- // Bytes 7c0 - 7ff
- 0xE5, 0x86, 0x8D, 0x43, 0xE5, 0x86, 0x92, 0x43,
- 0xE5, 0x86, 0x95, 0x43, 0xE5, 0x86, 0x96, 0x43,
- 0xE5, 0x86, 0x97, 0x43, 0xE5, 0x86, 0x99, 0x43,
- 0xE5, 0x86, 0xA4, 0x43, 0xE5, 0x86, 0xAB, 0x43,
- 0xE5, 0x86, 0xAC, 0x43, 0xE5, 0x86, 0xB5, 0x43,
- 0xE5, 0x86, 0xB7, 0x43, 0xE5, 0x87, 0x89, 0x43,
- 0xE5, 0x87, 0x8C, 0x43, 0xE5, 0x87, 0x9C, 0x43,
- 0xE5, 0x87, 0x9E, 0x43, 0xE5, 0x87, 0xA0, 0x43,
- // Bytes 800 - 83f
- 0xE5, 0x87, 0xB5, 0x43, 0xE5, 0x88, 0x80, 0x43,
- 0xE5, 0x88, 0x83, 0x43, 0xE5, 0x88, 0x87, 0x43,
- 0xE5, 0x88, 0x97, 0x43, 0xE5, 0x88, 0x9D, 0x43,
- 0xE5, 0x88, 0xA9, 0x43, 0xE5, 0x88, 0xBA, 0x43,
- 0xE5, 0x88, 0xBB, 0x43, 0xE5, 0x89, 0x86, 0x43,
- 0xE5, 0x89, 0x8D, 0x43, 0xE5, 0x89, 0xB2, 0x43,
- 0xE5, 0x89, 0xB7, 0x43, 0xE5, 0x8A, 0x89, 0x43,
- 0xE5, 0x8A, 0x9B, 0x43, 0xE5, 0x8A, 0xA3, 0x43,
- // Bytes 840 - 87f
- 0xE5, 0x8A, 0xB3, 0x43, 0xE5, 0x8A, 0xB4, 0x43,
- 0xE5, 0x8B, 0x87, 0x43, 0xE5, 0x8B, 0x89, 0x43,
- 0xE5, 0x8B, 0x92, 0x43, 0xE5, 0x8B, 0x9E, 0x43,
- 0xE5, 0x8B, 0xA4, 0x43, 0xE5, 0x8B, 0xB5, 0x43,
- 0xE5, 0x8B, 0xB9, 0x43, 0xE5, 0x8B, 0xBA, 0x43,
- 0xE5, 0x8C, 0x85, 0x43, 0xE5, 0x8C, 0x86, 0x43,
- 0xE5, 0x8C, 0x95, 0x43, 0xE5, 0x8C, 0x97, 0x43,
- 0xE5, 0x8C, 0x9A, 0x43, 0xE5, 0x8C, 0xB8, 0x43,
- // Bytes 880 - 8bf
- 0xE5, 0x8C, 0xBB, 0x43, 0xE5, 0x8C, 0xBF, 0x43,
- 0xE5, 0x8D, 0x81, 0x43, 0xE5, 0x8D, 0x84, 0x43,
- 0xE5, 0x8D, 0x85, 0x43, 0xE5, 0x8D, 0x89, 0x43,
- 0xE5, 0x8D, 0x91, 0x43, 0xE5, 0x8D, 0x94, 0x43,
- 0xE5, 0x8D, 0x9A, 0x43, 0xE5, 0x8D, 0x9C, 0x43,
- 0xE5, 0x8D, 0xA9, 0x43, 0xE5, 0x8D, 0xB0, 0x43,
- 0xE5, 0x8D, 0xB3, 0x43, 0xE5, 0x8D, 0xB5, 0x43,
- 0xE5, 0x8D, 0xBD, 0x43, 0xE5, 0x8D, 0xBF, 0x43,
- // Bytes 8c0 - 8ff
- 0xE5, 0x8E, 0x82, 0x43, 0xE5, 0x8E, 0xB6, 0x43,
- 0xE5, 0x8F, 0x83, 0x43, 0xE5, 0x8F, 0x88, 0x43,
- 0xE5, 0x8F, 0x8A, 0x43, 0xE5, 0x8F, 0x8C, 0x43,
- 0xE5, 0x8F, 0x9F, 0x43, 0xE5, 0x8F, 0xA3, 0x43,
- 0xE5, 0x8F, 0xA5, 0x43, 0xE5, 0x8F, 0xAB, 0x43,
- 0xE5, 0x8F, 0xAF, 0x43, 0xE5, 0x8F, 0xB1, 0x43,
- 0xE5, 0x8F, 0xB3, 0x43, 0xE5, 0x90, 0x86, 0x43,
- 0xE5, 0x90, 0x88, 0x43, 0xE5, 0x90, 0x8D, 0x43,
- // Bytes 900 - 93f
- 0xE5, 0x90, 0x8F, 0x43, 0xE5, 0x90, 0x9D, 0x43,
- 0xE5, 0x90, 0xB8, 0x43, 0xE5, 0x90, 0xB9, 0x43,
- 0xE5, 0x91, 0x82, 0x43, 0xE5, 0x91, 0x88, 0x43,
- 0xE5, 0x91, 0xA8, 0x43, 0xE5, 0x92, 0x9E, 0x43,
- 0xE5, 0x92, 0xA2, 0x43, 0xE5, 0x92, 0xBD, 0x43,
- 0xE5, 0x93, 0xB6, 0x43, 0xE5, 0x94, 0x90, 0x43,
- 0xE5, 0x95, 0x8F, 0x43, 0xE5, 0x95, 0x93, 0x43,
- 0xE5, 0x95, 0x95, 0x43, 0xE5, 0x95, 0xA3, 0x43,
- // Bytes 940 - 97f
- 0xE5, 0x96, 0x84, 0x43, 0xE5, 0x96, 0x87, 0x43,
- 0xE5, 0x96, 0x99, 0x43, 0xE5, 0x96, 0x9D, 0x43,
- 0xE5, 0x96, 0xAB, 0x43, 0xE5, 0x96, 0xB3, 0x43,
- 0xE5, 0x96, 0xB6, 0x43, 0xE5, 0x97, 0x80, 0x43,
- 0xE5, 0x97, 0x82, 0x43, 0xE5, 0x97, 0xA2, 0x43,
- 0xE5, 0x98, 0x86, 0x43, 0xE5, 0x99, 0x91, 0x43,
- 0xE5, 0x99, 0xA8, 0x43, 0xE5, 0x99, 0xB4, 0x43,
- 0xE5, 0x9B, 0x97, 0x43, 0xE5, 0x9B, 0x9B, 0x43,
- // Bytes 980 - 9bf
- 0xE5, 0x9B, 0xB9, 0x43, 0xE5, 0x9C, 0x96, 0x43,
- 0xE5, 0x9C, 0x97, 0x43, 0xE5, 0x9C, 0x9F, 0x43,
- 0xE5, 0x9C, 0xB0, 0x43, 0xE5, 0x9E, 0x8B, 0x43,
- 0xE5, 0x9F, 0x8E, 0x43, 0xE5, 0x9F, 0xB4, 0x43,
- 0xE5, 0xA0, 0x8D, 0x43, 0xE5, 0xA0, 0xB1, 0x43,
- 0xE5, 0xA0, 0xB2, 0x43, 0xE5, 0xA1, 0x80, 0x43,
- 0xE5, 0xA1, 0x9A, 0x43, 0xE5, 0xA1, 0x9E, 0x43,
- 0xE5, 0xA2, 0xA8, 0x43, 0xE5, 0xA2, 0xAC, 0x43,
- // Bytes 9c0 - 9ff
- 0xE5, 0xA2, 0xB3, 0x43, 0xE5, 0xA3, 0x98, 0x43,
- 0xE5, 0xA3, 0x9F, 0x43, 0xE5, 0xA3, 0xAB, 0x43,
- 0xE5, 0xA3, 0xAE, 0x43, 0xE5, 0xA3, 0xB0, 0x43,
- 0xE5, 0xA3, 0xB2, 0x43, 0xE5, 0xA3, 0xB7, 0x43,
- 0xE5, 0xA4, 0x82, 0x43, 0xE5, 0xA4, 0x86, 0x43,
- 0xE5, 0xA4, 0x8A, 0x43, 0xE5, 0xA4, 0x95, 0x43,
- 0xE5, 0xA4, 0x9A, 0x43, 0xE5, 0xA4, 0x9C, 0x43,
- 0xE5, 0xA4, 0xA2, 0x43, 0xE5, 0xA4, 0xA7, 0x43,
- // Bytes a00 - a3f
- 0xE5, 0xA4, 0xA9, 0x43, 0xE5, 0xA5, 0x84, 0x43,
- 0xE5, 0xA5, 0x88, 0x43, 0xE5, 0xA5, 0x91, 0x43,
- 0xE5, 0xA5, 0x94, 0x43, 0xE5, 0xA5, 0xA2, 0x43,
- 0xE5, 0xA5, 0xB3, 0x43, 0xE5, 0xA7, 0x98, 0x43,
- 0xE5, 0xA7, 0xAC, 0x43, 0xE5, 0xA8, 0x9B, 0x43,
- 0xE5, 0xA8, 0xA7, 0x43, 0xE5, 0xA9, 0xA2, 0x43,
- 0xE5, 0xA9, 0xA6, 0x43, 0xE5, 0xAA, 0xB5, 0x43,
- 0xE5, 0xAC, 0x88, 0x43, 0xE5, 0xAC, 0xA8, 0x43,
- // Bytes a40 - a7f
- 0xE5, 0xAC, 0xBE, 0x43, 0xE5, 0xAD, 0x90, 0x43,
- 0xE5, 0xAD, 0x97, 0x43, 0xE5, 0xAD, 0xA6, 0x43,
- 0xE5, 0xAE, 0x80, 0x43, 0xE5, 0xAE, 0x85, 0x43,
- 0xE5, 0xAE, 0x97, 0x43, 0xE5, 0xAF, 0x83, 0x43,
- 0xE5, 0xAF, 0x98, 0x43, 0xE5, 0xAF, 0xA7, 0x43,
- 0xE5, 0xAF, 0xAE, 0x43, 0xE5, 0xAF, 0xB3, 0x43,
- 0xE5, 0xAF, 0xB8, 0x43, 0xE5, 0xAF, 0xBF, 0x43,
- 0xE5, 0xB0, 0x86, 0x43, 0xE5, 0xB0, 0x8F, 0x43,
- // Bytes a80 - abf
- 0xE5, 0xB0, 0xA2, 0x43, 0xE5, 0xB0, 0xB8, 0x43,
- 0xE5, 0xB0, 0xBF, 0x43, 0xE5, 0xB1, 0xA0, 0x43,
- 0xE5, 0xB1, 0xA2, 0x43, 0xE5, 0xB1, 0xA4, 0x43,
- 0xE5, 0xB1, 0xA5, 0x43, 0xE5, 0xB1, 0xAE, 0x43,
- 0xE5, 0xB1, 0xB1, 0x43, 0xE5, 0xB2, 0x8D, 0x43,
- 0xE5, 0xB3, 0x80, 0x43, 0xE5, 0xB4, 0x99, 0x43,
- 0xE5, 0xB5, 0x83, 0x43, 0xE5, 0xB5, 0x90, 0x43,
- 0xE5, 0xB5, 0xAB, 0x43, 0xE5, 0xB5, 0xAE, 0x43,
- // Bytes ac0 - aff
- 0xE5, 0xB5, 0xBC, 0x43, 0xE5, 0xB6, 0xB2, 0x43,
- 0xE5, 0xB6, 0xBA, 0x43, 0xE5, 0xB7, 0x9B, 0x43,
- 0xE5, 0xB7, 0xA1, 0x43, 0xE5, 0xB7, 0xA2, 0x43,
- 0xE5, 0xB7, 0xA5, 0x43, 0xE5, 0xB7, 0xA6, 0x43,
- 0xE5, 0xB7, 0xB1, 0x43, 0xE5, 0xB7, 0xBD, 0x43,
- 0xE5, 0xB7, 0xBE, 0x43, 0xE5, 0xB8, 0xA8, 0x43,
- 0xE5, 0xB8, 0xBD, 0x43, 0xE5, 0xB9, 0xA9, 0x43,
- 0xE5, 0xB9, 0xB2, 0x43, 0xE5, 0xB9, 0xB4, 0x43,
- // Bytes b00 - b3f
- 0xE5, 0xB9, 0xBA, 0x43, 0xE5, 0xB9, 0xBC, 0x43,
- 0xE5, 0xB9, 0xBF, 0x43, 0xE5, 0xBA, 0xA6, 0x43,
- 0xE5, 0xBA, 0xB0, 0x43, 0xE5, 0xBA, 0xB3, 0x43,
- 0xE5, 0xBA, 0xB6, 0x43, 0xE5, 0xBB, 0x89, 0x43,
- 0xE5, 0xBB, 0x8A, 0x43, 0xE5, 0xBB, 0x92, 0x43,
- 0xE5, 0xBB, 0x93, 0x43, 0xE5, 0xBB, 0x99, 0x43,
- 0xE5, 0xBB, 0xAC, 0x43, 0xE5, 0xBB, 0xB4, 0x43,
- 0xE5, 0xBB, 0xBE, 0x43, 0xE5, 0xBC, 0x84, 0x43,
- // Bytes b40 - b7f
- 0xE5, 0xBC, 0x8B, 0x43, 0xE5, 0xBC, 0x93, 0x43,
- 0xE5, 0xBC, 0xA2, 0x43, 0xE5, 0xBD, 0x90, 0x43,
- 0xE5, 0xBD, 0x93, 0x43, 0xE5, 0xBD, 0xA1, 0x43,
- 0xE5, 0xBD, 0xA2, 0x43, 0xE5, 0xBD, 0xA9, 0x43,
- 0xE5, 0xBD, 0xAB, 0x43, 0xE5, 0xBD, 0xB3, 0x43,
- 0xE5, 0xBE, 0x8B, 0x43, 0xE5, 0xBE, 0x8C, 0x43,
- 0xE5, 0xBE, 0x97, 0x43, 0xE5, 0xBE, 0x9A, 0x43,
- 0xE5, 0xBE, 0xA9, 0x43, 0xE5, 0xBE, 0xAD, 0x43,
- // Bytes b80 - bbf
- 0xE5, 0xBF, 0x83, 0x43, 0xE5, 0xBF, 0x8D, 0x43,
- 0xE5, 0xBF, 0x97, 0x43, 0xE5, 0xBF, 0xB5, 0x43,
- 0xE5, 0xBF, 0xB9, 0x43, 0xE6, 0x80, 0x92, 0x43,
- 0xE6, 0x80, 0x9C, 0x43, 0xE6, 0x81, 0xB5, 0x43,
- 0xE6, 0x82, 0x81, 0x43, 0xE6, 0x82, 0x94, 0x43,
- 0xE6, 0x83, 0x87, 0x43, 0xE6, 0x83, 0x98, 0x43,
- 0xE6, 0x83, 0xA1, 0x43, 0xE6, 0x84, 0x88, 0x43,
- 0xE6, 0x85, 0x84, 0x43, 0xE6, 0x85, 0x88, 0x43,
- // Bytes bc0 - bff
- 0xE6, 0x85, 0x8C, 0x43, 0xE6, 0x85, 0x8E, 0x43,
- 0xE6, 0x85, 0xA0, 0x43, 0xE6, 0x85, 0xA8, 0x43,
- 0xE6, 0x85, 0xBA, 0x43, 0xE6, 0x86, 0x8E, 0x43,
- 0xE6, 0x86, 0x90, 0x43, 0xE6, 0x86, 0xA4, 0x43,
- 0xE6, 0x86, 0xAF, 0x43, 0xE6, 0x86, 0xB2, 0x43,
- 0xE6, 0x87, 0x9E, 0x43, 0xE6, 0x87, 0xB2, 0x43,
- 0xE6, 0x87, 0xB6, 0x43, 0xE6, 0x88, 0x80, 0x43,
- 0xE6, 0x88, 0x88, 0x43, 0xE6, 0x88, 0x90, 0x43,
- // Bytes c00 - c3f
- 0xE6, 0x88, 0x9B, 0x43, 0xE6, 0x88, 0xAE, 0x43,
- 0xE6, 0x88, 0xB4, 0x43, 0xE6, 0x88, 0xB6, 0x43,
- 0xE6, 0x89, 0x8B, 0x43, 0xE6, 0x89, 0x93, 0x43,
- 0xE6, 0x89, 0x9D, 0x43, 0xE6, 0x8A, 0x95, 0x43,
- 0xE6, 0x8A, 0xB1, 0x43, 0xE6, 0x8B, 0x89, 0x43,
- 0xE6, 0x8B, 0x8F, 0x43, 0xE6, 0x8B, 0x93, 0x43,
- 0xE6, 0x8B, 0x94, 0x43, 0xE6, 0x8B, 0xBC, 0x43,
- 0xE6, 0x8B, 0xBE, 0x43, 0xE6, 0x8C, 0x87, 0x43,
- // Bytes c40 - c7f
- 0xE6, 0x8C, 0xBD, 0x43, 0xE6, 0x8D, 0x90, 0x43,
- 0xE6, 0x8D, 0x95, 0x43, 0xE6, 0x8D, 0xA8, 0x43,
- 0xE6, 0x8D, 0xBB, 0x43, 0xE6, 0x8E, 0x83, 0x43,
- 0xE6, 0x8E, 0xA0, 0x43, 0xE6, 0x8E, 0xA9, 0x43,
- 0xE6, 0x8F, 0x84, 0x43, 0xE6, 0x8F, 0x85, 0x43,
- 0xE6, 0x8F, 0xA4, 0x43, 0xE6, 0x90, 0x9C, 0x43,
- 0xE6, 0x90, 0xA2, 0x43, 0xE6, 0x91, 0x92, 0x43,
- 0xE6, 0x91, 0xA9, 0x43, 0xE6, 0x91, 0xB7, 0x43,
- // Bytes c80 - cbf
- 0xE6, 0x91, 0xBE, 0x43, 0xE6, 0x92, 0x9A, 0x43,
- 0xE6, 0x92, 0x9D, 0x43, 0xE6, 0x93, 0x84, 0x43,
- 0xE6, 0x94, 0xAF, 0x43, 0xE6, 0x94, 0xB4, 0x43,
- 0xE6, 0x95, 0x8F, 0x43, 0xE6, 0x95, 0x96, 0x43,
- 0xE6, 0x95, 0xAC, 0x43, 0xE6, 0x95, 0xB8, 0x43,
- 0xE6, 0x96, 0x87, 0x43, 0xE6, 0x96, 0x97, 0x43,
- 0xE6, 0x96, 0x99, 0x43, 0xE6, 0x96, 0xA4, 0x43,
- 0xE6, 0x96, 0xB0, 0x43, 0xE6, 0x96, 0xB9, 0x43,
- // Bytes cc0 - cff
- 0xE6, 0x97, 0x85, 0x43, 0xE6, 0x97, 0xA0, 0x43,
- 0xE6, 0x97, 0xA2, 0x43, 0xE6, 0x97, 0xA3, 0x43,
- 0xE6, 0x97, 0xA5, 0x43, 0xE6, 0x98, 0x93, 0x43,
- 0xE6, 0x98, 0xA0, 0x43, 0xE6, 0x99, 0x89, 0x43,
- 0xE6, 0x99, 0xB4, 0x43, 0xE6, 0x9A, 0x88, 0x43,
- 0xE6, 0x9A, 0x91, 0x43, 0xE6, 0x9A, 0x9C, 0x43,
- 0xE6, 0x9A, 0xB4, 0x43, 0xE6, 0x9B, 0x86, 0x43,
- 0xE6, 0x9B, 0xB0, 0x43, 0xE6, 0x9B, 0xB4, 0x43,
- // Bytes d00 - d3f
- 0xE6, 0x9B, 0xB8, 0x43, 0xE6, 0x9C, 0x80, 0x43,
- 0xE6, 0x9C, 0x88, 0x43, 0xE6, 0x9C, 0x89, 0x43,
- 0xE6, 0x9C, 0x97, 0x43, 0xE6, 0x9C, 0x9B, 0x43,
- 0xE6, 0x9C, 0xA1, 0x43, 0xE6, 0x9C, 0xA8, 0x43,
- 0xE6, 0x9D, 0x8E, 0x43, 0xE6, 0x9D, 0x93, 0x43,
- 0xE6, 0x9D, 0x96, 0x43, 0xE6, 0x9D, 0x9E, 0x43,
- 0xE6, 0x9D, 0xBB, 0x43, 0xE6, 0x9E, 0x85, 0x43,
- 0xE6, 0x9E, 0x97, 0x43, 0xE6, 0x9F, 0xB3, 0x43,
- // Bytes d40 - d7f
- 0xE6, 0x9F, 0xBA, 0x43, 0xE6, 0xA0, 0x97, 0x43,
- 0xE6, 0xA0, 0x9F, 0x43, 0xE6, 0xA0, 0xAA, 0x43,
- 0xE6, 0xA1, 0x92, 0x43, 0xE6, 0xA2, 0x81, 0x43,
- 0xE6, 0xA2, 0x85, 0x43, 0xE6, 0xA2, 0x8E, 0x43,
- 0xE6, 0xA2, 0xA8, 0x43, 0xE6, 0xA4, 0x94, 0x43,
- 0xE6, 0xA5, 0x82, 0x43, 0xE6, 0xA6, 0xA3, 0x43,
- 0xE6, 0xA7, 0xAA, 0x43, 0xE6, 0xA8, 0x82, 0x43,
- 0xE6, 0xA8, 0x93, 0x43, 0xE6, 0xAA, 0xA8, 0x43,
- // Bytes d80 - dbf
- 0xE6, 0xAB, 0x93, 0x43, 0xE6, 0xAB, 0x9B, 0x43,
- 0xE6, 0xAC, 0x84, 0x43, 0xE6, 0xAC, 0xA0, 0x43,
- 0xE6, 0xAC, 0xA1, 0x43, 0xE6, 0xAD, 0x94, 0x43,
- 0xE6, 0xAD, 0xA2, 0x43, 0xE6, 0xAD, 0xA3, 0x43,
- 0xE6, 0xAD, 0xB2, 0x43, 0xE6, 0xAD, 0xB7, 0x43,
- 0xE6, 0xAD, 0xB9, 0x43, 0xE6, 0xAE, 0x9F, 0x43,
- 0xE6, 0xAE, 0xAE, 0x43, 0xE6, 0xAE, 0xB3, 0x43,
- 0xE6, 0xAE, 0xBA, 0x43, 0xE6, 0xAE, 0xBB, 0x43,
- // Bytes dc0 - dff
- 0xE6, 0xAF, 0x8B, 0x43, 0xE6, 0xAF, 0x8D, 0x43,
- 0xE6, 0xAF, 0x94, 0x43, 0xE6, 0xAF, 0x9B, 0x43,
- 0xE6, 0xB0, 0x8F, 0x43, 0xE6, 0xB0, 0x94, 0x43,
- 0xE6, 0xB0, 0xB4, 0x43, 0xE6, 0xB1, 0x8E, 0x43,
- 0xE6, 0xB1, 0xA7, 0x43, 0xE6, 0xB2, 0x88, 0x43,
- 0xE6, 0xB2, 0xBF, 0x43, 0xE6, 0xB3, 0x8C, 0x43,
- 0xE6, 0xB3, 0x8D, 0x43, 0xE6, 0xB3, 0xA5, 0x43,
- 0xE6, 0xB3, 0xA8, 0x43, 0xE6, 0xB4, 0x96, 0x43,
- // Bytes e00 - e3f
- 0xE6, 0xB4, 0x9B, 0x43, 0xE6, 0xB4, 0x9E, 0x43,
- 0xE6, 0xB4, 0xB4, 0x43, 0xE6, 0xB4, 0xBE, 0x43,
- 0xE6, 0xB5, 0x81, 0x43, 0xE6, 0xB5, 0xA9, 0x43,
- 0xE6, 0xB5, 0xAA, 0x43, 0xE6, 0xB5, 0xB7, 0x43,
- 0xE6, 0xB5, 0xB8, 0x43, 0xE6, 0xB6, 0x85, 0x43,
- 0xE6, 0xB7, 0x8B, 0x43, 0xE6, 0xB7, 0x9A, 0x43,
- 0xE6, 0xB7, 0xAA, 0x43, 0xE6, 0xB7, 0xB9, 0x43,
- 0xE6, 0xB8, 0x9A, 0x43, 0xE6, 0xB8, 0xAF, 0x43,
- // Bytes e40 - e7f
- 0xE6, 0xB9, 0xAE, 0x43, 0xE6, 0xBA, 0x80, 0x43,
- 0xE6, 0xBA, 0x9C, 0x43, 0xE6, 0xBA, 0xBA, 0x43,
- 0xE6, 0xBB, 0x87, 0x43, 0xE6, 0xBB, 0x8B, 0x43,
- 0xE6, 0xBB, 0x91, 0x43, 0xE6, 0xBB, 0x9B, 0x43,
- 0xE6, 0xBC, 0x8F, 0x43, 0xE6, 0xBC, 0x94, 0x43,
- 0xE6, 0xBC, 0xA2, 0x43, 0xE6, 0xBC, 0xA3, 0x43,
- 0xE6, 0xBD, 0xAE, 0x43, 0xE6, 0xBF, 0x86, 0x43,
- 0xE6, 0xBF, 0xAB, 0x43, 0xE6, 0xBF, 0xBE, 0x43,
- // Bytes e80 - ebf
- 0xE7, 0x80, 0x9B, 0x43, 0xE7, 0x80, 0x9E, 0x43,
- 0xE7, 0x80, 0xB9, 0x43, 0xE7, 0x81, 0x8A, 0x43,
- 0xE7, 0x81, 0xAB, 0x43, 0xE7, 0x81, 0xB0, 0x43,
- 0xE7, 0x81, 0xB7, 0x43, 0xE7, 0x81, 0xBD, 0x43,
- 0xE7, 0x82, 0x99, 0x43, 0xE7, 0x82, 0xAD, 0x43,
- 0xE7, 0x83, 0x88, 0x43, 0xE7, 0x83, 0x99, 0x43,
- 0xE7, 0x84, 0xA1, 0x43, 0xE7, 0x85, 0x85, 0x43,
- 0xE7, 0x85, 0x89, 0x43, 0xE7, 0x85, 0xAE, 0x43,
- // Bytes ec0 - eff
- 0xE7, 0x86, 0x9C, 0x43, 0xE7, 0x87, 0x8E, 0x43,
- 0xE7, 0x87, 0x90, 0x43, 0xE7, 0x88, 0x90, 0x43,
- 0xE7, 0x88, 0x9B, 0x43, 0xE7, 0x88, 0xA8, 0x43,
- 0xE7, 0x88, 0xAA, 0x43, 0xE7, 0x88, 0xAB, 0x43,
- 0xE7, 0x88, 0xB5, 0x43, 0xE7, 0x88, 0xB6, 0x43,
- 0xE7, 0x88, 0xBB, 0x43, 0xE7, 0x88, 0xBF, 0x43,
- 0xE7, 0x89, 0x87, 0x43, 0xE7, 0x89, 0x90, 0x43,
- 0xE7, 0x89, 0x99, 0x43, 0xE7, 0x89, 0x9B, 0x43,
- // Bytes f00 - f3f
- 0xE7, 0x89, 0xA2, 0x43, 0xE7, 0x89, 0xB9, 0x43,
- 0xE7, 0x8A, 0x80, 0x43, 0xE7, 0x8A, 0x95, 0x43,
- 0xE7, 0x8A, 0xAC, 0x43, 0xE7, 0x8A, 0xAF, 0x43,
- 0xE7, 0x8B, 0x80, 0x43, 0xE7, 0x8B, 0xBC, 0x43,
- 0xE7, 0x8C, 0xAA, 0x43, 0xE7, 0x8D, 0xB5, 0x43,
- 0xE7, 0x8D, 0xBA, 0x43, 0xE7, 0x8E, 0x84, 0x43,
- 0xE7, 0x8E, 0x87, 0x43, 0xE7, 0x8E, 0x89, 0x43,
- 0xE7, 0x8E, 0x8B, 0x43, 0xE7, 0x8E, 0xA5, 0x43,
- // Bytes f40 - f7f
- 0xE7, 0x8E, 0xB2, 0x43, 0xE7, 0x8F, 0x9E, 0x43,
- 0xE7, 0x90, 0x86, 0x43, 0xE7, 0x90, 0x89, 0x43,
- 0xE7, 0x90, 0xA2, 0x43, 0xE7, 0x91, 0x87, 0x43,
- 0xE7, 0x91, 0x9C, 0x43, 0xE7, 0x91, 0xA9, 0x43,
- 0xE7, 0x91, 0xB1, 0x43, 0xE7, 0x92, 0x85, 0x43,
- 0xE7, 0x92, 0x89, 0x43, 0xE7, 0x92, 0x98, 0x43,
- 0xE7, 0x93, 0x8A, 0x43, 0xE7, 0x93, 0x9C, 0x43,
- 0xE7, 0x93, 0xA6, 0x43, 0xE7, 0x94, 0x86, 0x43,
- // Bytes f80 - fbf
- 0xE7, 0x94, 0x98, 0x43, 0xE7, 0x94, 0x9F, 0x43,
- 0xE7, 0x94, 0xA4, 0x43, 0xE7, 0x94, 0xA8, 0x43,
- 0xE7, 0x94, 0xB0, 0x43, 0xE7, 0x94, 0xB2, 0x43,
- 0xE7, 0x94, 0xB3, 0x43, 0xE7, 0x94, 0xB7, 0x43,
- 0xE7, 0x94, 0xBB, 0x43, 0xE7, 0x94, 0xBE, 0x43,
- 0xE7, 0x95, 0x99, 0x43, 0xE7, 0x95, 0xA5, 0x43,
- 0xE7, 0x95, 0xB0, 0x43, 0xE7, 0x96, 0x8B, 0x43,
- 0xE7, 0x96, 0x92, 0x43, 0xE7, 0x97, 0xA2, 0x43,
- // Bytes fc0 - fff
- 0xE7, 0x98, 0x90, 0x43, 0xE7, 0x98, 0x9D, 0x43,
- 0xE7, 0x98, 0x9F, 0x43, 0xE7, 0x99, 0x82, 0x43,
- 0xE7, 0x99, 0xA9, 0x43, 0xE7, 0x99, 0xB6, 0x43,
- 0xE7, 0x99, 0xBD, 0x43, 0xE7, 0x9A, 0xAE, 0x43,
- 0xE7, 0x9A, 0xBF, 0x43, 0xE7, 0x9B, 0x8A, 0x43,
- 0xE7, 0x9B, 0x9B, 0x43, 0xE7, 0x9B, 0xA3, 0x43,
- 0xE7, 0x9B, 0xA7, 0x43, 0xE7, 0x9B, 0xAE, 0x43,
- 0xE7, 0x9B, 0xB4, 0x43, 0xE7, 0x9C, 0x81, 0x43,
- // Bytes 1000 - 103f
- 0xE7, 0x9C, 0x9E, 0x43, 0xE7, 0x9C, 0x9F, 0x43,
- 0xE7, 0x9D, 0x80, 0x43, 0xE7, 0x9D, 0x8A, 0x43,
- 0xE7, 0x9E, 0x8B, 0x43, 0xE7, 0x9E, 0xA7, 0x43,
- 0xE7, 0x9F, 0x9B, 0x43, 0xE7, 0x9F, 0xA2, 0x43,
- 0xE7, 0x9F, 0xB3, 0x43, 0xE7, 0xA1, 0x8E, 0x43,
- 0xE7, 0xA1, 0xAB, 0x43, 0xE7, 0xA2, 0x8C, 0x43,
- 0xE7, 0xA2, 0x91, 0x43, 0xE7, 0xA3, 0x8A, 0x43,
- 0xE7, 0xA3, 0x8C, 0x43, 0xE7, 0xA3, 0xBB, 0x43,
- // Bytes 1040 - 107f
- 0xE7, 0xA4, 0xAA, 0x43, 0xE7, 0xA4, 0xBA, 0x43,
- 0xE7, 0xA4, 0xBC, 0x43, 0xE7, 0xA4, 0xBE, 0x43,
- 0xE7, 0xA5, 0x88, 0x43, 0xE7, 0xA5, 0x89, 0x43,
- 0xE7, 0xA5, 0x90, 0x43, 0xE7, 0xA5, 0x96, 0x43,
- 0xE7, 0xA5, 0x9D, 0x43, 0xE7, 0xA5, 0x9E, 0x43,
- 0xE7, 0xA5, 0xA5, 0x43, 0xE7, 0xA5, 0xBF, 0x43,
- 0xE7, 0xA6, 0x81, 0x43, 0xE7, 0xA6, 0x8D, 0x43,
- 0xE7, 0xA6, 0x8E, 0x43, 0xE7, 0xA6, 0x8F, 0x43,
- // Bytes 1080 - 10bf
- 0xE7, 0xA6, 0xAE, 0x43, 0xE7, 0xA6, 0xB8, 0x43,
- 0xE7, 0xA6, 0xBE, 0x43, 0xE7, 0xA7, 0x8A, 0x43,
- 0xE7, 0xA7, 0x98, 0x43, 0xE7, 0xA7, 0xAB, 0x43,
- 0xE7, 0xA8, 0x9C, 0x43, 0xE7, 0xA9, 0x80, 0x43,
- 0xE7, 0xA9, 0x8A, 0x43, 0xE7, 0xA9, 0x8F, 0x43,
- 0xE7, 0xA9, 0xB4, 0x43, 0xE7, 0xA9, 0xBA, 0x43,
- 0xE7, 0xAA, 0x81, 0x43, 0xE7, 0xAA, 0xB1, 0x43,
- 0xE7, 0xAB, 0x8B, 0x43, 0xE7, 0xAB, 0xAE, 0x43,
- // Bytes 10c0 - 10ff
- 0xE7, 0xAB, 0xB9, 0x43, 0xE7, 0xAC, 0xA0, 0x43,
- 0xE7, 0xAE, 0x8F, 0x43, 0xE7, 0xAF, 0x80, 0x43,
- 0xE7, 0xAF, 0x86, 0x43, 0xE7, 0xAF, 0x89, 0x43,
- 0xE7, 0xB0, 0xBE, 0x43, 0xE7, 0xB1, 0xA0, 0x43,
- 0xE7, 0xB1, 0xB3, 0x43, 0xE7, 0xB1, 0xBB, 0x43,
- 0xE7, 0xB2, 0x92, 0x43, 0xE7, 0xB2, 0xBE, 0x43,
- 0xE7, 0xB3, 0x92, 0x43, 0xE7, 0xB3, 0x96, 0x43,
- 0xE7, 0xB3, 0xA3, 0x43, 0xE7, 0xB3, 0xA7, 0x43,
- // Bytes 1100 - 113f
- 0xE7, 0xB3, 0xA8, 0x43, 0xE7, 0xB3, 0xB8, 0x43,
- 0xE7, 0xB4, 0x80, 0x43, 0xE7, 0xB4, 0x90, 0x43,
- 0xE7, 0xB4, 0xA2, 0x43, 0xE7, 0xB4, 0xAF, 0x43,
- 0xE7, 0xB5, 0x82, 0x43, 0xE7, 0xB5, 0x9B, 0x43,
- 0xE7, 0xB5, 0xA3, 0x43, 0xE7, 0xB6, 0xA0, 0x43,
- 0xE7, 0xB6, 0xBE, 0x43, 0xE7, 0xB7, 0x87, 0x43,
- 0xE7, 0xB7, 0xB4, 0x43, 0xE7, 0xB8, 0x82, 0x43,
- 0xE7, 0xB8, 0x89, 0x43, 0xE7, 0xB8, 0xB7, 0x43,
- // Bytes 1140 - 117f
- 0xE7, 0xB9, 0x81, 0x43, 0xE7, 0xB9, 0x85, 0x43,
- 0xE7, 0xBC, 0xB6, 0x43, 0xE7, 0xBC, 0xBE, 0x43,
- 0xE7, 0xBD, 0x91, 0x43, 0xE7, 0xBD, 0xB2, 0x43,
- 0xE7, 0xBD, 0xB9, 0x43, 0xE7, 0xBD, 0xBA, 0x43,
- 0xE7, 0xBE, 0x85, 0x43, 0xE7, 0xBE, 0x8A, 0x43,
- 0xE7, 0xBE, 0x95, 0x43, 0xE7, 0xBE, 0x9A, 0x43,
- 0xE7, 0xBE, 0xBD, 0x43, 0xE7, 0xBF, 0xBA, 0x43,
- 0xE8, 0x80, 0x81, 0x43, 0xE8, 0x80, 0x85, 0x43,
- // Bytes 1180 - 11bf
- 0xE8, 0x80, 0x8C, 0x43, 0xE8, 0x80, 0x92, 0x43,
- 0xE8, 0x80, 0xB3, 0x43, 0xE8, 0x81, 0x86, 0x43,
- 0xE8, 0x81, 0xA0, 0x43, 0xE8, 0x81, 0xAF, 0x43,
- 0xE8, 0x81, 0xB0, 0x43, 0xE8, 0x81, 0xBE, 0x43,
- 0xE8, 0x81, 0xBF, 0x43, 0xE8, 0x82, 0x89, 0x43,
- 0xE8, 0x82, 0x8B, 0x43, 0xE8, 0x82, 0xAD, 0x43,
- 0xE8, 0x82, 0xB2, 0x43, 0xE8, 0x84, 0x83, 0x43,
- 0xE8, 0x84, 0xBE, 0x43, 0xE8, 0x87, 0x98, 0x43,
- // Bytes 11c0 - 11ff
- 0xE8, 0x87, 0xA3, 0x43, 0xE8, 0x87, 0xA8, 0x43,
- 0xE8, 0x87, 0xAA, 0x43, 0xE8, 0x87, 0xAD, 0x43,
- 0xE8, 0x87, 0xB3, 0x43, 0xE8, 0x87, 0xBC, 0x43,
- 0xE8, 0x88, 0x81, 0x43, 0xE8, 0x88, 0x84, 0x43,
- 0xE8, 0x88, 0x8C, 0x43, 0xE8, 0x88, 0x98, 0x43,
- 0xE8, 0x88, 0x9B, 0x43, 0xE8, 0x88, 0x9F, 0x43,
- 0xE8, 0x89, 0xAE, 0x43, 0xE8, 0x89, 0xAF, 0x43,
- 0xE8, 0x89, 0xB2, 0x43, 0xE8, 0x89, 0xB8, 0x43,
- // Bytes 1200 - 123f
- 0xE8, 0x89, 0xB9, 0x43, 0xE8, 0x8A, 0x8B, 0x43,
- 0xE8, 0x8A, 0x91, 0x43, 0xE8, 0x8A, 0x9D, 0x43,
- 0xE8, 0x8A, 0xB1, 0x43, 0xE8, 0x8A, 0xB3, 0x43,
- 0xE8, 0x8A, 0xBD, 0x43, 0xE8, 0x8B, 0xA5, 0x43,
- 0xE8, 0x8B, 0xA6, 0x43, 0xE8, 0x8C, 0x9D, 0x43,
- 0xE8, 0x8C, 0xA3, 0x43, 0xE8, 0x8C, 0xB6, 0x43,
- 0xE8, 0x8D, 0x92, 0x43, 0xE8, 0x8D, 0x93, 0x43,
- 0xE8, 0x8D, 0xA3, 0x43, 0xE8, 0x8E, 0xAD, 0x43,
- // Bytes 1240 - 127f
- 0xE8, 0x8E, 0xBD, 0x43, 0xE8, 0x8F, 0x89, 0x43,
- 0xE8, 0x8F, 0x8A, 0x43, 0xE8, 0x8F, 0x8C, 0x43,
- 0xE8, 0x8F, 0x9C, 0x43, 0xE8, 0x8F, 0xA7, 0x43,
- 0xE8, 0x8F, 0xAF, 0x43, 0xE8, 0x8F, 0xB1, 0x43,
- 0xE8, 0x90, 0xBD, 0x43, 0xE8, 0x91, 0x89, 0x43,
- 0xE8, 0x91, 0x97, 0x43, 0xE8, 0x93, 0xAE, 0x43,
- 0xE8, 0x93, 0xB1, 0x43, 0xE8, 0x93, 0xB3, 0x43,
- 0xE8, 0x93, 0xBC, 0x43, 0xE8, 0x94, 0x96, 0x43,
- // Bytes 1280 - 12bf
- 0xE8, 0x95, 0xA4, 0x43, 0xE8, 0x97, 0x8D, 0x43,
- 0xE8, 0x97, 0xBA, 0x43, 0xE8, 0x98, 0x86, 0x43,
- 0xE8, 0x98, 0x92, 0x43, 0xE8, 0x98, 0xAD, 0x43,
- 0xE8, 0x98, 0xBF, 0x43, 0xE8, 0x99, 0x8D, 0x43,
- 0xE8, 0x99, 0x90, 0x43, 0xE8, 0x99, 0x9C, 0x43,
- 0xE8, 0x99, 0xA7, 0x43, 0xE8, 0x99, 0xA9, 0x43,
- 0xE8, 0x99, 0xAB, 0x43, 0xE8, 0x9A, 0x88, 0x43,
- 0xE8, 0x9A, 0xA9, 0x43, 0xE8, 0x9B, 0xA2, 0x43,
- // Bytes 12c0 - 12ff
- 0xE8, 0x9C, 0x8E, 0x43, 0xE8, 0x9C, 0xA8, 0x43,
- 0xE8, 0x9D, 0xAB, 0x43, 0xE8, 0x9D, 0xB9, 0x43,
- 0xE8, 0x9E, 0x86, 0x43, 0xE8, 0x9E, 0xBA, 0x43,
- 0xE8, 0x9F, 0xA1, 0x43, 0xE8, 0xA0, 0x81, 0x43,
- 0xE8, 0xA0, 0x9F, 0x43, 0xE8, 0xA1, 0x80, 0x43,
- 0xE8, 0xA1, 0x8C, 0x43, 0xE8, 0xA1, 0xA0, 0x43,
- 0xE8, 0xA1, 0xA3, 0x43, 0xE8, 0xA3, 0x82, 0x43,
- 0xE8, 0xA3, 0x8F, 0x43, 0xE8, 0xA3, 0x97, 0x43,
- // Bytes 1300 - 133f
- 0xE8, 0xA3, 0x9E, 0x43, 0xE8, 0xA3, 0xA1, 0x43,
- 0xE8, 0xA3, 0xB8, 0x43, 0xE8, 0xA3, 0xBA, 0x43,
- 0xE8, 0xA4, 0x90, 0x43, 0xE8, 0xA5, 0x81, 0x43,
- 0xE8, 0xA5, 0xA4, 0x43, 0xE8, 0xA5, 0xBE, 0x43,
- 0xE8, 0xA6, 0x86, 0x43, 0xE8, 0xA6, 0x8B, 0x43,
- 0xE8, 0xA6, 0x96, 0x43, 0xE8, 0xA7, 0x92, 0x43,
- 0xE8, 0xA7, 0xA3, 0x43, 0xE8, 0xA8, 0x80, 0x43,
- 0xE8, 0xAA, 0xA0, 0x43, 0xE8, 0xAA, 0xAA, 0x43,
- // Bytes 1340 - 137f
- 0xE8, 0xAA, 0xBF, 0x43, 0xE8, 0xAB, 0x8B, 0x43,
- 0xE8, 0xAB, 0x92, 0x43, 0xE8, 0xAB, 0x96, 0x43,
- 0xE8, 0xAB, 0xAD, 0x43, 0xE8, 0xAB, 0xB8, 0x43,
- 0xE8, 0xAB, 0xBE, 0x43, 0xE8, 0xAC, 0x81, 0x43,
- 0xE8, 0xAC, 0xB9, 0x43, 0xE8, 0xAD, 0x98, 0x43,
- 0xE8, 0xAE, 0x80, 0x43, 0xE8, 0xAE, 0x8A, 0x43,
- 0xE8, 0xB0, 0xB7, 0x43, 0xE8, 0xB1, 0x86, 0x43,
- 0xE8, 0xB1, 0x88, 0x43, 0xE8, 0xB1, 0x95, 0x43,
- // Bytes 1380 - 13bf
- 0xE8, 0xB1, 0xB8, 0x43, 0xE8, 0xB2, 0x9D, 0x43,
- 0xE8, 0xB2, 0xA1, 0x43, 0xE8, 0xB2, 0xA9, 0x43,
- 0xE8, 0xB2, 0xAB, 0x43, 0xE8, 0xB3, 0x81, 0x43,
- 0xE8, 0xB3, 0x82, 0x43, 0xE8, 0xB3, 0x87, 0x43,
- 0xE8, 0xB3, 0x88, 0x43, 0xE8, 0xB3, 0x93, 0x43,
- 0xE8, 0xB4, 0x88, 0x43, 0xE8, 0xB4, 0x9B, 0x43,
- 0xE8, 0xB5, 0xA4, 0x43, 0xE8, 0xB5, 0xB0, 0x43,
- 0xE8, 0xB5, 0xB7, 0x43, 0xE8, 0xB6, 0xB3, 0x43,
- // Bytes 13c0 - 13ff
- 0xE8, 0xB6, 0xBC, 0x43, 0xE8, 0xB7, 0x8B, 0x43,
- 0xE8, 0xB7, 0xAF, 0x43, 0xE8, 0xB7, 0xB0, 0x43,
- 0xE8, 0xBA, 0xAB, 0x43, 0xE8, 0xBB, 0x8A, 0x43,
- 0xE8, 0xBB, 0x94, 0x43, 0xE8, 0xBC, 0xA6, 0x43,
- 0xE8, 0xBC, 0xAA, 0x43, 0xE8, 0xBC, 0xB8, 0x43,
- 0xE8, 0xBC, 0xBB, 0x43, 0xE8, 0xBD, 0xA2, 0x43,
- 0xE8, 0xBE, 0x9B, 0x43, 0xE8, 0xBE, 0x9E, 0x43,
- 0xE8, 0xBE, 0xB0, 0x43, 0xE8, 0xBE, 0xB5, 0x43,
- // Bytes 1400 - 143f
- 0xE8, 0xBE, 0xB6, 0x43, 0xE9, 0x80, 0xA3, 0x43,
- 0xE9, 0x80, 0xB8, 0x43, 0xE9, 0x81, 0x8A, 0x43,
- 0xE9, 0x81, 0xA9, 0x43, 0xE9, 0x81, 0xB2, 0x43,
- 0xE9, 0x81, 0xBC, 0x43, 0xE9, 0x82, 0x8F, 0x43,
- 0xE9, 0x82, 0x91, 0x43, 0xE9, 0x82, 0x94, 0x43,
- 0xE9, 0x83, 0x8E, 0x43, 0xE9, 0x83, 0x9E, 0x43,
- 0xE9, 0x83, 0xB1, 0x43, 0xE9, 0x83, 0xBD, 0x43,
- 0xE9, 0x84, 0x91, 0x43, 0xE9, 0x84, 0x9B, 0x43,
- // Bytes 1440 - 147f
- 0xE9, 0x85, 0x89, 0x43, 0xE9, 0x85, 0x8D, 0x43,
- 0xE9, 0x85, 0xAA, 0x43, 0xE9, 0x86, 0x99, 0x43,
- 0xE9, 0x86, 0xB4, 0x43, 0xE9, 0x87, 0x86, 0x43,
- 0xE9, 0x87, 0x8C, 0x43, 0xE9, 0x87, 0x8F, 0x43,
- 0xE9, 0x87, 0x91, 0x43, 0xE9, 0x88, 0xB4, 0x43,
- 0xE9, 0x88, 0xB8, 0x43, 0xE9, 0x89, 0xB6, 0x43,
- 0xE9, 0x89, 0xBC, 0x43, 0xE9, 0x8B, 0x97, 0x43,
- 0xE9, 0x8B, 0x98, 0x43, 0xE9, 0x8C, 0x84, 0x43,
- // Bytes 1480 - 14bf
- 0xE9, 0x8D, 0x8A, 0x43, 0xE9, 0x8F, 0xB9, 0x43,
- 0xE9, 0x90, 0x95, 0x43, 0xE9, 0x95, 0xB7, 0x43,
- 0xE9, 0x96, 0x80, 0x43, 0xE9, 0x96, 0x8B, 0x43,
- 0xE9, 0x96, 0xAD, 0x43, 0xE9, 0x96, 0xB7, 0x43,
- 0xE9, 0x98, 0x9C, 0x43, 0xE9, 0x98, 0xAE, 0x43,
- 0xE9, 0x99, 0x8B, 0x43, 0xE9, 0x99, 0x8D, 0x43,
- 0xE9, 0x99, 0xB5, 0x43, 0xE9, 0x99, 0xB8, 0x43,
- 0xE9, 0x99, 0xBC, 0x43, 0xE9, 0x9A, 0x86, 0x43,
- // Bytes 14c0 - 14ff
- 0xE9, 0x9A, 0xA3, 0x43, 0xE9, 0x9A, 0xB6, 0x43,
- 0xE9, 0x9A, 0xB7, 0x43, 0xE9, 0x9A, 0xB8, 0x43,
- 0xE9, 0x9A, 0xB9, 0x43, 0xE9, 0x9B, 0x83, 0x43,
- 0xE9, 0x9B, 0xA2, 0x43, 0xE9, 0x9B, 0xA3, 0x43,
- 0xE9, 0x9B, 0xA8, 0x43, 0xE9, 0x9B, 0xB6, 0x43,
- 0xE9, 0x9B, 0xB7, 0x43, 0xE9, 0x9C, 0xA3, 0x43,
- 0xE9, 0x9C, 0xB2, 0x43, 0xE9, 0x9D, 0x88, 0x43,
- 0xE9, 0x9D, 0x91, 0x43, 0xE9, 0x9D, 0x96, 0x43,
- // Bytes 1500 - 153f
- 0xE9, 0x9D, 0x9E, 0x43, 0xE9, 0x9D, 0xA2, 0x43,
- 0xE9, 0x9D, 0xA9, 0x43, 0xE9, 0x9F, 0x8B, 0x43,
- 0xE9, 0x9F, 0x9B, 0x43, 0xE9, 0x9F, 0xA0, 0x43,
- 0xE9, 0x9F, 0xAD, 0x43, 0xE9, 0x9F, 0xB3, 0x43,
- 0xE9, 0x9F, 0xBF, 0x43, 0xE9, 0xA0, 0x81, 0x43,
- 0xE9, 0xA0, 0x85, 0x43, 0xE9, 0xA0, 0x8B, 0x43,
- 0xE9, 0xA0, 0x98, 0x43, 0xE9, 0xA0, 0xA9, 0x43,
- 0xE9, 0xA0, 0xBB, 0x43, 0xE9, 0xA1, 0x9E, 0x43,
- // Bytes 1540 - 157f
- 0xE9, 0xA2, 0xA8, 0x43, 0xE9, 0xA3, 0x9B, 0x43,
- 0xE9, 0xA3, 0x9F, 0x43, 0xE9, 0xA3, 0xA2, 0x43,
- 0xE9, 0xA3, 0xAF, 0x43, 0xE9, 0xA3, 0xBC, 0x43,
- 0xE9, 0xA4, 0xA8, 0x43, 0xE9, 0xA4, 0xA9, 0x43,
- 0xE9, 0xA6, 0x96, 0x43, 0xE9, 0xA6, 0x99, 0x43,
- 0xE9, 0xA6, 0xA7, 0x43, 0xE9, 0xA6, 0xAC, 0x43,
- 0xE9, 0xA7, 0x82, 0x43, 0xE9, 0xA7, 0xB1, 0x43,
- 0xE9, 0xA7, 0xBE, 0x43, 0xE9, 0xA9, 0xAA, 0x43,
- // Bytes 1580 - 15bf
- 0xE9, 0xAA, 0xA8, 0x43, 0xE9, 0xAB, 0x98, 0x43,
- 0xE9, 0xAB, 0x9F, 0x43, 0xE9, 0xAC, 0x92, 0x43,
- 0xE9, 0xAC, 0xA5, 0x43, 0xE9, 0xAC, 0xAF, 0x43,
- 0xE9, 0xAC, 0xB2, 0x43, 0xE9, 0xAC, 0xBC, 0x43,
- 0xE9, 0xAD, 0x9A, 0x43, 0xE9, 0xAD, 0xAF, 0x43,
- 0xE9, 0xB1, 0x80, 0x43, 0xE9, 0xB1, 0x97, 0x43,
- 0xE9, 0xB3, 0xA5, 0x43, 0xE9, 0xB3, 0xBD, 0x43,
- 0xE9, 0xB5, 0xA7, 0x43, 0xE9, 0xB6, 0xB4, 0x43,
- // Bytes 15c0 - 15ff
- 0xE9, 0xB7, 0xBA, 0x43, 0xE9, 0xB8, 0x9E, 0x43,
- 0xE9, 0xB9, 0xB5, 0x43, 0xE9, 0xB9, 0xBF, 0x43,
- 0xE9, 0xBA, 0x97, 0x43, 0xE9, 0xBA, 0x9F, 0x43,
- 0xE9, 0xBA, 0xA5, 0x43, 0xE9, 0xBA, 0xBB, 0x43,
- 0xE9, 0xBB, 0x83, 0x43, 0xE9, 0xBB, 0x8D, 0x43,
- 0xE9, 0xBB, 0x8E, 0x43, 0xE9, 0xBB, 0x91, 0x43,
- 0xE9, 0xBB, 0xB9, 0x43, 0xE9, 0xBB, 0xBD, 0x43,
- 0xE9, 0xBB, 0xBE, 0x43, 0xE9, 0xBC, 0x85, 0x43,
- // Bytes 1600 - 163f
- 0xE9, 0xBC, 0x8E, 0x43, 0xE9, 0xBC, 0x8F, 0x43,
- 0xE9, 0xBC, 0x93, 0x43, 0xE9, 0xBC, 0x96, 0x43,
- 0xE9, 0xBC, 0xA0, 0x43, 0xE9, 0xBC, 0xBB, 0x43,
- 0xE9, 0xBD, 0x83, 0x43, 0xE9, 0xBD, 0x8A, 0x43,
- 0xE9, 0xBD, 0x92, 0x43, 0xE9, 0xBE, 0x8D, 0x43,
- 0xE9, 0xBE, 0x8E, 0x43, 0xE9, 0xBE, 0x9C, 0x43,
- 0xE9, 0xBE, 0x9F, 0x43, 0xE9, 0xBE, 0xA0, 0x43,
- 0xEA, 0x9C, 0xA7, 0x43, 0xEA, 0x9D, 0xAF, 0x43,
- // Bytes 1640 - 167f
- 0xEA, 0xAC, 0xB7, 0x43, 0xEA, 0xAD, 0x92, 0x44,
- 0xF0, 0xA0, 0x84, 0xA2, 0x44, 0xF0, 0xA0, 0x94,
- 0x9C, 0x44, 0xF0, 0xA0, 0x94, 0xA5, 0x44, 0xF0,
- 0xA0, 0x95, 0x8B, 0x44, 0xF0, 0xA0, 0x98, 0xBA,
- 0x44, 0xF0, 0xA0, 0xA0, 0x84, 0x44, 0xF0, 0xA0,
- 0xA3, 0x9E, 0x44, 0xF0, 0xA0, 0xA8, 0xAC, 0x44,
- 0xF0, 0xA0, 0xAD, 0xA3, 0x44, 0xF0, 0xA1, 0x93,
- 0xA4, 0x44, 0xF0, 0xA1, 0x9A, 0xA8, 0x44, 0xF0,
- // Bytes 1680 - 16bf
- 0xA1, 0x9B, 0xAA, 0x44, 0xF0, 0xA1, 0xA7, 0x88,
- 0x44, 0xF0, 0xA1, 0xAC, 0x98, 0x44, 0xF0, 0xA1,
- 0xB4, 0x8B, 0x44, 0xF0, 0xA1, 0xB7, 0xA4, 0x44,
- 0xF0, 0xA1, 0xB7, 0xA6, 0x44, 0xF0, 0xA2, 0x86,
- 0x83, 0x44, 0xF0, 0xA2, 0x86, 0x9F, 0x44, 0xF0,
- 0xA2, 0x8C, 0xB1, 0x44, 0xF0, 0xA2, 0x9B, 0x94,
- 0x44, 0xF0, 0xA2, 0xA1, 0x84, 0x44, 0xF0, 0xA2,
- 0xA1, 0x8A, 0x44, 0xF0, 0xA2, 0xAC, 0x8C, 0x44,
- // Bytes 16c0 - 16ff
- 0xF0, 0xA2, 0xAF, 0xB1, 0x44, 0xF0, 0xA3, 0x80,
- 0x8A, 0x44, 0xF0, 0xA3, 0x8A, 0xB8, 0x44, 0xF0,
- 0xA3, 0x8D, 0x9F, 0x44, 0xF0, 0xA3, 0x8E, 0x93,
- 0x44, 0xF0, 0xA3, 0x8E, 0x9C, 0x44, 0xF0, 0xA3,
- 0x8F, 0x83, 0x44, 0xF0, 0xA3, 0x8F, 0x95, 0x44,
- 0xF0, 0xA3, 0x91, 0xAD, 0x44, 0xF0, 0xA3, 0x9A,
- 0xA3, 0x44, 0xF0, 0xA3, 0xA2, 0xA7, 0x44, 0xF0,
- 0xA3, 0xAA, 0x8D, 0x44, 0xF0, 0xA3, 0xAB, 0xBA,
- // Bytes 1700 - 173f
- 0x44, 0xF0, 0xA3, 0xB2, 0xBC, 0x44, 0xF0, 0xA3,
- 0xB4, 0x9E, 0x44, 0xF0, 0xA3, 0xBB, 0x91, 0x44,
- 0xF0, 0xA3, 0xBD, 0x9E, 0x44, 0xF0, 0xA3, 0xBE,
- 0x8E, 0x44, 0xF0, 0xA4, 0x89, 0xA3, 0x44, 0xF0,
- 0xA4, 0x8B, 0xAE, 0x44, 0xF0, 0xA4, 0x8E, 0xAB,
- 0x44, 0xF0, 0xA4, 0x98, 0x88, 0x44, 0xF0, 0xA4,
- 0x9C, 0xB5, 0x44, 0xF0, 0xA4, 0xA0, 0x94, 0x44,
- 0xF0, 0xA4, 0xB0, 0xB6, 0x44, 0xF0, 0xA4, 0xB2,
- // Bytes 1740 - 177f
- 0x92, 0x44, 0xF0, 0xA4, 0xBE, 0xA1, 0x44, 0xF0,
- 0xA4, 0xBE, 0xB8, 0x44, 0xF0, 0xA5, 0x81, 0x84,
- 0x44, 0xF0, 0xA5, 0x83, 0xB2, 0x44, 0xF0, 0xA5,
- 0x83, 0xB3, 0x44, 0xF0, 0xA5, 0x84, 0x99, 0x44,
- 0xF0, 0xA5, 0x84, 0xB3, 0x44, 0xF0, 0xA5, 0x89,
- 0x89, 0x44, 0xF0, 0xA5, 0x90, 0x9D, 0x44, 0xF0,
- 0xA5, 0x98, 0xA6, 0x44, 0xF0, 0xA5, 0x9A, 0x9A,
- 0x44, 0xF0, 0xA5, 0x9B, 0x85, 0x44, 0xF0, 0xA5,
- // Bytes 1780 - 17bf
- 0xA5, 0xBC, 0x44, 0xF0, 0xA5, 0xAA, 0xA7, 0x44,
- 0xF0, 0xA5, 0xAE, 0xAB, 0x44, 0xF0, 0xA5, 0xB2,
- 0x80, 0x44, 0xF0, 0xA5, 0xB3, 0x90, 0x44, 0xF0,
- 0xA5, 0xBE, 0x86, 0x44, 0xF0, 0xA6, 0x87, 0x9A,
- 0x44, 0xF0, 0xA6, 0x88, 0xA8, 0x44, 0xF0, 0xA6,
- 0x89, 0x87, 0x44, 0xF0, 0xA6, 0x8B, 0x99, 0x44,
- 0xF0, 0xA6, 0x8C, 0xBE, 0x44, 0xF0, 0xA6, 0x93,
- 0x9A, 0x44, 0xF0, 0xA6, 0x94, 0xA3, 0x44, 0xF0,
- // Bytes 17c0 - 17ff
- 0xA6, 0x96, 0xA8, 0x44, 0xF0, 0xA6, 0x9E, 0xA7,
- 0x44, 0xF0, 0xA6, 0x9E, 0xB5, 0x44, 0xF0, 0xA6,
- 0xAC, 0xBC, 0x44, 0xF0, 0xA6, 0xB0, 0xB6, 0x44,
- 0xF0, 0xA6, 0xB3, 0x95, 0x44, 0xF0, 0xA6, 0xB5,
- 0xAB, 0x44, 0xF0, 0xA6, 0xBC, 0xAC, 0x44, 0xF0,
- 0xA6, 0xBE, 0xB1, 0x44, 0xF0, 0xA7, 0x83, 0x92,
- 0x44, 0xF0, 0xA7, 0x8F, 0x8A, 0x44, 0xF0, 0xA7,
- 0x99, 0xA7, 0x44, 0xF0, 0xA7, 0xA2, 0xAE, 0x44,
- // Bytes 1800 - 183f
- 0xF0, 0xA7, 0xA5, 0xA6, 0x44, 0xF0, 0xA7, 0xB2,
- 0xA8, 0x44, 0xF0, 0xA7, 0xBB, 0x93, 0x44, 0xF0,
- 0xA7, 0xBC, 0xAF, 0x44, 0xF0, 0xA8, 0x97, 0x92,
- 0x44, 0xF0, 0xA8, 0x97, 0xAD, 0x44, 0xF0, 0xA8,
- 0x9C, 0xAE, 0x44, 0xF0, 0xA8, 0xAF, 0xBA, 0x44,
- 0xF0, 0xA8, 0xB5, 0xB7, 0x44, 0xF0, 0xA9, 0x85,
- 0x85, 0x44, 0xF0, 0xA9, 0x87, 0x9F, 0x44, 0xF0,
- 0xA9, 0x88, 0x9A, 0x44, 0xF0, 0xA9, 0x90, 0x8A,
- // Bytes 1840 - 187f
- 0x44, 0xF0, 0xA9, 0x92, 0x96, 0x44, 0xF0, 0xA9,
- 0x96, 0xB6, 0x44, 0xF0, 0xA9, 0xAC, 0xB0, 0x44,
- 0xF0, 0xAA, 0x83, 0x8E, 0x44, 0xF0, 0xAA, 0x84,
- 0x85, 0x44, 0xF0, 0xAA, 0x88, 0x8E, 0x44, 0xF0,
- 0xAA, 0x8A, 0x91, 0x44, 0xF0, 0xAA, 0x8E, 0x92,
- 0x44, 0xF0, 0xAA, 0x98, 0x80, 0x42, 0x21, 0x21,
- 0x42, 0x21, 0x3F, 0x42, 0x2E, 0x2E, 0x42, 0x30,
- 0x2C, 0x42, 0x30, 0x2E, 0x42, 0x31, 0x2C, 0x42,
- // Bytes 1880 - 18bf
- 0x31, 0x2E, 0x42, 0x31, 0x30, 0x42, 0x31, 0x31,
- 0x42, 0x31, 0x32, 0x42, 0x31, 0x33, 0x42, 0x31,
- 0x34, 0x42, 0x31, 0x35, 0x42, 0x31, 0x36, 0x42,
- 0x31, 0x37, 0x42, 0x31, 0x38, 0x42, 0x31, 0x39,
- 0x42, 0x32, 0x2C, 0x42, 0x32, 0x2E, 0x42, 0x32,
- 0x30, 0x42, 0x32, 0x31, 0x42, 0x32, 0x32, 0x42,
- 0x32, 0x33, 0x42, 0x32, 0x34, 0x42, 0x32, 0x35,
- 0x42, 0x32, 0x36, 0x42, 0x32, 0x37, 0x42, 0x32,
- // Bytes 18c0 - 18ff
- 0x38, 0x42, 0x32, 0x39, 0x42, 0x33, 0x2C, 0x42,
- 0x33, 0x2E, 0x42, 0x33, 0x30, 0x42, 0x33, 0x31,
- 0x42, 0x33, 0x32, 0x42, 0x33, 0x33, 0x42, 0x33,
- 0x34, 0x42, 0x33, 0x35, 0x42, 0x33, 0x36, 0x42,
- 0x33, 0x37, 0x42, 0x33, 0x38, 0x42, 0x33, 0x39,
- 0x42, 0x34, 0x2C, 0x42, 0x34, 0x2E, 0x42, 0x34,
- 0x30, 0x42, 0x34, 0x31, 0x42, 0x34, 0x32, 0x42,
- 0x34, 0x33, 0x42, 0x34, 0x34, 0x42, 0x34, 0x35,
- // Bytes 1900 - 193f
- 0x42, 0x34, 0x36, 0x42, 0x34, 0x37, 0x42, 0x34,
- 0x38, 0x42, 0x34, 0x39, 0x42, 0x35, 0x2C, 0x42,
- 0x35, 0x2E, 0x42, 0x35, 0x30, 0x42, 0x36, 0x2C,
- 0x42, 0x36, 0x2E, 0x42, 0x37, 0x2C, 0x42, 0x37,
- 0x2E, 0x42, 0x38, 0x2C, 0x42, 0x38, 0x2E, 0x42,
- 0x39, 0x2C, 0x42, 0x39, 0x2E, 0x42, 0x3D, 0x3D,
- 0x42, 0x3F, 0x21, 0x42, 0x3F, 0x3F, 0x42, 0x41,
- 0x55, 0x42, 0x42, 0x71, 0x42, 0x43, 0x44, 0x42,
- // Bytes 1940 - 197f
- 0x44, 0x4A, 0x42, 0x44, 0x5A, 0x42, 0x44, 0x7A,
- 0x42, 0x47, 0x42, 0x42, 0x47, 0x79, 0x42, 0x48,
- 0x50, 0x42, 0x48, 0x56, 0x42, 0x48, 0x67, 0x42,
- 0x48, 0x7A, 0x42, 0x49, 0x49, 0x42, 0x49, 0x4A,
- 0x42, 0x49, 0x55, 0x42, 0x49, 0x56, 0x42, 0x49,
- 0x58, 0x42, 0x4B, 0x42, 0x42, 0x4B, 0x4B, 0x42,
- 0x4B, 0x4D, 0x42, 0x4C, 0x4A, 0x42, 0x4C, 0x6A,
- 0x42, 0x4D, 0x42, 0x42, 0x4D, 0x43, 0x42, 0x4D,
- // Bytes 1980 - 19bf
- 0x44, 0x42, 0x4D, 0x56, 0x42, 0x4D, 0x57, 0x42,
- 0x4E, 0x4A, 0x42, 0x4E, 0x6A, 0x42, 0x4E, 0x6F,
- 0x42, 0x50, 0x48, 0x42, 0x50, 0x52, 0x42, 0x50,
- 0x61, 0x42, 0x52, 0x73, 0x42, 0x53, 0x44, 0x42,
- 0x53, 0x4D, 0x42, 0x53, 0x53, 0x42, 0x53, 0x76,
- 0x42, 0x54, 0x4D, 0x42, 0x56, 0x49, 0x42, 0x57,
- 0x43, 0x42, 0x57, 0x5A, 0x42, 0x57, 0x62, 0x42,
- 0x58, 0x49, 0x42, 0x63, 0x63, 0x42, 0x63, 0x64,
- // Bytes 19c0 - 19ff
- 0x42, 0x63, 0x6D, 0x42, 0x64, 0x42, 0x42, 0x64,
- 0x61, 0x42, 0x64, 0x6C, 0x42, 0x64, 0x6D, 0x42,
- 0x64, 0x7A, 0x42, 0x65, 0x56, 0x42, 0x66, 0x66,
- 0x42, 0x66, 0x69, 0x42, 0x66, 0x6C, 0x42, 0x66,
- 0x6D, 0x42, 0x68, 0x61, 0x42, 0x69, 0x69, 0x42,
- 0x69, 0x6A, 0x42, 0x69, 0x6E, 0x42, 0x69, 0x76,
- 0x42, 0x69, 0x78, 0x42, 0x6B, 0x41, 0x42, 0x6B,
- 0x56, 0x42, 0x6B, 0x57, 0x42, 0x6B, 0x67, 0x42,
- // Bytes 1a00 - 1a3f
- 0x6B, 0x6C, 0x42, 0x6B, 0x6D, 0x42, 0x6B, 0x74,
- 0x42, 0x6C, 0x6A, 0x42, 0x6C, 0x6D, 0x42, 0x6C,
- 0x6E, 0x42, 0x6C, 0x78, 0x42, 0x6D, 0x32, 0x42,
- 0x6D, 0x33, 0x42, 0x6D, 0x41, 0x42, 0x6D, 0x56,
- 0x42, 0x6D, 0x57, 0x42, 0x6D, 0x62, 0x42, 0x6D,
- 0x67, 0x42, 0x6D, 0x6C, 0x42, 0x6D, 0x6D, 0x42,
- 0x6D, 0x73, 0x42, 0x6E, 0x41, 0x42, 0x6E, 0x46,
- 0x42, 0x6E, 0x56, 0x42, 0x6E, 0x57, 0x42, 0x6E,
- // Bytes 1a40 - 1a7f
- 0x6A, 0x42, 0x6E, 0x6D, 0x42, 0x6E, 0x73, 0x42,
- 0x6F, 0x56, 0x42, 0x70, 0x41, 0x42, 0x70, 0x46,
- 0x42, 0x70, 0x56, 0x42, 0x70, 0x57, 0x42, 0x70,
- 0x63, 0x42, 0x70, 0x73, 0x42, 0x73, 0x72, 0x42,
- 0x73, 0x74, 0x42, 0x76, 0x69, 0x42, 0x78, 0x69,
- 0x43, 0x28, 0x31, 0x29, 0x43, 0x28, 0x32, 0x29,
- 0x43, 0x28, 0x33, 0x29, 0x43, 0x28, 0x34, 0x29,
- 0x43, 0x28, 0x35, 0x29, 0x43, 0x28, 0x36, 0x29,
- // Bytes 1a80 - 1abf
- 0x43, 0x28, 0x37, 0x29, 0x43, 0x28, 0x38, 0x29,
- 0x43, 0x28, 0x39, 0x29, 0x43, 0x28, 0x41, 0x29,
- 0x43, 0x28, 0x42, 0x29, 0x43, 0x28, 0x43, 0x29,
- 0x43, 0x28, 0x44, 0x29, 0x43, 0x28, 0x45, 0x29,
- 0x43, 0x28, 0x46, 0x29, 0x43, 0x28, 0x47, 0x29,
- 0x43, 0x28, 0x48, 0x29, 0x43, 0x28, 0x49, 0x29,
- 0x43, 0x28, 0x4A, 0x29, 0x43, 0x28, 0x4B, 0x29,
- 0x43, 0x28, 0x4C, 0x29, 0x43, 0x28, 0x4D, 0x29,
- // Bytes 1ac0 - 1aff
- 0x43, 0x28, 0x4E, 0x29, 0x43, 0x28, 0x4F, 0x29,
- 0x43, 0x28, 0x50, 0x29, 0x43, 0x28, 0x51, 0x29,
- 0x43, 0x28, 0x52, 0x29, 0x43, 0x28, 0x53, 0x29,
- 0x43, 0x28, 0x54, 0x29, 0x43, 0x28, 0x55, 0x29,
- 0x43, 0x28, 0x56, 0x29, 0x43, 0x28, 0x57, 0x29,
- 0x43, 0x28, 0x58, 0x29, 0x43, 0x28, 0x59, 0x29,
- 0x43, 0x28, 0x5A, 0x29, 0x43, 0x28, 0x61, 0x29,
- 0x43, 0x28, 0x62, 0x29, 0x43, 0x28, 0x63, 0x29,
- // Bytes 1b00 - 1b3f
- 0x43, 0x28, 0x64, 0x29, 0x43, 0x28, 0x65, 0x29,
- 0x43, 0x28, 0x66, 0x29, 0x43, 0x28, 0x67, 0x29,
- 0x43, 0x28, 0x68, 0x29, 0x43, 0x28, 0x69, 0x29,
- 0x43, 0x28, 0x6A, 0x29, 0x43, 0x28, 0x6B, 0x29,
- 0x43, 0x28, 0x6C, 0x29, 0x43, 0x28, 0x6D, 0x29,
- 0x43, 0x28, 0x6E, 0x29, 0x43, 0x28, 0x6F, 0x29,
- 0x43, 0x28, 0x70, 0x29, 0x43, 0x28, 0x71, 0x29,
- 0x43, 0x28, 0x72, 0x29, 0x43, 0x28, 0x73, 0x29,
- // Bytes 1b40 - 1b7f
- 0x43, 0x28, 0x74, 0x29, 0x43, 0x28, 0x75, 0x29,
- 0x43, 0x28, 0x76, 0x29, 0x43, 0x28, 0x77, 0x29,
- 0x43, 0x28, 0x78, 0x29, 0x43, 0x28, 0x79, 0x29,
- 0x43, 0x28, 0x7A, 0x29, 0x43, 0x2E, 0x2E, 0x2E,
- 0x43, 0x31, 0x30, 0x2E, 0x43, 0x31, 0x31, 0x2E,
- 0x43, 0x31, 0x32, 0x2E, 0x43, 0x31, 0x33, 0x2E,
- 0x43, 0x31, 0x34, 0x2E, 0x43, 0x31, 0x35, 0x2E,
- 0x43, 0x31, 0x36, 0x2E, 0x43, 0x31, 0x37, 0x2E,
- // Bytes 1b80 - 1bbf
- 0x43, 0x31, 0x38, 0x2E, 0x43, 0x31, 0x39, 0x2E,
- 0x43, 0x32, 0x30, 0x2E, 0x43, 0x3A, 0x3A, 0x3D,
- 0x43, 0x3D, 0x3D, 0x3D, 0x43, 0x43, 0x6F, 0x2E,
- 0x43, 0x46, 0x41, 0x58, 0x43, 0x47, 0x48, 0x7A,
- 0x43, 0x47, 0x50, 0x61, 0x43, 0x49, 0x49, 0x49,
- 0x43, 0x4C, 0x54, 0x44, 0x43, 0x4C, 0xC2, 0xB7,
- 0x43, 0x4D, 0x48, 0x7A, 0x43, 0x4D, 0x50, 0x61,
- 0x43, 0x4D, 0xCE, 0xA9, 0x43, 0x50, 0x50, 0x4D,
- // Bytes 1bc0 - 1bff
- 0x43, 0x50, 0x50, 0x56, 0x43, 0x50, 0x54, 0x45,
- 0x43, 0x54, 0x45, 0x4C, 0x43, 0x54, 0x48, 0x7A,
- 0x43, 0x56, 0x49, 0x49, 0x43, 0x58, 0x49, 0x49,
- 0x43, 0x61, 0x2F, 0x63, 0x43, 0x61, 0x2F, 0x73,
- 0x43, 0x61, 0xCA, 0xBE, 0x43, 0x62, 0x61, 0x72,
- 0x43, 0x63, 0x2F, 0x6F, 0x43, 0x63, 0x2F, 0x75,
- 0x43, 0x63, 0x61, 0x6C, 0x43, 0x63, 0x6D, 0x32,
- 0x43, 0x63, 0x6D, 0x33, 0x43, 0x64, 0x6D, 0x32,
- // Bytes 1c00 - 1c3f
- 0x43, 0x64, 0x6D, 0x33, 0x43, 0x65, 0x72, 0x67,
- 0x43, 0x66, 0x66, 0x69, 0x43, 0x66, 0x66, 0x6C,
- 0x43, 0x67, 0x61, 0x6C, 0x43, 0x68, 0x50, 0x61,
- 0x43, 0x69, 0x69, 0x69, 0x43, 0x6B, 0x48, 0x7A,
- 0x43, 0x6B, 0x50, 0x61, 0x43, 0x6B, 0x6D, 0x32,
- 0x43, 0x6B, 0x6D, 0x33, 0x43, 0x6B, 0xCE, 0xA9,
- 0x43, 0x6C, 0x6F, 0x67, 0x43, 0x6C, 0xC2, 0xB7,
- 0x43, 0x6D, 0x69, 0x6C, 0x43, 0x6D, 0x6D, 0x32,
- // Bytes 1c40 - 1c7f
- 0x43, 0x6D, 0x6D, 0x33, 0x43, 0x6D, 0x6F, 0x6C,
- 0x43, 0x72, 0x61, 0x64, 0x43, 0x76, 0x69, 0x69,
- 0x43, 0x78, 0x69, 0x69, 0x43, 0xC2, 0xB0, 0x43,
- 0x43, 0xC2, 0xB0, 0x46, 0x43, 0xCA, 0xBC, 0x6E,
- 0x43, 0xCE, 0xBC, 0x41, 0x43, 0xCE, 0xBC, 0x46,
- 0x43, 0xCE, 0xBC, 0x56, 0x43, 0xCE, 0xBC, 0x57,
- 0x43, 0xCE, 0xBC, 0x67, 0x43, 0xCE, 0xBC, 0x6C,
- 0x43, 0xCE, 0xBC, 0x6D, 0x43, 0xCE, 0xBC, 0x73,
- // Bytes 1c80 - 1cbf
- 0x44, 0x28, 0x31, 0x30, 0x29, 0x44, 0x28, 0x31,
- 0x31, 0x29, 0x44, 0x28, 0x31, 0x32, 0x29, 0x44,
- 0x28, 0x31, 0x33, 0x29, 0x44, 0x28, 0x31, 0x34,
- 0x29, 0x44, 0x28, 0x31, 0x35, 0x29, 0x44, 0x28,
- 0x31, 0x36, 0x29, 0x44, 0x28, 0x31, 0x37, 0x29,
- 0x44, 0x28, 0x31, 0x38, 0x29, 0x44, 0x28, 0x31,
- 0x39, 0x29, 0x44, 0x28, 0x32, 0x30, 0x29, 0x44,
- 0x30, 0xE7, 0x82, 0xB9, 0x44, 0x31, 0xE2, 0x81,
- // Bytes 1cc0 - 1cff
- 0x84, 0x44, 0x31, 0xE6, 0x97, 0xA5, 0x44, 0x31,
- 0xE6, 0x9C, 0x88, 0x44, 0x31, 0xE7, 0x82, 0xB9,
- 0x44, 0x32, 0xE6, 0x97, 0xA5, 0x44, 0x32, 0xE6,
- 0x9C, 0x88, 0x44, 0x32, 0xE7, 0x82, 0xB9, 0x44,
- 0x33, 0xE6, 0x97, 0xA5, 0x44, 0x33, 0xE6, 0x9C,
- 0x88, 0x44, 0x33, 0xE7, 0x82, 0xB9, 0x44, 0x34,
- 0xE6, 0x97, 0xA5, 0x44, 0x34, 0xE6, 0x9C, 0x88,
- 0x44, 0x34, 0xE7, 0x82, 0xB9, 0x44, 0x35, 0xE6,
- // Bytes 1d00 - 1d3f
- 0x97, 0xA5, 0x44, 0x35, 0xE6, 0x9C, 0x88, 0x44,
- 0x35, 0xE7, 0x82, 0xB9, 0x44, 0x36, 0xE6, 0x97,
- 0xA5, 0x44, 0x36, 0xE6, 0x9C, 0x88, 0x44, 0x36,
- 0xE7, 0x82, 0xB9, 0x44, 0x37, 0xE6, 0x97, 0xA5,
- 0x44, 0x37, 0xE6, 0x9C, 0x88, 0x44, 0x37, 0xE7,
- 0x82, 0xB9, 0x44, 0x38, 0xE6, 0x97, 0xA5, 0x44,
- 0x38, 0xE6, 0x9C, 0x88, 0x44, 0x38, 0xE7, 0x82,
- 0xB9, 0x44, 0x39, 0xE6, 0x97, 0xA5, 0x44, 0x39,
- // Bytes 1d40 - 1d7f
- 0xE6, 0x9C, 0x88, 0x44, 0x39, 0xE7, 0x82, 0xB9,
- 0x44, 0x56, 0x49, 0x49, 0x49, 0x44, 0x61, 0x2E,
- 0x6D, 0x2E, 0x44, 0x6B, 0x63, 0x61, 0x6C, 0x44,
- 0x70, 0x2E, 0x6D, 0x2E, 0x44, 0x76, 0x69, 0x69,
- 0x69, 0x44, 0xD5, 0xA5, 0xD6, 0x82, 0x44, 0xD5,
- 0xB4, 0xD5, 0xA5, 0x44, 0xD5, 0xB4, 0xD5, 0xAB,
- 0x44, 0xD5, 0xB4, 0xD5, 0xAD, 0x44, 0xD5, 0xB4,
- 0xD5, 0xB6, 0x44, 0xD5, 0xBE, 0xD5, 0xB6, 0x44,
- // Bytes 1d80 - 1dbf
- 0xD7, 0x90, 0xD7, 0x9C, 0x44, 0xD8, 0xA7, 0xD9,
- 0xB4, 0x44, 0xD8, 0xA8, 0xD8, 0xAC, 0x44, 0xD8,
- 0xA8, 0xD8, 0xAD, 0x44, 0xD8, 0xA8, 0xD8, 0xAE,
- 0x44, 0xD8, 0xA8, 0xD8, 0xB1, 0x44, 0xD8, 0xA8,
- 0xD8, 0xB2, 0x44, 0xD8, 0xA8, 0xD9, 0x85, 0x44,
- 0xD8, 0xA8, 0xD9, 0x86, 0x44, 0xD8, 0xA8, 0xD9,
- 0x87, 0x44, 0xD8, 0xA8, 0xD9, 0x89, 0x44, 0xD8,
- 0xA8, 0xD9, 0x8A, 0x44, 0xD8, 0xAA, 0xD8, 0xAC,
- // Bytes 1dc0 - 1dff
- 0x44, 0xD8, 0xAA, 0xD8, 0xAD, 0x44, 0xD8, 0xAA,
- 0xD8, 0xAE, 0x44, 0xD8, 0xAA, 0xD8, 0xB1, 0x44,
- 0xD8, 0xAA, 0xD8, 0xB2, 0x44, 0xD8, 0xAA, 0xD9,
- 0x85, 0x44, 0xD8, 0xAA, 0xD9, 0x86, 0x44, 0xD8,
- 0xAA, 0xD9, 0x87, 0x44, 0xD8, 0xAA, 0xD9, 0x89,
- 0x44, 0xD8, 0xAA, 0xD9, 0x8A, 0x44, 0xD8, 0xAB,
- 0xD8, 0xAC, 0x44, 0xD8, 0xAB, 0xD8, 0xB1, 0x44,
- 0xD8, 0xAB, 0xD8, 0xB2, 0x44, 0xD8, 0xAB, 0xD9,
- // Bytes 1e00 - 1e3f
- 0x85, 0x44, 0xD8, 0xAB, 0xD9, 0x86, 0x44, 0xD8,
- 0xAB, 0xD9, 0x87, 0x44, 0xD8, 0xAB, 0xD9, 0x89,
- 0x44, 0xD8, 0xAB, 0xD9, 0x8A, 0x44, 0xD8, 0xAC,
- 0xD8, 0xAD, 0x44, 0xD8, 0xAC, 0xD9, 0x85, 0x44,
- 0xD8, 0xAC, 0xD9, 0x89, 0x44, 0xD8, 0xAC, 0xD9,
- 0x8A, 0x44, 0xD8, 0xAD, 0xD8, 0xAC, 0x44, 0xD8,
- 0xAD, 0xD9, 0x85, 0x44, 0xD8, 0xAD, 0xD9, 0x89,
- 0x44, 0xD8, 0xAD, 0xD9, 0x8A, 0x44, 0xD8, 0xAE,
- // Bytes 1e40 - 1e7f
- 0xD8, 0xAC, 0x44, 0xD8, 0xAE, 0xD8, 0xAD, 0x44,
- 0xD8, 0xAE, 0xD9, 0x85, 0x44, 0xD8, 0xAE, 0xD9,
- 0x89, 0x44, 0xD8, 0xAE, 0xD9, 0x8A, 0x44, 0xD8,
- 0xB3, 0xD8, 0xAC, 0x44, 0xD8, 0xB3, 0xD8, 0xAD,
- 0x44, 0xD8, 0xB3, 0xD8, 0xAE, 0x44, 0xD8, 0xB3,
- 0xD8, 0xB1, 0x44, 0xD8, 0xB3, 0xD9, 0x85, 0x44,
- 0xD8, 0xB3, 0xD9, 0x87, 0x44, 0xD8, 0xB3, 0xD9,
- 0x89, 0x44, 0xD8, 0xB3, 0xD9, 0x8A, 0x44, 0xD8,
- // Bytes 1e80 - 1ebf
- 0xB4, 0xD8, 0xAC, 0x44, 0xD8, 0xB4, 0xD8, 0xAD,
- 0x44, 0xD8, 0xB4, 0xD8, 0xAE, 0x44, 0xD8, 0xB4,
- 0xD8, 0xB1, 0x44, 0xD8, 0xB4, 0xD9, 0x85, 0x44,
- 0xD8, 0xB4, 0xD9, 0x87, 0x44, 0xD8, 0xB4, 0xD9,
- 0x89, 0x44, 0xD8, 0xB4, 0xD9, 0x8A, 0x44, 0xD8,
- 0xB5, 0xD8, 0xAD, 0x44, 0xD8, 0xB5, 0xD8, 0xAE,
- 0x44, 0xD8, 0xB5, 0xD8, 0xB1, 0x44, 0xD8, 0xB5,
- 0xD9, 0x85, 0x44, 0xD8, 0xB5, 0xD9, 0x89, 0x44,
- // Bytes 1ec0 - 1eff
- 0xD8, 0xB5, 0xD9, 0x8A, 0x44, 0xD8, 0xB6, 0xD8,
- 0xAC, 0x44, 0xD8, 0xB6, 0xD8, 0xAD, 0x44, 0xD8,
- 0xB6, 0xD8, 0xAE, 0x44, 0xD8, 0xB6, 0xD8, 0xB1,
- 0x44, 0xD8, 0xB6, 0xD9, 0x85, 0x44, 0xD8, 0xB6,
- 0xD9, 0x89, 0x44, 0xD8, 0xB6, 0xD9, 0x8A, 0x44,
- 0xD8, 0xB7, 0xD8, 0xAD, 0x44, 0xD8, 0xB7, 0xD9,
- 0x85, 0x44, 0xD8, 0xB7, 0xD9, 0x89, 0x44, 0xD8,
- 0xB7, 0xD9, 0x8A, 0x44, 0xD8, 0xB8, 0xD9, 0x85,
- // Bytes 1f00 - 1f3f
- 0x44, 0xD8, 0xB9, 0xD8, 0xAC, 0x44, 0xD8, 0xB9,
- 0xD9, 0x85, 0x44, 0xD8, 0xB9, 0xD9, 0x89, 0x44,
- 0xD8, 0xB9, 0xD9, 0x8A, 0x44, 0xD8, 0xBA, 0xD8,
- 0xAC, 0x44, 0xD8, 0xBA, 0xD9, 0x85, 0x44, 0xD8,
- 0xBA, 0xD9, 0x89, 0x44, 0xD8, 0xBA, 0xD9, 0x8A,
- 0x44, 0xD9, 0x81, 0xD8, 0xAC, 0x44, 0xD9, 0x81,
- 0xD8, 0xAD, 0x44, 0xD9, 0x81, 0xD8, 0xAE, 0x44,
- 0xD9, 0x81, 0xD9, 0x85, 0x44, 0xD9, 0x81, 0xD9,
- // Bytes 1f40 - 1f7f
- 0x89, 0x44, 0xD9, 0x81, 0xD9, 0x8A, 0x44, 0xD9,
- 0x82, 0xD8, 0xAD, 0x44, 0xD9, 0x82, 0xD9, 0x85,
- 0x44, 0xD9, 0x82, 0xD9, 0x89, 0x44, 0xD9, 0x82,
- 0xD9, 0x8A, 0x44, 0xD9, 0x83, 0xD8, 0xA7, 0x44,
- 0xD9, 0x83, 0xD8, 0xAC, 0x44, 0xD9, 0x83, 0xD8,
- 0xAD, 0x44, 0xD9, 0x83, 0xD8, 0xAE, 0x44, 0xD9,
- 0x83, 0xD9, 0x84, 0x44, 0xD9, 0x83, 0xD9, 0x85,
- 0x44, 0xD9, 0x83, 0xD9, 0x89, 0x44, 0xD9, 0x83,
- // Bytes 1f80 - 1fbf
- 0xD9, 0x8A, 0x44, 0xD9, 0x84, 0xD8, 0xA7, 0x44,
- 0xD9, 0x84, 0xD8, 0xAC, 0x44, 0xD9, 0x84, 0xD8,
- 0xAD, 0x44, 0xD9, 0x84, 0xD8, 0xAE, 0x44, 0xD9,
- 0x84, 0xD9, 0x85, 0x44, 0xD9, 0x84, 0xD9, 0x87,
- 0x44, 0xD9, 0x84, 0xD9, 0x89, 0x44, 0xD9, 0x84,
- 0xD9, 0x8A, 0x44, 0xD9, 0x85, 0xD8, 0xA7, 0x44,
- 0xD9, 0x85, 0xD8, 0xAC, 0x44, 0xD9, 0x85, 0xD8,
- 0xAD, 0x44, 0xD9, 0x85, 0xD8, 0xAE, 0x44, 0xD9,
- // Bytes 1fc0 - 1fff
- 0x85, 0xD9, 0x85, 0x44, 0xD9, 0x85, 0xD9, 0x89,
- 0x44, 0xD9, 0x85, 0xD9, 0x8A, 0x44, 0xD9, 0x86,
- 0xD8, 0xAC, 0x44, 0xD9, 0x86, 0xD8, 0xAD, 0x44,
- 0xD9, 0x86, 0xD8, 0xAE, 0x44, 0xD9, 0x86, 0xD8,
- 0xB1, 0x44, 0xD9, 0x86, 0xD8, 0xB2, 0x44, 0xD9,
- 0x86, 0xD9, 0x85, 0x44, 0xD9, 0x86, 0xD9, 0x86,
- 0x44, 0xD9, 0x86, 0xD9, 0x87, 0x44, 0xD9, 0x86,
- 0xD9, 0x89, 0x44, 0xD9, 0x86, 0xD9, 0x8A, 0x44,
- // Bytes 2000 - 203f
- 0xD9, 0x87, 0xD8, 0xAC, 0x44, 0xD9, 0x87, 0xD9,
- 0x85, 0x44, 0xD9, 0x87, 0xD9, 0x89, 0x44, 0xD9,
- 0x87, 0xD9, 0x8A, 0x44, 0xD9, 0x88, 0xD9, 0xB4,
- 0x44, 0xD9, 0x8A, 0xD8, 0xAC, 0x44, 0xD9, 0x8A,
- 0xD8, 0xAD, 0x44, 0xD9, 0x8A, 0xD8, 0xAE, 0x44,
- 0xD9, 0x8A, 0xD8, 0xB1, 0x44, 0xD9, 0x8A, 0xD8,
- 0xB2, 0x44, 0xD9, 0x8A, 0xD9, 0x85, 0x44, 0xD9,
- 0x8A, 0xD9, 0x86, 0x44, 0xD9, 0x8A, 0xD9, 0x87,
- // Bytes 2040 - 207f
- 0x44, 0xD9, 0x8A, 0xD9, 0x89, 0x44, 0xD9, 0x8A,
- 0xD9, 0x8A, 0x44, 0xD9, 0x8A, 0xD9, 0xB4, 0x44,
- 0xDB, 0x87, 0xD9, 0xB4, 0x45, 0x28, 0xE1, 0x84,
- 0x80, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x82, 0x29,
- 0x45, 0x28, 0xE1, 0x84, 0x83, 0x29, 0x45, 0x28,
- 0xE1, 0x84, 0x85, 0x29, 0x45, 0x28, 0xE1, 0x84,
- 0x86, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x87, 0x29,
- 0x45, 0x28, 0xE1, 0x84, 0x89, 0x29, 0x45, 0x28,
- // Bytes 2080 - 20bf
- 0xE1, 0x84, 0x8B, 0x29, 0x45, 0x28, 0xE1, 0x84,
- 0x8C, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8E, 0x29,
- 0x45, 0x28, 0xE1, 0x84, 0x8F, 0x29, 0x45, 0x28,
- 0xE1, 0x84, 0x90, 0x29, 0x45, 0x28, 0xE1, 0x84,
- 0x91, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x92, 0x29,
- 0x45, 0x28, 0xE4, 0xB8, 0x80, 0x29, 0x45, 0x28,
- 0xE4, 0xB8, 0x83, 0x29, 0x45, 0x28, 0xE4, 0xB8,
- 0x89, 0x29, 0x45, 0x28, 0xE4, 0xB9, 0x9D, 0x29,
- // Bytes 20c0 - 20ff
- 0x45, 0x28, 0xE4, 0xBA, 0x8C, 0x29, 0x45, 0x28,
- 0xE4, 0xBA, 0x94, 0x29, 0x45, 0x28, 0xE4, 0xBB,
- 0xA3, 0x29, 0x45, 0x28, 0xE4, 0xBC, 0x81, 0x29,
- 0x45, 0x28, 0xE4, 0xBC, 0x91, 0x29, 0x45, 0x28,
- 0xE5, 0x85, 0xAB, 0x29, 0x45, 0x28, 0xE5, 0x85,
- 0xAD, 0x29, 0x45, 0x28, 0xE5, 0x8A, 0xB4, 0x29,
- 0x45, 0x28, 0xE5, 0x8D, 0x81, 0x29, 0x45, 0x28,
- 0xE5, 0x8D, 0x94, 0x29, 0x45, 0x28, 0xE5, 0x90,
- // Bytes 2100 - 213f
- 0x8D, 0x29, 0x45, 0x28, 0xE5, 0x91, 0xBC, 0x29,
- 0x45, 0x28, 0xE5, 0x9B, 0x9B, 0x29, 0x45, 0x28,
- 0xE5, 0x9C, 0x9F, 0x29, 0x45, 0x28, 0xE5, 0xAD,
- 0xA6, 0x29, 0x45, 0x28, 0xE6, 0x97, 0xA5, 0x29,
- 0x45, 0x28, 0xE6, 0x9C, 0x88, 0x29, 0x45, 0x28,
- 0xE6, 0x9C, 0x89, 0x29, 0x45, 0x28, 0xE6, 0x9C,
- 0xA8, 0x29, 0x45, 0x28, 0xE6, 0xA0, 0xAA, 0x29,
- 0x45, 0x28, 0xE6, 0xB0, 0xB4, 0x29, 0x45, 0x28,
- // Bytes 2140 - 217f
- 0xE7, 0x81, 0xAB, 0x29, 0x45, 0x28, 0xE7, 0x89,
- 0xB9, 0x29, 0x45, 0x28, 0xE7, 0x9B, 0xA3, 0x29,
- 0x45, 0x28, 0xE7, 0xA4, 0xBE, 0x29, 0x45, 0x28,
- 0xE7, 0xA5, 0x9D, 0x29, 0x45, 0x28, 0xE7, 0xA5,
- 0xAD, 0x29, 0x45, 0x28, 0xE8, 0x87, 0xAA, 0x29,
- 0x45, 0x28, 0xE8, 0x87, 0xB3, 0x29, 0x45, 0x28,
- 0xE8, 0xB2, 0xA1, 0x29, 0x45, 0x28, 0xE8, 0xB3,
- 0x87, 0x29, 0x45, 0x28, 0xE9, 0x87, 0x91, 0x29,
- // Bytes 2180 - 21bf
- 0x45, 0x30, 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31,
- 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x30, 0xE6,
- 0x9C, 0x88, 0x45, 0x31, 0x30, 0xE7, 0x82, 0xB9,
- 0x45, 0x31, 0x31, 0xE6, 0x97, 0xA5, 0x45, 0x31,
- 0x31, 0xE6, 0x9C, 0x88, 0x45, 0x31, 0x31, 0xE7,
- 0x82, 0xB9, 0x45, 0x31, 0x32, 0xE6, 0x97, 0xA5,
- 0x45, 0x31, 0x32, 0xE6, 0x9C, 0x88, 0x45, 0x31,
- 0x32, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x33, 0xE6,
- // Bytes 21c0 - 21ff
- 0x97, 0xA5, 0x45, 0x31, 0x33, 0xE7, 0x82, 0xB9,
- 0x45, 0x31, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x31,
- 0x34, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x35, 0xE6,
- 0x97, 0xA5, 0x45, 0x31, 0x35, 0xE7, 0x82, 0xB9,
- 0x45, 0x31, 0x36, 0xE6, 0x97, 0xA5, 0x45, 0x31,
- 0x36, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x37, 0xE6,
- 0x97, 0xA5, 0x45, 0x31, 0x37, 0xE7, 0x82, 0xB9,
- 0x45, 0x31, 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x31,
- // Bytes 2200 - 223f
- 0x38, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x39, 0xE6,
- 0x97, 0xA5, 0x45, 0x31, 0x39, 0xE7, 0x82, 0xB9,
- 0x45, 0x31, 0xE2, 0x81, 0x84, 0x32, 0x45, 0x31,
- 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, 0xE2, 0x81,
- 0x84, 0x34, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x35,
- 0x45, 0x31, 0xE2, 0x81, 0x84, 0x36, 0x45, 0x31,
- 0xE2, 0x81, 0x84, 0x37, 0x45, 0x31, 0xE2, 0x81,
- 0x84, 0x38, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x39,
- // Bytes 2240 - 227f
- 0x45, 0x32, 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x32,
- 0x30, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x31, 0xE6,
- 0x97, 0xA5, 0x45, 0x32, 0x31, 0xE7, 0x82, 0xB9,
- 0x45, 0x32, 0x32, 0xE6, 0x97, 0xA5, 0x45, 0x32,
- 0x32, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x33, 0xE6,
- 0x97, 0xA5, 0x45, 0x32, 0x33, 0xE7, 0x82, 0xB9,
- 0x45, 0x32, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x32,
- 0x34, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x35, 0xE6,
- // Bytes 2280 - 22bf
- 0x97, 0xA5, 0x45, 0x32, 0x36, 0xE6, 0x97, 0xA5,
- 0x45, 0x32, 0x37, 0xE6, 0x97, 0xA5, 0x45, 0x32,
- 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x39, 0xE6,
- 0x97, 0xA5, 0x45, 0x32, 0xE2, 0x81, 0x84, 0x33,
- 0x45, 0x32, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33,
- 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x33, 0x31, 0xE6,
- 0x97, 0xA5, 0x45, 0x33, 0xE2, 0x81, 0x84, 0x34,
- 0x45, 0x33, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33,
- // Bytes 22c0 - 22ff
- 0xE2, 0x81, 0x84, 0x38, 0x45, 0x34, 0xE2, 0x81,
- 0x84, 0x35, 0x45, 0x35, 0xE2, 0x81, 0x84, 0x36,
- 0x45, 0x35, 0xE2, 0x81, 0x84, 0x38, 0x45, 0x37,
- 0xE2, 0x81, 0x84, 0x38, 0x45, 0x41, 0xE2, 0x88,
- 0x95, 0x6D, 0x45, 0x56, 0xE2, 0x88, 0x95, 0x6D,
- 0x45, 0x6D, 0xE2, 0x88, 0x95, 0x73, 0x46, 0x31,
- 0xE2, 0x81, 0x84, 0x31, 0x30, 0x46, 0x43, 0xE2,
- 0x88, 0x95, 0x6B, 0x67, 0x46, 0x6D, 0xE2, 0x88,
- // Bytes 2300 - 233f
- 0x95, 0x73, 0x32, 0x46, 0xD8, 0xA8, 0xD8, 0xAD,
- 0xD9, 0x8A, 0x46, 0xD8, 0xA8, 0xD8, 0xAE, 0xD9,
- 0x8A, 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x85,
- 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x89, 0x46,
- 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8,
- 0xAA, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, 0xD8, 0xAA,
- 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8,
- 0xAE, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAE,
- // Bytes 2340 - 237f
- 0xD9, 0x89, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, 0xD9,
- 0x8A, 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAC,
- 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAD, 0x46,
- 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAE, 0x46, 0xD8,
- 0xAA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAA,
- 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD8,
- 0xAD, 0xD9, 0x89, 0x46, 0xD8, 0xAC, 0xD8, 0xAD,
- 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD8,
- // Bytes 2380 - 23bf
- 0xAD, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x89,
- 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x8A, 0x46,
- 0xD8, 0xAD, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8,
- 0xAD, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAD,
- 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB3, 0xD8,
- 0xAC, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, 0xD8, 0xAC,
- 0xD9, 0x89, 0x46, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8,
- 0xAC, 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x89,
- // Bytes 23c0 - 23ff
- 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x8A, 0x46,
- 0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xAC, 0x46, 0xD8,
- 0xB3, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xB3,
- 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8,
- 0xAC, 0xD9, 0x8A, 0x46, 0xD8, 0xB4, 0xD8, 0xAD,
- 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, 0xD9,
- 0x8A, 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD8, 0xAE,
- 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD9, 0x85, 0x46,
- // Bytes 2400 - 243f
- 0xD8, 0xB5, 0xD8, 0xAD, 0xD8, 0xAD, 0x46, 0xD8,
- 0xB5, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB5,
- 0xD9, 0x84, 0xD9, 0x89, 0x46, 0xD8, 0xB5, 0xD9,
- 0x84, 0xDB, 0x92, 0x46, 0xD8, 0xB5, 0xD9, 0x85,
- 0xD9, 0x85, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9,
- 0x89, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x8A,
- 0x46, 0xD8, 0xB6, 0xD8, 0xAE, 0xD9, 0x85, 0x46,
- 0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8,
- // Bytes 2440 - 247f
- 0xB7, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB7,
- 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB9, 0xD8,
- 0xAC, 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85,
- 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9,
- 0x89, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x8A,
- 0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x85, 0x46,
- 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8,
- 0xBA, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x81,
- // Bytes 2480 - 24bf
- 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x81, 0xD9,
- 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x82, 0xD9, 0x84,
- 0xDB, 0x92, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD8,
- 0xAD, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x85,
- 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x8A, 0x46,
- 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9,
- 0x83, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x84,
- 0xD8, 0xAC, 0xD8, 0xAC, 0x46, 0xD9, 0x84, 0xD8,
- // Bytes 24c0 - 24ff
- 0xAC, 0xD9, 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAC,
- 0xD9, 0x8A, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9,
- 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x89,
- 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x8A, 0x46,
- 0xD9, 0x84, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9,
- 0x84, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD9, 0x84,
- 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8,
- 0xAC, 0xD8, 0xAD, 0x46, 0xD9, 0x85, 0xD8, 0xAC,
- // Bytes 2500 - 253f
- 0xD8, 0xAE, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9,
- 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x8A,
- 0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xAC, 0x46,
- 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9,
- 0x85, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x85,
- 0xD8, 0xAE, 0xD8, 0xAC, 0x46, 0xD9, 0x85, 0xD8,
- 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAE,
- 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD9, 0x85, 0xD9,
- // Bytes 2540 - 257f
- 0x8A, 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD8, 0xAD,
- 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x85, 0x46,
- 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD9,
- 0x86, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x86,
- 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, 0x86, 0xD8,
- 0xAD, 0xD9, 0x89, 0x46, 0xD9, 0x86, 0xD8, 0xAD,
- 0xD9, 0x8A, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9,
- 0x89, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x8A,
- // Bytes 2580 - 25bf
- 0x46, 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xAC, 0x46,
- 0xD9, 0x87, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9,
- 0x8A, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x8A,
- 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9,
- 0x85, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x85,
- 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8,
- 0xA7, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAC,
- 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAD, 0x46,
- // Bytes 25c0 - 25ff
- 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAE, 0x46, 0xD9,
- 0x8A, 0xD9, 0x94, 0xD8, 0xB1, 0x46, 0xD9, 0x8A,
- 0xD9, 0x94, 0xD8, 0xB2, 0x46, 0xD9, 0x8A, 0xD9,
- 0x94, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x94,
- 0xD9, 0x86, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9,
- 0x87, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x88,
- 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x89, 0x46,
- 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x8A, 0x46, 0xD9,
- // Bytes 2600 - 263f
- 0x8A, 0xD9, 0x94, 0xDB, 0x86, 0x46, 0xD9, 0x8A,
- 0xD9, 0x94, 0xDB, 0x87, 0x46, 0xD9, 0x8A, 0xD9,
- 0x94, 0xDB, 0x88, 0x46, 0xD9, 0x8A, 0xD9, 0x94,
- 0xDB, 0x90, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB,
- 0x95, 0x46, 0xE0, 0xB9, 0x8D, 0xE0, 0xB8, 0xB2,
- 0x46, 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0x99, 0x46,
- 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0xA1, 0x46, 0xE0,
- 0xBB, 0x8D, 0xE0, 0xBA, 0xB2, 0x46, 0xE0, 0xBD,
- // Bytes 2640 - 267f
- 0x80, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, 0xBD, 0x82,
- 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x8C, 0xE0,
- 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x91, 0xE0, 0xBE,
- 0xB7, 0x46, 0xE0, 0xBD, 0x96, 0xE0, 0xBE, 0xB7,
- 0x46, 0xE0, 0xBD, 0x9B, 0xE0, 0xBE, 0xB7, 0x46,
- 0xE0, 0xBE, 0x90, 0xE0, 0xBE, 0xB5, 0x46, 0xE0,
- 0xBE, 0x92, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE,
- 0x9C, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA1,
- // Bytes 2680 - 26bf
- 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA6, 0xE0,
- 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xAB, 0xE0, 0xBE,
- 0xB7, 0x46, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,
- 0x46, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x46,
- 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x46, 0xE2,
- 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x46, 0xE3, 0x81,
- 0xBB, 0xE3, 0x81, 0x8B, 0x46, 0xE3, 0x82, 0x88,
- 0xE3, 0x82, 0x8A, 0x46, 0xE3, 0x82, 0xAD, 0xE3,
- // Bytes 26c0 - 26ff
- 0x83, 0xAD, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x82,
- 0xB3, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0x88,
- 0x46, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x46,
- 0xE3, 0x83, 0x8A, 0xE3, 0x83, 0x8E, 0x46, 0xE3,
- 0x83, 0x9B, 0xE3, 0x83, 0xB3, 0x46, 0xE3, 0x83,
- 0x9F, 0xE3, 0x83, 0xAA, 0x46, 0xE3, 0x83, 0xAA,
- 0xE3, 0x83, 0xA9, 0x46, 0xE3, 0x83, 0xAC, 0xE3,
- 0x83, 0xA0, 0x46, 0xE5, 0xA4, 0xA7, 0xE6, 0xAD,
- // Bytes 2700 - 273f
- 0xA3, 0x46, 0xE5, 0xB9, 0xB3, 0xE6, 0x88, 0x90,
- 0x46, 0xE6, 0x98, 0x8E, 0xE6, 0xB2, 0xBB, 0x46,
- 0xE6, 0x98, 0xAD, 0xE5, 0x92, 0x8C, 0x47, 0x72,
- 0x61, 0x64, 0xE2, 0x88, 0x95, 0x73, 0x47, 0xE3,
- 0x80, 0x94, 0x53, 0xE3, 0x80, 0x95, 0x48, 0x28,
- 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x29, 0x48,
- 0x28, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x29,
- 0x48, 0x28, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1,
- // Bytes 2740 - 277f
- 0x29, 0x48, 0x28, 0xE1, 0x84, 0x85, 0xE1, 0x85,
- 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x86, 0xE1,
- 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x87,
- 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84,
- 0x89, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1,
- 0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28,
- 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x29, 0x48,
- 0x28, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xAE, 0x29,
- // Bytes 2780 - 27bf
- 0x48, 0x28, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1,
- 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8F, 0xE1, 0x85,
- 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x90, 0xE1,
- 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x91,
- 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84,
- 0x92, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x72, 0x61,
- 0x64, 0xE2, 0x88, 0x95, 0x73, 0x32, 0x48, 0xD8,
- 0xA7, 0xD9, 0x83, 0xD8, 0xA8, 0xD8, 0xB1, 0x48,
- // Bytes 27c0 - 27ff
- 0xD8, 0xA7, 0xD9, 0x84, 0xD9, 0x84, 0xD9, 0x87,
- 0x48, 0xD8, 0xB1, 0xD8, 0xB3, 0xD9, 0x88, 0xD9,
- 0x84, 0x48, 0xD8, 0xB1, 0xDB, 0x8C, 0xD8, 0xA7,
- 0xD9, 0x84, 0x48, 0xD8, 0xB5, 0xD9, 0x84, 0xD8,
- 0xB9, 0xD9, 0x85, 0x48, 0xD8, 0xB9, 0xD9, 0x84,
- 0xD9, 0x8A, 0xD9, 0x87, 0x48, 0xD9, 0x85, 0xD8,
- 0xAD, 0xD9, 0x85, 0xD8, 0xAF, 0x48, 0xD9, 0x88,
- 0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x49, 0xE2,
- // Bytes 2800 - 283f
- 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,
- 0x49, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0xE2,
- 0x80, 0xB5, 0x49, 0xE2, 0x88, 0xAB, 0xE2, 0x88,
- 0xAB, 0xE2, 0x88, 0xAB, 0x49, 0xE2, 0x88, 0xAE,
- 0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x49, 0xE3,
- 0x80, 0x94, 0xE4, 0xB8, 0x89, 0xE3, 0x80, 0x95,
- 0x49, 0xE3, 0x80, 0x94, 0xE4, 0xBA, 0x8C, 0xE3,
- 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE5, 0x8B,
- // Bytes 2840 - 287f
- 0x9D, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94,
- 0xE5, 0xAE, 0x89, 0xE3, 0x80, 0x95, 0x49, 0xE3,
- 0x80, 0x94, 0xE6, 0x89, 0x93, 0xE3, 0x80, 0x95,
- 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x95, 0x97, 0xE3,
- 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x9C,
- 0xAC, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94,
- 0xE7, 0x82, 0xB9, 0xE3, 0x80, 0x95, 0x49, 0xE3,
- 0x80, 0x94, 0xE7, 0x9B, 0x97, 0xE3, 0x80, 0x95,
- // Bytes 2880 - 28bf
- 0x49, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xBC, 0xE3,
- 0x83, 0xAB, 0x49, 0xE3, 0x82, 0xA4, 0xE3, 0x83,
- 0xB3, 0xE3, 0x83, 0x81, 0x49, 0xE3, 0x82, 0xA6,
- 0xE3, 0x82, 0xA9, 0xE3, 0x83, 0xB3, 0x49, 0xE3,
- 0x82, 0xAA, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB9,
- 0x49, 0xE3, 0x82, 0xAA, 0xE3, 0x83, 0xBC, 0xE3,
- 0x83, 0xA0, 0x49, 0xE3, 0x82, 0xAB, 0xE3, 0x82,
- 0xA4, 0xE3, 0x83, 0xAA, 0x49, 0xE3, 0x82, 0xB1,
- // Bytes 28c0 - 28ff
- 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB9, 0x49, 0xE3,
- 0x82, 0xB3, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x8A,
- 0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3,
- 0x83, 0x81, 0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83,
- 0xB3, 0xE3, 0x83, 0x88, 0x49, 0xE3, 0x83, 0x86,
- 0xE3, 0x82, 0x99, 0xE3, 0x82, 0xB7, 0x49, 0xE3,
- 0x83, 0x88, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB,
- 0x49, 0xE3, 0x83, 0x8E, 0xE3, 0x83, 0x83, 0xE3,
- // Bytes 2900 - 293f
- 0x83, 0x88, 0x49, 0xE3, 0x83, 0x8F, 0xE3, 0x82,
- 0xA4, 0xE3, 0x83, 0x84, 0x49, 0xE3, 0x83, 0x92,
- 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0x49, 0xE3,
- 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xB3,
- 0x49, 0xE3, 0x83, 0x95, 0xE3, 0x83, 0xA9, 0xE3,
- 0x83, 0xB3, 0x49, 0xE3, 0x83, 0x98, 0xE3, 0x82,
- 0x9A, 0xE3, 0x82, 0xBD, 0x49, 0xE3, 0x83, 0x98,
- 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x84, 0x49, 0xE3,
- // Bytes 2940 - 297f
- 0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB,
- 0x49, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3,
- 0x83, 0xB3, 0x49, 0xE3, 0x83, 0x9E, 0xE3, 0x82,
- 0xA4, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x9E,
- 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x8F, 0x49, 0xE3,
- 0x83, 0x9E, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xAF,
- 0x49, 0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xBC, 0xE3,
- 0x83, 0xAB, 0x49, 0xE3, 0x83, 0xA6, 0xE3, 0x82,
- // Bytes 2980 - 29bf
- 0xA2, 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x83, 0xAF,
- 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0x4C, 0xE2,
- 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,
- 0xE2, 0x80, 0xB2, 0x4C, 0xE2, 0x88, 0xAB, 0xE2,
- 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB,
- 0x4C, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xAB, 0xE3,
- 0x83, 0x95, 0xE3, 0x82, 0xA1, 0x4C, 0xE3, 0x82,
- 0xA8, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xAB, 0xE3,
- // Bytes 29c0 - 29ff
- 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x82,
- 0x99, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xB3, 0x4C,
- 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83,
- 0xB3, 0xE3, 0x83, 0x9E, 0x4C, 0xE3, 0x82, 0xAB,
- 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0x83, 0xE3, 0x83,
- 0x88, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xAD,
- 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, 0x4C, 0xE3,
- 0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x8B,
- // Bytes 2a00 - 2a3f
- 0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAD, 0xE3,
- 0x83, 0xA5, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC,
- 0x4C, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3,
- 0x83, 0xA9, 0xE3, 0x83, 0xA0, 0x4C, 0xE3, 0x82,
- 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xBC, 0xE3,
- 0x83, 0x8D, 0x4C, 0xE3, 0x82, 0xB5, 0xE3, 0x82,
- 0xA4, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C,
- 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83,
- // Bytes 2a40 - 2a7f
- 0xBC, 0xE3, 0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x8F,
- 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83,
- 0x84, 0x4C, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A,
- 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, 0xE3,
- 0x83, 0x95, 0xE3, 0x82, 0xA3, 0xE3, 0x83, 0xBC,
- 0xE3, 0x83, 0x88, 0x4C, 0xE3, 0x83, 0x98, 0xE3,
- 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xBF,
- 0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3,
- // Bytes 2a80 - 2abf
- 0x83, 0x8B, 0xE3, 0x83, 0x92, 0x4C, 0xE3, 0x83,
- 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xB3, 0xE3,
- 0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x9B, 0xE3, 0x82,
- 0x99, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x88, 0x4C,
- 0xE3, 0x83, 0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x82,
- 0xAF, 0xE3, 0x83, 0xAD, 0x4C, 0xE3, 0x83, 0x9F,
- 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83,
- 0xB3, 0x4C, 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xBC,
- // Bytes 2ac0 - 2aff
- 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x4C, 0xE3,
- 0x83, 0xAA, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88,
- 0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x83, 0xAB, 0xE3,
- 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC,
- 0x4C, 0xE6, 0xA0, 0xAA, 0xE5, 0xBC, 0x8F, 0xE4,
- 0xBC, 0x9A, 0xE7, 0xA4, 0xBE, 0x4E, 0x28, 0xE1,
- 0x84, 0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x92,
- 0xE1, 0x85, 0xAE, 0x29, 0x4F, 0xD8, 0xAC, 0xD9,
- // Bytes 2b00 - 2b3f
- 0x84, 0x20, 0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xA7,
- 0xD9, 0x84, 0xD9, 0x87, 0x4F, 0xE3, 0x82, 0xA2,
- 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83,
- 0xBC, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xA2,
- 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x98, 0xE3, 0x82,
- 0x9A, 0xE3, 0x82, 0xA2, 0x4F, 0xE3, 0x82, 0xAD,
- 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xAF, 0xE3, 0x83,
- 0x83, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xB5,
- // Bytes 2b40 - 2b7f
- 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x81, 0xE3, 0x83,
- 0xBC, 0xE3, 0x83, 0xA0, 0x4F, 0xE3, 0x83, 0x8F,
- 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83,
- 0xAC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x98,
- 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0xBF, 0xE3, 0x83,
- 0xBC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x9B,
- 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA4, 0xE3, 0x83,
- 0xB3, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x83, 0x9E,
- // Bytes 2b80 - 2bbf
- 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB7, 0xE3, 0x83,
- 0xA7, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xA1,
- 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83,
- 0x88, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xAB,
- 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x95, 0xE3, 0x82,
- 0x99, 0xE3, 0x83, 0xAB, 0x51, 0x28, 0xE1, 0x84,
- 0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x8C, 0xE1,
- 0x85, 0xA5, 0xE1, 0x86, 0xAB, 0x29, 0x52, 0xE3,
- // Bytes 2bc0 - 2bff
- 0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB,
- 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83,
- 0xBC, 0x52, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD,
- 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83,
- 0xA9, 0xE3, 0x83, 0xA0, 0x52, 0xE3, 0x82, 0xAD,
- 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xA1, 0xE3, 0x83,
- 0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x52,
- 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83,
- // Bytes 2c00 - 2c3f
- 0xA9, 0xE3, 0x83, 0xA0, 0xE3, 0x83, 0x88, 0xE3,
- 0x83, 0xB3, 0x52, 0xE3, 0x82, 0xAF, 0xE3, 0x83,
- 0xAB, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0xE3,
- 0x82, 0xA4, 0xE3, 0x83, 0xAD, 0x52, 0xE3, 0x83,
- 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3,
- 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88,
- 0x52, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3,
- 0x82, 0xA2, 0xE3, 0x82, 0xB9, 0xE3, 0x83, 0x88,
- // Bytes 2c40 - 2c7f
- 0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x83, 0x95, 0xE3,
- 0x82, 0x99, 0xE3, 0x83, 0x83, 0xE3, 0x82, 0xB7,
- 0xE3, 0x82, 0xA7, 0xE3, 0x83, 0xAB, 0x52, 0xE3,
- 0x83, 0x9F, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0x8F,
- 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83,
- 0xAB, 0x52, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xB3,
- 0xE3, 0x83, 0x88, 0xE3, 0x82, 0xB1, 0xE3, 0x82,
- 0x99, 0xE3, 0x83, 0xB3, 0x61, 0xD8, 0xB5, 0xD9,
- // Bytes 2c80 - 2cbf
- 0x84, 0xD9, 0x89, 0x20, 0xD8, 0xA7, 0xD9, 0x84,
- 0xD9, 0x84, 0xD9, 0x87, 0x20, 0xD8, 0xB9, 0xD9,
- 0x84, 0xD9, 0x8A, 0xD9, 0x87, 0x20, 0xD9, 0x88,
- 0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x06, 0xE0,
- 0xA7, 0x87, 0xE0, 0xA6, 0xBE, 0x01, 0x06, 0xE0,
- 0xA7, 0x87, 0xE0, 0xA7, 0x97, 0x01, 0x06, 0xE0,
- 0xAD, 0x87, 0xE0, 0xAC, 0xBE, 0x01, 0x06, 0xE0,
- 0xAD, 0x87, 0xE0, 0xAD, 0x96, 0x01, 0x06, 0xE0,
- // Bytes 2cc0 - 2cff
- 0xAD, 0x87, 0xE0, 0xAD, 0x97, 0x01, 0x06, 0xE0,
- 0xAE, 0x92, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0,
- 0xAF, 0x86, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0,
- 0xAF, 0x86, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0,
- 0xAF, 0x87, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0,
- 0xB2, 0xBF, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0,
- 0xB3, 0x86, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0,
- 0xB3, 0x86, 0xE0, 0xB3, 0x96, 0x01, 0x06, 0xE0,
- // Bytes 2d00 - 2d3f
- 0xB5, 0x86, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0,
- 0xB5, 0x86, 0xE0, 0xB5, 0x97, 0x01, 0x06, 0xE0,
- 0xB5, 0x87, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0,
- 0xB7, 0x99, 0xE0, 0xB7, 0x9F, 0x01, 0x06, 0xE1,
- 0x80, 0xA5, 0xE1, 0x80, 0xAE, 0x01, 0x06, 0xE1,
- 0xAC, 0x85, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,
- 0xAC, 0x87, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,
- 0xAC, 0x89, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,
- // Bytes 2d40 - 2d7f
- 0xAC, 0x8B, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,
- 0xAC, 0x8D, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,
- 0xAC, 0x91, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,
- 0xAC, 0xBA, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,
- 0xAC, 0xBC, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,
- 0xAC, 0xBE, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,
- 0xAC, 0xBF, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,
- 0xAD, 0x82, 0xE1, 0xAC, 0xB5, 0x01, 0x08, 0xF0,
- // Bytes 2d80 - 2dbf
- 0x91, 0x84, 0xB1, 0xF0, 0x91, 0x84, 0xA7, 0x01,
- 0x08, 0xF0, 0x91, 0x84, 0xB2, 0xF0, 0x91, 0x84,
- 0xA7, 0x01, 0x08, 0xF0, 0x91, 0x8D, 0x87, 0xF0,
- 0x91, 0x8C, 0xBE, 0x01, 0x08, 0xF0, 0x91, 0x8D,
- 0x87, 0xF0, 0x91, 0x8D, 0x97, 0x01, 0x08, 0xF0,
- 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xB0, 0x01,
- 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92,
- 0xBA, 0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0,
- // Bytes 2dc0 - 2dff
- 0x91, 0x92, 0xBD, 0x01, 0x08, 0xF0, 0x91, 0x96,
- 0xB8, 0xF0, 0x91, 0x96, 0xAF, 0x01, 0x08, 0xF0,
- 0x91, 0x96, 0xB9, 0xF0, 0x91, 0x96, 0xAF, 0x01,
- 0x09, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0xE0,
- 0xB3, 0x95, 0x02, 0x09, 0xE0, 0xB7, 0x99, 0xE0,
- 0xB7, 0x8F, 0xE0, 0xB7, 0x8A, 0x12, 0x44, 0x44,
- 0x5A, 0xCC, 0x8C, 0xC9, 0x44, 0x44, 0x7A, 0xCC,
- 0x8C, 0xC9, 0x44, 0x64, 0x7A, 0xCC, 0x8C, 0xC9,
- // Bytes 2e00 - 2e3f
- 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x93, 0xC9,
- 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x94, 0xC9,
- 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x95, 0xB5,
- 0x46, 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x01,
- 0x46, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x01,
- 0x46, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, 0x01,
- 0x46, 0xE1, 0x84, 0x85, 0xE1, 0x85, 0xA1, 0x01,
- 0x46, 0xE1, 0x84, 0x86, 0xE1, 0x85, 0xA1, 0x01,
- // Bytes 2e40 - 2e7f
- 0x46, 0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1, 0x01,
- 0x46, 0xE1, 0x84, 0x89, 0xE1, 0x85, 0xA1, 0x01,
- 0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x01,
- 0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xAE, 0x01,
- 0x46, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x01,
- 0x46, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, 0x01,
- 0x46, 0xE1, 0x84, 0x8F, 0xE1, 0x85, 0xA1, 0x01,
- 0x46, 0xE1, 0x84, 0x90, 0xE1, 0x85, 0xA1, 0x01,
- // Bytes 2e80 - 2ebf
- 0x46, 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1, 0x01,
- 0x46, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0x01,
- 0x49, 0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB, 0xE3,
- 0x82, 0x99, 0x0D, 0x4C, 0xE1, 0x84, 0x8C, 0xE1,
- 0x85, 0xAE, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xB4,
- 0x01, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99,
- 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D, 0x4C,
- 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0xBC, 0xE3, 0x83,
- // Bytes 2ec0 - 2eff
- 0x9B, 0xE3, 0x82, 0x9A, 0x0D, 0x4C, 0xE3, 0x83,
- 0xA4, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3,
- 0x82, 0x99, 0x0D, 0x4F, 0xE1, 0x84, 0x8E, 0xE1,
- 0x85, 0xA1, 0xE1, 0x86, 0xB7, 0xE1, 0x84, 0x80,
- 0xE1, 0x85, 0xA9, 0x01, 0x4F, 0xE3, 0x82, 0xA4,
- 0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xB3, 0xE3, 0x82,
- 0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3, 0x82,
- 0xB7, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xB3, 0xE3,
- // Bytes 2f00 - 2f3f
- 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3,
- 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC,
- 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D, 0x4F,
- 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0xE3, 0x83,
- 0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D,
- 0x52, 0xE3, 0x82, 0xA8, 0xE3, 0x82, 0xB9, 0xE3,
- 0x82, 0xAF, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88,
- 0xE3, 0x82, 0x99, 0x0D, 0x52, 0xE3, 0x83, 0x95,
- // Bytes 2f40 - 2f7f
- 0xE3, 0x82, 0xA1, 0xE3, 0x83, 0xA9, 0xE3, 0x83,
- 0x83, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D,
- 0x86, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0x01,
- 0x86, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8F, 0x01,
- 0x03, 0x3C, 0xCC, 0xB8, 0x05, 0x03, 0x3D, 0xCC,
- 0xB8, 0x05, 0x03, 0x3E, 0xCC, 0xB8, 0x05, 0x03,
- 0x41, 0xCC, 0x80, 0xC9, 0x03, 0x41, 0xCC, 0x81,
- 0xC9, 0x03, 0x41, 0xCC, 0x83, 0xC9, 0x03, 0x41,
- // Bytes 2f80 - 2fbf
- 0xCC, 0x84, 0xC9, 0x03, 0x41, 0xCC, 0x89, 0xC9,
- 0x03, 0x41, 0xCC, 0x8C, 0xC9, 0x03, 0x41, 0xCC,
- 0x8F, 0xC9, 0x03, 0x41, 0xCC, 0x91, 0xC9, 0x03,
- 0x41, 0xCC, 0xA5, 0xB5, 0x03, 0x41, 0xCC, 0xA8,
- 0xA5, 0x03, 0x42, 0xCC, 0x87, 0xC9, 0x03, 0x42,
- 0xCC, 0xA3, 0xB5, 0x03, 0x42, 0xCC, 0xB1, 0xB5,
- 0x03, 0x43, 0xCC, 0x81, 0xC9, 0x03, 0x43, 0xCC,
- 0x82, 0xC9, 0x03, 0x43, 0xCC, 0x87, 0xC9, 0x03,
- // Bytes 2fc0 - 2fff
- 0x43, 0xCC, 0x8C, 0xC9, 0x03, 0x44, 0xCC, 0x87,
- 0xC9, 0x03, 0x44, 0xCC, 0x8C, 0xC9, 0x03, 0x44,
- 0xCC, 0xA3, 0xB5, 0x03, 0x44, 0xCC, 0xA7, 0xA5,
- 0x03, 0x44, 0xCC, 0xAD, 0xB5, 0x03, 0x44, 0xCC,
- 0xB1, 0xB5, 0x03, 0x45, 0xCC, 0x80, 0xC9, 0x03,
- 0x45, 0xCC, 0x81, 0xC9, 0x03, 0x45, 0xCC, 0x83,
- 0xC9, 0x03, 0x45, 0xCC, 0x86, 0xC9, 0x03, 0x45,
- 0xCC, 0x87, 0xC9, 0x03, 0x45, 0xCC, 0x88, 0xC9,
- // Bytes 3000 - 303f
- 0x03, 0x45, 0xCC, 0x89, 0xC9, 0x03, 0x45, 0xCC,
- 0x8C, 0xC9, 0x03, 0x45, 0xCC, 0x8F, 0xC9, 0x03,
- 0x45, 0xCC, 0x91, 0xC9, 0x03, 0x45, 0xCC, 0xA8,
- 0xA5, 0x03, 0x45, 0xCC, 0xAD, 0xB5, 0x03, 0x45,
- 0xCC, 0xB0, 0xB5, 0x03, 0x46, 0xCC, 0x87, 0xC9,
- 0x03, 0x47, 0xCC, 0x81, 0xC9, 0x03, 0x47, 0xCC,
- 0x82, 0xC9, 0x03, 0x47, 0xCC, 0x84, 0xC9, 0x03,
- 0x47, 0xCC, 0x86, 0xC9, 0x03, 0x47, 0xCC, 0x87,
- // Bytes 3040 - 307f
- 0xC9, 0x03, 0x47, 0xCC, 0x8C, 0xC9, 0x03, 0x47,
- 0xCC, 0xA7, 0xA5, 0x03, 0x48, 0xCC, 0x82, 0xC9,
- 0x03, 0x48, 0xCC, 0x87, 0xC9, 0x03, 0x48, 0xCC,
- 0x88, 0xC9, 0x03, 0x48, 0xCC, 0x8C, 0xC9, 0x03,
- 0x48, 0xCC, 0xA3, 0xB5, 0x03, 0x48, 0xCC, 0xA7,
- 0xA5, 0x03, 0x48, 0xCC, 0xAE, 0xB5, 0x03, 0x49,
- 0xCC, 0x80, 0xC9, 0x03, 0x49, 0xCC, 0x81, 0xC9,
- 0x03, 0x49, 0xCC, 0x82, 0xC9, 0x03, 0x49, 0xCC,
- // Bytes 3080 - 30bf
- 0x83, 0xC9, 0x03, 0x49, 0xCC, 0x84, 0xC9, 0x03,
- 0x49, 0xCC, 0x86, 0xC9, 0x03, 0x49, 0xCC, 0x87,
- 0xC9, 0x03, 0x49, 0xCC, 0x89, 0xC9, 0x03, 0x49,
- 0xCC, 0x8C, 0xC9, 0x03, 0x49, 0xCC, 0x8F, 0xC9,
- 0x03, 0x49, 0xCC, 0x91, 0xC9, 0x03, 0x49, 0xCC,
- 0xA3, 0xB5, 0x03, 0x49, 0xCC, 0xA8, 0xA5, 0x03,
- 0x49, 0xCC, 0xB0, 0xB5, 0x03, 0x4A, 0xCC, 0x82,
- 0xC9, 0x03, 0x4B, 0xCC, 0x81, 0xC9, 0x03, 0x4B,
- // Bytes 30c0 - 30ff
- 0xCC, 0x8C, 0xC9, 0x03, 0x4B, 0xCC, 0xA3, 0xB5,
- 0x03, 0x4B, 0xCC, 0xA7, 0xA5, 0x03, 0x4B, 0xCC,
- 0xB1, 0xB5, 0x03, 0x4C, 0xCC, 0x81, 0xC9, 0x03,
- 0x4C, 0xCC, 0x8C, 0xC9, 0x03, 0x4C, 0xCC, 0xA7,
- 0xA5, 0x03, 0x4C, 0xCC, 0xAD, 0xB5, 0x03, 0x4C,
- 0xCC, 0xB1, 0xB5, 0x03, 0x4D, 0xCC, 0x81, 0xC9,
- 0x03, 0x4D, 0xCC, 0x87, 0xC9, 0x03, 0x4D, 0xCC,
- 0xA3, 0xB5, 0x03, 0x4E, 0xCC, 0x80, 0xC9, 0x03,
- // Bytes 3100 - 313f
- 0x4E, 0xCC, 0x81, 0xC9, 0x03, 0x4E, 0xCC, 0x83,
- 0xC9, 0x03, 0x4E, 0xCC, 0x87, 0xC9, 0x03, 0x4E,
- 0xCC, 0x8C, 0xC9, 0x03, 0x4E, 0xCC, 0xA3, 0xB5,
- 0x03, 0x4E, 0xCC, 0xA7, 0xA5, 0x03, 0x4E, 0xCC,
- 0xAD, 0xB5, 0x03, 0x4E, 0xCC, 0xB1, 0xB5, 0x03,
- 0x4F, 0xCC, 0x80, 0xC9, 0x03, 0x4F, 0xCC, 0x81,
- 0xC9, 0x03, 0x4F, 0xCC, 0x86, 0xC9, 0x03, 0x4F,
- 0xCC, 0x89, 0xC9, 0x03, 0x4F, 0xCC, 0x8B, 0xC9,
- // Bytes 3140 - 317f
- 0x03, 0x4F, 0xCC, 0x8C, 0xC9, 0x03, 0x4F, 0xCC,
- 0x8F, 0xC9, 0x03, 0x4F, 0xCC, 0x91, 0xC9, 0x03,
- 0x50, 0xCC, 0x81, 0xC9, 0x03, 0x50, 0xCC, 0x87,
- 0xC9, 0x03, 0x52, 0xCC, 0x81, 0xC9, 0x03, 0x52,
- 0xCC, 0x87, 0xC9, 0x03, 0x52, 0xCC, 0x8C, 0xC9,
- 0x03, 0x52, 0xCC, 0x8F, 0xC9, 0x03, 0x52, 0xCC,
- 0x91, 0xC9, 0x03, 0x52, 0xCC, 0xA7, 0xA5, 0x03,
- 0x52, 0xCC, 0xB1, 0xB5, 0x03, 0x53, 0xCC, 0x82,
- // Bytes 3180 - 31bf
- 0xC9, 0x03, 0x53, 0xCC, 0x87, 0xC9, 0x03, 0x53,
- 0xCC, 0xA6, 0xB5, 0x03, 0x53, 0xCC, 0xA7, 0xA5,
- 0x03, 0x54, 0xCC, 0x87, 0xC9, 0x03, 0x54, 0xCC,
- 0x8C, 0xC9, 0x03, 0x54, 0xCC, 0xA3, 0xB5, 0x03,
- 0x54, 0xCC, 0xA6, 0xB5, 0x03, 0x54, 0xCC, 0xA7,
- 0xA5, 0x03, 0x54, 0xCC, 0xAD, 0xB5, 0x03, 0x54,
- 0xCC, 0xB1, 0xB5, 0x03, 0x55, 0xCC, 0x80, 0xC9,
- 0x03, 0x55, 0xCC, 0x81, 0xC9, 0x03, 0x55, 0xCC,
- // Bytes 31c0 - 31ff
- 0x82, 0xC9, 0x03, 0x55, 0xCC, 0x86, 0xC9, 0x03,
- 0x55, 0xCC, 0x89, 0xC9, 0x03, 0x55, 0xCC, 0x8A,
- 0xC9, 0x03, 0x55, 0xCC, 0x8B, 0xC9, 0x03, 0x55,
- 0xCC, 0x8C, 0xC9, 0x03, 0x55, 0xCC, 0x8F, 0xC9,
- 0x03, 0x55, 0xCC, 0x91, 0xC9, 0x03, 0x55, 0xCC,
- 0xA3, 0xB5, 0x03, 0x55, 0xCC, 0xA4, 0xB5, 0x03,
- 0x55, 0xCC, 0xA8, 0xA5, 0x03, 0x55, 0xCC, 0xAD,
- 0xB5, 0x03, 0x55, 0xCC, 0xB0, 0xB5, 0x03, 0x56,
- // Bytes 3200 - 323f
- 0xCC, 0x83, 0xC9, 0x03, 0x56, 0xCC, 0xA3, 0xB5,
- 0x03, 0x57, 0xCC, 0x80, 0xC9, 0x03, 0x57, 0xCC,
- 0x81, 0xC9, 0x03, 0x57, 0xCC, 0x82, 0xC9, 0x03,
- 0x57, 0xCC, 0x87, 0xC9, 0x03, 0x57, 0xCC, 0x88,
- 0xC9, 0x03, 0x57, 0xCC, 0xA3, 0xB5, 0x03, 0x58,
- 0xCC, 0x87, 0xC9, 0x03, 0x58, 0xCC, 0x88, 0xC9,
- 0x03, 0x59, 0xCC, 0x80, 0xC9, 0x03, 0x59, 0xCC,
- 0x81, 0xC9, 0x03, 0x59, 0xCC, 0x82, 0xC9, 0x03,
- // Bytes 3240 - 327f
- 0x59, 0xCC, 0x83, 0xC9, 0x03, 0x59, 0xCC, 0x84,
- 0xC9, 0x03, 0x59, 0xCC, 0x87, 0xC9, 0x03, 0x59,
- 0xCC, 0x88, 0xC9, 0x03, 0x59, 0xCC, 0x89, 0xC9,
- 0x03, 0x59, 0xCC, 0xA3, 0xB5, 0x03, 0x5A, 0xCC,
- 0x81, 0xC9, 0x03, 0x5A, 0xCC, 0x82, 0xC9, 0x03,
- 0x5A, 0xCC, 0x87, 0xC9, 0x03, 0x5A, 0xCC, 0x8C,
- 0xC9, 0x03, 0x5A, 0xCC, 0xA3, 0xB5, 0x03, 0x5A,
- 0xCC, 0xB1, 0xB5, 0x03, 0x61, 0xCC, 0x80, 0xC9,
- // Bytes 3280 - 32bf
- 0x03, 0x61, 0xCC, 0x81, 0xC9, 0x03, 0x61, 0xCC,
- 0x83, 0xC9, 0x03, 0x61, 0xCC, 0x84, 0xC9, 0x03,
- 0x61, 0xCC, 0x89, 0xC9, 0x03, 0x61, 0xCC, 0x8C,
- 0xC9, 0x03, 0x61, 0xCC, 0x8F, 0xC9, 0x03, 0x61,
- 0xCC, 0x91, 0xC9, 0x03, 0x61, 0xCC, 0xA5, 0xB5,
- 0x03, 0x61, 0xCC, 0xA8, 0xA5, 0x03, 0x62, 0xCC,
- 0x87, 0xC9, 0x03, 0x62, 0xCC, 0xA3, 0xB5, 0x03,
- 0x62, 0xCC, 0xB1, 0xB5, 0x03, 0x63, 0xCC, 0x81,
- // Bytes 32c0 - 32ff
- 0xC9, 0x03, 0x63, 0xCC, 0x82, 0xC9, 0x03, 0x63,
- 0xCC, 0x87, 0xC9, 0x03, 0x63, 0xCC, 0x8C, 0xC9,
- 0x03, 0x64, 0xCC, 0x87, 0xC9, 0x03, 0x64, 0xCC,
- 0x8C, 0xC9, 0x03, 0x64, 0xCC, 0xA3, 0xB5, 0x03,
- 0x64, 0xCC, 0xA7, 0xA5, 0x03, 0x64, 0xCC, 0xAD,
- 0xB5, 0x03, 0x64, 0xCC, 0xB1, 0xB5, 0x03, 0x65,
- 0xCC, 0x80, 0xC9, 0x03, 0x65, 0xCC, 0x81, 0xC9,
- 0x03, 0x65, 0xCC, 0x83, 0xC9, 0x03, 0x65, 0xCC,
- // Bytes 3300 - 333f
- 0x86, 0xC9, 0x03, 0x65, 0xCC, 0x87, 0xC9, 0x03,
- 0x65, 0xCC, 0x88, 0xC9, 0x03, 0x65, 0xCC, 0x89,
- 0xC9, 0x03, 0x65, 0xCC, 0x8C, 0xC9, 0x03, 0x65,
- 0xCC, 0x8F, 0xC9, 0x03, 0x65, 0xCC, 0x91, 0xC9,
- 0x03, 0x65, 0xCC, 0xA8, 0xA5, 0x03, 0x65, 0xCC,
- 0xAD, 0xB5, 0x03, 0x65, 0xCC, 0xB0, 0xB5, 0x03,
- 0x66, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC, 0x81,
- 0xC9, 0x03, 0x67, 0xCC, 0x82, 0xC9, 0x03, 0x67,
- // Bytes 3340 - 337f
- 0xCC, 0x84, 0xC9, 0x03, 0x67, 0xCC, 0x86, 0xC9,
- 0x03, 0x67, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC,
- 0x8C, 0xC9, 0x03, 0x67, 0xCC, 0xA7, 0xA5, 0x03,
- 0x68, 0xCC, 0x82, 0xC9, 0x03, 0x68, 0xCC, 0x87,
- 0xC9, 0x03, 0x68, 0xCC, 0x88, 0xC9, 0x03, 0x68,
- 0xCC, 0x8C, 0xC9, 0x03, 0x68, 0xCC, 0xA3, 0xB5,
- 0x03, 0x68, 0xCC, 0xA7, 0xA5, 0x03, 0x68, 0xCC,
- 0xAE, 0xB5, 0x03, 0x68, 0xCC, 0xB1, 0xB5, 0x03,
- // Bytes 3380 - 33bf
- 0x69, 0xCC, 0x80, 0xC9, 0x03, 0x69, 0xCC, 0x81,
- 0xC9, 0x03, 0x69, 0xCC, 0x82, 0xC9, 0x03, 0x69,
- 0xCC, 0x83, 0xC9, 0x03, 0x69, 0xCC, 0x84, 0xC9,
- 0x03, 0x69, 0xCC, 0x86, 0xC9, 0x03, 0x69, 0xCC,
- 0x89, 0xC9, 0x03, 0x69, 0xCC, 0x8C, 0xC9, 0x03,
- 0x69, 0xCC, 0x8F, 0xC9, 0x03, 0x69, 0xCC, 0x91,
- 0xC9, 0x03, 0x69, 0xCC, 0xA3, 0xB5, 0x03, 0x69,
- 0xCC, 0xA8, 0xA5, 0x03, 0x69, 0xCC, 0xB0, 0xB5,
- // Bytes 33c0 - 33ff
- 0x03, 0x6A, 0xCC, 0x82, 0xC9, 0x03, 0x6A, 0xCC,
- 0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0x81, 0xC9, 0x03,
- 0x6B, 0xCC, 0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0xA3,
- 0xB5, 0x03, 0x6B, 0xCC, 0xA7, 0xA5, 0x03, 0x6B,
- 0xCC, 0xB1, 0xB5, 0x03, 0x6C, 0xCC, 0x81, 0xC9,
- 0x03, 0x6C, 0xCC, 0x8C, 0xC9, 0x03, 0x6C, 0xCC,
- 0xA7, 0xA5, 0x03, 0x6C, 0xCC, 0xAD, 0xB5, 0x03,
- 0x6C, 0xCC, 0xB1, 0xB5, 0x03, 0x6D, 0xCC, 0x81,
- // Bytes 3400 - 343f
- 0xC9, 0x03, 0x6D, 0xCC, 0x87, 0xC9, 0x03, 0x6D,
- 0xCC, 0xA3, 0xB5, 0x03, 0x6E, 0xCC, 0x80, 0xC9,
- 0x03, 0x6E, 0xCC, 0x81, 0xC9, 0x03, 0x6E, 0xCC,
- 0x83, 0xC9, 0x03, 0x6E, 0xCC, 0x87, 0xC9, 0x03,
- 0x6E, 0xCC, 0x8C, 0xC9, 0x03, 0x6E, 0xCC, 0xA3,
- 0xB5, 0x03, 0x6E, 0xCC, 0xA7, 0xA5, 0x03, 0x6E,
- 0xCC, 0xAD, 0xB5, 0x03, 0x6E, 0xCC, 0xB1, 0xB5,
- 0x03, 0x6F, 0xCC, 0x80, 0xC9, 0x03, 0x6F, 0xCC,
- // Bytes 3440 - 347f
- 0x81, 0xC9, 0x03, 0x6F, 0xCC, 0x86, 0xC9, 0x03,
- 0x6F, 0xCC, 0x89, 0xC9, 0x03, 0x6F, 0xCC, 0x8B,
- 0xC9, 0x03, 0x6F, 0xCC, 0x8C, 0xC9, 0x03, 0x6F,
- 0xCC, 0x8F, 0xC9, 0x03, 0x6F, 0xCC, 0x91, 0xC9,
- 0x03, 0x70, 0xCC, 0x81, 0xC9, 0x03, 0x70, 0xCC,
- 0x87, 0xC9, 0x03, 0x72, 0xCC, 0x81, 0xC9, 0x03,
- 0x72, 0xCC, 0x87, 0xC9, 0x03, 0x72, 0xCC, 0x8C,
- 0xC9, 0x03, 0x72, 0xCC, 0x8F, 0xC9, 0x03, 0x72,
- // Bytes 3480 - 34bf
- 0xCC, 0x91, 0xC9, 0x03, 0x72, 0xCC, 0xA7, 0xA5,
- 0x03, 0x72, 0xCC, 0xB1, 0xB5, 0x03, 0x73, 0xCC,
- 0x82, 0xC9, 0x03, 0x73, 0xCC, 0x87, 0xC9, 0x03,
- 0x73, 0xCC, 0xA6, 0xB5, 0x03, 0x73, 0xCC, 0xA7,
- 0xA5, 0x03, 0x74, 0xCC, 0x87, 0xC9, 0x03, 0x74,
- 0xCC, 0x88, 0xC9, 0x03, 0x74, 0xCC, 0x8C, 0xC9,
- 0x03, 0x74, 0xCC, 0xA3, 0xB5, 0x03, 0x74, 0xCC,
- 0xA6, 0xB5, 0x03, 0x74, 0xCC, 0xA7, 0xA5, 0x03,
- // Bytes 34c0 - 34ff
- 0x74, 0xCC, 0xAD, 0xB5, 0x03, 0x74, 0xCC, 0xB1,
- 0xB5, 0x03, 0x75, 0xCC, 0x80, 0xC9, 0x03, 0x75,
- 0xCC, 0x81, 0xC9, 0x03, 0x75, 0xCC, 0x82, 0xC9,
- 0x03, 0x75, 0xCC, 0x86, 0xC9, 0x03, 0x75, 0xCC,
- 0x89, 0xC9, 0x03, 0x75, 0xCC, 0x8A, 0xC9, 0x03,
- 0x75, 0xCC, 0x8B, 0xC9, 0x03, 0x75, 0xCC, 0x8C,
- 0xC9, 0x03, 0x75, 0xCC, 0x8F, 0xC9, 0x03, 0x75,
- 0xCC, 0x91, 0xC9, 0x03, 0x75, 0xCC, 0xA3, 0xB5,
- // Bytes 3500 - 353f
- 0x03, 0x75, 0xCC, 0xA4, 0xB5, 0x03, 0x75, 0xCC,
- 0xA8, 0xA5, 0x03, 0x75, 0xCC, 0xAD, 0xB5, 0x03,
- 0x75, 0xCC, 0xB0, 0xB5, 0x03, 0x76, 0xCC, 0x83,
- 0xC9, 0x03, 0x76, 0xCC, 0xA3, 0xB5, 0x03, 0x77,
- 0xCC, 0x80, 0xC9, 0x03, 0x77, 0xCC, 0x81, 0xC9,
- 0x03, 0x77, 0xCC, 0x82, 0xC9, 0x03, 0x77, 0xCC,
- 0x87, 0xC9, 0x03, 0x77, 0xCC, 0x88, 0xC9, 0x03,
- 0x77, 0xCC, 0x8A, 0xC9, 0x03, 0x77, 0xCC, 0xA3,
- // Bytes 3540 - 357f
- 0xB5, 0x03, 0x78, 0xCC, 0x87, 0xC9, 0x03, 0x78,
- 0xCC, 0x88, 0xC9, 0x03, 0x79, 0xCC, 0x80, 0xC9,
- 0x03, 0x79, 0xCC, 0x81, 0xC9, 0x03, 0x79, 0xCC,
- 0x82, 0xC9, 0x03, 0x79, 0xCC, 0x83, 0xC9, 0x03,
- 0x79, 0xCC, 0x84, 0xC9, 0x03, 0x79, 0xCC, 0x87,
- 0xC9, 0x03, 0x79, 0xCC, 0x88, 0xC9, 0x03, 0x79,
- 0xCC, 0x89, 0xC9, 0x03, 0x79, 0xCC, 0x8A, 0xC9,
- 0x03, 0x79, 0xCC, 0xA3, 0xB5, 0x03, 0x7A, 0xCC,
- // Bytes 3580 - 35bf
- 0x81, 0xC9, 0x03, 0x7A, 0xCC, 0x82, 0xC9, 0x03,
- 0x7A, 0xCC, 0x87, 0xC9, 0x03, 0x7A, 0xCC, 0x8C,
- 0xC9, 0x03, 0x7A, 0xCC, 0xA3, 0xB5, 0x03, 0x7A,
- 0xCC, 0xB1, 0xB5, 0x04, 0xC2, 0xA8, 0xCC, 0x80,
- 0xCA, 0x04, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x04,
- 0xC2, 0xA8, 0xCD, 0x82, 0xCA, 0x04, 0xC3, 0x86,
- 0xCC, 0x81, 0xC9, 0x04, 0xC3, 0x86, 0xCC, 0x84,
- 0xC9, 0x04, 0xC3, 0x98, 0xCC, 0x81, 0xC9, 0x04,
- // Bytes 35c0 - 35ff
- 0xC3, 0xA6, 0xCC, 0x81, 0xC9, 0x04, 0xC3, 0xA6,
- 0xCC, 0x84, 0xC9, 0x04, 0xC3, 0xB8, 0xCC, 0x81,
- 0xC9, 0x04, 0xC5, 0xBF, 0xCC, 0x87, 0xC9, 0x04,
- 0xC6, 0xB7, 0xCC, 0x8C, 0xC9, 0x04, 0xCA, 0x92,
- 0xCC, 0x8C, 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x80,
- 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x81, 0xC9, 0x04,
- 0xCE, 0x91, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0x91,
- 0xCC, 0x86, 0xC9, 0x04, 0xCE, 0x91, 0xCD, 0x85,
- // Bytes 3600 - 363f
- 0xD9, 0x04, 0xCE, 0x95, 0xCC, 0x80, 0xC9, 0x04,
- 0xCE, 0x95, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x97,
- 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x97, 0xCC, 0x81,
- 0xC9, 0x04, 0xCE, 0x97, 0xCD, 0x85, 0xD9, 0x04,
- 0xCE, 0x99, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x99,
- 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x84,
- 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x86, 0xC9, 0x04,
- 0xCE, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0x9F,
- // Bytes 3640 - 367f
- 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x9F, 0xCC, 0x81,
- 0xC9, 0x04, 0xCE, 0xA1, 0xCC, 0x94, 0xC9, 0x04,
- 0xCE, 0xA5, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA5,
- 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x84,
- 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x86, 0xC9, 0x04,
- 0xCE, 0xA5, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0xA9,
- 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA9, 0xCC, 0x81,
- 0xC9, 0x04, 0xCE, 0xA9, 0xCD, 0x85, 0xD9, 0x04,
- // Bytes 3680 - 36bf
- 0xCE, 0xB1, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB1,
- 0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB1, 0xCD, 0x85,
- 0xD9, 0x04, 0xCE, 0xB5, 0xCC, 0x80, 0xC9, 0x04,
- 0xCE, 0xB5, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xB7,
- 0xCD, 0x85, 0xD9, 0x04, 0xCE, 0xB9, 0xCC, 0x80,
- 0xC9, 0x04, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x04,
- 0xCE, 0xB9, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB9,
- 0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB9, 0xCD, 0x82,
- // Bytes 36c0 - 36ff
- 0xC9, 0x04, 0xCE, 0xBF, 0xCC, 0x80, 0xC9, 0x04,
- 0xCE, 0xBF, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x81,
- 0xCC, 0x93, 0xC9, 0x04, 0xCF, 0x81, 0xCC, 0x94,
- 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x80, 0xC9, 0x04,
- 0xCF, 0x85, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x85,
- 0xCC, 0x84, 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x86,
- 0xC9, 0x04, 0xCF, 0x85, 0xCD, 0x82, 0xC9, 0x04,
- 0xCF, 0x89, 0xCD, 0x85, 0xD9, 0x04, 0xCF, 0x92,
- // Bytes 3700 - 373f
- 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x92, 0xCC, 0x88,
- 0xC9, 0x04, 0xD0, 0x86, 0xCC, 0x88, 0xC9, 0x04,
- 0xD0, 0x90, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x90,
- 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x93, 0xCC, 0x81,
- 0xC9, 0x04, 0xD0, 0x95, 0xCC, 0x80, 0xC9, 0x04,
- 0xD0, 0x95, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x95,
- 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x86,
- 0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x88, 0xC9, 0x04,
- // Bytes 3740 - 377f
- 0xD0, 0x97, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x98,
- 0xCC, 0x80, 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x84,
- 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x86, 0xC9, 0x04,
- 0xD0, 0x98, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x9A,
- 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0x9E, 0xCC, 0x88,
- 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x84, 0xC9, 0x04,
- 0xD0, 0xA3, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xA3,
- 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x8B,
- // Bytes 3780 - 37bf
- 0xC9, 0x04, 0xD0, 0xA7, 0xCC, 0x88, 0xC9, 0x04,
- 0xD0, 0xAB, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xAD,
- 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x86,
- 0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x88, 0xC9, 0x04,
- 0xD0, 0xB3, 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0xB5,
- 0xCC, 0x80, 0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x86,
- 0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x88, 0xC9, 0x04,
- 0xD0, 0xB6, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB6,
- // Bytes 37c0 - 37ff
- 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB7, 0xCC, 0x88,
- 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x80, 0xC9, 0x04,
- 0xD0, 0xB8, 0xCC, 0x84, 0xC9, 0x04, 0xD0, 0xB8,
- 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x88,
- 0xC9, 0x04, 0xD0, 0xBA, 0xCC, 0x81, 0xC9, 0x04,
- 0xD0, 0xBE, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x83,
- 0xCC, 0x84, 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x86,
- 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x88, 0xC9, 0x04,
- // Bytes 3800 - 383f
- 0xD1, 0x83, 0xCC, 0x8B, 0xC9, 0x04, 0xD1, 0x87,
- 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x8B, 0xCC, 0x88,
- 0xC9, 0x04, 0xD1, 0x8D, 0xCC, 0x88, 0xC9, 0x04,
- 0xD1, 0x96, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0xB4,
- 0xCC, 0x8F, 0xC9, 0x04, 0xD1, 0xB5, 0xCC, 0x8F,
- 0xC9, 0x04, 0xD3, 0x98, 0xCC, 0x88, 0xC9, 0x04,
- 0xD3, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA8,
- 0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA9, 0xCC, 0x88,
- // Bytes 3840 - 387f
- 0xC9, 0x04, 0xD8, 0xA7, 0xD9, 0x93, 0xC9, 0x04,
- 0xD8, 0xA7, 0xD9, 0x94, 0xC9, 0x04, 0xD8, 0xA7,
- 0xD9, 0x95, 0xB5, 0x04, 0xD9, 0x88, 0xD9, 0x94,
- 0xC9, 0x04, 0xD9, 0x8A, 0xD9, 0x94, 0xC9, 0x04,
- 0xDB, 0x81, 0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x92,
- 0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x95, 0xD9, 0x94,
- 0xC9, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x80, 0xCA,
- 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05,
- // Bytes 3880 - 38bf
- 0x41, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x41,
- 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x41, 0xCC,
- 0x86, 0xCC, 0x80, 0xCA, 0x05, 0x41, 0xCC, 0x86,
- 0xCC, 0x81, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC,
- 0x83, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC, 0x89,
- 0xCA, 0x05, 0x41, 0xCC, 0x87, 0xCC, 0x84, 0xCA,
- 0x05, 0x41, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05,
- 0x41, 0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x41,
- // Bytes 38c0 - 38ff
- 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x41, 0xCC,
- 0xA3, 0xCC, 0x86, 0xCA, 0x05, 0x43, 0xCC, 0xA7,
- 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC,
- 0x80, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x81,
- 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x83, 0xCA,
- 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05,
- 0x45, 0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x45,
- 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC,
- // Bytes 3900 - 393f
- 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x45, 0xCC, 0xA7,
- 0xCC, 0x86, 0xCA, 0x05, 0x49, 0xCC, 0x88, 0xCC,
- 0x81, 0xCA, 0x05, 0x4C, 0xCC, 0xA3, 0xCC, 0x84,
- 0xCA, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x80, 0xCA,
- 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05,
- 0x4F, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x4F,
- 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x4F, 0xCC,
- 0x83, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x83,
- // Bytes 3940 - 397f
- 0xCC, 0x84, 0xCA, 0x05, 0x4F, 0xCC, 0x83, 0xCC,
- 0x88, 0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x80,
- 0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x81, 0xCA,
- 0x05, 0x4F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05,
- 0x4F, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x4F,
- 0xCC, 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x4F, 0xCC,
- 0x9B, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x9B,
- 0xCC, 0x83, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC,
- // Bytes 3980 - 39bf
- 0x89, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0xA3,
- 0xB6, 0x05, 0x4F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA,
- 0x05, 0x4F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05,
- 0x52, 0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x53,
- 0xCC, 0x81, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC,
- 0x8C, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC, 0xA3,
- 0xCC, 0x87, 0xCA, 0x05, 0x55, 0xCC, 0x83, 0xCC,
- 0x81, 0xCA, 0x05, 0x55, 0xCC, 0x84, 0xCC, 0x88,
- // Bytes 39c0 - 39ff
- 0xCA, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x80, 0xCA,
- 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05,
- 0x55, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x55,
- 0xCC, 0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x55, 0xCC,
- 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x55, 0xCC, 0x9B,
- 0xCC, 0x81, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC,
- 0x83, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0x89,
- 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6,
- // Bytes 3a00 - 3a3f
- 0x05, 0x61, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05,
- 0x61, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x61,
- 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x61, 0xCC,
- 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x61, 0xCC, 0x86,
- 0xCC, 0x80, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC,
- 0x81, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x83,
- 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x89, 0xCA,
- 0x05, 0x61, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05,
- // Bytes 3a40 - 3a7f
- 0x61, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x61,
- 0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x61, 0xCC,
- 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x61, 0xCC, 0xA3,
- 0xCC, 0x86, 0xCA, 0x05, 0x63, 0xCC, 0xA7, 0xCC,
- 0x81, 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x80,
- 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x81, 0xCA,
- 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05,
- 0x65, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x65,
- // Bytes 3a80 - 3abf
- 0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x65, 0xCC,
- 0x84, 0xCC, 0x81, 0xCA, 0x05, 0x65, 0xCC, 0xA3,
- 0xCC, 0x82, 0xCA, 0x05, 0x65, 0xCC, 0xA7, 0xCC,
- 0x86, 0xCA, 0x05, 0x69, 0xCC, 0x88, 0xCC, 0x81,
- 0xCA, 0x05, 0x6C, 0xCC, 0xA3, 0xCC, 0x84, 0xCA,
- 0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05,
- 0x6F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x6F,
- 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x6F, 0xCC,
- // Bytes 3ac0 - 3aff
- 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x6F, 0xCC, 0x83,
- 0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC,
- 0x84, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC, 0x88,
- 0xCA, 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x80, 0xCA,
- 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05,
- 0x6F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, 0x6F,
- 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x6F, 0xCC,
- 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x6F, 0xCC, 0x9B,
- // Bytes 3b00 - 3b3f
- 0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC,
- 0x83, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0x89,
- 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6,
- 0x05, 0x6F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05,
- 0x6F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05, 0x72,
- 0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x73, 0xCC,
- 0x81, 0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0x8C,
- 0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0xA3, 0xCC,
- // Bytes 3b40 - 3b7f
- 0x87, 0xCA, 0x05, 0x75, 0xCC, 0x83, 0xCC, 0x81,
- 0xCA, 0x05, 0x75, 0xCC, 0x84, 0xCC, 0x88, 0xCA,
- 0x05, 0x75, 0xCC, 0x88, 0xCC, 0x80, 0xCA, 0x05,
- 0x75, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05, 0x75,
- 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x75, 0xCC,
- 0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x75, 0xCC, 0x9B,
- 0xCC, 0x80, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC,
- 0x81, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x83,
- // Bytes 3b80 - 3bbf
- 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x89, 0xCA,
- 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, 0x05,
- 0xE1, 0xBE, 0xBF, 0xCC, 0x80, 0xCA, 0x05, 0xE1,
- 0xBE, 0xBF, 0xCC, 0x81, 0xCA, 0x05, 0xE1, 0xBE,
- 0xBF, 0xCD, 0x82, 0xCA, 0x05, 0xE1, 0xBF, 0xBE,
- 0xCC, 0x80, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCC,
- 0x81, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCD, 0x82,
- 0xCA, 0x05, 0xE2, 0x86, 0x90, 0xCC, 0xB8, 0x05,
- // Bytes 3bc0 - 3bff
- 0x05, 0xE2, 0x86, 0x92, 0xCC, 0xB8, 0x05, 0x05,
- 0xE2, 0x86, 0x94, 0xCC, 0xB8, 0x05, 0x05, 0xE2,
- 0x87, 0x90, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87,
- 0x92, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, 0x94,
- 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x83, 0xCC,
- 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x88, 0xCC, 0xB8,
- 0x05, 0x05, 0xE2, 0x88, 0x8B, 0xCC, 0xB8, 0x05,
- 0x05, 0xE2, 0x88, 0xA3, 0xCC, 0xB8, 0x05, 0x05,
- // Bytes 3c00 - 3c3f
- 0xE2, 0x88, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2,
- 0x88, 0xBC, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89,
- 0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x85,
- 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x88, 0xCC,
- 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x8D, 0xCC, 0xB8,
- 0x05, 0x05, 0xE2, 0x89, 0xA1, 0xCC, 0xB8, 0x05,
- 0x05, 0xE2, 0x89, 0xA4, 0xCC, 0xB8, 0x05, 0x05,
- 0xE2, 0x89, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2,
- // Bytes 3c40 - 3c7f
- 0x89, 0xB2, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89,
- 0xB3, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB6,
- 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB7, 0xCC,
- 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBA, 0xCC, 0xB8,
- 0x05, 0x05, 0xE2, 0x89, 0xBB, 0xCC, 0xB8, 0x05,
- 0x05, 0xE2, 0x89, 0xBC, 0xCC, 0xB8, 0x05, 0x05,
- 0xE2, 0x89, 0xBD, 0xCC, 0xB8, 0x05, 0x05, 0xE2,
- 0x8A, 0x82, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A,
- // Bytes 3c80 - 3cbf
- 0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x86,
- 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x87, 0xCC,
- 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x91, 0xCC, 0xB8,
- 0x05, 0x05, 0xE2, 0x8A, 0x92, 0xCC, 0xB8, 0x05,
- 0x05, 0xE2, 0x8A, 0xA2, 0xCC, 0xB8, 0x05, 0x05,
- 0xE2, 0x8A, 0xA8, 0xCC, 0xB8, 0x05, 0x05, 0xE2,
- 0x8A, 0xA9, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A,
- 0xAB, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB2,
- // Bytes 3cc0 - 3cff
- 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB3, 0xCC,
- 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB4, 0xCC, 0xB8,
- 0x05, 0x05, 0xE2, 0x8A, 0xB5, 0xCC, 0xB8, 0x05,
- 0x06, 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x85, 0xDA,
- 0x06, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x85, 0xDA,
- 0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x80, 0xCA,
- 0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x81, 0xCA,
- 0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x80, 0xCA,
- // Bytes 3d00 - 3d3f
- 0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x81, 0xCA,
- 0x06, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x85, 0xDA,
- 0x06, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x85, 0xDA,
- 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x80, 0xCA,
- 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x81, 0xCA,
- 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCD, 0x82, 0xCA,
- 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x80, 0xCA,
- 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x81, 0xCA,
- // Bytes 3d40 - 3d7f
- 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCD, 0x82, 0xCA,
- 0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x80, 0xCA,
- 0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x81, 0xCA,
- 0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x80, 0xCA,
- 0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x81, 0xCA,
- 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x80, 0xCA,
- 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x81, 0xCA,
- 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCD, 0x82, 0xCA,
- // Bytes 3d80 - 3dbf
- 0x06, 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x85, 0xDA,
- 0x06, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x85, 0xDA,
- 0x06, 0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x85, 0xDA,
- 0x06, 0xCE, 0xB1, 0xCC, 0x81, 0xCD, 0x85, 0xDA,
- 0x06, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x85, 0xDA,
- 0x06, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x85, 0xDA,
- 0x06, 0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x85, 0xDA,
- 0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x80, 0xCA,
- // Bytes 3dc0 - 3dff
- 0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x81, 0xCA,
- 0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x80, 0xCA,
- 0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x81, 0xCA,
- 0x06, 0xCE, 0xB7, 0xCC, 0x80, 0xCD, 0x85, 0xDA,
- 0x06, 0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x85, 0xDA,
- 0x06, 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x85, 0xDA,
- 0x06, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x85, 0xDA,
- 0x06, 0xCE, 0xB7, 0xCD, 0x82, 0xCD, 0x85, 0xDA,
- // Bytes 3e00 - 3e3f
- 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x80, 0xCA,
- 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x81, 0xCA,
- 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x82, 0xCA,
- 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x80, 0xCA,
- 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x81, 0xCA,
- 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCD, 0x82, 0xCA,
- 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x80, 0xCA,
- 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x81, 0xCA,
- // Bytes 3e40 - 3e7f
- 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCD, 0x82, 0xCA,
- 0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x80, 0xCA,
- 0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x81, 0xCA,
- 0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x80, 0xCA,
- 0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x81, 0xCA,
- 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x80, 0xCA,
- 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xCA,
- 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCD, 0x82, 0xCA,
- // Bytes 3e80 - 3ebf
- 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x80, 0xCA,
- 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x81, 0xCA,
- 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCD, 0x82, 0xCA,
- 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x80, 0xCA,
- 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x81, 0xCA,
- 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCD, 0x82, 0xCA,
- 0x06, 0xCF, 0x89, 0xCC, 0x80, 0xCD, 0x85, 0xDA,
- 0x06, 0xCF, 0x89, 0xCC, 0x81, 0xCD, 0x85, 0xDA,
- // Bytes 3ec0 - 3eff
- 0x06, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x85, 0xDA,
- 0x06, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x85, 0xDA,
- 0x06, 0xCF, 0x89, 0xCD, 0x82, 0xCD, 0x85, 0xDA,
- 0x06, 0xE0, 0xA4, 0xA8, 0xE0, 0xA4, 0xBC, 0x09,
- 0x06, 0xE0, 0xA4, 0xB0, 0xE0, 0xA4, 0xBC, 0x09,
- 0x06, 0xE0, 0xA4, 0xB3, 0xE0, 0xA4, 0xBC, 0x09,
- 0x06, 0xE0, 0xB1, 0x86, 0xE0, 0xB1, 0x96, 0x85,
- 0x06, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8A, 0x11,
- // Bytes 3f00 - 3f3f
- 0x06, 0xE3, 0x81, 0x86, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0x8B, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0x8D, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0x8F, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0x91, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0x93, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0x95, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0x97, 0xE3, 0x82, 0x99, 0x0D,
- // Bytes 3f40 - 3f7f
- 0x06, 0xE3, 0x81, 0x99, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0x9B, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0x9D, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0x9F, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0xA1, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0xA4, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0xA6, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0xA8, 0xE3, 0x82, 0x99, 0x0D,
- // Bytes 3f80 - 3fbf
- 0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x9A, 0x0D,
- 0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x9A, 0x0D,
- 0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x9A, 0x0D,
- 0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x9A, 0x0D,
- // Bytes 3fc0 - 3fff
- 0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x9A, 0x0D,
- 0x06, 0xE3, 0x82, 0x9D, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x82, 0xA6, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99, 0x0D,
- // Bytes 4000 - 403f
- 0x06, 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x82, 0xB5, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x82, 0xB9, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x82, 0xBD, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x83, 0x81, 0xE3, 0x82, 0x99, 0x0D,
- // Bytes 4040 - 407f
- 0x06, 0xE3, 0x83, 0x84, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0x0D,
- 0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0x0D,
- 0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, 0x0D,
- // Bytes 4080 - 40bf
- 0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x9A, 0x0D,
- 0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0x0D,
- 0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0x0D,
- 0x06, 0xE3, 0x83, 0xAF, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x83, 0xB0, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x83, 0xB1, 0xE3, 0x82, 0x99, 0x0D,
- // Bytes 40c0 - 40ff
- 0x06, 0xE3, 0x83, 0xB2, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x83, 0xBD, 0xE3, 0x82, 0x99, 0x0D,
- 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCD,
- 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC,
- 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC,
- 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE,
- 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB,
- 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCD,
- // Bytes 4100 - 413f
- 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCD,
- 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC,
- 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE,
- 0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB,
- 0x08, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCD,
- 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, 0x94, 0xCC,
- 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC,
- 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE,
- // Bytes 4140 - 417f
- 0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB,
- 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCD,
- 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC,
- 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC,
- 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE,
- 0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB,
- 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCD,
- 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCD,
- // Bytes 4180 - 41bf
- 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC,
- 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE,
- 0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB,
- 0x08, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCD,
- 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, 0x94, 0xCC,
- 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC,
- 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE,
- 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB,
- // Bytes 41c0 - 41ff
- 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCD,
- 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC,
- 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC,
- 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE,
- 0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB,
- 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCD,
- 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCD,
- 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC,
- // Bytes 4200 - 423f
- 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF,
- 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB,
- 0x08, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCD,
- 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, 0x94, 0xCC,
- 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC,
- 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCF,
- 0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB,
- 0x08, 0xF0, 0x91, 0x82, 0x99, 0xF0, 0x91, 0x82,
- // Bytes 4240 - 427f
- 0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82, 0x9B, 0xF0,
- 0x91, 0x82, 0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82,
- 0xA5, 0xF0, 0x91, 0x82, 0xBA, 0x09, 0x42, 0xC2,
- 0xB4, 0x01, 0x43, 0x20, 0xCC, 0x81, 0xC9, 0x43,
- 0x20, 0xCC, 0x83, 0xC9, 0x43, 0x20, 0xCC, 0x84,
- 0xC9, 0x43, 0x20, 0xCC, 0x85, 0xC9, 0x43, 0x20,
- 0xCC, 0x86, 0xC9, 0x43, 0x20, 0xCC, 0x87, 0xC9,
- 0x43, 0x20, 0xCC, 0x88, 0xC9, 0x43, 0x20, 0xCC,
- // Bytes 4280 - 42bf
- 0x8A, 0xC9, 0x43, 0x20, 0xCC, 0x8B, 0xC9, 0x43,
- 0x20, 0xCC, 0x93, 0xC9, 0x43, 0x20, 0xCC, 0x94,
- 0xC9, 0x43, 0x20, 0xCC, 0xA7, 0xA5, 0x43, 0x20,
- 0xCC, 0xA8, 0xA5, 0x43, 0x20, 0xCC, 0xB3, 0xB5,
- 0x43, 0x20, 0xCD, 0x82, 0xC9, 0x43, 0x20, 0xCD,
- 0x85, 0xD9, 0x43, 0x20, 0xD9, 0x8B, 0x59, 0x43,
- 0x20, 0xD9, 0x8C, 0x5D, 0x43, 0x20, 0xD9, 0x8D,
- 0x61, 0x43, 0x20, 0xD9, 0x8E, 0x65, 0x43, 0x20,
- // Bytes 42c0 - 42ff
- 0xD9, 0x8F, 0x69, 0x43, 0x20, 0xD9, 0x90, 0x6D,
- 0x43, 0x20, 0xD9, 0x91, 0x71, 0x43, 0x20, 0xD9,
- 0x92, 0x75, 0x43, 0x41, 0xCC, 0x8A, 0xC9, 0x43,
- 0x73, 0xCC, 0x87, 0xC9, 0x44, 0x20, 0xE3, 0x82,
- 0x99, 0x0D, 0x44, 0x20, 0xE3, 0x82, 0x9A, 0x0D,
- 0x44, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x44, 0xCE,
- 0x91, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0x95, 0xCC,
- 0x81, 0xC9, 0x44, 0xCE, 0x97, 0xCC, 0x81, 0xC9,
- // Bytes 4300 - 433f
- 0x44, 0xCE, 0x99, 0xCC, 0x81, 0xC9, 0x44, 0xCE,
- 0x9F, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC,
- 0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC, 0x88, 0xC9,
- 0x44, 0xCE, 0xA9, 0xCC, 0x81, 0xC9, 0x44, 0xCE,
- 0xB1, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xB5, 0xCC,
- 0x81, 0xC9, 0x44, 0xCE, 0xB7, 0xCC, 0x81, 0xC9,
- 0x44, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x44, 0xCE,
- 0xBF, 0xCC, 0x81, 0xC9, 0x44, 0xCF, 0x85, 0xCC,
- // Bytes 4340 - 437f
- 0x81, 0xC9, 0x44, 0xCF, 0x89, 0xCC, 0x81, 0xC9,
- 0x44, 0xD7, 0x90, 0xD6, 0xB7, 0x31, 0x44, 0xD7,
- 0x90, 0xD6, 0xB8, 0x35, 0x44, 0xD7, 0x90, 0xD6,
- 0xBC, 0x41, 0x44, 0xD7, 0x91, 0xD6, 0xBC, 0x41,
- 0x44, 0xD7, 0x91, 0xD6, 0xBF, 0x49, 0x44, 0xD7,
- 0x92, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x93, 0xD6,
- 0xBC, 0x41, 0x44, 0xD7, 0x94, 0xD6, 0xBC, 0x41,
- 0x44, 0xD7, 0x95, 0xD6, 0xB9, 0x39, 0x44, 0xD7,
- // Bytes 4380 - 43bf
- 0x95, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x96, 0xD6,
- 0xBC, 0x41, 0x44, 0xD7, 0x98, 0xD6, 0xBC, 0x41,
- 0x44, 0xD7, 0x99, 0xD6, 0xB4, 0x25, 0x44, 0xD7,
- 0x99, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9A, 0xD6,
- 0xBC, 0x41, 0x44, 0xD7, 0x9B, 0xD6, 0xBC, 0x41,
- 0x44, 0xD7, 0x9B, 0xD6, 0xBF, 0x49, 0x44, 0xD7,
- 0x9C, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9E, 0xD6,
- 0xBC, 0x41, 0x44, 0xD7, 0xA0, 0xD6, 0xBC, 0x41,
- // Bytes 43c0 - 43ff
- 0x44, 0xD7, 0xA1, 0xD6, 0xBC, 0x41, 0x44, 0xD7,
- 0xA3, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6,
- 0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6, 0xBF, 0x49,
- 0x44, 0xD7, 0xA6, 0xD6, 0xBC, 0x41, 0x44, 0xD7,
- 0xA7, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA8, 0xD6,
- 0xBC, 0x41, 0x44, 0xD7, 0xA9, 0xD6, 0xBC, 0x41,
- 0x44, 0xD7, 0xA9, 0xD7, 0x81, 0x4D, 0x44, 0xD7,
- 0xA9, 0xD7, 0x82, 0x51, 0x44, 0xD7, 0xAA, 0xD6,
- // Bytes 4400 - 443f
- 0xBC, 0x41, 0x44, 0xD7, 0xB2, 0xD6, 0xB7, 0x31,
- 0x44, 0xD8, 0xA7, 0xD9, 0x8B, 0x59, 0x44, 0xD8,
- 0xA7, 0xD9, 0x93, 0xC9, 0x44, 0xD8, 0xA7, 0xD9,
- 0x94, 0xC9, 0x44, 0xD8, 0xA7, 0xD9, 0x95, 0xB5,
- 0x44, 0xD8, 0xB0, 0xD9, 0xB0, 0x79, 0x44, 0xD8,
- 0xB1, 0xD9, 0xB0, 0x79, 0x44, 0xD9, 0x80, 0xD9,
- 0x8B, 0x59, 0x44, 0xD9, 0x80, 0xD9, 0x8E, 0x65,
- 0x44, 0xD9, 0x80, 0xD9, 0x8F, 0x69, 0x44, 0xD9,
- // Bytes 4440 - 447f
- 0x80, 0xD9, 0x90, 0x6D, 0x44, 0xD9, 0x80, 0xD9,
- 0x91, 0x71, 0x44, 0xD9, 0x80, 0xD9, 0x92, 0x75,
- 0x44, 0xD9, 0x87, 0xD9, 0xB0, 0x79, 0x44, 0xD9,
- 0x88, 0xD9, 0x94, 0xC9, 0x44, 0xD9, 0x89, 0xD9,
- 0xB0, 0x79, 0x44, 0xD9, 0x8A, 0xD9, 0x94, 0xC9,
- 0x44, 0xDB, 0x92, 0xD9, 0x94, 0xC9, 0x44, 0xDB,
- 0x95, 0xD9, 0x94, 0xC9, 0x45, 0x20, 0xCC, 0x88,
- 0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCC,
- // Bytes 4480 - 44bf
- 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCD, 0x82,
- 0xCA, 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x80, 0xCA,
- 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x45,
- 0x20, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x45, 0x20,
- 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC,
- 0x94, 0xCC, 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x94,
- 0xCD, 0x82, 0xCA, 0x45, 0x20, 0xD9, 0x8C, 0xD9,
- 0x91, 0x72, 0x45, 0x20, 0xD9, 0x8D, 0xD9, 0x91,
- // Bytes 44c0 - 44ff
- 0x72, 0x45, 0x20, 0xD9, 0x8E, 0xD9, 0x91, 0x72,
- 0x45, 0x20, 0xD9, 0x8F, 0xD9, 0x91, 0x72, 0x45,
- 0x20, 0xD9, 0x90, 0xD9, 0x91, 0x72, 0x45, 0x20,
- 0xD9, 0x91, 0xD9, 0xB0, 0x7A, 0x45, 0xE2, 0xAB,
- 0x9D, 0xCC, 0xB8, 0x05, 0x46, 0xCE, 0xB9, 0xCC,
- 0x88, 0xCC, 0x81, 0xCA, 0x46, 0xCF, 0x85, 0xCC,
- 0x88, 0xCC, 0x81, 0xCA, 0x46, 0xD7, 0xA9, 0xD6,
- 0xBC, 0xD7, 0x81, 0x4E, 0x46, 0xD7, 0xA9, 0xD6,
- // Bytes 4500 - 453f
- 0xBC, 0xD7, 0x82, 0x52, 0x46, 0xD9, 0x80, 0xD9,
- 0x8E, 0xD9, 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9,
- 0x8F, 0xD9, 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9,
- 0x90, 0xD9, 0x91, 0x72, 0x46, 0xE0, 0xA4, 0x95,
- 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x96,
- 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x97,
- 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x9C,
- 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA1,
- // Bytes 4540 - 457f
- 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA2,
- 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAB,
- 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAF,
- 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA1,
- 0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA2,
- 0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xAF,
- 0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x96,
- 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x97,
- // Bytes 4580 - 45bf
- 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x9C,
- 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xAB,
- 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB2,
- 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB8,
- 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA1,
- 0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA2,
- 0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xBE, 0xB2,
- 0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE0, 0xBE, 0xB3,
- // Bytes 45c0 - 45ff
- 0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE3, 0x83, 0x86,
- 0xE3, 0x82, 0x99, 0x0D, 0x48, 0xF0, 0x9D, 0x85,
- 0x97, 0xF0, 0x9D, 0x85, 0xA5, 0xAD, 0x48, 0xF0,
- 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xAD,
- 0x48, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85,
- 0xA5, 0xAD, 0x48, 0xF0, 0x9D, 0x86, 0xBA, 0xF0,
- 0x9D, 0x85, 0xA5, 0xAD, 0x49, 0xE0, 0xBE, 0xB2,
- 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x49,
- // Bytes 4600 - 463f
- 0xE0, 0xBE, 0xB3, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE,
- 0x80, 0x9E, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0,
- 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE,
- 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85,
- 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0,
- 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0,
- 0x9D, 0x85, 0xB0, 0xAE, 0x4C, 0xF0, 0x9D, 0x85,
- 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85,
- // Bytes 4640 - 467f
- 0xB1, 0xAE, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0,
- 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB2, 0xAE,
- 0x4C, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85,
- 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE, 0x4C, 0xF0,
- 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5, 0xF0,
- 0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0, 0x9D, 0x86,
- 0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85,
- 0xAE, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, 0xBA, 0xF0,
- // Bytes 4680 - 46bf
- 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE,
- 0x83, 0x41, 0xCC, 0x82, 0xC9, 0x83, 0x41, 0xCC,
- 0x86, 0xC9, 0x83, 0x41, 0xCC, 0x87, 0xC9, 0x83,
- 0x41, 0xCC, 0x88, 0xC9, 0x83, 0x41, 0xCC, 0x8A,
- 0xC9, 0x83, 0x41, 0xCC, 0xA3, 0xB5, 0x83, 0x43,
- 0xCC, 0xA7, 0xA5, 0x83, 0x45, 0xCC, 0x82, 0xC9,
- 0x83, 0x45, 0xCC, 0x84, 0xC9, 0x83, 0x45, 0xCC,
- 0xA3, 0xB5, 0x83, 0x45, 0xCC, 0xA7, 0xA5, 0x83,
- // Bytes 46c0 - 46ff
- 0x49, 0xCC, 0x88, 0xC9, 0x83, 0x4C, 0xCC, 0xA3,
- 0xB5, 0x83, 0x4F, 0xCC, 0x82, 0xC9, 0x83, 0x4F,
- 0xCC, 0x83, 0xC9, 0x83, 0x4F, 0xCC, 0x84, 0xC9,
- 0x83, 0x4F, 0xCC, 0x87, 0xC9, 0x83, 0x4F, 0xCC,
- 0x88, 0xC9, 0x83, 0x4F, 0xCC, 0x9B, 0xAD, 0x83,
- 0x4F, 0xCC, 0xA3, 0xB5, 0x83, 0x4F, 0xCC, 0xA8,
- 0xA5, 0x83, 0x52, 0xCC, 0xA3, 0xB5, 0x83, 0x53,
- 0xCC, 0x81, 0xC9, 0x83, 0x53, 0xCC, 0x8C, 0xC9,
- // Bytes 4700 - 473f
- 0x83, 0x53, 0xCC, 0xA3, 0xB5, 0x83, 0x55, 0xCC,
- 0x83, 0xC9, 0x83, 0x55, 0xCC, 0x84, 0xC9, 0x83,
- 0x55, 0xCC, 0x88, 0xC9, 0x83, 0x55, 0xCC, 0x9B,
- 0xAD, 0x83, 0x61, 0xCC, 0x82, 0xC9, 0x83, 0x61,
- 0xCC, 0x86, 0xC9, 0x83, 0x61, 0xCC, 0x87, 0xC9,
- 0x83, 0x61, 0xCC, 0x88, 0xC9, 0x83, 0x61, 0xCC,
- 0x8A, 0xC9, 0x83, 0x61, 0xCC, 0xA3, 0xB5, 0x83,
- 0x63, 0xCC, 0xA7, 0xA5, 0x83, 0x65, 0xCC, 0x82,
- // Bytes 4740 - 477f
- 0xC9, 0x83, 0x65, 0xCC, 0x84, 0xC9, 0x83, 0x65,
- 0xCC, 0xA3, 0xB5, 0x83, 0x65, 0xCC, 0xA7, 0xA5,
- 0x83, 0x69, 0xCC, 0x88, 0xC9, 0x83, 0x6C, 0xCC,
- 0xA3, 0xB5, 0x83, 0x6F, 0xCC, 0x82, 0xC9, 0x83,
- 0x6F, 0xCC, 0x83, 0xC9, 0x83, 0x6F, 0xCC, 0x84,
- 0xC9, 0x83, 0x6F, 0xCC, 0x87, 0xC9, 0x83, 0x6F,
- 0xCC, 0x88, 0xC9, 0x83, 0x6F, 0xCC, 0x9B, 0xAD,
- 0x83, 0x6F, 0xCC, 0xA3, 0xB5, 0x83, 0x6F, 0xCC,
- // Bytes 4780 - 47bf
- 0xA8, 0xA5, 0x83, 0x72, 0xCC, 0xA3, 0xB5, 0x83,
- 0x73, 0xCC, 0x81, 0xC9, 0x83, 0x73, 0xCC, 0x8C,
- 0xC9, 0x83, 0x73, 0xCC, 0xA3, 0xB5, 0x83, 0x75,
- 0xCC, 0x83, 0xC9, 0x83, 0x75, 0xCC, 0x84, 0xC9,
- 0x83, 0x75, 0xCC, 0x88, 0xC9, 0x83, 0x75, 0xCC,
- 0x9B, 0xAD, 0x84, 0xCE, 0x91, 0xCC, 0x93, 0xC9,
- 0x84, 0xCE, 0x91, 0xCC, 0x94, 0xC9, 0x84, 0xCE,
- 0x95, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x95, 0xCC,
- // Bytes 47c0 - 47ff
- 0x94, 0xC9, 0x84, 0xCE, 0x97, 0xCC, 0x93, 0xC9,
- 0x84, 0xCE, 0x97, 0xCC, 0x94, 0xC9, 0x84, 0xCE,
- 0x99, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x99, 0xCC,
- 0x94, 0xC9, 0x84, 0xCE, 0x9F, 0xCC, 0x93, 0xC9,
- 0x84, 0xCE, 0x9F, 0xCC, 0x94, 0xC9, 0x84, 0xCE,
- 0xA5, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xA9, 0xCC,
- 0x93, 0xC9, 0x84, 0xCE, 0xA9, 0xCC, 0x94, 0xC9,
- 0x84, 0xCE, 0xB1, 0xCC, 0x80, 0xC9, 0x84, 0xCE,
- // Bytes 4800 - 483f
- 0xB1, 0xCC, 0x81, 0xC9, 0x84, 0xCE, 0xB1, 0xCC,
- 0x93, 0xC9, 0x84, 0xCE, 0xB1, 0xCC, 0x94, 0xC9,
- 0x84, 0xCE, 0xB1, 0xCD, 0x82, 0xC9, 0x84, 0xCE,
- 0xB5, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB5, 0xCC,
- 0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCC, 0x80, 0xC9,
- 0x84, 0xCE, 0xB7, 0xCC, 0x81, 0xC9, 0x84, 0xCE,
- 0xB7, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB7, 0xCC,
- 0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCD, 0x82, 0xC9,
- // Bytes 4840 - 487f
- 0x84, 0xCE, 0xB9, 0xCC, 0x88, 0xC9, 0x84, 0xCE,
- 0xB9, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB9, 0xCC,
- 0x94, 0xC9, 0x84, 0xCE, 0xBF, 0xCC, 0x93, 0xC9,
- 0x84, 0xCE, 0xBF, 0xCC, 0x94, 0xC9, 0x84, 0xCF,
- 0x85, 0xCC, 0x88, 0xC9, 0x84, 0xCF, 0x85, 0xCC,
- 0x93, 0xC9, 0x84, 0xCF, 0x85, 0xCC, 0x94, 0xC9,
- 0x84, 0xCF, 0x89, 0xCC, 0x80, 0xC9, 0x84, 0xCF,
- 0x89, 0xCC, 0x81, 0xC9, 0x84, 0xCF, 0x89, 0xCC,
- // Bytes 4880 - 48bf
- 0x93, 0xC9, 0x84, 0xCF, 0x89, 0xCC, 0x94, 0xC9,
- 0x84, 0xCF, 0x89, 0xCD, 0x82, 0xC9, 0x86, 0xCE,
- 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,
- 0x91, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,
- 0x91, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,
- 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,
- 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,
- 0x91, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,
- // Bytes 48c0 - 48ff
- 0x97, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,
- 0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,
- 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,
- 0x97, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,
- 0x97, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,
- 0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,
- 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,
- 0xA9, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,
- // Bytes 4900 - 493f
- 0xA9, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,
- 0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,
- 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,
- 0xA9, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,
- 0xB1, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,
- 0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,
- 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,
- 0xB1, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,
- // Bytes 4940 - 497f
- 0xB1, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,
- 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,
- 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,
- 0xB7, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,
- 0xB7, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,
- 0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,
- 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,
- 0xB7, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCF,
- // Bytes 4980 - 49bf
- 0x89, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCF,
- 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCF,
- 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCF,
- 0x89, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCF,
- 0x89, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCF,
- 0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x42, 0xCC,
- 0x80, 0xC9, 0x32, 0x42, 0xCC, 0x81, 0xC9, 0x32,
- 0x42, 0xCC, 0x93, 0xC9, 0x32, 0x43, 0xE1, 0x85,
- // Bytes 49c0 - 49ff
- 0xA1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA2, 0x01,
- 0x00, 0x43, 0xE1, 0x85, 0xA3, 0x01, 0x00, 0x43,
- 0xE1, 0x85, 0xA4, 0x01, 0x00, 0x43, 0xE1, 0x85,
- 0xA5, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA6, 0x01,
- 0x00, 0x43, 0xE1, 0x85, 0xA7, 0x01, 0x00, 0x43,
- 0xE1, 0x85, 0xA8, 0x01, 0x00, 0x43, 0xE1, 0x85,
- 0xA9, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAA, 0x01,
- 0x00, 0x43, 0xE1, 0x85, 0xAB, 0x01, 0x00, 0x43,
- // Bytes 4a00 - 4a3f
- 0xE1, 0x85, 0xAC, 0x01, 0x00, 0x43, 0xE1, 0x85,
- 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAE, 0x01,
- 0x00, 0x43, 0xE1, 0x85, 0xAF, 0x01, 0x00, 0x43,
- 0xE1, 0x85, 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x85,
- 0xB1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB2, 0x01,
- 0x00, 0x43, 0xE1, 0x85, 0xB3, 0x01, 0x00, 0x43,
- 0xE1, 0x85, 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x85,
- 0xB5, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xAA, 0x01,
- // Bytes 4a40 - 4a7f
- 0x00, 0x43, 0xE1, 0x86, 0xAC, 0x01, 0x00, 0x43,
- 0xE1, 0x86, 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x86,
- 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB1, 0x01,
- 0x00, 0x43, 0xE1, 0x86, 0xB2, 0x01, 0x00, 0x43,
- 0xE1, 0x86, 0xB3, 0x01, 0x00, 0x43, 0xE1, 0x86,
- 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB5, 0x01,
- 0x00, 0x44, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x32,
- 0x43, 0xE3, 0x82, 0x99, 0x0D, 0x03, 0x43, 0xE3,
- // Bytes 4a80 - 4abf
- 0x82, 0x9A, 0x0D, 0x03, 0x46, 0xE0, 0xBD, 0xB1,
- 0xE0, 0xBD, 0xB2, 0x9E, 0x26, 0x46, 0xE0, 0xBD,
- 0xB1, 0xE0, 0xBD, 0xB4, 0xA2, 0x26, 0x46, 0xE0,
- 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x26, 0x00,
- 0x01,
-}
-
-// lookup returns the trie value for the first UTF-8 encoding in s and
-// the width in bytes of this encoding. The size will be 0 if s does not
-// hold enough bytes to complete the encoding. len(s) must be greater than 0.
-func (t *nfcTrie) lookup(s []byte) (v uint16, sz int) {
- c0 := s[0]
- switch {
- case c0 < 0x80: // is ASCII
- return nfcValues[c0], 1
- case c0 < 0xC2:
- return 0, 1 // Illegal UTF-8: not a starter, not ASCII.
- case c0 < 0xE0: // 2-byte UTF-8
- if len(s) < 2 {
- return 0, 0
- }
- i := nfcIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c1), 2
- case c0 < 0xF0: // 3-byte UTF-8
- if len(s) < 3 {
- return 0, 0
- }
- i := nfcIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = nfcIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c2), 3
- case c0 < 0xF8: // 4-byte UTF-8
- if len(s) < 4 {
- return 0, 0
- }
- i := nfcIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = nfcIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- o = uint32(i)<<6 + uint32(c2)
- i = nfcIndex[o]
- c3 := s[3]
- if c3 < 0x80 || 0xC0 <= c3 {
- return 0, 3 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c3), 4
- }
- // Illegal rune
- return 0, 1
-}
-
-// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.
-// s must start with a full and valid UTF-8 encoded rune.
-func (t *nfcTrie) lookupUnsafe(s []byte) uint16 {
- c0 := s[0]
- if c0 < 0x80 { // is ASCII
- return nfcValues[c0]
- }
- i := nfcIndex[c0]
- if c0 < 0xE0 { // 2-byte UTF-8
- return t.lookupValue(uint32(i), s[1])
- }
- i = nfcIndex[uint32(i)<<6+uint32(s[1])]
- if c0 < 0xF0 { // 3-byte UTF-8
- return t.lookupValue(uint32(i), s[2])
- }
- i = nfcIndex[uint32(i)<<6+uint32(s[2])]
- if c0 < 0xF8 { // 4-byte UTF-8
- return t.lookupValue(uint32(i), s[3])
- }
- return 0
-}
-
-// lookupString returns the trie value for the first UTF-8 encoding in s and
-// the width in bytes of this encoding. The size will be 0 if s does not
-// hold enough bytes to complete the encoding. len(s) must be greater than 0.
-func (t *nfcTrie) lookupString(s string) (v uint16, sz int) {
- c0 := s[0]
- switch {
- case c0 < 0x80: // is ASCII
- return nfcValues[c0], 1
- case c0 < 0xC2:
- return 0, 1 // Illegal UTF-8: not a starter, not ASCII.
- case c0 < 0xE0: // 2-byte UTF-8
- if len(s) < 2 {
- return 0, 0
- }
- i := nfcIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c1), 2
- case c0 < 0xF0: // 3-byte UTF-8
- if len(s) < 3 {
- return 0, 0
- }
- i := nfcIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = nfcIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c2), 3
- case c0 < 0xF8: // 4-byte UTF-8
- if len(s) < 4 {
- return 0, 0
- }
- i := nfcIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = nfcIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- o = uint32(i)<<6 + uint32(c2)
- i = nfcIndex[o]
- c3 := s[3]
- if c3 < 0x80 || 0xC0 <= c3 {
- return 0, 3 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c3), 4
- }
- // Illegal rune
- return 0, 1
-}
-
-// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.
-// s must start with a full and valid UTF-8 encoded rune.
-func (t *nfcTrie) lookupStringUnsafe(s string) uint16 {
- c0 := s[0]
- if c0 < 0x80 { // is ASCII
- return nfcValues[c0]
- }
- i := nfcIndex[c0]
- if c0 < 0xE0 { // 2-byte UTF-8
- return t.lookupValue(uint32(i), s[1])
- }
- i = nfcIndex[uint32(i)<<6+uint32(s[1])]
- if c0 < 0xF0 { // 3-byte UTF-8
- return t.lookupValue(uint32(i), s[2])
- }
- i = nfcIndex[uint32(i)<<6+uint32(s[2])]
- if c0 < 0xF8 { // 4-byte UTF-8
- return t.lookupValue(uint32(i), s[3])
- }
- return 0
-}
-
-// nfcTrie. Total size: 10442 bytes (10.20 KiB). Checksum: 4ba400a9d8208e03.
-type nfcTrie struct{}
-
-func newNfcTrie(i int) *nfcTrie {
- return &nfcTrie{}
-}
-
-// lookupValue determines the type of block n and looks up the value for b.
-func (t *nfcTrie) lookupValue(n uint32, b byte) uint16 {
- switch {
- case n < 45:
- return uint16(nfcValues[n<<6+uint32(b)])
- default:
- n -= 45
- return uint16(nfcSparse.lookup(n, b))
- }
-}
-
-// nfcValues: 47 blocks, 3008 entries, 6016 bytes
-// The third block is the zero block.
-var nfcValues = [3008]uint16{
- // Block 0x0, offset 0x0
- 0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000,
- // Block 0x1, offset 0x40
- 0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000,
- 0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000,
- 0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000,
- 0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000,
- 0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000,
- 0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000,
- 0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000,
- 0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000,
- 0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000,
- 0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000,
- // Block 0x2, offset 0x80
- // Block 0x3, offset 0xc0
- 0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c,
- 0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb,
- 0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104,
- 0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd,
- 0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235,
- 0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285,
- 0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3,
- 0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750,
- 0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f,
- 0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3,
- 0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569,
- // Block 0x4, offset 0x100
- 0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 0x104: 0x2f9c, 0x105: 0x32a8,
- 0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6,
- 0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5,
- 0x112: 0x46b0, 0x113: 0x4741, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302,
- 0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339,
- 0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352,
- 0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e,
- 0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6,
- 0x130: 0x308c, 0x134: 0x30b4, 0x135: 0x33c0,
- 0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc,
- 0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8,
- // Block 0x5, offset 0x140
- 0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118,
- 0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f,
- 0x14c: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c,
- 0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483,
- 0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d,
- 0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba,
- 0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796,
- 0x16a: 0x470a, 0x16b: 0x479b, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2,
- 0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528,
- 0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267,
- 0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0xa000,
- // Block 0x6, offset 0x180
- 0x184: 0x8100, 0x185: 0x8100,
- 0x186: 0x8100,
- 0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140,
- 0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8,
- 0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50,
- 0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5,
- 0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf,
- 0x1aa: 0x46ec, 0x1ab: 0x477d, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd,
- 0x1b0: 0x33c5, 0x1b4: 0x3028, 0x1b5: 0x3334,
- 0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46,
- 0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb,
- // Block 0x7, offset 0x1c0
- 0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316,
- 0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac,
- 0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479,
- 0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6,
- 0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5,
- 0x1de: 0x305a, 0x1df: 0x3366,
- 0x1e6: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b,
- 0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769,
- 0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f,
- // Block 0x8, offset 0x200
- 0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132,
- 0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932,
- 0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932,
- 0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d,
- 0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d,
- 0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d,
- 0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d,
- 0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d,
- 0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101,
- 0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d,
- 0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132,
- // Block 0x9, offset 0x240
- 0x240: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 0x245: 0x9936,
- 0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132,
- 0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132,
- 0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132,
- 0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135,
- 0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132,
- 0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132,
- 0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132,
- 0x274: 0x0170,
- 0x27a: 0x8100,
- 0x27e: 0x0037,
- // Block 0xa, offset 0x280
- 0x284: 0x8100, 0x285: 0x35a1,
- 0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625,
- 0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000,
- 0x295: 0xa000, 0x297: 0xa000,
- 0x299: 0xa000,
- 0x29f: 0xa000, 0x2a1: 0xa000,
- 0x2a5: 0xa000, 0x2a9: 0xa000,
- 0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 0x2af: 0x36a9,
- 0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000,
- 0x2b7: 0xa000, 0x2b9: 0xa000,
- 0x2bf: 0xa000,
- // Block 0xb, offset 0x2c0
- 0x2c0: 0x3721, 0x2c1: 0x372d, 0x2c3: 0x371b,
- 0x2c6: 0xa000, 0x2c7: 0x3709,
- 0x2cc: 0x375d, 0x2cd: 0x3745, 0x2ce: 0x376f, 0x2d0: 0xa000,
- 0x2d3: 0xa000, 0x2d5: 0xa000, 0x2d6: 0xa000, 0x2d7: 0xa000,
- 0x2d8: 0xa000, 0x2d9: 0x3751, 0x2da: 0xa000,
- 0x2de: 0xa000, 0x2e3: 0xa000,
- 0x2e7: 0xa000,
- 0x2eb: 0xa000, 0x2ed: 0xa000,
- 0x2f0: 0xa000, 0x2f3: 0xa000, 0x2f5: 0xa000,
- 0x2f6: 0xa000, 0x2f7: 0xa000, 0x2f8: 0xa000, 0x2f9: 0x37d5, 0x2fa: 0xa000,
- 0x2fe: 0xa000,
- // Block 0xc, offset 0x300
- 0x301: 0x3733, 0x302: 0x37b7,
- 0x310: 0x370f, 0x311: 0x3793,
- 0x312: 0x3715, 0x313: 0x3799, 0x316: 0x3727, 0x317: 0x37ab,
- 0x318: 0xa000, 0x319: 0xa000, 0x31a: 0x3829, 0x31b: 0x382f, 0x31c: 0x3739, 0x31d: 0x37bd,
- 0x31e: 0x373f, 0x31f: 0x37c3, 0x322: 0x374b, 0x323: 0x37cf,
- 0x324: 0x3757, 0x325: 0x37db, 0x326: 0x3763, 0x327: 0x37e7, 0x328: 0xa000, 0x329: 0xa000,
- 0x32a: 0x3835, 0x32b: 0x383b, 0x32c: 0x378d, 0x32d: 0x3811, 0x32e: 0x3769, 0x32f: 0x37ed,
- 0x330: 0x3775, 0x331: 0x37f9, 0x332: 0x377b, 0x333: 0x37ff, 0x334: 0x3781, 0x335: 0x3805,
- 0x338: 0x3787, 0x339: 0x380b,
- // Block 0xd, offset 0x340
- 0x351: 0x812d,
- 0x352: 0x8132, 0x353: 0x8132, 0x354: 0x8132, 0x355: 0x8132, 0x356: 0x812d, 0x357: 0x8132,
- 0x358: 0x8132, 0x359: 0x8132, 0x35a: 0x812e, 0x35b: 0x812d, 0x35c: 0x8132, 0x35d: 0x8132,
- 0x35e: 0x8132, 0x35f: 0x8132, 0x360: 0x8132, 0x361: 0x8132, 0x362: 0x812d, 0x363: 0x812d,
- 0x364: 0x812d, 0x365: 0x812d, 0x366: 0x812d, 0x367: 0x812d, 0x368: 0x8132, 0x369: 0x8132,
- 0x36a: 0x812d, 0x36b: 0x8132, 0x36c: 0x8132, 0x36d: 0x812e, 0x36e: 0x8131, 0x36f: 0x8132,
- 0x370: 0x8105, 0x371: 0x8106, 0x372: 0x8107, 0x373: 0x8108, 0x374: 0x8109, 0x375: 0x810a,
- 0x376: 0x810b, 0x377: 0x810c, 0x378: 0x810d, 0x379: 0x810e, 0x37a: 0x810e, 0x37b: 0x810f,
- 0x37c: 0x8110, 0x37d: 0x8111, 0x37f: 0x8112,
- // Block 0xe, offset 0x380
- 0x388: 0xa000, 0x38a: 0xa000, 0x38b: 0x8116,
- 0x38c: 0x8117, 0x38d: 0x8118, 0x38e: 0x8119, 0x38f: 0x811a, 0x390: 0x811b, 0x391: 0x811c,
- 0x392: 0x811d, 0x393: 0x9932, 0x394: 0x9932, 0x395: 0x992d, 0x396: 0x812d, 0x397: 0x8132,
- 0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x8132, 0x39b: 0x8132, 0x39c: 0x812d, 0x39d: 0x8132,
- 0x39e: 0x8132, 0x39f: 0x812d,
- 0x3b0: 0x811e,
- // Block 0xf, offset 0x3c0
- 0x3c5: 0xa000,
- 0x3c6: 0x2d26, 0x3c7: 0xa000, 0x3c8: 0x2d2e, 0x3c9: 0xa000, 0x3ca: 0x2d36, 0x3cb: 0xa000,
- 0x3cc: 0x2d3e, 0x3cd: 0xa000, 0x3ce: 0x2d46, 0x3d1: 0xa000,
- 0x3d2: 0x2d4e,
- 0x3f4: 0x8102, 0x3f5: 0x9900,
- 0x3fa: 0xa000, 0x3fb: 0x2d56,
- 0x3fc: 0xa000, 0x3fd: 0x2d5e, 0x3fe: 0xa000, 0x3ff: 0xa000,
- // Block 0x10, offset 0x400
- 0x400: 0x8132, 0x401: 0x8132, 0x402: 0x812d, 0x403: 0x8132, 0x404: 0x8132, 0x405: 0x8132,
- 0x406: 0x8132, 0x407: 0x8132, 0x408: 0x8132, 0x409: 0x8132, 0x40a: 0x812d, 0x40b: 0x8132,
- 0x40c: 0x8132, 0x40d: 0x8135, 0x40e: 0x812a, 0x40f: 0x812d, 0x410: 0x8129, 0x411: 0x8132,
- 0x412: 0x8132, 0x413: 0x8132, 0x414: 0x8132, 0x415: 0x8132, 0x416: 0x8132, 0x417: 0x8132,
- 0x418: 0x8132, 0x419: 0x8132, 0x41a: 0x8132, 0x41b: 0x8132, 0x41c: 0x8132, 0x41d: 0x8132,
- 0x41e: 0x8132, 0x41f: 0x8132, 0x420: 0x8132, 0x421: 0x8132, 0x422: 0x8132, 0x423: 0x8132,
- 0x424: 0x8132, 0x425: 0x8132, 0x426: 0x8132, 0x427: 0x8132, 0x428: 0x8132, 0x429: 0x8132,
- 0x42a: 0x8132, 0x42b: 0x8132, 0x42c: 0x8132, 0x42d: 0x8132, 0x42e: 0x8132, 0x42f: 0x8132,
- 0x430: 0x8132, 0x431: 0x8132, 0x432: 0x8132, 0x433: 0x8132, 0x434: 0x8132, 0x435: 0x8132,
- 0x436: 0x8133, 0x437: 0x8131, 0x438: 0x8131, 0x439: 0x812d, 0x43b: 0x8132,
- 0x43c: 0x8134, 0x43d: 0x812d, 0x43e: 0x8132, 0x43f: 0x812d,
- // Block 0x11, offset 0x440
- 0x440: 0x2f97, 0x441: 0x32a3, 0x442: 0x2fa1, 0x443: 0x32ad, 0x444: 0x2fa6, 0x445: 0x32b2,
- 0x446: 0x2fab, 0x447: 0x32b7, 0x448: 0x38cc, 0x449: 0x3a5b, 0x44a: 0x2fc4, 0x44b: 0x32d0,
- 0x44c: 0x2fce, 0x44d: 0x32da, 0x44e: 0x2fdd, 0x44f: 0x32e9, 0x450: 0x2fd3, 0x451: 0x32df,
- 0x452: 0x2fd8, 0x453: 0x32e4, 0x454: 0x38ef, 0x455: 0x3a7e, 0x456: 0x38f6, 0x457: 0x3a85,
- 0x458: 0x3019, 0x459: 0x3325, 0x45a: 0x301e, 0x45b: 0x332a, 0x45c: 0x3904, 0x45d: 0x3a93,
- 0x45e: 0x3023, 0x45f: 0x332f, 0x460: 0x3032, 0x461: 0x333e, 0x462: 0x3050, 0x463: 0x335c,
- 0x464: 0x305f, 0x465: 0x336b, 0x466: 0x3055, 0x467: 0x3361, 0x468: 0x3064, 0x469: 0x3370,
- 0x46a: 0x3069, 0x46b: 0x3375, 0x46c: 0x30af, 0x46d: 0x33bb, 0x46e: 0x390b, 0x46f: 0x3a9a,
- 0x470: 0x30b9, 0x471: 0x33ca, 0x472: 0x30c3, 0x473: 0x33d4, 0x474: 0x30cd, 0x475: 0x33de,
- 0x476: 0x46c4, 0x477: 0x4755, 0x478: 0x3912, 0x479: 0x3aa1, 0x47a: 0x30e6, 0x47b: 0x33f7,
- 0x47c: 0x30e1, 0x47d: 0x33f2, 0x47e: 0x30eb, 0x47f: 0x33fc,
- // Block 0x12, offset 0x480
- 0x480: 0x30f0, 0x481: 0x3401, 0x482: 0x30f5, 0x483: 0x3406, 0x484: 0x3109, 0x485: 0x341a,
- 0x486: 0x3113, 0x487: 0x3424, 0x488: 0x3122, 0x489: 0x3433, 0x48a: 0x311d, 0x48b: 0x342e,
- 0x48c: 0x3935, 0x48d: 0x3ac4, 0x48e: 0x3943, 0x48f: 0x3ad2, 0x490: 0x394a, 0x491: 0x3ad9,
- 0x492: 0x3951, 0x493: 0x3ae0, 0x494: 0x314f, 0x495: 0x3460, 0x496: 0x3154, 0x497: 0x3465,
- 0x498: 0x315e, 0x499: 0x346f, 0x49a: 0x46f1, 0x49b: 0x4782, 0x49c: 0x3997, 0x49d: 0x3b26,
- 0x49e: 0x3177, 0x49f: 0x3488, 0x4a0: 0x3181, 0x4a1: 0x3492, 0x4a2: 0x4700, 0x4a3: 0x4791,
- 0x4a4: 0x399e, 0x4a5: 0x3b2d, 0x4a6: 0x39a5, 0x4a7: 0x3b34, 0x4a8: 0x39ac, 0x4a9: 0x3b3b,
- 0x4aa: 0x3190, 0x4ab: 0x34a1, 0x4ac: 0x319a, 0x4ad: 0x34b0, 0x4ae: 0x31ae, 0x4af: 0x34c4,
- 0x4b0: 0x31a9, 0x4b1: 0x34bf, 0x4b2: 0x31ea, 0x4b3: 0x3500, 0x4b4: 0x31f9, 0x4b5: 0x350f,
- 0x4b6: 0x31f4, 0x4b7: 0x350a, 0x4b8: 0x39b3, 0x4b9: 0x3b42, 0x4ba: 0x39ba, 0x4bb: 0x3b49,
- 0x4bc: 0x31fe, 0x4bd: 0x3514, 0x4be: 0x3203, 0x4bf: 0x3519,
- // Block 0x13, offset 0x4c0
- 0x4c0: 0x3208, 0x4c1: 0x351e, 0x4c2: 0x320d, 0x4c3: 0x3523, 0x4c4: 0x321c, 0x4c5: 0x3532,
- 0x4c6: 0x3217, 0x4c7: 0x352d, 0x4c8: 0x3221, 0x4c9: 0x353c, 0x4ca: 0x3226, 0x4cb: 0x3541,
- 0x4cc: 0x322b, 0x4cd: 0x3546, 0x4ce: 0x3249, 0x4cf: 0x3564, 0x4d0: 0x3262, 0x4d1: 0x3582,
- 0x4d2: 0x3271, 0x4d3: 0x3591, 0x4d4: 0x3276, 0x4d5: 0x3596, 0x4d6: 0x337a, 0x4d7: 0x34a6,
- 0x4d8: 0x3537, 0x4d9: 0x3573, 0x4db: 0x35d1,
- 0x4e0: 0x46a1, 0x4e1: 0x4732, 0x4e2: 0x2f83, 0x4e3: 0x328f,
- 0x4e4: 0x3878, 0x4e5: 0x3a07, 0x4e6: 0x3871, 0x4e7: 0x3a00, 0x4e8: 0x3886, 0x4e9: 0x3a15,
- 0x4ea: 0x387f, 0x4eb: 0x3a0e, 0x4ec: 0x38be, 0x4ed: 0x3a4d, 0x4ee: 0x3894, 0x4ef: 0x3a23,
- 0x4f0: 0x388d, 0x4f1: 0x3a1c, 0x4f2: 0x38a2, 0x4f3: 0x3a31, 0x4f4: 0x389b, 0x4f5: 0x3a2a,
- 0x4f6: 0x38c5, 0x4f7: 0x3a54, 0x4f8: 0x46b5, 0x4f9: 0x4746, 0x4fa: 0x3000, 0x4fb: 0x330c,
- 0x4fc: 0x2fec, 0x4fd: 0x32f8, 0x4fe: 0x38da, 0x4ff: 0x3a69,
- // Block 0x14, offset 0x500
- 0x500: 0x38d3, 0x501: 0x3a62, 0x502: 0x38e8, 0x503: 0x3a77, 0x504: 0x38e1, 0x505: 0x3a70,
- 0x506: 0x38fd, 0x507: 0x3a8c, 0x508: 0x3091, 0x509: 0x339d, 0x50a: 0x30a5, 0x50b: 0x33b1,
- 0x50c: 0x46e7, 0x50d: 0x4778, 0x50e: 0x3136, 0x50f: 0x3447, 0x510: 0x3920, 0x511: 0x3aaf,
- 0x512: 0x3919, 0x513: 0x3aa8, 0x514: 0x392e, 0x515: 0x3abd, 0x516: 0x3927, 0x517: 0x3ab6,
- 0x518: 0x3989, 0x519: 0x3b18, 0x51a: 0x396d, 0x51b: 0x3afc, 0x51c: 0x3966, 0x51d: 0x3af5,
- 0x51e: 0x397b, 0x51f: 0x3b0a, 0x520: 0x3974, 0x521: 0x3b03, 0x522: 0x3982, 0x523: 0x3b11,
- 0x524: 0x31e5, 0x525: 0x34fb, 0x526: 0x31c7, 0x527: 0x34dd, 0x528: 0x39e4, 0x529: 0x3b73,
- 0x52a: 0x39dd, 0x52b: 0x3b6c, 0x52c: 0x39f2, 0x52d: 0x3b81, 0x52e: 0x39eb, 0x52f: 0x3b7a,
- 0x530: 0x39f9, 0x531: 0x3b88, 0x532: 0x3230, 0x533: 0x354b, 0x534: 0x3258, 0x535: 0x3578,
- 0x536: 0x3253, 0x537: 0x356e, 0x538: 0x323f, 0x539: 0x355a,
- // Block 0x15, offset 0x540
- 0x540: 0x4804, 0x541: 0x480a, 0x542: 0x491e, 0x543: 0x4936, 0x544: 0x4926, 0x545: 0x493e,
- 0x546: 0x492e, 0x547: 0x4946, 0x548: 0x47aa, 0x549: 0x47b0, 0x54a: 0x488e, 0x54b: 0x48a6,
- 0x54c: 0x4896, 0x54d: 0x48ae, 0x54e: 0x489e, 0x54f: 0x48b6, 0x550: 0x4816, 0x551: 0x481c,
- 0x552: 0x3db8, 0x553: 0x3dc8, 0x554: 0x3dc0, 0x555: 0x3dd0,
- 0x558: 0x47b6, 0x559: 0x47bc, 0x55a: 0x3ce8, 0x55b: 0x3cf8, 0x55c: 0x3cf0, 0x55d: 0x3d00,
- 0x560: 0x482e, 0x561: 0x4834, 0x562: 0x494e, 0x563: 0x4966,
- 0x564: 0x4956, 0x565: 0x496e, 0x566: 0x495e, 0x567: 0x4976, 0x568: 0x47c2, 0x569: 0x47c8,
- 0x56a: 0x48be, 0x56b: 0x48d6, 0x56c: 0x48c6, 0x56d: 0x48de, 0x56e: 0x48ce, 0x56f: 0x48e6,
- 0x570: 0x4846, 0x571: 0x484c, 0x572: 0x3e18, 0x573: 0x3e30, 0x574: 0x3e20, 0x575: 0x3e38,
- 0x576: 0x3e28, 0x577: 0x3e40, 0x578: 0x47ce, 0x579: 0x47d4, 0x57a: 0x3d18, 0x57b: 0x3d30,
- 0x57c: 0x3d20, 0x57d: 0x3d38, 0x57e: 0x3d28, 0x57f: 0x3d40,
- // Block 0x16, offset 0x580
- 0x580: 0x4852, 0x581: 0x4858, 0x582: 0x3e48, 0x583: 0x3e58, 0x584: 0x3e50, 0x585: 0x3e60,
- 0x588: 0x47da, 0x589: 0x47e0, 0x58a: 0x3d48, 0x58b: 0x3d58,
- 0x58c: 0x3d50, 0x58d: 0x3d60, 0x590: 0x4864, 0x591: 0x486a,
- 0x592: 0x3e80, 0x593: 0x3e98, 0x594: 0x3e88, 0x595: 0x3ea0, 0x596: 0x3e90, 0x597: 0x3ea8,
- 0x599: 0x47e6, 0x59b: 0x3d68, 0x59d: 0x3d70,
- 0x59f: 0x3d78, 0x5a0: 0x487c, 0x5a1: 0x4882, 0x5a2: 0x497e, 0x5a3: 0x4996,
- 0x5a4: 0x4986, 0x5a5: 0x499e, 0x5a6: 0x498e, 0x5a7: 0x49a6, 0x5a8: 0x47ec, 0x5a9: 0x47f2,
- 0x5aa: 0x48ee, 0x5ab: 0x4906, 0x5ac: 0x48f6, 0x5ad: 0x490e, 0x5ae: 0x48fe, 0x5af: 0x4916,
- 0x5b0: 0x47f8, 0x5b1: 0x431e, 0x5b2: 0x3691, 0x5b3: 0x4324, 0x5b4: 0x4822, 0x5b5: 0x432a,
- 0x5b6: 0x36a3, 0x5b7: 0x4330, 0x5b8: 0x36c1, 0x5b9: 0x4336, 0x5ba: 0x36d9, 0x5bb: 0x433c,
- 0x5bc: 0x4870, 0x5bd: 0x4342,
- // Block 0x17, offset 0x5c0
- 0x5c0: 0x3da0, 0x5c1: 0x3da8, 0x5c2: 0x4184, 0x5c3: 0x41a2, 0x5c4: 0x418e, 0x5c5: 0x41ac,
- 0x5c6: 0x4198, 0x5c7: 0x41b6, 0x5c8: 0x3cd8, 0x5c9: 0x3ce0, 0x5ca: 0x40d0, 0x5cb: 0x40ee,
- 0x5cc: 0x40da, 0x5cd: 0x40f8, 0x5ce: 0x40e4, 0x5cf: 0x4102, 0x5d0: 0x3de8, 0x5d1: 0x3df0,
- 0x5d2: 0x41c0, 0x5d3: 0x41de, 0x5d4: 0x41ca, 0x5d5: 0x41e8, 0x5d6: 0x41d4, 0x5d7: 0x41f2,
- 0x5d8: 0x3d08, 0x5d9: 0x3d10, 0x5da: 0x410c, 0x5db: 0x412a, 0x5dc: 0x4116, 0x5dd: 0x4134,
- 0x5de: 0x4120, 0x5df: 0x413e, 0x5e0: 0x3ec0, 0x5e1: 0x3ec8, 0x5e2: 0x41fc, 0x5e3: 0x421a,
- 0x5e4: 0x4206, 0x5e5: 0x4224, 0x5e6: 0x4210, 0x5e7: 0x422e, 0x5e8: 0x3d80, 0x5e9: 0x3d88,
- 0x5ea: 0x4148, 0x5eb: 0x4166, 0x5ec: 0x4152, 0x5ed: 0x4170, 0x5ee: 0x415c, 0x5ef: 0x417a,
- 0x5f0: 0x3685, 0x5f1: 0x367f, 0x5f2: 0x3d90, 0x5f3: 0x368b, 0x5f4: 0x3d98,
- 0x5f6: 0x4810, 0x5f7: 0x3db0, 0x5f8: 0x35f5, 0x5f9: 0x35ef, 0x5fa: 0x35e3, 0x5fb: 0x42ee,
- 0x5fc: 0x35fb, 0x5fd: 0x8100, 0x5fe: 0x01d3, 0x5ff: 0xa100,
- // Block 0x18, offset 0x600
- 0x600: 0x8100, 0x601: 0x35a7, 0x602: 0x3dd8, 0x603: 0x369d, 0x604: 0x3de0,
- 0x606: 0x483a, 0x607: 0x3df8, 0x608: 0x3601, 0x609: 0x42f4, 0x60a: 0x360d, 0x60b: 0x42fa,
- 0x60c: 0x3619, 0x60d: 0x3b8f, 0x60e: 0x3b96, 0x60f: 0x3b9d, 0x610: 0x36b5, 0x611: 0x36af,
- 0x612: 0x3e00, 0x613: 0x44e4, 0x616: 0x36bb, 0x617: 0x3e10,
- 0x618: 0x3631, 0x619: 0x362b, 0x61a: 0x361f, 0x61b: 0x4300, 0x61d: 0x3ba4,
- 0x61e: 0x3bab, 0x61f: 0x3bb2, 0x620: 0x36eb, 0x621: 0x36e5, 0x622: 0x3e68, 0x623: 0x44ec,
- 0x624: 0x36cd, 0x625: 0x36d3, 0x626: 0x36f1, 0x627: 0x3e78, 0x628: 0x3661, 0x629: 0x365b,
- 0x62a: 0x364f, 0x62b: 0x430c, 0x62c: 0x3649, 0x62d: 0x359b, 0x62e: 0x42e8, 0x62f: 0x0081,
- 0x632: 0x3eb0, 0x633: 0x36f7, 0x634: 0x3eb8,
- 0x636: 0x4888, 0x637: 0x3ed0, 0x638: 0x363d, 0x639: 0x4306, 0x63a: 0x366d, 0x63b: 0x4318,
- 0x63c: 0x3679, 0x63d: 0x4256, 0x63e: 0xa100,
- // Block 0x19, offset 0x640
- 0x641: 0x3c06, 0x643: 0xa000, 0x644: 0x3c0d, 0x645: 0xa000,
- 0x647: 0x3c14, 0x648: 0xa000, 0x649: 0x3c1b,
- 0x64d: 0xa000,
- 0x660: 0x2f65, 0x661: 0xa000, 0x662: 0x3c29,
- 0x664: 0xa000, 0x665: 0xa000,
- 0x66d: 0x3c22, 0x66e: 0x2f60, 0x66f: 0x2f6a,
- 0x670: 0x3c30, 0x671: 0x3c37, 0x672: 0xa000, 0x673: 0xa000, 0x674: 0x3c3e, 0x675: 0x3c45,
- 0x676: 0xa000, 0x677: 0xa000, 0x678: 0x3c4c, 0x679: 0x3c53, 0x67a: 0xa000, 0x67b: 0xa000,
- 0x67c: 0xa000, 0x67d: 0xa000,
- // Block 0x1a, offset 0x680
- 0x680: 0x3c5a, 0x681: 0x3c61, 0x682: 0xa000, 0x683: 0xa000, 0x684: 0x3c76, 0x685: 0x3c7d,
- 0x686: 0xa000, 0x687: 0xa000, 0x688: 0x3c84, 0x689: 0x3c8b,
- 0x691: 0xa000,
- 0x692: 0xa000,
- 0x6a2: 0xa000,
- 0x6a8: 0xa000, 0x6a9: 0xa000,
- 0x6ab: 0xa000, 0x6ac: 0x3ca0, 0x6ad: 0x3ca7, 0x6ae: 0x3cae, 0x6af: 0x3cb5,
- 0x6b2: 0xa000, 0x6b3: 0xa000, 0x6b4: 0xa000, 0x6b5: 0xa000,
- // Block 0x1b, offset 0x6c0
- 0x6c6: 0xa000, 0x6cb: 0xa000,
- 0x6cc: 0x3f08, 0x6cd: 0xa000, 0x6ce: 0x3f10, 0x6cf: 0xa000, 0x6d0: 0x3f18, 0x6d1: 0xa000,
- 0x6d2: 0x3f20, 0x6d3: 0xa000, 0x6d4: 0x3f28, 0x6d5: 0xa000, 0x6d6: 0x3f30, 0x6d7: 0xa000,
- 0x6d8: 0x3f38, 0x6d9: 0xa000, 0x6da: 0x3f40, 0x6db: 0xa000, 0x6dc: 0x3f48, 0x6dd: 0xa000,
- 0x6de: 0x3f50, 0x6df: 0xa000, 0x6e0: 0x3f58, 0x6e1: 0xa000, 0x6e2: 0x3f60,
- 0x6e4: 0xa000, 0x6e5: 0x3f68, 0x6e6: 0xa000, 0x6e7: 0x3f70, 0x6e8: 0xa000, 0x6e9: 0x3f78,
- 0x6ef: 0xa000,
- 0x6f0: 0x3f80, 0x6f1: 0x3f88, 0x6f2: 0xa000, 0x6f3: 0x3f90, 0x6f4: 0x3f98, 0x6f5: 0xa000,
- 0x6f6: 0x3fa0, 0x6f7: 0x3fa8, 0x6f8: 0xa000, 0x6f9: 0x3fb0, 0x6fa: 0x3fb8, 0x6fb: 0xa000,
- 0x6fc: 0x3fc0, 0x6fd: 0x3fc8,
- // Block 0x1c, offset 0x700
- 0x714: 0x3f00,
- 0x719: 0x9903, 0x71a: 0x9903, 0x71b: 0x8100, 0x71c: 0x8100, 0x71d: 0xa000,
- 0x71e: 0x3fd0,
- 0x726: 0xa000,
- 0x72b: 0xa000, 0x72c: 0x3fe0, 0x72d: 0xa000, 0x72e: 0x3fe8, 0x72f: 0xa000,
- 0x730: 0x3ff0, 0x731: 0xa000, 0x732: 0x3ff8, 0x733: 0xa000, 0x734: 0x4000, 0x735: 0xa000,
- 0x736: 0x4008, 0x737: 0xa000, 0x738: 0x4010, 0x739: 0xa000, 0x73a: 0x4018, 0x73b: 0xa000,
- 0x73c: 0x4020, 0x73d: 0xa000, 0x73e: 0x4028, 0x73f: 0xa000,
- // Block 0x1d, offset 0x740
- 0x740: 0x4030, 0x741: 0xa000, 0x742: 0x4038, 0x744: 0xa000, 0x745: 0x4040,
- 0x746: 0xa000, 0x747: 0x4048, 0x748: 0xa000, 0x749: 0x4050,
- 0x74f: 0xa000, 0x750: 0x4058, 0x751: 0x4060,
- 0x752: 0xa000, 0x753: 0x4068, 0x754: 0x4070, 0x755: 0xa000, 0x756: 0x4078, 0x757: 0x4080,
- 0x758: 0xa000, 0x759: 0x4088, 0x75a: 0x4090, 0x75b: 0xa000, 0x75c: 0x4098, 0x75d: 0x40a0,
- 0x76f: 0xa000,
- 0x770: 0xa000, 0x771: 0xa000, 0x772: 0xa000, 0x774: 0x3fd8,
- 0x777: 0x40a8, 0x778: 0x40b0, 0x779: 0x40b8, 0x77a: 0x40c0,
- 0x77d: 0xa000, 0x77e: 0x40c8,
- // Block 0x1e, offset 0x780
- 0x780: 0x1377, 0x781: 0x0cfb, 0x782: 0x13d3, 0x783: 0x139f, 0x784: 0x0e57, 0x785: 0x06eb,
- 0x786: 0x08df, 0x787: 0x162b, 0x788: 0x162b, 0x789: 0x0a0b, 0x78a: 0x145f, 0x78b: 0x0943,
- 0x78c: 0x0a07, 0x78d: 0x0bef, 0x78e: 0x0fcf, 0x78f: 0x115f, 0x790: 0x1297, 0x791: 0x12d3,
- 0x792: 0x1307, 0x793: 0x141b, 0x794: 0x0d73, 0x795: 0x0dff, 0x796: 0x0eab, 0x797: 0x0f43,
- 0x798: 0x125f, 0x799: 0x1447, 0x79a: 0x1573, 0x79b: 0x070f, 0x79c: 0x08b3, 0x79d: 0x0d87,
- 0x79e: 0x0ecf, 0x79f: 0x1293, 0x7a0: 0x15c3, 0x7a1: 0x0ab3, 0x7a2: 0x0e77, 0x7a3: 0x1283,
- 0x7a4: 0x1317, 0x7a5: 0x0c23, 0x7a6: 0x11bb, 0x7a7: 0x12df, 0x7a8: 0x0b1f, 0x7a9: 0x0d0f,
- 0x7aa: 0x0e17, 0x7ab: 0x0f1b, 0x7ac: 0x1427, 0x7ad: 0x074f, 0x7ae: 0x07e7, 0x7af: 0x0853,
- 0x7b0: 0x0c8b, 0x7b1: 0x0d7f, 0x7b2: 0x0ecb, 0x7b3: 0x0fef, 0x7b4: 0x1177, 0x7b5: 0x128b,
- 0x7b6: 0x12a3, 0x7b7: 0x13c7, 0x7b8: 0x14ef, 0x7b9: 0x15a3, 0x7ba: 0x15bf, 0x7bb: 0x102b,
- 0x7bc: 0x106b, 0x7bd: 0x1123, 0x7be: 0x1243, 0x7bf: 0x147b,
- // Block 0x1f, offset 0x7c0
- 0x7c0: 0x15cb, 0x7c1: 0x134b, 0x7c2: 0x09c7, 0x7c3: 0x0b3b, 0x7c4: 0x10db, 0x7c5: 0x119b,
- 0x7c6: 0x0eff, 0x7c7: 0x1033, 0x7c8: 0x1397, 0x7c9: 0x14e7, 0x7ca: 0x09c3, 0x7cb: 0x0a8f,
- 0x7cc: 0x0d77, 0x7cd: 0x0e2b, 0x7ce: 0x0e5f, 0x7cf: 0x1113, 0x7d0: 0x113b, 0x7d1: 0x14a7,
- 0x7d2: 0x084f, 0x7d3: 0x11a7, 0x7d4: 0x07f3, 0x7d5: 0x07ef, 0x7d6: 0x1097, 0x7d7: 0x1127,
- 0x7d8: 0x125b, 0x7d9: 0x14af, 0x7da: 0x1367, 0x7db: 0x0c27, 0x7dc: 0x0d73, 0x7dd: 0x1357,
- 0x7de: 0x06f7, 0x7df: 0x0a63, 0x7e0: 0x0b93, 0x7e1: 0x0f2f, 0x7e2: 0x0faf, 0x7e3: 0x0873,
- 0x7e4: 0x103b, 0x7e5: 0x075f, 0x7e6: 0x0b77, 0x7e7: 0x06d7, 0x7e8: 0x0deb, 0x7e9: 0x0ca3,
- 0x7ea: 0x110f, 0x7eb: 0x08c7, 0x7ec: 0x09b3, 0x7ed: 0x0ffb, 0x7ee: 0x1263, 0x7ef: 0x133b,
- 0x7f0: 0x0db7, 0x7f1: 0x13f7, 0x7f2: 0x0de3, 0x7f3: 0x0c37, 0x7f4: 0x121b, 0x7f5: 0x0c57,
- 0x7f6: 0x0fab, 0x7f7: 0x072b, 0x7f8: 0x07a7, 0x7f9: 0x07eb, 0x7fa: 0x0d53, 0x7fb: 0x10fb,
- 0x7fc: 0x11f3, 0x7fd: 0x1347, 0x7fe: 0x145b, 0x7ff: 0x085b,
- // Block 0x20, offset 0x800
- 0x800: 0x090f, 0x801: 0x0a17, 0x802: 0x0b2f, 0x803: 0x0cbf, 0x804: 0x0e7b, 0x805: 0x103f,
- 0x806: 0x1497, 0x807: 0x157b, 0x808: 0x15cf, 0x809: 0x15e7, 0x80a: 0x0837, 0x80b: 0x0cf3,
- 0x80c: 0x0da3, 0x80d: 0x13eb, 0x80e: 0x0afb, 0x80f: 0x0bd7, 0x810: 0x0bf3, 0x811: 0x0c83,
- 0x812: 0x0e6b, 0x813: 0x0eb7, 0x814: 0x0f67, 0x815: 0x108b, 0x816: 0x112f, 0x817: 0x1193,
- 0x818: 0x13db, 0x819: 0x126b, 0x81a: 0x1403, 0x81b: 0x147f, 0x81c: 0x080f, 0x81d: 0x083b,
- 0x81e: 0x0923, 0x81f: 0x0ea7, 0x820: 0x12f3, 0x821: 0x133b, 0x822: 0x0b1b, 0x823: 0x0b8b,
- 0x824: 0x0c4f, 0x825: 0x0daf, 0x826: 0x10d7, 0x827: 0x0f23, 0x828: 0x073b, 0x829: 0x097f,
- 0x82a: 0x0a63, 0x82b: 0x0ac7, 0x82c: 0x0b97, 0x82d: 0x0f3f, 0x82e: 0x0f5b, 0x82f: 0x116b,
- 0x830: 0x118b, 0x831: 0x1463, 0x832: 0x14e3, 0x833: 0x14f3, 0x834: 0x152f, 0x835: 0x0753,
- 0x836: 0x107f, 0x837: 0x144f, 0x838: 0x14cb, 0x839: 0x0baf, 0x83a: 0x0717, 0x83b: 0x0777,
- 0x83c: 0x0a67, 0x83d: 0x0a87, 0x83e: 0x0caf, 0x83f: 0x0d73,
- // Block 0x21, offset 0x840
- 0x840: 0x0ec3, 0x841: 0x0fcb, 0x842: 0x1277, 0x843: 0x1417, 0x844: 0x1623, 0x845: 0x0ce3,
- 0x846: 0x14a3, 0x847: 0x0833, 0x848: 0x0d2f, 0x849: 0x0d3b, 0x84a: 0x0e0f, 0x84b: 0x0e47,
- 0x84c: 0x0f4b, 0x84d: 0x0fa7, 0x84e: 0x1027, 0x84f: 0x110b, 0x850: 0x153b, 0x851: 0x07af,
- 0x852: 0x0c03, 0x853: 0x14b3, 0x854: 0x0767, 0x855: 0x0aab, 0x856: 0x0e2f, 0x857: 0x13df,
- 0x858: 0x0b67, 0x859: 0x0bb7, 0x85a: 0x0d43, 0x85b: 0x0f2f, 0x85c: 0x14bb, 0x85d: 0x0817,
- 0x85e: 0x08ff, 0x85f: 0x0a97, 0x860: 0x0cd3, 0x861: 0x0d1f, 0x862: 0x0d5f, 0x863: 0x0df3,
- 0x864: 0x0f47, 0x865: 0x0fbb, 0x866: 0x1157, 0x867: 0x12f7, 0x868: 0x1303, 0x869: 0x1457,
- 0x86a: 0x14d7, 0x86b: 0x0883, 0x86c: 0x0e4b, 0x86d: 0x0903, 0x86e: 0x0ec7, 0x86f: 0x0f6b,
- 0x870: 0x1287, 0x871: 0x14bf, 0x872: 0x15ab, 0x873: 0x15d3, 0x874: 0x0d37, 0x875: 0x0e27,
- 0x876: 0x11c3, 0x877: 0x10b7, 0x878: 0x10c3, 0x879: 0x10e7, 0x87a: 0x0f17, 0x87b: 0x0e9f,
- 0x87c: 0x1363, 0x87d: 0x0733, 0x87e: 0x122b, 0x87f: 0x081b,
- // Block 0x22, offset 0x880
- 0x880: 0x080b, 0x881: 0x0b0b, 0x882: 0x0c2b, 0x883: 0x10f3, 0x884: 0x0a53, 0x885: 0x0e03,
- 0x886: 0x0cef, 0x887: 0x13e7, 0x888: 0x12e7, 0x889: 0x14ab, 0x88a: 0x1323, 0x88b: 0x0b27,
- 0x88c: 0x0787, 0x88d: 0x095b, 0x890: 0x09af,
- 0x892: 0x0cdf, 0x895: 0x07f7, 0x896: 0x0f1f, 0x897: 0x0fe3,
- 0x898: 0x1047, 0x899: 0x1063, 0x89a: 0x1067, 0x89b: 0x107b, 0x89c: 0x14fb, 0x89d: 0x10eb,
- 0x89e: 0x116f, 0x8a0: 0x128f, 0x8a2: 0x1353,
- 0x8a5: 0x1407, 0x8a6: 0x1433,
- 0x8aa: 0x154f, 0x8ab: 0x1553, 0x8ac: 0x1557, 0x8ad: 0x15bb, 0x8ae: 0x142b, 0x8af: 0x14c7,
- 0x8b0: 0x0757, 0x8b1: 0x077b, 0x8b2: 0x078f, 0x8b3: 0x084b, 0x8b4: 0x0857, 0x8b5: 0x0897,
- 0x8b6: 0x094b, 0x8b7: 0x0967, 0x8b8: 0x096f, 0x8b9: 0x09ab, 0x8ba: 0x09b7, 0x8bb: 0x0a93,
- 0x8bc: 0x0a9b, 0x8bd: 0x0ba3, 0x8be: 0x0bcb, 0x8bf: 0x0bd3,
- // Block 0x23, offset 0x8c0
- 0x8c0: 0x0beb, 0x8c1: 0x0c97, 0x8c2: 0x0cc7, 0x8c3: 0x0ce7, 0x8c4: 0x0d57, 0x8c5: 0x0e1b,
- 0x8c6: 0x0e37, 0x8c7: 0x0e67, 0x8c8: 0x0ebb, 0x8c9: 0x0edb, 0x8ca: 0x0f4f, 0x8cb: 0x102f,
- 0x8cc: 0x104b, 0x8cd: 0x1053, 0x8ce: 0x104f, 0x8cf: 0x1057, 0x8d0: 0x105b, 0x8d1: 0x105f,
- 0x8d2: 0x1073, 0x8d3: 0x1077, 0x8d4: 0x109b, 0x8d5: 0x10af, 0x8d6: 0x10cb, 0x8d7: 0x112f,
- 0x8d8: 0x1137, 0x8d9: 0x113f, 0x8da: 0x1153, 0x8db: 0x117b, 0x8dc: 0x11cb, 0x8dd: 0x11ff,
- 0x8de: 0x11ff, 0x8df: 0x1267, 0x8e0: 0x130f, 0x8e1: 0x1327, 0x8e2: 0x135b, 0x8e3: 0x135f,
- 0x8e4: 0x13a3, 0x8e5: 0x13a7, 0x8e6: 0x13ff, 0x8e7: 0x1407, 0x8e8: 0x14db, 0x8e9: 0x151f,
- 0x8ea: 0x1537, 0x8eb: 0x0b9b, 0x8ec: 0x171e, 0x8ed: 0x11e3,
- 0x8f0: 0x06df, 0x8f1: 0x07e3, 0x8f2: 0x07a3, 0x8f3: 0x074b, 0x8f4: 0x078b, 0x8f5: 0x07b7,
- 0x8f6: 0x0847, 0x8f7: 0x0863, 0x8f8: 0x094b, 0x8f9: 0x0937, 0x8fa: 0x0947, 0x8fb: 0x0963,
- 0x8fc: 0x09af, 0x8fd: 0x09bf, 0x8fe: 0x0a03, 0x8ff: 0x0a0f,
- // Block 0x24, offset 0x900
- 0x900: 0x0a2b, 0x901: 0x0a3b, 0x902: 0x0b23, 0x903: 0x0b2b, 0x904: 0x0b5b, 0x905: 0x0b7b,
- 0x906: 0x0bab, 0x907: 0x0bc3, 0x908: 0x0bb3, 0x909: 0x0bd3, 0x90a: 0x0bc7, 0x90b: 0x0beb,
- 0x90c: 0x0c07, 0x90d: 0x0c5f, 0x90e: 0x0c6b, 0x90f: 0x0c73, 0x910: 0x0c9b, 0x911: 0x0cdf,
- 0x912: 0x0d0f, 0x913: 0x0d13, 0x914: 0x0d27, 0x915: 0x0da7, 0x916: 0x0db7, 0x917: 0x0e0f,
- 0x918: 0x0e5b, 0x919: 0x0e53, 0x91a: 0x0e67, 0x91b: 0x0e83, 0x91c: 0x0ebb, 0x91d: 0x1013,
- 0x91e: 0x0edf, 0x91f: 0x0f13, 0x920: 0x0f1f, 0x921: 0x0f5f, 0x922: 0x0f7b, 0x923: 0x0f9f,
- 0x924: 0x0fc3, 0x925: 0x0fc7, 0x926: 0x0fe3, 0x927: 0x0fe7, 0x928: 0x0ff7, 0x929: 0x100b,
- 0x92a: 0x1007, 0x92b: 0x1037, 0x92c: 0x10b3, 0x92d: 0x10cb, 0x92e: 0x10e3, 0x92f: 0x111b,
- 0x930: 0x112f, 0x931: 0x114b, 0x932: 0x117b, 0x933: 0x122f, 0x934: 0x1257, 0x935: 0x12cb,
- 0x936: 0x1313, 0x937: 0x131f, 0x938: 0x1327, 0x939: 0x133f, 0x93a: 0x1353, 0x93b: 0x1343,
- 0x93c: 0x135b, 0x93d: 0x1357, 0x93e: 0x134f, 0x93f: 0x135f,
- // Block 0x25, offset 0x940
- 0x940: 0x136b, 0x941: 0x13a7, 0x942: 0x13e3, 0x943: 0x1413, 0x944: 0x144b, 0x945: 0x146b,
- 0x946: 0x14b7, 0x947: 0x14db, 0x948: 0x14fb, 0x949: 0x150f, 0x94a: 0x151f, 0x94b: 0x152b,
- 0x94c: 0x1537, 0x94d: 0x158b, 0x94e: 0x162b, 0x94f: 0x16b5, 0x950: 0x16b0, 0x951: 0x16e2,
- 0x952: 0x0607, 0x953: 0x062f, 0x954: 0x0633, 0x955: 0x1764, 0x956: 0x1791, 0x957: 0x1809,
- 0x958: 0x1617, 0x959: 0x1627,
- // Block 0x26, offset 0x980
- 0x980: 0x06fb, 0x981: 0x06f3, 0x982: 0x0703, 0x983: 0x1647, 0x984: 0x0747, 0x985: 0x0757,
- 0x986: 0x075b, 0x987: 0x0763, 0x988: 0x076b, 0x989: 0x076f, 0x98a: 0x077b, 0x98b: 0x0773,
- 0x98c: 0x05b3, 0x98d: 0x165b, 0x98e: 0x078f, 0x98f: 0x0793, 0x990: 0x0797, 0x991: 0x07b3,
- 0x992: 0x164c, 0x993: 0x05b7, 0x994: 0x079f, 0x995: 0x07bf, 0x996: 0x1656, 0x997: 0x07cf,
- 0x998: 0x07d7, 0x999: 0x0737, 0x99a: 0x07df, 0x99b: 0x07e3, 0x99c: 0x1831, 0x99d: 0x07ff,
- 0x99e: 0x0807, 0x99f: 0x05bf, 0x9a0: 0x081f, 0x9a1: 0x0823, 0x9a2: 0x082b, 0x9a3: 0x082f,
- 0x9a4: 0x05c3, 0x9a5: 0x0847, 0x9a6: 0x084b, 0x9a7: 0x0857, 0x9a8: 0x0863, 0x9a9: 0x0867,
- 0x9aa: 0x086b, 0x9ab: 0x0873, 0x9ac: 0x0893, 0x9ad: 0x0897, 0x9ae: 0x089f, 0x9af: 0x08af,
- 0x9b0: 0x08b7, 0x9b1: 0x08bb, 0x9b2: 0x08bb, 0x9b3: 0x08bb, 0x9b4: 0x166a, 0x9b5: 0x0e93,
- 0x9b6: 0x08cf, 0x9b7: 0x08d7, 0x9b8: 0x166f, 0x9b9: 0x08e3, 0x9ba: 0x08eb, 0x9bb: 0x08f3,
- 0x9bc: 0x091b, 0x9bd: 0x0907, 0x9be: 0x0913, 0x9bf: 0x0917,
- // Block 0x27, offset 0x9c0
- 0x9c0: 0x091f, 0x9c1: 0x0927, 0x9c2: 0x092b, 0x9c3: 0x0933, 0x9c4: 0x093b, 0x9c5: 0x093f,
- 0x9c6: 0x093f, 0x9c7: 0x0947, 0x9c8: 0x094f, 0x9c9: 0x0953, 0x9ca: 0x095f, 0x9cb: 0x0983,
- 0x9cc: 0x0967, 0x9cd: 0x0987, 0x9ce: 0x096b, 0x9cf: 0x0973, 0x9d0: 0x080b, 0x9d1: 0x09cf,
- 0x9d2: 0x0997, 0x9d3: 0x099b, 0x9d4: 0x099f, 0x9d5: 0x0993, 0x9d6: 0x09a7, 0x9d7: 0x09a3,
- 0x9d8: 0x09bb, 0x9d9: 0x1674, 0x9da: 0x09d7, 0x9db: 0x09db, 0x9dc: 0x09e3, 0x9dd: 0x09ef,
- 0x9de: 0x09f7, 0x9df: 0x0a13, 0x9e0: 0x1679, 0x9e1: 0x167e, 0x9e2: 0x0a1f, 0x9e3: 0x0a23,
- 0x9e4: 0x0a27, 0x9e5: 0x0a1b, 0x9e6: 0x0a2f, 0x9e7: 0x05c7, 0x9e8: 0x05cb, 0x9e9: 0x0a37,
- 0x9ea: 0x0a3f, 0x9eb: 0x0a3f, 0x9ec: 0x1683, 0x9ed: 0x0a5b, 0x9ee: 0x0a5f, 0x9ef: 0x0a63,
- 0x9f0: 0x0a6b, 0x9f1: 0x1688, 0x9f2: 0x0a73, 0x9f3: 0x0a77, 0x9f4: 0x0b4f, 0x9f5: 0x0a7f,
- 0x9f6: 0x05cf, 0x9f7: 0x0a8b, 0x9f8: 0x0a9b, 0x9f9: 0x0aa7, 0x9fa: 0x0aa3, 0x9fb: 0x1692,
- 0x9fc: 0x0aaf, 0x9fd: 0x1697, 0x9fe: 0x0abb, 0x9ff: 0x0ab7,
- // Block 0x28, offset 0xa00
- 0xa00: 0x0abf, 0xa01: 0x0acf, 0xa02: 0x0ad3, 0xa03: 0x05d3, 0xa04: 0x0ae3, 0xa05: 0x0aeb,
- 0xa06: 0x0aef, 0xa07: 0x0af3, 0xa08: 0x05d7, 0xa09: 0x169c, 0xa0a: 0x05db, 0xa0b: 0x0b0f,
- 0xa0c: 0x0b13, 0xa0d: 0x0b17, 0xa0e: 0x0b1f, 0xa0f: 0x1863, 0xa10: 0x0b37, 0xa11: 0x16a6,
- 0xa12: 0x16a6, 0xa13: 0x11d7, 0xa14: 0x0b47, 0xa15: 0x0b47, 0xa16: 0x05df, 0xa17: 0x16c9,
- 0xa18: 0x179b, 0xa19: 0x0b57, 0xa1a: 0x0b5f, 0xa1b: 0x05e3, 0xa1c: 0x0b73, 0xa1d: 0x0b83,
- 0xa1e: 0x0b87, 0xa1f: 0x0b8f, 0xa20: 0x0b9f, 0xa21: 0x05eb, 0xa22: 0x05e7, 0xa23: 0x0ba3,
- 0xa24: 0x16ab, 0xa25: 0x0ba7, 0xa26: 0x0bbb, 0xa27: 0x0bbf, 0xa28: 0x0bc3, 0xa29: 0x0bbf,
- 0xa2a: 0x0bcf, 0xa2b: 0x0bd3, 0xa2c: 0x0be3, 0xa2d: 0x0bdb, 0xa2e: 0x0bdf, 0xa2f: 0x0be7,
- 0xa30: 0x0beb, 0xa31: 0x0bef, 0xa32: 0x0bfb, 0xa33: 0x0bff, 0xa34: 0x0c17, 0xa35: 0x0c1f,
- 0xa36: 0x0c2f, 0xa37: 0x0c43, 0xa38: 0x16ba, 0xa39: 0x0c3f, 0xa3a: 0x0c33, 0xa3b: 0x0c4b,
- 0xa3c: 0x0c53, 0xa3d: 0x0c67, 0xa3e: 0x16bf, 0xa3f: 0x0c6f,
- // Block 0x29, offset 0xa40
- 0xa40: 0x0c63, 0xa41: 0x0c5b, 0xa42: 0x05ef, 0xa43: 0x0c77, 0xa44: 0x0c7f, 0xa45: 0x0c87,
- 0xa46: 0x0c7b, 0xa47: 0x05f3, 0xa48: 0x0c97, 0xa49: 0x0c9f, 0xa4a: 0x16c4, 0xa4b: 0x0ccb,
- 0xa4c: 0x0cff, 0xa4d: 0x0cdb, 0xa4e: 0x05ff, 0xa4f: 0x0ce7, 0xa50: 0x05fb, 0xa51: 0x05f7,
- 0xa52: 0x07c3, 0xa53: 0x07c7, 0xa54: 0x0d03, 0xa55: 0x0ceb, 0xa56: 0x11ab, 0xa57: 0x0663,
- 0xa58: 0x0d0f, 0xa59: 0x0d13, 0xa5a: 0x0d17, 0xa5b: 0x0d2b, 0xa5c: 0x0d23, 0xa5d: 0x16dd,
- 0xa5e: 0x0603, 0xa5f: 0x0d3f, 0xa60: 0x0d33, 0xa61: 0x0d4f, 0xa62: 0x0d57, 0xa63: 0x16e7,
- 0xa64: 0x0d5b, 0xa65: 0x0d47, 0xa66: 0x0d63, 0xa67: 0x0607, 0xa68: 0x0d67, 0xa69: 0x0d6b,
- 0xa6a: 0x0d6f, 0xa6b: 0x0d7b, 0xa6c: 0x16ec, 0xa6d: 0x0d83, 0xa6e: 0x060b, 0xa6f: 0x0d8f,
- 0xa70: 0x16f1, 0xa71: 0x0d93, 0xa72: 0x060f, 0xa73: 0x0d9f, 0xa74: 0x0dab, 0xa75: 0x0db7,
- 0xa76: 0x0dbb, 0xa77: 0x16f6, 0xa78: 0x168d, 0xa79: 0x16fb, 0xa7a: 0x0ddb, 0xa7b: 0x1700,
- 0xa7c: 0x0de7, 0xa7d: 0x0def, 0xa7e: 0x0ddf, 0xa7f: 0x0dfb,
- // Block 0x2a, offset 0xa80
- 0xa80: 0x0e0b, 0xa81: 0x0e1b, 0xa82: 0x0e0f, 0xa83: 0x0e13, 0xa84: 0x0e1f, 0xa85: 0x0e23,
- 0xa86: 0x1705, 0xa87: 0x0e07, 0xa88: 0x0e3b, 0xa89: 0x0e3f, 0xa8a: 0x0613, 0xa8b: 0x0e53,
- 0xa8c: 0x0e4f, 0xa8d: 0x170a, 0xa8e: 0x0e33, 0xa8f: 0x0e6f, 0xa90: 0x170f, 0xa91: 0x1714,
- 0xa92: 0x0e73, 0xa93: 0x0e87, 0xa94: 0x0e83, 0xa95: 0x0e7f, 0xa96: 0x0617, 0xa97: 0x0e8b,
- 0xa98: 0x0e9b, 0xa99: 0x0e97, 0xa9a: 0x0ea3, 0xa9b: 0x1651, 0xa9c: 0x0eb3, 0xa9d: 0x1719,
- 0xa9e: 0x0ebf, 0xa9f: 0x1723, 0xaa0: 0x0ed3, 0xaa1: 0x0edf, 0xaa2: 0x0ef3, 0xaa3: 0x1728,
- 0xaa4: 0x0f07, 0xaa5: 0x0f0b, 0xaa6: 0x172d, 0xaa7: 0x1732, 0xaa8: 0x0f27, 0xaa9: 0x0f37,
- 0xaaa: 0x061b, 0xaab: 0x0f3b, 0xaac: 0x061f, 0xaad: 0x061f, 0xaae: 0x0f53, 0xaaf: 0x0f57,
- 0xab0: 0x0f5f, 0xab1: 0x0f63, 0xab2: 0x0f6f, 0xab3: 0x0623, 0xab4: 0x0f87, 0xab5: 0x1737,
- 0xab6: 0x0fa3, 0xab7: 0x173c, 0xab8: 0x0faf, 0xab9: 0x16a1, 0xaba: 0x0fbf, 0xabb: 0x1741,
- 0xabc: 0x1746, 0xabd: 0x174b, 0xabe: 0x0627, 0xabf: 0x062b,
- // Block 0x2b, offset 0xac0
- 0xac0: 0x0ff7, 0xac1: 0x1755, 0xac2: 0x1750, 0xac3: 0x175a, 0xac4: 0x175f, 0xac5: 0x0fff,
- 0xac6: 0x1003, 0xac7: 0x1003, 0xac8: 0x100b, 0xac9: 0x0633, 0xaca: 0x100f, 0xacb: 0x0637,
- 0xacc: 0x063b, 0xacd: 0x1769, 0xace: 0x1023, 0xacf: 0x102b, 0xad0: 0x1037, 0xad1: 0x063f,
- 0xad2: 0x176e, 0xad3: 0x105b, 0xad4: 0x1773, 0xad5: 0x1778, 0xad6: 0x107b, 0xad7: 0x1093,
- 0xad8: 0x0643, 0xad9: 0x109b, 0xada: 0x109f, 0xadb: 0x10a3, 0xadc: 0x177d, 0xadd: 0x1782,
- 0xade: 0x1782, 0xadf: 0x10bb, 0xae0: 0x0647, 0xae1: 0x1787, 0xae2: 0x10cf, 0xae3: 0x10d3,
- 0xae4: 0x064b, 0xae5: 0x178c, 0xae6: 0x10ef, 0xae7: 0x064f, 0xae8: 0x10ff, 0xae9: 0x10f7,
- 0xaea: 0x1107, 0xaeb: 0x1796, 0xaec: 0x111f, 0xaed: 0x0653, 0xaee: 0x112b, 0xaef: 0x1133,
- 0xaf0: 0x1143, 0xaf1: 0x0657, 0xaf2: 0x17a0, 0xaf3: 0x17a5, 0xaf4: 0x065b, 0xaf5: 0x17aa,
- 0xaf6: 0x115b, 0xaf7: 0x17af, 0xaf8: 0x1167, 0xaf9: 0x1173, 0xafa: 0x117b, 0xafb: 0x17b4,
- 0xafc: 0x17b9, 0xafd: 0x118f, 0xafe: 0x17be, 0xaff: 0x1197,
- // Block 0x2c, offset 0xb00
- 0xb00: 0x16ce, 0xb01: 0x065f, 0xb02: 0x11af, 0xb03: 0x11b3, 0xb04: 0x0667, 0xb05: 0x11b7,
- 0xb06: 0x0a33, 0xb07: 0x17c3, 0xb08: 0x17c8, 0xb09: 0x16d3, 0xb0a: 0x16d8, 0xb0b: 0x11d7,
- 0xb0c: 0x11db, 0xb0d: 0x13f3, 0xb0e: 0x066b, 0xb0f: 0x1207, 0xb10: 0x1203, 0xb11: 0x120b,
- 0xb12: 0x083f, 0xb13: 0x120f, 0xb14: 0x1213, 0xb15: 0x1217, 0xb16: 0x121f, 0xb17: 0x17cd,
- 0xb18: 0x121b, 0xb19: 0x1223, 0xb1a: 0x1237, 0xb1b: 0x123b, 0xb1c: 0x1227, 0xb1d: 0x123f,
- 0xb1e: 0x1253, 0xb1f: 0x1267, 0xb20: 0x1233, 0xb21: 0x1247, 0xb22: 0x124b, 0xb23: 0x124f,
- 0xb24: 0x17d2, 0xb25: 0x17dc, 0xb26: 0x17d7, 0xb27: 0x066f, 0xb28: 0x126f, 0xb29: 0x1273,
- 0xb2a: 0x127b, 0xb2b: 0x17f0, 0xb2c: 0x127f, 0xb2d: 0x17e1, 0xb2e: 0x0673, 0xb2f: 0x0677,
- 0xb30: 0x17e6, 0xb31: 0x17eb, 0xb32: 0x067b, 0xb33: 0x129f, 0xb34: 0x12a3, 0xb35: 0x12a7,
- 0xb36: 0x12ab, 0xb37: 0x12b7, 0xb38: 0x12b3, 0xb39: 0x12bf, 0xb3a: 0x12bb, 0xb3b: 0x12cb,
- 0xb3c: 0x12c3, 0xb3d: 0x12c7, 0xb3e: 0x12cf, 0xb3f: 0x067f,
- // Block 0x2d, offset 0xb40
- 0xb40: 0x12d7, 0xb41: 0x12db, 0xb42: 0x0683, 0xb43: 0x12eb, 0xb44: 0x12ef, 0xb45: 0x17f5,
- 0xb46: 0x12fb, 0xb47: 0x12ff, 0xb48: 0x0687, 0xb49: 0x130b, 0xb4a: 0x05bb, 0xb4b: 0x17fa,
- 0xb4c: 0x17ff, 0xb4d: 0x068b, 0xb4e: 0x068f, 0xb4f: 0x1337, 0xb50: 0x134f, 0xb51: 0x136b,
- 0xb52: 0x137b, 0xb53: 0x1804, 0xb54: 0x138f, 0xb55: 0x1393, 0xb56: 0x13ab, 0xb57: 0x13b7,
- 0xb58: 0x180e, 0xb59: 0x1660, 0xb5a: 0x13c3, 0xb5b: 0x13bf, 0xb5c: 0x13cb, 0xb5d: 0x1665,
- 0xb5e: 0x13d7, 0xb5f: 0x13e3, 0xb60: 0x1813, 0xb61: 0x1818, 0xb62: 0x1423, 0xb63: 0x142f,
- 0xb64: 0x1437, 0xb65: 0x181d, 0xb66: 0x143b, 0xb67: 0x1467, 0xb68: 0x1473, 0xb69: 0x1477,
- 0xb6a: 0x146f, 0xb6b: 0x1483, 0xb6c: 0x1487, 0xb6d: 0x1822, 0xb6e: 0x1493, 0xb6f: 0x0693,
- 0xb70: 0x149b, 0xb71: 0x1827, 0xb72: 0x0697, 0xb73: 0x14d3, 0xb74: 0x0ac3, 0xb75: 0x14eb,
- 0xb76: 0x182c, 0xb77: 0x1836, 0xb78: 0x069b, 0xb79: 0x069f, 0xb7a: 0x1513, 0xb7b: 0x183b,
- 0xb7c: 0x06a3, 0xb7d: 0x1840, 0xb7e: 0x152b, 0xb7f: 0x152b,
- // Block 0x2e, offset 0xb80
- 0xb80: 0x1533, 0xb81: 0x1845, 0xb82: 0x154b, 0xb83: 0x06a7, 0xb84: 0x155b, 0xb85: 0x1567,
- 0xb86: 0x156f, 0xb87: 0x1577, 0xb88: 0x06ab, 0xb89: 0x184a, 0xb8a: 0x158b, 0xb8b: 0x15a7,
- 0xb8c: 0x15b3, 0xb8d: 0x06af, 0xb8e: 0x06b3, 0xb8f: 0x15b7, 0xb90: 0x184f, 0xb91: 0x06b7,
- 0xb92: 0x1854, 0xb93: 0x1859, 0xb94: 0x185e, 0xb95: 0x15db, 0xb96: 0x06bb, 0xb97: 0x15ef,
- 0xb98: 0x15f7, 0xb99: 0x15fb, 0xb9a: 0x1603, 0xb9b: 0x160b, 0xb9c: 0x1613, 0xb9d: 0x1868,
-}
-
-// nfcIndex: 22 blocks, 1408 entries, 1408 bytes
-// Block 0 is the zero block.
-var nfcIndex = [1408]uint8{
- // Block 0x0, offset 0x0
- // Block 0x1, offset 0x40
- // Block 0x2, offset 0x80
- // Block 0x3, offset 0xc0
- 0xc2: 0x2d, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x2e, 0xc7: 0x04,
- 0xc8: 0x05, 0xca: 0x2f, 0xcb: 0x30, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x31,
- 0xd0: 0x09, 0xd1: 0x32, 0xd2: 0x33, 0xd3: 0x0a, 0xd6: 0x0b, 0xd7: 0x34,
- 0xd8: 0x35, 0xd9: 0x0c, 0xdb: 0x36, 0xdc: 0x37, 0xdd: 0x38, 0xdf: 0x39,
- 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05,
- 0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a,
- 0xf0: 0x13,
- // Block 0x4, offset 0x100
- 0x120: 0x3a, 0x121: 0x3b, 0x123: 0x3c, 0x124: 0x3d, 0x125: 0x3e, 0x126: 0x3f, 0x127: 0x40,
- 0x128: 0x41, 0x129: 0x42, 0x12a: 0x43, 0x12b: 0x44, 0x12c: 0x3f, 0x12d: 0x45, 0x12e: 0x46, 0x12f: 0x47,
- 0x131: 0x48, 0x132: 0x49, 0x133: 0x4a, 0x134: 0x4b, 0x135: 0x4c, 0x137: 0x4d,
- 0x138: 0x4e, 0x139: 0x4f, 0x13a: 0x50, 0x13b: 0x51, 0x13c: 0x52, 0x13d: 0x53, 0x13e: 0x54, 0x13f: 0x55,
- // Block 0x5, offset 0x140
- 0x140: 0x56, 0x142: 0x57, 0x144: 0x58, 0x145: 0x59, 0x146: 0x5a, 0x147: 0x5b,
- 0x14d: 0x5c,
- 0x15c: 0x5d, 0x15f: 0x5e,
- 0x162: 0x5f, 0x164: 0x60,
- 0x168: 0x61, 0x169: 0x62, 0x16a: 0x63, 0x16c: 0x0d, 0x16d: 0x64, 0x16e: 0x65, 0x16f: 0x66,
- 0x170: 0x67, 0x173: 0x68, 0x177: 0x0e,
- 0x178: 0x0f, 0x179: 0x10, 0x17a: 0x11, 0x17b: 0x12, 0x17c: 0x13, 0x17d: 0x14, 0x17e: 0x15, 0x17f: 0x16,
- // Block 0x6, offset 0x180
- 0x180: 0x69, 0x183: 0x6a, 0x184: 0x6b, 0x186: 0x6c, 0x187: 0x6d,
- 0x188: 0x6e, 0x189: 0x17, 0x18a: 0x18, 0x18b: 0x6f, 0x18c: 0x70,
- 0x1ab: 0x71,
- 0x1b3: 0x72, 0x1b5: 0x73, 0x1b7: 0x74,
- // Block 0x7, offset 0x1c0
- 0x1c0: 0x75, 0x1c1: 0x19, 0x1c2: 0x1a, 0x1c3: 0x1b, 0x1c4: 0x76, 0x1c5: 0x77,
- 0x1c9: 0x78, 0x1cc: 0x79, 0x1cd: 0x7a,
- // Block 0x8, offset 0x200
- 0x219: 0x7b, 0x21a: 0x7c, 0x21b: 0x7d,
- 0x220: 0x7e, 0x223: 0x7f, 0x224: 0x80, 0x225: 0x81, 0x226: 0x82, 0x227: 0x83,
- 0x22a: 0x84, 0x22b: 0x85, 0x22f: 0x86,
- 0x230: 0x87, 0x231: 0x88, 0x232: 0x89, 0x233: 0x8a, 0x234: 0x8b, 0x235: 0x8c, 0x236: 0x8d, 0x237: 0x87,
- 0x238: 0x88, 0x239: 0x89, 0x23a: 0x8a, 0x23b: 0x8b, 0x23c: 0x8c, 0x23d: 0x8d, 0x23e: 0x87, 0x23f: 0x88,
- // Block 0x9, offset 0x240
- 0x240: 0x89, 0x241: 0x8a, 0x242: 0x8b, 0x243: 0x8c, 0x244: 0x8d, 0x245: 0x87, 0x246: 0x88, 0x247: 0x89,
- 0x248: 0x8a, 0x249: 0x8b, 0x24a: 0x8c, 0x24b: 0x8d, 0x24c: 0x87, 0x24d: 0x88, 0x24e: 0x89, 0x24f: 0x8a,
- 0x250: 0x8b, 0x251: 0x8c, 0x252: 0x8d, 0x253: 0x87, 0x254: 0x88, 0x255: 0x89, 0x256: 0x8a, 0x257: 0x8b,
- 0x258: 0x8c, 0x259: 0x8d, 0x25a: 0x87, 0x25b: 0x88, 0x25c: 0x89, 0x25d: 0x8a, 0x25e: 0x8b, 0x25f: 0x8c,
- 0x260: 0x8d, 0x261: 0x87, 0x262: 0x88, 0x263: 0x89, 0x264: 0x8a, 0x265: 0x8b, 0x266: 0x8c, 0x267: 0x8d,
- 0x268: 0x87, 0x269: 0x88, 0x26a: 0x89, 0x26b: 0x8a, 0x26c: 0x8b, 0x26d: 0x8c, 0x26e: 0x8d, 0x26f: 0x87,
- 0x270: 0x88, 0x271: 0x89, 0x272: 0x8a, 0x273: 0x8b, 0x274: 0x8c, 0x275: 0x8d, 0x276: 0x87, 0x277: 0x88,
- 0x278: 0x89, 0x279: 0x8a, 0x27a: 0x8b, 0x27b: 0x8c, 0x27c: 0x8d, 0x27d: 0x87, 0x27e: 0x88, 0x27f: 0x89,
- // Block 0xa, offset 0x280
- 0x280: 0x8a, 0x281: 0x8b, 0x282: 0x8c, 0x283: 0x8d, 0x284: 0x87, 0x285: 0x88, 0x286: 0x89, 0x287: 0x8a,
- 0x288: 0x8b, 0x289: 0x8c, 0x28a: 0x8d, 0x28b: 0x87, 0x28c: 0x88, 0x28d: 0x89, 0x28e: 0x8a, 0x28f: 0x8b,
- 0x290: 0x8c, 0x291: 0x8d, 0x292: 0x87, 0x293: 0x88, 0x294: 0x89, 0x295: 0x8a, 0x296: 0x8b, 0x297: 0x8c,
- 0x298: 0x8d, 0x299: 0x87, 0x29a: 0x88, 0x29b: 0x89, 0x29c: 0x8a, 0x29d: 0x8b, 0x29e: 0x8c, 0x29f: 0x8d,
- 0x2a0: 0x87, 0x2a1: 0x88, 0x2a2: 0x89, 0x2a3: 0x8a, 0x2a4: 0x8b, 0x2a5: 0x8c, 0x2a6: 0x8d, 0x2a7: 0x87,
- 0x2a8: 0x88, 0x2a9: 0x89, 0x2aa: 0x8a, 0x2ab: 0x8b, 0x2ac: 0x8c, 0x2ad: 0x8d, 0x2ae: 0x87, 0x2af: 0x88,
- 0x2b0: 0x89, 0x2b1: 0x8a, 0x2b2: 0x8b, 0x2b3: 0x8c, 0x2b4: 0x8d, 0x2b5: 0x87, 0x2b6: 0x88, 0x2b7: 0x89,
- 0x2b8: 0x8a, 0x2b9: 0x8b, 0x2ba: 0x8c, 0x2bb: 0x8d, 0x2bc: 0x87, 0x2bd: 0x88, 0x2be: 0x89, 0x2bf: 0x8a,
- // Block 0xb, offset 0x2c0
- 0x2c0: 0x8b, 0x2c1: 0x8c, 0x2c2: 0x8d, 0x2c3: 0x87, 0x2c4: 0x88, 0x2c5: 0x89, 0x2c6: 0x8a, 0x2c7: 0x8b,
- 0x2c8: 0x8c, 0x2c9: 0x8d, 0x2ca: 0x87, 0x2cb: 0x88, 0x2cc: 0x89, 0x2cd: 0x8a, 0x2ce: 0x8b, 0x2cf: 0x8c,
- 0x2d0: 0x8d, 0x2d1: 0x87, 0x2d2: 0x88, 0x2d3: 0x89, 0x2d4: 0x8a, 0x2d5: 0x8b, 0x2d6: 0x8c, 0x2d7: 0x8d,
- 0x2d8: 0x87, 0x2d9: 0x88, 0x2da: 0x89, 0x2db: 0x8a, 0x2dc: 0x8b, 0x2dd: 0x8c, 0x2de: 0x8e,
- // Block 0xc, offset 0x300
- 0x324: 0x1c, 0x325: 0x1d, 0x326: 0x1e, 0x327: 0x1f,
- 0x328: 0x20, 0x329: 0x21, 0x32a: 0x22, 0x32b: 0x23, 0x32c: 0x8f, 0x32d: 0x90, 0x32e: 0x91,
- 0x331: 0x92, 0x332: 0x93, 0x333: 0x94, 0x334: 0x95,
- 0x338: 0x96, 0x339: 0x97, 0x33a: 0x98, 0x33b: 0x99, 0x33e: 0x9a, 0x33f: 0x9b,
- // Block 0xd, offset 0x340
- 0x347: 0x9c,
- 0x34b: 0x9d, 0x34d: 0x9e,
- 0x368: 0x9f, 0x36b: 0xa0,
- // Block 0xe, offset 0x380
- 0x381: 0xa1, 0x382: 0xa2, 0x384: 0xa3, 0x385: 0x82, 0x387: 0xa4,
- 0x388: 0xa5, 0x38b: 0xa6, 0x38c: 0x3f, 0x38d: 0xa7,
- 0x391: 0xa8, 0x392: 0xa9, 0x393: 0xaa, 0x396: 0xab, 0x397: 0xac,
- 0x398: 0x73, 0x39a: 0xad, 0x39c: 0xae,
- 0x3a8: 0xaf, 0x3a9: 0xb0, 0x3aa: 0xb1,
- 0x3b0: 0x73, 0x3b5: 0xb2,
- // Block 0xf, offset 0x3c0
- 0x3eb: 0xb3, 0x3ec: 0xb4,
- // Block 0x10, offset 0x400
- 0x432: 0xb5,
- // Block 0x11, offset 0x440
- 0x445: 0xb6, 0x446: 0xb7, 0x447: 0xb8,
- 0x449: 0xb9,
- // Block 0x12, offset 0x480
- 0x480: 0xba,
- 0x4a3: 0xbb, 0x4a5: 0xbc,
- // Block 0x13, offset 0x4c0
- 0x4c8: 0xbd,
- // Block 0x14, offset 0x500
- 0x520: 0x24, 0x521: 0x25, 0x522: 0x26, 0x523: 0x27, 0x524: 0x28, 0x525: 0x29, 0x526: 0x2a, 0x527: 0x2b,
- 0x528: 0x2c,
- // Block 0x15, offset 0x540
- 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d,
- 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,
- 0x56f: 0x12,
-}
-
-// nfcSparseOffset: 145 entries, 290 bytes
-var nfcSparseOffset = []uint16{0x0, 0x5, 0x9, 0xb, 0xd, 0x18, 0x28, 0x2a, 0x2f, 0x3a, 0x49, 0x56, 0x5e, 0x62, 0x67, 0x69, 0x7a, 0x82, 0x89, 0x8c, 0x93, 0x97, 0x9b, 0x9d, 0x9f, 0xa8, 0xac, 0xb3, 0xb8, 0xbb, 0xc5, 0xc8, 0xcf, 0xd7, 0xda, 0xdc, 0xde, 0xe0, 0xe5, 0xf6, 0x102, 0x104, 0x10a, 0x10c, 0x10e, 0x110, 0x112, 0x114, 0x116, 0x119, 0x11c, 0x11e, 0x121, 0x124, 0x128, 0x12d, 0x136, 0x138, 0x13b, 0x13d, 0x148, 0x14c, 0x15a, 0x15d, 0x163, 0x169, 0x174, 0x178, 0x17a, 0x17c, 0x17e, 0x180, 0x182, 0x188, 0x18c, 0x18e, 0x190, 0x198, 0x19c, 0x19f, 0x1a1, 0x1a3, 0x1a5, 0x1a8, 0x1aa, 0x1ac, 0x1ae, 0x1b0, 0x1b6, 0x1b9, 0x1bb, 0x1c2, 0x1c8, 0x1ce, 0x1d6, 0x1dc, 0x1e2, 0x1e8, 0x1ec, 0x1fa, 0x203, 0x206, 0x209, 0x20b, 0x20e, 0x210, 0x214, 0x219, 0x21b, 0x21d, 0x222, 0x228, 0x22a, 0x22c, 0x22e, 0x234, 0x237, 0x23a, 0x242, 0x249, 0x24c, 0x24f, 0x251, 0x259, 0x25c, 0x263, 0x266, 0x26c, 0x26e, 0x271, 0x273, 0x275, 0x277, 0x279, 0x27c, 0x27e, 0x280, 0x282, 0x28f, 0x299, 0x29b, 0x29d, 0x2a3, 0x2a5, 0x2a8}
-
-// nfcSparseValues: 682 entries, 2728 bytes
-var nfcSparseValues = [682]valueRange{
- // Block 0x0, offset 0x0
- {value: 0x0000, lo: 0x04},
- {value: 0xa100, lo: 0xa8, hi: 0xa8},
- {value: 0x8100, lo: 0xaf, hi: 0xaf},
- {value: 0x8100, lo: 0xb4, hi: 0xb4},
- {value: 0x8100, lo: 0xb8, hi: 0xb8},
- // Block 0x1, offset 0x5
- {value: 0x0091, lo: 0x03},
- {value: 0x46e2, lo: 0xa0, hi: 0xa1},
- {value: 0x4714, lo: 0xaf, hi: 0xb0},
- {value: 0xa000, lo: 0xb7, hi: 0xb7},
- // Block 0x2, offset 0x9
- {value: 0x0000, lo: 0x01},
- {value: 0xa000, lo: 0x92, hi: 0x92},
- // Block 0x3, offset 0xb
- {value: 0x0000, lo: 0x01},
- {value: 0x8100, lo: 0x98, hi: 0x9d},
- // Block 0x4, offset 0xd
- {value: 0x0006, lo: 0x0a},
- {value: 0xa000, lo: 0x81, hi: 0x81},
- {value: 0xa000, lo: 0x85, hi: 0x85},
- {value: 0xa000, lo: 0x89, hi: 0x89},
- {value: 0x4840, lo: 0x8a, hi: 0x8a},
- {value: 0x485e, lo: 0x8b, hi: 0x8b},
- {value: 0x36c7, lo: 0x8c, hi: 0x8c},
- {value: 0x36df, lo: 0x8d, hi: 0x8d},
- {value: 0x4876, lo: 0x8e, hi: 0x8e},
- {value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0x36fd, lo: 0x93, hi: 0x94},
- // Block 0x5, offset 0x18
- {value: 0x0000, lo: 0x0f},
- {value: 0xa000, lo: 0x83, hi: 0x83},
- {value: 0xa000, lo: 0x87, hi: 0x87},
- {value: 0xa000, lo: 0x8b, hi: 0x8b},
- {value: 0xa000, lo: 0x8d, hi: 0x8d},
- {value: 0x37a5, lo: 0x90, hi: 0x90},
- {value: 0x37b1, lo: 0x91, hi: 0x91},
- {value: 0x379f, lo: 0x93, hi: 0x93},
- {value: 0xa000, lo: 0x96, hi: 0x96},
- {value: 0x3817, lo: 0x97, hi: 0x97},
- {value: 0x37e1, lo: 0x9c, hi: 0x9c},
- {value: 0x37c9, lo: 0x9d, hi: 0x9d},
- {value: 0x37f3, lo: 0x9e, hi: 0x9e},
- {value: 0xa000, lo: 0xb4, hi: 0xb5},
- {value: 0x381d, lo: 0xb6, hi: 0xb6},
- {value: 0x3823, lo: 0xb7, hi: 0xb7},
- // Block 0x6, offset 0x28
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0x83, hi: 0x87},
- // Block 0x7, offset 0x2a
- {value: 0x0001, lo: 0x04},
- {value: 0x8113, lo: 0x81, hi: 0x82},
- {value: 0x8132, lo: 0x84, hi: 0x84},
- {value: 0x812d, lo: 0x85, hi: 0x85},
- {value: 0x810d, lo: 0x87, hi: 0x87},
- // Block 0x8, offset 0x2f
- {value: 0x0000, lo: 0x0a},
- {value: 0x8132, lo: 0x90, hi: 0x97},
- {value: 0x8119, lo: 0x98, hi: 0x98},
- {value: 0x811a, lo: 0x99, hi: 0x99},
- {value: 0x811b, lo: 0x9a, hi: 0x9a},
- {value: 0x3841, lo: 0xa2, hi: 0xa2},
- {value: 0x3847, lo: 0xa3, hi: 0xa3},
- {value: 0x3853, lo: 0xa4, hi: 0xa4},
- {value: 0x384d, lo: 0xa5, hi: 0xa5},
- {value: 0x3859, lo: 0xa6, hi: 0xa6},
- {value: 0xa000, lo: 0xa7, hi: 0xa7},
- // Block 0x9, offset 0x3a
- {value: 0x0000, lo: 0x0e},
- {value: 0x386b, lo: 0x80, hi: 0x80},
- {value: 0xa000, lo: 0x81, hi: 0x81},
- {value: 0x385f, lo: 0x82, hi: 0x82},
- {value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0x3865, lo: 0x93, hi: 0x93},
- {value: 0xa000, lo: 0x95, hi: 0x95},
- {value: 0x8132, lo: 0x96, hi: 0x9c},
- {value: 0x8132, lo: 0x9f, hi: 0xa2},
- {value: 0x812d, lo: 0xa3, hi: 0xa3},
- {value: 0x8132, lo: 0xa4, hi: 0xa4},
- {value: 0x8132, lo: 0xa7, hi: 0xa8},
- {value: 0x812d, lo: 0xaa, hi: 0xaa},
- {value: 0x8132, lo: 0xab, hi: 0xac},
- {value: 0x812d, lo: 0xad, hi: 0xad},
- // Block 0xa, offset 0x49
- {value: 0x0000, lo: 0x0c},
- {value: 0x811f, lo: 0x91, hi: 0x91},
- {value: 0x8132, lo: 0xb0, hi: 0xb0},
- {value: 0x812d, lo: 0xb1, hi: 0xb1},
- {value: 0x8132, lo: 0xb2, hi: 0xb3},
- {value: 0x812d, lo: 0xb4, hi: 0xb4},
- {value: 0x8132, lo: 0xb5, hi: 0xb6},
- {value: 0x812d, lo: 0xb7, hi: 0xb9},
- {value: 0x8132, lo: 0xba, hi: 0xba},
- {value: 0x812d, lo: 0xbb, hi: 0xbc},
- {value: 0x8132, lo: 0xbd, hi: 0xbd},
- {value: 0x812d, lo: 0xbe, hi: 0xbe},
- {value: 0x8132, lo: 0xbf, hi: 0xbf},
- // Block 0xb, offset 0x56
- {value: 0x0005, lo: 0x07},
- {value: 0x8132, lo: 0x80, hi: 0x80},
- {value: 0x8132, lo: 0x81, hi: 0x81},
- {value: 0x812d, lo: 0x82, hi: 0x83},
- {value: 0x812d, lo: 0x84, hi: 0x85},
- {value: 0x812d, lo: 0x86, hi: 0x87},
- {value: 0x812d, lo: 0x88, hi: 0x89},
- {value: 0x8132, lo: 0x8a, hi: 0x8a},
- // Block 0xc, offset 0x5e
- {value: 0x0000, lo: 0x03},
- {value: 0x8132, lo: 0xab, hi: 0xb1},
- {value: 0x812d, lo: 0xb2, hi: 0xb2},
- {value: 0x8132, lo: 0xb3, hi: 0xb3},
- // Block 0xd, offset 0x62
- {value: 0x0000, lo: 0x04},
- {value: 0x8132, lo: 0x96, hi: 0x99},
- {value: 0x8132, lo: 0x9b, hi: 0xa3},
- {value: 0x8132, lo: 0xa5, hi: 0xa7},
- {value: 0x8132, lo: 0xa9, hi: 0xad},
- // Block 0xe, offset 0x67
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0x99, hi: 0x9b},
- // Block 0xf, offset 0x69
- {value: 0x0000, lo: 0x10},
- {value: 0x8132, lo: 0x94, hi: 0xa1},
- {value: 0x812d, lo: 0xa3, hi: 0xa3},
- {value: 0x8132, lo: 0xa4, hi: 0xa5},
- {value: 0x812d, lo: 0xa6, hi: 0xa6},
- {value: 0x8132, lo: 0xa7, hi: 0xa8},
- {value: 0x812d, lo: 0xa9, hi: 0xa9},
- {value: 0x8132, lo: 0xaa, hi: 0xac},
- {value: 0x812d, lo: 0xad, hi: 0xaf},
- {value: 0x8116, lo: 0xb0, hi: 0xb0},
- {value: 0x8117, lo: 0xb1, hi: 0xb1},
- {value: 0x8118, lo: 0xb2, hi: 0xb2},
- {value: 0x8132, lo: 0xb3, hi: 0xb5},
- {value: 0x812d, lo: 0xb6, hi: 0xb6},
- {value: 0x8132, lo: 0xb7, hi: 0xb8},
- {value: 0x812d, lo: 0xb9, hi: 0xba},
- {value: 0x8132, lo: 0xbb, hi: 0xbf},
- // Block 0x10, offset 0x7a
- {value: 0x0000, lo: 0x07},
- {value: 0xa000, lo: 0xa8, hi: 0xa8},
- {value: 0x3ed8, lo: 0xa9, hi: 0xa9},
- {value: 0xa000, lo: 0xb0, hi: 0xb0},
- {value: 0x3ee0, lo: 0xb1, hi: 0xb1},
- {value: 0xa000, lo: 0xb3, hi: 0xb3},
- {value: 0x3ee8, lo: 0xb4, hi: 0xb4},
- {value: 0x9902, lo: 0xbc, hi: 0xbc},
- // Block 0x11, offset 0x82
- {value: 0x0008, lo: 0x06},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x8132, lo: 0x91, hi: 0x91},
- {value: 0x812d, lo: 0x92, hi: 0x92},
- {value: 0x8132, lo: 0x93, hi: 0x93},
- {value: 0x8132, lo: 0x94, hi: 0x94},
- {value: 0x451c, lo: 0x98, hi: 0x9f},
- // Block 0x12, offset 0x89
- {value: 0x0000, lo: 0x02},
- {value: 0x8102, lo: 0xbc, hi: 0xbc},
- {value: 0x9900, lo: 0xbe, hi: 0xbe},
- // Block 0x13, offset 0x8c
- {value: 0x0008, lo: 0x06},
- {value: 0xa000, lo: 0x87, hi: 0x87},
- {value: 0x2c9e, lo: 0x8b, hi: 0x8c},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x9900, lo: 0x97, hi: 0x97},
- {value: 0x455c, lo: 0x9c, hi: 0x9d},
- {value: 0x456c, lo: 0x9f, hi: 0x9f},
- // Block 0x14, offset 0x93
- {value: 0x0000, lo: 0x03},
- {value: 0x4594, lo: 0xb3, hi: 0xb3},
- {value: 0x459c, lo: 0xb6, hi: 0xb6},
- {value: 0x8102, lo: 0xbc, hi: 0xbc},
- // Block 0x15, offset 0x97
- {value: 0x0008, lo: 0x03},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x4574, lo: 0x99, hi: 0x9b},
- {value: 0x458c, lo: 0x9e, hi: 0x9e},
- // Block 0x16, offset 0x9b
- {value: 0x0000, lo: 0x01},
- {value: 0x8102, lo: 0xbc, hi: 0xbc},
- // Block 0x17, offset 0x9d
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- // Block 0x18, offset 0x9f
- {value: 0x0000, lo: 0x08},
- {value: 0xa000, lo: 0x87, hi: 0x87},
- {value: 0x2cb6, lo: 0x88, hi: 0x88},
- {value: 0x2cae, lo: 0x8b, hi: 0x8b},
- {value: 0x2cbe, lo: 0x8c, hi: 0x8c},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x9900, lo: 0x96, hi: 0x97},
- {value: 0x45a4, lo: 0x9c, hi: 0x9c},
- {value: 0x45ac, lo: 0x9d, hi: 0x9d},
- // Block 0x19, offset 0xa8
- {value: 0x0000, lo: 0x03},
- {value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0x2cc6, lo: 0x94, hi: 0x94},
- {value: 0x9900, lo: 0xbe, hi: 0xbe},
- // Block 0x1a, offset 0xac
- {value: 0x0000, lo: 0x06},
- {value: 0xa000, lo: 0x86, hi: 0x87},
- {value: 0x2cce, lo: 0x8a, hi: 0x8a},
- {value: 0x2cde, lo: 0x8b, hi: 0x8b},
- {value: 0x2cd6, lo: 0x8c, hi: 0x8c},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x9900, lo: 0x97, hi: 0x97},
- // Block 0x1b, offset 0xb3
- {value: 0x1801, lo: 0x04},
- {value: 0xa000, lo: 0x86, hi: 0x86},
- {value: 0x3ef0, lo: 0x88, hi: 0x88},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x8120, lo: 0x95, hi: 0x96},
- // Block 0x1c, offset 0xb8
- {value: 0x0000, lo: 0x02},
- {value: 0x8102, lo: 0xbc, hi: 0xbc},
- {value: 0xa000, lo: 0xbf, hi: 0xbf},
- // Block 0x1d, offset 0xbb
- {value: 0x0000, lo: 0x09},
- {value: 0x2ce6, lo: 0x80, hi: 0x80},
- {value: 0x9900, lo: 0x82, hi: 0x82},
- {value: 0xa000, lo: 0x86, hi: 0x86},
- {value: 0x2cee, lo: 0x87, hi: 0x87},
- {value: 0x2cf6, lo: 0x88, hi: 0x88},
- {value: 0x2f50, lo: 0x8a, hi: 0x8a},
- {value: 0x2dd8, lo: 0x8b, hi: 0x8b},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x9900, lo: 0x95, hi: 0x96},
- // Block 0x1e, offset 0xc5
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0xbb, hi: 0xbc},
- {value: 0x9900, lo: 0xbe, hi: 0xbe},
- // Block 0x1f, offset 0xc8
- {value: 0x0000, lo: 0x06},
- {value: 0xa000, lo: 0x86, hi: 0x87},
- {value: 0x2cfe, lo: 0x8a, hi: 0x8a},
- {value: 0x2d0e, lo: 0x8b, hi: 0x8b},
- {value: 0x2d06, lo: 0x8c, hi: 0x8c},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x9900, lo: 0x97, hi: 0x97},
- // Block 0x20, offset 0xcf
- {value: 0x6bea, lo: 0x07},
- {value: 0x9904, lo: 0x8a, hi: 0x8a},
- {value: 0x9900, lo: 0x8f, hi: 0x8f},
- {value: 0xa000, lo: 0x99, hi: 0x99},
- {value: 0x3ef8, lo: 0x9a, hi: 0x9a},
- {value: 0x2f58, lo: 0x9c, hi: 0x9c},
- {value: 0x2de3, lo: 0x9d, hi: 0x9d},
- {value: 0x2d16, lo: 0x9e, hi: 0x9f},
- // Block 0x21, offset 0xd7
- {value: 0x0000, lo: 0x02},
- {value: 0x8122, lo: 0xb8, hi: 0xb9},
- {value: 0x8104, lo: 0xba, hi: 0xba},
- // Block 0x22, offset 0xda
- {value: 0x0000, lo: 0x01},
- {value: 0x8123, lo: 0x88, hi: 0x8b},
- // Block 0x23, offset 0xdc
- {value: 0x0000, lo: 0x01},
- {value: 0x8124, lo: 0xb8, hi: 0xb9},
- // Block 0x24, offset 0xde
- {value: 0x0000, lo: 0x01},
- {value: 0x8125, lo: 0x88, hi: 0x8b},
- // Block 0x25, offset 0xe0
- {value: 0x0000, lo: 0x04},
- {value: 0x812d, lo: 0x98, hi: 0x99},
- {value: 0x812d, lo: 0xb5, hi: 0xb5},
- {value: 0x812d, lo: 0xb7, hi: 0xb7},
- {value: 0x812b, lo: 0xb9, hi: 0xb9},
- // Block 0x26, offset 0xe5
- {value: 0x0000, lo: 0x10},
- {value: 0x2644, lo: 0x83, hi: 0x83},
- {value: 0x264b, lo: 0x8d, hi: 0x8d},
- {value: 0x2652, lo: 0x92, hi: 0x92},
- {value: 0x2659, lo: 0x97, hi: 0x97},
- {value: 0x2660, lo: 0x9c, hi: 0x9c},
- {value: 0x263d, lo: 0xa9, hi: 0xa9},
- {value: 0x8126, lo: 0xb1, hi: 0xb1},
- {value: 0x8127, lo: 0xb2, hi: 0xb2},
- {value: 0x4a84, lo: 0xb3, hi: 0xb3},
- {value: 0x8128, lo: 0xb4, hi: 0xb4},
- {value: 0x4a8d, lo: 0xb5, hi: 0xb5},
- {value: 0x45b4, lo: 0xb6, hi: 0xb6},
- {value: 0x8200, lo: 0xb7, hi: 0xb7},
- {value: 0x45bc, lo: 0xb8, hi: 0xb8},
- {value: 0x8200, lo: 0xb9, hi: 0xb9},
- {value: 0x8127, lo: 0xba, hi: 0xbd},
- // Block 0x27, offset 0xf6
- {value: 0x0000, lo: 0x0b},
- {value: 0x8127, lo: 0x80, hi: 0x80},
- {value: 0x4a96, lo: 0x81, hi: 0x81},
- {value: 0x8132, lo: 0x82, hi: 0x83},
- {value: 0x8104, lo: 0x84, hi: 0x84},
- {value: 0x8132, lo: 0x86, hi: 0x87},
- {value: 0x266e, lo: 0x93, hi: 0x93},
- {value: 0x2675, lo: 0x9d, hi: 0x9d},
- {value: 0x267c, lo: 0xa2, hi: 0xa2},
- {value: 0x2683, lo: 0xa7, hi: 0xa7},
- {value: 0x268a, lo: 0xac, hi: 0xac},
- {value: 0x2667, lo: 0xb9, hi: 0xb9},
- // Block 0x28, offset 0x102
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0x86, hi: 0x86},
- // Block 0x29, offset 0x104
- {value: 0x0000, lo: 0x05},
- {value: 0xa000, lo: 0xa5, hi: 0xa5},
- {value: 0x2d1e, lo: 0xa6, hi: 0xa6},
- {value: 0x9900, lo: 0xae, hi: 0xae},
- {value: 0x8102, lo: 0xb7, hi: 0xb7},
- {value: 0x8104, lo: 0xb9, hi: 0xba},
- // Block 0x2a, offset 0x10a
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0x8d, hi: 0x8d},
- // Block 0x2b, offset 0x10c
- {value: 0x0000, lo: 0x01},
- {value: 0xa000, lo: 0x80, hi: 0x92},
- // Block 0x2c, offset 0x10e
- {value: 0x0000, lo: 0x01},
- {value: 0xb900, lo: 0xa1, hi: 0xb5},
- // Block 0x2d, offset 0x110
- {value: 0x0000, lo: 0x01},
- {value: 0x9900, lo: 0xa8, hi: 0xbf},
- // Block 0x2e, offset 0x112
- {value: 0x0000, lo: 0x01},
- {value: 0x9900, lo: 0x80, hi: 0x82},
- // Block 0x2f, offset 0x114
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0x9d, hi: 0x9f},
- // Block 0x30, offset 0x116
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x94, hi: 0x94},
- {value: 0x8104, lo: 0xb4, hi: 0xb4},
- // Block 0x31, offset 0x119
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x92, hi: 0x92},
- {value: 0x8132, lo: 0x9d, hi: 0x9d},
- // Block 0x32, offset 0x11c
- {value: 0x0000, lo: 0x01},
- {value: 0x8131, lo: 0xa9, hi: 0xa9},
- // Block 0x33, offset 0x11e
- {value: 0x0004, lo: 0x02},
- {value: 0x812e, lo: 0xb9, hi: 0xba},
- {value: 0x812d, lo: 0xbb, hi: 0xbb},
- // Block 0x34, offset 0x121
- {value: 0x0000, lo: 0x02},
- {value: 0x8132, lo: 0x97, hi: 0x97},
- {value: 0x812d, lo: 0x98, hi: 0x98},
- // Block 0x35, offset 0x124
- {value: 0x0000, lo: 0x03},
- {value: 0x8104, lo: 0xa0, hi: 0xa0},
- {value: 0x8132, lo: 0xb5, hi: 0xbc},
- {value: 0x812d, lo: 0xbf, hi: 0xbf},
- // Block 0x36, offset 0x128
- {value: 0x0000, lo: 0x04},
- {value: 0x8132, lo: 0xb0, hi: 0xb4},
- {value: 0x812d, lo: 0xb5, hi: 0xba},
- {value: 0x8132, lo: 0xbb, hi: 0xbc},
- {value: 0x812d, lo: 0xbd, hi: 0xbd},
- // Block 0x37, offset 0x12d
- {value: 0x0000, lo: 0x08},
- {value: 0x2d66, lo: 0x80, hi: 0x80},
- {value: 0x2d6e, lo: 0x81, hi: 0x81},
- {value: 0xa000, lo: 0x82, hi: 0x82},
- {value: 0x2d76, lo: 0x83, hi: 0x83},
- {value: 0x8104, lo: 0x84, hi: 0x84},
- {value: 0x8132, lo: 0xab, hi: 0xab},
- {value: 0x812d, lo: 0xac, hi: 0xac},
- {value: 0x8132, lo: 0xad, hi: 0xb3},
- // Block 0x38, offset 0x136
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0xaa, hi: 0xab},
- // Block 0x39, offset 0x138
- {value: 0x0000, lo: 0x02},
- {value: 0x8102, lo: 0xa6, hi: 0xa6},
- {value: 0x8104, lo: 0xb2, hi: 0xb3},
- // Block 0x3a, offset 0x13b
- {value: 0x0000, lo: 0x01},
- {value: 0x8102, lo: 0xb7, hi: 0xb7},
- // Block 0x3b, offset 0x13d
- {value: 0x0000, lo: 0x0a},
- {value: 0x8132, lo: 0x90, hi: 0x92},
- {value: 0x8101, lo: 0x94, hi: 0x94},
- {value: 0x812d, lo: 0x95, hi: 0x99},
- {value: 0x8132, lo: 0x9a, hi: 0x9b},
- {value: 0x812d, lo: 0x9c, hi: 0x9f},
- {value: 0x8132, lo: 0xa0, hi: 0xa0},
- {value: 0x8101, lo: 0xa2, hi: 0xa8},
- {value: 0x812d, lo: 0xad, hi: 0xad},
- {value: 0x8132, lo: 0xb4, hi: 0xb4},
- {value: 0x8132, lo: 0xb8, hi: 0xb9},
- // Block 0x3c, offset 0x148
- {value: 0x0004, lo: 0x03},
- {value: 0x0433, lo: 0x80, hi: 0x81},
- {value: 0x8100, lo: 0x97, hi: 0x97},
- {value: 0x8100, lo: 0xbe, hi: 0xbe},
- // Block 0x3d, offset 0x14c
- {value: 0x0000, lo: 0x0d},
- {value: 0x8132, lo: 0x90, hi: 0x91},
- {value: 0x8101, lo: 0x92, hi: 0x93},
- {value: 0x8132, lo: 0x94, hi: 0x97},
- {value: 0x8101, lo: 0x98, hi: 0x9a},
- {value: 0x8132, lo: 0x9b, hi: 0x9c},
- {value: 0x8132, lo: 0xa1, hi: 0xa1},
- {value: 0x8101, lo: 0xa5, hi: 0xa6},
- {value: 0x8132, lo: 0xa7, hi: 0xa7},
- {value: 0x812d, lo: 0xa8, hi: 0xa8},
- {value: 0x8132, lo: 0xa9, hi: 0xa9},
- {value: 0x8101, lo: 0xaa, hi: 0xab},
- {value: 0x812d, lo: 0xac, hi: 0xaf},
- {value: 0x8132, lo: 0xb0, hi: 0xb0},
- // Block 0x3e, offset 0x15a
- {value: 0x427b, lo: 0x02},
- {value: 0x01b8, lo: 0xa6, hi: 0xa6},
- {value: 0x0057, lo: 0xaa, hi: 0xab},
- // Block 0x3f, offset 0x15d
- {value: 0x0007, lo: 0x05},
- {value: 0xa000, lo: 0x90, hi: 0x90},
- {value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0xa000, lo: 0x94, hi: 0x94},
- {value: 0x3bb9, lo: 0x9a, hi: 0x9b},
- {value: 0x3bc7, lo: 0xae, hi: 0xae},
- // Block 0x40, offset 0x163
- {value: 0x000e, lo: 0x05},
- {value: 0x3bce, lo: 0x8d, hi: 0x8e},
- {value: 0x3bd5, lo: 0x8f, hi: 0x8f},
- {value: 0xa000, lo: 0x90, hi: 0x90},
- {value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0xa000, lo: 0x94, hi: 0x94},
- // Block 0x41, offset 0x169
- {value: 0x6408, lo: 0x0a},
- {value: 0xa000, lo: 0x83, hi: 0x83},
- {value: 0x3be3, lo: 0x84, hi: 0x84},
- {value: 0xa000, lo: 0x88, hi: 0x88},
- {value: 0x3bea, lo: 0x89, hi: 0x89},
- {value: 0xa000, lo: 0x8b, hi: 0x8b},
- {value: 0x3bf1, lo: 0x8c, hi: 0x8c},
- {value: 0xa000, lo: 0xa3, hi: 0xa3},
- {value: 0x3bf8, lo: 0xa4, hi: 0xa5},
- {value: 0x3bff, lo: 0xa6, hi: 0xa6},
- {value: 0xa000, lo: 0xbc, hi: 0xbc},
- // Block 0x42, offset 0x174
- {value: 0x0007, lo: 0x03},
- {value: 0x3c68, lo: 0xa0, hi: 0xa1},
- {value: 0x3c92, lo: 0xa2, hi: 0xa3},
- {value: 0x3cbc, lo: 0xaa, hi: 0xad},
- // Block 0x43, offset 0x178
- {value: 0x0004, lo: 0x01},
- {value: 0x048b, lo: 0xa9, hi: 0xaa},
- // Block 0x44, offset 0x17a
- {value: 0x0000, lo: 0x01},
- {value: 0x44dd, lo: 0x9c, hi: 0x9c},
- // Block 0x45, offset 0x17c
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0xaf, hi: 0xb1},
- // Block 0x46, offset 0x17e
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0xbf, hi: 0xbf},
- // Block 0x47, offset 0x180
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0xa0, hi: 0xbf},
- // Block 0x48, offset 0x182
- {value: 0x0000, lo: 0x05},
- {value: 0x812c, lo: 0xaa, hi: 0xaa},
- {value: 0x8131, lo: 0xab, hi: 0xab},
- {value: 0x8133, lo: 0xac, hi: 0xac},
- {value: 0x812e, lo: 0xad, hi: 0xad},
- {value: 0x812f, lo: 0xae, hi: 0xaf},
- // Block 0x49, offset 0x188
- {value: 0x0000, lo: 0x03},
- {value: 0x4a9f, lo: 0xb3, hi: 0xb3},
- {value: 0x4a9f, lo: 0xb5, hi: 0xb6},
- {value: 0x4a9f, lo: 0xba, hi: 0xbf},
- // Block 0x4a, offset 0x18c
- {value: 0x0000, lo: 0x01},
- {value: 0x4a9f, lo: 0x8f, hi: 0xa3},
- // Block 0x4b, offset 0x18e
- {value: 0x0000, lo: 0x01},
- {value: 0x8100, lo: 0xae, hi: 0xbe},
- // Block 0x4c, offset 0x190
- {value: 0x0000, lo: 0x07},
- {value: 0x8100, lo: 0x84, hi: 0x84},
- {value: 0x8100, lo: 0x87, hi: 0x87},
- {value: 0x8100, lo: 0x90, hi: 0x90},
- {value: 0x8100, lo: 0x9e, hi: 0x9e},
- {value: 0x8100, lo: 0xa1, hi: 0xa1},
- {value: 0x8100, lo: 0xb2, hi: 0xb2},
- {value: 0x8100, lo: 0xbb, hi: 0xbb},
- // Block 0x4d, offset 0x198
- {value: 0x0000, lo: 0x03},
- {value: 0x8100, lo: 0x80, hi: 0x80},
- {value: 0x8100, lo: 0x8b, hi: 0x8b},
- {value: 0x8100, lo: 0x8e, hi: 0x8e},
- // Block 0x4e, offset 0x19c
- {value: 0x0000, lo: 0x02},
- {value: 0x8132, lo: 0xaf, hi: 0xaf},
- {value: 0x8132, lo: 0xb4, hi: 0xbd},
- // Block 0x4f, offset 0x19f
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0x9e, hi: 0x9f},
- // Block 0x50, offset 0x1a1
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0xb0, hi: 0xb1},
- // Block 0x51, offset 0x1a3
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0x86, hi: 0x86},
- // Block 0x52, offset 0x1a5
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x84, hi: 0x84},
- {value: 0x8132, lo: 0xa0, hi: 0xb1},
- // Block 0x53, offset 0x1a8
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0xab, hi: 0xad},
- // Block 0x54, offset 0x1aa
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0x93, hi: 0x93},
- // Block 0x55, offset 0x1ac
- {value: 0x0000, lo: 0x01},
- {value: 0x8102, lo: 0xb3, hi: 0xb3},
- // Block 0x56, offset 0x1ae
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0x80, hi: 0x80},
- // Block 0x57, offset 0x1b0
- {value: 0x0000, lo: 0x05},
- {value: 0x8132, lo: 0xb0, hi: 0xb0},
- {value: 0x8132, lo: 0xb2, hi: 0xb3},
- {value: 0x812d, lo: 0xb4, hi: 0xb4},
- {value: 0x8132, lo: 0xb7, hi: 0xb8},
- {value: 0x8132, lo: 0xbe, hi: 0xbf},
- // Block 0x58, offset 0x1b6
- {value: 0x0000, lo: 0x02},
- {value: 0x8132, lo: 0x81, hi: 0x81},
- {value: 0x8104, lo: 0xb6, hi: 0xb6},
- // Block 0x59, offset 0x1b9
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0xad, hi: 0xad},
- // Block 0x5a, offset 0x1bb
- {value: 0x0000, lo: 0x06},
- {value: 0xe500, lo: 0x80, hi: 0x80},
- {value: 0xc600, lo: 0x81, hi: 0x9b},
- {value: 0xe500, lo: 0x9c, hi: 0x9c},
- {value: 0xc600, lo: 0x9d, hi: 0xb7},
- {value: 0xe500, lo: 0xb8, hi: 0xb8},
- {value: 0xc600, lo: 0xb9, hi: 0xbf},
- // Block 0x5b, offset 0x1c2
- {value: 0x0000, lo: 0x05},
- {value: 0xc600, lo: 0x80, hi: 0x93},
- {value: 0xe500, lo: 0x94, hi: 0x94},
- {value: 0xc600, lo: 0x95, hi: 0xaf},
- {value: 0xe500, lo: 0xb0, hi: 0xb0},
- {value: 0xc600, lo: 0xb1, hi: 0xbf},
- // Block 0x5c, offset 0x1c8
- {value: 0x0000, lo: 0x05},
- {value: 0xc600, lo: 0x80, hi: 0x8b},
- {value: 0xe500, lo: 0x8c, hi: 0x8c},
- {value: 0xc600, lo: 0x8d, hi: 0xa7},
- {value: 0xe500, lo: 0xa8, hi: 0xa8},
- {value: 0xc600, lo: 0xa9, hi: 0xbf},
- // Block 0x5d, offset 0x1ce
- {value: 0x0000, lo: 0x07},
- {value: 0xc600, lo: 0x80, hi: 0x83},
- {value: 0xe500, lo: 0x84, hi: 0x84},
- {value: 0xc600, lo: 0x85, hi: 0x9f},
- {value: 0xe500, lo: 0xa0, hi: 0xa0},
- {value: 0xc600, lo: 0xa1, hi: 0xbb},
- {value: 0xe500, lo: 0xbc, hi: 0xbc},
- {value: 0xc600, lo: 0xbd, hi: 0xbf},
- // Block 0x5e, offset 0x1d6
- {value: 0x0000, lo: 0x05},
- {value: 0xc600, lo: 0x80, hi: 0x97},
- {value: 0xe500, lo: 0x98, hi: 0x98},
- {value: 0xc600, lo: 0x99, hi: 0xb3},
- {value: 0xe500, lo: 0xb4, hi: 0xb4},
- {value: 0xc600, lo: 0xb5, hi: 0xbf},
- // Block 0x5f, offset 0x1dc
- {value: 0x0000, lo: 0x05},
- {value: 0xc600, lo: 0x80, hi: 0x8f},
- {value: 0xe500, lo: 0x90, hi: 0x90},
- {value: 0xc600, lo: 0x91, hi: 0xab},
- {value: 0xe500, lo: 0xac, hi: 0xac},
- {value: 0xc600, lo: 0xad, hi: 0xbf},
- // Block 0x60, offset 0x1e2
- {value: 0x0000, lo: 0x05},
- {value: 0xc600, lo: 0x80, hi: 0x87},
- {value: 0xe500, lo: 0x88, hi: 0x88},
- {value: 0xc600, lo: 0x89, hi: 0xa3},
- {value: 0xe500, lo: 0xa4, hi: 0xa4},
- {value: 0xc600, lo: 0xa5, hi: 0xbf},
- // Block 0x61, offset 0x1e8
- {value: 0x0000, lo: 0x03},
- {value: 0xc600, lo: 0x80, hi: 0x87},
- {value: 0xe500, lo: 0x88, hi: 0x88},
- {value: 0xc600, lo: 0x89, hi: 0xa3},
- // Block 0x62, offset 0x1ec
- {value: 0x0006, lo: 0x0d},
- {value: 0x4390, lo: 0x9d, hi: 0x9d},
- {value: 0x8115, lo: 0x9e, hi: 0x9e},
- {value: 0x4402, lo: 0x9f, hi: 0x9f},
- {value: 0x43f0, lo: 0xaa, hi: 0xab},
- {value: 0x44f4, lo: 0xac, hi: 0xac},
- {value: 0x44fc, lo: 0xad, hi: 0xad},
- {value: 0x4348, lo: 0xae, hi: 0xb1},
- {value: 0x4366, lo: 0xb2, hi: 0xb4},
- {value: 0x437e, lo: 0xb5, hi: 0xb6},
- {value: 0x438a, lo: 0xb8, hi: 0xb8},
- {value: 0x4396, lo: 0xb9, hi: 0xbb},
- {value: 0x43ae, lo: 0xbc, hi: 0xbc},
- {value: 0x43b4, lo: 0xbe, hi: 0xbe},
- // Block 0x63, offset 0x1fa
- {value: 0x0006, lo: 0x08},
- {value: 0x43ba, lo: 0x80, hi: 0x81},
- {value: 0x43c6, lo: 0x83, hi: 0x84},
- {value: 0x43d8, lo: 0x86, hi: 0x89},
- {value: 0x43fc, lo: 0x8a, hi: 0x8a},
- {value: 0x4378, lo: 0x8b, hi: 0x8b},
- {value: 0x4360, lo: 0x8c, hi: 0x8c},
- {value: 0x43a8, lo: 0x8d, hi: 0x8d},
- {value: 0x43d2, lo: 0x8e, hi: 0x8e},
- // Block 0x64, offset 0x203
- {value: 0x0000, lo: 0x02},
- {value: 0x8100, lo: 0xa4, hi: 0xa5},
- {value: 0x8100, lo: 0xb0, hi: 0xb1},
- // Block 0x65, offset 0x206
- {value: 0x0000, lo: 0x02},
- {value: 0x8100, lo: 0x9b, hi: 0x9d},
- {value: 0x8200, lo: 0x9e, hi: 0xa3},
- // Block 0x66, offset 0x209
- {value: 0x0000, lo: 0x01},
- {value: 0x8100, lo: 0x90, hi: 0x90},
- // Block 0x67, offset 0x20b
- {value: 0x0000, lo: 0x02},
- {value: 0x8100, lo: 0x99, hi: 0x99},
- {value: 0x8200, lo: 0xb2, hi: 0xb4},
- // Block 0x68, offset 0x20e
- {value: 0x0000, lo: 0x01},
- {value: 0x8100, lo: 0xbc, hi: 0xbd},
- // Block 0x69, offset 0x210
- {value: 0x0000, lo: 0x03},
- {value: 0x8132, lo: 0xa0, hi: 0xa6},
- {value: 0x812d, lo: 0xa7, hi: 0xad},
- {value: 0x8132, lo: 0xae, hi: 0xaf},
- // Block 0x6a, offset 0x214
- {value: 0x0000, lo: 0x04},
- {value: 0x8100, lo: 0x89, hi: 0x8c},
- {value: 0x8100, lo: 0xb0, hi: 0xb2},
- {value: 0x8100, lo: 0xb4, hi: 0xb4},
- {value: 0x8100, lo: 0xb6, hi: 0xbf},
- // Block 0x6b, offset 0x219
- {value: 0x0000, lo: 0x01},
- {value: 0x8100, lo: 0x81, hi: 0x8c},
- // Block 0x6c, offset 0x21b
- {value: 0x0000, lo: 0x01},
- {value: 0x8100, lo: 0xb5, hi: 0xba},
- // Block 0x6d, offset 0x21d
- {value: 0x0000, lo: 0x04},
- {value: 0x4a9f, lo: 0x9e, hi: 0x9f},
- {value: 0x4a9f, lo: 0xa3, hi: 0xa3},
- {value: 0x4a9f, lo: 0xa5, hi: 0xa6},
- {value: 0x4a9f, lo: 0xaa, hi: 0xaf},
- // Block 0x6e, offset 0x222
- {value: 0x0000, lo: 0x05},
- {value: 0x4a9f, lo: 0x82, hi: 0x87},
- {value: 0x4a9f, lo: 0x8a, hi: 0x8f},
- {value: 0x4a9f, lo: 0x92, hi: 0x97},
- {value: 0x4a9f, lo: 0x9a, hi: 0x9c},
- {value: 0x8100, lo: 0xa3, hi: 0xa3},
- // Block 0x6f, offset 0x228
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0xbd, hi: 0xbd},
- // Block 0x70, offset 0x22a
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0xa0, hi: 0xa0},
- // Block 0x71, offset 0x22c
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0xb6, hi: 0xba},
- // Block 0x72, offset 0x22e
- {value: 0x002c, lo: 0x05},
- {value: 0x812d, lo: 0x8d, hi: 0x8d},
- {value: 0x8132, lo: 0x8f, hi: 0x8f},
- {value: 0x8132, lo: 0xb8, hi: 0xb8},
- {value: 0x8101, lo: 0xb9, hi: 0xba},
- {value: 0x8104, lo: 0xbf, hi: 0xbf},
- // Block 0x73, offset 0x234
- {value: 0x0000, lo: 0x02},
- {value: 0x8132, lo: 0xa5, hi: 0xa5},
- {value: 0x812d, lo: 0xa6, hi: 0xa6},
- // Block 0x74, offset 0x237
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x86, hi: 0x86},
- {value: 0x8104, lo: 0xbf, hi: 0xbf},
- // Block 0x75, offset 0x23a
- {value: 0x17fe, lo: 0x07},
- {value: 0xa000, lo: 0x99, hi: 0x99},
- {value: 0x4238, lo: 0x9a, hi: 0x9a},
- {value: 0xa000, lo: 0x9b, hi: 0x9b},
- {value: 0x4242, lo: 0x9c, hi: 0x9c},
- {value: 0xa000, lo: 0xa5, hi: 0xa5},
- {value: 0x424c, lo: 0xab, hi: 0xab},
- {value: 0x8104, lo: 0xb9, hi: 0xba},
- // Block 0x76, offset 0x242
- {value: 0x0000, lo: 0x06},
- {value: 0x8132, lo: 0x80, hi: 0x82},
- {value: 0x9900, lo: 0xa7, hi: 0xa7},
- {value: 0x2d7e, lo: 0xae, hi: 0xae},
- {value: 0x2d88, lo: 0xaf, hi: 0xaf},
- {value: 0xa000, lo: 0xb1, hi: 0xb2},
- {value: 0x8104, lo: 0xb3, hi: 0xb4},
- // Block 0x77, offset 0x249
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x80, hi: 0x80},
- {value: 0x8102, lo: 0x8a, hi: 0x8a},
- // Block 0x78, offset 0x24c
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0xb5, hi: 0xb5},
- {value: 0x8102, lo: 0xb6, hi: 0xb6},
- // Block 0x79, offset 0x24f
- {value: 0x0002, lo: 0x01},
- {value: 0x8102, lo: 0xa9, hi: 0xaa},
- // Block 0x7a, offset 0x251
- {value: 0x0000, lo: 0x07},
- {value: 0xa000, lo: 0x87, hi: 0x87},
- {value: 0x2d92, lo: 0x8b, hi: 0x8b},
- {value: 0x2d9c, lo: 0x8c, hi: 0x8c},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x9900, lo: 0x97, hi: 0x97},
- {value: 0x8132, lo: 0xa6, hi: 0xac},
- {value: 0x8132, lo: 0xb0, hi: 0xb4},
- // Block 0x7b, offset 0x259
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x82, hi: 0x82},
- {value: 0x8102, lo: 0x86, hi: 0x86},
- // Block 0x7c, offset 0x25c
- {value: 0x6b5a, lo: 0x06},
- {value: 0x9900, lo: 0xb0, hi: 0xb0},
- {value: 0xa000, lo: 0xb9, hi: 0xb9},
- {value: 0x9900, lo: 0xba, hi: 0xba},
- {value: 0x2db0, lo: 0xbb, hi: 0xbb},
- {value: 0x2da6, lo: 0xbc, hi: 0xbd},
- {value: 0x2dba, lo: 0xbe, hi: 0xbe},
- // Block 0x7d, offset 0x263
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x82, hi: 0x82},
- {value: 0x8102, lo: 0x83, hi: 0x83},
- // Block 0x7e, offset 0x266
- {value: 0x0000, lo: 0x05},
- {value: 0x9900, lo: 0xaf, hi: 0xaf},
- {value: 0xa000, lo: 0xb8, hi: 0xb9},
- {value: 0x2dc4, lo: 0xba, hi: 0xba},
- {value: 0x2dce, lo: 0xbb, hi: 0xbb},
- {value: 0x8104, lo: 0xbf, hi: 0xbf},
- // Block 0x7f, offset 0x26c
- {value: 0x0000, lo: 0x01},
- {value: 0x8102, lo: 0x80, hi: 0x80},
- // Block 0x80, offset 0x26e
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0xb6, hi: 0xb6},
- {value: 0x8102, lo: 0xb7, hi: 0xb7},
- // Block 0x81, offset 0x271
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0xab, hi: 0xab},
- // Block 0x82, offset 0x273
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0xb4, hi: 0xb4},
- // Block 0x83, offset 0x275
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0x87, hi: 0x87},
- // Block 0x84, offset 0x277
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0x99, hi: 0x99},
- // Block 0x85, offset 0x279
- {value: 0x0000, lo: 0x02},
- {value: 0x8102, lo: 0x82, hi: 0x82},
- {value: 0x8104, lo: 0x84, hi: 0x85},
- // Block 0x86, offset 0x27c
- {value: 0x0000, lo: 0x01},
- {value: 0x8101, lo: 0xb0, hi: 0xb4},
- // Block 0x87, offset 0x27e
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0xb0, hi: 0xb6},
- // Block 0x88, offset 0x280
- {value: 0x0000, lo: 0x01},
- {value: 0x8101, lo: 0x9e, hi: 0x9e},
- // Block 0x89, offset 0x282
- {value: 0x0000, lo: 0x0c},
- {value: 0x45cc, lo: 0x9e, hi: 0x9e},
- {value: 0x45d6, lo: 0x9f, hi: 0x9f},
- {value: 0x460a, lo: 0xa0, hi: 0xa0},
- {value: 0x4618, lo: 0xa1, hi: 0xa1},
- {value: 0x4626, lo: 0xa2, hi: 0xa2},
- {value: 0x4634, lo: 0xa3, hi: 0xa3},
- {value: 0x4642, lo: 0xa4, hi: 0xa4},
- {value: 0x812b, lo: 0xa5, hi: 0xa6},
- {value: 0x8101, lo: 0xa7, hi: 0xa9},
- {value: 0x8130, lo: 0xad, hi: 0xad},
- {value: 0x812b, lo: 0xae, hi: 0xb2},
- {value: 0x812d, lo: 0xbb, hi: 0xbf},
- // Block 0x8a, offset 0x28f
- {value: 0x0000, lo: 0x09},
- {value: 0x812d, lo: 0x80, hi: 0x82},
- {value: 0x8132, lo: 0x85, hi: 0x89},
- {value: 0x812d, lo: 0x8a, hi: 0x8b},
- {value: 0x8132, lo: 0xaa, hi: 0xad},
- {value: 0x45e0, lo: 0xbb, hi: 0xbb},
- {value: 0x45ea, lo: 0xbc, hi: 0xbc},
- {value: 0x4650, lo: 0xbd, hi: 0xbd},
- {value: 0x466c, lo: 0xbe, hi: 0xbe},
- {value: 0x465e, lo: 0xbf, hi: 0xbf},
- // Block 0x8b, offset 0x299
- {value: 0x0000, lo: 0x01},
- {value: 0x467a, lo: 0x80, hi: 0x80},
- // Block 0x8c, offset 0x29b
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0x82, hi: 0x84},
- // Block 0x8d, offset 0x29d
- {value: 0x0000, lo: 0x05},
- {value: 0x8132, lo: 0x80, hi: 0x86},
- {value: 0x8132, lo: 0x88, hi: 0x98},
- {value: 0x8132, lo: 0x9b, hi: 0xa1},
- {value: 0x8132, lo: 0xa3, hi: 0xa4},
- {value: 0x8132, lo: 0xa6, hi: 0xaa},
- // Block 0x8e, offset 0x2a3
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0x90, hi: 0x96},
- // Block 0x8f, offset 0x2a5
- {value: 0x0000, lo: 0x02},
- {value: 0x8132, lo: 0x84, hi: 0x89},
- {value: 0x8102, lo: 0x8a, hi: 0x8a},
- // Block 0x90, offset 0x2a8
- {value: 0x0000, lo: 0x01},
- {value: 0x8100, lo: 0x93, hi: 0x93},
-}
-
-// lookup returns the trie value for the first UTF-8 encoding in s and
-// the width in bytes of this encoding. The size will be 0 if s does not
-// hold enough bytes to complete the encoding. len(s) must be greater than 0.
-func (t *nfkcTrie) lookup(s []byte) (v uint16, sz int) {
- c0 := s[0]
- switch {
- case c0 < 0x80: // is ASCII
- return nfkcValues[c0], 1
- case c0 < 0xC2:
- return 0, 1 // Illegal UTF-8: not a starter, not ASCII.
- case c0 < 0xE0: // 2-byte UTF-8
- if len(s) < 2 {
- return 0, 0
- }
- i := nfkcIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c1), 2
- case c0 < 0xF0: // 3-byte UTF-8
- if len(s) < 3 {
- return 0, 0
- }
- i := nfkcIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = nfkcIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c2), 3
- case c0 < 0xF8: // 4-byte UTF-8
- if len(s) < 4 {
- return 0, 0
- }
- i := nfkcIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = nfkcIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- o = uint32(i)<<6 + uint32(c2)
- i = nfkcIndex[o]
- c3 := s[3]
- if c3 < 0x80 || 0xC0 <= c3 {
- return 0, 3 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c3), 4
- }
- // Illegal rune
- return 0, 1
-}
-
-// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.
-// s must start with a full and valid UTF-8 encoded rune.
-func (t *nfkcTrie) lookupUnsafe(s []byte) uint16 {
- c0 := s[0]
- if c0 < 0x80 { // is ASCII
- return nfkcValues[c0]
- }
- i := nfkcIndex[c0]
- if c0 < 0xE0 { // 2-byte UTF-8
- return t.lookupValue(uint32(i), s[1])
- }
- i = nfkcIndex[uint32(i)<<6+uint32(s[1])]
- if c0 < 0xF0 { // 3-byte UTF-8
- return t.lookupValue(uint32(i), s[2])
- }
- i = nfkcIndex[uint32(i)<<6+uint32(s[2])]
- if c0 < 0xF8 { // 4-byte UTF-8
- return t.lookupValue(uint32(i), s[3])
- }
- return 0
-}
-
-// lookupString returns the trie value for the first UTF-8 encoding in s and
-// the width in bytes of this encoding. The size will be 0 if s does not
-// hold enough bytes to complete the encoding. len(s) must be greater than 0.
-func (t *nfkcTrie) lookupString(s string) (v uint16, sz int) {
- c0 := s[0]
- switch {
- case c0 < 0x80: // is ASCII
- return nfkcValues[c0], 1
- case c0 < 0xC2:
- return 0, 1 // Illegal UTF-8: not a starter, not ASCII.
- case c0 < 0xE0: // 2-byte UTF-8
- if len(s) < 2 {
- return 0, 0
- }
- i := nfkcIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c1), 2
- case c0 < 0xF0: // 3-byte UTF-8
- if len(s) < 3 {
- return 0, 0
- }
- i := nfkcIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = nfkcIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c2), 3
- case c0 < 0xF8: // 4-byte UTF-8
- if len(s) < 4 {
- return 0, 0
- }
- i := nfkcIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = nfkcIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- o = uint32(i)<<6 + uint32(c2)
- i = nfkcIndex[o]
- c3 := s[3]
- if c3 < 0x80 || 0xC0 <= c3 {
- return 0, 3 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c3), 4
- }
- // Illegal rune
- return 0, 1
-}
-
-// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.
-// s must start with a full and valid UTF-8 encoded rune.
-func (t *nfkcTrie) lookupStringUnsafe(s string) uint16 {
- c0 := s[0]
- if c0 < 0x80 { // is ASCII
- return nfkcValues[c0]
- }
- i := nfkcIndex[c0]
- if c0 < 0xE0 { // 2-byte UTF-8
- return t.lookupValue(uint32(i), s[1])
- }
- i = nfkcIndex[uint32(i)<<6+uint32(s[1])]
- if c0 < 0xF0 { // 3-byte UTF-8
- return t.lookupValue(uint32(i), s[2])
- }
- i = nfkcIndex[uint32(i)<<6+uint32(s[2])]
- if c0 < 0xF8 { // 4-byte UTF-8
- return t.lookupValue(uint32(i), s[3])
- }
- return 0
-}
-
-// nfkcTrie. Total size: 17104 bytes (16.70 KiB). Checksum: d985061cf5307b35.
-type nfkcTrie struct{}
-
-func newNfkcTrie(i int) *nfkcTrie {
- return &nfkcTrie{}
-}
-
-// lookupValue determines the type of block n and looks up the value for b.
-func (t *nfkcTrie) lookupValue(n uint32, b byte) uint16 {
- switch {
- case n < 91:
- return uint16(nfkcValues[n<<6+uint32(b)])
- default:
- n -= 91
- return uint16(nfkcSparse.lookup(n, b))
- }
-}
-
-// nfkcValues: 93 blocks, 5952 entries, 11904 bytes
-// The third block is the zero block.
-var nfkcValues = [5952]uint16{
- // Block 0x0, offset 0x0
- 0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000,
- // Block 0x1, offset 0x40
- 0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000,
- 0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000,
- 0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000,
- 0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000,
- 0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000,
- 0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000,
- 0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000,
- 0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000,
- 0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000,
- 0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000,
- // Block 0x2, offset 0x80
- // Block 0x3, offset 0xc0
- 0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c,
- 0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb,
- 0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104,
- 0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd,
- 0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235,
- 0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285,
- 0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3,
- 0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750,
- 0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f,
- 0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3,
- 0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569,
- // Block 0x4, offset 0x100
- 0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 0x104: 0x2f9c, 0x105: 0x32a8,
- 0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6,
- 0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5,
- 0x112: 0x46b0, 0x113: 0x4741, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302,
- 0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339,
- 0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352,
- 0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e,
- 0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6,
- 0x130: 0x308c, 0x132: 0x195d, 0x133: 0x19e7, 0x134: 0x30b4, 0x135: 0x33c0,
- 0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc,
- 0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8, 0x13f: 0x1bac,
- // Block 0x5, offset 0x140
- 0x140: 0x1c34, 0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118,
- 0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f, 0x149: 0x1c5c,
- 0x14c: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c,
- 0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483,
- 0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d,
- 0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba,
- 0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796,
- 0x16a: 0x470a, 0x16b: 0x479b, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2,
- 0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528,
- 0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267,
- 0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0x00a7,
- // Block 0x6, offset 0x180
- 0x184: 0x2dee, 0x185: 0x2df4,
- 0x186: 0x2dfa, 0x187: 0x1972, 0x188: 0x1975, 0x189: 0x1a08, 0x18a: 0x1987, 0x18b: 0x198a,
- 0x18c: 0x1a3e, 0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140,
- 0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8,
- 0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50,
- 0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5,
- 0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf,
- 0x1aa: 0x46ec, 0x1ab: 0x477d, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd,
- 0x1b0: 0x33c5, 0x1b1: 0x1942, 0x1b2: 0x1945, 0x1b3: 0x19cf, 0x1b4: 0x3028, 0x1b5: 0x3334,
- 0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46,
- 0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb,
- // Block 0x7, offset 0x1c0
- 0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316,
- 0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac,
- 0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479,
- 0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6,
- 0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5,
- 0x1de: 0x305a, 0x1df: 0x3366,
- 0x1e6: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b,
- 0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769,
- 0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f,
- // Block 0x8, offset 0x200
- 0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132,
- 0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932,
- 0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932,
- 0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d,
- 0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d,
- 0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d,
- 0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d,
- 0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d,
- 0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101,
- 0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d,
- 0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132,
- // Block 0x9, offset 0x240
- 0x240: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 0x245: 0x9936,
- 0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132,
- 0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132,
- 0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132,
- 0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135,
- 0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132,
- 0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132,
- 0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132,
- 0x274: 0x0170,
- 0x27a: 0x42a5,
- 0x27e: 0x0037,
- // Block 0xa, offset 0x280
- 0x284: 0x425a, 0x285: 0x447b,
- 0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625,
- 0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000,
- 0x295: 0xa000, 0x297: 0xa000,
- 0x299: 0xa000,
- 0x29f: 0xa000, 0x2a1: 0xa000,
- 0x2a5: 0xa000, 0x2a9: 0xa000,
- 0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 0x2af: 0x36a9,
- 0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000,
- 0x2b7: 0xa000, 0x2b9: 0xa000,
- 0x2bf: 0xa000,
- // Block 0xb, offset 0x2c0
- 0x2c1: 0xa000, 0x2c5: 0xa000,
- 0x2c9: 0xa000, 0x2ca: 0x4840, 0x2cb: 0x485e,
- 0x2cc: 0x36c7, 0x2cd: 0x36df, 0x2ce: 0x4876, 0x2d0: 0x01be, 0x2d1: 0x01d0,
- 0x2d2: 0x01ac, 0x2d3: 0x430c, 0x2d4: 0x4312, 0x2d5: 0x01fa, 0x2d6: 0x01e8,
- 0x2f0: 0x01d6, 0x2f1: 0x01eb, 0x2f2: 0x01ee, 0x2f4: 0x0188, 0x2f5: 0x01c7,
- 0x2f9: 0x01a6,
- // Block 0xc, offset 0x300
- 0x300: 0x3721, 0x301: 0x372d, 0x303: 0x371b,
- 0x306: 0xa000, 0x307: 0x3709,
- 0x30c: 0x375d, 0x30d: 0x3745, 0x30e: 0x376f, 0x310: 0xa000,
- 0x313: 0xa000, 0x315: 0xa000, 0x316: 0xa000, 0x317: 0xa000,
- 0x318: 0xa000, 0x319: 0x3751, 0x31a: 0xa000,
- 0x31e: 0xa000, 0x323: 0xa000,
- 0x327: 0xa000,
- 0x32b: 0xa000, 0x32d: 0xa000,
- 0x330: 0xa000, 0x333: 0xa000, 0x335: 0xa000,
- 0x336: 0xa000, 0x337: 0xa000, 0x338: 0xa000, 0x339: 0x37d5, 0x33a: 0xa000,
- 0x33e: 0xa000,
- // Block 0xd, offset 0x340
- 0x341: 0x3733, 0x342: 0x37b7,
- 0x350: 0x370f, 0x351: 0x3793,
- 0x352: 0x3715, 0x353: 0x3799, 0x356: 0x3727, 0x357: 0x37ab,
- 0x358: 0xa000, 0x359: 0xa000, 0x35a: 0x3829, 0x35b: 0x382f, 0x35c: 0x3739, 0x35d: 0x37bd,
- 0x35e: 0x373f, 0x35f: 0x37c3, 0x362: 0x374b, 0x363: 0x37cf,
- 0x364: 0x3757, 0x365: 0x37db, 0x366: 0x3763, 0x367: 0x37e7, 0x368: 0xa000, 0x369: 0xa000,
- 0x36a: 0x3835, 0x36b: 0x383b, 0x36c: 0x378d, 0x36d: 0x3811, 0x36e: 0x3769, 0x36f: 0x37ed,
- 0x370: 0x3775, 0x371: 0x37f9, 0x372: 0x377b, 0x373: 0x37ff, 0x374: 0x3781, 0x375: 0x3805,
- 0x378: 0x3787, 0x379: 0x380b,
- // Block 0xe, offset 0x380
- 0x387: 0x1d61,
- 0x391: 0x812d,
- 0x392: 0x8132, 0x393: 0x8132, 0x394: 0x8132, 0x395: 0x8132, 0x396: 0x812d, 0x397: 0x8132,
- 0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x812e, 0x39b: 0x812d, 0x39c: 0x8132, 0x39d: 0x8132,
- 0x39e: 0x8132, 0x39f: 0x8132, 0x3a0: 0x8132, 0x3a1: 0x8132, 0x3a2: 0x812d, 0x3a3: 0x812d,
- 0x3a4: 0x812d, 0x3a5: 0x812d, 0x3a6: 0x812d, 0x3a7: 0x812d, 0x3a8: 0x8132, 0x3a9: 0x8132,
- 0x3aa: 0x812d, 0x3ab: 0x8132, 0x3ac: 0x8132, 0x3ad: 0x812e, 0x3ae: 0x8131, 0x3af: 0x8132,
- 0x3b0: 0x8105, 0x3b1: 0x8106, 0x3b2: 0x8107, 0x3b3: 0x8108, 0x3b4: 0x8109, 0x3b5: 0x810a,
- 0x3b6: 0x810b, 0x3b7: 0x810c, 0x3b8: 0x810d, 0x3b9: 0x810e, 0x3ba: 0x810e, 0x3bb: 0x810f,
- 0x3bc: 0x8110, 0x3bd: 0x8111, 0x3bf: 0x8112,
- // Block 0xf, offset 0x3c0
- 0x3c8: 0xa000, 0x3ca: 0xa000, 0x3cb: 0x8116,
- 0x3cc: 0x8117, 0x3cd: 0x8118, 0x3ce: 0x8119, 0x3cf: 0x811a, 0x3d0: 0x811b, 0x3d1: 0x811c,
- 0x3d2: 0x811d, 0x3d3: 0x9932, 0x3d4: 0x9932, 0x3d5: 0x992d, 0x3d6: 0x812d, 0x3d7: 0x8132,
- 0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x812d, 0x3dd: 0x8132,
- 0x3de: 0x8132, 0x3df: 0x812d,
- 0x3f0: 0x811e, 0x3f5: 0x1d84,
- 0x3f6: 0x2013, 0x3f7: 0x204f, 0x3f8: 0x204a,
- // Block 0x10, offset 0x400
- 0x405: 0xa000,
- 0x406: 0x2d26, 0x407: 0xa000, 0x408: 0x2d2e, 0x409: 0xa000, 0x40a: 0x2d36, 0x40b: 0xa000,
- 0x40c: 0x2d3e, 0x40d: 0xa000, 0x40e: 0x2d46, 0x411: 0xa000,
- 0x412: 0x2d4e,
- 0x434: 0x8102, 0x435: 0x9900,
- 0x43a: 0xa000, 0x43b: 0x2d56,
- 0x43c: 0xa000, 0x43d: 0x2d5e, 0x43e: 0xa000, 0x43f: 0xa000,
- // Block 0x11, offset 0x440
- 0x440: 0x0069, 0x441: 0x006b, 0x442: 0x006f, 0x443: 0x0083, 0x444: 0x00f5, 0x445: 0x00f8,
- 0x446: 0x0413, 0x447: 0x0085, 0x448: 0x0089, 0x449: 0x008b, 0x44a: 0x0104, 0x44b: 0x0107,
- 0x44c: 0x010a, 0x44d: 0x008f, 0x44f: 0x0097, 0x450: 0x009b, 0x451: 0x00e0,
- 0x452: 0x009f, 0x453: 0x00fe, 0x454: 0x0417, 0x455: 0x041b, 0x456: 0x00a1, 0x457: 0x00a9,
- 0x458: 0x00ab, 0x459: 0x0423, 0x45a: 0x012b, 0x45b: 0x00ad, 0x45c: 0x0427, 0x45d: 0x01be,
- 0x45e: 0x01c1, 0x45f: 0x01c4, 0x460: 0x01fa, 0x461: 0x01fd, 0x462: 0x0093, 0x463: 0x00a5,
- 0x464: 0x00ab, 0x465: 0x00ad, 0x466: 0x01be, 0x467: 0x01c1, 0x468: 0x01eb, 0x469: 0x01fa,
- 0x46a: 0x01fd,
- 0x478: 0x020c,
- // Block 0x12, offset 0x480
- 0x49b: 0x00fb, 0x49c: 0x0087, 0x49d: 0x0101,
- 0x49e: 0x00d4, 0x49f: 0x010a, 0x4a0: 0x008d, 0x4a1: 0x010d, 0x4a2: 0x0110, 0x4a3: 0x0116,
- 0x4a4: 0x011c, 0x4a5: 0x011f, 0x4a6: 0x0122, 0x4a7: 0x042b, 0x4a8: 0x016a, 0x4a9: 0x0128,
- 0x4aa: 0x042f, 0x4ab: 0x016d, 0x4ac: 0x0131, 0x4ad: 0x012e, 0x4ae: 0x0134, 0x4af: 0x0137,
- 0x4b0: 0x013a, 0x4b1: 0x013d, 0x4b2: 0x0140, 0x4b3: 0x014c, 0x4b4: 0x014f, 0x4b5: 0x00ec,
- 0x4b6: 0x0152, 0x4b7: 0x0155, 0x4b8: 0x041f, 0x4b9: 0x0158, 0x4ba: 0x015b, 0x4bb: 0x00b5,
- 0x4bc: 0x015e, 0x4bd: 0x0161, 0x4be: 0x0164, 0x4bf: 0x01d0,
- // Block 0x13, offset 0x4c0
- 0x4c0: 0x8132, 0x4c1: 0x8132, 0x4c2: 0x812d, 0x4c3: 0x8132, 0x4c4: 0x8132, 0x4c5: 0x8132,
- 0x4c6: 0x8132, 0x4c7: 0x8132, 0x4c8: 0x8132, 0x4c9: 0x8132, 0x4ca: 0x812d, 0x4cb: 0x8132,
- 0x4cc: 0x8132, 0x4cd: 0x8135, 0x4ce: 0x812a, 0x4cf: 0x812d, 0x4d0: 0x8129, 0x4d1: 0x8132,
- 0x4d2: 0x8132, 0x4d3: 0x8132, 0x4d4: 0x8132, 0x4d5: 0x8132, 0x4d6: 0x8132, 0x4d7: 0x8132,
- 0x4d8: 0x8132, 0x4d9: 0x8132, 0x4da: 0x8132, 0x4db: 0x8132, 0x4dc: 0x8132, 0x4dd: 0x8132,
- 0x4de: 0x8132, 0x4df: 0x8132, 0x4e0: 0x8132, 0x4e1: 0x8132, 0x4e2: 0x8132, 0x4e3: 0x8132,
- 0x4e4: 0x8132, 0x4e5: 0x8132, 0x4e6: 0x8132, 0x4e7: 0x8132, 0x4e8: 0x8132, 0x4e9: 0x8132,
- 0x4ea: 0x8132, 0x4eb: 0x8132, 0x4ec: 0x8132, 0x4ed: 0x8132, 0x4ee: 0x8132, 0x4ef: 0x8132,
- 0x4f0: 0x8132, 0x4f1: 0x8132, 0x4f2: 0x8132, 0x4f3: 0x8132, 0x4f4: 0x8132, 0x4f5: 0x8132,
- 0x4f6: 0x8133, 0x4f7: 0x8131, 0x4f8: 0x8131, 0x4f9: 0x812d, 0x4fb: 0x8132,
- 0x4fc: 0x8134, 0x4fd: 0x812d, 0x4fe: 0x8132, 0x4ff: 0x812d,
- // Block 0x14, offset 0x500
- 0x500: 0x2f97, 0x501: 0x32a3, 0x502: 0x2fa1, 0x503: 0x32ad, 0x504: 0x2fa6, 0x505: 0x32b2,
- 0x506: 0x2fab, 0x507: 0x32b7, 0x508: 0x38cc, 0x509: 0x3a5b, 0x50a: 0x2fc4, 0x50b: 0x32d0,
- 0x50c: 0x2fce, 0x50d: 0x32da, 0x50e: 0x2fdd, 0x50f: 0x32e9, 0x510: 0x2fd3, 0x511: 0x32df,
- 0x512: 0x2fd8, 0x513: 0x32e4, 0x514: 0x38ef, 0x515: 0x3a7e, 0x516: 0x38f6, 0x517: 0x3a85,
- 0x518: 0x3019, 0x519: 0x3325, 0x51a: 0x301e, 0x51b: 0x332a, 0x51c: 0x3904, 0x51d: 0x3a93,
- 0x51e: 0x3023, 0x51f: 0x332f, 0x520: 0x3032, 0x521: 0x333e, 0x522: 0x3050, 0x523: 0x335c,
- 0x524: 0x305f, 0x525: 0x336b, 0x526: 0x3055, 0x527: 0x3361, 0x528: 0x3064, 0x529: 0x3370,
- 0x52a: 0x3069, 0x52b: 0x3375, 0x52c: 0x30af, 0x52d: 0x33bb, 0x52e: 0x390b, 0x52f: 0x3a9a,
- 0x530: 0x30b9, 0x531: 0x33ca, 0x532: 0x30c3, 0x533: 0x33d4, 0x534: 0x30cd, 0x535: 0x33de,
- 0x536: 0x46c4, 0x537: 0x4755, 0x538: 0x3912, 0x539: 0x3aa1, 0x53a: 0x30e6, 0x53b: 0x33f7,
- 0x53c: 0x30e1, 0x53d: 0x33f2, 0x53e: 0x30eb, 0x53f: 0x33fc,
- // Block 0x15, offset 0x540
- 0x540: 0x30f0, 0x541: 0x3401, 0x542: 0x30f5, 0x543: 0x3406, 0x544: 0x3109, 0x545: 0x341a,
- 0x546: 0x3113, 0x547: 0x3424, 0x548: 0x3122, 0x549: 0x3433, 0x54a: 0x311d, 0x54b: 0x342e,
- 0x54c: 0x3935, 0x54d: 0x3ac4, 0x54e: 0x3943, 0x54f: 0x3ad2, 0x550: 0x394a, 0x551: 0x3ad9,
- 0x552: 0x3951, 0x553: 0x3ae0, 0x554: 0x314f, 0x555: 0x3460, 0x556: 0x3154, 0x557: 0x3465,
- 0x558: 0x315e, 0x559: 0x346f, 0x55a: 0x46f1, 0x55b: 0x4782, 0x55c: 0x3997, 0x55d: 0x3b26,
- 0x55e: 0x3177, 0x55f: 0x3488, 0x560: 0x3181, 0x561: 0x3492, 0x562: 0x4700, 0x563: 0x4791,
- 0x564: 0x399e, 0x565: 0x3b2d, 0x566: 0x39a5, 0x567: 0x3b34, 0x568: 0x39ac, 0x569: 0x3b3b,
- 0x56a: 0x3190, 0x56b: 0x34a1, 0x56c: 0x319a, 0x56d: 0x34b0, 0x56e: 0x31ae, 0x56f: 0x34c4,
- 0x570: 0x31a9, 0x571: 0x34bf, 0x572: 0x31ea, 0x573: 0x3500, 0x574: 0x31f9, 0x575: 0x350f,
- 0x576: 0x31f4, 0x577: 0x350a, 0x578: 0x39b3, 0x579: 0x3b42, 0x57a: 0x39ba, 0x57b: 0x3b49,
- 0x57c: 0x31fe, 0x57d: 0x3514, 0x57e: 0x3203, 0x57f: 0x3519,
- // Block 0x16, offset 0x580
- 0x580: 0x3208, 0x581: 0x351e, 0x582: 0x320d, 0x583: 0x3523, 0x584: 0x321c, 0x585: 0x3532,
- 0x586: 0x3217, 0x587: 0x352d, 0x588: 0x3221, 0x589: 0x353c, 0x58a: 0x3226, 0x58b: 0x3541,
- 0x58c: 0x322b, 0x58d: 0x3546, 0x58e: 0x3249, 0x58f: 0x3564, 0x590: 0x3262, 0x591: 0x3582,
- 0x592: 0x3271, 0x593: 0x3591, 0x594: 0x3276, 0x595: 0x3596, 0x596: 0x337a, 0x597: 0x34a6,
- 0x598: 0x3537, 0x599: 0x3573, 0x59a: 0x1be0, 0x59b: 0x42d7,
- 0x5a0: 0x46a1, 0x5a1: 0x4732, 0x5a2: 0x2f83, 0x5a3: 0x328f,
- 0x5a4: 0x3878, 0x5a5: 0x3a07, 0x5a6: 0x3871, 0x5a7: 0x3a00, 0x5a8: 0x3886, 0x5a9: 0x3a15,
- 0x5aa: 0x387f, 0x5ab: 0x3a0e, 0x5ac: 0x38be, 0x5ad: 0x3a4d, 0x5ae: 0x3894, 0x5af: 0x3a23,
- 0x5b0: 0x388d, 0x5b1: 0x3a1c, 0x5b2: 0x38a2, 0x5b3: 0x3a31, 0x5b4: 0x389b, 0x5b5: 0x3a2a,
- 0x5b6: 0x38c5, 0x5b7: 0x3a54, 0x5b8: 0x46b5, 0x5b9: 0x4746, 0x5ba: 0x3000, 0x5bb: 0x330c,
- 0x5bc: 0x2fec, 0x5bd: 0x32f8, 0x5be: 0x38da, 0x5bf: 0x3a69,
- // Block 0x17, offset 0x5c0
- 0x5c0: 0x38d3, 0x5c1: 0x3a62, 0x5c2: 0x38e8, 0x5c3: 0x3a77, 0x5c4: 0x38e1, 0x5c5: 0x3a70,
- 0x5c6: 0x38fd, 0x5c7: 0x3a8c, 0x5c8: 0x3091, 0x5c9: 0x339d, 0x5ca: 0x30a5, 0x5cb: 0x33b1,
- 0x5cc: 0x46e7, 0x5cd: 0x4778, 0x5ce: 0x3136, 0x5cf: 0x3447, 0x5d0: 0x3920, 0x5d1: 0x3aaf,
- 0x5d2: 0x3919, 0x5d3: 0x3aa8, 0x5d4: 0x392e, 0x5d5: 0x3abd, 0x5d6: 0x3927, 0x5d7: 0x3ab6,
- 0x5d8: 0x3989, 0x5d9: 0x3b18, 0x5da: 0x396d, 0x5db: 0x3afc, 0x5dc: 0x3966, 0x5dd: 0x3af5,
- 0x5de: 0x397b, 0x5df: 0x3b0a, 0x5e0: 0x3974, 0x5e1: 0x3b03, 0x5e2: 0x3982, 0x5e3: 0x3b11,
- 0x5e4: 0x31e5, 0x5e5: 0x34fb, 0x5e6: 0x31c7, 0x5e7: 0x34dd, 0x5e8: 0x39e4, 0x5e9: 0x3b73,
- 0x5ea: 0x39dd, 0x5eb: 0x3b6c, 0x5ec: 0x39f2, 0x5ed: 0x3b81, 0x5ee: 0x39eb, 0x5ef: 0x3b7a,
- 0x5f0: 0x39f9, 0x5f1: 0x3b88, 0x5f2: 0x3230, 0x5f3: 0x354b, 0x5f4: 0x3258, 0x5f5: 0x3578,
- 0x5f6: 0x3253, 0x5f7: 0x356e, 0x5f8: 0x323f, 0x5f9: 0x355a,
- // Block 0x18, offset 0x600
- 0x600: 0x4804, 0x601: 0x480a, 0x602: 0x491e, 0x603: 0x4936, 0x604: 0x4926, 0x605: 0x493e,
- 0x606: 0x492e, 0x607: 0x4946, 0x608: 0x47aa, 0x609: 0x47b0, 0x60a: 0x488e, 0x60b: 0x48a6,
- 0x60c: 0x4896, 0x60d: 0x48ae, 0x60e: 0x489e, 0x60f: 0x48b6, 0x610: 0x4816, 0x611: 0x481c,
- 0x612: 0x3db8, 0x613: 0x3dc8, 0x614: 0x3dc0, 0x615: 0x3dd0,
- 0x618: 0x47b6, 0x619: 0x47bc, 0x61a: 0x3ce8, 0x61b: 0x3cf8, 0x61c: 0x3cf0, 0x61d: 0x3d00,
- 0x620: 0x482e, 0x621: 0x4834, 0x622: 0x494e, 0x623: 0x4966,
- 0x624: 0x4956, 0x625: 0x496e, 0x626: 0x495e, 0x627: 0x4976, 0x628: 0x47c2, 0x629: 0x47c8,
- 0x62a: 0x48be, 0x62b: 0x48d6, 0x62c: 0x48c6, 0x62d: 0x48de, 0x62e: 0x48ce, 0x62f: 0x48e6,
- 0x630: 0x4846, 0x631: 0x484c, 0x632: 0x3e18, 0x633: 0x3e30, 0x634: 0x3e20, 0x635: 0x3e38,
- 0x636: 0x3e28, 0x637: 0x3e40, 0x638: 0x47ce, 0x639: 0x47d4, 0x63a: 0x3d18, 0x63b: 0x3d30,
- 0x63c: 0x3d20, 0x63d: 0x3d38, 0x63e: 0x3d28, 0x63f: 0x3d40,
- // Block 0x19, offset 0x640
- 0x640: 0x4852, 0x641: 0x4858, 0x642: 0x3e48, 0x643: 0x3e58, 0x644: 0x3e50, 0x645: 0x3e60,
- 0x648: 0x47da, 0x649: 0x47e0, 0x64a: 0x3d48, 0x64b: 0x3d58,
- 0x64c: 0x3d50, 0x64d: 0x3d60, 0x650: 0x4864, 0x651: 0x486a,
- 0x652: 0x3e80, 0x653: 0x3e98, 0x654: 0x3e88, 0x655: 0x3ea0, 0x656: 0x3e90, 0x657: 0x3ea8,
- 0x659: 0x47e6, 0x65b: 0x3d68, 0x65d: 0x3d70,
- 0x65f: 0x3d78, 0x660: 0x487c, 0x661: 0x4882, 0x662: 0x497e, 0x663: 0x4996,
- 0x664: 0x4986, 0x665: 0x499e, 0x666: 0x498e, 0x667: 0x49a6, 0x668: 0x47ec, 0x669: 0x47f2,
- 0x66a: 0x48ee, 0x66b: 0x4906, 0x66c: 0x48f6, 0x66d: 0x490e, 0x66e: 0x48fe, 0x66f: 0x4916,
- 0x670: 0x47f8, 0x671: 0x431e, 0x672: 0x3691, 0x673: 0x4324, 0x674: 0x4822, 0x675: 0x432a,
- 0x676: 0x36a3, 0x677: 0x4330, 0x678: 0x36c1, 0x679: 0x4336, 0x67a: 0x36d9, 0x67b: 0x433c,
- 0x67c: 0x4870, 0x67d: 0x4342,
- // Block 0x1a, offset 0x680
- 0x680: 0x3da0, 0x681: 0x3da8, 0x682: 0x4184, 0x683: 0x41a2, 0x684: 0x418e, 0x685: 0x41ac,
- 0x686: 0x4198, 0x687: 0x41b6, 0x688: 0x3cd8, 0x689: 0x3ce0, 0x68a: 0x40d0, 0x68b: 0x40ee,
- 0x68c: 0x40da, 0x68d: 0x40f8, 0x68e: 0x40e4, 0x68f: 0x4102, 0x690: 0x3de8, 0x691: 0x3df0,
- 0x692: 0x41c0, 0x693: 0x41de, 0x694: 0x41ca, 0x695: 0x41e8, 0x696: 0x41d4, 0x697: 0x41f2,
- 0x698: 0x3d08, 0x699: 0x3d10, 0x69a: 0x410c, 0x69b: 0x412a, 0x69c: 0x4116, 0x69d: 0x4134,
- 0x69e: 0x4120, 0x69f: 0x413e, 0x6a0: 0x3ec0, 0x6a1: 0x3ec8, 0x6a2: 0x41fc, 0x6a3: 0x421a,
- 0x6a4: 0x4206, 0x6a5: 0x4224, 0x6a6: 0x4210, 0x6a7: 0x422e, 0x6a8: 0x3d80, 0x6a9: 0x3d88,
- 0x6aa: 0x4148, 0x6ab: 0x4166, 0x6ac: 0x4152, 0x6ad: 0x4170, 0x6ae: 0x415c, 0x6af: 0x417a,
- 0x6b0: 0x3685, 0x6b1: 0x367f, 0x6b2: 0x3d90, 0x6b3: 0x368b, 0x6b4: 0x3d98,
- 0x6b6: 0x4810, 0x6b7: 0x3db0, 0x6b8: 0x35f5, 0x6b9: 0x35ef, 0x6ba: 0x35e3, 0x6bb: 0x42ee,
- 0x6bc: 0x35fb, 0x6bd: 0x4287, 0x6be: 0x01d3, 0x6bf: 0x4287,
- // Block 0x1b, offset 0x6c0
- 0x6c0: 0x42a0, 0x6c1: 0x4482, 0x6c2: 0x3dd8, 0x6c3: 0x369d, 0x6c4: 0x3de0,
- 0x6c6: 0x483a, 0x6c7: 0x3df8, 0x6c8: 0x3601, 0x6c9: 0x42f4, 0x6ca: 0x360d, 0x6cb: 0x42fa,
- 0x6cc: 0x3619, 0x6cd: 0x4489, 0x6ce: 0x4490, 0x6cf: 0x4497, 0x6d0: 0x36b5, 0x6d1: 0x36af,
- 0x6d2: 0x3e00, 0x6d3: 0x44e4, 0x6d6: 0x36bb, 0x6d7: 0x3e10,
- 0x6d8: 0x3631, 0x6d9: 0x362b, 0x6da: 0x361f, 0x6db: 0x4300, 0x6dd: 0x449e,
- 0x6de: 0x44a5, 0x6df: 0x44ac, 0x6e0: 0x36eb, 0x6e1: 0x36e5, 0x6e2: 0x3e68, 0x6e3: 0x44ec,
- 0x6e4: 0x36cd, 0x6e5: 0x36d3, 0x6e6: 0x36f1, 0x6e7: 0x3e78, 0x6e8: 0x3661, 0x6e9: 0x365b,
- 0x6ea: 0x364f, 0x6eb: 0x430c, 0x6ec: 0x3649, 0x6ed: 0x4474, 0x6ee: 0x447b, 0x6ef: 0x0081,
- 0x6f2: 0x3eb0, 0x6f3: 0x36f7, 0x6f4: 0x3eb8,
- 0x6f6: 0x4888, 0x6f7: 0x3ed0, 0x6f8: 0x363d, 0x6f9: 0x4306, 0x6fa: 0x366d, 0x6fb: 0x4318,
- 0x6fc: 0x3679, 0x6fd: 0x425a, 0x6fe: 0x428c,
- // Block 0x1c, offset 0x700
- 0x700: 0x1bd8, 0x701: 0x1bdc, 0x702: 0x0047, 0x703: 0x1c54, 0x705: 0x1be8,
- 0x706: 0x1bec, 0x707: 0x00e9, 0x709: 0x1c58, 0x70a: 0x008f, 0x70b: 0x0051,
- 0x70c: 0x0051, 0x70d: 0x0051, 0x70e: 0x0091, 0x70f: 0x00da, 0x710: 0x0053, 0x711: 0x0053,
- 0x712: 0x0059, 0x713: 0x0099, 0x715: 0x005d, 0x716: 0x198d,
- 0x719: 0x0061, 0x71a: 0x0063, 0x71b: 0x0065, 0x71c: 0x0065, 0x71d: 0x0065,
- 0x720: 0x199f, 0x721: 0x1bc8, 0x722: 0x19a8,
- 0x724: 0x0075, 0x726: 0x01b8, 0x728: 0x0075,
- 0x72a: 0x0057, 0x72b: 0x42d2, 0x72c: 0x0045, 0x72d: 0x0047, 0x72f: 0x008b,
- 0x730: 0x004b, 0x731: 0x004d, 0x733: 0x005b, 0x734: 0x009f, 0x735: 0x0215,
- 0x736: 0x0218, 0x737: 0x021b, 0x738: 0x021e, 0x739: 0x0093, 0x73b: 0x1b98,
- 0x73c: 0x01e8, 0x73d: 0x01c1, 0x73e: 0x0179, 0x73f: 0x01a0,
- // Block 0x1d, offset 0x740
- 0x740: 0x0463, 0x745: 0x0049,
- 0x746: 0x0089, 0x747: 0x008b, 0x748: 0x0093, 0x749: 0x0095,
- 0x750: 0x222e, 0x751: 0x223a,
- 0x752: 0x22ee, 0x753: 0x2216, 0x754: 0x229a, 0x755: 0x2222, 0x756: 0x22a0, 0x757: 0x22b8,
- 0x758: 0x22c4, 0x759: 0x2228, 0x75a: 0x22ca, 0x75b: 0x2234, 0x75c: 0x22be, 0x75d: 0x22d0,
- 0x75e: 0x22d6, 0x75f: 0x1cbc, 0x760: 0x0053, 0x761: 0x195a, 0x762: 0x1ba4, 0x763: 0x1963,
- 0x764: 0x006d, 0x765: 0x19ab, 0x766: 0x1bd0, 0x767: 0x1d48, 0x768: 0x1966, 0x769: 0x0071,
- 0x76a: 0x19b7, 0x76b: 0x1bd4, 0x76c: 0x0059, 0x76d: 0x0047, 0x76e: 0x0049, 0x76f: 0x005b,
- 0x770: 0x0093, 0x771: 0x19e4, 0x772: 0x1c18, 0x773: 0x19ed, 0x774: 0x00ad, 0x775: 0x1a62,
- 0x776: 0x1c4c, 0x777: 0x1d5c, 0x778: 0x19f0, 0x779: 0x00b1, 0x77a: 0x1a65, 0x77b: 0x1c50,
- 0x77c: 0x0099, 0x77d: 0x0087, 0x77e: 0x0089, 0x77f: 0x009b,
- // Block 0x1e, offset 0x780
- 0x781: 0x3c06, 0x783: 0xa000, 0x784: 0x3c0d, 0x785: 0xa000,
- 0x787: 0x3c14, 0x788: 0xa000, 0x789: 0x3c1b,
- 0x78d: 0xa000,
- 0x7a0: 0x2f65, 0x7a1: 0xa000, 0x7a2: 0x3c29,
- 0x7a4: 0xa000, 0x7a5: 0xa000,
- 0x7ad: 0x3c22, 0x7ae: 0x2f60, 0x7af: 0x2f6a,
- 0x7b0: 0x3c30, 0x7b1: 0x3c37, 0x7b2: 0xa000, 0x7b3: 0xa000, 0x7b4: 0x3c3e, 0x7b5: 0x3c45,
- 0x7b6: 0xa000, 0x7b7: 0xa000, 0x7b8: 0x3c4c, 0x7b9: 0x3c53, 0x7ba: 0xa000, 0x7bb: 0xa000,
- 0x7bc: 0xa000, 0x7bd: 0xa000,
- // Block 0x1f, offset 0x7c0
- 0x7c0: 0x3c5a, 0x7c1: 0x3c61, 0x7c2: 0xa000, 0x7c3: 0xa000, 0x7c4: 0x3c76, 0x7c5: 0x3c7d,
- 0x7c6: 0xa000, 0x7c7: 0xa000, 0x7c8: 0x3c84, 0x7c9: 0x3c8b,
- 0x7d1: 0xa000,
- 0x7d2: 0xa000,
- 0x7e2: 0xa000,
- 0x7e8: 0xa000, 0x7e9: 0xa000,
- 0x7eb: 0xa000, 0x7ec: 0x3ca0, 0x7ed: 0x3ca7, 0x7ee: 0x3cae, 0x7ef: 0x3cb5,
- 0x7f2: 0xa000, 0x7f3: 0xa000, 0x7f4: 0xa000, 0x7f5: 0xa000,
- // Block 0x20, offset 0x800
- 0x820: 0x0023, 0x821: 0x0025, 0x822: 0x0027, 0x823: 0x0029,
- 0x824: 0x002b, 0x825: 0x002d, 0x826: 0x002f, 0x827: 0x0031, 0x828: 0x0033, 0x829: 0x1882,
- 0x82a: 0x1885, 0x82b: 0x1888, 0x82c: 0x188b, 0x82d: 0x188e, 0x82e: 0x1891, 0x82f: 0x1894,
- 0x830: 0x1897, 0x831: 0x189a, 0x832: 0x189d, 0x833: 0x18a6, 0x834: 0x1a68, 0x835: 0x1a6c,
- 0x836: 0x1a70, 0x837: 0x1a74, 0x838: 0x1a78, 0x839: 0x1a7c, 0x83a: 0x1a80, 0x83b: 0x1a84,
- 0x83c: 0x1a88, 0x83d: 0x1c80, 0x83e: 0x1c85, 0x83f: 0x1c8a,
- // Block 0x21, offset 0x840
- 0x840: 0x1c8f, 0x841: 0x1c94, 0x842: 0x1c99, 0x843: 0x1c9e, 0x844: 0x1ca3, 0x845: 0x1ca8,
- 0x846: 0x1cad, 0x847: 0x1cb2, 0x848: 0x187f, 0x849: 0x18a3, 0x84a: 0x18c7, 0x84b: 0x18eb,
- 0x84c: 0x190f, 0x84d: 0x1918, 0x84e: 0x191e, 0x84f: 0x1924, 0x850: 0x192a, 0x851: 0x1b60,
- 0x852: 0x1b64, 0x853: 0x1b68, 0x854: 0x1b6c, 0x855: 0x1b70, 0x856: 0x1b74, 0x857: 0x1b78,
- 0x858: 0x1b7c, 0x859: 0x1b80, 0x85a: 0x1b84, 0x85b: 0x1b88, 0x85c: 0x1af4, 0x85d: 0x1af8,
- 0x85e: 0x1afc, 0x85f: 0x1b00, 0x860: 0x1b04, 0x861: 0x1b08, 0x862: 0x1b0c, 0x863: 0x1b10,
- 0x864: 0x1b14, 0x865: 0x1b18, 0x866: 0x1b1c, 0x867: 0x1b20, 0x868: 0x1b24, 0x869: 0x1b28,
- 0x86a: 0x1b2c, 0x86b: 0x1b30, 0x86c: 0x1b34, 0x86d: 0x1b38, 0x86e: 0x1b3c, 0x86f: 0x1b40,
- 0x870: 0x1b44, 0x871: 0x1b48, 0x872: 0x1b4c, 0x873: 0x1b50, 0x874: 0x1b54, 0x875: 0x1b58,
- 0x876: 0x0043, 0x877: 0x0045, 0x878: 0x0047, 0x879: 0x0049, 0x87a: 0x004b, 0x87b: 0x004d,
- 0x87c: 0x004f, 0x87d: 0x0051, 0x87e: 0x0053, 0x87f: 0x0055,
- // Block 0x22, offset 0x880
- 0x880: 0x06bf, 0x881: 0x06e3, 0x882: 0x06ef, 0x883: 0x06ff, 0x884: 0x0707, 0x885: 0x0713,
- 0x886: 0x071b, 0x887: 0x0723, 0x888: 0x072f, 0x889: 0x0783, 0x88a: 0x079b, 0x88b: 0x07ab,
- 0x88c: 0x07bb, 0x88d: 0x07cb, 0x88e: 0x07db, 0x88f: 0x07fb, 0x890: 0x07ff, 0x891: 0x0803,
- 0x892: 0x0837, 0x893: 0x085f, 0x894: 0x086f, 0x895: 0x0877, 0x896: 0x087b, 0x897: 0x0887,
- 0x898: 0x08a3, 0x899: 0x08a7, 0x89a: 0x08bf, 0x89b: 0x08c3, 0x89c: 0x08cb, 0x89d: 0x08db,
- 0x89e: 0x0977, 0x89f: 0x098b, 0x8a0: 0x09cb, 0x8a1: 0x09df, 0x8a2: 0x09e7, 0x8a3: 0x09eb,
- 0x8a4: 0x09fb, 0x8a5: 0x0a17, 0x8a6: 0x0a43, 0x8a7: 0x0a4f, 0x8a8: 0x0a6f, 0x8a9: 0x0a7b,
- 0x8aa: 0x0a7f, 0x8ab: 0x0a83, 0x8ac: 0x0a9b, 0x8ad: 0x0a9f, 0x8ae: 0x0acb, 0x8af: 0x0ad7,
- 0x8b0: 0x0adf, 0x8b1: 0x0ae7, 0x8b2: 0x0af7, 0x8b3: 0x0aff, 0x8b4: 0x0b07, 0x8b5: 0x0b33,
- 0x8b6: 0x0b37, 0x8b7: 0x0b3f, 0x8b8: 0x0b43, 0x8b9: 0x0b4b, 0x8ba: 0x0b53, 0x8bb: 0x0b63,
- 0x8bc: 0x0b7f, 0x8bd: 0x0bf7, 0x8be: 0x0c0b, 0x8bf: 0x0c0f,
- // Block 0x23, offset 0x8c0
- 0x8c0: 0x0c8f, 0x8c1: 0x0c93, 0x8c2: 0x0ca7, 0x8c3: 0x0cab, 0x8c4: 0x0cb3, 0x8c5: 0x0cbb,
- 0x8c6: 0x0cc3, 0x8c7: 0x0ccf, 0x8c8: 0x0cf7, 0x8c9: 0x0d07, 0x8ca: 0x0d1b, 0x8cb: 0x0d8b,
- 0x8cc: 0x0d97, 0x8cd: 0x0da7, 0x8ce: 0x0db3, 0x8cf: 0x0dbf, 0x8d0: 0x0dc7, 0x8d1: 0x0dcb,
- 0x8d2: 0x0dcf, 0x8d3: 0x0dd3, 0x8d4: 0x0dd7, 0x8d5: 0x0e8f, 0x8d6: 0x0ed7, 0x8d7: 0x0ee3,
- 0x8d8: 0x0ee7, 0x8d9: 0x0eeb, 0x8da: 0x0eef, 0x8db: 0x0ef7, 0x8dc: 0x0efb, 0x8dd: 0x0f0f,
- 0x8de: 0x0f2b, 0x8df: 0x0f33, 0x8e0: 0x0f73, 0x8e1: 0x0f77, 0x8e2: 0x0f7f, 0x8e3: 0x0f83,
- 0x8e4: 0x0f8b, 0x8e5: 0x0f8f, 0x8e6: 0x0fb3, 0x8e7: 0x0fb7, 0x8e8: 0x0fd3, 0x8e9: 0x0fd7,
- 0x8ea: 0x0fdb, 0x8eb: 0x0fdf, 0x8ec: 0x0ff3, 0x8ed: 0x1017, 0x8ee: 0x101b, 0x8ef: 0x101f,
- 0x8f0: 0x1043, 0x8f1: 0x1083, 0x8f2: 0x1087, 0x8f3: 0x10a7, 0x8f4: 0x10b7, 0x8f5: 0x10bf,
- 0x8f6: 0x10df, 0x8f7: 0x1103, 0x8f8: 0x1147, 0x8f9: 0x114f, 0x8fa: 0x1163, 0x8fb: 0x116f,
- 0x8fc: 0x1177, 0x8fd: 0x117f, 0x8fe: 0x1183, 0x8ff: 0x1187,
- // Block 0x24, offset 0x900
- 0x900: 0x119f, 0x901: 0x11a3, 0x902: 0x11bf, 0x903: 0x11c7, 0x904: 0x11cf, 0x905: 0x11d3,
- 0x906: 0x11df, 0x907: 0x11e7, 0x908: 0x11eb, 0x909: 0x11ef, 0x90a: 0x11f7, 0x90b: 0x11fb,
- 0x90c: 0x129b, 0x90d: 0x12af, 0x90e: 0x12e3, 0x90f: 0x12e7, 0x910: 0x12ef, 0x911: 0x131b,
- 0x912: 0x1323, 0x913: 0x132b, 0x914: 0x1333, 0x915: 0x136f, 0x916: 0x1373, 0x917: 0x137b,
- 0x918: 0x137f, 0x919: 0x1383, 0x91a: 0x13af, 0x91b: 0x13b3, 0x91c: 0x13bb, 0x91d: 0x13cf,
- 0x91e: 0x13d3, 0x91f: 0x13ef, 0x920: 0x13f7, 0x921: 0x13fb, 0x922: 0x141f, 0x923: 0x143f,
- 0x924: 0x1453, 0x925: 0x1457, 0x926: 0x145f, 0x927: 0x148b, 0x928: 0x148f, 0x929: 0x149f,
- 0x92a: 0x14c3, 0x92b: 0x14cf, 0x92c: 0x14df, 0x92d: 0x14f7, 0x92e: 0x14ff, 0x92f: 0x1503,
- 0x930: 0x1507, 0x931: 0x150b, 0x932: 0x1517, 0x933: 0x151b, 0x934: 0x1523, 0x935: 0x153f,
- 0x936: 0x1543, 0x937: 0x1547, 0x938: 0x155f, 0x939: 0x1563, 0x93a: 0x156b, 0x93b: 0x157f,
- 0x93c: 0x1583, 0x93d: 0x1587, 0x93e: 0x158f, 0x93f: 0x1593,
- // Block 0x25, offset 0x940
- 0x946: 0xa000, 0x94b: 0xa000,
- 0x94c: 0x3f08, 0x94d: 0xa000, 0x94e: 0x3f10, 0x94f: 0xa000, 0x950: 0x3f18, 0x951: 0xa000,
- 0x952: 0x3f20, 0x953: 0xa000, 0x954: 0x3f28, 0x955: 0xa000, 0x956: 0x3f30, 0x957: 0xa000,
- 0x958: 0x3f38, 0x959: 0xa000, 0x95a: 0x3f40, 0x95b: 0xa000, 0x95c: 0x3f48, 0x95d: 0xa000,
- 0x95e: 0x3f50, 0x95f: 0xa000, 0x960: 0x3f58, 0x961: 0xa000, 0x962: 0x3f60,
- 0x964: 0xa000, 0x965: 0x3f68, 0x966: 0xa000, 0x967: 0x3f70, 0x968: 0xa000, 0x969: 0x3f78,
- 0x96f: 0xa000,
- 0x970: 0x3f80, 0x971: 0x3f88, 0x972: 0xa000, 0x973: 0x3f90, 0x974: 0x3f98, 0x975: 0xa000,
- 0x976: 0x3fa0, 0x977: 0x3fa8, 0x978: 0xa000, 0x979: 0x3fb0, 0x97a: 0x3fb8, 0x97b: 0xa000,
- 0x97c: 0x3fc0, 0x97d: 0x3fc8,
- // Block 0x26, offset 0x980
- 0x994: 0x3f00,
- 0x999: 0x9903, 0x99a: 0x9903, 0x99b: 0x42dc, 0x99c: 0x42e2, 0x99d: 0xa000,
- 0x99e: 0x3fd0, 0x99f: 0x26b4,
- 0x9a6: 0xa000,
- 0x9ab: 0xa000, 0x9ac: 0x3fe0, 0x9ad: 0xa000, 0x9ae: 0x3fe8, 0x9af: 0xa000,
- 0x9b0: 0x3ff0, 0x9b1: 0xa000, 0x9b2: 0x3ff8, 0x9b3: 0xa000, 0x9b4: 0x4000, 0x9b5: 0xa000,
- 0x9b6: 0x4008, 0x9b7: 0xa000, 0x9b8: 0x4010, 0x9b9: 0xa000, 0x9ba: 0x4018, 0x9bb: 0xa000,
- 0x9bc: 0x4020, 0x9bd: 0xa000, 0x9be: 0x4028, 0x9bf: 0xa000,
- // Block 0x27, offset 0x9c0
- 0x9c0: 0x4030, 0x9c1: 0xa000, 0x9c2: 0x4038, 0x9c4: 0xa000, 0x9c5: 0x4040,
- 0x9c6: 0xa000, 0x9c7: 0x4048, 0x9c8: 0xa000, 0x9c9: 0x4050,
- 0x9cf: 0xa000, 0x9d0: 0x4058, 0x9d1: 0x4060,
- 0x9d2: 0xa000, 0x9d3: 0x4068, 0x9d4: 0x4070, 0x9d5: 0xa000, 0x9d6: 0x4078, 0x9d7: 0x4080,
- 0x9d8: 0xa000, 0x9d9: 0x4088, 0x9da: 0x4090, 0x9db: 0xa000, 0x9dc: 0x4098, 0x9dd: 0x40a0,
- 0x9ef: 0xa000,
- 0x9f0: 0xa000, 0x9f1: 0xa000, 0x9f2: 0xa000, 0x9f4: 0x3fd8,
- 0x9f7: 0x40a8, 0x9f8: 0x40b0, 0x9f9: 0x40b8, 0x9fa: 0x40c0,
- 0x9fd: 0xa000, 0x9fe: 0x40c8, 0x9ff: 0x26c9,
- // Block 0x28, offset 0xa00
- 0xa00: 0x0367, 0xa01: 0x032b, 0xa02: 0x032f, 0xa03: 0x0333, 0xa04: 0x037b, 0xa05: 0x0337,
- 0xa06: 0x033b, 0xa07: 0x033f, 0xa08: 0x0343, 0xa09: 0x0347, 0xa0a: 0x034b, 0xa0b: 0x034f,
- 0xa0c: 0x0353, 0xa0d: 0x0357, 0xa0e: 0x035b, 0xa0f: 0x49bd, 0xa10: 0x49c3, 0xa11: 0x49c9,
- 0xa12: 0x49cf, 0xa13: 0x49d5, 0xa14: 0x49db, 0xa15: 0x49e1, 0xa16: 0x49e7, 0xa17: 0x49ed,
- 0xa18: 0x49f3, 0xa19: 0x49f9, 0xa1a: 0x49ff, 0xa1b: 0x4a05, 0xa1c: 0x4a0b, 0xa1d: 0x4a11,
- 0xa1e: 0x4a17, 0xa1f: 0x4a1d, 0xa20: 0x4a23, 0xa21: 0x4a29, 0xa22: 0x4a2f, 0xa23: 0x4a35,
- 0xa24: 0x03c3, 0xa25: 0x035f, 0xa26: 0x0363, 0xa27: 0x03e7, 0xa28: 0x03eb, 0xa29: 0x03ef,
- 0xa2a: 0x03f3, 0xa2b: 0x03f7, 0xa2c: 0x03fb, 0xa2d: 0x03ff, 0xa2e: 0x036b, 0xa2f: 0x0403,
- 0xa30: 0x0407, 0xa31: 0x036f, 0xa32: 0x0373, 0xa33: 0x0377, 0xa34: 0x037f, 0xa35: 0x0383,
- 0xa36: 0x0387, 0xa37: 0x038b, 0xa38: 0x038f, 0xa39: 0x0393, 0xa3a: 0x0397, 0xa3b: 0x039b,
- 0xa3c: 0x039f, 0xa3d: 0x03a3, 0xa3e: 0x03a7, 0xa3f: 0x03ab,
- // Block 0x29, offset 0xa40
- 0xa40: 0x03af, 0xa41: 0x03b3, 0xa42: 0x040b, 0xa43: 0x040f, 0xa44: 0x03b7, 0xa45: 0x03bb,
- 0xa46: 0x03bf, 0xa47: 0x03c7, 0xa48: 0x03cb, 0xa49: 0x03cf, 0xa4a: 0x03d3, 0xa4b: 0x03d7,
- 0xa4c: 0x03db, 0xa4d: 0x03df, 0xa4e: 0x03e3,
- 0xa52: 0x06bf, 0xa53: 0x071b, 0xa54: 0x06cb, 0xa55: 0x097b, 0xa56: 0x06cf, 0xa57: 0x06e7,
- 0xa58: 0x06d3, 0xa59: 0x0f93, 0xa5a: 0x0707, 0xa5b: 0x06db, 0xa5c: 0x06c3, 0xa5d: 0x09ff,
- 0xa5e: 0x098f, 0xa5f: 0x072f,
- // Block 0x2a, offset 0xa80
- 0xa80: 0x2054, 0xa81: 0x205a, 0xa82: 0x2060, 0xa83: 0x2066, 0xa84: 0x206c, 0xa85: 0x2072,
- 0xa86: 0x2078, 0xa87: 0x207e, 0xa88: 0x2084, 0xa89: 0x208a, 0xa8a: 0x2090, 0xa8b: 0x2096,
- 0xa8c: 0x209c, 0xa8d: 0x20a2, 0xa8e: 0x2726, 0xa8f: 0x272f, 0xa90: 0x2738, 0xa91: 0x2741,
- 0xa92: 0x274a, 0xa93: 0x2753, 0xa94: 0x275c, 0xa95: 0x2765, 0xa96: 0x276e, 0xa97: 0x2780,
- 0xa98: 0x2789, 0xa99: 0x2792, 0xa9a: 0x279b, 0xa9b: 0x27a4, 0xa9c: 0x2777, 0xa9d: 0x2bac,
- 0xa9e: 0x2aed, 0xaa0: 0x20a8, 0xaa1: 0x20c0, 0xaa2: 0x20b4, 0xaa3: 0x2108,
- 0xaa4: 0x20c6, 0xaa5: 0x20e4, 0xaa6: 0x20ae, 0xaa7: 0x20de, 0xaa8: 0x20ba, 0xaa9: 0x20f0,
- 0xaaa: 0x2120, 0xaab: 0x213e, 0xaac: 0x2138, 0xaad: 0x212c, 0xaae: 0x217a, 0xaaf: 0x210e,
- 0xab0: 0x211a, 0xab1: 0x2132, 0xab2: 0x2126, 0xab3: 0x2150, 0xab4: 0x20fc, 0xab5: 0x2144,
- 0xab6: 0x216e, 0xab7: 0x2156, 0xab8: 0x20ea, 0xab9: 0x20cc, 0xaba: 0x2102, 0xabb: 0x2114,
- 0xabc: 0x214a, 0xabd: 0x20d2, 0xabe: 0x2174, 0xabf: 0x20f6,
- // Block 0x2b, offset 0xac0
- 0xac0: 0x215c, 0xac1: 0x20d8, 0xac2: 0x2162, 0xac3: 0x2168, 0xac4: 0x092f, 0xac5: 0x0b03,
- 0xac6: 0x0ca7, 0xac7: 0x10c7,
- 0xad0: 0x1bc4, 0xad1: 0x18a9,
- 0xad2: 0x18ac, 0xad3: 0x18af, 0xad4: 0x18b2, 0xad5: 0x18b5, 0xad6: 0x18b8, 0xad7: 0x18bb,
- 0xad8: 0x18be, 0xad9: 0x18c1, 0xada: 0x18ca, 0xadb: 0x18cd, 0xadc: 0x18d0, 0xadd: 0x18d3,
- 0xade: 0x18d6, 0xadf: 0x18d9, 0xae0: 0x0313, 0xae1: 0x031b, 0xae2: 0x031f, 0xae3: 0x0327,
- 0xae4: 0x032b, 0xae5: 0x032f, 0xae6: 0x0337, 0xae7: 0x033f, 0xae8: 0x0343, 0xae9: 0x034b,
- 0xaea: 0x034f, 0xaeb: 0x0353, 0xaec: 0x0357, 0xaed: 0x035b, 0xaee: 0x2e18, 0xaef: 0x2e20,
- 0xaf0: 0x2e28, 0xaf1: 0x2e30, 0xaf2: 0x2e38, 0xaf3: 0x2e40, 0xaf4: 0x2e48, 0xaf5: 0x2e50,
- 0xaf6: 0x2e60, 0xaf7: 0x2e68, 0xaf8: 0x2e70, 0xaf9: 0x2e78, 0xafa: 0x2e80, 0xafb: 0x2e88,
- 0xafc: 0x2ed3, 0xafd: 0x2e9b, 0xafe: 0x2e58,
- // Block 0x2c, offset 0xb00
- 0xb00: 0x06bf, 0xb01: 0x071b, 0xb02: 0x06cb, 0xb03: 0x097b, 0xb04: 0x071f, 0xb05: 0x07af,
- 0xb06: 0x06c7, 0xb07: 0x07ab, 0xb08: 0x070b, 0xb09: 0x0887, 0xb0a: 0x0d07, 0xb0b: 0x0e8f,
- 0xb0c: 0x0dd7, 0xb0d: 0x0d1b, 0xb0e: 0x145f, 0xb0f: 0x098b, 0xb10: 0x0ccf, 0xb11: 0x0d4b,
- 0xb12: 0x0d0b, 0xb13: 0x104b, 0xb14: 0x08fb, 0xb15: 0x0f03, 0xb16: 0x1387, 0xb17: 0x105f,
- 0xb18: 0x0843, 0xb19: 0x108f, 0xb1a: 0x0f9b, 0xb1b: 0x0a17, 0xb1c: 0x140f, 0xb1d: 0x077f,
- 0xb1e: 0x08ab, 0xb1f: 0x0df7, 0xb20: 0x1527, 0xb21: 0x0743, 0xb22: 0x07d3, 0xb23: 0x0d9b,
- 0xb24: 0x06cf, 0xb25: 0x06e7, 0xb26: 0x06d3, 0xb27: 0x0adb, 0xb28: 0x08ef, 0xb29: 0x087f,
- 0xb2a: 0x0a57, 0xb2b: 0x0a4b, 0xb2c: 0x0feb, 0xb2d: 0x073f, 0xb2e: 0x139b, 0xb2f: 0x089b,
- 0xb30: 0x09f3, 0xb31: 0x18dc, 0xb32: 0x18df, 0xb33: 0x18e2, 0xb34: 0x18e5, 0xb35: 0x18ee,
- 0xb36: 0x18f1, 0xb37: 0x18f4, 0xb38: 0x18f7, 0xb39: 0x18fa, 0xb3a: 0x18fd, 0xb3b: 0x1900,
- 0xb3c: 0x1903, 0xb3d: 0x1906, 0xb3e: 0x1909, 0xb3f: 0x1912,
- // Block 0x2d, offset 0xb40
- 0xb40: 0x1cc6, 0xb41: 0x1cd5, 0xb42: 0x1ce4, 0xb43: 0x1cf3, 0xb44: 0x1d02, 0xb45: 0x1d11,
- 0xb46: 0x1d20, 0xb47: 0x1d2f, 0xb48: 0x1d3e, 0xb49: 0x218c, 0xb4a: 0x219e, 0xb4b: 0x21b0,
- 0xb4c: 0x1954, 0xb4d: 0x1c04, 0xb4e: 0x19d2, 0xb4f: 0x1ba8, 0xb50: 0x04cb, 0xb51: 0x04d3,
- 0xb52: 0x04db, 0xb53: 0x04e3, 0xb54: 0x04eb, 0xb55: 0x04ef, 0xb56: 0x04f3, 0xb57: 0x04f7,
- 0xb58: 0x04fb, 0xb59: 0x04ff, 0xb5a: 0x0503, 0xb5b: 0x0507, 0xb5c: 0x050b, 0xb5d: 0x050f,
- 0xb5e: 0x0513, 0xb5f: 0x0517, 0xb60: 0x051b, 0xb61: 0x0523, 0xb62: 0x0527, 0xb63: 0x052b,
- 0xb64: 0x052f, 0xb65: 0x0533, 0xb66: 0x0537, 0xb67: 0x053b, 0xb68: 0x053f, 0xb69: 0x0543,
- 0xb6a: 0x0547, 0xb6b: 0x054b, 0xb6c: 0x054f, 0xb6d: 0x0553, 0xb6e: 0x0557, 0xb6f: 0x055b,
- 0xb70: 0x055f, 0xb71: 0x0563, 0xb72: 0x0567, 0xb73: 0x056f, 0xb74: 0x0577, 0xb75: 0x057f,
- 0xb76: 0x0583, 0xb77: 0x0587, 0xb78: 0x058b, 0xb79: 0x058f, 0xb7a: 0x0593, 0xb7b: 0x0597,
- 0xb7c: 0x059b, 0xb7d: 0x059f, 0xb7e: 0x05a3,
- // Block 0x2e, offset 0xb80
- 0xb80: 0x2b0c, 0xb81: 0x29a8, 0xb82: 0x2b1c, 0xb83: 0x2880, 0xb84: 0x2ee4, 0xb85: 0x288a,
- 0xb86: 0x2894, 0xb87: 0x2f28, 0xb88: 0x29b5, 0xb89: 0x289e, 0xb8a: 0x28a8, 0xb8b: 0x28b2,
- 0xb8c: 0x29dc, 0xb8d: 0x29e9, 0xb8e: 0x29c2, 0xb8f: 0x29cf, 0xb90: 0x2ea9, 0xb91: 0x29f6,
- 0xb92: 0x2a03, 0xb93: 0x2bbe, 0xb94: 0x26bb, 0xb95: 0x2bd1, 0xb96: 0x2be4, 0xb97: 0x2b2c,
- 0xb98: 0x2a10, 0xb99: 0x2bf7, 0xb9a: 0x2c0a, 0xb9b: 0x2a1d, 0xb9c: 0x28bc, 0xb9d: 0x28c6,
- 0xb9e: 0x2eb7, 0xb9f: 0x2a2a, 0xba0: 0x2b3c, 0xba1: 0x2ef5, 0xba2: 0x28d0, 0xba3: 0x28da,
- 0xba4: 0x2a37, 0xba5: 0x28e4, 0xba6: 0x28ee, 0xba7: 0x26d0, 0xba8: 0x26d7, 0xba9: 0x28f8,
- 0xbaa: 0x2902, 0xbab: 0x2c1d, 0xbac: 0x2a44, 0xbad: 0x2b4c, 0xbae: 0x2c30, 0xbaf: 0x2a51,
- 0xbb0: 0x2916, 0xbb1: 0x290c, 0xbb2: 0x2f3c, 0xbb3: 0x2a5e, 0xbb4: 0x2c43, 0xbb5: 0x2920,
- 0xbb6: 0x2b5c, 0xbb7: 0x292a, 0xbb8: 0x2a78, 0xbb9: 0x2934, 0xbba: 0x2a85, 0xbbb: 0x2f06,
- 0xbbc: 0x2a6b, 0xbbd: 0x2b6c, 0xbbe: 0x2a92, 0xbbf: 0x26de,
- // Block 0x2f, offset 0xbc0
- 0xbc0: 0x2f17, 0xbc1: 0x293e, 0xbc2: 0x2948, 0xbc3: 0x2a9f, 0xbc4: 0x2952, 0xbc5: 0x295c,
- 0xbc6: 0x2966, 0xbc7: 0x2b7c, 0xbc8: 0x2aac, 0xbc9: 0x26e5, 0xbca: 0x2c56, 0xbcb: 0x2e90,
- 0xbcc: 0x2b8c, 0xbcd: 0x2ab9, 0xbce: 0x2ec5, 0xbcf: 0x2970, 0xbd0: 0x297a, 0xbd1: 0x2ac6,
- 0xbd2: 0x26ec, 0xbd3: 0x2ad3, 0xbd4: 0x2b9c, 0xbd5: 0x26f3, 0xbd6: 0x2c69, 0xbd7: 0x2984,
- 0xbd8: 0x1cb7, 0xbd9: 0x1ccb, 0xbda: 0x1cda, 0xbdb: 0x1ce9, 0xbdc: 0x1cf8, 0xbdd: 0x1d07,
- 0xbde: 0x1d16, 0xbdf: 0x1d25, 0xbe0: 0x1d34, 0xbe1: 0x1d43, 0xbe2: 0x2192, 0xbe3: 0x21a4,
- 0xbe4: 0x21b6, 0xbe5: 0x21c2, 0xbe6: 0x21ce, 0xbe7: 0x21da, 0xbe8: 0x21e6, 0xbe9: 0x21f2,
- 0xbea: 0x21fe, 0xbeb: 0x220a, 0xbec: 0x2246, 0xbed: 0x2252, 0xbee: 0x225e, 0xbef: 0x226a,
- 0xbf0: 0x2276, 0xbf1: 0x1c14, 0xbf2: 0x19c6, 0xbf3: 0x1936, 0xbf4: 0x1be4, 0xbf5: 0x1a47,
- 0xbf6: 0x1a56, 0xbf7: 0x19cc, 0xbf8: 0x1bfc, 0xbf9: 0x1c00, 0xbfa: 0x1960, 0xbfb: 0x2701,
- 0xbfc: 0x270f, 0xbfd: 0x26fa, 0xbfe: 0x2708, 0xbff: 0x2ae0,
- // Block 0x30, offset 0xc00
- 0xc00: 0x1a4a, 0xc01: 0x1a32, 0xc02: 0x1c60, 0xc03: 0x1a1a, 0xc04: 0x19f3, 0xc05: 0x1969,
- 0xc06: 0x1978, 0xc07: 0x1948, 0xc08: 0x1bf0, 0xc09: 0x1d52, 0xc0a: 0x1a4d, 0xc0b: 0x1a35,
- 0xc0c: 0x1c64, 0xc0d: 0x1c70, 0xc0e: 0x1a26, 0xc0f: 0x19fc, 0xc10: 0x1957, 0xc11: 0x1c1c,
- 0xc12: 0x1bb0, 0xc13: 0x1b9c, 0xc14: 0x1bcc, 0xc15: 0x1c74, 0xc16: 0x1a29, 0xc17: 0x19c9,
- 0xc18: 0x19ff, 0xc19: 0x19de, 0xc1a: 0x1a41, 0xc1b: 0x1c78, 0xc1c: 0x1a2c, 0xc1d: 0x19c0,
- 0xc1e: 0x1a02, 0xc1f: 0x1c3c, 0xc20: 0x1bf4, 0xc21: 0x1a14, 0xc22: 0x1c24, 0xc23: 0x1c40,
- 0xc24: 0x1bf8, 0xc25: 0x1a17, 0xc26: 0x1c28, 0xc27: 0x22e8, 0xc28: 0x22fc, 0xc29: 0x1996,
- 0xc2a: 0x1c20, 0xc2b: 0x1bb4, 0xc2c: 0x1ba0, 0xc2d: 0x1c48, 0xc2e: 0x2716, 0xc2f: 0x27ad,
- 0xc30: 0x1a59, 0xc31: 0x1a44, 0xc32: 0x1c7c, 0xc33: 0x1a2f, 0xc34: 0x1a50, 0xc35: 0x1a38,
- 0xc36: 0x1c68, 0xc37: 0x1a1d, 0xc38: 0x19f6, 0xc39: 0x1981, 0xc3a: 0x1a53, 0xc3b: 0x1a3b,
- 0xc3c: 0x1c6c, 0xc3d: 0x1a20, 0xc3e: 0x19f9, 0xc3f: 0x1984,
- // Block 0x31, offset 0xc40
- 0xc40: 0x1c2c, 0xc41: 0x1bb8, 0xc42: 0x1d4d, 0xc43: 0x1939, 0xc44: 0x19ba, 0xc45: 0x19bd,
- 0xc46: 0x22f5, 0xc47: 0x1b94, 0xc48: 0x19c3, 0xc49: 0x194b, 0xc4a: 0x19e1, 0xc4b: 0x194e,
- 0xc4c: 0x19ea, 0xc4d: 0x196c, 0xc4e: 0x196f, 0xc4f: 0x1a05, 0xc50: 0x1a0b, 0xc51: 0x1a0e,
- 0xc52: 0x1c30, 0xc53: 0x1a11, 0xc54: 0x1a23, 0xc55: 0x1c38, 0xc56: 0x1c44, 0xc57: 0x1990,
- 0xc58: 0x1d57, 0xc59: 0x1bbc, 0xc5a: 0x1993, 0xc5b: 0x1a5c, 0xc5c: 0x19a5, 0xc5d: 0x19b4,
- 0xc5e: 0x22e2, 0xc5f: 0x22dc, 0xc60: 0x1cc1, 0xc61: 0x1cd0, 0xc62: 0x1cdf, 0xc63: 0x1cee,
- 0xc64: 0x1cfd, 0xc65: 0x1d0c, 0xc66: 0x1d1b, 0xc67: 0x1d2a, 0xc68: 0x1d39, 0xc69: 0x2186,
- 0xc6a: 0x2198, 0xc6b: 0x21aa, 0xc6c: 0x21bc, 0xc6d: 0x21c8, 0xc6e: 0x21d4, 0xc6f: 0x21e0,
- 0xc70: 0x21ec, 0xc71: 0x21f8, 0xc72: 0x2204, 0xc73: 0x2240, 0xc74: 0x224c, 0xc75: 0x2258,
- 0xc76: 0x2264, 0xc77: 0x2270, 0xc78: 0x227c, 0xc79: 0x2282, 0xc7a: 0x2288, 0xc7b: 0x228e,
- 0xc7c: 0x2294, 0xc7d: 0x22a6, 0xc7e: 0x22ac, 0xc7f: 0x1c10,
- // Block 0x32, offset 0xc80
- 0xc80: 0x1377, 0xc81: 0x0cfb, 0xc82: 0x13d3, 0xc83: 0x139f, 0xc84: 0x0e57, 0xc85: 0x06eb,
- 0xc86: 0x08df, 0xc87: 0x162b, 0xc88: 0x162b, 0xc89: 0x0a0b, 0xc8a: 0x145f, 0xc8b: 0x0943,
- 0xc8c: 0x0a07, 0xc8d: 0x0bef, 0xc8e: 0x0fcf, 0xc8f: 0x115f, 0xc90: 0x1297, 0xc91: 0x12d3,
- 0xc92: 0x1307, 0xc93: 0x141b, 0xc94: 0x0d73, 0xc95: 0x0dff, 0xc96: 0x0eab, 0xc97: 0x0f43,
- 0xc98: 0x125f, 0xc99: 0x1447, 0xc9a: 0x1573, 0xc9b: 0x070f, 0xc9c: 0x08b3, 0xc9d: 0x0d87,
- 0xc9e: 0x0ecf, 0xc9f: 0x1293, 0xca0: 0x15c3, 0xca1: 0x0ab3, 0xca2: 0x0e77, 0xca3: 0x1283,
- 0xca4: 0x1317, 0xca5: 0x0c23, 0xca6: 0x11bb, 0xca7: 0x12df, 0xca8: 0x0b1f, 0xca9: 0x0d0f,
- 0xcaa: 0x0e17, 0xcab: 0x0f1b, 0xcac: 0x1427, 0xcad: 0x074f, 0xcae: 0x07e7, 0xcaf: 0x0853,
- 0xcb0: 0x0c8b, 0xcb1: 0x0d7f, 0xcb2: 0x0ecb, 0xcb3: 0x0fef, 0xcb4: 0x1177, 0xcb5: 0x128b,
- 0xcb6: 0x12a3, 0xcb7: 0x13c7, 0xcb8: 0x14ef, 0xcb9: 0x15a3, 0xcba: 0x15bf, 0xcbb: 0x102b,
- 0xcbc: 0x106b, 0xcbd: 0x1123, 0xcbe: 0x1243, 0xcbf: 0x147b,
- // Block 0x33, offset 0xcc0
- 0xcc0: 0x15cb, 0xcc1: 0x134b, 0xcc2: 0x09c7, 0xcc3: 0x0b3b, 0xcc4: 0x10db, 0xcc5: 0x119b,
- 0xcc6: 0x0eff, 0xcc7: 0x1033, 0xcc8: 0x1397, 0xcc9: 0x14e7, 0xcca: 0x09c3, 0xccb: 0x0a8f,
- 0xccc: 0x0d77, 0xccd: 0x0e2b, 0xcce: 0x0e5f, 0xccf: 0x1113, 0xcd0: 0x113b, 0xcd1: 0x14a7,
- 0xcd2: 0x084f, 0xcd3: 0x11a7, 0xcd4: 0x07f3, 0xcd5: 0x07ef, 0xcd6: 0x1097, 0xcd7: 0x1127,
- 0xcd8: 0x125b, 0xcd9: 0x14af, 0xcda: 0x1367, 0xcdb: 0x0c27, 0xcdc: 0x0d73, 0xcdd: 0x1357,
- 0xcde: 0x06f7, 0xcdf: 0x0a63, 0xce0: 0x0b93, 0xce1: 0x0f2f, 0xce2: 0x0faf, 0xce3: 0x0873,
- 0xce4: 0x103b, 0xce5: 0x075f, 0xce6: 0x0b77, 0xce7: 0x06d7, 0xce8: 0x0deb, 0xce9: 0x0ca3,
- 0xcea: 0x110f, 0xceb: 0x08c7, 0xcec: 0x09b3, 0xced: 0x0ffb, 0xcee: 0x1263, 0xcef: 0x133b,
- 0xcf0: 0x0db7, 0xcf1: 0x13f7, 0xcf2: 0x0de3, 0xcf3: 0x0c37, 0xcf4: 0x121b, 0xcf5: 0x0c57,
- 0xcf6: 0x0fab, 0xcf7: 0x072b, 0xcf8: 0x07a7, 0xcf9: 0x07eb, 0xcfa: 0x0d53, 0xcfb: 0x10fb,
- 0xcfc: 0x11f3, 0xcfd: 0x1347, 0xcfe: 0x145b, 0xcff: 0x085b,
- // Block 0x34, offset 0xd00
- 0xd00: 0x090f, 0xd01: 0x0a17, 0xd02: 0x0b2f, 0xd03: 0x0cbf, 0xd04: 0x0e7b, 0xd05: 0x103f,
- 0xd06: 0x1497, 0xd07: 0x157b, 0xd08: 0x15cf, 0xd09: 0x15e7, 0xd0a: 0x0837, 0xd0b: 0x0cf3,
- 0xd0c: 0x0da3, 0xd0d: 0x13eb, 0xd0e: 0x0afb, 0xd0f: 0x0bd7, 0xd10: 0x0bf3, 0xd11: 0x0c83,
- 0xd12: 0x0e6b, 0xd13: 0x0eb7, 0xd14: 0x0f67, 0xd15: 0x108b, 0xd16: 0x112f, 0xd17: 0x1193,
- 0xd18: 0x13db, 0xd19: 0x126b, 0xd1a: 0x1403, 0xd1b: 0x147f, 0xd1c: 0x080f, 0xd1d: 0x083b,
- 0xd1e: 0x0923, 0xd1f: 0x0ea7, 0xd20: 0x12f3, 0xd21: 0x133b, 0xd22: 0x0b1b, 0xd23: 0x0b8b,
- 0xd24: 0x0c4f, 0xd25: 0x0daf, 0xd26: 0x10d7, 0xd27: 0x0f23, 0xd28: 0x073b, 0xd29: 0x097f,
- 0xd2a: 0x0a63, 0xd2b: 0x0ac7, 0xd2c: 0x0b97, 0xd2d: 0x0f3f, 0xd2e: 0x0f5b, 0xd2f: 0x116b,
- 0xd30: 0x118b, 0xd31: 0x1463, 0xd32: 0x14e3, 0xd33: 0x14f3, 0xd34: 0x152f, 0xd35: 0x0753,
- 0xd36: 0x107f, 0xd37: 0x144f, 0xd38: 0x14cb, 0xd39: 0x0baf, 0xd3a: 0x0717, 0xd3b: 0x0777,
- 0xd3c: 0x0a67, 0xd3d: 0x0a87, 0xd3e: 0x0caf, 0xd3f: 0x0d73,
- // Block 0x35, offset 0xd40
- 0xd40: 0x0ec3, 0xd41: 0x0fcb, 0xd42: 0x1277, 0xd43: 0x1417, 0xd44: 0x1623, 0xd45: 0x0ce3,
- 0xd46: 0x14a3, 0xd47: 0x0833, 0xd48: 0x0d2f, 0xd49: 0x0d3b, 0xd4a: 0x0e0f, 0xd4b: 0x0e47,
- 0xd4c: 0x0f4b, 0xd4d: 0x0fa7, 0xd4e: 0x1027, 0xd4f: 0x110b, 0xd50: 0x153b, 0xd51: 0x07af,
- 0xd52: 0x0c03, 0xd53: 0x14b3, 0xd54: 0x0767, 0xd55: 0x0aab, 0xd56: 0x0e2f, 0xd57: 0x13df,
- 0xd58: 0x0b67, 0xd59: 0x0bb7, 0xd5a: 0x0d43, 0xd5b: 0x0f2f, 0xd5c: 0x14bb, 0xd5d: 0x0817,
- 0xd5e: 0x08ff, 0xd5f: 0x0a97, 0xd60: 0x0cd3, 0xd61: 0x0d1f, 0xd62: 0x0d5f, 0xd63: 0x0df3,
- 0xd64: 0x0f47, 0xd65: 0x0fbb, 0xd66: 0x1157, 0xd67: 0x12f7, 0xd68: 0x1303, 0xd69: 0x1457,
- 0xd6a: 0x14d7, 0xd6b: 0x0883, 0xd6c: 0x0e4b, 0xd6d: 0x0903, 0xd6e: 0x0ec7, 0xd6f: 0x0f6b,
- 0xd70: 0x1287, 0xd71: 0x14bf, 0xd72: 0x15ab, 0xd73: 0x15d3, 0xd74: 0x0d37, 0xd75: 0x0e27,
- 0xd76: 0x11c3, 0xd77: 0x10b7, 0xd78: 0x10c3, 0xd79: 0x10e7, 0xd7a: 0x0f17, 0xd7b: 0x0e9f,
- 0xd7c: 0x1363, 0xd7d: 0x0733, 0xd7e: 0x122b, 0xd7f: 0x081b,
- // Block 0x36, offset 0xd80
- 0xd80: 0x080b, 0xd81: 0x0b0b, 0xd82: 0x0c2b, 0xd83: 0x10f3, 0xd84: 0x0a53, 0xd85: 0x0e03,
- 0xd86: 0x0cef, 0xd87: 0x13e7, 0xd88: 0x12e7, 0xd89: 0x14ab, 0xd8a: 0x1323, 0xd8b: 0x0b27,
- 0xd8c: 0x0787, 0xd8d: 0x095b, 0xd90: 0x09af,
- 0xd92: 0x0cdf, 0xd95: 0x07f7, 0xd96: 0x0f1f, 0xd97: 0x0fe3,
- 0xd98: 0x1047, 0xd99: 0x1063, 0xd9a: 0x1067, 0xd9b: 0x107b, 0xd9c: 0x14fb, 0xd9d: 0x10eb,
- 0xd9e: 0x116f, 0xda0: 0x128f, 0xda2: 0x1353,
- 0xda5: 0x1407, 0xda6: 0x1433,
- 0xdaa: 0x154f, 0xdab: 0x1553, 0xdac: 0x1557, 0xdad: 0x15bb, 0xdae: 0x142b, 0xdaf: 0x14c7,
- 0xdb0: 0x0757, 0xdb1: 0x077b, 0xdb2: 0x078f, 0xdb3: 0x084b, 0xdb4: 0x0857, 0xdb5: 0x0897,
- 0xdb6: 0x094b, 0xdb7: 0x0967, 0xdb8: 0x096f, 0xdb9: 0x09ab, 0xdba: 0x09b7, 0xdbb: 0x0a93,
- 0xdbc: 0x0a9b, 0xdbd: 0x0ba3, 0xdbe: 0x0bcb, 0xdbf: 0x0bd3,
- // Block 0x37, offset 0xdc0
- 0xdc0: 0x0beb, 0xdc1: 0x0c97, 0xdc2: 0x0cc7, 0xdc3: 0x0ce7, 0xdc4: 0x0d57, 0xdc5: 0x0e1b,
- 0xdc6: 0x0e37, 0xdc7: 0x0e67, 0xdc8: 0x0ebb, 0xdc9: 0x0edb, 0xdca: 0x0f4f, 0xdcb: 0x102f,
- 0xdcc: 0x104b, 0xdcd: 0x1053, 0xdce: 0x104f, 0xdcf: 0x1057, 0xdd0: 0x105b, 0xdd1: 0x105f,
- 0xdd2: 0x1073, 0xdd3: 0x1077, 0xdd4: 0x109b, 0xdd5: 0x10af, 0xdd6: 0x10cb, 0xdd7: 0x112f,
- 0xdd8: 0x1137, 0xdd9: 0x113f, 0xdda: 0x1153, 0xddb: 0x117b, 0xddc: 0x11cb, 0xddd: 0x11ff,
- 0xdde: 0x11ff, 0xddf: 0x1267, 0xde0: 0x130f, 0xde1: 0x1327, 0xde2: 0x135b, 0xde3: 0x135f,
- 0xde4: 0x13a3, 0xde5: 0x13a7, 0xde6: 0x13ff, 0xde7: 0x1407, 0xde8: 0x14db, 0xde9: 0x151f,
- 0xdea: 0x1537, 0xdeb: 0x0b9b, 0xdec: 0x171e, 0xded: 0x11e3,
- 0xdf0: 0x06df, 0xdf1: 0x07e3, 0xdf2: 0x07a3, 0xdf3: 0x074b, 0xdf4: 0x078b, 0xdf5: 0x07b7,
- 0xdf6: 0x0847, 0xdf7: 0x0863, 0xdf8: 0x094b, 0xdf9: 0x0937, 0xdfa: 0x0947, 0xdfb: 0x0963,
- 0xdfc: 0x09af, 0xdfd: 0x09bf, 0xdfe: 0x0a03, 0xdff: 0x0a0f,
- // Block 0x38, offset 0xe00
- 0xe00: 0x0a2b, 0xe01: 0x0a3b, 0xe02: 0x0b23, 0xe03: 0x0b2b, 0xe04: 0x0b5b, 0xe05: 0x0b7b,
- 0xe06: 0x0bab, 0xe07: 0x0bc3, 0xe08: 0x0bb3, 0xe09: 0x0bd3, 0xe0a: 0x0bc7, 0xe0b: 0x0beb,
- 0xe0c: 0x0c07, 0xe0d: 0x0c5f, 0xe0e: 0x0c6b, 0xe0f: 0x0c73, 0xe10: 0x0c9b, 0xe11: 0x0cdf,
- 0xe12: 0x0d0f, 0xe13: 0x0d13, 0xe14: 0x0d27, 0xe15: 0x0da7, 0xe16: 0x0db7, 0xe17: 0x0e0f,
- 0xe18: 0x0e5b, 0xe19: 0x0e53, 0xe1a: 0x0e67, 0xe1b: 0x0e83, 0xe1c: 0x0ebb, 0xe1d: 0x1013,
- 0xe1e: 0x0edf, 0xe1f: 0x0f13, 0xe20: 0x0f1f, 0xe21: 0x0f5f, 0xe22: 0x0f7b, 0xe23: 0x0f9f,
- 0xe24: 0x0fc3, 0xe25: 0x0fc7, 0xe26: 0x0fe3, 0xe27: 0x0fe7, 0xe28: 0x0ff7, 0xe29: 0x100b,
- 0xe2a: 0x1007, 0xe2b: 0x1037, 0xe2c: 0x10b3, 0xe2d: 0x10cb, 0xe2e: 0x10e3, 0xe2f: 0x111b,
- 0xe30: 0x112f, 0xe31: 0x114b, 0xe32: 0x117b, 0xe33: 0x122f, 0xe34: 0x1257, 0xe35: 0x12cb,
- 0xe36: 0x1313, 0xe37: 0x131f, 0xe38: 0x1327, 0xe39: 0x133f, 0xe3a: 0x1353, 0xe3b: 0x1343,
- 0xe3c: 0x135b, 0xe3d: 0x1357, 0xe3e: 0x134f, 0xe3f: 0x135f,
- // Block 0x39, offset 0xe40
- 0xe40: 0x136b, 0xe41: 0x13a7, 0xe42: 0x13e3, 0xe43: 0x1413, 0xe44: 0x144b, 0xe45: 0x146b,
- 0xe46: 0x14b7, 0xe47: 0x14db, 0xe48: 0x14fb, 0xe49: 0x150f, 0xe4a: 0x151f, 0xe4b: 0x152b,
- 0xe4c: 0x1537, 0xe4d: 0x158b, 0xe4e: 0x162b, 0xe4f: 0x16b5, 0xe50: 0x16b0, 0xe51: 0x16e2,
- 0xe52: 0x0607, 0xe53: 0x062f, 0xe54: 0x0633, 0xe55: 0x1764, 0xe56: 0x1791, 0xe57: 0x1809,
- 0xe58: 0x1617, 0xe59: 0x1627,
- // Block 0x3a, offset 0xe80
- 0xe80: 0x19d5, 0xe81: 0x19d8, 0xe82: 0x19db, 0xe83: 0x1c08, 0xe84: 0x1c0c, 0xe85: 0x1a5f,
- 0xe86: 0x1a5f,
- 0xe93: 0x1d75, 0xe94: 0x1d66, 0xe95: 0x1d6b, 0xe96: 0x1d7a, 0xe97: 0x1d70,
- 0xe9d: 0x4390,
- 0xe9e: 0x8115, 0xe9f: 0x4402, 0xea0: 0x022d, 0xea1: 0x0215, 0xea2: 0x021e, 0xea3: 0x0221,
- 0xea4: 0x0224, 0xea5: 0x0227, 0xea6: 0x022a, 0xea7: 0x0230, 0xea8: 0x0233, 0xea9: 0x0017,
- 0xeaa: 0x43f0, 0xeab: 0x43f6, 0xeac: 0x44f4, 0xead: 0x44fc, 0xeae: 0x4348, 0xeaf: 0x434e,
- 0xeb0: 0x4354, 0xeb1: 0x435a, 0xeb2: 0x4366, 0xeb3: 0x436c, 0xeb4: 0x4372, 0xeb5: 0x437e,
- 0xeb6: 0x4384, 0xeb8: 0x438a, 0xeb9: 0x4396, 0xeba: 0x439c, 0xebb: 0x43a2,
- 0xebc: 0x43ae, 0xebe: 0x43b4,
- // Block 0x3b, offset 0xec0
- 0xec0: 0x43ba, 0xec1: 0x43c0, 0xec3: 0x43c6, 0xec4: 0x43cc,
- 0xec6: 0x43d8, 0xec7: 0x43de, 0xec8: 0x43e4, 0xec9: 0x43ea, 0xeca: 0x43fc, 0xecb: 0x4378,
- 0xecc: 0x4360, 0xecd: 0x43a8, 0xece: 0x43d2, 0xecf: 0x1d7f, 0xed0: 0x0299, 0xed1: 0x0299,
- 0xed2: 0x02a2, 0xed3: 0x02a2, 0xed4: 0x02a2, 0xed5: 0x02a2, 0xed6: 0x02a5, 0xed7: 0x02a5,
- 0xed8: 0x02a5, 0xed9: 0x02a5, 0xeda: 0x02ab, 0xedb: 0x02ab, 0xedc: 0x02ab, 0xedd: 0x02ab,
- 0xede: 0x029f, 0xedf: 0x029f, 0xee0: 0x029f, 0xee1: 0x029f, 0xee2: 0x02a8, 0xee3: 0x02a8,
- 0xee4: 0x02a8, 0xee5: 0x02a8, 0xee6: 0x029c, 0xee7: 0x029c, 0xee8: 0x029c, 0xee9: 0x029c,
- 0xeea: 0x02cf, 0xeeb: 0x02cf, 0xeec: 0x02cf, 0xeed: 0x02cf, 0xeee: 0x02d2, 0xeef: 0x02d2,
- 0xef0: 0x02d2, 0xef1: 0x02d2, 0xef2: 0x02b1, 0xef3: 0x02b1, 0xef4: 0x02b1, 0xef5: 0x02b1,
- 0xef6: 0x02ae, 0xef7: 0x02ae, 0xef8: 0x02ae, 0xef9: 0x02ae, 0xefa: 0x02b4, 0xefb: 0x02b4,
- 0xefc: 0x02b4, 0xefd: 0x02b4, 0xefe: 0x02b7, 0xeff: 0x02b7,
- // Block 0x3c, offset 0xf00
- 0xf00: 0x02b7, 0xf01: 0x02b7, 0xf02: 0x02c0, 0xf03: 0x02c0, 0xf04: 0x02bd, 0xf05: 0x02bd,
- 0xf06: 0x02c3, 0xf07: 0x02c3, 0xf08: 0x02ba, 0xf09: 0x02ba, 0xf0a: 0x02c9, 0xf0b: 0x02c9,
- 0xf0c: 0x02c6, 0xf0d: 0x02c6, 0xf0e: 0x02d5, 0xf0f: 0x02d5, 0xf10: 0x02d5, 0xf11: 0x02d5,
- 0xf12: 0x02db, 0xf13: 0x02db, 0xf14: 0x02db, 0xf15: 0x02db, 0xf16: 0x02e1, 0xf17: 0x02e1,
- 0xf18: 0x02e1, 0xf19: 0x02e1, 0xf1a: 0x02de, 0xf1b: 0x02de, 0xf1c: 0x02de, 0xf1d: 0x02de,
- 0xf1e: 0x02e4, 0xf1f: 0x02e4, 0xf20: 0x02e7, 0xf21: 0x02e7, 0xf22: 0x02e7, 0xf23: 0x02e7,
- 0xf24: 0x446e, 0xf25: 0x446e, 0xf26: 0x02ed, 0xf27: 0x02ed, 0xf28: 0x02ed, 0xf29: 0x02ed,
- 0xf2a: 0x02ea, 0xf2b: 0x02ea, 0xf2c: 0x02ea, 0xf2d: 0x02ea, 0xf2e: 0x0308, 0xf2f: 0x0308,
- 0xf30: 0x4468, 0xf31: 0x4468,
- // Block 0x3d, offset 0xf40
- 0xf53: 0x02d8, 0xf54: 0x02d8, 0xf55: 0x02d8, 0xf56: 0x02d8, 0xf57: 0x02f6,
- 0xf58: 0x02f6, 0xf59: 0x02f3, 0xf5a: 0x02f3, 0xf5b: 0x02f9, 0xf5c: 0x02f9, 0xf5d: 0x204f,
- 0xf5e: 0x02ff, 0xf5f: 0x02ff, 0xf60: 0x02f0, 0xf61: 0x02f0, 0xf62: 0x02fc, 0xf63: 0x02fc,
- 0xf64: 0x0305, 0xf65: 0x0305, 0xf66: 0x0305, 0xf67: 0x0305, 0xf68: 0x028d, 0xf69: 0x028d,
- 0xf6a: 0x25aa, 0xf6b: 0x25aa, 0xf6c: 0x261a, 0xf6d: 0x261a, 0xf6e: 0x25e9, 0xf6f: 0x25e9,
- 0xf70: 0x2605, 0xf71: 0x2605, 0xf72: 0x25fe, 0xf73: 0x25fe, 0xf74: 0x260c, 0xf75: 0x260c,
- 0xf76: 0x2613, 0xf77: 0x2613, 0xf78: 0x2613, 0xf79: 0x25f0, 0xf7a: 0x25f0, 0xf7b: 0x25f0,
- 0xf7c: 0x0302, 0xf7d: 0x0302, 0xf7e: 0x0302, 0xf7f: 0x0302,
- // Block 0x3e, offset 0xf80
- 0xf80: 0x25b1, 0xf81: 0x25b8, 0xf82: 0x25d4, 0xf83: 0x25f0, 0xf84: 0x25f7, 0xf85: 0x1d89,
- 0xf86: 0x1d8e, 0xf87: 0x1d93, 0xf88: 0x1da2, 0xf89: 0x1db1, 0xf8a: 0x1db6, 0xf8b: 0x1dbb,
- 0xf8c: 0x1dc0, 0xf8d: 0x1dc5, 0xf8e: 0x1dd4, 0xf8f: 0x1de3, 0xf90: 0x1de8, 0xf91: 0x1ded,
- 0xf92: 0x1dfc, 0xf93: 0x1e0b, 0xf94: 0x1e10, 0xf95: 0x1e15, 0xf96: 0x1e1a, 0xf97: 0x1e29,
- 0xf98: 0x1e2e, 0xf99: 0x1e3d, 0xf9a: 0x1e42, 0xf9b: 0x1e47, 0xf9c: 0x1e56, 0xf9d: 0x1e5b,
- 0xf9e: 0x1e60, 0xf9f: 0x1e6a, 0xfa0: 0x1ea6, 0xfa1: 0x1eb5, 0xfa2: 0x1ec4, 0xfa3: 0x1ec9,
- 0xfa4: 0x1ece, 0xfa5: 0x1ed8, 0xfa6: 0x1ee7, 0xfa7: 0x1eec, 0xfa8: 0x1efb, 0xfa9: 0x1f00,
- 0xfaa: 0x1f05, 0xfab: 0x1f14, 0xfac: 0x1f19, 0xfad: 0x1f28, 0xfae: 0x1f2d, 0xfaf: 0x1f32,
- 0xfb0: 0x1f37, 0xfb1: 0x1f3c, 0xfb2: 0x1f41, 0xfb3: 0x1f46, 0xfb4: 0x1f4b, 0xfb5: 0x1f50,
- 0xfb6: 0x1f55, 0xfb7: 0x1f5a, 0xfb8: 0x1f5f, 0xfb9: 0x1f64, 0xfba: 0x1f69, 0xfbb: 0x1f6e,
- 0xfbc: 0x1f73, 0xfbd: 0x1f78, 0xfbe: 0x1f7d, 0xfbf: 0x1f87,
- // Block 0x3f, offset 0xfc0
- 0xfc0: 0x1f8c, 0xfc1: 0x1f91, 0xfc2: 0x1f96, 0xfc3: 0x1fa0, 0xfc4: 0x1fa5, 0xfc5: 0x1faf,
- 0xfc6: 0x1fb4, 0xfc7: 0x1fb9, 0xfc8: 0x1fbe, 0xfc9: 0x1fc3, 0xfca: 0x1fc8, 0xfcb: 0x1fcd,
- 0xfcc: 0x1fd2, 0xfcd: 0x1fd7, 0xfce: 0x1fe6, 0xfcf: 0x1ff5, 0xfd0: 0x1ffa, 0xfd1: 0x1fff,
- 0xfd2: 0x2004, 0xfd3: 0x2009, 0xfd4: 0x200e, 0xfd5: 0x2018, 0xfd6: 0x201d, 0xfd7: 0x2022,
- 0xfd8: 0x2031, 0xfd9: 0x2040, 0xfda: 0x2045, 0xfdb: 0x4420, 0xfdc: 0x4426, 0xfdd: 0x445c,
- 0xfde: 0x44b3, 0xfdf: 0x44ba, 0xfe0: 0x44c1, 0xfe1: 0x44c8, 0xfe2: 0x44cf, 0xfe3: 0x44d6,
- 0xfe4: 0x25c6, 0xfe5: 0x25cd, 0xfe6: 0x25d4, 0xfe7: 0x25db, 0xfe8: 0x25f0, 0xfe9: 0x25f7,
- 0xfea: 0x1d98, 0xfeb: 0x1d9d, 0xfec: 0x1da2, 0xfed: 0x1da7, 0xfee: 0x1db1, 0xfef: 0x1db6,
- 0xff0: 0x1dca, 0xff1: 0x1dcf, 0xff2: 0x1dd4, 0xff3: 0x1dd9, 0xff4: 0x1de3, 0xff5: 0x1de8,
- 0xff6: 0x1df2, 0xff7: 0x1df7, 0xff8: 0x1dfc, 0xff9: 0x1e01, 0xffa: 0x1e0b, 0xffb: 0x1e10,
- 0xffc: 0x1f3c, 0xffd: 0x1f41, 0xffe: 0x1f50, 0xfff: 0x1f55,
- // Block 0x40, offset 0x1000
- 0x1000: 0x1f5a, 0x1001: 0x1f6e, 0x1002: 0x1f73, 0x1003: 0x1f78, 0x1004: 0x1f7d, 0x1005: 0x1f96,
- 0x1006: 0x1fa0, 0x1007: 0x1fa5, 0x1008: 0x1faa, 0x1009: 0x1fbe, 0x100a: 0x1fdc, 0x100b: 0x1fe1,
- 0x100c: 0x1fe6, 0x100d: 0x1feb, 0x100e: 0x1ff5, 0x100f: 0x1ffa, 0x1010: 0x445c, 0x1011: 0x2027,
- 0x1012: 0x202c, 0x1013: 0x2031, 0x1014: 0x2036, 0x1015: 0x2040, 0x1016: 0x2045, 0x1017: 0x25b1,
- 0x1018: 0x25b8, 0x1019: 0x25bf, 0x101a: 0x25d4, 0x101b: 0x25e2, 0x101c: 0x1d89, 0x101d: 0x1d8e,
- 0x101e: 0x1d93, 0x101f: 0x1da2, 0x1020: 0x1dac, 0x1021: 0x1dbb, 0x1022: 0x1dc0, 0x1023: 0x1dc5,
- 0x1024: 0x1dd4, 0x1025: 0x1dde, 0x1026: 0x1dfc, 0x1027: 0x1e15, 0x1028: 0x1e1a, 0x1029: 0x1e29,
- 0x102a: 0x1e2e, 0x102b: 0x1e3d, 0x102c: 0x1e47, 0x102d: 0x1e56, 0x102e: 0x1e5b, 0x102f: 0x1e60,
- 0x1030: 0x1e6a, 0x1031: 0x1ea6, 0x1032: 0x1eab, 0x1033: 0x1eb5, 0x1034: 0x1ec4, 0x1035: 0x1ec9,
- 0x1036: 0x1ece, 0x1037: 0x1ed8, 0x1038: 0x1ee7, 0x1039: 0x1efb, 0x103a: 0x1f00, 0x103b: 0x1f05,
- 0x103c: 0x1f14, 0x103d: 0x1f19, 0x103e: 0x1f28, 0x103f: 0x1f2d,
- // Block 0x41, offset 0x1040
- 0x1040: 0x1f32, 0x1041: 0x1f37, 0x1042: 0x1f46, 0x1043: 0x1f4b, 0x1044: 0x1f5f, 0x1045: 0x1f64,
- 0x1046: 0x1f69, 0x1047: 0x1f6e, 0x1048: 0x1f73, 0x1049: 0x1f87, 0x104a: 0x1f8c, 0x104b: 0x1f91,
- 0x104c: 0x1f96, 0x104d: 0x1f9b, 0x104e: 0x1faf, 0x104f: 0x1fb4, 0x1050: 0x1fb9, 0x1051: 0x1fbe,
- 0x1052: 0x1fcd, 0x1053: 0x1fd2, 0x1054: 0x1fd7, 0x1055: 0x1fe6, 0x1056: 0x1ff0, 0x1057: 0x1fff,
- 0x1058: 0x2004, 0x1059: 0x4450, 0x105a: 0x2018, 0x105b: 0x201d, 0x105c: 0x2022, 0x105d: 0x2031,
- 0x105e: 0x203b, 0x105f: 0x25d4, 0x1060: 0x25e2, 0x1061: 0x1da2, 0x1062: 0x1dac, 0x1063: 0x1dd4,
- 0x1064: 0x1dde, 0x1065: 0x1dfc, 0x1066: 0x1e06, 0x1067: 0x1e6a, 0x1068: 0x1e6f, 0x1069: 0x1e92,
- 0x106a: 0x1e97, 0x106b: 0x1f6e, 0x106c: 0x1f73, 0x106d: 0x1f96, 0x106e: 0x1fe6, 0x106f: 0x1ff0,
- 0x1070: 0x2031, 0x1071: 0x203b, 0x1072: 0x4504, 0x1073: 0x450c, 0x1074: 0x4514, 0x1075: 0x1ef1,
- 0x1076: 0x1ef6, 0x1077: 0x1f0a, 0x1078: 0x1f0f, 0x1079: 0x1f1e, 0x107a: 0x1f23, 0x107b: 0x1e74,
- 0x107c: 0x1e79, 0x107d: 0x1e9c, 0x107e: 0x1ea1, 0x107f: 0x1e33,
- // Block 0x42, offset 0x1080
- 0x1080: 0x1e38, 0x1081: 0x1e1f, 0x1082: 0x1e24, 0x1083: 0x1e4c, 0x1084: 0x1e51, 0x1085: 0x1eba,
- 0x1086: 0x1ebf, 0x1087: 0x1edd, 0x1088: 0x1ee2, 0x1089: 0x1e7e, 0x108a: 0x1e83, 0x108b: 0x1e88,
- 0x108c: 0x1e92, 0x108d: 0x1e8d, 0x108e: 0x1e65, 0x108f: 0x1eb0, 0x1090: 0x1ed3, 0x1091: 0x1ef1,
- 0x1092: 0x1ef6, 0x1093: 0x1f0a, 0x1094: 0x1f0f, 0x1095: 0x1f1e, 0x1096: 0x1f23, 0x1097: 0x1e74,
- 0x1098: 0x1e79, 0x1099: 0x1e9c, 0x109a: 0x1ea1, 0x109b: 0x1e33, 0x109c: 0x1e38, 0x109d: 0x1e1f,
- 0x109e: 0x1e24, 0x109f: 0x1e4c, 0x10a0: 0x1e51, 0x10a1: 0x1eba, 0x10a2: 0x1ebf, 0x10a3: 0x1edd,
- 0x10a4: 0x1ee2, 0x10a5: 0x1e7e, 0x10a6: 0x1e83, 0x10a7: 0x1e88, 0x10a8: 0x1e92, 0x10a9: 0x1e8d,
- 0x10aa: 0x1e65, 0x10ab: 0x1eb0, 0x10ac: 0x1ed3, 0x10ad: 0x1e7e, 0x10ae: 0x1e83, 0x10af: 0x1e88,
- 0x10b0: 0x1e92, 0x10b1: 0x1e6f, 0x10b2: 0x1e97, 0x10b3: 0x1eec, 0x10b4: 0x1e56, 0x10b5: 0x1e5b,
- 0x10b6: 0x1e60, 0x10b7: 0x1e7e, 0x10b8: 0x1e83, 0x10b9: 0x1e88, 0x10ba: 0x1eec, 0x10bb: 0x1efb,
- 0x10bc: 0x4408, 0x10bd: 0x4408,
- // Block 0x43, offset 0x10c0
- 0x10d0: 0x2311, 0x10d1: 0x2326,
- 0x10d2: 0x2326, 0x10d3: 0x232d, 0x10d4: 0x2334, 0x10d5: 0x2349, 0x10d6: 0x2350, 0x10d7: 0x2357,
- 0x10d8: 0x237a, 0x10d9: 0x237a, 0x10da: 0x239d, 0x10db: 0x2396, 0x10dc: 0x23b2, 0x10dd: 0x23a4,
- 0x10de: 0x23ab, 0x10df: 0x23ce, 0x10e0: 0x23ce, 0x10e1: 0x23c7, 0x10e2: 0x23d5, 0x10e3: 0x23d5,
- 0x10e4: 0x23ff, 0x10e5: 0x23ff, 0x10e6: 0x241b, 0x10e7: 0x23e3, 0x10e8: 0x23e3, 0x10e9: 0x23dc,
- 0x10ea: 0x23f1, 0x10eb: 0x23f1, 0x10ec: 0x23f8, 0x10ed: 0x23f8, 0x10ee: 0x2422, 0x10ef: 0x2430,
- 0x10f0: 0x2430, 0x10f1: 0x2437, 0x10f2: 0x2437, 0x10f3: 0x243e, 0x10f4: 0x2445, 0x10f5: 0x244c,
- 0x10f6: 0x2453, 0x10f7: 0x2453, 0x10f8: 0x245a, 0x10f9: 0x2468, 0x10fa: 0x2476, 0x10fb: 0x246f,
- 0x10fc: 0x247d, 0x10fd: 0x247d, 0x10fe: 0x2492, 0x10ff: 0x2499,
- // Block 0x44, offset 0x1100
- 0x1100: 0x24ca, 0x1101: 0x24d8, 0x1102: 0x24d1, 0x1103: 0x24b5, 0x1104: 0x24b5, 0x1105: 0x24df,
- 0x1106: 0x24df, 0x1107: 0x24e6, 0x1108: 0x24e6, 0x1109: 0x2510, 0x110a: 0x2517, 0x110b: 0x251e,
- 0x110c: 0x24f4, 0x110d: 0x2502, 0x110e: 0x2525, 0x110f: 0x252c,
- 0x1112: 0x24fb, 0x1113: 0x2580, 0x1114: 0x2587, 0x1115: 0x255d, 0x1116: 0x2564, 0x1117: 0x2548,
- 0x1118: 0x2548, 0x1119: 0x254f, 0x111a: 0x2579, 0x111b: 0x2572, 0x111c: 0x259c, 0x111d: 0x259c,
- 0x111e: 0x230a, 0x111f: 0x231f, 0x1120: 0x2318, 0x1121: 0x2342, 0x1122: 0x233b, 0x1123: 0x2365,
- 0x1124: 0x235e, 0x1125: 0x2388, 0x1126: 0x236c, 0x1127: 0x2381, 0x1128: 0x23b9, 0x1129: 0x2406,
- 0x112a: 0x23ea, 0x112b: 0x2429, 0x112c: 0x24c3, 0x112d: 0x24ed, 0x112e: 0x2595, 0x112f: 0x258e,
- 0x1130: 0x25a3, 0x1131: 0x253a, 0x1132: 0x24a0, 0x1133: 0x256b, 0x1134: 0x2492, 0x1135: 0x24ca,
- 0x1136: 0x2461, 0x1137: 0x24ae, 0x1138: 0x2541, 0x1139: 0x2533, 0x113a: 0x24bc, 0x113b: 0x24a7,
- 0x113c: 0x24bc, 0x113d: 0x2541, 0x113e: 0x2373, 0x113f: 0x238f,
- // Block 0x45, offset 0x1140
- 0x1140: 0x2509, 0x1141: 0x2484, 0x1142: 0x2303, 0x1143: 0x24a7, 0x1144: 0x244c, 0x1145: 0x241b,
- 0x1146: 0x23c0, 0x1147: 0x2556,
- 0x1170: 0x2414, 0x1171: 0x248b, 0x1172: 0x27bf, 0x1173: 0x27b6, 0x1174: 0x27ec, 0x1175: 0x27da,
- 0x1176: 0x27c8, 0x1177: 0x27e3, 0x1178: 0x27f5, 0x1179: 0x240d, 0x117a: 0x2c7c, 0x117b: 0x2afc,
- 0x117c: 0x27d1,
- // Block 0x46, offset 0x1180
- 0x1190: 0x0019, 0x1191: 0x0483,
- 0x1192: 0x0487, 0x1193: 0x0035, 0x1194: 0x0037, 0x1195: 0x0003, 0x1196: 0x003f, 0x1197: 0x04bf,
- 0x1198: 0x04c3, 0x1199: 0x1b5c,
- 0x11a0: 0x8132, 0x11a1: 0x8132, 0x11a2: 0x8132, 0x11a3: 0x8132,
- 0x11a4: 0x8132, 0x11a5: 0x8132, 0x11a6: 0x8132, 0x11a7: 0x812d, 0x11a8: 0x812d, 0x11a9: 0x812d,
- 0x11aa: 0x812d, 0x11ab: 0x812d, 0x11ac: 0x812d, 0x11ad: 0x812d, 0x11ae: 0x8132, 0x11af: 0x8132,
- 0x11b0: 0x1873, 0x11b1: 0x0443, 0x11b2: 0x043f, 0x11b3: 0x007f, 0x11b4: 0x007f, 0x11b5: 0x0011,
- 0x11b6: 0x0013, 0x11b7: 0x00b7, 0x11b8: 0x00bb, 0x11b9: 0x04b7, 0x11ba: 0x04bb, 0x11bb: 0x04ab,
- 0x11bc: 0x04af, 0x11bd: 0x0493, 0x11be: 0x0497, 0x11bf: 0x048b,
- // Block 0x47, offset 0x11c0
- 0x11c0: 0x048f, 0x11c1: 0x049b, 0x11c2: 0x049f, 0x11c3: 0x04a3, 0x11c4: 0x04a7,
- 0x11c7: 0x0077, 0x11c8: 0x007b, 0x11c9: 0x4269, 0x11ca: 0x4269, 0x11cb: 0x4269,
- 0x11cc: 0x4269, 0x11cd: 0x007f, 0x11ce: 0x007f, 0x11cf: 0x007f, 0x11d0: 0x0019, 0x11d1: 0x0483,
- 0x11d2: 0x001d, 0x11d4: 0x0037, 0x11d5: 0x0035, 0x11d6: 0x003f, 0x11d7: 0x0003,
- 0x11d8: 0x0443, 0x11d9: 0x0011, 0x11da: 0x0013, 0x11db: 0x00b7, 0x11dc: 0x00bb, 0x11dd: 0x04b7,
- 0x11de: 0x04bb, 0x11df: 0x0007, 0x11e0: 0x000d, 0x11e1: 0x0015, 0x11e2: 0x0017, 0x11e3: 0x001b,
- 0x11e4: 0x0039, 0x11e5: 0x003d, 0x11e6: 0x003b, 0x11e8: 0x0079, 0x11e9: 0x0009,
- 0x11ea: 0x000b, 0x11eb: 0x0041,
- 0x11f0: 0x42aa, 0x11f1: 0x442c, 0x11f2: 0x42af, 0x11f4: 0x42b4,
- 0x11f6: 0x42b9, 0x11f7: 0x4432, 0x11f8: 0x42be, 0x11f9: 0x4438, 0x11fa: 0x42c3, 0x11fb: 0x443e,
- 0x11fc: 0x42c8, 0x11fd: 0x4444, 0x11fe: 0x42cd, 0x11ff: 0x444a,
- // Block 0x48, offset 0x1200
- 0x1200: 0x0236, 0x1201: 0x440e, 0x1202: 0x440e, 0x1203: 0x4414, 0x1204: 0x4414, 0x1205: 0x4456,
- 0x1206: 0x4456, 0x1207: 0x441a, 0x1208: 0x441a, 0x1209: 0x4462, 0x120a: 0x4462, 0x120b: 0x4462,
- 0x120c: 0x4462, 0x120d: 0x0239, 0x120e: 0x0239, 0x120f: 0x023c, 0x1210: 0x023c, 0x1211: 0x023c,
- 0x1212: 0x023c, 0x1213: 0x023f, 0x1214: 0x023f, 0x1215: 0x0242, 0x1216: 0x0242, 0x1217: 0x0242,
- 0x1218: 0x0242, 0x1219: 0x0245, 0x121a: 0x0245, 0x121b: 0x0245, 0x121c: 0x0245, 0x121d: 0x0248,
- 0x121e: 0x0248, 0x121f: 0x0248, 0x1220: 0x0248, 0x1221: 0x024b, 0x1222: 0x024b, 0x1223: 0x024b,
- 0x1224: 0x024b, 0x1225: 0x024e, 0x1226: 0x024e, 0x1227: 0x024e, 0x1228: 0x024e, 0x1229: 0x0251,
- 0x122a: 0x0251, 0x122b: 0x0254, 0x122c: 0x0254, 0x122d: 0x0257, 0x122e: 0x0257, 0x122f: 0x025a,
- 0x1230: 0x025a, 0x1231: 0x025d, 0x1232: 0x025d, 0x1233: 0x025d, 0x1234: 0x025d, 0x1235: 0x0260,
- 0x1236: 0x0260, 0x1237: 0x0260, 0x1238: 0x0260, 0x1239: 0x0263, 0x123a: 0x0263, 0x123b: 0x0263,
- 0x123c: 0x0263, 0x123d: 0x0266, 0x123e: 0x0266, 0x123f: 0x0266,
- // Block 0x49, offset 0x1240
- 0x1240: 0x0266, 0x1241: 0x0269, 0x1242: 0x0269, 0x1243: 0x0269, 0x1244: 0x0269, 0x1245: 0x026c,
- 0x1246: 0x026c, 0x1247: 0x026c, 0x1248: 0x026c, 0x1249: 0x026f, 0x124a: 0x026f, 0x124b: 0x026f,
- 0x124c: 0x026f, 0x124d: 0x0272, 0x124e: 0x0272, 0x124f: 0x0272, 0x1250: 0x0272, 0x1251: 0x0275,
- 0x1252: 0x0275, 0x1253: 0x0275, 0x1254: 0x0275, 0x1255: 0x0278, 0x1256: 0x0278, 0x1257: 0x0278,
- 0x1258: 0x0278, 0x1259: 0x027b, 0x125a: 0x027b, 0x125b: 0x027b, 0x125c: 0x027b, 0x125d: 0x027e,
- 0x125e: 0x027e, 0x125f: 0x027e, 0x1260: 0x027e, 0x1261: 0x0281, 0x1262: 0x0281, 0x1263: 0x0281,
- 0x1264: 0x0281, 0x1265: 0x0284, 0x1266: 0x0284, 0x1267: 0x0284, 0x1268: 0x0284, 0x1269: 0x0287,
- 0x126a: 0x0287, 0x126b: 0x0287, 0x126c: 0x0287, 0x126d: 0x028a, 0x126e: 0x028a, 0x126f: 0x028d,
- 0x1270: 0x028d, 0x1271: 0x0290, 0x1272: 0x0290, 0x1273: 0x0290, 0x1274: 0x0290, 0x1275: 0x2e00,
- 0x1276: 0x2e00, 0x1277: 0x2e08, 0x1278: 0x2e08, 0x1279: 0x2e10, 0x127a: 0x2e10, 0x127b: 0x1f82,
- 0x127c: 0x1f82,
- // Block 0x4a, offset 0x1280
- 0x1280: 0x0081, 0x1281: 0x0083, 0x1282: 0x0085, 0x1283: 0x0087, 0x1284: 0x0089, 0x1285: 0x008b,
- 0x1286: 0x008d, 0x1287: 0x008f, 0x1288: 0x0091, 0x1289: 0x0093, 0x128a: 0x0095, 0x128b: 0x0097,
- 0x128c: 0x0099, 0x128d: 0x009b, 0x128e: 0x009d, 0x128f: 0x009f, 0x1290: 0x00a1, 0x1291: 0x00a3,
- 0x1292: 0x00a5, 0x1293: 0x00a7, 0x1294: 0x00a9, 0x1295: 0x00ab, 0x1296: 0x00ad, 0x1297: 0x00af,
- 0x1298: 0x00b1, 0x1299: 0x00b3, 0x129a: 0x00b5, 0x129b: 0x00b7, 0x129c: 0x00b9, 0x129d: 0x00bb,
- 0x129e: 0x00bd, 0x129f: 0x0477, 0x12a0: 0x047b, 0x12a1: 0x0487, 0x12a2: 0x049b, 0x12a3: 0x049f,
- 0x12a4: 0x0483, 0x12a5: 0x05ab, 0x12a6: 0x05a3, 0x12a7: 0x04c7, 0x12a8: 0x04cf, 0x12a9: 0x04d7,
- 0x12aa: 0x04df, 0x12ab: 0x04e7, 0x12ac: 0x056b, 0x12ad: 0x0573, 0x12ae: 0x057b, 0x12af: 0x051f,
- 0x12b0: 0x05af, 0x12b1: 0x04cb, 0x12b2: 0x04d3, 0x12b3: 0x04db, 0x12b4: 0x04e3, 0x12b5: 0x04eb,
- 0x12b6: 0x04ef, 0x12b7: 0x04f3, 0x12b8: 0x04f7, 0x12b9: 0x04fb, 0x12ba: 0x04ff, 0x12bb: 0x0503,
- 0x12bc: 0x0507, 0x12bd: 0x050b, 0x12be: 0x050f, 0x12bf: 0x0513,
- // Block 0x4b, offset 0x12c0
- 0x12c0: 0x0517, 0x12c1: 0x051b, 0x12c2: 0x0523, 0x12c3: 0x0527, 0x12c4: 0x052b, 0x12c5: 0x052f,
- 0x12c6: 0x0533, 0x12c7: 0x0537, 0x12c8: 0x053b, 0x12c9: 0x053f, 0x12ca: 0x0543, 0x12cb: 0x0547,
- 0x12cc: 0x054b, 0x12cd: 0x054f, 0x12ce: 0x0553, 0x12cf: 0x0557, 0x12d0: 0x055b, 0x12d1: 0x055f,
- 0x12d2: 0x0563, 0x12d3: 0x0567, 0x12d4: 0x056f, 0x12d5: 0x0577, 0x12d6: 0x057f, 0x12d7: 0x0583,
- 0x12d8: 0x0587, 0x12d9: 0x058b, 0x12da: 0x058f, 0x12db: 0x0593, 0x12dc: 0x0597, 0x12dd: 0x05a7,
- 0x12de: 0x4a78, 0x12df: 0x4a7e, 0x12e0: 0x03c3, 0x12e1: 0x0313, 0x12e2: 0x0317, 0x12e3: 0x4a3b,
- 0x12e4: 0x031b, 0x12e5: 0x4a41, 0x12e6: 0x4a47, 0x12e7: 0x031f, 0x12e8: 0x0323, 0x12e9: 0x0327,
- 0x12ea: 0x4a4d, 0x12eb: 0x4a53, 0x12ec: 0x4a59, 0x12ed: 0x4a5f, 0x12ee: 0x4a65, 0x12ef: 0x4a6b,
- 0x12f0: 0x0367, 0x12f1: 0x032b, 0x12f2: 0x032f, 0x12f3: 0x0333, 0x12f4: 0x037b, 0x12f5: 0x0337,
- 0x12f6: 0x033b, 0x12f7: 0x033f, 0x12f8: 0x0343, 0x12f9: 0x0347, 0x12fa: 0x034b, 0x12fb: 0x034f,
- 0x12fc: 0x0353, 0x12fd: 0x0357, 0x12fe: 0x035b,
- // Block 0x4c, offset 0x1300
- 0x1302: 0x49bd, 0x1303: 0x49c3, 0x1304: 0x49c9, 0x1305: 0x49cf,
- 0x1306: 0x49d5, 0x1307: 0x49db, 0x130a: 0x49e1, 0x130b: 0x49e7,
- 0x130c: 0x49ed, 0x130d: 0x49f3, 0x130e: 0x49f9, 0x130f: 0x49ff,
- 0x1312: 0x4a05, 0x1313: 0x4a0b, 0x1314: 0x4a11, 0x1315: 0x4a17, 0x1316: 0x4a1d, 0x1317: 0x4a23,
- 0x131a: 0x4a29, 0x131b: 0x4a2f, 0x131c: 0x4a35,
- 0x1320: 0x00bf, 0x1321: 0x00c2, 0x1322: 0x00cb, 0x1323: 0x4264,
- 0x1324: 0x00c8, 0x1325: 0x00c5, 0x1326: 0x0447, 0x1328: 0x046b, 0x1329: 0x044b,
- 0x132a: 0x044f, 0x132b: 0x0453, 0x132c: 0x0457, 0x132d: 0x046f, 0x132e: 0x0473,
- // Block 0x4d, offset 0x1340
- 0x1340: 0x0063, 0x1341: 0x0065, 0x1342: 0x0067, 0x1343: 0x0069, 0x1344: 0x006b, 0x1345: 0x006d,
- 0x1346: 0x006f, 0x1347: 0x0071, 0x1348: 0x0073, 0x1349: 0x0075, 0x134a: 0x0083, 0x134b: 0x0085,
- 0x134c: 0x0087, 0x134d: 0x0089, 0x134e: 0x008b, 0x134f: 0x008d, 0x1350: 0x008f, 0x1351: 0x0091,
- 0x1352: 0x0093, 0x1353: 0x0095, 0x1354: 0x0097, 0x1355: 0x0099, 0x1356: 0x009b, 0x1357: 0x009d,
- 0x1358: 0x009f, 0x1359: 0x00a1, 0x135a: 0x00a3, 0x135b: 0x00a5, 0x135c: 0x00a7, 0x135d: 0x00a9,
- 0x135e: 0x00ab, 0x135f: 0x00ad, 0x1360: 0x00af, 0x1361: 0x00b1, 0x1362: 0x00b3, 0x1363: 0x00b5,
- 0x1364: 0x00dd, 0x1365: 0x00f2, 0x1368: 0x0173, 0x1369: 0x0176,
- 0x136a: 0x0179, 0x136b: 0x017c, 0x136c: 0x017f, 0x136d: 0x0182, 0x136e: 0x0185, 0x136f: 0x0188,
- 0x1370: 0x018b, 0x1371: 0x018e, 0x1372: 0x0191, 0x1373: 0x0194, 0x1374: 0x0197, 0x1375: 0x019a,
- 0x1376: 0x019d, 0x1377: 0x01a0, 0x1378: 0x01a3, 0x1379: 0x0188, 0x137a: 0x01a6, 0x137b: 0x01a9,
- 0x137c: 0x01ac, 0x137d: 0x01af, 0x137e: 0x01b2, 0x137f: 0x01b5,
- // Block 0x4e, offset 0x1380
- 0x1380: 0x01fd, 0x1381: 0x0200, 0x1382: 0x0203, 0x1383: 0x045b, 0x1384: 0x01c7, 0x1385: 0x01d0,
- 0x1386: 0x01d6, 0x1387: 0x01fa, 0x1388: 0x01eb, 0x1389: 0x01e8, 0x138a: 0x0206, 0x138b: 0x0209,
- 0x138e: 0x0021, 0x138f: 0x0023, 0x1390: 0x0025, 0x1391: 0x0027,
- 0x1392: 0x0029, 0x1393: 0x002b, 0x1394: 0x002d, 0x1395: 0x002f, 0x1396: 0x0031, 0x1397: 0x0033,
- 0x1398: 0x0021, 0x1399: 0x0023, 0x139a: 0x0025, 0x139b: 0x0027, 0x139c: 0x0029, 0x139d: 0x002b,
- 0x139e: 0x002d, 0x139f: 0x002f, 0x13a0: 0x0031, 0x13a1: 0x0033, 0x13a2: 0x0021, 0x13a3: 0x0023,
- 0x13a4: 0x0025, 0x13a5: 0x0027, 0x13a6: 0x0029, 0x13a7: 0x002b, 0x13a8: 0x002d, 0x13a9: 0x002f,
- 0x13aa: 0x0031, 0x13ab: 0x0033, 0x13ac: 0x0021, 0x13ad: 0x0023, 0x13ae: 0x0025, 0x13af: 0x0027,
- 0x13b0: 0x0029, 0x13b1: 0x002b, 0x13b2: 0x002d, 0x13b3: 0x002f, 0x13b4: 0x0031, 0x13b5: 0x0033,
- 0x13b6: 0x0021, 0x13b7: 0x0023, 0x13b8: 0x0025, 0x13b9: 0x0027, 0x13ba: 0x0029, 0x13bb: 0x002b,
- 0x13bc: 0x002d, 0x13bd: 0x002f, 0x13be: 0x0031, 0x13bf: 0x0033,
- // Block 0x4f, offset 0x13c0
- 0x13c0: 0x0239, 0x13c1: 0x023c, 0x13c2: 0x0248, 0x13c3: 0x0251, 0x13c5: 0x028a,
- 0x13c6: 0x025a, 0x13c7: 0x024b, 0x13c8: 0x0269, 0x13c9: 0x0290, 0x13ca: 0x027b, 0x13cb: 0x027e,
- 0x13cc: 0x0281, 0x13cd: 0x0284, 0x13ce: 0x025d, 0x13cf: 0x026f, 0x13d0: 0x0275, 0x13d1: 0x0263,
- 0x13d2: 0x0278, 0x13d3: 0x0257, 0x13d4: 0x0260, 0x13d5: 0x0242, 0x13d6: 0x0245, 0x13d7: 0x024e,
- 0x13d8: 0x0254, 0x13d9: 0x0266, 0x13da: 0x026c, 0x13db: 0x0272, 0x13dc: 0x0293, 0x13dd: 0x02e4,
- 0x13de: 0x02cc, 0x13df: 0x0296, 0x13e1: 0x023c, 0x13e2: 0x0248,
- 0x13e4: 0x0287, 0x13e7: 0x024b, 0x13e9: 0x0290,
- 0x13ea: 0x027b, 0x13eb: 0x027e, 0x13ec: 0x0281, 0x13ed: 0x0284, 0x13ee: 0x025d, 0x13ef: 0x026f,
- 0x13f0: 0x0275, 0x13f1: 0x0263, 0x13f2: 0x0278, 0x13f4: 0x0260, 0x13f5: 0x0242,
- 0x13f6: 0x0245, 0x13f7: 0x024e, 0x13f9: 0x0266, 0x13fb: 0x0272,
- // Block 0x50, offset 0x1400
- 0x1402: 0x0248,
- 0x1407: 0x024b, 0x1409: 0x0290, 0x140b: 0x027e,
- 0x140d: 0x0284, 0x140e: 0x025d, 0x140f: 0x026f, 0x1411: 0x0263,
- 0x1412: 0x0278, 0x1414: 0x0260, 0x1417: 0x024e,
- 0x1419: 0x0266, 0x141b: 0x0272, 0x141d: 0x02e4,
- 0x141f: 0x0296, 0x1421: 0x023c, 0x1422: 0x0248,
- 0x1424: 0x0287, 0x1427: 0x024b, 0x1428: 0x0269, 0x1429: 0x0290,
- 0x142a: 0x027b, 0x142c: 0x0281, 0x142d: 0x0284, 0x142e: 0x025d, 0x142f: 0x026f,
- 0x1430: 0x0275, 0x1431: 0x0263, 0x1432: 0x0278, 0x1434: 0x0260, 0x1435: 0x0242,
- 0x1436: 0x0245, 0x1437: 0x024e, 0x1439: 0x0266, 0x143a: 0x026c, 0x143b: 0x0272,
- 0x143c: 0x0293, 0x143e: 0x02cc,
- // Block 0x51, offset 0x1440
- 0x1440: 0x0239, 0x1441: 0x023c, 0x1442: 0x0248, 0x1443: 0x0251, 0x1444: 0x0287, 0x1445: 0x028a,
- 0x1446: 0x025a, 0x1447: 0x024b, 0x1448: 0x0269, 0x1449: 0x0290, 0x144b: 0x027e,
- 0x144c: 0x0281, 0x144d: 0x0284, 0x144e: 0x025d, 0x144f: 0x026f, 0x1450: 0x0275, 0x1451: 0x0263,
- 0x1452: 0x0278, 0x1453: 0x0257, 0x1454: 0x0260, 0x1455: 0x0242, 0x1456: 0x0245, 0x1457: 0x024e,
- 0x1458: 0x0254, 0x1459: 0x0266, 0x145a: 0x026c, 0x145b: 0x0272,
- 0x1461: 0x023c, 0x1462: 0x0248, 0x1463: 0x0251,
- 0x1465: 0x028a, 0x1466: 0x025a, 0x1467: 0x024b, 0x1468: 0x0269, 0x1469: 0x0290,
- 0x146b: 0x027e, 0x146c: 0x0281, 0x146d: 0x0284, 0x146e: 0x025d, 0x146f: 0x026f,
- 0x1470: 0x0275, 0x1471: 0x0263, 0x1472: 0x0278, 0x1473: 0x0257, 0x1474: 0x0260, 0x1475: 0x0242,
- 0x1476: 0x0245, 0x1477: 0x024e, 0x1478: 0x0254, 0x1479: 0x0266, 0x147a: 0x026c, 0x147b: 0x0272,
- // Block 0x52, offset 0x1480
- 0x1480: 0x1879, 0x1481: 0x1876, 0x1482: 0x187c, 0x1483: 0x18a0, 0x1484: 0x18c4, 0x1485: 0x18e8,
- 0x1486: 0x190c, 0x1487: 0x1915, 0x1488: 0x191b, 0x1489: 0x1921, 0x148a: 0x1927,
- 0x1490: 0x1a8c, 0x1491: 0x1a90,
- 0x1492: 0x1a94, 0x1493: 0x1a98, 0x1494: 0x1a9c, 0x1495: 0x1aa0, 0x1496: 0x1aa4, 0x1497: 0x1aa8,
- 0x1498: 0x1aac, 0x1499: 0x1ab0, 0x149a: 0x1ab4, 0x149b: 0x1ab8, 0x149c: 0x1abc, 0x149d: 0x1ac0,
- 0x149e: 0x1ac4, 0x149f: 0x1ac8, 0x14a0: 0x1acc, 0x14a1: 0x1ad0, 0x14a2: 0x1ad4, 0x14a3: 0x1ad8,
- 0x14a4: 0x1adc, 0x14a5: 0x1ae0, 0x14a6: 0x1ae4, 0x14a7: 0x1ae8, 0x14a8: 0x1aec, 0x14a9: 0x1af0,
- 0x14aa: 0x271e, 0x14ab: 0x0047, 0x14ac: 0x0065, 0x14ad: 0x193c, 0x14ae: 0x19b1,
- 0x14b0: 0x0043, 0x14b1: 0x0045, 0x14b2: 0x0047, 0x14b3: 0x0049, 0x14b4: 0x004b, 0x14b5: 0x004d,
- 0x14b6: 0x004f, 0x14b7: 0x0051, 0x14b8: 0x0053, 0x14b9: 0x0055, 0x14ba: 0x0057, 0x14bb: 0x0059,
- 0x14bc: 0x005b, 0x14bd: 0x005d, 0x14be: 0x005f, 0x14bf: 0x0061,
- // Block 0x53, offset 0x14c0
- 0x14c0: 0x26ad, 0x14c1: 0x26c2, 0x14c2: 0x0503,
- 0x14d0: 0x0c0f, 0x14d1: 0x0a47,
- 0x14d2: 0x08d3, 0x14d3: 0x45c4, 0x14d4: 0x071b, 0x14d5: 0x09ef, 0x14d6: 0x132f, 0x14d7: 0x09ff,
- 0x14d8: 0x0727, 0x14d9: 0x0cd7, 0x14da: 0x0eaf, 0x14db: 0x0caf, 0x14dc: 0x0827, 0x14dd: 0x0b6b,
- 0x14de: 0x07bf, 0x14df: 0x0cb7, 0x14e0: 0x0813, 0x14e1: 0x1117, 0x14e2: 0x0f83, 0x14e3: 0x138b,
- 0x14e4: 0x09d3, 0x14e5: 0x090b, 0x14e6: 0x0e63, 0x14e7: 0x0c1b, 0x14e8: 0x0c47, 0x14e9: 0x06bf,
- 0x14ea: 0x06cb, 0x14eb: 0x140b, 0x14ec: 0x0adb, 0x14ed: 0x06e7, 0x14ee: 0x08ef, 0x14ef: 0x0c3b,
- 0x14f0: 0x13b3, 0x14f1: 0x0c13, 0x14f2: 0x106f, 0x14f3: 0x10ab, 0x14f4: 0x08f7, 0x14f5: 0x0e43,
- 0x14f6: 0x0d0b, 0x14f7: 0x0d07, 0x14f8: 0x0f97, 0x14f9: 0x082b, 0x14fa: 0x0957, 0x14fb: 0x1443,
- // Block 0x54, offset 0x1500
- 0x1500: 0x06fb, 0x1501: 0x06f3, 0x1502: 0x0703, 0x1503: 0x1647, 0x1504: 0x0747, 0x1505: 0x0757,
- 0x1506: 0x075b, 0x1507: 0x0763, 0x1508: 0x076b, 0x1509: 0x076f, 0x150a: 0x077b, 0x150b: 0x0773,
- 0x150c: 0x05b3, 0x150d: 0x165b, 0x150e: 0x078f, 0x150f: 0x0793, 0x1510: 0x0797, 0x1511: 0x07b3,
- 0x1512: 0x164c, 0x1513: 0x05b7, 0x1514: 0x079f, 0x1515: 0x07bf, 0x1516: 0x1656, 0x1517: 0x07cf,
- 0x1518: 0x07d7, 0x1519: 0x0737, 0x151a: 0x07df, 0x151b: 0x07e3, 0x151c: 0x1831, 0x151d: 0x07ff,
- 0x151e: 0x0807, 0x151f: 0x05bf, 0x1520: 0x081f, 0x1521: 0x0823, 0x1522: 0x082b, 0x1523: 0x082f,
- 0x1524: 0x05c3, 0x1525: 0x0847, 0x1526: 0x084b, 0x1527: 0x0857, 0x1528: 0x0863, 0x1529: 0x0867,
- 0x152a: 0x086b, 0x152b: 0x0873, 0x152c: 0x0893, 0x152d: 0x0897, 0x152e: 0x089f, 0x152f: 0x08af,
- 0x1530: 0x08b7, 0x1531: 0x08bb, 0x1532: 0x08bb, 0x1533: 0x08bb, 0x1534: 0x166a, 0x1535: 0x0e93,
- 0x1536: 0x08cf, 0x1537: 0x08d7, 0x1538: 0x166f, 0x1539: 0x08e3, 0x153a: 0x08eb, 0x153b: 0x08f3,
- 0x153c: 0x091b, 0x153d: 0x0907, 0x153e: 0x0913, 0x153f: 0x0917,
- // Block 0x55, offset 0x1540
- 0x1540: 0x091f, 0x1541: 0x0927, 0x1542: 0x092b, 0x1543: 0x0933, 0x1544: 0x093b, 0x1545: 0x093f,
- 0x1546: 0x093f, 0x1547: 0x0947, 0x1548: 0x094f, 0x1549: 0x0953, 0x154a: 0x095f, 0x154b: 0x0983,
- 0x154c: 0x0967, 0x154d: 0x0987, 0x154e: 0x096b, 0x154f: 0x0973, 0x1550: 0x080b, 0x1551: 0x09cf,
- 0x1552: 0x0997, 0x1553: 0x099b, 0x1554: 0x099f, 0x1555: 0x0993, 0x1556: 0x09a7, 0x1557: 0x09a3,
- 0x1558: 0x09bb, 0x1559: 0x1674, 0x155a: 0x09d7, 0x155b: 0x09db, 0x155c: 0x09e3, 0x155d: 0x09ef,
- 0x155e: 0x09f7, 0x155f: 0x0a13, 0x1560: 0x1679, 0x1561: 0x167e, 0x1562: 0x0a1f, 0x1563: 0x0a23,
- 0x1564: 0x0a27, 0x1565: 0x0a1b, 0x1566: 0x0a2f, 0x1567: 0x05c7, 0x1568: 0x05cb, 0x1569: 0x0a37,
- 0x156a: 0x0a3f, 0x156b: 0x0a3f, 0x156c: 0x1683, 0x156d: 0x0a5b, 0x156e: 0x0a5f, 0x156f: 0x0a63,
- 0x1570: 0x0a6b, 0x1571: 0x1688, 0x1572: 0x0a73, 0x1573: 0x0a77, 0x1574: 0x0b4f, 0x1575: 0x0a7f,
- 0x1576: 0x05cf, 0x1577: 0x0a8b, 0x1578: 0x0a9b, 0x1579: 0x0aa7, 0x157a: 0x0aa3, 0x157b: 0x1692,
- 0x157c: 0x0aaf, 0x157d: 0x1697, 0x157e: 0x0abb, 0x157f: 0x0ab7,
- // Block 0x56, offset 0x1580
- 0x1580: 0x0abf, 0x1581: 0x0acf, 0x1582: 0x0ad3, 0x1583: 0x05d3, 0x1584: 0x0ae3, 0x1585: 0x0aeb,
- 0x1586: 0x0aef, 0x1587: 0x0af3, 0x1588: 0x05d7, 0x1589: 0x169c, 0x158a: 0x05db, 0x158b: 0x0b0f,
- 0x158c: 0x0b13, 0x158d: 0x0b17, 0x158e: 0x0b1f, 0x158f: 0x1863, 0x1590: 0x0b37, 0x1591: 0x16a6,
- 0x1592: 0x16a6, 0x1593: 0x11d7, 0x1594: 0x0b47, 0x1595: 0x0b47, 0x1596: 0x05df, 0x1597: 0x16c9,
- 0x1598: 0x179b, 0x1599: 0x0b57, 0x159a: 0x0b5f, 0x159b: 0x05e3, 0x159c: 0x0b73, 0x159d: 0x0b83,
- 0x159e: 0x0b87, 0x159f: 0x0b8f, 0x15a0: 0x0b9f, 0x15a1: 0x05eb, 0x15a2: 0x05e7, 0x15a3: 0x0ba3,
- 0x15a4: 0x16ab, 0x15a5: 0x0ba7, 0x15a6: 0x0bbb, 0x15a7: 0x0bbf, 0x15a8: 0x0bc3, 0x15a9: 0x0bbf,
- 0x15aa: 0x0bcf, 0x15ab: 0x0bd3, 0x15ac: 0x0be3, 0x15ad: 0x0bdb, 0x15ae: 0x0bdf, 0x15af: 0x0be7,
- 0x15b0: 0x0beb, 0x15b1: 0x0bef, 0x15b2: 0x0bfb, 0x15b3: 0x0bff, 0x15b4: 0x0c17, 0x15b5: 0x0c1f,
- 0x15b6: 0x0c2f, 0x15b7: 0x0c43, 0x15b8: 0x16ba, 0x15b9: 0x0c3f, 0x15ba: 0x0c33, 0x15bb: 0x0c4b,
- 0x15bc: 0x0c53, 0x15bd: 0x0c67, 0x15be: 0x16bf, 0x15bf: 0x0c6f,
- // Block 0x57, offset 0x15c0
- 0x15c0: 0x0c63, 0x15c1: 0x0c5b, 0x15c2: 0x05ef, 0x15c3: 0x0c77, 0x15c4: 0x0c7f, 0x15c5: 0x0c87,
- 0x15c6: 0x0c7b, 0x15c7: 0x05f3, 0x15c8: 0x0c97, 0x15c9: 0x0c9f, 0x15ca: 0x16c4, 0x15cb: 0x0ccb,
- 0x15cc: 0x0cff, 0x15cd: 0x0cdb, 0x15ce: 0x05ff, 0x15cf: 0x0ce7, 0x15d0: 0x05fb, 0x15d1: 0x05f7,
- 0x15d2: 0x07c3, 0x15d3: 0x07c7, 0x15d4: 0x0d03, 0x15d5: 0x0ceb, 0x15d6: 0x11ab, 0x15d7: 0x0663,
- 0x15d8: 0x0d0f, 0x15d9: 0x0d13, 0x15da: 0x0d17, 0x15db: 0x0d2b, 0x15dc: 0x0d23, 0x15dd: 0x16dd,
- 0x15de: 0x0603, 0x15df: 0x0d3f, 0x15e0: 0x0d33, 0x15e1: 0x0d4f, 0x15e2: 0x0d57, 0x15e3: 0x16e7,
- 0x15e4: 0x0d5b, 0x15e5: 0x0d47, 0x15e6: 0x0d63, 0x15e7: 0x0607, 0x15e8: 0x0d67, 0x15e9: 0x0d6b,
- 0x15ea: 0x0d6f, 0x15eb: 0x0d7b, 0x15ec: 0x16ec, 0x15ed: 0x0d83, 0x15ee: 0x060b, 0x15ef: 0x0d8f,
- 0x15f0: 0x16f1, 0x15f1: 0x0d93, 0x15f2: 0x060f, 0x15f3: 0x0d9f, 0x15f4: 0x0dab, 0x15f5: 0x0db7,
- 0x15f6: 0x0dbb, 0x15f7: 0x16f6, 0x15f8: 0x168d, 0x15f9: 0x16fb, 0x15fa: 0x0ddb, 0x15fb: 0x1700,
- 0x15fc: 0x0de7, 0x15fd: 0x0def, 0x15fe: 0x0ddf, 0x15ff: 0x0dfb,
- // Block 0x58, offset 0x1600
- 0x1600: 0x0e0b, 0x1601: 0x0e1b, 0x1602: 0x0e0f, 0x1603: 0x0e13, 0x1604: 0x0e1f, 0x1605: 0x0e23,
- 0x1606: 0x1705, 0x1607: 0x0e07, 0x1608: 0x0e3b, 0x1609: 0x0e3f, 0x160a: 0x0613, 0x160b: 0x0e53,
- 0x160c: 0x0e4f, 0x160d: 0x170a, 0x160e: 0x0e33, 0x160f: 0x0e6f, 0x1610: 0x170f, 0x1611: 0x1714,
- 0x1612: 0x0e73, 0x1613: 0x0e87, 0x1614: 0x0e83, 0x1615: 0x0e7f, 0x1616: 0x0617, 0x1617: 0x0e8b,
- 0x1618: 0x0e9b, 0x1619: 0x0e97, 0x161a: 0x0ea3, 0x161b: 0x1651, 0x161c: 0x0eb3, 0x161d: 0x1719,
- 0x161e: 0x0ebf, 0x161f: 0x1723, 0x1620: 0x0ed3, 0x1621: 0x0edf, 0x1622: 0x0ef3, 0x1623: 0x1728,
- 0x1624: 0x0f07, 0x1625: 0x0f0b, 0x1626: 0x172d, 0x1627: 0x1732, 0x1628: 0x0f27, 0x1629: 0x0f37,
- 0x162a: 0x061b, 0x162b: 0x0f3b, 0x162c: 0x061f, 0x162d: 0x061f, 0x162e: 0x0f53, 0x162f: 0x0f57,
- 0x1630: 0x0f5f, 0x1631: 0x0f63, 0x1632: 0x0f6f, 0x1633: 0x0623, 0x1634: 0x0f87, 0x1635: 0x1737,
- 0x1636: 0x0fa3, 0x1637: 0x173c, 0x1638: 0x0faf, 0x1639: 0x16a1, 0x163a: 0x0fbf, 0x163b: 0x1741,
- 0x163c: 0x1746, 0x163d: 0x174b, 0x163e: 0x0627, 0x163f: 0x062b,
- // Block 0x59, offset 0x1640
- 0x1640: 0x0ff7, 0x1641: 0x1755, 0x1642: 0x1750, 0x1643: 0x175a, 0x1644: 0x175f, 0x1645: 0x0fff,
- 0x1646: 0x1003, 0x1647: 0x1003, 0x1648: 0x100b, 0x1649: 0x0633, 0x164a: 0x100f, 0x164b: 0x0637,
- 0x164c: 0x063b, 0x164d: 0x1769, 0x164e: 0x1023, 0x164f: 0x102b, 0x1650: 0x1037, 0x1651: 0x063f,
- 0x1652: 0x176e, 0x1653: 0x105b, 0x1654: 0x1773, 0x1655: 0x1778, 0x1656: 0x107b, 0x1657: 0x1093,
- 0x1658: 0x0643, 0x1659: 0x109b, 0x165a: 0x109f, 0x165b: 0x10a3, 0x165c: 0x177d, 0x165d: 0x1782,
- 0x165e: 0x1782, 0x165f: 0x10bb, 0x1660: 0x0647, 0x1661: 0x1787, 0x1662: 0x10cf, 0x1663: 0x10d3,
- 0x1664: 0x064b, 0x1665: 0x178c, 0x1666: 0x10ef, 0x1667: 0x064f, 0x1668: 0x10ff, 0x1669: 0x10f7,
- 0x166a: 0x1107, 0x166b: 0x1796, 0x166c: 0x111f, 0x166d: 0x0653, 0x166e: 0x112b, 0x166f: 0x1133,
- 0x1670: 0x1143, 0x1671: 0x0657, 0x1672: 0x17a0, 0x1673: 0x17a5, 0x1674: 0x065b, 0x1675: 0x17aa,
- 0x1676: 0x115b, 0x1677: 0x17af, 0x1678: 0x1167, 0x1679: 0x1173, 0x167a: 0x117b, 0x167b: 0x17b4,
- 0x167c: 0x17b9, 0x167d: 0x118f, 0x167e: 0x17be, 0x167f: 0x1197,
- // Block 0x5a, offset 0x1680
- 0x1680: 0x16ce, 0x1681: 0x065f, 0x1682: 0x11af, 0x1683: 0x11b3, 0x1684: 0x0667, 0x1685: 0x11b7,
- 0x1686: 0x0a33, 0x1687: 0x17c3, 0x1688: 0x17c8, 0x1689: 0x16d3, 0x168a: 0x16d8, 0x168b: 0x11d7,
- 0x168c: 0x11db, 0x168d: 0x13f3, 0x168e: 0x066b, 0x168f: 0x1207, 0x1690: 0x1203, 0x1691: 0x120b,
- 0x1692: 0x083f, 0x1693: 0x120f, 0x1694: 0x1213, 0x1695: 0x1217, 0x1696: 0x121f, 0x1697: 0x17cd,
- 0x1698: 0x121b, 0x1699: 0x1223, 0x169a: 0x1237, 0x169b: 0x123b, 0x169c: 0x1227, 0x169d: 0x123f,
- 0x169e: 0x1253, 0x169f: 0x1267, 0x16a0: 0x1233, 0x16a1: 0x1247, 0x16a2: 0x124b, 0x16a3: 0x124f,
- 0x16a4: 0x17d2, 0x16a5: 0x17dc, 0x16a6: 0x17d7, 0x16a7: 0x066f, 0x16a8: 0x126f, 0x16a9: 0x1273,
- 0x16aa: 0x127b, 0x16ab: 0x17f0, 0x16ac: 0x127f, 0x16ad: 0x17e1, 0x16ae: 0x0673, 0x16af: 0x0677,
- 0x16b0: 0x17e6, 0x16b1: 0x17eb, 0x16b2: 0x067b, 0x16b3: 0x129f, 0x16b4: 0x12a3, 0x16b5: 0x12a7,
- 0x16b6: 0x12ab, 0x16b7: 0x12b7, 0x16b8: 0x12b3, 0x16b9: 0x12bf, 0x16ba: 0x12bb, 0x16bb: 0x12cb,
- 0x16bc: 0x12c3, 0x16bd: 0x12c7, 0x16be: 0x12cf, 0x16bf: 0x067f,
- // Block 0x5b, offset 0x16c0
- 0x16c0: 0x12d7, 0x16c1: 0x12db, 0x16c2: 0x0683, 0x16c3: 0x12eb, 0x16c4: 0x12ef, 0x16c5: 0x17f5,
- 0x16c6: 0x12fb, 0x16c7: 0x12ff, 0x16c8: 0x0687, 0x16c9: 0x130b, 0x16ca: 0x05bb, 0x16cb: 0x17fa,
- 0x16cc: 0x17ff, 0x16cd: 0x068b, 0x16ce: 0x068f, 0x16cf: 0x1337, 0x16d0: 0x134f, 0x16d1: 0x136b,
- 0x16d2: 0x137b, 0x16d3: 0x1804, 0x16d4: 0x138f, 0x16d5: 0x1393, 0x16d6: 0x13ab, 0x16d7: 0x13b7,
- 0x16d8: 0x180e, 0x16d9: 0x1660, 0x16da: 0x13c3, 0x16db: 0x13bf, 0x16dc: 0x13cb, 0x16dd: 0x1665,
- 0x16de: 0x13d7, 0x16df: 0x13e3, 0x16e0: 0x1813, 0x16e1: 0x1818, 0x16e2: 0x1423, 0x16e3: 0x142f,
- 0x16e4: 0x1437, 0x16e5: 0x181d, 0x16e6: 0x143b, 0x16e7: 0x1467, 0x16e8: 0x1473, 0x16e9: 0x1477,
- 0x16ea: 0x146f, 0x16eb: 0x1483, 0x16ec: 0x1487, 0x16ed: 0x1822, 0x16ee: 0x1493, 0x16ef: 0x0693,
- 0x16f0: 0x149b, 0x16f1: 0x1827, 0x16f2: 0x0697, 0x16f3: 0x14d3, 0x16f4: 0x0ac3, 0x16f5: 0x14eb,
- 0x16f6: 0x182c, 0x16f7: 0x1836, 0x16f8: 0x069b, 0x16f9: 0x069f, 0x16fa: 0x1513, 0x16fb: 0x183b,
- 0x16fc: 0x06a3, 0x16fd: 0x1840, 0x16fe: 0x152b, 0x16ff: 0x152b,
- // Block 0x5c, offset 0x1700
- 0x1700: 0x1533, 0x1701: 0x1845, 0x1702: 0x154b, 0x1703: 0x06a7, 0x1704: 0x155b, 0x1705: 0x1567,
- 0x1706: 0x156f, 0x1707: 0x1577, 0x1708: 0x06ab, 0x1709: 0x184a, 0x170a: 0x158b, 0x170b: 0x15a7,
- 0x170c: 0x15b3, 0x170d: 0x06af, 0x170e: 0x06b3, 0x170f: 0x15b7, 0x1710: 0x184f, 0x1711: 0x06b7,
- 0x1712: 0x1854, 0x1713: 0x1859, 0x1714: 0x185e, 0x1715: 0x15db, 0x1716: 0x06bb, 0x1717: 0x15ef,
- 0x1718: 0x15f7, 0x1719: 0x15fb, 0x171a: 0x1603, 0x171b: 0x160b, 0x171c: 0x1613, 0x171d: 0x1868,
-}
-
-// nfkcIndex: 22 blocks, 1408 entries, 1408 bytes
-// Block 0 is the zero block.
-var nfkcIndex = [1408]uint8{
- // Block 0x0, offset 0x0
- // Block 0x1, offset 0x40
- // Block 0x2, offset 0x80
- // Block 0x3, offset 0xc0
- 0xc2: 0x5b, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x5c, 0xc7: 0x04,
- 0xc8: 0x05, 0xca: 0x5d, 0xcb: 0x5e, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x09,
- 0xd0: 0x0a, 0xd1: 0x5f, 0xd2: 0x60, 0xd3: 0x0b, 0xd6: 0x0c, 0xd7: 0x61,
- 0xd8: 0x62, 0xd9: 0x0d, 0xdb: 0x63, 0xdc: 0x64, 0xdd: 0x65, 0xdf: 0x66,
- 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05,
- 0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a,
- 0xf0: 0x13,
- // Block 0x4, offset 0x100
- 0x120: 0x67, 0x121: 0x68, 0x123: 0x69, 0x124: 0x6a, 0x125: 0x6b, 0x126: 0x6c, 0x127: 0x6d,
- 0x128: 0x6e, 0x129: 0x6f, 0x12a: 0x70, 0x12b: 0x71, 0x12c: 0x6c, 0x12d: 0x72, 0x12e: 0x73, 0x12f: 0x74,
- 0x131: 0x75, 0x132: 0x76, 0x133: 0x77, 0x134: 0x78, 0x135: 0x79, 0x137: 0x7a,
- 0x138: 0x7b, 0x139: 0x7c, 0x13a: 0x7d, 0x13b: 0x7e, 0x13c: 0x7f, 0x13d: 0x80, 0x13e: 0x81, 0x13f: 0x82,
- // Block 0x5, offset 0x140
- 0x140: 0x83, 0x142: 0x84, 0x143: 0x85, 0x144: 0x86, 0x145: 0x87, 0x146: 0x88, 0x147: 0x89,
- 0x14d: 0x8a,
- 0x15c: 0x8b, 0x15f: 0x8c,
- 0x162: 0x8d, 0x164: 0x8e,
- 0x168: 0x8f, 0x169: 0x90, 0x16a: 0x91, 0x16c: 0x0e, 0x16d: 0x92, 0x16e: 0x93, 0x16f: 0x94,
- 0x170: 0x95, 0x173: 0x96, 0x174: 0x97, 0x175: 0x0f, 0x176: 0x10, 0x177: 0x11,
- 0x178: 0x12, 0x179: 0x13, 0x17a: 0x14, 0x17b: 0x15, 0x17c: 0x16, 0x17d: 0x17, 0x17e: 0x18, 0x17f: 0x19,
- // Block 0x6, offset 0x180
- 0x180: 0x98, 0x181: 0x99, 0x182: 0x9a, 0x183: 0x9b, 0x184: 0x1a, 0x185: 0x1b, 0x186: 0x9c, 0x187: 0x9d,
- 0x188: 0x9e, 0x189: 0x1c, 0x18a: 0x1d, 0x18b: 0x9f, 0x18c: 0xa0,
- 0x191: 0x1e, 0x192: 0x1f, 0x193: 0xa1,
- 0x1a8: 0xa2, 0x1a9: 0xa3, 0x1ab: 0xa4,
- 0x1b1: 0xa5, 0x1b3: 0xa6, 0x1b5: 0xa7, 0x1b7: 0xa8,
- 0x1ba: 0xa9, 0x1bb: 0xaa, 0x1bc: 0x20, 0x1bd: 0x21, 0x1be: 0x22, 0x1bf: 0xab,
- // Block 0x7, offset 0x1c0
- 0x1c0: 0xac, 0x1c1: 0x23, 0x1c2: 0x24, 0x1c3: 0x25, 0x1c4: 0xad, 0x1c5: 0x26, 0x1c6: 0x27,
- 0x1c8: 0x28, 0x1c9: 0x29, 0x1ca: 0x2a, 0x1cb: 0x2b, 0x1cc: 0x2c, 0x1cd: 0x2d, 0x1ce: 0x2e, 0x1cf: 0x2f,
- // Block 0x8, offset 0x200
- 0x219: 0xae, 0x21a: 0xaf, 0x21b: 0xb0, 0x21d: 0xb1, 0x21f: 0xb2,
- 0x220: 0xb3, 0x223: 0xb4, 0x224: 0xb5, 0x225: 0xb6, 0x226: 0xb7, 0x227: 0xb8,
- 0x22a: 0xb9, 0x22b: 0xba, 0x22d: 0xbb, 0x22f: 0xbc,
- 0x230: 0xbd, 0x231: 0xbe, 0x232: 0xbf, 0x233: 0xc0, 0x234: 0xc1, 0x235: 0xc2, 0x236: 0xc3, 0x237: 0xbd,
- 0x238: 0xbe, 0x239: 0xbf, 0x23a: 0xc0, 0x23b: 0xc1, 0x23c: 0xc2, 0x23d: 0xc3, 0x23e: 0xbd, 0x23f: 0xbe,
- // Block 0x9, offset 0x240
- 0x240: 0xbf, 0x241: 0xc0, 0x242: 0xc1, 0x243: 0xc2, 0x244: 0xc3, 0x245: 0xbd, 0x246: 0xbe, 0x247: 0xbf,
- 0x248: 0xc0, 0x249: 0xc1, 0x24a: 0xc2, 0x24b: 0xc3, 0x24c: 0xbd, 0x24d: 0xbe, 0x24e: 0xbf, 0x24f: 0xc0,
- 0x250: 0xc1, 0x251: 0xc2, 0x252: 0xc3, 0x253: 0xbd, 0x254: 0xbe, 0x255: 0xbf, 0x256: 0xc0, 0x257: 0xc1,
- 0x258: 0xc2, 0x259: 0xc3, 0x25a: 0xbd, 0x25b: 0xbe, 0x25c: 0xbf, 0x25d: 0xc0, 0x25e: 0xc1, 0x25f: 0xc2,
- 0x260: 0xc3, 0x261: 0xbd, 0x262: 0xbe, 0x263: 0xbf, 0x264: 0xc0, 0x265: 0xc1, 0x266: 0xc2, 0x267: 0xc3,
- 0x268: 0xbd, 0x269: 0xbe, 0x26a: 0xbf, 0x26b: 0xc0, 0x26c: 0xc1, 0x26d: 0xc2, 0x26e: 0xc3, 0x26f: 0xbd,
- 0x270: 0xbe, 0x271: 0xbf, 0x272: 0xc0, 0x273: 0xc1, 0x274: 0xc2, 0x275: 0xc3, 0x276: 0xbd, 0x277: 0xbe,
- 0x278: 0xbf, 0x279: 0xc0, 0x27a: 0xc1, 0x27b: 0xc2, 0x27c: 0xc3, 0x27d: 0xbd, 0x27e: 0xbe, 0x27f: 0xbf,
- // Block 0xa, offset 0x280
- 0x280: 0xc0, 0x281: 0xc1, 0x282: 0xc2, 0x283: 0xc3, 0x284: 0xbd, 0x285: 0xbe, 0x286: 0xbf, 0x287: 0xc0,
- 0x288: 0xc1, 0x289: 0xc2, 0x28a: 0xc3, 0x28b: 0xbd, 0x28c: 0xbe, 0x28d: 0xbf, 0x28e: 0xc0, 0x28f: 0xc1,
- 0x290: 0xc2, 0x291: 0xc3, 0x292: 0xbd, 0x293: 0xbe, 0x294: 0xbf, 0x295: 0xc0, 0x296: 0xc1, 0x297: 0xc2,
- 0x298: 0xc3, 0x299: 0xbd, 0x29a: 0xbe, 0x29b: 0xbf, 0x29c: 0xc0, 0x29d: 0xc1, 0x29e: 0xc2, 0x29f: 0xc3,
- 0x2a0: 0xbd, 0x2a1: 0xbe, 0x2a2: 0xbf, 0x2a3: 0xc0, 0x2a4: 0xc1, 0x2a5: 0xc2, 0x2a6: 0xc3, 0x2a7: 0xbd,
- 0x2a8: 0xbe, 0x2a9: 0xbf, 0x2aa: 0xc0, 0x2ab: 0xc1, 0x2ac: 0xc2, 0x2ad: 0xc3, 0x2ae: 0xbd, 0x2af: 0xbe,
- 0x2b0: 0xbf, 0x2b1: 0xc0, 0x2b2: 0xc1, 0x2b3: 0xc2, 0x2b4: 0xc3, 0x2b5: 0xbd, 0x2b6: 0xbe, 0x2b7: 0xbf,
- 0x2b8: 0xc0, 0x2b9: 0xc1, 0x2ba: 0xc2, 0x2bb: 0xc3, 0x2bc: 0xbd, 0x2bd: 0xbe, 0x2be: 0xbf, 0x2bf: 0xc0,
- // Block 0xb, offset 0x2c0
- 0x2c0: 0xc1, 0x2c1: 0xc2, 0x2c2: 0xc3, 0x2c3: 0xbd, 0x2c4: 0xbe, 0x2c5: 0xbf, 0x2c6: 0xc0, 0x2c7: 0xc1,
- 0x2c8: 0xc2, 0x2c9: 0xc3, 0x2ca: 0xbd, 0x2cb: 0xbe, 0x2cc: 0xbf, 0x2cd: 0xc0, 0x2ce: 0xc1, 0x2cf: 0xc2,
- 0x2d0: 0xc3, 0x2d1: 0xbd, 0x2d2: 0xbe, 0x2d3: 0xbf, 0x2d4: 0xc0, 0x2d5: 0xc1, 0x2d6: 0xc2, 0x2d7: 0xc3,
- 0x2d8: 0xbd, 0x2d9: 0xbe, 0x2da: 0xbf, 0x2db: 0xc0, 0x2dc: 0xc1, 0x2dd: 0xc2, 0x2de: 0xc4,
- // Block 0xc, offset 0x300
- 0x324: 0x30, 0x325: 0x31, 0x326: 0x32, 0x327: 0x33,
- 0x328: 0x34, 0x329: 0x35, 0x32a: 0x36, 0x32b: 0x37, 0x32c: 0x38, 0x32d: 0x39, 0x32e: 0x3a, 0x32f: 0x3b,
- 0x330: 0x3c, 0x331: 0x3d, 0x332: 0x3e, 0x333: 0x3f, 0x334: 0x40, 0x335: 0x41, 0x336: 0x42, 0x337: 0x43,
- 0x338: 0x44, 0x339: 0x45, 0x33a: 0x46, 0x33b: 0x47, 0x33c: 0xc5, 0x33d: 0x48, 0x33e: 0x49, 0x33f: 0x4a,
- // Block 0xd, offset 0x340
- 0x347: 0xc6,
- 0x34b: 0xc7, 0x34d: 0xc8,
- 0x368: 0xc9, 0x36b: 0xca,
- // Block 0xe, offset 0x380
- 0x381: 0xcb, 0x382: 0xcc, 0x384: 0xcd, 0x385: 0xb7, 0x387: 0xce,
- 0x388: 0xcf, 0x38b: 0xd0, 0x38c: 0x6c, 0x38d: 0xd1,
- 0x391: 0xd2, 0x392: 0xd3, 0x393: 0xd4, 0x396: 0xd5, 0x397: 0xd6,
- 0x398: 0xd7, 0x39a: 0xd8, 0x39c: 0xd9,
- 0x3a8: 0xda, 0x3a9: 0xdb, 0x3aa: 0xdc,
- 0x3b0: 0xd7, 0x3b5: 0xdd,
- // Block 0xf, offset 0x3c0
- 0x3eb: 0xde, 0x3ec: 0xdf,
- // Block 0x10, offset 0x400
- 0x432: 0xe0,
- // Block 0x11, offset 0x440
- 0x445: 0xe1, 0x446: 0xe2, 0x447: 0xe3,
- 0x449: 0xe4,
- 0x450: 0xe5, 0x451: 0xe6, 0x452: 0xe7, 0x453: 0xe8, 0x454: 0xe9, 0x455: 0xea, 0x456: 0xeb, 0x457: 0xec,
- 0x458: 0xed, 0x459: 0xee, 0x45a: 0x4b, 0x45b: 0xef, 0x45c: 0xf0, 0x45d: 0xf1, 0x45e: 0xf2, 0x45f: 0x4c,
- // Block 0x12, offset 0x480
- 0x480: 0xf3,
- 0x4a3: 0xf4, 0x4a5: 0xf5,
- 0x4b8: 0x4d, 0x4b9: 0x4e, 0x4ba: 0x4f,
- // Block 0x13, offset 0x4c0
- 0x4c4: 0x50, 0x4c5: 0xf6, 0x4c6: 0xf7,
- 0x4c8: 0x51, 0x4c9: 0xf8,
- // Block 0x14, offset 0x500
- 0x520: 0x52, 0x521: 0x53, 0x522: 0x54, 0x523: 0x55, 0x524: 0x56, 0x525: 0x57, 0x526: 0x58, 0x527: 0x59,
- 0x528: 0x5a,
- // Block 0x15, offset 0x540
- 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d,
- 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,
- 0x56f: 0x12,
-}
-
-// nfkcSparseOffset: 158 entries, 316 bytes
-var nfkcSparseOffset = []uint16{0x0, 0xe, 0x12, 0x1b, 0x25, 0x35, 0x37, 0x3c, 0x47, 0x56, 0x63, 0x6b, 0x6f, 0x74, 0x76, 0x87, 0x8f, 0x96, 0x99, 0xa0, 0xa4, 0xa8, 0xaa, 0xac, 0xb5, 0xb9, 0xc0, 0xc5, 0xc8, 0xd2, 0xd5, 0xdc, 0xe4, 0xe8, 0xea, 0xed, 0xf1, 0xf7, 0x108, 0x114, 0x116, 0x11c, 0x11e, 0x120, 0x122, 0x124, 0x126, 0x128, 0x12a, 0x12d, 0x130, 0x132, 0x135, 0x138, 0x13c, 0x141, 0x14a, 0x14c, 0x14f, 0x151, 0x15c, 0x167, 0x175, 0x183, 0x193, 0x1a1, 0x1a8, 0x1ae, 0x1bd, 0x1c1, 0x1c3, 0x1c7, 0x1c9, 0x1cc, 0x1ce, 0x1d1, 0x1d3, 0x1d6, 0x1d8, 0x1da, 0x1dc, 0x1e8, 0x1f2, 0x1fc, 0x1ff, 0x203, 0x205, 0x207, 0x209, 0x20b, 0x20e, 0x210, 0x212, 0x214, 0x216, 0x21c, 0x21f, 0x223, 0x225, 0x22c, 0x232, 0x238, 0x240, 0x246, 0x24c, 0x252, 0x256, 0x258, 0x25a, 0x25c, 0x25e, 0x264, 0x267, 0x26a, 0x272, 0x279, 0x27c, 0x27f, 0x281, 0x289, 0x28c, 0x293, 0x296, 0x29c, 0x29e, 0x2a0, 0x2a3, 0x2a5, 0x2a7, 0x2a9, 0x2ab, 0x2ae, 0x2b0, 0x2b2, 0x2b4, 0x2c1, 0x2cb, 0x2cd, 0x2cf, 0x2d3, 0x2d8, 0x2e4, 0x2e9, 0x2f2, 0x2f8, 0x2fd, 0x301, 0x306, 0x30a, 0x31a, 0x328, 0x336, 0x344, 0x34a, 0x34c, 0x34f, 0x359, 0x35b}
-
-// nfkcSparseValues: 869 entries, 3476 bytes
-var nfkcSparseValues = [869]valueRange{
- // Block 0x0, offset 0x0
- {value: 0x0002, lo: 0x0d},
- {value: 0x0001, lo: 0xa0, hi: 0xa0},
- {value: 0x4278, lo: 0xa8, hi: 0xa8},
- {value: 0x0083, lo: 0xaa, hi: 0xaa},
- {value: 0x4264, lo: 0xaf, hi: 0xaf},
- {value: 0x0025, lo: 0xb2, hi: 0xb3},
- {value: 0x425a, lo: 0xb4, hi: 0xb4},
- {value: 0x01dc, lo: 0xb5, hi: 0xb5},
- {value: 0x4291, lo: 0xb8, hi: 0xb8},
- {value: 0x0023, lo: 0xb9, hi: 0xb9},
- {value: 0x009f, lo: 0xba, hi: 0xba},
- {value: 0x221c, lo: 0xbc, hi: 0xbc},
- {value: 0x2210, lo: 0xbd, hi: 0xbd},
- {value: 0x22b2, lo: 0xbe, hi: 0xbe},
- // Block 0x1, offset 0xe
- {value: 0x0091, lo: 0x03},
- {value: 0x46e2, lo: 0xa0, hi: 0xa1},
- {value: 0x4714, lo: 0xaf, hi: 0xb0},
- {value: 0xa000, lo: 0xb7, hi: 0xb7},
- // Block 0x2, offset 0x12
- {value: 0x0003, lo: 0x08},
- {value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0x0091, lo: 0xb0, hi: 0xb0},
- {value: 0x0119, lo: 0xb1, hi: 0xb1},
- {value: 0x0095, lo: 0xb2, hi: 0xb2},
- {value: 0x00a5, lo: 0xb3, hi: 0xb3},
- {value: 0x0143, lo: 0xb4, hi: 0xb6},
- {value: 0x00af, lo: 0xb7, hi: 0xb7},
- {value: 0x00b3, lo: 0xb8, hi: 0xb8},
- // Block 0x3, offset 0x1b
- {value: 0x000a, lo: 0x09},
- {value: 0x426e, lo: 0x98, hi: 0x98},
- {value: 0x4273, lo: 0x99, hi: 0x9a},
- {value: 0x4296, lo: 0x9b, hi: 0x9b},
- {value: 0x425f, lo: 0x9c, hi: 0x9c},
- {value: 0x4282, lo: 0x9d, hi: 0x9d},
- {value: 0x0113, lo: 0xa0, hi: 0xa0},
- {value: 0x0099, lo: 0xa1, hi: 0xa1},
- {value: 0x00a7, lo: 0xa2, hi: 0xa3},
- {value: 0x0167, lo: 0xa4, hi: 0xa4},
- // Block 0x4, offset 0x25
- {value: 0x0000, lo: 0x0f},
- {value: 0xa000, lo: 0x83, hi: 0x83},
- {value: 0xa000, lo: 0x87, hi: 0x87},
- {value: 0xa000, lo: 0x8b, hi: 0x8b},
- {value: 0xa000, lo: 0x8d, hi: 0x8d},
- {value: 0x37a5, lo: 0x90, hi: 0x90},
- {value: 0x37b1, lo: 0x91, hi: 0x91},
- {value: 0x379f, lo: 0x93, hi: 0x93},
- {value: 0xa000, lo: 0x96, hi: 0x96},
- {value: 0x3817, lo: 0x97, hi: 0x97},
- {value: 0x37e1, lo: 0x9c, hi: 0x9c},
- {value: 0x37c9, lo: 0x9d, hi: 0x9d},
- {value: 0x37f3, lo: 0x9e, hi: 0x9e},
- {value: 0xa000, lo: 0xb4, hi: 0xb5},
- {value: 0x381d, lo: 0xb6, hi: 0xb6},
- {value: 0x3823, lo: 0xb7, hi: 0xb7},
- // Block 0x5, offset 0x35
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0x83, hi: 0x87},
- // Block 0x6, offset 0x37
- {value: 0x0001, lo: 0x04},
- {value: 0x8113, lo: 0x81, hi: 0x82},
- {value: 0x8132, lo: 0x84, hi: 0x84},
- {value: 0x812d, lo: 0x85, hi: 0x85},
- {value: 0x810d, lo: 0x87, hi: 0x87},
- // Block 0x7, offset 0x3c
- {value: 0x0000, lo: 0x0a},
- {value: 0x8132, lo: 0x90, hi: 0x97},
- {value: 0x8119, lo: 0x98, hi: 0x98},
- {value: 0x811a, lo: 0x99, hi: 0x99},
- {value: 0x811b, lo: 0x9a, hi: 0x9a},
- {value: 0x3841, lo: 0xa2, hi: 0xa2},
- {value: 0x3847, lo: 0xa3, hi: 0xa3},
- {value: 0x3853, lo: 0xa4, hi: 0xa4},
- {value: 0x384d, lo: 0xa5, hi: 0xa5},
- {value: 0x3859, lo: 0xa6, hi: 0xa6},
- {value: 0xa000, lo: 0xa7, hi: 0xa7},
- // Block 0x8, offset 0x47
- {value: 0x0000, lo: 0x0e},
- {value: 0x386b, lo: 0x80, hi: 0x80},
- {value: 0xa000, lo: 0x81, hi: 0x81},
- {value: 0x385f, lo: 0x82, hi: 0x82},
- {value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0x3865, lo: 0x93, hi: 0x93},
- {value: 0xa000, lo: 0x95, hi: 0x95},
- {value: 0x8132, lo: 0x96, hi: 0x9c},
- {value: 0x8132, lo: 0x9f, hi: 0xa2},
- {value: 0x812d, lo: 0xa3, hi: 0xa3},
- {value: 0x8132, lo: 0xa4, hi: 0xa4},
- {value: 0x8132, lo: 0xa7, hi: 0xa8},
- {value: 0x812d, lo: 0xaa, hi: 0xaa},
- {value: 0x8132, lo: 0xab, hi: 0xac},
- {value: 0x812d, lo: 0xad, hi: 0xad},
- // Block 0x9, offset 0x56
- {value: 0x0000, lo: 0x0c},
- {value: 0x811f, lo: 0x91, hi: 0x91},
- {value: 0x8132, lo: 0xb0, hi: 0xb0},
- {value: 0x812d, lo: 0xb1, hi: 0xb1},
- {value: 0x8132, lo: 0xb2, hi: 0xb3},
- {value: 0x812d, lo: 0xb4, hi: 0xb4},
- {value: 0x8132, lo: 0xb5, hi: 0xb6},
- {value: 0x812d, lo: 0xb7, hi: 0xb9},
- {value: 0x8132, lo: 0xba, hi: 0xba},
- {value: 0x812d, lo: 0xbb, hi: 0xbc},
- {value: 0x8132, lo: 0xbd, hi: 0xbd},
- {value: 0x812d, lo: 0xbe, hi: 0xbe},
- {value: 0x8132, lo: 0xbf, hi: 0xbf},
- // Block 0xa, offset 0x63
- {value: 0x0005, lo: 0x07},
- {value: 0x8132, lo: 0x80, hi: 0x80},
- {value: 0x8132, lo: 0x81, hi: 0x81},
- {value: 0x812d, lo: 0x82, hi: 0x83},
- {value: 0x812d, lo: 0x84, hi: 0x85},
- {value: 0x812d, lo: 0x86, hi: 0x87},
- {value: 0x812d, lo: 0x88, hi: 0x89},
- {value: 0x8132, lo: 0x8a, hi: 0x8a},
- // Block 0xb, offset 0x6b
- {value: 0x0000, lo: 0x03},
- {value: 0x8132, lo: 0xab, hi: 0xb1},
- {value: 0x812d, lo: 0xb2, hi: 0xb2},
- {value: 0x8132, lo: 0xb3, hi: 0xb3},
- // Block 0xc, offset 0x6f
- {value: 0x0000, lo: 0x04},
- {value: 0x8132, lo: 0x96, hi: 0x99},
- {value: 0x8132, lo: 0x9b, hi: 0xa3},
- {value: 0x8132, lo: 0xa5, hi: 0xa7},
- {value: 0x8132, lo: 0xa9, hi: 0xad},
- // Block 0xd, offset 0x74
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0x99, hi: 0x9b},
- // Block 0xe, offset 0x76
- {value: 0x0000, lo: 0x10},
- {value: 0x8132, lo: 0x94, hi: 0xa1},
- {value: 0x812d, lo: 0xa3, hi: 0xa3},
- {value: 0x8132, lo: 0xa4, hi: 0xa5},
- {value: 0x812d, lo: 0xa6, hi: 0xa6},
- {value: 0x8132, lo: 0xa7, hi: 0xa8},
- {value: 0x812d, lo: 0xa9, hi: 0xa9},
- {value: 0x8132, lo: 0xaa, hi: 0xac},
- {value: 0x812d, lo: 0xad, hi: 0xaf},
- {value: 0x8116, lo: 0xb0, hi: 0xb0},
- {value: 0x8117, lo: 0xb1, hi: 0xb1},
- {value: 0x8118, lo: 0xb2, hi: 0xb2},
- {value: 0x8132, lo: 0xb3, hi: 0xb5},
- {value: 0x812d, lo: 0xb6, hi: 0xb6},
- {value: 0x8132, lo: 0xb7, hi: 0xb8},
- {value: 0x812d, lo: 0xb9, hi: 0xba},
- {value: 0x8132, lo: 0xbb, hi: 0xbf},
- // Block 0xf, offset 0x87
- {value: 0x0000, lo: 0x07},
- {value: 0xa000, lo: 0xa8, hi: 0xa8},
- {value: 0x3ed8, lo: 0xa9, hi: 0xa9},
- {value: 0xa000, lo: 0xb0, hi: 0xb0},
- {value: 0x3ee0, lo: 0xb1, hi: 0xb1},
- {value: 0xa000, lo: 0xb3, hi: 0xb3},
- {value: 0x3ee8, lo: 0xb4, hi: 0xb4},
- {value: 0x9902, lo: 0xbc, hi: 0xbc},
- // Block 0x10, offset 0x8f
- {value: 0x0008, lo: 0x06},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x8132, lo: 0x91, hi: 0x91},
- {value: 0x812d, lo: 0x92, hi: 0x92},
- {value: 0x8132, lo: 0x93, hi: 0x93},
- {value: 0x8132, lo: 0x94, hi: 0x94},
- {value: 0x451c, lo: 0x98, hi: 0x9f},
- // Block 0x11, offset 0x96
- {value: 0x0000, lo: 0x02},
- {value: 0x8102, lo: 0xbc, hi: 0xbc},
- {value: 0x9900, lo: 0xbe, hi: 0xbe},
- // Block 0x12, offset 0x99
- {value: 0x0008, lo: 0x06},
- {value: 0xa000, lo: 0x87, hi: 0x87},
- {value: 0x2c9e, lo: 0x8b, hi: 0x8c},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x9900, lo: 0x97, hi: 0x97},
- {value: 0x455c, lo: 0x9c, hi: 0x9d},
- {value: 0x456c, lo: 0x9f, hi: 0x9f},
- // Block 0x13, offset 0xa0
- {value: 0x0000, lo: 0x03},
- {value: 0x4594, lo: 0xb3, hi: 0xb3},
- {value: 0x459c, lo: 0xb6, hi: 0xb6},
- {value: 0x8102, lo: 0xbc, hi: 0xbc},
- // Block 0x14, offset 0xa4
- {value: 0x0008, lo: 0x03},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x4574, lo: 0x99, hi: 0x9b},
- {value: 0x458c, lo: 0x9e, hi: 0x9e},
- // Block 0x15, offset 0xa8
- {value: 0x0000, lo: 0x01},
- {value: 0x8102, lo: 0xbc, hi: 0xbc},
- // Block 0x16, offset 0xaa
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- // Block 0x17, offset 0xac
- {value: 0x0000, lo: 0x08},
- {value: 0xa000, lo: 0x87, hi: 0x87},
- {value: 0x2cb6, lo: 0x88, hi: 0x88},
- {value: 0x2cae, lo: 0x8b, hi: 0x8b},
- {value: 0x2cbe, lo: 0x8c, hi: 0x8c},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x9900, lo: 0x96, hi: 0x97},
- {value: 0x45a4, lo: 0x9c, hi: 0x9c},
- {value: 0x45ac, lo: 0x9d, hi: 0x9d},
- // Block 0x18, offset 0xb5
- {value: 0x0000, lo: 0x03},
- {value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0x2cc6, lo: 0x94, hi: 0x94},
- {value: 0x9900, lo: 0xbe, hi: 0xbe},
- // Block 0x19, offset 0xb9
- {value: 0x0000, lo: 0x06},
- {value: 0xa000, lo: 0x86, hi: 0x87},
- {value: 0x2cce, lo: 0x8a, hi: 0x8a},
- {value: 0x2cde, lo: 0x8b, hi: 0x8b},
- {value: 0x2cd6, lo: 0x8c, hi: 0x8c},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x9900, lo: 0x97, hi: 0x97},
- // Block 0x1a, offset 0xc0
- {value: 0x1801, lo: 0x04},
- {value: 0xa000, lo: 0x86, hi: 0x86},
- {value: 0x3ef0, lo: 0x88, hi: 0x88},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x8120, lo: 0x95, hi: 0x96},
- // Block 0x1b, offset 0xc5
- {value: 0x0000, lo: 0x02},
- {value: 0x8102, lo: 0xbc, hi: 0xbc},
- {value: 0xa000, lo: 0xbf, hi: 0xbf},
- // Block 0x1c, offset 0xc8
- {value: 0x0000, lo: 0x09},
- {value: 0x2ce6, lo: 0x80, hi: 0x80},
- {value: 0x9900, lo: 0x82, hi: 0x82},
- {value: 0xa000, lo: 0x86, hi: 0x86},
- {value: 0x2cee, lo: 0x87, hi: 0x87},
- {value: 0x2cf6, lo: 0x88, hi: 0x88},
- {value: 0x2f50, lo: 0x8a, hi: 0x8a},
- {value: 0x2dd8, lo: 0x8b, hi: 0x8b},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x9900, lo: 0x95, hi: 0x96},
- // Block 0x1d, offset 0xd2
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0xbb, hi: 0xbc},
- {value: 0x9900, lo: 0xbe, hi: 0xbe},
- // Block 0x1e, offset 0xd5
- {value: 0x0000, lo: 0x06},
- {value: 0xa000, lo: 0x86, hi: 0x87},
- {value: 0x2cfe, lo: 0x8a, hi: 0x8a},
- {value: 0x2d0e, lo: 0x8b, hi: 0x8b},
- {value: 0x2d06, lo: 0x8c, hi: 0x8c},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x9900, lo: 0x97, hi: 0x97},
- // Block 0x1f, offset 0xdc
- {value: 0x6bea, lo: 0x07},
- {value: 0x9904, lo: 0x8a, hi: 0x8a},
- {value: 0x9900, lo: 0x8f, hi: 0x8f},
- {value: 0xa000, lo: 0x99, hi: 0x99},
- {value: 0x3ef8, lo: 0x9a, hi: 0x9a},
- {value: 0x2f58, lo: 0x9c, hi: 0x9c},
- {value: 0x2de3, lo: 0x9d, hi: 0x9d},
- {value: 0x2d16, lo: 0x9e, hi: 0x9f},
- // Block 0x20, offset 0xe4
- {value: 0x0000, lo: 0x03},
- {value: 0x2621, lo: 0xb3, hi: 0xb3},
- {value: 0x8122, lo: 0xb8, hi: 0xb9},
- {value: 0x8104, lo: 0xba, hi: 0xba},
- // Block 0x21, offset 0xe8
- {value: 0x0000, lo: 0x01},
- {value: 0x8123, lo: 0x88, hi: 0x8b},
- // Block 0x22, offset 0xea
- {value: 0x0000, lo: 0x02},
- {value: 0x2636, lo: 0xb3, hi: 0xb3},
- {value: 0x8124, lo: 0xb8, hi: 0xb9},
- // Block 0x23, offset 0xed
- {value: 0x0000, lo: 0x03},
- {value: 0x8125, lo: 0x88, hi: 0x8b},
- {value: 0x2628, lo: 0x9c, hi: 0x9c},
- {value: 0x262f, lo: 0x9d, hi: 0x9d},
- // Block 0x24, offset 0xf1
- {value: 0x0000, lo: 0x05},
- {value: 0x030b, lo: 0x8c, hi: 0x8c},
- {value: 0x812d, lo: 0x98, hi: 0x99},
- {value: 0x812d, lo: 0xb5, hi: 0xb5},
- {value: 0x812d, lo: 0xb7, hi: 0xb7},
- {value: 0x812b, lo: 0xb9, hi: 0xb9},
- // Block 0x25, offset 0xf7
- {value: 0x0000, lo: 0x10},
- {value: 0x2644, lo: 0x83, hi: 0x83},
- {value: 0x264b, lo: 0x8d, hi: 0x8d},
- {value: 0x2652, lo: 0x92, hi: 0x92},
- {value: 0x2659, lo: 0x97, hi: 0x97},
- {value: 0x2660, lo: 0x9c, hi: 0x9c},
- {value: 0x263d, lo: 0xa9, hi: 0xa9},
- {value: 0x8126, lo: 0xb1, hi: 0xb1},
- {value: 0x8127, lo: 0xb2, hi: 0xb2},
- {value: 0x4a84, lo: 0xb3, hi: 0xb3},
- {value: 0x8128, lo: 0xb4, hi: 0xb4},
- {value: 0x4a8d, lo: 0xb5, hi: 0xb5},
- {value: 0x45b4, lo: 0xb6, hi: 0xb6},
- {value: 0x45f4, lo: 0xb7, hi: 0xb7},
- {value: 0x45bc, lo: 0xb8, hi: 0xb8},
- {value: 0x45ff, lo: 0xb9, hi: 0xb9},
- {value: 0x8127, lo: 0xba, hi: 0xbd},
- // Block 0x26, offset 0x108
- {value: 0x0000, lo: 0x0b},
- {value: 0x8127, lo: 0x80, hi: 0x80},
- {value: 0x4a96, lo: 0x81, hi: 0x81},
- {value: 0x8132, lo: 0x82, hi: 0x83},
- {value: 0x8104, lo: 0x84, hi: 0x84},
- {value: 0x8132, lo: 0x86, hi: 0x87},
- {value: 0x266e, lo: 0x93, hi: 0x93},
- {value: 0x2675, lo: 0x9d, hi: 0x9d},
- {value: 0x267c, lo: 0xa2, hi: 0xa2},
- {value: 0x2683, lo: 0xa7, hi: 0xa7},
- {value: 0x268a, lo: 0xac, hi: 0xac},
- {value: 0x2667, lo: 0xb9, hi: 0xb9},
- // Block 0x27, offset 0x114
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0x86, hi: 0x86},
- // Block 0x28, offset 0x116
- {value: 0x0000, lo: 0x05},
- {value: 0xa000, lo: 0xa5, hi: 0xa5},
- {value: 0x2d1e, lo: 0xa6, hi: 0xa6},
- {value: 0x9900, lo: 0xae, hi: 0xae},
- {value: 0x8102, lo: 0xb7, hi: 0xb7},
- {value: 0x8104, lo: 0xb9, hi: 0xba},
- // Block 0x29, offset 0x11c
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0x8d, hi: 0x8d},
- // Block 0x2a, offset 0x11e
- {value: 0x0000, lo: 0x01},
- {value: 0x030f, lo: 0xbc, hi: 0xbc},
- // Block 0x2b, offset 0x120
- {value: 0x0000, lo: 0x01},
- {value: 0xa000, lo: 0x80, hi: 0x92},
- // Block 0x2c, offset 0x122
- {value: 0x0000, lo: 0x01},
- {value: 0xb900, lo: 0xa1, hi: 0xb5},
- // Block 0x2d, offset 0x124
- {value: 0x0000, lo: 0x01},
- {value: 0x9900, lo: 0xa8, hi: 0xbf},
- // Block 0x2e, offset 0x126
- {value: 0x0000, lo: 0x01},
- {value: 0x9900, lo: 0x80, hi: 0x82},
- // Block 0x2f, offset 0x128
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0x9d, hi: 0x9f},
- // Block 0x30, offset 0x12a
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x94, hi: 0x94},
- {value: 0x8104, lo: 0xb4, hi: 0xb4},
- // Block 0x31, offset 0x12d
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x92, hi: 0x92},
- {value: 0x8132, lo: 0x9d, hi: 0x9d},
- // Block 0x32, offset 0x130
- {value: 0x0000, lo: 0x01},
- {value: 0x8131, lo: 0xa9, hi: 0xa9},
- // Block 0x33, offset 0x132
- {value: 0x0004, lo: 0x02},
- {value: 0x812e, lo: 0xb9, hi: 0xba},
- {value: 0x812d, lo: 0xbb, hi: 0xbb},
- // Block 0x34, offset 0x135
- {value: 0x0000, lo: 0x02},
- {value: 0x8132, lo: 0x97, hi: 0x97},
- {value: 0x812d, lo: 0x98, hi: 0x98},
- // Block 0x35, offset 0x138
- {value: 0x0000, lo: 0x03},
- {value: 0x8104, lo: 0xa0, hi: 0xa0},
- {value: 0x8132, lo: 0xb5, hi: 0xbc},
- {value: 0x812d, lo: 0xbf, hi: 0xbf},
- // Block 0x36, offset 0x13c
- {value: 0x0000, lo: 0x04},
- {value: 0x8132, lo: 0xb0, hi: 0xb4},
- {value: 0x812d, lo: 0xb5, hi: 0xba},
- {value: 0x8132, lo: 0xbb, hi: 0xbc},
- {value: 0x812d, lo: 0xbd, hi: 0xbd},
- // Block 0x37, offset 0x141
- {value: 0x0000, lo: 0x08},
- {value: 0x2d66, lo: 0x80, hi: 0x80},
- {value: 0x2d6e, lo: 0x81, hi: 0x81},
- {value: 0xa000, lo: 0x82, hi: 0x82},
- {value: 0x2d76, lo: 0x83, hi: 0x83},
- {value: 0x8104, lo: 0x84, hi: 0x84},
- {value: 0x8132, lo: 0xab, hi: 0xab},
- {value: 0x812d, lo: 0xac, hi: 0xac},
- {value: 0x8132, lo: 0xad, hi: 0xb3},
- // Block 0x38, offset 0x14a
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0xaa, hi: 0xab},
- // Block 0x39, offset 0x14c
- {value: 0x0000, lo: 0x02},
- {value: 0x8102, lo: 0xa6, hi: 0xa6},
- {value: 0x8104, lo: 0xb2, hi: 0xb3},
- // Block 0x3a, offset 0x14f
- {value: 0x0000, lo: 0x01},
- {value: 0x8102, lo: 0xb7, hi: 0xb7},
- // Block 0x3b, offset 0x151
- {value: 0x0000, lo: 0x0a},
- {value: 0x8132, lo: 0x90, hi: 0x92},
- {value: 0x8101, lo: 0x94, hi: 0x94},
- {value: 0x812d, lo: 0x95, hi: 0x99},
- {value: 0x8132, lo: 0x9a, hi: 0x9b},
- {value: 0x812d, lo: 0x9c, hi: 0x9f},
- {value: 0x8132, lo: 0xa0, hi: 0xa0},
- {value: 0x8101, lo: 0xa2, hi: 0xa8},
- {value: 0x812d, lo: 0xad, hi: 0xad},
- {value: 0x8132, lo: 0xb4, hi: 0xb4},
- {value: 0x8132, lo: 0xb8, hi: 0xb9},
- // Block 0x3c, offset 0x15c
- {value: 0x0002, lo: 0x0a},
- {value: 0x0043, lo: 0xac, hi: 0xac},
- {value: 0x00d1, lo: 0xad, hi: 0xad},
- {value: 0x0045, lo: 0xae, hi: 0xae},
- {value: 0x0049, lo: 0xb0, hi: 0xb1},
- {value: 0x00e6, lo: 0xb2, hi: 0xb2},
- {value: 0x004f, lo: 0xb3, hi: 0xba},
- {value: 0x005f, lo: 0xbc, hi: 0xbc},
- {value: 0x00ef, lo: 0xbd, hi: 0xbd},
- {value: 0x0061, lo: 0xbe, hi: 0xbe},
- {value: 0x0065, lo: 0xbf, hi: 0xbf},
- // Block 0x3d, offset 0x167
- {value: 0x0000, lo: 0x0d},
- {value: 0x0001, lo: 0x80, hi: 0x8a},
- {value: 0x043b, lo: 0x91, hi: 0x91},
- {value: 0x429b, lo: 0x97, hi: 0x97},
- {value: 0x001d, lo: 0xa4, hi: 0xa4},
- {value: 0x1873, lo: 0xa5, hi: 0xa5},
- {value: 0x1b5c, lo: 0xa6, hi: 0xa6},
- {value: 0x0001, lo: 0xaf, hi: 0xaf},
- {value: 0x2691, lo: 0xb3, hi: 0xb3},
- {value: 0x27fe, lo: 0xb4, hi: 0xb4},
- {value: 0x2698, lo: 0xb6, hi: 0xb6},
- {value: 0x2808, lo: 0xb7, hi: 0xb7},
- {value: 0x186d, lo: 0xbc, hi: 0xbc},
- {value: 0x4269, lo: 0xbe, hi: 0xbe},
- // Block 0x3e, offset 0x175
- {value: 0x0002, lo: 0x0d},
- {value: 0x1933, lo: 0x87, hi: 0x87},
- {value: 0x1930, lo: 0x88, hi: 0x88},
- {value: 0x1870, lo: 0x89, hi: 0x89},
- {value: 0x298e, lo: 0x97, hi: 0x97},
- {value: 0x0001, lo: 0x9f, hi: 0x9f},
- {value: 0x0021, lo: 0xb0, hi: 0xb0},
- {value: 0x0093, lo: 0xb1, hi: 0xb1},
- {value: 0x0029, lo: 0xb4, hi: 0xb9},
- {value: 0x0017, lo: 0xba, hi: 0xba},
- {value: 0x0467, lo: 0xbb, hi: 0xbb},
- {value: 0x003b, lo: 0xbc, hi: 0xbc},
- {value: 0x0011, lo: 0xbd, hi: 0xbe},
- {value: 0x009d, lo: 0xbf, hi: 0xbf},
- // Block 0x3f, offset 0x183
- {value: 0x0002, lo: 0x0f},
- {value: 0x0021, lo: 0x80, hi: 0x89},
- {value: 0x0017, lo: 0x8a, hi: 0x8a},
- {value: 0x0467, lo: 0x8b, hi: 0x8b},
- {value: 0x003b, lo: 0x8c, hi: 0x8c},
- {value: 0x0011, lo: 0x8d, hi: 0x8e},
- {value: 0x0083, lo: 0x90, hi: 0x90},
- {value: 0x008b, lo: 0x91, hi: 0x91},
- {value: 0x009f, lo: 0x92, hi: 0x92},
- {value: 0x00b1, lo: 0x93, hi: 0x93},
- {value: 0x0104, lo: 0x94, hi: 0x94},
- {value: 0x0091, lo: 0x95, hi: 0x95},
- {value: 0x0097, lo: 0x96, hi: 0x99},
- {value: 0x00a1, lo: 0x9a, hi: 0x9a},
- {value: 0x00a7, lo: 0x9b, hi: 0x9c},
- {value: 0x1999, lo: 0xa8, hi: 0xa8},
- // Block 0x40, offset 0x193
- {value: 0x0000, lo: 0x0d},
- {value: 0x8132, lo: 0x90, hi: 0x91},
- {value: 0x8101, lo: 0x92, hi: 0x93},
- {value: 0x8132, lo: 0x94, hi: 0x97},
- {value: 0x8101, lo: 0x98, hi: 0x9a},
- {value: 0x8132, lo: 0x9b, hi: 0x9c},
- {value: 0x8132, lo: 0xa1, hi: 0xa1},
- {value: 0x8101, lo: 0xa5, hi: 0xa6},
- {value: 0x8132, lo: 0xa7, hi: 0xa7},
- {value: 0x812d, lo: 0xa8, hi: 0xa8},
- {value: 0x8132, lo: 0xa9, hi: 0xa9},
- {value: 0x8101, lo: 0xaa, hi: 0xab},
- {value: 0x812d, lo: 0xac, hi: 0xaf},
- {value: 0x8132, lo: 0xb0, hi: 0xb0},
- // Block 0x41, offset 0x1a1
- {value: 0x0007, lo: 0x06},
- {value: 0x2180, lo: 0x89, hi: 0x89},
- {value: 0xa000, lo: 0x90, hi: 0x90},
- {value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0xa000, lo: 0x94, hi: 0x94},
- {value: 0x3bb9, lo: 0x9a, hi: 0x9b},
- {value: 0x3bc7, lo: 0xae, hi: 0xae},
- // Block 0x42, offset 0x1a8
- {value: 0x000e, lo: 0x05},
- {value: 0x3bce, lo: 0x8d, hi: 0x8e},
- {value: 0x3bd5, lo: 0x8f, hi: 0x8f},
- {value: 0xa000, lo: 0x90, hi: 0x90},
- {value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0xa000, lo: 0x94, hi: 0x94},
- // Block 0x43, offset 0x1ae
- {value: 0x0173, lo: 0x0e},
- {value: 0xa000, lo: 0x83, hi: 0x83},
- {value: 0x3be3, lo: 0x84, hi: 0x84},
- {value: 0xa000, lo: 0x88, hi: 0x88},
- {value: 0x3bea, lo: 0x89, hi: 0x89},
- {value: 0xa000, lo: 0x8b, hi: 0x8b},
- {value: 0x3bf1, lo: 0x8c, hi: 0x8c},
- {value: 0xa000, lo: 0xa3, hi: 0xa3},
- {value: 0x3bf8, lo: 0xa4, hi: 0xa4},
- {value: 0xa000, lo: 0xa5, hi: 0xa5},
- {value: 0x3bff, lo: 0xa6, hi: 0xa6},
- {value: 0x269f, lo: 0xac, hi: 0xad},
- {value: 0x26a6, lo: 0xaf, hi: 0xaf},
- {value: 0x281c, lo: 0xb0, hi: 0xb0},
- {value: 0xa000, lo: 0xbc, hi: 0xbc},
- // Block 0x44, offset 0x1bd
- {value: 0x0007, lo: 0x03},
- {value: 0x3c68, lo: 0xa0, hi: 0xa1},
- {value: 0x3c92, lo: 0xa2, hi: 0xa3},
- {value: 0x3cbc, lo: 0xaa, hi: 0xad},
- // Block 0x45, offset 0x1c1
- {value: 0x0004, lo: 0x01},
- {value: 0x048b, lo: 0xa9, hi: 0xaa},
- // Block 0x46, offset 0x1c3
- {value: 0x0002, lo: 0x03},
- {value: 0x0057, lo: 0x80, hi: 0x8f},
- {value: 0x0083, lo: 0x90, hi: 0xa9},
- {value: 0x0021, lo: 0xaa, hi: 0xaa},
- // Block 0x47, offset 0x1c7
- {value: 0x0000, lo: 0x01},
- {value: 0x299b, lo: 0x8c, hi: 0x8c},
- // Block 0x48, offset 0x1c9
- {value: 0x0263, lo: 0x02},
- {value: 0x1b8c, lo: 0xb4, hi: 0xb4},
- {value: 0x192d, lo: 0xb5, hi: 0xb6},
- // Block 0x49, offset 0x1cc
- {value: 0x0000, lo: 0x01},
- {value: 0x44dd, lo: 0x9c, hi: 0x9c},
- // Block 0x4a, offset 0x1ce
- {value: 0x0000, lo: 0x02},
- {value: 0x0095, lo: 0xbc, hi: 0xbc},
- {value: 0x006d, lo: 0xbd, hi: 0xbd},
- // Block 0x4b, offset 0x1d1
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0xaf, hi: 0xb1},
- // Block 0x4c, offset 0x1d3
- {value: 0x0000, lo: 0x02},
- {value: 0x047f, lo: 0xaf, hi: 0xaf},
- {value: 0x8104, lo: 0xbf, hi: 0xbf},
- // Block 0x4d, offset 0x1d6
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0xa0, hi: 0xbf},
- // Block 0x4e, offset 0x1d8
- {value: 0x0000, lo: 0x01},
- {value: 0x0dc3, lo: 0x9f, hi: 0x9f},
- // Block 0x4f, offset 0x1da
- {value: 0x0000, lo: 0x01},
- {value: 0x162f, lo: 0xb3, hi: 0xb3},
- // Block 0x50, offset 0x1dc
- {value: 0x0004, lo: 0x0b},
- {value: 0x1597, lo: 0x80, hi: 0x82},
- {value: 0x15af, lo: 0x83, hi: 0x83},
- {value: 0x15c7, lo: 0x84, hi: 0x85},
- {value: 0x15d7, lo: 0x86, hi: 0x89},
- {value: 0x15eb, lo: 0x8a, hi: 0x8c},
- {value: 0x15ff, lo: 0x8d, hi: 0x8d},
- {value: 0x1607, lo: 0x8e, hi: 0x8e},
- {value: 0x160f, lo: 0x8f, hi: 0x90},
- {value: 0x161b, lo: 0x91, hi: 0x93},
- {value: 0x162b, lo: 0x94, hi: 0x94},
- {value: 0x1633, lo: 0x95, hi: 0x95},
- // Block 0x51, offset 0x1e8
- {value: 0x0004, lo: 0x09},
- {value: 0x0001, lo: 0x80, hi: 0x80},
- {value: 0x812c, lo: 0xaa, hi: 0xaa},
- {value: 0x8131, lo: 0xab, hi: 0xab},
- {value: 0x8133, lo: 0xac, hi: 0xac},
- {value: 0x812e, lo: 0xad, hi: 0xad},
- {value: 0x812f, lo: 0xae, hi: 0xae},
- {value: 0x812f, lo: 0xaf, hi: 0xaf},
- {value: 0x04b3, lo: 0xb6, hi: 0xb6},
- {value: 0x0887, lo: 0xb8, hi: 0xba},
- // Block 0x52, offset 0x1f2
- {value: 0x0006, lo: 0x09},
- {value: 0x0313, lo: 0xb1, hi: 0xb1},
- {value: 0x0317, lo: 0xb2, hi: 0xb2},
- {value: 0x4a3b, lo: 0xb3, hi: 0xb3},
- {value: 0x031b, lo: 0xb4, hi: 0xb4},
- {value: 0x4a41, lo: 0xb5, hi: 0xb6},
- {value: 0x031f, lo: 0xb7, hi: 0xb7},
- {value: 0x0323, lo: 0xb8, hi: 0xb8},
- {value: 0x0327, lo: 0xb9, hi: 0xb9},
- {value: 0x4a4d, lo: 0xba, hi: 0xbf},
- // Block 0x53, offset 0x1fc
- {value: 0x0000, lo: 0x02},
- {value: 0x8132, lo: 0xaf, hi: 0xaf},
- {value: 0x8132, lo: 0xb4, hi: 0xbd},
- // Block 0x54, offset 0x1ff
- {value: 0x0000, lo: 0x03},
- {value: 0x020f, lo: 0x9c, hi: 0x9c},
- {value: 0x0212, lo: 0x9d, hi: 0x9d},
- {value: 0x8132, lo: 0x9e, hi: 0x9f},
- // Block 0x55, offset 0x203
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0xb0, hi: 0xb1},
- // Block 0x56, offset 0x205
- {value: 0x0000, lo: 0x01},
- {value: 0x163b, lo: 0xb0, hi: 0xb0},
- // Block 0x57, offset 0x207
- {value: 0x000c, lo: 0x01},
- {value: 0x00d7, lo: 0xb8, hi: 0xb9},
- // Block 0x58, offset 0x209
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0x86, hi: 0x86},
- // Block 0x59, offset 0x20b
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x84, hi: 0x84},
- {value: 0x8132, lo: 0xa0, hi: 0xb1},
- // Block 0x5a, offset 0x20e
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0xab, hi: 0xad},
- // Block 0x5b, offset 0x210
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0x93, hi: 0x93},
- // Block 0x5c, offset 0x212
- {value: 0x0000, lo: 0x01},
- {value: 0x8102, lo: 0xb3, hi: 0xb3},
- // Block 0x5d, offset 0x214
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0x80, hi: 0x80},
- // Block 0x5e, offset 0x216
- {value: 0x0000, lo: 0x05},
- {value: 0x8132, lo: 0xb0, hi: 0xb0},
- {value: 0x8132, lo: 0xb2, hi: 0xb3},
- {value: 0x812d, lo: 0xb4, hi: 0xb4},
- {value: 0x8132, lo: 0xb7, hi: 0xb8},
- {value: 0x8132, lo: 0xbe, hi: 0xbf},
- // Block 0x5f, offset 0x21c
- {value: 0x0000, lo: 0x02},
- {value: 0x8132, lo: 0x81, hi: 0x81},
- {value: 0x8104, lo: 0xb6, hi: 0xb6},
- // Block 0x60, offset 0x21f
- {value: 0x0008, lo: 0x03},
- {value: 0x1637, lo: 0x9c, hi: 0x9d},
- {value: 0x0125, lo: 0x9e, hi: 0x9e},
- {value: 0x1643, lo: 0x9f, hi: 0x9f},
- // Block 0x61, offset 0x223
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0xad, hi: 0xad},
- // Block 0x62, offset 0x225
- {value: 0x0000, lo: 0x06},
- {value: 0xe500, lo: 0x80, hi: 0x80},
- {value: 0xc600, lo: 0x81, hi: 0x9b},
- {value: 0xe500, lo: 0x9c, hi: 0x9c},
- {value: 0xc600, lo: 0x9d, hi: 0xb7},
- {value: 0xe500, lo: 0xb8, hi: 0xb8},
- {value: 0xc600, lo: 0xb9, hi: 0xbf},
- // Block 0x63, offset 0x22c
- {value: 0x0000, lo: 0x05},
- {value: 0xc600, lo: 0x80, hi: 0x93},
- {value: 0xe500, lo: 0x94, hi: 0x94},
- {value: 0xc600, lo: 0x95, hi: 0xaf},
- {value: 0xe500, lo: 0xb0, hi: 0xb0},
- {value: 0xc600, lo: 0xb1, hi: 0xbf},
- // Block 0x64, offset 0x232
- {value: 0x0000, lo: 0x05},
- {value: 0xc600, lo: 0x80, hi: 0x8b},
- {value: 0xe500, lo: 0x8c, hi: 0x8c},
- {value: 0xc600, lo: 0x8d, hi: 0xa7},
- {value: 0xe500, lo: 0xa8, hi: 0xa8},
- {value: 0xc600, lo: 0xa9, hi: 0xbf},
- // Block 0x65, offset 0x238
- {value: 0x0000, lo: 0x07},
- {value: 0xc600, lo: 0x80, hi: 0x83},
- {value: 0xe500, lo: 0x84, hi: 0x84},
- {value: 0xc600, lo: 0x85, hi: 0x9f},
- {value: 0xe500, lo: 0xa0, hi: 0xa0},
- {value: 0xc600, lo: 0xa1, hi: 0xbb},
- {value: 0xe500, lo: 0xbc, hi: 0xbc},
- {value: 0xc600, lo: 0xbd, hi: 0xbf},
- // Block 0x66, offset 0x240
- {value: 0x0000, lo: 0x05},
- {value: 0xc600, lo: 0x80, hi: 0x97},
- {value: 0xe500, lo: 0x98, hi: 0x98},
- {value: 0xc600, lo: 0x99, hi: 0xb3},
- {value: 0xe500, lo: 0xb4, hi: 0xb4},
- {value: 0xc600, lo: 0xb5, hi: 0xbf},
- // Block 0x67, offset 0x246
- {value: 0x0000, lo: 0x05},
- {value: 0xc600, lo: 0x80, hi: 0x8f},
- {value: 0xe500, lo: 0x90, hi: 0x90},
- {value: 0xc600, lo: 0x91, hi: 0xab},
- {value: 0xe500, lo: 0xac, hi: 0xac},
- {value: 0xc600, lo: 0xad, hi: 0xbf},
- // Block 0x68, offset 0x24c
- {value: 0x0000, lo: 0x05},
- {value: 0xc600, lo: 0x80, hi: 0x87},
- {value: 0xe500, lo: 0x88, hi: 0x88},
- {value: 0xc600, lo: 0x89, hi: 0xa3},
- {value: 0xe500, lo: 0xa4, hi: 0xa4},
- {value: 0xc600, lo: 0xa5, hi: 0xbf},
- // Block 0x69, offset 0x252
- {value: 0x0000, lo: 0x03},
- {value: 0xc600, lo: 0x80, hi: 0x87},
- {value: 0xe500, lo: 0x88, hi: 0x88},
- {value: 0xc600, lo: 0x89, hi: 0xa3},
- // Block 0x6a, offset 0x256
- {value: 0x0002, lo: 0x01},
- {value: 0x0003, lo: 0x81, hi: 0xbf},
- // Block 0x6b, offset 0x258
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0xbd, hi: 0xbd},
- // Block 0x6c, offset 0x25a
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0xa0, hi: 0xa0},
- // Block 0x6d, offset 0x25c
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0xb6, hi: 0xba},
- // Block 0x6e, offset 0x25e
- {value: 0x002c, lo: 0x05},
- {value: 0x812d, lo: 0x8d, hi: 0x8d},
- {value: 0x8132, lo: 0x8f, hi: 0x8f},
- {value: 0x8132, lo: 0xb8, hi: 0xb8},
- {value: 0x8101, lo: 0xb9, hi: 0xba},
- {value: 0x8104, lo: 0xbf, hi: 0xbf},
- // Block 0x6f, offset 0x264
- {value: 0x0000, lo: 0x02},
- {value: 0x8132, lo: 0xa5, hi: 0xa5},
- {value: 0x812d, lo: 0xa6, hi: 0xa6},
- // Block 0x70, offset 0x267
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x86, hi: 0x86},
- {value: 0x8104, lo: 0xbf, hi: 0xbf},
- // Block 0x71, offset 0x26a
- {value: 0x17fe, lo: 0x07},
- {value: 0xa000, lo: 0x99, hi: 0x99},
- {value: 0x4238, lo: 0x9a, hi: 0x9a},
- {value: 0xa000, lo: 0x9b, hi: 0x9b},
- {value: 0x4242, lo: 0x9c, hi: 0x9c},
- {value: 0xa000, lo: 0xa5, hi: 0xa5},
- {value: 0x424c, lo: 0xab, hi: 0xab},
- {value: 0x8104, lo: 0xb9, hi: 0xba},
- // Block 0x72, offset 0x272
- {value: 0x0000, lo: 0x06},
- {value: 0x8132, lo: 0x80, hi: 0x82},
- {value: 0x9900, lo: 0xa7, hi: 0xa7},
- {value: 0x2d7e, lo: 0xae, hi: 0xae},
- {value: 0x2d88, lo: 0xaf, hi: 0xaf},
- {value: 0xa000, lo: 0xb1, hi: 0xb2},
- {value: 0x8104, lo: 0xb3, hi: 0xb4},
- // Block 0x73, offset 0x279
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x80, hi: 0x80},
- {value: 0x8102, lo: 0x8a, hi: 0x8a},
- // Block 0x74, offset 0x27c
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0xb5, hi: 0xb5},
- {value: 0x8102, lo: 0xb6, hi: 0xb6},
- // Block 0x75, offset 0x27f
- {value: 0x0002, lo: 0x01},
- {value: 0x8102, lo: 0xa9, hi: 0xaa},
- // Block 0x76, offset 0x281
- {value: 0x0000, lo: 0x07},
- {value: 0xa000, lo: 0x87, hi: 0x87},
- {value: 0x2d92, lo: 0x8b, hi: 0x8b},
- {value: 0x2d9c, lo: 0x8c, hi: 0x8c},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x9900, lo: 0x97, hi: 0x97},
- {value: 0x8132, lo: 0xa6, hi: 0xac},
- {value: 0x8132, lo: 0xb0, hi: 0xb4},
- // Block 0x77, offset 0x289
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x82, hi: 0x82},
- {value: 0x8102, lo: 0x86, hi: 0x86},
- // Block 0x78, offset 0x28c
- {value: 0x6b5a, lo: 0x06},
- {value: 0x9900, lo: 0xb0, hi: 0xb0},
- {value: 0xa000, lo: 0xb9, hi: 0xb9},
- {value: 0x9900, lo: 0xba, hi: 0xba},
- {value: 0x2db0, lo: 0xbb, hi: 0xbb},
- {value: 0x2da6, lo: 0xbc, hi: 0xbd},
- {value: 0x2dba, lo: 0xbe, hi: 0xbe},
- // Block 0x79, offset 0x293
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x82, hi: 0x82},
- {value: 0x8102, lo: 0x83, hi: 0x83},
- // Block 0x7a, offset 0x296
- {value: 0x0000, lo: 0x05},
- {value: 0x9900, lo: 0xaf, hi: 0xaf},
- {value: 0xa000, lo: 0xb8, hi: 0xb9},
- {value: 0x2dc4, lo: 0xba, hi: 0xba},
- {value: 0x2dce, lo: 0xbb, hi: 0xbb},
- {value: 0x8104, lo: 0xbf, hi: 0xbf},
- // Block 0x7b, offset 0x29c
- {value: 0x0000, lo: 0x01},
- {value: 0x8102, lo: 0x80, hi: 0x80},
- // Block 0x7c, offset 0x29e
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0xbf, hi: 0xbf},
- // Block 0x7d, offset 0x2a0
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0xb6, hi: 0xb6},
- {value: 0x8102, lo: 0xb7, hi: 0xb7},
- // Block 0x7e, offset 0x2a3
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0xab, hi: 0xab},
- // Block 0x7f, offset 0x2a5
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0xb4, hi: 0xb4},
- // Block 0x80, offset 0x2a7
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0x87, hi: 0x87},
- // Block 0x81, offset 0x2a9
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0x99, hi: 0x99},
- // Block 0x82, offset 0x2ab
- {value: 0x0000, lo: 0x02},
- {value: 0x8102, lo: 0x82, hi: 0x82},
- {value: 0x8104, lo: 0x84, hi: 0x85},
- // Block 0x83, offset 0x2ae
- {value: 0x0000, lo: 0x01},
- {value: 0x8101, lo: 0xb0, hi: 0xb4},
- // Block 0x84, offset 0x2b0
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0xb0, hi: 0xb6},
- // Block 0x85, offset 0x2b2
- {value: 0x0000, lo: 0x01},
- {value: 0x8101, lo: 0x9e, hi: 0x9e},
- // Block 0x86, offset 0x2b4
- {value: 0x0000, lo: 0x0c},
- {value: 0x45cc, lo: 0x9e, hi: 0x9e},
- {value: 0x45d6, lo: 0x9f, hi: 0x9f},
- {value: 0x460a, lo: 0xa0, hi: 0xa0},
- {value: 0x4618, lo: 0xa1, hi: 0xa1},
- {value: 0x4626, lo: 0xa2, hi: 0xa2},
- {value: 0x4634, lo: 0xa3, hi: 0xa3},
- {value: 0x4642, lo: 0xa4, hi: 0xa4},
- {value: 0x812b, lo: 0xa5, hi: 0xa6},
- {value: 0x8101, lo: 0xa7, hi: 0xa9},
- {value: 0x8130, lo: 0xad, hi: 0xad},
- {value: 0x812b, lo: 0xae, hi: 0xb2},
- {value: 0x812d, lo: 0xbb, hi: 0xbf},
- // Block 0x87, offset 0x2c1
- {value: 0x0000, lo: 0x09},
- {value: 0x812d, lo: 0x80, hi: 0x82},
- {value: 0x8132, lo: 0x85, hi: 0x89},
- {value: 0x812d, lo: 0x8a, hi: 0x8b},
- {value: 0x8132, lo: 0xaa, hi: 0xad},
- {value: 0x45e0, lo: 0xbb, hi: 0xbb},
- {value: 0x45ea, lo: 0xbc, hi: 0xbc},
- {value: 0x4650, lo: 0xbd, hi: 0xbd},
- {value: 0x466c, lo: 0xbe, hi: 0xbe},
- {value: 0x465e, lo: 0xbf, hi: 0xbf},
- // Block 0x88, offset 0x2cb
- {value: 0x0000, lo: 0x01},
- {value: 0x467a, lo: 0x80, hi: 0x80},
- // Block 0x89, offset 0x2cd
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0x82, hi: 0x84},
- // Block 0x8a, offset 0x2cf
- {value: 0x0002, lo: 0x03},
- {value: 0x0043, lo: 0x80, hi: 0x99},
- {value: 0x0083, lo: 0x9a, hi: 0xb3},
- {value: 0x0043, lo: 0xb4, hi: 0xbf},
- // Block 0x8b, offset 0x2d3
- {value: 0x0002, lo: 0x04},
- {value: 0x005b, lo: 0x80, hi: 0x8d},
- {value: 0x0083, lo: 0x8e, hi: 0x94},
- {value: 0x0093, lo: 0x96, hi: 0xa7},
- {value: 0x0043, lo: 0xa8, hi: 0xbf},
- // Block 0x8c, offset 0x2d8
- {value: 0x0002, lo: 0x0b},
- {value: 0x0073, lo: 0x80, hi: 0x81},
- {value: 0x0083, lo: 0x82, hi: 0x9b},
- {value: 0x0043, lo: 0x9c, hi: 0x9c},
- {value: 0x0047, lo: 0x9e, hi: 0x9f},
- {value: 0x004f, lo: 0xa2, hi: 0xa2},
- {value: 0x0055, lo: 0xa5, hi: 0xa6},
- {value: 0x005d, lo: 0xa9, hi: 0xac},
- {value: 0x0067, lo: 0xae, hi: 0xb5},
- {value: 0x0083, lo: 0xb6, hi: 0xb9},
- {value: 0x008d, lo: 0xbb, hi: 0xbb},
- {value: 0x0091, lo: 0xbd, hi: 0xbf},
- // Block 0x8d, offset 0x2e4
- {value: 0x0002, lo: 0x04},
- {value: 0x0097, lo: 0x80, hi: 0x83},
- {value: 0x00a1, lo: 0x85, hi: 0x8f},
- {value: 0x0043, lo: 0x90, hi: 0xa9},
- {value: 0x0083, lo: 0xaa, hi: 0xbf},
- // Block 0x8e, offset 0x2e9
- {value: 0x0002, lo: 0x08},
- {value: 0x00af, lo: 0x80, hi: 0x83},
- {value: 0x0043, lo: 0x84, hi: 0x85},
- {value: 0x0049, lo: 0x87, hi: 0x8a},
- {value: 0x0055, lo: 0x8d, hi: 0x94},
- {value: 0x0067, lo: 0x96, hi: 0x9c},
- {value: 0x0083, lo: 0x9e, hi: 0xb7},
- {value: 0x0043, lo: 0xb8, hi: 0xb9},
- {value: 0x0049, lo: 0xbb, hi: 0xbe},
- // Block 0x8f, offset 0x2f2
- {value: 0x0002, lo: 0x05},
- {value: 0x0053, lo: 0x80, hi: 0x84},
- {value: 0x005f, lo: 0x86, hi: 0x86},
- {value: 0x0067, lo: 0x8a, hi: 0x90},
- {value: 0x0083, lo: 0x92, hi: 0xab},
- {value: 0x0043, lo: 0xac, hi: 0xbf},
- // Block 0x90, offset 0x2f8
- {value: 0x0002, lo: 0x04},
- {value: 0x006b, lo: 0x80, hi: 0x85},
- {value: 0x0083, lo: 0x86, hi: 0x9f},
- {value: 0x0043, lo: 0xa0, hi: 0xb9},
- {value: 0x0083, lo: 0xba, hi: 0xbf},
- // Block 0x91, offset 0x2fd
- {value: 0x0002, lo: 0x03},
- {value: 0x008f, lo: 0x80, hi: 0x93},
- {value: 0x0043, lo: 0x94, hi: 0xad},
- {value: 0x0083, lo: 0xae, hi: 0xbf},
- // Block 0x92, offset 0x301
- {value: 0x0002, lo: 0x04},
- {value: 0x00a7, lo: 0x80, hi: 0x87},
- {value: 0x0043, lo: 0x88, hi: 0xa1},
- {value: 0x0083, lo: 0xa2, hi: 0xbb},
- {value: 0x0043, lo: 0xbc, hi: 0xbf},
- // Block 0x93, offset 0x306
- {value: 0x0002, lo: 0x03},
- {value: 0x004b, lo: 0x80, hi: 0x95},
- {value: 0x0083, lo: 0x96, hi: 0xaf},
- {value: 0x0043, lo: 0xb0, hi: 0xbf},
- // Block 0x94, offset 0x30a
- {value: 0x0003, lo: 0x0f},
- {value: 0x01b8, lo: 0x80, hi: 0x80},
- {value: 0x045f, lo: 0x81, hi: 0x81},
- {value: 0x01bb, lo: 0x82, hi: 0x9a},
- {value: 0x045b, lo: 0x9b, hi: 0x9b},
- {value: 0x01c7, lo: 0x9c, hi: 0x9c},
- {value: 0x01d0, lo: 0x9d, hi: 0x9d},
- {value: 0x01d6, lo: 0x9e, hi: 0x9e},
- {value: 0x01fa, lo: 0x9f, hi: 0x9f},
- {value: 0x01eb, lo: 0xa0, hi: 0xa0},
- {value: 0x01e8, lo: 0xa1, hi: 0xa1},
- {value: 0x0173, lo: 0xa2, hi: 0xb2},
- {value: 0x0188, lo: 0xb3, hi: 0xb3},
- {value: 0x01a6, lo: 0xb4, hi: 0xba},
- {value: 0x045f, lo: 0xbb, hi: 0xbb},
- {value: 0x01bb, lo: 0xbc, hi: 0xbf},
- // Block 0x95, offset 0x31a
- {value: 0x0003, lo: 0x0d},
- {value: 0x01c7, lo: 0x80, hi: 0x94},
- {value: 0x045b, lo: 0x95, hi: 0x95},
- {value: 0x01c7, lo: 0x96, hi: 0x96},
- {value: 0x01d0, lo: 0x97, hi: 0x97},
- {value: 0x01d6, lo: 0x98, hi: 0x98},
- {value: 0x01fa, lo: 0x99, hi: 0x99},
- {value: 0x01eb, lo: 0x9a, hi: 0x9a},
- {value: 0x01e8, lo: 0x9b, hi: 0x9b},
- {value: 0x0173, lo: 0x9c, hi: 0xac},
- {value: 0x0188, lo: 0xad, hi: 0xad},
- {value: 0x01a6, lo: 0xae, hi: 0xb4},
- {value: 0x045f, lo: 0xb5, hi: 0xb5},
- {value: 0x01bb, lo: 0xb6, hi: 0xbf},
- // Block 0x96, offset 0x328
- {value: 0x0003, lo: 0x0d},
- {value: 0x01d9, lo: 0x80, hi: 0x8e},
- {value: 0x045b, lo: 0x8f, hi: 0x8f},
- {value: 0x01c7, lo: 0x90, hi: 0x90},
- {value: 0x01d0, lo: 0x91, hi: 0x91},
- {value: 0x01d6, lo: 0x92, hi: 0x92},
- {value: 0x01fa, lo: 0x93, hi: 0x93},
- {value: 0x01eb, lo: 0x94, hi: 0x94},
- {value: 0x01e8, lo: 0x95, hi: 0x95},
- {value: 0x0173, lo: 0x96, hi: 0xa6},
- {value: 0x0188, lo: 0xa7, hi: 0xa7},
- {value: 0x01a6, lo: 0xa8, hi: 0xae},
- {value: 0x045f, lo: 0xaf, hi: 0xaf},
- {value: 0x01bb, lo: 0xb0, hi: 0xbf},
- // Block 0x97, offset 0x336
- {value: 0x0003, lo: 0x0d},
- {value: 0x01eb, lo: 0x80, hi: 0x88},
- {value: 0x045b, lo: 0x89, hi: 0x89},
- {value: 0x01c7, lo: 0x8a, hi: 0x8a},
- {value: 0x01d0, lo: 0x8b, hi: 0x8b},
- {value: 0x01d6, lo: 0x8c, hi: 0x8c},
- {value: 0x01fa, lo: 0x8d, hi: 0x8d},
- {value: 0x01eb, lo: 0x8e, hi: 0x8e},
- {value: 0x01e8, lo: 0x8f, hi: 0x8f},
- {value: 0x0173, lo: 0x90, hi: 0xa0},
- {value: 0x0188, lo: 0xa1, hi: 0xa1},
- {value: 0x01a6, lo: 0xa2, hi: 0xa8},
- {value: 0x045f, lo: 0xa9, hi: 0xa9},
- {value: 0x01bb, lo: 0xaa, hi: 0xbf},
- // Block 0x98, offset 0x344
- {value: 0x0000, lo: 0x05},
- {value: 0x8132, lo: 0x80, hi: 0x86},
- {value: 0x8132, lo: 0x88, hi: 0x98},
- {value: 0x8132, lo: 0x9b, hi: 0xa1},
- {value: 0x8132, lo: 0xa3, hi: 0xa4},
- {value: 0x8132, lo: 0xa6, hi: 0xaa},
- // Block 0x99, offset 0x34a
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0x90, hi: 0x96},
- // Block 0x9a, offset 0x34c
- {value: 0x0000, lo: 0x02},
- {value: 0x8132, lo: 0x84, hi: 0x89},
- {value: 0x8102, lo: 0x8a, hi: 0x8a},
- // Block 0x9b, offset 0x34f
- {value: 0x0002, lo: 0x09},
- {value: 0x0063, lo: 0x80, hi: 0x89},
- {value: 0x1951, lo: 0x8a, hi: 0x8a},
- {value: 0x1981, lo: 0x8b, hi: 0x8b},
- {value: 0x199c, lo: 0x8c, hi: 0x8c},
- {value: 0x19a2, lo: 0x8d, hi: 0x8d},
- {value: 0x1bc0, lo: 0x8e, hi: 0x8e},
- {value: 0x19ae, lo: 0x8f, hi: 0x8f},
- {value: 0x197b, lo: 0xaa, hi: 0xaa},
- {value: 0x197e, lo: 0xab, hi: 0xab},
- // Block 0x9c, offset 0x359
- {value: 0x0000, lo: 0x01},
- {value: 0x193f, lo: 0x90, hi: 0x90},
- // Block 0x9d, offset 0x35b
- {value: 0x0028, lo: 0x09},
- {value: 0x2862, lo: 0x80, hi: 0x80},
- {value: 0x2826, lo: 0x81, hi: 0x81},
- {value: 0x2830, lo: 0x82, hi: 0x82},
- {value: 0x2844, lo: 0x83, hi: 0x84},
- {value: 0x284e, lo: 0x85, hi: 0x86},
- {value: 0x283a, lo: 0x87, hi: 0x87},
- {value: 0x2858, lo: 0x88, hi: 0x88},
- {value: 0x0b6f, lo: 0x90, hi: 0x90},
- {value: 0x08e7, lo: 0x91, hi: 0x91},
-}
-
-// recompMap: 7520 bytes (entries only)
-var recompMap map[uint32]rune
-var recompMapOnce sync.Once
-
-const recompMapPacked = "" +
- "\x00A\x03\x00\x00\x00\x00\xc0" + // 0x00410300: 0x000000C0
- "\x00A\x03\x01\x00\x00\x00\xc1" + // 0x00410301: 0x000000C1
- "\x00A\x03\x02\x00\x00\x00\xc2" + // 0x00410302: 0x000000C2
- "\x00A\x03\x03\x00\x00\x00\xc3" + // 0x00410303: 0x000000C3
- "\x00A\x03\b\x00\x00\x00\xc4" + // 0x00410308: 0x000000C4
- "\x00A\x03\n\x00\x00\x00\xc5" + // 0x0041030A: 0x000000C5
- "\x00C\x03'\x00\x00\x00\xc7" + // 0x00430327: 0x000000C7
- "\x00E\x03\x00\x00\x00\x00\xc8" + // 0x00450300: 0x000000C8
- "\x00E\x03\x01\x00\x00\x00\xc9" + // 0x00450301: 0x000000C9
- "\x00E\x03\x02\x00\x00\x00\xca" + // 0x00450302: 0x000000CA
- "\x00E\x03\b\x00\x00\x00\xcb" + // 0x00450308: 0x000000CB
- "\x00I\x03\x00\x00\x00\x00\xcc" + // 0x00490300: 0x000000CC
- "\x00I\x03\x01\x00\x00\x00\xcd" + // 0x00490301: 0x000000CD
- "\x00I\x03\x02\x00\x00\x00\xce" + // 0x00490302: 0x000000CE
- "\x00I\x03\b\x00\x00\x00\xcf" + // 0x00490308: 0x000000CF
- "\x00N\x03\x03\x00\x00\x00\xd1" + // 0x004E0303: 0x000000D1
- "\x00O\x03\x00\x00\x00\x00\xd2" + // 0x004F0300: 0x000000D2
- "\x00O\x03\x01\x00\x00\x00\xd3" + // 0x004F0301: 0x000000D3
- "\x00O\x03\x02\x00\x00\x00\xd4" + // 0x004F0302: 0x000000D4
- "\x00O\x03\x03\x00\x00\x00\xd5" + // 0x004F0303: 0x000000D5
- "\x00O\x03\b\x00\x00\x00\xd6" + // 0x004F0308: 0x000000D6
- "\x00U\x03\x00\x00\x00\x00\xd9" + // 0x00550300: 0x000000D9
- "\x00U\x03\x01\x00\x00\x00\xda" + // 0x00550301: 0x000000DA
- "\x00U\x03\x02\x00\x00\x00\xdb" + // 0x00550302: 0x000000DB
- "\x00U\x03\b\x00\x00\x00\xdc" + // 0x00550308: 0x000000DC
- "\x00Y\x03\x01\x00\x00\x00\xdd" + // 0x00590301: 0x000000DD
- "\x00a\x03\x00\x00\x00\x00\xe0" + // 0x00610300: 0x000000E0
- "\x00a\x03\x01\x00\x00\x00\xe1" + // 0x00610301: 0x000000E1
- "\x00a\x03\x02\x00\x00\x00\xe2" + // 0x00610302: 0x000000E2
- "\x00a\x03\x03\x00\x00\x00\xe3" + // 0x00610303: 0x000000E3
- "\x00a\x03\b\x00\x00\x00\xe4" + // 0x00610308: 0x000000E4
- "\x00a\x03\n\x00\x00\x00\xe5" + // 0x0061030A: 0x000000E5
- "\x00c\x03'\x00\x00\x00\xe7" + // 0x00630327: 0x000000E7
- "\x00e\x03\x00\x00\x00\x00\xe8" + // 0x00650300: 0x000000E8
- "\x00e\x03\x01\x00\x00\x00\xe9" + // 0x00650301: 0x000000E9
- "\x00e\x03\x02\x00\x00\x00\xea" + // 0x00650302: 0x000000EA
- "\x00e\x03\b\x00\x00\x00\xeb" + // 0x00650308: 0x000000EB
- "\x00i\x03\x00\x00\x00\x00\xec" + // 0x00690300: 0x000000EC
- "\x00i\x03\x01\x00\x00\x00\xed" + // 0x00690301: 0x000000ED
- "\x00i\x03\x02\x00\x00\x00\xee" + // 0x00690302: 0x000000EE
- "\x00i\x03\b\x00\x00\x00\xef" + // 0x00690308: 0x000000EF
- "\x00n\x03\x03\x00\x00\x00\xf1" + // 0x006E0303: 0x000000F1
- "\x00o\x03\x00\x00\x00\x00\xf2" + // 0x006F0300: 0x000000F2
- "\x00o\x03\x01\x00\x00\x00\xf3" + // 0x006F0301: 0x000000F3
- "\x00o\x03\x02\x00\x00\x00\xf4" + // 0x006F0302: 0x000000F4
- "\x00o\x03\x03\x00\x00\x00\xf5" + // 0x006F0303: 0x000000F5
- "\x00o\x03\b\x00\x00\x00\xf6" + // 0x006F0308: 0x000000F6
- "\x00u\x03\x00\x00\x00\x00\xf9" + // 0x00750300: 0x000000F9
- "\x00u\x03\x01\x00\x00\x00\xfa" + // 0x00750301: 0x000000FA
- "\x00u\x03\x02\x00\x00\x00\xfb" + // 0x00750302: 0x000000FB
- "\x00u\x03\b\x00\x00\x00\xfc" + // 0x00750308: 0x000000FC
- "\x00y\x03\x01\x00\x00\x00\xfd" + // 0x00790301: 0x000000FD
- "\x00y\x03\b\x00\x00\x00\xff" + // 0x00790308: 0x000000FF
- "\x00A\x03\x04\x00\x00\x01\x00" + // 0x00410304: 0x00000100
- "\x00a\x03\x04\x00\x00\x01\x01" + // 0x00610304: 0x00000101
- "\x00A\x03\x06\x00\x00\x01\x02" + // 0x00410306: 0x00000102
- "\x00a\x03\x06\x00\x00\x01\x03" + // 0x00610306: 0x00000103
- "\x00A\x03(\x00\x00\x01\x04" + // 0x00410328: 0x00000104
- "\x00a\x03(\x00\x00\x01\x05" + // 0x00610328: 0x00000105
- "\x00C\x03\x01\x00\x00\x01\x06" + // 0x00430301: 0x00000106
- "\x00c\x03\x01\x00\x00\x01\a" + // 0x00630301: 0x00000107
- "\x00C\x03\x02\x00\x00\x01\b" + // 0x00430302: 0x00000108
- "\x00c\x03\x02\x00\x00\x01\t" + // 0x00630302: 0x00000109
- "\x00C\x03\a\x00\x00\x01\n" + // 0x00430307: 0x0000010A
- "\x00c\x03\a\x00\x00\x01\v" + // 0x00630307: 0x0000010B
- "\x00C\x03\f\x00\x00\x01\f" + // 0x0043030C: 0x0000010C
- "\x00c\x03\f\x00\x00\x01\r" + // 0x0063030C: 0x0000010D
- "\x00D\x03\f\x00\x00\x01\x0e" + // 0x0044030C: 0x0000010E
- "\x00d\x03\f\x00\x00\x01\x0f" + // 0x0064030C: 0x0000010F
- "\x00E\x03\x04\x00\x00\x01\x12" + // 0x00450304: 0x00000112
- "\x00e\x03\x04\x00\x00\x01\x13" + // 0x00650304: 0x00000113
- "\x00E\x03\x06\x00\x00\x01\x14" + // 0x00450306: 0x00000114
- "\x00e\x03\x06\x00\x00\x01\x15" + // 0x00650306: 0x00000115
- "\x00E\x03\a\x00\x00\x01\x16" + // 0x00450307: 0x00000116
- "\x00e\x03\a\x00\x00\x01\x17" + // 0x00650307: 0x00000117
- "\x00E\x03(\x00\x00\x01\x18" + // 0x00450328: 0x00000118
- "\x00e\x03(\x00\x00\x01\x19" + // 0x00650328: 0x00000119
- "\x00E\x03\f\x00\x00\x01\x1a" + // 0x0045030C: 0x0000011A
- "\x00e\x03\f\x00\x00\x01\x1b" + // 0x0065030C: 0x0000011B
- "\x00G\x03\x02\x00\x00\x01\x1c" + // 0x00470302: 0x0000011C
- "\x00g\x03\x02\x00\x00\x01\x1d" + // 0x00670302: 0x0000011D
- "\x00G\x03\x06\x00\x00\x01\x1e" + // 0x00470306: 0x0000011E
- "\x00g\x03\x06\x00\x00\x01\x1f" + // 0x00670306: 0x0000011F
- "\x00G\x03\a\x00\x00\x01 " + // 0x00470307: 0x00000120
- "\x00g\x03\a\x00\x00\x01!" + // 0x00670307: 0x00000121
- "\x00G\x03'\x00\x00\x01\"" + // 0x00470327: 0x00000122
- "\x00g\x03'\x00\x00\x01#" + // 0x00670327: 0x00000123
- "\x00H\x03\x02\x00\x00\x01$" + // 0x00480302: 0x00000124
- "\x00h\x03\x02\x00\x00\x01%" + // 0x00680302: 0x00000125
- "\x00I\x03\x03\x00\x00\x01(" + // 0x00490303: 0x00000128
- "\x00i\x03\x03\x00\x00\x01)" + // 0x00690303: 0x00000129
- "\x00I\x03\x04\x00\x00\x01*" + // 0x00490304: 0x0000012A
- "\x00i\x03\x04\x00\x00\x01+" + // 0x00690304: 0x0000012B
- "\x00I\x03\x06\x00\x00\x01," + // 0x00490306: 0x0000012C
- "\x00i\x03\x06\x00\x00\x01-" + // 0x00690306: 0x0000012D
- "\x00I\x03(\x00\x00\x01." + // 0x00490328: 0x0000012E
- "\x00i\x03(\x00\x00\x01/" + // 0x00690328: 0x0000012F
- "\x00I\x03\a\x00\x00\x010" + // 0x00490307: 0x00000130
- "\x00J\x03\x02\x00\x00\x014" + // 0x004A0302: 0x00000134
- "\x00j\x03\x02\x00\x00\x015" + // 0x006A0302: 0x00000135
- "\x00K\x03'\x00\x00\x016" + // 0x004B0327: 0x00000136
- "\x00k\x03'\x00\x00\x017" + // 0x006B0327: 0x00000137
- "\x00L\x03\x01\x00\x00\x019" + // 0x004C0301: 0x00000139
- "\x00l\x03\x01\x00\x00\x01:" + // 0x006C0301: 0x0000013A
- "\x00L\x03'\x00\x00\x01;" + // 0x004C0327: 0x0000013B
- "\x00l\x03'\x00\x00\x01<" + // 0x006C0327: 0x0000013C
- "\x00L\x03\f\x00\x00\x01=" + // 0x004C030C: 0x0000013D
- "\x00l\x03\f\x00\x00\x01>" + // 0x006C030C: 0x0000013E
- "\x00N\x03\x01\x00\x00\x01C" + // 0x004E0301: 0x00000143
- "\x00n\x03\x01\x00\x00\x01D" + // 0x006E0301: 0x00000144
- "\x00N\x03'\x00\x00\x01E" + // 0x004E0327: 0x00000145
- "\x00n\x03'\x00\x00\x01F" + // 0x006E0327: 0x00000146
- "\x00N\x03\f\x00\x00\x01G" + // 0x004E030C: 0x00000147
- "\x00n\x03\f\x00\x00\x01H" + // 0x006E030C: 0x00000148
- "\x00O\x03\x04\x00\x00\x01L" + // 0x004F0304: 0x0000014C
- "\x00o\x03\x04\x00\x00\x01M" + // 0x006F0304: 0x0000014D
- "\x00O\x03\x06\x00\x00\x01N" + // 0x004F0306: 0x0000014E
- "\x00o\x03\x06\x00\x00\x01O" + // 0x006F0306: 0x0000014F
- "\x00O\x03\v\x00\x00\x01P" + // 0x004F030B: 0x00000150
- "\x00o\x03\v\x00\x00\x01Q" + // 0x006F030B: 0x00000151
- "\x00R\x03\x01\x00\x00\x01T" + // 0x00520301: 0x00000154
- "\x00r\x03\x01\x00\x00\x01U" + // 0x00720301: 0x00000155
- "\x00R\x03'\x00\x00\x01V" + // 0x00520327: 0x00000156
- "\x00r\x03'\x00\x00\x01W" + // 0x00720327: 0x00000157
- "\x00R\x03\f\x00\x00\x01X" + // 0x0052030C: 0x00000158
- "\x00r\x03\f\x00\x00\x01Y" + // 0x0072030C: 0x00000159
- "\x00S\x03\x01\x00\x00\x01Z" + // 0x00530301: 0x0000015A
- "\x00s\x03\x01\x00\x00\x01[" + // 0x00730301: 0x0000015B
- "\x00S\x03\x02\x00\x00\x01\\" + // 0x00530302: 0x0000015C
- "\x00s\x03\x02\x00\x00\x01]" + // 0x00730302: 0x0000015D
- "\x00S\x03'\x00\x00\x01^" + // 0x00530327: 0x0000015E
- "\x00s\x03'\x00\x00\x01_" + // 0x00730327: 0x0000015F
- "\x00S\x03\f\x00\x00\x01`" + // 0x0053030C: 0x00000160
- "\x00s\x03\f\x00\x00\x01a" + // 0x0073030C: 0x00000161
- "\x00T\x03'\x00\x00\x01b" + // 0x00540327: 0x00000162
- "\x00t\x03'\x00\x00\x01c" + // 0x00740327: 0x00000163
- "\x00T\x03\f\x00\x00\x01d" + // 0x0054030C: 0x00000164
- "\x00t\x03\f\x00\x00\x01e" + // 0x0074030C: 0x00000165
- "\x00U\x03\x03\x00\x00\x01h" + // 0x00550303: 0x00000168
- "\x00u\x03\x03\x00\x00\x01i" + // 0x00750303: 0x00000169
- "\x00U\x03\x04\x00\x00\x01j" + // 0x00550304: 0x0000016A
- "\x00u\x03\x04\x00\x00\x01k" + // 0x00750304: 0x0000016B
- "\x00U\x03\x06\x00\x00\x01l" + // 0x00550306: 0x0000016C
- "\x00u\x03\x06\x00\x00\x01m" + // 0x00750306: 0x0000016D
- "\x00U\x03\n\x00\x00\x01n" + // 0x0055030A: 0x0000016E
- "\x00u\x03\n\x00\x00\x01o" + // 0x0075030A: 0x0000016F
- "\x00U\x03\v\x00\x00\x01p" + // 0x0055030B: 0x00000170
- "\x00u\x03\v\x00\x00\x01q" + // 0x0075030B: 0x00000171
- "\x00U\x03(\x00\x00\x01r" + // 0x00550328: 0x00000172
- "\x00u\x03(\x00\x00\x01s" + // 0x00750328: 0x00000173
- "\x00W\x03\x02\x00\x00\x01t" + // 0x00570302: 0x00000174
- "\x00w\x03\x02\x00\x00\x01u" + // 0x00770302: 0x00000175
- "\x00Y\x03\x02\x00\x00\x01v" + // 0x00590302: 0x00000176
- "\x00y\x03\x02\x00\x00\x01w" + // 0x00790302: 0x00000177
- "\x00Y\x03\b\x00\x00\x01x" + // 0x00590308: 0x00000178
- "\x00Z\x03\x01\x00\x00\x01y" + // 0x005A0301: 0x00000179
- "\x00z\x03\x01\x00\x00\x01z" + // 0x007A0301: 0x0000017A
- "\x00Z\x03\a\x00\x00\x01{" + // 0x005A0307: 0x0000017B
- "\x00z\x03\a\x00\x00\x01|" + // 0x007A0307: 0x0000017C
- "\x00Z\x03\f\x00\x00\x01}" + // 0x005A030C: 0x0000017D
- "\x00z\x03\f\x00\x00\x01~" + // 0x007A030C: 0x0000017E
- "\x00O\x03\x1b\x00\x00\x01\xa0" + // 0x004F031B: 0x000001A0
- "\x00o\x03\x1b\x00\x00\x01\xa1" + // 0x006F031B: 0x000001A1
- "\x00U\x03\x1b\x00\x00\x01\xaf" + // 0x0055031B: 0x000001AF
- "\x00u\x03\x1b\x00\x00\x01\xb0" + // 0x0075031B: 0x000001B0
- "\x00A\x03\f\x00\x00\x01\xcd" + // 0x0041030C: 0x000001CD
- "\x00a\x03\f\x00\x00\x01\xce" + // 0x0061030C: 0x000001CE
- "\x00I\x03\f\x00\x00\x01\xcf" + // 0x0049030C: 0x000001CF
- "\x00i\x03\f\x00\x00\x01\xd0" + // 0x0069030C: 0x000001D0
- "\x00O\x03\f\x00\x00\x01\xd1" + // 0x004F030C: 0x000001D1
- "\x00o\x03\f\x00\x00\x01\xd2" + // 0x006F030C: 0x000001D2
- "\x00U\x03\f\x00\x00\x01\xd3" + // 0x0055030C: 0x000001D3
- "\x00u\x03\f\x00\x00\x01\xd4" + // 0x0075030C: 0x000001D4
- "\x00\xdc\x03\x04\x00\x00\x01\xd5" + // 0x00DC0304: 0x000001D5
- "\x00\xfc\x03\x04\x00\x00\x01\xd6" + // 0x00FC0304: 0x000001D6
- "\x00\xdc\x03\x01\x00\x00\x01\xd7" + // 0x00DC0301: 0x000001D7
- "\x00\xfc\x03\x01\x00\x00\x01\xd8" + // 0x00FC0301: 0x000001D8
- "\x00\xdc\x03\f\x00\x00\x01\xd9" + // 0x00DC030C: 0x000001D9
- "\x00\xfc\x03\f\x00\x00\x01\xda" + // 0x00FC030C: 0x000001DA
- "\x00\xdc\x03\x00\x00\x00\x01\xdb" + // 0x00DC0300: 0x000001DB
- "\x00\xfc\x03\x00\x00\x00\x01\xdc" + // 0x00FC0300: 0x000001DC
- "\x00\xc4\x03\x04\x00\x00\x01\xde" + // 0x00C40304: 0x000001DE
- "\x00\xe4\x03\x04\x00\x00\x01\xdf" + // 0x00E40304: 0x000001DF
- "\x02&\x03\x04\x00\x00\x01\xe0" + // 0x02260304: 0x000001E0
- "\x02'\x03\x04\x00\x00\x01\xe1" + // 0x02270304: 0x000001E1
- "\x00\xc6\x03\x04\x00\x00\x01\xe2" + // 0x00C60304: 0x000001E2
- "\x00\xe6\x03\x04\x00\x00\x01\xe3" + // 0x00E60304: 0x000001E3
- "\x00G\x03\f\x00\x00\x01\xe6" + // 0x0047030C: 0x000001E6
- "\x00g\x03\f\x00\x00\x01\xe7" + // 0x0067030C: 0x000001E7
- "\x00K\x03\f\x00\x00\x01\xe8" + // 0x004B030C: 0x000001E8
- "\x00k\x03\f\x00\x00\x01\xe9" + // 0x006B030C: 0x000001E9
- "\x00O\x03(\x00\x00\x01\xea" + // 0x004F0328: 0x000001EA
- "\x00o\x03(\x00\x00\x01\xeb" + // 0x006F0328: 0x000001EB
- "\x01\xea\x03\x04\x00\x00\x01\xec" + // 0x01EA0304: 0x000001EC
- "\x01\xeb\x03\x04\x00\x00\x01\xed" + // 0x01EB0304: 0x000001ED
- "\x01\xb7\x03\f\x00\x00\x01\xee" + // 0x01B7030C: 0x000001EE
- "\x02\x92\x03\f\x00\x00\x01\xef" + // 0x0292030C: 0x000001EF
- "\x00j\x03\f\x00\x00\x01\xf0" + // 0x006A030C: 0x000001F0
- "\x00G\x03\x01\x00\x00\x01\xf4" + // 0x00470301: 0x000001F4
- "\x00g\x03\x01\x00\x00\x01\xf5" + // 0x00670301: 0x000001F5
- "\x00N\x03\x00\x00\x00\x01\xf8" + // 0x004E0300: 0x000001F8
- "\x00n\x03\x00\x00\x00\x01\xf9" + // 0x006E0300: 0x000001F9
- "\x00\xc5\x03\x01\x00\x00\x01\xfa" + // 0x00C50301: 0x000001FA
- "\x00\xe5\x03\x01\x00\x00\x01\xfb" + // 0x00E50301: 0x000001FB
- "\x00\xc6\x03\x01\x00\x00\x01\xfc" + // 0x00C60301: 0x000001FC
- "\x00\xe6\x03\x01\x00\x00\x01\xfd" + // 0x00E60301: 0x000001FD
- "\x00\xd8\x03\x01\x00\x00\x01\xfe" + // 0x00D80301: 0x000001FE
- "\x00\xf8\x03\x01\x00\x00\x01\xff" + // 0x00F80301: 0x000001FF
- "\x00A\x03\x0f\x00\x00\x02\x00" + // 0x0041030F: 0x00000200
- "\x00a\x03\x0f\x00\x00\x02\x01" + // 0x0061030F: 0x00000201
- "\x00A\x03\x11\x00\x00\x02\x02" + // 0x00410311: 0x00000202
- "\x00a\x03\x11\x00\x00\x02\x03" + // 0x00610311: 0x00000203
- "\x00E\x03\x0f\x00\x00\x02\x04" + // 0x0045030F: 0x00000204
- "\x00e\x03\x0f\x00\x00\x02\x05" + // 0x0065030F: 0x00000205
- "\x00E\x03\x11\x00\x00\x02\x06" + // 0x00450311: 0x00000206
- "\x00e\x03\x11\x00\x00\x02\a" + // 0x00650311: 0x00000207
- "\x00I\x03\x0f\x00\x00\x02\b" + // 0x0049030F: 0x00000208
- "\x00i\x03\x0f\x00\x00\x02\t" + // 0x0069030F: 0x00000209
- "\x00I\x03\x11\x00\x00\x02\n" + // 0x00490311: 0x0000020A
- "\x00i\x03\x11\x00\x00\x02\v" + // 0x00690311: 0x0000020B
- "\x00O\x03\x0f\x00\x00\x02\f" + // 0x004F030F: 0x0000020C
- "\x00o\x03\x0f\x00\x00\x02\r" + // 0x006F030F: 0x0000020D
- "\x00O\x03\x11\x00\x00\x02\x0e" + // 0x004F0311: 0x0000020E
- "\x00o\x03\x11\x00\x00\x02\x0f" + // 0x006F0311: 0x0000020F
- "\x00R\x03\x0f\x00\x00\x02\x10" + // 0x0052030F: 0x00000210
- "\x00r\x03\x0f\x00\x00\x02\x11" + // 0x0072030F: 0x00000211
- "\x00R\x03\x11\x00\x00\x02\x12" + // 0x00520311: 0x00000212
- "\x00r\x03\x11\x00\x00\x02\x13" + // 0x00720311: 0x00000213
- "\x00U\x03\x0f\x00\x00\x02\x14" + // 0x0055030F: 0x00000214
- "\x00u\x03\x0f\x00\x00\x02\x15" + // 0x0075030F: 0x00000215
- "\x00U\x03\x11\x00\x00\x02\x16" + // 0x00550311: 0x00000216
- "\x00u\x03\x11\x00\x00\x02\x17" + // 0x00750311: 0x00000217
- "\x00S\x03&\x00\x00\x02\x18" + // 0x00530326: 0x00000218
- "\x00s\x03&\x00\x00\x02\x19" + // 0x00730326: 0x00000219
- "\x00T\x03&\x00\x00\x02\x1a" + // 0x00540326: 0x0000021A
- "\x00t\x03&\x00\x00\x02\x1b" + // 0x00740326: 0x0000021B
- "\x00H\x03\f\x00\x00\x02\x1e" + // 0x0048030C: 0x0000021E
- "\x00h\x03\f\x00\x00\x02\x1f" + // 0x0068030C: 0x0000021F
- "\x00A\x03\a\x00\x00\x02&" + // 0x00410307: 0x00000226
- "\x00a\x03\a\x00\x00\x02'" + // 0x00610307: 0x00000227
- "\x00E\x03'\x00\x00\x02(" + // 0x00450327: 0x00000228
- "\x00e\x03'\x00\x00\x02)" + // 0x00650327: 0x00000229
- "\x00\xd6\x03\x04\x00\x00\x02*" + // 0x00D60304: 0x0000022A
- "\x00\xf6\x03\x04\x00\x00\x02+" + // 0x00F60304: 0x0000022B
- "\x00\xd5\x03\x04\x00\x00\x02," + // 0x00D50304: 0x0000022C
- "\x00\xf5\x03\x04\x00\x00\x02-" + // 0x00F50304: 0x0000022D
- "\x00O\x03\a\x00\x00\x02." + // 0x004F0307: 0x0000022E
- "\x00o\x03\a\x00\x00\x02/" + // 0x006F0307: 0x0000022F
- "\x02.\x03\x04\x00\x00\x020" + // 0x022E0304: 0x00000230
- "\x02/\x03\x04\x00\x00\x021" + // 0x022F0304: 0x00000231
- "\x00Y\x03\x04\x00\x00\x022" + // 0x00590304: 0x00000232
- "\x00y\x03\x04\x00\x00\x023" + // 0x00790304: 0x00000233
- "\x00\xa8\x03\x01\x00\x00\x03\x85" + // 0x00A80301: 0x00000385
- "\x03\x91\x03\x01\x00\x00\x03\x86" + // 0x03910301: 0x00000386
- "\x03\x95\x03\x01\x00\x00\x03\x88" + // 0x03950301: 0x00000388
- "\x03\x97\x03\x01\x00\x00\x03\x89" + // 0x03970301: 0x00000389
- "\x03\x99\x03\x01\x00\x00\x03\x8a" + // 0x03990301: 0x0000038A
- "\x03\x9f\x03\x01\x00\x00\x03\x8c" + // 0x039F0301: 0x0000038C
- "\x03\xa5\x03\x01\x00\x00\x03\x8e" + // 0x03A50301: 0x0000038E
- "\x03\xa9\x03\x01\x00\x00\x03\x8f" + // 0x03A90301: 0x0000038F
- "\x03\xca\x03\x01\x00\x00\x03\x90" + // 0x03CA0301: 0x00000390
- "\x03\x99\x03\b\x00\x00\x03\xaa" + // 0x03990308: 0x000003AA
- "\x03\xa5\x03\b\x00\x00\x03\xab" + // 0x03A50308: 0x000003AB
- "\x03\xb1\x03\x01\x00\x00\x03\xac" + // 0x03B10301: 0x000003AC
- "\x03\xb5\x03\x01\x00\x00\x03\xad" + // 0x03B50301: 0x000003AD
- "\x03\xb7\x03\x01\x00\x00\x03\xae" + // 0x03B70301: 0x000003AE
- "\x03\xb9\x03\x01\x00\x00\x03\xaf" + // 0x03B90301: 0x000003AF
- "\x03\xcb\x03\x01\x00\x00\x03\xb0" + // 0x03CB0301: 0x000003B0
- "\x03\xb9\x03\b\x00\x00\x03\xca" + // 0x03B90308: 0x000003CA
- "\x03\xc5\x03\b\x00\x00\x03\xcb" + // 0x03C50308: 0x000003CB
- "\x03\xbf\x03\x01\x00\x00\x03\xcc" + // 0x03BF0301: 0x000003CC
- "\x03\xc5\x03\x01\x00\x00\x03\xcd" + // 0x03C50301: 0x000003CD
- "\x03\xc9\x03\x01\x00\x00\x03\xce" + // 0x03C90301: 0x000003CE
- "\x03\xd2\x03\x01\x00\x00\x03\xd3" + // 0x03D20301: 0x000003D3
- "\x03\xd2\x03\b\x00\x00\x03\xd4" + // 0x03D20308: 0x000003D4
- "\x04\x15\x03\x00\x00\x00\x04\x00" + // 0x04150300: 0x00000400
- "\x04\x15\x03\b\x00\x00\x04\x01" + // 0x04150308: 0x00000401
- "\x04\x13\x03\x01\x00\x00\x04\x03" + // 0x04130301: 0x00000403
- "\x04\x06\x03\b\x00\x00\x04\a" + // 0x04060308: 0x00000407
- "\x04\x1a\x03\x01\x00\x00\x04\f" + // 0x041A0301: 0x0000040C
- "\x04\x18\x03\x00\x00\x00\x04\r" + // 0x04180300: 0x0000040D
- "\x04#\x03\x06\x00\x00\x04\x0e" + // 0x04230306: 0x0000040E
- "\x04\x18\x03\x06\x00\x00\x04\x19" + // 0x04180306: 0x00000419
- "\x048\x03\x06\x00\x00\x049" + // 0x04380306: 0x00000439
- "\x045\x03\x00\x00\x00\x04P" + // 0x04350300: 0x00000450
- "\x045\x03\b\x00\x00\x04Q" + // 0x04350308: 0x00000451
- "\x043\x03\x01\x00\x00\x04S" + // 0x04330301: 0x00000453
- "\x04V\x03\b\x00\x00\x04W" + // 0x04560308: 0x00000457
- "\x04:\x03\x01\x00\x00\x04\\" + // 0x043A0301: 0x0000045C
- "\x048\x03\x00\x00\x00\x04]" + // 0x04380300: 0x0000045D
- "\x04C\x03\x06\x00\x00\x04^" + // 0x04430306: 0x0000045E
- "\x04t\x03\x0f\x00\x00\x04v" + // 0x0474030F: 0x00000476
- "\x04u\x03\x0f\x00\x00\x04w" + // 0x0475030F: 0x00000477
- "\x04\x16\x03\x06\x00\x00\x04\xc1" + // 0x04160306: 0x000004C1
- "\x046\x03\x06\x00\x00\x04\xc2" + // 0x04360306: 0x000004C2
- "\x04\x10\x03\x06\x00\x00\x04\xd0" + // 0x04100306: 0x000004D0
- "\x040\x03\x06\x00\x00\x04\xd1" + // 0x04300306: 0x000004D1
- "\x04\x10\x03\b\x00\x00\x04\xd2" + // 0x04100308: 0x000004D2
- "\x040\x03\b\x00\x00\x04\xd3" + // 0x04300308: 0x000004D3
- "\x04\x15\x03\x06\x00\x00\x04\xd6" + // 0x04150306: 0x000004D6
- "\x045\x03\x06\x00\x00\x04\xd7" + // 0x04350306: 0x000004D7
- "\x04\xd8\x03\b\x00\x00\x04\xda" + // 0x04D80308: 0x000004DA
- "\x04\xd9\x03\b\x00\x00\x04\xdb" + // 0x04D90308: 0x000004DB
- "\x04\x16\x03\b\x00\x00\x04\xdc" + // 0x04160308: 0x000004DC
- "\x046\x03\b\x00\x00\x04\xdd" + // 0x04360308: 0x000004DD
- "\x04\x17\x03\b\x00\x00\x04\xde" + // 0x04170308: 0x000004DE
- "\x047\x03\b\x00\x00\x04\xdf" + // 0x04370308: 0x000004DF
- "\x04\x18\x03\x04\x00\x00\x04\xe2" + // 0x04180304: 0x000004E2
- "\x048\x03\x04\x00\x00\x04\xe3" + // 0x04380304: 0x000004E3
- "\x04\x18\x03\b\x00\x00\x04\xe4" + // 0x04180308: 0x000004E4
- "\x048\x03\b\x00\x00\x04\xe5" + // 0x04380308: 0x000004E5
- "\x04\x1e\x03\b\x00\x00\x04\xe6" + // 0x041E0308: 0x000004E6
- "\x04>\x03\b\x00\x00\x04\xe7" + // 0x043E0308: 0x000004E7
- "\x04\xe8\x03\b\x00\x00\x04\xea" + // 0x04E80308: 0x000004EA
- "\x04\xe9\x03\b\x00\x00\x04\xeb" + // 0x04E90308: 0x000004EB
- "\x04-\x03\b\x00\x00\x04\xec" + // 0x042D0308: 0x000004EC
- "\x04M\x03\b\x00\x00\x04\xed" + // 0x044D0308: 0x000004ED
- "\x04#\x03\x04\x00\x00\x04\xee" + // 0x04230304: 0x000004EE
- "\x04C\x03\x04\x00\x00\x04\xef" + // 0x04430304: 0x000004EF
- "\x04#\x03\b\x00\x00\x04\xf0" + // 0x04230308: 0x000004F0
- "\x04C\x03\b\x00\x00\x04\xf1" + // 0x04430308: 0x000004F1
- "\x04#\x03\v\x00\x00\x04\xf2" + // 0x0423030B: 0x000004F2
- "\x04C\x03\v\x00\x00\x04\xf3" + // 0x0443030B: 0x000004F3
- "\x04'\x03\b\x00\x00\x04\xf4" + // 0x04270308: 0x000004F4
- "\x04G\x03\b\x00\x00\x04\xf5" + // 0x04470308: 0x000004F5
- "\x04+\x03\b\x00\x00\x04\xf8" + // 0x042B0308: 0x000004F8
- "\x04K\x03\b\x00\x00\x04\xf9" + // 0x044B0308: 0x000004F9
- "\x06'\x06S\x00\x00\x06\"" + // 0x06270653: 0x00000622
- "\x06'\x06T\x00\x00\x06#" + // 0x06270654: 0x00000623
- "\x06H\x06T\x00\x00\x06$" + // 0x06480654: 0x00000624
- "\x06'\x06U\x00\x00\x06%" + // 0x06270655: 0x00000625
- "\x06J\x06T\x00\x00\x06&" + // 0x064A0654: 0x00000626
- "\x06\xd5\x06T\x00\x00\x06\xc0" + // 0x06D50654: 0x000006C0
- "\x06\xc1\x06T\x00\x00\x06\xc2" + // 0x06C10654: 0x000006C2
- "\x06\xd2\x06T\x00\x00\x06\xd3" + // 0x06D20654: 0x000006D3
- "\t(\t<\x00\x00\t)" + // 0x0928093C: 0x00000929
- "\t0\t<\x00\x00\t1" + // 0x0930093C: 0x00000931
- "\t3\t<\x00\x00\t4" + // 0x0933093C: 0x00000934
- "\t\xc7\t\xbe\x00\x00\t\xcb" + // 0x09C709BE: 0x000009CB
- "\t\xc7\t\xd7\x00\x00\t\xcc" + // 0x09C709D7: 0x000009CC
- "\vG\vV\x00\x00\vH" + // 0x0B470B56: 0x00000B48
- "\vG\v>\x00\x00\vK" + // 0x0B470B3E: 0x00000B4B
- "\vG\vW\x00\x00\vL" + // 0x0B470B57: 0x00000B4C
- "\v\x92\v\xd7\x00\x00\v\x94" + // 0x0B920BD7: 0x00000B94
- "\v\xc6\v\xbe\x00\x00\v\xca" + // 0x0BC60BBE: 0x00000BCA
- "\v\xc7\v\xbe\x00\x00\v\xcb" + // 0x0BC70BBE: 0x00000BCB
- "\v\xc6\v\xd7\x00\x00\v\xcc" + // 0x0BC60BD7: 0x00000BCC
- "\fF\fV\x00\x00\fH" + // 0x0C460C56: 0x00000C48
- "\f\xbf\f\xd5\x00\x00\f\xc0" + // 0x0CBF0CD5: 0x00000CC0
- "\f\xc6\f\xd5\x00\x00\f\xc7" + // 0x0CC60CD5: 0x00000CC7
- "\f\xc6\f\xd6\x00\x00\f\xc8" + // 0x0CC60CD6: 0x00000CC8
- "\f\xc6\f\xc2\x00\x00\f\xca" + // 0x0CC60CC2: 0x00000CCA
- "\f\xca\f\xd5\x00\x00\f\xcb" + // 0x0CCA0CD5: 0x00000CCB
- "\rF\r>\x00\x00\rJ" + // 0x0D460D3E: 0x00000D4A
- "\rG\r>\x00\x00\rK" + // 0x0D470D3E: 0x00000D4B
- "\rF\rW\x00\x00\rL" + // 0x0D460D57: 0x00000D4C
- "\r\xd9\r\xca\x00\x00\r\xda" + // 0x0DD90DCA: 0x00000DDA
- "\r\xd9\r\xcf\x00\x00\r\xdc" + // 0x0DD90DCF: 0x00000DDC
- "\r\xdc\r\xca\x00\x00\r\xdd" + // 0x0DDC0DCA: 0x00000DDD
- "\r\xd9\r\xdf\x00\x00\r\xde" + // 0x0DD90DDF: 0x00000DDE
- "\x10%\x10.\x00\x00\x10&" + // 0x1025102E: 0x00001026
- "\x1b\x05\x1b5\x00\x00\x1b\x06" + // 0x1B051B35: 0x00001B06
- "\x1b\a\x1b5\x00\x00\x1b\b" + // 0x1B071B35: 0x00001B08
- "\x1b\t\x1b5\x00\x00\x1b\n" + // 0x1B091B35: 0x00001B0A
- "\x1b\v\x1b5\x00\x00\x1b\f" + // 0x1B0B1B35: 0x00001B0C
- "\x1b\r\x1b5\x00\x00\x1b\x0e" + // 0x1B0D1B35: 0x00001B0E
- "\x1b\x11\x1b5\x00\x00\x1b\x12" + // 0x1B111B35: 0x00001B12
- "\x1b:\x1b5\x00\x00\x1b;" + // 0x1B3A1B35: 0x00001B3B
- "\x1b<\x1b5\x00\x00\x1b=" + // 0x1B3C1B35: 0x00001B3D
- "\x1b>\x1b5\x00\x00\x1b@" + // 0x1B3E1B35: 0x00001B40
- "\x1b?\x1b5\x00\x00\x1bA" + // 0x1B3F1B35: 0x00001B41
- "\x1bB\x1b5\x00\x00\x1bC" + // 0x1B421B35: 0x00001B43
- "\x00A\x03%\x00\x00\x1e\x00" + // 0x00410325: 0x00001E00
- "\x00a\x03%\x00\x00\x1e\x01" + // 0x00610325: 0x00001E01
- "\x00B\x03\a\x00\x00\x1e\x02" + // 0x00420307: 0x00001E02
- "\x00b\x03\a\x00\x00\x1e\x03" + // 0x00620307: 0x00001E03
- "\x00B\x03#\x00\x00\x1e\x04" + // 0x00420323: 0x00001E04
- "\x00b\x03#\x00\x00\x1e\x05" + // 0x00620323: 0x00001E05
- "\x00B\x031\x00\x00\x1e\x06" + // 0x00420331: 0x00001E06
- "\x00b\x031\x00\x00\x1e\a" + // 0x00620331: 0x00001E07
- "\x00\xc7\x03\x01\x00\x00\x1e\b" + // 0x00C70301: 0x00001E08
- "\x00\xe7\x03\x01\x00\x00\x1e\t" + // 0x00E70301: 0x00001E09
- "\x00D\x03\a\x00\x00\x1e\n" + // 0x00440307: 0x00001E0A
- "\x00d\x03\a\x00\x00\x1e\v" + // 0x00640307: 0x00001E0B
- "\x00D\x03#\x00\x00\x1e\f" + // 0x00440323: 0x00001E0C
- "\x00d\x03#\x00\x00\x1e\r" + // 0x00640323: 0x00001E0D
- "\x00D\x031\x00\x00\x1e\x0e" + // 0x00440331: 0x00001E0E
- "\x00d\x031\x00\x00\x1e\x0f" + // 0x00640331: 0x00001E0F
- "\x00D\x03'\x00\x00\x1e\x10" + // 0x00440327: 0x00001E10
- "\x00d\x03'\x00\x00\x1e\x11" + // 0x00640327: 0x00001E11
- "\x00D\x03-\x00\x00\x1e\x12" + // 0x0044032D: 0x00001E12
- "\x00d\x03-\x00\x00\x1e\x13" + // 0x0064032D: 0x00001E13
- "\x01\x12\x03\x00\x00\x00\x1e\x14" + // 0x01120300: 0x00001E14
- "\x01\x13\x03\x00\x00\x00\x1e\x15" + // 0x01130300: 0x00001E15
- "\x01\x12\x03\x01\x00\x00\x1e\x16" + // 0x01120301: 0x00001E16
- "\x01\x13\x03\x01\x00\x00\x1e\x17" + // 0x01130301: 0x00001E17
- "\x00E\x03-\x00\x00\x1e\x18" + // 0x0045032D: 0x00001E18
- "\x00e\x03-\x00\x00\x1e\x19" + // 0x0065032D: 0x00001E19
- "\x00E\x030\x00\x00\x1e\x1a" + // 0x00450330: 0x00001E1A
- "\x00e\x030\x00\x00\x1e\x1b" + // 0x00650330: 0x00001E1B
- "\x02(\x03\x06\x00\x00\x1e\x1c" + // 0x02280306: 0x00001E1C
- "\x02)\x03\x06\x00\x00\x1e\x1d" + // 0x02290306: 0x00001E1D
- "\x00F\x03\a\x00\x00\x1e\x1e" + // 0x00460307: 0x00001E1E
- "\x00f\x03\a\x00\x00\x1e\x1f" + // 0x00660307: 0x00001E1F
- "\x00G\x03\x04\x00\x00\x1e " + // 0x00470304: 0x00001E20
- "\x00g\x03\x04\x00\x00\x1e!" + // 0x00670304: 0x00001E21
- "\x00H\x03\a\x00\x00\x1e\"" + // 0x00480307: 0x00001E22
- "\x00h\x03\a\x00\x00\x1e#" + // 0x00680307: 0x00001E23
- "\x00H\x03#\x00\x00\x1e$" + // 0x00480323: 0x00001E24
- "\x00h\x03#\x00\x00\x1e%" + // 0x00680323: 0x00001E25
- "\x00H\x03\b\x00\x00\x1e&" + // 0x00480308: 0x00001E26
- "\x00h\x03\b\x00\x00\x1e'" + // 0x00680308: 0x00001E27
- "\x00H\x03'\x00\x00\x1e(" + // 0x00480327: 0x00001E28
- "\x00h\x03'\x00\x00\x1e)" + // 0x00680327: 0x00001E29
- "\x00H\x03.\x00\x00\x1e*" + // 0x0048032E: 0x00001E2A
- "\x00h\x03.\x00\x00\x1e+" + // 0x0068032E: 0x00001E2B
- "\x00I\x030\x00\x00\x1e," + // 0x00490330: 0x00001E2C
- "\x00i\x030\x00\x00\x1e-" + // 0x00690330: 0x00001E2D
- "\x00\xcf\x03\x01\x00\x00\x1e." + // 0x00CF0301: 0x00001E2E
- "\x00\xef\x03\x01\x00\x00\x1e/" + // 0x00EF0301: 0x00001E2F
- "\x00K\x03\x01\x00\x00\x1e0" + // 0x004B0301: 0x00001E30
- "\x00k\x03\x01\x00\x00\x1e1" + // 0x006B0301: 0x00001E31
- "\x00K\x03#\x00\x00\x1e2" + // 0x004B0323: 0x00001E32
- "\x00k\x03#\x00\x00\x1e3" + // 0x006B0323: 0x00001E33
- "\x00K\x031\x00\x00\x1e4" + // 0x004B0331: 0x00001E34
- "\x00k\x031\x00\x00\x1e5" + // 0x006B0331: 0x00001E35
- "\x00L\x03#\x00\x00\x1e6" + // 0x004C0323: 0x00001E36
- "\x00l\x03#\x00\x00\x1e7" + // 0x006C0323: 0x00001E37
- "\x1e6\x03\x04\x00\x00\x1e8" + // 0x1E360304: 0x00001E38
- "\x1e7\x03\x04\x00\x00\x1e9" + // 0x1E370304: 0x00001E39
- "\x00L\x031\x00\x00\x1e:" + // 0x004C0331: 0x00001E3A
- "\x00l\x031\x00\x00\x1e;" + // 0x006C0331: 0x00001E3B
- "\x00L\x03-\x00\x00\x1e<" + // 0x004C032D: 0x00001E3C
- "\x00l\x03-\x00\x00\x1e=" + // 0x006C032D: 0x00001E3D
- "\x00M\x03\x01\x00\x00\x1e>" + // 0x004D0301: 0x00001E3E
- "\x00m\x03\x01\x00\x00\x1e?" + // 0x006D0301: 0x00001E3F
- "\x00M\x03\a\x00\x00\x1e@" + // 0x004D0307: 0x00001E40
- "\x00m\x03\a\x00\x00\x1eA" + // 0x006D0307: 0x00001E41
- "\x00M\x03#\x00\x00\x1eB" + // 0x004D0323: 0x00001E42
- "\x00m\x03#\x00\x00\x1eC" + // 0x006D0323: 0x00001E43
- "\x00N\x03\a\x00\x00\x1eD" + // 0x004E0307: 0x00001E44
- "\x00n\x03\a\x00\x00\x1eE" + // 0x006E0307: 0x00001E45
- "\x00N\x03#\x00\x00\x1eF" + // 0x004E0323: 0x00001E46
- "\x00n\x03#\x00\x00\x1eG" + // 0x006E0323: 0x00001E47
- "\x00N\x031\x00\x00\x1eH" + // 0x004E0331: 0x00001E48
- "\x00n\x031\x00\x00\x1eI" + // 0x006E0331: 0x00001E49
- "\x00N\x03-\x00\x00\x1eJ" + // 0x004E032D: 0x00001E4A
- "\x00n\x03-\x00\x00\x1eK" + // 0x006E032D: 0x00001E4B
- "\x00\xd5\x03\x01\x00\x00\x1eL" + // 0x00D50301: 0x00001E4C
- "\x00\xf5\x03\x01\x00\x00\x1eM" + // 0x00F50301: 0x00001E4D
- "\x00\xd5\x03\b\x00\x00\x1eN" + // 0x00D50308: 0x00001E4E
- "\x00\xf5\x03\b\x00\x00\x1eO" + // 0x00F50308: 0x00001E4F
- "\x01L\x03\x00\x00\x00\x1eP" + // 0x014C0300: 0x00001E50
- "\x01M\x03\x00\x00\x00\x1eQ" + // 0x014D0300: 0x00001E51
- "\x01L\x03\x01\x00\x00\x1eR" + // 0x014C0301: 0x00001E52
- "\x01M\x03\x01\x00\x00\x1eS" + // 0x014D0301: 0x00001E53
- "\x00P\x03\x01\x00\x00\x1eT" + // 0x00500301: 0x00001E54
- "\x00p\x03\x01\x00\x00\x1eU" + // 0x00700301: 0x00001E55
- "\x00P\x03\a\x00\x00\x1eV" + // 0x00500307: 0x00001E56
- "\x00p\x03\a\x00\x00\x1eW" + // 0x00700307: 0x00001E57
- "\x00R\x03\a\x00\x00\x1eX" + // 0x00520307: 0x00001E58
- "\x00r\x03\a\x00\x00\x1eY" + // 0x00720307: 0x00001E59
- "\x00R\x03#\x00\x00\x1eZ" + // 0x00520323: 0x00001E5A
- "\x00r\x03#\x00\x00\x1e[" + // 0x00720323: 0x00001E5B
- "\x1eZ\x03\x04\x00\x00\x1e\\" + // 0x1E5A0304: 0x00001E5C
- "\x1e[\x03\x04\x00\x00\x1e]" + // 0x1E5B0304: 0x00001E5D
- "\x00R\x031\x00\x00\x1e^" + // 0x00520331: 0x00001E5E
- "\x00r\x031\x00\x00\x1e_" + // 0x00720331: 0x00001E5F
- "\x00S\x03\a\x00\x00\x1e`" + // 0x00530307: 0x00001E60
- "\x00s\x03\a\x00\x00\x1ea" + // 0x00730307: 0x00001E61
- "\x00S\x03#\x00\x00\x1eb" + // 0x00530323: 0x00001E62
- "\x00s\x03#\x00\x00\x1ec" + // 0x00730323: 0x00001E63
- "\x01Z\x03\a\x00\x00\x1ed" + // 0x015A0307: 0x00001E64
- "\x01[\x03\a\x00\x00\x1ee" + // 0x015B0307: 0x00001E65
- "\x01`\x03\a\x00\x00\x1ef" + // 0x01600307: 0x00001E66
- "\x01a\x03\a\x00\x00\x1eg" + // 0x01610307: 0x00001E67
- "\x1eb\x03\a\x00\x00\x1eh" + // 0x1E620307: 0x00001E68
- "\x1ec\x03\a\x00\x00\x1ei" + // 0x1E630307: 0x00001E69
- "\x00T\x03\a\x00\x00\x1ej" + // 0x00540307: 0x00001E6A
- "\x00t\x03\a\x00\x00\x1ek" + // 0x00740307: 0x00001E6B
- "\x00T\x03#\x00\x00\x1el" + // 0x00540323: 0x00001E6C
- "\x00t\x03#\x00\x00\x1em" + // 0x00740323: 0x00001E6D
- "\x00T\x031\x00\x00\x1en" + // 0x00540331: 0x00001E6E
- "\x00t\x031\x00\x00\x1eo" + // 0x00740331: 0x00001E6F
- "\x00T\x03-\x00\x00\x1ep" + // 0x0054032D: 0x00001E70
- "\x00t\x03-\x00\x00\x1eq" + // 0x0074032D: 0x00001E71
- "\x00U\x03$\x00\x00\x1er" + // 0x00550324: 0x00001E72
- "\x00u\x03$\x00\x00\x1es" + // 0x00750324: 0x00001E73
- "\x00U\x030\x00\x00\x1et" + // 0x00550330: 0x00001E74
- "\x00u\x030\x00\x00\x1eu" + // 0x00750330: 0x00001E75
- "\x00U\x03-\x00\x00\x1ev" + // 0x0055032D: 0x00001E76
- "\x00u\x03-\x00\x00\x1ew" + // 0x0075032D: 0x00001E77
- "\x01h\x03\x01\x00\x00\x1ex" + // 0x01680301: 0x00001E78
- "\x01i\x03\x01\x00\x00\x1ey" + // 0x01690301: 0x00001E79
- "\x01j\x03\b\x00\x00\x1ez" + // 0x016A0308: 0x00001E7A
- "\x01k\x03\b\x00\x00\x1e{" + // 0x016B0308: 0x00001E7B
- "\x00V\x03\x03\x00\x00\x1e|" + // 0x00560303: 0x00001E7C
- "\x00v\x03\x03\x00\x00\x1e}" + // 0x00760303: 0x00001E7D
- "\x00V\x03#\x00\x00\x1e~" + // 0x00560323: 0x00001E7E
- "\x00v\x03#\x00\x00\x1e\u007f" + // 0x00760323: 0x00001E7F
- "\x00W\x03\x00\x00\x00\x1e\x80" + // 0x00570300: 0x00001E80
- "\x00w\x03\x00\x00\x00\x1e\x81" + // 0x00770300: 0x00001E81
- "\x00W\x03\x01\x00\x00\x1e\x82" + // 0x00570301: 0x00001E82
- "\x00w\x03\x01\x00\x00\x1e\x83" + // 0x00770301: 0x00001E83
- "\x00W\x03\b\x00\x00\x1e\x84" + // 0x00570308: 0x00001E84
- "\x00w\x03\b\x00\x00\x1e\x85" + // 0x00770308: 0x00001E85
- "\x00W\x03\a\x00\x00\x1e\x86" + // 0x00570307: 0x00001E86
- "\x00w\x03\a\x00\x00\x1e\x87" + // 0x00770307: 0x00001E87
- "\x00W\x03#\x00\x00\x1e\x88" + // 0x00570323: 0x00001E88
- "\x00w\x03#\x00\x00\x1e\x89" + // 0x00770323: 0x00001E89
- "\x00X\x03\a\x00\x00\x1e\x8a" + // 0x00580307: 0x00001E8A
- "\x00x\x03\a\x00\x00\x1e\x8b" + // 0x00780307: 0x00001E8B
- "\x00X\x03\b\x00\x00\x1e\x8c" + // 0x00580308: 0x00001E8C
- "\x00x\x03\b\x00\x00\x1e\x8d" + // 0x00780308: 0x00001E8D
- "\x00Y\x03\a\x00\x00\x1e\x8e" + // 0x00590307: 0x00001E8E
- "\x00y\x03\a\x00\x00\x1e\x8f" + // 0x00790307: 0x00001E8F
- "\x00Z\x03\x02\x00\x00\x1e\x90" + // 0x005A0302: 0x00001E90
- "\x00z\x03\x02\x00\x00\x1e\x91" + // 0x007A0302: 0x00001E91
- "\x00Z\x03#\x00\x00\x1e\x92" + // 0x005A0323: 0x00001E92
- "\x00z\x03#\x00\x00\x1e\x93" + // 0x007A0323: 0x00001E93
- "\x00Z\x031\x00\x00\x1e\x94" + // 0x005A0331: 0x00001E94
- "\x00z\x031\x00\x00\x1e\x95" + // 0x007A0331: 0x00001E95
- "\x00h\x031\x00\x00\x1e\x96" + // 0x00680331: 0x00001E96
- "\x00t\x03\b\x00\x00\x1e\x97" + // 0x00740308: 0x00001E97
- "\x00w\x03\n\x00\x00\x1e\x98" + // 0x0077030A: 0x00001E98
- "\x00y\x03\n\x00\x00\x1e\x99" + // 0x0079030A: 0x00001E99
- "\x01\u007f\x03\a\x00\x00\x1e\x9b" + // 0x017F0307: 0x00001E9B
- "\x00A\x03#\x00\x00\x1e\xa0" + // 0x00410323: 0x00001EA0
- "\x00a\x03#\x00\x00\x1e\xa1" + // 0x00610323: 0x00001EA1
- "\x00A\x03\t\x00\x00\x1e\xa2" + // 0x00410309: 0x00001EA2
- "\x00a\x03\t\x00\x00\x1e\xa3" + // 0x00610309: 0x00001EA3
- "\x00\xc2\x03\x01\x00\x00\x1e\xa4" + // 0x00C20301: 0x00001EA4
- "\x00\xe2\x03\x01\x00\x00\x1e\xa5" + // 0x00E20301: 0x00001EA5
- "\x00\xc2\x03\x00\x00\x00\x1e\xa6" + // 0x00C20300: 0x00001EA6
- "\x00\xe2\x03\x00\x00\x00\x1e\xa7" + // 0x00E20300: 0x00001EA7
- "\x00\xc2\x03\t\x00\x00\x1e\xa8" + // 0x00C20309: 0x00001EA8
- "\x00\xe2\x03\t\x00\x00\x1e\xa9" + // 0x00E20309: 0x00001EA9
- "\x00\xc2\x03\x03\x00\x00\x1e\xaa" + // 0x00C20303: 0x00001EAA
- "\x00\xe2\x03\x03\x00\x00\x1e\xab" + // 0x00E20303: 0x00001EAB
- "\x1e\xa0\x03\x02\x00\x00\x1e\xac" + // 0x1EA00302: 0x00001EAC
- "\x1e\xa1\x03\x02\x00\x00\x1e\xad" + // 0x1EA10302: 0x00001EAD
- "\x01\x02\x03\x01\x00\x00\x1e\xae" + // 0x01020301: 0x00001EAE
- "\x01\x03\x03\x01\x00\x00\x1e\xaf" + // 0x01030301: 0x00001EAF
- "\x01\x02\x03\x00\x00\x00\x1e\xb0" + // 0x01020300: 0x00001EB0
- "\x01\x03\x03\x00\x00\x00\x1e\xb1" + // 0x01030300: 0x00001EB1
- "\x01\x02\x03\t\x00\x00\x1e\xb2" + // 0x01020309: 0x00001EB2
- "\x01\x03\x03\t\x00\x00\x1e\xb3" + // 0x01030309: 0x00001EB3
- "\x01\x02\x03\x03\x00\x00\x1e\xb4" + // 0x01020303: 0x00001EB4
- "\x01\x03\x03\x03\x00\x00\x1e\xb5" + // 0x01030303: 0x00001EB5
- "\x1e\xa0\x03\x06\x00\x00\x1e\xb6" + // 0x1EA00306: 0x00001EB6
- "\x1e\xa1\x03\x06\x00\x00\x1e\xb7" + // 0x1EA10306: 0x00001EB7
- "\x00E\x03#\x00\x00\x1e\xb8" + // 0x00450323: 0x00001EB8
- "\x00e\x03#\x00\x00\x1e\xb9" + // 0x00650323: 0x00001EB9
- "\x00E\x03\t\x00\x00\x1e\xba" + // 0x00450309: 0x00001EBA
- "\x00e\x03\t\x00\x00\x1e\xbb" + // 0x00650309: 0x00001EBB
- "\x00E\x03\x03\x00\x00\x1e\xbc" + // 0x00450303: 0x00001EBC
- "\x00e\x03\x03\x00\x00\x1e\xbd" + // 0x00650303: 0x00001EBD
- "\x00\xca\x03\x01\x00\x00\x1e\xbe" + // 0x00CA0301: 0x00001EBE
- "\x00\xea\x03\x01\x00\x00\x1e\xbf" + // 0x00EA0301: 0x00001EBF
- "\x00\xca\x03\x00\x00\x00\x1e\xc0" + // 0x00CA0300: 0x00001EC0
- "\x00\xea\x03\x00\x00\x00\x1e\xc1" + // 0x00EA0300: 0x00001EC1
- "\x00\xca\x03\t\x00\x00\x1e\xc2" + // 0x00CA0309: 0x00001EC2
- "\x00\xea\x03\t\x00\x00\x1e\xc3" + // 0x00EA0309: 0x00001EC3
- "\x00\xca\x03\x03\x00\x00\x1e\xc4" + // 0x00CA0303: 0x00001EC4
- "\x00\xea\x03\x03\x00\x00\x1e\xc5" + // 0x00EA0303: 0x00001EC5
- "\x1e\xb8\x03\x02\x00\x00\x1e\xc6" + // 0x1EB80302: 0x00001EC6
- "\x1e\xb9\x03\x02\x00\x00\x1e\xc7" + // 0x1EB90302: 0x00001EC7
- "\x00I\x03\t\x00\x00\x1e\xc8" + // 0x00490309: 0x00001EC8
- "\x00i\x03\t\x00\x00\x1e\xc9" + // 0x00690309: 0x00001EC9
- "\x00I\x03#\x00\x00\x1e\xca" + // 0x00490323: 0x00001ECA
- "\x00i\x03#\x00\x00\x1e\xcb" + // 0x00690323: 0x00001ECB
- "\x00O\x03#\x00\x00\x1e\xcc" + // 0x004F0323: 0x00001ECC
- "\x00o\x03#\x00\x00\x1e\xcd" + // 0x006F0323: 0x00001ECD
- "\x00O\x03\t\x00\x00\x1e\xce" + // 0x004F0309: 0x00001ECE
- "\x00o\x03\t\x00\x00\x1e\xcf" + // 0x006F0309: 0x00001ECF
- "\x00\xd4\x03\x01\x00\x00\x1e\xd0" + // 0x00D40301: 0x00001ED0
- "\x00\xf4\x03\x01\x00\x00\x1e\xd1" + // 0x00F40301: 0x00001ED1
- "\x00\xd4\x03\x00\x00\x00\x1e\xd2" + // 0x00D40300: 0x00001ED2
- "\x00\xf4\x03\x00\x00\x00\x1e\xd3" + // 0x00F40300: 0x00001ED3
- "\x00\xd4\x03\t\x00\x00\x1e\xd4" + // 0x00D40309: 0x00001ED4
- "\x00\xf4\x03\t\x00\x00\x1e\xd5" + // 0x00F40309: 0x00001ED5
- "\x00\xd4\x03\x03\x00\x00\x1e\xd6" + // 0x00D40303: 0x00001ED6
- "\x00\xf4\x03\x03\x00\x00\x1e\xd7" + // 0x00F40303: 0x00001ED7
- "\x1e\xcc\x03\x02\x00\x00\x1e\xd8" + // 0x1ECC0302: 0x00001ED8
- "\x1e\xcd\x03\x02\x00\x00\x1e\xd9" + // 0x1ECD0302: 0x00001ED9
- "\x01\xa0\x03\x01\x00\x00\x1e\xda" + // 0x01A00301: 0x00001EDA
- "\x01\xa1\x03\x01\x00\x00\x1e\xdb" + // 0x01A10301: 0x00001EDB
- "\x01\xa0\x03\x00\x00\x00\x1e\xdc" + // 0x01A00300: 0x00001EDC
- "\x01\xa1\x03\x00\x00\x00\x1e\xdd" + // 0x01A10300: 0x00001EDD
- "\x01\xa0\x03\t\x00\x00\x1e\xde" + // 0x01A00309: 0x00001EDE
- "\x01\xa1\x03\t\x00\x00\x1e\xdf" + // 0x01A10309: 0x00001EDF
- "\x01\xa0\x03\x03\x00\x00\x1e\xe0" + // 0x01A00303: 0x00001EE0
- "\x01\xa1\x03\x03\x00\x00\x1e\xe1" + // 0x01A10303: 0x00001EE1
- "\x01\xa0\x03#\x00\x00\x1e\xe2" + // 0x01A00323: 0x00001EE2
- "\x01\xa1\x03#\x00\x00\x1e\xe3" + // 0x01A10323: 0x00001EE3
- "\x00U\x03#\x00\x00\x1e\xe4" + // 0x00550323: 0x00001EE4
- "\x00u\x03#\x00\x00\x1e\xe5" + // 0x00750323: 0x00001EE5
- "\x00U\x03\t\x00\x00\x1e\xe6" + // 0x00550309: 0x00001EE6
- "\x00u\x03\t\x00\x00\x1e\xe7" + // 0x00750309: 0x00001EE7
- "\x01\xaf\x03\x01\x00\x00\x1e\xe8" + // 0x01AF0301: 0x00001EE8
- "\x01\xb0\x03\x01\x00\x00\x1e\xe9" + // 0x01B00301: 0x00001EE9
- "\x01\xaf\x03\x00\x00\x00\x1e\xea" + // 0x01AF0300: 0x00001EEA
- "\x01\xb0\x03\x00\x00\x00\x1e\xeb" + // 0x01B00300: 0x00001EEB
- "\x01\xaf\x03\t\x00\x00\x1e\xec" + // 0x01AF0309: 0x00001EEC
- "\x01\xb0\x03\t\x00\x00\x1e\xed" + // 0x01B00309: 0x00001EED
- "\x01\xaf\x03\x03\x00\x00\x1e\xee" + // 0x01AF0303: 0x00001EEE
- "\x01\xb0\x03\x03\x00\x00\x1e\xef" + // 0x01B00303: 0x00001EEF
- "\x01\xaf\x03#\x00\x00\x1e\xf0" + // 0x01AF0323: 0x00001EF0
- "\x01\xb0\x03#\x00\x00\x1e\xf1" + // 0x01B00323: 0x00001EF1
- "\x00Y\x03\x00\x00\x00\x1e\xf2" + // 0x00590300: 0x00001EF2
- "\x00y\x03\x00\x00\x00\x1e\xf3" + // 0x00790300: 0x00001EF3
- "\x00Y\x03#\x00\x00\x1e\xf4" + // 0x00590323: 0x00001EF4
- "\x00y\x03#\x00\x00\x1e\xf5" + // 0x00790323: 0x00001EF5
- "\x00Y\x03\t\x00\x00\x1e\xf6" + // 0x00590309: 0x00001EF6
- "\x00y\x03\t\x00\x00\x1e\xf7" + // 0x00790309: 0x00001EF7
- "\x00Y\x03\x03\x00\x00\x1e\xf8" + // 0x00590303: 0x00001EF8
- "\x00y\x03\x03\x00\x00\x1e\xf9" + // 0x00790303: 0x00001EF9
- "\x03\xb1\x03\x13\x00\x00\x1f\x00" + // 0x03B10313: 0x00001F00
- "\x03\xb1\x03\x14\x00\x00\x1f\x01" + // 0x03B10314: 0x00001F01
- "\x1f\x00\x03\x00\x00\x00\x1f\x02" + // 0x1F000300: 0x00001F02
- "\x1f\x01\x03\x00\x00\x00\x1f\x03" + // 0x1F010300: 0x00001F03
- "\x1f\x00\x03\x01\x00\x00\x1f\x04" + // 0x1F000301: 0x00001F04
- "\x1f\x01\x03\x01\x00\x00\x1f\x05" + // 0x1F010301: 0x00001F05
- "\x1f\x00\x03B\x00\x00\x1f\x06" + // 0x1F000342: 0x00001F06
- "\x1f\x01\x03B\x00\x00\x1f\a" + // 0x1F010342: 0x00001F07
- "\x03\x91\x03\x13\x00\x00\x1f\b" + // 0x03910313: 0x00001F08
- "\x03\x91\x03\x14\x00\x00\x1f\t" + // 0x03910314: 0x00001F09
- "\x1f\b\x03\x00\x00\x00\x1f\n" + // 0x1F080300: 0x00001F0A
- "\x1f\t\x03\x00\x00\x00\x1f\v" + // 0x1F090300: 0x00001F0B
- "\x1f\b\x03\x01\x00\x00\x1f\f" + // 0x1F080301: 0x00001F0C
- "\x1f\t\x03\x01\x00\x00\x1f\r" + // 0x1F090301: 0x00001F0D
- "\x1f\b\x03B\x00\x00\x1f\x0e" + // 0x1F080342: 0x00001F0E
- "\x1f\t\x03B\x00\x00\x1f\x0f" + // 0x1F090342: 0x00001F0F
- "\x03\xb5\x03\x13\x00\x00\x1f\x10" + // 0x03B50313: 0x00001F10
- "\x03\xb5\x03\x14\x00\x00\x1f\x11" + // 0x03B50314: 0x00001F11
- "\x1f\x10\x03\x00\x00\x00\x1f\x12" + // 0x1F100300: 0x00001F12
- "\x1f\x11\x03\x00\x00\x00\x1f\x13" + // 0x1F110300: 0x00001F13
- "\x1f\x10\x03\x01\x00\x00\x1f\x14" + // 0x1F100301: 0x00001F14
- "\x1f\x11\x03\x01\x00\x00\x1f\x15" + // 0x1F110301: 0x00001F15
- "\x03\x95\x03\x13\x00\x00\x1f\x18" + // 0x03950313: 0x00001F18
- "\x03\x95\x03\x14\x00\x00\x1f\x19" + // 0x03950314: 0x00001F19
- "\x1f\x18\x03\x00\x00\x00\x1f\x1a" + // 0x1F180300: 0x00001F1A
- "\x1f\x19\x03\x00\x00\x00\x1f\x1b" + // 0x1F190300: 0x00001F1B
- "\x1f\x18\x03\x01\x00\x00\x1f\x1c" + // 0x1F180301: 0x00001F1C
- "\x1f\x19\x03\x01\x00\x00\x1f\x1d" + // 0x1F190301: 0x00001F1D
- "\x03\xb7\x03\x13\x00\x00\x1f " + // 0x03B70313: 0x00001F20
- "\x03\xb7\x03\x14\x00\x00\x1f!" + // 0x03B70314: 0x00001F21
- "\x1f \x03\x00\x00\x00\x1f\"" + // 0x1F200300: 0x00001F22
- "\x1f!\x03\x00\x00\x00\x1f#" + // 0x1F210300: 0x00001F23
- "\x1f \x03\x01\x00\x00\x1f$" + // 0x1F200301: 0x00001F24
- "\x1f!\x03\x01\x00\x00\x1f%" + // 0x1F210301: 0x00001F25
- "\x1f \x03B\x00\x00\x1f&" + // 0x1F200342: 0x00001F26
- "\x1f!\x03B\x00\x00\x1f'" + // 0x1F210342: 0x00001F27
- "\x03\x97\x03\x13\x00\x00\x1f(" + // 0x03970313: 0x00001F28
- "\x03\x97\x03\x14\x00\x00\x1f)" + // 0x03970314: 0x00001F29
- "\x1f(\x03\x00\x00\x00\x1f*" + // 0x1F280300: 0x00001F2A
- "\x1f)\x03\x00\x00\x00\x1f+" + // 0x1F290300: 0x00001F2B
- "\x1f(\x03\x01\x00\x00\x1f," + // 0x1F280301: 0x00001F2C
- "\x1f)\x03\x01\x00\x00\x1f-" + // 0x1F290301: 0x00001F2D
- "\x1f(\x03B\x00\x00\x1f." + // 0x1F280342: 0x00001F2E
- "\x1f)\x03B\x00\x00\x1f/" + // 0x1F290342: 0x00001F2F
- "\x03\xb9\x03\x13\x00\x00\x1f0" + // 0x03B90313: 0x00001F30
- "\x03\xb9\x03\x14\x00\x00\x1f1" + // 0x03B90314: 0x00001F31
- "\x1f0\x03\x00\x00\x00\x1f2" + // 0x1F300300: 0x00001F32
- "\x1f1\x03\x00\x00\x00\x1f3" + // 0x1F310300: 0x00001F33
- "\x1f0\x03\x01\x00\x00\x1f4" + // 0x1F300301: 0x00001F34
- "\x1f1\x03\x01\x00\x00\x1f5" + // 0x1F310301: 0x00001F35
- "\x1f0\x03B\x00\x00\x1f6" + // 0x1F300342: 0x00001F36
- "\x1f1\x03B\x00\x00\x1f7" + // 0x1F310342: 0x00001F37
- "\x03\x99\x03\x13\x00\x00\x1f8" + // 0x03990313: 0x00001F38
- "\x03\x99\x03\x14\x00\x00\x1f9" + // 0x03990314: 0x00001F39
- "\x1f8\x03\x00\x00\x00\x1f:" + // 0x1F380300: 0x00001F3A
- "\x1f9\x03\x00\x00\x00\x1f;" + // 0x1F390300: 0x00001F3B
- "\x1f8\x03\x01\x00\x00\x1f<" + // 0x1F380301: 0x00001F3C
- "\x1f9\x03\x01\x00\x00\x1f=" + // 0x1F390301: 0x00001F3D
- "\x1f8\x03B\x00\x00\x1f>" + // 0x1F380342: 0x00001F3E
- "\x1f9\x03B\x00\x00\x1f?" + // 0x1F390342: 0x00001F3F
- "\x03\xbf\x03\x13\x00\x00\x1f@" + // 0x03BF0313: 0x00001F40
- "\x03\xbf\x03\x14\x00\x00\x1fA" + // 0x03BF0314: 0x00001F41
- "\x1f@\x03\x00\x00\x00\x1fB" + // 0x1F400300: 0x00001F42
- "\x1fA\x03\x00\x00\x00\x1fC" + // 0x1F410300: 0x00001F43
- "\x1f@\x03\x01\x00\x00\x1fD" + // 0x1F400301: 0x00001F44
- "\x1fA\x03\x01\x00\x00\x1fE" + // 0x1F410301: 0x00001F45
- "\x03\x9f\x03\x13\x00\x00\x1fH" + // 0x039F0313: 0x00001F48
- "\x03\x9f\x03\x14\x00\x00\x1fI" + // 0x039F0314: 0x00001F49
- "\x1fH\x03\x00\x00\x00\x1fJ" + // 0x1F480300: 0x00001F4A
- "\x1fI\x03\x00\x00\x00\x1fK" + // 0x1F490300: 0x00001F4B
- "\x1fH\x03\x01\x00\x00\x1fL" + // 0x1F480301: 0x00001F4C
- "\x1fI\x03\x01\x00\x00\x1fM" + // 0x1F490301: 0x00001F4D
- "\x03\xc5\x03\x13\x00\x00\x1fP" + // 0x03C50313: 0x00001F50
- "\x03\xc5\x03\x14\x00\x00\x1fQ" + // 0x03C50314: 0x00001F51
- "\x1fP\x03\x00\x00\x00\x1fR" + // 0x1F500300: 0x00001F52
- "\x1fQ\x03\x00\x00\x00\x1fS" + // 0x1F510300: 0x00001F53
- "\x1fP\x03\x01\x00\x00\x1fT" + // 0x1F500301: 0x00001F54
- "\x1fQ\x03\x01\x00\x00\x1fU" + // 0x1F510301: 0x00001F55
- "\x1fP\x03B\x00\x00\x1fV" + // 0x1F500342: 0x00001F56
- "\x1fQ\x03B\x00\x00\x1fW" + // 0x1F510342: 0x00001F57
- "\x03\xa5\x03\x14\x00\x00\x1fY" + // 0x03A50314: 0x00001F59
- "\x1fY\x03\x00\x00\x00\x1f[" + // 0x1F590300: 0x00001F5B
- "\x1fY\x03\x01\x00\x00\x1f]" + // 0x1F590301: 0x00001F5D
- "\x1fY\x03B\x00\x00\x1f_" + // 0x1F590342: 0x00001F5F
- "\x03\xc9\x03\x13\x00\x00\x1f`" + // 0x03C90313: 0x00001F60
- "\x03\xc9\x03\x14\x00\x00\x1fa" + // 0x03C90314: 0x00001F61
- "\x1f`\x03\x00\x00\x00\x1fb" + // 0x1F600300: 0x00001F62
- "\x1fa\x03\x00\x00\x00\x1fc" + // 0x1F610300: 0x00001F63
- "\x1f`\x03\x01\x00\x00\x1fd" + // 0x1F600301: 0x00001F64
- "\x1fa\x03\x01\x00\x00\x1fe" + // 0x1F610301: 0x00001F65
- "\x1f`\x03B\x00\x00\x1ff" + // 0x1F600342: 0x00001F66
- "\x1fa\x03B\x00\x00\x1fg" + // 0x1F610342: 0x00001F67
- "\x03\xa9\x03\x13\x00\x00\x1fh" + // 0x03A90313: 0x00001F68
- "\x03\xa9\x03\x14\x00\x00\x1fi" + // 0x03A90314: 0x00001F69
- "\x1fh\x03\x00\x00\x00\x1fj" + // 0x1F680300: 0x00001F6A
- "\x1fi\x03\x00\x00\x00\x1fk" + // 0x1F690300: 0x00001F6B
- "\x1fh\x03\x01\x00\x00\x1fl" + // 0x1F680301: 0x00001F6C
- "\x1fi\x03\x01\x00\x00\x1fm" + // 0x1F690301: 0x00001F6D
- "\x1fh\x03B\x00\x00\x1fn" + // 0x1F680342: 0x00001F6E
- "\x1fi\x03B\x00\x00\x1fo" + // 0x1F690342: 0x00001F6F
- "\x03\xb1\x03\x00\x00\x00\x1fp" + // 0x03B10300: 0x00001F70
- "\x03\xb5\x03\x00\x00\x00\x1fr" + // 0x03B50300: 0x00001F72
- "\x03\xb7\x03\x00\x00\x00\x1ft" + // 0x03B70300: 0x00001F74
- "\x03\xb9\x03\x00\x00\x00\x1fv" + // 0x03B90300: 0x00001F76
- "\x03\xbf\x03\x00\x00\x00\x1fx" + // 0x03BF0300: 0x00001F78
- "\x03\xc5\x03\x00\x00\x00\x1fz" + // 0x03C50300: 0x00001F7A
- "\x03\xc9\x03\x00\x00\x00\x1f|" + // 0x03C90300: 0x00001F7C
- "\x1f\x00\x03E\x00\x00\x1f\x80" + // 0x1F000345: 0x00001F80
- "\x1f\x01\x03E\x00\x00\x1f\x81" + // 0x1F010345: 0x00001F81
- "\x1f\x02\x03E\x00\x00\x1f\x82" + // 0x1F020345: 0x00001F82
- "\x1f\x03\x03E\x00\x00\x1f\x83" + // 0x1F030345: 0x00001F83
- "\x1f\x04\x03E\x00\x00\x1f\x84" + // 0x1F040345: 0x00001F84
- "\x1f\x05\x03E\x00\x00\x1f\x85" + // 0x1F050345: 0x00001F85
- "\x1f\x06\x03E\x00\x00\x1f\x86" + // 0x1F060345: 0x00001F86
- "\x1f\a\x03E\x00\x00\x1f\x87" + // 0x1F070345: 0x00001F87
- "\x1f\b\x03E\x00\x00\x1f\x88" + // 0x1F080345: 0x00001F88
- "\x1f\t\x03E\x00\x00\x1f\x89" + // 0x1F090345: 0x00001F89
- "\x1f\n\x03E\x00\x00\x1f\x8a" + // 0x1F0A0345: 0x00001F8A
- "\x1f\v\x03E\x00\x00\x1f\x8b" + // 0x1F0B0345: 0x00001F8B
- "\x1f\f\x03E\x00\x00\x1f\x8c" + // 0x1F0C0345: 0x00001F8C
- "\x1f\r\x03E\x00\x00\x1f\x8d" + // 0x1F0D0345: 0x00001F8D
- "\x1f\x0e\x03E\x00\x00\x1f\x8e" + // 0x1F0E0345: 0x00001F8E
- "\x1f\x0f\x03E\x00\x00\x1f\x8f" + // 0x1F0F0345: 0x00001F8F
- "\x1f \x03E\x00\x00\x1f\x90" + // 0x1F200345: 0x00001F90
- "\x1f!\x03E\x00\x00\x1f\x91" + // 0x1F210345: 0x00001F91
- "\x1f\"\x03E\x00\x00\x1f\x92" + // 0x1F220345: 0x00001F92
- "\x1f#\x03E\x00\x00\x1f\x93" + // 0x1F230345: 0x00001F93
- "\x1f$\x03E\x00\x00\x1f\x94" + // 0x1F240345: 0x00001F94
- "\x1f%\x03E\x00\x00\x1f\x95" + // 0x1F250345: 0x00001F95
- "\x1f&\x03E\x00\x00\x1f\x96" + // 0x1F260345: 0x00001F96
- "\x1f'\x03E\x00\x00\x1f\x97" + // 0x1F270345: 0x00001F97
- "\x1f(\x03E\x00\x00\x1f\x98" + // 0x1F280345: 0x00001F98
- "\x1f)\x03E\x00\x00\x1f\x99" + // 0x1F290345: 0x00001F99
- "\x1f*\x03E\x00\x00\x1f\x9a" + // 0x1F2A0345: 0x00001F9A
- "\x1f+\x03E\x00\x00\x1f\x9b" + // 0x1F2B0345: 0x00001F9B
- "\x1f,\x03E\x00\x00\x1f\x9c" + // 0x1F2C0345: 0x00001F9C
- "\x1f-\x03E\x00\x00\x1f\x9d" + // 0x1F2D0345: 0x00001F9D
- "\x1f.\x03E\x00\x00\x1f\x9e" + // 0x1F2E0345: 0x00001F9E
- "\x1f/\x03E\x00\x00\x1f\x9f" + // 0x1F2F0345: 0x00001F9F
- "\x1f`\x03E\x00\x00\x1f\xa0" + // 0x1F600345: 0x00001FA0
- "\x1fa\x03E\x00\x00\x1f\xa1" + // 0x1F610345: 0x00001FA1
- "\x1fb\x03E\x00\x00\x1f\xa2" + // 0x1F620345: 0x00001FA2
- "\x1fc\x03E\x00\x00\x1f\xa3" + // 0x1F630345: 0x00001FA3
- "\x1fd\x03E\x00\x00\x1f\xa4" + // 0x1F640345: 0x00001FA4
- "\x1fe\x03E\x00\x00\x1f\xa5" + // 0x1F650345: 0x00001FA5
- "\x1ff\x03E\x00\x00\x1f\xa6" + // 0x1F660345: 0x00001FA6
- "\x1fg\x03E\x00\x00\x1f\xa7" + // 0x1F670345: 0x00001FA7
- "\x1fh\x03E\x00\x00\x1f\xa8" + // 0x1F680345: 0x00001FA8
- "\x1fi\x03E\x00\x00\x1f\xa9" + // 0x1F690345: 0x00001FA9
- "\x1fj\x03E\x00\x00\x1f\xaa" + // 0x1F6A0345: 0x00001FAA
- "\x1fk\x03E\x00\x00\x1f\xab" + // 0x1F6B0345: 0x00001FAB
- "\x1fl\x03E\x00\x00\x1f\xac" + // 0x1F6C0345: 0x00001FAC
- "\x1fm\x03E\x00\x00\x1f\xad" + // 0x1F6D0345: 0x00001FAD
- "\x1fn\x03E\x00\x00\x1f\xae" + // 0x1F6E0345: 0x00001FAE
- "\x1fo\x03E\x00\x00\x1f\xaf" + // 0x1F6F0345: 0x00001FAF
- "\x03\xb1\x03\x06\x00\x00\x1f\xb0" + // 0x03B10306: 0x00001FB0
- "\x03\xb1\x03\x04\x00\x00\x1f\xb1" + // 0x03B10304: 0x00001FB1
- "\x1fp\x03E\x00\x00\x1f\xb2" + // 0x1F700345: 0x00001FB2
- "\x03\xb1\x03E\x00\x00\x1f\xb3" + // 0x03B10345: 0x00001FB3
- "\x03\xac\x03E\x00\x00\x1f\xb4" + // 0x03AC0345: 0x00001FB4
- "\x03\xb1\x03B\x00\x00\x1f\xb6" + // 0x03B10342: 0x00001FB6
- "\x1f\xb6\x03E\x00\x00\x1f\xb7" + // 0x1FB60345: 0x00001FB7
- "\x03\x91\x03\x06\x00\x00\x1f\xb8" + // 0x03910306: 0x00001FB8
- "\x03\x91\x03\x04\x00\x00\x1f\xb9" + // 0x03910304: 0x00001FB9
- "\x03\x91\x03\x00\x00\x00\x1f\xba" + // 0x03910300: 0x00001FBA
- "\x03\x91\x03E\x00\x00\x1f\xbc" + // 0x03910345: 0x00001FBC
- "\x00\xa8\x03B\x00\x00\x1f\xc1" + // 0x00A80342: 0x00001FC1
- "\x1ft\x03E\x00\x00\x1f\xc2" + // 0x1F740345: 0x00001FC2
- "\x03\xb7\x03E\x00\x00\x1f\xc3" + // 0x03B70345: 0x00001FC3
- "\x03\xae\x03E\x00\x00\x1f\xc4" + // 0x03AE0345: 0x00001FC4
- "\x03\xb7\x03B\x00\x00\x1f\xc6" + // 0x03B70342: 0x00001FC6
- "\x1f\xc6\x03E\x00\x00\x1f\xc7" + // 0x1FC60345: 0x00001FC7
- "\x03\x95\x03\x00\x00\x00\x1f\xc8" + // 0x03950300: 0x00001FC8
- "\x03\x97\x03\x00\x00\x00\x1f\xca" + // 0x03970300: 0x00001FCA
- "\x03\x97\x03E\x00\x00\x1f\xcc" + // 0x03970345: 0x00001FCC
- "\x1f\xbf\x03\x00\x00\x00\x1f\xcd" + // 0x1FBF0300: 0x00001FCD
- "\x1f\xbf\x03\x01\x00\x00\x1f\xce" + // 0x1FBF0301: 0x00001FCE
- "\x1f\xbf\x03B\x00\x00\x1f\xcf" + // 0x1FBF0342: 0x00001FCF
- "\x03\xb9\x03\x06\x00\x00\x1f\xd0" + // 0x03B90306: 0x00001FD0
- "\x03\xb9\x03\x04\x00\x00\x1f\xd1" + // 0x03B90304: 0x00001FD1
- "\x03\xca\x03\x00\x00\x00\x1f\xd2" + // 0x03CA0300: 0x00001FD2
- "\x03\xb9\x03B\x00\x00\x1f\xd6" + // 0x03B90342: 0x00001FD6
- "\x03\xca\x03B\x00\x00\x1f\xd7" + // 0x03CA0342: 0x00001FD7
- "\x03\x99\x03\x06\x00\x00\x1f\xd8" + // 0x03990306: 0x00001FD8
- "\x03\x99\x03\x04\x00\x00\x1f\xd9" + // 0x03990304: 0x00001FD9
- "\x03\x99\x03\x00\x00\x00\x1f\xda" + // 0x03990300: 0x00001FDA
- "\x1f\xfe\x03\x00\x00\x00\x1f\xdd" + // 0x1FFE0300: 0x00001FDD
- "\x1f\xfe\x03\x01\x00\x00\x1f\xde" + // 0x1FFE0301: 0x00001FDE
- "\x1f\xfe\x03B\x00\x00\x1f\xdf" + // 0x1FFE0342: 0x00001FDF
- "\x03\xc5\x03\x06\x00\x00\x1f\xe0" + // 0x03C50306: 0x00001FE0
- "\x03\xc5\x03\x04\x00\x00\x1f\xe1" + // 0x03C50304: 0x00001FE1
- "\x03\xcb\x03\x00\x00\x00\x1f\xe2" + // 0x03CB0300: 0x00001FE2
- "\x03\xc1\x03\x13\x00\x00\x1f\xe4" + // 0x03C10313: 0x00001FE4
- "\x03\xc1\x03\x14\x00\x00\x1f\xe5" + // 0x03C10314: 0x00001FE5
- "\x03\xc5\x03B\x00\x00\x1f\xe6" + // 0x03C50342: 0x00001FE6
- "\x03\xcb\x03B\x00\x00\x1f\xe7" + // 0x03CB0342: 0x00001FE7
- "\x03\xa5\x03\x06\x00\x00\x1f\xe8" + // 0x03A50306: 0x00001FE8
- "\x03\xa5\x03\x04\x00\x00\x1f\xe9" + // 0x03A50304: 0x00001FE9
- "\x03\xa5\x03\x00\x00\x00\x1f\xea" + // 0x03A50300: 0x00001FEA
- "\x03\xa1\x03\x14\x00\x00\x1f\xec" + // 0x03A10314: 0x00001FEC
- "\x00\xa8\x03\x00\x00\x00\x1f\xed" + // 0x00A80300: 0x00001FED
- "\x1f|\x03E\x00\x00\x1f\xf2" + // 0x1F7C0345: 0x00001FF2
- "\x03\xc9\x03E\x00\x00\x1f\xf3" + // 0x03C90345: 0x00001FF3
- "\x03\xce\x03E\x00\x00\x1f\xf4" + // 0x03CE0345: 0x00001FF4
- "\x03\xc9\x03B\x00\x00\x1f\xf6" + // 0x03C90342: 0x00001FF6
- "\x1f\xf6\x03E\x00\x00\x1f\xf7" + // 0x1FF60345: 0x00001FF7
- "\x03\x9f\x03\x00\x00\x00\x1f\xf8" + // 0x039F0300: 0x00001FF8
- "\x03\xa9\x03\x00\x00\x00\x1f\xfa" + // 0x03A90300: 0x00001FFA
- "\x03\xa9\x03E\x00\x00\x1f\xfc" + // 0x03A90345: 0x00001FFC
- "!\x90\x038\x00\x00!\x9a" + // 0x21900338: 0x0000219A
- "!\x92\x038\x00\x00!\x9b" + // 0x21920338: 0x0000219B
- "!\x94\x038\x00\x00!\xae" + // 0x21940338: 0x000021AE
- "!\xd0\x038\x00\x00!\xcd" + // 0x21D00338: 0x000021CD
- "!\xd4\x038\x00\x00!\xce" + // 0x21D40338: 0x000021CE
- "!\xd2\x038\x00\x00!\xcf" + // 0x21D20338: 0x000021CF
- "\"\x03\x038\x00\x00\"\x04" + // 0x22030338: 0x00002204
- "\"\b\x038\x00\x00\"\t" + // 0x22080338: 0x00002209
- "\"\v\x038\x00\x00\"\f" + // 0x220B0338: 0x0000220C
- "\"#\x038\x00\x00\"$" + // 0x22230338: 0x00002224
- "\"%\x038\x00\x00\"&" + // 0x22250338: 0x00002226
- "\"<\x038\x00\x00\"A" + // 0x223C0338: 0x00002241
- "\"C\x038\x00\x00\"D" + // 0x22430338: 0x00002244
- "\"E\x038\x00\x00\"G" + // 0x22450338: 0x00002247
- "\"H\x038\x00\x00\"I" + // 0x22480338: 0x00002249
- "\x00=\x038\x00\x00\"`" + // 0x003D0338: 0x00002260
- "\"a\x038\x00\x00\"b" + // 0x22610338: 0x00002262
- "\"M\x038\x00\x00\"m" + // 0x224D0338: 0x0000226D
- "\x00<\x038\x00\x00\"n" + // 0x003C0338: 0x0000226E
- "\x00>\x038\x00\x00\"o" + // 0x003E0338: 0x0000226F
- "\"d\x038\x00\x00\"p" + // 0x22640338: 0x00002270
- "\"e\x038\x00\x00\"q" + // 0x22650338: 0x00002271
- "\"r\x038\x00\x00\"t" + // 0x22720338: 0x00002274
- "\"s\x038\x00\x00\"u" + // 0x22730338: 0x00002275
- "\"v\x038\x00\x00\"x" + // 0x22760338: 0x00002278
- "\"w\x038\x00\x00\"y" + // 0x22770338: 0x00002279
- "\"z\x038\x00\x00\"\x80" + // 0x227A0338: 0x00002280
- "\"{\x038\x00\x00\"\x81" + // 0x227B0338: 0x00002281
- "\"\x82\x038\x00\x00\"\x84" + // 0x22820338: 0x00002284
- "\"\x83\x038\x00\x00\"\x85" + // 0x22830338: 0x00002285
- "\"\x86\x038\x00\x00\"\x88" + // 0x22860338: 0x00002288
- "\"\x87\x038\x00\x00\"\x89" + // 0x22870338: 0x00002289
- "\"\xa2\x038\x00\x00\"\xac" + // 0x22A20338: 0x000022AC
- "\"\xa8\x038\x00\x00\"\xad" + // 0x22A80338: 0x000022AD
- "\"\xa9\x038\x00\x00\"\xae" + // 0x22A90338: 0x000022AE
- "\"\xab\x038\x00\x00\"\xaf" + // 0x22AB0338: 0x000022AF
- "\"|\x038\x00\x00\"\xe0" + // 0x227C0338: 0x000022E0
- "\"}\x038\x00\x00\"\xe1" + // 0x227D0338: 0x000022E1
- "\"\x91\x038\x00\x00\"\xe2" + // 0x22910338: 0x000022E2
- "\"\x92\x038\x00\x00\"\xe3" + // 0x22920338: 0x000022E3
- "\"\xb2\x038\x00\x00\"\xea" + // 0x22B20338: 0x000022EA
- "\"\xb3\x038\x00\x00\"\xeb" + // 0x22B30338: 0x000022EB
- "\"\xb4\x038\x00\x00\"\xec" + // 0x22B40338: 0x000022EC
- "\"\xb5\x038\x00\x00\"\xed" + // 0x22B50338: 0x000022ED
- "0K0\x99\x00\x000L" + // 0x304B3099: 0x0000304C
- "0M0\x99\x00\x000N" + // 0x304D3099: 0x0000304E
- "0O0\x99\x00\x000P" + // 0x304F3099: 0x00003050
- "0Q0\x99\x00\x000R" + // 0x30513099: 0x00003052
- "0S0\x99\x00\x000T" + // 0x30533099: 0x00003054
- "0U0\x99\x00\x000V" + // 0x30553099: 0x00003056
- "0W0\x99\x00\x000X" + // 0x30573099: 0x00003058
- "0Y0\x99\x00\x000Z" + // 0x30593099: 0x0000305A
- "0[0\x99\x00\x000\\" + // 0x305B3099: 0x0000305C
- "0]0\x99\x00\x000^" + // 0x305D3099: 0x0000305E
- "0_0\x99\x00\x000`" + // 0x305F3099: 0x00003060
- "0a0\x99\x00\x000b" + // 0x30613099: 0x00003062
- "0d0\x99\x00\x000e" + // 0x30643099: 0x00003065
- "0f0\x99\x00\x000g" + // 0x30663099: 0x00003067
- "0h0\x99\x00\x000i" + // 0x30683099: 0x00003069
- "0o0\x99\x00\x000p" + // 0x306F3099: 0x00003070
- "0o0\x9a\x00\x000q" + // 0x306F309A: 0x00003071
- "0r0\x99\x00\x000s" + // 0x30723099: 0x00003073
- "0r0\x9a\x00\x000t" + // 0x3072309A: 0x00003074
- "0u0\x99\x00\x000v" + // 0x30753099: 0x00003076
- "0u0\x9a\x00\x000w" + // 0x3075309A: 0x00003077
- "0x0\x99\x00\x000y" + // 0x30783099: 0x00003079
- "0x0\x9a\x00\x000z" + // 0x3078309A: 0x0000307A
- "0{0\x99\x00\x000|" + // 0x307B3099: 0x0000307C
- "0{0\x9a\x00\x000}" + // 0x307B309A: 0x0000307D
- "0F0\x99\x00\x000\x94" + // 0x30463099: 0x00003094
- "0\x9d0\x99\x00\x000\x9e" + // 0x309D3099: 0x0000309E
- "0\xab0\x99\x00\x000\xac" + // 0x30AB3099: 0x000030AC
- "0\xad0\x99\x00\x000\xae" + // 0x30AD3099: 0x000030AE
- "0\xaf0\x99\x00\x000\xb0" + // 0x30AF3099: 0x000030B0
- "0\xb10\x99\x00\x000\xb2" + // 0x30B13099: 0x000030B2
- "0\xb30\x99\x00\x000\xb4" + // 0x30B33099: 0x000030B4
- "0\xb50\x99\x00\x000\xb6" + // 0x30B53099: 0x000030B6
- "0\xb70\x99\x00\x000\xb8" + // 0x30B73099: 0x000030B8
- "0\xb90\x99\x00\x000\xba" + // 0x30B93099: 0x000030BA
- "0\xbb0\x99\x00\x000\xbc" + // 0x30BB3099: 0x000030BC
- "0\xbd0\x99\x00\x000\xbe" + // 0x30BD3099: 0x000030BE
- "0\xbf0\x99\x00\x000\xc0" + // 0x30BF3099: 0x000030C0
- "0\xc10\x99\x00\x000\xc2" + // 0x30C13099: 0x000030C2
- "0\xc40\x99\x00\x000\xc5" + // 0x30C43099: 0x000030C5
- "0\xc60\x99\x00\x000\xc7" + // 0x30C63099: 0x000030C7
- "0\xc80\x99\x00\x000\xc9" + // 0x30C83099: 0x000030C9
- "0\xcf0\x99\x00\x000\xd0" + // 0x30CF3099: 0x000030D0
- "0\xcf0\x9a\x00\x000\xd1" + // 0x30CF309A: 0x000030D1
- "0\xd20\x99\x00\x000\xd3" + // 0x30D23099: 0x000030D3
- "0\xd20\x9a\x00\x000\xd4" + // 0x30D2309A: 0x000030D4
- "0\xd50\x99\x00\x000\xd6" + // 0x30D53099: 0x000030D6
- "0\xd50\x9a\x00\x000\xd7" + // 0x30D5309A: 0x000030D7
- "0\xd80\x99\x00\x000\xd9" + // 0x30D83099: 0x000030D9
- "0\xd80\x9a\x00\x000\xda" + // 0x30D8309A: 0x000030DA
- "0\xdb0\x99\x00\x000\xdc" + // 0x30DB3099: 0x000030DC
- "0\xdb0\x9a\x00\x000\xdd" + // 0x30DB309A: 0x000030DD
- "0\xa60\x99\x00\x000\xf4" + // 0x30A63099: 0x000030F4
- "0\xef0\x99\x00\x000\xf7" + // 0x30EF3099: 0x000030F7
- "0\xf00\x99\x00\x000\xf8" + // 0x30F03099: 0x000030F8
- "0\xf10\x99\x00\x000\xf9" + // 0x30F13099: 0x000030F9
- "0\xf20\x99\x00\x000\xfa" + // 0x30F23099: 0x000030FA
- "0\xfd0\x99\x00\x000\xfe" + // 0x30FD3099: 0x000030FE
- "\x10\x99\x10\xba\x00\x01\x10\x9a" + // 0x109910BA: 0x0001109A
- "\x10\x9b\x10\xba\x00\x01\x10\x9c" + // 0x109B10BA: 0x0001109C
- "\x10\xa5\x10\xba\x00\x01\x10\xab" + // 0x10A510BA: 0x000110AB
- "\x111\x11'\x00\x01\x11." + // 0x11311127: 0x0001112E
- "\x112\x11'\x00\x01\x11/" + // 0x11321127: 0x0001112F
- "\x13G\x13>\x00\x01\x13K" + // 0x1347133E: 0x0001134B
- "\x13G\x13W\x00\x01\x13L" + // 0x13471357: 0x0001134C
- "\x14\xb9\x14\xba\x00\x01\x14\xbb" + // 0x14B914BA: 0x000114BB
- "\x14\xb9\x14\xb0\x00\x01\x14\xbc" + // 0x14B914B0: 0x000114BC
- "\x14\xb9\x14\xbd\x00\x01\x14\xbe" + // 0x14B914BD: 0x000114BE
- "\x15\xb8\x15\xaf\x00\x01\x15\xba" + // 0x15B815AF: 0x000115BA
- "\x15\xb9\x15\xaf\x00\x01\x15\xbb" + // 0x15B915AF: 0x000115BB
- ""
- // Total size of tables: 53KB (54226 bytes)
diff --git a/vendor/golang.org/x/text/unicode/norm/tables11.0.0.go b/vendor/golang.org/x/text/unicode/norm/tables11.0.0.go
deleted file mode 100644
index eb73ecc3..00000000
--- a/vendor/golang.org/x/text/unicode/norm/tables11.0.0.go
+++ /dev/null
@@ -1,7693 +0,0 @@
-// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
-
-//go:build go1.13 && !go1.14
-
-package norm
-
-import "sync"
-
-const (
- // Version is the Unicode edition from which the tables are derived.
- Version = "11.0.0"
-
- // MaxTransformChunkSize indicates the maximum number of bytes that Transform
- // may need to write atomically for any Form. Making a destination buffer at
- // least this size ensures that Transform can always make progress and that
- // the user does not need to grow the buffer on an ErrShortDst.
- MaxTransformChunkSize = 35 + maxNonStarters*4
-)
-
-var ccc = [55]uint8{
- 0, 1, 7, 8, 9, 10, 11, 12,
- 13, 14, 15, 16, 17, 18, 19, 20,
- 21, 22, 23, 24, 25, 26, 27, 28,
- 29, 30, 31, 32, 33, 34, 35, 36,
- 84, 91, 103, 107, 118, 122, 129, 130,
- 132, 202, 214, 216, 218, 220, 222, 224,
- 226, 228, 230, 232, 233, 234, 240,
-}
-
-const (
- firstMulti = 0x186D
- firstCCC = 0x2C9E
- endMulti = 0x2F60
- firstLeadingCCC = 0x49AE
- firstCCCZeroExcept = 0x4A78
- firstStarterWithNLead = 0x4A9F
- lastDecomp = 0x4AA1
- maxDecomp = 0x8000
-)
-
-// decomps: 19105 bytes
-var decomps = [...]byte{
- // Bytes 0 - 3f
- 0x00, 0x41, 0x20, 0x41, 0x21, 0x41, 0x22, 0x41,
- 0x23, 0x41, 0x24, 0x41, 0x25, 0x41, 0x26, 0x41,
- 0x27, 0x41, 0x28, 0x41, 0x29, 0x41, 0x2A, 0x41,
- 0x2B, 0x41, 0x2C, 0x41, 0x2D, 0x41, 0x2E, 0x41,
- 0x2F, 0x41, 0x30, 0x41, 0x31, 0x41, 0x32, 0x41,
- 0x33, 0x41, 0x34, 0x41, 0x35, 0x41, 0x36, 0x41,
- 0x37, 0x41, 0x38, 0x41, 0x39, 0x41, 0x3A, 0x41,
- 0x3B, 0x41, 0x3C, 0x41, 0x3D, 0x41, 0x3E, 0x41,
- // Bytes 40 - 7f
- 0x3F, 0x41, 0x40, 0x41, 0x41, 0x41, 0x42, 0x41,
- 0x43, 0x41, 0x44, 0x41, 0x45, 0x41, 0x46, 0x41,
- 0x47, 0x41, 0x48, 0x41, 0x49, 0x41, 0x4A, 0x41,
- 0x4B, 0x41, 0x4C, 0x41, 0x4D, 0x41, 0x4E, 0x41,
- 0x4F, 0x41, 0x50, 0x41, 0x51, 0x41, 0x52, 0x41,
- 0x53, 0x41, 0x54, 0x41, 0x55, 0x41, 0x56, 0x41,
- 0x57, 0x41, 0x58, 0x41, 0x59, 0x41, 0x5A, 0x41,
- 0x5B, 0x41, 0x5C, 0x41, 0x5D, 0x41, 0x5E, 0x41,
- // Bytes 80 - bf
- 0x5F, 0x41, 0x60, 0x41, 0x61, 0x41, 0x62, 0x41,
- 0x63, 0x41, 0x64, 0x41, 0x65, 0x41, 0x66, 0x41,
- 0x67, 0x41, 0x68, 0x41, 0x69, 0x41, 0x6A, 0x41,
- 0x6B, 0x41, 0x6C, 0x41, 0x6D, 0x41, 0x6E, 0x41,
- 0x6F, 0x41, 0x70, 0x41, 0x71, 0x41, 0x72, 0x41,
- 0x73, 0x41, 0x74, 0x41, 0x75, 0x41, 0x76, 0x41,
- 0x77, 0x41, 0x78, 0x41, 0x79, 0x41, 0x7A, 0x41,
- 0x7B, 0x41, 0x7C, 0x41, 0x7D, 0x41, 0x7E, 0x42,
- // Bytes c0 - ff
- 0xC2, 0xA2, 0x42, 0xC2, 0xA3, 0x42, 0xC2, 0xA5,
- 0x42, 0xC2, 0xA6, 0x42, 0xC2, 0xAC, 0x42, 0xC2,
- 0xB7, 0x42, 0xC3, 0x86, 0x42, 0xC3, 0xB0, 0x42,
- 0xC4, 0xA6, 0x42, 0xC4, 0xA7, 0x42, 0xC4, 0xB1,
- 0x42, 0xC5, 0x8B, 0x42, 0xC5, 0x93, 0x42, 0xC6,
- 0x8E, 0x42, 0xC6, 0x90, 0x42, 0xC6, 0xAB, 0x42,
- 0xC8, 0xA2, 0x42, 0xC8, 0xB7, 0x42, 0xC9, 0x90,
- 0x42, 0xC9, 0x91, 0x42, 0xC9, 0x92, 0x42, 0xC9,
- // Bytes 100 - 13f
- 0x94, 0x42, 0xC9, 0x95, 0x42, 0xC9, 0x99, 0x42,
- 0xC9, 0x9B, 0x42, 0xC9, 0x9C, 0x42, 0xC9, 0x9F,
- 0x42, 0xC9, 0xA1, 0x42, 0xC9, 0xA3, 0x42, 0xC9,
- 0xA5, 0x42, 0xC9, 0xA6, 0x42, 0xC9, 0xA8, 0x42,
- 0xC9, 0xA9, 0x42, 0xC9, 0xAA, 0x42, 0xC9, 0xAB,
- 0x42, 0xC9, 0xAD, 0x42, 0xC9, 0xAF, 0x42, 0xC9,
- 0xB0, 0x42, 0xC9, 0xB1, 0x42, 0xC9, 0xB2, 0x42,
- 0xC9, 0xB3, 0x42, 0xC9, 0xB4, 0x42, 0xC9, 0xB5,
- // Bytes 140 - 17f
- 0x42, 0xC9, 0xB8, 0x42, 0xC9, 0xB9, 0x42, 0xC9,
- 0xBB, 0x42, 0xCA, 0x81, 0x42, 0xCA, 0x82, 0x42,
- 0xCA, 0x83, 0x42, 0xCA, 0x89, 0x42, 0xCA, 0x8A,
- 0x42, 0xCA, 0x8B, 0x42, 0xCA, 0x8C, 0x42, 0xCA,
- 0x90, 0x42, 0xCA, 0x91, 0x42, 0xCA, 0x92, 0x42,
- 0xCA, 0x95, 0x42, 0xCA, 0x9D, 0x42, 0xCA, 0x9F,
- 0x42, 0xCA, 0xB9, 0x42, 0xCE, 0x91, 0x42, 0xCE,
- 0x92, 0x42, 0xCE, 0x93, 0x42, 0xCE, 0x94, 0x42,
- // Bytes 180 - 1bf
- 0xCE, 0x95, 0x42, 0xCE, 0x96, 0x42, 0xCE, 0x97,
- 0x42, 0xCE, 0x98, 0x42, 0xCE, 0x99, 0x42, 0xCE,
- 0x9A, 0x42, 0xCE, 0x9B, 0x42, 0xCE, 0x9C, 0x42,
- 0xCE, 0x9D, 0x42, 0xCE, 0x9E, 0x42, 0xCE, 0x9F,
- 0x42, 0xCE, 0xA0, 0x42, 0xCE, 0xA1, 0x42, 0xCE,
- 0xA3, 0x42, 0xCE, 0xA4, 0x42, 0xCE, 0xA5, 0x42,
- 0xCE, 0xA6, 0x42, 0xCE, 0xA7, 0x42, 0xCE, 0xA8,
- 0x42, 0xCE, 0xA9, 0x42, 0xCE, 0xB1, 0x42, 0xCE,
- // Bytes 1c0 - 1ff
- 0xB2, 0x42, 0xCE, 0xB3, 0x42, 0xCE, 0xB4, 0x42,
- 0xCE, 0xB5, 0x42, 0xCE, 0xB6, 0x42, 0xCE, 0xB7,
- 0x42, 0xCE, 0xB8, 0x42, 0xCE, 0xB9, 0x42, 0xCE,
- 0xBA, 0x42, 0xCE, 0xBB, 0x42, 0xCE, 0xBC, 0x42,
- 0xCE, 0xBD, 0x42, 0xCE, 0xBE, 0x42, 0xCE, 0xBF,
- 0x42, 0xCF, 0x80, 0x42, 0xCF, 0x81, 0x42, 0xCF,
- 0x82, 0x42, 0xCF, 0x83, 0x42, 0xCF, 0x84, 0x42,
- 0xCF, 0x85, 0x42, 0xCF, 0x86, 0x42, 0xCF, 0x87,
- // Bytes 200 - 23f
- 0x42, 0xCF, 0x88, 0x42, 0xCF, 0x89, 0x42, 0xCF,
- 0x9C, 0x42, 0xCF, 0x9D, 0x42, 0xD0, 0xBD, 0x42,
- 0xD1, 0x8A, 0x42, 0xD1, 0x8C, 0x42, 0xD7, 0x90,
- 0x42, 0xD7, 0x91, 0x42, 0xD7, 0x92, 0x42, 0xD7,
- 0x93, 0x42, 0xD7, 0x94, 0x42, 0xD7, 0x9B, 0x42,
- 0xD7, 0x9C, 0x42, 0xD7, 0x9D, 0x42, 0xD7, 0xA2,
- 0x42, 0xD7, 0xA8, 0x42, 0xD7, 0xAA, 0x42, 0xD8,
- 0xA1, 0x42, 0xD8, 0xA7, 0x42, 0xD8, 0xA8, 0x42,
- // Bytes 240 - 27f
- 0xD8, 0xA9, 0x42, 0xD8, 0xAA, 0x42, 0xD8, 0xAB,
- 0x42, 0xD8, 0xAC, 0x42, 0xD8, 0xAD, 0x42, 0xD8,
- 0xAE, 0x42, 0xD8, 0xAF, 0x42, 0xD8, 0xB0, 0x42,
- 0xD8, 0xB1, 0x42, 0xD8, 0xB2, 0x42, 0xD8, 0xB3,
- 0x42, 0xD8, 0xB4, 0x42, 0xD8, 0xB5, 0x42, 0xD8,
- 0xB6, 0x42, 0xD8, 0xB7, 0x42, 0xD8, 0xB8, 0x42,
- 0xD8, 0xB9, 0x42, 0xD8, 0xBA, 0x42, 0xD9, 0x81,
- 0x42, 0xD9, 0x82, 0x42, 0xD9, 0x83, 0x42, 0xD9,
- // Bytes 280 - 2bf
- 0x84, 0x42, 0xD9, 0x85, 0x42, 0xD9, 0x86, 0x42,
- 0xD9, 0x87, 0x42, 0xD9, 0x88, 0x42, 0xD9, 0x89,
- 0x42, 0xD9, 0x8A, 0x42, 0xD9, 0xAE, 0x42, 0xD9,
- 0xAF, 0x42, 0xD9, 0xB1, 0x42, 0xD9, 0xB9, 0x42,
- 0xD9, 0xBA, 0x42, 0xD9, 0xBB, 0x42, 0xD9, 0xBE,
- 0x42, 0xD9, 0xBF, 0x42, 0xDA, 0x80, 0x42, 0xDA,
- 0x83, 0x42, 0xDA, 0x84, 0x42, 0xDA, 0x86, 0x42,
- 0xDA, 0x87, 0x42, 0xDA, 0x88, 0x42, 0xDA, 0x8C,
- // Bytes 2c0 - 2ff
- 0x42, 0xDA, 0x8D, 0x42, 0xDA, 0x8E, 0x42, 0xDA,
- 0x91, 0x42, 0xDA, 0x98, 0x42, 0xDA, 0xA1, 0x42,
- 0xDA, 0xA4, 0x42, 0xDA, 0xA6, 0x42, 0xDA, 0xA9,
- 0x42, 0xDA, 0xAD, 0x42, 0xDA, 0xAF, 0x42, 0xDA,
- 0xB1, 0x42, 0xDA, 0xB3, 0x42, 0xDA, 0xBA, 0x42,
- 0xDA, 0xBB, 0x42, 0xDA, 0xBE, 0x42, 0xDB, 0x81,
- 0x42, 0xDB, 0x85, 0x42, 0xDB, 0x86, 0x42, 0xDB,
- 0x87, 0x42, 0xDB, 0x88, 0x42, 0xDB, 0x89, 0x42,
- // Bytes 300 - 33f
- 0xDB, 0x8B, 0x42, 0xDB, 0x8C, 0x42, 0xDB, 0x90,
- 0x42, 0xDB, 0x92, 0x43, 0xE0, 0xBC, 0x8B, 0x43,
- 0xE1, 0x83, 0x9C, 0x43, 0xE1, 0x84, 0x80, 0x43,
- 0xE1, 0x84, 0x81, 0x43, 0xE1, 0x84, 0x82, 0x43,
- 0xE1, 0x84, 0x83, 0x43, 0xE1, 0x84, 0x84, 0x43,
- 0xE1, 0x84, 0x85, 0x43, 0xE1, 0x84, 0x86, 0x43,
- 0xE1, 0x84, 0x87, 0x43, 0xE1, 0x84, 0x88, 0x43,
- 0xE1, 0x84, 0x89, 0x43, 0xE1, 0x84, 0x8A, 0x43,
- // Bytes 340 - 37f
- 0xE1, 0x84, 0x8B, 0x43, 0xE1, 0x84, 0x8C, 0x43,
- 0xE1, 0x84, 0x8D, 0x43, 0xE1, 0x84, 0x8E, 0x43,
- 0xE1, 0x84, 0x8F, 0x43, 0xE1, 0x84, 0x90, 0x43,
- 0xE1, 0x84, 0x91, 0x43, 0xE1, 0x84, 0x92, 0x43,
- 0xE1, 0x84, 0x94, 0x43, 0xE1, 0x84, 0x95, 0x43,
- 0xE1, 0x84, 0x9A, 0x43, 0xE1, 0x84, 0x9C, 0x43,
- 0xE1, 0x84, 0x9D, 0x43, 0xE1, 0x84, 0x9E, 0x43,
- 0xE1, 0x84, 0xA0, 0x43, 0xE1, 0x84, 0xA1, 0x43,
- // Bytes 380 - 3bf
- 0xE1, 0x84, 0xA2, 0x43, 0xE1, 0x84, 0xA3, 0x43,
- 0xE1, 0x84, 0xA7, 0x43, 0xE1, 0x84, 0xA9, 0x43,
- 0xE1, 0x84, 0xAB, 0x43, 0xE1, 0x84, 0xAC, 0x43,
- 0xE1, 0x84, 0xAD, 0x43, 0xE1, 0x84, 0xAE, 0x43,
- 0xE1, 0x84, 0xAF, 0x43, 0xE1, 0x84, 0xB2, 0x43,
- 0xE1, 0x84, 0xB6, 0x43, 0xE1, 0x85, 0x80, 0x43,
- 0xE1, 0x85, 0x87, 0x43, 0xE1, 0x85, 0x8C, 0x43,
- 0xE1, 0x85, 0x97, 0x43, 0xE1, 0x85, 0x98, 0x43,
- // Bytes 3c0 - 3ff
- 0xE1, 0x85, 0x99, 0x43, 0xE1, 0x85, 0xA0, 0x43,
- 0xE1, 0x86, 0x84, 0x43, 0xE1, 0x86, 0x85, 0x43,
- 0xE1, 0x86, 0x88, 0x43, 0xE1, 0x86, 0x91, 0x43,
- 0xE1, 0x86, 0x92, 0x43, 0xE1, 0x86, 0x94, 0x43,
- 0xE1, 0x86, 0x9E, 0x43, 0xE1, 0x86, 0xA1, 0x43,
- 0xE1, 0x87, 0x87, 0x43, 0xE1, 0x87, 0x88, 0x43,
- 0xE1, 0x87, 0x8C, 0x43, 0xE1, 0x87, 0x8E, 0x43,
- 0xE1, 0x87, 0x93, 0x43, 0xE1, 0x87, 0x97, 0x43,
- // Bytes 400 - 43f
- 0xE1, 0x87, 0x99, 0x43, 0xE1, 0x87, 0x9D, 0x43,
- 0xE1, 0x87, 0x9F, 0x43, 0xE1, 0x87, 0xB1, 0x43,
- 0xE1, 0x87, 0xB2, 0x43, 0xE1, 0xB4, 0x82, 0x43,
- 0xE1, 0xB4, 0x96, 0x43, 0xE1, 0xB4, 0x97, 0x43,
- 0xE1, 0xB4, 0x9C, 0x43, 0xE1, 0xB4, 0x9D, 0x43,
- 0xE1, 0xB4, 0xA5, 0x43, 0xE1, 0xB5, 0xBB, 0x43,
- 0xE1, 0xB6, 0x85, 0x43, 0xE2, 0x80, 0x82, 0x43,
- 0xE2, 0x80, 0x83, 0x43, 0xE2, 0x80, 0x90, 0x43,
- // Bytes 440 - 47f
- 0xE2, 0x80, 0x93, 0x43, 0xE2, 0x80, 0x94, 0x43,
- 0xE2, 0x82, 0xA9, 0x43, 0xE2, 0x86, 0x90, 0x43,
- 0xE2, 0x86, 0x91, 0x43, 0xE2, 0x86, 0x92, 0x43,
- 0xE2, 0x86, 0x93, 0x43, 0xE2, 0x88, 0x82, 0x43,
- 0xE2, 0x88, 0x87, 0x43, 0xE2, 0x88, 0x91, 0x43,
- 0xE2, 0x88, 0x92, 0x43, 0xE2, 0x94, 0x82, 0x43,
- 0xE2, 0x96, 0xA0, 0x43, 0xE2, 0x97, 0x8B, 0x43,
- 0xE2, 0xA6, 0x85, 0x43, 0xE2, 0xA6, 0x86, 0x43,
- // Bytes 480 - 4bf
- 0xE2, 0xB5, 0xA1, 0x43, 0xE3, 0x80, 0x81, 0x43,
- 0xE3, 0x80, 0x82, 0x43, 0xE3, 0x80, 0x88, 0x43,
- 0xE3, 0x80, 0x89, 0x43, 0xE3, 0x80, 0x8A, 0x43,
- 0xE3, 0x80, 0x8B, 0x43, 0xE3, 0x80, 0x8C, 0x43,
- 0xE3, 0x80, 0x8D, 0x43, 0xE3, 0x80, 0x8E, 0x43,
- 0xE3, 0x80, 0x8F, 0x43, 0xE3, 0x80, 0x90, 0x43,
- 0xE3, 0x80, 0x91, 0x43, 0xE3, 0x80, 0x92, 0x43,
- 0xE3, 0x80, 0x94, 0x43, 0xE3, 0x80, 0x95, 0x43,
- // Bytes 4c0 - 4ff
- 0xE3, 0x80, 0x96, 0x43, 0xE3, 0x80, 0x97, 0x43,
- 0xE3, 0x82, 0xA1, 0x43, 0xE3, 0x82, 0xA2, 0x43,
- 0xE3, 0x82, 0xA3, 0x43, 0xE3, 0x82, 0xA4, 0x43,
- 0xE3, 0x82, 0xA5, 0x43, 0xE3, 0x82, 0xA6, 0x43,
- 0xE3, 0x82, 0xA7, 0x43, 0xE3, 0x82, 0xA8, 0x43,
- 0xE3, 0x82, 0xA9, 0x43, 0xE3, 0x82, 0xAA, 0x43,
- 0xE3, 0x82, 0xAB, 0x43, 0xE3, 0x82, 0xAD, 0x43,
- 0xE3, 0x82, 0xAF, 0x43, 0xE3, 0x82, 0xB1, 0x43,
- // Bytes 500 - 53f
- 0xE3, 0x82, 0xB3, 0x43, 0xE3, 0x82, 0xB5, 0x43,
- 0xE3, 0x82, 0xB7, 0x43, 0xE3, 0x82, 0xB9, 0x43,
- 0xE3, 0x82, 0xBB, 0x43, 0xE3, 0x82, 0xBD, 0x43,
- 0xE3, 0x82, 0xBF, 0x43, 0xE3, 0x83, 0x81, 0x43,
- 0xE3, 0x83, 0x83, 0x43, 0xE3, 0x83, 0x84, 0x43,
- 0xE3, 0x83, 0x86, 0x43, 0xE3, 0x83, 0x88, 0x43,
- 0xE3, 0x83, 0x8A, 0x43, 0xE3, 0x83, 0x8B, 0x43,
- 0xE3, 0x83, 0x8C, 0x43, 0xE3, 0x83, 0x8D, 0x43,
- // Bytes 540 - 57f
- 0xE3, 0x83, 0x8E, 0x43, 0xE3, 0x83, 0x8F, 0x43,
- 0xE3, 0x83, 0x92, 0x43, 0xE3, 0x83, 0x95, 0x43,
- 0xE3, 0x83, 0x98, 0x43, 0xE3, 0x83, 0x9B, 0x43,
- 0xE3, 0x83, 0x9E, 0x43, 0xE3, 0x83, 0x9F, 0x43,
- 0xE3, 0x83, 0xA0, 0x43, 0xE3, 0x83, 0xA1, 0x43,
- 0xE3, 0x83, 0xA2, 0x43, 0xE3, 0x83, 0xA3, 0x43,
- 0xE3, 0x83, 0xA4, 0x43, 0xE3, 0x83, 0xA5, 0x43,
- 0xE3, 0x83, 0xA6, 0x43, 0xE3, 0x83, 0xA7, 0x43,
- // Bytes 580 - 5bf
- 0xE3, 0x83, 0xA8, 0x43, 0xE3, 0x83, 0xA9, 0x43,
- 0xE3, 0x83, 0xAA, 0x43, 0xE3, 0x83, 0xAB, 0x43,
- 0xE3, 0x83, 0xAC, 0x43, 0xE3, 0x83, 0xAD, 0x43,
- 0xE3, 0x83, 0xAF, 0x43, 0xE3, 0x83, 0xB0, 0x43,
- 0xE3, 0x83, 0xB1, 0x43, 0xE3, 0x83, 0xB2, 0x43,
- 0xE3, 0x83, 0xB3, 0x43, 0xE3, 0x83, 0xBB, 0x43,
- 0xE3, 0x83, 0xBC, 0x43, 0xE3, 0x92, 0x9E, 0x43,
- 0xE3, 0x92, 0xB9, 0x43, 0xE3, 0x92, 0xBB, 0x43,
- // Bytes 5c0 - 5ff
- 0xE3, 0x93, 0x9F, 0x43, 0xE3, 0x94, 0x95, 0x43,
- 0xE3, 0x9B, 0xAE, 0x43, 0xE3, 0x9B, 0xBC, 0x43,
- 0xE3, 0x9E, 0x81, 0x43, 0xE3, 0xA0, 0xAF, 0x43,
- 0xE3, 0xA1, 0xA2, 0x43, 0xE3, 0xA1, 0xBC, 0x43,
- 0xE3, 0xA3, 0x87, 0x43, 0xE3, 0xA3, 0xA3, 0x43,
- 0xE3, 0xA4, 0x9C, 0x43, 0xE3, 0xA4, 0xBA, 0x43,
- 0xE3, 0xA8, 0xAE, 0x43, 0xE3, 0xA9, 0xAC, 0x43,
- 0xE3, 0xAB, 0xA4, 0x43, 0xE3, 0xAC, 0x88, 0x43,
- // Bytes 600 - 63f
- 0xE3, 0xAC, 0x99, 0x43, 0xE3, 0xAD, 0x89, 0x43,
- 0xE3, 0xAE, 0x9D, 0x43, 0xE3, 0xB0, 0x98, 0x43,
- 0xE3, 0xB1, 0x8E, 0x43, 0xE3, 0xB4, 0xB3, 0x43,
- 0xE3, 0xB6, 0x96, 0x43, 0xE3, 0xBA, 0xAC, 0x43,
- 0xE3, 0xBA, 0xB8, 0x43, 0xE3, 0xBC, 0x9B, 0x43,
- 0xE3, 0xBF, 0xBC, 0x43, 0xE4, 0x80, 0x88, 0x43,
- 0xE4, 0x80, 0x98, 0x43, 0xE4, 0x80, 0xB9, 0x43,
- 0xE4, 0x81, 0x86, 0x43, 0xE4, 0x82, 0x96, 0x43,
- // Bytes 640 - 67f
- 0xE4, 0x83, 0xA3, 0x43, 0xE4, 0x84, 0xAF, 0x43,
- 0xE4, 0x88, 0x82, 0x43, 0xE4, 0x88, 0xA7, 0x43,
- 0xE4, 0x8A, 0xA0, 0x43, 0xE4, 0x8C, 0x81, 0x43,
- 0xE4, 0x8C, 0xB4, 0x43, 0xE4, 0x8D, 0x99, 0x43,
- 0xE4, 0x8F, 0x95, 0x43, 0xE4, 0x8F, 0x99, 0x43,
- 0xE4, 0x90, 0x8B, 0x43, 0xE4, 0x91, 0xAB, 0x43,
- 0xE4, 0x94, 0xAB, 0x43, 0xE4, 0x95, 0x9D, 0x43,
- 0xE4, 0x95, 0xA1, 0x43, 0xE4, 0x95, 0xAB, 0x43,
- // Bytes 680 - 6bf
- 0xE4, 0x97, 0x97, 0x43, 0xE4, 0x97, 0xB9, 0x43,
- 0xE4, 0x98, 0xB5, 0x43, 0xE4, 0x9A, 0xBE, 0x43,
- 0xE4, 0x9B, 0x87, 0x43, 0xE4, 0xA6, 0x95, 0x43,
- 0xE4, 0xA7, 0xA6, 0x43, 0xE4, 0xA9, 0xAE, 0x43,
- 0xE4, 0xA9, 0xB6, 0x43, 0xE4, 0xAA, 0xB2, 0x43,
- 0xE4, 0xAC, 0xB3, 0x43, 0xE4, 0xAF, 0x8E, 0x43,
- 0xE4, 0xB3, 0x8E, 0x43, 0xE4, 0xB3, 0xAD, 0x43,
- 0xE4, 0xB3, 0xB8, 0x43, 0xE4, 0xB5, 0x96, 0x43,
- // Bytes 6c0 - 6ff
- 0xE4, 0xB8, 0x80, 0x43, 0xE4, 0xB8, 0x81, 0x43,
- 0xE4, 0xB8, 0x83, 0x43, 0xE4, 0xB8, 0x89, 0x43,
- 0xE4, 0xB8, 0x8A, 0x43, 0xE4, 0xB8, 0x8B, 0x43,
- 0xE4, 0xB8, 0x8D, 0x43, 0xE4, 0xB8, 0x99, 0x43,
- 0xE4, 0xB8, 0xA6, 0x43, 0xE4, 0xB8, 0xA8, 0x43,
- 0xE4, 0xB8, 0xAD, 0x43, 0xE4, 0xB8, 0xB2, 0x43,
- 0xE4, 0xB8, 0xB6, 0x43, 0xE4, 0xB8, 0xB8, 0x43,
- 0xE4, 0xB8, 0xB9, 0x43, 0xE4, 0xB8, 0xBD, 0x43,
- // Bytes 700 - 73f
- 0xE4, 0xB8, 0xBF, 0x43, 0xE4, 0xB9, 0x81, 0x43,
- 0xE4, 0xB9, 0x99, 0x43, 0xE4, 0xB9, 0x9D, 0x43,
- 0xE4, 0xBA, 0x82, 0x43, 0xE4, 0xBA, 0x85, 0x43,
- 0xE4, 0xBA, 0x86, 0x43, 0xE4, 0xBA, 0x8C, 0x43,
- 0xE4, 0xBA, 0x94, 0x43, 0xE4, 0xBA, 0xA0, 0x43,
- 0xE4, 0xBA, 0xA4, 0x43, 0xE4, 0xBA, 0xAE, 0x43,
- 0xE4, 0xBA, 0xBA, 0x43, 0xE4, 0xBB, 0x80, 0x43,
- 0xE4, 0xBB, 0x8C, 0x43, 0xE4, 0xBB, 0xA4, 0x43,
- // Bytes 740 - 77f
- 0xE4, 0xBC, 0x81, 0x43, 0xE4, 0xBC, 0x91, 0x43,
- 0xE4, 0xBD, 0xA0, 0x43, 0xE4, 0xBE, 0x80, 0x43,
- 0xE4, 0xBE, 0x86, 0x43, 0xE4, 0xBE, 0x8B, 0x43,
- 0xE4, 0xBE, 0xAE, 0x43, 0xE4, 0xBE, 0xBB, 0x43,
- 0xE4, 0xBE, 0xBF, 0x43, 0xE5, 0x80, 0x82, 0x43,
- 0xE5, 0x80, 0xAB, 0x43, 0xE5, 0x81, 0xBA, 0x43,
- 0xE5, 0x82, 0x99, 0x43, 0xE5, 0x83, 0x8F, 0x43,
- 0xE5, 0x83, 0x9A, 0x43, 0xE5, 0x83, 0xA7, 0x43,
- // Bytes 780 - 7bf
- 0xE5, 0x84, 0xAA, 0x43, 0xE5, 0x84, 0xBF, 0x43,
- 0xE5, 0x85, 0x80, 0x43, 0xE5, 0x85, 0x85, 0x43,
- 0xE5, 0x85, 0x8D, 0x43, 0xE5, 0x85, 0x94, 0x43,
- 0xE5, 0x85, 0xA4, 0x43, 0xE5, 0x85, 0xA5, 0x43,
- 0xE5, 0x85, 0xA7, 0x43, 0xE5, 0x85, 0xA8, 0x43,
- 0xE5, 0x85, 0xA9, 0x43, 0xE5, 0x85, 0xAB, 0x43,
- 0xE5, 0x85, 0xAD, 0x43, 0xE5, 0x85, 0xB7, 0x43,
- 0xE5, 0x86, 0x80, 0x43, 0xE5, 0x86, 0x82, 0x43,
- // Bytes 7c0 - 7ff
- 0xE5, 0x86, 0x8D, 0x43, 0xE5, 0x86, 0x92, 0x43,
- 0xE5, 0x86, 0x95, 0x43, 0xE5, 0x86, 0x96, 0x43,
- 0xE5, 0x86, 0x97, 0x43, 0xE5, 0x86, 0x99, 0x43,
- 0xE5, 0x86, 0xA4, 0x43, 0xE5, 0x86, 0xAB, 0x43,
- 0xE5, 0x86, 0xAC, 0x43, 0xE5, 0x86, 0xB5, 0x43,
- 0xE5, 0x86, 0xB7, 0x43, 0xE5, 0x87, 0x89, 0x43,
- 0xE5, 0x87, 0x8C, 0x43, 0xE5, 0x87, 0x9C, 0x43,
- 0xE5, 0x87, 0x9E, 0x43, 0xE5, 0x87, 0xA0, 0x43,
- // Bytes 800 - 83f
- 0xE5, 0x87, 0xB5, 0x43, 0xE5, 0x88, 0x80, 0x43,
- 0xE5, 0x88, 0x83, 0x43, 0xE5, 0x88, 0x87, 0x43,
- 0xE5, 0x88, 0x97, 0x43, 0xE5, 0x88, 0x9D, 0x43,
- 0xE5, 0x88, 0xA9, 0x43, 0xE5, 0x88, 0xBA, 0x43,
- 0xE5, 0x88, 0xBB, 0x43, 0xE5, 0x89, 0x86, 0x43,
- 0xE5, 0x89, 0x8D, 0x43, 0xE5, 0x89, 0xB2, 0x43,
- 0xE5, 0x89, 0xB7, 0x43, 0xE5, 0x8A, 0x89, 0x43,
- 0xE5, 0x8A, 0x9B, 0x43, 0xE5, 0x8A, 0xA3, 0x43,
- // Bytes 840 - 87f
- 0xE5, 0x8A, 0xB3, 0x43, 0xE5, 0x8A, 0xB4, 0x43,
- 0xE5, 0x8B, 0x87, 0x43, 0xE5, 0x8B, 0x89, 0x43,
- 0xE5, 0x8B, 0x92, 0x43, 0xE5, 0x8B, 0x9E, 0x43,
- 0xE5, 0x8B, 0xA4, 0x43, 0xE5, 0x8B, 0xB5, 0x43,
- 0xE5, 0x8B, 0xB9, 0x43, 0xE5, 0x8B, 0xBA, 0x43,
- 0xE5, 0x8C, 0x85, 0x43, 0xE5, 0x8C, 0x86, 0x43,
- 0xE5, 0x8C, 0x95, 0x43, 0xE5, 0x8C, 0x97, 0x43,
- 0xE5, 0x8C, 0x9A, 0x43, 0xE5, 0x8C, 0xB8, 0x43,
- // Bytes 880 - 8bf
- 0xE5, 0x8C, 0xBB, 0x43, 0xE5, 0x8C, 0xBF, 0x43,
- 0xE5, 0x8D, 0x81, 0x43, 0xE5, 0x8D, 0x84, 0x43,
- 0xE5, 0x8D, 0x85, 0x43, 0xE5, 0x8D, 0x89, 0x43,
- 0xE5, 0x8D, 0x91, 0x43, 0xE5, 0x8D, 0x94, 0x43,
- 0xE5, 0x8D, 0x9A, 0x43, 0xE5, 0x8D, 0x9C, 0x43,
- 0xE5, 0x8D, 0xA9, 0x43, 0xE5, 0x8D, 0xB0, 0x43,
- 0xE5, 0x8D, 0xB3, 0x43, 0xE5, 0x8D, 0xB5, 0x43,
- 0xE5, 0x8D, 0xBD, 0x43, 0xE5, 0x8D, 0xBF, 0x43,
- // Bytes 8c0 - 8ff
- 0xE5, 0x8E, 0x82, 0x43, 0xE5, 0x8E, 0xB6, 0x43,
- 0xE5, 0x8F, 0x83, 0x43, 0xE5, 0x8F, 0x88, 0x43,
- 0xE5, 0x8F, 0x8A, 0x43, 0xE5, 0x8F, 0x8C, 0x43,
- 0xE5, 0x8F, 0x9F, 0x43, 0xE5, 0x8F, 0xA3, 0x43,
- 0xE5, 0x8F, 0xA5, 0x43, 0xE5, 0x8F, 0xAB, 0x43,
- 0xE5, 0x8F, 0xAF, 0x43, 0xE5, 0x8F, 0xB1, 0x43,
- 0xE5, 0x8F, 0xB3, 0x43, 0xE5, 0x90, 0x86, 0x43,
- 0xE5, 0x90, 0x88, 0x43, 0xE5, 0x90, 0x8D, 0x43,
- // Bytes 900 - 93f
- 0xE5, 0x90, 0x8F, 0x43, 0xE5, 0x90, 0x9D, 0x43,
- 0xE5, 0x90, 0xB8, 0x43, 0xE5, 0x90, 0xB9, 0x43,
- 0xE5, 0x91, 0x82, 0x43, 0xE5, 0x91, 0x88, 0x43,
- 0xE5, 0x91, 0xA8, 0x43, 0xE5, 0x92, 0x9E, 0x43,
- 0xE5, 0x92, 0xA2, 0x43, 0xE5, 0x92, 0xBD, 0x43,
- 0xE5, 0x93, 0xB6, 0x43, 0xE5, 0x94, 0x90, 0x43,
- 0xE5, 0x95, 0x8F, 0x43, 0xE5, 0x95, 0x93, 0x43,
- 0xE5, 0x95, 0x95, 0x43, 0xE5, 0x95, 0xA3, 0x43,
- // Bytes 940 - 97f
- 0xE5, 0x96, 0x84, 0x43, 0xE5, 0x96, 0x87, 0x43,
- 0xE5, 0x96, 0x99, 0x43, 0xE5, 0x96, 0x9D, 0x43,
- 0xE5, 0x96, 0xAB, 0x43, 0xE5, 0x96, 0xB3, 0x43,
- 0xE5, 0x96, 0xB6, 0x43, 0xE5, 0x97, 0x80, 0x43,
- 0xE5, 0x97, 0x82, 0x43, 0xE5, 0x97, 0xA2, 0x43,
- 0xE5, 0x98, 0x86, 0x43, 0xE5, 0x99, 0x91, 0x43,
- 0xE5, 0x99, 0xA8, 0x43, 0xE5, 0x99, 0xB4, 0x43,
- 0xE5, 0x9B, 0x97, 0x43, 0xE5, 0x9B, 0x9B, 0x43,
- // Bytes 980 - 9bf
- 0xE5, 0x9B, 0xB9, 0x43, 0xE5, 0x9C, 0x96, 0x43,
- 0xE5, 0x9C, 0x97, 0x43, 0xE5, 0x9C, 0x9F, 0x43,
- 0xE5, 0x9C, 0xB0, 0x43, 0xE5, 0x9E, 0x8B, 0x43,
- 0xE5, 0x9F, 0x8E, 0x43, 0xE5, 0x9F, 0xB4, 0x43,
- 0xE5, 0xA0, 0x8D, 0x43, 0xE5, 0xA0, 0xB1, 0x43,
- 0xE5, 0xA0, 0xB2, 0x43, 0xE5, 0xA1, 0x80, 0x43,
- 0xE5, 0xA1, 0x9A, 0x43, 0xE5, 0xA1, 0x9E, 0x43,
- 0xE5, 0xA2, 0xA8, 0x43, 0xE5, 0xA2, 0xAC, 0x43,
- // Bytes 9c0 - 9ff
- 0xE5, 0xA2, 0xB3, 0x43, 0xE5, 0xA3, 0x98, 0x43,
- 0xE5, 0xA3, 0x9F, 0x43, 0xE5, 0xA3, 0xAB, 0x43,
- 0xE5, 0xA3, 0xAE, 0x43, 0xE5, 0xA3, 0xB0, 0x43,
- 0xE5, 0xA3, 0xB2, 0x43, 0xE5, 0xA3, 0xB7, 0x43,
- 0xE5, 0xA4, 0x82, 0x43, 0xE5, 0xA4, 0x86, 0x43,
- 0xE5, 0xA4, 0x8A, 0x43, 0xE5, 0xA4, 0x95, 0x43,
- 0xE5, 0xA4, 0x9A, 0x43, 0xE5, 0xA4, 0x9C, 0x43,
- 0xE5, 0xA4, 0xA2, 0x43, 0xE5, 0xA4, 0xA7, 0x43,
- // Bytes a00 - a3f
- 0xE5, 0xA4, 0xA9, 0x43, 0xE5, 0xA5, 0x84, 0x43,
- 0xE5, 0xA5, 0x88, 0x43, 0xE5, 0xA5, 0x91, 0x43,
- 0xE5, 0xA5, 0x94, 0x43, 0xE5, 0xA5, 0xA2, 0x43,
- 0xE5, 0xA5, 0xB3, 0x43, 0xE5, 0xA7, 0x98, 0x43,
- 0xE5, 0xA7, 0xAC, 0x43, 0xE5, 0xA8, 0x9B, 0x43,
- 0xE5, 0xA8, 0xA7, 0x43, 0xE5, 0xA9, 0xA2, 0x43,
- 0xE5, 0xA9, 0xA6, 0x43, 0xE5, 0xAA, 0xB5, 0x43,
- 0xE5, 0xAC, 0x88, 0x43, 0xE5, 0xAC, 0xA8, 0x43,
- // Bytes a40 - a7f
- 0xE5, 0xAC, 0xBE, 0x43, 0xE5, 0xAD, 0x90, 0x43,
- 0xE5, 0xAD, 0x97, 0x43, 0xE5, 0xAD, 0xA6, 0x43,
- 0xE5, 0xAE, 0x80, 0x43, 0xE5, 0xAE, 0x85, 0x43,
- 0xE5, 0xAE, 0x97, 0x43, 0xE5, 0xAF, 0x83, 0x43,
- 0xE5, 0xAF, 0x98, 0x43, 0xE5, 0xAF, 0xA7, 0x43,
- 0xE5, 0xAF, 0xAE, 0x43, 0xE5, 0xAF, 0xB3, 0x43,
- 0xE5, 0xAF, 0xB8, 0x43, 0xE5, 0xAF, 0xBF, 0x43,
- 0xE5, 0xB0, 0x86, 0x43, 0xE5, 0xB0, 0x8F, 0x43,
- // Bytes a80 - abf
- 0xE5, 0xB0, 0xA2, 0x43, 0xE5, 0xB0, 0xB8, 0x43,
- 0xE5, 0xB0, 0xBF, 0x43, 0xE5, 0xB1, 0xA0, 0x43,
- 0xE5, 0xB1, 0xA2, 0x43, 0xE5, 0xB1, 0xA4, 0x43,
- 0xE5, 0xB1, 0xA5, 0x43, 0xE5, 0xB1, 0xAE, 0x43,
- 0xE5, 0xB1, 0xB1, 0x43, 0xE5, 0xB2, 0x8D, 0x43,
- 0xE5, 0xB3, 0x80, 0x43, 0xE5, 0xB4, 0x99, 0x43,
- 0xE5, 0xB5, 0x83, 0x43, 0xE5, 0xB5, 0x90, 0x43,
- 0xE5, 0xB5, 0xAB, 0x43, 0xE5, 0xB5, 0xAE, 0x43,
- // Bytes ac0 - aff
- 0xE5, 0xB5, 0xBC, 0x43, 0xE5, 0xB6, 0xB2, 0x43,
- 0xE5, 0xB6, 0xBA, 0x43, 0xE5, 0xB7, 0x9B, 0x43,
- 0xE5, 0xB7, 0xA1, 0x43, 0xE5, 0xB7, 0xA2, 0x43,
- 0xE5, 0xB7, 0xA5, 0x43, 0xE5, 0xB7, 0xA6, 0x43,
- 0xE5, 0xB7, 0xB1, 0x43, 0xE5, 0xB7, 0xBD, 0x43,
- 0xE5, 0xB7, 0xBE, 0x43, 0xE5, 0xB8, 0xA8, 0x43,
- 0xE5, 0xB8, 0xBD, 0x43, 0xE5, 0xB9, 0xA9, 0x43,
- 0xE5, 0xB9, 0xB2, 0x43, 0xE5, 0xB9, 0xB4, 0x43,
- // Bytes b00 - b3f
- 0xE5, 0xB9, 0xBA, 0x43, 0xE5, 0xB9, 0xBC, 0x43,
- 0xE5, 0xB9, 0xBF, 0x43, 0xE5, 0xBA, 0xA6, 0x43,
- 0xE5, 0xBA, 0xB0, 0x43, 0xE5, 0xBA, 0xB3, 0x43,
- 0xE5, 0xBA, 0xB6, 0x43, 0xE5, 0xBB, 0x89, 0x43,
- 0xE5, 0xBB, 0x8A, 0x43, 0xE5, 0xBB, 0x92, 0x43,
- 0xE5, 0xBB, 0x93, 0x43, 0xE5, 0xBB, 0x99, 0x43,
- 0xE5, 0xBB, 0xAC, 0x43, 0xE5, 0xBB, 0xB4, 0x43,
- 0xE5, 0xBB, 0xBE, 0x43, 0xE5, 0xBC, 0x84, 0x43,
- // Bytes b40 - b7f
- 0xE5, 0xBC, 0x8B, 0x43, 0xE5, 0xBC, 0x93, 0x43,
- 0xE5, 0xBC, 0xA2, 0x43, 0xE5, 0xBD, 0x90, 0x43,
- 0xE5, 0xBD, 0x93, 0x43, 0xE5, 0xBD, 0xA1, 0x43,
- 0xE5, 0xBD, 0xA2, 0x43, 0xE5, 0xBD, 0xA9, 0x43,
- 0xE5, 0xBD, 0xAB, 0x43, 0xE5, 0xBD, 0xB3, 0x43,
- 0xE5, 0xBE, 0x8B, 0x43, 0xE5, 0xBE, 0x8C, 0x43,
- 0xE5, 0xBE, 0x97, 0x43, 0xE5, 0xBE, 0x9A, 0x43,
- 0xE5, 0xBE, 0xA9, 0x43, 0xE5, 0xBE, 0xAD, 0x43,
- // Bytes b80 - bbf
- 0xE5, 0xBF, 0x83, 0x43, 0xE5, 0xBF, 0x8D, 0x43,
- 0xE5, 0xBF, 0x97, 0x43, 0xE5, 0xBF, 0xB5, 0x43,
- 0xE5, 0xBF, 0xB9, 0x43, 0xE6, 0x80, 0x92, 0x43,
- 0xE6, 0x80, 0x9C, 0x43, 0xE6, 0x81, 0xB5, 0x43,
- 0xE6, 0x82, 0x81, 0x43, 0xE6, 0x82, 0x94, 0x43,
- 0xE6, 0x83, 0x87, 0x43, 0xE6, 0x83, 0x98, 0x43,
- 0xE6, 0x83, 0xA1, 0x43, 0xE6, 0x84, 0x88, 0x43,
- 0xE6, 0x85, 0x84, 0x43, 0xE6, 0x85, 0x88, 0x43,
- // Bytes bc0 - bff
- 0xE6, 0x85, 0x8C, 0x43, 0xE6, 0x85, 0x8E, 0x43,
- 0xE6, 0x85, 0xA0, 0x43, 0xE6, 0x85, 0xA8, 0x43,
- 0xE6, 0x85, 0xBA, 0x43, 0xE6, 0x86, 0x8E, 0x43,
- 0xE6, 0x86, 0x90, 0x43, 0xE6, 0x86, 0xA4, 0x43,
- 0xE6, 0x86, 0xAF, 0x43, 0xE6, 0x86, 0xB2, 0x43,
- 0xE6, 0x87, 0x9E, 0x43, 0xE6, 0x87, 0xB2, 0x43,
- 0xE6, 0x87, 0xB6, 0x43, 0xE6, 0x88, 0x80, 0x43,
- 0xE6, 0x88, 0x88, 0x43, 0xE6, 0x88, 0x90, 0x43,
- // Bytes c00 - c3f
- 0xE6, 0x88, 0x9B, 0x43, 0xE6, 0x88, 0xAE, 0x43,
- 0xE6, 0x88, 0xB4, 0x43, 0xE6, 0x88, 0xB6, 0x43,
- 0xE6, 0x89, 0x8B, 0x43, 0xE6, 0x89, 0x93, 0x43,
- 0xE6, 0x89, 0x9D, 0x43, 0xE6, 0x8A, 0x95, 0x43,
- 0xE6, 0x8A, 0xB1, 0x43, 0xE6, 0x8B, 0x89, 0x43,
- 0xE6, 0x8B, 0x8F, 0x43, 0xE6, 0x8B, 0x93, 0x43,
- 0xE6, 0x8B, 0x94, 0x43, 0xE6, 0x8B, 0xBC, 0x43,
- 0xE6, 0x8B, 0xBE, 0x43, 0xE6, 0x8C, 0x87, 0x43,
- // Bytes c40 - c7f
- 0xE6, 0x8C, 0xBD, 0x43, 0xE6, 0x8D, 0x90, 0x43,
- 0xE6, 0x8D, 0x95, 0x43, 0xE6, 0x8D, 0xA8, 0x43,
- 0xE6, 0x8D, 0xBB, 0x43, 0xE6, 0x8E, 0x83, 0x43,
- 0xE6, 0x8E, 0xA0, 0x43, 0xE6, 0x8E, 0xA9, 0x43,
- 0xE6, 0x8F, 0x84, 0x43, 0xE6, 0x8F, 0x85, 0x43,
- 0xE6, 0x8F, 0xA4, 0x43, 0xE6, 0x90, 0x9C, 0x43,
- 0xE6, 0x90, 0xA2, 0x43, 0xE6, 0x91, 0x92, 0x43,
- 0xE6, 0x91, 0xA9, 0x43, 0xE6, 0x91, 0xB7, 0x43,
- // Bytes c80 - cbf
- 0xE6, 0x91, 0xBE, 0x43, 0xE6, 0x92, 0x9A, 0x43,
- 0xE6, 0x92, 0x9D, 0x43, 0xE6, 0x93, 0x84, 0x43,
- 0xE6, 0x94, 0xAF, 0x43, 0xE6, 0x94, 0xB4, 0x43,
- 0xE6, 0x95, 0x8F, 0x43, 0xE6, 0x95, 0x96, 0x43,
- 0xE6, 0x95, 0xAC, 0x43, 0xE6, 0x95, 0xB8, 0x43,
- 0xE6, 0x96, 0x87, 0x43, 0xE6, 0x96, 0x97, 0x43,
- 0xE6, 0x96, 0x99, 0x43, 0xE6, 0x96, 0xA4, 0x43,
- 0xE6, 0x96, 0xB0, 0x43, 0xE6, 0x96, 0xB9, 0x43,
- // Bytes cc0 - cff
- 0xE6, 0x97, 0x85, 0x43, 0xE6, 0x97, 0xA0, 0x43,
- 0xE6, 0x97, 0xA2, 0x43, 0xE6, 0x97, 0xA3, 0x43,
- 0xE6, 0x97, 0xA5, 0x43, 0xE6, 0x98, 0x93, 0x43,
- 0xE6, 0x98, 0xA0, 0x43, 0xE6, 0x99, 0x89, 0x43,
- 0xE6, 0x99, 0xB4, 0x43, 0xE6, 0x9A, 0x88, 0x43,
- 0xE6, 0x9A, 0x91, 0x43, 0xE6, 0x9A, 0x9C, 0x43,
- 0xE6, 0x9A, 0xB4, 0x43, 0xE6, 0x9B, 0x86, 0x43,
- 0xE6, 0x9B, 0xB0, 0x43, 0xE6, 0x9B, 0xB4, 0x43,
- // Bytes d00 - d3f
- 0xE6, 0x9B, 0xB8, 0x43, 0xE6, 0x9C, 0x80, 0x43,
- 0xE6, 0x9C, 0x88, 0x43, 0xE6, 0x9C, 0x89, 0x43,
- 0xE6, 0x9C, 0x97, 0x43, 0xE6, 0x9C, 0x9B, 0x43,
- 0xE6, 0x9C, 0xA1, 0x43, 0xE6, 0x9C, 0xA8, 0x43,
- 0xE6, 0x9D, 0x8E, 0x43, 0xE6, 0x9D, 0x93, 0x43,
- 0xE6, 0x9D, 0x96, 0x43, 0xE6, 0x9D, 0x9E, 0x43,
- 0xE6, 0x9D, 0xBB, 0x43, 0xE6, 0x9E, 0x85, 0x43,
- 0xE6, 0x9E, 0x97, 0x43, 0xE6, 0x9F, 0xB3, 0x43,
- // Bytes d40 - d7f
- 0xE6, 0x9F, 0xBA, 0x43, 0xE6, 0xA0, 0x97, 0x43,
- 0xE6, 0xA0, 0x9F, 0x43, 0xE6, 0xA0, 0xAA, 0x43,
- 0xE6, 0xA1, 0x92, 0x43, 0xE6, 0xA2, 0x81, 0x43,
- 0xE6, 0xA2, 0x85, 0x43, 0xE6, 0xA2, 0x8E, 0x43,
- 0xE6, 0xA2, 0xA8, 0x43, 0xE6, 0xA4, 0x94, 0x43,
- 0xE6, 0xA5, 0x82, 0x43, 0xE6, 0xA6, 0xA3, 0x43,
- 0xE6, 0xA7, 0xAA, 0x43, 0xE6, 0xA8, 0x82, 0x43,
- 0xE6, 0xA8, 0x93, 0x43, 0xE6, 0xAA, 0xA8, 0x43,
- // Bytes d80 - dbf
- 0xE6, 0xAB, 0x93, 0x43, 0xE6, 0xAB, 0x9B, 0x43,
- 0xE6, 0xAC, 0x84, 0x43, 0xE6, 0xAC, 0xA0, 0x43,
- 0xE6, 0xAC, 0xA1, 0x43, 0xE6, 0xAD, 0x94, 0x43,
- 0xE6, 0xAD, 0xA2, 0x43, 0xE6, 0xAD, 0xA3, 0x43,
- 0xE6, 0xAD, 0xB2, 0x43, 0xE6, 0xAD, 0xB7, 0x43,
- 0xE6, 0xAD, 0xB9, 0x43, 0xE6, 0xAE, 0x9F, 0x43,
- 0xE6, 0xAE, 0xAE, 0x43, 0xE6, 0xAE, 0xB3, 0x43,
- 0xE6, 0xAE, 0xBA, 0x43, 0xE6, 0xAE, 0xBB, 0x43,
- // Bytes dc0 - dff
- 0xE6, 0xAF, 0x8B, 0x43, 0xE6, 0xAF, 0x8D, 0x43,
- 0xE6, 0xAF, 0x94, 0x43, 0xE6, 0xAF, 0x9B, 0x43,
- 0xE6, 0xB0, 0x8F, 0x43, 0xE6, 0xB0, 0x94, 0x43,
- 0xE6, 0xB0, 0xB4, 0x43, 0xE6, 0xB1, 0x8E, 0x43,
- 0xE6, 0xB1, 0xA7, 0x43, 0xE6, 0xB2, 0x88, 0x43,
- 0xE6, 0xB2, 0xBF, 0x43, 0xE6, 0xB3, 0x8C, 0x43,
- 0xE6, 0xB3, 0x8D, 0x43, 0xE6, 0xB3, 0xA5, 0x43,
- 0xE6, 0xB3, 0xA8, 0x43, 0xE6, 0xB4, 0x96, 0x43,
- // Bytes e00 - e3f
- 0xE6, 0xB4, 0x9B, 0x43, 0xE6, 0xB4, 0x9E, 0x43,
- 0xE6, 0xB4, 0xB4, 0x43, 0xE6, 0xB4, 0xBE, 0x43,
- 0xE6, 0xB5, 0x81, 0x43, 0xE6, 0xB5, 0xA9, 0x43,
- 0xE6, 0xB5, 0xAA, 0x43, 0xE6, 0xB5, 0xB7, 0x43,
- 0xE6, 0xB5, 0xB8, 0x43, 0xE6, 0xB6, 0x85, 0x43,
- 0xE6, 0xB7, 0x8B, 0x43, 0xE6, 0xB7, 0x9A, 0x43,
- 0xE6, 0xB7, 0xAA, 0x43, 0xE6, 0xB7, 0xB9, 0x43,
- 0xE6, 0xB8, 0x9A, 0x43, 0xE6, 0xB8, 0xAF, 0x43,
- // Bytes e40 - e7f
- 0xE6, 0xB9, 0xAE, 0x43, 0xE6, 0xBA, 0x80, 0x43,
- 0xE6, 0xBA, 0x9C, 0x43, 0xE6, 0xBA, 0xBA, 0x43,
- 0xE6, 0xBB, 0x87, 0x43, 0xE6, 0xBB, 0x8B, 0x43,
- 0xE6, 0xBB, 0x91, 0x43, 0xE6, 0xBB, 0x9B, 0x43,
- 0xE6, 0xBC, 0x8F, 0x43, 0xE6, 0xBC, 0x94, 0x43,
- 0xE6, 0xBC, 0xA2, 0x43, 0xE6, 0xBC, 0xA3, 0x43,
- 0xE6, 0xBD, 0xAE, 0x43, 0xE6, 0xBF, 0x86, 0x43,
- 0xE6, 0xBF, 0xAB, 0x43, 0xE6, 0xBF, 0xBE, 0x43,
- // Bytes e80 - ebf
- 0xE7, 0x80, 0x9B, 0x43, 0xE7, 0x80, 0x9E, 0x43,
- 0xE7, 0x80, 0xB9, 0x43, 0xE7, 0x81, 0x8A, 0x43,
- 0xE7, 0x81, 0xAB, 0x43, 0xE7, 0x81, 0xB0, 0x43,
- 0xE7, 0x81, 0xB7, 0x43, 0xE7, 0x81, 0xBD, 0x43,
- 0xE7, 0x82, 0x99, 0x43, 0xE7, 0x82, 0xAD, 0x43,
- 0xE7, 0x83, 0x88, 0x43, 0xE7, 0x83, 0x99, 0x43,
- 0xE7, 0x84, 0xA1, 0x43, 0xE7, 0x85, 0x85, 0x43,
- 0xE7, 0x85, 0x89, 0x43, 0xE7, 0x85, 0xAE, 0x43,
- // Bytes ec0 - eff
- 0xE7, 0x86, 0x9C, 0x43, 0xE7, 0x87, 0x8E, 0x43,
- 0xE7, 0x87, 0x90, 0x43, 0xE7, 0x88, 0x90, 0x43,
- 0xE7, 0x88, 0x9B, 0x43, 0xE7, 0x88, 0xA8, 0x43,
- 0xE7, 0x88, 0xAA, 0x43, 0xE7, 0x88, 0xAB, 0x43,
- 0xE7, 0x88, 0xB5, 0x43, 0xE7, 0x88, 0xB6, 0x43,
- 0xE7, 0x88, 0xBB, 0x43, 0xE7, 0x88, 0xBF, 0x43,
- 0xE7, 0x89, 0x87, 0x43, 0xE7, 0x89, 0x90, 0x43,
- 0xE7, 0x89, 0x99, 0x43, 0xE7, 0x89, 0x9B, 0x43,
- // Bytes f00 - f3f
- 0xE7, 0x89, 0xA2, 0x43, 0xE7, 0x89, 0xB9, 0x43,
- 0xE7, 0x8A, 0x80, 0x43, 0xE7, 0x8A, 0x95, 0x43,
- 0xE7, 0x8A, 0xAC, 0x43, 0xE7, 0x8A, 0xAF, 0x43,
- 0xE7, 0x8B, 0x80, 0x43, 0xE7, 0x8B, 0xBC, 0x43,
- 0xE7, 0x8C, 0xAA, 0x43, 0xE7, 0x8D, 0xB5, 0x43,
- 0xE7, 0x8D, 0xBA, 0x43, 0xE7, 0x8E, 0x84, 0x43,
- 0xE7, 0x8E, 0x87, 0x43, 0xE7, 0x8E, 0x89, 0x43,
- 0xE7, 0x8E, 0x8B, 0x43, 0xE7, 0x8E, 0xA5, 0x43,
- // Bytes f40 - f7f
- 0xE7, 0x8E, 0xB2, 0x43, 0xE7, 0x8F, 0x9E, 0x43,
- 0xE7, 0x90, 0x86, 0x43, 0xE7, 0x90, 0x89, 0x43,
- 0xE7, 0x90, 0xA2, 0x43, 0xE7, 0x91, 0x87, 0x43,
- 0xE7, 0x91, 0x9C, 0x43, 0xE7, 0x91, 0xA9, 0x43,
- 0xE7, 0x91, 0xB1, 0x43, 0xE7, 0x92, 0x85, 0x43,
- 0xE7, 0x92, 0x89, 0x43, 0xE7, 0x92, 0x98, 0x43,
- 0xE7, 0x93, 0x8A, 0x43, 0xE7, 0x93, 0x9C, 0x43,
- 0xE7, 0x93, 0xA6, 0x43, 0xE7, 0x94, 0x86, 0x43,
- // Bytes f80 - fbf
- 0xE7, 0x94, 0x98, 0x43, 0xE7, 0x94, 0x9F, 0x43,
- 0xE7, 0x94, 0xA4, 0x43, 0xE7, 0x94, 0xA8, 0x43,
- 0xE7, 0x94, 0xB0, 0x43, 0xE7, 0x94, 0xB2, 0x43,
- 0xE7, 0x94, 0xB3, 0x43, 0xE7, 0x94, 0xB7, 0x43,
- 0xE7, 0x94, 0xBB, 0x43, 0xE7, 0x94, 0xBE, 0x43,
- 0xE7, 0x95, 0x99, 0x43, 0xE7, 0x95, 0xA5, 0x43,
- 0xE7, 0x95, 0xB0, 0x43, 0xE7, 0x96, 0x8B, 0x43,
- 0xE7, 0x96, 0x92, 0x43, 0xE7, 0x97, 0xA2, 0x43,
- // Bytes fc0 - fff
- 0xE7, 0x98, 0x90, 0x43, 0xE7, 0x98, 0x9D, 0x43,
- 0xE7, 0x98, 0x9F, 0x43, 0xE7, 0x99, 0x82, 0x43,
- 0xE7, 0x99, 0xA9, 0x43, 0xE7, 0x99, 0xB6, 0x43,
- 0xE7, 0x99, 0xBD, 0x43, 0xE7, 0x9A, 0xAE, 0x43,
- 0xE7, 0x9A, 0xBF, 0x43, 0xE7, 0x9B, 0x8A, 0x43,
- 0xE7, 0x9B, 0x9B, 0x43, 0xE7, 0x9B, 0xA3, 0x43,
- 0xE7, 0x9B, 0xA7, 0x43, 0xE7, 0x9B, 0xAE, 0x43,
- 0xE7, 0x9B, 0xB4, 0x43, 0xE7, 0x9C, 0x81, 0x43,
- // Bytes 1000 - 103f
- 0xE7, 0x9C, 0x9E, 0x43, 0xE7, 0x9C, 0x9F, 0x43,
- 0xE7, 0x9D, 0x80, 0x43, 0xE7, 0x9D, 0x8A, 0x43,
- 0xE7, 0x9E, 0x8B, 0x43, 0xE7, 0x9E, 0xA7, 0x43,
- 0xE7, 0x9F, 0x9B, 0x43, 0xE7, 0x9F, 0xA2, 0x43,
- 0xE7, 0x9F, 0xB3, 0x43, 0xE7, 0xA1, 0x8E, 0x43,
- 0xE7, 0xA1, 0xAB, 0x43, 0xE7, 0xA2, 0x8C, 0x43,
- 0xE7, 0xA2, 0x91, 0x43, 0xE7, 0xA3, 0x8A, 0x43,
- 0xE7, 0xA3, 0x8C, 0x43, 0xE7, 0xA3, 0xBB, 0x43,
- // Bytes 1040 - 107f
- 0xE7, 0xA4, 0xAA, 0x43, 0xE7, 0xA4, 0xBA, 0x43,
- 0xE7, 0xA4, 0xBC, 0x43, 0xE7, 0xA4, 0xBE, 0x43,
- 0xE7, 0xA5, 0x88, 0x43, 0xE7, 0xA5, 0x89, 0x43,
- 0xE7, 0xA5, 0x90, 0x43, 0xE7, 0xA5, 0x96, 0x43,
- 0xE7, 0xA5, 0x9D, 0x43, 0xE7, 0xA5, 0x9E, 0x43,
- 0xE7, 0xA5, 0xA5, 0x43, 0xE7, 0xA5, 0xBF, 0x43,
- 0xE7, 0xA6, 0x81, 0x43, 0xE7, 0xA6, 0x8D, 0x43,
- 0xE7, 0xA6, 0x8E, 0x43, 0xE7, 0xA6, 0x8F, 0x43,
- // Bytes 1080 - 10bf
- 0xE7, 0xA6, 0xAE, 0x43, 0xE7, 0xA6, 0xB8, 0x43,
- 0xE7, 0xA6, 0xBE, 0x43, 0xE7, 0xA7, 0x8A, 0x43,
- 0xE7, 0xA7, 0x98, 0x43, 0xE7, 0xA7, 0xAB, 0x43,
- 0xE7, 0xA8, 0x9C, 0x43, 0xE7, 0xA9, 0x80, 0x43,
- 0xE7, 0xA9, 0x8A, 0x43, 0xE7, 0xA9, 0x8F, 0x43,
- 0xE7, 0xA9, 0xB4, 0x43, 0xE7, 0xA9, 0xBA, 0x43,
- 0xE7, 0xAA, 0x81, 0x43, 0xE7, 0xAA, 0xB1, 0x43,
- 0xE7, 0xAB, 0x8B, 0x43, 0xE7, 0xAB, 0xAE, 0x43,
- // Bytes 10c0 - 10ff
- 0xE7, 0xAB, 0xB9, 0x43, 0xE7, 0xAC, 0xA0, 0x43,
- 0xE7, 0xAE, 0x8F, 0x43, 0xE7, 0xAF, 0x80, 0x43,
- 0xE7, 0xAF, 0x86, 0x43, 0xE7, 0xAF, 0x89, 0x43,
- 0xE7, 0xB0, 0xBE, 0x43, 0xE7, 0xB1, 0xA0, 0x43,
- 0xE7, 0xB1, 0xB3, 0x43, 0xE7, 0xB1, 0xBB, 0x43,
- 0xE7, 0xB2, 0x92, 0x43, 0xE7, 0xB2, 0xBE, 0x43,
- 0xE7, 0xB3, 0x92, 0x43, 0xE7, 0xB3, 0x96, 0x43,
- 0xE7, 0xB3, 0xA3, 0x43, 0xE7, 0xB3, 0xA7, 0x43,
- // Bytes 1100 - 113f
- 0xE7, 0xB3, 0xA8, 0x43, 0xE7, 0xB3, 0xB8, 0x43,
- 0xE7, 0xB4, 0x80, 0x43, 0xE7, 0xB4, 0x90, 0x43,
- 0xE7, 0xB4, 0xA2, 0x43, 0xE7, 0xB4, 0xAF, 0x43,
- 0xE7, 0xB5, 0x82, 0x43, 0xE7, 0xB5, 0x9B, 0x43,
- 0xE7, 0xB5, 0xA3, 0x43, 0xE7, 0xB6, 0xA0, 0x43,
- 0xE7, 0xB6, 0xBE, 0x43, 0xE7, 0xB7, 0x87, 0x43,
- 0xE7, 0xB7, 0xB4, 0x43, 0xE7, 0xB8, 0x82, 0x43,
- 0xE7, 0xB8, 0x89, 0x43, 0xE7, 0xB8, 0xB7, 0x43,
- // Bytes 1140 - 117f
- 0xE7, 0xB9, 0x81, 0x43, 0xE7, 0xB9, 0x85, 0x43,
- 0xE7, 0xBC, 0xB6, 0x43, 0xE7, 0xBC, 0xBE, 0x43,
- 0xE7, 0xBD, 0x91, 0x43, 0xE7, 0xBD, 0xB2, 0x43,
- 0xE7, 0xBD, 0xB9, 0x43, 0xE7, 0xBD, 0xBA, 0x43,
- 0xE7, 0xBE, 0x85, 0x43, 0xE7, 0xBE, 0x8A, 0x43,
- 0xE7, 0xBE, 0x95, 0x43, 0xE7, 0xBE, 0x9A, 0x43,
- 0xE7, 0xBE, 0xBD, 0x43, 0xE7, 0xBF, 0xBA, 0x43,
- 0xE8, 0x80, 0x81, 0x43, 0xE8, 0x80, 0x85, 0x43,
- // Bytes 1180 - 11bf
- 0xE8, 0x80, 0x8C, 0x43, 0xE8, 0x80, 0x92, 0x43,
- 0xE8, 0x80, 0xB3, 0x43, 0xE8, 0x81, 0x86, 0x43,
- 0xE8, 0x81, 0xA0, 0x43, 0xE8, 0x81, 0xAF, 0x43,
- 0xE8, 0x81, 0xB0, 0x43, 0xE8, 0x81, 0xBE, 0x43,
- 0xE8, 0x81, 0xBF, 0x43, 0xE8, 0x82, 0x89, 0x43,
- 0xE8, 0x82, 0x8B, 0x43, 0xE8, 0x82, 0xAD, 0x43,
- 0xE8, 0x82, 0xB2, 0x43, 0xE8, 0x84, 0x83, 0x43,
- 0xE8, 0x84, 0xBE, 0x43, 0xE8, 0x87, 0x98, 0x43,
- // Bytes 11c0 - 11ff
- 0xE8, 0x87, 0xA3, 0x43, 0xE8, 0x87, 0xA8, 0x43,
- 0xE8, 0x87, 0xAA, 0x43, 0xE8, 0x87, 0xAD, 0x43,
- 0xE8, 0x87, 0xB3, 0x43, 0xE8, 0x87, 0xBC, 0x43,
- 0xE8, 0x88, 0x81, 0x43, 0xE8, 0x88, 0x84, 0x43,
- 0xE8, 0x88, 0x8C, 0x43, 0xE8, 0x88, 0x98, 0x43,
- 0xE8, 0x88, 0x9B, 0x43, 0xE8, 0x88, 0x9F, 0x43,
- 0xE8, 0x89, 0xAE, 0x43, 0xE8, 0x89, 0xAF, 0x43,
- 0xE8, 0x89, 0xB2, 0x43, 0xE8, 0x89, 0xB8, 0x43,
- // Bytes 1200 - 123f
- 0xE8, 0x89, 0xB9, 0x43, 0xE8, 0x8A, 0x8B, 0x43,
- 0xE8, 0x8A, 0x91, 0x43, 0xE8, 0x8A, 0x9D, 0x43,
- 0xE8, 0x8A, 0xB1, 0x43, 0xE8, 0x8A, 0xB3, 0x43,
- 0xE8, 0x8A, 0xBD, 0x43, 0xE8, 0x8B, 0xA5, 0x43,
- 0xE8, 0x8B, 0xA6, 0x43, 0xE8, 0x8C, 0x9D, 0x43,
- 0xE8, 0x8C, 0xA3, 0x43, 0xE8, 0x8C, 0xB6, 0x43,
- 0xE8, 0x8D, 0x92, 0x43, 0xE8, 0x8D, 0x93, 0x43,
- 0xE8, 0x8D, 0xA3, 0x43, 0xE8, 0x8E, 0xAD, 0x43,
- // Bytes 1240 - 127f
- 0xE8, 0x8E, 0xBD, 0x43, 0xE8, 0x8F, 0x89, 0x43,
- 0xE8, 0x8F, 0x8A, 0x43, 0xE8, 0x8F, 0x8C, 0x43,
- 0xE8, 0x8F, 0x9C, 0x43, 0xE8, 0x8F, 0xA7, 0x43,
- 0xE8, 0x8F, 0xAF, 0x43, 0xE8, 0x8F, 0xB1, 0x43,
- 0xE8, 0x90, 0xBD, 0x43, 0xE8, 0x91, 0x89, 0x43,
- 0xE8, 0x91, 0x97, 0x43, 0xE8, 0x93, 0xAE, 0x43,
- 0xE8, 0x93, 0xB1, 0x43, 0xE8, 0x93, 0xB3, 0x43,
- 0xE8, 0x93, 0xBC, 0x43, 0xE8, 0x94, 0x96, 0x43,
- // Bytes 1280 - 12bf
- 0xE8, 0x95, 0xA4, 0x43, 0xE8, 0x97, 0x8D, 0x43,
- 0xE8, 0x97, 0xBA, 0x43, 0xE8, 0x98, 0x86, 0x43,
- 0xE8, 0x98, 0x92, 0x43, 0xE8, 0x98, 0xAD, 0x43,
- 0xE8, 0x98, 0xBF, 0x43, 0xE8, 0x99, 0x8D, 0x43,
- 0xE8, 0x99, 0x90, 0x43, 0xE8, 0x99, 0x9C, 0x43,
- 0xE8, 0x99, 0xA7, 0x43, 0xE8, 0x99, 0xA9, 0x43,
- 0xE8, 0x99, 0xAB, 0x43, 0xE8, 0x9A, 0x88, 0x43,
- 0xE8, 0x9A, 0xA9, 0x43, 0xE8, 0x9B, 0xA2, 0x43,
- // Bytes 12c0 - 12ff
- 0xE8, 0x9C, 0x8E, 0x43, 0xE8, 0x9C, 0xA8, 0x43,
- 0xE8, 0x9D, 0xAB, 0x43, 0xE8, 0x9D, 0xB9, 0x43,
- 0xE8, 0x9E, 0x86, 0x43, 0xE8, 0x9E, 0xBA, 0x43,
- 0xE8, 0x9F, 0xA1, 0x43, 0xE8, 0xA0, 0x81, 0x43,
- 0xE8, 0xA0, 0x9F, 0x43, 0xE8, 0xA1, 0x80, 0x43,
- 0xE8, 0xA1, 0x8C, 0x43, 0xE8, 0xA1, 0xA0, 0x43,
- 0xE8, 0xA1, 0xA3, 0x43, 0xE8, 0xA3, 0x82, 0x43,
- 0xE8, 0xA3, 0x8F, 0x43, 0xE8, 0xA3, 0x97, 0x43,
- // Bytes 1300 - 133f
- 0xE8, 0xA3, 0x9E, 0x43, 0xE8, 0xA3, 0xA1, 0x43,
- 0xE8, 0xA3, 0xB8, 0x43, 0xE8, 0xA3, 0xBA, 0x43,
- 0xE8, 0xA4, 0x90, 0x43, 0xE8, 0xA5, 0x81, 0x43,
- 0xE8, 0xA5, 0xA4, 0x43, 0xE8, 0xA5, 0xBE, 0x43,
- 0xE8, 0xA6, 0x86, 0x43, 0xE8, 0xA6, 0x8B, 0x43,
- 0xE8, 0xA6, 0x96, 0x43, 0xE8, 0xA7, 0x92, 0x43,
- 0xE8, 0xA7, 0xA3, 0x43, 0xE8, 0xA8, 0x80, 0x43,
- 0xE8, 0xAA, 0xA0, 0x43, 0xE8, 0xAA, 0xAA, 0x43,
- // Bytes 1340 - 137f
- 0xE8, 0xAA, 0xBF, 0x43, 0xE8, 0xAB, 0x8B, 0x43,
- 0xE8, 0xAB, 0x92, 0x43, 0xE8, 0xAB, 0x96, 0x43,
- 0xE8, 0xAB, 0xAD, 0x43, 0xE8, 0xAB, 0xB8, 0x43,
- 0xE8, 0xAB, 0xBE, 0x43, 0xE8, 0xAC, 0x81, 0x43,
- 0xE8, 0xAC, 0xB9, 0x43, 0xE8, 0xAD, 0x98, 0x43,
- 0xE8, 0xAE, 0x80, 0x43, 0xE8, 0xAE, 0x8A, 0x43,
- 0xE8, 0xB0, 0xB7, 0x43, 0xE8, 0xB1, 0x86, 0x43,
- 0xE8, 0xB1, 0x88, 0x43, 0xE8, 0xB1, 0x95, 0x43,
- // Bytes 1380 - 13bf
- 0xE8, 0xB1, 0xB8, 0x43, 0xE8, 0xB2, 0x9D, 0x43,
- 0xE8, 0xB2, 0xA1, 0x43, 0xE8, 0xB2, 0xA9, 0x43,
- 0xE8, 0xB2, 0xAB, 0x43, 0xE8, 0xB3, 0x81, 0x43,
- 0xE8, 0xB3, 0x82, 0x43, 0xE8, 0xB3, 0x87, 0x43,
- 0xE8, 0xB3, 0x88, 0x43, 0xE8, 0xB3, 0x93, 0x43,
- 0xE8, 0xB4, 0x88, 0x43, 0xE8, 0xB4, 0x9B, 0x43,
- 0xE8, 0xB5, 0xA4, 0x43, 0xE8, 0xB5, 0xB0, 0x43,
- 0xE8, 0xB5, 0xB7, 0x43, 0xE8, 0xB6, 0xB3, 0x43,
- // Bytes 13c0 - 13ff
- 0xE8, 0xB6, 0xBC, 0x43, 0xE8, 0xB7, 0x8B, 0x43,
- 0xE8, 0xB7, 0xAF, 0x43, 0xE8, 0xB7, 0xB0, 0x43,
- 0xE8, 0xBA, 0xAB, 0x43, 0xE8, 0xBB, 0x8A, 0x43,
- 0xE8, 0xBB, 0x94, 0x43, 0xE8, 0xBC, 0xA6, 0x43,
- 0xE8, 0xBC, 0xAA, 0x43, 0xE8, 0xBC, 0xB8, 0x43,
- 0xE8, 0xBC, 0xBB, 0x43, 0xE8, 0xBD, 0xA2, 0x43,
- 0xE8, 0xBE, 0x9B, 0x43, 0xE8, 0xBE, 0x9E, 0x43,
- 0xE8, 0xBE, 0xB0, 0x43, 0xE8, 0xBE, 0xB5, 0x43,
- // Bytes 1400 - 143f
- 0xE8, 0xBE, 0xB6, 0x43, 0xE9, 0x80, 0xA3, 0x43,
- 0xE9, 0x80, 0xB8, 0x43, 0xE9, 0x81, 0x8A, 0x43,
- 0xE9, 0x81, 0xA9, 0x43, 0xE9, 0x81, 0xB2, 0x43,
- 0xE9, 0x81, 0xBC, 0x43, 0xE9, 0x82, 0x8F, 0x43,
- 0xE9, 0x82, 0x91, 0x43, 0xE9, 0x82, 0x94, 0x43,
- 0xE9, 0x83, 0x8E, 0x43, 0xE9, 0x83, 0x9E, 0x43,
- 0xE9, 0x83, 0xB1, 0x43, 0xE9, 0x83, 0xBD, 0x43,
- 0xE9, 0x84, 0x91, 0x43, 0xE9, 0x84, 0x9B, 0x43,
- // Bytes 1440 - 147f
- 0xE9, 0x85, 0x89, 0x43, 0xE9, 0x85, 0x8D, 0x43,
- 0xE9, 0x85, 0xAA, 0x43, 0xE9, 0x86, 0x99, 0x43,
- 0xE9, 0x86, 0xB4, 0x43, 0xE9, 0x87, 0x86, 0x43,
- 0xE9, 0x87, 0x8C, 0x43, 0xE9, 0x87, 0x8F, 0x43,
- 0xE9, 0x87, 0x91, 0x43, 0xE9, 0x88, 0xB4, 0x43,
- 0xE9, 0x88, 0xB8, 0x43, 0xE9, 0x89, 0xB6, 0x43,
- 0xE9, 0x89, 0xBC, 0x43, 0xE9, 0x8B, 0x97, 0x43,
- 0xE9, 0x8B, 0x98, 0x43, 0xE9, 0x8C, 0x84, 0x43,
- // Bytes 1480 - 14bf
- 0xE9, 0x8D, 0x8A, 0x43, 0xE9, 0x8F, 0xB9, 0x43,
- 0xE9, 0x90, 0x95, 0x43, 0xE9, 0x95, 0xB7, 0x43,
- 0xE9, 0x96, 0x80, 0x43, 0xE9, 0x96, 0x8B, 0x43,
- 0xE9, 0x96, 0xAD, 0x43, 0xE9, 0x96, 0xB7, 0x43,
- 0xE9, 0x98, 0x9C, 0x43, 0xE9, 0x98, 0xAE, 0x43,
- 0xE9, 0x99, 0x8B, 0x43, 0xE9, 0x99, 0x8D, 0x43,
- 0xE9, 0x99, 0xB5, 0x43, 0xE9, 0x99, 0xB8, 0x43,
- 0xE9, 0x99, 0xBC, 0x43, 0xE9, 0x9A, 0x86, 0x43,
- // Bytes 14c0 - 14ff
- 0xE9, 0x9A, 0xA3, 0x43, 0xE9, 0x9A, 0xB6, 0x43,
- 0xE9, 0x9A, 0xB7, 0x43, 0xE9, 0x9A, 0xB8, 0x43,
- 0xE9, 0x9A, 0xB9, 0x43, 0xE9, 0x9B, 0x83, 0x43,
- 0xE9, 0x9B, 0xA2, 0x43, 0xE9, 0x9B, 0xA3, 0x43,
- 0xE9, 0x9B, 0xA8, 0x43, 0xE9, 0x9B, 0xB6, 0x43,
- 0xE9, 0x9B, 0xB7, 0x43, 0xE9, 0x9C, 0xA3, 0x43,
- 0xE9, 0x9C, 0xB2, 0x43, 0xE9, 0x9D, 0x88, 0x43,
- 0xE9, 0x9D, 0x91, 0x43, 0xE9, 0x9D, 0x96, 0x43,
- // Bytes 1500 - 153f
- 0xE9, 0x9D, 0x9E, 0x43, 0xE9, 0x9D, 0xA2, 0x43,
- 0xE9, 0x9D, 0xA9, 0x43, 0xE9, 0x9F, 0x8B, 0x43,
- 0xE9, 0x9F, 0x9B, 0x43, 0xE9, 0x9F, 0xA0, 0x43,
- 0xE9, 0x9F, 0xAD, 0x43, 0xE9, 0x9F, 0xB3, 0x43,
- 0xE9, 0x9F, 0xBF, 0x43, 0xE9, 0xA0, 0x81, 0x43,
- 0xE9, 0xA0, 0x85, 0x43, 0xE9, 0xA0, 0x8B, 0x43,
- 0xE9, 0xA0, 0x98, 0x43, 0xE9, 0xA0, 0xA9, 0x43,
- 0xE9, 0xA0, 0xBB, 0x43, 0xE9, 0xA1, 0x9E, 0x43,
- // Bytes 1540 - 157f
- 0xE9, 0xA2, 0xA8, 0x43, 0xE9, 0xA3, 0x9B, 0x43,
- 0xE9, 0xA3, 0x9F, 0x43, 0xE9, 0xA3, 0xA2, 0x43,
- 0xE9, 0xA3, 0xAF, 0x43, 0xE9, 0xA3, 0xBC, 0x43,
- 0xE9, 0xA4, 0xA8, 0x43, 0xE9, 0xA4, 0xA9, 0x43,
- 0xE9, 0xA6, 0x96, 0x43, 0xE9, 0xA6, 0x99, 0x43,
- 0xE9, 0xA6, 0xA7, 0x43, 0xE9, 0xA6, 0xAC, 0x43,
- 0xE9, 0xA7, 0x82, 0x43, 0xE9, 0xA7, 0xB1, 0x43,
- 0xE9, 0xA7, 0xBE, 0x43, 0xE9, 0xA9, 0xAA, 0x43,
- // Bytes 1580 - 15bf
- 0xE9, 0xAA, 0xA8, 0x43, 0xE9, 0xAB, 0x98, 0x43,
- 0xE9, 0xAB, 0x9F, 0x43, 0xE9, 0xAC, 0x92, 0x43,
- 0xE9, 0xAC, 0xA5, 0x43, 0xE9, 0xAC, 0xAF, 0x43,
- 0xE9, 0xAC, 0xB2, 0x43, 0xE9, 0xAC, 0xBC, 0x43,
- 0xE9, 0xAD, 0x9A, 0x43, 0xE9, 0xAD, 0xAF, 0x43,
- 0xE9, 0xB1, 0x80, 0x43, 0xE9, 0xB1, 0x97, 0x43,
- 0xE9, 0xB3, 0xA5, 0x43, 0xE9, 0xB3, 0xBD, 0x43,
- 0xE9, 0xB5, 0xA7, 0x43, 0xE9, 0xB6, 0xB4, 0x43,
- // Bytes 15c0 - 15ff
- 0xE9, 0xB7, 0xBA, 0x43, 0xE9, 0xB8, 0x9E, 0x43,
- 0xE9, 0xB9, 0xB5, 0x43, 0xE9, 0xB9, 0xBF, 0x43,
- 0xE9, 0xBA, 0x97, 0x43, 0xE9, 0xBA, 0x9F, 0x43,
- 0xE9, 0xBA, 0xA5, 0x43, 0xE9, 0xBA, 0xBB, 0x43,
- 0xE9, 0xBB, 0x83, 0x43, 0xE9, 0xBB, 0x8D, 0x43,
- 0xE9, 0xBB, 0x8E, 0x43, 0xE9, 0xBB, 0x91, 0x43,
- 0xE9, 0xBB, 0xB9, 0x43, 0xE9, 0xBB, 0xBD, 0x43,
- 0xE9, 0xBB, 0xBE, 0x43, 0xE9, 0xBC, 0x85, 0x43,
- // Bytes 1600 - 163f
- 0xE9, 0xBC, 0x8E, 0x43, 0xE9, 0xBC, 0x8F, 0x43,
- 0xE9, 0xBC, 0x93, 0x43, 0xE9, 0xBC, 0x96, 0x43,
- 0xE9, 0xBC, 0xA0, 0x43, 0xE9, 0xBC, 0xBB, 0x43,
- 0xE9, 0xBD, 0x83, 0x43, 0xE9, 0xBD, 0x8A, 0x43,
- 0xE9, 0xBD, 0x92, 0x43, 0xE9, 0xBE, 0x8D, 0x43,
- 0xE9, 0xBE, 0x8E, 0x43, 0xE9, 0xBE, 0x9C, 0x43,
- 0xE9, 0xBE, 0x9F, 0x43, 0xE9, 0xBE, 0xA0, 0x43,
- 0xEA, 0x9C, 0xA7, 0x43, 0xEA, 0x9D, 0xAF, 0x43,
- // Bytes 1640 - 167f
- 0xEA, 0xAC, 0xB7, 0x43, 0xEA, 0xAD, 0x92, 0x44,
- 0xF0, 0xA0, 0x84, 0xA2, 0x44, 0xF0, 0xA0, 0x94,
- 0x9C, 0x44, 0xF0, 0xA0, 0x94, 0xA5, 0x44, 0xF0,
- 0xA0, 0x95, 0x8B, 0x44, 0xF0, 0xA0, 0x98, 0xBA,
- 0x44, 0xF0, 0xA0, 0xA0, 0x84, 0x44, 0xF0, 0xA0,
- 0xA3, 0x9E, 0x44, 0xF0, 0xA0, 0xA8, 0xAC, 0x44,
- 0xF0, 0xA0, 0xAD, 0xA3, 0x44, 0xF0, 0xA1, 0x93,
- 0xA4, 0x44, 0xF0, 0xA1, 0x9A, 0xA8, 0x44, 0xF0,
- // Bytes 1680 - 16bf
- 0xA1, 0x9B, 0xAA, 0x44, 0xF0, 0xA1, 0xA7, 0x88,
- 0x44, 0xF0, 0xA1, 0xAC, 0x98, 0x44, 0xF0, 0xA1,
- 0xB4, 0x8B, 0x44, 0xF0, 0xA1, 0xB7, 0xA4, 0x44,
- 0xF0, 0xA1, 0xB7, 0xA6, 0x44, 0xF0, 0xA2, 0x86,
- 0x83, 0x44, 0xF0, 0xA2, 0x86, 0x9F, 0x44, 0xF0,
- 0xA2, 0x8C, 0xB1, 0x44, 0xF0, 0xA2, 0x9B, 0x94,
- 0x44, 0xF0, 0xA2, 0xA1, 0x84, 0x44, 0xF0, 0xA2,
- 0xA1, 0x8A, 0x44, 0xF0, 0xA2, 0xAC, 0x8C, 0x44,
- // Bytes 16c0 - 16ff
- 0xF0, 0xA2, 0xAF, 0xB1, 0x44, 0xF0, 0xA3, 0x80,
- 0x8A, 0x44, 0xF0, 0xA3, 0x8A, 0xB8, 0x44, 0xF0,
- 0xA3, 0x8D, 0x9F, 0x44, 0xF0, 0xA3, 0x8E, 0x93,
- 0x44, 0xF0, 0xA3, 0x8E, 0x9C, 0x44, 0xF0, 0xA3,
- 0x8F, 0x83, 0x44, 0xF0, 0xA3, 0x8F, 0x95, 0x44,
- 0xF0, 0xA3, 0x91, 0xAD, 0x44, 0xF0, 0xA3, 0x9A,
- 0xA3, 0x44, 0xF0, 0xA3, 0xA2, 0xA7, 0x44, 0xF0,
- 0xA3, 0xAA, 0x8D, 0x44, 0xF0, 0xA3, 0xAB, 0xBA,
- // Bytes 1700 - 173f
- 0x44, 0xF0, 0xA3, 0xB2, 0xBC, 0x44, 0xF0, 0xA3,
- 0xB4, 0x9E, 0x44, 0xF0, 0xA3, 0xBB, 0x91, 0x44,
- 0xF0, 0xA3, 0xBD, 0x9E, 0x44, 0xF0, 0xA3, 0xBE,
- 0x8E, 0x44, 0xF0, 0xA4, 0x89, 0xA3, 0x44, 0xF0,
- 0xA4, 0x8B, 0xAE, 0x44, 0xF0, 0xA4, 0x8E, 0xAB,
- 0x44, 0xF0, 0xA4, 0x98, 0x88, 0x44, 0xF0, 0xA4,
- 0x9C, 0xB5, 0x44, 0xF0, 0xA4, 0xA0, 0x94, 0x44,
- 0xF0, 0xA4, 0xB0, 0xB6, 0x44, 0xF0, 0xA4, 0xB2,
- // Bytes 1740 - 177f
- 0x92, 0x44, 0xF0, 0xA4, 0xBE, 0xA1, 0x44, 0xF0,
- 0xA4, 0xBE, 0xB8, 0x44, 0xF0, 0xA5, 0x81, 0x84,
- 0x44, 0xF0, 0xA5, 0x83, 0xB2, 0x44, 0xF0, 0xA5,
- 0x83, 0xB3, 0x44, 0xF0, 0xA5, 0x84, 0x99, 0x44,
- 0xF0, 0xA5, 0x84, 0xB3, 0x44, 0xF0, 0xA5, 0x89,
- 0x89, 0x44, 0xF0, 0xA5, 0x90, 0x9D, 0x44, 0xF0,
- 0xA5, 0x98, 0xA6, 0x44, 0xF0, 0xA5, 0x9A, 0x9A,
- 0x44, 0xF0, 0xA5, 0x9B, 0x85, 0x44, 0xF0, 0xA5,
- // Bytes 1780 - 17bf
- 0xA5, 0xBC, 0x44, 0xF0, 0xA5, 0xAA, 0xA7, 0x44,
- 0xF0, 0xA5, 0xAE, 0xAB, 0x44, 0xF0, 0xA5, 0xB2,
- 0x80, 0x44, 0xF0, 0xA5, 0xB3, 0x90, 0x44, 0xF0,
- 0xA5, 0xBE, 0x86, 0x44, 0xF0, 0xA6, 0x87, 0x9A,
- 0x44, 0xF0, 0xA6, 0x88, 0xA8, 0x44, 0xF0, 0xA6,
- 0x89, 0x87, 0x44, 0xF0, 0xA6, 0x8B, 0x99, 0x44,
- 0xF0, 0xA6, 0x8C, 0xBE, 0x44, 0xF0, 0xA6, 0x93,
- 0x9A, 0x44, 0xF0, 0xA6, 0x94, 0xA3, 0x44, 0xF0,
- // Bytes 17c0 - 17ff
- 0xA6, 0x96, 0xA8, 0x44, 0xF0, 0xA6, 0x9E, 0xA7,
- 0x44, 0xF0, 0xA6, 0x9E, 0xB5, 0x44, 0xF0, 0xA6,
- 0xAC, 0xBC, 0x44, 0xF0, 0xA6, 0xB0, 0xB6, 0x44,
- 0xF0, 0xA6, 0xB3, 0x95, 0x44, 0xF0, 0xA6, 0xB5,
- 0xAB, 0x44, 0xF0, 0xA6, 0xBC, 0xAC, 0x44, 0xF0,
- 0xA6, 0xBE, 0xB1, 0x44, 0xF0, 0xA7, 0x83, 0x92,
- 0x44, 0xF0, 0xA7, 0x8F, 0x8A, 0x44, 0xF0, 0xA7,
- 0x99, 0xA7, 0x44, 0xF0, 0xA7, 0xA2, 0xAE, 0x44,
- // Bytes 1800 - 183f
- 0xF0, 0xA7, 0xA5, 0xA6, 0x44, 0xF0, 0xA7, 0xB2,
- 0xA8, 0x44, 0xF0, 0xA7, 0xBB, 0x93, 0x44, 0xF0,
- 0xA7, 0xBC, 0xAF, 0x44, 0xF0, 0xA8, 0x97, 0x92,
- 0x44, 0xF0, 0xA8, 0x97, 0xAD, 0x44, 0xF0, 0xA8,
- 0x9C, 0xAE, 0x44, 0xF0, 0xA8, 0xAF, 0xBA, 0x44,
- 0xF0, 0xA8, 0xB5, 0xB7, 0x44, 0xF0, 0xA9, 0x85,
- 0x85, 0x44, 0xF0, 0xA9, 0x87, 0x9F, 0x44, 0xF0,
- 0xA9, 0x88, 0x9A, 0x44, 0xF0, 0xA9, 0x90, 0x8A,
- // Bytes 1840 - 187f
- 0x44, 0xF0, 0xA9, 0x92, 0x96, 0x44, 0xF0, 0xA9,
- 0x96, 0xB6, 0x44, 0xF0, 0xA9, 0xAC, 0xB0, 0x44,
- 0xF0, 0xAA, 0x83, 0x8E, 0x44, 0xF0, 0xAA, 0x84,
- 0x85, 0x44, 0xF0, 0xAA, 0x88, 0x8E, 0x44, 0xF0,
- 0xAA, 0x8A, 0x91, 0x44, 0xF0, 0xAA, 0x8E, 0x92,
- 0x44, 0xF0, 0xAA, 0x98, 0x80, 0x42, 0x21, 0x21,
- 0x42, 0x21, 0x3F, 0x42, 0x2E, 0x2E, 0x42, 0x30,
- 0x2C, 0x42, 0x30, 0x2E, 0x42, 0x31, 0x2C, 0x42,
- // Bytes 1880 - 18bf
- 0x31, 0x2E, 0x42, 0x31, 0x30, 0x42, 0x31, 0x31,
- 0x42, 0x31, 0x32, 0x42, 0x31, 0x33, 0x42, 0x31,
- 0x34, 0x42, 0x31, 0x35, 0x42, 0x31, 0x36, 0x42,
- 0x31, 0x37, 0x42, 0x31, 0x38, 0x42, 0x31, 0x39,
- 0x42, 0x32, 0x2C, 0x42, 0x32, 0x2E, 0x42, 0x32,
- 0x30, 0x42, 0x32, 0x31, 0x42, 0x32, 0x32, 0x42,
- 0x32, 0x33, 0x42, 0x32, 0x34, 0x42, 0x32, 0x35,
- 0x42, 0x32, 0x36, 0x42, 0x32, 0x37, 0x42, 0x32,
- // Bytes 18c0 - 18ff
- 0x38, 0x42, 0x32, 0x39, 0x42, 0x33, 0x2C, 0x42,
- 0x33, 0x2E, 0x42, 0x33, 0x30, 0x42, 0x33, 0x31,
- 0x42, 0x33, 0x32, 0x42, 0x33, 0x33, 0x42, 0x33,
- 0x34, 0x42, 0x33, 0x35, 0x42, 0x33, 0x36, 0x42,
- 0x33, 0x37, 0x42, 0x33, 0x38, 0x42, 0x33, 0x39,
- 0x42, 0x34, 0x2C, 0x42, 0x34, 0x2E, 0x42, 0x34,
- 0x30, 0x42, 0x34, 0x31, 0x42, 0x34, 0x32, 0x42,
- 0x34, 0x33, 0x42, 0x34, 0x34, 0x42, 0x34, 0x35,
- // Bytes 1900 - 193f
- 0x42, 0x34, 0x36, 0x42, 0x34, 0x37, 0x42, 0x34,
- 0x38, 0x42, 0x34, 0x39, 0x42, 0x35, 0x2C, 0x42,
- 0x35, 0x2E, 0x42, 0x35, 0x30, 0x42, 0x36, 0x2C,
- 0x42, 0x36, 0x2E, 0x42, 0x37, 0x2C, 0x42, 0x37,
- 0x2E, 0x42, 0x38, 0x2C, 0x42, 0x38, 0x2E, 0x42,
- 0x39, 0x2C, 0x42, 0x39, 0x2E, 0x42, 0x3D, 0x3D,
- 0x42, 0x3F, 0x21, 0x42, 0x3F, 0x3F, 0x42, 0x41,
- 0x55, 0x42, 0x42, 0x71, 0x42, 0x43, 0x44, 0x42,
- // Bytes 1940 - 197f
- 0x44, 0x4A, 0x42, 0x44, 0x5A, 0x42, 0x44, 0x7A,
- 0x42, 0x47, 0x42, 0x42, 0x47, 0x79, 0x42, 0x48,
- 0x50, 0x42, 0x48, 0x56, 0x42, 0x48, 0x67, 0x42,
- 0x48, 0x7A, 0x42, 0x49, 0x49, 0x42, 0x49, 0x4A,
- 0x42, 0x49, 0x55, 0x42, 0x49, 0x56, 0x42, 0x49,
- 0x58, 0x42, 0x4B, 0x42, 0x42, 0x4B, 0x4B, 0x42,
- 0x4B, 0x4D, 0x42, 0x4C, 0x4A, 0x42, 0x4C, 0x6A,
- 0x42, 0x4D, 0x42, 0x42, 0x4D, 0x43, 0x42, 0x4D,
- // Bytes 1980 - 19bf
- 0x44, 0x42, 0x4D, 0x56, 0x42, 0x4D, 0x57, 0x42,
- 0x4E, 0x4A, 0x42, 0x4E, 0x6A, 0x42, 0x4E, 0x6F,
- 0x42, 0x50, 0x48, 0x42, 0x50, 0x52, 0x42, 0x50,
- 0x61, 0x42, 0x52, 0x73, 0x42, 0x53, 0x44, 0x42,
- 0x53, 0x4D, 0x42, 0x53, 0x53, 0x42, 0x53, 0x76,
- 0x42, 0x54, 0x4D, 0x42, 0x56, 0x49, 0x42, 0x57,
- 0x43, 0x42, 0x57, 0x5A, 0x42, 0x57, 0x62, 0x42,
- 0x58, 0x49, 0x42, 0x63, 0x63, 0x42, 0x63, 0x64,
- // Bytes 19c0 - 19ff
- 0x42, 0x63, 0x6D, 0x42, 0x64, 0x42, 0x42, 0x64,
- 0x61, 0x42, 0x64, 0x6C, 0x42, 0x64, 0x6D, 0x42,
- 0x64, 0x7A, 0x42, 0x65, 0x56, 0x42, 0x66, 0x66,
- 0x42, 0x66, 0x69, 0x42, 0x66, 0x6C, 0x42, 0x66,
- 0x6D, 0x42, 0x68, 0x61, 0x42, 0x69, 0x69, 0x42,
- 0x69, 0x6A, 0x42, 0x69, 0x6E, 0x42, 0x69, 0x76,
- 0x42, 0x69, 0x78, 0x42, 0x6B, 0x41, 0x42, 0x6B,
- 0x56, 0x42, 0x6B, 0x57, 0x42, 0x6B, 0x67, 0x42,
- // Bytes 1a00 - 1a3f
- 0x6B, 0x6C, 0x42, 0x6B, 0x6D, 0x42, 0x6B, 0x74,
- 0x42, 0x6C, 0x6A, 0x42, 0x6C, 0x6D, 0x42, 0x6C,
- 0x6E, 0x42, 0x6C, 0x78, 0x42, 0x6D, 0x32, 0x42,
- 0x6D, 0x33, 0x42, 0x6D, 0x41, 0x42, 0x6D, 0x56,
- 0x42, 0x6D, 0x57, 0x42, 0x6D, 0x62, 0x42, 0x6D,
- 0x67, 0x42, 0x6D, 0x6C, 0x42, 0x6D, 0x6D, 0x42,
- 0x6D, 0x73, 0x42, 0x6E, 0x41, 0x42, 0x6E, 0x46,
- 0x42, 0x6E, 0x56, 0x42, 0x6E, 0x57, 0x42, 0x6E,
- // Bytes 1a40 - 1a7f
- 0x6A, 0x42, 0x6E, 0x6D, 0x42, 0x6E, 0x73, 0x42,
- 0x6F, 0x56, 0x42, 0x70, 0x41, 0x42, 0x70, 0x46,
- 0x42, 0x70, 0x56, 0x42, 0x70, 0x57, 0x42, 0x70,
- 0x63, 0x42, 0x70, 0x73, 0x42, 0x73, 0x72, 0x42,
- 0x73, 0x74, 0x42, 0x76, 0x69, 0x42, 0x78, 0x69,
- 0x43, 0x28, 0x31, 0x29, 0x43, 0x28, 0x32, 0x29,
- 0x43, 0x28, 0x33, 0x29, 0x43, 0x28, 0x34, 0x29,
- 0x43, 0x28, 0x35, 0x29, 0x43, 0x28, 0x36, 0x29,
- // Bytes 1a80 - 1abf
- 0x43, 0x28, 0x37, 0x29, 0x43, 0x28, 0x38, 0x29,
- 0x43, 0x28, 0x39, 0x29, 0x43, 0x28, 0x41, 0x29,
- 0x43, 0x28, 0x42, 0x29, 0x43, 0x28, 0x43, 0x29,
- 0x43, 0x28, 0x44, 0x29, 0x43, 0x28, 0x45, 0x29,
- 0x43, 0x28, 0x46, 0x29, 0x43, 0x28, 0x47, 0x29,
- 0x43, 0x28, 0x48, 0x29, 0x43, 0x28, 0x49, 0x29,
- 0x43, 0x28, 0x4A, 0x29, 0x43, 0x28, 0x4B, 0x29,
- 0x43, 0x28, 0x4C, 0x29, 0x43, 0x28, 0x4D, 0x29,
- // Bytes 1ac0 - 1aff
- 0x43, 0x28, 0x4E, 0x29, 0x43, 0x28, 0x4F, 0x29,
- 0x43, 0x28, 0x50, 0x29, 0x43, 0x28, 0x51, 0x29,
- 0x43, 0x28, 0x52, 0x29, 0x43, 0x28, 0x53, 0x29,
- 0x43, 0x28, 0x54, 0x29, 0x43, 0x28, 0x55, 0x29,
- 0x43, 0x28, 0x56, 0x29, 0x43, 0x28, 0x57, 0x29,
- 0x43, 0x28, 0x58, 0x29, 0x43, 0x28, 0x59, 0x29,
- 0x43, 0x28, 0x5A, 0x29, 0x43, 0x28, 0x61, 0x29,
- 0x43, 0x28, 0x62, 0x29, 0x43, 0x28, 0x63, 0x29,
- // Bytes 1b00 - 1b3f
- 0x43, 0x28, 0x64, 0x29, 0x43, 0x28, 0x65, 0x29,
- 0x43, 0x28, 0x66, 0x29, 0x43, 0x28, 0x67, 0x29,
- 0x43, 0x28, 0x68, 0x29, 0x43, 0x28, 0x69, 0x29,
- 0x43, 0x28, 0x6A, 0x29, 0x43, 0x28, 0x6B, 0x29,
- 0x43, 0x28, 0x6C, 0x29, 0x43, 0x28, 0x6D, 0x29,
- 0x43, 0x28, 0x6E, 0x29, 0x43, 0x28, 0x6F, 0x29,
- 0x43, 0x28, 0x70, 0x29, 0x43, 0x28, 0x71, 0x29,
- 0x43, 0x28, 0x72, 0x29, 0x43, 0x28, 0x73, 0x29,
- // Bytes 1b40 - 1b7f
- 0x43, 0x28, 0x74, 0x29, 0x43, 0x28, 0x75, 0x29,
- 0x43, 0x28, 0x76, 0x29, 0x43, 0x28, 0x77, 0x29,
- 0x43, 0x28, 0x78, 0x29, 0x43, 0x28, 0x79, 0x29,
- 0x43, 0x28, 0x7A, 0x29, 0x43, 0x2E, 0x2E, 0x2E,
- 0x43, 0x31, 0x30, 0x2E, 0x43, 0x31, 0x31, 0x2E,
- 0x43, 0x31, 0x32, 0x2E, 0x43, 0x31, 0x33, 0x2E,
- 0x43, 0x31, 0x34, 0x2E, 0x43, 0x31, 0x35, 0x2E,
- 0x43, 0x31, 0x36, 0x2E, 0x43, 0x31, 0x37, 0x2E,
- // Bytes 1b80 - 1bbf
- 0x43, 0x31, 0x38, 0x2E, 0x43, 0x31, 0x39, 0x2E,
- 0x43, 0x32, 0x30, 0x2E, 0x43, 0x3A, 0x3A, 0x3D,
- 0x43, 0x3D, 0x3D, 0x3D, 0x43, 0x43, 0x6F, 0x2E,
- 0x43, 0x46, 0x41, 0x58, 0x43, 0x47, 0x48, 0x7A,
- 0x43, 0x47, 0x50, 0x61, 0x43, 0x49, 0x49, 0x49,
- 0x43, 0x4C, 0x54, 0x44, 0x43, 0x4C, 0xC2, 0xB7,
- 0x43, 0x4D, 0x48, 0x7A, 0x43, 0x4D, 0x50, 0x61,
- 0x43, 0x4D, 0xCE, 0xA9, 0x43, 0x50, 0x50, 0x4D,
- // Bytes 1bc0 - 1bff
- 0x43, 0x50, 0x50, 0x56, 0x43, 0x50, 0x54, 0x45,
- 0x43, 0x54, 0x45, 0x4C, 0x43, 0x54, 0x48, 0x7A,
- 0x43, 0x56, 0x49, 0x49, 0x43, 0x58, 0x49, 0x49,
- 0x43, 0x61, 0x2F, 0x63, 0x43, 0x61, 0x2F, 0x73,
- 0x43, 0x61, 0xCA, 0xBE, 0x43, 0x62, 0x61, 0x72,
- 0x43, 0x63, 0x2F, 0x6F, 0x43, 0x63, 0x2F, 0x75,
- 0x43, 0x63, 0x61, 0x6C, 0x43, 0x63, 0x6D, 0x32,
- 0x43, 0x63, 0x6D, 0x33, 0x43, 0x64, 0x6D, 0x32,
- // Bytes 1c00 - 1c3f
- 0x43, 0x64, 0x6D, 0x33, 0x43, 0x65, 0x72, 0x67,
- 0x43, 0x66, 0x66, 0x69, 0x43, 0x66, 0x66, 0x6C,
- 0x43, 0x67, 0x61, 0x6C, 0x43, 0x68, 0x50, 0x61,
- 0x43, 0x69, 0x69, 0x69, 0x43, 0x6B, 0x48, 0x7A,
- 0x43, 0x6B, 0x50, 0x61, 0x43, 0x6B, 0x6D, 0x32,
- 0x43, 0x6B, 0x6D, 0x33, 0x43, 0x6B, 0xCE, 0xA9,
- 0x43, 0x6C, 0x6F, 0x67, 0x43, 0x6C, 0xC2, 0xB7,
- 0x43, 0x6D, 0x69, 0x6C, 0x43, 0x6D, 0x6D, 0x32,
- // Bytes 1c40 - 1c7f
- 0x43, 0x6D, 0x6D, 0x33, 0x43, 0x6D, 0x6F, 0x6C,
- 0x43, 0x72, 0x61, 0x64, 0x43, 0x76, 0x69, 0x69,
- 0x43, 0x78, 0x69, 0x69, 0x43, 0xC2, 0xB0, 0x43,
- 0x43, 0xC2, 0xB0, 0x46, 0x43, 0xCA, 0xBC, 0x6E,
- 0x43, 0xCE, 0xBC, 0x41, 0x43, 0xCE, 0xBC, 0x46,
- 0x43, 0xCE, 0xBC, 0x56, 0x43, 0xCE, 0xBC, 0x57,
- 0x43, 0xCE, 0xBC, 0x67, 0x43, 0xCE, 0xBC, 0x6C,
- 0x43, 0xCE, 0xBC, 0x6D, 0x43, 0xCE, 0xBC, 0x73,
- // Bytes 1c80 - 1cbf
- 0x44, 0x28, 0x31, 0x30, 0x29, 0x44, 0x28, 0x31,
- 0x31, 0x29, 0x44, 0x28, 0x31, 0x32, 0x29, 0x44,
- 0x28, 0x31, 0x33, 0x29, 0x44, 0x28, 0x31, 0x34,
- 0x29, 0x44, 0x28, 0x31, 0x35, 0x29, 0x44, 0x28,
- 0x31, 0x36, 0x29, 0x44, 0x28, 0x31, 0x37, 0x29,
- 0x44, 0x28, 0x31, 0x38, 0x29, 0x44, 0x28, 0x31,
- 0x39, 0x29, 0x44, 0x28, 0x32, 0x30, 0x29, 0x44,
- 0x30, 0xE7, 0x82, 0xB9, 0x44, 0x31, 0xE2, 0x81,
- // Bytes 1cc0 - 1cff
- 0x84, 0x44, 0x31, 0xE6, 0x97, 0xA5, 0x44, 0x31,
- 0xE6, 0x9C, 0x88, 0x44, 0x31, 0xE7, 0x82, 0xB9,
- 0x44, 0x32, 0xE6, 0x97, 0xA5, 0x44, 0x32, 0xE6,
- 0x9C, 0x88, 0x44, 0x32, 0xE7, 0x82, 0xB9, 0x44,
- 0x33, 0xE6, 0x97, 0xA5, 0x44, 0x33, 0xE6, 0x9C,
- 0x88, 0x44, 0x33, 0xE7, 0x82, 0xB9, 0x44, 0x34,
- 0xE6, 0x97, 0xA5, 0x44, 0x34, 0xE6, 0x9C, 0x88,
- 0x44, 0x34, 0xE7, 0x82, 0xB9, 0x44, 0x35, 0xE6,
- // Bytes 1d00 - 1d3f
- 0x97, 0xA5, 0x44, 0x35, 0xE6, 0x9C, 0x88, 0x44,
- 0x35, 0xE7, 0x82, 0xB9, 0x44, 0x36, 0xE6, 0x97,
- 0xA5, 0x44, 0x36, 0xE6, 0x9C, 0x88, 0x44, 0x36,
- 0xE7, 0x82, 0xB9, 0x44, 0x37, 0xE6, 0x97, 0xA5,
- 0x44, 0x37, 0xE6, 0x9C, 0x88, 0x44, 0x37, 0xE7,
- 0x82, 0xB9, 0x44, 0x38, 0xE6, 0x97, 0xA5, 0x44,
- 0x38, 0xE6, 0x9C, 0x88, 0x44, 0x38, 0xE7, 0x82,
- 0xB9, 0x44, 0x39, 0xE6, 0x97, 0xA5, 0x44, 0x39,
- // Bytes 1d40 - 1d7f
- 0xE6, 0x9C, 0x88, 0x44, 0x39, 0xE7, 0x82, 0xB9,
- 0x44, 0x56, 0x49, 0x49, 0x49, 0x44, 0x61, 0x2E,
- 0x6D, 0x2E, 0x44, 0x6B, 0x63, 0x61, 0x6C, 0x44,
- 0x70, 0x2E, 0x6D, 0x2E, 0x44, 0x76, 0x69, 0x69,
- 0x69, 0x44, 0xD5, 0xA5, 0xD6, 0x82, 0x44, 0xD5,
- 0xB4, 0xD5, 0xA5, 0x44, 0xD5, 0xB4, 0xD5, 0xAB,
- 0x44, 0xD5, 0xB4, 0xD5, 0xAD, 0x44, 0xD5, 0xB4,
- 0xD5, 0xB6, 0x44, 0xD5, 0xBE, 0xD5, 0xB6, 0x44,
- // Bytes 1d80 - 1dbf
- 0xD7, 0x90, 0xD7, 0x9C, 0x44, 0xD8, 0xA7, 0xD9,
- 0xB4, 0x44, 0xD8, 0xA8, 0xD8, 0xAC, 0x44, 0xD8,
- 0xA8, 0xD8, 0xAD, 0x44, 0xD8, 0xA8, 0xD8, 0xAE,
- 0x44, 0xD8, 0xA8, 0xD8, 0xB1, 0x44, 0xD8, 0xA8,
- 0xD8, 0xB2, 0x44, 0xD8, 0xA8, 0xD9, 0x85, 0x44,
- 0xD8, 0xA8, 0xD9, 0x86, 0x44, 0xD8, 0xA8, 0xD9,
- 0x87, 0x44, 0xD8, 0xA8, 0xD9, 0x89, 0x44, 0xD8,
- 0xA8, 0xD9, 0x8A, 0x44, 0xD8, 0xAA, 0xD8, 0xAC,
- // Bytes 1dc0 - 1dff
- 0x44, 0xD8, 0xAA, 0xD8, 0xAD, 0x44, 0xD8, 0xAA,
- 0xD8, 0xAE, 0x44, 0xD8, 0xAA, 0xD8, 0xB1, 0x44,
- 0xD8, 0xAA, 0xD8, 0xB2, 0x44, 0xD8, 0xAA, 0xD9,
- 0x85, 0x44, 0xD8, 0xAA, 0xD9, 0x86, 0x44, 0xD8,
- 0xAA, 0xD9, 0x87, 0x44, 0xD8, 0xAA, 0xD9, 0x89,
- 0x44, 0xD8, 0xAA, 0xD9, 0x8A, 0x44, 0xD8, 0xAB,
- 0xD8, 0xAC, 0x44, 0xD8, 0xAB, 0xD8, 0xB1, 0x44,
- 0xD8, 0xAB, 0xD8, 0xB2, 0x44, 0xD8, 0xAB, 0xD9,
- // Bytes 1e00 - 1e3f
- 0x85, 0x44, 0xD8, 0xAB, 0xD9, 0x86, 0x44, 0xD8,
- 0xAB, 0xD9, 0x87, 0x44, 0xD8, 0xAB, 0xD9, 0x89,
- 0x44, 0xD8, 0xAB, 0xD9, 0x8A, 0x44, 0xD8, 0xAC,
- 0xD8, 0xAD, 0x44, 0xD8, 0xAC, 0xD9, 0x85, 0x44,
- 0xD8, 0xAC, 0xD9, 0x89, 0x44, 0xD8, 0xAC, 0xD9,
- 0x8A, 0x44, 0xD8, 0xAD, 0xD8, 0xAC, 0x44, 0xD8,
- 0xAD, 0xD9, 0x85, 0x44, 0xD8, 0xAD, 0xD9, 0x89,
- 0x44, 0xD8, 0xAD, 0xD9, 0x8A, 0x44, 0xD8, 0xAE,
- // Bytes 1e40 - 1e7f
- 0xD8, 0xAC, 0x44, 0xD8, 0xAE, 0xD8, 0xAD, 0x44,
- 0xD8, 0xAE, 0xD9, 0x85, 0x44, 0xD8, 0xAE, 0xD9,
- 0x89, 0x44, 0xD8, 0xAE, 0xD9, 0x8A, 0x44, 0xD8,
- 0xB3, 0xD8, 0xAC, 0x44, 0xD8, 0xB3, 0xD8, 0xAD,
- 0x44, 0xD8, 0xB3, 0xD8, 0xAE, 0x44, 0xD8, 0xB3,
- 0xD8, 0xB1, 0x44, 0xD8, 0xB3, 0xD9, 0x85, 0x44,
- 0xD8, 0xB3, 0xD9, 0x87, 0x44, 0xD8, 0xB3, 0xD9,
- 0x89, 0x44, 0xD8, 0xB3, 0xD9, 0x8A, 0x44, 0xD8,
- // Bytes 1e80 - 1ebf
- 0xB4, 0xD8, 0xAC, 0x44, 0xD8, 0xB4, 0xD8, 0xAD,
- 0x44, 0xD8, 0xB4, 0xD8, 0xAE, 0x44, 0xD8, 0xB4,
- 0xD8, 0xB1, 0x44, 0xD8, 0xB4, 0xD9, 0x85, 0x44,
- 0xD8, 0xB4, 0xD9, 0x87, 0x44, 0xD8, 0xB4, 0xD9,
- 0x89, 0x44, 0xD8, 0xB4, 0xD9, 0x8A, 0x44, 0xD8,
- 0xB5, 0xD8, 0xAD, 0x44, 0xD8, 0xB5, 0xD8, 0xAE,
- 0x44, 0xD8, 0xB5, 0xD8, 0xB1, 0x44, 0xD8, 0xB5,
- 0xD9, 0x85, 0x44, 0xD8, 0xB5, 0xD9, 0x89, 0x44,
- // Bytes 1ec0 - 1eff
- 0xD8, 0xB5, 0xD9, 0x8A, 0x44, 0xD8, 0xB6, 0xD8,
- 0xAC, 0x44, 0xD8, 0xB6, 0xD8, 0xAD, 0x44, 0xD8,
- 0xB6, 0xD8, 0xAE, 0x44, 0xD8, 0xB6, 0xD8, 0xB1,
- 0x44, 0xD8, 0xB6, 0xD9, 0x85, 0x44, 0xD8, 0xB6,
- 0xD9, 0x89, 0x44, 0xD8, 0xB6, 0xD9, 0x8A, 0x44,
- 0xD8, 0xB7, 0xD8, 0xAD, 0x44, 0xD8, 0xB7, 0xD9,
- 0x85, 0x44, 0xD8, 0xB7, 0xD9, 0x89, 0x44, 0xD8,
- 0xB7, 0xD9, 0x8A, 0x44, 0xD8, 0xB8, 0xD9, 0x85,
- // Bytes 1f00 - 1f3f
- 0x44, 0xD8, 0xB9, 0xD8, 0xAC, 0x44, 0xD8, 0xB9,
- 0xD9, 0x85, 0x44, 0xD8, 0xB9, 0xD9, 0x89, 0x44,
- 0xD8, 0xB9, 0xD9, 0x8A, 0x44, 0xD8, 0xBA, 0xD8,
- 0xAC, 0x44, 0xD8, 0xBA, 0xD9, 0x85, 0x44, 0xD8,
- 0xBA, 0xD9, 0x89, 0x44, 0xD8, 0xBA, 0xD9, 0x8A,
- 0x44, 0xD9, 0x81, 0xD8, 0xAC, 0x44, 0xD9, 0x81,
- 0xD8, 0xAD, 0x44, 0xD9, 0x81, 0xD8, 0xAE, 0x44,
- 0xD9, 0x81, 0xD9, 0x85, 0x44, 0xD9, 0x81, 0xD9,
- // Bytes 1f40 - 1f7f
- 0x89, 0x44, 0xD9, 0x81, 0xD9, 0x8A, 0x44, 0xD9,
- 0x82, 0xD8, 0xAD, 0x44, 0xD9, 0x82, 0xD9, 0x85,
- 0x44, 0xD9, 0x82, 0xD9, 0x89, 0x44, 0xD9, 0x82,
- 0xD9, 0x8A, 0x44, 0xD9, 0x83, 0xD8, 0xA7, 0x44,
- 0xD9, 0x83, 0xD8, 0xAC, 0x44, 0xD9, 0x83, 0xD8,
- 0xAD, 0x44, 0xD9, 0x83, 0xD8, 0xAE, 0x44, 0xD9,
- 0x83, 0xD9, 0x84, 0x44, 0xD9, 0x83, 0xD9, 0x85,
- 0x44, 0xD9, 0x83, 0xD9, 0x89, 0x44, 0xD9, 0x83,
- // Bytes 1f80 - 1fbf
- 0xD9, 0x8A, 0x44, 0xD9, 0x84, 0xD8, 0xA7, 0x44,
- 0xD9, 0x84, 0xD8, 0xAC, 0x44, 0xD9, 0x84, 0xD8,
- 0xAD, 0x44, 0xD9, 0x84, 0xD8, 0xAE, 0x44, 0xD9,
- 0x84, 0xD9, 0x85, 0x44, 0xD9, 0x84, 0xD9, 0x87,
- 0x44, 0xD9, 0x84, 0xD9, 0x89, 0x44, 0xD9, 0x84,
- 0xD9, 0x8A, 0x44, 0xD9, 0x85, 0xD8, 0xA7, 0x44,
- 0xD9, 0x85, 0xD8, 0xAC, 0x44, 0xD9, 0x85, 0xD8,
- 0xAD, 0x44, 0xD9, 0x85, 0xD8, 0xAE, 0x44, 0xD9,
- // Bytes 1fc0 - 1fff
- 0x85, 0xD9, 0x85, 0x44, 0xD9, 0x85, 0xD9, 0x89,
- 0x44, 0xD9, 0x85, 0xD9, 0x8A, 0x44, 0xD9, 0x86,
- 0xD8, 0xAC, 0x44, 0xD9, 0x86, 0xD8, 0xAD, 0x44,
- 0xD9, 0x86, 0xD8, 0xAE, 0x44, 0xD9, 0x86, 0xD8,
- 0xB1, 0x44, 0xD9, 0x86, 0xD8, 0xB2, 0x44, 0xD9,
- 0x86, 0xD9, 0x85, 0x44, 0xD9, 0x86, 0xD9, 0x86,
- 0x44, 0xD9, 0x86, 0xD9, 0x87, 0x44, 0xD9, 0x86,
- 0xD9, 0x89, 0x44, 0xD9, 0x86, 0xD9, 0x8A, 0x44,
- // Bytes 2000 - 203f
- 0xD9, 0x87, 0xD8, 0xAC, 0x44, 0xD9, 0x87, 0xD9,
- 0x85, 0x44, 0xD9, 0x87, 0xD9, 0x89, 0x44, 0xD9,
- 0x87, 0xD9, 0x8A, 0x44, 0xD9, 0x88, 0xD9, 0xB4,
- 0x44, 0xD9, 0x8A, 0xD8, 0xAC, 0x44, 0xD9, 0x8A,
- 0xD8, 0xAD, 0x44, 0xD9, 0x8A, 0xD8, 0xAE, 0x44,
- 0xD9, 0x8A, 0xD8, 0xB1, 0x44, 0xD9, 0x8A, 0xD8,
- 0xB2, 0x44, 0xD9, 0x8A, 0xD9, 0x85, 0x44, 0xD9,
- 0x8A, 0xD9, 0x86, 0x44, 0xD9, 0x8A, 0xD9, 0x87,
- // Bytes 2040 - 207f
- 0x44, 0xD9, 0x8A, 0xD9, 0x89, 0x44, 0xD9, 0x8A,
- 0xD9, 0x8A, 0x44, 0xD9, 0x8A, 0xD9, 0xB4, 0x44,
- 0xDB, 0x87, 0xD9, 0xB4, 0x45, 0x28, 0xE1, 0x84,
- 0x80, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x82, 0x29,
- 0x45, 0x28, 0xE1, 0x84, 0x83, 0x29, 0x45, 0x28,
- 0xE1, 0x84, 0x85, 0x29, 0x45, 0x28, 0xE1, 0x84,
- 0x86, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x87, 0x29,
- 0x45, 0x28, 0xE1, 0x84, 0x89, 0x29, 0x45, 0x28,
- // Bytes 2080 - 20bf
- 0xE1, 0x84, 0x8B, 0x29, 0x45, 0x28, 0xE1, 0x84,
- 0x8C, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8E, 0x29,
- 0x45, 0x28, 0xE1, 0x84, 0x8F, 0x29, 0x45, 0x28,
- 0xE1, 0x84, 0x90, 0x29, 0x45, 0x28, 0xE1, 0x84,
- 0x91, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x92, 0x29,
- 0x45, 0x28, 0xE4, 0xB8, 0x80, 0x29, 0x45, 0x28,
- 0xE4, 0xB8, 0x83, 0x29, 0x45, 0x28, 0xE4, 0xB8,
- 0x89, 0x29, 0x45, 0x28, 0xE4, 0xB9, 0x9D, 0x29,
- // Bytes 20c0 - 20ff
- 0x45, 0x28, 0xE4, 0xBA, 0x8C, 0x29, 0x45, 0x28,
- 0xE4, 0xBA, 0x94, 0x29, 0x45, 0x28, 0xE4, 0xBB,
- 0xA3, 0x29, 0x45, 0x28, 0xE4, 0xBC, 0x81, 0x29,
- 0x45, 0x28, 0xE4, 0xBC, 0x91, 0x29, 0x45, 0x28,
- 0xE5, 0x85, 0xAB, 0x29, 0x45, 0x28, 0xE5, 0x85,
- 0xAD, 0x29, 0x45, 0x28, 0xE5, 0x8A, 0xB4, 0x29,
- 0x45, 0x28, 0xE5, 0x8D, 0x81, 0x29, 0x45, 0x28,
- 0xE5, 0x8D, 0x94, 0x29, 0x45, 0x28, 0xE5, 0x90,
- // Bytes 2100 - 213f
- 0x8D, 0x29, 0x45, 0x28, 0xE5, 0x91, 0xBC, 0x29,
- 0x45, 0x28, 0xE5, 0x9B, 0x9B, 0x29, 0x45, 0x28,
- 0xE5, 0x9C, 0x9F, 0x29, 0x45, 0x28, 0xE5, 0xAD,
- 0xA6, 0x29, 0x45, 0x28, 0xE6, 0x97, 0xA5, 0x29,
- 0x45, 0x28, 0xE6, 0x9C, 0x88, 0x29, 0x45, 0x28,
- 0xE6, 0x9C, 0x89, 0x29, 0x45, 0x28, 0xE6, 0x9C,
- 0xA8, 0x29, 0x45, 0x28, 0xE6, 0xA0, 0xAA, 0x29,
- 0x45, 0x28, 0xE6, 0xB0, 0xB4, 0x29, 0x45, 0x28,
- // Bytes 2140 - 217f
- 0xE7, 0x81, 0xAB, 0x29, 0x45, 0x28, 0xE7, 0x89,
- 0xB9, 0x29, 0x45, 0x28, 0xE7, 0x9B, 0xA3, 0x29,
- 0x45, 0x28, 0xE7, 0xA4, 0xBE, 0x29, 0x45, 0x28,
- 0xE7, 0xA5, 0x9D, 0x29, 0x45, 0x28, 0xE7, 0xA5,
- 0xAD, 0x29, 0x45, 0x28, 0xE8, 0x87, 0xAA, 0x29,
- 0x45, 0x28, 0xE8, 0x87, 0xB3, 0x29, 0x45, 0x28,
- 0xE8, 0xB2, 0xA1, 0x29, 0x45, 0x28, 0xE8, 0xB3,
- 0x87, 0x29, 0x45, 0x28, 0xE9, 0x87, 0x91, 0x29,
- // Bytes 2180 - 21bf
- 0x45, 0x30, 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31,
- 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x30, 0xE6,
- 0x9C, 0x88, 0x45, 0x31, 0x30, 0xE7, 0x82, 0xB9,
- 0x45, 0x31, 0x31, 0xE6, 0x97, 0xA5, 0x45, 0x31,
- 0x31, 0xE6, 0x9C, 0x88, 0x45, 0x31, 0x31, 0xE7,
- 0x82, 0xB9, 0x45, 0x31, 0x32, 0xE6, 0x97, 0xA5,
- 0x45, 0x31, 0x32, 0xE6, 0x9C, 0x88, 0x45, 0x31,
- 0x32, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x33, 0xE6,
- // Bytes 21c0 - 21ff
- 0x97, 0xA5, 0x45, 0x31, 0x33, 0xE7, 0x82, 0xB9,
- 0x45, 0x31, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x31,
- 0x34, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x35, 0xE6,
- 0x97, 0xA5, 0x45, 0x31, 0x35, 0xE7, 0x82, 0xB9,
- 0x45, 0x31, 0x36, 0xE6, 0x97, 0xA5, 0x45, 0x31,
- 0x36, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x37, 0xE6,
- 0x97, 0xA5, 0x45, 0x31, 0x37, 0xE7, 0x82, 0xB9,
- 0x45, 0x31, 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x31,
- // Bytes 2200 - 223f
- 0x38, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x39, 0xE6,
- 0x97, 0xA5, 0x45, 0x31, 0x39, 0xE7, 0x82, 0xB9,
- 0x45, 0x31, 0xE2, 0x81, 0x84, 0x32, 0x45, 0x31,
- 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, 0xE2, 0x81,
- 0x84, 0x34, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x35,
- 0x45, 0x31, 0xE2, 0x81, 0x84, 0x36, 0x45, 0x31,
- 0xE2, 0x81, 0x84, 0x37, 0x45, 0x31, 0xE2, 0x81,
- 0x84, 0x38, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x39,
- // Bytes 2240 - 227f
- 0x45, 0x32, 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x32,
- 0x30, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x31, 0xE6,
- 0x97, 0xA5, 0x45, 0x32, 0x31, 0xE7, 0x82, 0xB9,
- 0x45, 0x32, 0x32, 0xE6, 0x97, 0xA5, 0x45, 0x32,
- 0x32, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x33, 0xE6,
- 0x97, 0xA5, 0x45, 0x32, 0x33, 0xE7, 0x82, 0xB9,
- 0x45, 0x32, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x32,
- 0x34, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x35, 0xE6,
- // Bytes 2280 - 22bf
- 0x97, 0xA5, 0x45, 0x32, 0x36, 0xE6, 0x97, 0xA5,
- 0x45, 0x32, 0x37, 0xE6, 0x97, 0xA5, 0x45, 0x32,
- 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x39, 0xE6,
- 0x97, 0xA5, 0x45, 0x32, 0xE2, 0x81, 0x84, 0x33,
- 0x45, 0x32, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33,
- 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x33, 0x31, 0xE6,
- 0x97, 0xA5, 0x45, 0x33, 0xE2, 0x81, 0x84, 0x34,
- 0x45, 0x33, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33,
- // Bytes 22c0 - 22ff
- 0xE2, 0x81, 0x84, 0x38, 0x45, 0x34, 0xE2, 0x81,
- 0x84, 0x35, 0x45, 0x35, 0xE2, 0x81, 0x84, 0x36,
- 0x45, 0x35, 0xE2, 0x81, 0x84, 0x38, 0x45, 0x37,
- 0xE2, 0x81, 0x84, 0x38, 0x45, 0x41, 0xE2, 0x88,
- 0x95, 0x6D, 0x45, 0x56, 0xE2, 0x88, 0x95, 0x6D,
- 0x45, 0x6D, 0xE2, 0x88, 0x95, 0x73, 0x46, 0x31,
- 0xE2, 0x81, 0x84, 0x31, 0x30, 0x46, 0x43, 0xE2,
- 0x88, 0x95, 0x6B, 0x67, 0x46, 0x6D, 0xE2, 0x88,
- // Bytes 2300 - 233f
- 0x95, 0x73, 0x32, 0x46, 0xD8, 0xA8, 0xD8, 0xAD,
- 0xD9, 0x8A, 0x46, 0xD8, 0xA8, 0xD8, 0xAE, 0xD9,
- 0x8A, 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x85,
- 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x89, 0x46,
- 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8,
- 0xAA, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, 0xD8, 0xAA,
- 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8,
- 0xAE, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAE,
- // Bytes 2340 - 237f
- 0xD9, 0x89, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, 0xD9,
- 0x8A, 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAC,
- 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAD, 0x46,
- 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAE, 0x46, 0xD8,
- 0xAA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAA,
- 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD8,
- 0xAD, 0xD9, 0x89, 0x46, 0xD8, 0xAC, 0xD8, 0xAD,
- 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD8,
- // Bytes 2380 - 23bf
- 0xAD, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x89,
- 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x8A, 0x46,
- 0xD8, 0xAD, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8,
- 0xAD, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAD,
- 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB3, 0xD8,
- 0xAC, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, 0xD8, 0xAC,
- 0xD9, 0x89, 0x46, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8,
- 0xAC, 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x89,
- // Bytes 23c0 - 23ff
- 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x8A, 0x46,
- 0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xAC, 0x46, 0xD8,
- 0xB3, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xB3,
- 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8,
- 0xAC, 0xD9, 0x8A, 0x46, 0xD8, 0xB4, 0xD8, 0xAD,
- 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, 0xD9,
- 0x8A, 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD8, 0xAE,
- 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD9, 0x85, 0x46,
- // Bytes 2400 - 243f
- 0xD8, 0xB5, 0xD8, 0xAD, 0xD8, 0xAD, 0x46, 0xD8,
- 0xB5, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB5,
- 0xD9, 0x84, 0xD9, 0x89, 0x46, 0xD8, 0xB5, 0xD9,
- 0x84, 0xDB, 0x92, 0x46, 0xD8, 0xB5, 0xD9, 0x85,
- 0xD9, 0x85, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9,
- 0x89, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x8A,
- 0x46, 0xD8, 0xB6, 0xD8, 0xAE, 0xD9, 0x85, 0x46,
- 0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8,
- // Bytes 2440 - 247f
- 0xB7, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB7,
- 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB9, 0xD8,
- 0xAC, 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85,
- 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9,
- 0x89, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x8A,
- 0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x85, 0x46,
- 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8,
- 0xBA, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x81,
- // Bytes 2480 - 24bf
- 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x81, 0xD9,
- 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x82, 0xD9, 0x84,
- 0xDB, 0x92, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD8,
- 0xAD, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x85,
- 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x8A, 0x46,
- 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9,
- 0x83, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x84,
- 0xD8, 0xAC, 0xD8, 0xAC, 0x46, 0xD9, 0x84, 0xD8,
- // Bytes 24c0 - 24ff
- 0xAC, 0xD9, 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAC,
- 0xD9, 0x8A, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9,
- 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x89,
- 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x8A, 0x46,
- 0xD9, 0x84, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9,
- 0x84, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD9, 0x84,
- 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8,
- 0xAC, 0xD8, 0xAD, 0x46, 0xD9, 0x85, 0xD8, 0xAC,
- // Bytes 2500 - 253f
- 0xD8, 0xAE, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9,
- 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x8A,
- 0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xAC, 0x46,
- 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9,
- 0x85, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x85,
- 0xD8, 0xAE, 0xD8, 0xAC, 0x46, 0xD9, 0x85, 0xD8,
- 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAE,
- 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD9, 0x85, 0xD9,
- // Bytes 2540 - 257f
- 0x8A, 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD8, 0xAD,
- 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x85, 0x46,
- 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD9,
- 0x86, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x86,
- 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, 0x86, 0xD8,
- 0xAD, 0xD9, 0x89, 0x46, 0xD9, 0x86, 0xD8, 0xAD,
- 0xD9, 0x8A, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9,
- 0x89, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x8A,
- // Bytes 2580 - 25bf
- 0x46, 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xAC, 0x46,
- 0xD9, 0x87, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9,
- 0x8A, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x8A,
- 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9,
- 0x85, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x85,
- 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8,
- 0xA7, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAC,
- 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAD, 0x46,
- // Bytes 25c0 - 25ff
- 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAE, 0x46, 0xD9,
- 0x8A, 0xD9, 0x94, 0xD8, 0xB1, 0x46, 0xD9, 0x8A,
- 0xD9, 0x94, 0xD8, 0xB2, 0x46, 0xD9, 0x8A, 0xD9,
- 0x94, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x94,
- 0xD9, 0x86, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9,
- 0x87, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x88,
- 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x89, 0x46,
- 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x8A, 0x46, 0xD9,
- // Bytes 2600 - 263f
- 0x8A, 0xD9, 0x94, 0xDB, 0x86, 0x46, 0xD9, 0x8A,
- 0xD9, 0x94, 0xDB, 0x87, 0x46, 0xD9, 0x8A, 0xD9,
- 0x94, 0xDB, 0x88, 0x46, 0xD9, 0x8A, 0xD9, 0x94,
- 0xDB, 0x90, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB,
- 0x95, 0x46, 0xE0, 0xB9, 0x8D, 0xE0, 0xB8, 0xB2,
- 0x46, 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0x99, 0x46,
- 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0xA1, 0x46, 0xE0,
- 0xBB, 0x8D, 0xE0, 0xBA, 0xB2, 0x46, 0xE0, 0xBD,
- // Bytes 2640 - 267f
- 0x80, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, 0xBD, 0x82,
- 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x8C, 0xE0,
- 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x91, 0xE0, 0xBE,
- 0xB7, 0x46, 0xE0, 0xBD, 0x96, 0xE0, 0xBE, 0xB7,
- 0x46, 0xE0, 0xBD, 0x9B, 0xE0, 0xBE, 0xB7, 0x46,
- 0xE0, 0xBE, 0x90, 0xE0, 0xBE, 0xB5, 0x46, 0xE0,
- 0xBE, 0x92, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE,
- 0x9C, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA1,
- // Bytes 2680 - 26bf
- 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA6, 0xE0,
- 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xAB, 0xE0, 0xBE,
- 0xB7, 0x46, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,
- 0x46, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x46,
- 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x46, 0xE2,
- 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x46, 0xE3, 0x81,
- 0xBB, 0xE3, 0x81, 0x8B, 0x46, 0xE3, 0x82, 0x88,
- 0xE3, 0x82, 0x8A, 0x46, 0xE3, 0x82, 0xAD, 0xE3,
- // Bytes 26c0 - 26ff
- 0x83, 0xAD, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x82,
- 0xB3, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0x88,
- 0x46, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x46,
- 0xE3, 0x83, 0x8A, 0xE3, 0x83, 0x8E, 0x46, 0xE3,
- 0x83, 0x9B, 0xE3, 0x83, 0xB3, 0x46, 0xE3, 0x83,
- 0x9F, 0xE3, 0x83, 0xAA, 0x46, 0xE3, 0x83, 0xAA,
- 0xE3, 0x83, 0xA9, 0x46, 0xE3, 0x83, 0xAC, 0xE3,
- 0x83, 0xA0, 0x46, 0xE5, 0xA4, 0xA7, 0xE6, 0xAD,
- // Bytes 2700 - 273f
- 0xA3, 0x46, 0xE5, 0xB9, 0xB3, 0xE6, 0x88, 0x90,
- 0x46, 0xE6, 0x98, 0x8E, 0xE6, 0xB2, 0xBB, 0x46,
- 0xE6, 0x98, 0xAD, 0xE5, 0x92, 0x8C, 0x47, 0x72,
- 0x61, 0x64, 0xE2, 0x88, 0x95, 0x73, 0x47, 0xE3,
- 0x80, 0x94, 0x53, 0xE3, 0x80, 0x95, 0x48, 0x28,
- 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x29, 0x48,
- 0x28, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x29,
- 0x48, 0x28, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1,
- // Bytes 2740 - 277f
- 0x29, 0x48, 0x28, 0xE1, 0x84, 0x85, 0xE1, 0x85,
- 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x86, 0xE1,
- 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x87,
- 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84,
- 0x89, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1,
- 0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28,
- 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x29, 0x48,
- 0x28, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xAE, 0x29,
- // Bytes 2780 - 27bf
- 0x48, 0x28, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1,
- 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8F, 0xE1, 0x85,
- 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x90, 0xE1,
- 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x91,
- 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84,
- 0x92, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x72, 0x61,
- 0x64, 0xE2, 0x88, 0x95, 0x73, 0x32, 0x48, 0xD8,
- 0xA7, 0xD9, 0x83, 0xD8, 0xA8, 0xD8, 0xB1, 0x48,
- // Bytes 27c0 - 27ff
- 0xD8, 0xA7, 0xD9, 0x84, 0xD9, 0x84, 0xD9, 0x87,
- 0x48, 0xD8, 0xB1, 0xD8, 0xB3, 0xD9, 0x88, 0xD9,
- 0x84, 0x48, 0xD8, 0xB1, 0xDB, 0x8C, 0xD8, 0xA7,
- 0xD9, 0x84, 0x48, 0xD8, 0xB5, 0xD9, 0x84, 0xD8,
- 0xB9, 0xD9, 0x85, 0x48, 0xD8, 0xB9, 0xD9, 0x84,
- 0xD9, 0x8A, 0xD9, 0x87, 0x48, 0xD9, 0x85, 0xD8,
- 0xAD, 0xD9, 0x85, 0xD8, 0xAF, 0x48, 0xD9, 0x88,
- 0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x49, 0xE2,
- // Bytes 2800 - 283f
- 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,
- 0x49, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0xE2,
- 0x80, 0xB5, 0x49, 0xE2, 0x88, 0xAB, 0xE2, 0x88,
- 0xAB, 0xE2, 0x88, 0xAB, 0x49, 0xE2, 0x88, 0xAE,
- 0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x49, 0xE3,
- 0x80, 0x94, 0xE4, 0xB8, 0x89, 0xE3, 0x80, 0x95,
- 0x49, 0xE3, 0x80, 0x94, 0xE4, 0xBA, 0x8C, 0xE3,
- 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE5, 0x8B,
- // Bytes 2840 - 287f
- 0x9D, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94,
- 0xE5, 0xAE, 0x89, 0xE3, 0x80, 0x95, 0x49, 0xE3,
- 0x80, 0x94, 0xE6, 0x89, 0x93, 0xE3, 0x80, 0x95,
- 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x95, 0x97, 0xE3,
- 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x9C,
- 0xAC, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94,
- 0xE7, 0x82, 0xB9, 0xE3, 0x80, 0x95, 0x49, 0xE3,
- 0x80, 0x94, 0xE7, 0x9B, 0x97, 0xE3, 0x80, 0x95,
- // Bytes 2880 - 28bf
- 0x49, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xBC, 0xE3,
- 0x83, 0xAB, 0x49, 0xE3, 0x82, 0xA4, 0xE3, 0x83,
- 0xB3, 0xE3, 0x83, 0x81, 0x49, 0xE3, 0x82, 0xA6,
- 0xE3, 0x82, 0xA9, 0xE3, 0x83, 0xB3, 0x49, 0xE3,
- 0x82, 0xAA, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB9,
- 0x49, 0xE3, 0x82, 0xAA, 0xE3, 0x83, 0xBC, 0xE3,
- 0x83, 0xA0, 0x49, 0xE3, 0x82, 0xAB, 0xE3, 0x82,
- 0xA4, 0xE3, 0x83, 0xAA, 0x49, 0xE3, 0x82, 0xB1,
- // Bytes 28c0 - 28ff
- 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB9, 0x49, 0xE3,
- 0x82, 0xB3, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x8A,
- 0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3,
- 0x83, 0x81, 0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83,
- 0xB3, 0xE3, 0x83, 0x88, 0x49, 0xE3, 0x83, 0x86,
- 0xE3, 0x82, 0x99, 0xE3, 0x82, 0xB7, 0x49, 0xE3,
- 0x83, 0x88, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB,
- 0x49, 0xE3, 0x83, 0x8E, 0xE3, 0x83, 0x83, 0xE3,
- // Bytes 2900 - 293f
- 0x83, 0x88, 0x49, 0xE3, 0x83, 0x8F, 0xE3, 0x82,
- 0xA4, 0xE3, 0x83, 0x84, 0x49, 0xE3, 0x83, 0x92,
- 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0x49, 0xE3,
- 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xB3,
- 0x49, 0xE3, 0x83, 0x95, 0xE3, 0x83, 0xA9, 0xE3,
- 0x83, 0xB3, 0x49, 0xE3, 0x83, 0x98, 0xE3, 0x82,
- 0x9A, 0xE3, 0x82, 0xBD, 0x49, 0xE3, 0x83, 0x98,
- 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x84, 0x49, 0xE3,
- // Bytes 2940 - 297f
- 0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB,
- 0x49, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3,
- 0x83, 0xB3, 0x49, 0xE3, 0x83, 0x9E, 0xE3, 0x82,
- 0xA4, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x9E,
- 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x8F, 0x49, 0xE3,
- 0x83, 0x9E, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xAF,
- 0x49, 0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xBC, 0xE3,
- 0x83, 0xAB, 0x49, 0xE3, 0x83, 0xA6, 0xE3, 0x82,
- // Bytes 2980 - 29bf
- 0xA2, 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x83, 0xAF,
- 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0x4C, 0xE2,
- 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,
- 0xE2, 0x80, 0xB2, 0x4C, 0xE2, 0x88, 0xAB, 0xE2,
- 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB,
- 0x4C, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xAB, 0xE3,
- 0x83, 0x95, 0xE3, 0x82, 0xA1, 0x4C, 0xE3, 0x82,
- 0xA8, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xAB, 0xE3,
- // Bytes 29c0 - 29ff
- 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x82,
- 0x99, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xB3, 0x4C,
- 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83,
- 0xB3, 0xE3, 0x83, 0x9E, 0x4C, 0xE3, 0x82, 0xAB,
- 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0x83, 0xE3, 0x83,
- 0x88, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xAD,
- 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, 0x4C, 0xE3,
- 0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x8B,
- // Bytes 2a00 - 2a3f
- 0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAD, 0xE3,
- 0x83, 0xA5, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC,
- 0x4C, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3,
- 0x83, 0xA9, 0xE3, 0x83, 0xA0, 0x4C, 0xE3, 0x82,
- 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xBC, 0xE3,
- 0x83, 0x8D, 0x4C, 0xE3, 0x82, 0xB5, 0xE3, 0x82,
- 0xA4, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C,
- 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83,
- // Bytes 2a40 - 2a7f
- 0xBC, 0xE3, 0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x8F,
- 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83,
- 0x84, 0x4C, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A,
- 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, 0xE3,
- 0x83, 0x95, 0xE3, 0x82, 0xA3, 0xE3, 0x83, 0xBC,
- 0xE3, 0x83, 0x88, 0x4C, 0xE3, 0x83, 0x98, 0xE3,
- 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xBF,
- 0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3,
- // Bytes 2a80 - 2abf
- 0x83, 0x8B, 0xE3, 0x83, 0x92, 0x4C, 0xE3, 0x83,
- 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xB3, 0xE3,
- 0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x9B, 0xE3, 0x82,
- 0x99, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x88, 0x4C,
- 0xE3, 0x83, 0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x82,
- 0xAF, 0xE3, 0x83, 0xAD, 0x4C, 0xE3, 0x83, 0x9F,
- 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83,
- 0xB3, 0x4C, 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xBC,
- // Bytes 2ac0 - 2aff
- 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x4C, 0xE3,
- 0x83, 0xAA, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88,
- 0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x83, 0xAB, 0xE3,
- 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC,
- 0x4C, 0xE6, 0xA0, 0xAA, 0xE5, 0xBC, 0x8F, 0xE4,
- 0xBC, 0x9A, 0xE7, 0xA4, 0xBE, 0x4E, 0x28, 0xE1,
- 0x84, 0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x92,
- 0xE1, 0x85, 0xAE, 0x29, 0x4F, 0xD8, 0xAC, 0xD9,
- // Bytes 2b00 - 2b3f
- 0x84, 0x20, 0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xA7,
- 0xD9, 0x84, 0xD9, 0x87, 0x4F, 0xE3, 0x82, 0xA2,
- 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83,
- 0xBC, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xA2,
- 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x98, 0xE3, 0x82,
- 0x9A, 0xE3, 0x82, 0xA2, 0x4F, 0xE3, 0x82, 0xAD,
- 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xAF, 0xE3, 0x83,
- 0x83, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xB5,
- // Bytes 2b40 - 2b7f
- 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x81, 0xE3, 0x83,
- 0xBC, 0xE3, 0x83, 0xA0, 0x4F, 0xE3, 0x83, 0x8F,
- 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83,
- 0xAC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x98,
- 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0xBF, 0xE3, 0x83,
- 0xBC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x9B,
- 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA4, 0xE3, 0x83,
- 0xB3, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x83, 0x9E,
- // Bytes 2b80 - 2bbf
- 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB7, 0xE3, 0x83,
- 0xA7, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xA1,
- 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83,
- 0x88, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xAB,
- 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x95, 0xE3, 0x82,
- 0x99, 0xE3, 0x83, 0xAB, 0x51, 0x28, 0xE1, 0x84,
- 0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x8C, 0xE1,
- 0x85, 0xA5, 0xE1, 0x86, 0xAB, 0x29, 0x52, 0xE3,
- // Bytes 2bc0 - 2bff
- 0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB,
- 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83,
- 0xBC, 0x52, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD,
- 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83,
- 0xA9, 0xE3, 0x83, 0xA0, 0x52, 0xE3, 0x82, 0xAD,
- 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xA1, 0xE3, 0x83,
- 0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x52,
- 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83,
- // Bytes 2c00 - 2c3f
- 0xA9, 0xE3, 0x83, 0xA0, 0xE3, 0x83, 0x88, 0xE3,
- 0x83, 0xB3, 0x52, 0xE3, 0x82, 0xAF, 0xE3, 0x83,
- 0xAB, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0xE3,
- 0x82, 0xA4, 0xE3, 0x83, 0xAD, 0x52, 0xE3, 0x83,
- 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3,
- 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88,
- 0x52, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3,
- 0x82, 0xA2, 0xE3, 0x82, 0xB9, 0xE3, 0x83, 0x88,
- // Bytes 2c40 - 2c7f
- 0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x83, 0x95, 0xE3,
- 0x82, 0x99, 0xE3, 0x83, 0x83, 0xE3, 0x82, 0xB7,
- 0xE3, 0x82, 0xA7, 0xE3, 0x83, 0xAB, 0x52, 0xE3,
- 0x83, 0x9F, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0x8F,
- 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83,
- 0xAB, 0x52, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xB3,
- 0xE3, 0x83, 0x88, 0xE3, 0x82, 0xB1, 0xE3, 0x82,
- 0x99, 0xE3, 0x83, 0xB3, 0x61, 0xD8, 0xB5, 0xD9,
- // Bytes 2c80 - 2cbf
- 0x84, 0xD9, 0x89, 0x20, 0xD8, 0xA7, 0xD9, 0x84,
- 0xD9, 0x84, 0xD9, 0x87, 0x20, 0xD8, 0xB9, 0xD9,
- 0x84, 0xD9, 0x8A, 0xD9, 0x87, 0x20, 0xD9, 0x88,
- 0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x06, 0xE0,
- 0xA7, 0x87, 0xE0, 0xA6, 0xBE, 0x01, 0x06, 0xE0,
- 0xA7, 0x87, 0xE0, 0xA7, 0x97, 0x01, 0x06, 0xE0,
- 0xAD, 0x87, 0xE0, 0xAC, 0xBE, 0x01, 0x06, 0xE0,
- 0xAD, 0x87, 0xE0, 0xAD, 0x96, 0x01, 0x06, 0xE0,
- // Bytes 2cc0 - 2cff
- 0xAD, 0x87, 0xE0, 0xAD, 0x97, 0x01, 0x06, 0xE0,
- 0xAE, 0x92, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0,
- 0xAF, 0x86, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0,
- 0xAF, 0x86, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0,
- 0xAF, 0x87, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0,
- 0xB2, 0xBF, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0,
- 0xB3, 0x86, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0,
- 0xB3, 0x86, 0xE0, 0xB3, 0x96, 0x01, 0x06, 0xE0,
- // Bytes 2d00 - 2d3f
- 0xB5, 0x86, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0,
- 0xB5, 0x86, 0xE0, 0xB5, 0x97, 0x01, 0x06, 0xE0,
- 0xB5, 0x87, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0,
- 0xB7, 0x99, 0xE0, 0xB7, 0x9F, 0x01, 0x06, 0xE1,
- 0x80, 0xA5, 0xE1, 0x80, 0xAE, 0x01, 0x06, 0xE1,
- 0xAC, 0x85, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,
- 0xAC, 0x87, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,
- 0xAC, 0x89, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,
- // Bytes 2d40 - 2d7f
- 0xAC, 0x8B, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,
- 0xAC, 0x8D, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,
- 0xAC, 0x91, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,
- 0xAC, 0xBA, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,
- 0xAC, 0xBC, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,
- 0xAC, 0xBE, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,
- 0xAC, 0xBF, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,
- 0xAD, 0x82, 0xE1, 0xAC, 0xB5, 0x01, 0x08, 0xF0,
- // Bytes 2d80 - 2dbf
- 0x91, 0x84, 0xB1, 0xF0, 0x91, 0x84, 0xA7, 0x01,
- 0x08, 0xF0, 0x91, 0x84, 0xB2, 0xF0, 0x91, 0x84,
- 0xA7, 0x01, 0x08, 0xF0, 0x91, 0x8D, 0x87, 0xF0,
- 0x91, 0x8C, 0xBE, 0x01, 0x08, 0xF0, 0x91, 0x8D,
- 0x87, 0xF0, 0x91, 0x8D, 0x97, 0x01, 0x08, 0xF0,
- 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xB0, 0x01,
- 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92,
- 0xBA, 0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0,
- // Bytes 2dc0 - 2dff
- 0x91, 0x92, 0xBD, 0x01, 0x08, 0xF0, 0x91, 0x96,
- 0xB8, 0xF0, 0x91, 0x96, 0xAF, 0x01, 0x08, 0xF0,
- 0x91, 0x96, 0xB9, 0xF0, 0x91, 0x96, 0xAF, 0x01,
- 0x09, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0xE0,
- 0xB3, 0x95, 0x02, 0x09, 0xE0, 0xB7, 0x99, 0xE0,
- 0xB7, 0x8F, 0xE0, 0xB7, 0x8A, 0x12, 0x44, 0x44,
- 0x5A, 0xCC, 0x8C, 0xC9, 0x44, 0x44, 0x7A, 0xCC,
- 0x8C, 0xC9, 0x44, 0x64, 0x7A, 0xCC, 0x8C, 0xC9,
- // Bytes 2e00 - 2e3f
- 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x93, 0xC9,
- 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x94, 0xC9,
- 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x95, 0xB5,
- 0x46, 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x01,
- 0x46, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x01,
- 0x46, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, 0x01,
- 0x46, 0xE1, 0x84, 0x85, 0xE1, 0x85, 0xA1, 0x01,
- 0x46, 0xE1, 0x84, 0x86, 0xE1, 0x85, 0xA1, 0x01,
- // Bytes 2e40 - 2e7f
- 0x46, 0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1, 0x01,
- 0x46, 0xE1, 0x84, 0x89, 0xE1, 0x85, 0xA1, 0x01,
- 0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x01,
- 0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xAE, 0x01,
- 0x46, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x01,
- 0x46, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, 0x01,
- 0x46, 0xE1, 0x84, 0x8F, 0xE1, 0x85, 0xA1, 0x01,
- 0x46, 0xE1, 0x84, 0x90, 0xE1, 0x85, 0xA1, 0x01,
- // Bytes 2e80 - 2ebf
- 0x46, 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1, 0x01,
- 0x46, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0x01,
- 0x49, 0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB, 0xE3,
- 0x82, 0x99, 0x0D, 0x4C, 0xE1, 0x84, 0x8C, 0xE1,
- 0x85, 0xAE, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xB4,
- 0x01, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99,
- 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D, 0x4C,
- 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0xBC, 0xE3, 0x83,
- // Bytes 2ec0 - 2eff
- 0x9B, 0xE3, 0x82, 0x9A, 0x0D, 0x4C, 0xE3, 0x83,
- 0xA4, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3,
- 0x82, 0x99, 0x0D, 0x4F, 0xE1, 0x84, 0x8E, 0xE1,
- 0x85, 0xA1, 0xE1, 0x86, 0xB7, 0xE1, 0x84, 0x80,
- 0xE1, 0x85, 0xA9, 0x01, 0x4F, 0xE3, 0x82, 0xA4,
- 0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xB3, 0xE3, 0x82,
- 0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3, 0x82,
- 0xB7, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xB3, 0xE3,
- // Bytes 2f00 - 2f3f
- 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3,
- 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC,
- 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D, 0x4F,
- 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0xE3, 0x83,
- 0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D,
- 0x52, 0xE3, 0x82, 0xA8, 0xE3, 0x82, 0xB9, 0xE3,
- 0x82, 0xAF, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88,
- 0xE3, 0x82, 0x99, 0x0D, 0x52, 0xE3, 0x83, 0x95,
- // Bytes 2f40 - 2f7f
- 0xE3, 0x82, 0xA1, 0xE3, 0x83, 0xA9, 0xE3, 0x83,
- 0x83, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D,
- 0x86, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0x01,
- 0x86, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8F, 0x01,
- 0x03, 0x3C, 0xCC, 0xB8, 0x05, 0x03, 0x3D, 0xCC,
- 0xB8, 0x05, 0x03, 0x3E, 0xCC, 0xB8, 0x05, 0x03,
- 0x41, 0xCC, 0x80, 0xC9, 0x03, 0x41, 0xCC, 0x81,
- 0xC9, 0x03, 0x41, 0xCC, 0x83, 0xC9, 0x03, 0x41,
- // Bytes 2f80 - 2fbf
- 0xCC, 0x84, 0xC9, 0x03, 0x41, 0xCC, 0x89, 0xC9,
- 0x03, 0x41, 0xCC, 0x8C, 0xC9, 0x03, 0x41, 0xCC,
- 0x8F, 0xC9, 0x03, 0x41, 0xCC, 0x91, 0xC9, 0x03,
- 0x41, 0xCC, 0xA5, 0xB5, 0x03, 0x41, 0xCC, 0xA8,
- 0xA5, 0x03, 0x42, 0xCC, 0x87, 0xC9, 0x03, 0x42,
- 0xCC, 0xA3, 0xB5, 0x03, 0x42, 0xCC, 0xB1, 0xB5,
- 0x03, 0x43, 0xCC, 0x81, 0xC9, 0x03, 0x43, 0xCC,
- 0x82, 0xC9, 0x03, 0x43, 0xCC, 0x87, 0xC9, 0x03,
- // Bytes 2fc0 - 2fff
- 0x43, 0xCC, 0x8C, 0xC9, 0x03, 0x44, 0xCC, 0x87,
- 0xC9, 0x03, 0x44, 0xCC, 0x8C, 0xC9, 0x03, 0x44,
- 0xCC, 0xA3, 0xB5, 0x03, 0x44, 0xCC, 0xA7, 0xA5,
- 0x03, 0x44, 0xCC, 0xAD, 0xB5, 0x03, 0x44, 0xCC,
- 0xB1, 0xB5, 0x03, 0x45, 0xCC, 0x80, 0xC9, 0x03,
- 0x45, 0xCC, 0x81, 0xC9, 0x03, 0x45, 0xCC, 0x83,
- 0xC9, 0x03, 0x45, 0xCC, 0x86, 0xC9, 0x03, 0x45,
- 0xCC, 0x87, 0xC9, 0x03, 0x45, 0xCC, 0x88, 0xC9,
- // Bytes 3000 - 303f
- 0x03, 0x45, 0xCC, 0x89, 0xC9, 0x03, 0x45, 0xCC,
- 0x8C, 0xC9, 0x03, 0x45, 0xCC, 0x8F, 0xC9, 0x03,
- 0x45, 0xCC, 0x91, 0xC9, 0x03, 0x45, 0xCC, 0xA8,
- 0xA5, 0x03, 0x45, 0xCC, 0xAD, 0xB5, 0x03, 0x45,
- 0xCC, 0xB0, 0xB5, 0x03, 0x46, 0xCC, 0x87, 0xC9,
- 0x03, 0x47, 0xCC, 0x81, 0xC9, 0x03, 0x47, 0xCC,
- 0x82, 0xC9, 0x03, 0x47, 0xCC, 0x84, 0xC9, 0x03,
- 0x47, 0xCC, 0x86, 0xC9, 0x03, 0x47, 0xCC, 0x87,
- // Bytes 3040 - 307f
- 0xC9, 0x03, 0x47, 0xCC, 0x8C, 0xC9, 0x03, 0x47,
- 0xCC, 0xA7, 0xA5, 0x03, 0x48, 0xCC, 0x82, 0xC9,
- 0x03, 0x48, 0xCC, 0x87, 0xC9, 0x03, 0x48, 0xCC,
- 0x88, 0xC9, 0x03, 0x48, 0xCC, 0x8C, 0xC9, 0x03,
- 0x48, 0xCC, 0xA3, 0xB5, 0x03, 0x48, 0xCC, 0xA7,
- 0xA5, 0x03, 0x48, 0xCC, 0xAE, 0xB5, 0x03, 0x49,
- 0xCC, 0x80, 0xC9, 0x03, 0x49, 0xCC, 0x81, 0xC9,
- 0x03, 0x49, 0xCC, 0x82, 0xC9, 0x03, 0x49, 0xCC,
- // Bytes 3080 - 30bf
- 0x83, 0xC9, 0x03, 0x49, 0xCC, 0x84, 0xC9, 0x03,
- 0x49, 0xCC, 0x86, 0xC9, 0x03, 0x49, 0xCC, 0x87,
- 0xC9, 0x03, 0x49, 0xCC, 0x89, 0xC9, 0x03, 0x49,
- 0xCC, 0x8C, 0xC9, 0x03, 0x49, 0xCC, 0x8F, 0xC9,
- 0x03, 0x49, 0xCC, 0x91, 0xC9, 0x03, 0x49, 0xCC,
- 0xA3, 0xB5, 0x03, 0x49, 0xCC, 0xA8, 0xA5, 0x03,
- 0x49, 0xCC, 0xB0, 0xB5, 0x03, 0x4A, 0xCC, 0x82,
- 0xC9, 0x03, 0x4B, 0xCC, 0x81, 0xC9, 0x03, 0x4B,
- // Bytes 30c0 - 30ff
- 0xCC, 0x8C, 0xC9, 0x03, 0x4B, 0xCC, 0xA3, 0xB5,
- 0x03, 0x4B, 0xCC, 0xA7, 0xA5, 0x03, 0x4B, 0xCC,
- 0xB1, 0xB5, 0x03, 0x4C, 0xCC, 0x81, 0xC9, 0x03,
- 0x4C, 0xCC, 0x8C, 0xC9, 0x03, 0x4C, 0xCC, 0xA7,
- 0xA5, 0x03, 0x4C, 0xCC, 0xAD, 0xB5, 0x03, 0x4C,
- 0xCC, 0xB1, 0xB5, 0x03, 0x4D, 0xCC, 0x81, 0xC9,
- 0x03, 0x4D, 0xCC, 0x87, 0xC9, 0x03, 0x4D, 0xCC,
- 0xA3, 0xB5, 0x03, 0x4E, 0xCC, 0x80, 0xC9, 0x03,
- // Bytes 3100 - 313f
- 0x4E, 0xCC, 0x81, 0xC9, 0x03, 0x4E, 0xCC, 0x83,
- 0xC9, 0x03, 0x4E, 0xCC, 0x87, 0xC9, 0x03, 0x4E,
- 0xCC, 0x8C, 0xC9, 0x03, 0x4E, 0xCC, 0xA3, 0xB5,
- 0x03, 0x4E, 0xCC, 0xA7, 0xA5, 0x03, 0x4E, 0xCC,
- 0xAD, 0xB5, 0x03, 0x4E, 0xCC, 0xB1, 0xB5, 0x03,
- 0x4F, 0xCC, 0x80, 0xC9, 0x03, 0x4F, 0xCC, 0x81,
- 0xC9, 0x03, 0x4F, 0xCC, 0x86, 0xC9, 0x03, 0x4F,
- 0xCC, 0x89, 0xC9, 0x03, 0x4F, 0xCC, 0x8B, 0xC9,
- // Bytes 3140 - 317f
- 0x03, 0x4F, 0xCC, 0x8C, 0xC9, 0x03, 0x4F, 0xCC,
- 0x8F, 0xC9, 0x03, 0x4F, 0xCC, 0x91, 0xC9, 0x03,
- 0x50, 0xCC, 0x81, 0xC9, 0x03, 0x50, 0xCC, 0x87,
- 0xC9, 0x03, 0x52, 0xCC, 0x81, 0xC9, 0x03, 0x52,
- 0xCC, 0x87, 0xC9, 0x03, 0x52, 0xCC, 0x8C, 0xC9,
- 0x03, 0x52, 0xCC, 0x8F, 0xC9, 0x03, 0x52, 0xCC,
- 0x91, 0xC9, 0x03, 0x52, 0xCC, 0xA7, 0xA5, 0x03,
- 0x52, 0xCC, 0xB1, 0xB5, 0x03, 0x53, 0xCC, 0x82,
- // Bytes 3180 - 31bf
- 0xC9, 0x03, 0x53, 0xCC, 0x87, 0xC9, 0x03, 0x53,
- 0xCC, 0xA6, 0xB5, 0x03, 0x53, 0xCC, 0xA7, 0xA5,
- 0x03, 0x54, 0xCC, 0x87, 0xC9, 0x03, 0x54, 0xCC,
- 0x8C, 0xC9, 0x03, 0x54, 0xCC, 0xA3, 0xB5, 0x03,
- 0x54, 0xCC, 0xA6, 0xB5, 0x03, 0x54, 0xCC, 0xA7,
- 0xA5, 0x03, 0x54, 0xCC, 0xAD, 0xB5, 0x03, 0x54,
- 0xCC, 0xB1, 0xB5, 0x03, 0x55, 0xCC, 0x80, 0xC9,
- 0x03, 0x55, 0xCC, 0x81, 0xC9, 0x03, 0x55, 0xCC,
- // Bytes 31c0 - 31ff
- 0x82, 0xC9, 0x03, 0x55, 0xCC, 0x86, 0xC9, 0x03,
- 0x55, 0xCC, 0x89, 0xC9, 0x03, 0x55, 0xCC, 0x8A,
- 0xC9, 0x03, 0x55, 0xCC, 0x8B, 0xC9, 0x03, 0x55,
- 0xCC, 0x8C, 0xC9, 0x03, 0x55, 0xCC, 0x8F, 0xC9,
- 0x03, 0x55, 0xCC, 0x91, 0xC9, 0x03, 0x55, 0xCC,
- 0xA3, 0xB5, 0x03, 0x55, 0xCC, 0xA4, 0xB5, 0x03,
- 0x55, 0xCC, 0xA8, 0xA5, 0x03, 0x55, 0xCC, 0xAD,
- 0xB5, 0x03, 0x55, 0xCC, 0xB0, 0xB5, 0x03, 0x56,
- // Bytes 3200 - 323f
- 0xCC, 0x83, 0xC9, 0x03, 0x56, 0xCC, 0xA3, 0xB5,
- 0x03, 0x57, 0xCC, 0x80, 0xC9, 0x03, 0x57, 0xCC,
- 0x81, 0xC9, 0x03, 0x57, 0xCC, 0x82, 0xC9, 0x03,
- 0x57, 0xCC, 0x87, 0xC9, 0x03, 0x57, 0xCC, 0x88,
- 0xC9, 0x03, 0x57, 0xCC, 0xA3, 0xB5, 0x03, 0x58,
- 0xCC, 0x87, 0xC9, 0x03, 0x58, 0xCC, 0x88, 0xC9,
- 0x03, 0x59, 0xCC, 0x80, 0xC9, 0x03, 0x59, 0xCC,
- 0x81, 0xC9, 0x03, 0x59, 0xCC, 0x82, 0xC9, 0x03,
- // Bytes 3240 - 327f
- 0x59, 0xCC, 0x83, 0xC9, 0x03, 0x59, 0xCC, 0x84,
- 0xC9, 0x03, 0x59, 0xCC, 0x87, 0xC9, 0x03, 0x59,
- 0xCC, 0x88, 0xC9, 0x03, 0x59, 0xCC, 0x89, 0xC9,
- 0x03, 0x59, 0xCC, 0xA3, 0xB5, 0x03, 0x5A, 0xCC,
- 0x81, 0xC9, 0x03, 0x5A, 0xCC, 0x82, 0xC9, 0x03,
- 0x5A, 0xCC, 0x87, 0xC9, 0x03, 0x5A, 0xCC, 0x8C,
- 0xC9, 0x03, 0x5A, 0xCC, 0xA3, 0xB5, 0x03, 0x5A,
- 0xCC, 0xB1, 0xB5, 0x03, 0x61, 0xCC, 0x80, 0xC9,
- // Bytes 3280 - 32bf
- 0x03, 0x61, 0xCC, 0x81, 0xC9, 0x03, 0x61, 0xCC,
- 0x83, 0xC9, 0x03, 0x61, 0xCC, 0x84, 0xC9, 0x03,
- 0x61, 0xCC, 0x89, 0xC9, 0x03, 0x61, 0xCC, 0x8C,
- 0xC9, 0x03, 0x61, 0xCC, 0x8F, 0xC9, 0x03, 0x61,
- 0xCC, 0x91, 0xC9, 0x03, 0x61, 0xCC, 0xA5, 0xB5,
- 0x03, 0x61, 0xCC, 0xA8, 0xA5, 0x03, 0x62, 0xCC,
- 0x87, 0xC9, 0x03, 0x62, 0xCC, 0xA3, 0xB5, 0x03,
- 0x62, 0xCC, 0xB1, 0xB5, 0x03, 0x63, 0xCC, 0x81,
- // Bytes 32c0 - 32ff
- 0xC9, 0x03, 0x63, 0xCC, 0x82, 0xC9, 0x03, 0x63,
- 0xCC, 0x87, 0xC9, 0x03, 0x63, 0xCC, 0x8C, 0xC9,
- 0x03, 0x64, 0xCC, 0x87, 0xC9, 0x03, 0x64, 0xCC,
- 0x8C, 0xC9, 0x03, 0x64, 0xCC, 0xA3, 0xB5, 0x03,
- 0x64, 0xCC, 0xA7, 0xA5, 0x03, 0x64, 0xCC, 0xAD,
- 0xB5, 0x03, 0x64, 0xCC, 0xB1, 0xB5, 0x03, 0x65,
- 0xCC, 0x80, 0xC9, 0x03, 0x65, 0xCC, 0x81, 0xC9,
- 0x03, 0x65, 0xCC, 0x83, 0xC9, 0x03, 0x65, 0xCC,
- // Bytes 3300 - 333f
- 0x86, 0xC9, 0x03, 0x65, 0xCC, 0x87, 0xC9, 0x03,
- 0x65, 0xCC, 0x88, 0xC9, 0x03, 0x65, 0xCC, 0x89,
- 0xC9, 0x03, 0x65, 0xCC, 0x8C, 0xC9, 0x03, 0x65,
- 0xCC, 0x8F, 0xC9, 0x03, 0x65, 0xCC, 0x91, 0xC9,
- 0x03, 0x65, 0xCC, 0xA8, 0xA5, 0x03, 0x65, 0xCC,
- 0xAD, 0xB5, 0x03, 0x65, 0xCC, 0xB0, 0xB5, 0x03,
- 0x66, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC, 0x81,
- 0xC9, 0x03, 0x67, 0xCC, 0x82, 0xC9, 0x03, 0x67,
- // Bytes 3340 - 337f
- 0xCC, 0x84, 0xC9, 0x03, 0x67, 0xCC, 0x86, 0xC9,
- 0x03, 0x67, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC,
- 0x8C, 0xC9, 0x03, 0x67, 0xCC, 0xA7, 0xA5, 0x03,
- 0x68, 0xCC, 0x82, 0xC9, 0x03, 0x68, 0xCC, 0x87,
- 0xC9, 0x03, 0x68, 0xCC, 0x88, 0xC9, 0x03, 0x68,
- 0xCC, 0x8C, 0xC9, 0x03, 0x68, 0xCC, 0xA3, 0xB5,
- 0x03, 0x68, 0xCC, 0xA7, 0xA5, 0x03, 0x68, 0xCC,
- 0xAE, 0xB5, 0x03, 0x68, 0xCC, 0xB1, 0xB5, 0x03,
- // Bytes 3380 - 33bf
- 0x69, 0xCC, 0x80, 0xC9, 0x03, 0x69, 0xCC, 0x81,
- 0xC9, 0x03, 0x69, 0xCC, 0x82, 0xC9, 0x03, 0x69,
- 0xCC, 0x83, 0xC9, 0x03, 0x69, 0xCC, 0x84, 0xC9,
- 0x03, 0x69, 0xCC, 0x86, 0xC9, 0x03, 0x69, 0xCC,
- 0x89, 0xC9, 0x03, 0x69, 0xCC, 0x8C, 0xC9, 0x03,
- 0x69, 0xCC, 0x8F, 0xC9, 0x03, 0x69, 0xCC, 0x91,
- 0xC9, 0x03, 0x69, 0xCC, 0xA3, 0xB5, 0x03, 0x69,
- 0xCC, 0xA8, 0xA5, 0x03, 0x69, 0xCC, 0xB0, 0xB5,
- // Bytes 33c0 - 33ff
- 0x03, 0x6A, 0xCC, 0x82, 0xC9, 0x03, 0x6A, 0xCC,
- 0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0x81, 0xC9, 0x03,
- 0x6B, 0xCC, 0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0xA3,
- 0xB5, 0x03, 0x6B, 0xCC, 0xA7, 0xA5, 0x03, 0x6B,
- 0xCC, 0xB1, 0xB5, 0x03, 0x6C, 0xCC, 0x81, 0xC9,
- 0x03, 0x6C, 0xCC, 0x8C, 0xC9, 0x03, 0x6C, 0xCC,
- 0xA7, 0xA5, 0x03, 0x6C, 0xCC, 0xAD, 0xB5, 0x03,
- 0x6C, 0xCC, 0xB1, 0xB5, 0x03, 0x6D, 0xCC, 0x81,
- // Bytes 3400 - 343f
- 0xC9, 0x03, 0x6D, 0xCC, 0x87, 0xC9, 0x03, 0x6D,
- 0xCC, 0xA3, 0xB5, 0x03, 0x6E, 0xCC, 0x80, 0xC9,
- 0x03, 0x6E, 0xCC, 0x81, 0xC9, 0x03, 0x6E, 0xCC,
- 0x83, 0xC9, 0x03, 0x6E, 0xCC, 0x87, 0xC9, 0x03,
- 0x6E, 0xCC, 0x8C, 0xC9, 0x03, 0x6E, 0xCC, 0xA3,
- 0xB5, 0x03, 0x6E, 0xCC, 0xA7, 0xA5, 0x03, 0x6E,
- 0xCC, 0xAD, 0xB5, 0x03, 0x6E, 0xCC, 0xB1, 0xB5,
- 0x03, 0x6F, 0xCC, 0x80, 0xC9, 0x03, 0x6F, 0xCC,
- // Bytes 3440 - 347f
- 0x81, 0xC9, 0x03, 0x6F, 0xCC, 0x86, 0xC9, 0x03,
- 0x6F, 0xCC, 0x89, 0xC9, 0x03, 0x6F, 0xCC, 0x8B,
- 0xC9, 0x03, 0x6F, 0xCC, 0x8C, 0xC9, 0x03, 0x6F,
- 0xCC, 0x8F, 0xC9, 0x03, 0x6F, 0xCC, 0x91, 0xC9,
- 0x03, 0x70, 0xCC, 0x81, 0xC9, 0x03, 0x70, 0xCC,
- 0x87, 0xC9, 0x03, 0x72, 0xCC, 0x81, 0xC9, 0x03,
- 0x72, 0xCC, 0x87, 0xC9, 0x03, 0x72, 0xCC, 0x8C,
- 0xC9, 0x03, 0x72, 0xCC, 0x8F, 0xC9, 0x03, 0x72,
- // Bytes 3480 - 34bf
- 0xCC, 0x91, 0xC9, 0x03, 0x72, 0xCC, 0xA7, 0xA5,
- 0x03, 0x72, 0xCC, 0xB1, 0xB5, 0x03, 0x73, 0xCC,
- 0x82, 0xC9, 0x03, 0x73, 0xCC, 0x87, 0xC9, 0x03,
- 0x73, 0xCC, 0xA6, 0xB5, 0x03, 0x73, 0xCC, 0xA7,
- 0xA5, 0x03, 0x74, 0xCC, 0x87, 0xC9, 0x03, 0x74,
- 0xCC, 0x88, 0xC9, 0x03, 0x74, 0xCC, 0x8C, 0xC9,
- 0x03, 0x74, 0xCC, 0xA3, 0xB5, 0x03, 0x74, 0xCC,
- 0xA6, 0xB5, 0x03, 0x74, 0xCC, 0xA7, 0xA5, 0x03,
- // Bytes 34c0 - 34ff
- 0x74, 0xCC, 0xAD, 0xB5, 0x03, 0x74, 0xCC, 0xB1,
- 0xB5, 0x03, 0x75, 0xCC, 0x80, 0xC9, 0x03, 0x75,
- 0xCC, 0x81, 0xC9, 0x03, 0x75, 0xCC, 0x82, 0xC9,
- 0x03, 0x75, 0xCC, 0x86, 0xC9, 0x03, 0x75, 0xCC,
- 0x89, 0xC9, 0x03, 0x75, 0xCC, 0x8A, 0xC9, 0x03,
- 0x75, 0xCC, 0x8B, 0xC9, 0x03, 0x75, 0xCC, 0x8C,
- 0xC9, 0x03, 0x75, 0xCC, 0x8F, 0xC9, 0x03, 0x75,
- 0xCC, 0x91, 0xC9, 0x03, 0x75, 0xCC, 0xA3, 0xB5,
- // Bytes 3500 - 353f
- 0x03, 0x75, 0xCC, 0xA4, 0xB5, 0x03, 0x75, 0xCC,
- 0xA8, 0xA5, 0x03, 0x75, 0xCC, 0xAD, 0xB5, 0x03,
- 0x75, 0xCC, 0xB0, 0xB5, 0x03, 0x76, 0xCC, 0x83,
- 0xC9, 0x03, 0x76, 0xCC, 0xA3, 0xB5, 0x03, 0x77,
- 0xCC, 0x80, 0xC9, 0x03, 0x77, 0xCC, 0x81, 0xC9,
- 0x03, 0x77, 0xCC, 0x82, 0xC9, 0x03, 0x77, 0xCC,
- 0x87, 0xC9, 0x03, 0x77, 0xCC, 0x88, 0xC9, 0x03,
- 0x77, 0xCC, 0x8A, 0xC9, 0x03, 0x77, 0xCC, 0xA3,
- // Bytes 3540 - 357f
- 0xB5, 0x03, 0x78, 0xCC, 0x87, 0xC9, 0x03, 0x78,
- 0xCC, 0x88, 0xC9, 0x03, 0x79, 0xCC, 0x80, 0xC9,
- 0x03, 0x79, 0xCC, 0x81, 0xC9, 0x03, 0x79, 0xCC,
- 0x82, 0xC9, 0x03, 0x79, 0xCC, 0x83, 0xC9, 0x03,
- 0x79, 0xCC, 0x84, 0xC9, 0x03, 0x79, 0xCC, 0x87,
- 0xC9, 0x03, 0x79, 0xCC, 0x88, 0xC9, 0x03, 0x79,
- 0xCC, 0x89, 0xC9, 0x03, 0x79, 0xCC, 0x8A, 0xC9,
- 0x03, 0x79, 0xCC, 0xA3, 0xB5, 0x03, 0x7A, 0xCC,
- // Bytes 3580 - 35bf
- 0x81, 0xC9, 0x03, 0x7A, 0xCC, 0x82, 0xC9, 0x03,
- 0x7A, 0xCC, 0x87, 0xC9, 0x03, 0x7A, 0xCC, 0x8C,
- 0xC9, 0x03, 0x7A, 0xCC, 0xA3, 0xB5, 0x03, 0x7A,
- 0xCC, 0xB1, 0xB5, 0x04, 0xC2, 0xA8, 0xCC, 0x80,
- 0xCA, 0x04, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x04,
- 0xC2, 0xA8, 0xCD, 0x82, 0xCA, 0x04, 0xC3, 0x86,
- 0xCC, 0x81, 0xC9, 0x04, 0xC3, 0x86, 0xCC, 0x84,
- 0xC9, 0x04, 0xC3, 0x98, 0xCC, 0x81, 0xC9, 0x04,
- // Bytes 35c0 - 35ff
- 0xC3, 0xA6, 0xCC, 0x81, 0xC9, 0x04, 0xC3, 0xA6,
- 0xCC, 0x84, 0xC9, 0x04, 0xC3, 0xB8, 0xCC, 0x81,
- 0xC9, 0x04, 0xC5, 0xBF, 0xCC, 0x87, 0xC9, 0x04,
- 0xC6, 0xB7, 0xCC, 0x8C, 0xC9, 0x04, 0xCA, 0x92,
- 0xCC, 0x8C, 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x80,
- 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x81, 0xC9, 0x04,
- 0xCE, 0x91, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0x91,
- 0xCC, 0x86, 0xC9, 0x04, 0xCE, 0x91, 0xCD, 0x85,
- // Bytes 3600 - 363f
- 0xD9, 0x04, 0xCE, 0x95, 0xCC, 0x80, 0xC9, 0x04,
- 0xCE, 0x95, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x97,
- 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x97, 0xCC, 0x81,
- 0xC9, 0x04, 0xCE, 0x97, 0xCD, 0x85, 0xD9, 0x04,
- 0xCE, 0x99, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x99,
- 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x84,
- 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x86, 0xC9, 0x04,
- 0xCE, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0x9F,
- // Bytes 3640 - 367f
- 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x9F, 0xCC, 0x81,
- 0xC9, 0x04, 0xCE, 0xA1, 0xCC, 0x94, 0xC9, 0x04,
- 0xCE, 0xA5, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA5,
- 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x84,
- 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x86, 0xC9, 0x04,
- 0xCE, 0xA5, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0xA9,
- 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA9, 0xCC, 0x81,
- 0xC9, 0x04, 0xCE, 0xA9, 0xCD, 0x85, 0xD9, 0x04,
- // Bytes 3680 - 36bf
- 0xCE, 0xB1, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB1,
- 0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB1, 0xCD, 0x85,
- 0xD9, 0x04, 0xCE, 0xB5, 0xCC, 0x80, 0xC9, 0x04,
- 0xCE, 0xB5, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xB7,
- 0xCD, 0x85, 0xD9, 0x04, 0xCE, 0xB9, 0xCC, 0x80,
- 0xC9, 0x04, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x04,
- 0xCE, 0xB9, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB9,
- 0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB9, 0xCD, 0x82,
- // Bytes 36c0 - 36ff
- 0xC9, 0x04, 0xCE, 0xBF, 0xCC, 0x80, 0xC9, 0x04,
- 0xCE, 0xBF, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x81,
- 0xCC, 0x93, 0xC9, 0x04, 0xCF, 0x81, 0xCC, 0x94,
- 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x80, 0xC9, 0x04,
- 0xCF, 0x85, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x85,
- 0xCC, 0x84, 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x86,
- 0xC9, 0x04, 0xCF, 0x85, 0xCD, 0x82, 0xC9, 0x04,
- 0xCF, 0x89, 0xCD, 0x85, 0xD9, 0x04, 0xCF, 0x92,
- // Bytes 3700 - 373f
- 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x92, 0xCC, 0x88,
- 0xC9, 0x04, 0xD0, 0x86, 0xCC, 0x88, 0xC9, 0x04,
- 0xD0, 0x90, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x90,
- 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x93, 0xCC, 0x81,
- 0xC9, 0x04, 0xD0, 0x95, 0xCC, 0x80, 0xC9, 0x04,
- 0xD0, 0x95, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x95,
- 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x86,
- 0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x88, 0xC9, 0x04,
- // Bytes 3740 - 377f
- 0xD0, 0x97, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x98,
- 0xCC, 0x80, 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x84,
- 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x86, 0xC9, 0x04,
- 0xD0, 0x98, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x9A,
- 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0x9E, 0xCC, 0x88,
- 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x84, 0xC9, 0x04,
- 0xD0, 0xA3, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xA3,
- 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x8B,
- // Bytes 3780 - 37bf
- 0xC9, 0x04, 0xD0, 0xA7, 0xCC, 0x88, 0xC9, 0x04,
- 0xD0, 0xAB, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xAD,
- 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x86,
- 0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x88, 0xC9, 0x04,
- 0xD0, 0xB3, 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0xB5,
- 0xCC, 0x80, 0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x86,
- 0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x88, 0xC9, 0x04,
- 0xD0, 0xB6, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB6,
- // Bytes 37c0 - 37ff
- 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB7, 0xCC, 0x88,
- 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x80, 0xC9, 0x04,
- 0xD0, 0xB8, 0xCC, 0x84, 0xC9, 0x04, 0xD0, 0xB8,
- 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x88,
- 0xC9, 0x04, 0xD0, 0xBA, 0xCC, 0x81, 0xC9, 0x04,
- 0xD0, 0xBE, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x83,
- 0xCC, 0x84, 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x86,
- 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x88, 0xC9, 0x04,
- // Bytes 3800 - 383f
- 0xD1, 0x83, 0xCC, 0x8B, 0xC9, 0x04, 0xD1, 0x87,
- 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x8B, 0xCC, 0x88,
- 0xC9, 0x04, 0xD1, 0x8D, 0xCC, 0x88, 0xC9, 0x04,
- 0xD1, 0x96, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0xB4,
- 0xCC, 0x8F, 0xC9, 0x04, 0xD1, 0xB5, 0xCC, 0x8F,
- 0xC9, 0x04, 0xD3, 0x98, 0xCC, 0x88, 0xC9, 0x04,
- 0xD3, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA8,
- 0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA9, 0xCC, 0x88,
- // Bytes 3840 - 387f
- 0xC9, 0x04, 0xD8, 0xA7, 0xD9, 0x93, 0xC9, 0x04,
- 0xD8, 0xA7, 0xD9, 0x94, 0xC9, 0x04, 0xD8, 0xA7,
- 0xD9, 0x95, 0xB5, 0x04, 0xD9, 0x88, 0xD9, 0x94,
- 0xC9, 0x04, 0xD9, 0x8A, 0xD9, 0x94, 0xC9, 0x04,
- 0xDB, 0x81, 0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x92,
- 0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x95, 0xD9, 0x94,
- 0xC9, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x80, 0xCA,
- 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05,
- // Bytes 3880 - 38bf
- 0x41, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x41,
- 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x41, 0xCC,
- 0x86, 0xCC, 0x80, 0xCA, 0x05, 0x41, 0xCC, 0x86,
- 0xCC, 0x81, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC,
- 0x83, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC, 0x89,
- 0xCA, 0x05, 0x41, 0xCC, 0x87, 0xCC, 0x84, 0xCA,
- 0x05, 0x41, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05,
- 0x41, 0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x41,
- // Bytes 38c0 - 38ff
- 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x41, 0xCC,
- 0xA3, 0xCC, 0x86, 0xCA, 0x05, 0x43, 0xCC, 0xA7,
- 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC,
- 0x80, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x81,
- 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x83, 0xCA,
- 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05,
- 0x45, 0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x45,
- 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC,
- // Bytes 3900 - 393f
- 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x45, 0xCC, 0xA7,
- 0xCC, 0x86, 0xCA, 0x05, 0x49, 0xCC, 0x88, 0xCC,
- 0x81, 0xCA, 0x05, 0x4C, 0xCC, 0xA3, 0xCC, 0x84,
- 0xCA, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x80, 0xCA,
- 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05,
- 0x4F, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x4F,
- 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x4F, 0xCC,
- 0x83, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x83,
- // Bytes 3940 - 397f
- 0xCC, 0x84, 0xCA, 0x05, 0x4F, 0xCC, 0x83, 0xCC,
- 0x88, 0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x80,
- 0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x81, 0xCA,
- 0x05, 0x4F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05,
- 0x4F, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x4F,
- 0xCC, 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x4F, 0xCC,
- 0x9B, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x9B,
- 0xCC, 0x83, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC,
- // Bytes 3980 - 39bf
- 0x89, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0xA3,
- 0xB6, 0x05, 0x4F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA,
- 0x05, 0x4F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05,
- 0x52, 0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x53,
- 0xCC, 0x81, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC,
- 0x8C, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC, 0xA3,
- 0xCC, 0x87, 0xCA, 0x05, 0x55, 0xCC, 0x83, 0xCC,
- 0x81, 0xCA, 0x05, 0x55, 0xCC, 0x84, 0xCC, 0x88,
- // Bytes 39c0 - 39ff
- 0xCA, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x80, 0xCA,
- 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05,
- 0x55, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x55,
- 0xCC, 0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x55, 0xCC,
- 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x55, 0xCC, 0x9B,
- 0xCC, 0x81, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC,
- 0x83, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0x89,
- 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6,
- // Bytes 3a00 - 3a3f
- 0x05, 0x61, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05,
- 0x61, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x61,
- 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x61, 0xCC,
- 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x61, 0xCC, 0x86,
- 0xCC, 0x80, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC,
- 0x81, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x83,
- 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x89, 0xCA,
- 0x05, 0x61, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05,
- // Bytes 3a40 - 3a7f
- 0x61, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x61,
- 0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x61, 0xCC,
- 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x61, 0xCC, 0xA3,
- 0xCC, 0x86, 0xCA, 0x05, 0x63, 0xCC, 0xA7, 0xCC,
- 0x81, 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x80,
- 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x81, 0xCA,
- 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05,
- 0x65, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x65,
- // Bytes 3a80 - 3abf
- 0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x65, 0xCC,
- 0x84, 0xCC, 0x81, 0xCA, 0x05, 0x65, 0xCC, 0xA3,
- 0xCC, 0x82, 0xCA, 0x05, 0x65, 0xCC, 0xA7, 0xCC,
- 0x86, 0xCA, 0x05, 0x69, 0xCC, 0x88, 0xCC, 0x81,
- 0xCA, 0x05, 0x6C, 0xCC, 0xA3, 0xCC, 0x84, 0xCA,
- 0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05,
- 0x6F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x6F,
- 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x6F, 0xCC,
- // Bytes 3ac0 - 3aff
- 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x6F, 0xCC, 0x83,
- 0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC,
- 0x84, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC, 0x88,
- 0xCA, 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x80, 0xCA,
- 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05,
- 0x6F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, 0x6F,
- 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x6F, 0xCC,
- 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x6F, 0xCC, 0x9B,
- // Bytes 3b00 - 3b3f
- 0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC,
- 0x83, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0x89,
- 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6,
- 0x05, 0x6F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05,
- 0x6F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05, 0x72,
- 0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x73, 0xCC,
- 0x81, 0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0x8C,
- 0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0xA3, 0xCC,
- // Bytes 3b40 - 3b7f
- 0x87, 0xCA, 0x05, 0x75, 0xCC, 0x83, 0xCC, 0x81,
- 0xCA, 0x05, 0x75, 0xCC, 0x84, 0xCC, 0x88, 0xCA,
- 0x05, 0x75, 0xCC, 0x88, 0xCC, 0x80, 0xCA, 0x05,
- 0x75, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05, 0x75,
- 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x75, 0xCC,
- 0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x75, 0xCC, 0x9B,
- 0xCC, 0x80, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC,
- 0x81, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x83,
- // Bytes 3b80 - 3bbf
- 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x89, 0xCA,
- 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, 0x05,
- 0xE1, 0xBE, 0xBF, 0xCC, 0x80, 0xCA, 0x05, 0xE1,
- 0xBE, 0xBF, 0xCC, 0x81, 0xCA, 0x05, 0xE1, 0xBE,
- 0xBF, 0xCD, 0x82, 0xCA, 0x05, 0xE1, 0xBF, 0xBE,
- 0xCC, 0x80, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCC,
- 0x81, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCD, 0x82,
- 0xCA, 0x05, 0xE2, 0x86, 0x90, 0xCC, 0xB8, 0x05,
- // Bytes 3bc0 - 3bff
- 0x05, 0xE2, 0x86, 0x92, 0xCC, 0xB8, 0x05, 0x05,
- 0xE2, 0x86, 0x94, 0xCC, 0xB8, 0x05, 0x05, 0xE2,
- 0x87, 0x90, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87,
- 0x92, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, 0x94,
- 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x83, 0xCC,
- 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x88, 0xCC, 0xB8,
- 0x05, 0x05, 0xE2, 0x88, 0x8B, 0xCC, 0xB8, 0x05,
- 0x05, 0xE2, 0x88, 0xA3, 0xCC, 0xB8, 0x05, 0x05,
- // Bytes 3c00 - 3c3f
- 0xE2, 0x88, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2,
- 0x88, 0xBC, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89,
- 0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x85,
- 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x88, 0xCC,
- 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x8D, 0xCC, 0xB8,
- 0x05, 0x05, 0xE2, 0x89, 0xA1, 0xCC, 0xB8, 0x05,
- 0x05, 0xE2, 0x89, 0xA4, 0xCC, 0xB8, 0x05, 0x05,
- 0xE2, 0x89, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2,
- // Bytes 3c40 - 3c7f
- 0x89, 0xB2, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89,
- 0xB3, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB6,
- 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB7, 0xCC,
- 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBA, 0xCC, 0xB8,
- 0x05, 0x05, 0xE2, 0x89, 0xBB, 0xCC, 0xB8, 0x05,
- 0x05, 0xE2, 0x89, 0xBC, 0xCC, 0xB8, 0x05, 0x05,
- 0xE2, 0x89, 0xBD, 0xCC, 0xB8, 0x05, 0x05, 0xE2,
- 0x8A, 0x82, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A,
- // Bytes 3c80 - 3cbf
- 0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x86,
- 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x87, 0xCC,
- 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x91, 0xCC, 0xB8,
- 0x05, 0x05, 0xE2, 0x8A, 0x92, 0xCC, 0xB8, 0x05,
- 0x05, 0xE2, 0x8A, 0xA2, 0xCC, 0xB8, 0x05, 0x05,
- 0xE2, 0x8A, 0xA8, 0xCC, 0xB8, 0x05, 0x05, 0xE2,
- 0x8A, 0xA9, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A,
- 0xAB, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB2,
- // Bytes 3cc0 - 3cff
- 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB3, 0xCC,
- 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB4, 0xCC, 0xB8,
- 0x05, 0x05, 0xE2, 0x8A, 0xB5, 0xCC, 0xB8, 0x05,
- 0x06, 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x85, 0xDA,
- 0x06, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x85, 0xDA,
- 0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x80, 0xCA,
- 0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x81, 0xCA,
- 0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x80, 0xCA,
- // Bytes 3d00 - 3d3f
- 0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x81, 0xCA,
- 0x06, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x85, 0xDA,
- 0x06, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x85, 0xDA,
- 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x80, 0xCA,
- 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x81, 0xCA,
- 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCD, 0x82, 0xCA,
- 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x80, 0xCA,
- 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x81, 0xCA,
- // Bytes 3d40 - 3d7f
- 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCD, 0x82, 0xCA,
- 0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x80, 0xCA,
- 0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x81, 0xCA,
- 0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x80, 0xCA,
- 0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x81, 0xCA,
- 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x80, 0xCA,
- 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x81, 0xCA,
- 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCD, 0x82, 0xCA,
- // Bytes 3d80 - 3dbf
- 0x06, 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x85, 0xDA,
- 0x06, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x85, 0xDA,
- 0x06, 0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x85, 0xDA,
- 0x06, 0xCE, 0xB1, 0xCC, 0x81, 0xCD, 0x85, 0xDA,
- 0x06, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x85, 0xDA,
- 0x06, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x85, 0xDA,
- 0x06, 0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x85, 0xDA,
- 0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x80, 0xCA,
- // Bytes 3dc0 - 3dff
- 0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x81, 0xCA,
- 0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x80, 0xCA,
- 0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x81, 0xCA,
- 0x06, 0xCE, 0xB7, 0xCC, 0x80, 0xCD, 0x85, 0xDA,
- 0x06, 0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x85, 0xDA,
- 0x06, 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x85, 0xDA,
- 0x06, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x85, 0xDA,
- 0x06, 0xCE, 0xB7, 0xCD, 0x82, 0xCD, 0x85, 0xDA,
- // Bytes 3e00 - 3e3f
- 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x80, 0xCA,
- 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x81, 0xCA,
- 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x82, 0xCA,
- 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x80, 0xCA,
- 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x81, 0xCA,
- 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCD, 0x82, 0xCA,
- 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x80, 0xCA,
- 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x81, 0xCA,
- // Bytes 3e40 - 3e7f
- 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCD, 0x82, 0xCA,
- 0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x80, 0xCA,
- 0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x81, 0xCA,
- 0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x80, 0xCA,
- 0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x81, 0xCA,
- 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x80, 0xCA,
- 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xCA,
- 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCD, 0x82, 0xCA,
- // Bytes 3e80 - 3ebf
- 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x80, 0xCA,
- 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x81, 0xCA,
- 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCD, 0x82, 0xCA,
- 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x80, 0xCA,
- 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x81, 0xCA,
- 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCD, 0x82, 0xCA,
- 0x06, 0xCF, 0x89, 0xCC, 0x80, 0xCD, 0x85, 0xDA,
- 0x06, 0xCF, 0x89, 0xCC, 0x81, 0xCD, 0x85, 0xDA,
- // Bytes 3ec0 - 3eff
- 0x06, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x85, 0xDA,
- 0x06, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x85, 0xDA,
- 0x06, 0xCF, 0x89, 0xCD, 0x82, 0xCD, 0x85, 0xDA,
- 0x06, 0xE0, 0xA4, 0xA8, 0xE0, 0xA4, 0xBC, 0x09,
- 0x06, 0xE0, 0xA4, 0xB0, 0xE0, 0xA4, 0xBC, 0x09,
- 0x06, 0xE0, 0xA4, 0xB3, 0xE0, 0xA4, 0xBC, 0x09,
- 0x06, 0xE0, 0xB1, 0x86, 0xE0, 0xB1, 0x96, 0x85,
- 0x06, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8A, 0x11,
- // Bytes 3f00 - 3f3f
- 0x06, 0xE3, 0x81, 0x86, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0x8B, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0x8D, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0x8F, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0x91, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0x93, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0x95, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0x97, 0xE3, 0x82, 0x99, 0x0D,
- // Bytes 3f40 - 3f7f
- 0x06, 0xE3, 0x81, 0x99, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0x9B, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0x9D, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0x9F, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0xA1, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0xA4, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0xA6, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0xA8, 0xE3, 0x82, 0x99, 0x0D,
- // Bytes 3f80 - 3fbf
- 0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x9A, 0x0D,
- 0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x9A, 0x0D,
- 0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x9A, 0x0D,
- 0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x9A, 0x0D,
- // Bytes 3fc0 - 3fff
- 0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x9A, 0x0D,
- 0x06, 0xE3, 0x82, 0x9D, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x82, 0xA6, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99, 0x0D,
- // Bytes 4000 - 403f
- 0x06, 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x82, 0xB5, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x82, 0xB9, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x82, 0xBD, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x83, 0x81, 0xE3, 0x82, 0x99, 0x0D,
- // Bytes 4040 - 407f
- 0x06, 0xE3, 0x83, 0x84, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0x0D,
- 0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0x0D,
- 0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, 0x0D,
- // Bytes 4080 - 40bf
- 0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x9A, 0x0D,
- 0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0x0D,
- 0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0x0D,
- 0x06, 0xE3, 0x83, 0xAF, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x83, 0xB0, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x83, 0xB1, 0xE3, 0x82, 0x99, 0x0D,
- // Bytes 40c0 - 40ff
- 0x06, 0xE3, 0x83, 0xB2, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x83, 0xBD, 0xE3, 0x82, 0x99, 0x0D,
- 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCD,
- 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC,
- 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC,
- 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE,
- 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB,
- 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCD,
- // Bytes 4100 - 413f
- 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCD,
- 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC,
- 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE,
- 0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB,
- 0x08, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCD,
- 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, 0x94, 0xCC,
- 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC,
- 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE,
- // Bytes 4140 - 417f
- 0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB,
- 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCD,
- 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC,
- 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC,
- 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE,
- 0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB,
- 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCD,
- 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCD,
- // Bytes 4180 - 41bf
- 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC,
- 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE,
- 0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB,
- 0x08, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCD,
- 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, 0x94, 0xCC,
- 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC,
- 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE,
- 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB,
- // Bytes 41c0 - 41ff
- 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCD,
- 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC,
- 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC,
- 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE,
- 0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB,
- 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCD,
- 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCD,
- 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC,
- // Bytes 4200 - 423f
- 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF,
- 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB,
- 0x08, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCD,
- 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, 0x94, 0xCC,
- 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC,
- 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCF,
- 0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB,
- 0x08, 0xF0, 0x91, 0x82, 0x99, 0xF0, 0x91, 0x82,
- // Bytes 4240 - 427f
- 0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82, 0x9B, 0xF0,
- 0x91, 0x82, 0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82,
- 0xA5, 0xF0, 0x91, 0x82, 0xBA, 0x09, 0x42, 0xC2,
- 0xB4, 0x01, 0x43, 0x20, 0xCC, 0x81, 0xC9, 0x43,
- 0x20, 0xCC, 0x83, 0xC9, 0x43, 0x20, 0xCC, 0x84,
- 0xC9, 0x43, 0x20, 0xCC, 0x85, 0xC9, 0x43, 0x20,
- 0xCC, 0x86, 0xC9, 0x43, 0x20, 0xCC, 0x87, 0xC9,
- 0x43, 0x20, 0xCC, 0x88, 0xC9, 0x43, 0x20, 0xCC,
- // Bytes 4280 - 42bf
- 0x8A, 0xC9, 0x43, 0x20, 0xCC, 0x8B, 0xC9, 0x43,
- 0x20, 0xCC, 0x93, 0xC9, 0x43, 0x20, 0xCC, 0x94,
- 0xC9, 0x43, 0x20, 0xCC, 0xA7, 0xA5, 0x43, 0x20,
- 0xCC, 0xA8, 0xA5, 0x43, 0x20, 0xCC, 0xB3, 0xB5,
- 0x43, 0x20, 0xCD, 0x82, 0xC9, 0x43, 0x20, 0xCD,
- 0x85, 0xD9, 0x43, 0x20, 0xD9, 0x8B, 0x59, 0x43,
- 0x20, 0xD9, 0x8C, 0x5D, 0x43, 0x20, 0xD9, 0x8D,
- 0x61, 0x43, 0x20, 0xD9, 0x8E, 0x65, 0x43, 0x20,
- // Bytes 42c0 - 42ff
- 0xD9, 0x8F, 0x69, 0x43, 0x20, 0xD9, 0x90, 0x6D,
- 0x43, 0x20, 0xD9, 0x91, 0x71, 0x43, 0x20, 0xD9,
- 0x92, 0x75, 0x43, 0x41, 0xCC, 0x8A, 0xC9, 0x43,
- 0x73, 0xCC, 0x87, 0xC9, 0x44, 0x20, 0xE3, 0x82,
- 0x99, 0x0D, 0x44, 0x20, 0xE3, 0x82, 0x9A, 0x0D,
- 0x44, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x44, 0xCE,
- 0x91, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0x95, 0xCC,
- 0x81, 0xC9, 0x44, 0xCE, 0x97, 0xCC, 0x81, 0xC9,
- // Bytes 4300 - 433f
- 0x44, 0xCE, 0x99, 0xCC, 0x81, 0xC9, 0x44, 0xCE,
- 0x9F, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC,
- 0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC, 0x88, 0xC9,
- 0x44, 0xCE, 0xA9, 0xCC, 0x81, 0xC9, 0x44, 0xCE,
- 0xB1, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xB5, 0xCC,
- 0x81, 0xC9, 0x44, 0xCE, 0xB7, 0xCC, 0x81, 0xC9,
- 0x44, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x44, 0xCE,
- 0xBF, 0xCC, 0x81, 0xC9, 0x44, 0xCF, 0x85, 0xCC,
- // Bytes 4340 - 437f
- 0x81, 0xC9, 0x44, 0xCF, 0x89, 0xCC, 0x81, 0xC9,
- 0x44, 0xD7, 0x90, 0xD6, 0xB7, 0x31, 0x44, 0xD7,
- 0x90, 0xD6, 0xB8, 0x35, 0x44, 0xD7, 0x90, 0xD6,
- 0xBC, 0x41, 0x44, 0xD7, 0x91, 0xD6, 0xBC, 0x41,
- 0x44, 0xD7, 0x91, 0xD6, 0xBF, 0x49, 0x44, 0xD7,
- 0x92, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x93, 0xD6,
- 0xBC, 0x41, 0x44, 0xD7, 0x94, 0xD6, 0xBC, 0x41,
- 0x44, 0xD7, 0x95, 0xD6, 0xB9, 0x39, 0x44, 0xD7,
- // Bytes 4380 - 43bf
- 0x95, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x96, 0xD6,
- 0xBC, 0x41, 0x44, 0xD7, 0x98, 0xD6, 0xBC, 0x41,
- 0x44, 0xD7, 0x99, 0xD6, 0xB4, 0x25, 0x44, 0xD7,
- 0x99, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9A, 0xD6,
- 0xBC, 0x41, 0x44, 0xD7, 0x9B, 0xD6, 0xBC, 0x41,
- 0x44, 0xD7, 0x9B, 0xD6, 0xBF, 0x49, 0x44, 0xD7,
- 0x9C, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9E, 0xD6,
- 0xBC, 0x41, 0x44, 0xD7, 0xA0, 0xD6, 0xBC, 0x41,
- // Bytes 43c0 - 43ff
- 0x44, 0xD7, 0xA1, 0xD6, 0xBC, 0x41, 0x44, 0xD7,
- 0xA3, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6,
- 0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6, 0xBF, 0x49,
- 0x44, 0xD7, 0xA6, 0xD6, 0xBC, 0x41, 0x44, 0xD7,
- 0xA7, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA8, 0xD6,
- 0xBC, 0x41, 0x44, 0xD7, 0xA9, 0xD6, 0xBC, 0x41,
- 0x44, 0xD7, 0xA9, 0xD7, 0x81, 0x4D, 0x44, 0xD7,
- 0xA9, 0xD7, 0x82, 0x51, 0x44, 0xD7, 0xAA, 0xD6,
- // Bytes 4400 - 443f
- 0xBC, 0x41, 0x44, 0xD7, 0xB2, 0xD6, 0xB7, 0x31,
- 0x44, 0xD8, 0xA7, 0xD9, 0x8B, 0x59, 0x44, 0xD8,
- 0xA7, 0xD9, 0x93, 0xC9, 0x44, 0xD8, 0xA7, 0xD9,
- 0x94, 0xC9, 0x44, 0xD8, 0xA7, 0xD9, 0x95, 0xB5,
- 0x44, 0xD8, 0xB0, 0xD9, 0xB0, 0x79, 0x44, 0xD8,
- 0xB1, 0xD9, 0xB0, 0x79, 0x44, 0xD9, 0x80, 0xD9,
- 0x8B, 0x59, 0x44, 0xD9, 0x80, 0xD9, 0x8E, 0x65,
- 0x44, 0xD9, 0x80, 0xD9, 0x8F, 0x69, 0x44, 0xD9,
- // Bytes 4440 - 447f
- 0x80, 0xD9, 0x90, 0x6D, 0x44, 0xD9, 0x80, 0xD9,
- 0x91, 0x71, 0x44, 0xD9, 0x80, 0xD9, 0x92, 0x75,
- 0x44, 0xD9, 0x87, 0xD9, 0xB0, 0x79, 0x44, 0xD9,
- 0x88, 0xD9, 0x94, 0xC9, 0x44, 0xD9, 0x89, 0xD9,
- 0xB0, 0x79, 0x44, 0xD9, 0x8A, 0xD9, 0x94, 0xC9,
- 0x44, 0xDB, 0x92, 0xD9, 0x94, 0xC9, 0x44, 0xDB,
- 0x95, 0xD9, 0x94, 0xC9, 0x45, 0x20, 0xCC, 0x88,
- 0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCC,
- // Bytes 4480 - 44bf
- 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCD, 0x82,
- 0xCA, 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x80, 0xCA,
- 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x45,
- 0x20, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x45, 0x20,
- 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC,
- 0x94, 0xCC, 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x94,
- 0xCD, 0x82, 0xCA, 0x45, 0x20, 0xD9, 0x8C, 0xD9,
- 0x91, 0x72, 0x45, 0x20, 0xD9, 0x8D, 0xD9, 0x91,
- // Bytes 44c0 - 44ff
- 0x72, 0x45, 0x20, 0xD9, 0x8E, 0xD9, 0x91, 0x72,
- 0x45, 0x20, 0xD9, 0x8F, 0xD9, 0x91, 0x72, 0x45,
- 0x20, 0xD9, 0x90, 0xD9, 0x91, 0x72, 0x45, 0x20,
- 0xD9, 0x91, 0xD9, 0xB0, 0x7A, 0x45, 0xE2, 0xAB,
- 0x9D, 0xCC, 0xB8, 0x05, 0x46, 0xCE, 0xB9, 0xCC,
- 0x88, 0xCC, 0x81, 0xCA, 0x46, 0xCF, 0x85, 0xCC,
- 0x88, 0xCC, 0x81, 0xCA, 0x46, 0xD7, 0xA9, 0xD6,
- 0xBC, 0xD7, 0x81, 0x4E, 0x46, 0xD7, 0xA9, 0xD6,
- // Bytes 4500 - 453f
- 0xBC, 0xD7, 0x82, 0x52, 0x46, 0xD9, 0x80, 0xD9,
- 0x8E, 0xD9, 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9,
- 0x8F, 0xD9, 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9,
- 0x90, 0xD9, 0x91, 0x72, 0x46, 0xE0, 0xA4, 0x95,
- 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x96,
- 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x97,
- 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x9C,
- 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA1,
- // Bytes 4540 - 457f
- 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA2,
- 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAB,
- 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAF,
- 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA1,
- 0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA2,
- 0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xAF,
- 0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x96,
- 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x97,
- // Bytes 4580 - 45bf
- 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x9C,
- 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xAB,
- 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB2,
- 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB8,
- 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA1,
- 0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA2,
- 0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xBE, 0xB2,
- 0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE0, 0xBE, 0xB3,
- // Bytes 45c0 - 45ff
- 0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE3, 0x83, 0x86,
- 0xE3, 0x82, 0x99, 0x0D, 0x48, 0xF0, 0x9D, 0x85,
- 0x97, 0xF0, 0x9D, 0x85, 0xA5, 0xAD, 0x48, 0xF0,
- 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xAD,
- 0x48, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85,
- 0xA5, 0xAD, 0x48, 0xF0, 0x9D, 0x86, 0xBA, 0xF0,
- 0x9D, 0x85, 0xA5, 0xAD, 0x49, 0xE0, 0xBE, 0xB2,
- 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x49,
- // Bytes 4600 - 463f
- 0xE0, 0xBE, 0xB3, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE,
- 0x80, 0x9E, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0,
- 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE,
- 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85,
- 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0,
- 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0,
- 0x9D, 0x85, 0xB0, 0xAE, 0x4C, 0xF0, 0x9D, 0x85,
- 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85,
- // Bytes 4640 - 467f
- 0xB1, 0xAE, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0,
- 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB2, 0xAE,
- 0x4C, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85,
- 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE, 0x4C, 0xF0,
- 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5, 0xF0,
- 0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0, 0x9D, 0x86,
- 0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85,
- 0xAE, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, 0xBA, 0xF0,
- // Bytes 4680 - 46bf
- 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE,
- 0x83, 0x41, 0xCC, 0x82, 0xC9, 0x83, 0x41, 0xCC,
- 0x86, 0xC9, 0x83, 0x41, 0xCC, 0x87, 0xC9, 0x83,
- 0x41, 0xCC, 0x88, 0xC9, 0x83, 0x41, 0xCC, 0x8A,
- 0xC9, 0x83, 0x41, 0xCC, 0xA3, 0xB5, 0x83, 0x43,
- 0xCC, 0xA7, 0xA5, 0x83, 0x45, 0xCC, 0x82, 0xC9,
- 0x83, 0x45, 0xCC, 0x84, 0xC9, 0x83, 0x45, 0xCC,
- 0xA3, 0xB5, 0x83, 0x45, 0xCC, 0xA7, 0xA5, 0x83,
- // Bytes 46c0 - 46ff
- 0x49, 0xCC, 0x88, 0xC9, 0x83, 0x4C, 0xCC, 0xA3,
- 0xB5, 0x83, 0x4F, 0xCC, 0x82, 0xC9, 0x83, 0x4F,
- 0xCC, 0x83, 0xC9, 0x83, 0x4F, 0xCC, 0x84, 0xC9,
- 0x83, 0x4F, 0xCC, 0x87, 0xC9, 0x83, 0x4F, 0xCC,
- 0x88, 0xC9, 0x83, 0x4F, 0xCC, 0x9B, 0xAD, 0x83,
- 0x4F, 0xCC, 0xA3, 0xB5, 0x83, 0x4F, 0xCC, 0xA8,
- 0xA5, 0x83, 0x52, 0xCC, 0xA3, 0xB5, 0x83, 0x53,
- 0xCC, 0x81, 0xC9, 0x83, 0x53, 0xCC, 0x8C, 0xC9,
- // Bytes 4700 - 473f
- 0x83, 0x53, 0xCC, 0xA3, 0xB5, 0x83, 0x55, 0xCC,
- 0x83, 0xC9, 0x83, 0x55, 0xCC, 0x84, 0xC9, 0x83,
- 0x55, 0xCC, 0x88, 0xC9, 0x83, 0x55, 0xCC, 0x9B,
- 0xAD, 0x83, 0x61, 0xCC, 0x82, 0xC9, 0x83, 0x61,
- 0xCC, 0x86, 0xC9, 0x83, 0x61, 0xCC, 0x87, 0xC9,
- 0x83, 0x61, 0xCC, 0x88, 0xC9, 0x83, 0x61, 0xCC,
- 0x8A, 0xC9, 0x83, 0x61, 0xCC, 0xA3, 0xB5, 0x83,
- 0x63, 0xCC, 0xA7, 0xA5, 0x83, 0x65, 0xCC, 0x82,
- // Bytes 4740 - 477f
- 0xC9, 0x83, 0x65, 0xCC, 0x84, 0xC9, 0x83, 0x65,
- 0xCC, 0xA3, 0xB5, 0x83, 0x65, 0xCC, 0xA7, 0xA5,
- 0x83, 0x69, 0xCC, 0x88, 0xC9, 0x83, 0x6C, 0xCC,
- 0xA3, 0xB5, 0x83, 0x6F, 0xCC, 0x82, 0xC9, 0x83,
- 0x6F, 0xCC, 0x83, 0xC9, 0x83, 0x6F, 0xCC, 0x84,
- 0xC9, 0x83, 0x6F, 0xCC, 0x87, 0xC9, 0x83, 0x6F,
- 0xCC, 0x88, 0xC9, 0x83, 0x6F, 0xCC, 0x9B, 0xAD,
- 0x83, 0x6F, 0xCC, 0xA3, 0xB5, 0x83, 0x6F, 0xCC,
- // Bytes 4780 - 47bf
- 0xA8, 0xA5, 0x83, 0x72, 0xCC, 0xA3, 0xB5, 0x83,
- 0x73, 0xCC, 0x81, 0xC9, 0x83, 0x73, 0xCC, 0x8C,
- 0xC9, 0x83, 0x73, 0xCC, 0xA3, 0xB5, 0x83, 0x75,
- 0xCC, 0x83, 0xC9, 0x83, 0x75, 0xCC, 0x84, 0xC9,
- 0x83, 0x75, 0xCC, 0x88, 0xC9, 0x83, 0x75, 0xCC,
- 0x9B, 0xAD, 0x84, 0xCE, 0x91, 0xCC, 0x93, 0xC9,
- 0x84, 0xCE, 0x91, 0xCC, 0x94, 0xC9, 0x84, 0xCE,
- 0x95, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x95, 0xCC,
- // Bytes 47c0 - 47ff
- 0x94, 0xC9, 0x84, 0xCE, 0x97, 0xCC, 0x93, 0xC9,
- 0x84, 0xCE, 0x97, 0xCC, 0x94, 0xC9, 0x84, 0xCE,
- 0x99, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x99, 0xCC,
- 0x94, 0xC9, 0x84, 0xCE, 0x9F, 0xCC, 0x93, 0xC9,
- 0x84, 0xCE, 0x9F, 0xCC, 0x94, 0xC9, 0x84, 0xCE,
- 0xA5, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xA9, 0xCC,
- 0x93, 0xC9, 0x84, 0xCE, 0xA9, 0xCC, 0x94, 0xC9,
- 0x84, 0xCE, 0xB1, 0xCC, 0x80, 0xC9, 0x84, 0xCE,
- // Bytes 4800 - 483f
- 0xB1, 0xCC, 0x81, 0xC9, 0x84, 0xCE, 0xB1, 0xCC,
- 0x93, 0xC9, 0x84, 0xCE, 0xB1, 0xCC, 0x94, 0xC9,
- 0x84, 0xCE, 0xB1, 0xCD, 0x82, 0xC9, 0x84, 0xCE,
- 0xB5, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB5, 0xCC,
- 0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCC, 0x80, 0xC9,
- 0x84, 0xCE, 0xB7, 0xCC, 0x81, 0xC9, 0x84, 0xCE,
- 0xB7, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB7, 0xCC,
- 0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCD, 0x82, 0xC9,
- // Bytes 4840 - 487f
- 0x84, 0xCE, 0xB9, 0xCC, 0x88, 0xC9, 0x84, 0xCE,
- 0xB9, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB9, 0xCC,
- 0x94, 0xC9, 0x84, 0xCE, 0xBF, 0xCC, 0x93, 0xC9,
- 0x84, 0xCE, 0xBF, 0xCC, 0x94, 0xC9, 0x84, 0xCF,
- 0x85, 0xCC, 0x88, 0xC9, 0x84, 0xCF, 0x85, 0xCC,
- 0x93, 0xC9, 0x84, 0xCF, 0x85, 0xCC, 0x94, 0xC9,
- 0x84, 0xCF, 0x89, 0xCC, 0x80, 0xC9, 0x84, 0xCF,
- 0x89, 0xCC, 0x81, 0xC9, 0x84, 0xCF, 0x89, 0xCC,
- // Bytes 4880 - 48bf
- 0x93, 0xC9, 0x84, 0xCF, 0x89, 0xCC, 0x94, 0xC9,
- 0x84, 0xCF, 0x89, 0xCD, 0x82, 0xC9, 0x86, 0xCE,
- 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,
- 0x91, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,
- 0x91, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,
- 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,
- 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,
- 0x91, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,
- // Bytes 48c0 - 48ff
- 0x97, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,
- 0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,
- 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,
- 0x97, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,
- 0x97, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,
- 0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,
- 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,
- 0xA9, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,
- // Bytes 4900 - 493f
- 0xA9, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,
- 0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,
- 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,
- 0xA9, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,
- 0xB1, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,
- 0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,
- 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,
- 0xB1, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,
- // Bytes 4940 - 497f
- 0xB1, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,
- 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,
- 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,
- 0xB7, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,
- 0xB7, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,
- 0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,
- 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,
- 0xB7, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCF,
- // Bytes 4980 - 49bf
- 0x89, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCF,
- 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCF,
- 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCF,
- 0x89, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCF,
- 0x89, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCF,
- 0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x42, 0xCC,
- 0x80, 0xC9, 0x32, 0x42, 0xCC, 0x81, 0xC9, 0x32,
- 0x42, 0xCC, 0x93, 0xC9, 0x32, 0x43, 0xE1, 0x85,
- // Bytes 49c0 - 49ff
- 0xA1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA2, 0x01,
- 0x00, 0x43, 0xE1, 0x85, 0xA3, 0x01, 0x00, 0x43,
- 0xE1, 0x85, 0xA4, 0x01, 0x00, 0x43, 0xE1, 0x85,
- 0xA5, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA6, 0x01,
- 0x00, 0x43, 0xE1, 0x85, 0xA7, 0x01, 0x00, 0x43,
- 0xE1, 0x85, 0xA8, 0x01, 0x00, 0x43, 0xE1, 0x85,
- 0xA9, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAA, 0x01,
- 0x00, 0x43, 0xE1, 0x85, 0xAB, 0x01, 0x00, 0x43,
- // Bytes 4a00 - 4a3f
- 0xE1, 0x85, 0xAC, 0x01, 0x00, 0x43, 0xE1, 0x85,
- 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAE, 0x01,
- 0x00, 0x43, 0xE1, 0x85, 0xAF, 0x01, 0x00, 0x43,
- 0xE1, 0x85, 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x85,
- 0xB1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB2, 0x01,
- 0x00, 0x43, 0xE1, 0x85, 0xB3, 0x01, 0x00, 0x43,
- 0xE1, 0x85, 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x85,
- 0xB5, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xAA, 0x01,
- // Bytes 4a40 - 4a7f
- 0x00, 0x43, 0xE1, 0x86, 0xAC, 0x01, 0x00, 0x43,
- 0xE1, 0x86, 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x86,
- 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB1, 0x01,
- 0x00, 0x43, 0xE1, 0x86, 0xB2, 0x01, 0x00, 0x43,
- 0xE1, 0x86, 0xB3, 0x01, 0x00, 0x43, 0xE1, 0x86,
- 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB5, 0x01,
- 0x00, 0x44, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x32,
- 0x43, 0xE3, 0x82, 0x99, 0x0D, 0x03, 0x43, 0xE3,
- // Bytes 4a80 - 4abf
- 0x82, 0x9A, 0x0D, 0x03, 0x46, 0xE0, 0xBD, 0xB1,
- 0xE0, 0xBD, 0xB2, 0x9E, 0x26, 0x46, 0xE0, 0xBD,
- 0xB1, 0xE0, 0xBD, 0xB4, 0xA2, 0x26, 0x46, 0xE0,
- 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x26, 0x00,
- 0x01,
-}
-
-// lookup returns the trie value for the first UTF-8 encoding in s and
-// the width in bytes of this encoding. The size will be 0 if s does not
-// hold enough bytes to complete the encoding. len(s) must be greater than 0.
-func (t *nfcTrie) lookup(s []byte) (v uint16, sz int) {
- c0 := s[0]
- switch {
- case c0 < 0x80: // is ASCII
- return nfcValues[c0], 1
- case c0 < 0xC2:
- return 0, 1 // Illegal UTF-8: not a starter, not ASCII.
- case c0 < 0xE0: // 2-byte UTF-8
- if len(s) < 2 {
- return 0, 0
- }
- i := nfcIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c1), 2
- case c0 < 0xF0: // 3-byte UTF-8
- if len(s) < 3 {
- return 0, 0
- }
- i := nfcIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = nfcIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c2), 3
- case c0 < 0xF8: // 4-byte UTF-8
- if len(s) < 4 {
- return 0, 0
- }
- i := nfcIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = nfcIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- o = uint32(i)<<6 + uint32(c2)
- i = nfcIndex[o]
- c3 := s[3]
- if c3 < 0x80 || 0xC0 <= c3 {
- return 0, 3 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c3), 4
- }
- // Illegal rune
- return 0, 1
-}
-
-// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.
-// s must start with a full and valid UTF-8 encoded rune.
-func (t *nfcTrie) lookupUnsafe(s []byte) uint16 {
- c0 := s[0]
- if c0 < 0x80 { // is ASCII
- return nfcValues[c0]
- }
- i := nfcIndex[c0]
- if c0 < 0xE0 { // 2-byte UTF-8
- return t.lookupValue(uint32(i), s[1])
- }
- i = nfcIndex[uint32(i)<<6+uint32(s[1])]
- if c0 < 0xF0 { // 3-byte UTF-8
- return t.lookupValue(uint32(i), s[2])
- }
- i = nfcIndex[uint32(i)<<6+uint32(s[2])]
- if c0 < 0xF8 { // 4-byte UTF-8
- return t.lookupValue(uint32(i), s[3])
- }
- return 0
-}
-
-// lookupString returns the trie value for the first UTF-8 encoding in s and
-// the width in bytes of this encoding. The size will be 0 if s does not
-// hold enough bytes to complete the encoding. len(s) must be greater than 0.
-func (t *nfcTrie) lookupString(s string) (v uint16, sz int) {
- c0 := s[0]
- switch {
- case c0 < 0x80: // is ASCII
- return nfcValues[c0], 1
- case c0 < 0xC2:
- return 0, 1 // Illegal UTF-8: not a starter, not ASCII.
- case c0 < 0xE0: // 2-byte UTF-8
- if len(s) < 2 {
- return 0, 0
- }
- i := nfcIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c1), 2
- case c0 < 0xF0: // 3-byte UTF-8
- if len(s) < 3 {
- return 0, 0
- }
- i := nfcIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = nfcIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c2), 3
- case c0 < 0xF8: // 4-byte UTF-8
- if len(s) < 4 {
- return 0, 0
- }
- i := nfcIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = nfcIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- o = uint32(i)<<6 + uint32(c2)
- i = nfcIndex[o]
- c3 := s[3]
- if c3 < 0x80 || 0xC0 <= c3 {
- return 0, 3 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c3), 4
- }
- // Illegal rune
- return 0, 1
-}
-
-// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.
-// s must start with a full and valid UTF-8 encoded rune.
-func (t *nfcTrie) lookupStringUnsafe(s string) uint16 {
- c0 := s[0]
- if c0 < 0x80 { // is ASCII
- return nfcValues[c0]
- }
- i := nfcIndex[c0]
- if c0 < 0xE0 { // 2-byte UTF-8
- return t.lookupValue(uint32(i), s[1])
- }
- i = nfcIndex[uint32(i)<<6+uint32(s[1])]
- if c0 < 0xF0 { // 3-byte UTF-8
- return t.lookupValue(uint32(i), s[2])
- }
- i = nfcIndex[uint32(i)<<6+uint32(s[2])]
- if c0 < 0xF8 { // 4-byte UTF-8
- return t.lookupValue(uint32(i), s[3])
- }
- return 0
-}
-
-// nfcTrie. Total size: 10586 bytes (10.34 KiB). Checksum: dd926e82067bee11.
-type nfcTrie struct{}
-
-func newNfcTrie(i int) *nfcTrie {
- return &nfcTrie{}
-}
-
-// lookupValue determines the type of block n and looks up the value for b.
-func (t *nfcTrie) lookupValue(n uint32, b byte) uint16 {
- switch {
- case n < 46:
- return uint16(nfcValues[n<<6+uint32(b)])
- default:
- n -= 46
- return uint16(nfcSparse.lookup(n, b))
- }
-}
-
-// nfcValues: 48 blocks, 3072 entries, 6144 bytes
-// The third block is the zero block.
-var nfcValues = [3072]uint16{
- // Block 0x0, offset 0x0
- 0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000,
- // Block 0x1, offset 0x40
- 0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000,
- 0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000,
- 0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000,
- 0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000,
- 0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000,
- 0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000,
- 0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000,
- 0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000,
- 0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000,
- 0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000,
- // Block 0x2, offset 0x80
- // Block 0x3, offset 0xc0
- 0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c,
- 0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb,
- 0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104,
- 0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd,
- 0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235,
- 0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285,
- 0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3,
- 0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750,
- 0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f,
- 0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3,
- 0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569,
- // Block 0x4, offset 0x100
- 0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 0x104: 0x2f9c, 0x105: 0x32a8,
- 0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6,
- 0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5,
- 0x112: 0x46b0, 0x113: 0x4741, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302,
- 0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339,
- 0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352,
- 0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e,
- 0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6,
- 0x130: 0x308c, 0x134: 0x30b4, 0x135: 0x33c0,
- 0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc,
- 0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8,
- // Block 0x5, offset 0x140
- 0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118,
- 0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f,
- 0x14c: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c,
- 0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483,
- 0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d,
- 0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba,
- 0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796,
- 0x16a: 0x470a, 0x16b: 0x479b, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2,
- 0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528,
- 0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267,
- 0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0xa000,
- // Block 0x6, offset 0x180
- 0x184: 0x8100, 0x185: 0x8100,
- 0x186: 0x8100,
- 0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140,
- 0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8,
- 0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50,
- 0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5,
- 0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf,
- 0x1aa: 0x46ec, 0x1ab: 0x477d, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd,
- 0x1b0: 0x33c5, 0x1b4: 0x3028, 0x1b5: 0x3334,
- 0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46,
- 0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb,
- // Block 0x7, offset 0x1c0
- 0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316,
- 0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac,
- 0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479,
- 0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6,
- 0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5,
- 0x1de: 0x305a, 0x1df: 0x3366,
- 0x1e6: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b,
- 0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769,
- 0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f,
- // Block 0x8, offset 0x200
- 0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132,
- 0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932,
- 0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932,
- 0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d,
- 0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d,
- 0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d,
- 0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d,
- 0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d,
- 0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101,
- 0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d,
- 0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132,
- // Block 0x9, offset 0x240
- 0x240: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 0x245: 0x9936,
- 0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132,
- 0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132,
- 0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132,
- 0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135,
- 0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132,
- 0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132,
- 0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132,
- 0x274: 0x0170,
- 0x27a: 0x8100,
- 0x27e: 0x0037,
- // Block 0xa, offset 0x280
- 0x284: 0x8100, 0x285: 0x35a1,
- 0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625,
- 0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000,
- 0x295: 0xa000, 0x297: 0xa000,
- 0x299: 0xa000,
- 0x29f: 0xa000, 0x2a1: 0xa000,
- 0x2a5: 0xa000, 0x2a9: 0xa000,
- 0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 0x2af: 0x36a9,
- 0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000,
- 0x2b7: 0xa000, 0x2b9: 0xa000,
- 0x2bf: 0xa000,
- // Block 0xb, offset 0x2c0
- 0x2c0: 0x3721, 0x2c1: 0x372d, 0x2c3: 0x371b,
- 0x2c6: 0xa000, 0x2c7: 0x3709,
- 0x2cc: 0x375d, 0x2cd: 0x3745, 0x2ce: 0x376f, 0x2d0: 0xa000,
- 0x2d3: 0xa000, 0x2d5: 0xa000, 0x2d6: 0xa000, 0x2d7: 0xa000,
- 0x2d8: 0xa000, 0x2d9: 0x3751, 0x2da: 0xa000,
- 0x2de: 0xa000, 0x2e3: 0xa000,
- 0x2e7: 0xa000,
- 0x2eb: 0xa000, 0x2ed: 0xa000,
- 0x2f0: 0xa000, 0x2f3: 0xa000, 0x2f5: 0xa000,
- 0x2f6: 0xa000, 0x2f7: 0xa000, 0x2f8: 0xa000, 0x2f9: 0x37d5, 0x2fa: 0xa000,
- 0x2fe: 0xa000,
- // Block 0xc, offset 0x300
- 0x301: 0x3733, 0x302: 0x37b7,
- 0x310: 0x370f, 0x311: 0x3793,
- 0x312: 0x3715, 0x313: 0x3799, 0x316: 0x3727, 0x317: 0x37ab,
- 0x318: 0xa000, 0x319: 0xa000, 0x31a: 0x3829, 0x31b: 0x382f, 0x31c: 0x3739, 0x31d: 0x37bd,
- 0x31e: 0x373f, 0x31f: 0x37c3, 0x322: 0x374b, 0x323: 0x37cf,
- 0x324: 0x3757, 0x325: 0x37db, 0x326: 0x3763, 0x327: 0x37e7, 0x328: 0xa000, 0x329: 0xa000,
- 0x32a: 0x3835, 0x32b: 0x383b, 0x32c: 0x378d, 0x32d: 0x3811, 0x32e: 0x3769, 0x32f: 0x37ed,
- 0x330: 0x3775, 0x331: 0x37f9, 0x332: 0x377b, 0x333: 0x37ff, 0x334: 0x3781, 0x335: 0x3805,
- 0x338: 0x3787, 0x339: 0x380b,
- // Block 0xd, offset 0x340
- 0x351: 0x812d,
- 0x352: 0x8132, 0x353: 0x8132, 0x354: 0x8132, 0x355: 0x8132, 0x356: 0x812d, 0x357: 0x8132,
- 0x358: 0x8132, 0x359: 0x8132, 0x35a: 0x812e, 0x35b: 0x812d, 0x35c: 0x8132, 0x35d: 0x8132,
- 0x35e: 0x8132, 0x35f: 0x8132, 0x360: 0x8132, 0x361: 0x8132, 0x362: 0x812d, 0x363: 0x812d,
- 0x364: 0x812d, 0x365: 0x812d, 0x366: 0x812d, 0x367: 0x812d, 0x368: 0x8132, 0x369: 0x8132,
- 0x36a: 0x812d, 0x36b: 0x8132, 0x36c: 0x8132, 0x36d: 0x812e, 0x36e: 0x8131, 0x36f: 0x8132,
- 0x370: 0x8105, 0x371: 0x8106, 0x372: 0x8107, 0x373: 0x8108, 0x374: 0x8109, 0x375: 0x810a,
- 0x376: 0x810b, 0x377: 0x810c, 0x378: 0x810d, 0x379: 0x810e, 0x37a: 0x810e, 0x37b: 0x810f,
- 0x37c: 0x8110, 0x37d: 0x8111, 0x37f: 0x8112,
- // Block 0xe, offset 0x380
- 0x388: 0xa000, 0x38a: 0xa000, 0x38b: 0x8116,
- 0x38c: 0x8117, 0x38d: 0x8118, 0x38e: 0x8119, 0x38f: 0x811a, 0x390: 0x811b, 0x391: 0x811c,
- 0x392: 0x811d, 0x393: 0x9932, 0x394: 0x9932, 0x395: 0x992d, 0x396: 0x812d, 0x397: 0x8132,
- 0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x8132, 0x39b: 0x8132, 0x39c: 0x812d, 0x39d: 0x8132,
- 0x39e: 0x8132, 0x39f: 0x812d,
- 0x3b0: 0x811e,
- // Block 0xf, offset 0x3c0
- 0x3d3: 0x812d, 0x3d4: 0x8132, 0x3d5: 0x8132, 0x3d6: 0x8132, 0x3d7: 0x8132,
- 0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x8132, 0x3dd: 0x8132,
- 0x3de: 0x8132, 0x3df: 0x8132, 0x3e0: 0x8132, 0x3e1: 0x8132, 0x3e3: 0x812d,
- 0x3e4: 0x8132, 0x3e5: 0x8132, 0x3e6: 0x812d, 0x3e7: 0x8132, 0x3e8: 0x8132, 0x3e9: 0x812d,
- 0x3ea: 0x8132, 0x3eb: 0x8132, 0x3ec: 0x8132, 0x3ed: 0x812d, 0x3ee: 0x812d, 0x3ef: 0x812d,
- 0x3f0: 0x8116, 0x3f1: 0x8117, 0x3f2: 0x8118, 0x3f3: 0x8132, 0x3f4: 0x8132, 0x3f5: 0x8132,
- 0x3f6: 0x812d, 0x3f7: 0x8132, 0x3f8: 0x8132, 0x3f9: 0x812d, 0x3fa: 0x812d, 0x3fb: 0x8132,
- 0x3fc: 0x8132, 0x3fd: 0x8132, 0x3fe: 0x8132, 0x3ff: 0x8132,
- // Block 0x10, offset 0x400
- 0x405: 0xa000,
- 0x406: 0x2d26, 0x407: 0xa000, 0x408: 0x2d2e, 0x409: 0xa000, 0x40a: 0x2d36, 0x40b: 0xa000,
- 0x40c: 0x2d3e, 0x40d: 0xa000, 0x40e: 0x2d46, 0x411: 0xa000,
- 0x412: 0x2d4e,
- 0x434: 0x8102, 0x435: 0x9900,
- 0x43a: 0xa000, 0x43b: 0x2d56,
- 0x43c: 0xa000, 0x43d: 0x2d5e, 0x43e: 0xa000, 0x43f: 0xa000,
- // Block 0x11, offset 0x440
- 0x440: 0x8132, 0x441: 0x8132, 0x442: 0x812d, 0x443: 0x8132, 0x444: 0x8132, 0x445: 0x8132,
- 0x446: 0x8132, 0x447: 0x8132, 0x448: 0x8132, 0x449: 0x8132, 0x44a: 0x812d, 0x44b: 0x8132,
- 0x44c: 0x8132, 0x44d: 0x8135, 0x44e: 0x812a, 0x44f: 0x812d, 0x450: 0x8129, 0x451: 0x8132,
- 0x452: 0x8132, 0x453: 0x8132, 0x454: 0x8132, 0x455: 0x8132, 0x456: 0x8132, 0x457: 0x8132,
- 0x458: 0x8132, 0x459: 0x8132, 0x45a: 0x8132, 0x45b: 0x8132, 0x45c: 0x8132, 0x45d: 0x8132,
- 0x45e: 0x8132, 0x45f: 0x8132, 0x460: 0x8132, 0x461: 0x8132, 0x462: 0x8132, 0x463: 0x8132,
- 0x464: 0x8132, 0x465: 0x8132, 0x466: 0x8132, 0x467: 0x8132, 0x468: 0x8132, 0x469: 0x8132,
- 0x46a: 0x8132, 0x46b: 0x8132, 0x46c: 0x8132, 0x46d: 0x8132, 0x46e: 0x8132, 0x46f: 0x8132,
- 0x470: 0x8132, 0x471: 0x8132, 0x472: 0x8132, 0x473: 0x8132, 0x474: 0x8132, 0x475: 0x8132,
- 0x476: 0x8133, 0x477: 0x8131, 0x478: 0x8131, 0x479: 0x812d, 0x47b: 0x8132,
- 0x47c: 0x8134, 0x47d: 0x812d, 0x47e: 0x8132, 0x47f: 0x812d,
- // Block 0x12, offset 0x480
- 0x480: 0x2f97, 0x481: 0x32a3, 0x482: 0x2fa1, 0x483: 0x32ad, 0x484: 0x2fa6, 0x485: 0x32b2,
- 0x486: 0x2fab, 0x487: 0x32b7, 0x488: 0x38cc, 0x489: 0x3a5b, 0x48a: 0x2fc4, 0x48b: 0x32d0,
- 0x48c: 0x2fce, 0x48d: 0x32da, 0x48e: 0x2fdd, 0x48f: 0x32e9, 0x490: 0x2fd3, 0x491: 0x32df,
- 0x492: 0x2fd8, 0x493: 0x32e4, 0x494: 0x38ef, 0x495: 0x3a7e, 0x496: 0x38f6, 0x497: 0x3a85,
- 0x498: 0x3019, 0x499: 0x3325, 0x49a: 0x301e, 0x49b: 0x332a, 0x49c: 0x3904, 0x49d: 0x3a93,
- 0x49e: 0x3023, 0x49f: 0x332f, 0x4a0: 0x3032, 0x4a1: 0x333e, 0x4a2: 0x3050, 0x4a3: 0x335c,
- 0x4a4: 0x305f, 0x4a5: 0x336b, 0x4a6: 0x3055, 0x4a7: 0x3361, 0x4a8: 0x3064, 0x4a9: 0x3370,
- 0x4aa: 0x3069, 0x4ab: 0x3375, 0x4ac: 0x30af, 0x4ad: 0x33bb, 0x4ae: 0x390b, 0x4af: 0x3a9a,
- 0x4b0: 0x30b9, 0x4b1: 0x33ca, 0x4b2: 0x30c3, 0x4b3: 0x33d4, 0x4b4: 0x30cd, 0x4b5: 0x33de,
- 0x4b6: 0x46c4, 0x4b7: 0x4755, 0x4b8: 0x3912, 0x4b9: 0x3aa1, 0x4ba: 0x30e6, 0x4bb: 0x33f7,
- 0x4bc: 0x30e1, 0x4bd: 0x33f2, 0x4be: 0x30eb, 0x4bf: 0x33fc,
- // Block 0x13, offset 0x4c0
- 0x4c0: 0x30f0, 0x4c1: 0x3401, 0x4c2: 0x30f5, 0x4c3: 0x3406, 0x4c4: 0x3109, 0x4c5: 0x341a,
- 0x4c6: 0x3113, 0x4c7: 0x3424, 0x4c8: 0x3122, 0x4c9: 0x3433, 0x4ca: 0x311d, 0x4cb: 0x342e,
- 0x4cc: 0x3935, 0x4cd: 0x3ac4, 0x4ce: 0x3943, 0x4cf: 0x3ad2, 0x4d0: 0x394a, 0x4d1: 0x3ad9,
- 0x4d2: 0x3951, 0x4d3: 0x3ae0, 0x4d4: 0x314f, 0x4d5: 0x3460, 0x4d6: 0x3154, 0x4d7: 0x3465,
- 0x4d8: 0x315e, 0x4d9: 0x346f, 0x4da: 0x46f1, 0x4db: 0x4782, 0x4dc: 0x3997, 0x4dd: 0x3b26,
- 0x4de: 0x3177, 0x4df: 0x3488, 0x4e0: 0x3181, 0x4e1: 0x3492, 0x4e2: 0x4700, 0x4e3: 0x4791,
- 0x4e4: 0x399e, 0x4e5: 0x3b2d, 0x4e6: 0x39a5, 0x4e7: 0x3b34, 0x4e8: 0x39ac, 0x4e9: 0x3b3b,
- 0x4ea: 0x3190, 0x4eb: 0x34a1, 0x4ec: 0x319a, 0x4ed: 0x34b0, 0x4ee: 0x31ae, 0x4ef: 0x34c4,
- 0x4f0: 0x31a9, 0x4f1: 0x34bf, 0x4f2: 0x31ea, 0x4f3: 0x3500, 0x4f4: 0x31f9, 0x4f5: 0x350f,
- 0x4f6: 0x31f4, 0x4f7: 0x350a, 0x4f8: 0x39b3, 0x4f9: 0x3b42, 0x4fa: 0x39ba, 0x4fb: 0x3b49,
- 0x4fc: 0x31fe, 0x4fd: 0x3514, 0x4fe: 0x3203, 0x4ff: 0x3519,
- // Block 0x14, offset 0x500
- 0x500: 0x3208, 0x501: 0x351e, 0x502: 0x320d, 0x503: 0x3523, 0x504: 0x321c, 0x505: 0x3532,
- 0x506: 0x3217, 0x507: 0x352d, 0x508: 0x3221, 0x509: 0x353c, 0x50a: 0x3226, 0x50b: 0x3541,
- 0x50c: 0x322b, 0x50d: 0x3546, 0x50e: 0x3249, 0x50f: 0x3564, 0x510: 0x3262, 0x511: 0x3582,
- 0x512: 0x3271, 0x513: 0x3591, 0x514: 0x3276, 0x515: 0x3596, 0x516: 0x337a, 0x517: 0x34a6,
- 0x518: 0x3537, 0x519: 0x3573, 0x51b: 0x35d1,
- 0x520: 0x46a1, 0x521: 0x4732, 0x522: 0x2f83, 0x523: 0x328f,
- 0x524: 0x3878, 0x525: 0x3a07, 0x526: 0x3871, 0x527: 0x3a00, 0x528: 0x3886, 0x529: 0x3a15,
- 0x52a: 0x387f, 0x52b: 0x3a0e, 0x52c: 0x38be, 0x52d: 0x3a4d, 0x52e: 0x3894, 0x52f: 0x3a23,
- 0x530: 0x388d, 0x531: 0x3a1c, 0x532: 0x38a2, 0x533: 0x3a31, 0x534: 0x389b, 0x535: 0x3a2a,
- 0x536: 0x38c5, 0x537: 0x3a54, 0x538: 0x46b5, 0x539: 0x4746, 0x53a: 0x3000, 0x53b: 0x330c,
- 0x53c: 0x2fec, 0x53d: 0x32f8, 0x53e: 0x38da, 0x53f: 0x3a69,
- // Block 0x15, offset 0x540
- 0x540: 0x38d3, 0x541: 0x3a62, 0x542: 0x38e8, 0x543: 0x3a77, 0x544: 0x38e1, 0x545: 0x3a70,
- 0x546: 0x38fd, 0x547: 0x3a8c, 0x548: 0x3091, 0x549: 0x339d, 0x54a: 0x30a5, 0x54b: 0x33b1,
- 0x54c: 0x46e7, 0x54d: 0x4778, 0x54e: 0x3136, 0x54f: 0x3447, 0x550: 0x3920, 0x551: 0x3aaf,
- 0x552: 0x3919, 0x553: 0x3aa8, 0x554: 0x392e, 0x555: 0x3abd, 0x556: 0x3927, 0x557: 0x3ab6,
- 0x558: 0x3989, 0x559: 0x3b18, 0x55a: 0x396d, 0x55b: 0x3afc, 0x55c: 0x3966, 0x55d: 0x3af5,
- 0x55e: 0x397b, 0x55f: 0x3b0a, 0x560: 0x3974, 0x561: 0x3b03, 0x562: 0x3982, 0x563: 0x3b11,
- 0x564: 0x31e5, 0x565: 0x34fb, 0x566: 0x31c7, 0x567: 0x34dd, 0x568: 0x39e4, 0x569: 0x3b73,
- 0x56a: 0x39dd, 0x56b: 0x3b6c, 0x56c: 0x39f2, 0x56d: 0x3b81, 0x56e: 0x39eb, 0x56f: 0x3b7a,
- 0x570: 0x39f9, 0x571: 0x3b88, 0x572: 0x3230, 0x573: 0x354b, 0x574: 0x3258, 0x575: 0x3578,
- 0x576: 0x3253, 0x577: 0x356e, 0x578: 0x323f, 0x579: 0x355a,
- // Block 0x16, offset 0x580
- 0x580: 0x4804, 0x581: 0x480a, 0x582: 0x491e, 0x583: 0x4936, 0x584: 0x4926, 0x585: 0x493e,
- 0x586: 0x492e, 0x587: 0x4946, 0x588: 0x47aa, 0x589: 0x47b0, 0x58a: 0x488e, 0x58b: 0x48a6,
- 0x58c: 0x4896, 0x58d: 0x48ae, 0x58e: 0x489e, 0x58f: 0x48b6, 0x590: 0x4816, 0x591: 0x481c,
- 0x592: 0x3db8, 0x593: 0x3dc8, 0x594: 0x3dc0, 0x595: 0x3dd0,
- 0x598: 0x47b6, 0x599: 0x47bc, 0x59a: 0x3ce8, 0x59b: 0x3cf8, 0x59c: 0x3cf0, 0x59d: 0x3d00,
- 0x5a0: 0x482e, 0x5a1: 0x4834, 0x5a2: 0x494e, 0x5a3: 0x4966,
- 0x5a4: 0x4956, 0x5a5: 0x496e, 0x5a6: 0x495e, 0x5a7: 0x4976, 0x5a8: 0x47c2, 0x5a9: 0x47c8,
- 0x5aa: 0x48be, 0x5ab: 0x48d6, 0x5ac: 0x48c6, 0x5ad: 0x48de, 0x5ae: 0x48ce, 0x5af: 0x48e6,
- 0x5b0: 0x4846, 0x5b1: 0x484c, 0x5b2: 0x3e18, 0x5b3: 0x3e30, 0x5b4: 0x3e20, 0x5b5: 0x3e38,
- 0x5b6: 0x3e28, 0x5b7: 0x3e40, 0x5b8: 0x47ce, 0x5b9: 0x47d4, 0x5ba: 0x3d18, 0x5bb: 0x3d30,
- 0x5bc: 0x3d20, 0x5bd: 0x3d38, 0x5be: 0x3d28, 0x5bf: 0x3d40,
- // Block 0x17, offset 0x5c0
- 0x5c0: 0x4852, 0x5c1: 0x4858, 0x5c2: 0x3e48, 0x5c3: 0x3e58, 0x5c4: 0x3e50, 0x5c5: 0x3e60,
- 0x5c8: 0x47da, 0x5c9: 0x47e0, 0x5ca: 0x3d48, 0x5cb: 0x3d58,
- 0x5cc: 0x3d50, 0x5cd: 0x3d60, 0x5d0: 0x4864, 0x5d1: 0x486a,
- 0x5d2: 0x3e80, 0x5d3: 0x3e98, 0x5d4: 0x3e88, 0x5d5: 0x3ea0, 0x5d6: 0x3e90, 0x5d7: 0x3ea8,
- 0x5d9: 0x47e6, 0x5db: 0x3d68, 0x5dd: 0x3d70,
- 0x5df: 0x3d78, 0x5e0: 0x487c, 0x5e1: 0x4882, 0x5e2: 0x497e, 0x5e3: 0x4996,
- 0x5e4: 0x4986, 0x5e5: 0x499e, 0x5e6: 0x498e, 0x5e7: 0x49a6, 0x5e8: 0x47ec, 0x5e9: 0x47f2,
- 0x5ea: 0x48ee, 0x5eb: 0x4906, 0x5ec: 0x48f6, 0x5ed: 0x490e, 0x5ee: 0x48fe, 0x5ef: 0x4916,
- 0x5f0: 0x47f8, 0x5f1: 0x431e, 0x5f2: 0x3691, 0x5f3: 0x4324, 0x5f4: 0x4822, 0x5f5: 0x432a,
- 0x5f6: 0x36a3, 0x5f7: 0x4330, 0x5f8: 0x36c1, 0x5f9: 0x4336, 0x5fa: 0x36d9, 0x5fb: 0x433c,
- 0x5fc: 0x4870, 0x5fd: 0x4342,
- // Block 0x18, offset 0x600
- 0x600: 0x3da0, 0x601: 0x3da8, 0x602: 0x4184, 0x603: 0x41a2, 0x604: 0x418e, 0x605: 0x41ac,
- 0x606: 0x4198, 0x607: 0x41b6, 0x608: 0x3cd8, 0x609: 0x3ce0, 0x60a: 0x40d0, 0x60b: 0x40ee,
- 0x60c: 0x40da, 0x60d: 0x40f8, 0x60e: 0x40e4, 0x60f: 0x4102, 0x610: 0x3de8, 0x611: 0x3df0,
- 0x612: 0x41c0, 0x613: 0x41de, 0x614: 0x41ca, 0x615: 0x41e8, 0x616: 0x41d4, 0x617: 0x41f2,
- 0x618: 0x3d08, 0x619: 0x3d10, 0x61a: 0x410c, 0x61b: 0x412a, 0x61c: 0x4116, 0x61d: 0x4134,
- 0x61e: 0x4120, 0x61f: 0x413e, 0x620: 0x3ec0, 0x621: 0x3ec8, 0x622: 0x41fc, 0x623: 0x421a,
- 0x624: 0x4206, 0x625: 0x4224, 0x626: 0x4210, 0x627: 0x422e, 0x628: 0x3d80, 0x629: 0x3d88,
- 0x62a: 0x4148, 0x62b: 0x4166, 0x62c: 0x4152, 0x62d: 0x4170, 0x62e: 0x415c, 0x62f: 0x417a,
- 0x630: 0x3685, 0x631: 0x367f, 0x632: 0x3d90, 0x633: 0x368b, 0x634: 0x3d98,
- 0x636: 0x4810, 0x637: 0x3db0, 0x638: 0x35f5, 0x639: 0x35ef, 0x63a: 0x35e3, 0x63b: 0x42ee,
- 0x63c: 0x35fb, 0x63d: 0x8100, 0x63e: 0x01d3, 0x63f: 0xa100,
- // Block 0x19, offset 0x640
- 0x640: 0x8100, 0x641: 0x35a7, 0x642: 0x3dd8, 0x643: 0x369d, 0x644: 0x3de0,
- 0x646: 0x483a, 0x647: 0x3df8, 0x648: 0x3601, 0x649: 0x42f4, 0x64a: 0x360d, 0x64b: 0x42fa,
- 0x64c: 0x3619, 0x64d: 0x3b8f, 0x64e: 0x3b96, 0x64f: 0x3b9d, 0x650: 0x36b5, 0x651: 0x36af,
- 0x652: 0x3e00, 0x653: 0x44e4, 0x656: 0x36bb, 0x657: 0x3e10,
- 0x658: 0x3631, 0x659: 0x362b, 0x65a: 0x361f, 0x65b: 0x4300, 0x65d: 0x3ba4,
- 0x65e: 0x3bab, 0x65f: 0x3bb2, 0x660: 0x36eb, 0x661: 0x36e5, 0x662: 0x3e68, 0x663: 0x44ec,
- 0x664: 0x36cd, 0x665: 0x36d3, 0x666: 0x36f1, 0x667: 0x3e78, 0x668: 0x3661, 0x669: 0x365b,
- 0x66a: 0x364f, 0x66b: 0x430c, 0x66c: 0x3649, 0x66d: 0x359b, 0x66e: 0x42e8, 0x66f: 0x0081,
- 0x672: 0x3eb0, 0x673: 0x36f7, 0x674: 0x3eb8,
- 0x676: 0x4888, 0x677: 0x3ed0, 0x678: 0x363d, 0x679: 0x4306, 0x67a: 0x366d, 0x67b: 0x4318,
- 0x67c: 0x3679, 0x67d: 0x4256, 0x67e: 0xa100,
- // Block 0x1a, offset 0x680
- 0x681: 0x3c06, 0x683: 0xa000, 0x684: 0x3c0d, 0x685: 0xa000,
- 0x687: 0x3c14, 0x688: 0xa000, 0x689: 0x3c1b,
- 0x68d: 0xa000,
- 0x6a0: 0x2f65, 0x6a1: 0xa000, 0x6a2: 0x3c29,
- 0x6a4: 0xa000, 0x6a5: 0xa000,
- 0x6ad: 0x3c22, 0x6ae: 0x2f60, 0x6af: 0x2f6a,
- 0x6b0: 0x3c30, 0x6b1: 0x3c37, 0x6b2: 0xa000, 0x6b3: 0xa000, 0x6b4: 0x3c3e, 0x6b5: 0x3c45,
- 0x6b6: 0xa000, 0x6b7: 0xa000, 0x6b8: 0x3c4c, 0x6b9: 0x3c53, 0x6ba: 0xa000, 0x6bb: 0xa000,
- 0x6bc: 0xa000, 0x6bd: 0xa000,
- // Block 0x1b, offset 0x6c0
- 0x6c0: 0x3c5a, 0x6c1: 0x3c61, 0x6c2: 0xa000, 0x6c3: 0xa000, 0x6c4: 0x3c76, 0x6c5: 0x3c7d,
- 0x6c6: 0xa000, 0x6c7: 0xa000, 0x6c8: 0x3c84, 0x6c9: 0x3c8b,
- 0x6d1: 0xa000,
- 0x6d2: 0xa000,
- 0x6e2: 0xa000,
- 0x6e8: 0xa000, 0x6e9: 0xa000,
- 0x6eb: 0xa000, 0x6ec: 0x3ca0, 0x6ed: 0x3ca7, 0x6ee: 0x3cae, 0x6ef: 0x3cb5,
- 0x6f2: 0xa000, 0x6f3: 0xa000, 0x6f4: 0xa000, 0x6f5: 0xa000,
- // Block 0x1c, offset 0x700
- 0x706: 0xa000, 0x70b: 0xa000,
- 0x70c: 0x3f08, 0x70d: 0xa000, 0x70e: 0x3f10, 0x70f: 0xa000, 0x710: 0x3f18, 0x711: 0xa000,
- 0x712: 0x3f20, 0x713: 0xa000, 0x714: 0x3f28, 0x715: 0xa000, 0x716: 0x3f30, 0x717: 0xa000,
- 0x718: 0x3f38, 0x719: 0xa000, 0x71a: 0x3f40, 0x71b: 0xa000, 0x71c: 0x3f48, 0x71d: 0xa000,
- 0x71e: 0x3f50, 0x71f: 0xa000, 0x720: 0x3f58, 0x721: 0xa000, 0x722: 0x3f60,
- 0x724: 0xa000, 0x725: 0x3f68, 0x726: 0xa000, 0x727: 0x3f70, 0x728: 0xa000, 0x729: 0x3f78,
- 0x72f: 0xa000,
- 0x730: 0x3f80, 0x731: 0x3f88, 0x732: 0xa000, 0x733: 0x3f90, 0x734: 0x3f98, 0x735: 0xa000,
- 0x736: 0x3fa0, 0x737: 0x3fa8, 0x738: 0xa000, 0x739: 0x3fb0, 0x73a: 0x3fb8, 0x73b: 0xa000,
- 0x73c: 0x3fc0, 0x73d: 0x3fc8,
- // Block 0x1d, offset 0x740
- 0x754: 0x3f00,
- 0x759: 0x9903, 0x75a: 0x9903, 0x75b: 0x8100, 0x75c: 0x8100, 0x75d: 0xa000,
- 0x75e: 0x3fd0,
- 0x766: 0xa000,
- 0x76b: 0xa000, 0x76c: 0x3fe0, 0x76d: 0xa000, 0x76e: 0x3fe8, 0x76f: 0xa000,
- 0x770: 0x3ff0, 0x771: 0xa000, 0x772: 0x3ff8, 0x773: 0xa000, 0x774: 0x4000, 0x775: 0xa000,
- 0x776: 0x4008, 0x777: 0xa000, 0x778: 0x4010, 0x779: 0xa000, 0x77a: 0x4018, 0x77b: 0xa000,
- 0x77c: 0x4020, 0x77d: 0xa000, 0x77e: 0x4028, 0x77f: 0xa000,
- // Block 0x1e, offset 0x780
- 0x780: 0x4030, 0x781: 0xa000, 0x782: 0x4038, 0x784: 0xa000, 0x785: 0x4040,
- 0x786: 0xa000, 0x787: 0x4048, 0x788: 0xa000, 0x789: 0x4050,
- 0x78f: 0xa000, 0x790: 0x4058, 0x791: 0x4060,
- 0x792: 0xa000, 0x793: 0x4068, 0x794: 0x4070, 0x795: 0xa000, 0x796: 0x4078, 0x797: 0x4080,
- 0x798: 0xa000, 0x799: 0x4088, 0x79a: 0x4090, 0x79b: 0xa000, 0x79c: 0x4098, 0x79d: 0x40a0,
- 0x7af: 0xa000,
- 0x7b0: 0xa000, 0x7b1: 0xa000, 0x7b2: 0xa000, 0x7b4: 0x3fd8,
- 0x7b7: 0x40a8, 0x7b8: 0x40b0, 0x7b9: 0x40b8, 0x7ba: 0x40c0,
- 0x7bd: 0xa000, 0x7be: 0x40c8,
- // Block 0x1f, offset 0x7c0
- 0x7c0: 0x1377, 0x7c1: 0x0cfb, 0x7c2: 0x13d3, 0x7c3: 0x139f, 0x7c4: 0x0e57, 0x7c5: 0x06eb,
- 0x7c6: 0x08df, 0x7c7: 0x162b, 0x7c8: 0x162b, 0x7c9: 0x0a0b, 0x7ca: 0x145f, 0x7cb: 0x0943,
- 0x7cc: 0x0a07, 0x7cd: 0x0bef, 0x7ce: 0x0fcf, 0x7cf: 0x115f, 0x7d0: 0x1297, 0x7d1: 0x12d3,
- 0x7d2: 0x1307, 0x7d3: 0x141b, 0x7d4: 0x0d73, 0x7d5: 0x0dff, 0x7d6: 0x0eab, 0x7d7: 0x0f43,
- 0x7d8: 0x125f, 0x7d9: 0x1447, 0x7da: 0x1573, 0x7db: 0x070f, 0x7dc: 0x08b3, 0x7dd: 0x0d87,
- 0x7de: 0x0ecf, 0x7df: 0x1293, 0x7e0: 0x15c3, 0x7e1: 0x0ab3, 0x7e2: 0x0e77, 0x7e3: 0x1283,
- 0x7e4: 0x1317, 0x7e5: 0x0c23, 0x7e6: 0x11bb, 0x7e7: 0x12df, 0x7e8: 0x0b1f, 0x7e9: 0x0d0f,
- 0x7ea: 0x0e17, 0x7eb: 0x0f1b, 0x7ec: 0x1427, 0x7ed: 0x074f, 0x7ee: 0x07e7, 0x7ef: 0x0853,
- 0x7f0: 0x0c8b, 0x7f1: 0x0d7f, 0x7f2: 0x0ecb, 0x7f3: 0x0fef, 0x7f4: 0x1177, 0x7f5: 0x128b,
- 0x7f6: 0x12a3, 0x7f7: 0x13c7, 0x7f8: 0x14ef, 0x7f9: 0x15a3, 0x7fa: 0x15bf, 0x7fb: 0x102b,
- 0x7fc: 0x106b, 0x7fd: 0x1123, 0x7fe: 0x1243, 0x7ff: 0x147b,
- // Block 0x20, offset 0x800
- 0x800: 0x15cb, 0x801: 0x134b, 0x802: 0x09c7, 0x803: 0x0b3b, 0x804: 0x10db, 0x805: 0x119b,
- 0x806: 0x0eff, 0x807: 0x1033, 0x808: 0x1397, 0x809: 0x14e7, 0x80a: 0x09c3, 0x80b: 0x0a8f,
- 0x80c: 0x0d77, 0x80d: 0x0e2b, 0x80e: 0x0e5f, 0x80f: 0x1113, 0x810: 0x113b, 0x811: 0x14a7,
- 0x812: 0x084f, 0x813: 0x11a7, 0x814: 0x07f3, 0x815: 0x07ef, 0x816: 0x1097, 0x817: 0x1127,
- 0x818: 0x125b, 0x819: 0x14af, 0x81a: 0x1367, 0x81b: 0x0c27, 0x81c: 0x0d73, 0x81d: 0x1357,
- 0x81e: 0x06f7, 0x81f: 0x0a63, 0x820: 0x0b93, 0x821: 0x0f2f, 0x822: 0x0faf, 0x823: 0x0873,
- 0x824: 0x103b, 0x825: 0x075f, 0x826: 0x0b77, 0x827: 0x06d7, 0x828: 0x0deb, 0x829: 0x0ca3,
- 0x82a: 0x110f, 0x82b: 0x08c7, 0x82c: 0x09b3, 0x82d: 0x0ffb, 0x82e: 0x1263, 0x82f: 0x133b,
- 0x830: 0x0db7, 0x831: 0x13f7, 0x832: 0x0de3, 0x833: 0x0c37, 0x834: 0x121b, 0x835: 0x0c57,
- 0x836: 0x0fab, 0x837: 0x072b, 0x838: 0x07a7, 0x839: 0x07eb, 0x83a: 0x0d53, 0x83b: 0x10fb,
- 0x83c: 0x11f3, 0x83d: 0x1347, 0x83e: 0x145b, 0x83f: 0x085b,
- // Block 0x21, offset 0x840
- 0x840: 0x090f, 0x841: 0x0a17, 0x842: 0x0b2f, 0x843: 0x0cbf, 0x844: 0x0e7b, 0x845: 0x103f,
- 0x846: 0x1497, 0x847: 0x157b, 0x848: 0x15cf, 0x849: 0x15e7, 0x84a: 0x0837, 0x84b: 0x0cf3,
- 0x84c: 0x0da3, 0x84d: 0x13eb, 0x84e: 0x0afb, 0x84f: 0x0bd7, 0x850: 0x0bf3, 0x851: 0x0c83,
- 0x852: 0x0e6b, 0x853: 0x0eb7, 0x854: 0x0f67, 0x855: 0x108b, 0x856: 0x112f, 0x857: 0x1193,
- 0x858: 0x13db, 0x859: 0x126b, 0x85a: 0x1403, 0x85b: 0x147f, 0x85c: 0x080f, 0x85d: 0x083b,
- 0x85e: 0x0923, 0x85f: 0x0ea7, 0x860: 0x12f3, 0x861: 0x133b, 0x862: 0x0b1b, 0x863: 0x0b8b,
- 0x864: 0x0c4f, 0x865: 0x0daf, 0x866: 0x10d7, 0x867: 0x0f23, 0x868: 0x073b, 0x869: 0x097f,
- 0x86a: 0x0a63, 0x86b: 0x0ac7, 0x86c: 0x0b97, 0x86d: 0x0f3f, 0x86e: 0x0f5b, 0x86f: 0x116b,
- 0x870: 0x118b, 0x871: 0x1463, 0x872: 0x14e3, 0x873: 0x14f3, 0x874: 0x152f, 0x875: 0x0753,
- 0x876: 0x107f, 0x877: 0x144f, 0x878: 0x14cb, 0x879: 0x0baf, 0x87a: 0x0717, 0x87b: 0x0777,
- 0x87c: 0x0a67, 0x87d: 0x0a87, 0x87e: 0x0caf, 0x87f: 0x0d73,
- // Block 0x22, offset 0x880
- 0x880: 0x0ec3, 0x881: 0x0fcb, 0x882: 0x1277, 0x883: 0x1417, 0x884: 0x1623, 0x885: 0x0ce3,
- 0x886: 0x14a3, 0x887: 0x0833, 0x888: 0x0d2f, 0x889: 0x0d3b, 0x88a: 0x0e0f, 0x88b: 0x0e47,
- 0x88c: 0x0f4b, 0x88d: 0x0fa7, 0x88e: 0x1027, 0x88f: 0x110b, 0x890: 0x153b, 0x891: 0x07af,
- 0x892: 0x0c03, 0x893: 0x14b3, 0x894: 0x0767, 0x895: 0x0aab, 0x896: 0x0e2f, 0x897: 0x13df,
- 0x898: 0x0b67, 0x899: 0x0bb7, 0x89a: 0x0d43, 0x89b: 0x0f2f, 0x89c: 0x14bb, 0x89d: 0x0817,
- 0x89e: 0x08ff, 0x89f: 0x0a97, 0x8a0: 0x0cd3, 0x8a1: 0x0d1f, 0x8a2: 0x0d5f, 0x8a3: 0x0df3,
- 0x8a4: 0x0f47, 0x8a5: 0x0fbb, 0x8a6: 0x1157, 0x8a7: 0x12f7, 0x8a8: 0x1303, 0x8a9: 0x1457,
- 0x8aa: 0x14d7, 0x8ab: 0x0883, 0x8ac: 0x0e4b, 0x8ad: 0x0903, 0x8ae: 0x0ec7, 0x8af: 0x0f6b,
- 0x8b0: 0x1287, 0x8b1: 0x14bf, 0x8b2: 0x15ab, 0x8b3: 0x15d3, 0x8b4: 0x0d37, 0x8b5: 0x0e27,
- 0x8b6: 0x11c3, 0x8b7: 0x10b7, 0x8b8: 0x10c3, 0x8b9: 0x10e7, 0x8ba: 0x0f17, 0x8bb: 0x0e9f,
- 0x8bc: 0x1363, 0x8bd: 0x0733, 0x8be: 0x122b, 0x8bf: 0x081b,
- // Block 0x23, offset 0x8c0
- 0x8c0: 0x080b, 0x8c1: 0x0b0b, 0x8c2: 0x0c2b, 0x8c3: 0x10f3, 0x8c4: 0x0a53, 0x8c5: 0x0e03,
- 0x8c6: 0x0cef, 0x8c7: 0x13e7, 0x8c8: 0x12e7, 0x8c9: 0x14ab, 0x8ca: 0x1323, 0x8cb: 0x0b27,
- 0x8cc: 0x0787, 0x8cd: 0x095b, 0x8d0: 0x09af,
- 0x8d2: 0x0cdf, 0x8d5: 0x07f7, 0x8d6: 0x0f1f, 0x8d7: 0x0fe3,
- 0x8d8: 0x1047, 0x8d9: 0x1063, 0x8da: 0x1067, 0x8db: 0x107b, 0x8dc: 0x14fb, 0x8dd: 0x10eb,
- 0x8de: 0x116f, 0x8e0: 0x128f, 0x8e2: 0x1353,
- 0x8e5: 0x1407, 0x8e6: 0x1433,
- 0x8ea: 0x154f, 0x8eb: 0x1553, 0x8ec: 0x1557, 0x8ed: 0x15bb, 0x8ee: 0x142b, 0x8ef: 0x14c7,
- 0x8f0: 0x0757, 0x8f1: 0x077b, 0x8f2: 0x078f, 0x8f3: 0x084b, 0x8f4: 0x0857, 0x8f5: 0x0897,
- 0x8f6: 0x094b, 0x8f7: 0x0967, 0x8f8: 0x096f, 0x8f9: 0x09ab, 0x8fa: 0x09b7, 0x8fb: 0x0a93,
- 0x8fc: 0x0a9b, 0x8fd: 0x0ba3, 0x8fe: 0x0bcb, 0x8ff: 0x0bd3,
- // Block 0x24, offset 0x900
- 0x900: 0x0beb, 0x901: 0x0c97, 0x902: 0x0cc7, 0x903: 0x0ce7, 0x904: 0x0d57, 0x905: 0x0e1b,
- 0x906: 0x0e37, 0x907: 0x0e67, 0x908: 0x0ebb, 0x909: 0x0edb, 0x90a: 0x0f4f, 0x90b: 0x102f,
- 0x90c: 0x104b, 0x90d: 0x1053, 0x90e: 0x104f, 0x90f: 0x1057, 0x910: 0x105b, 0x911: 0x105f,
- 0x912: 0x1073, 0x913: 0x1077, 0x914: 0x109b, 0x915: 0x10af, 0x916: 0x10cb, 0x917: 0x112f,
- 0x918: 0x1137, 0x919: 0x113f, 0x91a: 0x1153, 0x91b: 0x117b, 0x91c: 0x11cb, 0x91d: 0x11ff,
- 0x91e: 0x11ff, 0x91f: 0x1267, 0x920: 0x130f, 0x921: 0x1327, 0x922: 0x135b, 0x923: 0x135f,
- 0x924: 0x13a3, 0x925: 0x13a7, 0x926: 0x13ff, 0x927: 0x1407, 0x928: 0x14db, 0x929: 0x151f,
- 0x92a: 0x1537, 0x92b: 0x0b9b, 0x92c: 0x171e, 0x92d: 0x11e3,
- 0x930: 0x06df, 0x931: 0x07e3, 0x932: 0x07a3, 0x933: 0x074b, 0x934: 0x078b, 0x935: 0x07b7,
- 0x936: 0x0847, 0x937: 0x0863, 0x938: 0x094b, 0x939: 0x0937, 0x93a: 0x0947, 0x93b: 0x0963,
- 0x93c: 0x09af, 0x93d: 0x09bf, 0x93e: 0x0a03, 0x93f: 0x0a0f,
- // Block 0x25, offset 0x940
- 0x940: 0x0a2b, 0x941: 0x0a3b, 0x942: 0x0b23, 0x943: 0x0b2b, 0x944: 0x0b5b, 0x945: 0x0b7b,
- 0x946: 0x0bab, 0x947: 0x0bc3, 0x948: 0x0bb3, 0x949: 0x0bd3, 0x94a: 0x0bc7, 0x94b: 0x0beb,
- 0x94c: 0x0c07, 0x94d: 0x0c5f, 0x94e: 0x0c6b, 0x94f: 0x0c73, 0x950: 0x0c9b, 0x951: 0x0cdf,
- 0x952: 0x0d0f, 0x953: 0x0d13, 0x954: 0x0d27, 0x955: 0x0da7, 0x956: 0x0db7, 0x957: 0x0e0f,
- 0x958: 0x0e5b, 0x959: 0x0e53, 0x95a: 0x0e67, 0x95b: 0x0e83, 0x95c: 0x0ebb, 0x95d: 0x1013,
- 0x95e: 0x0edf, 0x95f: 0x0f13, 0x960: 0x0f1f, 0x961: 0x0f5f, 0x962: 0x0f7b, 0x963: 0x0f9f,
- 0x964: 0x0fc3, 0x965: 0x0fc7, 0x966: 0x0fe3, 0x967: 0x0fe7, 0x968: 0x0ff7, 0x969: 0x100b,
- 0x96a: 0x1007, 0x96b: 0x1037, 0x96c: 0x10b3, 0x96d: 0x10cb, 0x96e: 0x10e3, 0x96f: 0x111b,
- 0x970: 0x112f, 0x971: 0x114b, 0x972: 0x117b, 0x973: 0x122f, 0x974: 0x1257, 0x975: 0x12cb,
- 0x976: 0x1313, 0x977: 0x131f, 0x978: 0x1327, 0x979: 0x133f, 0x97a: 0x1353, 0x97b: 0x1343,
- 0x97c: 0x135b, 0x97d: 0x1357, 0x97e: 0x134f, 0x97f: 0x135f,
- // Block 0x26, offset 0x980
- 0x980: 0x136b, 0x981: 0x13a7, 0x982: 0x13e3, 0x983: 0x1413, 0x984: 0x144b, 0x985: 0x146b,
- 0x986: 0x14b7, 0x987: 0x14db, 0x988: 0x14fb, 0x989: 0x150f, 0x98a: 0x151f, 0x98b: 0x152b,
- 0x98c: 0x1537, 0x98d: 0x158b, 0x98e: 0x162b, 0x98f: 0x16b5, 0x990: 0x16b0, 0x991: 0x16e2,
- 0x992: 0x0607, 0x993: 0x062f, 0x994: 0x0633, 0x995: 0x1764, 0x996: 0x1791, 0x997: 0x1809,
- 0x998: 0x1617, 0x999: 0x1627,
- // Block 0x27, offset 0x9c0
- 0x9c0: 0x06fb, 0x9c1: 0x06f3, 0x9c2: 0x0703, 0x9c3: 0x1647, 0x9c4: 0x0747, 0x9c5: 0x0757,
- 0x9c6: 0x075b, 0x9c7: 0x0763, 0x9c8: 0x076b, 0x9c9: 0x076f, 0x9ca: 0x077b, 0x9cb: 0x0773,
- 0x9cc: 0x05b3, 0x9cd: 0x165b, 0x9ce: 0x078f, 0x9cf: 0x0793, 0x9d0: 0x0797, 0x9d1: 0x07b3,
- 0x9d2: 0x164c, 0x9d3: 0x05b7, 0x9d4: 0x079f, 0x9d5: 0x07bf, 0x9d6: 0x1656, 0x9d7: 0x07cf,
- 0x9d8: 0x07d7, 0x9d9: 0x0737, 0x9da: 0x07df, 0x9db: 0x07e3, 0x9dc: 0x1831, 0x9dd: 0x07ff,
- 0x9de: 0x0807, 0x9df: 0x05bf, 0x9e0: 0x081f, 0x9e1: 0x0823, 0x9e2: 0x082b, 0x9e3: 0x082f,
- 0x9e4: 0x05c3, 0x9e5: 0x0847, 0x9e6: 0x084b, 0x9e7: 0x0857, 0x9e8: 0x0863, 0x9e9: 0x0867,
- 0x9ea: 0x086b, 0x9eb: 0x0873, 0x9ec: 0x0893, 0x9ed: 0x0897, 0x9ee: 0x089f, 0x9ef: 0x08af,
- 0x9f0: 0x08b7, 0x9f1: 0x08bb, 0x9f2: 0x08bb, 0x9f3: 0x08bb, 0x9f4: 0x166a, 0x9f5: 0x0e93,
- 0x9f6: 0x08cf, 0x9f7: 0x08d7, 0x9f8: 0x166f, 0x9f9: 0x08e3, 0x9fa: 0x08eb, 0x9fb: 0x08f3,
- 0x9fc: 0x091b, 0x9fd: 0x0907, 0x9fe: 0x0913, 0x9ff: 0x0917,
- // Block 0x28, offset 0xa00
- 0xa00: 0x091f, 0xa01: 0x0927, 0xa02: 0x092b, 0xa03: 0x0933, 0xa04: 0x093b, 0xa05: 0x093f,
- 0xa06: 0x093f, 0xa07: 0x0947, 0xa08: 0x094f, 0xa09: 0x0953, 0xa0a: 0x095f, 0xa0b: 0x0983,
- 0xa0c: 0x0967, 0xa0d: 0x0987, 0xa0e: 0x096b, 0xa0f: 0x0973, 0xa10: 0x080b, 0xa11: 0x09cf,
- 0xa12: 0x0997, 0xa13: 0x099b, 0xa14: 0x099f, 0xa15: 0x0993, 0xa16: 0x09a7, 0xa17: 0x09a3,
- 0xa18: 0x09bb, 0xa19: 0x1674, 0xa1a: 0x09d7, 0xa1b: 0x09db, 0xa1c: 0x09e3, 0xa1d: 0x09ef,
- 0xa1e: 0x09f7, 0xa1f: 0x0a13, 0xa20: 0x1679, 0xa21: 0x167e, 0xa22: 0x0a1f, 0xa23: 0x0a23,
- 0xa24: 0x0a27, 0xa25: 0x0a1b, 0xa26: 0x0a2f, 0xa27: 0x05c7, 0xa28: 0x05cb, 0xa29: 0x0a37,
- 0xa2a: 0x0a3f, 0xa2b: 0x0a3f, 0xa2c: 0x1683, 0xa2d: 0x0a5b, 0xa2e: 0x0a5f, 0xa2f: 0x0a63,
- 0xa30: 0x0a6b, 0xa31: 0x1688, 0xa32: 0x0a73, 0xa33: 0x0a77, 0xa34: 0x0b4f, 0xa35: 0x0a7f,
- 0xa36: 0x05cf, 0xa37: 0x0a8b, 0xa38: 0x0a9b, 0xa39: 0x0aa7, 0xa3a: 0x0aa3, 0xa3b: 0x1692,
- 0xa3c: 0x0aaf, 0xa3d: 0x1697, 0xa3e: 0x0abb, 0xa3f: 0x0ab7,
- // Block 0x29, offset 0xa40
- 0xa40: 0x0abf, 0xa41: 0x0acf, 0xa42: 0x0ad3, 0xa43: 0x05d3, 0xa44: 0x0ae3, 0xa45: 0x0aeb,
- 0xa46: 0x0aef, 0xa47: 0x0af3, 0xa48: 0x05d7, 0xa49: 0x169c, 0xa4a: 0x05db, 0xa4b: 0x0b0f,
- 0xa4c: 0x0b13, 0xa4d: 0x0b17, 0xa4e: 0x0b1f, 0xa4f: 0x1863, 0xa50: 0x0b37, 0xa51: 0x16a6,
- 0xa52: 0x16a6, 0xa53: 0x11d7, 0xa54: 0x0b47, 0xa55: 0x0b47, 0xa56: 0x05df, 0xa57: 0x16c9,
- 0xa58: 0x179b, 0xa59: 0x0b57, 0xa5a: 0x0b5f, 0xa5b: 0x05e3, 0xa5c: 0x0b73, 0xa5d: 0x0b83,
- 0xa5e: 0x0b87, 0xa5f: 0x0b8f, 0xa60: 0x0b9f, 0xa61: 0x05eb, 0xa62: 0x05e7, 0xa63: 0x0ba3,
- 0xa64: 0x16ab, 0xa65: 0x0ba7, 0xa66: 0x0bbb, 0xa67: 0x0bbf, 0xa68: 0x0bc3, 0xa69: 0x0bbf,
- 0xa6a: 0x0bcf, 0xa6b: 0x0bd3, 0xa6c: 0x0be3, 0xa6d: 0x0bdb, 0xa6e: 0x0bdf, 0xa6f: 0x0be7,
- 0xa70: 0x0beb, 0xa71: 0x0bef, 0xa72: 0x0bfb, 0xa73: 0x0bff, 0xa74: 0x0c17, 0xa75: 0x0c1f,
- 0xa76: 0x0c2f, 0xa77: 0x0c43, 0xa78: 0x16ba, 0xa79: 0x0c3f, 0xa7a: 0x0c33, 0xa7b: 0x0c4b,
- 0xa7c: 0x0c53, 0xa7d: 0x0c67, 0xa7e: 0x16bf, 0xa7f: 0x0c6f,
- // Block 0x2a, offset 0xa80
- 0xa80: 0x0c63, 0xa81: 0x0c5b, 0xa82: 0x05ef, 0xa83: 0x0c77, 0xa84: 0x0c7f, 0xa85: 0x0c87,
- 0xa86: 0x0c7b, 0xa87: 0x05f3, 0xa88: 0x0c97, 0xa89: 0x0c9f, 0xa8a: 0x16c4, 0xa8b: 0x0ccb,
- 0xa8c: 0x0cff, 0xa8d: 0x0cdb, 0xa8e: 0x05ff, 0xa8f: 0x0ce7, 0xa90: 0x05fb, 0xa91: 0x05f7,
- 0xa92: 0x07c3, 0xa93: 0x07c7, 0xa94: 0x0d03, 0xa95: 0x0ceb, 0xa96: 0x11ab, 0xa97: 0x0663,
- 0xa98: 0x0d0f, 0xa99: 0x0d13, 0xa9a: 0x0d17, 0xa9b: 0x0d2b, 0xa9c: 0x0d23, 0xa9d: 0x16dd,
- 0xa9e: 0x0603, 0xa9f: 0x0d3f, 0xaa0: 0x0d33, 0xaa1: 0x0d4f, 0xaa2: 0x0d57, 0xaa3: 0x16e7,
- 0xaa4: 0x0d5b, 0xaa5: 0x0d47, 0xaa6: 0x0d63, 0xaa7: 0x0607, 0xaa8: 0x0d67, 0xaa9: 0x0d6b,
- 0xaaa: 0x0d6f, 0xaab: 0x0d7b, 0xaac: 0x16ec, 0xaad: 0x0d83, 0xaae: 0x060b, 0xaaf: 0x0d8f,
- 0xab0: 0x16f1, 0xab1: 0x0d93, 0xab2: 0x060f, 0xab3: 0x0d9f, 0xab4: 0x0dab, 0xab5: 0x0db7,
- 0xab6: 0x0dbb, 0xab7: 0x16f6, 0xab8: 0x168d, 0xab9: 0x16fb, 0xaba: 0x0ddb, 0xabb: 0x1700,
- 0xabc: 0x0de7, 0xabd: 0x0def, 0xabe: 0x0ddf, 0xabf: 0x0dfb,
- // Block 0x2b, offset 0xac0
- 0xac0: 0x0e0b, 0xac1: 0x0e1b, 0xac2: 0x0e0f, 0xac3: 0x0e13, 0xac4: 0x0e1f, 0xac5: 0x0e23,
- 0xac6: 0x1705, 0xac7: 0x0e07, 0xac8: 0x0e3b, 0xac9: 0x0e3f, 0xaca: 0x0613, 0xacb: 0x0e53,
- 0xacc: 0x0e4f, 0xacd: 0x170a, 0xace: 0x0e33, 0xacf: 0x0e6f, 0xad0: 0x170f, 0xad1: 0x1714,
- 0xad2: 0x0e73, 0xad3: 0x0e87, 0xad4: 0x0e83, 0xad5: 0x0e7f, 0xad6: 0x0617, 0xad7: 0x0e8b,
- 0xad8: 0x0e9b, 0xad9: 0x0e97, 0xada: 0x0ea3, 0xadb: 0x1651, 0xadc: 0x0eb3, 0xadd: 0x1719,
- 0xade: 0x0ebf, 0xadf: 0x1723, 0xae0: 0x0ed3, 0xae1: 0x0edf, 0xae2: 0x0ef3, 0xae3: 0x1728,
- 0xae4: 0x0f07, 0xae5: 0x0f0b, 0xae6: 0x172d, 0xae7: 0x1732, 0xae8: 0x0f27, 0xae9: 0x0f37,
- 0xaea: 0x061b, 0xaeb: 0x0f3b, 0xaec: 0x061f, 0xaed: 0x061f, 0xaee: 0x0f53, 0xaef: 0x0f57,
- 0xaf0: 0x0f5f, 0xaf1: 0x0f63, 0xaf2: 0x0f6f, 0xaf3: 0x0623, 0xaf4: 0x0f87, 0xaf5: 0x1737,
- 0xaf6: 0x0fa3, 0xaf7: 0x173c, 0xaf8: 0x0faf, 0xaf9: 0x16a1, 0xafa: 0x0fbf, 0xafb: 0x1741,
- 0xafc: 0x1746, 0xafd: 0x174b, 0xafe: 0x0627, 0xaff: 0x062b,
- // Block 0x2c, offset 0xb00
- 0xb00: 0x0ff7, 0xb01: 0x1755, 0xb02: 0x1750, 0xb03: 0x175a, 0xb04: 0x175f, 0xb05: 0x0fff,
- 0xb06: 0x1003, 0xb07: 0x1003, 0xb08: 0x100b, 0xb09: 0x0633, 0xb0a: 0x100f, 0xb0b: 0x0637,
- 0xb0c: 0x063b, 0xb0d: 0x1769, 0xb0e: 0x1023, 0xb0f: 0x102b, 0xb10: 0x1037, 0xb11: 0x063f,
- 0xb12: 0x176e, 0xb13: 0x105b, 0xb14: 0x1773, 0xb15: 0x1778, 0xb16: 0x107b, 0xb17: 0x1093,
- 0xb18: 0x0643, 0xb19: 0x109b, 0xb1a: 0x109f, 0xb1b: 0x10a3, 0xb1c: 0x177d, 0xb1d: 0x1782,
- 0xb1e: 0x1782, 0xb1f: 0x10bb, 0xb20: 0x0647, 0xb21: 0x1787, 0xb22: 0x10cf, 0xb23: 0x10d3,
- 0xb24: 0x064b, 0xb25: 0x178c, 0xb26: 0x10ef, 0xb27: 0x064f, 0xb28: 0x10ff, 0xb29: 0x10f7,
- 0xb2a: 0x1107, 0xb2b: 0x1796, 0xb2c: 0x111f, 0xb2d: 0x0653, 0xb2e: 0x112b, 0xb2f: 0x1133,
- 0xb30: 0x1143, 0xb31: 0x0657, 0xb32: 0x17a0, 0xb33: 0x17a5, 0xb34: 0x065b, 0xb35: 0x17aa,
- 0xb36: 0x115b, 0xb37: 0x17af, 0xb38: 0x1167, 0xb39: 0x1173, 0xb3a: 0x117b, 0xb3b: 0x17b4,
- 0xb3c: 0x17b9, 0xb3d: 0x118f, 0xb3e: 0x17be, 0xb3f: 0x1197,
- // Block 0x2d, offset 0xb40
- 0xb40: 0x16ce, 0xb41: 0x065f, 0xb42: 0x11af, 0xb43: 0x11b3, 0xb44: 0x0667, 0xb45: 0x11b7,
- 0xb46: 0x0a33, 0xb47: 0x17c3, 0xb48: 0x17c8, 0xb49: 0x16d3, 0xb4a: 0x16d8, 0xb4b: 0x11d7,
- 0xb4c: 0x11db, 0xb4d: 0x13f3, 0xb4e: 0x066b, 0xb4f: 0x1207, 0xb50: 0x1203, 0xb51: 0x120b,
- 0xb52: 0x083f, 0xb53: 0x120f, 0xb54: 0x1213, 0xb55: 0x1217, 0xb56: 0x121f, 0xb57: 0x17cd,
- 0xb58: 0x121b, 0xb59: 0x1223, 0xb5a: 0x1237, 0xb5b: 0x123b, 0xb5c: 0x1227, 0xb5d: 0x123f,
- 0xb5e: 0x1253, 0xb5f: 0x1267, 0xb60: 0x1233, 0xb61: 0x1247, 0xb62: 0x124b, 0xb63: 0x124f,
- 0xb64: 0x17d2, 0xb65: 0x17dc, 0xb66: 0x17d7, 0xb67: 0x066f, 0xb68: 0x126f, 0xb69: 0x1273,
- 0xb6a: 0x127b, 0xb6b: 0x17f0, 0xb6c: 0x127f, 0xb6d: 0x17e1, 0xb6e: 0x0673, 0xb6f: 0x0677,
- 0xb70: 0x17e6, 0xb71: 0x17eb, 0xb72: 0x067b, 0xb73: 0x129f, 0xb74: 0x12a3, 0xb75: 0x12a7,
- 0xb76: 0x12ab, 0xb77: 0x12b7, 0xb78: 0x12b3, 0xb79: 0x12bf, 0xb7a: 0x12bb, 0xb7b: 0x12cb,
- 0xb7c: 0x12c3, 0xb7d: 0x12c7, 0xb7e: 0x12cf, 0xb7f: 0x067f,
- // Block 0x2e, offset 0xb80
- 0xb80: 0x12d7, 0xb81: 0x12db, 0xb82: 0x0683, 0xb83: 0x12eb, 0xb84: 0x12ef, 0xb85: 0x17f5,
- 0xb86: 0x12fb, 0xb87: 0x12ff, 0xb88: 0x0687, 0xb89: 0x130b, 0xb8a: 0x05bb, 0xb8b: 0x17fa,
- 0xb8c: 0x17ff, 0xb8d: 0x068b, 0xb8e: 0x068f, 0xb8f: 0x1337, 0xb90: 0x134f, 0xb91: 0x136b,
- 0xb92: 0x137b, 0xb93: 0x1804, 0xb94: 0x138f, 0xb95: 0x1393, 0xb96: 0x13ab, 0xb97: 0x13b7,
- 0xb98: 0x180e, 0xb99: 0x1660, 0xb9a: 0x13c3, 0xb9b: 0x13bf, 0xb9c: 0x13cb, 0xb9d: 0x1665,
- 0xb9e: 0x13d7, 0xb9f: 0x13e3, 0xba0: 0x1813, 0xba1: 0x1818, 0xba2: 0x1423, 0xba3: 0x142f,
- 0xba4: 0x1437, 0xba5: 0x181d, 0xba6: 0x143b, 0xba7: 0x1467, 0xba8: 0x1473, 0xba9: 0x1477,
- 0xbaa: 0x146f, 0xbab: 0x1483, 0xbac: 0x1487, 0xbad: 0x1822, 0xbae: 0x1493, 0xbaf: 0x0693,
- 0xbb0: 0x149b, 0xbb1: 0x1827, 0xbb2: 0x0697, 0xbb3: 0x14d3, 0xbb4: 0x0ac3, 0xbb5: 0x14eb,
- 0xbb6: 0x182c, 0xbb7: 0x1836, 0xbb8: 0x069b, 0xbb9: 0x069f, 0xbba: 0x1513, 0xbbb: 0x183b,
- 0xbbc: 0x06a3, 0xbbd: 0x1840, 0xbbe: 0x152b, 0xbbf: 0x152b,
- // Block 0x2f, offset 0xbc0
- 0xbc0: 0x1533, 0xbc1: 0x1845, 0xbc2: 0x154b, 0xbc3: 0x06a7, 0xbc4: 0x155b, 0xbc5: 0x1567,
- 0xbc6: 0x156f, 0xbc7: 0x1577, 0xbc8: 0x06ab, 0xbc9: 0x184a, 0xbca: 0x158b, 0xbcb: 0x15a7,
- 0xbcc: 0x15b3, 0xbcd: 0x06af, 0xbce: 0x06b3, 0xbcf: 0x15b7, 0xbd0: 0x184f, 0xbd1: 0x06b7,
- 0xbd2: 0x1854, 0xbd3: 0x1859, 0xbd4: 0x185e, 0xbd5: 0x15db, 0xbd6: 0x06bb, 0xbd7: 0x15ef,
- 0xbd8: 0x15f7, 0xbd9: 0x15fb, 0xbda: 0x1603, 0xbdb: 0x160b, 0xbdc: 0x1613, 0xbdd: 0x1868,
-}
-
-// nfcIndex: 22 blocks, 1408 entries, 1408 bytes
-// Block 0 is the zero block.
-var nfcIndex = [1408]uint8{
- // Block 0x0, offset 0x0
- // Block 0x1, offset 0x40
- // Block 0x2, offset 0x80
- // Block 0x3, offset 0xc0
- 0xc2: 0x2e, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x2f, 0xc7: 0x04,
- 0xc8: 0x05, 0xca: 0x30, 0xcb: 0x31, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x32,
- 0xd0: 0x09, 0xd1: 0x33, 0xd2: 0x34, 0xd3: 0x0a, 0xd6: 0x0b, 0xd7: 0x35,
- 0xd8: 0x36, 0xd9: 0x0c, 0xdb: 0x37, 0xdc: 0x38, 0xdd: 0x39, 0xdf: 0x3a,
- 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05,
- 0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a,
- 0xf0: 0x13,
- // Block 0x4, offset 0x100
- 0x120: 0x3b, 0x121: 0x3c, 0x123: 0x0d, 0x124: 0x3d, 0x125: 0x3e, 0x126: 0x3f, 0x127: 0x40,
- 0x128: 0x41, 0x129: 0x42, 0x12a: 0x43, 0x12b: 0x44, 0x12c: 0x3f, 0x12d: 0x45, 0x12e: 0x46, 0x12f: 0x47,
- 0x131: 0x48, 0x132: 0x49, 0x133: 0x4a, 0x134: 0x4b, 0x135: 0x4c, 0x137: 0x4d,
- 0x138: 0x4e, 0x139: 0x4f, 0x13a: 0x50, 0x13b: 0x51, 0x13c: 0x52, 0x13d: 0x53, 0x13e: 0x54, 0x13f: 0x55,
- // Block 0x5, offset 0x140
- 0x140: 0x56, 0x142: 0x57, 0x144: 0x58, 0x145: 0x59, 0x146: 0x5a, 0x147: 0x5b,
- 0x14d: 0x5c,
- 0x15c: 0x5d, 0x15f: 0x5e,
- 0x162: 0x5f, 0x164: 0x60,
- 0x168: 0x61, 0x169: 0x62, 0x16a: 0x63, 0x16c: 0x0e, 0x16d: 0x64, 0x16e: 0x65, 0x16f: 0x66,
- 0x170: 0x67, 0x173: 0x68, 0x177: 0x0f,
- 0x178: 0x10, 0x179: 0x11, 0x17a: 0x12, 0x17b: 0x13, 0x17c: 0x14, 0x17d: 0x15, 0x17e: 0x16, 0x17f: 0x17,
- // Block 0x6, offset 0x180
- 0x180: 0x69, 0x183: 0x6a, 0x184: 0x6b, 0x186: 0x6c, 0x187: 0x6d,
- 0x188: 0x6e, 0x189: 0x18, 0x18a: 0x19, 0x18b: 0x6f, 0x18c: 0x70,
- 0x1ab: 0x71,
- 0x1b3: 0x72, 0x1b5: 0x73, 0x1b7: 0x74,
- // Block 0x7, offset 0x1c0
- 0x1c0: 0x75, 0x1c1: 0x1a, 0x1c2: 0x1b, 0x1c3: 0x1c, 0x1c4: 0x76, 0x1c5: 0x77,
- 0x1c9: 0x78, 0x1cc: 0x79, 0x1cd: 0x7a,
- // Block 0x8, offset 0x200
- 0x219: 0x7b, 0x21a: 0x7c, 0x21b: 0x7d,
- 0x220: 0x7e, 0x223: 0x7f, 0x224: 0x80, 0x225: 0x81, 0x226: 0x82, 0x227: 0x83,
- 0x22a: 0x84, 0x22b: 0x85, 0x22f: 0x86,
- 0x230: 0x87, 0x231: 0x88, 0x232: 0x89, 0x233: 0x8a, 0x234: 0x8b, 0x235: 0x8c, 0x236: 0x8d, 0x237: 0x87,
- 0x238: 0x88, 0x239: 0x89, 0x23a: 0x8a, 0x23b: 0x8b, 0x23c: 0x8c, 0x23d: 0x8d, 0x23e: 0x87, 0x23f: 0x88,
- // Block 0x9, offset 0x240
- 0x240: 0x89, 0x241: 0x8a, 0x242: 0x8b, 0x243: 0x8c, 0x244: 0x8d, 0x245: 0x87, 0x246: 0x88, 0x247: 0x89,
- 0x248: 0x8a, 0x249: 0x8b, 0x24a: 0x8c, 0x24b: 0x8d, 0x24c: 0x87, 0x24d: 0x88, 0x24e: 0x89, 0x24f: 0x8a,
- 0x250: 0x8b, 0x251: 0x8c, 0x252: 0x8d, 0x253: 0x87, 0x254: 0x88, 0x255: 0x89, 0x256: 0x8a, 0x257: 0x8b,
- 0x258: 0x8c, 0x259: 0x8d, 0x25a: 0x87, 0x25b: 0x88, 0x25c: 0x89, 0x25d: 0x8a, 0x25e: 0x8b, 0x25f: 0x8c,
- 0x260: 0x8d, 0x261: 0x87, 0x262: 0x88, 0x263: 0x89, 0x264: 0x8a, 0x265: 0x8b, 0x266: 0x8c, 0x267: 0x8d,
- 0x268: 0x87, 0x269: 0x88, 0x26a: 0x89, 0x26b: 0x8a, 0x26c: 0x8b, 0x26d: 0x8c, 0x26e: 0x8d, 0x26f: 0x87,
- 0x270: 0x88, 0x271: 0x89, 0x272: 0x8a, 0x273: 0x8b, 0x274: 0x8c, 0x275: 0x8d, 0x276: 0x87, 0x277: 0x88,
- 0x278: 0x89, 0x279: 0x8a, 0x27a: 0x8b, 0x27b: 0x8c, 0x27c: 0x8d, 0x27d: 0x87, 0x27e: 0x88, 0x27f: 0x89,
- // Block 0xa, offset 0x280
- 0x280: 0x8a, 0x281: 0x8b, 0x282: 0x8c, 0x283: 0x8d, 0x284: 0x87, 0x285: 0x88, 0x286: 0x89, 0x287: 0x8a,
- 0x288: 0x8b, 0x289: 0x8c, 0x28a: 0x8d, 0x28b: 0x87, 0x28c: 0x88, 0x28d: 0x89, 0x28e: 0x8a, 0x28f: 0x8b,
- 0x290: 0x8c, 0x291: 0x8d, 0x292: 0x87, 0x293: 0x88, 0x294: 0x89, 0x295: 0x8a, 0x296: 0x8b, 0x297: 0x8c,
- 0x298: 0x8d, 0x299: 0x87, 0x29a: 0x88, 0x29b: 0x89, 0x29c: 0x8a, 0x29d: 0x8b, 0x29e: 0x8c, 0x29f: 0x8d,
- 0x2a0: 0x87, 0x2a1: 0x88, 0x2a2: 0x89, 0x2a3: 0x8a, 0x2a4: 0x8b, 0x2a5: 0x8c, 0x2a6: 0x8d, 0x2a7: 0x87,
- 0x2a8: 0x88, 0x2a9: 0x89, 0x2aa: 0x8a, 0x2ab: 0x8b, 0x2ac: 0x8c, 0x2ad: 0x8d, 0x2ae: 0x87, 0x2af: 0x88,
- 0x2b0: 0x89, 0x2b1: 0x8a, 0x2b2: 0x8b, 0x2b3: 0x8c, 0x2b4: 0x8d, 0x2b5: 0x87, 0x2b6: 0x88, 0x2b7: 0x89,
- 0x2b8: 0x8a, 0x2b9: 0x8b, 0x2ba: 0x8c, 0x2bb: 0x8d, 0x2bc: 0x87, 0x2bd: 0x88, 0x2be: 0x89, 0x2bf: 0x8a,
- // Block 0xb, offset 0x2c0
- 0x2c0: 0x8b, 0x2c1: 0x8c, 0x2c2: 0x8d, 0x2c3: 0x87, 0x2c4: 0x88, 0x2c5: 0x89, 0x2c6: 0x8a, 0x2c7: 0x8b,
- 0x2c8: 0x8c, 0x2c9: 0x8d, 0x2ca: 0x87, 0x2cb: 0x88, 0x2cc: 0x89, 0x2cd: 0x8a, 0x2ce: 0x8b, 0x2cf: 0x8c,
- 0x2d0: 0x8d, 0x2d1: 0x87, 0x2d2: 0x88, 0x2d3: 0x89, 0x2d4: 0x8a, 0x2d5: 0x8b, 0x2d6: 0x8c, 0x2d7: 0x8d,
- 0x2d8: 0x87, 0x2d9: 0x88, 0x2da: 0x89, 0x2db: 0x8a, 0x2dc: 0x8b, 0x2dd: 0x8c, 0x2de: 0x8e,
- // Block 0xc, offset 0x300
- 0x324: 0x1d, 0x325: 0x1e, 0x326: 0x1f, 0x327: 0x20,
- 0x328: 0x21, 0x329: 0x22, 0x32a: 0x23, 0x32b: 0x24, 0x32c: 0x8f, 0x32d: 0x90, 0x32e: 0x91,
- 0x331: 0x92, 0x332: 0x93, 0x333: 0x94, 0x334: 0x95,
- 0x338: 0x96, 0x339: 0x97, 0x33a: 0x98, 0x33b: 0x99, 0x33e: 0x9a, 0x33f: 0x9b,
- // Block 0xd, offset 0x340
- 0x347: 0x9c,
- 0x34b: 0x9d, 0x34d: 0x9e,
- 0x368: 0x9f, 0x36b: 0xa0,
- 0x374: 0xa1,
- 0x37d: 0xa2,
- // Block 0xe, offset 0x380
- 0x381: 0xa3, 0x382: 0xa4, 0x384: 0xa5, 0x385: 0x82, 0x387: 0xa6,
- 0x388: 0xa7, 0x38b: 0xa8, 0x38c: 0xa9, 0x38d: 0xaa,
- 0x391: 0xab, 0x392: 0xac, 0x393: 0xad, 0x396: 0xae, 0x397: 0xaf,
- 0x398: 0x73, 0x39a: 0xb0, 0x39c: 0xb1,
- 0x3a0: 0xb2,
- 0x3a8: 0xb3, 0x3a9: 0xb4, 0x3aa: 0xb5,
- 0x3b0: 0x73, 0x3b5: 0xb6, 0x3b6: 0xb7,
- // Block 0xf, offset 0x3c0
- 0x3eb: 0xb8, 0x3ec: 0xb9,
- // Block 0x10, offset 0x400
- 0x432: 0xba,
- // Block 0x11, offset 0x440
- 0x445: 0xbb, 0x446: 0xbc, 0x447: 0xbd,
- 0x449: 0xbe,
- // Block 0x12, offset 0x480
- 0x480: 0xbf,
- 0x4a3: 0xc0, 0x4a5: 0xc1,
- // Block 0x13, offset 0x4c0
- 0x4c8: 0xc2,
- // Block 0x14, offset 0x500
- 0x520: 0x25, 0x521: 0x26, 0x522: 0x27, 0x523: 0x28, 0x524: 0x29, 0x525: 0x2a, 0x526: 0x2b, 0x527: 0x2c,
- 0x528: 0x2d,
- // Block 0x15, offset 0x540
- 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d,
- 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,
- 0x56f: 0x12,
-}
-
-// nfcSparseOffset: 149 entries, 298 bytes
-var nfcSparseOffset = []uint16{0x0, 0x5, 0x9, 0xb, 0xd, 0x18, 0x28, 0x2a, 0x2f, 0x3a, 0x49, 0x56, 0x5e, 0x63, 0x68, 0x6a, 0x72, 0x79, 0x7c, 0x84, 0x88, 0x8c, 0x8e, 0x90, 0x99, 0x9d, 0xa4, 0xa9, 0xac, 0xb6, 0xb9, 0xc0, 0xc8, 0xcb, 0xcd, 0xcf, 0xd1, 0xd6, 0xe7, 0xf3, 0xf5, 0xfb, 0xfd, 0xff, 0x101, 0x103, 0x105, 0x107, 0x10a, 0x10d, 0x10f, 0x112, 0x115, 0x119, 0x11e, 0x127, 0x129, 0x12c, 0x12e, 0x139, 0x13d, 0x14b, 0x14e, 0x154, 0x15a, 0x165, 0x169, 0x16b, 0x16d, 0x16f, 0x171, 0x173, 0x179, 0x17d, 0x17f, 0x181, 0x189, 0x18d, 0x190, 0x192, 0x194, 0x196, 0x199, 0x19b, 0x19d, 0x19f, 0x1a1, 0x1a7, 0x1aa, 0x1ac, 0x1b3, 0x1b9, 0x1bf, 0x1c7, 0x1cd, 0x1d3, 0x1d9, 0x1dd, 0x1eb, 0x1f4, 0x1f7, 0x1fa, 0x1fc, 0x1ff, 0x201, 0x205, 0x20a, 0x20c, 0x20e, 0x213, 0x219, 0x21b, 0x21d, 0x21f, 0x225, 0x228, 0x22a, 0x230, 0x233, 0x23b, 0x242, 0x245, 0x248, 0x24a, 0x24d, 0x255, 0x259, 0x260, 0x263, 0x269, 0x26b, 0x26e, 0x270, 0x273, 0x275, 0x277, 0x279, 0x27c, 0x27e, 0x280, 0x282, 0x284, 0x291, 0x29b, 0x29d, 0x29f, 0x2a5, 0x2a7, 0x2aa}
-
-// nfcSparseValues: 684 entries, 2736 bytes
-var nfcSparseValues = [684]valueRange{
- // Block 0x0, offset 0x0
- {value: 0x0000, lo: 0x04},
- {value: 0xa100, lo: 0xa8, hi: 0xa8},
- {value: 0x8100, lo: 0xaf, hi: 0xaf},
- {value: 0x8100, lo: 0xb4, hi: 0xb4},
- {value: 0x8100, lo: 0xb8, hi: 0xb8},
- // Block 0x1, offset 0x5
- {value: 0x0091, lo: 0x03},
- {value: 0x46e2, lo: 0xa0, hi: 0xa1},
- {value: 0x4714, lo: 0xaf, hi: 0xb0},
- {value: 0xa000, lo: 0xb7, hi: 0xb7},
- // Block 0x2, offset 0x9
- {value: 0x0000, lo: 0x01},
- {value: 0xa000, lo: 0x92, hi: 0x92},
- // Block 0x3, offset 0xb
- {value: 0x0000, lo: 0x01},
- {value: 0x8100, lo: 0x98, hi: 0x9d},
- // Block 0x4, offset 0xd
- {value: 0x0006, lo: 0x0a},
- {value: 0xa000, lo: 0x81, hi: 0x81},
- {value: 0xa000, lo: 0x85, hi: 0x85},
- {value: 0xa000, lo: 0x89, hi: 0x89},
- {value: 0x4840, lo: 0x8a, hi: 0x8a},
- {value: 0x485e, lo: 0x8b, hi: 0x8b},
- {value: 0x36c7, lo: 0x8c, hi: 0x8c},
- {value: 0x36df, lo: 0x8d, hi: 0x8d},
- {value: 0x4876, lo: 0x8e, hi: 0x8e},
- {value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0x36fd, lo: 0x93, hi: 0x94},
- // Block 0x5, offset 0x18
- {value: 0x0000, lo: 0x0f},
- {value: 0xa000, lo: 0x83, hi: 0x83},
- {value: 0xa000, lo: 0x87, hi: 0x87},
- {value: 0xa000, lo: 0x8b, hi: 0x8b},
- {value: 0xa000, lo: 0x8d, hi: 0x8d},
- {value: 0x37a5, lo: 0x90, hi: 0x90},
- {value: 0x37b1, lo: 0x91, hi: 0x91},
- {value: 0x379f, lo: 0x93, hi: 0x93},
- {value: 0xa000, lo: 0x96, hi: 0x96},
- {value: 0x3817, lo: 0x97, hi: 0x97},
- {value: 0x37e1, lo: 0x9c, hi: 0x9c},
- {value: 0x37c9, lo: 0x9d, hi: 0x9d},
- {value: 0x37f3, lo: 0x9e, hi: 0x9e},
- {value: 0xa000, lo: 0xb4, hi: 0xb5},
- {value: 0x381d, lo: 0xb6, hi: 0xb6},
- {value: 0x3823, lo: 0xb7, hi: 0xb7},
- // Block 0x6, offset 0x28
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0x83, hi: 0x87},
- // Block 0x7, offset 0x2a
- {value: 0x0001, lo: 0x04},
- {value: 0x8113, lo: 0x81, hi: 0x82},
- {value: 0x8132, lo: 0x84, hi: 0x84},
- {value: 0x812d, lo: 0x85, hi: 0x85},
- {value: 0x810d, lo: 0x87, hi: 0x87},
- // Block 0x8, offset 0x2f
- {value: 0x0000, lo: 0x0a},
- {value: 0x8132, lo: 0x90, hi: 0x97},
- {value: 0x8119, lo: 0x98, hi: 0x98},
- {value: 0x811a, lo: 0x99, hi: 0x99},
- {value: 0x811b, lo: 0x9a, hi: 0x9a},
- {value: 0x3841, lo: 0xa2, hi: 0xa2},
- {value: 0x3847, lo: 0xa3, hi: 0xa3},
- {value: 0x3853, lo: 0xa4, hi: 0xa4},
- {value: 0x384d, lo: 0xa5, hi: 0xa5},
- {value: 0x3859, lo: 0xa6, hi: 0xa6},
- {value: 0xa000, lo: 0xa7, hi: 0xa7},
- // Block 0x9, offset 0x3a
- {value: 0x0000, lo: 0x0e},
- {value: 0x386b, lo: 0x80, hi: 0x80},
- {value: 0xa000, lo: 0x81, hi: 0x81},
- {value: 0x385f, lo: 0x82, hi: 0x82},
- {value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0x3865, lo: 0x93, hi: 0x93},
- {value: 0xa000, lo: 0x95, hi: 0x95},
- {value: 0x8132, lo: 0x96, hi: 0x9c},
- {value: 0x8132, lo: 0x9f, hi: 0xa2},
- {value: 0x812d, lo: 0xa3, hi: 0xa3},
- {value: 0x8132, lo: 0xa4, hi: 0xa4},
- {value: 0x8132, lo: 0xa7, hi: 0xa8},
- {value: 0x812d, lo: 0xaa, hi: 0xaa},
- {value: 0x8132, lo: 0xab, hi: 0xac},
- {value: 0x812d, lo: 0xad, hi: 0xad},
- // Block 0xa, offset 0x49
- {value: 0x0000, lo: 0x0c},
- {value: 0x811f, lo: 0x91, hi: 0x91},
- {value: 0x8132, lo: 0xb0, hi: 0xb0},
- {value: 0x812d, lo: 0xb1, hi: 0xb1},
- {value: 0x8132, lo: 0xb2, hi: 0xb3},
- {value: 0x812d, lo: 0xb4, hi: 0xb4},
- {value: 0x8132, lo: 0xb5, hi: 0xb6},
- {value: 0x812d, lo: 0xb7, hi: 0xb9},
- {value: 0x8132, lo: 0xba, hi: 0xba},
- {value: 0x812d, lo: 0xbb, hi: 0xbc},
- {value: 0x8132, lo: 0xbd, hi: 0xbd},
- {value: 0x812d, lo: 0xbe, hi: 0xbe},
- {value: 0x8132, lo: 0xbf, hi: 0xbf},
- // Block 0xb, offset 0x56
- {value: 0x0005, lo: 0x07},
- {value: 0x8132, lo: 0x80, hi: 0x80},
- {value: 0x8132, lo: 0x81, hi: 0x81},
- {value: 0x812d, lo: 0x82, hi: 0x83},
- {value: 0x812d, lo: 0x84, hi: 0x85},
- {value: 0x812d, lo: 0x86, hi: 0x87},
- {value: 0x812d, lo: 0x88, hi: 0x89},
- {value: 0x8132, lo: 0x8a, hi: 0x8a},
- // Block 0xc, offset 0x5e
- {value: 0x0000, lo: 0x04},
- {value: 0x8132, lo: 0xab, hi: 0xb1},
- {value: 0x812d, lo: 0xb2, hi: 0xb2},
- {value: 0x8132, lo: 0xb3, hi: 0xb3},
- {value: 0x812d, lo: 0xbd, hi: 0xbd},
- // Block 0xd, offset 0x63
- {value: 0x0000, lo: 0x04},
- {value: 0x8132, lo: 0x96, hi: 0x99},
- {value: 0x8132, lo: 0x9b, hi: 0xa3},
- {value: 0x8132, lo: 0xa5, hi: 0xa7},
- {value: 0x8132, lo: 0xa9, hi: 0xad},
- // Block 0xe, offset 0x68
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0x99, hi: 0x9b},
- // Block 0xf, offset 0x6a
- {value: 0x0000, lo: 0x07},
- {value: 0xa000, lo: 0xa8, hi: 0xa8},
- {value: 0x3ed8, lo: 0xa9, hi: 0xa9},
- {value: 0xa000, lo: 0xb0, hi: 0xb0},
- {value: 0x3ee0, lo: 0xb1, hi: 0xb1},
- {value: 0xa000, lo: 0xb3, hi: 0xb3},
- {value: 0x3ee8, lo: 0xb4, hi: 0xb4},
- {value: 0x9902, lo: 0xbc, hi: 0xbc},
- // Block 0x10, offset 0x72
- {value: 0x0008, lo: 0x06},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x8132, lo: 0x91, hi: 0x91},
- {value: 0x812d, lo: 0x92, hi: 0x92},
- {value: 0x8132, lo: 0x93, hi: 0x93},
- {value: 0x8132, lo: 0x94, hi: 0x94},
- {value: 0x451c, lo: 0x98, hi: 0x9f},
- // Block 0x11, offset 0x79
- {value: 0x0000, lo: 0x02},
- {value: 0x8102, lo: 0xbc, hi: 0xbc},
- {value: 0x9900, lo: 0xbe, hi: 0xbe},
- // Block 0x12, offset 0x7c
- {value: 0x0008, lo: 0x07},
- {value: 0xa000, lo: 0x87, hi: 0x87},
- {value: 0x2c9e, lo: 0x8b, hi: 0x8c},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x9900, lo: 0x97, hi: 0x97},
- {value: 0x455c, lo: 0x9c, hi: 0x9d},
- {value: 0x456c, lo: 0x9f, hi: 0x9f},
- {value: 0x8132, lo: 0xbe, hi: 0xbe},
- // Block 0x13, offset 0x84
- {value: 0x0000, lo: 0x03},
- {value: 0x4594, lo: 0xb3, hi: 0xb3},
- {value: 0x459c, lo: 0xb6, hi: 0xb6},
- {value: 0x8102, lo: 0xbc, hi: 0xbc},
- // Block 0x14, offset 0x88
- {value: 0x0008, lo: 0x03},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x4574, lo: 0x99, hi: 0x9b},
- {value: 0x458c, lo: 0x9e, hi: 0x9e},
- // Block 0x15, offset 0x8c
- {value: 0x0000, lo: 0x01},
- {value: 0x8102, lo: 0xbc, hi: 0xbc},
- // Block 0x16, offset 0x8e
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- // Block 0x17, offset 0x90
- {value: 0x0000, lo: 0x08},
- {value: 0xa000, lo: 0x87, hi: 0x87},
- {value: 0x2cb6, lo: 0x88, hi: 0x88},
- {value: 0x2cae, lo: 0x8b, hi: 0x8b},
- {value: 0x2cbe, lo: 0x8c, hi: 0x8c},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x9900, lo: 0x96, hi: 0x97},
- {value: 0x45a4, lo: 0x9c, hi: 0x9c},
- {value: 0x45ac, lo: 0x9d, hi: 0x9d},
- // Block 0x18, offset 0x99
- {value: 0x0000, lo: 0x03},
- {value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0x2cc6, lo: 0x94, hi: 0x94},
- {value: 0x9900, lo: 0xbe, hi: 0xbe},
- // Block 0x19, offset 0x9d
- {value: 0x0000, lo: 0x06},
- {value: 0xa000, lo: 0x86, hi: 0x87},
- {value: 0x2cce, lo: 0x8a, hi: 0x8a},
- {value: 0x2cde, lo: 0x8b, hi: 0x8b},
- {value: 0x2cd6, lo: 0x8c, hi: 0x8c},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x9900, lo: 0x97, hi: 0x97},
- // Block 0x1a, offset 0xa4
- {value: 0x1801, lo: 0x04},
- {value: 0xa000, lo: 0x86, hi: 0x86},
- {value: 0x3ef0, lo: 0x88, hi: 0x88},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x8120, lo: 0x95, hi: 0x96},
- // Block 0x1b, offset 0xa9
- {value: 0x0000, lo: 0x02},
- {value: 0x8102, lo: 0xbc, hi: 0xbc},
- {value: 0xa000, lo: 0xbf, hi: 0xbf},
- // Block 0x1c, offset 0xac
- {value: 0x0000, lo: 0x09},
- {value: 0x2ce6, lo: 0x80, hi: 0x80},
- {value: 0x9900, lo: 0x82, hi: 0x82},
- {value: 0xa000, lo: 0x86, hi: 0x86},
- {value: 0x2cee, lo: 0x87, hi: 0x87},
- {value: 0x2cf6, lo: 0x88, hi: 0x88},
- {value: 0x2f50, lo: 0x8a, hi: 0x8a},
- {value: 0x2dd8, lo: 0x8b, hi: 0x8b},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x9900, lo: 0x95, hi: 0x96},
- // Block 0x1d, offset 0xb6
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0xbb, hi: 0xbc},
- {value: 0x9900, lo: 0xbe, hi: 0xbe},
- // Block 0x1e, offset 0xb9
- {value: 0x0000, lo: 0x06},
- {value: 0xa000, lo: 0x86, hi: 0x87},
- {value: 0x2cfe, lo: 0x8a, hi: 0x8a},
- {value: 0x2d0e, lo: 0x8b, hi: 0x8b},
- {value: 0x2d06, lo: 0x8c, hi: 0x8c},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x9900, lo: 0x97, hi: 0x97},
- // Block 0x1f, offset 0xc0
- {value: 0x6bea, lo: 0x07},
- {value: 0x9904, lo: 0x8a, hi: 0x8a},
- {value: 0x9900, lo: 0x8f, hi: 0x8f},
- {value: 0xa000, lo: 0x99, hi: 0x99},
- {value: 0x3ef8, lo: 0x9a, hi: 0x9a},
- {value: 0x2f58, lo: 0x9c, hi: 0x9c},
- {value: 0x2de3, lo: 0x9d, hi: 0x9d},
- {value: 0x2d16, lo: 0x9e, hi: 0x9f},
- // Block 0x20, offset 0xc8
- {value: 0x0000, lo: 0x02},
- {value: 0x8122, lo: 0xb8, hi: 0xb9},
- {value: 0x8104, lo: 0xba, hi: 0xba},
- // Block 0x21, offset 0xcb
- {value: 0x0000, lo: 0x01},
- {value: 0x8123, lo: 0x88, hi: 0x8b},
- // Block 0x22, offset 0xcd
- {value: 0x0000, lo: 0x01},
- {value: 0x8124, lo: 0xb8, hi: 0xb9},
- // Block 0x23, offset 0xcf
- {value: 0x0000, lo: 0x01},
- {value: 0x8125, lo: 0x88, hi: 0x8b},
- // Block 0x24, offset 0xd1
- {value: 0x0000, lo: 0x04},
- {value: 0x812d, lo: 0x98, hi: 0x99},
- {value: 0x812d, lo: 0xb5, hi: 0xb5},
- {value: 0x812d, lo: 0xb7, hi: 0xb7},
- {value: 0x812b, lo: 0xb9, hi: 0xb9},
- // Block 0x25, offset 0xd6
- {value: 0x0000, lo: 0x10},
- {value: 0x2644, lo: 0x83, hi: 0x83},
- {value: 0x264b, lo: 0x8d, hi: 0x8d},
- {value: 0x2652, lo: 0x92, hi: 0x92},
- {value: 0x2659, lo: 0x97, hi: 0x97},
- {value: 0x2660, lo: 0x9c, hi: 0x9c},
- {value: 0x263d, lo: 0xa9, hi: 0xa9},
- {value: 0x8126, lo: 0xb1, hi: 0xb1},
- {value: 0x8127, lo: 0xb2, hi: 0xb2},
- {value: 0x4a84, lo: 0xb3, hi: 0xb3},
- {value: 0x8128, lo: 0xb4, hi: 0xb4},
- {value: 0x4a8d, lo: 0xb5, hi: 0xb5},
- {value: 0x45b4, lo: 0xb6, hi: 0xb6},
- {value: 0x8200, lo: 0xb7, hi: 0xb7},
- {value: 0x45bc, lo: 0xb8, hi: 0xb8},
- {value: 0x8200, lo: 0xb9, hi: 0xb9},
- {value: 0x8127, lo: 0xba, hi: 0xbd},
- // Block 0x26, offset 0xe7
- {value: 0x0000, lo: 0x0b},
- {value: 0x8127, lo: 0x80, hi: 0x80},
- {value: 0x4a96, lo: 0x81, hi: 0x81},
- {value: 0x8132, lo: 0x82, hi: 0x83},
- {value: 0x8104, lo: 0x84, hi: 0x84},
- {value: 0x8132, lo: 0x86, hi: 0x87},
- {value: 0x266e, lo: 0x93, hi: 0x93},
- {value: 0x2675, lo: 0x9d, hi: 0x9d},
- {value: 0x267c, lo: 0xa2, hi: 0xa2},
- {value: 0x2683, lo: 0xa7, hi: 0xa7},
- {value: 0x268a, lo: 0xac, hi: 0xac},
- {value: 0x2667, lo: 0xb9, hi: 0xb9},
- // Block 0x27, offset 0xf3
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0x86, hi: 0x86},
- // Block 0x28, offset 0xf5
- {value: 0x0000, lo: 0x05},
- {value: 0xa000, lo: 0xa5, hi: 0xa5},
- {value: 0x2d1e, lo: 0xa6, hi: 0xa6},
- {value: 0x9900, lo: 0xae, hi: 0xae},
- {value: 0x8102, lo: 0xb7, hi: 0xb7},
- {value: 0x8104, lo: 0xb9, hi: 0xba},
- // Block 0x29, offset 0xfb
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0x8d, hi: 0x8d},
- // Block 0x2a, offset 0xfd
- {value: 0x0000, lo: 0x01},
- {value: 0xa000, lo: 0x80, hi: 0x92},
- // Block 0x2b, offset 0xff
- {value: 0x0000, lo: 0x01},
- {value: 0xb900, lo: 0xa1, hi: 0xb5},
- // Block 0x2c, offset 0x101
- {value: 0x0000, lo: 0x01},
- {value: 0x9900, lo: 0xa8, hi: 0xbf},
- // Block 0x2d, offset 0x103
- {value: 0x0000, lo: 0x01},
- {value: 0x9900, lo: 0x80, hi: 0x82},
- // Block 0x2e, offset 0x105
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0x9d, hi: 0x9f},
- // Block 0x2f, offset 0x107
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x94, hi: 0x94},
- {value: 0x8104, lo: 0xb4, hi: 0xb4},
- // Block 0x30, offset 0x10a
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x92, hi: 0x92},
- {value: 0x8132, lo: 0x9d, hi: 0x9d},
- // Block 0x31, offset 0x10d
- {value: 0x0000, lo: 0x01},
- {value: 0x8131, lo: 0xa9, hi: 0xa9},
- // Block 0x32, offset 0x10f
- {value: 0x0004, lo: 0x02},
- {value: 0x812e, lo: 0xb9, hi: 0xba},
- {value: 0x812d, lo: 0xbb, hi: 0xbb},
- // Block 0x33, offset 0x112
- {value: 0x0000, lo: 0x02},
- {value: 0x8132, lo: 0x97, hi: 0x97},
- {value: 0x812d, lo: 0x98, hi: 0x98},
- // Block 0x34, offset 0x115
- {value: 0x0000, lo: 0x03},
- {value: 0x8104, lo: 0xa0, hi: 0xa0},
- {value: 0x8132, lo: 0xb5, hi: 0xbc},
- {value: 0x812d, lo: 0xbf, hi: 0xbf},
- // Block 0x35, offset 0x119
- {value: 0x0000, lo: 0x04},
- {value: 0x8132, lo: 0xb0, hi: 0xb4},
- {value: 0x812d, lo: 0xb5, hi: 0xba},
- {value: 0x8132, lo: 0xbb, hi: 0xbc},
- {value: 0x812d, lo: 0xbd, hi: 0xbd},
- // Block 0x36, offset 0x11e
- {value: 0x0000, lo: 0x08},
- {value: 0x2d66, lo: 0x80, hi: 0x80},
- {value: 0x2d6e, lo: 0x81, hi: 0x81},
- {value: 0xa000, lo: 0x82, hi: 0x82},
- {value: 0x2d76, lo: 0x83, hi: 0x83},
- {value: 0x8104, lo: 0x84, hi: 0x84},
- {value: 0x8132, lo: 0xab, hi: 0xab},
- {value: 0x812d, lo: 0xac, hi: 0xac},
- {value: 0x8132, lo: 0xad, hi: 0xb3},
- // Block 0x37, offset 0x127
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0xaa, hi: 0xab},
- // Block 0x38, offset 0x129
- {value: 0x0000, lo: 0x02},
- {value: 0x8102, lo: 0xa6, hi: 0xa6},
- {value: 0x8104, lo: 0xb2, hi: 0xb3},
- // Block 0x39, offset 0x12c
- {value: 0x0000, lo: 0x01},
- {value: 0x8102, lo: 0xb7, hi: 0xb7},
- // Block 0x3a, offset 0x12e
- {value: 0x0000, lo: 0x0a},
- {value: 0x8132, lo: 0x90, hi: 0x92},
- {value: 0x8101, lo: 0x94, hi: 0x94},
- {value: 0x812d, lo: 0x95, hi: 0x99},
- {value: 0x8132, lo: 0x9a, hi: 0x9b},
- {value: 0x812d, lo: 0x9c, hi: 0x9f},
- {value: 0x8132, lo: 0xa0, hi: 0xa0},
- {value: 0x8101, lo: 0xa2, hi: 0xa8},
- {value: 0x812d, lo: 0xad, hi: 0xad},
- {value: 0x8132, lo: 0xb4, hi: 0xb4},
- {value: 0x8132, lo: 0xb8, hi: 0xb9},
- // Block 0x3b, offset 0x139
- {value: 0x0004, lo: 0x03},
- {value: 0x0433, lo: 0x80, hi: 0x81},
- {value: 0x8100, lo: 0x97, hi: 0x97},
- {value: 0x8100, lo: 0xbe, hi: 0xbe},
- // Block 0x3c, offset 0x13d
- {value: 0x0000, lo: 0x0d},
- {value: 0x8132, lo: 0x90, hi: 0x91},
- {value: 0x8101, lo: 0x92, hi: 0x93},
- {value: 0x8132, lo: 0x94, hi: 0x97},
- {value: 0x8101, lo: 0x98, hi: 0x9a},
- {value: 0x8132, lo: 0x9b, hi: 0x9c},
- {value: 0x8132, lo: 0xa1, hi: 0xa1},
- {value: 0x8101, lo: 0xa5, hi: 0xa6},
- {value: 0x8132, lo: 0xa7, hi: 0xa7},
- {value: 0x812d, lo: 0xa8, hi: 0xa8},
- {value: 0x8132, lo: 0xa9, hi: 0xa9},
- {value: 0x8101, lo: 0xaa, hi: 0xab},
- {value: 0x812d, lo: 0xac, hi: 0xaf},
- {value: 0x8132, lo: 0xb0, hi: 0xb0},
- // Block 0x3d, offset 0x14b
- {value: 0x427b, lo: 0x02},
- {value: 0x01b8, lo: 0xa6, hi: 0xa6},
- {value: 0x0057, lo: 0xaa, hi: 0xab},
- // Block 0x3e, offset 0x14e
- {value: 0x0007, lo: 0x05},
- {value: 0xa000, lo: 0x90, hi: 0x90},
- {value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0xa000, lo: 0x94, hi: 0x94},
- {value: 0x3bb9, lo: 0x9a, hi: 0x9b},
- {value: 0x3bc7, lo: 0xae, hi: 0xae},
- // Block 0x3f, offset 0x154
- {value: 0x000e, lo: 0x05},
- {value: 0x3bce, lo: 0x8d, hi: 0x8e},
- {value: 0x3bd5, lo: 0x8f, hi: 0x8f},
- {value: 0xa000, lo: 0x90, hi: 0x90},
- {value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0xa000, lo: 0x94, hi: 0x94},
- // Block 0x40, offset 0x15a
- {value: 0x6408, lo: 0x0a},
- {value: 0xa000, lo: 0x83, hi: 0x83},
- {value: 0x3be3, lo: 0x84, hi: 0x84},
- {value: 0xa000, lo: 0x88, hi: 0x88},
- {value: 0x3bea, lo: 0x89, hi: 0x89},
- {value: 0xa000, lo: 0x8b, hi: 0x8b},
- {value: 0x3bf1, lo: 0x8c, hi: 0x8c},
- {value: 0xa000, lo: 0xa3, hi: 0xa3},
- {value: 0x3bf8, lo: 0xa4, hi: 0xa5},
- {value: 0x3bff, lo: 0xa6, hi: 0xa6},
- {value: 0xa000, lo: 0xbc, hi: 0xbc},
- // Block 0x41, offset 0x165
- {value: 0x0007, lo: 0x03},
- {value: 0x3c68, lo: 0xa0, hi: 0xa1},
- {value: 0x3c92, lo: 0xa2, hi: 0xa3},
- {value: 0x3cbc, lo: 0xaa, hi: 0xad},
- // Block 0x42, offset 0x169
- {value: 0x0004, lo: 0x01},
- {value: 0x048b, lo: 0xa9, hi: 0xaa},
- // Block 0x43, offset 0x16b
- {value: 0x0000, lo: 0x01},
- {value: 0x44dd, lo: 0x9c, hi: 0x9c},
- // Block 0x44, offset 0x16d
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0xaf, hi: 0xb1},
- // Block 0x45, offset 0x16f
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0xbf, hi: 0xbf},
- // Block 0x46, offset 0x171
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0xa0, hi: 0xbf},
- // Block 0x47, offset 0x173
- {value: 0x0000, lo: 0x05},
- {value: 0x812c, lo: 0xaa, hi: 0xaa},
- {value: 0x8131, lo: 0xab, hi: 0xab},
- {value: 0x8133, lo: 0xac, hi: 0xac},
- {value: 0x812e, lo: 0xad, hi: 0xad},
- {value: 0x812f, lo: 0xae, hi: 0xaf},
- // Block 0x48, offset 0x179
- {value: 0x0000, lo: 0x03},
- {value: 0x4a9f, lo: 0xb3, hi: 0xb3},
- {value: 0x4a9f, lo: 0xb5, hi: 0xb6},
- {value: 0x4a9f, lo: 0xba, hi: 0xbf},
- // Block 0x49, offset 0x17d
- {value: 0x0000, lo: 0x01},
- {value: 0x4a9f, lo: 0x8f, hi: 0xa3},
- // Block 0x4a, offset 0x17f
- {value: 0x0000, lo: 0x01},
- {value: 0x8100, lo: 0xae, hi: 0xbe},
- // Block 0x4b, offset 0x181
- {value: 0x0000, lo: 0x07},
- {value: 0x8100, lo: 0x84, hi: 0x84},
- {value: 0x8100, lo: 0x87, hi: 0x87},
- {value: 0x8100, lo: 0x90, hi: 0x90},
- {value: 0x8100, lo: 0x9e, hi: 0x9e},
- {value: 0x8100, lo: 0xa1, hi: 0xa1},
- {value: 0x8100, lo: 0xb2, hi: 0xb2},
- {value: 0x8100, lo: 0xbb, hi: 0xbb},
- // Block 0x4c, offset 0x189
- {value: 0x0000, lo: 0x03},
- {value: 0x8100, lo: 0x80, hi: 0x80},
- {value: 0x8100, lo: 0x8b, hi: 0x8b},
- {value: 0x8100, lo: 0x8e, hi: 0x8e},
- // Block 0x4d, offset 0x18d
- {value: 0x0000, lo: 0x02},
- {value: 0x8132, lo: 0xaf, hi: 0xaf},
- {value: 0x8132, lo: 0xb4, hi: 0xbd},
- // Block 0x4e, offset 0x190
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0x9e, hi: 0x9f},
- // Block 0x4f, offset 0x192
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0xb0, hi: 0xb1},
- // Block 0x50, offset 0x194
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0x86, hi: 0x86},
- // Block 0x51, offset 0x196
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x84, hi: 0x84},
- {value: 0x8132, lo: 0xa0, hi: 0xb1},
- // Block 0x52, offset 0x199
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0xab, hi: 0xad},
- // Block 0x53, offset 0x19b
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0x93, hi: 0x93},
- // Block 0x54, offset 0x19d
- {value: 0x0000, lo: 0x01},
- {value: 0x8102, lo: 0xb3, hi: 0xb3},
- // Block 0x55, offset 0x19f
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0x80, hi: 0x80},
- // Block 0x56, offset 0x1a1
- {value: 0x0000, lo: 0x05},
- {value: 0x8132, lo: 0xb0, hi: 0xb0},
- {value: 0x8132, lo: 0xb2, hi: 0xb3},
- {value: 0x812d, lo: 0xb4, hi: 0xb4},
- {value: 0x8132, lo: 0xb7, hi: 0xb8},
- {value: 0x8132, lo: 0xbe, hi: 0xbf},
- // Block 0x57, offset 0x1a7
- {value: 0x0000, lo: 0x02},
- {value: 0x8132, lo: 0x81, hi: 0x81},
- {value: 0x8104, lo: 0xb6, hi: 0xb6},
- // Block 0x58, offset 0x1aa
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0xad, hi: 0xad},
- // Block 0x59, offset 0x1ac
- {value: 0x0000, lo: 0x06},
- {value: 0xe500, lo: 0x80, hi: 0x80},
- {value: 0xc600, lo: 0x81, hi: 0x9b},
- {value: 0xe500, lo: 0x9c, hi: 0x9c},
- {value: 0xc600, lo: 0x9d, hi: 0xb7},
- {value: 0xe500, lo: 0xb8, hi: 0xb8},
- {value: 0xc600, lo: 0xb9, hi: 0xbf},
- // Block 0x5a, offset 0x1b3
- {value: 0x0000, lo: 0x05},
- {value: 0xc600, lo: 0x80, hi: 0x93},
- {value: 0xe500, lo: 0x94, hi: 0x94},
- {value: 0xc600, lo: 0x95, hi: 0xaf},
- {value: 0xe500, lo: 0xb0, hi: 0xb0},
- {value: 0xc600, lo: 0xb1, hi: 0xbf},
- // Block 0x5b, offset 0x1b9
- {value: 0x0000, lo: 0x05},
- {value: 0xc600, lo: 0x80, hi: 0x8b},
- {value: 0xe500, lo: 0x8c, hi: 0x8c},
- {value: 0xc600, lo: 0x8d, hi: 0xa7},
- {value: 0xe500, lo: 0xa8, hi: 0xa8},
- {value: 0xc600, lo: 0xa9, hi: 0xbf},
- // Block 0x5c, offset 0x1bf
- {value: 0x0000, lo: 0x07},
- {value: 0xc600, lo: 0x80, hi: 0x83},
- {value: 0xe500, lo: 0x84, hi: 0x84},
- {value: 0xc600, lo: 0x85, hi: 0x9f},
- {value: 0xe500, lo: 0xa0, hi: 0xa0},
- {value: 0xc600, lo: 0xa1, hi: 0xbb},
- {value: 0xe500, lo: 0xbc, hi: 0xbc},
- {value: 0xc600, lo: 0xbd, hi: 0xbf},
- // Block 0x5d, offset 0x1c7
- {value: 0x0000, lo: 0x05},
- {value: 0xc600, lo: 0x80, hi: 0x97},
- {value: 0xe500, lo: 0x98, hi: 0x98},
- {value: 0xc600, lo: 0x99, hi: 0xb3},
- {value: 0xe500, lo: 0xb4, hi: 0xb4},
- {value: 0xc600, lo: 0xb5, hi: 0xbf},
- // Block 0x5e, offset 0x1cd
- {value: 0x0000, lo: 0x05},
- {value: 0xc600, lo: 0x80, hi: 0x8f},
- {value: 0xe500, lo: 0x90, hi: 0x90},
- {value: 0xc600, lo: 0x91, hi: 0xab},
- {value: 0xe500, lo: 0xac, hi: 0xac},
- {value: 0xc600, lo: 0xad, hi: 0xbf},
- // Block 0x5f, offset 0x1d3
- {value: 0x0000, lo: 0x05},
- {value: 0xc600, lo: 0x80, hi: 0x87},
- {value: 0xe500, lo: 0x88, hi: 0x88},
- {value: 0xc600, lo: 0x89, hi: 0xa3},
- {value: 0xe500, lo: 0xa4, hi: 0xa4},
- {value: 0xc600, lo: 0xa5, hi: 0xbf},
- // Block 0x60, offset 0x1d9
- {value: 0x0000, lo: 0x03},
- {value: 0xc600, lo: 0x80, hi: 0x87},
- {value: 0xe500, lo: 0x88, hi: 0x88},
- {value: 0xc600, lo: 0x89, hi: 0xa3},
- // Block 0x61, offset 0x1dd
- {value: 0x0006, lo: 0x0d},
- {value: 0x4390, lo: 0x9d, hi: 0x9d},
- {value: 0x8115, lo: 0x9e, hi: 0x9e},
- {value: 0x4402, lo: 0x9f, hi: 0x9f},
- {value: 0x43f0, lo: 0xaa, hi: 0xab},
- {value: 0x44f4, lo: 0xac, hi: 0xac},
- {value: 0x44fc, lo: 0xad, hi: 0xad},
- {value: 0x4348, lo: 0xae, hi: 0xb1},
- {value: 0x4366, lo: 0xb2, hi: 0xb4},
- {value: 0x437e, lo: 0xb5, hi: 0xb6},
- {value: 0x438a, lo: 0xb8, hi: 0xb8},
- {value: 0x4396, lo: 0xb9, hi: 0xbb},
- {value: 0x43ae, lo: 0xbc, hi: 0xbc},
- {value: 0x43b4, lo: 0xbe, hi: 0xbe},
- // Block 0x62, offset 0x1eb
- {value: 0x0006, lo: 0x08},
- {value: 0x43ba, lo: 0x80, hi: 0x81},
- {value: 0x43c6, lo: 0x83, hi: 0x84},
- {value: 0x43d8, lo: 0x86, hi: 0x89},
- {value: 0x43fc, lo: 0x8a, hi: 0x8a},
- {value: 0x4378, lo: 0x8b, hi: 0x8b},
- {value: 0x4360, lo: 0x8c, hi: 0x8c},
- {value: 0x43a8, lo: 0x8d, hi: 0x8d},
- {value: 0x43d2, lo: 0x8e, hi: 0x8e},
- // Block 0x63, offset 0x1f4
- {value: 0x0000, lo: 0x02},
- {value: 0x8100, lo: 0xa4, hi: 0xa5},
- {value: 0x8100, lo: 0xb0, hi: 0xb1},
- // Block 0x64, offset 0x1f7
- {value: 0x0000, lo: 0x02},
- {value: 0x8100, lo: 0x9b, hi: 0x9d},
- {value: 0x8200, lo: 0x9e, hi: 0xa3},
- // Block 0x65, offset 0x1fa
- {value: 0x0000, lo: 0x01},
- {value: 0x8100, lo: 0x90, hi: 0x90},
- // Block 0x66, offset 0x1fc
- {value: 0x0000, lo: 0x02},
- {value: 0x8100, lo: 0x99, hi: 0x99},
- {value: 0x8200, lo: 0xb2, hi: 0xb4},
- // Block 0x67, offset 0x1ff
- {value: 0x0000, lo: 0x01},
- {value: 0x8100, lo: 0xbc, hi: 0xbd},
- // Block 0x68, offset 0x201
- {value: 0x0000, lo: 0x03},
- {value: 0x8132, lo: 0xa0, hi: 0xa6},
- {value: 0x812d, lo: 0xa7, hi: 0xad},
- {value: 0x8132, lo: 0xae, hi: 0xaf},
- // Block 0x69, offset 0x205
- {value: 0x0000, lo: 0x04},
- {value: 0x8100, lo: 0x89, hi: 0x8c},
- {value: 0x8100, lo: 0xb0, hi: 0xb2},
- {value: 0x8100, lo: 0xb4, hi: 0xb4},
- {value: 0x8100, lo: 0xb6, hi: 0xbf},
- // Block 0x6a, offset 0x20a
- {value: 0x0000, lo: 0x01},
- {value: 0x8100, lo: 0x81, hi: 0x8c},
- // Block 0x6b, offset 0x20c
- {value: 0x0000, lo: 0x01},
- {value: 0x8100, lo: 0xb5, hi: 0xba},
- // Block 0x6c, offset 0x20e
- {value: 0x0000, lo: 0x04},
- {value: 0x4a9f, lo: 0x9e, hi: 0x9f},
- {value: 0x4a9f, lo: 0xa3, hi: 0xa3},
- {value: 0x4a9f, lo: 0xa5, hi: 0xa6},
- {value: 0x4a9f, lo: 0xaa, hi: 0xaf},
- // Block 0x6d, offset 0x213
- {value: 0x0000, lo: 0x05},
- {value: 0x4a9f, lo: 0x82, hi: 0x87},
- {value: 0x4a9f, lo: 0x8a, hi: 0x8f},
- {value: 0x4a9f, lo: 0x92, hi: 0x97},
- {value: 0x4a9f, lo: 0x9a, hi: 0x9c},
- {value: 0x8100, lo: 0xa3, hi: 0xa3},
- // Block 0x6e, offset 0x219
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0xbd, hi: 0xbd},
- // Block 0x6f, offset 0x21b
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0xa0, hi: 0xa0},
- // Block 0x70, offset 0x21d
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0xb6, hi: 0xba},
- // Block 0x71, offset 0x21f
- {value: 0x002c, lo: 0x05},
- {value: 0x812d, lo: 0x8d, hi: 0x8d},
- {value: 0x8132, lo: 0x8f, hi: 0x8f},
- {value: 0x8132, lo: 0xb8, hi: 0xb8},
- {value: 0x8101, lo: 0xb9, hi: 0xba},
- {value: 0x8104, lo: 0xbf, hi: 0xbf},
- // Block 0x72, offset 0x225
- {value: 0x0000, lo: 0x02},
- {value: 0x8132, lo: 0xa5, hi: 0xa5},
- {value: 0x812d, lo: 0xa6, hi: 0xa6},
- // Block 0x73, offset 0x228
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0xa4, hi: 0xa7},
- // Block 0x74, offset 0x22a
- {value: 0x0000, lo: 0x05},
- {value: 0x812d, lo: 0x86, hi: 0x87},
- {value: 0x8132, lo: 0x88, hi: 0x8a},
- {value: 0x812d, lo: 0x8b, hi: 0x8b},
- {value: 0x8132, lo: 0x8c, hi: 0x8c},
- {value: 0x812d, lo: 0x8d, hi: 0x90},
- // Block 0x75, offset 0x230
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x86, hi: 0x86},
- {value: 0x8104, lo: 0xbf, hi: 0xbf},
- // Block 0x76, offset 0x233
- {value: 0x17fe, lo: 0x07},
- {value: 0xa000, lo: 0x99, hi: 0x99},
- {value: 0x4238, lo: 0x9a, hi: 0x9a},
- {value: 0xa000, lo: 0x9b, hi: 0x9b},
- {value: 0x4242, lo: 0x9c, hi: 0x9c},
- {value: 0xa000, lo: 0xa5, hi: 0xa5},
- {value: 0x424c, lo: 0xab, hi: 0xab},
- {value: 0x8104, lo: 0xb9, hi: 0xba},
- // Block 0x77, offset 0x23b
- {value: 0x0000, lo: 0x06},
- {value: 0x8132, lo: 0x80, hi: 0x82},
- {value: 0x9900, lo: 0xa7, hi: 0xa7},
- {value: 0x2d7e, lo: 0xae, hi: 0xae},
- {value: 0x2d88, lo: 0xaf, hi: 0xaf},
- {value: 0xa000, lo: 0xb1, hi: 0xb2},
- {value: 0x8104, lo: 0xb3, hi: 0xb4},
- // Block 0x78, offset 0x242
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x80, hi: 0x80},
- {value: 0x8102, lo: 0x8a, hi: 0x8a},
- // Block 0x79, offset 0x245
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0xb5, hi: 0xb5},
- {value: 0x8102, lo: 0xb6, hi: 0xb6},
- // Block 0x7a, offset 0x248
- {value: 0x0002, lo: 0x01},
- {value: 0x8102, lo: 0xa9, hi: 0xaa},
- // Block 0x7b, offset 0x24a
- {value: 0x0000, lo: 0x02},
- {value: 0x8102, lo: 0xbb, hi: 0xbc},
- {value: 0x9900, lo: 0xbe, hi: 0xbe},
- // Block 0x7c, offset 0x24d
- {value: 0x0000, lo: 0x07},
- {value: 0xa000, lo: 0x87, hi: 0x87},
- {value: 0x2d92, lo: 0x8b, hi: 0x8b},
- {value: 0x2d9c, lo: 0x8c, hi: 0x8c},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x9900, lo: 0x97, hi: 0x97},
- {value: 0x8132, lo: 0xa6, hi: 0xac},
- {value: 0x8132, lo: 0xb0, hi: 0xb4},
- // Block 0x7d, offset 0x255
- {value: 0x0000, lo: 0x03},
- {value: 0x8104, lo: 0x82, hi: 0x82},
- {value: 0x8102, lo: 0x86, hi: 0x86},
- {value: 0x8132, lo: 0x9e, hi: 0x9e},
- // Block 0x7e, offset 0x259
- {value: 0x6b5a, lo: 0x06},
- {value: 0x9900, lo: 0xb0, hi: 0xb0},
- {value: 0xa000, lo: 0xb9, hi: 0xb9},
- {value: 0x9900, lo: 0xba, hi: 0xba},
- {value: 0x2db0, lo: 0xbb, hi: 0xbb},
- {value: 0x2da6, lo: 0xbc, hi: 0xbd},
- {value: 0x2dba, lo: 0xbe, hi: 0xbe},
- // Block 0x7f, offset 0x260
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x82, hi: 0x82},
- {value: 0x8102, lo: 0x83, hi: 0x83},
- // Block 0x80, offset 0x263
- {value: 0x0000, lo: 0x05},
- {value: 0x9900, lo: 0xaf, hi: 0xaf},
- {value: 0xa000, lo: 0xb8, hi: 0xb9},
- {value: 0x2dc4, lo: 0xba, hi: 0xba},
- {value: 0x2dce, lo: 0xbb, hi: 0xbb},
- {value: 0x8104, lo: 0xbf, hi: 0xbf},
- // Block 0x81, offset 0x269
- {value: 0x0000, lo: 0x01},
- {value: 0x8102, lo: 0x80, hi: 0x80},
- // Block 0x82, offset 0x26b
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0xb6, hi: 0xb6},
- {value: 0x8102, lo: 0xb7, hi: 0xb7},
- // Block 0x83, offset 0x26e
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0xab, hi: 0xab},
- // Block 0x84, offset 0x270
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0xb9, hi: 0xb9},
- {value: 0x8102, lo: 0xba, hi: 0xba},
- // Block 0x85, offset 0x273
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0xb4, hi: 0xb4},
- // Block 0x86, offset 0x275
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0x87, hi: 0x87},
- // Block 0x87, offset 0x277
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0x99, hi: 0x99},
- // Block 0x88, offset 0x279
- {value: 0x0000, lo: 0x02},
- {value: 0x8102, lo: 0x82, hi: 0x82},
- {value: 0x8104, lo: 0x84, hi: 0x85},
- // Block 0x89, offset 0x27c
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0x97, hi: 0x97},
- // Block 0x8a, offset 0x27e
- {value: 0x0000, lo: 0x01},
- {value: 0x8101, lo: 0xb0, hi: 0xb4},
- // Block 0x8b, offset 0x280
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0xb0, hi: 0xb6},
- // Block 0x8c, offset 0x282
- {value: 0x0000, lo: 0x01},
- {value: 0x8101, lo: 0x9e, hi: 0x9e},
- // Block 0x8d, offset 0x284
- {value: 0x0000, lo: 0x0c},
- {value: 0x45cc, lo: 0x9e, hi: 0x9e},
- {value: 0x45d6, lo: 0x9f, hi: 0x9f},
- {value: 0x460a, lo: 0xa0, hi: 0xa0},
- {value: 0x4618, lo: 0xa1, hi: 0xa1},
- {value: 0x4626, lo: 0xa2, hi: 0xa2},
- {value: 0x4634, lo: 0xa3, hi: 0xa3},
- {value: 0x4642, lo: 0xa4, hi: 0xa4},
- {value: 0x812b, lo: 0xa5, hi: 0xa6},
- {value: 0x8101, lo: 0xa7, hi: 0xa9},
- {value: 0x8130, lo: 0xad, hi: 0xad},
- {value: 0x812b, lo: 0xae, hi: 0xb2},
- {value: 0x812d, lo: 0xbb, hi: 0xbf},
- // Block 0x8e, offset 0x291
- {value: 0x0000, lo: 0x09},
- {value: 0x812d, lo: 0x80, hi: 0x82},
- {value: 0x8132, lo: 0x85, hi: 0x89},
- {value: 0x812d, lo: 0x8a, hi: 0x8b},
- {value: 0x8132, lo: 0xaa, hi: 0xad},
- {value: 0x45e0, lo: 0xbb, hi: 0xbb},
- {value: 0x45ea, lo: 0xbc, hi: 0xbc},
- {value: 0x4650, lo: 0xbd, hi: 0xbd},
- {value: 0x466c, lo: 0xbe, hi: 0xbe},
- {value: 0x465e, lo: 0xbf, hi: 0xbf},
- // Block 0x8f, offset 0x29b
- {value: 0x0000, lo: 0x01},
- {value: 0x467a, lo: 0x80, hi: 0x80},
- // Block 0x90, offset 0x29d
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0x82, hi: 0x84},
- // Block 0x91, offset 0x29f
- {value: 0x0000, lo: 0x05},
- {value: 0x8132, lo: 0x80, hi: 0x86},
- {value: 0x8132, lo: 0x88, hi: 0x98},
- {value: 0x8132, lo: 0x9b, hi: 0xa1},
- {value: 0x8132, lo: 0xa3, hi: 0xa4},
- {value: 0x8132, lo: 0xa6, hi: 0xaa},
- // Block 0x92, offset 0x2a5
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0x90, hi: 0x96},
- // Block 0x93, offset 0x2a7
- {value: 0x0000, lo: 0x02},
- {value: 0x8132, lo: 0x84, hi: 0x89},
- {value: 0x8102, lo: 0x8a, hi: 0x8a},
- // Block 0x94, offset 0x2aa
- {value: 0x0000, lo: 0x01},
- {value: 0x8100, lo: 0x93, hi: 0x93},
-}
-
-// lookup returns the trie value for the first UTF-8 encoding in s and
-// the width in bytes of this encoding. The size will be 0 if s does not
-// hold enough bytes to complete the encoding. len(s) must be greater than 0.
-func (t *nfkcTrie) lookup(s []byte) (v uint16, sz int) {
- c0 := s[0]
- switch {
- case c0 < 0x80: // is ASCII
- return nfkcValues[c0], 1
- case c0 < 0xC2:
- return 0, 1 // Illegal UTF-8: not a starter, not ASCII.
- case c0 < 0xE0: // 2-byte UTF-8
- if len(s) < 2 {
- return 0, 0
- }
- i := nfkcIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c1), 2
- case c0 < 0xF0: // 3-byte UTF-8
- if len(s) < 3 {
- return 0, 0
- }
- i := nfkcIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = nfkcIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c2), 3
- case c0 < 0xF8: // 4-byte UTF-8
- if len(s) < 4 {
- return 0, 0
- }
- i := nfkcIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = nfkcIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- o = uint32(i)<<6 + uint32(c2)
- i = nfkcIndex[o]
- c3 := s[3]
- if c3 < 0x80 || 0xC0 <= c3 {
- return 0, 3 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c3), 4
- }
- // Illegal rune
- return 0, 1
-}
-
-// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.
-// s must start with a full and valid UTF-8 encoded rune.
-func (t *nfkcTrie) lookupUnsafe(s []byte) uint16 {
- c0 := s[0]
- if c0 < 0x80 { // is ASCII
- return nfkcValues[c0]
- }
- i := nfkcIndex[c0]
- if c0 < 0xE0 { // 2-byte UTF-8
- return t.lookupValue(uint32(i), s[1])
- }
- i = nfkcIndex[uint32(i)<<6+uint32(s[1])]
- if c0 < 0xF0 { // 3-byte UTF-8
- return t.lookupValue(uint32(i), s[2])
- }
- i = nfkcIndex[uint32(i)<<6+uint32(s[2])]
- if c0 < 0xF8 { // 4-byte UTF-8
- return t.lookupValue(uint32(i), s[3])
- }
- return 0
-}
-
-// lookupString returns the trie value for the first UTF-8 encoding in s and
-// the width in bytes of this encoding. The size will be 0 if s does not
-// hold enough bytes to complete the encoding. len(s) must be greater than 0.
-func (t *nfkcTrie) lookupString(s string) (v uint16, sz int) {
- c0 := s[0]
- switch {
- case c0 < 0x80: // is ASCII
- return nfkcValues[c0], 1
- case c0 < 0xC2:
- return 0, 1 // Illegal UTF-8: not a starter, not ASCII.
- case c0 < 0xE0: // 2-byte UTF-8
- if len(s) < 2 {
- return 0, 0
- }
- i := nfkcIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c1), 2
- case c0 < 0xF0: // 3-byte UTF-8
- if len(s) < 3 {
- return 0, 0
- }
- i := nfkcIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = nfkcIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c2), 3
- case c0 < 0xF8: // 4-byte UTF-8
- if len(s) < 4 {
- return 0, 0
- }
- i := nfkcIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = nfkcIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- o = uint32(i)<<6 + uint32(c2)
- i = nfkcIndex[o]
- c3 := s[3]
- if c3 < 0x80 || 0xC0 <= c3 {
- return 0, 3 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c3), 4
- }
- // Illegal rune
- return 0, 1
-}
-
-// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.
-// s must start with a full and valid UTF-8 encoded rune.
-func (t *nfkcTrie) lookupStringUnsafe(s string) uint16 {
- c0 := s[0]
- if c0 < 0x80 { // is ASCII
- return nfkcValues[c0]
- }
- i := nfkcIndex[c0]
- if c0 < 0xE0 { // 2-byte UTF-8
- return t.lookupValue(uint32(i), s[1])
- }
- i = nfkcIndex[uint32(i)<<6+uint32(s[1])]
- if c0 < 0xF0 { // 3-byte UTF-8
- return t.lookupValue(uint32(i), s[2])
- }
- i = nfkcIndex[uint32(i)<<6+uint32(s[2])]
- if c0 < 0xF8 { // 4-byte UTF-8
- return t.lookupValue(uint32(i), s[3])
- }
- return 0
-}
-
-// nfkcTrie. Total size: 17248 bytes (16.84 KiB). Checksum: 4fb368372b6b1b27.
-type nfkcTrie struct{}
-
-func newNfkcTrie(i int) *nfkcTrie {
- return &nfkcTrie{}
-}
-
-// lookupValue determines the type of block n and looks up the value for b.
-func (t *nfkcTrie) lookupValue(n uint32, b byte) uint16 {
- switch {
- case n < 92:
- return uint16(nfkcValues[n<<6+uint32(b)])
- default:
- n -= 92
- return uint16(nfkcSparse.lookup(n, b))
- }
-}
-
-// nfkcValues: 94 blocks, 6016 entries, 12032 bytes
-// The third block is the zero block.
-var nfkcValues = [6016]uint16{
- // Block 0x0, offset 0x0
- 0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000,
- // Block 0x1, offset 0x40
- 0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000,
- 0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000,
- 0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000,
- 0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000,
- 0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000,
- 0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000,
- 0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000,
- 0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000,
- 0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000,
- 0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000,
- // Block 0x2, offset 0x80
- // Block 0x3, offset 0xc0
- 0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c,
- 0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb,
- 0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104,
- 0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd,
- 0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235,
- 0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285,
- 0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3,
- 0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750,
- 0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f,
- 0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3,
- 0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569,
- // Block 0x4, offset 0x100
- 0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 0x104: 0x2f9c, 0x105: 0x32a8,
- 0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6,
- 0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5,
- 0x112: 0x46b0, 0x113: 0x4741, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302,
- 0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339,
- 0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352,
- 0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e,
- 0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6,
- 0x130: 0x308c, 0x132: 0x195d, 0x133: 0x19e7, 0x134: 0x30b4, 0x135: 0x33c0,
- 0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc,
- 0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8, 0x13f: 0x1bac,
- // Block 0x5, offset 0x140
- 0x140: 0x1c34, 0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118,
- 0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f, 0x149: 0x1c5c,
- 0x14c: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c,
- 0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483,
- 0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d,
- 0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba,
- 0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796,
- 0x16a: 0x470a, 0x16b: 0x479b, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2,
- 0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528,
- 0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267,
- 0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0x00a7,
- // Block 0x6, offset 0x180
- 0x184: 0x2dee, 0x185: 0x2df4,
- 0x186: 0x2dfa, 0x187: 0x1972, 0x188: 0x1975, 0x189: 0x1a08, 0x18a: 0x1987, 0x18b: 0x198a,
- 0x18c: 0x1a3e, 0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140,
- 0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8,
- 0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50,
- 0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5,
- 0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf,
- 0x1aa: 0x46ec, 0x1ab: 0x477d, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd,
- 0x1b0: 0x33c5, 0x1b1: 0x1942, 0x1b2: 0x1945, 0x1b3: 0x19cf, 0x1b4: 0x3028, 0x1b5: 0x3334,
- 0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46,
- 0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb,
- // Block 0x7, offset 0x1c0
- 0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316,
- 0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac,
- 0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479,
- 0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6,
- 0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5,
- 0x1de: 0x305a, 0x1df: 0x3366,
- 0x1e6: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b,
- 0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769,
- 0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f,
- // Block 0x8, offset 0x200
- 0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132,
- 0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932,
- 0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932,
- 0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d,
- 0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d,
- 0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d,
- 0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d,
- 0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d,
- 0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101,
- 0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d,
- 0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132,
- // Block 0x9, offset 0x240
- 0x240: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 0x245: 0x9936,
- 0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132,
- 0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132,
- 0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132,
- 0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135,
- 0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132,
- 0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132,
- 0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132,
- 0x274: 0x0170,
- 0x27a: 0x42a5,
- 0x27e: 0x0037,
- // Block 0xa, offset 0x280
- 0x284: 0x425a, 0x285: 0x447b,
- 0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625,
- 0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000,
- 0x295: 0xa000, 0x297: 0xa000,
- 0x299: 0xa000,
- 0x29f: 0xa000, 0x2a1: 0xa000,
- 0x2a5: 0xa000, 0x2a9: 0xa000,
- 0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 0x2af: 0x36a9,
- 0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000,
- 0x2b7: 0xa000, 0x2b9: 0xa000,
- 0x2bf: 0xa000,
- // Block 0xb, offset 0x2c0
- 0x2c1: 0xa000, 0x2c5: 0xa000,
- 0x2c9: 0xa000, 0x2ca: 0x4840, 0x2cb: 0x485e,
- 0x2cc: 0x36c7, 0x2cd: 0x36df, 0x2ce: 0x4876, 0x2d0: 0x01be, 0x2d1: 0x01d0,
- 0x2d2: 0x01ac, 0x2d3: 0x430c, 0x2d4: 0x4312, 0x2d5: 0x01fa, 0x2d6: 0x01e8,
- 0x2f0: 0x01d6, 0x2f1: 0x01eb, 0x2f2: 0x01ee, 0x2f4: 0x0188, 0x2f5: 0x01c7,
- 0x2f9: 0x01a6,
- // Block 0xc, offset 0x300
- 0x300: 0x3721, 0x301: 0x372d, 0x303: 0x371b,
- 0x306: 0xa000, 0x307: 0x3709,
- 0x30c: 0x375d, 0x30d: 0x3745, 0x30e: 0x376f, 0x310: 0xa000,
- 0x313: 0xa000, 0x315: 0xa000, 0x316: 0xa000, 0x317: 0xa000,
- 0x318: 0xa000, 0x319: 0x3751, 0x31a: 0xa000,
- 0x31e: 0xa000, 0x323: 0xa000,
- 0x327: 0xa000,
- 0x32b: 0xa000, 0x32d: 0xa000,
- 0x330: 0xa000, 0x333: 0xa000, 0x335: 0xa000,
- 0x336: 0xa000, 0x337: 0xa000, 0x338: 0xa000, 0x339: 0x37d5, 0x33a: 0xa000,
- 0x33e: 0xa000,
- // Block 0xd, offset 0x340
- 0x341: 0x3733, 0x342: 0x37b7,
- 0x350: 0x370f, 0x351: 0x3793,
- 0x352: 0x3715, 0x353: 0x3799, 0x356: 0x3727, 0x357: 0x37ab,
- 0x358: 0xa000, 0x359: 0xa000, 0x35a: 0x3829, 0x35b: 0x382f, 0x35c: 0x3739, 0x35d: 0x37bd,
- 0x35e: 0x373f, 0x35f: 0x37c3, 0x362: 0x374b, 0x363: 0x37cf,
- 0x364: 0x3757, 0x365: 0x37db, 0x366: 0x3763, 0x367: 0x37e7, 0x368: 0xa000, 0x369: 0xa000,
- 0x36a: 0x3835, 0x36b: 0x383b, 0x36c: 0x378d, 0x36d: 0x3811, 0x36e: 0x3769, 0x36f: 0x37ed,
- 0x370: 0x3775, 0x371: 0x37f9, 0x372: 0x377b, 0x373: 0x37ff, 0x374: 0x3781, 0x375: 0x3805,
- 0x378: 0x3787, 0x379: 0x380b,
- // Block 0xe, offset 0x380
- 0x387: 0x1d61,
- 0x391: 0x812d,
- 0x392: 0x8132, 0x393: 0x8132, 0x394: 0x8132, 0x395: 0x8132, 0x396: 0x812d, 0x397: 0x8132,
- 0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x812e, 0x39b: 0x812d, 0x39c: 0x8132, 0x39d: 0x8132,
- 0x39e: 0x8132, 0x39f: 0x8132, 0x3a0: 0x8132, 0x3a1: 0x8132, 0x3a2: 0x812d, 0x3a3: 0x812d,
- 0x3a4: 0x812d, 0x3a5: 0x812d, 0x3a6: 0x812d, 0x3a7: 0x812d, 0x3a8: 0x8132, 0x3a9: 0x8132,
- 0x3aa: 0x812d, 0x3ab: 0x8132, 0x3ac: 0x8132, 0x3ad: 0x812e, 0x3ae: 0x8131, 0x3af: 0x8132,
- 0x3b0: 0x8105, 0x3b1: 0x8106, 0x3b2: 0x8107, 0x3b3: 0x8108, 0x3b4: 0x8109, 0x3b5: 0x810a,
- 0x3b6: 0x810b, 0x3b7: 0x810c, 0x3b8: 0x810d, 0x3b9: 0x810e, 0x3ba: 0x810e, 0x3bb: 0x810f,
- 0x3bc: 0x8110, 0x3bd: 0x8111, 0x3bf: 0x8112,
- // Block 0xf, offset 0x3c0
- 0x3c8: 0xa000, 0x3ca: 0xa000, 0x3cb: 0x8116,
- 0x3cc: 0x8117, 0x3cd: 0x8118, 0x3ce: 0x8119, 0x3cf: 0x811a, 0x3d0: 0x811b, 0x3d1: 0x811c,
- 0x3d2: 0x811d, 0x3d3: 0x9932, 0x3d4: 0x9932, 0x3d5: 0x992d, 0x3d6: 0x812d, 0x3d7: 0x8132,
- 0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x812d, 0x3dd: 0x8132,
- 0x3de: 0x8132, 0x3df: 0x812d,
- 0x3f0: 0x811e, 0x3f5: 0x1d84,
- 0x3f6: 0x2013, 0x3f7: 0x204f, 0x3f8: 0x204a,
- // Block 0x10, offset 0x400
- 0x413: 0x812d, 0x414: 0x8132, 0x415: 0x8132, 0x416: 0x8132, 0x417: 0x8132,
- 0x418: 0x8132, 0x419: 0x8132, 0x41a: 0x8132, 0x41b: 0x8132, 0x41c: 0x8132, 0x41d: 0x8132,
- 0x41e: 0x8132, 0x41f: 0x8132, 0x420: 0x8132, 0x421: 0x8132, 0x423: 0x812d,
- 0x424: 0x8132, 0x425: 0x8132, 0x426: 0x812d, 0x427: 0x8132, 0x428: 0x8132, 0x429: 0x812d,
- 0x42a: 0x8132, 0x42b: 0x8132, 0x42c: 0x8132, 0x42d: 0x812d, 0x42e: 0x812d, 0x42f: 0x812d,
- 0x430: 0x8116, 0x431: 0x8117, 0x432: 0x8118, 0x433: 0x8132, 0x434: 0x8132, 0x435: 0x8132,
- 0x436: 0x812d, 0x437: 0x8132, 0x438: 0x8132, 0x439: 0x812d, 0x43a: 0x812d, 0x43b: 0x8132,
- 0x43c: 0x8132, 0x43d: 0x8132, 0x43e: 0x8132, 0x43f: 0x8132,
- // Block 0x11, offset 0x440
- 0x445: 0xa000,
- 0x446: 0x2d26, 0x447: 0xa000, 0x448: 0x2d2e, 0x449: 0xa000, 0x44a: 0x2d36, 0x44b: 0xa000,
- 0x44c: 0x2d3e, 0x44d: 0xa000, 0x44e: 0x2d46, 0x451: 0xa000,
- 0x452: 0x2d4e,
- 0x474: 0x8102, 0x475: 0x9900,
- 0x47a: 0xa000, 0x47b: 0x2d56,
- 0x47c: 0xa000, 0x47d: 0x2d5e, 0x47e: 0xa000, 0x47f: 0xa000,
- // Block 0x12, offset 0x480
- 0x480: 0x0069, 0x481: 0x006b, 0x482: 0x006f, 0x483: 0x0083, 0x484: 0x00f5, 0x485: 0x00f8,
- 0x486: 0x0413, 0x487: 0x0085, 0x488: 0x0089, 0x489: 0x008b, 0x48a: 0x0104, 0x48b: 0x0107,
- 0x48c: 0x010a, 0x48d: 0x008f, 0x48f: 0x0097, 0x490: 0x009b, 0x491: 0x00e0,
- 0x492: 0x009f, 0x493: 0x00fe, 0x494: 0x0417, 0x495: 0x041b, 0x496: 0x00a1, 0x497: 0x00a9,
- 0x498: 0x00ab, 0x499: 0x0423, 0x49a: 0x012b, 0x49b: 0x00ad, 0x49c: 0x0427, 0x49d: 0x01be,
- 0x49e: 0x01c1, 0x49f: 0x01c4, 0x4a0: 0x01fa, 0x4a1: 0x01fd, 0x4a2: 0x0093, 0x4a3: 0x00a5,
- 0x4a4: 0x00ab, 0x4a5: 0x00ad, 0x4a6: 0x01be, 0x4a7: 0x01c1, 0x4a8: 0x01eb, 0x4a9: 0x01fa,
- 0x4aa: 0x01fd,
- 0x4b8: 0x020c,
- // Block 0x13, offset 0x4c0
- 0x4db: 0x00fb, 0x4dc: 0x0087, 0x4dd: 0x0101,
- 0x4de: 0x00d4, 0x4df: 0x010a, 0x4e0: 0x008d, 0x4e1: 0x010d, 0x4e2: 0x0110, 0x4e3: 0x0116,
- 0x4e4: 0x011c, 0x4e5: 0x011f, 0x4e6: 0x0122, 0x4e7: 0x042b, 0x4e8: 0x016a, 0x4e9: 0x0128,
- 0x4ea: 0x042f, 0x4eb: 0x016d, 0x4ec: 0x0131, 0x4ed: 0x012e, 0x4ee: 0x0134, 0x4ef: 0x0137,
- 0x4f0: 0x013a, 0x4f1: 0x013d, 0x4f2: 0x0140, 0x4f3: 0x014c, 0x4f4: 0x014f, 0x4f5: 0x00ec,
- 0x4f6: 0x0152, 0x4f7: 0x0155, 0x4f8: 0x041f, 0x4f9: 0x0158, 0x4fa: 0x015b, 0x4fb: 0x00b5,
- 0x4fc: 0x015e, 0x4fd: 0x0161, 0x4fe: 0x0164, 0x4ff: 0x01d0,
- // Block 0x14, offset 0x500
- 0x500: 0x8132, 0x501: 0x8132, 0x502: 0x812d, 0x503: 0x8132, 0x504: 0x8132, 0x505: 0x8132,
- 0x506: 0x8132, 0x507: 0x8132, 0x508: 0x8132, 0x509: 0x8132, 0x50a: 0x812d, 0x50b: 0x8132,
- 0x50c: 0x8132, 0x50d: 0x8135, 0x50e: 0x812a, 0x50f: 0x812d, 0x510: 0x8129, 0x511: 0x8132,
- 0x512: 0x8132, 0x513: 0x8132, 0x514: 0x8132, 0x515: 0x8132, 0x516: 0x8132, 0x517: 0x8132,
- 0x518: 0x8132, 0x519: 0x8132, 0x51a: 0x8132, 0x51b: 0x8132, 0x51c: 0x8132, 0x51d: 0x8132,
- 0x51e: 0x8132, 0x51f: 0x8132, 0x520: 0x8132, 0x521: 0x8132, 0x522: 0x8132, 0x523: 0x8132,
- 0x524: 0x8132, 0x525: 0x8132, 0x526: 0x8132, 0x527: 0x8132, 0x528: 0x8132, 0x529: 0x8132,
- 0x52a: 0x8132, 0x52b: 0x8132, 0x52c: 0x8132, 0x52d: 0x8132, 0x52e: 0x8132, 0x52f: 0x8132,
- 0x530: 0x8132, 0x531: 0x8132, 0x532: 0x8132, 0x533: 0x8132, 0x534: 0x8132, 0x535: 0x8132,
- 0x536: 0x8133, 0x537: 0x8131, 0x538: 0x8131, 0x539: 0x812d, 0x53b: 0x8132,
- 0x53c: 0x8134, 0x53d: 0x812d, 0x53e: 0x8132, 0x53f: 0x812d,
- // Block 0x15, offset 0x540
- 0x540: 0x2f97, 0x541: 0x32a3, 0x542: 0x2fa1, 0x543: 0x32ad, 0x544: 0x2fa6, 0x545: 0x32b2,
- 0x546: 0x2fab, 0x547: 0x32b7, 0x548: 0x38cc, 0x549: 0x3a5b, 0x54a: 0x2fc4, 0x54b: 0x32d0,
- 0x54c: 0x2fce, 0x54d: 0x32da, 0x54e: 0x2fdd, 0x54f: 0x32e9, 0x550: 0x2fd3, 0x551: 0x32df,
- 0x552: 0x2fd8, 0x553: 0x32e4, 0x554: 0x38ef, 0x555: 0x3a7e, 0x556: 0x38f6, 0x557: 0x3a85,
- 0x558: 0x3019, 0x559: 0x3325, 0x55a: 0x301e, 0x55b: 0x332a, 0x55c: 0x3904, 0x55d: 0x3a93,
- 0x55e: 0x3023, 0x55f: 0x332f, 0x560: 0x3032, 0x561: 0x333e, 0x562: 0x3050, 0x563: 0x335c,
- 0x564: 0x305f, 0x565: 0x336b, 0x566: 0x3055, 0x567: 0x3361, 0x568: 0x3064, 0x569: 0x3370,
- 0x56a: 0x3069, 0x56b: 0x3375, 0x56c: 0x30af, 0x56d: 0x33bb, 0x56e: 0x390b, 0x56f: 0x3a9a,
- 0x570: 0x30b9, 0x571: 0x33ca, 0x572: 0x30c3, 0x573: 0x33d4, 0x574: 0x30cd, 0x575: 0x33de,
- 0x576: 0x46c4, 0x577: 0x4755, 0x578: 0x3912, 0x579: 0x3aa1, 0x57a: 0x30e6, 0x57b: 0x33f7,
- 0x57c: 0x30e1, 0x57d: 0x33f2, 0x57e: 0x30eb, 0x57f: 0x33fc,
- // Block 0x16, offset 0x580
- 0x580: 0x30f0, 0x581: 0x3401, 0x582: 0x30f5, 0x583: 0x3406, 0x584: 0x3109, 0x585: 0x341a,
- 0x586: 0x3113, 0x587: 0x3424, 0x588: 0x3122, 0x589: 0x3433, 0x58a: 0x311d, 0x58b: 0x342e,
- 0x58c: 0x3935, 0x58d: 0x3ac4, 0x58e: 0x3943, 0x58f: 0x3ad2, 0x590: 0x394a, 0x591: 0x3ad9,
- 0x592: 0x3951, 0x593: 0x3ae0, 0x594: 0x314f, 0x595: 0x3460, 0x596: 0x3154, 0x597: 0x3465,
- 0x598: 0x315e, 0x599: 0x346f, 0x59a: 0x46f1, 0x59b: 0x4782, 0x59c: 0x3997, 0x59d: 0x3b26,
- 0x59e: 0x3177, 0x59f: 0x3488, 0x5a0: 0x3181, 0x5a1: 0x3492, 0x5a2: 0x4700, 0x5a3: 0x4791,
- 0x5a4: 0x399e, 0x5a5: 0x3b2d, 0x5a6: 0x39a5, 0x5a7: 0x3b34, 0x5a8: 0x39ac, 0x5a9: 0x3b3b,
- 0x5aa: 0x3190, 0x5ab: 0x34a1, 0x5ac: 0x319a, 0x5ad: 0x34b0, 0x5ae: 0x31ae, 0x5af: 0x34c4,
- 0x5b0: 0x31a9, 0x5b1: 0x34bf, 0x5b2: 0x31ea, 0x5b3: 0x3500, 0x5b4: 0x31f9, 0x5b5: 0x350f,
- 0x5b6: 0x31f4, 0x5b7: 0x350a, 0x5b8: 0x39b3, 0x5b9: 0x3b42, 0x5ba: 0x39ba, 0x5bb: 0x3b49,
- 0x5bc: 0x31fe, 0x5bd: 0x3514, 0x5be: 0x3203, 0x5bf: 0x3519,
- // Block 0x17, offset 0x5c0
- 0x5c0: 0x3208, 0x5c1: 0x351e, 0x5c2: 0x320d, 0x5c3: 0x3523, 0x5c4: 0x321c, 0x5c5: 0x3532,
- 0x5c6: 0x3217, 0x5c7: 0x352d, 0x5c8: 0x3221, 0x5c9: 0x353c, 0x5ca: 0x3226, 0x5cb: 0x3541,
- 0x5cc: 0x322b, 0x5cd: 0x3546, 0x5ce: 0x3249, 0x5cf: 0x3564, 0x5d0: 0x3262, 0x5d1: 0x3582,
- 0x5d2: 0x3271, 0x5d3: 0x3591, 0x5d4: 0x3276, 0x5d5: 0x3596, 0x5d6: 0x337a, 0x5d7: 0x34a6,
- 0x5d8: 0x3537, 0x5d9: 0x3573, 0x5da: 0x1be0, 0x5db: 0x42d7,
- 0x5e0: 0x46a1, 0x5e1: 0x4732, 0x5e2: 0x2f83, 0x5e3: 0x328f,
- 0x5e4: 0x3878, 0x5e5: 0x3a07, 0x5e6: 0x3871, 0x5e7: 0x3a00, 0x5e8: 0x3886, 0x5e9: 0x3a15,
- 0x5ea: 0x387f, 0x5eb: 0x3a0e, 0x5ec: 0x38be, 0x5ed: 0x3a4d, 0x5ee: 0x3894, 0x5ef: 0x3a23,
- 0x5f0: 0x388d, 0x5f1: 0x3a1c, 0x5f2: 0x38a2, 0x5f3: 0x3a31, 0x5f4: 0x389b, 0x5f5: 0x3a2a,
- 0x5f6: 0x38c5, 0x5f7: 0x3a54, 0x5f8: 0x46b5, 0x5f9: 0x4746, 0x5fa: 0x3000, 0x5fb: 0x330c,
- 0x5fc: 0x2fec, 0x5fd: 0x32f8, 0x5fe: 0x38da, 0x5ff: 0x3a69,
- // Block 0x18, offset 0x600
- 0x600: 0x38d3, 0x601: 0x3a62, 0x602: 0x38e8, 0x603: 0x3a77, 0x604: 0x38e1, 0x605: 0x3a70,
- 0x606: 0x38fd, 0x607: 0x3a8c, 0x608: 0x3091, 0x609: 0x339d, 0x60a: 0x30a5, 0x60b: 0x33b1,
- 0x60c: 0x46e7, 0x60d: 0x4778, 0x60e: 0x3136, 0x60f: 0x3447, 0x610: 0x3920, 0x611: 0x3aaf,
- 0x612: 0x3919, 0x613: 0x3aa8, 0x614: 0x392e, 0x615: 0x3abd, 0x616: 0x3927, 0x617: 0x3ab6,
- 0x618: 0x3989, 0x619: 0x3b18, 0x61a: 0x396d, 0x61b: 0x3afc, 0x61c: 0x3966, 0x61d: 0x3af5,
- 0x61e: 0x397b, 0x61f: 0x3b0a, 0x620: 0x3974, 0x621: 0x3b03, 0x622: 0x3982, 0x623: 0x3b11,
- 0x624: 0x31e5, 0x625: 0x34fb, 0x626: 0x31c7, 0x627: 0x34dd, 0x628: 0x39e4, 0x629: 0x3b73,
- 0x62a: 0x39dd, 0x62b: 0x3b6c, 0x62c: 0x39f2, 0x62d: 0x3b81, 0x62e: 0x39eb, 0x62f: 0x3b7a,
- 0x630: 0x39f9, 0x631: 0x3b88, 0x632: 0x3230, 0x633: 0x354b, 0x634: 0x3258, 0x635: 0x3578,
- 0x636: 0x3253, 0x637: 0x356e, 0x638: 0x323f, 0x639: 0x355a,
- // Block 0x19, offset 0x640
- 0x640: 0x4804, 0x641: 0x480a, 0x642: 0x491e, 0x643: 0x4936, 0x644: 0x4926, 0x645: 0x493e,
- 0x646: 0x492e, 0x647: 0x4946, 0x648: 0x47aa, 0x649: 0x47b0, 0x64a: 0x488e, 0x64b: 0x48a6,
- 0x64c: 0x4896, 0x64d: 0x48ae, 0x64e: 0x489e, 0x64f: 0x48b6, 0x650: 0x4816, 0x651: 0x481c,
- 0x652: 0x3db8, 0x653: 0x3dc8, 0x654: 0x3dc0, 0x655: 0x3dd0,
- 0x658: 0x47b6, 0x659: 0x47bc, 0x65a: 0x3ce8, 0x65b: 0x3cf8, 0x65c: 0x3cf0, 0x65d: 0x3d00,
- 0x660: 0x482e, 0x661: 0x4834, 0x662: 0x494e, 0x663: 0x4966,
- 0x664: 0x4956, 0x665: 0x496e, 0x666: 0x495e, 0x667: 0x4976, 0x668: 0x47c2, 0x669: 0x47c8,
- 0x66a: 0x48be, 0x66b: 0x48d6, 0x66c: 0x48c6, 0x66d: 0x48de, 0x66e: 0x48ce, 0x66f: 0x48e6,
- 0x670: 0x4846, 0x671: 0x484c, 0x672: 0x3e18, 0x673: 0x3e30, 0x674: 0x3e20, 0x675: 0x3e38,
- 0x676: 0x3e28, 0x677: 0x3e40, 0x678: 0x47ce, 0x679: 0x47d4, 0x67a: 0x3d18, 0x67b: 0x3d30,
- 0x67c: 0x3d20, 0x67d: 0x3d38, 0x67e: 0x3d28, 0x67f: 0x3d40,
- // Block 0x1a, offset 0x680
- 0x680: 0x4852, 0x681: 0x4858, 0x682: 0x3e48, 0x683: 0x3e58, 0x684: 0x3e50, 0x685: 0x3e60,
- 0x688: 0x47da, 0x689: 0x47e0, 0x68a: 0x3d48, 0x68b: 0x3d58,
- 0x68c: 0x3d50, 0x68d: 0x3d60, 0x690: 0x4864, 0x691: 0x486a,
- 0x692: 0x3e80, 0x693: 0x3e98, 0x694: 0x3e88, 0x695: 0x3ea0, 0x696: 0x3e90, 0x697: 0x3ea8,
- 0x699: 0x47e6, 0x69b: 0x3d68, 0x69d: 0x3d70,
- 0x69f: 0x3d78, 0x6a0: 0x487c, 0x6a1: 0x4882, 0x6a2: 0x497e, 0x6a3: 0x4996,
- 0x6a4: 0x4986, 0x6a5: 0x499e, 0x6a6: 0x498e, 0x6a7: 0x49a6, 0x6a8: 0x47ec, 0x6a9: 0x47f2,
- 0x6aa: 0x48ee, 0x6ab: 0x4906, 0x6ac: 0x48f6, 0x6ad: 0x490e, 0x6ae: 0x48fe, 0x6af: 0x4916,
- 0x6b0: 0x47f8, 0x6b1: 0x431e, 0x6b2: 0x3691, 0x6b3: 0x4324, 0x6b4: 0x4822, 0x6b5: 0x432a,
- 0x6b6: 0x36a3, 0x6b7: 0x4330, 0x6b8: 0x36c1, 0x6b9: 0x4336, 0x6ba: 0x36d9, 0x6bb: 0x433c,
- 0x6bc: 0x4870, 0x6bd: 0x4342,
- // Block 0x1b, offset 0x6c0
- 0x6c0: 0x3da0, 0x6c1: 0x3da8, 0x6c2: 0x4184, 0x6c3: 0x41a2, 0x6c4: 0x418e, 0x6c5: 0x41ac,
- 0x6c6: 0x4198, 0x6c7: 0x41b6, 0x6c8: 0x3cd8, 0x6c9: 0x3ce0, 0x6ca: 0x40d0, 0x6cb: 0x40ee,
- 0x6cc: 0x40da, 0x6cd: 0x40f8, 0x6ce: 0x40e4, 0x6cf: 0x4102, 0x6d0: 0x3de8, 0x6d1: 0x3df0,
- 0x6d2: 0x41c0, 0x6d3: 0x41de, 0x6d4: 0x41ca, 0x6d5: 0x41e8, 0x6d6: 0x41d4, 0x6d7: 0x41f2,
- 0x6d8: 0x3d08, 0x6d9: 0x3d10, 0x6da: 0x410c, 0x6db: 0x412a, 0x6dc: 0x4116, 0x6dd: 0x4134,
- 0x6de: 0x4120, 0x6df: 0x413e, 0x6e0: 0x3ec0, 0x6e1: 0x3ec8, 0x6e2: 0x41fc, 0x6e3: 0x421a,
- 0x6e4: 0x4206, 0x6e5: 0x4224, 0x6e6: 0x4210, 0x6e7: 0x422e, 0x6e8: 0x3d80, 0x6e9: 0x3d88,
- 0x6ea: 0x4148, 0x6eb: 0x4166, 0x6ec: 0x4152, 0x6ed: 0x4170, 0x6ee: 0x415c, 0x6ef: 0x417a,
- 0x6f0: 0x3685, 0x6f1: 0x367f, 0x6f2: 0x3d90, 0x6f3: 0x368b, 0x6f4: 0x3d98,
- 0x6f6: 0x4810, 0x6f7: 0x3db0, 0x6f8: 0x35f5, 0x6f9: 0x35ef, 0x6fa: 0x35e3, 0x6fb: 0x42ee,
- 0x6fc: 0x35fb, 0x6fd: 0x4287, 0x6fe: 0x01d3, 0x6ff: 0x4287,
- // Block 0x1c, offset 0x700
- 0x700: 0x42a0, 0x701: 0x4482, 0x702: 0x3dd8, 0x703: 0x369d, 0x704: 0x3de0,
- 0x706: 0x483a, 0x707: 0x3df8, 0x708: 0x3601, 0x709: 0x42f4, 0x70a: 0x360d, 0x70b: 0x42fa,
- 0x70c: 0x3619, 0x70d: 0x4489, 0x70e: 0x4490, 0x70f: 0x4497, 0x710: 0x36b5, 0x711: 0x36af,
- 0x712: 0x3e00, 0x713: 0x44e4, 0x716: 0x36bb, 0x717: 0x3e10,
- 0x718: 0x3631, 0x719: 0x362b, 0x71a: 0x361f, 0x71b: 0x4300, 0x71d: 0x449e,
- 0x71e: 0x44a5, 0x71f: 0x44ac, 0x720: 0x36eb, 0x721: 0x36e5, 0x722: 0x3e68, 0x723: 0x44ec,
- 0x724: 0x36cd, 0x725: 0x36d3, 0x726: 0x36f1, 0x727: 0x3e78, 0x728: 0x3661, 0x729: 0x365b,
- 0x72a: 0x364f, 0x72b: 0x430c, 0x72c: 0x3649, 0x72d: 0x4474, 0x72e: 0x447b, 0x72f: 0x0081,
- 0x732: 0x3eb0, 0x733: 0x36f7, 0x734: 0x3eb8,
- 0x736: 0x4888, 0x737: 0x3ed0, 0x738: 0x363d, 0x739: 0x4306, 0x73a: 0x366d, 0x73b: 0x4318,
- 0x73c: 0x3679, 0x73d: 0x425a, 0x73e: 0x428c,
- // Block 0x1d, offset 0x740
- 0x740: 0x1bd8, 0x741: 0x1bdc, 0x742: 0x0047, 0x743: 0x1c54, 0x745: 0x1be8,
- 0x746: 0x1bec, 0x747: 0x00e9, 0x749: 0x1c58, 0x74a: 0x008f, 0x74b: 0x0051,
- 0x74c: 0x0051, 0x74d: 0x0051, 0x74e: 0x0091, 0x74f: 0x00da, 0x750: 0x0053, 0x751: 0x0053,
- 0x752: 0x0059, 0x753: 0x0099, 0x755: 0x005d, 0x756: 0x198d,
- 0x759: 0x0061, 0x75a: 0x0063, 0x75b: 0x0065, 0x75c: 0x0065, 0x75d: 0x0065,
- 0x760: 0x199f, 0x761: 0x1bc8, 0x762: 0x19a8,
- 0x764: 0x0075, 0x766: 0x01b8, 0x768: 0x0075,
- 0x76a: 0x0057, 0x76b: 0x42d2, 0x76c: 0x0045, 0x76d: 0x0047, 0x76f: 0x008b,
- 0x770: 0x004b, 0x771: 0x004d, 0x773: 0x005b, 0x774: 0x009f, 0x775: 0x0215,
- 0x776: 0x0218, 0x777: 0x021b, 0x778: 0x021e, 0x779: 0x0093, 0x77b: 0x1b98,
- 0x77c: 0x01e8, 0x77d: 0x01c1, 0x77e: 0x0179, 0x77f: 0x01a0,
- // Block 0x1e, offset 0x780
- 0x780: 0x0463, 0x785: 0x0049,
- 0x786: 0x0089, 0x787: 0x008b, 0x788: 0x0093, 0x789: 0x0095,
- 0x790: 0x222e, 0x791: 0x223a,
- 0x792: 0x22ee, 0x793: 0x2216, 0x794: 0x229a, 0x795: 0x2222, 0x796: 0x22a0, 0x797: 0x22b8,
- 0x798: 0x22c4, 0x799: 0x2228, 0x79a: 0x22ca, 0x79b: 0x2234, 0x79c: 0x22be, 0x79d: 0x22d0,
- 0x79e: 0x22d6, 0x79f: 0x1cbc, 0x7a0: 0x0053, 0x7a1: 0x195a, 0x7a2: 0x1ba4, 0x7a3: 0x1963,
- 0x7a4: 0x006d, 0x7a5: 0x19ab, 0x7a6: 0x1bd0, 0x7a7: 0x1d48, 0x7a8: 0x1966, 0x7a9: 0x0071,
- 0x7aa: 0x19b7, 0x7ab: 0x1bd4, 0x7ac: 0x0059, 0x7ad: 0x0047, 0x7ae: 0x0049, 0x7af: 0x005b,
- 0x7b0: 0x0093, 0x7b1: 0x19e4, 0x7b2: 0x1c18, 0x7b3: 0x19ed, 0x7b4: 0x00ad, 0x7b5: 0x1a62,
- 0x7b6: 0x1c4c, 0x7b7: 0x1d5c, 0x7b8: 0x19f0, 0x7b9: 0x00b1, 0x7ba: 0x1a65, 0x7bb: 0x1c50,
- 0x7bc: 0x0099, 0x7bd: 0x0087, 0x7be: 0x0089, 0x7bf: 0x009b,
- // Block 0x1f, offset 0x7c0
- 0x7c1: 0x3c06, 0x7c3: 0xa000, 0x7c4: 0x3c0d, 0x7c5: 0xa000,
- 0x7c7: 0x3c14, 0x7c8: 0xa000, 0x7c9: 0x3c1b,
- 0x7cd: 0xa000,
- 0x7e0: 0x2f65, 0x7e1: 0xa000, 0x7e2: 0x3c29,
- 0x7e4: 0xa000, 0x7e5: 0xa000,
- 0x7ed: 0x3c22, 0x7ee: 0x2f60, 0x7ef: 0x2f6a,
- 0x7f0: 0x3c30, 0x7f1: 0x3c37, 0x7f2: 0xa000, 0x7f3: 0xa000, 0x7f4: 0x3c3e, 0x7f5: 0x3c45,
- 0x7f6: 0xa000, 0x7f7: 0xa000, 0x7f8: 0x3c4c, 0x7f9: 0x3c53, 0x7fa: 0xa000, 0x7fb: 0xa000,
- 0x7fc: 0xa000, 0x7fd: 0xa000,
- // Block 0x20, offset 0x800
- 0x800: 0x3c5a, 0x801: 0x3c61, 0x802: 0xa000, 0x803: 0xa000, 0x804: 0x3c76, 0x805: 0x3c7d,
- 0x806: 0xa000, 0x807: 0xa000, 0x808: 0x3c84, 0x809: 0x3c8b,
- 0x811: 0xa000,
- 0x812: 0xa000,
- 0x822: 0xa000,
- 0x828: 0xa000, 0x829: 0xa000,
- 0x82b: 0xa000, 0x82c: 0x3ca0, 0x82d: 0x3ca7, 0x82e: 0x3cae, 0x82f: 0x3cb5,
- 0x832: 0xa000, 0x833: 0xa000, 0x834: 0xa000, 0x835: 0xa000,
- // Block 0x21, offset 0x840
- 0x860: 0x0023, 0x861: 0x0025, 0x862: 0x0027, 0x863: 0x0029,
- 0x864: 0x002b, 0x865: 0x002d, 0x866: 0x002f, 0x867: 0x0031, 0x868: 0x0033, 0x869: 0x1882,
- 0x86a: 0x1885, 0x86b: 0x1888, 0x86c: 0x188b, 0x86d: 0x188e, 0x86e: 0x1891, 0x86f: 0x1894,
- 0x870: 0x1897, 0x871: 0x189a, 0x872: 0x189d, 0x873: 0x18a6, 0x874: 0x1a68, 0x875: 0x1a6c,
- 0x876: 0x1a70, 0x877: 0x1a74, 0x878: 0x1a78, 0x879: 0x1a7c, 0x87a: 0x1a80, 0x87b: 0x1a84,
- 0x87c: 0x1a88, 0x87d: 0x1c80, 0x87e: 0x1c85, 0x87f: 0x1c8a,
- // Block 0x22, offset 0x880
- 0x880: 0x1c8f, 0x881: 0x1c94, 0x882: 0x1c99, 0x883: 0x1c9e, 0x884: 0x1ca3, 0x885: 0x1ca8,
- 0x886: 0x1cad, 0x887: 0x1cb2, 0x888: 0x187f, 0x889: 0x18a3, 0x88a: 0x18c7, 0x88b: 0x18eb,
- 0x88c: 0x190f, 0x88d: 0x1918, 0x88e: 0x191e, 0x88f: 0x1924, 0x890: 0x192a, 0x891: 0x1b60,
- 0x892: 0x1b64, 0x893: 0x1b68, 0x894: 0x1b6c, 0x895: 0x1b70, 0x896: 0x1b74, 0x897: 0x1b78,
- 0x898: 0x1b7c, 0x899: 0x1b80, 0x89a: 0x1b84, 0x89b: 0x1b88, 0x89c: 0x1af4, 0x89d: 0x1af8,
- 0x89e: 0x1afc, 0x89f: 0x1b00, 0x8a0: 0x1b04, 0x8a1: 0x1b08, 0x8a2: 0x1b0c, 0x8a3: 0x1b10,
- 0x8a4: 0x1b14, 0x8a5: 0x1b18, 0x8a6: 0x1b1c, 0x8a7: 0x1b20, 0x8a8: 0x1b24, 0x8a9: 0x1b28,
- 0x8aa: 0x1b2c, 0x8ab: 0x1b30, 0x8ac: 0x1b34, 0x8ad: 0x1b38, 0x8ae: 0x1b3c, 0x8af: 0x1b40,
- 0x8b0: 0x1b44, 0x8b1: 0x1b48, 0x8b2: 0x1b4c, 0x8b3: 0x1b50, 0x8b4: 0x1b54, 0x8b5: 0x1b58,
- 0x8b6: 0x0043, 0x8b7: 0x0045, 0x8b8: 0x0047, 0x8b9: 0x0049, 0x8ba: 0x004b, 0x8bb: 0x004d,
- 0x8bc: 0x004f, 0x8bd: 0x0051, 0x8be: 0x0053, 0x8bf: 0x0055,
- // Block 0x23, offset 0x8c0
- 0x8c0: 0x06bf, 0x8c1: 0x06e3, 0x8c2: 0x06ef, 0x8c3: 0x06ff, 0x8c4: 0x0707, 0x8c5: 0x0713,
- 0x8c6: 0x071b, 0x8c7: 0x0723, 0x8c8: 0x072f, 0x8c9: 0x0783, 0x8ca: 0x079b, 0x8cb: 0x07ab,
- 0x8cc: 0x07bb, 0x8cd: 0x07cb, 0x8ce: 0x07db, 0x8cf: 0x07fb, 0x8d0: 0x07ff, 0x8d1: 0x0803,
- 0x8d2: 0x0837, 0x8d3: 0x085f, 0x8d4: 0x086f, 0x8d5: 0x0877, 0x8d6: 0x087b, 0x8d7: 0x0887,
- 0x8d8: 0x08a3, 0x8d9: 0x08a7, 0x8da: 0x08bf, 0x8db: 0x08c3, 0x8dc: 0x08cb, 0x8dd: 0x08db,
- 0x8de: 0x0977, 0x8df: 0x098b, 0x8e0: 0x09cb, 0x8e1: 0x09df, 0x8e2: 0x09e7, 0x8e3: 0x09eb,
- 0x8e4: 0x09fb, 0x8e5: 0x0a17, 0x8e6: 0x0a43, 0x8e7: 0x0a4f, 0x8e8: 0x0a6f, 0x8e9: 0x0a7b,
- 0x8ea: 0x0a7f, 0x8eb: 0x0a83, 0x8ec: 0x0a9b, 0x8ed: 0x0a9f, 0x8ee: 0x0acb, 0x8ef: 0x0ad7,
- 0x8f0: 0x0adf, 0x8f1: 0x0ae7, 0x8f2: 0x0af7, 0x8f3: 0x0aff, 0x8f4: 0x0b07, 0x8f5: 0x0b33,
- 0x8f6: 0x0b37, 0x8f7: 0x0b3f, 0x8f8: 0x0b43, 0x8f9: 0x0b4b, 0x8fa: 0x0b53, 0x8fb: 0x0b63,
- 0x8fc: 0x0b7f, 0x8fd: 0x0bf7, 0x8fe: 0x0c0b, 0x8ff: 0x0c0f,
- // Block 0x24, offset 0x900
- 0x900: 0x0c8f, 0x901: 0x0c93, 0x902: 0x0ca7, 0x903: 0x0cab, 0x904: 0x0cb3, 0x905: 0x0cbb,
- 0x906: 0x0cc3, 0x907: 0x0ccf, 0x908: 0x0cf7, 0x909: 0x0d07, 0x90a: 0x0d1b, 0x90b: 0x0d8b,
- 0x90c: 0x0d97, 0x90d: 0x0da7, 0x90e: 0x0db3, 0x90f: 0x0dbf, 0x910: 0x0dc7, 0x911: 0x0dcb,
- 0x912: 0x0dcf, 0x913: 0x0dd3, 0x914: 0x0dd7, 0x915: 0x0e8f, 0x916: 0x0ed7, 0x917: 0x0ee3,
- 0x918: 0x0ee7, 0x919: 0x0eeb, 0x91a: 0x0eef, 0x91b: 0x0ef7, 0x91c: 0x0efb, 0x91d: 0x0f0f,
- 0x91e: 0x0f2b, 0x91f: 0x0f33, 0x920: 0x0f73, 0x921: 0x0f77, 0x922: 0x0f7f, 0x923: 0x0f83,
- 0x924: 0x0f8b, 0x925: 0x0f8f, 0x926: 0x0fb3, 0x927: 0x0fb7, 0x928: 0x0fd3, 0x929: 0x0fd7,
- 0x92a: 0x0fdb, 0x92b: 0x0fdf, 0x92c: 0x0ff3, 0x92d: 0x1017, 0x92e: 0x101b, 0x92f: 0x101f,
- 0x930: 0x1043, 0x931: 0x1083, 0x932: 0x1087, 0x933: 0x10a7, 0x934: 0x10b7, 0x935: 0x10bf,
- 0x936: 0x10df, 0x937: 0x1103, 0x938: 0x1147, 0x939: 0x114f, 0x93a: 0x1163, 0x93b: 0x116f,
- 0x93c: 0x1177, 0x93d: 0x117f, 0x93e: 0x1183, 0x93f: 0x1187,
- // Block 0x25, offset 0x940
- 0x940: 0x119f, 0x941: 0x11a3, 0x942: 0x11bf, 0x943: 0x11c7, 0x944: 0x11cf, 0x945: 0x11d3,
- 0x946: 0x11df, 0x947: 0x11e7, 0x948: 0x11eb, 0x949: 0x11ef, 0x94a: 0x11f7, 0x94b: 0x11fb,
- 0x94c: 0x129b, 0x94d: 0x12af, 0x94e: 0x12e3, 0x94f: 0x12e7, 0x950: 0x12ef, 0x951: 0x131b,
- 0x952: 0x1323, 0x953: 0x132b, 0x954: 0x1333, 0x955: 0x136f, 0x956: 0x1373, 0x957: 0x137b,
- 0x958: 0x137f, 0x959: 0x1383, 0x95a: 0x13af, 0x95b: 0x13b3, 0x95c: 0x13bb, 0x95d: 0x13cf,
- 0x95e: 0x13d3, 0x95f: 0x13ef, 0x960: 0x13f7, 0x961: 0x13fb, 0x962: 0x141f, 0x963: 0x143f,
- 0x964: 0x1453, 0x965: 0x1457, 0x966: 0x145f, 0x967: 0x148b, 0x968: 0x148f, 0x969: 0x149f,
- 0x96a: 0x14c3, 0x96b: 0x14cf, 0x96c: 0x14df, 0x96d: 0x14f7, 0x96e: 0x14ff, 0x96f: 0x1503,
- 0x970: 0x1507, 0x971: 0x150b, 0x972: 0x1517, 0x973: 0x151b, 0x974: 0x1523, 0x975: 0x153f,
- 0x976: 0x1543, 0x977: 0x1547, 0x978: 0x155f, 0x979: 0x1563, 0x97a: 0x156b, 0x97b: 0x157f,
- 0x97c: 0x1583, 0x97d: 0x1587, 0x97e: 0x158f, 0x97f: 0x1593,
- // Block 0x26, offset 0x980
- 0x986: 0xa000, 0x98b: 0xa000,
- 0x98c: 0x3f08, 0x98d: 0xa000, 0x98e: 0x3f10, 0x98f: 0xa000, 0x990: 0x3f18, 0x991: 0xa000,
- 0x992: 0x3f20, 0x993: 0xa000, 0x994: 0x3f28, 0x995: 0xa000, 0x996: 0x3f30, 0x997: 0xa000,
- 0x998: 0x3f38, 0x999: 0xa000, 0x99a: 0x3f40, 0x99b: 0xa000, 0x99c: 0x3f48, 0x99d: 0xa000,
- 0x99e: 0x3f50, 0x99f: 0xa000, 0x9a0: 0x3f58, 0x9a1: 0xa000, 0x9a2: 0x3f60,
- 0x9a4: 0xa000, 0x9a5: 0x3f68, 0x9a6: 0xa000, 0x9a7: 0x3f70, 0x9a8: 0xa000, 0x9a9: 0x3f78,
- 0x9af: 0xa000,
- 0x9b0: 0x3f80, 0x9b1: 0x3f88, 0x9b2: 0xa000, 0x9b3: 0x3f90, 0x9b4: 0x3f98, 0x9b5: 0xa000,
- 0x9b6: 0x3fa0, 0x9b7: 0x3fa8, 0x9b8: 0xa000, 0x9b9: 0x3fb0, 0x9ba: 0x3fb8, 0x9bb: 0xa000,
- 0x9bc: 0x3fc0, 0x9bd: 0x3fc8,
- // Block 0x27, offset 0x9c0
- 0x9d4: 0x3f00,
- 0x9d9: 0x9903, 0x9da: 0x9903, 0x9db: 0x42dc, 0x9dc: 0x42e2, 0x9dd: 0xa000,
- 0x9de: 0x3fd0, 0x9df: 0x26b4,
- 0x9e6: 0xa000,
- 0x9eb: 0xa000, 0x9ec: 0x3fe0, 0x9ed: 0xa000, 0x9ee: 0x3fe8, 0x9ef: 0xa000,
- 0x9f0: 0x3ff0, 0x9f1: 0xa000, 0x9f2: 0x3ff8, 0x9f3: 0xa000, 0x9f4: 0x4000, 0x9f5: 0xa000,
- 0x9f6: 0x4008, 0x9f7: 0xa000, 0x9f8: 0x4010, 0x9f9: 0xa000, 0x9fa: 0x4018, 0x9fb: 0xa000,
- 0x9fc: 0x4020, 0x9fd: 0xa000, 0x9fe: 0x4028, 0x9ff: 0xa000,
- // Block 0x28, offset 0xa00
- 0xa00: 0x4030, 0xa01: 0xa000, 0xa02: 0x4038, 0xa04: 0xa000, 0xa05: 0x4040,
- 0xa06: 0xa000, 0xa07: 0x4048, 0xa08: 0xa000, 0xa09: 0x4050,
- 0xa0f: 0xa000, 0xa10: 0x4058, 0xa11: 0x4060,
- 0xa12: 0xa000, 0xa13: 0x4068, 0xa14: 0x4070, 0xa15: 0xa000, 0xa16: 0x4078, 0xa17: 0x4080,
- 0xa18: 0xa000, 0xa19: 0x4088, 0xa1a: 0x4090, 0xa1b: 0xa000, 0xa1c: 0x4098, 0xa1d: 0x40a0,
- 0xa2f: 0xa000,
- 0xa30: 0xa000, 0xa31: 0xa000, 0xa32: 0xa000, 0xa34: 0x3fd8,
- 0xa37: 0x40a8, 0xa38: 0x40b0, 0xa39: 0x40b8, 0xa3a: 0x40c0,
- 0xa3d: 0xa000, 0xa3e: 0x40c8, 0xa3f: 0x26c9,
- // Block 0x29, offset 0xa40
- 0xa40: 0x0367, 0xa41: 0x032b, 0xa42: 0x032f, 0xa43: 0x0333, 0xa44: 0x037b, 0xa45: 0x0337,
- 0xa46: 0x033b, 0xa47: 0x033f, 0xa48: 0x0343, 0xa49: 0x0347, 0xa4a: 0x034b, 0xa4b: 0x034f,
- 0xa4c: 0x0353, 0xa4d: 0x0357, 0xa4e: 0x035b, 0xa4f: 0x49bd, 0xa50: 0x49c3, 0xa51: 0x49c9,
- 0xa52: 0x49cf, 0xa53: 0x49d5, 0xa54: 0x49db, 0xa55: 0x49e1, 0xa56: 0x49e7, 0xa57: 0x49ed,
- 0xa58: 0x49f3, 0xa59: 0x49f9, 0xa5a: 0x49ff, 0xa5b: 0x4a05, 0xa5c: 0x4a0b, 0xa5d: 0x4a11,
- 0xa5e: 0x4a17, 0xa5f: 0x4a1d, 0xa60: 0x4a23, 0xa61: 0x4a29, 0xa62: 0x4a2f, 0xa63: 0x4a35,
- 0xa64: 0x03c3, 0xa65: 0x035f, 0xa66: 0x0363, 0xa67: 0x03e7, 0xa68: 0x03eb, 0xa69: 0x03ef,
- 0xa6a: 0x03f3, 0xa6b: 0x03f7, 0xa6c: 0x03fb, 0xa6d: 0x03ff, 0xa6e: 0x036b, 0xa6f: 0x0403,
- 0xa70: 0x0407, 0xa71: 0x036f, 0xa72: 0x0373, 0xa73: 0x0377, 0xa74: 0x037f, 0xa75: 0x0383,
- 0xa76: 0x0387, 0xa77: 0x038b, 0xa78: 0x038f, 0xa79: 0x0393, 0xa7a: 0x0397, 0xa7b: 0x039b,
- 0xa7c: 0x039f, 0xa7d: 0x03a3, 0xa7e: 0x03a7, 0xa7f: 0x03ab,
- // Block 0x2a, offset 0xa80
- 0xa80: 0x03af, 0xa81: 0x03b3, 0xa82: 0x040b, 0xa83: 0x040f, 0xa84: 0x03b7, 0xa85: 0x03bb,
- 0xa86: 0x03bf, 0xa87: 0x03c7, 0xa88: 0x03cb, 0xa89: 0x03cf, 0xa8a: 0x03d3, 0xa8b: 0x03d7,
- 0xa8c: 0x03db, 0xa8d: 0x03df, 0xa8e: 0x03e3,
- 0xa92: 0x06bf, 0xa93: 0x071b, 0xa94: 0x06cb, 0xa95: 0x097b, 0xa96: 0x06cf, 0xa97: 0x06e7,
- 0xa98: 0x06d3, 0xa99: 0x0f93, 0xa9a: 0x0707, 0xa9b: 0x06db, 0xa9c: 0x06c3, 0xa9d: 0x09ff,
- 0xa9e: 0x098f, 0xa9f: 0x072f,
- // Block 0x2b, offset 0xac0
- 0xac0: 0x2054, 0xac1: 0x205a, 0xac2: 0x2060, 0xac3: 0x2066, 0xac4: 0x206c, 0xac5: 0x2072,
- 0xac6: 0x2078, 0xac7: 0x207e, 0xac8: 0x2084, 0xac9: 0x208a, 0xaca: 0x2090, 0xacb: 0x2096,
- 0xacc: 0x209c, 0xacd: 0x20a2, 0xace: 0x2726, 0xacf: 0x272f, 0xad0: 0x2738, 0xad1: 0x2741,
- 0xad2: 0x274a, 0xad3: 0x2753, 0xad4: 0x275c, 0xad5: 0x2765, 0xad6: 0x276e, 0xad7: 0x2780,
- 0xad8: 0x2789, 0xad9: 0x2792, 0xada: 0x279b, 0xadb: 0x27a4, 0xadc: 0x2777, 0xadd: 0x2bac,
- 0xade: 0x2aed, 0xae0: 0x20a8, 0xae1: 0x20c0, 0xae2: 0x20b4, 0xae3: 0x2108,
- 0xae4: 0x20c6, 0xae5: 0x20e4, 0xae6: 0x20ae, 0xae7: 0x20de, 0xae8: 0x20ba, 0xae9: 0x20f0,
- 0xaea: 0x2120, 0xaeb: 0x213e, 0xaec: 0x2138, 0xaed: 0x212c, 0xaee: 0x217a, 0xaef: 0x210e,
- 0xaf0: 0x211a, 0xaf1: 0x2132, 0xaf2: 0x2126, 0xaf3: 0x2150, 0xaf4: 0x20fc, 0xaf5: 0x2144,
- 0xaf6: 0x216e, 0xaf7: 0x2156, 0xaf8: 0x20ea, 0xaf9: 0x20cc, 0xafa: 0x2102, 0xafb: 0x2114,
- 0xafc: 0x214a, 0xafd: 0x20d2, 0xafe: 0x2174, 0xaff: 0x20f6,
- // Block 0x2c, offset 0xb00
- 0xb00: 0x215c, 0xb01: 0x20d8, 0xb02: 0x2162, 0xb03: 0x2168, 0xb04: 0x092f, 0xb05: 0x0b03,
- 0xb06: 0x0ca7, 0xb07: 0x10c7,
- 0xb10: 0x1bc4, 0xb11: 0x18a9,
- 0xb12: 0x18ac, 0xb13: 0x18af, 0xb14: 0x18b2, 0xb15: 0x18b5, 0xb16: 0x18b8, 0xb17: 0x18bb,
- 0xb18: 0x18be, 0xb19: 0x18c1, 0xb1a: 0x18ca, 0xb1b: 0x18cd, 0xb1c: 0x18d0, 0xb1d: 0x18d3,
- 0xb1e: 0x18d6, 0xb1f: 0x18d9, 0xb20: 0x0313, 0xb21: 0x031b, 0xb22: 0x031f, 0xb23: 0x0327,
- 0xb24: 0x032b, 0xb25: 0x032f, 0xb26: 0x0337, 0xb27: 0x033f, 0xb28: 0x0343, 0xb29: 0x034b,
- 0xb2a: 0x034f, 0xb2b: 0x0353, 0xb2c: 0x0357, 0xb2d: 0x035b, 0xb2e: 0x2e18, 0xb2f: 0x2e20,
- 0xb30: 0x2e28, 0xb31: 0x2e30, 0xb32: 0x2e38, 0xb33: 0x2e40, 0xb34: 0x2e48, 0xb35: 0x2e50,
- 0xb36: 0x2e60, 0xb37: 0x2e68, 0xb38: 0x2e70, 0xb39: 0x2e78, 0xb3a: 0x2e80, 0xb3b: 0x2e88,
- 0xb3c: 0x2ed3, 0xb3d: 0x2e9b, 0xb3e: 0x2e58,
- // Block 0x2d, offset 0xb40
- 0xb40: 0x06bf, 0xb41: 0x071b, 0xb42: 0x06cb, 0xb43: 0x097b, 0xb44: 0x071f, 0xb45: 0x07af,
- 0xb46: 0x06c7, 0xb47: 0x07ab, 0xb48: 0x070b, 0xb49: 0x0887, 0xb4a: 0x0d07, 0xb4b: 0x0e8f,
- 0xb4c: 0x0dd7, 0xb4d: 0x0d1b, 0xb4e: 0x145f, 0xb4f: 0x098b, 0xb50: 0x0ccf, 0xb51: 0x0d4b,
- 0xb52: 0x0d0b, 0xb53: 0x104b, 0xb54: 0x08fb, 0xb55: 0x0f03, 0xb56: 0x1387, 0xb57: 0x105f,
- 0xb58: 0x0843, 0xb59: 0x108f, 0xb5a: 0x0f9b, 0xb5b: 0x0a17, 0xb5c: 0x140f, 0xb5d: 0x077f,
- 0xb5e: 0x08ab, 0xb5f: 0x0df7, 0xb60: 0x1527, 0xb61: 0x0743, 0xb62: 0x07d3, 0xb63: 0x0d9b,
- 0xb64: 0x06cf, 0xb65: 0x06e7, 0xb66: 0x06d3, 0xb67: 0x0adb, 0xb68: 0x08ef, 0xb69: 0x087f,
- 0xb6a: 0x0a57, 0xb6b: 0x0a4b, 0xb6c: 0x0feb, 0xb6d: 0x073f, 0xb6e: 0x139b, 0xb6f: 0x089b,
- 0xb70: 0x09f3, 0xb71: 0x18dc, 0xb72: 0x18df, 0xb73: 0x18e2, 0xb74: 0x18e5, 0xb75: 0x18ee,
- 0xb76: 0x18f1, 0xb77: 0x18f4, 0xb78: 0x18f7, 0xb79: 0x18fa, 0xb7a: 0x18fd, 0xb7b: 0x1900,
- 0xb7c: 0x1903, 0xb7d: 0x1906, 0xb7e: 0x1909, 0xb7f: 0x1912,
- // Block 0x2e, offset 0xb80
- 0xb80: 0x1cc6, 0xb81: 0x1cd5, 0xb82: 0x1ce4, 0xb83: 0x1cf3, 0xb84: 0x1d02, 0xb85: 0x1d11,
- 0xb86: 0x1d20, 0xb87: 0x1d2f, 0xb88: 0x1d3e, 0xb89: 0x218c, 0xb8a: 0x219e, 0xb8b: 0x21b0,
- 0xb8c: 0x1954, 0xb8d: 0x1c04, 0xb8e: 0x19d2, 0xb8f: 0x1ba8, 0xb90: 0x04cb, 0xb91: 0x04d3,
- 0xb92: 0x04db, 0xb93: 0x04e3, 0xb94: 0x04eb, 0xb95: 0x04ef, 0xb96: 0x04f3, 0xb97: 0x04f7,
- 0xb98: 0x04fb, 0xb99: 0x04ff, 0xb9a: 0x0503, 0xb9b: 0x0507, 0xb9c: 0x050b, 0xb9d: 0x050f,
- 0xb9e: 0x0513, 0xb9f: 0x0517, 0xba0: 0x051b, 0xba1: 0x0523, 0xba2: 0x0527, 0xba3: 0x052b,
- 0xba4: 0x052f, 0xba5: 0x0533, 0xba6: 0x0537, 0xba7: 0x053b, 0xba8: 0x053f, 0xba9: 0x0543,
- 0xbaa: 0x0547, 0xbab: 0x054b, 0xbac: 0x054f, 0xbad: 0x0553, 0xbae: 0x0557, 0xbaf: 0x055b,
- 0xbb0: 0x055f, 0xbb1: 0x0563, 0xbb2: 0x0567, 0xbb3: 0x056f, 0xbb4: 0x0577, 0xbb5: 0x057f,
- 0xbb6: 0x0583, 0xbb7: 0x0587, 0xbb8: 0x058b, 0xbb9: 0x058f, 0xbba: 0x0593, 0xbbb: 0x0597,
- 0xbbc: 0x059b, 0xbbd: 0x059f, 0xbbe: 0x05a3,
- // Block 0x2f, offset 0xbc0
- 0xbc0: 0x2b0c, 0xbc1: 0x29a8, 0xbc2: 0x2b1c, 0xbc3: 0x2880, 0xbc4: 0x2ee4, 0xbc5: 0x288a,
- 0xbc6: 0x2894, 0xbc7: 0x2f28, 0xbc8: 0x29b5, 0xbc9: 0x289e, 0xbca: 0x28a8, 0xbcb: 0x28b2,
- 0xbcc: 0x29dc, 0xbcd: 0x29e9, 0xbce: 0x29c2, 0xbcf: 0x29cf, 0xbd0: 0x2ea9, 0xbd1: 0x29f6,
- 0xbd2: 0x2a03, 0xbd3: 0x2bbe, 0xbd4: 0x26bb, 0xbd5: 0x2bd1, 0xbd6: 0x2be4, 0xbd7: 0x2b2c,
- 0xbd8: 0x2a10, 0xbd9: 0x2bf7, 0xbda: 0x2c0a, 0xbdb: 0x2a1d, 0xbdc: 0x28bc, 0xbdd: 0x28c6,
- 0xbde: 0x2eb7, 0xbdf: 0x2a2a, 0xbe0: 0x2b3c, 0xbe1: 0x2ef5, 0xbe2: 0x28d0, 0xbe3: 0x28da,
- 0xbe4: 0x2a37, 0xbe5: 0x28e4, 0xbe6: 0x28ee, 0xbe7: 0x26d0, 0xbe8: 0x26d7, 0xbe9: 0x28f8,
- 0xbea: 0x2902, 0xbeb: 0x2c1d, 0xbec: 0x2a44, 0xbed: 0x2b4c, 0xbee: 0x2c30, 0xbef: 0x2a51,
- 0xbf0: 0x2916, 0xbf1: 0x290c, 0xbf2: 0x2f3c, 0xbf3: 0x2a5e, 0xbf4: 0x2c43, 0xbf5: 0x2920,
- 0xbf6: 0x2b5c, 0xbf7: 0x292a, 0xbf8: 0x2a78, 0xbf9: 0x2934, 0xbfa: 0x2a85, 0xbfb: 0x2f06,
- 0xbfc: 0x2a6b, 0xbfd: 0x2b6c, 0xbfe: 0x2a92, 0xbff: 0x26de,
- // Block 0x30, offset 0xc00
- 0xc00: 0x2f17, 0xc01: 0x293e, 0xc02: 0x2948, 0xc03: 0x2a9f, 0xc04: 0x2952, 0xc05: 0x295c,
- 0xc06: 0x2966, 0xc07: 0x2b7c, 0xc08: 0x2aac, 0xc09: 0x26e5, 0xc0a: 0x2c56, 0xc0b: 0x2e90,
- 0xc0c: 0x2b8c, 0xc0d: 0x2ab9, 0xc0e: 0x2ec5, 0xc0f: 0x2970, 0xc10: 0x297a, 0xc11: 0x2ac6,
- 0xc12: 0x26ec, 0xc13: 0x2ad3, 0xc14: 0x2b9c, 0xc15: 0x26f3, 0xc16: 0x2c69, 0xc17: 0x2984,
- 0xc18: 0x1cb7, 0xc19: 0x1ccb, 0xc1a: 0x1cda, 0xc1b: 0x1ce9, 0xc1c: 0x1cf8, 0xc1d: 0x1d07,
- 0xc1e: 0x1d16, 0xc1f: 0x1d25, 0xc20: 0x1d34, 0xc21: 0x1d43, 0xc22: 0x2192, 0xc23: 0x21a4,
- 0xc24: 0x21b6, 0xc25: 0x21c2, 0xc26: 0x21ce, 0xc27: 0x21da, 0xc28: 0x21e6, 0xc29: 0x21f2,
- 0xc2a: 0x21fe, 0xc2b: 0x220a, 0xc2c: 0x2246, 0xc2d: 0x2252, 0xc2e: 0x225e, 0xc2f: 0x226a,
- 0xc30: 0x2276, 0xc31: 0x1c14, 0xc32: 0x19c6, 0xc33: 0x1936, 0xc34: 0x1be4, 0xc35: 0x1a47,
- 0xc36: 0x1a56, 0xc37: 0x19cc, 0xc38: 0x1bfc, 0xc39: 0x1c00, 0xc3a: 0x1960, 0xc3b: 0x2701,
- 0xc3c: 0x270f, 0xc3d: 0x26fa, 0xc3e: 0x2708, 0xc3f: 0x2ae0,
- // Block 0x31, offset 0xc40
- 0xc40: 0x1a4a, 0xc41: 0x1a32, 0xc42: 0x1c60, 0xc43: 0x1a1a, 0xc44: 0x19f3, 0xc45: 0x1969,
- 0xc46: 0x1978, 0xc47: 0x1948, 0xc48: 0x1bf0, 0xc49: 0x1d52, 0xc4a: 0x1a4d, 0xc4b: 0x1a35,
- 0xc4c: 0x1c64, 0xc4d: 0x1c70, 0xc4e: 0x1a26, 0xc4f: 0x19fc, 0xc50: 0x1957, 0xc51: 0x1c1c,
- 0xc52: 0x1bb0, 0xc53: 0x1b9c, 0xc54: 0x1bcc, 0xc55: 0x1c74, 0xc56: 0x1a29, 0xc57: 0x19c9,
- 0xc58: 0x19ff, 0xc59: 0x19de, 0xc5a: 0x1a41, 0xc5b: 0x1c78, 0xc5c: 0x1a2c, 0xc5d: 0x19c0,
- 0xc5e: 0x1a02, 0xc5f: 0x1c3c, 0xc60: 0x1bf4, 0xc61: 0x1a14, 0xc62: 0x1c24, 0xc63: 0x1c40,
- 0xc64: 0x1bf8, 0xc65: 0x1a17, 0xc66: 0x1c28, 0xc67: 0x22e8, 0xc68: 0x22fc, 0xc69: 0x1996,
- 0xc6a: 0x1c20, 0xc6b: 0x1bb4, 0xc6c: 0x1ba0, 0xc6d: 0x1c48, 0xc6e: 0x2716, 0xc6f: 0x27ad,
- 0xc70: 0x1a59, 0xc71: 0x1a44, 0xc72: 0x1c7c, 0xc73: 0x1a2f, 0xc74: 0x1a50, 0xc75: 0x1a38,
- 0xc76: 0x1c68, 0xc77: 0x1a1d, 0xc78: 0x19f6, 0xc79: 0x1981, 0xc7a: 0x1a53, 0xc7b: 0x1a3b,
- 0xc7c: 0x1c6c, 0xc7d: 0x1a20, 0xc7e: 0x19f9, 0xc7f: 0x1984,
- // Block 0x32, offset 0xc80
- 0xc80: 0x1c2c, 0xc81: 0x1bb8, 0xc82: 0x1d4d, 0xc83: 0x1939, 0xc84: 0x19ba, 0xc85: 0x19bd,
- 0xc86: 0x22f5, 0xc87: 0x1b94, 0xc88: 0x19c3, 0xc89: 0x194b, 0xc8a: 0x19e1, 0xc8b: 0x194e,
- 0xc8c: 0x19ea, 0xc8d: 0x196c, 0xc8e: 0x196f, 0xc8f: 0x1a05, 0xc90: 0x1a0b, 0xc91: 0x1a0e,
- 0xc92: 0x1c30, 0xc93: 0x1a11, 0xc94: 0x1a23, 0xc95: 0x1c38, 0xc96: 0x1c44, 0xc97: 0x1990,
- 0xc98: 0x1d57, 0xc99: 0x1bbc, 0xc9a: 0x1993, 0xc9b: 0x1a5c, 0xc9c: 0x19a5, 0xc9d: 0x19b4,
- 0xc9e: 0x22e2, 0xc9f: 0x22dc, 0xca0: 0x1cc1, 0xca1: 0x1cd0, 0xca2: 0x1cdf, 0xca3: 0x1cee,
- 0xca4: 0x1cfd, 0xca5: 0x1d0c, 0xca6: 0x1d1b, 0xca7: 0x1d2a, 0xca8: 0x1d39, 0xca9: 0x2186,
- 0xcaa: 0x2198, 0xcab: 0x21aa, 0xcac: 0x21bc, 0xcad: 0x21c8, 0xcae: 0x21d4, 0xcaf: 0x21e0,
- 0xcb0: 0x21ec, 0xcb1: 0x21f8, 0xcb2: 0x2204, 0xcb3: 0x2240, 0xcb4: 0x224c, 0xcb5: 0x2258,
- 0xcb6: 0x2264, 0xcb7: 0x2270, 0xcb8: 0x227c, 0xcb9: 0x2282, 0xcba: 0x2288, 0xcbb: 0x228e,
- 0xcbc: 0x2294, 0xcbd: 0x22a6, 0xcbe: 0x22ac, 0xcbf: 0x1c10,
- // Block 0x33, offset 0xcc0
- 0xcc0: 0x1377, 0xcc1: 0x0cfb, 0xcc2: 0x13d3, 0xcc3: 0x139f, 0xcc4: 0x0e57, 0xcc5: 0x06eb,
- 0xcc6: 0x08df, 0xcc7: 0x162b, 0xcc8: 0x162b, 0xcc9: 0x0a0b, 0xcca: 0x145f, 0xccb: 0x0943,
- 0xccc: 0x0a07, 0xccd: 0x0bef, 0xcce: 0x0fcf, 0xccf: 0x115f, 0xcd0: 0x1297, 0xcd1: 0x12d3,
- 0xcd2: 0x1307, 0xcd3: 0x141b, 0xcd4: 0x0d73, 0xcd5: 0x0dff, 0xcd6: 0x0eab, 0xcd7: 0x0f43,
- 0xcd8: 0x125f, 0xcd9: 0x1447, 0xcda: 0x1573, 0xcdb: 0x070f, 0xcdc: 0x08b3, 0xcdd: 0x0d87,
- 0xcde: 0x0ecf, 0xcdf: 0x1293, 0xce0: 0x15c3, 0xce1: 0x0ab3, 0xce2: 0x0e77, 0xce3: 0x1283,
- 0xce4: 0x1317, 0xce5: 0x0c23, 0xce6: 0x11bb, 0xce7: 0x12df, 0xce8: 0x0b1f, 0xce9: 0x0d0f,
- 0xcea: 0x0e17, 0xceb: 0x0f1b, 0xcec: 0x1427, 0xced: 0x074f, 0xcee: 0x07e7, 0xcef: 0x0853,
- 0xcf0: 0x0c8b, 0xcf1: 0x0d7f, 0xcf2: 0x0ecb, 0xcf3: 0x0fef, 0xcf4: 0x1177, 0xcf5: 0x128b,
- 0xcf6: 0x12a3, 0xcf7: 0x13c7, 0xcf8: 0x14ef, 0xcf9: 0x15a3, 0xcfa: 0x15bf, 0xcfb: 0x102b,
- 0xcfc: 0x106b, 0xcfd: 0x1123, 0xcfe: 0x1243, 0xcff: 0x147b,
- // Block 0x34, offset 0xd00
- 0xd00: 0x15cb, 0xd01: 0x134b, 0xd02: 0x09c7, 0xd03: 0x0b3b, 0xd04: 0x10db, 0xd05: 0x119b,
- 0xd06: 0x0eff, 0xd07: 0x1033, 0xd08: 0x1397, 0xd09: 0x14e7, 0xd0a: 0x09c3, 0xd0b: 0x0a8f,
- 0xd0c: 0x0d77, 0xd0d: 0x0e2b, 0xd0e: 0x0e5f, 0xd0f: 0x1113, 0xd10: 0x113b, 0xd11: 0x14a7,
- 0xd12: 0x084f, 0xd13: 0x11a7, 0xd14: 0x07f3, 0xd15: 0x07ef, 0xd16: 0x1097, 0xd17: 0x1127,
- 0xd18: 0x125b, 0xd19: 0x14af, 0xd1a: 0x1367, 0xd1b: 0x0c27, 0xd1c: 0x0d73, 0xd1d: 0x1357,
- 0xd1e: 0x06f7, 0xd1f: 0x0a63, 0xd20: 0x0b93, 0xd21: 0x0f2f, 0xd22: 0x0faf, 0xd23: 0x0873,
- 0xd24: 0x103b, 0xd25: 0x075f, 0xd26: 0x0b77, 0xd27: 0x06d7, 0xd28: 0x0deb, 0xd29: 0x0ca3,
- 0xd2a: 0x110f, 0xd2b: 0x08c7, 0xd2c: 0x09b3, 0xd2d: 0x0ffb, 0xd2e: 0x1263, 0xd2f: 0x133b,
- 0xd30: 0x0db7, 0xd31: 0x13f7, 0xd32: 0x0de3, 0xd33: 0x0c37, 0xd34: 0x121b, 0xd35: 0x0c57,
- 0xd36: 0x0fab, 0xd37: 0x072b, 0xd38: 0x07a7, 0xd39: 0x07eb, 0xd3a: 0x0d53, 0xd3b: 0x10fb,
- 0xd3c: 0x11f3, 0xd3d: 0x1347, 0xd3e: 0x145b, 0xd3f: 0x085b,
- // Block 0x35, offset 0xd40
- 0xd40: 0x090f, 0xd41: 0x0a17, 0xd42: 0x0b2f, 0xd43: 0x0cbf, 0xd44: 0x0e7b, 0xd45: 0x103f,
- 0xd46: 0x1497, 0xd47: 0x157b, 0xd48: 0x15cf, 0xd49: 0x15e7, 0xd4a: 0x0837, 0xd4b: 0x0cf3,
- 0xd4c: 0x0da3, 0xd4d: 0x13eb, 0xd4e: 0x0afb, 0xd4f: 0x0bd7, 0xd50: 0x0bf3, 0xd51: 0x0c83,
- 0xd52: 0x0e6b, 0xd53: 0x0eb7, 0xd54: 0x0f67, 0xd55: 0x108b, 0xd56: 0x112f, 0xd57: 0x1193,
- 0xd58: 0x13db, 0xd59: 0x126b, 0xd5a: 0x1403, 0xd5b: 0x147f, 0xd5c: 0x080f, 0xd5d: 0x083b,
- 0xd5e: 0x0923, 0xd5f: 0x0ea7, 0xd60: 0x12f3, 0xd61: 0x133b, 0xd62: 0x0b1b, 0xd63: 0x0b8b,
- 0xd64: 0x0c4f, 0xd65: 0x0daf, 0xd66: 0x10d7, 0xd67: 0x0f23, 0xd68: 0x073b, 0xd69: 0x097f,
- 0xd6a: 0x0a63, 0xd6b: 0x0ac7, 0xd6c: 0x0b97, 0xd6d: 0x0f3f, 0xd6e: 0x0f5b, 0xd6f: 0x116b,
- 0xd70: 0x118b, 0xd71: 0x1463, 0xd72: 0x14e3, 0xd73: 0x14f3, 0xd74: 0x152f, 0xd75: 0x0753,
- 0xd76: 0x107f, 0xd77: 0x144f, 0xd78: 0x14cb, 0xd79: 0x0baf, 0xd7a: 0x0717, 0xd7b: 0x0777,
- 0xd7c: 0x0a67, 0xd7d: 0x0a87, 0xd7e: 0x0caf, 0xd7f: 0x0d73,
- // Block 0x36, offset 0xd80
- 0xd80: 0x0ec3, 0xd81: 0x0fcb, 0xd82: 0x1277, 0xd83: 0x1417, 0xd84: 0x1623, 0xd85: 0x0ce3,
- 0xd86: 0x14a3, 0xd87: 0x0833, 0xd88: 0x0d2f, 0xd89: 0x0d3b, 0xd8a: 0x0e0f, 0xd8b: 0x0e47,
- 0xd8c: 0x0f4b, 0xd8d: 0x0fa7, 0xd8e: 0x1027, 0xd8f: 0x110b, 0xd90: 0x153b, 0xd91: 0x07af,
- 0xd92: 0x0c03, 0xd93: 0x14b3, 0xd94: 0x0767, 0xd95: 0x0aab, 0xd96: 0x0e2f, 0xd97: 0x13df,
- 0xd98: 0x0b67, 0xd99: 0x0bb7, 0xd9a: 0x0d43, 0xd9b: 0x0f2f, 0xd9c: 0x14bb, 0xd9d: 0x0817,
- 0xd9e: 0x08ff, 0xd9f: 0x0a97, 0xda0: 0x0cd3, 0xda1: 0x0d1f, 0xda2: 0x0d5f, 0xda3: 0x0df3,
- 0xda4: 0x0f47, 0xda5: 0x0fbb, 0xda6: 0x1157, 0xda7: 0x12f7, 0xda8: 0x1303, 0xda9: 0x1457,
- 0xdaa: 0x14d7, 0xdab: 0x0883, 0xdac: 0x0e4b, 0xdad: 0x0903, 0xdae: 0x0ec7, 0xdaf: 0x0f6b,
- 0xdb0: 0x1287, 0xdb1: 0x14bf, 0xdb2: 0x15ab, 0xdb3: 0x15d3, 0xdb4: 0x0d37, 0xdb5: 0x0e27,
- 0xdb6: 0x11c3, 0xdb7: 0x10b7, 0xdb8: 0x10c3, 0xdb9: 0x10e7, 0xdba: 0x0f17, 0xdbb: 0x0e9f,
- 0xdbc: 0x1363, 0xdbd: 0x0733, 0xdbe: 0x122b, 0xdbf: 0x081b,
- // Block 0x37, offset 0xdc0
- 0xdc0: 0x080b, 0xdc1: 0x0b0b, 0xdc2: 0x0c2b, 0xdc3: 0x10f3, 0xdc4: 0x0a53, 0xdc5: 0x0e03,
- 0xdc6: 0x0cef, 0xdc7: 0x13e7, 0xdc8: 0x12e7, 0xdc9: 0x14ab, 0xdca: 0x1323, 0xdcb: 0x0b27,
- 0xdcc: 0x0787, 0xdcd: 0x095b, 0xdd0: 0x09af,
- 0xdd2: 0x0cdf, 0xdd5: 0x07f7, 0xdd6: 0x0f1f, 0xdd7: 0x0fe3,
- 0xdd8: 0x1047, 0xdd9: 0x1063, 0xdda: 0x1067, 0xddb: 0x107b, 0xddc: 0x14fb, 0xddd: 0x10eb,
- 0xdde: 0x116f, 0xde0: 0x128f, 0xde2: 0x1353,
- 0xde5: 0x1407, 0xde6: 0x1433,
- 0xdea: 0x154f, 0xdeb: 0x1553, 0xdec: 0x1557, 0xded: 0x15bb, 0xdee: 0x142b, 0xdef: 0x14c7,
- 0xdf0: 0x0757, 0xdf1: 0x077b, 0xdf2: 0x078f, 0xdf3: 0x084b, 0xdf4: 0x0857, 0xdf5: 0x0897,
- 0xdf6: 0x094b, 0xdf7: 0x0967, 0xdf8: 0x096f, 0xdf9: 0x09ab, 0xdfa: 0x09b7, 0xdfb: 0x0a93,
- 0xdfc: 0x0a9b, 0xdfd: 0x0ba3, 0xdfe: 0x0bcb, 0xdff: 0x0bd3,
- // Block 0x38, offset 0xe00
- 0xe00: 0x0beb, 0xe01: 0x0c97, 0xe02: 0x0cc7, 0xe03: 0x0ce7, 0xe04: 0x0d57, 0xe05: 0x0e1b,
- 0xe06: 0x0e37, 0xe07: 0x0e67, 0xe08: 0x0ebb, 0xe09: 0x0edb, 0xe0a: 0x0f4f, 0xe0b: 0x102f,
- 0xe0c: 0x104b, 0xe0d: 0x1053, 0xe0e: 0x104f, 0xe0f: 0x1057, 0xe10: 0x105b, 0xe11: 0x105f,
- 0xe12: 0x1073, 0xe13: 0x1077, 0xe14: 0x109b, 0xe15: 0x10af, 0xe16: 0x10cb, 0xe17: 0x112f,
- 0xe18: 0x1137, 0xe19: 0x113f, 0xe1a: 0x1153, 0xe1b: 0x117b, 0xe1c: 0x11cb, 0xe1d: 0x11ff,
- 0xe1e: 0x11ff, 0xe1f: 0x1267, 0xe20: 0x130f, 0xe21: 0x1327, 0xe22: 0x135b, 0xe23: 0x135f,
- 0xe24: 0x13a3, 0xe25: 0x13a7, 0xe26: 0x13ff, 0xe27: 0x1407, 0xe28: 0x14db, 0xe29: 0x151f,
- 0xe2a: 0x1537, 0xe2b: 0x0b9b, 0xe2c: 0x171e, 0xe2d: 0x11e3,
- 0xe30: 0x06df, 0xe31: 0x07e3, 0xe32: 0x07a3, 0xe33: 0x074b, 0xe34: 0x078b, 0xe35: 0x07b7,
- 0xe36: 0x0847, 0xe37: 0x0863, 0xe38: 0x094b, 0xe39: 0x0937, 0xe3a: 0x0947, 0xe3b: 0x0963,
- 0xe3c: 0x09af, 0xe3d: 0x09bf, 0xe3e: 0x0a03, 0xe3f: 0x0a0f,
- // Block 0x39, offset 0xe40
- 0xe40: 0x0a2b, 0xe41: 0x0a3b, 0xe42: 0x0b23, 0xe43: 0x0b2b, 0xe44: 0x0b5b, 0xe45: 0x0b7b,
- 0xe46: 0x0bab, 0xe47: 0x0bc3, 0xe48: 0x0bb3, 0xe49: 0x0bd3, 0xe4a: 0x0bc7, 0xe4b: 0x0beb,
- 0xe4c: 0x0c07, 0xe4d: 0x0c5f, 0xe4e: 0x0c6b, 0xe4f: 0x0c73, 0xe50: 0x0c9b, 0xe51: 0x0cdf,
- 0xe52: 0x0d0f, 0xe53: 0x0d13, 0xe54: 0x0d27, 0xe55: 0x0da7, 0xe56: 0x0db7, 0xe57: 0x0e0f,
- 0xe58: 0x0e5b, 0xe59: 0x0e53, 0xe5a: 0x0e67, 0xe5b: 0x0e83, 0xe5c: 0x0ebb, 0xe5d: 0x1013,
- 0xe5e: 0x0edf, 0xe5f: 0x0f13, 0xe60: 0x0f1f, 0xe61: 0x0f5f, 0xe62: 0x0f7b, 0xe63: 0x0f9f,
- 0xe64: 0x0fc3, 0xe65: 0x0fc7, 0xe66: 0x0fe3, 0xe67: 0x0fe7, 0xe68: 0x0ff7, 0xe69: 0x100b,
- 0xe6a: 0x1007, 0xe6b: 0x1037, 0xe6c: 0x10b3, 0xe6d: 0x10cb, 0xe6e: 0x10e3, 0xe6f: 0x111b,
- 0xe70: 0x112f, 0xe71: 0x114b, 0xe72: 0x117b, 0xe73: 0x122f, 0xe74: 0x1257, 0xe75: 0x12cb,
- 0xe76: 0x1313, 0xe77: 0x131f, 0xe78: 0x1327, 0xe79: 0x133f, 0xe7a: 0x1353, 0xe7b: 0x1343,
- 0xe7c: 0x135b, 0xe7d: 0x1357, 0xe7e: 0x134f, 0xe7f: 0x135f,
- // Block 0x3a, offset 0xe80
- 0xe80: 0x136b, 0xe81: 0x13a7, 0xe82: 0x13e3, 0xe83: 0x1413, 0xe84: 0x144b, 0xe85: 0x146b,
- 0xe86: 0x14b7, 0xe87: 0x14db, 0xe88: 0x14fb, 0xe89: 0x150f, 0xe8a: 0x151f, 0xe8b: 0x152b,
- 0xe8c: 0x1537, 0xe8d: 0x158b, 0xe8e: 0x162b, 0xe8f: 0x16b5, 0xe90: 0x16b0, 0xe91: 0x16e2,
- 0xe92: 0x0607, 0xe93: 0x062f, 0xe94: 0x0633, 0xe95: 0x1764, 0xe96: 0x1791, 0xe97: 0x1809,
- 0xe98: 0x1617, 0xe99: 0x1627,
- // Block 0x3b, offset 0xec0
- 0xec0: 0x19d5, 0xec1: 0x19d8, 0xec2: 0x19db, 0xec3: 0x1c08, 0xec4: 0x1c0c, 0xec5: 0x1a5f,
- 0xec6: 0x1a5f,
- 0xed3: 0x1d75, 0xed4: 0x1d66, 0xed5: 0x1d6b, 0xed6: 0x1d7a, 0xed7: 0x1d70,
- 0xedd: 0x4390,
- 0xede: 0x8115, 0xedf: 0x4402, 0xee0: 0x022d, 0xee1: 0x0215, 0xee2: 0x021e, 0xee3: 0x0221,
- 0xee4: 0x0224, 0xee5: 0x0227, 0xee6: 0x022a, 0xee7: 0x0230, 0xee8: 0x0233, 0xee9: 0x0017,
- 0xeea: 0x43f0, 0xeeb: 0x43f6, 0xeec: 0x44f4, 0xeed: 0x44fc, 0xeee: 0x4348, 0xeef: 0x434e,
- 0xef0: 0x4354, 0xef1: 0x435a, 0xef2: 0x4366, 0xef3: 0x436c, 0xef4: 0x4372, 0xef5: 0x437e,
- 0xef6: 0x4384, 0xef8: 0x438a, 0xef9: 0x4396, 0xefa: 0x439c, 0xefb: 0x43a2,
- 0xefc: 0x43ae, 0xefe: 0x43b4,
- // Block 0x3c, offset 0xf00
- 0xf00: 0x43ba, 0xf01: 0x43c0, 0xf03: 0x43c6, 0xf04: 0x43cc,
- 0xf06: 0x43d8, 0xf07: 0x43de, 0xf08: 0x43e4, 0xf09: 0x43ea, 0xf0a: 0x43fc, 0xf0b: 0x4378,
- 0xf0c: 0x4360, 0xf0d: 0x43a8, 0xf0e: 0x43d2, 0xf0f: 0x1d7f, 0xf10: 0x0299, 0xf11: 0x0299,
- 0xf12: 0x02a2, 0xf13: 0x02a2, 0xf14: 0x02a2, 0xf15: 0x02a2, 0xf16: 0x02a5, 0xf17: 0x02a5,
- 0xf18: 0x02a5, 0xf19: 0x02a5, 0xf1a: 0x02ab, 0xf1b: 0x02ab, 0xf1c: 0x02ab, 0xf1d: 0x02ab,
- 0xf1e: 0x029f, 0xf1f: 0x029f, 0xf20: 0x029f, 0xf21: 0x029f, 0xf22: 0x02a8, 0xf23: 0x02a8,
- 0xf24: 0x02a8, 0xf25: 0x02a8, 0xf26: 0x029c, 0xf27: 0x029c, 0xf28: 0x029c, 0xf29: 0x029c,
- 0xf2a: 0x02cf, 0xf2b: 0x02cf, 0xf2c: 0x02cf, 0xf2d: 0x02cf, 0xf2e: 0x02d2, 0xf2f: 0x02d2,
- 0xf30: 0x02d2, 0xf31: 0x02d2, 0xf32: 0x02b1, 0xf33: 0x02b1, 0xf34: 0x02b1, 0xf35: 0x02b1,
- 0xf36: 0x02ae, 0xf37: 0x02ae, 0xf38: 0x02ae, 0xf39: 0x02ae, 0xf3a: 0x02b4, 0xf3b: 0x02b4,
- 0xf3c: 0x02b4, 0xf3d: 0x02b4, 0xf3e: 0x02b7, 0xf3f: 0x02b7,
- // Block 0x3d, offset 0xf40
- 0xf40: 0x02b7, 0xf41: 0x02b7, 0xf42: 0x02c0, 0xf43: 0x02c0, 0xf44: 0x02bd, 0xf45: 0x02bd,
- 0xf46: 0x02c3, 0xf47: 0x02c3, 0xf48: 0x02ba, 0xf49: 0x02ba, 0xf4a: 0x02c9, 0xf4b: 0x02c9,
- 0xf4c: 0x02c6, 0xf4d: 0x02c6, 0xf4e: 0x02d5, 0xf4f: 0x02d5, 0xf50: 0x02d5, 0xf51: 0x02d5,
- 0xf52: 0x02db, 0xf53: 0x02db, 0xf54: 0x02db, 0xf55: 0x02db, 0xf56: 0x02e1, 0xf57: 0x02e1,
- 0xf58: 0x02e1, 0xf59: 0x02e1, 0xf5a: 0x02de, 0xf5b: 0x02de, 0xf5c: 0x02de, 0xf5d: 0x02de,
- 0xf5e: 0x02e4, 0xf5f: 0x02e4, 0xf60: 0x02e7, 0xf61: 0x02e7, 0xf62: 0x02e7, 0xf63: 0x02e7,
- 0xf64: 0x446e, 0xf65: 0x446e, 0xf66: 0x02ed, 0xf67: 0x02ed, 0xf68: 0x02ed, 0xf69: 0x02ed,
- 0xf6a: 0x02ea, 0xf6b: 0x02ea, 0xf6c: 0x02ea, 0xf6d: 0x02ea, 0xf6e: 0x0308, 0xf6f: 0x0308,
- 0xf70: 0x4468, 0xf71: 0x4468,
- // Block 0x3e, offset 0xf80
- 0xf93: 0x02d8, 0xf94: 0x02d8, 0xf95: 0x02d8, 0xf96: 0x02d8, 0xf97: 0x02f6,
- 0xf98: 0x02f6, 0xf99: 0x02f3, 0xf9a: 0x02f3, 0xf9b: 0x02f9, 0xf9c: 0x02f9, 0xf9d: 0x204f,
- 0xf9e: 0x02ff, 0xf9f: 0x02ff, 0xfa0: 0x02f0, 0xfa1: 0x02f0, 0xfa2: 0x02fc, 0xfa3: 0x02fc,
- 0xfa4: 0x0305, 0xfa5: 0x0305, 0xfa6: 0x0305, 0xfa7: 0x0305, 0xfa8: 0x028d, 0xfa9: 0x028d,
- 0xfaa: 0x25aa, 0xfab: 0x25aa, 0xfac: 0x261a, 0xfad: 0x261a, 0xfae: 0x25e9, 0xfaf: 0x25e9,
- 0xfb0: 0x2605, 0xfb1: 0x2605, 0xfb2: 0x25fe, 0xfb3: 0x25fe, 0xfb4: 0x260c, 0xfb5: 0x260c,
- 0xfb6: 0x2613, 0xfb7: 0x2613, 0xfb8: 0x2613, 0xfb9: 0x25f0, 0xfba: 0x25f0, 0xfbb: 0x25f0,
- 0xfbc: 0x0302, 0xfbd: 0x0302, 0xfbe: 0x0302, 0xfbf: 0x0302,
- // Block 0x3f, offset 0xfc0
- 0xfc0: 0x25b1, 0xfc1: 0x25b8, 0xfc2: 0x25d4, 0xfc3: 0x25f0, 0xfc4: 0x25f7, 0xfc5: 0x1d89,
- 0xfc6: 0x1d8e, 0xfc7: 0x1d93, 0xfc8: 0x1da2, 0xfc9: 0x1db1, 0xfca: 0x1db6, 0xfcb: 0x1dbb,
- 0xfcc: 0x1dc0, 0xfcd: 0x1dc5, 0xfce: 0x1dd4, 0xfcf: 0x1de3, 0xfd0: 0x1de8, 0xfd1: 0x1ded,
- 0xfd2: 0x1dfc, 0xfd3: 0x1e0b, 0xfd4: 0x1e10, 0xfd5: 0x1e15, 0xfd6: 0x1e1a, 0xfd7: 0x1e29,
- 0xfd8: 0x1e2e, 0xfd9: 0x1e3d, 0xfda: 0x1e42, 0xfdb: 0x1e47, 0xfdc: 0x1e56, 0xfdd: 0x1e5b,
- 0xfde: 0x1e60, 0xfdf: 0x1e6a, 0xfe0: 0x1ea6, 0xfe1: 0x1eb5, 0xfe2: 0x1ec4, 0xfe3: 0x1ec9,
- 0xfe4: 0x1ece, 0xfe5: 0x1ed8, 0xfe6: 0x1ee7, 0xfe7: 0x1eec, 0xfe8: 0x1efb, 0xfe9: 0x1f00,
- 0xfea: 0x1f05, 0xfeb: 0x1f14, 0xfec: 0x1f19, 0xfed: 0x1f28, 0xfee: 0x1f2d, 0xfef: 0x1f32,
- 0xff0: 0x1f37, 0xff1: 0x1f3c, 0xff2: 0x1f41, 0xff3: 0x1f46, 0xff4: 0x1f4b, 0xff5: 0x1f50,
- 0xff6: 0x1f55, 0xff7: 0x1f5a, 0xff8: 0x1f5f, 0xff9: 0x1f64, 0xffa: 0x1f69, 0xffb: 0x1f6e,
- 0xffc: 0x1f73, 0xffd: 0x1f78, 0xffe: 0x1f7d, 0xfff: 0x1f87,
- // Block 0x40, offset 0x1000
- 0x1000: 0x1f8c, 0x1001: 0x1f91, 0x1002: 0x1f96, 0x1003: 0x1fa0, 0x1004: 0x1fa5, 0x1005: 0x1faf,
- 0x1006: 0x1fb4, 0x1007: 0x1fb9, 0x1008: 0x1fbe, 0x1009: 0x1fc3, 0x100a: 0x1fc8, 0x100b: 0x1fcd,
- 0x100c: 0x1fd2, 0x100d: 0x1fd7, 0x100e: 0x1fe6, 0x100f: 0x1ff5, 0x1010: 0x1ffa, 0x1011: 0x1fff,
- 0x1012: 0x2004, 0x1013: 0x2009, 0x1014: 0x200e, 0x1015: 0x2018, 0x1016: 0x201d, 0x1017: 0x2022,
- 0x1018: 0x2031, 0x1019: 0x2040, 0x101a: 0x2045, 0x101b: 0x4420, 0x101c: 0x4426, 0x101d: 0x445c,
- 0x101e: 0x44b3, 0x101f: 0x44ba, 0x1020: 0x44c1, 0x1021: 0x44c8, 0x1022: 0x44cf, 0x1023: 0x44d6,
- 0x1024: 0x25c6, 0x1025: 0x25cd, 0x1026: 0x25d4, 0x1027: 0x25db, 0x1028: 0x25f0, 0x1029: 0x25f7,
- 0x102a: 0x1d98, 0x102b: 0x1d9d, 0x102c: 0x1da2, 0x102d: 0x1da7, 0x102e: 0x1db1, 0x102f: 0x1db6,
- 0x1030: 0x1dca, 0x1031: 0x1dcf, 0x1032: 0x1dd4, 0x1033: 0x1dd9, 0x1034: 0x1de3, 0x1035: 0x1de8,
- 0x1036: 0x1df2, 0x1037: 0x1df7, 0x1038: 0x1dfc, 0x1039: 0x1e01, 0x103a: 0x1e0b, 0x103b: 0x1e10,
- 0x103c: 0x1f3c, 0x103d: 0x1f41, 0x103e: 0x1f50, 0x103f: 0x1f55,
- // Block 0x41, offset 0x1040
- 0x1040: 0x1f5a, 0x1041: 0x1f6e, 0x1042: 0x1f73, 0x1043: 0x1f78, 0x1044: 0x1f7d, 0x1045: 0x1f96,
- 0x1046: 0x1fa0, 0x1047: 0x1fa5, 0x1048: 0x1faa, 0x1049: 0x1fbe, 0x104a: 0x1fdc, 0x104b: 0x1fe1,
- 0x104c: 0x1fe6, 0x104d: 0x1feb, 0x104e: 0x1ff5, 0x104f: 0x1ffa, 0x1050: 0x445c, 0x1051: 0x2027,
- 0x1052: 0x202c, 0x1053: 0x2031, 0x1054: 0x2036, 0x1055: 0x2040, 0x1056: 0x2045, 0x1057: 0x25b1,
- 0x1058: 0x25b8, 0x1059: 0x25bf, 0x105a: 0x25d4, 0x105b: 0x25e2, 0x105c: 0x1d89, 0x105d: 0x1d8e,
- 0x105e: 0x1d93, 0x105f: 0x1da2, 0x1060: 0x1dac, 0x1061: 0x1dbb, 0x1062: 0x1dc0, 0x1063: 0x1dc5,
- 0x1064: 0x1dd4, 0x1065: 0x1dde, 0x1066: 0x1dfc, 0x1067: 0x1e15, 0x1068: 0x1e1a, 0x1069: 0x1e29,
- 0x106a: 0x1e2e, 0x106b: 0x1e3d, 0x106c: 0x1e47, 0x106d: 0x1e56, 0x106e: 0x1e5b, 0x106f: 0x1e60,
- 0x1070: 0x1e6a, 0x1071: 0x1ea6, 0x1072: 0x1eab, 0x1073: 0x1eb5, 0x1074: 0x1ec4, 0x1075: 0x1ec9,
- 0x1076: 0x1ece, 0x1077: 0x1ed8, 0x1078: 0x1ee7, 0x1079: 0x1efb, 0x107a: 0x1f00, 0x107b: 0x1f05,
- 0x107c: 0x1f14, 0x107d: 0x1f19, 0x107e: 0x1f28, 0x107f: 0x1f2d,
- // Block 0x42, offset 0x1080
- 0x1080: 0x1f32, 0x1081: 0x1f37, 0x1082: 0x1f46, 0x1083: 0x1f4b, 0x1084: 0x1f5f, 0x1085: 0x1f64,
- 0x1086: 0x1f69, 0x1087: 0x1f6e, 0x1088: 0x1f73, 0x1089: 0x1f87, 0x108a: 0x1f8c, 0x108b: 0x1f91,
- 0x108c: 0x1f96, 0x108d: 0x1f9b, 0x108e: 0x1faf, 0x108f: 0x1fb4, 0x1090: 0x1fb9, 0x1091: 0x1fbe,
- 0x1092: 0x1fcd, 0x1093: 0x1fd2, 0x1094: 0x1fd7, 0x1095: 0x1fe6, 0x1096: 0x1ff0, 0x1097: 0x1fff,
- 0x1098: 0x2004, 0x1099: 0x4450, 0x109a: 0x2018, 0x109b: 0x201d, 0x109c: 0x2022, 0x109d: 0x2031,
- 0x109e: 0x203b, 0x109f: 0x25d4, 0x10a0: 0x25e2, 0x10a1: 0x1da2, 0x10a2: 0x1dac, 0x10a3: 0x1dd4,
- 0x10a4: 0x1dde, 0x10a5: 0x1dfc, 0x10a6: 0x1e06, 0x10a7: 0x1e6a, 0x10a8: 0x1e6f, 0x10a9: 0x1e92,
- 0x10aa: 0x1e97, 0x10ab: 0x1f6e, 0x10ac: 0x1f73, 0x10ad: 0x1f96, 0x10ae: 0x1fe6, 0x10af: 0x1ff0,
- 0x10b0: 0x2031, 0x10b1: 0x203b, 0x10b2: 0x4504, 0x10b3: 0x450c, 0x10b4: 0x4514, 0x10b5: 0x1ef1,
- 0x10b6: 0x1ef6, 0x10b7: 0x1f0a, 0x10b8: 0x1f0f, 0x10b9: 0x1f1e, 0x10ba: 0x1f23, 0x10bb: 0x1e74,
- 0x10bc: 0x1e79, 0x10bd: 0x1e9c, 0x10be: 0x1ea1, 0x10bf: 0x1e33,
- // Block 0x43, offset 0x10c0
- 0x10c0: 0x1e38, 0x10c1: 0x1e1f, 0x10c2: 0x1e24, 0x10c3: 0x1e4c, 0x10c4: 0x1e51, 0x10c5: 0x1eba,
- 0x10c6: 0x1ebf, 0x10c7: 0x1edd, 0x10c8: 0x1ee2, 0x10c9: 0x1e7e, 0x10ca: 0x1e83, 0x10cb: 0x1e88,
- 0x10cc: 0x1e92, 0x10cd: 0x1e8d, 0x10ce: 0x1e65, 0x10cf: 0x1eb0, 0x10d0: 0x1ed3, 0x10d1: 0x1ef1,
- 0x10d2: 0x1ef6, 0x10d3: 0x1f0a, 0x10d4: 0x1f0f, 0x10d5: 0x1f1e, 0x10d6: 0x1f23, 0x10d7: 0x1e74,
- 0x10d8: 0x1e79, 0x10d9: 0x1e9c, 0x10da: 0x1ea1, 0x10db: 0x1e33, 0x10dc: 0x1e38, 0x10dd: 0x1e1f,
- 0x10de: 0x1e24, 0x10df: 0x1e4c, 0x10e0: 0x1e51, 0x10e1: 0x1eba, 0x10e2: 0x1ebf, 0x10e3: 0x1edd,
- 0x10e4: 0x1ee2, 0x10e5: 0x1e7e, 0x10e6: 0x1e83, 0x10e7: 0x1e88, 0x10e8: 0x1e92, 0x10e9: 0x1e8d,
- 0x10ea: 0x1e65, 0x10eb: 0x1eb0, 0x10ec: 0x1ed3, 0x10ed: 0x1e7e, 0x10ee: 0x1e83, 0x10ef: 0x1e88,
- 0x10f0: 0x1e92, 0x10f1: 0x1e6f, 0x10f2: 0x1e97, 0x10f3: 0x1eec, 0x10f4: 0x1e56, 0x10f5: 0x1e5b,
- 0x10f6: 0x1e60, 0x10f7: 0x1e7e, 0x10f8: 0x1e83, 0x10f9: 0x1e88, 0x10fa: 0x1eec, 0x10fb: 0x1efb,
- 0x10fc: 0x4408, 0x10fd: 0x4408,
- // Block 0x44, offset 0x1100
- 0x1110: 0x2311, 0x1111: 0x2326,
- 0x1112: 0x2326, 0x1113: 0x232d, 0x1114: 0x2334, 0x1115: 0x2349, 0x1116: 0x2350, 0x1117: 0x2357,
- 0x1118: 0x237a, 0x1119: 0x237a, 0x111a: 0x239d, 0x111b: 0x2396, 0x111c: 0x23b2, 0x111d: 0x23a4,
- 0x111e: 0x23ab, 0x111f: 0x23ce, 0x1120: 0x23ce, 0x1121: 0x23c7, 0x1122: 0x23d5, 0x1123: 0x23d5,
- 0x1124: 0x23ff, 0x1125: 0x23ff, 0x1126: 0x241b, 0x1127: 0x23e3, 0x1128: 0x23e3, 0x1129: 0x23dc,
- 0x112a: 0x23f1, 0x112b: 0x23f1, 0x112c: 0x23f8, 0x112d: 0x23f8, 0x112e: 0x2422, 0x112f: 0x2430,
- 0x1130: 0x2430, 0x1131: 0x2437, 0x1132: 0x2437, 0x1133: 0x243e, 0x1134: 0x2445, 0x1135: 0x244c,
- 0x1136: 0x2453, 0x1137: 0x2453, 0x1138: 0x245a, 0x1139: 0x2468, 0x113a: 0x2476, 0x113b: 0x246f,
- 0x113c: 0x247d, 0x113d: 0x247d, 0x113e: 0x2492, 0x113f: 0x2499,
- // Block 0x45, offset 0x1140
- 0x1140: 0x24ca, 0x1141: 0x24d8, 0x1142: 0x24d1, 0x1143: 0x24b5, 0x1144: 0x24b5, 0x1145: 0x24df,
- 0x1146: 0x24df, 0x1147: 0x24e6, 0x1148: 0x24e6, 0x1149: 0x2510, 0x114a: 0x2517, 0x114b: 0x251e,
- 0x114c: 0x24f4, 0x114d: 0x2502, 0x114e: 0x2525, 0x114f: 0x252c,
- 0x1152: 0x24fb, 0x1153: 0x2580, 0x1154: 0x2587, 0x1155: 0x255d, 0x1156: 0x2564, 0x1157: 0x2548,
- 0x1158: 0x2548, 0x1159: 0x254f, 0x115a: 0x2579, 0x115b: 0x2572, 0x115c: 0x259c, 0x115d: 0x259c,
- 0x115e: 0x230a, 0x115f: 0x231f, 0x1160: 0x2318, 0x1161: 0x2342, 0x1162: 0x233b, 0x1163: 0x2365,
- 0x1164: 0x235e, 0x1165: 0x2388, 0x1166: 0x236c, 0x1167: 0x2381, 0x1168: 0x23b9, 0x1169: 0x2406,
- 0x116a: 0x23ea, 0x116b: 0x2429, 0x116c: 0x24c3, 0x116d: 0x24ed, 0x116e: 0x2595, 0x116f: 0x258e,
- 0x1170: 0x25a3, 0x1171: 0x253a, 0x1172: 0x24a0, 0x1173: 0x256b, 0x1174: 0x2492, 0x1175: 0x24ca,
- 0x1176: 0x2461, 0x1177: 0x24ae, 0x1178: 0x2541, 0x1179: 0x2533, 0x117a: 0x24bc, 0x117b: 0x24a7,
- 0x117c: 0x24bc, 0x117d: 0x2541, 0x117e: 0x2373, 0x117f: 0x238f,
- // Block 0x46, offset 0x1180
- 0x1180: 0x2509, 0x1181: 0x2484, 0x1182: 0x2303, 0x1183: 0x24a7, 0x1184: 0x244c, 0x1185: 0x241b,
- 0x1186: 0x23c0, 0x1187: 0x2556,
- 0x11b0: 0x2414, 0x11b1: 0x248b, 0x11b2: 0x27bf, 0x11b3: 0x27b6, 0x11b4: 0x27ec, 0x11b5: 0x27da,
- 0x11b6: 0x27c8, 0x11b7: 0x27e3, 0x11b8: 0x27f5, 0x11b9: 0x240d, 0x11ba: 0x2c7c, 0x11bb: 0x2afc,
- 0x11bc: 0x27d1,
- // Block 0x47, offset 0x11c0
- 0x11d0: 0x0019, 0x11d1: 0x0483,
- 0x11d2: 0x0487, 0x11d3: 0x0035, 0x11d4: 0x0037, 0x11d5: 0x0003, 0x11d6: 0x003f, 0x11d7: 0x04bf,
- 0x11d8: 0x04c3, 0x11d9: 0x1b5c,
- 0x11e0: 0x8132, 0x11e1: 0x8132, 0x11e2: 0x8132, 0x11e3: 0x8132,
- 0x11e4: 0x8132, 0x11e5: 0x8132, 0x11e6: 0x8132, 0x11e7: 0x812d, 0x11e8: 0x812d, 0x11e9: 0x812d,
- 0x11ea: 0x812d, 0x11eb: 0x812d, 0x11ec: 0x812d, 0x11ed: 0x812d, 0x11ee: 0x8132, 0x11ef: 0x8132,
- 0x11f0: 0x1873, 0x11f1: 0x0443, 0x11f2: 0x043f, 0x11f3: 0x007f, 0x11f4: 0x007f, 0x11f5: 0x0011,
- 0x11f6: 0x0013, 0x11f7: 0x00b7, 0x11f8: 0x00bb, 0x11f9: 0x04b7, 0x11fa: 0x04bb, 0x11fb: 0x04ab,
- 0x11fc: 0x04af, 0x11fd: 0x0493, 0x11fe: 0x0497, 0x11ff: 0x048b,
- // Block 0x48, offset 0x1200
- 0x1200: 0x048f, 0x1201: 0x049b, 0x1202: 0x049f, 0x1203: 0x04a3, 0x1204: 0x04a7,
- 0x1207: 0x0077, 0x1208: 0x007b, 0x1209: 0x4269, 0x120a: 0x4269, 0x120b: 0x4269,
- 0x120c: 0x4269, 0x120d: 0x007f, 0x120e: 0x007f, 0x120f: 0x007f, 0x1210: 0x0019, 0x1211: 0x0483,
- 0x1212: 0x001d, 0x1214: 0x0037, 0x1215: 0x0035, 0x1216: 0x003f, 0x1217: 0x0003,
- 0x1218: 0x0443, 0x1219: 0x0011, 0x121a: 0x0013, 0x121b: 0x00b7, 0x121c: 0x00bb, 0x121d: 0x04b7,
- 0x121e: 0x04bb, 0x121f: 0x0007, 0x1220: 0x000d, 0x1221: 0x0015, 0x1222: 0x0017, 0x1223: 0x001b,
- 0x1224: 0x0039, 0x1225: 0x003d, 0x1226: 0x003b, 0x1228: 0x0079, 0x1229: 0x0009,
- 0x122a: 0x000b, 0x122b: 0x0041,
- 0x1230: 0x42aa, 0x1231: 0x442c, 0x1232: 0x42af, 0x1234: 0x42b4,
- 0x1236: 0x42b9, 0x1237: 0x4432, 0x1238: 0x42be, 0x1239: 0x4438, 0x123a: 0x42c3, 0x123b: 0x443e,
- 0x123c: 0x42c8, 0x123d: 0x4444, 0x123e: 0x42cd, 0x123f: 0x444a,
- // Block 0x49, offset 0x1240
- 0x1240: 0x0236, 0x1241: 0x440e, 0x1242: 0x440e, 0x1243: 0x4414, 0x1244: 0x4414, 0x1245: 0x4456,
- 0x1246: 0x4456, 0x1247: 0x441a, 0x1248: 0x441a, 0x1249: 0x4462, 0x124a: 0x4462, 0x124b: 0x4462,
- 0x124c: 0x4462, 0x124d: 0x0239, 0x124e: 0x0239, 0x124f: 0x023c, 0x1250: 0x023c, 0x1251: 0x023c,
- 0x1252: 0x023c, 0x1253: 0x023f, 0x1254: 0x023f, 0x1255: 0x0242, 0x1256: 0x0242, 0x1257: 0x0242,
- 0x1258: 0x0242, 0x1259: 0x0245, 0x125a: 0x0245, 0x125b: 0x0245, 0x125c: 0x0245, 0x125d: 0x0248,
- 0x125e: 0x0248, 0x125f: 0x0248, 0x1260: 0x0248, 0x1261: 0x024b, 0x1262: 0x024b, 0x1263: 0x024b,
- 0x1264: 0x024b, 0x1265: 0x024e, 0x1266: 0x024e, 0x1267: 0x024e, 0x1268: 0x024e, 0x1269: 0x0251,
- 0x126a: 0x0251, 0x126b: 0x0254, 0x126c: 0x0254, 0x126d: 0x0257, 0x126e: 0x0257, 0x126f: 0x025a,
- 0x1270: 0x025a, 0x1271: 0x025d, 0x1272: 0x025d, 0x1273: 0x025d, 0x1274: 0x025d, 0x1275: 0x0260,
- 0x1276: 0x0260, 0x1277: 0x0260, 0x1278: 0x0260, 0x1279: 0x0263, 0x127a: 0x0263, 0x127b: 0x0263,
- 0x127c: 0x0263, 0x127d: 0x0266, 0x127e: 0x0266, 0x127f: 0x0266,
- // Block 0x4a, offset 0x1280
- 0x1280: 0x0266, 0x1281: 0x0269, 0x1282: 0x0269, 0x1283: 0x0269, 0x1284: 0x0269, 0x1285: 0x026c,
- 0x1286: 0x026c, 0x1287: 0x026c, 0x1288: 0x026c, 0x1289: 0x026f, 0x128a: 0x026f, 0x128b: 0x026f,
- 0x128c: 0x026f, 0x128d: 0x0272, 0x128e: 0x0272, 0x128f: 0x0272, 0x1290: 0x0272, 0x1291: 0x0275,
- 0x1292: 0x0275, 0x1293: 0x0275, 0x1294: 0x0275, 0x1295: 0x0278, 0x1296: 0x0278, 0x1297: 0x0278,
- 0x1298: 0x0278, 0x1299: 0x027b, 0x129a: 0x027b, 0x129b: 0x027b, 0x129c: 0x027b, 0x129d: 0x027e,
- 0x129e: 0x027e, 0x129f: 0x027e, 0x12a0: 0x027e, 0x12a1: 0x0281, 0x12a2: 0x0281, 0x12a3: 0x0281,
- 0x12a4: 0x0281, 0x12a5: 0x0284, 0x12a6: 0x0284, 0x12a7: 0x0284, 0x12a8: 0x0284, 0x12a9: 0x0287,
- 0x12aa: 0x0287, 0x12ab: 0x0287, 0x12ac: 0x0287, 0x12ad: 0x028a, 0x12ae: 0x028a, 0x12af: 0x028d,
- 0x12b0: 0x028d, 0x12b1: 0x0290, 0x12b2: 0x0290, 0x12b3: 0x0290, 0x12b4: 0x0290, 0x12b5: 0x2e00,
- 0x12b6: 0x2e00, 0x12b7: 0x2e08, 0x12b8: 0x2e08, 0x12b9: 0x2e10, 0x12ba: 0x2e10, 0x12bb: 0x1f82,
- 0x12bc: 0x1f82,
- // Block 0x4b, offset 0x12c0
- 0x12c0: 0x0081, 0x12c1: 0x0083, 0x12c2: 0x0085, 0x12c3: 0x0087, 0x12c4: 0x0089, 0x12c5: 0x008b,
- 0x12c6: 0x008d, 0x12c7: 0x008f, 0x12c8: 0x0091, 0x12c9: 0x0093, 0x12ca: 0x0095, 0x12cb: 0x0097,
- 0x12cc: 0x0099, 0x12cd: 0x009b, 0x12ce: 0x009d, 0x12cf: 0x009f, 0x12d0: 0x00a1, 0x12d1: 0x00a3,
- 0x12d2: 0x00a5, 0x12d3: 0x00a7, 0x12d4: 0x00a9, 0x12d5: 0x00ab, 0x12d6: 0x00ad, 0x12d7: 0x00af,
- 0x12d8: 0x00b1, 0x12d9: 0x00b3, 0x12da: 0x00b5, 0x12db: 0x00b7, 0x12dc: 0x00b9, 0x12dd: 0x00bb,
- 0x12de: 0x00bd, 0x12df: 0x0477, 0x12e0: 0x047b, 0x12e1: 0x0487, 0x12e2: 0x049b, 0x12e3: 0x049f,
- 0x12e4: 0x0483, 0x12e5: 0x05ab, 0x12e6: 0x05a3, 0x12e7: 0x04c7, 0x12e8: 0x04cf, 0x12e9: 0x04d7,
- 0x12ea: 0x04df, 0x12eb: 0x04e7, 0x12ec: 0x056b, 0x12ed: 0x0573, 0x12ee: 0x057b, 0x12ef: 0x051f,
- 0x12f0: 0x05af, 0x12f1: 0x04cb, 0x12f2: 0x04d3, 0x12f3: 0x04db, 0x12f4: 0x04e3, 0x12f5: 0x04eb,
- 0x12f6: 0x04ef, 0x12f7: 0x04f3, 0x12f8: 0x04f7, 0x12f9: 0x04fb, 0x12fa: 0x04ff, 0x12fb: 0x0503,
- 0x12fc: 0x0507, 0x12fd: 0x050b, 0x12fe: 0x050f, 0x12ff: 0x0513,
- // Block 0x4c, offset 0x1300
- 0x1300: 0x0517, 0x1301: 0x051b, 0x1302: 0x0523, 0x1303: 0x0527, 0x1304: 0x052b, 0x1305: 0x052f,
- 0x1306: 0x0533, 0x1307: 0x0537, 0x1308: 0x053b, 0x1309: 0x053f, 0x130a: 0x0543, 0x130b: 0x0547,
- 0x130c: 0x054b, 0x130d: 0x054f, 0x130e: 0x0553, 0x130f: 0x0557, 0x1310: 0x055b, 0x1311: 0x055f,
- 0x1312: 0x0563, 0x1313: 0x0567, 0x1314: 0x056f, 0x1315: 0x0577, 0x1316: 0x057f, 0x1317: 0x0583,
- 0x1318: 0x0587, 0x1319: 0x058b, 0x131a: 0x058f, 0x131b: 0x0593, 0x131c: 0x0597, 0x131d: 0x05a7,
- 0x131e: 0x4a78, 0x131f: 0x4a7e, 0x1320: 0x03c3, 0x1321: 0x0313, 0x1322: 0x0317, 0x1323: 0x4a3b,
- 0x1324: 0x031b, 0x1325: 0x4a41, 0x1326: 0x4a47, 0x1327: 0x031f, 0x1328: 0x0323, 0x1329: 0x0327,
- 0x132a: 0x4a4d, 0x132b: 0x4a53, 0x132c: 0x4a59, 0x132d: 0x4a5f, 0x132e: 0x4a65, 0x132f: 0x4a6b,
- 0x1330: 0x0367, 0x1331: 0x032b, 0x1332: 0x032f, 0x1333: 0x0333, 0x1334: 0x037b, 0x1335: 0x0337,
- 0x1336: 0x033b, 0x1337: 0x033f, 0x1338: 0x0343, 0x1339: 0x0347, 0x133a: 0x034b, 0x133b: 0x034f,
- 0x133c: 0x0353, 0x133d: 0x0357, 0x133e: 0x035b,
- // Block 0x4d, offset 0x1340
- 0x1342: 0x49bd, 0x1343: 0x49c3, 0x1344: 0x49c9, 0x1345: 0x49cf,
- 0x1346: 0x49d5, 0x1347: 0x49db, 0x134a: 0x49e1, 0x134b: 0x49e7,
- 0x134c: 0x49ed, 0x134d: 0x49f3, 0x134e: 0x49f9, 0x134f: 0x49ff,
- 0x1352: 0x4a05, 0x1353: 0x4a0b, 0x1354: 0x4a11, 0x1355: 0x4a17, 0x1356: 0x4a1d, 0x1357: 0x4a23,
- 0x135a: 0x4a29, 0x135b: 0x4a2f, 0x135c: 0x4a35,
- 0x1360: 0x00bf, 0x1361: 0x00c2, 0x1362: 0x00cb, 0x1363: 0x4264,
- 0x1364: 0x00c8, 0x1365: 0x00c5, 0x1366: 0x0447, 0x1368: 0x046b, 0x1369: 0x044b,
- 0x136a: 0x044f, 0x136b: 0x0453, 0x136c: 0x0457, 0x136d: 0x046f, 0x136e: 0x0473,
- // Block 0x4e, offset 0x1380
- 0x1380: 0x0063, 0x1381: 0x0065, 0x1382: 0x0067, 0x1383: 0x0069, 0x1384: 0x006b, 0x1385: 0x006d,
- 0x1386: 0x006f, 0x1387: 0x0071, 0x1388: 0x0073, 0x1389: 0x0075, 0x138a: 0x0083, 0x138b: 0x0085,
- 0x138c: 0x0087, 0x138d: 0x0089, 0x138e: 0x008b, 0x138f: 0x008d, 0x1390: 0x008f, 0x1391: 0x0091,
- 0x1392: 0x0093, 0x1393: 0x0095, 0x1394: 0x0097, 0x1395: 0x0099, 0x1396: 0x009b, 0x1397: 0x009d,
- 0x1398: 0x009f, 0x1399: 0x00a1, 0x139a: 0x00a3, 0x139b: 0x00a5, 0x139c: 0x00a7, 0x139d: 0x00a9,
- 0x139e: 0x00ab, 0x139f: 0x00ad, 0x13a0: 0x00af, 0x13a1: 0x00b1, 0x13a2: 0x00b3, 0x13a3: 0x00b5,
- 0x13a4: 0x00dd, 0x13a5: 0x00f2, 0x13a8: 0x0173, 0x13a9: 0x0176,
- 0x13aa: 0x0179, 0x13ab: 0x017c, 0x13ac: 0x017f, 0x13ad: 0x0182, 0x13ae: 0x0185, 0x13af: 0x0188,
- 0x13b0: 0x018b, 0x13b1: 0x018e, 0x13b2: 0x0191, 0x13b3: 0x0194, 0x13b4: 0x0197, 0x13b5: 0x019a,
- 0x13b6: 0x019d, 0x13b7: 0x01a0, 0x13b8: 0x01a3, 0x13b9: 0x0188, 0x13ba: 0x01a6, 0x13bb: 0x01a9,
- 0x13bc: 0x01ac, 0x13bd: 0x01af, 0x13be: 0x01b2, 0x13bf: 0x01b5,
- // Block 0x4f, offset 0x13c0
- 0x13c0: 0x01fd, 0x13c1: 0x0200, 0x13c2: 0x0203, 0x13c3: 0x045b, 0x13c4: 0x01c7, 0x13c5: 0x01d0,
- 0x13c6: 0x01d6, 0x13c7: 0x01fa, 0x13c8: 0x01eb, 0x13c9: 0x01e8, 0x13ca: 0x0206, 0x13cb: 0x0209,
- 0x13ce: 0x0021, 0x13cf: 0x0023, 0x13d0: 0x0025, 0x13d1: 0x0027,
- 0x13d2: 0x0029, 0x13d3: 0x002b, 0x13d4: 0x002d, 0x13d5: 0x002f, 0x13d6: 0x0031, 0x13d7: 0x0033,
- 0x13d8: 0x0021, 0x13d9: 0x0023, 0x13da: 0x0025, 0x13db: 0x0027, 0x13dc: 0x0029, 0x13dd: 0x002b,
- 0x13de: 0x002d, 0x13df: 0x002f, 0x13e0: 0x0031, 0x13e1: 0x0033, 0x13e2: 0x0021, 0x13e3: 0x0023,
- 0x13e4: 0x0025, 0x13e5: 0x0027, 0x13e6: 0x0029, 0x13e7: 0x002b, 0x13e8: 0x002d, 0x13e9: 0x002f,
- 0x13ea: 0x0031, 0x13eb: 0x0033, 0x13ec: 0x0021, 0x13ed: 0x0023, 0x13ee: 0x0025, 0x13ef: 0x0027,
- 0x13f0: 0x0029, 0x13f1: 0x002b, 0x13f2: 0x002d, 0x13f3: 0x002f, 0x13f4: 0x0031, 0x13f5: 0x0033,
- 0x13f6: 0x0021, 0x13f7: 0x0023, 0x13f8: 0x0025, 0x13f9: 0x0027, 0x13fa: 0x0029, 0x13fb: 0x002b,
- 0x13fc: 0x002d, 0x13fd: 0x002f, 0x13fe: 0x0031, 0x13ff: 0x0033,
- // Block 0x50, offset 0x1400
- 0x1400: 0x0239, 0x1401: 0x023c, 0x1402: 0x0248, 0x1403: 0x0251, 0x1405: 0x028a,
- 0x1406: 0x025a, 0x1407: 0x024b, 0x1408: 0x0269, 0x1409: 0x0290, 0x140a: 0x027b, 0x140b: 0x027e,
- 0x140c: 0x0281, 0x140d: 0x0284, 0x140e: 0x025d, 0x140f: 0x026f, 0x1410: 0x0275, 0x1411: 0x0263,
- 0x1412: 0x0278, 0x1413: 0x0257, 0x1414: 0x0260, 0x1415: 0x0242, 0x1416: 0x0245, 0x1417: 0x024e,
- 0x1418: 0x0254, 0x1419: 0x0266, 0x141a: 0x026c, 0x141b: 0x0272, 0x141c: 0x0293, 0x141d: 0x02e4,
- 0x141e: 0x02cc, 0x141f: 0x0296, 0x1421: 0x023c, 0x1422: 0x0248,
- 0x1424: 0x0287, 0x1427: 0x024b, 0x1429: 0x0290,
- 0x142a: 0x027b, 0x142b: 0x027e, 0x142c: 0x0281, 0x142d: 0x0284, 0x142e: 0x025d, 0x142f: 0x026f,
- 0x1430: 0x0275, 0x1431: 0x0263, 0x1432: 0x0278, 0x1434: 0x0260, 0x1435: 0x0242,
- 0x1436: 0x0245, 0x1437: 0x024e, 0x1439: 0x0266, 0x143b: 0x0272,
- // Block 0x51, offset 0x1440
- 0x1442: 0x0248,
- 0x1447: 0x024b, 0x1449: 0x0290, 0x144b: 0x027e,
- 0x144d: 0x0284, 0x144e: 0x025d, 0x144f: 0x026f, 0x1451: 0x0263,
- 0x1452: 0x0278, 0x1454: 0x0260, 0x1457: 0x024e,
- 0x1459: 0x0266, 0x145b: 0x0272, 0x145d: 0x02e4,
- 0x145f: 0x0296, 0x1461: 0x023c, 0x1462: 0x0248,
- 0x1464: 0x0287, 0x1467: 0x024b, 0x1468: 0x0269, 0x1469: 0x0290,
- 0x146a: 0x027b, 0x146c: 0x0281, 0x146d: 0x0284, 0x146e: 0x025d, 0x146f: 0x026f,
- 0x1470: 0x0275, 0x1471: 0x0263, 0x1472: 0x0278, 0x1474: 0x0260, 0x1475: 0x0242,
- 0x1476: 0x0245, 0x1477: 0x024e, 0x1479: 0x0266, 0x147a: 0x026c, 0x147b: 0x0272,
- 0x147c: 0x0293, 0x147e: 0x02cc,
- // Block 0x52, offset 0x1480
- 0x1480: 0x0239, 0x1481: 0x023c, 0x1482: 0x0248, 0x1483: 0x0251, 0x1484: 0x0287, 0x1485: 0x028a,
- 0x1486: 0x025a, 0x1487: 0x024b, 0x1488: 0x0269, 0x1489: 0x0290, 0x148b: 0x027e,
- 0x148c: 0x0281, 0x148d: 0x0284, 0x148e: 0x025d, 0x148f: 0x026f, 0x1490: 0x0275, 0x1491: 0x0263,
- 0x1492: 0x0278, 0x1493: 0x0257, 0x1494: 0x0260, 0x1495: 0x0242, 0x1496: 0x0245, 0x1497: 0x024e,
- 0x1498: 0x0254, 0x1499: 0x0266, 0x149a: 0x026c, 0x149b: 0x0272,
- 0x14a1: 0x023c, 0x14a2: 0x0248, 0x14a3: 0x0251,
- 0x14a5: 0x028a, 0x14a6: 0x025a, 0x14a7: 0x024b, 0x14a8: 0x0269, 0x14a9: 0x0290,
- 0x14ab: 0x027e, 0x14ac: 0x0281, 0x14ad: 0x0284, 0x14ae: 0x025d, 0x14af: 0x026f,
- 0x14b0: 0x0275, 0x14b1: 0x0263, 0x14b2: 0x0278, 0x14b3: 0x0257, 0x14b4: 0x0260, 0x14b5: 0x0242,
- 0x14b6: 0x0245, 0x14b7: 0x024e, 0x14b8: 0x0254, 0x14b9: 0x0266, 0x14ba: 0x026c, 0x14bb: 0x0272,
- // Block 0x53, offset 0x14c0
- 0x14c0: 0x1879, 0x14c1: 0x1876, 0x14c2: 0x187c, 0x14c3: 0x18a0, 0x14c4: 0x18c4, 0x14c5: 0x18e8,
- 0x14c6: 0x190c, 0x14c7: 0x1915, 0x14c8: 0x191b, 0x14c9: 0x1921, 0x14ca: 0x1927,
- 0x14d0: 0x1a8c, 0x14d1: 0x1a90,
- 0x14d2: 0x1a94, 0x14d3: 0x1a98, 0x14d4: 0x1a9c, 0x14d5: 0x1aa0, 0x14d6: 0x1aa4, 0x14d7: 0x1aa8,
- 0x14d8: 0x1aac, 0x14d9: 0x1ab0, 0x14da: 0x1ab4, 0x14db: 0x1ab8, 0x14dc: 0x1abc, 0x14dd: 0x1ac0,
- 0x14de: 0x1ac4, 0x14df: 0x1ac8, 0x14e0: 0x1acc, 0x14e1: 0x1ad0, 0x14e2: 0x1ad4, 0x14e3: 0x1ad8,
- 0x14e4: 0x1adc, 0x14e5: 0x1ae0, 0x14e6: 0x1ae4, 0x14e7: 0x1ae8, 0x14e8: 0x1aec, 0x14e9: 0x1af0,
- 0x14ea: 0x271e, 0x14eb: 0x0047, 0x14ec: 0x0065, 0x14ed: 0x193c, 0x14ee: 0x19b1,
- 0x14f0: 0x0043, 0x14f1: 0x0045, 0x14f2: 0x0047, 0x14f3: 0x0049, 0x14f4: 0x004b, 0x14f5: 0x004d,
- 0x14f6: 0x004f, 0x14f7: 0x0051, 0x14f8: 0x0053, 0x14f9: 0x0055, 0x14fa: 0x0057, 0x14fb: 0x0059,
- 0x14fc: 0x005b, 0x14fd: 0x005d, 0x14fe: 0x005f, 0x14ff: 0x0061,
- // Block 0x54, offset 0x1500
- 0x1500: 0x26ad, 0x1501: 0x26c2, 0x1502: 0x0503,
- 0x1510: 0x0c0f, 0x1511: 0x0a47,
- 0x1512: 0x08d3, 0x1513: 0x45c4, 0x1514: 0x071b, 0x1515: 0x09ef, 0x1516: 0x132f, 0x1517: 0x09ff,
- 0x1518: 0x0727, 0x1519: 0x0cd7, 0x151a: 0x0eaf, 0x151b: 0x0caf, 0x151c: 0x0827, 0x151d: 0x0b6b,
- 0x151e: 0x07bf, 0x151f: 0x0cb7, 0x1520: 0x0813, 0x1521: 0x1117, 0x1522: 0x0f83, 0x1523: 0x138b,
- 0x1524: 0x09d3, 0x1525: 0x090b, 0x1526: 0x0e63, 0x1527: 0x0c1b, 0x1528: 0x0c47, 0x1529: 0x06bf,
- 0x152a: 0x06cb, 0x152b: 0x140b, 0x152c: 0x0adb, 0x152d: 0x06e7, 0x152e: 0x08ef, 0x152f: 0x0c3b,
- 0x1530: 0x13b3, 0x1531: 0x0c13, 0x1532: 0x106f, 0x1533: 0x10ab, 0x1534: 0x08f7, 0x1535: 0x0e43,
- 0x1536: 0x0d0b, 0x1537: 0x0d07, 0x1538: 0x0f97, 0x1539: 0x082b, 0x153a: 0x0957, 0x153b: 0x1443,
- // Block 0x55, offset 0x1540
- 0x1540: 0x06fb, 0x1541: 0x06f3, 0x1542: 0x0703, 0x1543: 0x1647, 0x1544: 0x0747, 0x1545: 0x0757,
- 0x1546: 0x075b, 0x1547: 0x0763, 0x1548: 0x076b, 0x1549: 0x076f, 0x154a: 0x077b, 0x154b: 0x0773,
- 0x154c: 0x05b3, 0x154d: 0x165b, 0x154e: 0x078f, 0x154f: 0x0793, 0x1550: 0x0797, 0x1551: 0x07b3,
- 0x1552: 0x164c, 0x1553: 0x05b7, 0x1554: 0x079f, 0x1555: 0x07bf, 0x1556: 0x1656, 0x1557: 0x07cf,
- 0x1558: 0x07d7, 0x1559: 0x0737, 0x155a: 0x07df, 0x155b: 0x07e3, 0x155c: 0x1831, 0x155d: 0x07ff,
- 0x155e: 0x0807, 0x155f: 0x05bf, 0x1560: 0x081f, 0x1561: 0x0823, 0x1562: 0x082b, 0x1563: 0x082f,
- 0x1564: 0x05c3, 0x1565: 0x0847, 0x1566: 0x084b, 0x1567: 0x0857, 0x1568: 0x0863, 0x1569: 0x0867,
- 0x156a: 0x086b, 0x156b: 0x0873, 0x156c: 0x0893, 0x156d: 0x0897, 0x156e: 0x089f, 0x156f: 0x08af,
- 0x1570: 0x08b7, 0x1571: 0x08bb, 0x1572: 0x08bb, 0x1573: 0x08bb, 0x1574: 0x166a, 0x1575: 0x0e93,
- 0x1576: 0x08cf, 0x1577: 0x08d7, 0x1578: 0x166f, 0x1579: 0x08e3, 0x157a: 0x08eb, 0x157b: 0x08f3,
- 0x157c: 0x091b, 0x157d: 0x0907, 0x157e: 0x0913, 0x157f: 0x0917,
- // Block 0x56, offset 0x1580
- 0x1580: 0x091f, 0x1581: 0x0927, 0x1582: 0x092b, 0x1583: 0x0933, 0x1584: 0x093b, 0x1585: 0x093f,
- 0x1586: 0x093f, 0x1587: 0x0947, 0x1588: 0x094f, 0x1589: 0x0953, 0x158a: 0x095f, 0x158b: 0x0983,
- 0x158c: 0x0967, 0x158d: 0x0987, 0x158e: 0x096b, 0x158f: 0x0973, 0x1590: 0x080b, 0x1591: 0x09cf,
- 0x1592: 0x0997, 0x1593: 0x099b, 0x1594: 0x099f, 0x1595: 0x0993, 0x1596: 0x09a7, 0x1597: 0x09a3,
- 0x1598: 0x09bb, 0x1599: 0x1674, 0x159a: 0x09d7, 0x159b: 0x09db, 0x159c: 0x09e3, 0x159d: 0x09ef,
- 0x159e: 0x09f7, 0x159f: 0x0a13, 0x15a0: 0x1679, 0x15a1: 0x167e, 0x15a2: 0x0a1f, 0x15a3: 0x0a23,
- 0x15a4: 0x0a27, 0x15a5: 0x0a1b, 0x15a6: 0x0a2f, 0x15a7: 0x05c7, 0x15a8: 0x05cb, 0x15a9: 0x0a37,
- 0x15aa: 0x0a3f, 0x15ab: 0x0a3f, 0x15ac: 0x1683, 0x15ad: 0x0a5b, 0x15ae: 0x0a5f, 0x15af: 0x0a63,
- 0x15b0: 0x0a6b, 0x15b1: 0x1688, 0x15b2: 0x0a73, 0x15b3: 0x0a77, 0x15b4: 0x0b4f, 0x15b5: 0x0a7f,
- 0x15b6: 0x05cf, 0x15b7: 0x0a8b, 0x15b8: 0x0a9b, 0x15b9: 0x0aa7, 0x15ba: 0x0aa3, 0x15bb: 0x1692,
- 0x15bc: 0x0aaf, 0x15bd: 0x1697, 0x15be: 0x0abb, 0x15bf: 0x0ab7,
- // Block 0x57, offset 0x15c0
- 0x15c0: 0x0abf, 0x15c1: 0x0acf, 0x15c2: 0x0ad3, 0x15c3: 0x05d3, 0x15c4: 0x0ae3, 0x15c5: 0x0aeb,
- 0x15c6: 0x0aef, 0x15c7: 0x0af3, 0x15c8: 0x05d7, 0x15c9: 0x169c, 0x15ca: 0x05db, 0x15cb: 0x0b0f,
- 0x15cc: 0x0b13, 0x15cd: 0x0b17, 0x15ce: 0x0b1f, 0x15cf: 0x1863, 0x15d0: 0x0b37, 0x15d1: 0x16a6,
- 0x15d2: 0x16a6, 0x15d3: 0x11d7, 0x15d4: 0x0b47, 0x15d5: 0x0b47, 0x15d6: 0x05df, 0x15d7: 0x16c9,
- 0x15d8: 0x179b, 0x15d9: 0x0b57, 0x15da: 0x0b5f, 0x15db: 0x05e3, 0x15dc: 0x0b73, 0x15dd: 0x0b83,
- 0x15de: 0x0b87, 0x15df: 0x0b8f, 0x15e0: 0x0b9f, 0x15e1: 0x05eb, 0x15e2: 0x05e7, 0x15e3: 0x0ba3,
- 0x15e4: 0x16ab, 0x15e5: 0x0ba7, 0x15e6: 0x0bbb, 0x15e7: 0x0bbf, 0x15e8: 0x0bc3, 0x15e9: 0x0bbf,
- 0x15ea: 0x0bcf, 0x15eb: 0x0bd3, 0x15ec: 0x0be3, 0x15ed: 0x0bdb, 0x15ee: 0x0bdf, 0x15ef: 0x0be7,
- 0x15f0: 0x0beb, 0x15f1: 0x0bef, 0x15f2: 0x0bfb, 0x15f3: 0x0bff, 0x15f4: 0x0c17, 0x15f5: 0x0c1f,
- 0x15f6: 0x0c2f, 0x15f7: 0x0c43, 0x15f8: 0x16ba, 0x15f9: 0x0c3f, 0x15fa: 0x0c33, 0x15fb: 0x0c4b,
- 0x15fc: 0x0c53, 0x15fd: 0x0c67, 0x15fe: 0x16bf, 0x15ff: 0x0c6f,
- // Block 0x58, offset 0x1600
- 0x1600: 0x0c63, 0x1601: 0x0c5b, 0x1602: 0x05ef, 0x1603: 0x0c77, 0x1604: 0x0c7f, 0x1605: 0x0c87,
- 0x1606: 0x0c7b, 0x1607: 0x05f3, 0x1608: 0x0c97, 0x1609: 0x0c9f, 0x160a: 0x16c4, 0x160b: 0x0ccb,
- 0x160c: 0x0cff, 0x160d: 0x0cdb, 0x160e: 0x05ff, 0x160f: 0x0ce7, 0x1610: 0x05fb, 0x1611: 0x05f7,
- 0x1612: 0x07c3, 0x1613: 0x07c7, 0x1614: 0x0d03, 0x1615: 0x0ceb, 0x1616: 0x11ab, 0x1617: 0x0663,
- 0x1618: 0x0d0f, 0x1619: 0x0d13, 0x161a: 0x0d17, 0x161b: 0x0d2b, 0x161c: 0x0d23, 0x161d: 0x16dd,
- 0x161e: 0x0603, 0x161f: 0x0d3f, 0x1620: 0x0d33, 0x1621: 0x0d4f, 0x1622: 0x0d57, 0x1623: 0x16e7,
- 0x1624: 0x0d5b, 0x1625: 0x0d47, 0x1626: 0x0d63, 0x1627: 0x0607, 0x1628: 0x0d67, 0x1629: 0x0d6b,
- 0x162a: 0x0d6f, 0x162b: 0x0d7b, 0x162c: 0x16ec, 0x162d: 0x0d83, 0x162e: 0x060b, 0x162f: 0x0d8f,
- 0x1630: 0x16f1, 0x1631: 0x0d93, 0x1632: 0x060f, 0x1633: 0x0d9f, 0x1634: 0x0dab, 0x1635: 0x0db7,
- 0x1636: 0x0dbb, 0x1637: 0x16f6, 0x1638: 0x168d, 0x1639: 0x16fb, 0x163a: 0x0ddb, 0x163b: 0x1700,
- 0x163c: 0x0de7, 0x163d: 0x0def, 0x163e: 0x0ddf, 0x163f: 0x0dfb,
- // Block 0x59, offset 0x1640
- 0x1640: 0x0e0b, 0x1641: 0x0e1b, 0x1642: 0x0e0f, 0x1643: 0x0e13, 0x1644: 0x0e1f, 0x1645: 0x0e23,
- 0x1646: 0x1705, 0x1647: 0x0e07, 0x1648: 0x0e3b, 0x1649: 0x0e3f, 0x164a: 0x0613, 0x164b: 0x0e53,
- 0x164c: 0x0e4f, 0x164d: 0x170a, 0x164e: 0x0e33, 0x164f: 0x0e6f, 0x1650: 0x170f, 0x1651: 0x1714,
- 0x1652: 0x0e73, 0x1653: 0x0e87, 0x1654: 0x0e83, 0x1655: 0x0e7f, 0x1656: 0x0617, 0x1657: 0x0e8b,
- 0x1658: 0x0e9b, 0x1659: 0x0e97, 0x165a: 0x0ea3, 0x165b: 0x1651, 0x165c: 0x0eb3, 0x165d: 0x1719,
- 0x165e: 0x0ebf, 0x165f: 0x1723, 0x1660: 0x0ed3, 0x1661: 0x0edf, 0x1662: 0x0ef3, 0x1663: 0x1728,
- 0x1664: 0x0f07, 0x1665: 0x0f0b, 0x1666: 0x172d, 0x1667: 0x1732, 0x1668: 0x0f27, 0x1669: 0x0f37,
- 0x166a: 0x061b, 0x166b: 0x0f3b, 0x166c: 0x061f, 0x166d: 0x061f, 0x166e: 0x0f53, 0x166f: 0x0f57,
- 0x1670: 0x0f5f, 0x1671: 0x0f63, 0x1672: 0x0f6f, 0x1673: 0x0623, 0x1674: 0x0f87, 0x1675: 0x1737,
- 0x1676: 0x0fa3, 0x1677: 0x173c, 0x1678: 0x0faf, 0x1679: 0x16a1, 0x167a: 0x0fbf, 0x167b: 0x1741,
- 0x167c: 0x1746, 0x167d: 0x174b, 0x167e: 0x0627, 0x167f: 0x062b,
- // Block 0x5a, offset 0x1680
- 0x1680: 0x0ff7, 0x1681: 0x1755, 0x1682: 0x1750, 0x1683: 0x175a, 0x1684: 0x175f, 0x1685: 0x0fff,
- 0x1686: 0x1003, 0x1687: 0x1003, 0x1688: 0x100b, 0x1689: 0x0633, 0x168a: 0x100f, 0x168b: 0x0637,
- 0x168c: 0x063b, 0x168d: 0x1769, 0x168e: 0x1023, 0x168f: 0x102b, 0x1690: 0x1037, 0x1691: 0x063f,
- 0x1692: 0x176e, 0x1693: 0x105b, 0x1694: 0x1773, 0x1695: 0x1778, 0x1696: 0x107b, 0x1697: 0x1093,
- 0x1698: 0x0643, 0x1699: 0x109b, 0x169a: 0x109f, 0x169b: 0x10a3, 0x169c: 0x177d, 0x169d: 0x1782,
- 0x169e: 0x1782, 0x169f: 0x10bb, 0x16a0: 0x0647, 0x16a1: 0x1787, 0x16a2: 0x10cf, 0x16a3: 0x10d3,
- 0x16a4: 0x064b, 0x16a5: 0x178c, 0x16a6: 0x10ef, 0x16a7: 0x064f, 0x16a8: 0x10ff, 0x16a9: 0x10f7,
- 0x16aa: 0x1107, 0x16ab: 0x1796, 0x16ac: 0x111f, 0x16ad: 0x0653, 0x16ae: 0x112b, 0x16af: 0x1133,
- 0x16b0: 0x1143, 0x16b1: 0x0657, 0x16b2: 0x17a0, 0x16b3: 0x17a5, 0x16b4: 0x065b, 0x16b5: 0x17aa,
- 0x16b6: 0x115b, 0x16b7: 0x17af, 0x16b8: 0x1167, 0x16b9: 0x1173, 0x16ba: 0x117b, 0x16bb: 0x17b4,
- 0x16bc: 0x17b9, 0x16bd: 0x118f, 0x16be: 0x17be, 0x16bf: 0x1197,
- // Block 0x5b, offset 0x16c0
- 0x16c0: 0x16ce, 0x16c1: 0x065f, 0x16c2: 0x11af, 0x16c3: 0x11b3, 0x16c4: 0x0667, 0x16c5: 0x11b7,
- 0x16c6: 0x0a33, 0x16c7: 0x17c3, 0x16c8: 0x17c8, 0x16c9: 0x16d3, 0x16ca: 0x16d8, 0x16cb: 0x11d7,
- 0x16cc: 0x11db, 0x16cd: 0x13f3, 0x16ce: 0x066b, 0x16cf: 0x1207, 0x16d0: 0x1203, 0x16d1: 0x120b,
- 0x16d2: 0x083f, 0x16d3: 0x120f, 0x16d4: 0x1213, 0x16d5: 0x1217, 0x16d6: 0x121f, 0x16d7: 0x17cd,
- 0x16d8: 0x121b, 0x16d9: 0x1223, 0x16da: 0x1237, 0x16db: 0x123b, 0x16dc: 0x1227, 0x16dd: 0x123f,
- 0x16de: 0x1253, 0x16df: 0x1267, 0x16e0: 0x1233, 0x16e1: 0x1247, 0x16e2: 0x124b, 0x16e3: 0x124f,
- 0x16e4: 0x17d2, 0x16e5: 0x17dc, 0x16e6: 0x17d7, 0x16e7: 0x066f, 0x16e8: 0x126f, 0x16e9: 0x1273,
- 0x16ea: 0x127b, 0x16eb: 0x17f0, 0x16ec: 0x127f, 0x16ed: 0x17e1, 0x16ee: 0x0673, 0x16ef: 0x0677,
- 0x16f0: 0x17e6, 0x16f1: 0x17eb, 0x16f2: 0x067b, 0x16f3: 0x129f, 0x16f4: 0x12a3, 0x16f5: 0x12a7,
- 0x16f6: 0x12ab, 0x16f7: 0x12b7, 0x16f8: 0x12b3, 0x16f9: 0x12bf, 0x16fa: 0x12bb, 0x16fb: 0x12cb,
- 0x16fc: 0x12c3, 0x16fd: 0x12c7, 0x16fe: 0x12cf, 0x16ff: 0x067f,
- // Block 0x5c, offset 0x1700
- 0x1700: 0x12d7, 0x1701: 0x12db, 0x1702: 0x0683, 0x1703: 0x12eb, 0x1704: 0x12ef, 0x1705: 0x17f5,
- 0x1706: 0x12fb, 0x1707: 0x12ff, 0x1708: 0x0687, 0x1709: 0x130b, 0x170a: 0x05bb, 0x170b: 0x17fa,
- 0x170c: 0x17ff, 0x170d: 0x068b, 0x170e: 0x068f, 0x170f: 0x1337, 0x1710: 0x134f, 0x1711: 0x136b,
- 0x1712: 0x137b, 0x1713: 0x1804, 0x1714: 0x138f, 0x1715: 0x1393, 0x1716: 0x13ab, 0x1717: 0x13b7,
- 0x1718: 0x180e, 0x1719: 0x1660, 0x171a: 0x13c3, 0x171b: 0x13bf, 0x171c: 0x13cb, 0x171d: 0x1665,
- 0x171e: 0x13d7, 0x171f: 0x13e3, 0x1720: 0x1813, 0x1721: 0x1818, 0x1722: 0x1423, 0x1723: 0x142f,
- 0x1724: 0x1437, 0x1725: 0x181d, 0x1726: 0x143b, 0x1727: 0x1467, 0x1728: 0x1473, 0x1729: 0x1477,
- 0x172a: 0x146f, 0x172b: 0x1483, 0x172c: 0x1487, 0x172d: 0x1822, 0x172e: 0x1493, 0x172f: 0x0693,
- 0x1730: 0x149b, 0x1731: 0x1827, 0x1732: 0x0697, 0x1733: 0x14d3, 0x1734: 0x0ac3, 0x1735: 0x14eb,
- 0x1736: 0x182c, 0x1737: 0x1836, 0x1738: 0x069b, 0x1739: 0x069f, 0x173a: 0x1513, 0x173b: 0x183b,
- 0x173c: 0x06a3, 0x173d: 0x1840, 0x173e: 0x152b, 0x173f: 0x152b,
- // Block 0x5d, offset 0x1740
- 0x1740: 0x1533, 0x1741: 0x1845, 0x1742: 0x154b, 0x1743: 0x06a7, 0x1744: 0x155b, 0x1745: 0x1567,
- 0x1746: 0x156f, 0x1747: 0x1577, 0x1748: 0x06ab, 0x1749: 0x184a, 0x174a: 0x158b, 0x174b: 0x15a7,
- 0x174c: 0x15b3, 0x174d: 0x06af, 0x174e: 0x06b3, 0x174f: 0x15b7, 0x1750: 0x184f, 0x1751: 0x06b7,
- 0x1752: 0x1854, 0x1753: 0x1859, 0x1754: 0x185e, 0x1755: 0x15db, 0x1756: 0x06bb, 0x1757: 0x15ef,
- 0x1758: 0x15f7, 0x1759: 0x15fb, 0x175a: 0x1603, 0x175b: 0x160b, 0x175c: 0x1613, 0x175d: 0x1868,
-}
-
-// nfkcIndex: 22 blocks, 1408 entries, 1408 bytes
-// Block 0 is the zero block.
-var nfkcIndex = [1408]uint8{
- // Block 0x0, offset 0x0
- // Block 0x1, offset 0x40
- // Block 0x2, offset 0x80
- // Block 0x3, offset 0xc0
- 0xc2: 0x5c, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x5d, 0xc7: 0x04,
- 0xc8: 0x05, 0xca: 0x5e, 0xcb: 0x5f, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x09,
- 0xd0: 0x0a, 0xd1: 0x60, 0xd2: 0x61, 0xd3: 0x0b, 0xd6: 0x0c, 0xd7: 0x62,
- 0xd8: 0x63, 0xd9: 0x0d, 0xdb: 0x64, 0xdc: 0x65, 0xdd: 0x66, 0xdf: 0x67,
- 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05,
- 0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a,
- 0xf0: 0x13,
- // Block 0x4, offset 0x100
- 0x120: 0x68, 0x121: 0x69, 0x123: 0x0e, 0x124: 0x6a, 0x125: 0x6b, 0x126: 0x6c, 0x127: 0x6d,
- 0x128: 0x6e, 0x129: 0x6f, 0x12a: 0x70, 0x12b: 0x71, 0x12c: 0x6c, 0x12d: 0x72, 0x12e: 0x73, 0x12f: 0x74,
- 0x131: 0x75, 0x132: 0x76, 0x133: 0x77, 0x134: 0x78, 0x135: 0x79, 0x137: 0x7a,
- 0x138: 0x7b, 0x139: 0x7c, 0x13a: 0x7d, 0x13b: 0x7e, 0x13c: 0x7f, 0x13d: 0x80, 0x13e: 0x81, 0x13f: 0x82,
- // Block 0x5, offset 0x140
- 0x140: 0x83, 0x142: 0x84, 0x143: 0x85, 0x144: 0x86, 0x145: 0x87, 0x146: 0x88, 0x147: 0x89,
- 0x14d: 0x8a,
- 0x15c: 0x8b, 0x15f: 0x8c,
- 0x162: 0x8d, 0x164: 0x8e,
- 0x168: 0x8f, 0x169: 0x90, 0x16a: 0x91, 0x16c: 0x0f, 0x16d: 0x92, 0x16e: 0x93, 0x16f: 0x94,
- 0x170: 0x95, 0x173: 0x96, 0x174: 0x97, 0x175: 0x10, 0x176: 0x11, 0x177: 0x12,
- 0x178: 0x13, 0x179: 0x14, 0x17a: 0x15, 0x17b: 0x16, 0x17c: 0x17, 0x17d: 0x18, 0x17e: 0x19, 0x17f: 0x1a,
- // Block 0x6, offset 0x180
- 0x180: 0x98, 0x181: 0x99, 0x182: 0x9a, 0x183: 0x9b, 0x184: 0x1b, 0x185: 0x1c, 0x186: 0x9c, 0x187: 0x9d,
- 0x188: 0x9e, 0x189: 0x1d, 0x18a: 0x1e, 0x18b: 0x9f, 0x18c: 0xa0,
- 0x191: 0x1f, 0x192: 0x20, 0x193: 0xa1,
- 0x1a8: 0xa2, 0x1a9: 0xa3, 0x1ab: 0xa4,
- 0x1b1: 0xa5, 0x1b3: 0xa6, 0x1b5: 0xa7, 0x1b7: 0xa8,
- 0x1ba: 0xa9, 0x1bb: 0xaa, 0x1bc: 0x21, 0x1bd: 0x22, 0x1be: 0x23, 0x1bf: 0xab,
- // Block 0x7, offset 0x1c0
- 0x1c0: 0xac, 0x1c1: 0x24, 0x1c2: 0x25, 0x1c3: 0x26, 0x1c4: 0xad, 0x1c5: 0x27, 0x1c6: 0x28,
- 0x1c8: 0x29, 0x1c9: 0x2a, 0x1ca: 0x2b, 0x1cb: 0x2c, 0x1cc: 0x2d, 0x1cd: 0x2e, 0x1ce: 0x2f, 0x1cf: 0x30,
- // Block 0x8, offset 0x200
- 0x219: 0xae, 0x21a: 0xaf, 0x21b: 0xb0, 0x21d: 0xb1, 0x21f: 0xb2,
- 0x220: 0xb3, 0x223: 0xb4, 0x224: 0xb5, 0x225: 0xb6, 0x226: 0xb7, 0x227: 0xb8,
- 0x22a: 0xb9, 0x22b: 0xba, 0x22d: 0xbb, 0x22f: 0xbc,
- 0x230: 0xbd, 0x231: 0xbe, 0x232: 0xbf, 0x233: 0xc0, 0x234: 0xc1, 0x235: 0xc2, 0x236: 0xc3, 0x237: 0xbd,
- 0x238: 0xbe, 0x239: 0xbf, 0x23a: 0xc0, 0x23b: 0xc1, 0x23c: 0xc2, 0x23d: 0xc3, 0x23e: 0xbd, 0x23f: 0xbe,
- // Block 0x9, offset 0x240
- 0x240: 0xbf, 0x241: 0xc0, 0x242: 0xc1, 0x243: 0xc2, 0x244: 0xc3, 0x245: 0xbd, 0x246: 0xbe, 0x247: 0xbf,
- 0x248: 0xc0, 0x249: 0xc1, 0x24a: 0xc2, 0x24b: 0xc3, 0x24c: 0xbd, 0x24d: 0xbe, 0x24e: 0xbf, 0x24f: 0xc0,
- 0x250: 0xc1, 0x251: 0xc2, 0x252: 0xc3, 0x253: 0xbd, 0x254: 0xbe, 0x255: 0xbf, 0x256: 0xc0, 0x257: 0xc1,
- 0x258: 0xc2, 0x259: 0xc3, 0x25a: 0xbd, 0x25b: 0xbe, 0x25c: 0xbf, 0x25d: 0xc0, 0x25e: 0xc1, 0x25f: 0xc2,
- 0x260: 0xc3, 0x261: 0xbd, 0x262: 0xbe, 0x263: 0xbf, 0x264: 0xc0, 0x265: 0xc1, 0x266: 0xc2, 0x267: 0xc3,
- 0x268: 0xbd, 0x269: 0xbe, 0x26a: 0xbf, 0x26b: 0xc0, 0x26c: 0xc1, 0x26d: 0xc2, 0x26e: 0xc3, 0x26f: 0xbd,
- 0x270: 0xbe, 0x271: 0xbf, 0x272: 0xc0, 0x273: 0xc1, 0x274: 0xc2, 0x275: 0xc3, 0x276: 0xbd, 0x277: 0xbe,
- 0x278: 0xbf, 0x279: 0xc0, 0x27a: 0xc1, 0x27b: 0xc2, 0x27c: 0xc3, 0x27d: 0xbd, 0x27e: 0xbe, 0x27f: 0xbf,
- // Block 0xa, offset 0x280
- 0x280: 0xc0, 0x281: 0xc1, 0x282: 0xc2, 0x283: 0xc3, 0x284: 0xbd, 0x285: 0xbe, 0x286: 0xbf, 0x287: 0xc0,
- 0x288: 0xc1, 0x289: 0xc2, 0x28a: 0xc3, 0x28b: 0xbd, 0x28c: 0xbe, 0x28d: 0xbf, 0x28e: 0xc0, 0x28f: 0xc1,
- 0x290: 0xc2, 0x291: 0xc3, 0x292: 0xbd, 0x293: 0xbe, 0x294: 0xbf, 0x295: 0xc0, 0x296: 0xc1, 0x297: 0xc2,
- 0x298: 0xc3, 0x299: 0xbd, 0x29a: 0xbe, 0x29b: 0xbf, 0x29c: 0xc0, 0x29d: 0xc1, 0x29e: 0xc2, 0x29f: 0xc3,
- 0x2a0: 0xbd, 0x2a1: 0xbe, 0x2a2: 0xbf, 0x2a3: 0xc0, 0x2a4: 0xc1, 0x2a5: 0xc2, 0x2a6: 0xc3, 0x2a7: 0xbd,
- 0x2a8: 0xbe, 0x2a9: 0xbf, 0x2aa: 0xc0, 0x2ab: 0xc1, 0x2ac: 0xc2, 0x2ad: 0xc3, 0x2ae: 0xbd, 0x2af: 0xbe,
- 0x2b0: 0xbf, 0x2b1: 0xc0, 0x2b2: 0xc1, 0x2b3: 0xc2, 0x2b4: 0xc3, 0x2b5: 0xbd, 0x2b6: 0xbe, 0x2b7: 0xbf,
- 0x2b8: 0xc0, 0x2b9: 0xc1, 0x2ba: 0xc2, 0x2bb: 0xc3, 0x2bc: 0xbd, 0x2bd: 0xbe, 0x2be: 0xbf, 0x2bf: 0xc0,
- // Block 0xb, offset 0x2c0
- 0x2c0: 0xc1, 0x2c1: 0xc2, 0x2c2: 0xc3, 0x2c3: 0xbd, 0x2c4: 0xbe, 0x2c5: 0xbf, 0x2c6: 0xc0, 0x2c7: 0xc1,
- 0x2c8: 0xc2, 0x2c9: 0xc3, 0x2ca: 0xbd, 0x2cb: 0xbe, 0x2cc: 0xbf, 0x2cd: 0xc0, 0x2ce: 0xc1, 0x2cf: 0xc2,
- 0x2d0: 0xc3, 0x2d1: 0xbd, 0x2d2: 0xbe, 0x2d3: 0xbf, 0x2d4: 0xc0, 0x2d5: 0xc1, 0x2d6: 0xc2, 0x2d7: 0xc3,
- 0x2d8: 0xbd, 0x2d9: 0xbe, 0x2da: 0xbf, 0x2db: 0xc0, 0x2dc: 0xc1, 0x2dd: 0xc2, 0x2de: 0xc4,
- // Block 0xc, offset 0x300
- 0x324: 0x31, 0x325: 0x32, 0x326: 0x33, 0x327: 0x34,
- 0x328: 0x35, 0x329: 0x36, 0x32a: 0x37, 0x32b: 0x38, 0x32c: 0x39, 0x32d: 0x3a, 0x32e: 0x3b, 0x32f: 0x3c,
- 0x330: 0x3d, 0x331: 0x3e, 0x332: 0x3f, 0x333: 0x40, 0x334: 0x41, 0x335: 0x42, 0x336: 0x43, 0x337: 0x44,
- 0x338: 0x45, 0x339: 0x46, 0x33a: 0x47, 0x33b: 0x48, 0x33c: 0xc5, 0x33d: 0x49, 0x33e: 0x4a, 0x33f: 0x4b,
- // Block 0xd, offset 0x340
- 0x347: 0xc6,
- 0x34b: 0xc7, 0x34d: 0xc8,
- 0x368: 0xc9, 0x36b: 0xca,
- 0x374: 0xcb,
- 0x37d: 0xcc,
- // Block 0xe, offset 0x380
- 0x381: 0xcd, 0x382: 0xce, 0x384: 0xcf, 0x385: 0xb7, 0x387: 0xd0,
- 0x388: 0xd1, 0x38b: 0xd2, 0x38c: 0xd3, 0x38d: 0xd4,
- 0x391: 0xd5, 0x392: 0xd6, 0x393: 0xd7, 0x396: 0xd8, 0x397: 0xd9,
- 0x398: 0xda, 0x39a: 0xdb, 0x39c: 0xdc,
- 0x3a0: 0xdd,
- 0x3a8: 0xde, 0x3a9: 0xdf, 0x3aa: 0xe0,
- 0x3b0: 0xda, 0x3b5: 0xe1, 0x3b6: 0xe2,
- // Block 0xf, offset 0x3c0
- 0x3eb: 0xe3, 0x3ec: 0xe4,
- // Block 0x10, offset 0x400
- 0x432: 0xe5,
- // Block 0x11, offset 0x440
- 0x445: 0xe6, 0x446: 0xe7, 0x447: 0xe8,
- 0x449: 0xe9,
- 0x450: 0xea, 0x451: 0xeb, 0x452: 0xec, 0x453: 0xed, 0x454: 0xee, 0x455: 0xef, 0x456: 0xf0, 0x457: 0xf1,
- 0x458: 0xf2, 0x459: 0xf3, 0x45a: 0x4c, 0x45b: 0xf4, 0x45c: 0xf5, 0x45d: 0xf6, 0x45e: 0xf7, 0x45f: 0x4d,
- // Block 0x12, offset 0x480
- 0x480: 0xf8,
- 0x4a3: 0xf9, 0x4a5: 0xfa,
- 0x4b8: 0x4e, 0x4b9: 0x4f, 0x4ba: 0x50,
- // Block 0x13, offset 0x4c0
- 0x4c4: 0x51, 0x4c5: 0xfb, 0x4c6: 0xfc,
- 0x4c8: 0x52, 0x4c9: 0xfd,
- // Block 0x14, offset 0x500
- 0x520: 0x53, 0x521: 0x54, 0x522: 0x55, 0x523: 0x56, 0x524: 0x57, 0x525: 0x58, 0x526: 0x59, 0x527: 0x5a,
- 0x528: 0x5b,
- // Block 0x15, offset 0x540
- 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d,
- 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,
- 0x56f: 0x12,
-}
-
-// nfkcSparseOffset: 162 entries, 324 bytes
-var nfkcSparseOffset = []uint16{0x0, 0xe, 0x12, 0x1b, 0x25, 0x35, 0x37, 0x3c, 0x47, 0x56, 0x63, 0x6b, 0x70, 0x75, 0x77, 0x7f, 0x86, 0x89, 0x91, 0x95, 0x99, 0x9b, 0x9d, 0xa6, 0xaa, 0xb1, 0xb6, 0xb9, 0xc3, 0xc6, 0xcd, 0xd5, 0xd9, 0xdb, 0xde, 0xe2, 0xe8, 0xf9, 0x105, 0x107, 0x10d, 0x10f, 0x111, 0x113, 0x115, 0x117, 0x119, 0x11b, 0x11e, 0x121, 0x123, 0x126, 0x129, 0x12d, 0x132, 0x13b, 0x13d, 0x140, 0x142, 0x14d, 0x158, 0x166, 0x174, 0x184, 0x192, 0x199, 0x19f, 0x1ae, 0x1b2, 0x1b4, 0x1b8, 0x1ba, 0x1bd, 0x1bf, 0x1c2, 0x1c4, 0x1c7, 0x1c9, 0x1cb, 0x1cd, 0x1d9, 0x1e3, 0x1ed, 0x1f0, 0x1f4, 0x1f6, 0x1f8, 0x1fa, 0x1fc, 0x1ff, 0x201, 0x203, 0x205, 0x207, 0x20d, 0x210, 0x214, 0x216, 0x21d, 0x223, 0x229, 0x231, 0x237, 0x23d, 0x243, 0x247, 0x249, 0x24b, 0x24d, 0x24f, 0x255, 0x258, 0x25a, 0x260, 0x263, 0x26b, 0x272, 0x275, 0x278, 0x27a, 0x27d, 0x285, 0x289, 0x290, 0x293, 0x299, 0x29b, 0x29d, 0x2a0, 0x2a2, 0x2a5, 0x2a7, 0x2a9, 0x2ab, 0x2ae, 0x2b0, 0x2b2, 0x2b4, 0x2b6, 0x2c3, 0x2cd, 0x2cf, 0x2d1, 0x2d5, 0x2da, 0x2e6, 0x2eb, 0x2f4, 0x2fa, 0x2ff, 0x303, 0x308, 0x30c, 0x31c, 0x32a, 0x338, 0x346, 0x34c, 0x34e, 0x351, 0x35b, 0x35d}
-
-// nfkcSparseValues: 871 entries, 3484 bytes
-var nfkcSparseValues = [871]valueRange{
- // Block 0x0, offset 0x0
- {value: 0x0002, lo: 0x0d},
- {value: 0x0001, lo: 0xa0, hi: 0xa0},
- {value: 0x4278, lo: 0xa8, hi: 0xa8},
- {value: 0x0083, lo: 0xaa, hi: 0xaa},
- {value: 0x4264, lo: 0xaf, hi: 0xaf},
- {value: 0x0025, lo: 0xb2, hi: 0xb3},
- {value: 0x425a, lo: 0xb4, hi: 0xb4},
- {value: 0x01dc, lo: 0xb5, hi: 0xb5},
- {value: 0x4291, lo: 0xb8, hi: 0xb8},
- {value: 0x0023, lo: 0xb9, hi: 0xb9},
- {value: 0x009f, lo: 0xba, hi: 0xba},
- {value: 0x221c, lo: 0xbc, hi: 0xbc},
- {value: 0x2210, lo: 0xbd, hi: 0xbd},
- {value: 0x22b2, lo: 0xbe, hi: 0xbe},
- // Block 0x1, offset 0xe
- {value: 0x0091, lo: 0x03},
- {value: 0x46e2, lo: 0xa0, hi: 0xa1},
- {value: 0x4714, lo: 0xaf, hi: 0xb0},
- {value: 0xa000, lo: 0xb7, hi: 0xb7},
- // Block 0x2, offset 0x12
- {value: 0x0003, lo: 0x08},
- {value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0x0091, lo: 0xb0, hi: 0xb0},
- {value: 0x0119, lo: 0xb1, hi: 0xb1},
- {value: 0x0095, lo: 0xb2, hi: 0xb2},
- {value: 0x00a5, lo: 0xb3, hi: 0xb3},
- {value: 0x0143, lo: 0xb4, hi: 0xb6},
- {value: 0x00af, lo: 0xb7, hi: 0xb7},
- {value: 0x00b3, lo: 0xb8, hi: 0xb8},
- // Block 0x3, offset 0x1b
- {value: 0x000a, lo: 0x09},
- {value: 0x426e, lo: 0x98, hi: 0x98},
- {value: 0x4273, lo: 0x99, hi: 0x9a},
- {value: 0x4296, lo: 0x9b, hi: 0x9b},
- {value: 0x425f, lo: 0x9c, hi: 0x9c},
- {value: 0x4282, lo: 0x9d, hi: 0x9d},
- {value: 0x0113, lo: 0xa0, hi: 0xa0},
- {value: 0x0099, lo: 0xa1, hi: 0xa1},
- {value: 0x00a7, lo: 0xa2, hi: 0xa3},
- {value: 0x0167, lo: 0xa4, hi: 0xa4},
- // Block 0x4, offset 0x25
- {value: 0x0000, lo: 0x0f},
- {value: 0xa000, lo: 0x83, hi: 0x83},
- {value: 0xa000, lo: 0x87, hi: 0x87},
- {value: 0xa000, lo: 0x8b, hi: 0x8b},
- {value: 0xa000, lo: 0x8d, hi: 0x8d},
- {value: 0x37a5, lo: 0x90, hi: 0x90},
- {value: 0x37b1, lo: 0x91, hi: 0x91},
- {value: 0x379f, lo: 0x93, hi: 0x93},
- {value: 0xa000, lo: 0x96, hi: 0x96},
- {value: 0x3817, lo: 0x97, hi: 0x97},
- {value: 0x37e1, lo: 0x9c, hi: 0x9c},
- {value: 0x37c9, lo: 0x9d, hi: 0x9d},
- {value: 0x37f3, lo: 0x9e, hi: 0x9e},
- {value: 0xa000, lo: 0xb4, hi: 0xb5},
- {value: 0x381d, lo: 0xb6, hi: 0xb6},
- {value: 0x3823, lo: 0xb7, hi: 0xb7},
- // Block 0x5, offset 0x35
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0x83, hi: 0x87},
- // Block 0x6, offset 0x37
- {value: 0x0001, lo: 0x04},
- {value: 0x8113, lo: 0x81, hi: 0x82},
- {value: 0x8132, lo: 0x84, hi: 0x84},
- {value: 0x812d, lo: 0x85, hi: 0x85},
- {value: 0x810d, lo: 0x87, hi: 0x87},
- // Block 0x7, offset 0x3c
- {value: 0x0000, lo: 0x0a},
- {value: 0x8132, lo: 0x90, hi: 0x97},
- {value: 0x8119, lo: 0x98, hi: 0x98},
- {value: 0x811a, lo: 0x99, hi: 0x99},
- {value: 0x811b, lo: 0x9a, hi: 0x9a},
- {value: 0x3841, lo: 0xa2, hi: 0xa2},
- {value: 0x3847, lo: 0xa3, hi: 0xa3},
- {value: 0x3853, lo: 0xa4, hi: 0xa4},
- {value: 0x384d, lo: 0xa5, hi: 0xa5},
- {value: 0x3859, lo: 0xa6, hi: 0xa6},
- {value: 0xa000, lo: 0xa7, hi: 0xa7},
- // Block 0x8, offset 0x47
- {value: 0x0000, lo: 0x0e},
- {value: 0x386b, lo: 0x80, hi: 0x80},
- {value: 0xa000, lo: 0x81, hi: 0x81},
- {value: 0x385f, lo: 0x82, hi: 0x82},
- {value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0x3865, lo: 0x93, hi: 0x93},
- {value: 0xa000, lo: 0x95, hi: 0x95},
- {value: 0x8132, lo: 0x96, hi: 0x9c},
- {value: 0x8132, lo: 0x9f, hi: 0xa2},
- {value: 0x812d, lo: 0xa3, hi: 0xa3},
- {value: 0x8132, lo: 0xa4, hi: 0xa4},
- {value: 0x8132, lo: 0xa7, hi: 0xa8},
- {value: 0x812d, lo: 0xaa, hi: 0xaa},
- {value: 0x8132, lo: 0xab, hi: 0xac},
- {value: 0x812d, lo: 0xad, hi: 0xad},
- // Block 0x9, offset 0x56
- {value: 0x0000, lo: 0x0c},
- {value: 0x811f, lo: 0x91, hi: 0x91},
- {value: 0x8132, lo: 0xb0, hi: 0xb0},
- {value: 0x812d, lo: 0xb1, hi: 0xb1},
- {value: 0x8132, lo: 0xb2, hi: 0xb3},
- {value: 0x812d, lo: 0xb4, hi: 0xb4},
- {value: 0x8132, lo: 0xb5, hi: 0xb6},
- {value: 0x812d, lo: 0xb7, hi: 0xb9},
- {value: 0x8132, lo: 0xba, hi: 0xba},
- {value: 0x812d, lo: 0xbb, hi: 0xbc},
- {value: 0x8132, lo: 0xbd, hi: 0xbd},
- {value: 0x812d, lo: 0xbe, hi: 0xbe},
- {value: 0x8132, lo: 0xbf, hi: 0xbf},
- // Block 0xa, offset 0x63
- {value: 0x0005, lo: 0x07},
- {value: 0x8132, lo: 0x80, hi: 0x80},
- {value: 0x8132, lo: 0x81, hi: 0x81},
- {value: 0x812d, lo: 0x82, hi: 0x83},
- {value: 0x812d, lo: 0x84, hi: 0x85},
- {value: 0x812d, lo: 0x86, hi: 0x87},
- {value: 0x812d, lo: 0x88, hi: 0x89},
- {value: 0x8132, lo: 0x8a, hi: 0x8a},
- // Block 0xb, offset 0x6b
- {value: 0x0000, lo: 0x04},
- {value: 0x8132, lo: 0xab, hi: 0xb1},
- {value: 0x812d, lo: 0xb2, hi: 0xb2},
- {value: 0x8132, lo: 0xb3, hi: 0xb3},
- {value: 0x812d, lo: 0xbd, hi: 0xbd},
- // Block 0xc, offset 0x70
- {value: 0x0000, lo: 0x04},
- {value: 0x8132, lo: 0x96, hi: 0x99},
- {value: 0x8132, lo: 0x9b, hi: 0xa3},
- {value: 0x8132, lo: 0xa5, hi: 0xa7},
- {value: 0x8132, lo: 0xa9, hi: 0xad},
- // Block 0xd, offset 0x75
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0x99, hi: 0x9b},
- // Block 0xe, offset 0x77
- {value: 0x0000, lo: 0x07},
- {value: 0xa000, lo: 0xa8, hi: 0xa8},
- {value: 0x3ed8, lo: 0xa9, hi: 0xa9},
- {value: 0xa000, lo: 0xb0, hi: 0xb0},
- {value: 0x3ee0, lo: 0xb1, hi: 0xb1},
- {value: 0xa000, lo: 0xb3, hi: 0xb3},
- {value: 0x3ee8, lo: 0xb4, hi: 0xb4},
- {value: 0x9902, lo: 0xbc, hi: 0xbc},
- // Block 0xf, offset 0x7f
- {value: 0x0008, lo: 0x06},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x8132, lo: 0x91, hi: 0x91},
- {value: 0x812d, lo: 0x92, hi: 0x92},
- {value: 0x8132, lo: 0x93, hi: 0x93},
- {value: 0x8132, lo: 0x94, hi: 0x94},
- {value: 0x451c, lo: 0x98, hi: 0x9f},
- // Block 0x10, offset 0x86
- {value: 0x0000, lo: 0x02},
- {value: 0x8102, lo: 0xbc, hi: 0xbc},
- {value: 0x9900, lo: 0xbe, hi: 0xbe},
- // Block 0x11, offset 0x89
- {value: 0x0008, lo: 0x07},
- {value: 0xa000, lo: 0x87, hi: 0x87},
- {value: 0x2c9e, lo: 0x8b, hi: 0x8c},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x9900, lo: 0x97, hi: 0x97},
- {value: 0x455c, lo: 0x9c, hi: 0x9d},
- {value: 0x456c, lo: 0x9f, hi: 0x9f},
- {value: 0x8132, lo: 0xbe, hi: 0xbe},
- // Block 0x12, offset 0x91
- {value: 0x0000, lo: 0x03},
- {value: 0x4594, lo: 0xb3, hi: 0xb3},
- {value: 0x459c, lo: 0xb6, hi: 0xb6},
- {value: 0x8102, lo: 0xbc, hi: 0xbc},
- // Block 0x13, offset 0x95
- {value: 0x0008, lo: 0x03},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x4574, lo: 0x99, hi: 0x9b},
- {value: 0x458c, lo: 0x9e, hi: 0x9e},
- // Block 0x14, offset 0x99
- {value: 0x0000, lo: 0x01},
- {value: 0x8102, lo: 0xbc, hi: 0xbc},
- // Block 0x15, offset 0x9b
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- // Block 0x16, offset 0x9d
- {value: 0x0000, lo: 0x08},
- {value: 0xa000, lo: 0x87, hi: 0x87},
- {value: 0x2cb6, lo: 0x88, hi: 0x88},
- {value: 0x2cae, lo: 0x8b, hi: 0x8b},
- {value: 0x2cbe, lo: 0x8c, hi: 0x8c},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x9900, lo: 0x96, hi: 0x97},
- {value: 0x45a4, lo: 0x9c, hi: 0x9c},
- {value: 0x45ac, lo: 0x9d, hi: 0x9d},
- // Block 0x17, offset 0xa6
- {value: 0x0000, lo: 0x03},
- {value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0x2cc6, lo: 0x94, hi: 0x94},
- {value: 0x9900, lo: 0xbe, hi: 0xbe},
- // Block 0x18, offset 0xaa
- {value: 0x0000, lo: 0x06},
- {value: 0xa000, lo: 0x86, hi: 0x87},
- {value: 0x2cce, lo: 0x8a, hi: 0x8a},
- {value: 0x2cde, lo: 0x8b, hi: 0x8b},
- {value: 0x2cd6, lo: 0x8c, hi: 0x8c},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x9900, lo: 0x97, hi: 0x97},
- // Block 0x19, offset 0xb1
- {value: 0x1801, lo: 0x04},
- {value: 0xa000, lo: 0x86, hi: 0x86},
- {value: 0x3ef0, lo: 0x88, hi: 0x88},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x8120, lo: 0x95, hi: 0x96},
- // Block 0x1a, offset 0xb6
- {value: 0x0000, lo: 0x02},
- {value: 0x8102, lo: 0xbc, hi: 0xbc},
- {value: 0xa000, lo: 0xbf, hi: 0xbf},
- // Block 0x1b, offset 0xb9
- {value: 0x0000, lo: 0x09},
- {value: 0x2ce6, lo: 0x80, hi: 0x80},
- {value: 0x9900, lo: 0x82, hi: 0x82},
- {value: 0xa000, lo: 0x86, hi: 0x86},
- {value: 0x2cee, lo: 0x87, hi: 0x87},
- {value: 0x2cf6, lo: 0x88, hi: 0x88},
- {value: 0x2f50, lo: 0x8a, hi: 0x8a},
- {value: 0x2dd8, lo: 0x8b, hi: 0x8b},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x9900, lo: 0x95, hi: 0x96},
- // Block 0x1c, offset 0xc3
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0xbb, hi: 0xbc},
- {value: 0x9900, lo: 0xbe, hi: 0xbe},
- // Block 0x1d, offset 0xc6
- {value: 0x0000, lo: 0x06},
- {value: 0xa000, lo: 0x86, hi: 0x87},
- {value: 0x2cfe, lo: 0x8a, hi: 0x8a},
- {value: 0x2d0e, lo: 0x8b, hi: 0x8b},
- {value: 0x2d06, lo: 0x8c, hi: 0x8c},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x9900, lo: 0x97, hi: 0x97},
- // Block 0x1e, offset 0xcd
- {value: 0x6bea, lo: 0x07},
- {value: 0x9904, lo: 0x8a, hi: 0x8a},
- {value: 0x9900, lo: 0x8f, hi: 0x8f},
- {value: 0xa000, lo: 0x99, hi: 0x99},
- {value: 0x3ef8, lo: 0x9a, hi: 0x9a},
- {value: 0x2f58, lo: 0x9c, hi: 0x9c},
- {value: 0x2de3, lo: 0x9d, hi: 0x9d},
- {value: 0x2d16, lo: 0x9e, hi: 0x9f},
- // Block 0x1f, offset 0xd5
- {value: 0x0000, lo: 0x03},
- {value: 0x2621, lo: 0xb3, hi: 0xb3},
- {value: 0x8122, lo: 0xb8, hi: 0xb9},
- {value: 0x8104, lo: 0xba, hi: 0xba},
- // Block 0x20, offset 0xd9
- {value: 0x0000, lo: 0x01},
- {value: 0x8123, lo: 0x88, hi: 0x8b},
- // Block 0x21, offset 0xdb
- {value: 0x0000, lo: 0x02},
- {value: 0x2636, lo: 0xb3, hi: 0xb3},
- {value: 0x8124, lo: 0xb8, hi: 0xb9},
- // Block 0x22, offset 0xde
- {value: 0x0000, lo: 0x03},
- {value: 0x8125, lo: 0x88, hi: 0x8b},
- {value: 0x2628, lo: 0x9c, hi: 0x9c},
- {value: 0x262f, lo: 0x9d, hi: 0x9d},
- // Block 0x23, offset 0xe2
- {value: 0x0000, lo: 0x05},
- {value: 0x030b, lo: 0x8c, hi: 0x8c},
- {value: 0x812d, lo: 0x98, hi: 0x99},
- {value: 0x812d, lo: 0xb5, hi: 0xb5},
- {value: 0x812d, lo: 0xb7, hi: 0xb7},
- {value: 0x812b, lo: 0xb9, hi: 0xb9},
- // Block 0x24, offset 0xe8
- {value: 0x0000, lo: 0x10},
- {value: 0x2644, lo: 0x83, hi: 0x83},
- {value: 0x264b, lo: 0x8d, hi: 0x8d},
- {value: 0x2652, lo: 0x92, hi: 0x92},
- {value: 0x2659, lo: 0x97, hi: 0x97},
- {value: 0x2660, lo: 0x9c, hi: 0x9c},
- {value: 0x263d, lo: 0xa9, hi: 0xa9},
- {value: 0x8126, lo: 0xb1, hi: 0xb1},
- {value: 0x8127, lo: 0xb2, hi: 0xb2},
- {value: 0x4a84, lo: 0xb3, hi: 0xb3},
- {value: 0x8128, lo: 0xb4, hi: 0xb4},
- {value: 0x4a8d, lo: 0xb5, hi: 0xb5},
- {value: 0x45b4, lo: 0xb6, hi: 0xb6},
- {value: 0x45f4, lo: 0xb7, hi: 0xb7},
- {value: 0x45bc, lo: 0xb8, hi: 0xb8},
- {value: 0x45ff, lo: 0xb9, hi: 0xb9},
- {value: 0x8127, lo: 0xba, hi: 0xbd},
- // Block 0x25, offset 0xf9
- {value: 0x0000, lo: 0x0b},
- {value: 0x8127, lo: 0x80, hi: 0x80},
- {value: 0x4a96, lo: 0x81, hi: 0x81},
- {value: 0x8132, lo: 0x82, hi: 0x83},
- {value: 0x8104, lo: 0x84, hi: 0x84},
- {value: 0x8132, lo: 0x86, hi: 0x87},
- {value: 0x266e, lo: 0x93, hi: 0x93},
- {value: 0x2675, lo: 0x9d, hi: 0x9d},
- {value: 0x267c, lo: 0xa2, hi: 0xa2},
- {value: 0x2683, lo: 0xa7, hi: 0xa7},
- {value: 0x268a, lo: 0xac, hi: 0xac},
- {value: 0x2667, lo: 0xb9, hi: 0xb9},
- // Block 0x26, offset 0x105
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0x86, hi: 0x86},
- // Block 0x27, offset 0x107
- {value: 0x0000, lo: 0x05},
- {value: 0xa000, lo: 0xa5, hi: 0xa5},
- {value: 0x2d1e, lo: 0xa6, hi: 0xa6},
- {value: 0x9900, lo: 0xae, hi: 0xae},
- {value: 0x8102, lo: 0xb7, hi: 0xb7},
- {value: 0x8104, lo: 0xb9, hi: 0xba},
- // Block 0x28, offset 0x10d
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0x8d, hi: 0x8d},
- // Block 0x29, offset 0x10f
- {value: 0x0000, lo: 0x01},
- {value: 0x030f, lo: 0xbc, hi: 0xbc},
- // Block 0x2a, offset 0x111
- {value: 0x0000, lo: 0x01},
- {value: 0xa000, lo: 0x80, hi: 0x92},
- // Block 0x2b, offset 0x113
- {value: 0x0000, lo: 0x01},
- {value: 0xb900, lo: 0xa1, hi: 0xb5},
- // Block 0x2c, offset 0x115
- {value: 0x0000, lo: 0x01},
- {value: 0x9900, lo: 0xa8, hi: 0xbf},
- // Block 0x2d, offset 0x117
- {value: 0x0000, lo: 0x01},
- {value: 0x9900, lo: 0x80, hi: 0x82},
- // Block 0x2e, offset 0x119
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0x9d, hi: 0x9f},
- // Block 0x2f, offset 0x11b
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x94, hi: 0x94},
- {value: 0x8104, lo: 0xb4, hi: 0xb4},
- // Block 0x30, offset 0x11e
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x92, hi: 0x92},
- {value: 0x8132, lo: 0x9d, hi: 0x9d},
- // Block 0x31, offset 0x121
- {value: 0x0000, lo: 0x01},
- {value: 0x8131, lo: 0xa9, hi: 0xa9},
- // Block 0x32, offset 0x123
- {value: 0x0004, lo: 0x02},
- {value: 0x812e, lo: 0xb9, hi: 0xba},
- {value: 0x812d, lo: 0xbb, hi: 0xbb},
- // Block 0x33, offset 0x126
- {value: 0x0000, lo: 0x02},
- {value: 0x8132, lo: 0x97, hi: 0x97},
- {value: 0x812d, lo: 0x98, hi: 0x98},
- // Block 0x34, offset 0x129
- {value: 0x0000, lo: 0x03},
- {value: 0x8104, lo: 0xa0, hi: 0xa0},
- {value: 0x8132, lo: 0xb5, hi: 0xbc},
- {value: 0x812d, lo: 0xbf, hi: 0xbf},
- // Block 0x35, offset 0x12d
- {value: 0x0000, lo: 0x04},
- {value: 0x8132, lo: 0xb0, hi: 0xb4},
- {value: 0x812d, lo: 0xb5, hi: 0xba},
- {value: 0x8132, lo: 0xbb, hi: 0xbc},
- {value: 0x812d, lo: 0xbd, hi: 0xbd},
- // Block 0x36, offset 0x132
- {value: 0x0000, lo: 0x08},
- {value: 0x2d66, lo: 0x80, hi: 0x80},
- {value: 0x2d6e, lo: 0x81, hi: 0x81},
- {value: 0xa000, lo: 0x82, hi: 0x82},
- {value: 0x2d76, lo: 0x83, hi: 0x83},
- {value: 0x8104, lo: 0x84, hi: 0x84},
- {value: 0x8132, lo: 0xab, hi: 0xab},
- {value: 0x812d, lo: 0xac, hi: 0xac},
- {value: 0x8132, lo: 0xad, hi: 0xb3},
- // Block 0x37, offset 0x13b
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0xaa, hi: 0xab},
- // Block 0x38, offset 0x13d
- {value: 0x0000, lo: 0x02},
- {value: 0x8102, lo: 0xa6, hi: 0xa6},
- {value: 0x8104, lo: 0xb2, hi: 0xb3},
- // Block 0x39, offset 0x140
- {value: 0x0000, lo: 0x01},
- {value: 0x8102, lo: 0xb7, hi: 0xb7},
- // Block 0x3a, offset 0x142
- {value: 0x0000, lo: 0x0a},
- {value: 0x8132, lo: 0x90, hi: 0x92},
- {value: 0x8101, lo: 0x94, hi: 0x94},
- {value: 0x812d, lo: 0x95, hi: 0x99},
- {value: 0x8132, lo: 0x9a, hi: 0x9b},
- {value: 0x812d, lo: 0x9c, hi: 0x9f},
- {value: 0x8132, lo: 0xa0, hi: 0xa0},
- {value: 0x8101, lo: 0xa2, hi: 0xa8},
- {value: 0x812d, lo: 0xad, hi: 0xad},
- {value: 0x8132, lo: 0xb4, hi: 0xb4},
- {value: 0x8132, lo: 0xb8, hi: 0xb9},
- // Block 0x3b, offset 0x14d
- {value: 0x0002, lo: 0x0a},
- {value: 0x0043, lo: 0xac, hi: 0xac},
- {value: 0x00d1, lo: 0xad, hi: 0xad},
- {value: 0x0045, lo: 0xae, hi: 0xae},
- {value: 0x0049, lo: 0xb0, hi: 0xb1},
- {value: 0x00e6, lo: 0xb2, hi: 0xb2},
- {value: 0x004f, lo: 0xb3, hi: 0xba},
- {value: 0x005f, lo: 0xbc, hi: 0xbc},
- {value: 0x00ef, lo: 0xbd, hi: 0xbd},
- {value: 0x0061, lo: 0xbe, hi: 0xbe},
- {value: 0x0065, lo: 0xbf, hi: 0xbf},
- // Block 0x3c, offset 0x158
- {value: 0x0000, lo: 0x0d},
- {value: 0x0001, lo: 0x80, hi: 0x8a},
- {value: 0x043b, lo: 0x91, hi: 0x91},
- {value: 0x429b, lo: 0x97, hi: 0x97},
- {value: 0x001d, lo: 0xa4, hi: 0xa4},
- {value: 0x1873, lo: 0xa5, hi: 0xa5},
- {value: 0x1b5c, lo: 0xa6, hi: 0xa6},
- {value: 0x0001, lo: 0xaf, hi: 0xaf},
- {value: 0x2691, lo: 0xb3, hi: 0xb3},
- {value: 0x27fe, lo: 0xb4, hi: 0xb4},
- {value: 0x2698, lo: 0xb6, hi: 0xb6},
- {value: 0x2808, lo: 0xb7, hi: 0xb7},
- {value: 0x186d, lo: 0xbc, hi: 0xbc},
- {value: 0x4269, lo: 0xbe, hi: 0xbe},
- // Block 0x3d, offset 0x166
- {value: 0x0002, lo: 0x0d},
- {value: 0x1933, lo: 0x87, hi: 0x87},
- {value: 0x1930, lo: 0x88, hi: 0x88},
- {value: 0x1870, lo: 0x89, hi: 0x89},
- {value: 0x298e, lo: 0x97, hi: 0x97},
- {value: 0x0001, lo: 0x9f, hi: 0x9f},
- {value: 0x0021, lo: 0xb0, hi: 0xb0},
- {value: 0x0093, lo: 0xb1, hi: 0xb1},
- {value: 0x0029, lo: 0xb4, hi: 0xb9},
- {value: 0x0017, lo: 0xba, hi: 0xba},
- {value: 0x0467, lo: 0xbb, hi: 0xbb},
- {value: 0x003b, lo: 0xbc, hi: 0xbc},
- {value: 0x0011, lo: 0xbd, hi: 0xbe},
- {value: 0x009d, lo: 0xbf, hi: 0xbf},
- // Block 0x3e, offset 0x174
- {value: 0x0002, lo: 0x0f},
- {value: 0x0021, lo: 0x80, hi: 0x89},
- {value: 0x0017, lo: 0x8a, hi: 0x8a},
- {value: 0x0467, lo: 0x8b, hi: 0x8b},
- {value: 0x003b, lo: 0x8c, hi: 0x8c},
- {value: 0x0011, lo: 0x8d, hi: 0x8e},
- {value: 0x0083, lo: 0x90, hi: 0x90},
- {value: 0x008b, lo: 0x91, hi: 0x91},
- {value: 0x009f, lo: 0x92, hi: 0x92},
- {value: 0x00b1, lo: 0x93, hi: 0x93},
- {value: 0x0104, lo: 0x94, hi: 0x94},
- {value: 0x0091, lo: 0x95, hi: 0x95},
- {value: 0x0097, lo: 0x96, hi: 0x99},
- {value: 0x00a1, lo: 0x9a, hi: 0x9a},
- {value: 0x00a7, lo: 0x9b, hi: 0x9c},
- {value: 0x1999, lo: 0xa8, hi: 0xa8},
- // Block 0x3f, offset 0x184
- {value: 0x0000, lo: 0x0d},
- {value: 0x8132, lo: 0x90, hi: 0x91},
- {value: 0x8101, lo: 0x92, hi: 0x93},
- {value: 0x8132, lo: 0x94, hi: 0x97},
- {value: 0x8101, lo: 0x98, hi: 0x9a},
- {value: 0x8132, lo: 0x9b, hi: 0x9c},
- {value: 0x8132, lo: 0xa1, hi: 0xa1},
- {value: 0x8101, lo: 0xa5, hi: 0xa6},
- {value: 0x8132, lo: 0xa7, hi: 0xa7},
- {value: 0x812d, lo: 0xa8, hi: 0xa8},
- {value: 0x8132, lo: 0xa9, hi: 0xa9},
- {value: 0x8101, lo: 0xaa, hi: 0xab},
- {value: 0x812d, lo: 0xac, hi: 0xaf},
- {value: 0x8132, lo: 0xb0, hi: 0xb0},
- // Block 0x40, offset 0x192
- {value: 0x0007, lo: 0x06},
- {value: 0x2180, lo: 0x89, hi: 0x89},
- {value: 0xa000, lo: 0x90, hi: 0x90},
- {value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0xa000, lo: 0x94, hi: 0x94},
- {value: 0x3bb9, lo: 0x9a, hi: 0x9b},
- {value: 0x3bc7, lo: 0xae, hi: 0xae},
- // Block 0x41, offset 0x199
- {value: 0x000e, lo: 0x05},
- {value: 0x3bce, lo: 0x8d, hi: 0x8e},
- {value: 0x3bd5, lo: 0x8f, hi: 0x8f},
- {value: 0xa000, lo: 0x90, hi: 0x90},
- {value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0xa000, lo: 0x94, hi: 0x94},
- // Block 0x42, offset 0x19f
- {value: 0x0173, lo: 0x0e},
- {value: 0xa000, lo: 0x83, hi: 0x83},
- {value: 0x3be3, lo: 0x84, hi: 0x84},
- {value: 0xa000, lo: 0x88, hi: 0x88},
- {value: 0x3bea, lo: 0x89, hi: 0x89},
- {value: 0xa000, lo: 0x8b, hi: 0x8b},
- {value: 0x3bf1, lo: 0x8c, hi: 0x8c},
- {value: 0xa000, lo: 0xa3, hi: 0xa3},
- {value: 0x3bf8, lo: 0xa4, hi: 0xa4},
- {value: 0xa000, lo: 0xa5, hi: 0xa5},
- {value: 0x3bff, lo: 0xa6, hi: 0xa6},
- {value: 0x269f, lo: 0xac, hi: 0xad},
- {value: 0x26a6, lo: 0xaf, hi: 0xaf},
- {value: 0x281c, lo: 0xb0, hi: 0xb0},
- {value: 0xa000, lo: 0xbc, hi: 0xbc},
- // Block 0x43, offset 0x1ae
- {value: 0x0007, lo: 0x03},
- {value: 0x3c68, lo: 0xa0, hi: 0xa1},
- {value: 0x3c92, lo: 0xa2, hi: 0xa3},
- {value: 0x3cbc, lo: 0xaa, hi: 0xad},
- // Block 0x44, offset 0x1b2
- {value: 0x0004, lo: 0x01},
- {value: 0x048b, lo: 0xa9, hi: 0xaa},
- // Block 0x45, offset 0x1b4
- {value: 0x0002, lo: 0x03},
- {value: 0x0057, lo: 0x80, hi: 0x8f},
- {value: 0x0083, lo: 0x90, hi: 0xa9},
- {value: 0x0021, lo: 0xaa, hi: 0xaa},
- // Block 0x46, offset 0x1b8
- {value: 0x0000, lo: 0x01},
- {value: 0x299b, lo: 0x8c, hi: 0x8c},
- // Block 0x47, offset 0x1ba
- {value: 0x0263, lo: 0x02},
- {value: 0x1b8c, lo: 0xb4, hi: 0xb4},
- {value: 0x192d, lo: 0xb5, hi: 0xb6},
- // Block 0x48, offset 0x1bd
- {value: 0x0000, lo: 0x01},
- {value: 0x44dd, lo: 0x9c, hi: 0x9c},
- // Block 0x49, offset 0x1bf
- {value: 0x0000, lo: 0x02},
- {value: 0x0095, lo: 0xbc, hi: 0xbc},
- {value: 0x006d, lo: 0xbd, hi: 0xbd},
- // Block 0x4a, offset 0x1c2
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0xaf, hi: 0xb1},
- // Block 0x4b, offset 0x1c4
- {value: 0x0000, lo: 0x02},
- {value: 0x047f, lo: 0xaf, hi: 0xaf},
- {value: 0x8104, lo: 0xbf, hi: 0xbf},
- // Block 0x4c, offset 0x1c7
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0xa0, hi: 0xbf},
- // Block 0x4d, offset 0x1c9
- {value: 0x0000, lo: 0x01},
- {value: 0x0dc3, lo: 0x9f, hi: 0x9f},
- // Block 0x4e, offset 0x1cb
- {value: 0x0000, lo: 0x01},
- {value: 0x162f, lo: 0xb3, hi: 0xb3},
- // Block 0x4f, offset 0x1cd
- {value: 0x0004, lo: 0x0b},
- {value: 0x1597, lo: 0x80, hi: 0x82},
- {value: 0x15af, lo: 0x83, hi: 0x83},
- {value: 0x15c7, lo: 0x84, hi: 0x85},
- {value: 0x15d7, lo: 0x86, hi: 0x89},
- {value: 0x15eb, lo: 0x8a, hi: 0x8c},
- {value: 0x15ff, lo: 0x8d, hi: 0x8d},
- {value: 0x1607, lo: 0x8e, hi: 0x8e},
- {value: 0x160f, lo: 0x8f, hi: 0x90},
- {value: 0x161b, lo: 0x91, hi: 0x93},
- {value: 0x162b, lo: 0x94, hi: 0x94},
- {value: 0x1633, lo: 0x95, hi: 0x95},
- // Block 0x50, offset 0x1d9
- {value: 0x0004, lo: 0x09},
- {value: 0x0001, lo: 0x80, hi: 0x80},
- {value: 0x812c, lo: 0xaa, hi: 0xaa},
- {value: 0x8131, lo: 0xab, hi: 0xab},
- {value: 0x8133, lo: 0xac, hi: 0xac},
- {value: 0x812e, lo: 0xad, hi: 0xad},
- {value: 0x812f, lo: 0xae, hi: 0xae},
- {value: 0x812f, lo: 0xaf, hi: 0xaf},
- {value: 0x04b3, lo: 0xb6, hi: 0xb6},
- {value: 0x0887, lo: 0xb8, hi: 0xba},
- // Block 0x51, offset 0x1e3
- {value: 0x0006, lo: 0x09},
- {value: 0x0313, lo: 0xb1, hi: 0xb1},
- {value: 0x0317, lo: 0xb2, hi: 0xb2},
- {value: 0x4a3b, lo: 0xb3, hi: 0xb3},
- {value: 0x031b, lo: 0xb4, hi: 0xb4},
- {value: 0x4a41, lo: 0xb5, hi: 0xb6},
- {value: 0x031f, lo: 0xb7, hi: 0xb7},
- {value: 0x0323, lo: 0xb8, hi: 0xb8},
- {value: 0x0327, lo: 0xb9, hi: 0xb9},
- {value: 0x4a4d, lo: 0xba, hi: 0xbf},
- // Block 0x52, offset 0x1ed
- {value: 0x0000, lo: 0x02},
- {value: 0x8132, lo: 0xaf, hi: 0xaf},
- {value: 0x8132, lo: 0xb4, hi: 0xbd},
- // Block 0x53, offset 0x1f0
- {value: 0x0000, lo: 0x03},
- {value: 0x020f, lo: 0x9c, hi: 0x9c},
- {value: 0x0212, lo: 0x9d, hi: 0x9d},
- {value: 0x8132, lo: 0x9e, hi: 0x9f},
- // Block 0x54, offset 0x1f4
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0xb0, hi: 0xb1},
- // Block 0x55, offset 0x1f6
- {value: 0x0000, lo: 0x01},
- {value: 0x163b, lo: 0xb0, hi: 0xb0},
- // Block 0x56, offset 0x1f8
- {value: 0x000c, lo: 0x01},
- {value: 0x00d7, lo: 0xb8, hi: 0xb9},
- // Block 0x57, offset 0x1fa
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0x86, hi: 0x86},
- // Block 0x58, offset 0x1fc
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x84, hi: 0x84},
- {value: 0x8132, lo: 0xa0, hi: 0xb1},
- // Block 0x59, offset 0x1ff
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0xab, hi: 0xad},
- // Block 0x5a, offset 0x201
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0x93, hi: 0x93},
- // Block 0x5b, offset 0x203
- {value: 0x0000, lo: 0x01},
- {value: 0x8102, lo: 0xb3, hi: 0xb3},
- // Block 0x5c, offset 0x205
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0x80, hi: 0x80},
- // Block 0x5d, offset 0x207
- {value: 0x0000, lo: 0x05},
- {value: 0x8132, lo: 0xb0, hi: 0xb0},
- {value: 0x8132, lo: 0xb2, hi: 0xb3},
- {value: 0x812d, lo: 0xb4, hi: 0xb4},
- {value: 0x8132, lo: 0xb7, hi: 0xb8},
- {value: 0x8132, lo: 0xbe, hi: 0xbf},
- // Block 0x5e, offset 0x20d
- {value: 0x0000, lo: 0x02},
- {value: 0x8132, lo: 0x81, hi: 0x81},
- {value: 0x8104, lo: 0xb6, hi: 0xb6},
- // Block 0x5f, offset 0x210
- {value: 0x0008, lo: 0x03},
- {value: 0x1637, lo: 0x9c, hi: 0x9d},
- {value: 0x0125, lo: 0x9e, hi: 0x9e},
- {value: 0x1643, lo: 0x9f, hi: 0x9f},
- // Block 0x60, offset 0x214
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0xad, hi: 0xad},
- // Block 0x61, offset 0x216
- {value: 0x0000, lo: 0x06},
- {value: 0xe500, lo: 0x80, hi: 0x80},
- {value: 0xc600, lo: 0x81, hi: 0x9b},
- {value: 0xe500, lo: 0x9c, hi: 0x9c},
- {value: 0xc600, lo: 0x9d, hi: 0xb7},
- {value: 0xe500, lo: 0xb8, hi: 0xb8},
- {value: 0xc600, lo: 0xb9, hi: 0xbf},
- // Block 0x62, offset 0x21d
- {value: 0x0000, lo: 0x05},
- {value: 0xc600, lo: 0x80, hi: 0x93},
- {value: 0xe500, lo: 0x94, hi: 0x94},
- {value: 0xc600, lo: 0x95, hi: 0xaf},
- {value: 0xe500, lo: 0xb0, hi: 0xb0},
- {value: 0xc600, lo: 0xb1, hi: 0xbf},
- // Block 0x63, offset 0x223
- {value: 0x0000, lo: 0x05},
- {value: 0xc600, lo: 0x80, hi: 0x8b},
- {value: 0xe500, lo: 0x8c, hi: 0x8c},
- {value: 0xc600, lo: 0x8d, hi: 0xa7},
- {value: 0xe500, lo: 0xa8, hi: 0xa8},
- {value: 0xc600, lo: 0xa9, hi: 0xbf},
- // Block 0x64, offset 0x229
- {value: 0x0000, lo: 0x07},
- {value: 0xc600, lo: 0x80, hi: 0x83},
- {value: 0xe500, lo: 0x84, hi: 0x84},
- {value: 0xc600, lo: 0x85, hi: 0x9f},
- {value: 0xe500, lo: 0xa0, hi: 0xa0},
- {value: 0xc600, lo: 0xa1, hi: 0xbb},
- {value: 0xe500, lo: 0xbc, hi: 0xbc},
- {value: 0xc600, lo: 0xbd, hi: 0xbf},
- // Block 0x65, offset 0x231
- {value: 0x0000, lo: 0x05},
- {value: 0xc600, lo: 0x80, hi: 0x97},
- {value: 0xe500, lo: 0x98, hi: 0x98},
- {value: 0xc600, lo: 0x99, hi: 0xb3},
- {value: 0xe500, lo: 0xb4, hi: 0xb4},
- {value: 0xc600, lo: 0xb5, hi: 0xbf},
- // Block 0x66, offset 0x237
- {value: 0x0000, lo: 0x05},
- {value: 0xc600, lo: 0x80, hi: 0x8f},
- {value: 0xe500, lo: 0x90, hi: 0x90},
- {value: 0xc600, lo: 0x91, hi: 0xab},
- {value: 0xe500, lo: 0xac, hi: 0xac},
- {value: 0xc600, lo: 0xad, hi: 0xbf},
- // Block 0x67, offset 0x23d
- {value: 0x0000, lo: 0x05},
- {value: 0xc600, lo: 0x80, hi: 0x87},
- {value: 0xe500, lo: 0x88, hi: 0x88},
- {value: 0xc600, lo: 0x89, hi: 0xa3},
- {value: 0xe500, lo: 0xa4, hi: 0xa4},
- {value: 0xc600, lo: 0xa5, hi: 0xbf},
- // Block 0x68, offset 0x243
- {value: 0x0000, lo: 0x03},
- {value: 0xc600, lo: 0x80, hi: 0x87},
- {value: 0xe500, lo: 0x88, hi: 0x88},
- {value: 0xc600, lo: 0x89, hi: 0xa3},
- // Block 0x69, offset 0x247
- {value: 0x0002, lo: 0x01},
- {value: 0x0003, lo: 0x81, hi: 0xbf},
- // Block 0x6a, offset 0x249
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0xbd, hi: 0xbd},
- // Block 0x6b, offset 0x24b
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0xa0, hi: 0xa0},
- // Block 0x6c, offset 0x24d
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0xb6, hi: 0xba},
- // Block 0x6d, offset 0x24f
- {value: 0x002c, lo: 0x05},
- {value: 0x812d, lo: 0x8d, hi: 0x8d},
- {value: 0x8132, lo: 0x8f, hi: 0x8f},
- {value: 0x8132, lo: 0xb8, hi: 0xb8},
- {value: 0x8101, lo: 0xb9, hi: 0xba},
- {value: 0x8104, lo: 0xbf, hi: 0xbf},
- // Block 0x6e, offset 0x255
- {value: 0x0000, lo: 0x02},
- {value: 0x8132, lo: 0xa5, hi: 0xa5},
- {value: 0x812d, lo: 0xa6, hi: 0xa6},
- // Block 0x6f, offset 0x258
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0xa4, hi: 0xa7},
- // Block 0x70, offset 0x25a
- {value: 0x0000, lo: 0x05},
- {value: 0x812d, lo: 0x86, hi: 0x87},
- {value: 0x8132, lo: 0x88, hi: 0x8a},
- {value: 0x812d, lo: 0x8b, hi: 0x8b},
- {value: 0x8132, lo: 0x8c, hi: 0x8c},
- {value: 0x812d, lo: 0x8d, hi: 0x90},
- // Block 0x71, offset 0x260
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x86, hi: 0x86},
- {value: 0x8104, lo: 0xbf, hi: 0xbf},
- // Block 0x72, offset 0x263
- {value: 0x17fe, lo: 0x07},
- {value: 0xa000, lo: 0x99, hi: 0x99},
- {value: 0x4238, lo: 0x9a, hi: 0x9a},
- {value: 0xa000, lo: 0x9b, hi: 0x9b},
- {value: 0x4242, lo: 0x9c, hi: 0x9c},
- {value: 0xa000, lo: 0xa5, hi: 0xa5},
- {value: 0x424c, lo: 0xab, hi: 0xab},
- {value: 0x8104, lo: 0xb9, hi: 0xba},
- // Block 0x73, offset 0x26b
- {value: 0x0000, lo: 0x06},
- {value: 0x8132, lo: 0x80, hi: 0x82},
- {value: 0x9900, lo: 0xa7, hi: 0xa7},
- {value: 0x2d7e, lo: 0xae, hi: 0xae},
- {value: 0x2d88, lo: 0xaf, hi: 0xaf},
- {value: 0xa000, lo: 0xb1, hi: 0xb2},
- {value: 0x8104, lo: 0xb3, hi: 0xb4},
- // Block 0x74, offset 0x272
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x80, hi: 0x80},
- {value: 0x8102, lo: 0x8a, hi: 0x8a},
- // Block 0x75, offset 0x275
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0xb5, hi: 0xb5},
- {value: 0x8102, lo: 0xb6, hi: 0xb6},
- // Block 0x76, offset 0x278
- {value: 0x0002, lo: 0x01},
- {value: 0x8102, lo: 0xa9, hi: 0xaa},
- // Block 0x77, offset 0x27a
- {value: 0x0000, lo: 0x02},
- {value: 0x8102, lo: 0xbb, hi: 0xbc},
- {value: 0x9900, lo: 0xbe, hi: 0xbe},
- // Block 0x78, offset 0x27d
- {value: 0x0000, lo: 0x07},
- {value: 0xa000, lo: 0x87, hi: 0x87},
- {value: 0x2d92, lo: 0x8b, hi: 0x8b},
- {value: 0x2d9c, lo: 0x8c, hi: 0x8c},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x9900, lo: 0x97, hi: 0x97},
- {value: 0x8132, lo: 0xa6, hi: 0xac},
- {value: 0x8132, lo: 0xb0, hi: 0xb4},
- // Block 0x79, offset 0x285
- {value: 0x0000, lo: 0x03},
- {value: 0x8104, lo: 0x82, hi: 0x82},
- {value: 0x8102, lo: 0x86, hi: 0x86},
- {value: 0x8132, lo: 0x9e, hi: 0x9e},
- // Block 0x7a, offset 0x289
- {value: 0x6b5a, lo: 0x06},
- {value: 0x9900, lo: 0xb0, hi: 0xb0},
- {value: 0xa000, lo: 0xb9, hi: 0xb9},
- {value: 0x9900, lo: 0xba, hi: 0xba},
- {value: 0x2db0, lo: 0xbb, hi: 0xbb},
- {value: 0x2da6, lo: 0xbc, hi: 0xbd},
- {value: 0x2dba, lo: 0xbe, hi: 0xbe},
- // Block 0x7b, offset 0x290
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x82, hi: 0x82},
- {value: 0x8102, lo: 0x83, hi: 0x83},
- // Block 0x7c, offset 0x293
- {value: 0x0000, lo: 0x05},
- {value: 0x9900, lo: 0xaf, hi: 0xaf},
- {value: 0xa000, lo: 0xb8, hi: 0xb9},
- {value: 0x2dc4, lo: 0xba, hi: 0xba},
- {value: 0x2dce, lo: 0xbb, hi: 0xbb},
- {value: 0x8104, lo: 0xbf, hi: 0xbf},
- // Block 0x7d, offset 0x299
- {value: 0x0000, lo: 0x01},
- {value: 0x8102, lo: 0x80, hi: 0x80},
- // Block 0x7e, offset 0x29b
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0xbf, hi: 0xbf},
- // Block 0x7f, offset 0x29d
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0xb6, hi: 0xb6},
- {value: 0x8102, lo: 0xb7, hi: 0xb7},
- // Block 0x80, offset 0x2a0
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0xab, hi: 0xab},
- // Block 0x81, offset 0x2a2
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0xb9, hi: 0xb9},
- {value: 0x8102, lo: 0xba, hi: 0xba},
- // Block 0x82, offset 0x2a5
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0xb4, hi: 0xb4},
- // Block 0x83, offset 0x2a7
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0x87, hi: 0x87},
- // Block 0x84, offset 0x2a9
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0x99, hi: 0x99},
- // Block 0x85, offset 0x2ab
- {value: 0x0000, lo: 0x02},
- {value: 0x8102, lo: 0x82, hi: 0x82},
- {value: 0x8104, lo: 0x84, hi: 0x85},
- // Block 0x86, offset 0x2ae
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0x97, hi: 0x97},
- // Block 0x87, offset 0x2b0
- {value: 0x0000, lo: 0x01},
- {value: 0x8101, lo: 0xb0, hi: 0xb4},
- // Block 0x88, offset 0x2b2
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0xb0, hi: 0xb6},
- // Block 0x89, offset 0x2b4
- {value: 0x0000, lo: 0x01},
- {value: 0x8101, lo: 0x9e, hi: 0x9e},
- // Block 0x8a, offset 0x2b6
- {value: 0x0000, lo: 0x0c},
- {value: 0x45cc, lo: 0x9e, hi: 0x9e},
- {value: 0x45d6, lo: 0x9f, hi: 0x9f},
- {value: 0x460a, lo: 0xa0, hi: 0xa0},
- {value: 0x4618, lo: 0xa1, hi: 0xa1},
- {value: 0x4626, lo: 0xa2, hi: 0xa2},
- {value: 0x4634, lo: 0xa3, hi: 0xa3},
- {value: 0x4642, lo: 0xa4, hi: 0xa4},
- {value: 0x812b, lo: 0xa5, hi: 0xa6},
- {value: 0x8101, lo: 0xa7, hi: 0xa9},
- {value: 0x8130, lo: 0xad, hi: 0xad},
- {value: 0x812b, lo: 0xae, hi: 0xb2},
- {value: 0x812d, lo: 0xbb, hi: 0xbf},
- // Block 0x8b, offset 0x2c3
- {value: 0x0000, lo: 0x09},
- {value: 0x812d, lo: 0x80, hi: 0x82},
- {value: 0x8132, lo: 0x85, hi: 0x89},
- {value: 0x812d, lo: 0x8a, hi: 0x8b},
- {value: 0x8132, lo: 0xaa, hi: 0xad},
- {value: 0x45e0, lo: 0xbb, hi: 0xbb},
- {value: 0x45ea, lo: 0xbc, hi: 0xbc},
- {value: 0x4650, lo: 0xbd, hi: 0xbd},
- {value: 0x466c, lo: 0xbe, hi: 0xbe},
- {value: 0x465e, lo: 0xbf, hi: 0xbf},
- // Block 0x8c, offset 0x2cd
- {value: 0x0000, lo: 0x01},
- {value: 0x467a, lo: 0x80, hi: 0x80},
- // Block 0x8d, offset 0x2cf
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0x82, hi: 0x84},
- // Block 0x8e, offset 0x2d1
- {value: 0x0002, lo: 0x03},
- {value: 0x0043, lo: 0x80, hi: 0x99},
- {value: 0x0083, lo: 0x9a, hi: 0xb3},
- {value: 0x0043, lo: 0xb4, hi: 0xbf},
- // Block 0x8f, offset 0x2d5
- {value: 0x0002, lo: 0x04},
- {value: 0x005b, lo: 0x80, hi: 0x8d},
- {value: 0x0083, lo: 0x8e, hi: 0x94},
- {value: 0x0093, lo: 0x96, hi: 0xa7},
- {value: 0x0043, lo: 0xa8, hi: 0xbf},
- // Block 0x90, offset 0x2da
- {value: 0x0002, lo: 0x0b},
- {value: 0x0073, lo: 0x80, hi: 0x81},
- {value: 0x0083, lo: 0x82, hi: 0x9b},
- {value: 0x0043, lo: 0x9c, hi: 0x9c},
- {value: 0x0047, lo: 0x9e, hi: 0x9f},
- {value: 0x004f, lo: 0xa2, hi: 0xa2},
- {value: 0x0055, lo: 0xa5, hi: 0xa6},
- {value: 0x005d, lo: 0xa9, hi: 0xac},
- {value: 0x0067, lo: 0xae, hi: 0xb5},
- {value: 0x0083, lo: 0xb6, hi: 0xb9},
- {value: 0x008d, lo: 0xbb, hi: 0xbb},
- {value: 0x0091, lo: 0xbd, hi: 0xbf},
- // Block 0x91, offset 0x2e6
- {value: 0x0002, lo: 0x04},
- {value: 0x0097, lo: 0x80, hi: 0x83},
- {value: 0x00a1, lo: 0x85, hi: 0x8f},
- {value: 0x0043, lo: 0x90, hi: 0xa9},
- {value: 0x0083, lo: 0xaa, hi: 0xbf},
- // Block 0x92, offset 0x2eb
- {value: 0x0002, lo: 0x08},
- {value: 0x00af, lo: 0x80, hi: 0x83},
- {value: 0x0043, lo: 0x84, hi: 0x85},
- {value: 0x0049, lo: 0x87, hi: 0x8a},
- {value: 0x0055, lo: 0x8d, hi: 0x94},
- {value: 0x0067, lo: 0x96, hi: 0x9c},
- {value: 0x0083, lo: 0x9e, hi: 0xb7},
- {value: 0x0043, lo: 0xb8, hi: 0xb9},
- {value: 0x0049, lo: 0xbb, hi: 0xbe},
- // Block 0x93, offset 0x2f4
- {value: 0x0002, lo: 0x05},
- {value: 0x0053, lo: 0x80, hi: 0x84},
- {value: 0x005f, lo: 0x86, hi: 0x86},
- {value: 0x0067, lo: 0x8a, hi: 0x90},
- {value: 0x0083, lo: 0x92, hi: 0xab},
- {value: 0x0043, lo: 0xac, hi: 0xbf},
- // Block 0x94, offset 0x2fa
- {value: 0x0002, lo: 0x04},
- {value: 0x006b, lo: 0x80, hi: 0x85},
- {value: 0x0083, lo: 0x86, hi: 0x9f},
- {value: 0x0043, lo: 0xa0, hi: 0xb9},
- {value: 0x0083, lo: 0xba, hi: 0xbf},
- // Block 0x95, offset 0x2ff
- {value: 0x0002, lo: 0x03},
- {value: 0x008f, lo: 0x80, hi: 0x93},
- {value: 0x0043, lo: 0x94, hi: 0xad},
- {value: 0x0083, lo: 0xae, hi: 0xbf},
- // Block 0x96, offset 0x303
- {value: 0x0002, lo: 0x04},
- {value: 0x00a7, lo: 0x80, hi: 0x87},
- {value: 0x0043, lo: 0x88, hi: 0xa1},
- {value: 0x0083, lo: 0xa2, hi: 0xbb},
- {value: 0x0043, lo: 0xbc, hi: 0xbf},
- // Block 0x97, offset 0x308
- {value: 0x0002, lo: 0x03},
- {value: 0x004b, lo: 0x80, hi: 0x95},
- {value: 0x0083, lo: 0x96, hi: 0xaf},
- {value: 0x0043, lo: 0xb0, hi: 0xbf},
- // Block 0x98, offset 0x30c
- {value: 0x0003, lo: 0x0f},
- {value: 0x01b8, lo: 0x80, hi: 0x80},
- {value: 0x045f, lo: 0x81, hi: 0x81},
- {value: 0x01bb, lo: 0x82, hi: 0x9a},
- {value: 0x045b, lo: 0x9b, hi: 0x9b},
- {value: 0x01c7, lo: 0x9c, hi: 0x9c},
- {value: 0x01d0, lo: 0x9d, hi: 0x9d},
- {value: 0x01d6, lo: 0x9e, hi: 0x9e},
- {value: 0x01fa, lo: 0x9f, hi: 0x9f},
- {value: 0x01eb, lo: 0xa0, hi: 0xa0},
- {value: 0x01e8, lo: 0xa1, hi: 0xa1},
- {value: 0x0173, lo: 0xa2, hi: 0xb2},
- {value: 0x0188, lo: 0xb3, hi: 0xb3},
- {value: 0x01a6, lo: 0xb4, hi: 0xba},
- {value: 0x045f, lo: 0xbb, hi: 0xbb},
- {value: 0x01bb, lo: 0xbc, hi: 0xbf},
- // Block 0x99, offset 0x31c
- {value: 0x0003, lo: 0x0d},
- {value: 0x01c7, lo: 0x80, hi: 0x94},
- {value: 0x045b, lo: 0x95, hi: 0x95},
- {value: 0x01c7, lo: 0x96, hi: 0x96},
- {value: 0x01d0, lo: 0x97, hi: 0x97},
- {value: 0x01d6, lo: 0x98, hi: 0x98},
- {value: 0x01fa, lo: 0x99, hi: 0x99},
- {value: 0x01eb, lo: 0x9a, hi: 0x9a},
- {value: 0x01e8, lo: 0x9b, hi: 0x9b},
- {value: 0x0173, lo: 0x9c, hi: 0xac},
- {value: 0x0188, lo: 0xad, hi: 0xad},
- {value: 0x01a6, lo: 0xae, hi: 0xb4},
- {value: 0x045f, lo: 0xb5, hi: 0xb5},
- {value: 0x01bb, lo: 0xb6, hi: 0xbf},
- // Block 0x9a, offset 0x32a
- {value: 0x0003, lo: 0x0d},
- {value: 0x01d9, lo: 0x80, hi: 0x8e},
- {value: 0x045b, lo: 0x8f, hi: 0x8f},
- {value: 0x01c7, lo: 0x90, hi: 0x90},
- {value: 0x01d0, lo: 0x91, hi: 0x91},
- {value: 0x01d6, lo: 0x92, hi: 0x92},
- {value: 0x01fa, lo: 0x93, hi: 0x93},
- {value: 0x01eb, lo: 0x94, hi: 0x94},
- {value: 0x01e8, lo: 0x95, hi: 0x95},
- {value: 0x0173, lo: 0x96, hi: 0xa6},
- {value: 0x0188, lo: 0xa7, hi: 0xa7},
- {value: 0x01a6, lo: 0xa8, hi: 0xae},
- {value: 0x045f, lo: 0xaf, hi: 0xaf},
- {value: 0x01bb, lo: 0xb0, hi: 0xbf},
- // Block 0x9b, offset 0x338
- {value: 0x0003, lo: 0x0d},
- {value: 0x01eb, lo: 0x80, hi: 0x88},
- {value: 0x045b, lo: 0x89, hi: 0x89},
- {value: 0x01c7, lo: 0x8a, hi: 0x8a},
- {value: 0x01d0, lo: 0x8b, hi: 0x8b},
- {value: 0x01d6, lo: 0x8c, hi: 0x8c},
- {value: 0x01fa, lo: 0x8d, hi: 0x8d},
- {value: 0x01eb, lo: 0x8e, hi: 0x8e},
- {value: 0x01e8, lo: 0x8f, hi: 0x8f},
- {value: 0x0173, lo: 0x90, hi: 0xa0},
- {value: 0x0188, lo: 0xa1, hi: 0xa1},
- {value: 0x01a6, lo: 0xa2, hi: 0xa8},
- {value: 0x045f, lo: 0xa9, hi: 0xa9},
- {value: 0x01bb, lo: 0xaa, hi: 0xbf},
- // Block 0x9c, offset 0x346
- {value: 0x0000, lo: 0x05},
- {value: 0x8132, lo: 0x80, hi: 0x86},
- {value: 0x8132, lo: 0x88, hi: 0x98},
- {value: 0x8132, lo: 0x9b, hi: 0xa1},
- {value: 0x8132, lo: 0xa3, hi: 0xa4},
- {value: 0x8132, lo: 0xa6, hi: 0xaa},
- // Block 0x9d, offset 0x34c
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0x90, hi: 0x96},
- // Block 0x9e, offset 0x34e
- {value: 0x0000, lo: 0x02},
- {value: 0x8132, lo: 0x84, hi: 0x89},
- {value: 0x8102, lo: 0x8a, hi: 0x8a},
- // Block 0x9f, offset 0x351
- {value: 0x0002, lo: 0x09},
- {value: 0x0063, lo: 0x80, hi: 0x89},
- {value: 0x1951, lo: 0x8a, hi: 0x8a},
- {value: 0x1981, lo: 0x8b, hi: 0x8b},
- {value: 0x199c, lo: 0x8c, hi: 0x8c},
- {value: 0x19a2, lo: 0x8d, hi: 0x8d},
- {value: 0x1bc0, lo: 0x8e, hi: 0x8e},
- {value: 0x19ae, lo: 0x8f, hi: 0x8f},
- {value: 0x197b, lo: 0xaa, hi: 0xaa},
- {value: 0x197e, lo: 0xab, hi: 0xab},
- // Block 0xa0, offset 0x35b
- {value: 0x0000, lo: 0x01},
- {value: 0x193f, lo: 0x90, hi: 0x90},
- // Block 0xa1, offset 0x35d
- {value: 0x0028, lo: 0x09},
- {value: 0x2862, lo: 0x80, hi: 0x80},
- {value: 0x2826, lo: 0x81, hi: 0x81},
- {value: 0x2830, lo: 0x82, hi: 0x82},
- {value: 0x2844, lo: 0x83, hi: 0x84},
- {value: 0x284e, lo: 0x85, hi: 0x86},
- {value: 0x283a, lo: 0x87, hi: 0x87},
- {value: 0x2858, lo: 0x88, hi: 0x88},
- {value: 0x0b6f, lo: 0x90, hi: 0x90},
- {value: 0x08e7, lo: 0x91, hi: 0x91},
-}
-
-// recompMap: 7520 bytes (entries only)
-var recompMap map[uint32]rune
-var recompMapOnce sync.Once
-
-const recompMapPacked = "" +
- "\x00A\x03\x00\x00\x00\x00\xc0" + // 0x00410300: 0x000000C0
- "\x00A\x03\x01\x00\x00\x00\xc1" + // 0x00410301: 0x000000C1
- "\x00A\x03\x02\x00\x00\x00\xc2" + // 0x00410302: 0x000000C2
- "\x00A\x03\x03\x00\x00\x00\xc3" + // 0x00410303: 0x000000C3
- "\x00A\x03\b\x00\x00\x00\xc4" + // 0x00410308: 0x000000C4
- "\x00A\x03\n\x00\x00\x00\xc5" + // 0x0041030A: 0x000000C5
- "\x00C\x03'\x00\x00\x00\xc7" + // 0x00430327: 0x000000C7
- "\x00E\x03\x00\x00\x00\x00\xc8" + // 0x00450300: 0x000000C8
- "\x00E\x03\x01\x00\x00\x00\xc9" + // 0x00450301: 0x000000C9
- "\x00E\x03\x02\x00\x00\x00\xca" + // 0x00450302: 0x000000CA
- "\x00E\x03\b\x00\x00\x00\xcb" + // 0x00450308: 0x000000CB
- "\x00I\x03\x00\x00\x00\x00\xcc" + // 0x00490300: 0x000000CC
- "\x00I\x03\x01\x00\x00\x00\xcd" + // 0x00490301: 0x000000CD
- "\x00I\x03\x02\x00\x00\x00\xce" + // 0x00490302: 0x000000CE
- "\x00I\x03\b\x00\x00\x00\xcf" + // 0x00490308: 0x000000CF
- "\x00N\x03\x03\x00\x00\x00\xd1" + // 0x004E0303: 0x000000D1
- "\x00O\x03\x00\x00\x00\x00\xd2" + // 0x004F0300: 0x000000D2
- "\x00O\x03\x01\x00\x00\x00\xd3" + // 0x004F0301: 0x000000D3
- "\x00O\x03\x02\x00\x00\x00\xd4" + // 0x004F0302: 0x000000D4
- "\x00O\x03\x03\x00\x00\x00\xd5" + // 0x004F0303: 0x000000D5
- "\x00O\x03\b\x00\x00\x00\xd6" + // 0x004F0308: 0x000000D6
- "\x00U\x03\x00\x00\x00\x00\xd9" + // 0x00550300: 0x000000D9
- "\x00U\x03\x01\x00\x00\x00\xda" + // 0x00550301: 0x000000DA
- "\x00U\x03\x02\x00\x00\x00\xdb" + // 0x00550302: 0x000000DB
- "\x00U\x03\b\x00\x00\x00\xdc" + // 0x00550308: 0x000000DC
- "\x00Y\x03\x01\x00\x00\x00\xdd" + // 0x00590301: 0x000000DD
- "\x00a\x03\x00\x00\x00\x00\xe0" + // 0x00610300: 0x000000E0
- "\x00a\x03\x01\x00\x00\x00\xe1" + // 0x00610301: 0x000000E1
- "\x00a\x03\x02\x00\x00\x00\xe2" + // 0x00610302: 0x000000E2
- "\x00a\x03\x03\x00\x00\x00\xe3" + // 0x00610303: 0x000000E3
- "\x00a\x03\b\x00\x00\x00\xe4" + // 0x00610308: 0x000000E4
- "\x00a\x03\n\x00\x00\x00\xe5" + // 0x0061030A: 0x000000E5
- "\x00c\x03'\x00\x00\x00\xe7" + // 0x00630327: 0x000000E7
- "\x00e\x03\x00\x00\x00\x00\xe8" + // 0x00650300: 0x000000E8
- "\x00e\x03\x01\x00\x00\x00\xe9" + // 0x00650301: 0x000000E9
- "\x00e\x03\x02\x00\x00\x00\xea" + // 0x00650302: 0x000000EA
- "\x00e\x03\b\x00\x00\x00\xeb" + // 0x00650308: 0x000000EB
- "\x00i\x03\x00\x00\x00\x00\xec" + // 0x00690300: 0x000000EC
- "\x00i\x03\x01\x00\x00\x00\xed" + // 0x00690301: 0x000000ED
- "\x00i\x03\x02\x00\x00\x00\xee" + // 0x00690302: 0x000000EE
- "\x00i\x03\b\x00\x00\x00\xef" + // 0x00690308: 0x000000EF
- "\x00n\x03\x03\x00\x00\x00\xf1" + // 0x006E0303: 0x000000F1
- "\x00o\x03\x00\x00\x00\x00\xf2" + // 0x006F0300: 0x000000F2
- "\x00o\x03\x01\x00\x00\x00\xf3" + // 0x006F0301: 0x000000F3
- "\x00o\x03\x02\x00\x00\x00\xf4" + // 0x006F0302: 0x000000F4
- "\x00o\x03\x03\x00\x00\x00\xf5" + // 0x006F0303: 0x000000F5
- "\x00o\x03\b\x00\x00\x00\xf6" + // 0x006F0308: 0x000000F6
- "\x00u\x03\x00\x00\x00\x00\xf9" + // 0x00750300: 0x000000F9
- "\x00u\x03\x01\x00\x00\x00\xfa" + // 0x00750301: 0x000000FA
- "\x00u\x03\x02\x00\x00\x00\xfb" + // 0x00750302: 0x000000FB
- "\x00u\x03\b\x00\x00\x00\xfc" + // 0x00750308: 0x000000FC
- "\x00y\x03\x01\x00\x00\x00\xfd" + // 0x00790301: 0x000000FD
- "\x00y\x03\b\x00\x00\x00\xff" + // 0x00790308: 0x000000FF
- "\x00A\x03\x04\x00\x00\x01\x00" + // 0x00410304: 0x00000100
- "\x00a\x03\x04\x00\x00\x01\x01" + // 0x00610304: 0x00000101
- "\x00A\x03\x06\x00\x00\x01\x02" + // 0x00410306: 0x00000102
- "\x00a\x03\x06\x00\x00\x01\x03" + // 0x00610306: 0x00000103
- "\x00A\x03(\x00\x00\x01\x04" + // 0x00410328: 0x00000104
- "\x00a\x03(\x00\x00\x01\x05" + // 0x00610328: 0x00000105
- "\x00C\x03\x01\x00\x00\x01\x06" + // 0x00430301: 0x00000106
- "\x00c\x03\x01\x00\x00\x01\a" + // 0x00630301: 0x00000107
- "\x00C\x03\x02\x00\x00\x01\b" + // 0x00430302: 0x00000108
- "\x00c\x03\x02\x00\x00\x01\t" + // 0x00630302: 0x00000109
- "\x00C\x03\a\x00\x00\x01\n" + // 0x00430307: 0x0000010A
- "\x00c\x03\a\x00\x00\x01\v" + // 0x00630307: 0x0000010B
- "\x00C\x03\f\x00\x00\x01\f" + // 0x0043030C: 0x0000010C
- "\x00c\x03\f\x00\x00\x01\r" + // 0x0063030C: 0x0000010D
- "\x00D\x03\f\x00\x00\x01\x0e" + // 0x0044030C: 0x0000010E
- "\x00d\x03\f\x00\x00\x01\x0f" + // 0x0064030C: 0x0000010F
- "\x00E\x03\x04\x00\x00\x01\x12" + // 0x00450304: 0x00000112
- "\x00e\x03\x04\x00\x00\x01\x13" + // 0x00650304: 0x00000113
- "\x00E\x03\x06\x00\x00\x01\x14" + // 0x00450306: 0x00000114
- "\x00e\x03\x06\x00\x00\x01\x15" + // 0x00650306: 0x00000115
- "\x00E\x03\a\x00\x00\x01\x16" + // 0x00450307: 0x00000116
- "\x00e\x03\a\x00\x00\x01\x17" + // 0x00650307: 0x00000117
- "\x00E\x03(\x00\x00\x01\x18" + // 0x00450328: 0x00000118
- "\x00e\x03(\x00\x00\x01\x19" + // 0x00650328: 0x00000119
- "\x00E\x03\f\x00\x00\x01\x1a" + // 0x0045030C: 0x0000011A
- "\x00e\x03\f\x00\x00\x01\x1b" + // 0x0065030C: 0x0000011B
- "\x00G\x03\x02\x00\x00\x01\x1c" + // 0x00470302: 0x0000011C
- "\x00g\x03\x02\x00\x00\x01\x1d" + // 0x00670302: 0x0000011D
- "\x00G\x03\x06\x00\x00\x01\x1e" + // 0x00470306: 0x0000011E
- "\x00g\x03\x06\x00\x00\x01\x1f" + // 0x00670306: 0x0000011F
- "\x00G\x03\a\x00\x00\x01 " + // 0x00470307: 0x00000120
- "\x00g\x03\a\x00\x00\x01!" + // 0x00670307: 0x00000121
- "\x00G\x03'\x00\x00\x01\"" + // 0x00470327: 0x00000122
- "\x00g\x03'\x00\x00\x01#" + // 0x00670327: 0x00000123
- "\x00H\x03\x02\x00\x00\x01$" + // 0x00480302: 0x00000124
- "\x00h\x03\x02\x00\x00\x01%" + // 0x00680302: 0x00000125
- "\x00I\x03\x03\x00\x00\x01(" + // 0x00490303: 0x00000128
- "\x00i\x03\x03\x00\x00\x01)" + // 0x00690303: 0x00000129
- "\x00I\x03\x04\x00\x00\x01*" + // 0x00490304: 0x0000012A
- "\x00i\x03\x04\x00\x00\x01+" + // 0x00690304: 0x0000012B
- "\x00I\x03\x06\x00\x00\x01," + // 0x00490306: 0x0000012C
- "\x00i\x03\x06\x00\x00\x01-" + // 0x00690306: 0x0000012D
- "\x00I\x03(\x00\x00\x01." + // 0x00490328: 0x0000012E
- "\x00i\x03(\x00\x00\x01/" + // 0x00690328: 0x0000012F
- "\x00I\x03\a\x00\x00\x010" + // 0x00490307: 0x00000130
- "\x00J\x03\x02\x00\x00\x014" + // 0x004A0302: 0x00000134
- "\x00j\x03\x02\x00\x00\x015" + // 0x006A0302: 0x00000135
- "\x00K\x03'\x00\x00\x016" + // 0x004B0327: 0x00000136
- "\x00k\x03'\x00\x00\x017" + // 0x006B0327: 0x00000137
- "\x00L\x03\x01\x00\x00\x019" + // 0x004C0301: 0x00000139
- "\x00l\x03\x01\x00\x00\x01:" + // 0x006C0301: 0x0000013A
- "\x00L\x03'\x00\x00\x01;" + // 0x004C0327: 0x0000013B
- "\x00l\x03'\x00\x00\x01<" + // 0x006C0327: 0x0000013C
- "\x00L\x03\f\x00\x00\x01=" + // 0x004C030C: 0x0000013D
- "\x00l\x03\f\x00\x00\x01>" + // 0x006C030C: 0x0000013E
- "\x00N\x03\x01\x00\x00\x01C" + // 0x004E0301: 0x00000143
- "\x00n\x03\x01\x00\x00\x01D" + // 0x006E0301: 0x00000144
- "\x00N\x03'\x00\x00\x01E" + // 0x004E0327: 0x00000145
- "\x00n\x03'\x00\x00\x01F" + // 0x006E0327: 0x00000146
- "\x00N\x03\f\x00\x00\x01G" + // 0x004E030C: 0x00000147
- "\x00n\x03\f\x00\x00\x01H" + // 0x006E030C: 0x00000148
- "\x00O\x03\x04\x00\x00\x01L" + // 0x004F0304: 0x0000014C
- "\x00o\x03\x04\x00\x00\x01M" + // 0x006F0304: 0x0000014D
- "\x00O\x03\x06\x00\x00\x01N" + // 0x004F0306: 0x0000014E
- "\x00o\x03\x06\x00\x00\x01O" + // 0x006F0306: 0x0000014F
- "\x00O\x03\v\x00\x00\x01P" + // 0x004F030B: 0x00000150
- "\x00o\x03\v\x00\x00\x01Q" + // 0x006F030B: 0x00000151
- "\x00R\x03\x01\x00\x00\x01T" + // 0x00520301: 0x00000154
- "\x00r\x03\x01\x00\x00\x01U" + // 0x00720301: 0x00000155
- "\x00R\x03'\x00\x00\x01V" + // 0x00520327: 0x00000156
- "\x00r\x03'\x00\x00\x01W" + // 0x00720327: 0x00000157
- "\x00R\x03\f\x00\x00\x01X" + // 0x0052030C: 0x00000158
- "\x00r\x03\f\x00\x00\x01Y" + // 0x0072030C: 0x00000159
- "\x00S\x03\x01\x00\x00\x01Z" + // 0x00530301: 0x0000015A
- "\x00s\x03\x01\x00\x00\x01[" + // 0x00730301: 0x0000015B
- "\x00S\x03\x02\x00\x00\x01\\" + // 0x00530302: 0x0000015C
- "\x00s\x03\x02\x00\x00\x01]" + // 0x00730302: 0x0000015D
- "\x00S\x03'\x00\x00\x01^" + // 0x00530327: 0x0000015E
- "\x00s\x03'\x00\x00\x01_" + // 0x00730327: 0x0000015F
- "\x00S\x03\f\x00\x00\x01`" + // 0x0053030C: 0x00000160
- "\x00s\x03\f\x00\x00\x01a" + // 0x0073030C: 0x00000161
- "\x00T\x03'\x00\x00\x01b" + // 0x00540327: 0x00000162
- "\x00t\x03'\x00\x00\x01c" + // 0x00740327: 0x00000163
- "\x00T\x03\f\x00\x00\x01d" + // 0x0054030C: 0x00000164
- "\x00t\x03\f\x00\x00\x01e" + // 0x0074030C: 0x00000165
- "\x00U\x03\x03\x00\x00\x01h" + // 0x00550303: 0x00000168
- "\x00u\x03\x03\x00\x00\x01i" + // 0x00750303: 0x00000169
- "\x00U\x03\x04\x00\x00\x01j" + // 0x00550304: 0x0000016A
- "\x00u\x03\x04\x00\x00\x01k" + // 0x00750304: 0x0000016B
- "\x00U\x03\x06\x00\x00\x01l" + // 0x00550306: 0x0000016C
- "\x00u\x03\x06\x00\x00\x01m" + // 0x00750306: 0x0000016D
- "\x00U\x03\n\x00\x00\x01n" + // 0x0055030A: 0x0000016E
- "\x00u\x03\n\x00\x00\x01o" + // 0x0075030A: 0x0000016F
- "\x00U\x03\v\x00\x00\x01p" + // 0x0055030B: 0x00000170
- "\x00u\x03\v\x00\x00\x01q" + // 0x0075030B: 0x00000171
- "\x00U\x03(\x00\x00\x01r" + // 0x00550328: 0x00000172
- "\x00u\x03(\x00\x00\x01s" + // 0x00750328: 0x00000173
- "\x00W\x03\x02\x00\x00\x01t" + // 0x00570302: 0x00000174
- "\x00w\x03\x02\x00\x00\x01u" + // 0x00770302: 0x00000175
- "\x00Y\x03\x02\x00\x00\x01v" + // 0x00590302: 0x00000176
- "\x00y\x03\x02\x00\x00\x01w" + // 0x00790302: 0x00000177
- "\x00Y\x03\b\x00\x00\x01x" + // 0x00590308: 0x00000178
- "\x00Z\x03\x01\x00\x00\x01y" + // 0x005A0301: 0x00000179
- "\x00z\x03\x01\x00\x00\x01z" + // 0x007A0301: 0x0000017A
- "\x00Z\x03\a\x00\x00\x01{" + // 0x005A0307: 0x0000017B
- "\x00z\x03\a\x00\x00\x01|" + // 0x007A0307: 0x0000017C
- "\x00Z\x03\f\x00\x00\x01}" + // 0x005A030C: 0x0000017D
- "\x00z\x03\f\x00\x00\x01~" + // 0x007A030C: 0x0000017E
- "\x00O\x03\x1b\x00\x00\x01\xa0" + // 0x004F031B: 0x000001A0
- "\x00o\x03\x1b\x00\x00\x01\xa1" + // 0x006F031B: 0x000001A1
- "\x00U\x03\x1b\x00\x00\x01\xaf" + // 0x0055031B: 0x000001AF
- "\x00u\x03\x1b\x00\x00\x01\xb0" + // 0x0075031B: 0x000001B0
- "\x00A\x03\f\x00\x00\x01\xcd" + // 0x0041030C: 0x000001CD
- "\x00a\x03\f\x00\x00\x01\xce" + // 0x0061030C: 0x000001CE
- "\x00I\x03\f\x00\x00\x01\xcf" + // 0x0049030C: 0x000001CF
- "\x00i\x03\f\x00\x00\x01\xd0" + // 0x0069030C: 0x000001D0
- "\x00O\x03\f\x00\x00\x01\xd1" + // 0x004F030C: 0x000001D1
- "\x00o\x03\f\x00\x00\x01\xd2" + // 0x006F030C: 0x000001D2
- "\x00U\x03\f\x00\x00\x01\xd3" + // 0x0055030C: 0x000001D3
- "\x00u\x03\f\x00\x00\x01\xd4" + // 0x0075030C: 0x000001D4
- "\x00\xdc\x03\x04\x00\x00\x01\xd5" + // 0x00DC0304: 0x000001D5
- "\x00\xfc\x03\x04\x00\x00\x01\xd6" + // 0x00FC0304: 0x000001D6
- "\x00\xdc\x03\x01\x00\x00\x01\xd7" + // 0x00DC0301: 0x000001D7
- "\x00\xfc\x03\x01\x00\x00\x01\xd8" + // 0x00FC0301: 0x000001D8
- "\x00\xdc\x03\f\x00\x00\x01\xd9" + // 0x00DC030C: 0x000001D9
- "\x00\xfc\x03\f\x00\x00\x01\xda" + // 0x00FC030C: 0x000001DA
- "\x00\xdc\x03\x00\x00\x00\x01\xdb" + // 0x00DC0300: 0x000001DB
- "\x00\xfc\x03\x00\x00\x00\x01\xdc" + // 0x00FC0300: 0x000001DC
- "\x00\xc4\x03\x04\x00\x00\x01\xde" + // 0x00C40304: 0x000001DE
- "\x00\xe4\x03\x04\x00\x00\x01\xdf" + // 0x00E40304: 0x000001DF
- "\x02&\x03\x04\x00\x00\x01\xe0" + // 0x02260304: 0x000001E0
- "\x02'\x03\x04\x00\x00\x01\xe1" + // 0x02270304: 0x000001E1
- "\x00\xc6\x03\x04\x00\x00\x01\xe2" + // 0x00C60304: 0x000001E2
- "\x00\xe6\x03\x04\x00\x00\x01\xe3" + // 0x00E60304: 0x000001E3
- "\x00G\x03\f\x00\x00\x01\xe6" + // 0x0047030C: 0x000001E6
- "\x00g\x03\f\x00\x00\x01\xe7" + // 0x0067030C: 0x000001E7
- "\x00K\x03\f\x00\x00\x01\xe8" + // 0x004B030C: 0x000001E8
- "\x00k\x03\f\x00\x00\x01\xe9" + // 0x006B030C: 0x000001E9
- "\x00O\x03(\x00\x00\x01\xea" + // 0x004F0328: 0x000001EA
- "\x00o\x03(\x00\x00\x01\xeb" + // 0x006F0328: 0x000001EB
- "\x01\xea\x03\x04\x00\x00\x01\xec" + // 0x01EA0304: 0x000001EC
- "\x01\xeb\x03\x04\x00\x00\x01\xed" + // 0x01EB0304: 0x000001ED
- "\x01\xb7\x03\f\x00\x00\x01\xee" + // 0x01B7030C: 0x000001EE
- "\x02\x92\x03\f\x00\x00\x01\xef" + // 0x0292030C: 0x000001EF
- "\x00j\x03\f\x00\x00\x01\xf0" + // 0x006A030C: 0x000001F0
- "\x00G\x03\x01\x00\x00\x01\xf4" + // 0x00470301: 0x000001F4
- "\x00g\x03\x01\x00\x00\x01\xf5" + // 0x00670301: 0x000001F5
- "\x00N\x03\x00\x00\x00\x01\xf8" + // 0x004E0300: 0x000001F8
- "\x00n\x03\x00\x00\x00\x01\xf9" + // 0x006E0300: 0x000001F9
- "\x00\xc5\x03\x01\x00\x00\x01\xfa" + // 0x00C50301: 0x000001FA
- "\x00\xe5\x03\x01\x00\x00\x01\xfb" + // 0x00E50301: 0x000001FB
- "\x00\xc6\x03\x01\x00\x00\x01\xfc" + // 0x00C60301: 0x000001FC
- "\x00\xe6\x03\x01\x00\x00\x01\xfd" + // 0x00E60301: 0x000001FD
- "\x00\xd8\x03\x01\x00\x00\x01\xfe" + // 0x00D80301: 0x000001FE
- "\x00\xf8\x03\x01\x00\x00\x01\xff" + // 0x00F80301: 0x000001FF
- "\x00A\x03\x0f\x00\x00\x02\x00" + // 0x0041030F: 0x00000200
- "\x00a\x03\x0f\x00\x00\x02\x01" + // 0x0061030F: 0x00000201
- "\x00A\x03\x11\x00\x00\x02\x02" + // 0x00410311: 0x00000202
- "\x00a\x03\x11\x00\x00\x02\x03" + // 0x00610311: 0x00000203
- "\x00E\x03\x0f\x00\x00\x02\x04" + // 0x0045030F: 0x00000204
- "\x00e\x03\x0f\x00\x00\x02\x05" + // 0x0065030F: 0x00000205
- "\x00E\x03\x11\x00\x00\x02\x06" + // 0x00450311: 0x00000206
- "\x00e\x03\x11\x00\x00\x02\a" + // 0x00650311: 0x00000207
- "\x00I\x03\x0f\x00\x00\x02\b" + // 0x0049030F: 0x00000208
- "\x00i\x03\x0f\x00\x00\x02\t" + // 0x0069030F: 0x00000209
- "\x00I\x03\x11\x00\x00\x02\n" + // 0x00490311: 0x0000020A
- "\x00i\x03\x11\x00\x00\x02\v" + // 0x00690311: 0x0000020B
- "\x00O\x03\x0f\x00\x00\x02\f" + // 0x004F030F: 0x0000020C
- "\x00o\x03\x0f\x00\x00\x02\r" + // 0x006F030F: 0x0000020D
- "\x00O\x03\x11\x00\x00\x02\x0e" + // 0x004F0311: 0x0000020E
- "\x00o\x03\x11\x00\x00\x02\x0f" + // 0x006F0311: 0x0000020F
- "\x00R\x03\x0f\x00\x00\x02\x10" + // 0x0052030F: 0x00000210
- "\x00r\x03\x0f\x00\x00\x02\x11" + // 0x0072030F: 0x00000211
- "\x00R\x03\x11\x00\x00\x02\x12" + // 0x00520311: 0x00000212
- "\x00r\x03\x11\x00\x00\x02\x13" + // 0x00720311: 0x00000213
- "\x00U\x03\x0f\x00\x00\x02\x14" + // 0x0055030F: 0x00000214
- "\x00u\x03\x0f\x00\x00\x02\x15" + // 0x0075030F: 0x00000215
- "\x00U\x03\x11\x00\x00\x02\x16" + // 0x00550311: 0x00000216
- "\x00u\x03\x11\x00\x00\x02\x17" + // 0x00750311: 0x00000217
- "\x00S\x03&\x00\x00\x02\x18" + // 0x00530326: 0x00000218
- "\x00s\x03&\x00\x00\x02\x19" + // 0x00730326: 0x00000219
- "\x00T\x03&\x00\x00\x02\x1a" + // 0x00540326: 0x0000021A
- "\x00t\x03&\x00\x00\x02\x1b" + // 0x00740326: 0x0000021B
- "\x00H\x03\f\x00\x00\x02\x1e" + // 0x0048030C: 0x0000021E
- "\x00h\x03\f\x00\x00\x02\x1f" + // 0x0068030C: 0x0000021F
- "\x00A\x03\a\x00\x00\x02&" + // 0x00410307: 0x00000226
- "\x00a\x03\a\x00\x00\x02'" + // 0x00610307: 0x00000227
- "\x00E\x03'\x00\x00\x02(" + // 0x00450327: 0x00000228
- "\x00e\x03'\x00\x00\x02)" + // 0x00650327: 0x00000229
- "\x00\xd6\x03\x04\x00\x00\x02*" + // 0x00D60304: 0x0000022A
- "\x00\xf6\x03\x04\x00\x00\x02+" + // 0x00F60304: 0x0000022B
- "\x00\xd5\x03\x04\x00\x00\x02," + // 0x00D50304: 0x0000022C
- "\x00\xf5\x03\x04\x00\x00\x02-" + // 0x00F50304: 0x0000022D
- "\x00O\x03\a\x00\x00\x02." + // 0x004F0307: 0x0000022E
- "\x00o\x03\a\x00\x00\x02/" + // 0x006F0307: 0x0000022F
- "\x02.\x03\x04\x00\x00\x020" + // 0x022E0304: 0x00000230
- "\x02/\x03\x04\x00\x00\x021" + // 0x022F0304: 0x00000231
- "\x00Y\x03\x04\x00\x00\x022" + // 0x00590304: 0x00000232
- "\x00y\x03\x04\x00\x00\x023" + // 0x00790304: 0x00000233
- "\x00\xa8\x03\x01\x00\x00\x03\x85" + // 0x00A80301: 0x00000385
- "\x03\x91\x03\x01\x00\x00\x03\x86" + // 0x03910301: 0x00000386
- "\x03\x95\x03\x01\x00\x00\x03\x88" + // 0x03950301: 0x00000388
- "\x03\x97\x03\x01\x00\x00\x03\x89" + // 0x03970301: 0x00000389
- "\x03\x99\x03\x01\x00\x00\x03\x8a" + // 0x03990301: 0x0000038A
- "\x03\x9f\x03\x01\x00\x00\x03\x8c" + // 0x039F0301: 0x0000038C
- "\x03\xa5\x03\x01\x00\x00\x03\x8e" + // 0x03A50301: 0x0000038E
- "\x03\xa9\x03\x01\x00\x00\x03\x8f" + // 0x03A90301: 0x0000038F
- "\x03\xca\x03\x01\x00\x00\x03\x90" + // 0x03CA0301: 0x00000390
- "\x03\x99\x03\b\x00\x00\x03\xaa" + // 0x03990308: 0x000003AA
- "\x03\xa5\x03\b\x00\x00\x03\xab" + // 0x03A50308: 0x000003AB
- "\x03\xb1\x03\x01\x00\x00\x03\xac" + // 0x03B10301: 0x000003AC
- "\x03\xb5\x03\x01\x00\x00\x03\xad" + // 0x03B50301: 0x000003AD
- "\x03\xb7\x03\x01\x00\x00\x03\xae" + // 0x03B70301: 0x000003AE
- "\x03\xb9\x03\x01\x00\x00\x03\xaf" + // 0x03B90301: 0x000003AF
- "\x03\xcb\x03\x01\x00\x00\x03\xb0" + // 0x03CB0301: 0x000003B0
- "\x03\xb9\x03\b\x00\x00\x03\xca" + // 0x03B90308: 0x000003CA
- "\x03\xc5\x03\b\x00\x00\x03\xcb" + // 0x03C50308: 0x000003CB
- "\x03\xbf\x03\x01\x00\x00\x03\xcc" + // 0x03BF0301: 0x000003CC
- "\x03\xc5\x03\x01\x00\x00\x03\xcd" + // 0x03C50301: 0x000003CD
- "\x03\xc9\x03\x01\x00\x00\x03\xce" + // 0x03C90301: 0x000003CE
- "\x03\xd2\x03\x01\x00\x00\x03\xd3" + // 0x03D20301: 0x000003D3
- "\x03\xd2\x03\b\x00\x00\x03\xd4" + // 0x03D20308: 0x000003D4
- "\x04\x15\x03\x00\x00\x00\x04\x00" + // 0x04150300: 0x00000400
- "\x04\x15\x03\b\x00\x00\x04\x01" + // 0x04150308: 0x00000401
- "\x04\x13\x03\x01\x00\x00\x04\x03" + // 0x04130301: 0x00000403
- "\x04\x06\x03\b\x00\x00\x04\a" + // 0x04060308: 0x00000407
- "\x04\x1a\x03\x01\x00\x00\x04\f" + // 0x041A0301: 0x0000040C
- "\x04\x18\x03\x00\x00\x00\x04\r" + // 0x04180300: 0x0000040D
- "\x04#\x03\x06\x00\x00\x04\x0e" + // 0x04230306: 0x0000040E
- "\x04\x18\x03\x06\x00\x00\x04\x19" + // 0x04180306: 0x00000419
- "\x048\x03\x06\x00\x00\x049" + // 0x04380306: 0x00000439
- "\x045\x03\x00\x00\x00\x04P" + // 0x04350300: 0x00000450
- "\x045\x03\b\x00\x00\x04Q" + // 0x04350308: 0x00000451
- "\x043\x03\x01\x00\x00\x04S" + // 0x04330301: 0x00000453
- "\x04V\x03\b\x00\x00\x04W" + // 0x04560308: 0x00000457
- "\x04:\x03\x01\x00\x00\x04\\" + // 0x043A0301: 0x0000045C
- "\x048\x03\x00\x00\x00\x04]" + // 0x04380300: 0x0000045D
- "\x04C\x03\x06\x00\x00\x04^" + // 0x04430306: 0x0000045E
- "\x04t\x03\x0f\x00\x00\x04v" + // 0x0474030F: 0x00000476
- "\x04u\x03\x0f\x00\x00\x04w" + // 0x0475030F: 0x00000477
- "\x04\x16\x03\x06\x00\x00\x04\xc1" + // 0x04160306: 0x000004C1
- "\x046\x03\x06\x00\x00\x04\xc2" + // 0x04360306: 0x000004C2
- "\x04\x10\x03\x06\x00\x00\x04\xd0" + // 0x04100306: 0x000004D0
- "\x040\x03\x06\x00\x00\x04\xd1" + // 0x04300306: 0x000004D1
- "\x04\x10\x03\b\x00\x00\x04\xd2" + // 0x04100308: 0x000004D2
- "\x040\x03\b\x00\x00\x04\xd3" + // 0x04300308: 0x000004D3
- "\x04\x15\x03\x06\x00\x00\x04\xd6" + // 0x04150306: 0x000004D6
- "\x045\x03\x06\x00\x00\x04\xd7" + // 0x04350306: 0x000004D7
- "\x04\xd8\x03\b\x00\x00\x04\xda" + // 0x04D80308: 0x000004DA
- "\x04\xd9\x03\b\x00\x00\x04\xdb" + // 0x04D90308: 0x000004DB
- "\x04\x16\x03\b\x00\x00\x04\xdc" + // 0x04160308: 0x000004DC
- "\x046\x03\b\x00\x00\x04\xdd" + // 0x04360308: 0x000004DD
- "\x04\x17\x03\b\x00\x00\x04\xde" + // 0x04170308: 0x000004DE
- "\x047\x03\b\x00\x00\x04\xdf" + // 0x04370308: 0x000004DF
- "\x04\x18\x03\x04\x00\x00\x04\xe2" + // 0x04180304: 0x000004E2
- "\x048\x03\x04\x00\x00\x04\xe3" + // 0x04380304: 0x000004E3
- "\x04\x18\x03\b\x00\x00\x04\xe4" + // 0x04180308: 0x000004E4
- "\x048\x03\b\x00\x00\x04\xe5" + // 0x04380308: 0x000004E5
- "\x04\x1e\x03\b\x00\x00\x04\xe6" + // 0x041E0308: 0x000004E6
- "\x04>\x03\b\x00\x00\x04\xe7" + // 0x043E0308: 0x000004E7
- "\x04\xe8\x03\b\x00\x00\x04\xea" + // 0x04E80308: 0x000004EA
- "\x04\xe9\x03\b\x00\x00\x04\xeb" + // 0x04E90308: 0x000004EB
- "\x04-\x03\b\x00\x00\x04\xec" + // 0x042D0308: 0x000004EC
- "\x04M\x03\b\x00\x00\x04\xed" + // 0x044D0308: 0x000004ED
- "\x04#\x03\x04\x00\x00\x04\xee" + // 0x04230304: 0x000004EE
- "\x04C\x03\x04\x00\x00\x04\xef" + // 0x04430304: 0x000004EF
- "\x04#\x03\b\x00\x00\x04\xf0" + // 0x04230308: 0x000004F0
- "\x04C\x03\b\x00\x00\x04\xf1" + // 0x04430308: 0x000004F1
- "\x04#\x03\v\x00\x00\x04\xf2" + // 0x0423030B: 0x000004F2
- "\x04C\x03\v\x00\x00\x04\xf3" + // 0x0443030B: 0x000004F3
- "\x04'\x03\b\x00\x00\x04\xf4" + // 0x04270308: 0x000004F4
- "\x04G\x03\b\x00\x00\x04\xf5" + // 0x04470308: 0x000004F5
- "\x04+\x03\b\x00\x00\x04\xf8" + // 0x042B0308: 0x000004F8
- "\x04K\x03\b\x00\x00\x04\xf9" + // 0x044B0308: 0x000004F9
- "\x06'\x06S\x00\x00\x06\"" + // 0x06270653: 0x00000622
- "\x06'\x06T\x00\x00\x06#" + // 0x06270654: 0x00000623
- "\x06H\x06T\x00\x00\x06$" + // 0x06480654: 0x00000624
- "\x06'\x06U\x00\x00\x06%" + // 0x06270655: 0x00000625
- "\x06J\x06T\x00\x00\x06&" + // 0x064A0654: 0x00000626
- "\x06\xd5\x06T\x00\x00\x06\xc0" + // 0x06D50654: 0x000006C0
- "\x06\xc1\x06T\x00\x00\x06\xc2" + // 0x06C10654: 0x000006C2
- "\x06\xd2\x06T\x00\x00\x06\xd3" + // 0x06D20654: 0x000006D3
- "\t(\t<\x00\x00\t)" + // 0x0928093C: 0x00000929
- "\t0\t<\x00\x00\t1" + // 0x0930093C: 0x00000931
- "\t3\t<\x00\x00\t4" + // 0x0933093C: 0x00000934
- "\t\xc7\t\xbe\x00\x00\t\xcb" + // 0x09C709BE: 0x000009CB
- "\t\xc7\t\xd7\x00\x00\t\xcc" + // 0x09C709D7: 0x000009CC
- "\vG\vV\x00\x00\vH" + // 0x0B470B56: 0x00000B48
- "\vG\v>\x00\x00\vK" + // 0x0B470B3E: 0x00000B4B
- "\vG\vW\x00\x00\vL" + // 0x0B470B57: 0x00000B4C
- "\v\x92\v\xd7\x00\x00\v\x94" + // 0x0B920BD7: 0x00000B94
- "\v\xc6\v\xbe\x00\x00\v\xca" + // 0x0BC60BBE: 0x00000BCA
- "\v\xc7\v\xbe\x00\x00\v\xcb" + // 0x0BC70BBE: 0x00000BCB
- "\v\xc6\v\xd7\x00\x00\v\xcc" + // 0x0BC60BD7: 0x00000BCC
- "\fF\fV\x00\x00\fH" + // 0x0C460C56: 0x00000C48
- "\f\xbf\f\xd5\x00\x00\f\xc0" + // 0x0CBF0CD5: 0x00000CC0
- "\f\xc6\f\xd5\x00\x00\f\xc7" + // 0x0CC60CD5: 0x00000CC7
- "\f\xc6\f\xd6\x00\x00\f\xc8" + // 0x0CC60CD6: 0x00000CC8
- "\f\xc6\f\xc2\x00\x00\f\xca" + // 0x0CC60CC2: 0x00000CCA
- "\f\xca\f\xd5\x00\x00\f\xcb" + // 0x0CCA0CD5: 0x00000CCB
- "\rF\r>\x00\x00\rJ" + // 0x0D460D3E: 0x00000D4A
- "\rG\r>\x00\x00\rK" + // 0x0D470D3E: 0x00000D4B
- "\rF\rW\x00\x00\rL" + // 0x0D460D57: 0x00000D4C
- "\r\xd9\r\xca\x00\x00\r\xda" + // 0x0DD90DCA: 0x00000DDA
- "\r\xd9\r\xcf\x00\x00\r\xdc" + // 0x0DD90DCF: 0x00000DDC
- "\r\xdc\r\xca\x00\x00\r\xdd" + // 0x0DDC0DCA: 0x00000DDD
- "\r\xd9\r\xdf\x00\x00\r\xde" + // 0x0DD90DDF: 0x00000DDE
- "\x10%\x10.\x00\x00\x10&" + // 0x1025102E: 0x00001026
- "\x1b\x05\x1b5\x00\x00\x1b\x06" + // 0x1B051B35: 0x00001B06
- "\x1b\a\x1b5\x00\x00\x1b\b" + // 0x1B071B35: 0x00001B08
- "\x1b\t\x1b5\x00\x00\x1b\n" + // 0x1B091B35: 0x00001B0A
- "\x1b\v\x1b5\x00\x00\x1b\f" + // 0x1B0B1B35: 0x00001B0C
- "\x1b\r\x1b5\x00\x00\x1b\x0e" + // 0x1B0D1B35: 0x00001B0E
- "\x1b\x11\x1b5\x00\x00\x1b\x12" + // 0x1B111B35: 0x00001B12
- "\x1b:\x1b5\x00\x00\x1b;" + // 0x1B3A1B35: 0x00001B3B
- "\x1b<\x1b5\x00\x00\x1b=" + // 0x1B3C1B35: 0x00001B3D
- "\x1b>\x1b5\x00\x00\x1b@" + // 0x1B3E1B35: 0x00001B40
- "\x1b?\x1b5\x00\x00\x1bA" + // 0x1B3F1B35: 0x00001B41
- "\x1bB\x1b5\x00\x00\x1bC" + // 0x1B421B35: 0x00001B43
- "\x00A\x03%\x00\x00\x1e\x00" + // 0x00410325: 0x00001E00
- "\x00a\x03%\x00\x00\x1e\x01" + // 0x00610325: 0x00001E01
- "\x00B\x03\a\x00\x00\x1e\x02" + // 0x00420307: 0x00001E02
- "\x00b\x03\a\x00\x00\x1e\x03" + // 0x00620307: 0x00001E03
- "\x00B\x03#\x00\x00\x1e\x04" + // 0x00420323: 0x00001E04
- "\x00b\x03#\x00\x00\x1e\x05" + // 0x00620323: 0x00001E05
- "\x00B\x031\x00\x00\x1e\x06" + // 0x00420331: 0x00001E06
- "\x00b\x031\x00\x00\x1e\a" + // 0x00620331: 0x00001E07
- "\x00\xc7\x03\x01\x00\x00\x1e\b" + // 0x00C70301: 0x00001E08
- "\x00\xe7\x03\x01\x00\x00\x1e\t" + // 0x00E70301: 0x00001E09
- "\x00D\x03\a\x00\x00\x1e\n" + // 0x00440307: 0x00001E0A
- "\x00d\x03\a\x00\x00\x1e\v" + // 0x00640307: 0x00001E0B
- "\x00D\x03#\x00\x00\x1e\f" + // 0x00440323: 0x00001E0C
- "\x00d\x03#\x00\x00\x1e\r" + // 0x00640323: 0x00001E0D
- "\x00D\x031\x00\x00\x1e\x0e" + // 0x00440331: 0x00001E0E
- "\x00d\x031\x00\x00\x1e\x0f" + // 0x00640331: 0x00001E0F
- "\x00D\x03'\x00\x00\x1e\x10" + // 0x00440327: 0x00001E10
- "\x00d\x03'\x00\x00\x1e\x11" + // 0x00640327: 0x00001E11
- "\x00D\x03-\x00\x00\x1e\x12" + // 0x0044032D: 0x00001E12
- "\x00d\x03-\x00\x00\x1e\x13" + // 0x0064032D: 0x00001E13
- "\x01\x12\x03\x00\x00\x00\x1e\x14" + // 0x01120300: 0x00001E14
- "\x01\x13\x03\x00\x00\x00\x1e\x15" + // 0x01130300: 0x00001E15
- "\x01\x12\x03\x01\x00\x00\x1e\x16" + // 0x01120301: 0x00001E16
- "\x01\x13\x03\x01\x00\x00\x1e\x17" + // 0x01130301: 0x00001E17
- "\x00E\x03-\x00\x00\x1e\x18" + // 0x0045032D: 0x00001E18
- "\x00e\x03-\x00\x00\x1e\x19" + // 0x0065032D: 0x00001E19
- "\x00E\x030\x00\x00\x1e\x1a" + // 0x00450330: 0x00001E1A
- "\x00e\x030\x00\x00\x1e\x1b" + // 0x00650330: 0x00001E1B
- "\x02(\x03\x06\x00\x00\x1e\x1c" + // 0x02280306: 0x00001E1C
- "\x02)\x03\x06\x00\x00\x1e\x1d" + // 0x02290306: 0x00001E1D
- "\x00F\x03\a\x00\x00\x1e\x1e" + // 0x00460307: 0x00001E1E
- "\x00f\x03\a\x00\x00\x1e\x1f" + // 0x00660307: 0x00001E1F
- "\x00G\x03\x04\x00\x00\x1e " + // 0x00470304: 0x00001E20
- "\x00g\x03\x04\x00\x00\x1e!" + // 0x00670304: 0x00001E21
- "\x00H\x03\a\x00\x00\x1e\"" + // 0x00480307: 0x00001E22
- "\x00h\x03\a\x00\x00\x1e#" + // 0x00680307: 0x00001E23
- "\x00H\x03#\x00\x00\x1e$" + // 0x00480323: 0x00001E24
- "\x00h\x03#\x00\x00\x1e%" + // 0x00680323: 0x00001E25
- "\x00H\x03\b\x00\x00\x1e&" + // 0x00480308: 0x00001E26
- "\x00h\x03\b\x00\x00\x1e'" + // 0x00680308: 0x00001E27
- "\x00H\x03'\x00\x00\x1e(" + // 0x00480327: 0x00001E28
- "\x00h\x03'\x00\x00\x1e)" + // 0x00680327: 0x00001E29
- "\x00H\x03.\x00\x00\x1e*" + // 0x0048032E: 0x00001E2A
- "\x00h\x03.\x00\x00\x1e+" + // 0x0068032E: 0x00001E2B
- "\x00I\x030\x00\x00\x1e," + // 0x00490330: 0x00001E2C
- "\x00i\x030\x00\x00\x1e-" + // 0x00690330: 0x00001E2D
- "\x00\xcf\x03\x01\x00\x00\x1e." + // 0x00CF0301: 0x00001E2E
- "\x00\xef\x03\x01\x00\x00\x1e/" + // 0x00EF0301: 0x00001E2F
- "\x00K\x03\x01\x00\x00\x1e0" + // 0x004B0301: 0x00001E30
- "\x00k\x03\x01\x00\x00\x1e1" + // 0x006B0301: 0x00001E31
- "\x00K\x03#\x00\x00\x1e2" + // 0x004B0323: 0x00001E32
- "\x00k\x03#\x00\x00\x1e3" + // 0x006B0323: 0x00001E33
- "\x00K\x031\x00\x00\x1e4" + // 0x004B0331: 0x00001E34
- "\x00k\x031\x00\x00\x1e5" + // 0x006B0331: 0x00001E35
- "\x00L\x03#\x00\x00\x1e6" + // 0x004C0323: 0x00001E36
- "\x00l\x03#\x00\x00\x1e7" + // 0x006C0323: 0x00001E37
- "\x1e6\x03\x04\x00\x00\x1e8" + // 0x1E360304: 0x00001E38
- "\x1e7\x03\x04\x00\x00\x1e9" + // 0x1E370304: 0x00001E39
- "\x00L\x031\x00\x00\x1e:" + // 0x004C0331: 0x00001E3A
- "\x00l\x031\x00\x00\x1e;" + // 0x006C0331: 0x00001E3B
- "\x00L\x03-\x00\x00\x1e<" + // 0x004C032D: 0x00001E3C
- "\x00l\x03-\x00\x00\x1e=" + // 0x006C032D: 0x00001E3D
- "\x00M\x03\x01\x00\x00\x1e>" + // 0x004D0301: 0x00001E3E
- "\x00m\x03\x01\x00\x00\x1e?" + // 0x006D0301: 0x00001E3F
- "\x00M\x03\a\x00\x00\x1e@" + // 0x004D0307: 0x00001E40
- "\x00m\x03\a\x00\x00\x1eA" + // 0x006D0307: 0x00001E41
- "\x00M\x03#\x00\x00\x1eB" + // 0x004D0323: 0x00001E42
- "\x00m\x03#\x00\x00\x1eC" + // 0x006D0323: 0x00001E43
- "\x00N\x03\a\x00\x00\x1eD" + // 0x004E0307: 0x00001E44
- "\x00n\x03\a\x00\x00\x1eE" + // 0x006E0307: 0x00001E45
- "\x00N\x03#\x00\x00\x1eF" + // 0x004E0323: 0x00001E46
- "\x00n\x03#\x00\x00\x1eG" + // 0x006E0323: 0x00001E47
- "\x00N\x031\x00\x00\x1eH" + // 0x004E0331: 0x00001E48
- "\x00n\x031\x00\x00\x1eI" + // 0x006E0331: 0x00001E49
- "\x00N\x03-\x00\x00\x1eJ" + // 0x004E032D: 0x00001E4A
- "\x00n\x03-\x00\x00\x1eK" + // 0x006E032D: 0x00001E4B
- "\x00\xd5\x03\x01\x00\x00\x1eL" + // 0x00D50301: 0x00001E4C
- "\x00\xf5\x03\x01\x00\x00\x1eM" + // 0x00F50301: 0x00001E4D
- "\x00\xd5\x03\b\x00\x00\x1eN" + // 0x00D50308: 0x00001E4E
- "\x00\xf5\x03\b\x00\x00\x1eO" + // 0x00F50308: 0x00001E4F
- "\x01L\x03\x00\x00\x00\x1eP" + // 0x014C0300: 0x00001E50
- "\x01M\x03\x00\x00\x00\x1eQ" + // 0x014D0300: 0x00001E51
- "\x01L\x03\x01\x00\x00\x1eR" + // 0x014C0301: 0x00001E52
- "\x01M\x03\x01\x00\x00\x1eS" + // 0x014D0301: 0x00001E53
- "\x00P\x03\x01\x00\x00\x1eT" + // 0x00500301: 0x00001E54
- "\x00p\x03\x01\x00\x00\x1eU" + // 0x00700301: 0x00001E55
- "\x00P\x03\a\x00\x00\x1eV" + // 0x00500307: 0x00001E56
- "\x00p\x03\a\x00\x00\x1eW" + // 0x00700307: 0x00001E57
- "\x00R\x03\a\x00\x00\x1eX" + // 0x00520307: 0x00001E58
- "\x00r\x03\a\x00\x00\x1eY" + // 0x00720307: 0x00001E59
- "\x00R\x03#\x00\x00\x1eZ" + // 0x00520323: 0x00001E5A
- "\x00r\x03#\x00\x00\x1e[" + // 0x00720323: 0x00001E5B
- "\x1eZ\x03\x04\x00\x00\x1e\\" + // 0x1E5A0304: 0x00001E5C
- "\x1e[\x03\x04\x00\x00\x1e]" + // 0x1E5B0304: 0x00001E5D
- "\x00R\x031\x00\x00\x1e^" + // 0x00520331: 0x00001E5E
- "\x00r\x031\x00\x00\x1e_" + // 0x00720331: 0x00001E5F
- "\x00S\x03\a\x00\x00\x1e`" + // 0x00530307: 0x00001E60
- "\x00s\x03\a\x00\x00\x1ea" + // 0x00730307: 0x00001E61
- "\x00S\x03#\x00\x00\x1eb" + // 0x00530323: 0x00001E62
- "\x00s\x03#\x00\x00\x1ec" + // 0x00730323: 0x00001E63
- "\x01Z\x03\a\x00\x00\x1ed" + // 0x015A0307: 0x00001E64
- "\x01[\x03\a\x00\x00\x1ee" + // 0x015B0307: 0x00001E65
- "\x01`\x03\a\x00\x00\x1ef" + // 0x01600307: 0x00001E66
- "\x01a\x03\a\x00\x00\x1eg" + // 0x01610307: 0x00001E67
- "\x1eb\x03\a\x00\x00\x1eh" + // 0x1E620307: 0x00001E68
- "\x1ec\x03\a\x00\x00\x1ei" + // 0x1E630307: 0x00001E69
- "\x00T\x03\a\x00\x00\x1ej" + // 0x00540307: 0x00001E6A
- "\x00t\x03\a\x00\x00\x1ek" + // 0x00740307: 0x00001E6B
- "\x00T\x03#\x00\x00\x1el" + // 0x00540323: 0x00001E6C
- "\x00t\x03#\x00\x00\x1em" + // 0x00740323: 0x00001E6D
- "\x00T\x031\x00\x00\x1en" + // 0x00540331: 0x00001E6E
- "\x00t\x031\x00\x00\x1eo" + // 0x00740331: 0x00001E6F
- "\x00T\x03-\x00\x00\x1ep" + // 0x0054032D: 0x00001E70
- "\x00t\x03-\x00\x00\x1eq" + // 0x0074032D: 0x00001E71
- "\x00U\x03$\x00\x00\x1er" + // 0x00550324: 0x00001E72
- "\x00u\x03$\x00\x00\x1es" + // 0x00750324: 0x00001E73
- "\x00U\x030\x00\x00\x1et" + // 0x00550330: 0x00001E74
- "\x00u\x030\x00\x00\x1eu" + // 0x00750330: 0x00001E75
- "\x00U\x03-\x00\x00\x1ev" + // 0x0055032D: 0x00001E76
- "\x00u\x03-\x00\x00\x1ew" + // 0x0075032D: 0x00001E77
- "\x01h\x03\x01\x00\x00\x1ex" + // 0x01680301: 0x00001E78
- "\x01i\x03\x01\x00\x00\x1ey" + // 0x01690301: 0x00001E79
- "\x01j\x03\b\x00\x00\x1ez" + // 0x016A0308: 0x00001E7A
- "\x01k\x03\b\x00\x00\x1e{" + // 0x016B0308: 0x00001E7B
- "\x00V\x03\x03\x00\x00\x1e|" + // 0x00560303: 0x00001E7C
- "\x00v\x03\x03\x00\x00\x1e}" + // 0x00760303: 0x00001E7D
- "\x00V\x03#\x00\x00\x1e~" + // 0x00560323: 0x00001E7E
- "\x00v\x03#\x00\x00\x1e\u007f" + // 0x00760323: 0x00001E7F
- "\x00W\x03\x00\x00\x00\x1e\x80" + // 0x00570300: 0x00001E80
- "\x00w\x03\x00\x00\x00\x1e\x81" + // 0x00770300: 0x00001E81
- "\x00W\x03\x01\x00\x00\x1e\x82" + // 0x00570301: 0x00001E82
- "\x00w\x03\x01\x00\x00\x1e\x83" + // 0x00770301: 0x00001E83
- "\x00W\x03\b\x00\x00\x1e\x84" + // 0x00570308: 0x00001E84
- "\x00w\x03\b\x00\x00\x1e\x85" + // 0x00770308: 0x00001E85
- "\x00W\x03\a\x00\x00\x1e\x86" + // 0x00570307: 0x00001E86
- "\x00w\x03\a\x00\x00\x1e\x87" + // 0x00770307: 0x00001E87
- "\x00W\x03#\x00\x00\x1e\x88" + // 0x00570323: 0x00001E88
- "\x00w\x03#\x00\x00\x1e\x89" + // 0x00770323: 0x00001E89
- "\x00X\x03\a\x00\x00\x1e\x8a" + // 0x00580307: 0x00001E8A
- "\x00x\x03\a\x00\x00\x1e\x8b" + // 0x00780307: 0x00001E8B
- "\x00X\x03\b\x00\x00\x1e\x8c" + // 0x00580308: 0x00001E8C
- "\x00x\x03\b\x00\x00\x1e\x8d" + // 0x00780308: 0x00001E8D
- "\x00Y\x03\a\x00\x00\x1e\x8e" + // 0x00590307: 0x00001E8E
- "\x00y\x03\a\x00\x00\x1e\x8f" + // 0x00790307: 0x00001E8F
- "\x00Z\x03\x02\x00\x00\x1e\x90" + // 0x005A0302: 0x00001E90
- "\x00z\x03\x02\x00\x00\x1e\x91" + // 0x007A0302: 0x00001E91
- "\x00Z\x03#\x00\x00\x1e\x92" + // 0x005A0323: 0x00001E92
- "\x00z\x03#\x00\x00\x1e\x93" + // 0x007A0323: 0x00001E93
- "\x00Z\x031\x00\x00\x1e\x94" + // 0x005A0331: 0x00001E94
- "\x00z\x031\x00\x00\x1e\x95" + // 0x007A0331: 0x00001E95
- "\x00h\x031\x00\x00\x1e\x96" + // 0x00680331: 0x00001E96
- "\x00t\x03\b\x00\x00\x1e\x97" + // 0x00740308: 0x00001E97
- "\x00w\x03\n\x00\x00\x1e\x98" + // 0x0077030A: 0x00001E98
- "\x00y\x03\n\x00\x00\x1e\x99" + // 0x0079030A: 0x00001E99
- "\x01\u007f\x03\a\x00\x00\x1e\x9b" + // 0x017F0307: 0x00001E9B
- "\x00A\x03#\x00\x00\x1e\xa0" + // 0x00410323: 0x00001EA0
- "\x00a\x03#\x00\x00\x1e\xa1" + // 0x00610323: 0x00001EA1
- "\x00A\x03\t\x00\x00\x1e\xa2" + // 0x00410309: 0x00001EA2
- "\x00a\x03\t\x00\x00\x1e\xa3" + // 0x00610309: 0x00001EA3
- "\x00\xc2\x03\x01\x00\x00\x1e\xa4" + // 0x00C20301: 0x00001EA4
- "\x00\xe2\x03\x01\x00\x00\x1e\xa5" + // 0x00E20301: 0x00001EA5
- "\x00\xc2\x03\x00\x00\x00\x1e\xa6" + // 0x00C20300: 0x00001EA6
- "\x00\xe2\x03\x00\x00\x00\x1e\xa7" + // 0x00E20300: 0x00001EA7
- "\x00\xc2\x03\t\x00\x00\x1e\xa8" + // 0x00C20309: 0x00001EA8
- "\x00\xe2\x03\t\x00\x00\x1e\xa9" + // 0x00E20309: 0x00001EA9
- "\x00\xc2\x03\x03\x00\x00\x1e\xaa" + // 0x00C20303: 0x00001EAA
- "\x00\xe2\x03\x03\x00\x00\x1e\xab" + // 0x00E20303: 0x00001EAB
- "\x1e\xa0\x03\x02\x00\x00\x1e\xac" + // 0x1EA00302: 0x00001EAC
- "\x1e\xa1\x03\x02\x00\x00\x1e\xad" + // 0x1EA10302: 0x00001EAD
- "\x01\x02\x03\x01\x00\x00\x1e\xae" + // 0x01020301: 0x00001EAE
- "\x01\x03\x03\x01\x00\x00\x1e\xaf" + // 0x01030301: 0x00001EAF
- "\x01\x02\x03\x00\x00\x00\x1e\xb0" + // 0x01020300: 0x00001EB0
- "\x01\x03\x03\x00\x00\x00\x1e\xb1" + // 0x01030300: 0x00001EB1
- "\x01\x02\x03\t\x00\x00\x1e\xb2" + // 0x01020309: 0x00001EB2
- "\x01\x03\x03\t\x00\x00\x1e\xb3" + // 0x01030309: 0x00001EB3
- "\x01\x02\x03\x03\x00\x00\x1e\xb4" + // 0x01020303: 0x00001EB4
- "\x01\x03\x03\x03\x00\x00\x1e\xb5" + // 0x01030303: 0x00001EB5
- "\x1e\xa0\x03\x06\x00\x00\x1e\xb6" + // 0x1EA00306: 0x00001EB6
- "\x1e\xa1\x03\x06\x00\x00\x1e\xb7" + // 0x1EA10306: 0x00001EB7
- "\x00E\x03#\x00\x00\x1e\xb8" + // 0x00450323: 0x00001EB8
- "\x00e\x03#\x00\x00\x1e\xb9" + // 0x00650323: 0x00001EB9
- "\x00E\x03\t\x00\x00\x1e\xba" + // 0x00450309: 0x00001EBA
- "\x00e\x03\t\x00\x00\x1e\xbb" + // 0x00650309: 0x00001EBB
- "\x00E\x03\x03\x00\x00\x1e\xbc" + // 0x00450303: 0x00001EBC
- "\x00e\x03\x03\x00\x00\x1e\xbd" + // 0x00650303: 0x00001EBD
- "\x00\xca\x03\x01\x00\x00\x1e\xbe" + // 0x00CA0301: 0x00001EBE
- "\x00\xea\x03\x01\x00\x00\x1e\xbf" + // 0x00EA0301: 0x00001EBF
- "\x00\xca\x03\x00\x00\x00\x1e\xc0" + // 0x00CA0300: 0x00001EC0
- "\x00\xea\x03\x00\x00\x00\x1e\xc1" + // 0x00EA0300: 0x00001EC1
- "\x00\xca\x03\t\x00\x00\x1e\xc2" + // 0x00CA0309: 0x00001EC2
- "\x00\xea\x03\t\x00\x00\x1e\xc3" + // 0x00EA0309: 0x00001EC3
- "\x00\xca\x03\x03\x00\x00\x1e\xc4" + // 0x00CA0303: 0x00001EC4
- "\x00\xea\x03\x03\x00\x00\x1e\xc5" + // 0x00EA0303: 0x00001EC5
- "\x1e\xb8\x03\x02\x00\x00\x1e\xc6" + // 0x1EB80302: 0x00001EC6
- "\x1e\xb9\x03\x02\x00\x00\x1e\xc7" + // 0x1EB90302: 0x00001EC7
- "\x00I\x03\t\x00\x00\x1e\xc8" + // 0x00490309: 0x00001EC8
- "\x00i\x03\t\x00\x00\x1e\xc9" + // 0x00690309: 0x00001EC9
- "\x00I\x03#\x00\x00\x1e\xca" + // 0x00490323: 0x00001ECA
- "\x00i\x03#\x00\x00\x1e\xcb" + // 0x00690323: 0x00001ECB
- "\x00O\x03#\x00\x00\x1e\xcc" + // 0x004F0323: 0x00001ECC
- "\x00o\x03#\x00\x00\x1e\xcd" + // 0x006F0323: 0x00001ECD
- "\x00O\x03\t\x00\x00\x1e\xce" + // 0x004F0309: 0x00001ECE
- "\x00o\x03\t\x00\x00\x1e\xcf" + // 0x006F0309: 0x00001ECF
- "\x00\xd4\x03\x01\x00\x00\x1e\xd0" + // 0x00D40301: 0x00001ED0
- "\x00\xf4\x03\x01\x00\x00\x1e\xd1" + // 0x00F40301: 0x00001ED1
- "\x00\xd4\x03\x00\x00\x00\x1e\xd2" + // 0x00D40300: 0x00001ED2
- "\x00\xf4\x03\x00\x00\x00\x1e\xd3" + // 0x00F40300: 0x00001ED3
- "\x00\xd4\x03\t\x00\x00\x1e\xd4" + // 0x00D40309: 0x00001ED4
- "\x00\xf4\x03\t\x00\x00\x1e\xd5" + // 0x00F40309: 0x00001ED5
- "\x00\xd4\x03\x03\x00\x00\x1e\xd6" + // 0x00D40303: 0x00001ED6
- "\x00\xf4\x03\x03\x00\x00\x1e\xd7" + // 0x00F40303: 0x00001ED7
- "\x1e\xcc\x03\x02\x00\x00\x1e\xd8" + // 0x1ECC0302: 0x00001ED8
- "\x1e\xcd\x03\x02\x00\x00\x1e\xd9" + // 0x1ECD0302: 0x00001ED9
- "\x01\xa0\x03\x01\x00\x00\x1e\xda" + // 0x01A00301: 0x00001EDA
- "\x01\xa1\x03\x01\x00\x00\x1e\xdb" + // 0x01A10301: 0x00001EDB
- "\x01\xa0\x03\x00\x00\x00\x1e\xdc" + // 0x01A00300: 0x00001EDC
- "\x01\xa1\x03\x00\x00\x00\x1e\xdd" + // 0x01A10300: 0x00001EDD
- "\x01\xa0\x03\t\x00\x00\x1e\xde" + // 0x01A00309: 0x00001EDE
- "\x01\xa1\x03\t\x00\x00\x1e\xdf" + // 0x01A10309: 0x00001EDF
- "\x01\xa0\x03\x03\x00\x00\x1e\xe0" + // 0x01A00303: 0x00001EE0
- "\x01\xa1\x03\x03\x00\x00\x1e\xe1" + // 0x01A10303: 0x00001EE1
- "\x01\xa0\x03#\x00\x00\x1e\xe2" + // 0x01A00323: 0x00001EE2
- "\x01\xa1\x03#\x00\x00\x1e\xe3" + // 0x01A10323: 0x00001EE3
- "\x00U\x03#\x00\x00\x1e\xe4" + // 0x00550323: 0x00001EE4
- "\x00u\x03#\x00\x00\x1e\xe5" + // 0x00750323: 0x00001EE5
- "\x00U\x03\t\x00\x00\x1e\xe6" + // 0x00550309: 0x00001EE6
- "\x00u\x03\t\x00\x00\x1e\xe7" + // 0x00750309: 0x00001EE7
- "\x01\xaf\x03\x01\x00\x00\x1e\xe8" + // 0x01AF0301: 0x00001EE8
- "\x01\xb0\x03\x01\x00\x00\x1e\xe9" + // 0x01B00301: 0x00001EE9
- "\x01\xaf\x03\x00\x00\x00\x1e\xea" + // 0x01AF0300: 0x00001EEA
- "\x01\xb0\x03\x00\x00\x00\x1e\xeb" + // 0x01B00300: 0x00001EEB
- "\x01\xaf\x03\t\x00\x00\x1e\xec" + // 0x01AF0309: 0x00001EEC
- "\x01\xb0\x03\t\x00\x00\x1e\xed" + // 0x01B00309: 0x00001EED
- "\x01\xaf\x03\x03\x00\x00\x1e\xee" + // 0x01AF0303: 0x00001EEE
- "\x01\xb0\x03\x03\x00\x00\x1e\xef" + // 0x01B00303: 0x00001EEF
- "\x01\xaf\x03#\x00\x00\x1e\xf0" + // 0x01AF0323: 0x00001EF0
- "\x01\xb0\x03#\x00\x00\x1e\xf1" + // 0x01B00323: 0x00001EF1
- "\x00Y\x03\x00\x00\x00\x1e\xf2" + // 0x00590300: 0x00001EF2
- "\x00y\x03\x00\x00\x00\x1e\xf3" + // 0x00790300: 0x00001EF3
- "\x00Y\x03#\x00\x00\x1e\xf4" + // 0x00590323: 0x00001EF4
- "\x00y\x03#\x00\x00\x1e\xf5" + // 0x00790323: 0x00001EF5
- "\x00Y\x03\t\x00\x00\x1e\xf6" + // 0x00590309: 0x00001EF6
- "\x00y\x03\t\x00\x00\x1e\xf7" + // 0x00790309: 0x00001EF7
- "\x00Y\x03\x03\x00\x00\x1e\xf8" + // 0x00590303: 0x00001EF8
- "\x00y\x03\x03\x00\x00\x1e\xf9" + // 0x00790303: 0x00001EF9
- "\x03\xb1\x03\x13\x00\x00\x1f\x00" + // 0x03B10313: 0x00001F00
- "\x03\xb1\x03\x14\x00\x00\x1f\x01" + // 0x03B10314: 0x00001F01
- "\x1f\x00\x03\x00\x00\x00\x1f\x02" + // 0x1F000300: 0x00001F02
- "\x1f\x01\x03\x00\x00\x00\x1f\x03" + // 0x1F010300: 0x00001F03
- "\x1f\x00\x03\x01\x00\x00\x1f\x04" + // 0x1F000301: 0x00001F04
- "\x1f\x01\x03\x01\x00\x00\x1f\x05" + // 0x1F010301: 0x00001F05
- "\x1f\x00\x03B\x00\x00\x1f\x06" + // 0x1F000342: 0x00001F06
- "\x1f\x01\x03B\x00\x00\x1f\a" + // 0x1F010342: 0x00001F07
- "\x03\x91\x03\x13\x00\x00\x1f\b" + // 0x03910313: 0x00001F08
- "\x03\x91\x03\x14\x00\x00\x1f\t" + // 0x03910314: 0x00001F09
- "\x1f\b\x03\x00\x00\x00\x1f\n" + // 0x1F080300: 0x00001F0A
- "\x1f\t\x03\x00\x00\x00\x1f\v" + // 0x1F090300: 0x00001F0B
- "\x1f\b\x03\x01\x00\x00\x1f\f" + // 0x1F080301: 0x00001F0C
- "\x1f\t\x03\x01\x00\x00\x1f\r" + // 0x1F090301: 0x00001F0D
- "\x1f\b\x03B\x00\x00\x1f\x0e" + // 0x1F080342: 0x00001F0E
- "\x1f\t\x03B\x00\x00\x1f\x0f" + // 0x1F090342: 0x00001F0F
- "\x03\xb5\x03\x13\x00\x00\x1f\x10" + // 0x03B50313: 0x00001F10
- "\x03\xb5\x03\x14\x00\x00\x1f\x11" + // 0x03B50314: 0x00001F11
- "\x1f\x10\x03\x00\x00\x00\x1f\x12" + // 0x1F100300: 0x00001F12
- "\x1f\x11\x03\x00\x00\x00\x1f\x13" + // 0x1F110300: 0x00001F13
- "\x1f\x10\x03\x01\x00\x00\x1f\x14" + // 0x1F100301: 0x00001F14
- "\x1f\x11\x03\x01\x00\x00\x1f\x15" + // 0x1F110301: 0x00001F15
- "\x03\x95\x03\x13\x00\x00\x1f\x18" + // 0x03950313: 0x00001F18
- "\x03\x95\x03\x14\x00\x00\x1f\x19" + // 0x03950314: 0x00001F19
- "\x1f\x18\x03\x00\x00\x00\x1f\x1a" + // 0x1F180300: 0x00001F1A
- "\x1f\x19\x03\x00\x00\x00\x1f\x1b" + // 0x1F190300: 0x00001F1B
- "\x1f\x18\x03\x01\x00\x00\x1f\x1c" + // 0x1F180301: 0x00001F1C
- "\x1f\x19\x03\x01\x00\x00\x1f\x1d" + // 0x1F190301: 0x00001F1D
- "\x03\xb7\x03\x13\x00\x00\x1f " + // 0x03B70313: 0x00001F20
- "\x03\xb7\x03\x14\x00\x00\x1f!" + // 0x03B70314: 0x00001F21
- "\x1f \x03\x00\x00\x00\x1f\"" + // 0x1F200300: 0x00001F22
- "\x1f!\x03\x00\x00\x00\x1f#" + // 0x1F210300: 0x00001F23
- "\x1f \x03\x01\x00\x00\x1f$" + // 0x1F200301: 0x00001F24
- "\x1f!\x03\x01\x00\x00\x1f%" + // 0x1F210301: 0x00001F25
- "\x1f \x03B\x00\x00\x1f&" + // 0x1F200342: 0x00001F26
- "\x1f!\x03B\x00\x00\x1f'" + // 0x1F210342: 0x00001F27
- "\x03\x97\x03\x13\x00\x00\x1f(" + // 0x03970313: 0x00001F28
- "\x03\x97\x03\x14\x00\x00\x1f)" + // 0x03970314: 0x00001F29
- "\x1f(\x03\x00\x00\x00\x1f*" + // 0x1F280300: 0x00001F2A
- "\x1f)\x03\x00\x00\x00\x1f+" + // 0x1F290300: 0x00001F2B
- "\x1f(\x03\x01\x00\x00\x1f," + // 0x1F280301: 0x00001F2C
- "\x1f)\x03\x01\x00\x00\x1f-" + // 0x1F290301: 0x00001F2D
- "\x1f(\x03B\x00\x00\x1f." + // 0x1F280342: 0x00001F2E
- "\x1f)\x03B\x00\x00\x1f/" + // 0x1F290342: 0x00001F2F
- "\x03\xb9\x03\x13\x00\x00\x1f0" + // 0x03B90313: 0x00001F30
- "\x03\xb9\x03\x14\x00\x00\x1f1" + // 0x03B90314: 0x00001F31
- "\x1f0\x03\x00\x00\x00\x1f2" + // 0x1F300300: 0x00001F32
- "\x1f1\x03\x00\x00\x00\x1f3" + // 0x1F310300: 0x00001F33
- "\x1f0\x03\x01\x00\x00\x1f4" + // 0x1F300301: 0x00001F34
- "\x1f1\x03\x01\x00\x00\x1f5" + // 0x1F310301: 0x00001F35
- "\x1f0\x03B\x00\x00\x1f6" + // 0x1F300342: 0x00001F36
- "\x1f1\x03B\x00\x00\x1f7" + // 0x1F310342: 0x00001F37
- "\x03\x99\x03\x13\x00\x00\x1f8" + // 0x03990313: 0x00001F38
- "\x03\x99\x03\x14\x00\x00\x1f9" + // 0x03990314: 0x00001F39
- "\x1f8\x03\x00\x00\x00\x1f:" + // 0x1F380300: 0x00001F3A
- "\x1f9\x03\x00\x00\x00\x1f;" + // 0x1F390300: 0x00001F3B
- "\x1f8\x03\x01\x00\x00\x1f<" + // 0x1F380301: 0x00001F3C
- "\x1f9\x03\x01\x00\x00\x1f=" + // 0x1F390301: 0x00001F3D
- "\x1f8\x03B\x00\x00\x1f>" + // 0x1F380342: 0x00001F3E
- "\x1f9\x03B\x00\x00\x1f?" + // 0x1F390342: 0x00001F3F
- "\x03\xbf\x03\x13\x00\x00\x1f@" + // 0x03BF0313: 0x00001F40
- "\x03\xbf\x03\x14\x00\x00\x1fA" + // 0x03BF0314: 0x00001F41
- "\x1f@\x03\x00\x00\x00\x1fB" + // 0x1F400300: 0x00001F42
- "\x1fA\x03\x00\x00\x00\x1fC" + // 0x1F410300: 0x00001F43
- "\x1f@\x03\x01\x00\x00\x1fD" + // 0x1F400301: 0x00001F44
- "\x1fA\x03\x01\x00\x00\x1fE" + // 0x1F410301: 0x00001F45
- "\x03\x9f\x03\x13\x00\x00\x1fH" + // 0x039F0313: 0x00001F48
- "\x03\x9f\x03\x14\x00\x00\x1fI" + // 0x039F0314: 0x00001F49
- "\x1fH\x03\x00\x00\x00\x1fJ" + // 0x1F480300: 0x00001F4A
- "\x1fI\x03\x00\x00\x00\x1fK" + // 0x1F490300: 0x00001F4B
- "\x1fH\x03\x01\x00\x00\x1fL" + // 0x1F480301: 0x00001F4C
- "\x1fI\x03\x01\x00\x00\x1fM" + // 0x1F490301: 0x00001F4D
- "\x03\xc5\x03\x13\x00\x00\x1fP" + // 0x03C50313: 0x00001F50
- "\x03\xc5\x03\x14\x00\x00\x1fQ" + // 0x03C50314: 0x00001F51
- "\x1fP\x03\x00\x00\x00\x1fR" + // 0x1F500300: 0x00001F52
- "\x1fQ\x03\x00\x00\x00\x1fS" + // 0x1F510300: 0x00001F53
- "\x1fP\x03\x01\x00\x00\x1fT" + // 0x1F500301: 0x00001F54
- "\x1fQ\x03\x01\x00\x00\x1fU" + // 0x1F510301: 0x00001F55
- "\x1fP\x03B\x00\x00\x1fV" + // 0x1F500342: 0x00001F56
- "\x1fQ\x03B\x00\x00\x1fW" + // 0x1F510342: 0x00001F57
- "\x03\xa5\x03\x14\x00\x00\x1fY" + // 0x03A50314: 0x00001F59
- "\x1fY\x03\x00\x00\x00\x1f[" + // 0x1F590300: 0x00001F5B
- "\x1fY\x03\x01\x00\x00\x1f]" + // 0x1F590301: 0x00001F5D
- "\x1fY\x03B\x00\x00\x1f_" + // 0x1F590342: 0x00001F5F
- "\x03\xc9\x03\x13\x00\x00\x1f`" + // 0x03C90313: 0x00001F60
- "\x03\xc9\x03\x14\x00\x00\x1fa" + // 0x03C90314: 0x00001F61
- "\x1f`\x03\x00\x00\x00\x1fb" + // 0x1F600300: 0x00001F62
- "\x1fa\x03\x00\x00\x00\x1fc" + // 0x1F610300: 0x00001F63
- "\x1f`\x03\x01\x00\x00\x1fd" + // 0x1F600301: 0x00001F64
- "\x1fa\x03\x01\x00\x00\x1fe" + // 0x1F610301: 0x00001F65
- "\x1f`\x03B\x00\x00\x1ff" + // 0x1F600342: 0x00001F66
- "\x1fa\x03B\x00\x00\x1fg" + // 0x1F610342: 0x00001F67
- "\x03\xa9\x03\x13\x00\x00\x1fh" + // 0x03A90313: 0x00001F68
- "\x03\xa9\x03\x14\x00\x00\x1fi" + // 0x03A90314: 0x00001F69
- "\x1fh\x03\x00\x00\x00\x1fj" + // 0x1F680300: 0x00001F6A
- "\x1fi\x03\x00\x00\x00\x1fk" + // 0x1F690300: 0x00001F6B
- "\x1fh\x03\x01\x00\x00\x1fl" + // 0x1F680301: 0x00001F6C
- "\x1fi\x03\x01\x00\x00\x1fm" + // 0x1F690301: 0x00001F6D
- "\x1fh\x03B\x00\x00\x1fn" + // 0x1F680342: 0x00001F6E
- "\x1fi\x03B\x00\x00\x1fo" + // 0x1F690342: 0x00001F6F
- "\x03\xb1\x03\x00\x00\x00\x1fp" + // 0x03B10300: 0x00001F70
- "\x03\xb5\x03\x00\x00\x00\x1fr" + // 0x03B50300: 0x00001F72
- "\x03\xb7\x03\x00\x00\x00\x1ft" + // 0x03B70300: 0x00001F74
- "\x03\xb9\x03\x00\x00\x00\x1fv" + // 0x03B90300: 0x00001F76
- "\x03\xbf\x03\x00\x00\x00\x1fx" + // 0x03BF0300: 0x00001F78
- "\x03\xc5\x03\x00\x00\x00\x1fz" + // 0x03C50300: 0x00001F7A
- "\x03\xc9\x03\x00\x00\x00\x1f|" + // 0x03C90300: 0x00001F7C
- "\x1f\x00\x03E\x00\x00\x1f\x80" + // 0x1F000345: 0x00001F80
- "\x1f\x01\x03E\x00\x00\x1f\x81" + // 0x1F010345: 0x00001F81
- "\x1f\x02\x03E\x00\x00\x1f\x82" + // 0x1F020345: 0x00001F82
- "\x1f\x03\x03E\x00\x00\x1f\x83" + // 0x1F030345: 0x00001F83
- "\x1f\x04\x03E\x00\x00\x1f\x84" + // 0x1F040345: 0x00001F84
- "\x1f\x05\x03E\x00\x00\x1f\x85" + // 0x1F050345: 0x00001F85
- "\x1f\x06\x03E\x00\x00\x1f\x86" + // 0x1F060345: 0x00001F86
- "\x1f\a\x03E\x00\x00\x1f\x87" + // 0x1F070345: 0x00001F87
- "\x1f\b\x03E\x00\x00\x1f\x88" + // 0x1F080345: 0x00001F88
- "\x1f\t\x03E\x00\x00\x1f\x89" + // 0x1F090345: 0x00001F89
- "\x1f\n\x03E\x00\x00\x1f\x8a" + // 0x1F0A0345: 0x00001F8A
- "\x1f\v\x03E\x00\x00\x1f\x8b" + // 0x1F0B0345: 0x00001F8B
- "\x1f\f\x03E\x00\x00\x1f\x8c" + // 0x1F0C0345: 0x00001F8C
- "\x1f\r\x03E\x00\x00\x1f\x8d" + // 0x1F0D0345: 0x00001F8D
- "\x1f\x0e\x03E\x00\x00\x1f\x8e" + // 0x1F0E0345: 0x00001F8E
- "\x1f\x0f\x03E\x00\x00\x1f\x8f" + // 0x1F0F0345: 0x00001F8F
- "\x1f \x03E\x00\x00\x1f\x90" + // 0x1F200345: 0x00001F90
- "\x1f!\x03E\x00\x00\x1f\x91" + // 0x1F210345: 0x00001F91
- "\x1f\"\x03E\x00\x00\x1f\x92" + // 0x1F220345: 0x00001F92
- "\x1f#\x03E\x00\x00\x1f\x93" + // 0x1F230345: 0x00001F93
- "\x1f$\x03E\x00\x00\x1f\x94" + // 0x1F240345: 0x00001F94
- "\x1f%\x03E\x00\x00\x1f\x95" + // 0x1F250345: 0x00001F95
- "\x1f&\x03E\x00\x00\x1f\x96" + // 0x1F260345: 0x00001F96
- "\x1f'\x03E\x00\x00\x1f\x97" + // 0x1F270345: 0x00001F97
- "\x1f(\x03E\x00\x00\x1f\x98" + // 0x1F280345: 0x00001F98
- "\x1f)\x03E\x00\x00\x1f\x99" + // 0x1F290345: 0x00001F99
- "\x1f*\x03E\x00\x00\x1f\x9a" + // 0x1F2A0345: 0x00001F9A
- "\x1f+\x03E\x00\x00\x1f\x9b" + // 0x1F2B0345: 0x00001F9B
- "\x1f,\x03E\x00\x00\x1f\x9c" + // 0x1F2C0345: 0x00001F9C
- "\x1f-\x03E\x00\x00\x1f\x9d" + // 0x1F2D0345: 0x00001F9D
- "\x1f.\x03E\x00\x00\x1f\x9e" + // 0x1F2E0345: 0x00001F9E
- "\x1f/\x03E\x00\x00\x1f\x9f" + // 0x1F2F0345: 0x00001F9F
- "\x1f`\x03E\x00\x00\x1f\xa0" + // 0x1F600345: 0x00001FA0
- "\x1fa\x03E\x00\x00\x1f\xa1" + // 0x1F610345: 0x00001FA1
- "\x1fb\x03E\x00\x00\x1f\xa2" + // 0x1F620345: 0x00001FA2
- "\x1fc\x03E\x00\x00\x1f\xa3" + // 0x1F630345: 0x00001FA3
- "\x1fd\x03E\x00\x00\x1f\xa4" + // 0x1F640345: 0x00001FA4
- "\x1fe\x03E\x00\x00\x1f\xa5" + // 0x1F650345: 0x00001FA5
- "\x1ff\x03E\x00\x00\x1f\xa6" + // 0x1F660345: 0x00001FA6
- "\x1fg\x03E\x00\x00\x1f\xa7" + // 0x1F670345: 0x00001FA7
- "\x1fh\x03E\x00\x00\x1f\xa8" + // 0x1F680345: 0x00001FA8
- "\x1fi\x03E\x00\x00\x1f\xa9" + // 0x1F690345: 0x00001FA9
- "\x1fj\x03E\x00\x00\x1f\xaa" + // 0x1F6A0345: 0x00001FAA
- "\x1fk\x03E\x00\x00\x1f\xab" + // 0x1F6B0345: 0x00001FAB
- "\x1fl\x03E\x00\x00\x1f\xac" + // 0x1F6C0345: 0x00001FAC
- "\x1fm\x03E\x00\x00\x1f\xad" + // 0x1F6D0345: 0x00001FAD
- "\x1fn\x03E\x00\x00\x1f\xae" + // 0x1F6E0345: 0x00001FAE
- "\x1fo\x03E\x00\x00\x1f\xaf" + // 0x1F6F0345: 0x00001FAF
- "\x03\xb1\x03\x06\x00\x00\x1f\xb0" + // 0x03B10306: 0x00001FB0
- "\x03\xb1\x03\x04\x00\x00\x1f\xb1" + // 0x03B10304: 0x00001FB1
- "\x1fp\x03E\x00\x00\x1f\xb2" + // 0x1F700345: 0x00001FB2
- "\x03\xb1\x03E\x00\x00\x1f\xb3" + // 0x03B10345: 0x00001FB3
- "\x03\xac\x03E\x00\x00\x1f\xb4" + // 0x03AC0345: 0x00001FB4
- "\x03\xb1\x03B\x00\x00\x1f\xb6" + // 0x03B10342: 0x00001FB6
- "\x1f\xb6\x03E\x00\x00\x1f\xb7" + // 0x1FB60345: 0x00001FB7
- "\x03\x91\x03\x06\x00\x00\x1f\xb8" + // 0x03910306: 0x00001FB8
- "\x03\x91\x03\x04\x00\x00\x1f\xb9" + // 0x03910304: 0x00001FB9
- "\x03\x91\x03\x00\x00\x00\x1f\xba" + // 0x03910300: 0x00001FBA
- "\x03\x91\x03E\x00\x00\x1f\xbc" + // 0x03910345: 0x00001FBC
- "\x00\xa8\x03B\x00\x00\x1f\xc1" + // 0x00A80342: 0x00001FC1
- "\x1ft\x03E\x00\x00\x1f\xc2" + // 0x1F740345: 0x00001FC2
- "\x03\xb7\x03E\x00\x00\x1f\xc3" + // 0x03B70345: 0x00001FC3
- "\x03\xae\x03E\x00\x00\x1f\xc4" + // 0x03AE0345: 0x00001FC4
- "\x03\xb7\x03B\x00\x00\x1f\xc6" + // 0x03B70342: 0x00001FC6
- "\x1f\xc6\x03E\x00\x00\x1f\xc7" + // 0x1FC60345: 0x00001FC7
- "\x03\x95\x03\x00\x00\x00\x1f\xc8" + // 0x03950300: 0x00001FC8
- "\x03\x97\x03\x00\x00\x00\x1f\xca" + // 0x03970300: 0x00001FCA
- "\x03\x97\x03E\x00\x00\x1f\xcc" + // 0x03970345: 0x00001FCC
- "\x1f\xbf\x03\x00\x00\x00\x1f\xcd" + // 0x1FBF0300: 0x00001FCD
- "\x1f\xbf\x03\x01\x00\x00\x1f\xce" + // 0x1FBF0301: 0x00001FCE
- "\x1f\xbf\x03B\x00\x00\x1f\xcf" + // 0x1FBF0342: 0x00001FCF
- "\x03\xb9\x03\x06\x00\x00\x1f\xd0" + // 0x03B90306: 0x00001FD0
- "\x03\xb9\x03\x04\x00\x00\x1f\xd1" + // 0x03B90304: 0x00001FD1
- "\x03\xca\x03\x00\x00\x00\x1f\xd2" + // 0x03CA0300: 0x00001FD2
- "\x03\xb9\x03B\x00\x00\x1f\xd6" + // 0x03B90342: 0x00001FD6
- "\x03\xca\x03B\x00\x00\x1f\xd7" + // 0x03CA0342: 0x00001FD7
- "\x03\x99\x03\x06\x00\x00\x1f\xd8" + // 0x03990306: 0x00001FD8
- "\x03\x99\x03\x04\x00\x00\x1f\xd9" + // 0x03990304: 0x00001FD9
- "\x03\x99\x03\x00\x00\x00\x1f\xda" + // 0x03990300: 0x00001FDA
- "\x1f\xfe\x03\x00\x00\x00\x1f\xdd" + // 0x1FFE0300: 0x00001FDD
- "\x1f\xfe\x03\x01\x00\x00\x1f\xde" + // 0x1FFE0301: 0x00001FDE
- "\x1f\xfe\x03B\x00\x00\x1f\xdf" + // 0x1FFE0342: 0x00001FDF
- "\x03\xc5\x03\x06\x00\x00\x1f\xe0" + // 0x03C50306: 0x00001FE0
- "\x03\xc5\x03\x04\x00\x00\x1f\xe1" + // 0x03C50304: 0x00001FE1
- "\x03\xcb\x03\x00\x00\x00\x1f\xe2" + // 0x03CB0300: 0x00001FE2
- "\x03\xc1\x03\x13\x00\x00\x1f\xe4" + // 0x03C10313: 0x00001FE4
- "\x03\xc1\x03\x14\x00\x00\x1f\xe5" + // 0x03C10314: 0x00001FE5
- "\x03\xc5\x03B\x00\x00\x1f\xe6" + // 0x03C50342: 0x00001FE6
- "\x03\xcb\x03B\x00\x00\x1f\xe7" + // 0x03CB0342: 0x00001FE7
- "\x03\xa5\x03\x06\x00\x00\x1f\xe8" + // 0x03A50306: 0x00001FE8
- "\x03\xa5\x03\x04\x00\x00\x1f\xe9" + // 0x03A50304: 0x00001FE9
- "\x03\xa5\x03\x00\x00\x00\x1f\xea" + // 0x03A50300: 0x00001FEA
- "\x03\xa1\x03\x14\x00\x00\x1f\xec" + // 0x03A10314: 0x00001FEC
- "\x00\xa8\x03\x00\x00\x00\x1f\xed" + // 0x00A80300: 0x00001FED
- "\x1f|\x03E\x00\x00\x1f\xf2" + // 0x1F7C0345: 0x00001FF2
- "\x03\xc9\x03E\x00\x00\x1f\xf3" + // 0x03C90345: 0x00001FF3
- "\x03\xce\x03E\x00\x00\x1f\xf4" + // 0x03CE0345: 0x00001FF4
- "\x03\xc9\x03B\x00\x00\x1f\xf6" + // 0x03C90342: 0x00001FF6
- "\x1f\xf6\x03E\x00\x00\x1f\xf7" + // 0x1FF60345: 0x00001FF7
- "\x03\x9f\x03\x00\x00\x00\x1f\xf8" + // 0x039F0300: 0x00001FF8
- "\x03\xa9\x03\x00\x00\x00\x1f\xfa" + // 0x03A90300: 0x00001FFA
- "\x03\xa9\x03E\x00\x00\x1f\xfc" + // 0x03A90345: 0x00001FFC
- "!\x90\x038\x00\x00!\x9a" + // 0x21900338: 0x0000219A
- "!\x92\x038\x00\x00!\x9b" + // 0x21920338: 0x0000219B
- "!\x94\x038\x00\x00!\xae" + // 0x21940338: 0x000021AE
- "!\xd0\x038\x00\x00!\xcd" + // 0x21D00338: 0x000021CD
- "!\xd4\x038\x00\x00!\xce" + // 0x21D40338: 0x000021CE
- "!\xd2\x038\x00\x00!\xcf" + // 0x21D20338: 0x000021CF
- "\"\x03\x038\x00\x00\"\x04" + // 0x22030338: 0x00002204
- "\"\b\x038\x00\x00\"\t" + // 0x22080338: 0x00002209
- "\"\v\x038\x00\x00\"\f" + // 0x220B0338: 0x0000220C
- "\"#\x038\x00\x00\"$" + // 0x22230338: 0x00002224
- "\"%\x038\x00\x00\"&" + // 0x22250338: 0x00002226
- "\"<\x038\x00\x00\"A" + // 0x223C0338: 0x00002241
- "\"C\x038\x00\x00\"D" + // 0x22430338: 0x00002244
- "\"E\x038\x00\x00\"G" + // 0x22450338: 0x00002247
- "\"H\x038\x00\x00\"I" + // 0x22480338: 0x00002249
- "\x00=\x038\x00\x00\"`" + // 0x003D0338: 0x00002260
- "\"a\x038\x00\x00\"b" + // 0x22610338: 0x00002262
- "\"M\x038\x00\x00\"m" + // 0x224D0338: 0x0000226D
- "\x00<\x038\x00\x00\"n" + // 0x003C0338: 0x0000226E
- "\x00>\x038\x00\x00\"o" + // 0x003E0338: 0x0000226F
- "\"d\x038\x00\x00\"p" + // 0x22640338: 0x00002270
- "\"e\x038\x00\x00\"q" + // 0x22650338: 0x00002271
- "\"r\x038\x00\x00\"t" + // 0x22720338: 0x00002274
- "\"s\x038\x00\x00\"u" + // 0x22730338: 0x00002275
- "\"v\x038\x00\x00\"x" + // 0x22760338: 0x00002278
- "\"w\x038\x00\x00\"y" + // 0x22770338: 0x00002279
- "\"z\x038\x00\x00\"\x80" + // 0x227A0338: 0x00002280
- "\"{\x038\x00\x00\"\x81" + // 0x227B0338: 0x00002281
- "\"\x82\x038\x00\x00\"\x84" + // 0x22820338: 0x00002284
- "\"\x83\x038\x00\x00\"\x85" + // 0x22830338: 0x00002285
- "\"\x86\x038\x00\x00\"\x88" + // 0x22860338: 0x00002288
- "\"\x87\x038\x00\x00\"\x89" + // 0x22870338: 0x00002289
- "\"\xa2\x038\x00\x00\"\xac" + // 0x22A20338: 0x000022AC
- "\"\xa8\x038\x00\x00\"\xad" + // 0x22A80338: 0x000022AD
- "\"\xa9\x038\x00\x00\"\xae" + // 0x22A90338: 0x000022AE
- "\"\xab\x038\x00\x00\"\xaf" + // 0x22AB0338: 0x000022AF
- "\"|\x038\x00\x00\"\xe0" + // 0x227C0338: 0x000022E0
- "\"}\x038\x00\x00\"\xe1" + // 0x227D0338: 0x000022E1
- "\"\x91\x038\x00\x00\"\xe2" + // 0x22910338: 0x000022E2
- "\"\x92\x038\x00\x00\"\xe3" + // 0x22920338: 0x000022E3
- "\"\xb2\x038\x00\x00\"\xea" + // 0x22B20338: 0x000022EA
- "\"\xb3\x038\x00\x00\"\xeb" + // 0x22B30338: 0x000022EB
- "\"\xb4\x038\x00\x00\"\xec" + // 0x22B40338: 0x000022EC
- "\"\xb5\x038\x00\x00\"\xed" + // 0x22B50338: 0x000022ED
- "0K0\x99\x00\x000L" + // 0x304B3099: 0x0000304C
- "0M0\x99\x00\x000N" + // 0x304D3099: 0x0000304E
- "0O0\x99\x00\x000P" + // 0x304F3099: 0x00003050
- "0Q0\x99\x00\x000R" + // 0x30513099: 0x00003052
- "0S0\x99\x00\x000T" + // 0x30533099: 0x00003054
- "0U0\x99\x00\x000V" + // 0x30553099: 0x00003056
- "0W0\x99\x00\x000X" + // 0x30573099: 0x00003058
- "0Y0\x99\x00\x000Z" + // 0x30593099: 0x0000305A
- "0[0\x99\x00\x000\\" + // 0x305B3099: 0x0000305C
- "0]0\x99\x00\x000^" + // 0x305D3099: 0x0000305E
- "0_0\x99\x00\x000`" + // 0x305F3099: 0x00003060
- "0a0\x99\x00\x000b" + // 0x30613099: 0x00003062
- "0d0\x99\x00\x000e" + // 0x30643099: 0x00003065
- "0f0\x99\x00\x000g" + // 0x30663099: 0x00003067
- "0h0\x99\x00\x000i" + // 0x30683099: 0x00003069
- "0o0\x99\x00\x000p" + // 0x306F3099: 0x00003070
- "0o0\x9a\x00\x000q" + // 0x306F309A: 0x00003071
- "0r0\x99\x00\x000s" + // 0x30723099: 0x00003073
- "0r0\x9a\x00\x000t" + // 0x3072309A: 0x00003074
- "0u0\x99\x00\x000v" + // 0x30753099: 0x00003076
- "0u0\x9a\x00\x000w" + // 0x3075309A: 0x00003077
- "0x0\x99\x00\x000y" + // 0x30783099: 0x00003079
- "0x0\x9a\x00\x000z" + // 0x3078309A: 0x0000307A
- "0{0\x99\x00\x000|" + // 0x307B3099: 0x0000307C
- "0{0\x9a\x00\x000}" + // 0x307B309A: 0x0000307D
- "0F0\x99\x00\x000\x94" + // 0x30463099: 0x00003094
- "0\x9d0\x99\x00\x000\x9e" + // 0x309D3099: 0x0000309E
- "0\xab0\x99\x00\x000\xac" + // 0x30AB3099: 0x000030AC
- "0\xad0\x99\x00\x000\xae" + // 0x30AD3099: 0x000030AE
- "0\xaf0\x99\x00\x000\xb0" + // 0x30AF3099: 0x000030B0
- "0\xb10\x99\x00\x000\xb2" + // 0x30B13099: 0x000030B2
- "0\xb30\x99\x00\x000\xb4" + // 0x30B33099: 0x000030B4
- "0\xb50\x99\x00\x000\xb6" + // 0x30B53099: 0x000030B6
- "0\xb70\x99\x00\x000\xb8" + // 0x30B73099: 0x000030B8
- "0\xb90\x99\x00\x000\xba" + // 0x30B93099: 0x000030BA
- "0\xbb0\x99\x00\x000\xbc" + // 0x30BB3099: 0x000030BC
- "0\xbd0\x99\x00\x000\xbe" + // 0x30BD3099: 0x000030BE
- "0\xbf0\x99\x00\x000\xc0" + // 0x30BF3099: 0x000030C0
- "0\xc10\x99\x00\x000\xc2" + // 0x30C13099: 0x000030C2
- "0\xc40\x99\x00\x000\xc5" + // 0x30C43099: 0x000030C5
- "0\xc60\x99\x00\x000\xc7" + // 0x30C63099: 0x000030C7
- "0\xc80\x99\x00\x000\xc9" + // 0x30C83099: 0x000030C9
- "0\xcf0\x99\x00\x000\xd0" + // 0x30CF3099: 0x000030D0
- "0\xcf0\x9a\x00\x000\xd1" + // 0x30CF309A: 0x000030D1
- "0\xd20\x99\x00\x000\xd3" + // 0x30D23099: 0x000030D3
- "0\xd20\x9a\x00\x000\xd4" + // 0x30D2309A: 0x000030D4
- "0\xd50\x99\x00\x000\xd6" + // 0x30D53099: 0x000030D6
- "0\xd50\x9a\x00\x000\xd7" + // 0x30D5309A: 0x000030D7
- "0\xd80\x99\x00\x000\xd9" + // 0x30D83099: 0x000030D9
- "0\xd80\x9a\x00\x000\xda" + // 0x30D8309A: 0x000030DA
- "0\xdb0\x99\x00\x000\xdc" + // 0x30DB3099: 0x000030DC
- "0\xdb0\x9a\x00\x000\xdd" + // 0x30DB309A: 0x000030DD
- "0\xa60\x99\x00\x000\xf4" + // 0x30A63099: 0x000030F4
- "0\xef0\x99\x00\x000\xf7" + // 0x30EF3099: 0x000030F7
- "0\xf00\x99\x00\x000\xf8" + // 0x30F03099: 0x000030F8
- "0\xf10\x99\x00\x000\xf9" + // 0x30F13099: 0x000030F9
- "0\xf20\x99\x00\x000\xfa" + // 0x30F23099: 0x000030FA
- "0\xfd0\x99\x00\x000\xfe" + // 0x30FD3099: 0x000030FE
- "\x10\x99\x10\xba\x00\x01\x10\x9a" + // 0x109910BA: 0x0001109A
- "\x10\x9b\x10\xba\x00\x01\x10\x9c" + // 0x109B10BA: 0x0001109C
- "\x10\xa5\x10\xba\x00\x01\x10\xab" + // 0x10A510BA: 0x000110AB
- "\x111\x11'\x00\x01\x11." + // 0x11311127: 0x0001112E
- "\x112\x11'\x00\x01\x11/" + // 0x11321127: 0x0001112F
- "\x13G\x13>\x00\x01\x13K" + // 0x1347133E: 0x0001134B
- "\x13G\x13W\x00\x01\x13L" + // 0x13471357: 0x0001134C
- "\x14\xb9\x14\xba\x00\x01\x14\xbb" + // 0x14B914BA: 0x000114BB
- "\x14\xb9\x14\xb0\x00\x01\x14\xbc" + // 0x14B914B0: 0x000114BC
- "\x14\xb9\x14\xbd\x00\x01\x14\xbe" + // 0x14B914BD: 0x000114BE
- "\x15\xb8\x15\xaf\x00\x01\x15\xba" + // 0x15B815AF: 0x000115BA
- "\x15\xb9\x15\xaf\x00\x01\x15\xbb" + // 0x15B915AF: 0x000115BB
- ""
- // Total size of tables: 53KB (54514 bytes)
diff --git a/vendor/golang.org/x/text/unicode/norm/tables12.0.0.go b/vendor/golang.org/x/text/unicode/norm/tables12.0.0.go
deleted file mode 100644
index 276cb8d8..00000000
--- a/vendor/golang.org/x/text/unicode/norm/tables12.0.0.go
+++ /dev/null
@@ -1,7710 +0,0 @@
-// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
-
-//go:build go1.14 && !go1.16
-
-package norm
-
-import "sync"
-
-const (
- // Version is the Unicode edition from which the tables are derived.
- Version = "12.0.0"
-
- // MaxTransformChunkSize indicates the maximum number of bytes that Transform
- // may need to write atomically for any Form. Making a destination buffer at
- // least this size ensures that Transform can always make progress and that
- // the user does not need to grow the buffer on an ErrShortDst.
- MaxTransformChunkSize = 35 + maxNonStarters*4
-)
-
-var ccc = [55]uint8{
- 0, 1, 7, 8, 9, 10, 11, 12,
- 13, 14, 15, 16, 17, 18, 19, 20,
- 21, 22, 23, 24, 25, 26, 27, 28,
- 29, 30, 31, 32, 33, 34, 35, 36,
- 84, 91, 103, 107, 118, 122, 129, 130,
- 132, 202, 214, 216, 218, 220, 222, 224,
- 226, 228, 230, 232, 233, 234, 240,
-}
-
-const (
- firstMulti = 0x186D
- firstCCC = 0x2CA1
- endMulti = 0x2F63
- firstLeadingCCC = 0x49B1
- firstCCCZeroExcept = 0x4A7B
- firstStarterWithNLead = 0x4AA2
- lastDecomp = 0x4AA4
- maxDecomp = 0x8000
-)
-
-// decomps: 19108 bytes
-var decomps = [...]byte{
- // Bytes 0 - 3f
- 0x00, 0x41, 0x20, 0x41, 0x21, 0x41, 0x22, 0x41,
- 0x23, 0x41, 0x24, 0x41, 0x25, 0x41, 0x26, 0x41,
- 0x27, 0x41, 0x28, 0x41, 0x29, 0x41, 0x2A, 0x41,
- 0x2B, 0x41, 0x2C, 0x41, 0x2D, 0x41, 0x2E, 0x41,
- 0x2F, 0x41, 0x30, 0x41, 0x31, 0x41, 0x32, 0x41,
- 0x33, 0x41, 0x34, 0x41, 0x35, 0x41, 0x36, 0x41,
- 0x37, 0x41, 0x38, 0x41, 0x39, 0x41, 0x3A, 0x41,
- 0x3B, 0x41, 0x3C, 0x41, 0x3D, 0x41, 0x3E, 0x41,
- // Bytes 40 - 7f
- 0x3F, 0x41, 0x40, 0x41, 0x41, 0x41, 0x42, 0x41,
- 0x43, 0x41, 0x44, 0x41, 0x45, 0x41, 0x46, 0x41,
- 0x47, 0x41, 0x48, 0x41, 0x49, 0x41, 0x4A, 0x41,
- 0x4B, 0x41, 0x4C, 0x41, 0x4D, 0x41, 0x4E, 0x41,
- 0x4F, 0x41, 0x50, 0x41, 0x51, 0x41, 0x52, 0x41,
- 0x53, 0x41, 0x54, 0x41, 0x55, 0x41, 0x56, 0x41,
- 0x57, 0x41, 0x58, 0x41, 0x59, 0x41, 0x5A, 0x41,
- 0x5B, 0x41, 0x5C, 0x41, 0x5D, 0x41, 0x5E, 0x41,
- // Bytes 80 - bf
- 0x5F, 0x41, 0x60, 0x41, 0x61, 0x41, 0x62, 0x41,
- 0x63, 0x41, 0x64, 0x41, 0x65, 0x41, 0x66, 0x41,
- 0x67, 0x41, 0x68, 0x41, 0x69, 0x41, 0x6A, 0x41,
- 0x6B, 0x41, 0x6C, 0x41, 0x6D, 0x41, 0x6E, 0x41,
- 0x6F, 0x41, 0x70, 0x41, 0x71, 0x41, 0x72, 0x41,
- 0x73, 0x41, 0x74, 0x41, 0x75, 0x41, 0x76, 0x41,
- 0x77, 0x41, 0x78, 0x41, 0x79, 0x41, 0x7A, 0x41,
- 0x7B, 0x41, 0x7C, 0x41, 0x7D, 0x41, 0x7E, 0x42,
- // Bytes c0 - ff
- 0xC2, 0xA2, 0x42, 0xC2, 0xA3, 0x42, 0xC2, 0xA5,
- 0x42, 0xC2, 0xA6, 0x42, 0xC2, 0xAC, 0x42, 0xC2,
- 0xB7, 0x42, 0xC3, 0x86, 0x42, 0xC3, 0xB0, 0x42,
- 0xC4, 0xA6, 0x42, 0xC4, 0xA7, 0x42, 0xC4, 0xB1,
- 0x42, 0xC5, 0x8B, 0x42, 0xC5, 0x93, 0x42, 0xC6,
- 0x8E, 0x42, 0xC6, 0x90, 0x42, 0xC6, 0xAB, 0x42,
- 0xC8, 0xA2, 0x42, 0xC8, 0xB7, 0x42, 0xC9, 0x90,
- 0x42, 0xC9, 0x91, 0x42, 0xC9, 0x92, 0x42, 0xC9,
- // Bytes 100 - 13f
- 0x94, 0x42, 0xC9, 0x95, 0x42, 0xC9, 0x99, 0x42,
- 0xC9, 0x9B, 0x42, 0xC9, 0x9C, 0x42, 0xC9, 0x9F,
- 0x42, 0xC9, 0xA1, 0x42, 0xC9, 0xA3, 0x42, 0xC9,
- 0xA5, 0x42, 0xC9, 0xA6, 0x42, 0xC9, 0xA8, 0x42,
- 0xC9, 0xA9, 0x42, 0xC9, 0xAA, 0x42, 0xC9, 0xAB,
- 0x42, 0xC9, 0xAD, 0x42, 0xC9, 0xAF, 0x42, 0xC9,
- 0xB0, 0x42, 0xC9, 0xB1, 0x42, 0xC9, 0xB2, 0x42,
- 0xC9, 0xB3, 0x42, 0xC9, 0xB4, 0x42, 0xC9, 0xB5,
- // Bytes 140 - 17f
- 0x42, 0xC9, 0xB8, 0x42, 0xC9, 0xB9, 0x42, 0xC9,
- 0xBB, 0x42, 0xCA, 0x81, 0x42, 0xCA, 0x82, 0x42,
- 0xCA, 0x83, 0x42, 0xCA, 0x89, 0x42, 0xCA, 0x8A,
- 0x42, 0xCA, 0x8B, 0x42, 0xCA, 0x8C, 0x42, 0xCA,
- 0x90, 0x42, 0xCA, 0x91, 0x42, 0xCA, 0x92, 0x42,
- 0xCA, 0x95, 0x42, 0xCA, 0x9D, 0x42, 0xCA, 0x9F,
- 0x42, 0xCA, 0xB9, 0x42, 0xCE, 0x91, 0x42, 0xCE,
- 0x92, 0x42, 0xCE, 0x93, 0x42, 0xCE, 0x94, 0x42,
- // Bytes 180 - 1bf
- 0xCE, 0x95, 0x42, 0xCE, 0x96, 0x42, 0xCE, 0x97,
- 0x42, 0xCE, 0x98, 0x42, 0xCE, 0x99, 0x42, 0xCE,
- 0x9A, 0x42, 0xCE, 0x9B, 0x42, 0xCE, 0x9C, 0x42,
- 0xCE, 0x9D, 0x42, 0xCE, 0x9E, 0x42, 0xCE, 0x9F,
- 0x42, 0xCE, 0xA0, 0x42, 0xCE, 0xA1, 0x42, 0xCE,
- 0xA3, 0x42, 0xCE, 0xA4, 0x42, 0xCE, 0xA5, 0x42,
- 0xCE, 0xA6, 0x42, 0xCE, 0xA7, 0x42, 0xCE, 0xA8,
- 0x42, 0xCE, 0xA9, 0x42, 0xCE, 0xB1, 0x42, 0xCE,
- // Bytes 1c0 - 1ff
- 0xB2, 0x42, 0xCE, 0xB3, 0x42, 0xCE, 0xB4, 0x42,
- 0xCE, 0xB5, 0x42, 0xCE, 0xB6, 0x42, 0xCE, 0xB7,
- 0x42, 0xCE, 0xB8, 0x42, 0xCE, 0xB9, 0x42, 0xCE,
- 0xBA, 0x42, 0xCE, 0xBB, 0x42, 0xCE, 0xBC, 0x42,
- 0xCE, 0xBD, 0x42, 0xCE, 0xBE, 0x42, 0xCE, 0xBF,
- 0x42, 0xCF, 0x80, 0x42, 0xCF, 0x81, 0x42, 0xCF,
- 0x82, 0x42, 0xCF, 0x83, 0x42, 0xCF, 0x84, 0x42,
- 0xCF, 0x85, 0x42, 0xCF, 0x86, 0x42, 0xCF, 0x87,
- // Bytes 200 - 23f
- 0x42, 0xCF, 0x88, 0x42, 0xCF, 0x89, 0x42, 0xCF,
- 0x9C, 0x42, 0xCF, 0x9D, 0x42, 0xD0, 0xBD, 0x42,
- 0xD1, 0x8A, 0x42, 0xD1, 0x8C, 0x42, 0xD7, 0x90,
- 0x42, 0xD7, 0x91, 0x42, 0xD7, 0x92, 0x42, 0xD7,
- 0x93, 0x42, 0xD7, 0x94, 0x42, 0xD7, 0x9B, 0x42,
- 0xD7, 0x9C, 0x42, 0xD7, 0x9D, 0x42, 0xD7, 0xA2,
- 0x42, 0xD7, 0xA8, 0x42, 0xD7, 0xAA, 0x42, 0xD8,
- 0xA1, 0x42, 0xD8, 0xA7, 0x42, 0xD8, 0xA8, 0x42,
- // Bytes 240 - 27f
- 0xD8, 0xA9, 0x42, 0xD8, 0xAA, 0x42, 0xD8, 0xAB,
- 0x42, 0xD8, 0xAC, 0x42, 0xD8, 0xAD, 0x42, 0xD8,
- 0xAE, 0x42, 0xD8, 0xAF, 0x42, 0xD8, 0xB0, 0x42,
- 0xD8, 0xB1, 0x42, 0xD8, 0xB2, 0x42, 0xD8, 0xB3,
- 0x42, 0xD8, 0xB4, 0x42, 0xD8, 0xB5, 0x42, 0xD8,
- 0xB6, 0x42, 0xD8, 0xB7, 0x42, 0xD8, 0xB8, 0x42,
- 0xD8, 0xB9, 0x42, 0xD8, 0xBA, 0x42, 0xD9, 0x81,
- 0x42, 0xD9, 0x82, 0x42, 0xD9, 0x83, 0x42, 0xD9,
- // Bytes 280 - 2bf
- 0x84, 0x42, 0xD9, 0x85, 0x42, 0xD9, 0x86, 0x42,
- 0xD9, 0x87, 0x42, 0xD9, 0x88, 0x42, 0xD9, 0x89,
- 0x42, 0xD9, 0x8A, 0x42, 0xD9, 0xAE, 0x42, 0xD9,
- 0xAF, 0x42, 0xD9, 0xB1, 0x42, 0xD9, 0xB9, 0x42,
- 0xD9, 0xBA, 0x42, 0xD9, 0xBB, 0x42, 0xD9, 0xBE,
- 0x42, 0xD9, 0xBF, 0x42, 0xDA, 0x80, 0x42, 0xDA,
- 0x83, 0x42, 0xDA, 0x84, 0x42, 0xDA, 0x86, 0x42,
- 0xDA, 0x87, 0x42, 0xDA, 0x88, 0x42, 0xDA, 0x8C,
- // Bytes 2c0 - 2ff
- 0x42, 0xDA, 0x8D, 0x42, 0xDA, 0x8E, 0x42, 0xDA,
- 0x91, 0x42, 0xDA, 0x98, 0x42, 0xDA, 0xA1, 0x42,
- 0xDA, 0xA4, 0x42, 0xDA, 0xA6, 0x42, 0xDA, 0xA9,
- 0x42, 0xDA, 0xAD, 0x42, 0xDA, 0xAF, 0x42, 0xDA,
- 0xB1, 0x42, 0xDA, 0xB3, 0x42, 0xDA, 0xBA, 0x42,
- 0xDA, 0xBB, 0x42, 0xDA, 0xBE, 0x42, 0xDB, 0x81,
- 0x42, 0xDB, 0x85, 0x42, 0xDB, 0x86, 0x42, 0xDB,
- 0x87, 0x42, 0xDB, 0x88, 0x42, 0xDB, 0x89, 0x42,
- // Bytes 300 - 33f
- 0xDB, 0x8B, 0x42, 0xDB, 0x8C, 0x42, 0xDB, 0x90,
- 0x42, 0xDB, 0x92, 0x43, 0xE0, 0xBC, 0x8B, 0x43,
- 0xE1, 0x83, 0x9C, 0x43, 0xE1, 0x84, 0x80, 0x43,
- 0xE1, 0x84, 0x81, 0x43, 0xE1, 0x84, 0x82, 0x43,
- 0xE1, 0x84, 0x83, 0x43, 0xE1, 0x84, 0x84, 0x43,
- 0xE1, 0x84, 0x85, 0x43, 0xE1, 0x84, 0x86, 0x43,
- 0xE1, 0x84, 0x87, 0x43, 0xE1, 0x84, 0x88, 0x43,
- 0xE1, 0x84, 0x89, 0x43, 0xE1, 0x84, 0x8A, 0x43,
- // Bytes 340 - 37f
- 0xE1, 0x84, 0x8B, 0x43, 0xE1, 0x84, 0x8C, 0x43,
- 0xE1, 0x84, 0x8D, 0x43, 0xE1, 0x84, 0x8E, 0x43,
- 0xE1, 0x84, 0x8F, 0x43, 0xE1, 0x84, 0x90, 0x43,
- 0xE1, 0x84, 0x91, 0x43, 0xE1, 0x84, 0x92, 0x43,
- 0xE1, 0x84, 0x94, 0x43, 0xE1, 0x84, 0x95, 0x43,
- 0xE1, 0x84, 0x9A, 0x43, 0xE1, 0x84, 0x9C, 0x43,
- 0xE1, 0x84, 0x9D, 0x43, 0xE1, 0x84, 0x9E, 0x43,
- 0xE1, 0x84, 0xA0, 0x43, 0xE1, 0x84, 0xA1, 0x43,
- // Bytes 380 - 3bf
- 0xE1, 0x84, 0xA2, 0x43, 0xE1, 0x84, 0xA3, 0x43,
- 0xE1, 0x84, 0xA7, 0x43, 0xE1, 0x84, 0xA9, 0x43,
- 0xE1, 0x84, 0xAB, 0x43, 0xE1, 0x84, 0xAC, 0x43,
- 0xE1, 0x84, 0xAD, 0x43, 0xE1, 0x84, 0xAE, 0x43,
- 0xE1, 0x84, 0xAF, 0x43, 0xE1, 0x84, 0xB2, 0x43,
- 0xE1, 0x84, 0xB6, 0x43, 0xE1, 0x85, 0x80, 0x43,
- 0xE1, 0x85, 0x87, 0x43, 0xE1, 0x85, 0x8C, 0x43,
- 0xE1, 0x85, 0x97, 0x43, 0xE1, 0x85, 0x98, 0x43,
- // Bytes 3c0 - 3ff
- 0xE1, 0x85, 0x99, 0x43, 0xE1, 0x85, 0xA0, 0x43,
- 0xE1, 0x86, 0x84, 0x43, 0xE1, 0x86, 0x85, 0x43,
- 0xE1, 0x86, 0x88, 0x43, 0xE1, 0x86, 0x91, 0x43,
- 0xE1, 0x86, 0x92, 0x43, 0xE1, 0x86, 0x94, 0x43,
- 0xE1, 0x86, 0x9E, 0x43, 0xE1, 0x86, 0xA1, 0x43,
- 0xE1, 0x87, 0x87, 0x43, 0xE1, 0x87, 0x88, 0x43,
- 0xE1, 0x87, 0x8C, 0x43, 0xE1, 0x87, 0x8E, 0x43,
- 0xE1, 0x87, 0x93, 0x43, 0xE1, 0x87, 0x97, 0x43,
- // Bytes 400 - 43f
- 0xE1, 0x87, 0x99, 0x43, 0xE1, 0x87, 0x9D, 0x43,
- 0xE1, 0x87, 0x9F, 0x43, 0xE1, 0x87, 0xB1, 0x43,
- 0xE1, 0x87, 0xB2, 0x43, 0xE1, 0xB4, 0x82, 0x43,
- 0xE1, 0xB4, 0x96, 0x43, 0xE1, 0xB4, 0x97, 0x43,
- 0xE1, 0xB4, 0x9C, 0x43, 0xE1, 0xB4, 0x9D, 0x43,
- 0xE1, 0xB4, 0xA5, 0x43, 0xE1, 0xB5, 0xBB, 0x43,
- 0xE1, 0xB6, 0x85, 0x43, 0xE2, 0x80, 0x82, 0x43,
- 0xE2, 0x80, 0x83, 0x43, 0xE2, 0x80, 0x90, 0x43,
- // Bytes 440 - 47f
- 0xE2, 0x80, 0x93, 0x43, 0xE2, 0x80, 0x94, 0x43,
- 0xE2, 0x82, 0xA9, 0x43, 0xE2, 0x86, 0x90, 0x43,
- 0xE2, 0x86, 0x91, 0x43, 0xE2, 0x86, 0x92, 0x43,
- 0xE2, 0x86, 0x93, 0x43, 0xE2, 0x88, 0x82, 0x43,
- 0xE2, 0x88, 0x87, 0x43, 0xE2, 0x88, 0x91, 0x43,
- 0xE2, 0x88, 0x92, 0x43, 0xE2, 0x94, 0x82, 0x43,
- 0xE2, 0x96, 0xA0, 0x43, 0xE2, 0x97, 0x8B, 0x43,
- 0xE2, 0xA6, 0x85, 0x43, 0xE2, 0xA6, 0x86, 0x43,
- // Bytes 480 - 4bf
- 0xE2, 0xB5, 0xA1, 0x43, 0xE3, 0x80, 0x81, 0x43,
- 0xE3, 0x80, 0x82, 0x43, 0xE3, 0x80, 0x88, 0x43,
- 0xE3, 0x80, 0x89, 0x43, 0xE3, 0x80, 0x8A, 0x43,
- 0xE3, 0x80, 0x8B, 0x43, 0xE3, 0x80, 0x8C, 0x43,
- 0xE3, 0x80, 0x8D, 0x43, 0xE3, 0x80, 0x8E, 0x43,
- 0xE3, 0x80, 0x8F, 0x43, 0xE3, 0x80, 0x90, 0x43,
- 0xE3, 0x80, 0x91, 0x43, 0xE3, 0x80, 0x92, 0x43,
- 0xE3, 0x80, 0x94, 0x43, 0xE3, 0x80, 0x95, 0x43,
- // Bytes 4c0 - 4ff
- 0xE3, 0x80, 0x96, 0x43, 0xE3, 0x80, 0x97, 0x43,
- 0xE3, 0x82, 0xA1, 0x43, 0xE3, 0x82, 0xA2, 0x43,
- 0xE3, 0x82, 0xA3, 0x43, 0xE3, 0x82, 0xA4, 0x43,
- 0xE3, 0x82, 0xA5, 0x43, 0xE3, 0x82, 0xA6, 0x43,
- 0xE3, 0x82, 0xA7, 0x43, 0xE3, 0x82, 0xA8, 0x43,
- 0xE3, 0x82, 0xA9, 0x43, 0xE3, 0x82, 0xAA, 0x43,
- 0xE3, 0x82, 0xAB, 0x43, 0xE3, 0x82, 0xAD, 0x43,
- 0xE3, 0x82, 0xAF, 0x43, 0xE3, 0x82, 0xB1, 0x43,
- // Bytes 500 - 53f
- 0xE3, 0x82, 0xB3, 0x43, 0xE3, 0x82, 0xB5, 0x43,
- 0xE3, 0x82, 0xB7, 0x43, 0xE3, 0x82, 0xB9, 0x43,
- 0xE3, 0x82, 0xBB, 0x43, 0xE3, 0x82, 0xBD, 0x43,
- 0xE3, 0x82, 0xBF, 0x43, 0xE3, 0x83, 0x81, 0x43,
- 0xE3, 0x83, 0x83, 0x43, 0xE3, 0x83, 0x84, 0x43,
- 0xE3, 0x83, 0x86, 0x43, 0xE3, 0x83, 0x88, 0x43,
- 0xE3, 0x83, 0x8A, 0x43, 0xE3, 0x83, 0x8B, 0x43,
- 0xE3, 0x83, 0x8C, 0x43, 0xE3, 0x83, 0x8D, 0x43,
- // Bytes 540 - 57f
- 0xE3, 0x83, 0x8E, 0x43, 0xE3, 0x83, 0x8F, 0x43,
- 0xE3, 0x83, 0x92, 0x43, 0xE3, 0x83, 0x95, 0x43,
- 0xE3, 0x83, 0x98, 0x43, 0xE3, 0x83, 0x9B, 0x43,
- 0xE3, 0x83, 0x9E, 0x43, 0xE3, 0x83, 0x9F, 0x43,
- 0xE3, 0x83, 0xA0, 0x43, 0xE3, 0x83, 0xA1, 0x43,
- 0xE3, 0x83, 0xA2, 0x43, 0xE3, 0x83, 0xA3, 0x43,
- 0xE3, 0x83, 0xA4, 0x43, 0xE3, 0x83, 0xA5, 0x43,
- 0xE3, 0x83, 0xA6, 0x43, 0xE3, 0x83, 0xA7, 0x43,
- // Bytes 580 - 5bf
- 0xE3, 0x83, 0xA8, 0x43, 0xE3, 0x83, 0xA9, 0x43,
- 0xE3, 0x83, 0xAA, 0x43, 0xE3, 0x83, 0xAB, 0x43,
- 0xE3, 0x83, 0xAC, 0x43, 0xE3, 0x83, 0xAD, 0x43,
- 0xE3, 0x83, 0xAF, 0x43, 0xE3, 0x83, 0xB0, 0x43,
- 0xE3, 0x83, 0xB1, 0x43, 0xE3, 0x83, 0xB2, 0x43,
- 0xE3, 0x83, 0xB3, 0x43, 0xE3, 0x83, 0xBB, 0x43,
- 0xE3, 0x83, 0xBC, 0x43, 0xE3, 0x92, 0x9E, 0x43,
- 0xE3, 0x92, 0xB9, 0x43, 0xE3, 0x92, 0xBB, 0x43,
- // Bytes 5c0 - 5ff
- 0xE3, 0x93, 0x9F, 0x43, 0xE3, 0x94, 0x95, 0x43,
- 0xE3, 0x9B, 0xAE, 0x43, 0xE3, 0x9B, 0xBC, 0x43,
- 0xE3, 0x9E, 0x81, 0x43, 0xE3, 0xA0, 0xAF, 0x43,
- 0xE3, 0xA1, 0xA2, 0x43, 0xE3, 0xA1, 0xBC, 0x43,
- 0xE3, 0xA3, 0x87, 0x43, 0xE3, 0xA3, 0xA3, 0x43,
- 0xE3, 0xA4, 0x9C, 0x43, 0xE3, 0xA4, 0xBA, 0x43,
- 0xE3, 0xA8, 0xAE, 0x43, 0xE3, 0xA9, 0xAC, 0x43,
- 0xE3, 0xAB, 0xA4, 0x43, 0xE3, 0xAC, 0x88, 0x43,
- // Bytes 600 - 63f
- 0xE3, 0xAC, 0x99, 0x43, 0xE3, 0xAD, 0x89, 0x43,
- 0xE3, 0xAE, 0x9D, 0x43, 0xE3, 0xB0, 0x98, 0x43,
- 0xE3, 0xB1, 0x8E, 0x43, 0xE3, 0xB4, 0xB3, 0x43,
- 0xE3, 0xB6, 0x96, 0x43, 0xE3, 0xBA, 0xAC, 0x43,
- 0xE3, 0xBA, 0xB8, 0x43, 0xE3, 0xBC, 0x9B, 0x43,
- 0xE3, 0xBF, 0xBC, 0x43, 0xE4, 0x80, 0x88, 0x43,
- 0xE4, 0x80, 0x98, 0x43, 0xE4, 0x80, 0xB9, 0x43,
- 0xE4, 0x81, 0x86, 0x43, 0xE4, 0x82, 0x96, 0x43,
- // Bytes 640 - 67f
- 0xE4, 0x83, 0xA3, 0x43, 0xE4, 0x84, 0xAF, 0x43,
- 0xE4, 0x88, 0x82, 0x43, 0xE4, 0x88, 0xA7, 0x43,
- 0xE4, 0x8A, 0xA0, 0x43, 0xE4, 0x8C, 0x81, 0x43,
- 0xE4, 0x8C, 0xB4, 0x43, 0xE4, 0x8D, 0x99, 0x43,
- 0xE4, 0x8F, 0x95, 0x43, 0xE4, 0x8F, 0x99, 0x43,
- 0xE4, 0x90, 0x8B, 0x43, 0xE4, 0x91, 0xAB, 0x43,
- 0xE4, 0x94, 0xAB, 0x43, 0xE4, 0x95, 0x9D, 0x43,
- 0xE4, 0x95, 0xA1, 0x43, 0xE4, 0x95, 0xAB, 0x43,
- // Bytes 680 - 6bf
- 0xE4, 0x97, 0x97, 0x43, 0xE4, 0x97, 0xB9, 0x43,
- 0xE4, 0x98, 0xB5, 0x43, 0xE4, 0x9A, 0xBE, 0x43,
- 0xE4, 0x9B, 0x87, 0x43, 0xE4, 0xA6, 0x95, 0x43,
- 0xE4, 0xA7, 0xA6, 0x43, 0xE4, 0xA9, 0xAE, 0x43,
- 0xE4, 0xA9, 0xB6, 0x43, 0xE4, 0xAA, 0xB2, 0x43,
- 0xE4, 0xAC, 0xB3, 0x43, 0xE4, 0xAF, 0x8E, 0x43,
- 0xE4, 0xB3, 0x8E, 0x43, 0xE4, 0xB3, 0xAD, 0x43,
- 0xE4, 0xB3, 0xB8, 0x43, 0xE4, 0xB5, 0x96, 0x43,
- // Bytes 6c0 - 6ff
- 0xE4, 0xB8, 0x80, 0x43, 0xE4, 0xB8, 0x81, 0x43,
- 0xE4, 0xB8, 0x83, 0x43, 0xE4, 0xB8, 0x89, 0x43,
- 0xE4, 0xB8, 0x8A, 0x43, 0xE4, 0xB8, 0x8B, 0x43,
- 0xE4, 0xB8, 0x8D, 0x43, 0xE4, 0xB8, 0x99, 0x43,
- 0xE4, 0xB8, 0xA6, 0x43, 0xE4, 0xB8, 0xA8, 0x43,
- 0xE4, 0xB8, 0xAD, 0x43, 0xE4, 0xB8, 0xB2, 0x43,
- 0xE4, 0xB8, 0xB6, 0x43, 0xE4, 0xB8, 0xB8, 0x43,
- 0xE4, 0xB8, 0xB9, 0x43, 0xE4, 0xB8, 0xBD, 0x43,
- // Bytes 700 - 73f
- 0xE4, 0xB8, 0xBF, 0x43, 0xE4, 0xB9, 0x81, 0x43,
- 0xE4, 0xB9, 0x99, 0x43, 0xE4, 0xB9, 0x9D, 0x43,
- 0xE4, 0xBA, 0x82, 0x43, 0xE4, 0xBA, 0x85, 0x43,
- 0xE4, 0xBA, 0x86, 0x43, 0xE4, 0xBA, 0x8C, 0x43,
- 0xE4, 0xBA, 0x94, 0x43, 0xE4, 0xBA, 0xA0, 0x43,
- 0xE4, 0xBA, 0xA4, 0x43, 0xE4, 0xBA, 0xAE, 0x43,
- 0xE4, 0xBA, 0xBA, 0x43, 0xE4, 0xBB, 0x80, 0x43,
- 0xE4, 0xBB, 0x8C, 0x43, 0xE4, 0xBB, 0xA4, 0x43,
- // Bytes 740 - 77f
- 0xE4, 0xBC, 0x81, 0x43, 0xE4, 0xBC, 0x91, 0x43,
- 0xE4, 0xBD, 0xA0, 0x43, 0xE4, 0xBE, 0x80, 0x43,
- 0xE4, 0xBE, 0x86, 0x43, 0xE4, 0xBE, 0x8B, 0x43,
- 0xE4, 0xBE, 0xAE, 0x43, 0xE4, 0xBE, 0xBB, 0x43,
- 0xE4, 0xBE, 0xBF, 0x43, 0xE5, 0x80, 0x82, 0x43,
- 0xE5, 0x80, 0xAB, 0x43, 0xE5, 0x81, 0xBA, 0x43,
- 0xE5, 0x82, 0x99, 0x43, 0xE5, 0x83, 0x8F, 0x43,
- 0xE5, 0x83, 0x9A, 0x43, 0xE5, 0x83, 0xA7, 0x43,
- // Bytes 780 - 7bf
- 0xE5, 0x84, 0xAA, 0x43, 0xE5, 0x84, 0xBF, 0x43,
- 0xE5, 0x85, 0x80, 0x43, 0xE5, 0x85, 0x85, 0x43,
- 0xE5, 0x85, 0x8D, 0x43, 0xE5, 0x85, 0x94, 0x43,
- 0xE5, 0x85, 0xA4, 0x43, 0xE5, 0x85, 0xA5, 0x43,
- 0xE5, 0x85, 0xA7, 0x43, 0xE5, 0x85, 0xA8, 0x43,
- 0xE5, 0x85, 0xA9, 0x43, 0xE5, 0x85, 0xAB, 0x43,
- 0xE5, 0x85, 0xAD, 0x43, 0xE5, 0x85, 0xB7, 0x43,
- 0xE5, 0x86, 0x80, 0x43, 0xE5, 0x86, 0x82, 0x43,
- // Bytes 7c0 - 7ff
- 0xE5, 0x86, 0x8D, 0x43, 0xE5, 0x86, 0x92, 0x43,
- 0xE5, 0x86, 0x95, 0x43, 0xE5, 0x86, 0x96, 0x43,
- 0xE5, 0x86, 0x97, 0x43, 0xE5, 0x86, 0x99, 0x43,
- 0xE5, 0x86, 0xA4, 0x43, 0xE5, 0x86, 0xAB, 0x43,
- 0xE5, 0x86, 0xAC, 0x43, 0xE5, 0x86, 0xB5, 0x43,
- 0xE5, 0x86, 0xB7, 0x43, 0xE5, 0x87, 0x89, 0x43,
- 0xE5, 0x87, 0x8C, 0x43, 0xE5, 0x87, 0x9C, 0x43,
- 0xE5, 0x87, 0x9E, 0x43, 0xE5, 0x87, 0xA0, 0x43,
- // Bytes 800 - 83f
- 0xE5, 0x87, 0xB5, 0x43, 0xE5, 0x88, 0x80, 0x43,
- 0xE5, 0x88, 0x83, 0x43, 0xE5, 0x88, 0x87, 0x43,
- 0xE5, 0x88, 0x97, 0x43, 0xE5, 0x88, 0x9D, 0x43,
- 0xE5, 0x88, 0xA9, 0x43, 0xE5, 0x88, 0xBA, 0x43,
- 0xE5, 0x88, 0xBB, 0x43, 0xE5, 0x89, 0x86, 0x43,
- 0xE5, 0x89, 0x8D, 0x43, 0xE5, 0x89, 0xB2, 0x43,
- 0xE5, 0x89, 0xB7, 0x43, 0xE5, 0x8A, 0x89, 0x43,
- 0xE5, 0x8A, 0x9B, 0x43, 0xE5, 0x8A, 0xA3, 0x43,
- // Bytes 840 - 87f
- 0xE5, 0x8A, 0xB3, 0x43, 0xE5, 0x8A, 0xB4, 0x43,
- 0xE5, 0x8B, 0x87, 0x43, 0xE5, 0x8B, 0x89, 0x43,
- 0xE5, 0x8B, 0x92, 0x43, 0xE5, 0x8B, 0x9E, 0x43,
- 0xE5, 0x8B, 0xA4, 0x43, 0xE5, 0x8B, 0xB5, 0x43,
- 0xE5, 0x8B, 0xB9, 0x43, 0xE5, 0x8B, 0xBA, 0x43,
- 0xE5, 0x8C, 0x85, 0x43, 0xE5, 0x8C, 0x86, 0x43,
- 0xE5, 0x8C, 0x95, 0x43, 0xE5, 0x8C, 0x97, 0x43,
- 0xE5, 0x8C, 0x9A, 0x43, 0xE5, 0x8C, 0xB8, 0x43,
- // Bytes 880 - 8bf
- 0xE5, 0x8C, 0xBB, 0x43, 0xE5, 0x8C, 0xBF, 0x43,
- 0xE5, 0x8D, 0x81, 0x43, 0xE5, 0x8D, 0x84, 0x43,
- 0xE5, 0x8D, 0x85, 0x43, 0xE5, 0x8D, 0x89, 0x43,
- 0xE5, 0x8D, 0x91, 0x43, 0xE5, 0x8D, 0x94, 0x43,
- 0xE5, 0x8D, 0x9A, 0x43, 0xE5, 0x8D, 0x9C, 0x43,
- 0xE5, 0x8D, 0xA9, 0x43, 0xE5, 0x8D, 0xB0, 0x43,
- 0xE5, 0x8D, 0xB3, 0x43, 0xE5, 0x8D, 0xB5, 0x43,
- 0xE5, 0x8D, 0xBD, 0x43, 0xE5, 0x8D, 0xBF, 0x43,
- // Bytes 8c0 - 8ff
- 0xE5, 0x8E, 0x82, 0x43, 0xE5, 0x8E, 0xB6, 0x43,
- 0xE5, 0x8F, 0x83, 0x43, 0xE5, 0x8F, 0x88, 0x43,
- 0xE5, 0x8F, 0x8A, 0x43, 0xE5, 0x8F, 0x8C, 0x43,
- 0xE5, 0x8F, 0x9F, 0x43, 0xE5, 0x8F, 0xA3, 0x43,
- 0xE5, 0x8F, 0xA5, 0x43, 0xE5, 0x8F, 0xAB, 0x43,
- 0xE5, 0x8F, 0xAF, 0x43, 0xE5, 0x8F, 0xB1, 0x43,
- 0xE5, 0x8F, 0xB3, 0x43, 0xE5, 0x90, 0x86, 0x43,
- 0xE5, 0x90, 0x88, 0x43, 0xE5, 0x90, 0x8D, 0x43,
- // Bytes 900 - 93f
- 0xE5, 0x90, 0x8F, 0x43, 0xE5, 0x90, 0x9D, 0x43,
- 0xE5, 0x90, 0xB8, 0x43, 0xE5, 0x90, 0xB9, 0x43,
- 0xE5, 0x91, 0x82, 0x43, 0xE5, 0x91, 0x88, 0x43,
- 0xE5, 0x91, 0xA8, 0x43, 0xE5, 0x92, 0x9E, 0x43,
- 0xE5, 0x92, 0xA2, 0x43, 0xE5, 0x92, 0xBD, 0x43,
- 0xE5, 0x93, 0xB6, 0x43, 0xE5, 0x94, 0x90, 0x43,
- 0xE5, 0x95, 0x8F, 0x43, 0xE5, 0x95, 0x93, 0x43,
- 0xE5, 0x95, 0x95, 0x43, 0xE5, 0x95, 0xA3, 0x43,
- // Bytes 940 - 97f
- 0xE5, 0x96, 0x84, 0x43, 0xE5, 0x96, 0x87, 0x43,
- 0xE5, 0x96, 0x99, 0x43, 0xE5, 0x96, 0x9D, 0x43,
- 0xE5, 0x96, 0xAB, 0x43, 0xE5, 0x96, 0xB3, 0x43,
- 0xE5, 0x96, 0xB6, 0x43, 0xE5, 0x97, 0x80, 0x43,
- 0xE5, 0x97, 0x82, 0x43, 0xE5, 0x97, 0xA2, 0x43,
- 0xE5, 0x98, 0x86, 0x43, 0xE5, 0x99, 0x91, 0x43,
- 0xE5, 0x99, 0xA8, 0x43, 0xE5, 0x99, 0xB4, 0x43,
- 0xE5, 0x9B, 0x97, 0x43, 0xE5, 0x9B, 0x9B, 0x43,
- // Bytes 980 - 9bf
- 0xE5, 0x9B, 0xB9, 0x43, 0xE5, 0x9C, 0x96, 0x43,
- 0xE5, 0x9C, 0x97, 0x43, 0xE5, 0x9C, 0x9F, 0x43,
- 0xE5, 0x9C, 0xB0, 0x43, 0xE5, 0x9E, 0x8B, 0x43,
- 0xE5, 0x9F, 0x8E, 0x43, 0xE5, 0x9F, 0xB4, 0x43,
- 0xE5, 0xA0, 0x8D, 0x43, 0xE5, 0xA0, 0xB1, 0x43,
- 0xE5, 0xA0, 0xB2, 0x43, 0xE5, 0xA1, 0x80, 0x43,
- 0xE5, 0xA1, 0x9A, 0x43, 0xE5, 0xA1, 0x9E, 0x43,
- 0xE5, 0xA2, 0xA8, 0x43, 0xE5, 0xA2, 0xAC, 0x43,
- // Bytes 9c0 - 9ff
- 0xE5, 0xA2, 0xB3, 0x43, 0xE5, 0xA3, 0x98, 0x43,
- 0xE5, 0xA3, 0x9F, 0x43, 0xE5, 0xA3, 0xAB, 0x43,
- 0xE5, 0xA3, 0xAE, 0x43, 0xE5, 0xA3, 0xB0, 0x43,
- 0xE5, 0xA3, 0xB2, 0x43, 0xE5, 0xA3, 0xB7, 0x43,
- 0xE5, 0xA4, 0x82, 0x43, 0xE5, 0xA4, 0x86, 0x43,
- 0xE5, 0xA4, 0x8A, 0x43, 0xE5, 0xA4, 0x95, 0x43,
- 0xE5, 0xA4, 0x9A, 0x43, 0xE5, 0xA4, 0x9C, 0x43,
- 0xE5, 0xA4, 0xA2, 0x43, 0xE5, 0xA4, 0xA7, 0x43,
- // Bytes a00 - a3f
- 0xE5, 0xA4, 0xA9, 0x43, 0xE5, 0xA5, 0x84, 0x43,
- 0xE5, 0xA5, 0x88, 0x43, 0xE5, 0xA5, 0x91, 0x43,
- 0xE5, 0xA5, 0x94, 0x43, 0xE5, 0xA5, 0xA2, 0x43,
- 0xE5, 0xA5, 0xB3, 0x43, 0xE5, 0xA7, 0x98, 0x43,
- 0xE5, 0xA7, 0xAC, 0x43, 0xE5, 0xA8, 0x9B, 0x43,
- 0xE5, 0xA8, 0xA7, 0x43, 0xE5, 0xA9, 0xA2, 0x43,
- 0xE5, 0xA9, 0xA6, 0x43, 0xE5, 0xAA, 0xB5, 0x43,
- 0xE5, 0xAC, 0x88, 0x43, 0xE5, 0xAC, 0xA8, 0x43,
- // Bytes a40 - a7f
- 0xE5, 0xAC, 0xBE, 0x43, 0xE5, 0xAD, 0x90, 0x43,
- 0xE5, 0xAD, 0x97, 0x43, 0xE5, 0xAD, 0xA6, 0x43,
- 0xE5, 0xAE, 0x80, 0x43, 0xE5, 0xAE, 0x85, 0x43,
- 0xE5, 0xAE, 0x97, 0x43, 0xE5, 0xAF, 0x83, 0x43,
- 0xE5, 0xAF, 0x98, 0x43, 0xE5, 0xAF, 0xA7, 0x43,
- 0xE5, 0xAF, 0xAE, 0x43, 0xE5, 0xAF, 0xB3, 0x43,
- 0xE5, 0xAF, 0xB8, 0x43, 0xE5, 0xAF, 0xBF, 0x43,
- 0xE5, 0xB0, 0x86, 0x43, 0xE5, 0xB0, 0x8F, 0x43,
- // Bytes a80 - abf
- 0xE5, 0xB0, 0xA2, 0x43, 0xE5, 0xB0, 0xB8, 0x43,
- 0xE5, 0xB0, 0xBF, 0x43, 0xE5, 0xB1, 0xA0, 0x43,
- 0xE5, 0xB1, 0xA2, 0x43, 0xE5, 0xB1, 0xA4, 0x43,
- 0xE5, 0xB1, 0xA5, 0x43, 0xE5, 0xB1, 0xAE, 0x43,
- 0xE5, 0xB1, 0xB1, 0x43, 0xE5, 0xB2, 0x8D, 0x43,
- 0xE5, 0xB3, 0x80, 0x43, 0xE5, 0xB4, 0x99, 0x43,
- 0xE5, 0xB5, 0x83, 0x43, 0xE5, 0xB5, 0x90, 0x43,
- 0xE5, 0xB5, 0xAB, 0x43, 0xE5, 0xB5, 0xAE, 0x43,
- // Bytes ac0 - aff
- 0xE5, 0xB5, 0xBC, 0x43, 0xE5, 0xB6, 0xB2, 0x43,
- 0xE5, 0xB6, 0xBA, 0x43, 0xE5, 0xB7, 0x9B, 0x43,
- 0xE5, 0xB7, 0xA1, 0x43, 0xE5, 0xB7, 0xA2, 0x43,
- 0xE5, 0xB7, 0xA5, 0x43, 0xE5, 0xB7, 0xA6, 0x43,
- 0xE5, 0xB7, 0xB1, 0x43, 0xE5, 0xB7, 0xBD, 0x43,
- 0xE5, 0xB7, 0xBE, 0x43, 0xE5, 0xB8, 0xA8, 0x43,
- 0xE5, 0xB8, 0xBD, 0x43, 0xE5, 0xB9, 0xA9, 0x43,
- 0xE5, 0xB9, 0xB2, 0x43, 0xE5, 0xB9, 0xB4, 0x43,
- // Bytes b00 - b3f
- 0xE5, 0xB9, 0xBA, 0x43, 0xE5, 0xB9, 0xBC, 0x43,
- 0xE5, 0xB9, 0xBF, 0x43, 0xE5, 0xBA, 0xA6, 0x43,
- 0xE5, 0xBA, 0xB0, 0x43, 0xE5, 0xBA, 0xB3, 0x43,
- 0xE5, 0xBA, 0xB6, 0x43, 0xE5, 0xBB, 0x89, 0x43,
- 0xE5, 0xBB, 0x8A, 0x43, 0xE5, 0xBB, 0x92, 0x43,
- 0xE5, 0xBB, 0x93, 0x43, 0xE5, 0xBB, 0x99, 0x43,
- 0xE5, 0xBB, 0xAC, 0x43, 0xE5, 0xBB, 0xB4, 0x43,
- 0xE5, 0xBB, 0xBE, 0x43, 0xE5, 0xBC, 0x84, 0x43,
- // Bytes b40 - b7f
- 0xE5, 0xBC, 0x8B, 0x43, 0xE5, 0xBC, 0x93, 0x43,
- 0xE5, 0xBC, 0xA2, 0x43, 0xE5, 0xBD, 0x90, 0x43,
- 0xE5, 0xBD, 0x93, 0x43, 0xE5, 0xBD, 0xA1, 0x43,
- 0xE5, 0xBD, 0xA2, 0x43, 0xE5, 0xBD, 0xA9, 0x43,
- 0xE5, 0xBD, 0xAB, 0x43, 0xE5, 0xBD, 0xB3, 0x43,
- 0xE5, 0xBE, 0x8B, 0x43, 0xE5, 0xBE, 0x8C, 0x43,
- 0xE5, 0xBE, 0x97, 0x43, 0xE5, 0xBE, 0x9A, 0x43,
- 0xE5, 0xBE, 0xA9, 0x43, 0xE5, 0xBE, 0xAD, 0x43,
- // Bytes b80 - bbf
- 0xE5, 0xBF, 0x83, 0x43, 0xE5, 0xBF, 0x8D, 0x43,
- 0xE5, 0xBF, 0x97, 0x43, 0xE5, 0xBF, 0xB5, 0x43,
- 0xE5, 0xBF, 0xB9, 0x43, 0xE6, 0x80, 0x92, 0x43,
- 0xE6, 0x80, 0x9C, 0x43, 0xE6, 0x81, 0xB5, 0x43,
- 0xE6, 0x82, 0x81, 0x43, 0xE6, 0x82, 0x94, 0x43,
- 0xE6, 0x83, 0x87, 0x43, 0xE6, 0x83, 0x98, 0x43,
- 0xE6, 0x83, 0xA1, 0x43, 0xE6, 0x84, 0x88, 0x43,
- 0xE6, 0x85, 0x84, 0x43, 0xE6, 0x85, 0x88, 0x43,
- // Bytes bc0 - bff
- 0xE6, 0x85, 0x8C, 0x43, 0xE6, 0x85, 0x8E, 0x43,
- 0xE6, 0x85, 0xA0, 0x43, 0xE6, 0x85, 0xA8, 0x43,
- 0xE6, 0x85, 0xBA, 0x43, 0xE6, 0x86, 0x8E, 0x43,
- 0xE6, 0x86, 0x90, 0x43, 0xE6, 0x86, 0xA4, 0x43,
- 0xE6, 0x86, 0xAF, 0x43, 0xE6, 0x86, 0xB2, 0x43,
- 0xE6, 0x87, 0x9E, 0x43, 0xE6, 0x87, 0xB2, 0x43,
- 0xE6, 0x87, 0xB6, 0x43, 0xE6, 0x88, 0x80, 0x43,
- 0xE6, 0x88, 0x88, 0x43, 0xE6, 0x88, 0x90, 0x43,
- // Bytes c00 - c3f
- 0xE6, 0x88, 0x9B, 0x43, 0xE6, 0x88, 0xAE, 0x43,
- 0xE6, 0x88, 0xB4, 0x43, 0xE6, 0x88, 0xB6, 0x43,
- 0xE6, 0x89, 0x8B, 0x43, 0xE6, 0x89, 0x93, 0x43,
- 0xE6, 0x89, 0x9D, 0x43, 0xE6, 0x8A, 0x95, 0x43,
- 0xE6, 0x8A, 0xB1, 0x43, 0xE6, 0x8B, 0x89, 0x43,
- 0xE6, 0x8B, 0x8F, 0x43, 0xE6, 0x8B, 0x93, 0x43,
- 0xE6, 0x8B, 0x94, 0x43, 0xE6, 0x8B, 0xBC, 0x43,
- 0xE6, 0x8B, 0xBE, 0x43, 0xE6, 0x8C, 0x87, 0x43,
- // Bytes c40 - c7f
- 0xE6, 0x8C, 0xBD, 0x43, 0xE6, 0x8D, 0x90, 0x43,
- 0xE6, 0x8D, 0x95, 0x43, 0xE6, 0x8D, 0xA8, 0x43,
- 0xE6, 0x8D, 0xBB, 0x43, 0xE6, 0x8E, 0x83, 0x43,
- 0xE6, 0x8E, 0xA0, 0x43, 0xE6, 0x8E, 0xA9, 0x43,
- 0xE6, 0x8F, 0x84, 0x43, 0xE6, 0x8F, 0x85, 0x43,
- 0xE6, 0x8F, 0xA4, 0x43, 0xE6, 0x90, 0x9C, 0x43,
- 0xE6, 0x90, 0xA2, 0x43, 0xE6, 0x91, 0x92, 0x43,
- 0xE6, 0x91, 0xA9, 0x43, 0xE6, 0x91, 0xB7, 0x43,
- // Bytes c80 - cbf
- 0xE6, 0x91, 0xBE, 0x43, 0xE6, 0x92, 0x9A, 0x43,
- 0xE6, 0x92, 0x9D, 0x43, 0xE6, 0x93, 0x84, 0x43,
- 0xE6, 0x94, 0xAF, 0x43, 0xE6, 0x94, 0xB4, 0x43,
- 0xE6, 0x95, 0x8F, 0x43, 0xE6, 0x95, 0x96, 0x43,
- 0xE6, 0x95, 0xAC, 0x43, 0xE6, 0x95, 0xB8, 0x43,
- 0xE6, 0x96, 0x87, 0x43, 0xE6, 0x96, 0x97, 0x43,
- 0xE6, 0x96, 0x99, 0x43, 0xE6, 0x96, 0xA4, 0x43,
- 0xE6, 0x96, 0xB0, 0x43, 0xE6, 0x96, 0xB9, 0x43,
- // Bytes cc0 - cff
- 0xE6, 0x97, 0x85, 0x43, 0xE6, 0x97, 0xA0, 0x43,
- 0xE6, 0x97, 0xA2, 0x43, 0xE6, 0x97, 0xA3, 0x43,
- 0xE6, 0x97, 0xA5, 0x43, 0xE6, 0x98, 0x93, 0x43,
- 0xE6, 0x98, 0xA0, 0x43, 0xE6, 0x99, 0x89, 0x43,
- 0xE6, 0x99, 0xB4, 0x43, 0xE6, 0x9A, 0x88, 0x43,
- 0xE6, 0x9A, 0x91, 0x43, 0xE6, 0x9A, 0x9C, 0x43,
- 0xE6, 0x9A, 0xB4, 0x43, 0xE6, 0x9B, 0x86, 0x43,
- 0xE6, 0x9B, 0xB0, 0x43, 0xE6, 0x9B, 0xB4, 0x43,
- // Bytes d00 - d3f
- 0xE6, 0x9B, 0xB8, 0x43, 0xE6, 0x9C, 0x80, 0x43,
- 0xE6, 0x9C, 0x88, 0x43, 0xE6, 0x9C, 0x89, 0x43,
- 0xE6, 0x9C, 0x97, 0x43, 0xE6, 0x9C, 0x9B, 0x43,
- 0xE6, 0x9C, 0xA1, 0x43, 0xE6, 0x9C, 0xA8, 0x43,
- 0xE6, 0x9D, 0x8E, 0x43, 0xE6, 0x9D, 0x93, 0x43,
- 0xE6, 0x9D, 0x96, 0x43, 0xE6, 0x9D, 0x9E, 0x43,
- 0xE6, 0x9D, 0xBB, 0x43, 0xE6, 0x9E, 0x85, 0x43,
- 0xE6, 0x9E, 0x97, 0x43, 0xE6, 0x9F, 0xB3, 0x43,
- // Bytes d40 - d7f
- 0xE6, 0x9F, 0xBA, 0x43, 0xE6, 0xA0, 0x97, 0x43,
- 0xE6, 0xA0, 0x9F, 0x43, 0xE6, 0xA0, 0xAA, 0x43,
- 0xE6, 0xA1, 0x92, 0x43, 0xE6, 0xA2, 0x81, 0x43,
- 0xE6, 0xA2, 0x85, 0x43, 0xE6, 0xA2, 0x8E, 0x43,
- 0xE6, 0xA2, 0xA8, 0x43, 0xE6, 0xA4, 0x94, 0x43,
- 0xE6, 0xA5, 0x82, 0x43, 0xE6, 0xA6, 0xA3, 0x43,
- 0xE6, 0xA7, 0xAA, 0x43, 0xE6, 0xA8, 0x82, 0x43,
- 0xE6, 0xA8, 0x93, 0x43, 0xE6, 0xAA, 0xA8, 0x43,
- // Bytes d80 - dbf
- 0xE6, 0xAB, 0x93, 0x43, 0xE6, 0xAB, 0x9B, 0x43,
- 0xE6, 0xAC, 0x84, 0x43, 0xE6, 0xAC, 0xA0, 0x43,
- 0xE6, 0xAC, 0xA1, 0x43, 0xE6, 0xAD, 0x94, 0x43,
- 0xE6, 0xAD, 0xA2, 0x43, 0xE6, 0xAD, 0xA3, 0x43,
- 0xE6, 0xAD, 0xB2, 0x43, 0xE6, 0xAD, 0xB7, 0x43,
- 0xE6, 0xAD, 0xB9, 0x43, 0xE6, 0xAE, 0x9F, 0x43,
- 0xE6, 0xAE, 0xAE, 0x43, 0xE6, 0xAE, 0xB3, 0x43,
- 0xE6, 0xAE, 0xBA, 0x43, 0xE6, 0xAE, 0xBB, 0x43,
- // Bytes dc0 - dff
- 0xE6, 0xAF, 0x8B, 0x43, 0xE6, 0xAF, 0x8D, 0x43,
- 0xE6, 0xAF, 0x94, 0x43, 0xE6, 0xAF, 0x9B, 0x43,
- 0xE6, 0xB0, 0x8F, 0x43, 0xE6, 0xB0, 0x94, 0x43,
- 0xE6, 0xB0, 0xB4, 0x43, 0xE6, 0xB1, 0x8E, 0x43,
- 0xE6, 0xB1, 0xA7, 0x43, 0xE6, 0xB2, 0x88, 0x43,
- 0xE6, 0xB2, 0xBF, 0x43, 0xE6, 0xB3, 0x8C, 0x43,
- 0xE6, 0xB3, 0x8D, 0x43, 0xE6, 0xB3, 0xA5, 0x43,
- 0xE6, 0xB3, 0xA8, 0x43, 0xE6, 0xB4, 0x96, 0x43,
- // Bytes e00 - e3f
- 0xE6, 0xB4, 0x9B, 0x43, 0xE6, 0xB4, 0x9E, 0x43,
- 0xE6, 0xB4, 0xB4, 0x43, 0xE6, 0xB4, 0xBE, 0x43,
- 0xE6, 0xB5, 0x81, 0x43, 0xE6, 0xB5, 0xA9, 0x43,
- 0xE6, 0xB5, 0xAA, 0x43, 0xE6, 0xB5, 0xB7, 0x43,
- 0xE6, 0xB5, 0xB8, 0x43, 0xE6, 0xB6, 0x85, 0x43,
- 0xE6, 0xB7, 0x8B, 0x43, 0xE6, 0xB7, 0x9A, 0x43,
- 0xE6, 0xB7, 0xAA, 0x43, 0xE6, 0xB7, 0xB9, 0x43,
- 0xE6, 0xB8, 0x9A, 0x43, 0xE6, 0xB8, 0xAF, 0x43,
- // Bytes e40 - e7f
- 0xE6, 0xB9, 0xAE, 0x43, 0xE6, 0xBA, 0x80, 0x43,
- 0xE6, 0xBA, 0x9C, 0x43, 0xE6, 0xBA, 0xBA, 0x43,
- 0xE6, 0xBB, 0x87, 0x43, 0xE6, 0xBB, 0x8B, 0x43,
- 0xE6, 0xBB, 0x91, 0x43, 0xE6, 0xBB, 0x9B, 0x43,
- 0xE6, 0xBC, 0x8F, 0x43, 0xE6, 0xBC, 0x94, 0x43,
- 0xE6, 0xBC, 0xA2, 0x43, 0xE6, 0xBC, 0xA3, 0x43,
- 0xE6, 0xBD, 0xAE, 0x43, 0xE6, 0xBF, 0x86, 0x43,
- 0xE6, 0xBF, 0xAB, 0x43, 0xE6, 0xBF, 0xBE, 0x43,
- // Bytes e80 - ebf
- 0xE7, 0x80, 0x9B, 0x43, 0xE7, 0x80, 0x9E, 0x43,
- 0xE7, 0x80, 0xB9, 0x43, 0xE7, 0x81, 0x8A, 0x43,
- 0xE7, 0x81, 0xAB, 0x43, 0xE7, 0x81, 0xB0, 0x43,
- 0xE7, 0x81, 0xB7, 0x43, 0xE7, 0x81, 0xBD, 0x43,
- 0xE7, 0x82, 0x99, 0x43, 0xE7, 0x82, 0xAD, 0x43,
- 0xE7, 0x83, 0x88, 0x43, 0xE7, 0x83, 0x99, 0x43,
- 0xE7, 0x84, 0xA1, 0x43, 0xE7, 0x85, 0x85, 0x43,
- 0xE7, 0x85, 0x89, 0x43, 0xE7, 0x85, 0xAE, 0x43,
- // Bytes ec0 - eff
- 0xE7, 0x86, 0x9C, 0x43, 0xE7, 0x87, 0x8E, 0x43,
- 0xE7, 0x87, 0x90, 0x43, 0xE7, 0x88, 0x90, 0x43,
- 0xE7, 0x88, 0x9B, 0x43, 0xE7, 0x88, 0xA8, 0x43,
- 0xE7, 0x88, 0xAA, 0x43, 0xE7, 0x88, 0xAB, 0x43,
- 0xE7, 0x88, 0xB5, 0x43, 0xE7, 0x88, 0xB6, 0x43,
- 0xE7, 0x88, 0xBB, 0x43, 0xE7, 0x88, 0xBF, 0x43,
- 0xE7, 0x89, 0x87, 0x43, 0xE7, 0x89, 0x90, 0x43,
- 0xE7, 0x89, 0x99, 0x43, 0xE7, 0x89, 0x9B, 0x43,
- // Bytes f00 - f3f
- 0xE7, 0x89, 0xA2, 0x43, 0xE7, 0x89, 0xB9, 0x43,
- 0xE7, 0x8A, 0x80, 0x43, 0xE7, 0x8A, 0x95, 0x43,
- 0xE7, 0x8A, 0xAC, 0x43, 0xE7, 0x8A, 0xAF, 0x43,
- 0xE7, 0x8B, 0x80, 0x43, 0xE7, 0x8B, 0xBC, 0x43,
- 0xE7, 0x8C, 0xAA, 0x43, 0xE7, 0x8D, 0xB5, 0x43,
- 0xE7, 0x8D, 0xBA, 0x43, 0xE7, 0x8E, 0x84, 0x43,
- 0xE7, 0x8E, 0x87, 0x43, 0xE7, 0x8E, 0x89, 0x43,
- 0xE7, 0x8E, 0x8B, 0x43, 0xE7, 0x8E, 0xA5, 0x43,
- // Bytes f40 - f7f
- 0xE7, 0x8E, 0xB2, 0x43, 0xE7, 0x8F, 0x9E, 0x43,
- 0xE7, 0x90, 0x86, 0x43, 0xE7, 0x90, 0x89, 0x43,
- 0xE7, 0x90, 0xA2, 0x43, 0xE7, 0x91, 0x87, 0x43,
- 0xE7, 0x91, 0x9C, 0x43, 0xE7, 0x91, 0xA9, 0x43,
- 0xE7, 0x91, 0xB1, 0x43, 0xE7, 0x92, 0x85, 0x43,
- 0xE7, 0x92, 0x89, 0x43, 0xE7, 0x92, 0x98, 0x43,
- 0xE7, 0x93, 0x8A, 0x43, 0xE7, 0x93, 0x9C, 0x43,
- 0xE7, 0x93, 0xA6, 0x43, 0xE7, 0x94, 0x86, 0x43,
- // Bytes f80 - fbf
- 0xE7, 0x94, 0x98, 0x43, 0xE7, 0x94, 0x9F, 0x43,
- 0xE7, 0x94, 0xA4, 0x43, 0xE7, 0x94, 0xA8, 0x43,
- 0xE7, 0x94, 0xB0, 0x43, 0xE7, 0x94, 0xB2, 0x43,
- 0xE7, 0x94, 0xB3, 0x43, 0xE7, 0x94, 0xB7, 0x43,
- 0xE7, 0x94, 0xBB, 0x43, 0xE7, 0x94, 0xBE, 0x43,
- 0xE7, 0x95, 0x99, 0x43, 0xE7, 0x95, 0xA5, 0x43,
- 0xE7, 0x95, 0xB0, 0x43, 0xE7, 0x96, 0x8B, 0x43,
- 0xE7, 0x96, 0x92, 0x43, 0xE7, 0x97, 0xA2, 0x43,
- // Bytes fc0 - fff
- 0xE7, 0x98, 0x90, 0x43, 0xE7, 0x98, 0x9D, 0x43,
- 0xE7, 0x98, 0x9F, 0x43, 0xE7, 0x99, 0x82, 0x43,
- 0xE7, 0x99, 0xA9, 0x43, 0xE7, 0x99, 0xB6, 0x43,
- 0xE7, 0x99, 0xBD, 0x43, 0xE7, 0x9A, 0xAE, 0x43,
- 0xE7, 0x9A, 0xBF, 0x43, 0xE7, 0x9B, 0x8A, 0x43,
- 0xE7, 0x9B, 0x9B, 0x43, 0xE7, 0x9B, 0xA3, 0x43,
- 0xE7, 0x9B, 0xA7, 0x43, 0xE7, 0x9B, 0xAE, 0x43,
- 0xE7, 0x9B, 0xB4, 0x43, 0xE7, 0x9C, 0x81, 0x43,
- // Bytes 1000 - 103f
- 0xE7, 0x9C, 0x9E, 0x43, 0xE7, 0x9C, 0x9F, 0x43,
- 0xE7, 0x9D, 0x80, 0x43, 0xE7, 0x9D, 0x8A, 0x43,
- 0xE7, 0x9E, 0x8B, 0x43, 0xE7, 0x9E, 0xA7, 0x43,
- 0xE7, 0x9F, 0x9B, 0x43, 0xE7, 0x9F, 0xA2, 0x43,
- 0xE7, 0x9F, 0xB3, 0x43, 0xE7, 0xA1, 0x8E, 0x43,
- 0xE7, 0xA1, 0xAB, 0x43, 0xE7, 0xA2, 0x8C, 0x43,
- 0xE7, 0xA2, 0x91, 0x43, 0xE7, 0xA3, 0x8A, 0x43,
- 0xE7, 0xA3, 0x8C, 0x43, 0xE7, 0xA3, 0xBB, 0x43,
- // Bytes 1040 - 107f
- 0xE7, 0xA4, 0xAA, 0x43, 0xE7, 0xA4, 0xBA, 0x43,
- 0xE7, 0xA4, 0xBC, 0x43, 0xE7, 0xA4, 0xBE, 0x43,
- 0xE7, 0xA5, 0x88, 0x43, 0xE7, 0xA5, 0x89, 0x43,
- 0xE7, 0xA5, 0x90, 0x43, 0xE7, 0xA5, 0x96, 0x43,
- 0xE7, 0xA5, 0x9D, 0x43, 0xE7, 0xA5, 0x9E, 0x43,
- 0xE7, 0xA5, 0xA5, 0x43, 0xE7, 0xA5, 0xBF, 0x43,
- 0xE7, 0xA6, 0x81, 0x43, 0xE7, 0xA6, 0x8D, 0x43,
- 0xE7, 0xA6, 0x8E, 0x43, 0xE7, 0xA6, 0x8F, 0x43,
- // Bytes 1080 - 10bf
- 0xE7, 0xA6, 0xAE, 0x43, 0xE7, 0xA6, 0xB8, 0x43,
- 0xE7, 0xA6, 0xBE, 0x43, 0xE7, 0xA7, 0x8A, 0x43,
- 0xE7, 0xA7, 0x98, 0x43, 0xE7, 0xA7, 0xAB, 0x43,
- 0xE7, 0xA8, 0x9C, 0x43, 0xE7, 0xA9, 0x80, 0x43,
- 0xE7, 0xA9, 0x8A, 0x43, 0xE7, 0xA9, 0x8F, 0x43,
- 0xE7, 0xA9, 0xB4, 0x43, 0xE7, 0xA9, 0xBA, 0x43,
- 0xE7, 0xAA, 0x81, 0x43, 0xE7, 0xAA, 0xB1, 0x43,
- 0xE7, 0xAB, 0x8B, 0x43, 0xE7, 0xAB, 0xAE, 0x43,
- // Bytes 10c0 - 10ff
- 0xE7, 0xAB, 0xB9, 0x43, 0xE7, 0xAC, 0xA0, 0x43,
- 0xE7, 0xAE, 0x8F, 0x43, 0xE7, 0xAF, 0x80, 0x43,
- 0xE7, 0xAF, 0x86, 0x43, 0xE7, 0xAF, 0x89, 0x43,
- 0xE7, 0xB0, 0xBE, 0x43, 0xE7, 0xB1, 0xA0, 0x43,
- 0xE7, 0xB1, 0xB3, 0x43, 0xE7, 0xB1, 0xBB, 0x43,
- 0xE7, 0xB2, 0x92, 0x43, 0xE7, 0xB2, 0xBE, 0x43,
- 0xE7, 0xB3, 0x92, 0x43, 0xE7, 0xB3, 0x96, 0x43,
- 0xE7, 0xB3, 0xA3, 0x43, 0xE7, 0xB3, 0xA7, 0x43,
- // Bytes 1100 - 113f
- 0xE7, 0xB3, 0xA8, 0x43, 0xE7, 0xB3, 0xB8, 0x43,
- 0xE7, 0xB4, 0x80, 0x43, 0xE7, 0xB4, 0x90, 0x43,
- 0xE7, 0xB4, 0xA2, 0x43, 0xE7, 0xB4, 0xAF, 0x43,
- 0xE7, 0xB5, 0x82, 0x43, 0xE7, 0xB5, 0x9B, 0x43,
- 0xE7, 0xB5, 0xA3, 0x43, 0xE7, 0xB6, 0xA0, 0x43,
- 0xE7, 0xB6, 0xBE, 0x43, 0xE7, 0xB7, 0x87, 0x43,
- 0xE7, 0xB7, 0xB4, 0x43, 0xE7, 0xB8, 0x82, 0x43,
- 0xE7, 0xB8, 0x89, 0x43, 0xE7, 0xB8, 0xB7, 0x43,
- // Bytes 1140 - 117f
- 0xE7, 0xB9, 0x81, 0x43, 0xE7, 0xB9, 0x85, 0x43,
- 0xE7, 0xBC, 0xB6, 0x43, 0xE7, 0xBC, 0xBE, 0x43,
- 0xE7, 0xBD, 0x91, 0x43, 0xE7, 0xBD, 0xB2, 0x43,
- 0xE7, 0xBD, 0xB9, 0x43, 0xE7, 0xBD, 0xBA, 0x43,
- 0xE7, 0xBE, 0x85, 0x43, 0xE7, 0xBE, 0x8A, 0x43,
- 0xE7, 0xBE, 0x95, 0x43, 0xE7, 0xBE, 0x9A, 0x43,
- 0xE7, 0xBE, 0xBD, 0x43, 0xE7, 0xBF, 0xBA, 0x43,
- 0xE8, 0x80, 0x81, 0x43, 0xE8, 0x80, 0x85, 0x43,
- // Bytes 1180 - 11bf
- 0xE8, 0x80, 0x8C, 0x43, 0xE8, 0x80, 0x92, 0x43,
- 0xE8, 0x80, 0xB3, 0x43, 0xE8, 0x81, 0x86, 0x43,
- 0xE8, 0x81, 0xA0, 0x43, 0xE8, 0x81, 0xAF, 0x43,
- 0xE8, 0x81, 0xB0, 0x43, 0xE8, 0x81, 0xBE, 0x43,
- 0xE8, 0x81, 0xBF, 0x43, 0xE8, 0x82, 0x89, 0x43,
- 0xE8, 0x82, 0x8B, 0x43, 0xE8, 0x82, 0xAD, 0x43,
- 0xE8, 0x82, 0xB2, 0x43, 0xE8, 0x84, 0x83, 0x43,
- 0xE8, 0x84, 0xBE, 0x43, 0xE8, 0x87, 0x98, 0x43,
- // Bytes 11c0 - 11ff
- 0xE8, 0x87, 0xA3, 0x43, 0xE8, 0x87, 0xA8, 0x43,
- 0xE8, 0x87, 0xAA, 0x43, 0xE8, 0x87, 0xAD, 0x43,
- 0xE8, 0x87, 0xB3, 0x43, 0xE8, 0x87, 0xBC, 0x43,
- 0xE8, 0x88, 0x81, 0x43, 0xE8, 0x88, 0x84, 0x43,
- 0xE8, 0x88, 0x8C, 0x43, 0xE8, 0x88, 0x98, 0x43,
- 0xE8, 0x88, 0x9B, 0x43, 0xE8, 0x88, 0x9F, 0x43,
- 0xE8, 0x89, 0xAE, 0x43, 0xE8, 0x89, 0xAF, 0x43,
- 0xE8, 0x89, 0xB2, 0x43, 0xE8, 0x89, 0xB8, 0x43,
- // Bytes 1200 - 123f
- 0xE8, 0x89, 0xB9, 0x43, 0xE8, 0x8A, 0x8B, 0x43,
- 0xE8, 0x8A, 0x91, 0x43, 0xE8, 0x8A, 0x9D, 0x43,
- 0xE8, 0x8A, 0xB1, 0x43, 0xE8, 0x8A, 0xB3, 0x43,
- 0xE8, 0x8A, 0xBD, 0x43, 0xE8, 0x8B, 0xA5, 0x43,
- 0xE8, 0x8B, 0xA6, 0x43, 0xE8, 0x8C, 0x9D, 0x43,
- 0xE8, 0x8C, 0xA3, 0x43, 0xE8, 0x8C, 0xB6, 0x43,
- 0xE8, 0x8D, 0x92, 0x43, 0xE8, 0x8D, 0x93, 0x43,
- 0xE8, 0x8D, 0xA3, 0x43, 0xE8, 0x8E, 0xAD, 0x43,
- // Bytes 1240 - 127f
- 0xE8, 0x8E, 0xBD, 0x43, 0xE8, 0x8F, 0x89, 0x43,
- 0xE8, 0x8F, 0x8A, 0x43, 0xE8, 0x8F, 0x8C, 0x43,
- 0xE8, 0x8F, 0x9C, 0x43, 0xE8, 0x8F, 0xA7, 0x43,
- 0xE8, 0x8F, 0xAF, 0x43, 0xE8, 0x8F, 0xB1, 0x43,
- 0xE8, 0x90, 0xBD, 0x43, 0xE8, 0x91, 0x89, 0x43,
- 0xE8, 0x91, 0x97, 0x43, 0xE8, 0x93, 0xAE, 0x43,
- 0xE8, 0x93, 0xB1, 0x43, 0xE8, 0x93, 0xB3, 0x43,
- 0xE8, 0x93, 0xBC, 0x43, 0xE8, 0x94, 0x96, 0x43,
- // Bytes 1280 - 12bf
- 0xE8, 0x95, 0xA4, 0x43, 0xE8, 0x97, 0x8D, 0x43,
- 0xE8, 0x97, 0xBA, 0x43, 0xE8, 0x98, 0x86, 0x43,
- 0xE8, 0x98, 0x92, 0x43, 0xE8, 0x98, 0xAD, 0x43,
- 0xE8, 0x98, 0xBF, 0x43, 0xE8, 0x99, 0x8D, 0x43,
- 0xE8, 0x99, 0x90, 0x43, 0xE8, 0x99, 0x9C, 0x43,
- 0xE8, 0x99, 0xA7, 0x43, 0xE8, 0x99, 0xA9, 0x43,
- 0xE8, 0x99, 0xAB, 0x43, 0xE8, 0x9A, 0x88, 0x43,
- 0xE8, 0x9A, 0xA9, 0x43, 0xE8, 0x9B, 0xA2, 0x43,
- // Bytes 12c0 - 12ff
- 0xE8, 0x9C, 0x8E, 0x43, 0xE8, 0x9C, 0xA8, 0x43,
- 0xE8, 0x9D, 0xAB, 0x43, 0xE8, 0x9D, 0xB9, 0x43,
- 0xE8, 0x9E, 0x86, 0x43, 0xE8, 0x9E, 0xBA, 0x43,
- 0xE8, 0x9F, 0xA1, 0x43, 0xE8, 0xA0, 0x81, 0x43,
- 0xE8, 0xA0, 0x9F, 0x43, 0xE8, 0xA1, 0x80, 0x43,
- 0xE8, 0xA1, 0x8C, 0x43, 0xE8, 0xA1, 0xA0, 0x43,
- 0xE8, 0xA1, 0xA3, 0x43, 0xE8, 0xA3, 0x82, 0x43,
- 0xE8, 0xA3, 0x8F, 0x43, 0xE8, 0xA3, 0x97, 0x43,
- // Bytes 1300 - 133f
- 0xE8, 0xA3, 0x9E, 0x43, 0xE8, 0xA3, 0xA1, 0x43,
- 0xE8, 0xA3, 0xB8, 0x43, 0xE8, 0xA3, 0xBA, 0x43,
- 0xE8, 0xA4, 0x90, 0x43, 0xE8, 0xA5, 0x81, 0x43,
- 0xE8, 0xA5, 0xA4, 0x43, 0xE8, 0xA5, 0xBE, 0x43,
- 0xE8, 0xA6, 0x86, 0x43, 0xE8, 0xA6, 0x8B, 0x43,
- 0xE8, 0xA6, 0x96, 0x43, 0xE8, 0xA7, 0x92, 0x43,
- 0xE8, 0xA7, 0xA3, 0x43, 0xE8, 0xA8, 0x80, 0x43,
- 0xE8, 0xAA, 0xA0, 0x43, 0xE8, 0xAA, 0xAA, 0x43,
- // Bytes 1340 - 137f
- 0xE8, 0xAA, 0xBF, 0x43, 0xE8, 0xAB, 0x8B, 0x43,
- 0xE8, 0xAB, 0x92, 0x43, 0xE8, 0xAB, 0x96, 0x43,
- 0xE8, 0xAB, 0xAD, 0x43, 0xE8, 0xAB, 0xB8, 0x43,
- 0xE8, 0xAB, 0xBE, 0x43, 0xE8, 0xAC, 0x81, 0x43,
- 0xE8, 0xAC, 0xB9, 0x43, 0xE8, 0xAD, 0x98, 0x43,
- 0xE8, 0xAE, 0x80, 0x43, 0xE8, 0xAE, 0x8A, 0x43,
- 0xE8, 0xB0, 0xB7, 0x43, 0xE8, 0xB1, 0x86, 0x43,
- 0xE8, 0xB1, 0x88, 0x43, 0xE8, 0xB1, 0x95, 0x43,
- // Bytes 1380 - 13bf
- 0xE8, 0xB1, 0xB8, 0x43, 0xE8, 0xB2, 0x9D, 0x43,
- 0xE8, 0xB2, 0xA1, 0x43, 0xE8, 0xB2, 0xA9, 0x43,
- 0xE8, 0xB2, 0xAB, 0x43, 0xE8, 0xB3, 0x81, 0x43,
- 0xE8, 0xB3, 0x82, 0x43, 0xE8, 0xB3, 0x87, 0x43,
- 0xE8, 0xB3, 0x88, 0x43, 0xE8, 0xB3, 0x93, 0x43,
- 0xE8, 0xB4, 0x88, 0x43, 0xE8, 0xB4, 0x9B, 0x43,
- 0xE8, 0xB5, 0xA4, 0x43, 0xE8, 0xB5, 0xB0, 0x43,
- 0xE8, 0xB5, 0xB7, 0x43, 0xE8, 0xB6, 0xB3, 0x43,
- // Bytes 13c0 - 13ff
- 0xE8, 0xB6, 0xBC, 0x43, 0xE8, 0xB7, 0x8B, 0x43,
- 0xE8, 0xB7, 0xAF, 0x43, 0xE8, 0xB7, 0xB0, 0x43,
- 0xE8, 0xBA, 0xAB, 0x43, 0xE8, 0xBB, 0x8A, 0x43,
- 0xE8, 0xBB, 0x94, 0x43, 0xE8, 0xBC, 0xA6, 0x43,
- 0xE8, 0xBC, 0xAA, 0x43, 0xE8, 0xBC, 0xB8, 0x43,
- 0xE8, 0xBC, 0xBB, 0x43, 0xE8, 0xBD, 0xA2, 0x43,
- 0xE8, 0xBE, 0x9B, 0x43, 0xE8, 0xBE, 0x9E, 0x43,
- 0xE8, 0xBE, 0xB0, 0x43, 0xE8, 0xBE, 0xB5, 0x43,
- // Bytes 1400 - 143f
- 0xE8, 0xBE, 0xB6, 0x43, 0xE9, 0x80, 0xA3, 0x43,
- 0xE9, 0x80, 0xB8, 0x43, 0xE9, 0x81, 0x8A, 0x43,
- 0xE9, 0x81, 0xA9, 0x43, 0xE9, 0x81, 0xB2, 0x43,
- 0xE9, 0x81, 0xBC, 0x43, 0xE9, 0x82, 0x8F, 0x43,
- 0xE9, 0x82, 0x91, 0x43, 0xE9, 0x82, 0x94, 0x43,
- 0xE9, 0x83, 0x8E, 0x43, 0xE9, 0x83, 0x9E, 0x43,
- 0xE9, 0x83, 0xB1, 0x43, 0xE9, 0x83, 0xBD, 0x43,
- 0xE9, 0x84, 0x91, 0x43, 0xE9, 0x84, 0x9B, 0x43,
- // Bytes 1440 - 147f
- 0xE9, 0x85, 0x89, 0x43, 0xE9, 0x85, 0x8D, 0x43,
- 0xE9, 0x85, 0xAA, 0x43, 0xE9, 0x86, 0x99, 0x43,
- 0xE9, 0x86, 0xB4, 0x43, 0xE9, 0x87, 0x86, 0x43,
- 0xE9, 0x87, 0x8C, 0x43, 0xE9, 0x87, 0x8F, 0x43,
- 0xE9, 0x87, 0x91, 0x43, 0xE9, 0x88, 0xB4, 0x43,
- 0xE9, 0x88, 0xB8, 0x43, 0xE9, 0x89, 0xB6, 0x43,
- 0xE9, 0x89, 0xBC, 0x43, 0xE9, 0x8B, 0x97, 0x43,
- 0xE9, 0x8B, 0x98, 0x43, 0xE9, 0x8C, 0x84, 0x43,
- // Bytes 1480 - 14bf
- 0xE9, 0x8D, 0x8A, 0x43, 0xE9, 0x8F, 0xB9, 0x43,
- 0xE9, 0x90, 0x95, 0x43, 0xE9, 0x95, 0xB7, 0x43,
- 0xE9, 0x96, 0x80, 0x43, 0xE9, 0x96, 0x8B, 0x43,
- 0xE9, 0x96, 0xAD, 0x43, 0xE9, 0x96, 0xB7, 0x43,
- 0xE9, 0x98, 0x9C, 0x43, 0xE9, 0x98, 0xAE, 0x43,
- 0xE9, 0x99, 0x8B, 0x43, 0xE9, 0x99, 0x8D, 0x43,
- 0xE9, 0x99, 0xB5, 0x43, 0xE9, 0x99, 0xB8, 0x43,
- 0xE9, 0x99, 0xBC, 0x43, 0xE9, 0x9A, 0x86, 0x43,
- // Bytes 14c0 - 14ff
- 0xE9, 0x9A, 0xA3, 0x43, 0xE9, 0x9A, 0xB6, 0x43,
- 0xE9, 0x9A, 0xB7, 0x43, 0xE9, 0x9A, 0xB8, 0x43,
- 0xE9, 0x9A, 0xB9, 0x43, 0xE9, 0x9B, 0x83, 0x43,
- 0xE9, 0x9B, 0xA2, 0x43, 0xE9, 0x9B, 0xA3, 0x43,
- 0xE9, 0x9B, 0xA8, 0x43, 0xE9, 0x9B, 0xB6, 0x43,
- 0xE9, 0x9B, 0xB7, 0x43, 0xE9, 0x9C, 0xA3, 0x43,
- 0xE9, 0x9C, 0xB2, 0x43, 0xE9, 0x9D, 0x88, 0x43,
- 0xE9, 0x9D, 0x91, 0x43, 0xE9, 0x9D, 0x96, 0x43,
- // Bytes 1500 - 153f
- 0xE9, 0x9D, 0x9E, 0x43, 0xE9, 0x9D, 0xA2, 0x43,
- 0xE9, 0x9D, 0xA9, 0x43, 0xE9, 0x9F, 0x8B, 0x43,
- 0xE9, 0x9F, 0x9B, 0x43, 0xE9, 0x9F, 0xA0, 0x43,
- 0xE9, 0x9F, 0xAD, 0x43, 0xE9, 0x9F, 0xB3, 0x43,
- 0xE9, 0x9F, 0xBF, 0x43, 0xE9, 0xA0, 0x81, 0x43,
- 0xE9, 0xA0, 0x85, 0x43, 0xE9, 0xA0, 0x8B, 0x43,
- 0xE9, 0xA0, 0x98, 0x43, 0xE9, 0xA0, 0xA9, 0x43,
- 0xE9, 0xA0, 0xBB, 0x43, 0xE9, 0xA1, 0x9E, 0x43,
- // Bytes 1540 - 157f
- 0xE9, 0xA2, 0xA8, 0x43, 0xE9, 0xA3, 0x9B, 0x43,
- 0xE9, 0xA3, 0x9F, 0x43, 0xE9, 0xA3, 0xA2, 0x43,
- 0xE9, 0xA3, 0xAF, 0x43, 0xE9, 0xA3, 0xBC, 0x43,
- 0xE9, 0xA4, 0xA8, 0x43, 0xE9, 0xA4, 0xA9, 0x43,
- 0xE9, 0xA6, 0x96, 0x43, 0xE9, 0xA6, 0x99, 0x43,
- 0xE9, 0xA6, 0xA7, 0x43, 0xE9, 0xA6, 0xAC, 0x43,
- 0xE9, 0xA7, 0x82, 0x43, 0xE9, 0xA7, 0xB1, 0x43,
- 0xE9, 0xA7, 0xBE, 0x43, 0xE9, 0xA9, 0xAA, 0x43,
- // Bytes 1580 - 15bf
- 0xE9, 0xAA, 0xA8, 0x43, 0xE9, 0xAB, 0x98, 0x43,
- 0xE9, 0xAB, 0x9F, 0x43, 0xE9, 0xAC, 0x92, 0x43,
- 0xE9, 0xAC, 0xA5, 0x43, 0xE9, 0xAC, 0xAF, 0x43,
- 0xE9, 0xAC, 0xB2, 0x43, 0xE9, 0xAC, 0xBC, 0x43,
- 0xE9, 0xAD, 0x9A, 0x43, 0xE9, 0xAD, 0xAF, 0x43,
- 0xE9, 0xB1, 0x80, 0x43, 0xE9, 0xB1, 0x97, 0x43,
- 0xE9, 0xB3, 0xA5, 0x43, 0xE9, 0xB3, 0xBD, 0x43,
- 0xE9, 0xB5, 0xA7, 0x43, 0xE9, 0xB6, 0xB4, 0x43,
- // Bytes 15c0 - 15ff
- 0xE9, 0xB7, 0xBA, 0x43, 0xE9, 0xB8, 0x9E, 0x43,
- 0xE9, 0xB9, 0xB5, 0x43, 0xE9, 0xB9, 0xBF, 0x43,
- 0xE9, 0xBA, 0x97, 0x43, 0xE9, 0xBA, 0x9F, 0x43,
- 0xE9, 0xBA, 0xA5, 0x43, 0xE9, 0xBA, 0xBB, 0x43,
- 0xE9, 0xBB, 0x83, 0x43, 0xE9, 0xBB, 0x8D, 0x43,
- 0xE9, 0xBB, 0x8E, 0x43, 0xE9, 0xBB, 0x91, 0x43,
- 0xE9, 0xBB, 0xB9, 0x43, 0xE9, 0xBB, 0xBD, 0x43,
- 0xE9, 0xBB, 0xBE, 0x43, 0xE9, 0xBC, 0x85, 0x43,
- // Bytes 1600 - 163f
- 0xE9, 0xBC, 0x8E, 0x43, 0xE9, 0xBC, 0x8F, 0x43,
- 0xE9, 0xBC, 0x93, 0x43, 0xE9, 0xBC, 0x96, 0x43,
- 0xE9, 0xBC, 0xA0, 0x43, 0xE9, 0xBC, 0xBB, 0x43,
- 0xE9, 0xBD, 0x83, 0x43, 0xE9, 0xBD, 0x8A, 0x43,
- 0xE9, 0xBD, 0x92, 0x43, 0xE9, 0xBE, 0x8D, 0x43,
- 0xE9, 0xBE, 0x8E, 0x43, 0xE9, 0xBE, 0x9C, 0x43,
- 0xE9, 0xBE, 0x9F, 0x43, 0xE9, 0xBE, 0xA0, 0x43,
- 0xEA, 0x9C, 0xA7, 0x43, 0xEA, 0x9D, 0xAF, 0x43,
- // Bytes 1640 - 167f
- 0xEA, 0xAC, 0xB7, 0x43, 0xEA, 0xAD, 0x92, 0x44,
- 0xF0, 0xA0, 0x84, 0xA2, 0x44, 0xF0, 0xA0, 0x94,
- 0x9C, 0x44, 0xF0, 0xA0, 0x94, 0xA5, 0x44, 0xF0,
- 0xA0, 0x95, 0x8B, 0x44, 0xF0, 0xA0, 0x98, 0xBA,
- 0x44, 0xF0, 0xA0, 0xA0, 0x84, 0x44, 0xF0, 0xA0,
- 0xA3, 0x9E, 0x44, 0xF0, 0xA0, 0xA8, 0xAC, 0x44,
- 0xF0, 0xA0, 0xAD, 0xA3, 0x44, 0xF0, 0xA1, 0x93,
- 0xA4, 0x44, 0xF0, 0xA1, 0x9A, 0xA8, 0x44, 0xF0,
- // Bytes 1680 - 16bf
- 0xA1, 0x9B, 0xAA, 0x44, 0xF0, 0xA1, 0xA7, 0x88,
- 0x44, 0xF0, 0xA1, 0xAC, 0x98, 0x44, 0xF0, 0xA1,
- 0xB4, 0x8B, 0x44, 0xF0, 0xA1, 0xB7, 0xA4, 0x44,
- 0xF0, 0xA1, 0xB7, 0xA6, 0x44, 0xF0, 0xA2, 0x86,
- 0x83, 0x44, 0xF0, 0xA2, 0x86, 0x9F, 0x44, 0xF0,
- 0xA2, 0x8C, 0xB1, 0x44, 0xF0, 0xA2, 0x9B, 0x94,
- 0x44, 0xF0, 0xA2, 0xA1, 0x84, 0x44, 0xF0, 0xA2,
- 0xA1, 0x8A, 0x44, 0xF0, 0xA2, 0xAC, 0x8C, 0x44,
- // Bytes 16c0 - 16ff
- 0xF0, 0xA2, 0xAF, 0xB1, 0x44, 0xF0, 0xA3, 0x80,
- 0x8A, 0x44, 0xF0, 0xA3, 0x8A, 0xB8, 0x44, 0xF0,
- 0xA3, 0x8D, 0x9F, 0x44, 0xF0, 0xA3, 0x8E, 0x93,
- 0x44, 0xF0, 0xA3, 0x8E, 0x9C, 0x44, 0xF0, 0xA3,
- 0x8F, 0x83, 0x44, 0xF0, 0xA3, 0x8F, 0x95, 0x44,
- 0xF0, 0xA3, 0x91, 0xAD, 0x44, 0xF0, 0xA3, 0x9A,
- 0xA3, 0x44, 0xF0, 0xA3, 0xA2, 0xA7, 0x44, 0xF0,
- 0xA3, 0xAA, 0x8D, 0x44, 0xF0, 0xA3, 0xAB, 0xBA,
- // Bytes 1700 - 173f
- 0x44, 0xF0, 0xA3, 0xB2, 0xBC, 0x44, 0xF0, 0xA3,
- 0xB4, 0x9E, 0x44, 0xF0, 0xA3, 0xBB, 0x91, 0x44,
- 0xF0, 0xA3, 0xBD, 0x9E, 0x44, 0xF0, 0xA3, 0xBE,
- 0x8E, 0x44, 0xF0, 0xA4, 0x89, 0xA3, 0x44, 0xF0,
- 0xA4, 0x8B, 0xAE, 0x44, 0xF0, 0xA4, 0x8E, 0xAB,
- 0x44, 0xF0, 0xA4, 0x98, 0x88, 0x44, 0xF0, 0xA4,
- 0x9C, 0xB5, 0x44, 0xF0, 0xA4, 0xA0, 0x94, 0x44,
- 0xF0, 0xA4, 0xB0, 0xB6, 0x44, 0xF0, 0xA4, 0xB2,
- // Bytes 1740 - 177f
- 0x92, 0x44, 0xF0, 0xA4, 0xBE, 0xA1, 0x44, 0xF0,
- 0xA4, 0xBE, 0xB8, 0x44, 0xF0, 0xA5, 0x81, 0x84,
- 0x44, 0xF0, 0xA5, 0x83, 0xB2, 0x44, 0xF0, 0xA5,
- 0x83, 0xB3, 0x44, 0xF0, 0xA5, 0x84, 0x99, 0x44,
- 0xF0, 0xA5, 0x84, 0xB3, 0x44, 0xF0, 0xA5, 0x89,
- 0x89, 0x44, 0xF0, 0xA5, 0x90, 0x9D, 0x44, 0xF0,
- 0xA5, 0x98, 0xA6, 0x44, 0xF0, 0xA5, 0x9A, 0x9A,
- 0x44, 0xF0, 0xA5, 0x9B, 0x85, 0x44, 0xF0, 0xA5,
- // Bytes 1780 - 17bf
- 0xA5, 0xBC, 0x44, 0xF0, 0xA5, 0xAA, 0xA7, 0x44,
- 0xF0, 0xA5, 0xAE, 0xAB, 0x44, 0xF0, 0xA5, 0xB2,
- 0x80, 0x44, 0xF0, 0xA5, 0xB3, 0x90, 0x44, 0xF0,
- 0xA5, 0xBE, 0x86, 0x44, 0xF0, 0xA6, 0x87, 0x9A,
- 0x44, 0xF0, 0xA6, 0x88, 0xA8, 0x44, 0xF0, 0xA6,
- 0x89, 0x87, 0x44, 0xF0, 0xA6, 0x8B, 0x99, 0x44,
- 0xF0, 0xA6, 0x8C, 0xBE, 0x44, 0xF0, 0xA6, 0x93,
- 0x9A, 0x44, 0xF0, 0xA6, 0x94, 0xA3, 0x44, 0xF0,
- // Bytes 17c0 - 17ff
- 0xA6, 0x96, 0xA8, 0x44, 0xF0, 0xA6, 0x9E, 0xA7,
- 0x44, 0xF0, 0xA6, 0x9E, 0xB5, 0x44, 0xF0, 0xA6,
- 0xAC, 0xBC, 0x44, 0xF0, 0xA6, 0xB0, 0xB6, 0x44,
- 0xF0, 0xA6, 0xB3, 0x95, 0x44, 0xF0, 0xA6, 0xB5,
- 0xAB, 0x44, 0xF0, 0xA6, 0xBC, 0xAC, 0x44, 0xF0,
- 0xA6, 0xBE, 0xB1, 0x44, 0xF0, 0xA7, 0x83, 0x92,
- 0x44, 0xF0, 0xA7, 0x8F, 0x8A, 0x44, 0xF0, 0xA7,
- 0x99, 0xA7, 0x44, 0xF0, 0xA7, 0xA2, 0xAE, 0x44,
- // Bytes 1800 - 183f
- 0xF0, 0xA7, 0xA5, 0xA6, 0x44, 0xF0, 0xA7, 0xB2,
- 0xA8, 0x44, 0xF0, 0xA7, 0xBB, 0x93, 0x44, 0xF0,
- 0xA7, 0xBC, 0xAF, 0x44, 0xF0, 0xA8, 0x97, 0x92,
- 0x44, 0xF0, 0xA8, 0x97, 0xAD, 0x44, 0xF0, 0xA8,
- 0x9C, 0xAE, 0x44, 0xF0, 0xA8, 0xAF, 0xBA, 0x44,
- 0xF0, 0xA8, 0xB5, 0xB7, 0x44, 0xF0, 0xA9, 0x85,
- 0x85, 0x44, 0xF0, 0xA9, 0x87, 0x9F, 0x44, 0xF0,
- 0xA9, 0x88, 0x9A, 0x44, 0xF0, 0xA9, 0x90, 0x8A,
- // Bytes 1840 - 187f
- 0x44, 0xF0, 0xA9, 0x92, 0x96, 0x44, 0xF0, 0xA9,
- 0x96, 0xB6, 0x44, 0xF0, 0xA9, 0xAC, 0xB0, 0x44,
- 0xF0, 0xAA, 0x83, 0x8E, 0x44, 0xF0, 0xAA, 0x84,
- 0x85, 0x44, 0xF0, 0xAA, 0x88, 0x8E, 0x44, 0xF0,
- 0xAA, 0x8A, 0x91, 0x44, 0xF0, 0xAA, 0x8E, 0x92,
- 0x44, 0xF0, 0xAA, 0x98, 0x80, 0x42, 0x21, 0x21,
- 0x42, 0x21, 0x3F, 0x42, 0x2E, 0x2E, 0x42, 0x30,
- 0x2C, 0x42, 0x30, 0x2E, 0x42, 0x31, 0x2C, 0x42,
- // Bytes 1880 - 18bf
- 0x31, 0x2E, 0x42, 0x31, 0x30, 0x42, 0x31, 0x31,
- 0x42, 0x31, 0x32, 0x42, 0x31, 0x33, 0x42, 0x31,
- 0x34, 0x42, 0x31, 0x35, 0x42, 0x31, 0x36, 0x42,
- 0x31, 0x37, 0x42, 0x31, 0x38, 0x42, 0x31, 0x39,
- 0x42, 0x32, 0x2C, 0x42, 0x32, 0x2E, 0x42, 0x32,
- 0x30, 0x42, 0x32, 0x31, 0x42, 0x32, 0x32, 0x42,
- 0x32, 0x33, 0x42, 0x32, 0x34, 0x42, 0x32, 0x35,
- 0x42, 0x32, 0x36, 0x42, 0x32, 0x37, 0x42, 0x32,
- // Bytes 18c0 - 18ff
- 0x38, 0x42, 0x32, 0x39, 0x42, 0x33, 0x2C, 0x42,
- 0x33, 0x2E, 0x42, 0x33, 0x30, 0x42, 0x33, 0x31,
- 0x42, 0x33, 0x32, 0x42, 0x33, 0x33, 0x42, 0x33,
- 0x34, 0x42, 0x33, 0x35, 0x42, 0x33, 0x36, 0x42,
- 0x33, 0x37, 0x42, 0x33, 0x38, 0x42, 0x33, 0x39,
- 0x42, 0x34, 0x2C, 0x42, 0x34, 0x2E, 0x42, 0x34,
- 0x30, 0x42, 0x34, 0x31, 0x42, 0x34, 0x32, 0x42,
- 0x34, 0x33, 0x42, 0x34, 0x34, 0x42, 0x34, 0x35,
- // Bytes 1900 - 193f
- 0x42, 0x34, 0x36, 0x42, 0x34, 0x37, 0x42, 0x34,
- 0x38, 0x42, 0x34, 0x39, 0x42, 0x35, 0x2C, 0x42,
- 0x35, 0x2E, 0x42, 0x35, 0x30, 0x42, 0x36, 0x2C,
- 0x42, 0x36, 0x2E, 0x42, 0x37, 0x2C, 0x42, 0x37,
- 0x2E, 0x42, 0x38, 0x2C, 0x42, 0x38, 0x2E, 0x42,
- 0x39, 0x2C, 0x42, 0x39, 0x2E, 0x42, 0x3D, 0x3D,
- 0x42, 0x3F, 0x21, 0x42, 0x3F, 0x3F, 0x42, 0x41,
- 0x55, 0x42, 0x42, 0x71, 0x42, 0x43, 0x44, 0x42,
- // Bytes 1940 - 197f
- 0x44, 0x4A, 0x42, 0x44, 0x5A, 0x42, 0x44, 0x7A,
- 0x42, 0x47, 0x42, 0x42, 0x47, 0x79, 0x42, 0x48,
- 0x50, 0x42, 0x48, 0x56, 0x42, 0x48, 0x67, 0x42,
- 0x48, 0x7A, 0x42, 0x49, 0x49, 0x42, 0x49, 0x4A,
- 0x42, 0x49, 0x55, 0x42, 0x49, 0x56, 0x42, 0x49,
- 0x58, 0x42, 0x4B, 0x42, 0x42, 0x4B, 0x4B, 0x42,
- 0x4B, 0x4D, 0x42, 0x4C, 0x4A, 0x42, 0x4C, 0x6A,
- 0x42, 0x4D, 0x42, 0x42, 0x4D, 0x43, 0x42, 0x4D,
- // Bytes 1980 - 19bf
- 0x44, 0x42, 0x4D, 0x52, 0x42, 0x4D, 0x56, 0x42,
- 0x4D, 0x57, 0x42, 0x4E, 0x4A, 0x42, 0x4E, 0x6A,
- 0x42, 0x4E, 0x6F, 0x42, 0x50, 0x48, 0x42, 0x50,
- 0x52, 0x42, 0x50, 0x61, 0x42, 0x52, 0x73, 0x42,
- 0x53, 0x44, 0x42, 0x53, 0x4D, 0x42, 0x53, 0x53,
- 0x42, 0x53, 0x76, 0x42, 0x54, 0x4D, 0x42, 0x56,
- 0x49, 0x42, 0x57, 0x43, 0x42, 0x57, 0x5A, 0x42,
- 0x57, 0x62, 0x42, 0x58, 0x49, 0x42, 0x63, 0x63,
- // Bytes 19c0 - 19ff
- 0x42, 0x63, 0x64, 0x42, 0x63, 0x6D, 0x42, 0x64,
- 0x42, 0x42, 0x64, 0x61, 0x42, 0x64, 0x6C, 0x42,
- 0x64, 0x6D, 0x42, 0x64, 0x7A, 0x42, 0x65, 0x56,
- 0x42, 0x66, 0x66, 0x42, 0x66, 0x69, 0x42, 0x66,
- 0x6C, 0x42, 0x66, 0x6D, 0x42, 0x68, 0x61, 0x42,
- 0x69, 0x69, 0x42, 0x69, 0x6A, 0x42, 0x69, 0x6E,
- 0x42, 0x69, 0x76, 0x42, 0x69, 0x78, 0x42, 0x6B,
- 0x41, 0x42, 0x6B, 0x56, 0x42, 0x6B, 0x57, 0x42,
- // Bytes 1a00 - 1a3f
- 0x6B, 0x67, 0x42, 0x6B, 0x6C, 0x42, 0x6B, 0x6D,
- 0x42, 0x6B, 0x74, 0x42, 0x6C, 0x6A, 0x42, 0x6C,
- 0x6D, 0x42, 0x6C, 0x6E, 0x42, 0x6C, 0x78, 0x42,
- 0x6D, 0x32, 0x42, 0x6D, 0x33, 0x42, 0x6D, 0x41,
- 0x42, 0x6D, 0x56, 0x42, 0x6D, 0x57, 0x42, 0x6D,
- 0x62, 0x42, 0x6D, 0x67, 0x42, 0x6D, 0x6C, 0x42,
- 0x6D, 0x6D, 0x42, 0x6D, 0x73, 0x42, 0x6E, 0x41,
- 0x42, 0x6E, 0x46, 0x42, 0x6E, 0x56, 0x42, 0x6E,
- // Bytes 1a40 - 1a7f
- 0x57, 0x42, 0x6E, 0x6A, 0x42, 0x6E, 0x6D, 0x42,
- 0x6E, 0x73, 0x42, 0x6F, 0x56, 0x42, 0x70, 0x41,
- 0x42, 0x70, 0x46, 0x42, 0x70, 0x56, 0x42, 0x70,
- 0x57, 0x42, 0x70, 0x63, 0x42, 0x70, 0x73, 0x42,
- 0x73, 0x72, 0x42, 0x73, 0x74, 0x42, 0x76, 0x69,
- 0x42, 0x78, 0x69, 0x43, 0x28, 0x31, 0x29, 0x43,
- 0x28, 0x32, 0x29, 0x43, 0x28, 0x33, 0x29, 0x43,
- 0x28, 0x34, 0x29, 0x43, 0x28, 0x35, 0x29, 0x43,
- // Bytes 1a80 - 1abf
- 0x28, 0x36, 0x29, 0x43, 0x28, 0x37, 0x29, 0x43,
- 0x28, 0x38, 0x29, 0x43, 0x28, 0x39, 0x29, 0x43,
- 0x28, 0x41, 0x29, 0x43, 0x28, 0x42, 0x29, 0x43,
- 0x28, 0x43, 0x29, 0x43, 0x28, 0x44, 0x29, 0x43,
- 0x28, 0x45, 0x29, 0x43, 0x28, 0x46, 0x29, 0x43,
- 0x28, 0x47, 0x29, 0x43, 0x28, 0x48, 0x29, 0x43,
- 0x28, 0x49, 0x29, 0x43, 0x28, 0x4A, 0x29, 0x43,
- 0x28, 0x4B, 0x29, 0x43, 0x28, 0x4C, 0x29, 0x43,
- // Bytes 1ac0 - 1aff
- 0x28, 0x4D, 0x29, 0x43, 0x28, 0x4E, 0x29, 0x43,
- 0x28, 0x4F, 0x29, 0x43, 0x28, 0x50, 0x29, 0x43,
- 0x28, 0x51, 0x29, 0x43, 0x28, 0x52, 0x29, 0x43,
- 0x28, 0x53, 0x29, 0x43, 0x28, 0x54, 0x29, 0x43,
- 0x28, 0x55, 0x29, 0x43, 0x28, 0x56, 0x29, 0x43,
- 0x28, 0x57, 0x29, 0x43, 0x28, 0x58, 0x29, 0x43,
- 0x28, 0x59, 0x29, 0x43, 0x28, 0x5A, 0x29, 0x43,
- 0x28, 0x61, 0x29, 0x43, 0x28, 0x62, 0x29, 0x43,
- // Bytes 1b00 - 1b3f
- 0x28, 0x63, 0x29, 0x43, 0x28, 0x64, 0x29, 0x43,
- 0x28, 0x65, 0x29, 0x43, 0x28, 0x66, 0x29, 0x43,
- 0x28, 0x67, 0x29, 0x43, 0x28, 0x68, 0x29, 0x43,
- 0x28, 0x69, 0x29, 0x43, 0x28, 0x6A, 0x29, 0x43,
- 0x28, 0x6B, 0x29, 0x43, 0x28, 0x6C, 0x29, 0x43,
- 0x28, 0x6D, 0x29, 0x43, 0x28, 0x6E, 0x29, 0x43,
- 0x28, 0x6F, 0x29, 0x43, 0x28, 0x70, 0x29, 0x43,
- 0x28, 0x71, 0x29, 0x43, 0x28, 0x72, 0x29, 0x43,
- // Bytes 1b40 - 1b7f
- 0x28, 0x73, 0x29, 0x43, 0x28, 0x74, 0x29, 0x43,
- 0x28, 0x75, 0x29, 0x43, 0x28, 0x76, 0x29, 0x43,
- 0x28, 0x77, 0x29, 0x43, 0x28, 0x78, 0x29, 0x43,
- 0x28, 0x79, 0x29, 0x43, 0x28, 0x7A, 0x29, 0x43,
- 0x2E, 0x2E, 0x2E, 0x43, 0x31, 0x30, 0x2E, 0x43,
- 0x31, 0x31, 0x2E, 0x43, 0x31, 0x32, 0x2E, 0x43,
- 0x31, 0x33, 0x2E, 0x43, 0x31, 0x34, 0x2E, 0x43,
- 0x31, 0x35, 0x2E, 0x43, 0x31, 0x36, 0x2E, 0x43,
- // Bytes 1b80 - 1bbf
- 0x31, 0x37, 0x2E, 0x43, 0x31, 0x38, 0x2E, 0x43,
- 0x31, 0x39, 0x2E, 0x43, 0x32, 0x30, 0x2E, 0x43,
- 0x3A, 0x3A, 0x3D, 0x43, 0x3D, 0x3D, 0x3D, 0x43,
- 0x43, 0x6F, 0x2E, 0x43, 0x46, 0x41, 0x58, 0x43,
- 0x47, 0x48, 0x7A, 0x43, 0x47, 0x50, 0x61, 0x43,
- 0x49, 0x49, 0x49, 0x43, 0x4C, 0x54, 0x44, 0x43,
- 0x4C, 0xC2, 0xB7, 0x43, 0x4D, 0x48, 0x7A, 0x43,
- 0x4D, 0x50, 0x61, 0x43, 0x4D, 0xCE, 0xA9, 0x43,
- // Bytes 1bc0 - 1bff
- 0x50, 0x50, 0x4D, 0x43, 0x50, 0x50, 0x56, 0x43,
- 0x50, 0x54, 0x45, 0x43, 0x54, 0x45, 0x4C, 0x43,
- 0x54, 0x48, 0x7A, 0x43, 0x56, 0x49, 0x49, 0x43,
- 0x58, 0x49, 0x49, 0x43, 0x61, 0x2F, 0x63, 0x43,
- 0x61, 0x2F, 0x73, 0x43, 0x61, 0xCA, 0xBE, 0x43,
- 0x62, 0x61, 0x72, 0x43, 0x63, 0x2F, 0x6F, 0x43,
- 0x63, 0x2F, 0x75, 0x43, 0x63, 0x61, 0x6C, 0x43,
- 0x63, 0x6D, 0x32, 0x43, 0x63, 0x6D, 0x33, 0x43,
- // Bytes 1c00 - 1c3f
- 0x64, 0x6D, 0x32, 0x43, 0x64, 0x6D, 0x33, 0x43,
- 0x65, 0x72, 0x67, 0x43, 0x66, 0x66, 0x69, 0x43,
- 0x66, 0x66, 0x6C, 0x43, 0x67, 0x61, 0x6C, 0x43,
- 0x68, 0x50, 0x61, 0x43, 0x69, 0x69, 0x69, 0x43,
- 0x6B, 0x48, 0x7A, 0x43, 0x6B, 0x50, 0x61, 0x43,
- 0x6B, 0x6D, 0x32, 0x43, 0x6B, 0x6D, 0x33, 0x43,
- 0x6B, 0xCE, 0xA9, 0x43, 0x6C, 0x6F, 0x67, 0x43,
- 0x6C, 0xC2, 0xB7, 0x43, 0x6D, 0x69, 0x6C, 0x43,
- // Bytes 1c40 - 1c7f
- 0x6D, 0x6D, 0x32, 0x43, 0x6D, 0x6D, 0x33, 0x43,
- 0x6D, 0x6F, 0x6C, 0x43, 0x72, 0x61, 0x64, 0x43,
- 0x76, 0x69, 0x69, 0x43, 0x78, 0x69, 0x69, 0x43,
- 0xC2, 0xB0, 0x43, 0x43, 0xC2, 0xB0, 0x46, 0x43,
- 0xCA, 0xBC, 0x6E, 0x43, 0xCE, 0xBC, 0x41, 0x43,
- 0xCE, 0xBC, 0x46, 0x43, 0xCE, 0xBC, 0x56, 0x43,
- 0xCE, 0xBC, 0x57, 0x43, 0xCE, 0xBC, 0x67, 0x43,
- 0xCE, 0xBC, 0x6C, 0x43, 0xCE, 0xBC, 0x6D, 0x43,
- // Bytes 1c80 - 1cbf
- 0xCE, 0xBC, 0x73, 0x44, 0x28, 0x31, 0x30, 0x29,
- 0x44, 0x28, 0x31, 0x31, 0x29, 0x44, 0x28, 0x31,
- 0x32, 0x29, 0x44, 0x28, 0x31, 0x33, 0x29, 0x44,
- 0x28, 0x31, 0x34, 0x29, 0x44, 0x28, 0x31, 0x35,
- 0x29, 0x44, 0x28, 0x31, 0x36, 0x29, 0x44, 0x28,
- 0x31, 0x37, 0x29, 0x44, 0x28, 0x31, 0x38, 0x29,
- 0x44, 0x28, 0x31, 0x39, 0x29, 0x44, 0x28, 0x32,
- 0x30, 0x29, 0x44, 0x30, 0xE7, 0x82, 0xB9, 0x44,
- // Bytes 1cc0 - 1cff
- 0x31, 0xE2, 0x81, 0x84, 0x44, 0x31, 0xE6, 0x97,
- 0xA5, 0x44, 0x31, 0xE6, 0x9C, 0x88, 0x44, 0x31,
- 0xE7, 0x82, 0xB9, 0x44, 0x32, 0xE6, 0x97, 0xA5,
- 0x44, 0x32, 0xE6, 0x9C, 0x88, 0x44, 0x32, 0xE7,
- 0x82, 0xB9, 0x44, 0x33, 0xE6, 0x97, 0xA5, 0x44,
- 0x33, 0xE6, 0x9C, 0x88, 0x44, 0x33, 0xE7, 0x82,
- 0xB9, 0x44, 0x34, 0xE6, 0x97, 0xA5, 0x44, 0x34,
- 0xE6, 0x9C, 0x88, 0x44, 0x34, 0xE7, 0x82, 0xB9,
- // Bytes 1d00 - 1d3f
- 0x44, 0x35, 0xE6, 0x97, 0xA5, 0x44, 0x35, 0xE6,
- 0x9C, 0x88, 0x44, 0x35, 0xE7, 0x82, 0xB9, 0x44,
- 0x36, 0xE6, 0x97, 0xA5, 0x44, 0x36, 0xE6, 0x9C,
- 0x88, 0x44, 0x36, 0xE7, 0x82, 0xB9, 0x44, 0x37,
- 0xE6, 0x97, 0xA5, 0x44, 0x37, 0xE6, 0x9C, 0x88,
- 0x44, 0x37, 0xE7, 0x82, 0xB9, 0x44, 0x38, 0xE6,
- 0x97, 0xA5, 0x44, 0x38, 0xE6, 0x9C, 0x88, 0x44,
- 0x38, 0xE7, 0x82, 0xB9, 0x44, 0x39, 0xE6, 0x97,
- // Bytes 1d40 - 1d7f
- 0xA5, 0x44, 0x39, 0xE6, 0x9C, 0x88, 0x44, 0x39,
- 0xE7, 0x82, 0xB9, 0x44, 0x56, 0x49, 0x49, 0x49,
- 0x44, 0x61, 0x2E, 0x6D, 0x2E, 0x44, 0x6B, 0x63,
- 0x61, 0x6C, 0x44, 0x70, 0x2E, 0x6D, 0x2E, 0x44,
- 0x76, 0x69, 0x69, 0x69, 0x44, 0xD5, 0xA5, 0xD6,
- 0x82, 0x44, 0xD5, 0xB4, 0xD5, 0xA5, 0x44, 0xD5,
- 0xB4, 0xD5, 0xAB, 0x44, 0xD5, 0xB4, 0xD5, 0xAD,
- 0x44, 0xD5, 0xB4, 0xD5, 0xB6, 0x44, 0xD5, 0xBE,
- // Bytes 1d80 - 1dbf
- 0xD5, 0xB6, 0x44, 0xD7, 0x90, 0xD7, 0x9C, 0x44,
- 0xD8, 0xA7, 0xD9, 0xB4, 0x44, 0xD8, 0xA8, 0xD8,
- 0xAC, 0x44, 0xD8, 0xA8, 0xD8, 0xAD, 0x44, 0xD8,
- 0xA8, 0xD8, 0xAE, 0x44, 0xD8, 0xA8, 0xD8, 0xB1,
- 0x44, 0xD8, 0xA8, 0xD8, 0xB2, 0x44, 0xD8, 0xA8,
- 0xD9, 0x85, 0x44, 0xD8, 0xA8, 0xD9, 0x86, 0x44,
- 0xD8, 0xA8, 0xD9, 0x87, 0x44, 0xD8, 0xA8, 0xD9,
- 0x89, 0x44, 0xD8, 0xA8, 0xD9, 0x8A, 0x44, 0xD8,
- // Bytes 1dc0 - 1dff
- 0xAA, 0xD8, 0xAC, 0x44, 0xD8, 0xAA, 0xD8, 0xAD,
- 0x44, 0xD8, 0xAA, 0xD8, 0xAE, 0x44, 0xD8, 0xAA,
- 0xD8, 0xB1, 0x44, 0xD8, 0xAA, 0xD8, 0xB2, 0x44,
- 0xD8, 0xAA, 0xD9, 0x85, 0x44, 0xD8, 0xAA, 0xD9,
- 0x86, 0x44, 0xD8, 0xAA, 0xD9, 0x87, 0x44, 0xD8,
- 0xAA, 0xD9, 0x89, 0x44, 0xD8, 0xAA, 0xD9, 0x8A,
- 0x44, 0xD8, 0xAB, 0xD8, 0xAC, 0x44, 0xD8, 0xAB,
- 0xD8, 0xB1, 0x44, 0xD8, 0xAB, 0xD8, 0xB2, 0x44,
- // Bytes 1e00 - 1e3f
- 0xD8, 0xAB, 0xD9, 0x85, 0x44, 0xD8, 0xAB, 0xD9,
- 0x86, 0x44, 0xD8, 0xAB, 0xD9, 0x87, 0x44, 0xD8,
- 0xAB, 0xD9, 0x89, 0x44, 0xD8, 0xAB, 0xD9, 0x8A,
- 0x44, 0xD8, 0xAC, 0xD8, 0xAD, 0x44, 0xD8, 0xAC,
- 0xD9, 0x85, 0x44, 0xD8, 0xAC, 0xD9, 0x89, 0x44,
- 0xD8, 0xAC, 0xD9, 0x8A, 0x44, 0xD8, 0xAD, 0xD8,
- 0xAC, 0x44, 0xD8, 0xAD, 0xD9, 0x85, 0x44, 0xD8,
- 0xAD, 0xD9, 0x89, 0x44, 0xD8, 0xAD, 0xD9, 0x8A,
- // Bytes 1e40 - 1e7f
- 0x44, 0xD8, 0xAE, 0xD8, 0xAC, 0x44, 0xD8, 0xAE,
- 0xD8, 0xAD, 0x44, 0xD8, 0xAE, 0xD9, 0x85, 0x44,
- 0xD8, 0xAE, 0xD9, 0x89, 0x44, 0xD8, 0xAE, 0xD9,
- 0x8A, 0x44, 0xD8, 0xB3, 0xD8, 0xAC, 0x44, 0xD8,
- 0xB3, 0xD8, 0xAD, 0x44, 0xD8, 0xB3, 0xD8, 0xAE,
- 0x44, 0xD8, 0xB3, 0xD8, 0xB1, 0x44, 0xD8, 0xB3,
- 0xD9, 0x85, 0x44, 0xD8, 0xB3, 0xD9, 0x87, 0x44,
- 0xD8, 0xB3, 0xD9, 0x89, 0x44, 0xD8, 0xB3, 0xD9,
- // Bytes 1e80 - 1ebf
- 0x8A, 0x44, 0xD8, 0xB4, 0xD8, 0xAC, 0x44, 0xD8,
- 0xB4, 0xD8, 0xAD, 0x44, 0xD8, 0xB4, 0xD8, 0xAE,
- 0x44, 0xD8, 0xB4, 0xD8, 0xB1, 0x44, 0xD8, 0xB4,
- 0xD9, 0x85, 0x44, 0xD8, 0xB4, 0xD9, 0x87, 0x44,
- 0xD8, 0xB4, 0xD9, 0x89, 0x44, 0xD8, 0xB4, 0xD9,
- 0x8A, 0x44, 0xD8, 0xB5, 0xD8, 0xAD, 0x44, 0xD8,
- 0xB5, 0xD8, 0xAE, 0x44, 0xD8, 0xB5, 0xD8, 0xB1,
- 0x44, 0xD8, 0xB5, 0xD9, 0x85, 0x44, 0xD8, 0xB5,
- // Bytes 1ec0 - 1eff
- 0xD9, 0x89, 0x44, 0xD8, 0xB5, 0xD9, 0x8A, 0x44,
- 0xD8, 0xB6, 0xD8, 0xAC, 0x44, 0xD8, 0xB6, 0xD8,
- 0xAD, 0x44, 0xD8, 0xB6, 0xD8, 0xAE, 0x44, 0xD8,
- 0xB6, 0xD8, 0xB1, 0x44, 0xD8, 0xB6, 0xD9, 0x85,
- 0x44, 0xD8, 0xB6, 0xD9, 0x89, 0x44, 0xD8, 0xB6,
- 0xD9, 0x8A, 0x44, 0xD8, 0xB7, 0xD8, 0xAD, 0x44,
- 0xD8, 0xB7, 0xD9, 0x85, 0x44, 0xD8, 0xB7, 0xD9,
- 0x89, 0x44, 0xD8, 0xB7, 0xD9, 0x8A, 0x44, 0xD8,
- // Bytes 1f00 - 1f3f
- 0xB8, 0xD9, 0x85, 0x44, 0xD8, 0xB9, 0xD8, 0xAC,
- 0x44, 0xD8, 0xB9, 0xD9, 0x85, 0x44, 0xD8, 0xB9,
- 0xD9, 0x89, 0x44, 0xD8, 0xB9, 0xD9, 0x8A, 0x44,
- 0xD8, 0xBA, 0xD8, 0xAC, 0x44, 0xD8, 0xBA, 0xD9,
- 0x85, 0x44, 0xD8, 0xBA, 0xD9, 0x89, 0x44, 0xD8,
- 0xBA, 0xD9, 0x8A, 0x44, 0xD9, 0x81, 0xD8, 0xAC,
- 0x44, 0xD9, 0x81, 0xD8, 0xAD, 0x44, 0xD9, 0x81,
- 0xD8, 0xAE, 0x44, 0xD9, 0x81, 0xD9, 0x85, 0x44,
- // Bytes 1f40 - 1f7f
- 0xD9, 0x81, 0xD9, 0x89, 0x44, 0xD9, 0x81, 0xD9,
- 0x8A, 0x44, 0xD9, 0x82, 0xD8, 0xAD, 0x44, 0xD9,
- 0x82, 0xD9, 0x85, 0x44, 0xD9, 0x82, 0xD9, 0x89,
- 0x44, 0xD9, 0x82, 0xD9, 0x8A, 0x44, 0xD9, 0x83,
- 0xD8, 0xA7, 0x44, 0xD9, 0x83, 0xD8, 0xAC, 0x44,
- 0xD9, 0x83, 0xD8, 0xAD, 0x44, 0xD9, 0x83, 0xD8,
- 0xAE, 0x44, 0xD9, 0x83, 0xD9, 0x84, 0x44, 0xD9,
- 0x83, 0xD9, 0x85, 0x44, 0xD9, 0x83, 0xD9, 0x89,
- // Bytes 1f80 - 1fbf
- 0x44, 0xD9, 0x83, 0xD9, 0x8A, 0x44, 0xD9, 0x84,
- 0xD8, 0xA7, 0x44, 0xD9, 0x84, 0xD8, 0xAC, 0x44,
- 0xD9, 0x84, 0xD8, 0xAD, 0x44, 0xD9, 0x84, 0xD8,
- 0xAE, 0x44, 0xD9, 0x84, 0xD9, 0x85, 0x44, 0xD9,
- 0x84, 0xD9, 0x87, 0x44, 0xD9, 0x84, 0xD9, 0x89,
- 0x44, 0xD9, 0x84, 0xD9, 0x8A, 0x44, 0xD9, 0x85,
- 0xD8, 0xA7, 0x44, 0xD9, 0x85, 0xD8, 0xAC, 0x44,
- 0xD9, 0x85, 0xD8, 0xAD, 0x44, 0xD9, 0x85, 0xD8,
- // Bytes 1fc0 - 1fff
- 0xAE, 0x44, 0xD9, 0x85, 0xD9, 0x85, 0x44, 0xD9,
- 0x85, 0xD9, 0x89, 0x44, 0xD9, 0x85, 0xD9, 0x8A,
- 0x44, 0xD9, 0x86, 0xD8, 0xAC, 0x44, 0xD9, 0x86,
- 0xD8, 0xAD, 0x44, 0xD9, 0x86, 0xD8, 0xAE, 0x44,
- 0xD9, 0x86, 0xD8, 0xB1, 0x44, 0xD9, 0x86, 0xD8,
- 0xB2, 0x44, 0xD9, 0x86, 0xD9, 0x85, 0x44, 0xD9,
- 0x86, 0xD9, 0x86, 0x44, 0xD9, 0x86, 0xD9, 0x87,
- 0x44, 0xD9, 0x86, 0xD9, 0x89, 0x44, 0xD9, 0x86,
- // Bytes 2000 - 203f
- 0xD9, 0x8A, 0x44, 0xD9, 0x87, 0xD8, 0xAC, 0x44,
- 0xD9, 0x87, 0xD9, 0x85, 0x44, 0xD9, 0x87, 0xD9,
- 0x89, 0x44, 0xD9, 0x87, 0xD9, 0x8A, 0x44, 0xD9,
- 0x88, 0xD9, 0xB4, 0x44, 0xD9, 0x8A, 0xD8, 0xAC,
- 0x44, 0xD9, 0x8A, 0xD8, 0xAD, 0x44, 0xD9, 0x8A,
- 0xD8, 0xAE, 0x44, 0xD9, 0x8A, 0xD8, 0xB1, 0x44,
- 0xD9, 0x8A, 0xD8, 0xB2, 0x44, 0xD9, 0x8A, 0xD9,
- 0x85, 0x44, 0xD9, 0x8A, 0xD9, 0x86, 0x44, 0xD9,
- // Bytes 2040 - 207f
- 0x8A, 0xD9, 0x87, 0x44, 0xD9, 0x8A, 0xD9, 0x89,
- 0x44, 0xD9, 0x8A, 0xD9, 0x8A, 0x44, 0xD9, 0x8A,
- 0xD9, 0xB4, 0x44, 0xDB, 0x87, 0xD9, 0xB4, 0x45,
- 0x28, 0xE1, 0x84, 0x80, 0x29, 0x45, 0x28, 0xE1,
- 0x84, 0x82, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x83,
- 0x29, 0x45, 0x28, 0xE1, 0x84, 0x85, 0x29, 0x45,
- 0x28, 0xE1, 0x84, 0x86, 0x29, 0x45, 0x28, 0xE1,
- 0x84, 0x87, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x89,
- // Bytes 2080 - 20bf
- 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8B, 0x29, 0x45,
- 0x28, 0xE1, 0x84, 0x8C, 0x29, 0x45, 0x28, 0xE1,
- 0x84, 0x8E, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8F,
- 0x29, 0x45, 0x28, 0xE1, 0x84, 0x90, 0x29, 0x45,
- 0x28, 0xE1, 0x84, 0x91, 0x29, 0x45, 0x28, 0xE1,
- 0x84, 0x92, 0x29, 0x45, 0x28, 0xE4, 0xB8, 0x80,
- 0x29, 0x45, 0x28, 0xE4, 0xB8, 0x83, 0x29, 0x45,
- 0x28, 0xE4, 0xB8, 0x89, 0x29, 0x45, 0x28, 0xE4,
- // Bytes 20c0 - 20ff
- 0xB9, 0x9D, 0x29, 0x45, 0x28, 0xE4, 0xBA, 0x8C,
- 0x29, 0x45, 0x28, 0xE4, 0xBA, 0x94, 0x29, 0x45,
- 0x28, 0xE4, 0xBB, 0xA3, 0x29, 0x45, 0x28, 0xE4,
- 0xBC, 0x81, 0x29, 0x45, 0x28, 0xE4, 0xBC, 0x91,
- 0x29, 0x45, 0x28, 0xE5, 0x85, 0xAB, 0x29, 0x45,
- 0x28, 0xE5, 0x85, 0xAD, 0x29, 0x45, 0x28, 0xE5,
- 0x8A, 0xB4, 0x29, 0x45, 0x28, 0xE5, 0x8D, 0x81,
- 0x29, 0x45, 0x28, 0xE5, 0x8D, 0x94, 0x29, 0x45,
- // Bytes 2100 - 213f
- 0x28, 0xE5, 0x90, 0x8D, 0x29, 0x45, 0x28, 0xE5,
- 0x91, 0xBC, 0x29, 0x45, 0x28, 0xE5, 0x9B, 0x9B,
- 0x29, 0x45, 0x28, 0xE5, 0x9C, 0x9F, 0x29, 0x45,
- 0x28, 0xE5, 0xAD, 0xA6, 0x29, 0x45, 0x28, 0xE6,
- 0x97, 0xA5, 0x29, 0x45, 0x28, 0xE6, 0x9C, 0x88,
- 0x29, 0x45, 0x28, 0xE6, 0x9C, 0x89, 0x29, 0x45,
- 0x28, 0xE6, 0x9C, 0xA8, 0x29, 0x45, 0x28, 0xE6,
- 0xA0, 0xAA, 0x29, 0x45, 0x28, 0xE6, 0xB0, 0xB4,
- // Bytes 2140 - 217f
- 0x29, 0x45, 0x28, 0xE7, 0x81, 0xAB, 0x29, 0x45,
- 0x28, 0xE7, 0x89, 0xB9, 0x29, 0x45, 0x28, 0xE7,
- 0x9B, 0xA3, 0x29, 0x45, 0x28, 0xE7, 0xA4, 0xBE,
- 0x29, 0x45, 0x28, 0xE7, 0xA5, 0x9D, 0x29, 0x45,
- 0x28, 0xE7, 0xA5, 0xAD, 0x29, 0x45, 0x28, 0xE8,
- 0x87, 0xAA, 0x29, 0x45, 0x28, 0xE8, 0x87, 0xB3,
- 0x29, 0x45, 0x28, 0xE8, 0xB2, 0xA1, 0x29, 0x45,
- 0x28, 0xE8, 0xB3, 0x87, 0x29, 0x45, 0x28, 0xE9,
- // Bytes 2180 - 21bf
- 0x87, 0x91, 0x29, 0x45, 0x30, 0xE2, 0x81, 0x84,
- 0x33, 0x45, 0x31, 0x30, 0xE6, 0x97, 0xA5, 0x45,
- 0x31, 0x30, 0xE6, 0x9C, 0x88, 0x45, 0x31, 0x30,
- 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x31, 0xE6, 0x97,
- 0xA5, 0x45, 0x31, 0x31, 0xE6, 0x9C, 0x88, 0x45,
- 0x31, 0x31, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x32,
- 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x32, 0xE6, 0x9C,
- 0x88, 0x45, 0x31, 0x32, 0xE7, 0x82, 0xB9, 0x45,
- // Bytes 21c0 - 21ff
- 0x31, 0x33, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x33,
- 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x34, 0xE6, 0x97,
- 0xA5, 0x45, 0x31, 0x34, 0xE7, 0x82, 0xB9, 0x45,
- 0x31, 0x35, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x35,
- 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x36, 0xE6, 0x97,
- 0xA5, 0x45, 0x31, 0x36, 0xE7, 0x82, 0xB9, 0x45,
- 0x31, 0x37, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x37,
- 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x38, 0xE6, 0x97,
- // Bytes 2200 - 223f
- 0xA5, 0x45, 0x31, 0x38, 0xE7, 0x82, 0xB9, 0x45,
- 0x31, 0x39, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x39,
- 0xE7, 0x82, 0xB9, 0x45, 0x31, 0xE2, 0x81, 0x84,
- 0x32, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x33, 0x45,
- 0x31, 0xE2, 0x81, 0x84, 0x34, 0x45, 0x31, 0xE2,
- 0x81, 0x84, 0x35, 0x45, 0x31, 0xE2, 0x81, 0x84,
- 0x36, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x37, 0x45,
- 0x31, 0xE2, 0x81, 0x84, 0x38, 0x45, 0x31, 0xE2,
- // Bytes 2240 - 227f
- 0x81, 0x84, 0x39, 0x45, 0x32, 0x30, 0xE6, 0x97,
- 0xA5, 0x45, 0x32, 0x30, 0xE7, 0x82, 0xB9, 0x45,
- 0x32, 0x31, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x31,
- 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x32, 0xE6, 0x97,
- 0xA5, 0x45, 0x32, 0x32, 0xE7, 0x82, 0xB9, 0x45,
- 0x32, 0x33, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x33,
- 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x34, 0xE6, 0x97,
- 0xA5, 0x45, 0x32, 0x34, 0xE7, 0x82, 0xB9, 0x45,
- // Bytes 2280 - 22bf
- 0x32, 0x35, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x36,
- 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x37, 0xE6, 0x97,
- 0xA5, 0x45, 0x32, 0x38, 0xE6, 0x97, 0xA5, 0x45,
- 0x32, 0x39, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0xE2,
- 0x81, 0x84, 0x33, 0x45, 0x32, 0xE2, 0x81, 0x84,
- 0x35, 0x45, 0x33, 0x30, 0xE6, 0x97, 0xA5, 0x45,
- 0x33, 0x31, 0xE6, 0x97, 0xA5, 0x45, 0x33, 0xE2,
- 0x81, 0x84, 0x34, 0x45, 0x33, 0xE2, 0x81, 0x84,
- // Bytes 22c0 - 22ff
- 0x35, 0x45, 0x33, 0xE2, 0x81, 0x84, 0x38, 0x45,
- 0x34, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x35, 0xE2,
- 0x81, 0x84, 0x36, 0x45, 0x35, 0xE2, 0x81, 0x84,
- 0x38, 0x45, 0x37, 0xE2, 0x81, 0x84, 0x38, 0x45,
- 0x41, 0xE2, 0x88, 0x95, 0x6D, 0x45, 0x56, 0xE2,
- 0x88, 0x95, 0x6D, 0x45, 0x6D, 0xE2, 0x88, 0x95,
- 0x73, 0x46, 0x31, 0xE2, 0x81, 0x84, 0x31, 0x30,
- 0x46, 0x43, 0xE2, 0x88, 0x95, 0x6B, 0x67, 0x46,
- // Bytes 2300 - 233f
- 0x6D, 0xE2, 0x88, 0x95, 0x73, 0x32, 0x46, 0xD8,
- 0xA8, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xA8,
- 0xD8, 0xAE, 0xD9, 0x8A, 0x46, 0xD8, 0xAA, 0xD8,
- 0xAC, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAC,
- 0xD9, 0x89, 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9,
- 0x8A, 0x46, 0xD8, 0xAA, 0xD8, 0xAD, 0xD8, 0xAC,
- 0x46, 0xD8, 0xAA, 0xD8, 0xAD, 0xD9, 0x85, 0x46,
- 0xD8, 0xAA, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD8,
- // Bytes 2340 - 237f
- 0xAA, 0xD8, 0xAE, 0xD9, 0x89, 0x46, 0xD8, 0xAA,
- 0xD8, 0xAE, 0xD9, 0x8A, 0x46, 0xD8, 0xAA, 0xD9,
- 0x85, 0xD8, 0xAC, 0x46, 0xD8, 0xAA, 0xD9, 0x85,
- 0xD8, 0xAD, 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8,
- 0xAE, 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD9, 0x89,
- 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD9, 0x8A, 0x46,
- 0xD8, 0xAC, 0xD8, 0xAD, 0xD9, 0x89, 0x46, 0xD8,
- 0xAC, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xAC,
- // Bytes 2380 - 23bf
- 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xAC, 0xD9,
- 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAC, 0xD9, 0x85,
- 0xD9, 0x8A, 0x46, 0xD8, 0xAD, 0xD8, 0xAC, 0xD9,
- 0x8A, 0x46, 0xD8, 0xAD, 0xD9, 0x85, 0xD9, 0x89,
- 0x46, 0xD8, 0xAD, 0xD9, 0x85, 0xD9, 0x8A, 0x46,
- 0xD8, 0xB3, 0xD8, 0xAC, 0xD8, 0xAD, 0x46, 0xD8,
- 0xB3, 0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD8, 0xB3,
- 0xD8, 0xAD, 0xD8, 0xAC, 0x46, 0xD8, 0xB3, 0xD8,
- // Bytes 23c0 - 23ff
- 0xAE, 0xD9, 0x89, 0x46, 0xD8, 0xB3, 0xD8, 0xAE,
- 0xD9, 0x8A, 0x46, 0xD8, 0xB3, 0xD9, 0x85, 0xD8,
- 0xAC, 0x46, 0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xAD,
- 0x46, 0xD8, 0xB3, 0xD9, 0x85, 0xD9, 0x85, 0x46,
- 0xD8, 0xB4, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8,
- 0xB4, 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD8, 0xB4,
- 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB4, 0xD9,
- 0x85, 0xD8, 0xAE, 0x46, 0xD8, 0xB4, 0xD9, 0x85,
- // Bytes 2400 - 243f
- 0xD9, 0x85, 0x46, 0xD8, 0xB5, 0xD8, 0xAD, 0xD8,
- 0xAD, 0x46, 0xD8, 0xB5, 0xD8, 0xAD, 0xD9, 0x8A,
- 0x46, 0xD8, 0xB5, 0xD9, 0x84, 0xD9, 0x89, 0x46,
- 0xD8, 0xB5, 0xD9, 0x84, 0xDB, 0x92, 0x46, 0xD8,
- 0xB5, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB6,
- 0xD8, 0xAD, 0xD9, 0x89, 0x46, 0xD8, 0xB6, 0xD8,
- 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB6, 0xD8, 0xAE,
- 0xD9, 0x85, 0x46, 0xD8, 0xB7, 0xD9, 0x85, 0xD8,
- // Bytes 2440 - 247f
- 0xAD, 0x46, 0xD8, 0xB7, 0xD9, 0x85, 0xD9, 0x85,
- 0x46, 0xD8, 0xB7, 0xD9, 0x85, 0xD9, 0x8A, 0x46,
- 0xD8, 0xB9, 0xD8, 0xAC, 0xD9, 0x85, 0x46, 0xD8,
- 0xB9, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB9,
- 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xB9, 0xD9,
- 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xBA, 0xD9, 0x85,
- 0xD9, 0x85, 0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9,
- 0x89, 0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x8A,
- // Bytes 2480 - 24bf
- 0x46, 0xD9, 0x81, 0xD8, 0xAE, 0xD9, 0x85, 0x46,
- 0xD9, 0x81, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9,
- 0x82, 0xD9, 0x84, 0xDB, 0x92, 0x46, 0xD9, 0x82,
- 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD9, 0x82, 0xD9,
- 0x85, 0xD9, 0x85, 0x46, 0xD9, 0x82, 0xD9, 0x85,
- 0xD9, 0x8A, 0x46, 0xD9, 0x83, 0xD9, 0x85, 0xD9,
- 0x85, 0x46, 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x8A,
- 0x46, 0xD9, 0x84, 0xD8, 0xAC, 0xD8, 0xAC, 0x46,
- // Bytes 24c0 - 24ff
- 0xD9, 0x84, 0xD8, 0xAC, 0xD9, 0x85, 0x46, 0xD9,
- 0x84, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x84,
- 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, 0x84, 0xD8,
- 0xAD, 0xD9, 0x89, 0x46, 0xD9, 0x84, 0xD8, 0xAD,
- 0xD9, 0x8A, 0x46, 0xD9, 0x84, 0xD8, 0xAE, 0xD9,
- 0x85, 0x46, 0xD9, 0x84, 0xD9, 0x85, 0xD8, 0xAD,
- 0x46, 0xD9, 0x84, 0xD9, 0x85, 0xD9, 0x8A, 0x46,
- 0xD9, 0x85, 0xD8, 0xAC, 0xD8, 0xAD, 0x46, 0xD9,
- // Bytes 2500 - 253f
- 0x85, 0xD8, 0xAC, 0xD8, 0xAE, 0x46, 0xD9, 0x85,
- 0xD8, 0xAC, 0xD9, 0x85, 0x46, 0xD9, 0x85, 0xD8,
- 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8, 0xAD,
- 0xD8, 0xAC, 0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD9,
- 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x8A,
- 0x46, 0xD9, 0x85, 0xD8, 0xAE, 0xD8, 0xAC, 0x46,
- 0xD9, 0x85, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9,
- 0x85, 0xD8, 0xAE, 0xD9, 0x8A, 0x46, 0xD9, 0x85,
- // Bytes 2540 - 257f
- 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x86, 0xD8,
- 0xAC, 0xD8, 0xAD, 0x46, 0xD9, 0x86, 0xD8, 0xAC,
- 0xD9, 0x85, 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9,
- 0x89, 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x8A,
- 0x46, 0xD9, 0x86, 0xD8, 0xAD, 0xD9, 0x85, 0x46,
- 0xD9, 0x86, 0xD8, 0xAD, 0xD9, 0x89, 0x46, 0xD9,
- 0x86, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x86,
- 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD9, 0x86, 0xD9,
- // Bytes 2580 - 25bf
- 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x87, 0xD9, 0x85,
- 0xD8, 0xAC, 0x46, 0xD9, 0x87, 0xD9, 0x85, 0xD9,
- 0x85, 0x46, 0xD9, 0x8A, 0xD8, 0xAC, 0xD9, 0x8A,
- 0x46, 0xD9, 0x8A, 0xD8, 0xAD, 0xD9, 0x8A, 0x46,
- 0xD9, 0x8A, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9,
- 0x8A, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x8A,
- 0xD9, 0x94, 0xD8, 0xA7, 0x46, 0xD9, 0x8A, 0xD9,
- 0x94, 0xD8, 0xAC, 0x46, 0xD9, 0x8A, 0xD9, 0x94,
- // Bytes 25c0 - 25ff
- 0xD8, 0xAD, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8,
- 0xAE, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xB1,
- 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xB2, 0x46,
- 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x85, 0x46, 0xD9,
- 0x8A, 0xD9, 0x94, 0xD9, 0x86, 0x46, 0xD9, 0x8A,
- 0xD9, 0x94, 0xD9, 0x87, 0x46, 0xD9, 0x8A, 0xD9,
- 0x94, 0xD9, 0x88, 0x46, 0xD9, 0x8A, 0xD9, 0x94,
- 0xD9, 0x89, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9,
- // Bytes 2600 - 263f
- 0x8A, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x86,
- 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x87, 0x46,
- 0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x88, 0x46, 0xD9,
- 0x8A, 0xD9, 0x94, 0xDB, 0x90, 0x46, 0xD9, 0x8A,
- 0xD9, 0x94, 0xDB, 0x95, 0x46, 0xE0, 0xB9, 0x8D,
- 0xE0, 0xB8, 0xB2, 0x46, 0xE0, 0xBA, 0xAB, 0xE0,
- 0xBA, 0x99, 0x46, 0xE0, 0xBA, 0xAB, 0xE0, 0xBA,
- 0xA1, 0x46, 0xE0, 0xBB, 0x8D, 0xE0, 0xBA, 0xB2,
- // Bytes 2640 - 267f
- 0x46, 0xE0, 0xBD, 0x80, 0xE0, 0xBE, 0xB5, 0x46,
- 0xE0, 0xBD, 0x82, 0xE0, 0xBE, 0xB7, 0x46, 0xE0,
- 0xBD, 0x8C, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD,
- 0x91, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x96,
- 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x9B, 0xE0,
- 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0x90, 0xE0, 0xBE,
- 0xB5, 0x46, 0xE0, 0xBE, 0x92, 0xE0, 0xBE, 0xB7,
- 0x46, 0xE0, 0xBE, 0x9C, 0xE0, 0xBE, 0xB7, 0x46,
- // Bytes 2680 - 26bf
- 0xE0, 0xBE, 0xA1, 0xE0, 0xBE, 0xB7, 0x46, 0xE0,
- 0xBE, 0xA6, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE,
- 0xAB, 0xE0, 0xBE, 0xB7, 0x46, 0xE2, 0x80, 0xB2,
- 0xE2, 0x80, 0xB2, 0x46, 0xE2, 0x80, 0xB5, 0xE2,
- 0x80, 0xB5, 0x46, 0xE2, 0x88, 0xAB, 0xE2, 0x88,
- 0xAB, 0x46, 0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE,
- 0x46, 0xE3, 0x81, 0xBB, 0xE3, 0x81, 0x8B, 0x46,
- 0xE3, 0x82, 0x88, 0xE3, 0x82, 0x8A, 0x46, 0xE3,
- // Bytes 26c0 - 26ff
- 0x82, 0xAD, 0xE3, 0x83, 0xAD, 0x46, 0xE3, 0x82,
- 0xB3, 0xE3, 0x82, 0xB3, 0x46, 0xE3, 0x82, 0xB3,
- 0xE3, 0x83, 0x88, 0x46, 0xE3, 0x83, 0x88, 0xE3,
- 0x83, 0xB3, 0x46, 0xE3, 0x83, 0x8A, 0xE3, 0x83,
- 0x8E, 0x46, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xB3,
- 0x46, 0xE3, 0x83, 0x9F, 0xE3, 0x83, 0xAA, 0x46,
- 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xA9, 0x46, 0xE3,
- 0x83, 0xAC, 0xE3, 0x83, 0xA0, 0x46, 0xE5, 0xA4,
- // Bytes 2700 - 273f
- 0xA7, 0xE6, 0xAD, 0xA3, 0x46, 0xE5, 0xB9, 0xB3,
- 0xE6, 0x88, 0x90, 0x46, 0xE6, 0x98, 0x8E, 0xE6,
- 0xB2, 0xBB, 0x46, 0xE6, 0x98, 0xAD, 0xE5, 0x92,
- 0x8C, 0x47, 0x72, 0x61, 0x64, 0xE2, 0x88, 0x95,
- 0x73, 0x47, 0xE3, 0x80, 0x94, 0x53, 0xE3, 0x80,
- 0x95, 0x48, 0x28, 0xE1, 0x84, 0x80, 0xE1, 0x85,
- 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x82, 0xE1,
- 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x83,
- // Bytes 2740 - 277f
- 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84,
- 0x85, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1,
- 0x84, 0x86, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28,
- 0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1, 0x29, 0x48,
- 0x28, 0xE1, 0x84, 0x89, 0xE1, 0x85, 0xA1, 0x29,
- 0x48, 0x28, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA1,
- 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8C, 0xE1, 0x85,
- 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8C, 0xE1,
- // Bytes 2780 - 27bf
- 0x85, 0xAE, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8E,
- 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84,
- 0x8F, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1,
- 0x84, 0x90, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28,
- 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1, 0x29, 0x48,
- 0x28, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0x29,
- 0x48, 0x72, 0x61, 0x64, 0xE2, 0x88, 0x95, 0x73,
- 0x32, 0x48, 0xD8, 0xA7, 0xD9, 0x83, 0xD8, 0xA8,
- // Bytes 27c0 - 27ff
- 0xD8, 0xB1, 0x48, 0xD8, 0xA7, 0xD9, 0x84, 0xD9,
- 0x84, 0xD9, 0x87, 0x48, 0xD8, 0xB1, 0xD8, 0xB3,
- 0xD9, 0x88, 0xD9, 0x84, 0x48, 0xD8, 0xB1, 0xDB,
- 0x8C, 0xD8, 0xA7, 0xD9, 0x84, 0x48, 0xD8, 0xB5,
- 0xD9, 0x84, 0xD8, 0xB9, 0xD9, 0x85, 0x48, 0xD8,
- 0xB9, 0xD9, 0x84, 0xD9, 0x8A, 0xD9, 0x87, 0x48,
- 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xAF,
- 0x48, 0xD9, 0x88, 0xD8, 0xB3, 0xD9, 0x84, 0xD9,
- // Bytes 2800 - 283f
- 0x85, 0x49, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,
- 0xE2, 0x80, 0xB2, 0x49, 0xE2, 0x80, 0xB5, 0xE2,
- 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x49, 0xE2, 0x88,
- 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x49,
- 0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0xE2, 0x88,
- 0xAE, 0x49, 0xE3, 0x80, 0x94, 0xE4, 0xB8, 0x89,
- 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE4,
- 0xBA, 0x8C, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80,
- // Bytes 2840 - 287f
- 0x94, 0xE5, 0x8B, 0x9D, 0xE3, 0x80, 0x95, 0x49,
- 0xE3, 0x80, 0x94, 0xE5, 0xAE, 0x89, 0xE3, 0x80,
- 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x89, 0x93,
- 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6,
- 0x95, 0x97, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80,
- 0x94, 0xE6, 0x9C, 0xAC, 0xE3, 0x80, 0x95, 0x49,
- 0xE3, 0x80, 0x94, 0xE7, 0x82, 0xB9, 0xE3, 0x80,
- 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE7, 0x9B, 0x97,
- // Bytes 2880 - 28bf
- 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x82, 0xA2, 0xE3,
- 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x82,
- 0xA4, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x81, 0x49,
- 0xE3, 0x82, 0xA6, 0xE3, 0x82, 0xA9, 0xE3, 0x83,
- 0xB3, 0x49, 0xE3, 0x82, 0xAA, 0xE3, 0x83, 0xB3,
- 0xE3, 0x82, 0xB9, 0x49, 0xE3, 0x82, 0xAA, 0xE3,
- 0x83, 0xBC, 0xE3, 0x83, 0xA0, 0x49, 0xE3, 0x82,
- 0xAB, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xAA, 0x49,
- // Bytes 28c0 - 28ff
- 0xE3, 0x82, 0xB1, 0xE3, 0x83, 0xBC, 0xE3, 0x82,
- 0xB9, 0x49, 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0xAB,
- 0xE3, 0x83, 0x8A, 0x49, 0xE3, 0x82, 0xBB, 0xE3,
- 0x83, 0xB3, 0xE3, 0x83, 0x81, 0x49, 0xE3, 0x82,
- 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, 0x49,
- 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0xE3, 0x82,
- 0xB7, 0x49, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99,
- 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x8E, 0xE3,
- // Bytes 2900 - 293f
- 0x83, 0x83, 0xE3, 0x83, 0x88, 0x49, 0xE3, 0x83,
- 0x8F, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0x84, 0x49,
- 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99, 0xE3, 0x83,
- 0xAB, 0x49, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A,
- 0xE3, 0x82, 0xB3, 0x49, 0xE3, 0x83, 0x95, 0xE3,
- 0x83, 0xA9, 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x83,
- 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xBD, 0x49,
- 0xE3, 0x83, 0x98, 0xE3, 0x83, 0xAB, 0xE3, 0x83,
- // Bytes 2940 - 297f
- 0x84, 0x49, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xBC,
- 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x9B, 0xE3,
- 0x83, 0xBC, 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x83,
- 0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xAB, 0x49,
- 0xE3, 0x83, 0x9E, 0xE3, 0x83, 0x83, 0xE3, 0x83,
- 0x8F, 0x49, 0xE3, 0x83, 0x9E, 0xE3, 0x83, 0xAB,
- 0xE3, 0x82, 0xAF, 0x49, 0xE3, 0x83, 0xA4, 0xE3,
- 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83,
- // Bytes 2980 - 29bf
- 0xA6, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xB3, 0x49,
- 0xE3, 0x83, 0xAF, 0xE3, 0x83, 0x83, 0xE3, 0x83,
- 0x88, 0x4C, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,
- 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0x4C, 0xE2,
- 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB,
- 0xE2, 0x88, 0xAB, 0x4C, 0xE3, 0x82, 0xA2, 0xE3,
- 0x83, 0xAB, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0xA1,
- 0x4C, 0xE3, 0x82, 0xA8, 0xE3, 0x83, 0xBC, 0xE3,
- // Bytes 29c0 - 29ff
- 0x82, 0xAB, 0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82,
- 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAD, 0xE3,
- 0x83, 0xB3, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x82,
- 0x99, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x9E, 0x4C,
- 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xA9, 0xE3, 0x83,
- 0x83, 0xE3, 0x83, 0x88, 0x4C, 0xE3, 0x82, 0xAB,
- 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xAA, 0xE3, 0x83,
- 0xBC, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99,
- // Bytes 2a00 - 2a3f
- 0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xBC, 0x4C, 0xE3,
- 0x82, 0xAD, 0xE3, 0x83, 0xA5, 0xE3, 0x83, 0xAA,
- 0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAF, 0xE3,
- 0x82, 0x99, 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0xA0,
- 0x4C, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD, 0xE3,
- 0x83, 0xBC, 0xE3, 0x83, 0x8D, 0x4C, 0xE3, 0x82,
- 0xB5, 0xE3, 0x82, 0xA4, 0xE3, 0x82, 0xAF, 0xE3,
- 0x83, 0xAB, 0x4C, 0xE3, 0x82, 0xBF, 0xE3, 0x82,
- // Bytes 2a40 - 2a7f
- 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB9, 0x4C,
- 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83,
- 0xBC, 0xE3, 0x83, 0x84, 0x4C, 0xE3, 0x83, 0x92,
- 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xAF, 0xE3, 0x83,
- 0xAB, 0x4C, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0xA3,
- 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0x4C, 0xE3,
- 0x83, 0x98, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC,
- 0xE3, 0x82, 0xBF, 0x4C, 0xE3, 0x83, 0x98, 0xE3,
- // Bytes 2a80 - 2abf
- 0x82, 0x9A, 0xE3, 0x83, 0x8B, 0xE3, 0x83, 0x92,
- 0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3,
- 0x83, 0xB3, 0xE3, 0x82, 0xB9, 0x4C, 0xE3, 0x83,
- 0x9B, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0xE3,
- 0x83, 0x88, 0x4C, 0xE3, 0x83, 0x9E, 0xE3, 0x82,
- 0xA4, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD, 0x4C,
- 0xE3, 0x83, 0x9F, 0xE3, 0x82, 0xAF, 0xE3, 0x83,
- 0xAD, 0xE3, 0x83, 0xB3, 0x4C, 0xE3, 0x83, 0xA1,
- // Bytes 2ac0 - 2aff
- 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x83,
- 0xAB, 0x4C, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0x83,
- 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x4C, 0xE3,
- 0x83, 0xAB, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A,
- 0xE3, 0x83, 0xBC, 0x4C, 0xE6, 0xA0, 0xAA, 0xE5,
- 0xBC, 0x8F, 0xE4, 0xBC, 0x9A, 0xE7, 0xA4, 0xBE,
- 0x4E, 0x28, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA9,
- 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xAE, 0x29, 0x4F,
- // Bytes 2b00 - 2b3f
- 0xD8, 0xAC, 0xD9, 0x84, 0x20, 0xD8, 0xAC, 0xD9,
- 0x84, 0xD8, 0xA7, 0xD9, 0x84, 0xD9, 0x87, 0x4F,
- 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0x8F, 0xE3, 0x82,
- 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0x4F,
- 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xB3, 0xE3, 0x83,
- 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA2, 0x4F,
- 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD, 0xE3, 0x83,
- 0xAF, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0x4F,
- // Bytes 2b40 - 2b7f
- 0xE3, 0x82, 0xB5, 0xE3, 0x83, 0xB3, 0xE3, 0x83,
- 0x81, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xA0, 0x4F,
- 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, 0xE3, 0x83,
- 0xBC, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xAB, 0x4F,
- 0xE3, 0x83, 0x98, 0xE3, 0x82, 0xAF, 0xE3, 0x82,
- 0xBF, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x4F,
- 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0xE3, 0x82,
- 0xA4, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, 0x4F,
- // Bytes 2b80 - 2bbf
- 0xE3, 0x83, 0x9E, 0xE3, 0x83, 0xB3, 0xE3, 0x82,
- 0xB7, 0xE3, 0x83, 0xA7, 0xE3, 0x83, 0xB3, 0x4F,
- 0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB, 0xE3, 0x82,
- 0x99, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x4F,
- 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0xBC, 0xE3, 0x83,
- 0x95, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0x51,
- 0x28, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA9, 0xE1,
- 0x84, 0x8C, 0xE1, 0x85, 0xA5, 0xE1, 0x86, 0xAB,
- // Bytes 2bc0 - 2bff
- 0x29, 0x52, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99,
- 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xBF, 0xE3, 0x82,
- 0x99, 0xE3, 0x83, 0xBC, 0x52, 0xE3, 0x82, 0xAD,
- 0xE3, 0x83, 0xAD, 0xE3, 0x82, 0xAF, 0xE3, 0x82,
- 0x99, 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0xA0, 0x52,
- 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD, 0xE3, 0x83,
- 0xA1, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3,
- 0x83, 0xAB, 0x52, 0xE3, 0x82, 0xAF, 0xE3, 0x82,
- // Bytes 2c00 - 2c3f
- 0x99, 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0xA0, 0xE3,
- 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x52, 0xE3, 0x82,
- 0xAF, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xBB, 0xE3,
- 0x82, 0x99, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xAD,
- 0x52, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3,
- 0x83, 0xBC, 0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3,
- 0xE3, 0x83, 0x88, 0x52, 0xE3, 0x83, 0x92, 0xE3,
- 0x82, 0x9A, 0xE3, 0x82, 0xA2, 0xE3, 0x82, 0xB9,
- // Bytes 2c40 - 2c7f
- 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x52, 0xE3,
- 0x83, 0x95, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x83,
- 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0xA7, 0xE3, 0x83,
- 0xAB, 0x52, 0xE3, 0x83, 0x9F, 0xE3, 0x83, 0xAA,
- 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, 0xE3, 0x83,
- 0xBC, 0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x83, 0xAC,
- 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x82,
- 0xB1, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xB3, 0x61,
- // Bytes 2c80 - 2cbf
- 0xD8, 0xB5, 0xD9, 0x84, 0xD9, 0x89, 0x20, 0xD8,
- 0xA7, 0xD9, 0x84, 0xD9, 0x84, 0xD9, 0x87, 0x20,
- 0xD8, 0xB9, 0xD9, 0x84, 0xD9, 0x8A, 0xD9, 0x87,
- 0x20, 0xD9, 0x88, 0xD8, 0xB3, 0xD9, 0x84, 0xD9,
- 0x85, 0x06, 0xE0, 0xA7, 0x87, 0xE0, 0xA6, 0xBE,
- 0x01, 0x06, 0xE0, 0xA7, 0x87, 0xE0, 0xA7, 0x97,
- 0x01, 0x06, 0xE0, 0xAD, 0x87, 0xE0, 0xAC, 0xBE,
- 0x01, 0x06, 0xE0, 0xAD, 0x87, 0xE0, 0xAD, 0x96,
- // Bytes 2cc0 - 2cff
- 0x01, 0x06, 0xE0, 0xAD, 0x87, 0xE0, 0xAD, 0x97,
- 0x01, 0x06, 0xE0, 0xAE, 0x92, 0xE0, 0xAF, 0x97,
- 0x01, 0x06, 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xBE,
- 0x01, 0x06, 0xE0, 0xAF, 0x86, 0xE0, 0xAF, 0x97,
- 0x01, 0x06, 0xE0, 0xAF, 0x87, 0xE0, 0xAE, 0xBE,
- 0x01, 0x06, 0xE0, 0xB2, 0xBF, 0xE0, 0xB3, 0x95,
- 0x01, 0x06, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x95,
- 0x01, 0x06, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x96,
- // Bytes 2d00 - 2d3f
- 0x01, 0x06, 0xE0, 0xB5, 0x86, 0xE0, 0xB4, 0xBE,
- 0x01, 0x06, 0xE0, 0xB5, 0x86, 0xE0, 0xB5, 0x97,
- 0x01, 0x06, 0xE0, 0xB5, 0x87, 0xE0, 0xB4, 0xBE,
- 0x01, 0x06, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x9F,
- 0x01, 0x06, 0xE1, 0x80, 0xA5, 0xE1, 0x80, 0xAE,
- 0x01, 0x06, 0xE1, 0xAC, 0x85, 0xE1, 0xAC, 0xB5,
- 0x01, 0x06, 0xE1, 0xAC, 0x87, 0xE1, 0xAC, 0xB5,
- 0x01, 0x06, 0xE1, 0xAC, 0x89, 0xE1, 0xAC, 0xB5,
- // Bytes 2d40 - 2d7f
- 0x01, 0x06, 0xE1, 0xAC, 0x8B, 0xE1, 0xAC, 0xB5,
- 0x01, 0x06, 0xE1, 0xAC, 0x8D, 0xE1, 0xAC, 0xB5,
- 0x01, 0x06, 0xE1, 0xAC, 0x91, 0xE1, 0xAC, 0xB5,
- 0x01, 0x06, 0xE1, 0xAC, 0xBA, 0xE1, 0xAC, 0xB5,
- 0x01, 0x06, 0xE1, 0xAC, 0xBC, 0xE1, 0xAC, 0xB5,
- 0x01, 0x06, 0xE1, 0xAC, 0xBE, 0xE1, 0xAC, 0xB5,
- 0x01, 0x06, 0xE1, 0xAC, 0xBF, 0xE1, 0xAC, 0xB5,
- 0x01, 0x06, 0xE1, 0xAD, 0x82, 0xE1, 0xAC, 0xB5,
- // Bytes 2d80 - 2dbf
- 0x01, 0x08, 0xF0, 0x91, 0x84, 0xB1, 0xF0, 0x91,
- 0x84, 0xA7, 0x01, 0x08, 0xF0, 0x91, 0x84, 0xB2,
- 0xF0, 0x91, 0x84, 0xA7, 0x01, 0x08, 0xF0, 0x91,
- 0x8D, 0x87, 0xF0, 0x91, 0x8C, 0xBE, 0x01, 0x08,
- 0xF0, 0x91, 0x8D, 0x87, 0xF0, 0x91, 0x8D, 0x97,
- 0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91,
- 0x92, 0xB0, 0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9,
- 0xF0, 0x91, 0x92, 0xBA, 0x01, 0x08, 0xF0, 0x91,
- // Bytes 2dc0 - 2dff
- 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xBD, 0x01, 0x08,
- 0xF0, 0x91, 0x96, 0xB8, 0xF0, 0x91, 0x96, 0xAF,
- 0x01, 0x08, 0xF0, 0x91, 0x96, 0xB9, 0xF0, 0x91,
- 0x96, 0xAF, 0x01, 0x09, 0xE0, 0xB3, 0x86, 0xE0,
- 0xB3, 0x82, 0xE0, 0xB3, 0x95, 0x02, 0x09, 0xE0,
- 0xB7, 0x99, 0xE0, 0xB7, 0x8F, 0xE0, 0xB7, 0x8A,
- 0x12, 0x44, 0x44, 0x5A, 0xCC, 0x8C, 0xC9, 0x44,
- 0x44, 0x7A, 0xCC, 0x8C, 0xC9, 0x44, 0x64, 0x7A,
- // Bytes 2e00 - 2e3f
- 0xCC, 0x8C, 0xC9, 0x46, 0xD9, 0x84, 0xD8, 0xA7,
- 0xD9, 0x93, 0xC9, 0x46, 0xD9, 0x84, 0xD8, 0xA7,
- 0xD9, 0x94, 0xC9, 0x46, 0xD9, 0x84, 0xD8, 0xA7,
- 0xD9, 0x95, 0xB5, 0x46, 0xE1, 0x84, 0x80, 0xE1,
- 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x82, 0xE1,
- 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x83, 0xE1,
- 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x85, 0xE1,
- 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x86, 0xE1,
- // Bytes 2e40 - 2e7f
- 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x87, 0xE1,
- 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x89, 0xE1,
- 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x8B, 0xE1,
- 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x8B, 0xE1,
- 0x85, 0xAE, 0x01, 0x46, 0xE1, 0x84, 0x8C, 0xE1,
- 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x8E, 0xE1,
- 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x8F, 0xE1,
- 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x90, 0xE1,
- // Bytes 2e80 - 2ebf
- 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x91, 0xE1,
- 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x92, 0xE1,
- 0x85, 0xA1, 0x01, 0x49, 0xE3, 0x83, 0xA1, 0xE3,
- 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D, 0x4C, 0xE1,
- 0x84, 0x8C, 0xE1, 0x85, 0xAE, 0xE1, 0x84, 0x8B,
- 0xE1, 0x85, 0xB4, 0x01, 0x4C, 0xE3, 0x82, 0xAD,
- 0xE3, 0x82, 0x99, 0xE3, 0x82, 0xAB, 0xE3, 0x82,
- 0x99, 0x0D, 0x4C, 0xE3, 0x82, 0xB3, 0xE3, 0x83,
- // Bytes 2ec0 - 2eff
- 0xBC, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0x0D,
- 0x4C, 0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xBC, 0xE3,
- 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE1,
- 0x84, 0x8E, 0xE1, 0x85, 0xA1, 0xE1, 0x86, 0xB7,
- 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA9, 0x01, 0x4F,
- 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0x8B, 0xE3, 0x83,
- 0xB3, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D,
- 0x4F, 0xE3, 0x82, 0xB7, 0xE3, 0x83, 0xAA, 0xE3,
- // Bytes 2f00 - 2f3f
- 0x83, 0xB3, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99,
- 0x0D, 0x4F, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A,
- 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB7, 0xE3, 0x82,
- 0x99, 0x0D, 0x4F, 0xE3, 0x83, 0x9B, 0xE3, 0x82,
- 0x9A, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, 0xE3,
- 0x82, 0x99, 0x0D, 0x52, 0xE3, 0x82, 0xA8, 0xE3,
- 0x82, 0xB9, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xBC,
- 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D, 0x52,
- // Bytes 2f40 - 2f7f
- 0xE3, 0x83, 0x95, 0xE3, 0x82, 0xA1, 0xE3, 0x83,
- 0xA9, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0xE3,
- 0x82, 0x99, 0x0D, 0x86, 0xE0, 0xB3, 0x86, 0xE0,
- 0xB3, 0x82, 0x01, 0x86, 0xE0, 0xB7, 0x99, 0xE0,
- 0xB7, 0x8F, 0x01, 0x03, 0x3C, 0xCC, 0xB8, 0x05,
- 0x03, 0x3D, 0xCC, 0xB8, 0x05, 0x03, 0x3E, 0xCC,
- 0xB8, 0x05, 0x03, 0x41, 0xCC, 0x80, 0xC9, 0x03,
- 0x41, 0xCC, 0x81, 0xC9, 0x03, 0x41, 0xCC, 0x83,
- // Bytes 2f80 - 2fbf
- 0xC9, 0x03, 0x41, 0xCC, 0x84, 0xC9, 0x03, 0x41,
- 0xCC, 0x89, 0xC9, 0x03, 0x41, 0xCC, 0x8C, 0xC9,
- 0x03, 0x41, 0xCC, 0x8F, 0xC9, 0x03, 0x41, 0xCC,
- 0x91, 0xC9, 0x03, 0x41, 0xCC, 0xA5, 0xB5, 0x03,
- 0x41, 0xCC, 0xA8, 0xA5, 0x03, 0x42, 0xCC, 0x87,
- 0xC9, 0x03, 0x42, 0xCC, 0xA3, 0xB5, 0x03, 0x42,
- 0xCC, 0xB1, 0xB5, 0x03, 0x43, 0xCC, 0x81, 0xC9,
- 0x03, 0x43, 0xCC, 0x82, 0xC9, 0x03, 0x43, 0xCC,
- // Bytes 2fc0 - 2fff
- 0x87, 0xC9, 0x03, 0x43, 0xCC, 0x8C, 0xC9, 0x03,
- 0x44, 0xCC, 0x87, 0xC9, 0x03, 0x44, 0xCC, 0x8C,
- 0xC9, 0x03, 0x44, 0xCC, 0xA3, 0xB5, 0x03, 0x44,
- 0xCC, 0xA7, 0xA5, 0x03, 0x44, 0xCC, 0xAD, 0xB5,
- 0x03, 0x44, 0xCC, 0xB1, 0xB5, 0x03, 0x45, 0xCC,
- 0x80, 0xC9, 0x03, 0x45, 0xCC, 0x81, 0xC9, 0x03,
- 0x45, 0xCC, 0x83, 0xC9, 0x03, 0x45, 0xCC, 0x86,
- 0xC9, 0x03, 0x45, 0xCC, 0x87, 0xC9, 0x03, 0x45,
- // Bytes 3000 - 303f
- 0xCC, 0x88, 0xC9, 0x03, 0x45, 0xCC, 0x89, 0xC9,
- 0x03, 0x45, 0xCC, 0x8C, 0xC9, 0x03, 0x45, 0xCC,
- 0x8F, 0xC9, 0x03, 0x45, 0xCC, 0x91, 0xC9, 0x03,
- 0x45, 0xCC, 0xA8, 0xA5, 0x03, 0x45, 0xCC, 0xAD,
- 0xB5, 0x03, 0x45, 0xCC, 0xB0, 0xB5, 0x03, 0x46,
- 0xCC, 0x87, 0xC9, 0x03, 0x47, 0xCC, 0x81, 0xC9,
- 0x03, 0x47, 0xCC, 0x82, 0xC9, 0x03, 0x47, 0xCC,
- 0x84, 0xC9, 0x03, 0x47, 0xCC, 0x86, 0xC9, 0x03,
- // Bytes 3040 - 307f
- 0x47, 0xCC, 0x87, 0xC9, 0x03, 0x47, 0xCC, 0x8C,
- 0xC9, 0x03, 0x47, 0xCC, 0xA7, 0xA5, 0x03, 0x48,
- 0xCC, 0x82, 0xC9, 0x03, 0x48, 0xCC, 0x87, 0xC9,
- 0x03, 0x48, 0xCC, 0x88, 0xC9, 0x03, 0x48, 0xCC,
- 0x8C, 0xC9, 0x03, 0x48, 0xCC, 0xA3, 0xB5, 0x03,
- 0x48, 0xCC, 0xA7, 0xA5, 0x03, 0x48, 0xCC, 0xAE,
- 0xB5, 0x03, 0x49, 0xCC, 0x80, 0xC9, 0x03, 0x49,
- 0xCC, 0x81, 0xC9, 0x03, 0x49, 0xCC, 0x82, 0xC9,
- // Bytes 3080 - 30bf
- 0x03, 0x49, 0xCC, 0x83, 0xC9, 0x03, 0x49, 0xCC,
- 0x84, 0xC9, 0x03, 0x49, 0xCC, 0x86, 0xC9, 0x03,
- 0x49, 0xCC, 0x87, 0xC9, 0x03, 0x49, 0xCC, 0x89,
- 0xC9, 0x03, 0x49, 0xCC, 0x8C, 0xC9, 0x03, 0x49,
- 0xCC, 0x8F, 0xC9, 0x03, 0x49, 0xCC, 0x91, 0xC9,
- 0x03, 0x49, 0xCC, 0xA3, 0xB5, 0x03, 0x49, 0xCC,
- 0xA8, 0xA5, 0x03, 0x49, 0xCC, 0xB0, 0xB5, 0x03,
- 0x4A, 0xCC, 0x82, 0xC9, 0x03, 0x4B, 0xCC, 0x81,
- // Bytes 30c0 - 30ff
- 0xC9, 0x03, 0x4B, 0xCC, 0x8C, 0xC9, 0x03, 0x4B,
- 0xCC, 0xA3, 0xB5, 0x03, 0x4B, 0xCC, 0xA7, 0xA5,
- 0x03, 0x4B, 0xCC, 0xB1, 0xB5, 0x03, 0x4C, 0xCC,
- 0x81, 0xC9, 0x03, 0x4C, 0xCC, 0x8C, 0xC9, 0x03,
- 0x4C, 0xCC, 0xA7, 0xA5, 0x03, 0x4C, 0xCC, 0xAD,
- 0xB5, 0x03, 0x4C, 0xCC, 0xB1, 0xB5, 0x03, 0x4D,
- 0xCC, 0x81, 0xC9, 0x03, 0x4D, 0xCC, 0x87, 0xC9,
- 0x03, 0x4D, 0xCC, 0xA3, 0xB5, 0x03, 0x4E, 0xCC,
- // Bytes 3100 - 313f
- 0x80, 0xC9, 0x03, 0x4E, 0xCC, 0x81, 0xC9, 0x03,
- 0x4E, 0xCC, 0x83, 0xC9, 0x03, 0x4E, 0xCC, 0x87,
- 0xC9, 0x03, 0x4E, 0xCC, 0x8C, 0xC9, 0x03, 0x4E,
- 0xCC, 0xA3, 0xB5, 0x03, 0x4E, 0xCC, 0xA7, 0xA5,
- 0x03, 0x4E, 0xCC, 0xAD, 0xB5, 0x03, 0x4E, 0xCC,
- 0xB1, 0xB5, 0x03, 0x4F, 0xCC, 0x80, 0xC9, 0x03,
- 0x4F, 0xCC, 0x81, 0xC9, 0x03, 0x4F, 0xCC, 0x86,
- 0xC9, 0x03, 0x4F, 0xCC, 0x89, 0xC9, 0x03, 0x4F,
- // Bytes 3140 - 317f
- 0xCC, 0x8B, 0xC9, 0x03, 0x4F, 0xCC, 0x8C, 0xC9,
- 0x03, 0x4F, 0xCC, 0x8F, 0xC9, 0x03, 0x4F, 0xCC,
- 0x91, 0xC9, 0x03, 0x50, 0xCC, 0x81, 0xC9, 0x03,
- 0x50, 0xCC, 0x87, 0xC9, 0x03, 0x52, 0xCC, 0x81,
- 0xC9, 0x03, 0x52, 0xCC, 0x87, 0xC9, 0x03, 0x52,
- 0xCC, 0x8C, 0xC9, 0x03, 0x52, 0xCC, 0x8F, 0xC9,
- 0x03, 0x52, 0xCC, 0x91, 0xC9, 0x03, 0x52, 0xCC,
- 0xA7, 0xA5, 0x03, 0x52, 0xCC, 0xB1, 0xB5, 0x03,
- // Bytes 3180 - 31bf
- 0x53, 0xCC, 0x82, 0xC9, 0x03, 0x53, 0xCC, 0x87,
- 0xC9, 0x03, 0x53, 0xCC, 0xA6, 0xB5, 0x03, 0x53,
- 0xCC, 0xA7, 0xA5, 0x03, 0x54, 0xCC, 0x87, 0xC9,
- 0x03, 0x54, 0xCC, 0x8C, 0xC9, 0x03, 0x54, 0xCC,
- 0xA3, 0xB5, 0x03, 0x54, 0xCC, 0xA6, 0xB5, 0x03,
- 0x54, 0xCC, 0xA7, 0xA5, 0x03, 0x54, 0xCC, 0xAD,
- 0xB5, 0x03, 0x54, 0xCC, 0xB1, 0xB5, 0x03, 0x55,
- 0xCC, 0x80, 0xC9, 0x03, 0x55, 0xCC, 0x81, 0xC9,
- // Bytes 31c0 - 31ff
- 0x03, 0x55, 0xCC, 0x82, 0xC9, 0x03, 0x55, 0xCC,
- 0x86, 0xC9, 0x03, 0x55, 0xCC, 0x89, 0xC9, 0x03,
- 0x55, 0xCC, 0x8A, 0xC9, 0x03, 0x55, 0xCC, 0x8B,
- 0xC9, 0x03, 0x55, 0xCC, 0x8C, 0xC9, 0x03, 0x55,
- 0xCC, 0x8F, 0xC9, 0x03, 0x55, 0xCC, 0x91, 0xC9,
- 0x03, 0x55, 0xCC, 0xA3, 0xB5, 0x03, 0x55, 0xCC,
- 0xA4, 0xB5, 0x03, 0x55, 0xCC, 0xA8, 0xA5, 0x03,
- 0x55, 0xCC, 0xAD, 0xB5, 0x03, 0x55, 0xCC, 0xB0,
- // Bytes 3200 - 323f
- 0xB5, 0x03, 0x56, 0xCC, 0x83, 0xC9, 0x03, 0x56,
- 0xCC, 0xA3, 0xB5, 0x03, 0x57, 0xCC, 0x80, 0xC9,
- 0x03, 0x57, 0xCC, 0x81, 0xC9, 0x03, 0x57, 0xCC,
- 0x82, 0xC9, 0x03, 0x57, 0xCC, 0x87, 0xC9, 0x03,
- 0x57, 0xCC, 0x88, 0xC9, 0x03, 0x57, 0xCC, 0xA3,
- 0xB5, 0x03, 0x58, 0xCC, 0x87, 0xC9, 0x03, 0x58,
- 0xCC, 0x88, 0xC9, 0x03, 0x59, 0xCC, 0x80, 0xC9,
- 0x03, 0x59, 0xCC, 0x81, 0xC9, 0x03, 0x59, 0xCC,
- // Bytes 3240 - 327f
- 0x82, 0xC9, 0x03, 0x59, 0xCC, 0x83, 0xC9, 0x03,
- 0x59, 0xCC, 0x84, 0xC9, 0x03, 0x59, 0xCC, 0x87,
- 0xC9, 0x03, 0x59, 0xCC, 0x88, 0xC9, 0x03, 0x59,
- 0xCC, 0x89, 0xC9, 0x03, 0x59, 0xCC, 0xA3, 0xB5,
- 0x03, 0x5A, 0xCC, 0x81, 0xC9, 0x03, 0x5A, 0xCC,
- 0x82, 0xC9, 0x03, 0x5A, 0xCC, 0x87, 0xC9, 0x03,
- 0x5A, 0xCC, 0x8C, 0xC9, 0x03, 0x5A, 0xCC, 0xA3,
- 0xB5, 0x03, 0x5A, 0xCC, 0xB1, 0xB5, 0x03, 0x61,
- // Bytes 3280 - 32bf
- 0xCC, 0x80, 0xC9, 0x03, 0x61, 0xCC, 0x81, 0xC9,
- 0x03, 0x61, 0xCC, 0x83, 0xC9, 0x03, 0x61, 0xCC,
- 0x84, 0xC9, 0x03, 0x61, 0xCC, 0x89, 0xC9, 0x03,
- 0x61, 0xCC, 0x8C, 0xC9, 0x03, 0x61, 0xCC, 0x8F,
- 0xC9, 0x03, 0x61, 0xCC, 0x91, 0xC9, 0x03, 0x61,
- 0xCC, 0xA5, 0xB5, 0x03, 0x61, 0xCC, 0xA8, 0xA5,
- 0x03, 0x62, 0xCC, 0x87, 0xC9, 0x03, 0x62, 0xCC,
- 0xA3, 0xB5, 0x03, 0x62, 0xCC, 0xB1, 0xB5, 0x03,
- // Bytes 32c0 - 32ff
- 0x63, 0xCC, 0x81, 0xC9, 0x03, 0x63, 0xCC, 0x82,
- 0xC9, 0x03, 0x63, 0xCC, 0x87, 0xC9, 0x03, 0x63,
- 0xCC, 0x8C, 0xC9, 0x03, 0x64, 0xCC, 0x87, 0xC9,
- 0x03, 0x64, 0xCC, 0x8C, 0xC9, 0x03, 0x64, 0xCC,
- 0xA3, 0xB5, 0x03, 0x64, 0xCC, 0xA7, 0xA5, 0x03,
- 0x64, 0xCC, 0xAD, 0xB5, 0x03, 0x64, 0xCC, 0xB1,
- 0xB5, 0x03, 0x65, 0xCC, 0x80, 0xC9, 0x03, 0x65,
- 0xCC, 0x81, 0xC9, 0x03, 0x65, 0xCC, 0x83, 0xC9,
- // Bytes 3300 - 333f
- 0x03, 0x65, 0xCC, 0x86, 0xC9, 0x03, 0x65, 0xCC,
- 0x87, 0xC9, 0x03, 0x65, 0xCC, 0x88, 0xC9, 0x03,
- 0x65, 0xCC, 0x89, 0xC9, 0x03, 0x65, 0xCC, 0x8C,
- 0xC9, 0x03, 0x65, 0xCC, 0x8F, 0xC9, 0x03, 0x65,
- 0xCC, 0x91, 0xC9, 0x03, 0x65, 0xCC, 0xA8, 0xA5,
- 0x03, 0x65, 0xCC, 0xAD, 0xB5, 0x03, 0x65, 0xCC,
- 0xB0, 0xB5, 0x03, 0x66, 0xCC, 0x87, 0xC9, 0x03,
- 0x67, 0xCC, 0x81, 0xC9, 0x03, 0x67, 0xCC, 0x82,
- // Bytes 3340 - 337f
- 0xC9, 0x03, 0x67, 0xCC, 0x84, 0xC9, 0x03, 0x67,
- 0xCC, 0x86, 0xC9, 0x03, 0x67, 0xCC, 0x87, 0xC9,
- 0x03, 0x67, 0xCC, 0x8C, 0xC9, 0x03, 0x67, 0xCC,
- 0xA7, 0xA5, 0x03, 0x68, 0xCC, 0x82, 0xC9, 0x03,
- 0x68, 0xCC, 0x87, 0xC9, 0x03, 0x68, 0xCC, 0x88,
- 0xC9, 0x03, 0x68, 0xCC, 0x8C, 0xC9, 0x03, 0x68,
- 0xCC, 0xA3, 0xB5, 0x03, 0x68, 0xCC, 0xA7, 0xA5,
- 0x03, 0x68, 0xCC, 0xAE, 0xB5, 0x03, 0x68, 0xCC,
- // Bytes 3380 - 33bf
- 0xB1, 0xB5, 0x03, 0x69, 0xCC, 0x80, 0xC9, 0x03,
- 0x69, 0xCC, 0x81, 0xC9, 0x03, 0x69, 0xCC, 0x82,
- 0xC9, 0x03, 0x69, 0xCC, 0x83, 0xC9, 0x03, 0x69,
- 0xCC, 0x84, 0xC9, 0x03, 0x69, 0xCC, 0x86, 0xC9,
- 0x03, 0x69, 0xCC, 0x89, 0xC9, 0x03, 0x69, 0xCC,
- 0x8C, 0xC9, 0x03, 0x69, 0xCC, 0x8F, 0xC9, 0x03,
- 0x69, 0xCC, 0x91, 0xC9, 0x03, 0x69, 0xCC, 0xA3,
- 0xB5, 0x03, 0x69, 0xCC, 0xA8, 0xA5, 0x03, 0x69,
- // Bytes 33c0 - 33ff
- 0xCC, 0xB0, 0xB5, 0x03, 0x6A, 0xCC, 0x82, 0xC9,
- 0x03, 0x6A, 0xCC, 0x8C, 0xC9, 0x03, 0x6B, 0xCC,
- 0x81, 0xC9, 0x03, 0x6B, 0xCC, 0x8C, 0xC9, 0x03,
- 0x6B, 0xCC, 0xA3, 0xB5, 0x03, 0x6B, 0xCC, 0xA7,
- 0xA5, 0x03, 0x6B, 0xCC, 0xB1, 0xB5, 0x03, 0x6C,
- 0xCC, 0x81, 0xC9, 0x03, 0x6C, 0xCC, 0x8C, 0xC9,
- 0x03, 0x6C, 0xCC, 0xA7, 0xA5, 0x03, 0x6C, 0xCC,
- 0xAD, 0xB5, 0x03, 0x6C, 0xCC, 0xB1, 0xB5, 0x03,
- // Bytes 3400 - 343f
- 0x6D, 0xCC, 0x81, 0xC9, 0x03, 0x6D, 0xCC, 0x87,
- 0xC9, 0x03, 0x6D, 0xCC, 0xA3, 0xB5, 0x03, 0x6E,
- 0xCC, 0x80, 0xC9, 0x03, 0x6E, 0xCC, 0x81, 0xC9,
- 0x03, 0x6E, 0xCC, 0x83, 0xC9, 0x03, 0x6E, 0xCC,
- 0x87, 0xC9, 0x03, 0x6E, 0xCC, 0x8C, 0xC9, 0x03,
- 0x6E, 0xCC, 0xA3, 0xB5, 0x03, 0x6E, 0xCC, 0xA7,
- 0xA5, 0x03, 0x6E, 0xCC, 0xAD, 0xB5, 0x03, 0x6E,
- 0xCC, 0xB1, 0xB5, 0x03, 0x6F, 0xCC, 0x80, 0xC9,
- // Bytes 3440 - 347f
- 0x03, 0x6F, 0xCC, 0x81, 0xC9, 0x03, 0x6F, 0xCC,
- 0x86, 0xC9, 0x03, 0x6F, 0xCC, 0x89, 0xC9, 0x03,
- 0x6F, 0xCC, 0x8B, 0xC9, 0x03, 0x6F, 0xCC, 0x8C,
- 0xC9, 0x03, 0x6F, 0xCC, 0x8F, 0xC9, 0x03, 0x6F,
- 0xCC, 0x91, 0xC9, 0x03, 0x70, 0xCC, 0x81, 0xC9,
- 0x03, 0x70, 0xCC, 0x87, 0xC9, 0x03, 0x72, 0xCC,
- 0x81, 0xC9, 0x03, 0x72, 0xCC, 0x87, 0xC9, 0x03,
- 0x72, 0xCC, 0x8C, 0xC9, 0x03, 0x72, 0xCC, 0x8F,
- // Bytes 3480 - 34bf
- 0xC9, 0x03, 0x72, 0xCC, 0x91, 0xC9, 0x03, 0x72,
- 0xCC, 0xA7, 0xA5, 0x03, 0x72, 0xCC, 0xB1, 0xB5,
- 0x03, 0x73, 0xCC, 0x82, 0xC9, 0x03, 0x73, 0xCC,
- 0x87, 0xC9, 0x03, 0x73, 0xCC, 0xA6, 0xB5, 0x03,
- 0x73, 0xCC, 0xA7, 0xA5, 0x03, 0x74, 0xCC, 0x87,
- 0xC9, 0x03, 0x74, 0xCC, 0x88, 0xC9, 0x03, 0x74,
- 0xCC, 0x8C, 0xC9, 0x03, 0x74, 0xCC, 0xA3, 0xB5,
- 0x03, 0x74, 0xCC, 0xA6, 0xB5, 0x03, 0x74, 0xCC,
- // Bytes 34c0 - 34ff
- 0xA7, 0xA5, 0x03, 0x74, 0xCC, 0xAD, 0xB5, 0x03,
- 0x74, 0xCC, 0xB1, 0xB5, 0x03, 0x75, 0xCC, 0x80,
- 0xC9, 0x03, 0x75, 0xCC, 0x81, 0xC9, 0x03, 0x75,
- 0xCC, 0x82, 0xC9, 0x03, 0x75, 0xCC, 0x86, 0xC9,
- 0x03, 0x75, 0xCC, 0x89, 0xC9, 0x03, 0x75, 0xCC,
- 0x8A, 0xC9, 0x03, 0x75, 0xCC, 0x8B, 0xC9, 0x03,
- 0x75, 0xCC, 0x8C, 0xC9, 0x03, 0x75, 0xCC, 0x8F,
- 0xC9, 0x03, 0x75, 0xCC, 0x91, 0xC9, 0x03, 0x75,
- // Bytes 3500 - 353f
- 0xCC, 0xA3, 0xB5, 0x03, 0x75, 0xCC, 0xA4, 0xB5,
- 0x03, 0x75, 0xCC, 0xA8, 0xA5, 0x03, 0x75, 0xCC,
- 0xAD, 0xB5, 0x03, 0x75, 0xCC, 0xB0, 0xB5, 0x03,
- 0x76, 0xCC, 0x83, 0xC9, 0x03, 0x76, 0xCC, 0xA3,
- 0xB5, 0x03, 0x77, 0xCC, 0x80, 0xC9, 0x03, 0x77,
- 0xCC, 0x81, 0xC9, 0x03, 0x77, 0xCC, 0x82, 0xC9,
- 0x03, 0x77, 0xCC, 0x87, 0xC9, 0x03, 0x77, 0xCC,
- 0x88, 0xC9, 0x03, 0x77, 0xCC, 0x8A, 0xC9, 0x03,
- // Bytes 3540 - 357f
- 0x77, 0xCC, 0xA3, 0xB5, 0x03, 0x78, 0xCC, 0x87,
- 0xC9, 0x03, 0x78, 0xCC, 0x88, 0xC9, 0x03, 0x79,
- 0xCC, 0x80, 0xC9, 0x03, 0x79, 0xCC, 0x81, 0xC9,
- 0x03, 0x79, 0xCC, 0x82, 0xC9, 0x03, 0x79, 0xCC,
- 0x83, 0xC9, 0x03, 0x79, 0xCC, 0x84, 0xC9, 0x03,
- 0x79, 0xCC, 0x87, 0xC9, 0x03, 0x79, 0xCC, 0x88,
- 0xC9, 0x03, 0x79, 0xCC, 0x89, 0xC9, 0x03, 0x79,
- 0xCC, 0x8A, 0xC9, 0x03, 0x79, 0xCC, 0xA3, 0xB5,
- // Bytes 3580 - 35bf
- 0x03, 0x7A, 0xCC, 0x81, 0xC9, 0x03, 0x7A, 0xCC,
- 0x82, 0xC9, 0x03, 0x7A, 0xCC, 0x87, 0xC9, 0x03,
- 0x7A, 0xCC, 0x8C, 0xC9, 0x03, 0x7A, 0xCC, 0xA3,
- 0xB5, 0x03, 0x7A, 0xCC, 0xB1, 0xB5, 0x04, 0xC2,
- 0xA8, 0xCC, 0x80, 0xCA, 0x04, 0xC2, 0xA8, 0xCC,
- 0x81, 0xCA, 0x04, 0xC2, 0xA8, 0xCD, 0x82, 0xCA,
- 0x04, 0xC3, 0x86, 0xCC, 0x81, 0xC9, 0x04, 0xC3,
- 0x86, 0xCC, 0x84, 0xC9, 0x04, 0xC3, 0x98, 0xCC,
- // Bytes 35c0 - 35ff
- 0x81, 0xC9, 0x04, 0xC3, 0xA6, 0xCC, 0x81, 0xC9,
- 0x04, 0xC3, 0xA6, 0xCC, 0x84, 0xC9, 0x04, 0xC3,
- 0xB8, 0xCC, 0x81, 0xC9, 0x04, 0xC5, 0xBF, 0xCC,
- 0x87, 0xC9, 0x04, 0xC6, 0xB7, 0xCC, 0x8C, 0xC9,
- 0x04, 0xCA, 0x92, 0xCC, 0x8C, 0xC9, 0x04, 0xCE,
- 0x91, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x91, 0xCC,
- 0x81, 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x84, 0xC9,
- 0x04, 0xCE, 0x91, 0xCC, 0x86, 0xC9, 0x04, 0xCE,
- // Bytes 3600 - 363f
- 0x91, 0xCD, 0x85, 0xD9, 0x04, 0xCE, 0x95, 0xCC,
- 0x80, 0xC9, 0x04, 0xCE, 0x95, 0xCC, 0x81, 0xC9,
- 0x04, 0xCE, 0x97, 0xCC, 0x80, 0xC9, 0x04, 0xCE,
- 0x97, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x97, 0xCD,
- 0x85, 0xD9, 0x04, 0xCE, 0x99, 0xCC, 0x80, 0xC9,
- 0x04, 0xCE, 0x99, 0xCC, 0x81, 0xC9, 0x04, 0xCE,
- 0x99, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0x99, 0xCC,
- 0x86, 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x88, 0xC9,
- // Bytes 3640 - 367f
- 0x04, 0xCE, 0x9F, 0xCC, 0x80, 0xC9, 0x04, 0xCE,
- 0x9F, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xA1, 0xCC,
- 0x94, 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x80, 0xC9,
- 0x04, 0xCE, 0xA5, 0xCC, 0x81, 0xC9, 0x04, 0xCE,
- 0xA5, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xA5, 0xCC,
- 0x86, 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x88, 0xC9,
- 0x04, 0xCE, 0xA9, 0xCC, 0x80, 0xC9, 0x04, 0xCE,
- 0xA9, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xA9, 0xCD,
- // Bytes 3680 - 36bf
- 0x85, 0xD9, 0x04, 0xCE, 0xB1, 0xCC, 0x84, 0xC9,
- 0x04, 0xCE, 0xB1, 0xCC, 0x86, 0xC9, 0x04, 0xCE,
- 0xB1, 0xCD, 0x85, 0xD9, 0x04, 0xCE, 0xB5, 0xCC,
- 0x80, 0xC9, 0x04, 0xCE, 0xB5, 0xCC, 0x81, 0xC9,
- 0x04, 0xCE, 0xB7, 0xCD, 0x85, 0xD9, 0x04, 0xCE,
- 0xB9, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xB9, 0xCC,
- 0x81, 0xC9, 0x04, 0xCE, 0xB9, 0xCC, 0x84, 0xC9,
- 0x04, 0xCE, 0xB9, 0xCC, 0x86, 0xC9, 0x04, 0xCE,
- // Bytes 36c0 - 36ff
- 0xB9, 0xCD, 0x82, 0xC9, 0x04, 0xCE, 0xBF, 0xCC,
- 0x80, 0xC9, 0x04, 0xCE, 0xBF, 0xCC, 0x81, 0xC9,
- 0x04, 0xCF, 0x81, 0xCC, 0x93, 0xC9, 0x04, 0xCF,
- 0x81, 0xCC, 0x94, 0xC9, 0x04, 0xCF, 0x85, 0xCC,
- 0x80, 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x81, 0xC9,
- 0x04, 0xCF, 0x85, 0xCC, 0x84, 0xC9, 0x04, 0xCF,
- 0x85, 0xCC, 0x86, 0xC9, 0x04, 0xCF, 0x85, 0xCD,
- 0x82, 0xC9, 0x04, 0xCF, 0x89, 0xCD, 0x85, 0xD9,
- // Bytes 3700 - 373f
- 0x04, 0xCF, 0x92, 0xCC, 0x81, 0xC9, 0x04, 0xCF,
- 0x92, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x86, 0xCC,
- 0x88, 0xC9, 0x04, 0xD0, 0x90, 0xCC, 0x86, 0xC9,
- 0x04, 0xD0, 0x90, 0xCC, 0x88, 0xC9, 0x04, 0xD0,
- 0x93, 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0x95, 0xCC,
- 0x80, 0xC9, 0x04, 0xD0, 0x95, 0xCC, 0x86, 0xC9,
- 0x04, 0xD0, 0x95, 0xCC, 0x88, 0xC9, 0x04, 0xD0,
- 0x96, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x96, 0xCC,
- // Bytes 3740 - 377f
- 0x88, 0xC9, 0x04, 0xD0, 0x97, 0xCC, 0x88, 0xC9,
- 0x04, 0xD0, 0x98, 0xCC, 0x80, 0xC9, 0x04, 0xD0,
- 0x98, 0xCC, 0x84, 0xC9, 0x04, 0xD0, 0x98, 0xCC,
- 0x86, 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x88, 0xC9,
- 0x04, 0xD0, 0x9A, 0xCC, 0x81, 0xC9, 0x04, 0xD0,
- 0x9E, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xA3, 0xCC,
- 0x84, 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x86, 0xC9,
- 0x04, 0xD0, 0xA3, 0xCC, 0x88, 0xC9, 0x04, 0xD0,
- // Bytes 3780 - 37bf
- 0xA3, 0xCC, 0x8B, 0xC9, 0x04, 0xD0, 0xA7, 0xCC,
- 0x88, 0xC9, 0x04, 0xD0, 0xAB, 0xCC, 0x88, 0xC9,
- 0x04, 0xD0, 0xAD, 0xCC, 0x88, 0xC9, 0x04, 0xD0,
- 0xB0, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB0, 0xCC,
- 0x88, 0xC9, 0x04, 0xD0, 0xB3, 0xCC, 0x81, 0xC9,
- 0x04, 0xD0, 0xB5, 0xCC, 0x80, 0xC9, 0x04, 0xD0,
- 0xB5, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB5, 0xCC,
- 0x88, 0xC9, 0x04, 0xD0, 0xB6, 0xCC, 0x86, 0xC9,
- // Bytes 37c0 - 37ff
- 0x04, 0xD0, 0xB6, 0xCC, 0x88, 0xC9, 0x04, 0xD0,
- 0xB7, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB8, 0xCC,
- 0x80, 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x84, 0xC9,
- 0x04, 0xD0, 0xB8, 0xCC, 0x86, 0xC9, 0x04, 0xD0,
- 0xB8, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xBA, 0xCC,
- 0x81, 0xC9, 0x04, 0xD0, 0xBE, 0xCC, 0x88, 0xC9,
- 0x04, 0xD1, 0x83, 0xCC, 0x84, 0xC9, 0x04, 0xD1,
- 0x83, 0xCC, 0x86, 0xC9, 0x04, 0xD1, 0x83, 0xCC,
- // Bytes 3800 - 383f
- 0x88, 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x8B, 0xC9,
- 0x04, 0xD1, 0x87, 0xCC, 0x88, 0xC9, 0x04, 0xD1,
- 0x8B, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x8D, 0xCC,
- 0x88, 0xC9, 0x04, 0xD1, 0x96, 0xCC, 0x88, 0xC9,
- 0x04, 0xD1, 0xB4, 0xCC, 0x8F, 0xC9, 0x04, 0xD1,
- 0xB5, 0xCC, 0x8F, 0xC9, 0x04, 0xD3, 0x98, 0xCC,
- 0x88, 0xC9, 0x04, 0xD3, 0x99, 0xCC, 0x88, 0xC9,
- 0x04, 0xD3, 0xA8, 0xCC, 0x88, 0xC9, 0x04, 0xD3,
- // Bytes 3840 - 387f
- 0xA9, 0xCC, 0x88, 0xC9, 0x04, 0xD8, 0xA7, 0xD9,
- 0x93, 0xC9, 0x04, 0xD8, 0xA7, 0xD9, 0x94, 0xC9,
- 0x04, 0xD8, 0xA7, 0xD9, 0x95, 0xB5, 0x04, 0xD9,
- 0x88, 0xD9, 0x94, 0xC9, 0x04, 0xD9, 0x8A, 0xD9,
- 0x94, 0xC9, 0x04, 0xDB, 0x81, 0xD9, 0x94, 0xC9,
- 0x04, 0xDB, 0x92, 0xD9, 0x94, 0xC9, 0x04, 0xDB,
- 0x95, 0xD9, 0x94, 0xC9, 0x05, 0x41, 0xCC, 0x82,
- 0xCC, 0x80, 0xCA, 0x05, 0x41, 0xCC, 0x82, 0xCC,
- // Bytes 3880 - 38bf
- 0x81, 0xCA, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x83,
- 0xCA, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x89, 0xCA,
- 0x05, 0x41, 0xCC, 0x86, 0xCC, 0x80, 0xCA, 0x05,
- 0x41, 0xCC, 0x86, 0xCC, 0x81, 0xCA, 0x05, 0x41,
- 0xCC, 0x86, 0xCC, 0x83, 0xCA, 0x05, 0x41, 0xCC,
- 0x86, 0xCC, 0x89, 0xCA, 0x05, 0x41, 0xCC, 0x87,
- 0xCC, 0x84, 0xCA, 0x05, 0x41, 0xCC, 0x88, 0xCC,
- 0x84, 0xCA, 0x05, 0x41, 0xCC, 0x8A, 0xCC, 0x81,
- // Bytes 38c0 - 38ff
- 0xCA, 0x05, 0x41, 0xCC, 0xA3, 0xCC, 0x82, 0xCA,
- 0x05, 0x41, 0xCC, 0xA3, 0xCC, 0x86, 0xCA, 0x05,
- 0x43, 0xCC, 0xA7, 0xCC, 0x81, 0xCA, 0x05, 0x45,
- 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05, 0x45, 0xCC,
- 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC, 0x82,
- 0xCC, 0x83, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC,
- 0x89, 0xCA, 0x05, 0x45, 0xCC, 0x84, 0xCC, 0x80,
- 0xCA, 0x05, 0x45, 0xCC, 0x84, 0xCC, 0x81, 0xCA,
- // Bytes 3900 - 393f
- 0x05, 0x45, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05,
- 0x45, 0xCC, 0xA7, 0xCC, 0x86, 0xCA, 0x05, 0x49,
- 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05, 0x4C, 0xCC,
- 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x4F, 0xCC, 0x82,
- 0xCC, 0x80, 0xCA, 0x05, 0x4F, 0xCC, 0x82, 0xCC,
- 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x83,
- 0xCA, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x89, 0xCA,
- 0x05, 0x4F, 0xCC, 0x83, 0xCC, 0x81, 0xCA, 0x05,
- // Bytes 3940 - 397f
- 0x4F, 0xCC, 0x83, 0xCC, 0x84, 0xCA, 0x05, 0x4F,
- 0xCC, 0x83, 0xCC, 0x88, 0xCA, 0x05, 0x4F, 0xCC,
- 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x4F, 0xCC, 0x84,
- 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x87, 0xCC,
- 0x84, 0xCA, 0x05, 0x4F, 0xCC, 0x88, 0xCC, 0x84,
- 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0x80, 0xCA,
- 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0x81, 0xCA, 0x05,
- 0x4F, 0xCC, 0x9B, 0xCC, 0x83, 0xCA, 0x05, 0x4F,
- // Bytes 3980 - 39bf
- 0xCC, 0x9B, 0xCC, 0x89, 0xCA, 0x05, 0x4F, 0xCC,
- 0x9B, 0xCC, 0xA3, 0xB6, 0x05, 0x4F, 0xCC, 0xA3,
- 0xCC, 0x82, 0xCA, 0x05, 0x4F, 0xCC, 0xA8, 0xCC,
- 0x84, 0xCA, 0x05, 0x52, 0xCC, 0xA3, 0xCC, 0x84,
- 0xCA, 0x05, 0x53, 0xCC, 0x81, 0xCC, 0x87, 0xCA,
- 0x05, 0x53, 0xCC, 0x8C, 0xCC, 0x87, 0xCA, 0x05,
- 0x53, 0xCC, 0xA3, 0xCC, 0x87, 0xCA, 0x05, 0x55,
- 0xCC, 0x83, 0xCC, 0x81, 0xCA, 0x05, 0x55, 0xCC,
- // Bytes 39c0 - 39ff
- 0x84, 0xCC, 0x88, 0xCA, 0x05, 0x55, 0xCC, 0x88,
- 0xCC, 0x80, 0xCA, 0x05, 0x55, 0xCC, 0x88, 0xCC,
- 0x81, 0xCA, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x84,
- 0xCA, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x8C, 0xCA,
- 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0x80, 0xCA, 0x05,
- 0x55, 0xCC, 0x9B, 0xCC, 0x81, 0xCA, 0x05, 0x55,
- 0xCC, 0x9B, 0xCC, 0x83, 0xCA, 0x05, 0x55, 0xCC,
- 0x9B, 0xCC, 0x89, 0xCA, 0x05, 0x55, 0xCC, 0x9B,
- // Bytes 3a00 - 3a3f
- 0xCC, 0xA3, 0xB6, 0x05, 0x61, 0xCC, 0x82, 0xCC,
- 0x80, 0xCA, 0x05, 0x61, 0xCC, 0x82, 0xCC, 0x81,
- 0xCA, 0x05, 0x61, 0xCC, 0x82, 0xCC, 0x83, 0xCA,
- 0x05, 0x61, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05,
- 0x61, 0xCC, 0x86, 0xCC, 0x80, 0xCA, 0x05, 0x61,
- 0xCC, 0x86, 0xCC, 0x81, 0xCA, 0x05, 0x61, 0xCC,
- 0x86, 0xCC, 0x83, 0xCA, 0x05, 0x61, 0xCC, 0x86,
- 0xCC, 0x89, 0xCA, 0x05, 0x61, 0xCC, 0x87, 0xCC,
- // Bytes 3a40 - 3a7f
- 0x84, 0xCA, 0x05, 0x61, 0xCC, 0x88, 0xCC, 0x84,
- 0xCA, 0x05, 0x61, 0xCC, 0x8A, 0xCC, 0x81, 0xCA,
- 0x05, 0x61, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05,
- 0x61, 0xCC, 0xA3, 0xCC, 0x86, 0xCA, 0x05, 0x63,
- 0xCC, 0xA7, 0xCC, 0x81, 0xCA, 0x05, 0x65, 0xCC,
- 0x82, 0xCC, 0x80, 0xCA, 0x05, 0x65, 0xCC, 0x82,
- 0xCC, 0x81, 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC,
- 0x83, 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x89,
- // Bytes 3a80 - 3abf
- 0xCA, 0x05, 0x65, 0xCC, 0x84, 0xCC, 0x80, 0xCA,
- 0x05, 0x65, 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05,
- 0x65, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x65,
- 0xCC, 0xA7, 0xCC, 0x86, 0xCA, 0x05, 0x69, 0xCC,
- 0x88, 0xCC, 0x81, 0xCA, 0x05, 0x6C, 0xCC, 0xA3,
- 0xCC, 0x84, 0xCA, 0x05, 0x6F, 0xCC, 0x82, 0xCC,
- 0x80, 0xCA, 0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x81,
- 0xCA, 0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x83, 0xCA,
- // Bytes 3ac0 - 3aff
- 0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05,
- 0x6F, 0xCC, 0x83, 0xCC, 0x81, 0xCA, 0x05, 0x6F,
- 0xCC, 0x83, 0xCC, 0x84, 0xCA, 0x05, 0x6F, 0xCC,
- 0x83, 0xCC, 0x88, 0xCA, 0x05, 0x6F, 0xCC, 0x84,
- 0xCC, 0x80, 0xCA, 0x05, 0x6F, 0xCC, 0x84, 0xCC,
- 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x87, 0xCC, 0x84,
- 0xCA, 0x05, 0x6F, 0xCC, 0x88, 0xCC, 0x84, 0xCA,
- 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0x80, 0xCA, 0x05,
- // Bytes 3b00 - 3b3f
- 0x6F, 0xCC, 0x9B, 0xCC, 0x81, 0xCA, 0x05, 0x6F,
- 0xCC, 0x9B, 0xCC, 0x83, 0xCA, 0x05, 0x6F, 0xCC,
- 0x9B, 0xCC, 0x89, 0xCA, 0x05, 0x6F, 0xCC, 0x9B,
- 0xCC, 0xA3, 0xB6, 0x05, 0x6F, 0xCC, 0xA3, 0xCC,
- 0x82, 0xCA, 0x05, 0x6F, 0xCC, 0xA8, 0xCC, 0x84,
- 0xCA, 0x05, 0x72, 0xCC, 0xA3, 0xCC, 0x84, 0xCA,
- 0x05, 0x73, 0xCC, 0x81, 0xCC, 0x87, 0xCA, 0x05,
- 0x73, 0xCC, 0x8C, 0xCC, 0x87, 0xCA, 0x05, 0x73,
- // Bytes 3b40 - 3b7f
- 0xCC, 0xA3, 0xCC, 0x87, 0xCA, 0x05, 0x75, 0xCC,
- 0x83, 0xCC, 0x81, 0xCA, 0x05, 0x75, 0xCC, 0x84,
- 0xCC, 0x88, 0xCA, 0x05, 0x75, 0xCC, 0x88, 0xCC,
- 0x80, 0xCA, 0x05, 0x75, 0xCC, 0x88, 0xCC, 0x81,
- 0xCA, 0x05, 0x75, 0xCC, 0x88, 0xCC, 0x84, 0xCA,
- 0x05, 0x75, 0xCC, 0x88, 0xCC, 0x8C, 0xCA, 0x05,
- 0x75, 0xCC, 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x75,
- 0xCC, 0x9B, 0xCC, 0x81, 0xCA, 0x05, 0x75, 0xCC,
- // Bytes 3b80 - 3bbf
- 0x9B, 0xCC, 0x83, 0xCA, 0x05, 0x75, 0xCC, 0x9B,
- 0xCC, 0x89, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC,
- 0xA3, 0xB6, 0x05, 0xE1, 0xBE, 0xBF, 0xCC, 0x80,
- 0xCA, 0x05, 0xE1, 0xBE, 0xBF, 0xCC, 0x81, 0xCA,
- 0x05, 0xE1, 0xBE, 0xBF, 0xCD, 0x82, 0xCA, 0x05,
- 0xE1, 0xBF, 0xBE, 0xCC, 0x80, 0xCA, 0x05, 0xE1,
- 0xBF, 0xBE, 0xCC, 0x81, 0xCA, 0x05, 0xE1, 0xBF,
- 0xBE, 0xCD, 0x82, 0xCA, 0x05, 0xE2, 0x86, 0x90,
- // Bytes 3bc0 - 3bff
- 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x86, 0x92, 0xCC,
- 0xB8, 0x05, 0x05, 0xE2, 0x86, 0x94, 0xCC, 0xB8,
- 0x05, 0x05, 0xE2, 0x87, 0x90, 0xCC, 0xB8, 0x05,
- 0x05, 0xE2, 0x87, 0x92, 0xCC, 0xB8, 0x05, 0x05,
- 0xE2, 0x87, 0x94, 0xCC, 0xB8, 0x05, 0x05, 0xE2,
- 0x88, 0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88,
- 0x88, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x8B,
- 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, 0xA3, 0xCC,
- // Bytes 3c00 - 3c3f
- 0xB8, 0x05, 0x05, 0xE2, 0x88, 0xA5, 0xCC, 0xB8,
- 0x05, 0x05, 0xE2, 0x88, 0xBC, 0xCC, 0xB8, 0x05,
- 0x05, 0xE2, 0x89, 0x83, 0xCC, 0xB8, 0x05, 0x05,
- 0xE2, 0x89, 0x85, 0xCC, 0xB8, 0x05, 0x05, 0xE2,
- 0x89, 0x88, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89,
- 0x8D, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xA1,
- 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xA4, 0xCC,
- 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xA5, 0xCC, 0xB8,
- // Bytes 3c40 - 3c7f
- 0x05, 0x05, 0xE2, 0x89, 0xB2, 0xCC, 0xB8, 0x05,
- 0x05, 0xE2, 0x89, 0xB3, 0xCC, 0xB8, 0x05, 0x05,
- 0xE2, 0x89, 0xB6, 0xCC, 0xB8, 0x05, 0x05, 0xE2,
- 0x89, 0xB7, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89,
- 0xBA, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBB,
- 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBC, 0xCC,
- 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBD, 0xCC, 0xB8,
- 0x05, 0x05, 0xE2, 0x8A, 0x82, 0xCC, 0xB8, 0x05,
- // Bytes 3c80 - 3cbf
- 0x05, 0xE2, 0x8A, 0x83, 0xCC, 0xB8, 0x05, 0x05,
- 0xE2, 0x8A, 0x86, 0xCC, 0xB8, 0x05, 0x05, 0xE2,
- 0x8A, 0x87, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A,
- 0x91, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x92,
- 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xA2, 0xCC,
- 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xA8, 0xCC, 0xB8,
- 0x05, 0x05, 0xE2, 0x8A, 0xA9, 0xCC, 0xB8, 0x05,
- 0x05, 0xE2, 0x8A, 0xAB, 0xCC, 0xB8, 0x05, 0x05,
- // Bytes 3cc0 - 3cff
- 0xE2, 0x8A, 0xB2, 0xCC, 0xB8, 0x05, 0x05, 0xE2,
- 0x8A, 0xB3, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A,
- 0xB4, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB5,
- 0xCC, 0xB8, 0x05, 0x06, 0xCE, 0x91, 0xCC, 0x93,
- 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0x91, 0xCC, 0x94,
- 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0x95, 0xCC, 0x93,
- 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0x95, 0xCC, 0x93,
- 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0x95, 0xCC, 0x94,
- // Bytes 3d00 - 3d3f
- 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0x95, 0xCC, 0x94,
- 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0x97, 0xCC, 0x93,
- 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0x97, 0xCC, 0x94,
- 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0x99, 0xCC, 0x93,
- 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0x99, 0xCC, 0x93,
- 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0x99, 0xCC, 0x93,
- 0xCD, 0x82, 0xCA, 0x06, 0xCE, 0x99, 0xCC, 0x94,
- 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0x99, 0xCC, 0x94,
- // Bytes 3d40 - 3d7f
- 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0x99, 0xCC, 0x94,
- 0xCD, 0x82, 0xCA, 0x06, 0xCE, 0x9F, 0xCC, 0x93,
- 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0x9F, 0xCC, 0x93,
- 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0x9F, 0xCC, 0x94,
- 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0x9F, 0xCC, 0x94,
- 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xA5, 0xCC, 0x94,
- 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xA5, 0xCC, 0x94,
- 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xA5, 0xCC, 0x94,
- // Bytes 3d80 - 3dbf
- 0xCD, 0x82, 0xCA, 0x06, 0xCE, 0xA9, 0xCC, 0x93,
- 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xA9, 0xCC, 0x94,
- 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB1, 0xCC, 0x80,
- 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB1, 0xCC, 0x81,
- 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB1, 0xCC, 0x93,
- 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB1, 0xCC, 0x94,
- 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB1, 0xCD, 0x82,
- 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB5, 0xCC, 0x93,
- // Bytes 3dc0 - 3dff
- 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xB5, 0xCC, 0x93,
- 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xB5, 0xCC, 0x94,
- 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xB5, 0xCC, 0x94,
- 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xB7, 0xCC, 0x80,
- 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB7, 0xCC, 0x81,
- 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB7, 0xCC, 0x93,
- 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB7, 0xCC, 0x94,
- 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB7, 0xCD, 0x82,
- // Bytes 3e00 - 3e3f
- 0xCD, 0x85, 0xDA, 0x06, 0xCE, 0xB9, 0xCC, 0x88,
- 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x88,
- 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x88,
- 0xCD, 0x82, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x93,
- 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x93,
- 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x93,
- 0xCD, 0x82, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x94,
- 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x94,
- // Bytes 3e40 - 3e7f
- 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xB9, 0xCC, 0x94,
- 0xCD, 0x82, 0xCA, 0x06, 0xCE, 0xBF, 0xCC, 0x93,
- 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xBF, 0xCC, 0x93,
- 0xCC, 0x81, 0xCA, 0x06, 0xCE, 0xBF, 0xCC, 0x94,
- 0xCC, 0x80, 0xCA, 0x06, 0xCE, 0xBF, 0xCC, 0x94,
- 0xCC, 0x81, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x88,
- 0xCC, 0x80, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x88,
- 0xCC, 0x81, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x88,
- // Bytes 3e80 - 3ebf
- 0xCD, 0x82, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x93,
- 0xCC, 0x80, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x93,
- 0xCC, 0x81, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x93,
- 0xCD, 0x82, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x94,
- 0xCC, 0x80, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x94,
- 0xCC, 0x81, 0xCA, 0x06, 0xCF, 0x85, 0xCC, 0x94,
- 0xCD, 0x82, 0xCA, 0x06, 0xCF, 0x89, 0xCC, 0x80,
- 0xCD, 0x85, 0xDA, 0x06, 0xCF, 0x89, 0xCC, 0x81,
- // Bytes 3ec0 - 3eff
- 0xCD, 0x85, 0xDA, 0x06, 0xCF, 0x89, 0xCC, 0x93,
- 0xCD, 0x85, 0xDA, 0x06, 0xCF, 0x89, 0xCC, 0x94,
- 0xCD, 0x85, 0xDA, 0x06, 0xCF, 0x89, 0xCD, 0x82,
- 0xCD, 0x85, 0xDA, 0x06, 0xE0, 0xA4, 0xA8, 0xE0,
- 0xA4, 0xBC, 0x09, 0x06, 0xE0, 0xA4, 0xB0, 0xE0,
- 0xA4, 0xBC, 0x09, 0x06, 0xE0, 0xA4, 0xB3, 0xE0,
- 0xA4, 0xBC, 0x09, 0x06, 0xE0, 0xB1, 0x86, 0xE0,
- 0xB1, 0x96, 0x85, 0x06, 0xE0, 0xB7, 0x99, 0xE0,
- // Bytes 3f00 - 3f3f
- 0xB7, 0x8A, 0x11, 0x06, 0xE3, 0x81, 0x86, 0xE3,
- 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x8B, 0xE3,
- 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x8D, 0xE3,
- 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x8F, 0xE3,
- 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x91, 0xE3,
- 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x93, 0xE3,
- 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x95, 0xE3,
- 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x97, 0xE3,
- // Bytes 3f40 - 3f7f
- 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x99, 0xE3,
- 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x9B, 0xE3,
- 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x9D, 0xE3,
- 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0x9F, 0xE3,
- 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xA1, 0xE3,
- 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xA4, 0xE3,
- 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xA6, 0xE3,
- 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xA8, 0xE3,
- // Bytes 3f80 - 3fbf
- 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xAF, 0xE3,
- 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xAF, 0xE3,
- 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x81, 0xB2, 0xE3,
- 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xB2, 0xE3,
- 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x81, 0xB5, 0xE3,
- 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xB5, 0xE3,
- 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x81, 0xB8, 0xE3,
- 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xB8, 0xE3,
- // Bytes 3fc0 - 3fff
- 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x81, 0xBB, 0xE3,
- 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x81, 0xBB, 0xE3,
- 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x82, 0x9D, 0xE3,
- 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xA6, 0xE3,
- 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xAB, 0xE3,
- 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xAD, 0xE3,
- 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xAF, 0xE3,
- 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xB1, 0xE3,
- // Bytes 4000 - 403f
- 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xB3, 0xE3,
- 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xB5, 0xE3,
- 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xB7, 0xE3,
- 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xB9, 0xE3,
- 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xBB, 0xE3,
- 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xBD, 0xE3,
- 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x82, 0xBF, 0xE3,
- 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x81, 0xE3,
- // Bytes 4040 - 407f
- 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x84, 0xE3,
- 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x86, 0xE3,
- 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x88, 0xE3,
- 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x8F, 0xE3,
- 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x8F, 0xE3,
- 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x83, 0x92, 0xE3,
- 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x92, 0xE3,
- 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x83, 0x95, 0xE3,
- // Bytes 4080 - 40bf
- 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x95, 0xE3,
- 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x83, 0x98, 0xE3,
- 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x98, 0xE3,
- 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x83, 0x9B, 0xE3,
- 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0x9B, 0xE3,
- 0x82, 0x9A, 0x0D, 0x06, 0xE3, 0x83, 0xAF, 0xE3,
- 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0xB0, 0xE3,
- 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0xB1, 0xE3,
- // Bytes 40c0 - 40ff
- 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0xB2, 0xE3,
- 0x82, 0x99, 0x0D, 0x06, 0xE3, 0x83, 0xBD, 0xE3,
- 0x82, 0x99, 0x0D, 0x08, 0xCE, 0x91, 0xCC, 0x93,
- 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x91,
- 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08,
- 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85,
- 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x80,
- 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x94,
- // Bytes 4100 - 413f
- 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x91,
- 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08,
- 0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85,
- 0xDB, 0x08, 0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x81,
- 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, 0x93,
- 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97,
- 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08,
- 0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85,
- // Bytes 4140 - 417f
- 0xDB, 0x08, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x82,
- 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x93,
- 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9,
- 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08,
- 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85,
- 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x80,
- 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x94,
- 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9,
- // Bytes 4180 - 41bf
- 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08,
- 0xCE, 0xB1, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85,
- 0xDB, 0x08, 0xCE, 0xB1, 0xCC, 0x93, 0xCC, 0x81,
- 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, 0x93,
- 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1,
- 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08,
- 0xCE, 0xB1, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85,
- 0xDB, 0x08, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x82,
- // Bytes 41c0 - 41ff
- 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x93,
- 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7,
- 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08,
- 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85,
- 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x80,
- 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x94,
- 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7,
- 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08,
- // Bytes 4200 - 423f
- 0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85,
- 0xDB, 0x08, 0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x81,
- 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, 0x93,
- 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89,
- 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08,
- 0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85,
- 0xDB, 0x08, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x82,
- 0xCD, 0x85, 0xDB, 0x08, 0xF0, 0x91, 0x82, 0x99,
- // Bytes 4240 - 427f
- 0xF0, 0x91, 0x82, 0xBA, 0x09, 0x08, 0xF0, 0x91,
- 0x82, 0x9B, 0xF0, 0x91, 0x82, 0xBA, 0x09, 0x08,
- 0xF0, 0x91, 0x82, 0xA5, 0xF0, 0x91, 0x82, 0xBA,
- 0x09, 0x42, 0xC2, 0xB4, 0x01, 0x43, 0x20, 0xCC,
- 0x81, 0xC9, 0x43, 0x20, 0xCC, 0x83, 0xC9, 0x43,
- 0x20, 0xCC, 0x84, 0xC9, 0x43, 0x20, 0xCC, 0x85,
- 0xC9, 0x43, 0x20, 0xCC, 0x86, 0xC9, 0x43, 0x20,
- 0xCC, 0x87, 0xC9, 0x43, 0x20, 0xCC, 0x88, 0xC9,
- // Bytes 4280 - 42bf
- 0x43, 0x20, 0xCC, 0x8A, 0xC9, 0x43, 0x20, 0xCC,
- 0x8B, 0xC9, 0x43, 0x20, 0xCC, 0x93, 0xC9, 0x43,
- 0x20, 0xCC, 0x94, 0xC9, 0x43, 0x20, 0xCC, 0xA7,
- 0xA5, 0x43, 0x20, 0xCC, 0xA8, 0xA5, 0x43, 0x20,
- 0xCC, 0xB3, 0xB5, 0x43, 0x20, 0xCD, 0x82, 0xC9,
- 0x43, 0x20, 0xCD, 0x85, 0xD9, 0x43, 0x20, 0xD9,
- 0x8B, 0x59, 0x43, 0x20, 0xD9, 0x8C, 0x5D, 0x43,
- 0x20, 0xD9, 0x8D, 0x61, 0x43, 0x20, 0xD9, 0x8E,
- // Bytes 42c0 - 42ff
- 0x65, 0x43, 0x20, 0xD9, 0x8F, 0x69, 0x43, 0x20,
- 0xD9, 0x90, 0x6D, 0x43, 0x20, 0xD9, 0x91, 0x71,
- 0x43, 0x20, 0xD9, 0x92, 0x75, 0x43, 0x41, 0xCC,
- 0x8A, 0xC9, 0x43, 0x73, 0xCC, 0x87, 0xC9, 0x44,
- 0x20, 0xE3, 0x82, 0x99, 0x0D, 0x44, 0x20, 0xE3,
- 0x82, 0x9A, 0x0D, 0x44, 0xC2, 0xA8, 0xCC, 0x81,
- 0xCA, 0x44, 0xCE, 0x91, 0xCC, 0x81, 0xC9, 0x44,
- 0xCE, 0x95, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0x97,
- // Bytes 4300 - 433f
- 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0x99, 0xCC, 0x81,
- 0xC9, 0x44, 0xCE, 0x9F, 0xCC, 0x81, 0xC9, 0x44,
- 0xCE, 0xA5, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xA5,
- 0xCC, 0x88, 0xC9, 0x44, 0xCE, 0xA9, 0xCC, 0x81,
- 0xC9, 0x44, 0xCE, 0xB1, 0xCC, 0x81, 0xC9, 0x44,
- 0xCE, 0xB5, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xB7,
- 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xB9, 0xCC, 0x81,
- 0xC9, 0x44, 0xCE, 0xBF, 0xCC, 0x81, 0xC9, 0x44,
- // Bytes 4340 - 437f
- 0xCF, 0x85, 0xCC, 0x81, 0xC9, 0x44, 0xCF, 0x89,
- 0xCC, 0x81, 0xC9, 0x44, 0xD7, 0x90, 0xD6, 0xB7,
- 0x31, 0x44, 0xD7, 0x90, 0xD6, 0xB8, 0x35, 0x44,
- 0xD7, 0x90, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x91,
- 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x91, 0xD6, 0xBF,
- 0x49, 0x44, 0xD7, 0x92, 0xD6, 0xBC, 0x41, 0x44,
- 0xD7, 0x93, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x94,
- 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x95, 0xD6, 0xB9,
- // Bytes 4380 - 43bf
- 0x39, 0x44, 0xD7, 0x95, 0xD6, 0xBC, 0x41, 0x44,
- 0xD7, 0x96, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x98,
- 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x99, 0xD6, 0xB4,
- 0x25, 0x44, 0xD7, 0x99, 0xD6, 0xBC, 0x41, 0x44,
- 0xD7, 0x9A, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9B,
- 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9B, 0xD6, 0xBF,
- 0x49, 0x44, 0xD7, 0x9C, 0xD6, 0xBC, 0x41, 0x44,
- 0xD7, 0x9E, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA0,
- // Bytes 43c0 - 43ff
- 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA1, 0xD6, 0xBC,
- 0x41, 0x44, 0xD7, 0xA3, 0xD6, 0xBC, 0x41, 0x44,
- 0xD7, 0xA4, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA4,
- 0xD6, 0xBF, 0x49, 0x44, 0xD7, 0xA6, 0xD6, 0xBC,
- 0x41, 0x44, 0xD7, 0xA7, 0xD6, 0xBC, 0x41, 0x44,
- 0xD7, 0xA8, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA9,
- 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA9, 0xD7, 0x81,
- 0x4D, 0x44, 0xD7, 0xA9, 0xD7, 0x82, 0x51, 0x44,
- // Bytes 4400 - 443f
- 0xD7, 0xAA, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xB2,
- 0xD6, 0xB7, 0x31, 0x44, 0xD8, 0xA7, 0xD9, 0x8B,
- 0x59, 0x44, 0xD8, 0xA7, 0xD9, 0x93, 0xC9, 0x44,
- 0xD8, 0xA7, 0xD9, 0x94, 0xC9, 0x44, 0xD8, 0xA7,
- 0xD9, 0x95, 0xB5, 0x44, 0xD8, 0xB0, 0xD9, 0xB0,
- 0x79, 0x44, 0xD8, 0xB1, 0xD9, 0xB0, 0x79, 0x44,
- 0xD9, 0x80, 0xD9, 0x8B, 0x59, 0x44, 0xD9, 0x80,
- 0xD9, 0x8E, 0x65, 0x44, 0xD9, 0x80, 0xD9, 0x8F,
- // Bytes 4440 - 447f
- 0x69, 0x44, 0xD9, 0x80, 0xD9, 0x90, 0x6D, 0x44,
- 0xD9, 0x80, 0xD9, 0x91, 0x71, 0x44, 0xD9, 0x80,
- 0xD9, 0x92, 0x75, 0x44, 0xD9, 0x87, 0xD9, 0xB0,
- 0x79, 0x44, 0xD9, 0x88, 0xD9, 0x94, 0xC9, 0x44,
- 0xD9, 0x89, 0xD9, 0xB0, 0x79, 0x44, 0xD9, 0x8A,
- 0xD9, 0x94, 0xC9, 0x44, 0xDB, 0x92, 0xD9, 0x94,
- 0xC9, 0x44, 0xDB, 0x95, 0xD9, 0x94, 0xC9, 0x45,
- 0x20, 0xCC, 0x88, 0xCC, 0x80, 0xCA, 0x45, 0x20,
- // Bytes 4480 - 44bf
- 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x45, 0x20, 0xCC,
- 0x88, 0xCD, 0x82, 0xCA, 0x45, 0x20, 0xCC, 0x93,
- 0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, 0x93, 0xCC,
- 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x93, 0xCD, 0x82,
- 0xCA, 0x45, 0x20, 0xCC, 0x94, 0xCC, 0x80, 0xCA,
- 0x45, 0x20, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x45,
- 0x20, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x45, 0x20,
- 0xD9, 0x8C, 0xD9, 0x91, 0x72, 0x45, 0x20, 0xD9,
- // Bytes 44c0 - 44ff
- 0x8D, 0xD9, 0x91, 0x72, 0x45, 0x20, 0xD9, 0x8E,
- 0xD9, 0x91, 0x72, 0x45, 0x20, 0xD9, 0x8F, 0xD9,
- 0x91, 0x72, 0x45, 0x20, 0xD9, 0x90, 0xD9, 0x91,
- 0x72, 0x45, 0x20, 0xD9, 0x91, 0xD9, 0xB0, 0x7A,
- 0x45, 0xE2, 0xAB, 0x9D, 0xCC, 0xB8, 0x05, 0x46,
- 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x46,
- 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x46,
- 0xD7, 0xA9, 0xD6, 0xBC, 0xD7, 0x81, 0x4E, 0x46,
- // Bytes 4500 - 453f
- 0xD7, 0xA9, 0xD6, 0xBC, 0xD7, 0x82, 0x52, 0x46,
- 0xD9, 0x80, 0xD9, 0x8E, 0xD9, 0x91, 0x72, 0x46,
- 0xD9, 0x80, 0xD9, 0x8F, 0xD9, 0x91, 0x72, 0x46,
- 0xD9, 0x80, 0xD9, 0x90, 0xD9, 0x91, 0x72, 0x46,
- 0xE0, 0xA4, 0x95, 0xE0, 0xA4, 0xBC, 0x09, 0x46,
- 0xE0, 0xA4, 0x96, 0xE0, 0xA4, 0xBC, 0x09, 0x46,
- 0xE0, 0xA4, 0x97, 0xE0, 0xA4, 0xBC, 0x09, 0x46,
- 0xE0, 0xA4, 0x9C, 0xE0, 0xA4, 0xBC, 0x09, 0x46,
- // Bytes 4540 - 457f
- 0xE0, 0xA4, 0xA1, 0xE0, 0xA4, 0xBC, 0x09, 0x46,
- 0xE0, 0xA4, 0xA2, 0xE0, 0xA4, 0xBC, 0x09, 0x46,
- 0xE0, 0xA4, 0xAB, 0xE0, 0xA4, 0xBC, 0x09, 0x46,
- 0xE0, 0xA4, 0xAF, 0xE0, 0xA4, 0xBC, 0x09, 0x46,
- 0xE0, 0xA6, 0xA1, 0xE0, 0xA6, 0xBC, 0x09, 0x46,
- 0xE0, 0xA6, 0xA2, 0xE0, 0xA6, 0xBC, 0x09, 0x46,
- 0xE0, 0xA6, 0xAF, 0xE0, 0xA6, 0xBC, 0x09, 0x46,
- 0xE0, 0xA8, 0x96, 0xE0, 0xA8, 0xBC, 0x09, 0x46,
- // Bytes 4580 - 45bf
- 0xE0, 0xA8, 0x97, 0xE0, 0xA8, 0xBC, 0x09, 0x46,
- 0xE0, 0xA8, 0x9C, 0xE0, 0xA8, 0xBC, 0x09, 0x46,
- 0xE0, 0xA8, 0xAB, 0xE0, 0xA8, 0xBC, 0x09, 0x46,
- 0xE0, 0xA8, 0xB2, 0xE0, 0xA8, 0xBC, 0x09, 0x46,
- 0xE0, 0xA8, 0xB8, 0xE0, 0xA8, 0xBC, 0x09, 0x46,
- 0xE0, 0xAC, 0xA1, 0xE0, 0xAC, 0xBC, 0x09, 0x46,
- 0xE0, 0xAC, 0xA2, 0xE0, 0xAC, 0xBC, 0x09, 0x46,
- 0xE0, 0xBE, 0xB2, 0xE0, 0xBE, 0x80, 0x9D, 0x46,
- // Bytes 45c0 - 45ff
- 0xE0, 0xBE, 0xB3, 0xE0, 0xBE, 0x80, 0x9D, 0x46,
- 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0x0D, 0x48,
- 0xF0, 0x9D, 0x85, 0x97, 0xF0, 0x9D, 0x85, 0xA5,
- 0xAD, 0x48, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D,
- 0x85, 0xA5, 0xAD, 0x48, 0xF0, 0x9D, 0x86, 0xB9,
- 0xF0, 0x9D, 0x85, 0xA5, 0xAD, 0x48, 0xF0, 0x9D,
- 0x86, 0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xAD, 0x49,
- 0xE0, 0xBE, 0xB2, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE,
- // Bytes 4600 - 463f
- 0x80, 0x9E, 0x49, 0xE0, 0xBE, 0xB3, 0xE0, 0xBD,
- 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x4C, 0xF0, 0x9D,
- 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D,
- 0x85, 0xAE, 0xAE, 0x4C, 0xF0, 0x9D, 0x85, 0x98,
- 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF,
- 0xAE, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D,
- 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB0, 0xAE, 0x4C,
- 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5,
- // Bytes 4640 - 467f
- 0xF0, 0x9D, 0x85, 0xB1, 0xAE, 0x4C, 0xF0, 0x9D,
- 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D,
- 0x85, 0xB2, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, 0xB9,
- 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE,
- 0xAE, 0x4C, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D,
- 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE, 0x4C,
- 0xF0, 0x9D, 0x86, 0xBA, 0xF0, 0x9D, 0x85, 0xA5,
- 0xF0, 0x9D, 0x85, 0xAE, 0xAE, 0x4C, 0xF0, 0x9D,
- // Bytes 4680 - 46bf
- 0x86, 0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D,
- 0x85, 0xAF, 0xAE, 0x83, 0x41, 0xCC, 0x82, 0xC9,
- 0x83, 0x41, 0xCC, 0x86, 0xC9, 0x83, 0x41, 0xCC,
- 0x87, 0xC9, 0x83, 0x41, 0xCC, 0x88, 0xC9, 0x83,
- 0x41, 0xCC, 0x8A, 0xC9, 0x83, 0x41, 0xCC, 0xA3,
- 0xB5, 0x83, 0x43, 0xCC, 0xA7, 0xA5, 0x83, 0x45,
- 0xCC, 0x82, 0xC9, 0x83, 0x45, 0xCC, 0x84, 0xC9,
- 0x83, 0x45, 0xCC, 0xA3, 0xB5, 0x83, 0x45, 0xCC,
- // Bytes 46c0 - 46ff
- 0xA7, 0xA5, 0x83, 0x49, 0xCC, 0x88, 0xC9, 0x83,
- 0x4C, 0xCC, 0xA3, 0xB5, 0x83, 0x4F, 0xCC, 0x82,
- 0xC9, 0x83, 0x4F, 0xCC, 0x83, 0xC9, 0x83, 0x4F,
- 0xCC, 0x84, 0xC9, 0x83, 0x4F, 0xCC, 0x87, 0xC9,
- 0x83, 0x4F, 0xCC, 0x88, 0xC9, 0x83, 0x4F, 0xCC,
- 0x9B, 0xAD, 0x83, 0x4F, 0xCC, 0xA3, 0xB5, 0x83,
- 0x4F, 0xCC, 0xA8, 0xA5, 0x83, 0x52, 0xCC, 0xA3,
- 0xB5, 0x83, 0x53, 0xCC, 0x81, 0xC9, 0x83, 0x53,
- // Bytes 4700 - 473f
- 0xCC, 0x8C, 0xC9, 0x83, 0x53, 0xCC, 0xA3, 0xB5,
- 0x83, 0x55, 0xCC, 0x83, 0xC9, 0x83, 0x55, 0xCC,
- 0x84, 0xC9, 0x83, 0x55, 0xCC, 0x88, 0xC9, 0x83,
- 0x55, 0xCC, 0x9B, 0xAD, 0x83, 0x61, 0xCC, 0x82,
- 0xC9, 0x83, 0x61, 0xCC, 0x86, 0xC9, 0x83, 0x61,
- 0xCC, 0x87, 0xC9, 0x83, 0x61, 0xCC, 0x88, 0xC9,
- 0x83, 0x61, 0xCC, 0x8A, 0xC9, 0x83, 0x61, 0xCC,
- 0xA3, 0xB5, 0x83, 0x63, 0xCC, 0xA7, 0xA5, 0x83,
- // Bytes 4740 - 477f
- 0x65, 0xCC, 0x82, 0xC9, 0x83, 0x65, 0xCC, 0x84,
- 0xC9, 0x83, 0x65, 0xCC, 0xA3, 0xB5, 0x83, 0x65,
- 0xCC, 0xA7, 0xA5, 0x83, 0x69, 0xCC, 0x88, 0xC9,
- 0x83, 0x6C, 0xCC, 0xA3, 0xB5, 0x83, 0x6F, 0xCC,
- 0x82, 0xC9, 0x83, 0x6F, 0xCC, 0x83, 0xC9, 0x83,
- 0x6F, 0xCC, 0x84, 0xC9, 0x83, 0x6F, 0xCC, 0x87,
- 0xC9, 0x83, 0x6F, 0xCC, 0x88, 0xC9, 0x83, 0x6F,
- 0xCC, 0x9B, 0xAD, 0x83, 0x6F, 0xCC, 0xA3, 0xB5,
- // Bytes 4780 - 47bf
- 0x83, 0x6F, 0xCC, 0xA8, 0xA5, 0x83, 0x72, 0xCC,
- 0xA3, 0xB5, 0x83, 0x73, 0xCC, 0x81, 0xC9, 0x83,
- 0x73, 0xCC, 0x8C, 0xC9, 0x83, 0x73, 0xCC, 0xA3,
- 0xB5, 0x83, 0x75, 0xCC, 0x83, 0xC9, 0x83, 0x75,
- 0xCC, 0x84, 0xC9, 0x83, 0x75, 0xCC, 0x88, 0xC9,
- 0x83, 0x75, 0xCC, 0x9B, 0xAD, 0x84, 0xCE, 0x91,
- 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x91, 0xCC, 0x94,
- 0xC9, 0x84, 0xCE, 0x95, 0xCC, 0x93, 0xC9, 0x84,
- // Bytes 47c0 - 47ff
- 0xCE, 0x95, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0x97,
- 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x97, 0xCC, 0x94,
- 0xC9, 0x84, 0xCE, 0x99, 0xCC, 0x93, 0xC9, 0x84,
- 0xCE, 0x99, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0x9F,
- 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x9F, 0xCC, 0x94,
- 0xC9, 0x84, 0xCE, 0xA5, 0xCC, 0x94, 0xC9, 0x84,
- 0xCE, 0xA9, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xA9,
- 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xB1, 0xCC, 0x80,
- // Bytes 4800 - 483f
- 0xC9, 0x84, 0xCE, 0xB1, 0xCC, 0x81, 0xC9, 0x84,
- 0xCE, 0xB1, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB1,
- 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xB1, 0xCD, 0x82,
- 0xC9, 0x84, 0xCE, 0xB5, 0xCC, 0x93, 0xC9, 0x84,
- 0xCE, 0xB5, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xB7,
- 0xCC, 0x80, 0xC9, 0x84, 0xCE, 0xB7, 0xCC, 0x81,
- 0xC9, 0x84, 0xCE, 0xB7, 0xCC, 0x93, 0xC9, 0x84,
- 0xCE, 0xB7, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xB7,
- // Bytes 4840 - 487f
- 0xCD, 0x82, 0xC9, 0x84, 0xCE, 0xB9, 0xCC, 0x88,
- 0xC9, 0x84, 0xCE, 0xB9, 0xCC, 0x93, 0xC9, 0x84,
- 0xCE, 0xB9, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xBF,
- 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xBF, 0xCC, 0x94,
- 0xC9, 0x84, 0xCF, 0x85, 0xCC, 0x88, 0xC9, 0x84,
- 0xCF, 0x85, 0xCC, 0x93, 0xC9, 0x84, 0xCF, 0x85,
- 0xCC, 0x94, 0xC9, 0x84, 0xCF, 0x89, 0xCC, 0x80,
- 0xC9, 0x84, 0xCF, 0x89, 0xCC, 0x81, 0xC9, 0x84,
- // Bytes 4880 - 48bf
- 0xCF, 0x89, 0xCC, 0x93, 0xC9, 0x84, 0xCF, 0x89,
- 0xCC, 0x94, 0xC9, 0x84, 0xCF, 0x89, 0xCD, 0x82,
- 0xC9, 0x86, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80,
- 0xCA, 0x86, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x81,
- 0xCA, 0x86, 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x82,
- 0xCA, 0x86, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x80,
- 0xCA, 0x86, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x81,
- 0xCA, 0x86, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x82,
- // Bytes 48c0 - 48ff
- 0xCA, 0x86, 0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x80,
- 0xCA, 0x86, 0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x81,
- 0xCA, 0x86, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82,
- 0xCA, 0x86, 0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x80,
- 0xCA, 0x86, 0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x81,
- 0xCA, 0x86, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x82,
- 0xCA, 0x86, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80,
- 0xCA, 0x86, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x81,
- // Bytes 4900 - 493f
- 0xCA, 0x86, 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x82,
- 0xCA, 0x86, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x80,
- 0xCA, 0x86, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x81,
- 0xCA, 0x86, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x82,
- 0xCA, 0x86, 0xCE, 0xB1, 0xCC, 0x93, 0xCC, 0x80,
- 0xCA, 0x86, 0xCE, 0xB1, 0xCC, 0x93, 0xCC, 0x81,
- 0xCA, 0x86, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82,
- 0xCA, 0x86, 0xCE, 0xB1, 0xCC, 0x94, 0xCC, 0x80,
- // Bytes 4940 - 497f
- 0xCA, 0x86, 0xCE, 0xB1, 0xCC, 0x94, 0xCC, 0x81,
- 0xCA, 0x86, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x82,
- 0xCA, 0x86, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80,
- 0xCA, 0x86, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x81,
- 0xCA, 0x86, 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x82,
- 0xCA, 0x86, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x80,
- 0xCA, 0x86, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81,
- 0xCA, 0x86, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x82,
- // Bytes 4980 - 49bf
- 0xCA, 0x86, 0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x80,
- 0xCA, 0x86, 0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x81,
- 0xCA, 0x86, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82,
- 0xCA, 0x86, 0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x80,
- 0xCA, 0x86, 0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x81,
- 0xCA, 0x86, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x82,
- 0xCA, 0x42, 0xCC, 0x80, 0xC9, 0x32, 0x42, 0xCC,
- 0x81, 0xC9, 0x32, 0x42, 0xCC, 0x93, 0xC9, 0x32,
- // Bytes 49c0 - 49ff
- 0x43, 0xE1, 0x85, 0xA1, 0x01, 0x00, 0x43, 0xE1,
- 0x85, 0xA2, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA3,
- 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA4, 0x01, 0x00,
- 0x43, 0xE1, 0x85, 0xA5, 0x01, 0x00, 0x43, 0xE1,
- 0x85, 0xA6, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA7,
- 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA8, 0x01, 0x00,
- 0x43, 0xE1, 0x85, 0xA9, 0x01, 0x00, 0x43, 0xE1,
- 0x85, 0xAA, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAB,
- // Bytes 4a00 - 4a3f
- 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAC, 0x01, 0x00,
- 0x43, 0xE1, 0x85, 0xAD, 0x01, 0x00, 0x43, 0xE1,
- 0x85, 0xAE, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAF,
- 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB0, 0x01, 0x00,
- 0x43, 0xE1, 0x85, 0xB1, 0x01, 0x00, 0x43, 0xE1,
- 0x85, 0xB2, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB3,
- 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB4, 0x01, 0x00,
- 0x43, 0xE1, 0x85, 0xB5, 0x01, 0x00, 0x43, 0xE1,
- // Bytes 4a40 - 4a7f
- 0x86, 0xAA, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xAC,
- 0x01, 0x00, 0x43, 0xE1, 0x86, 0xAD, 0x01, 0x00,
- 0x43, 0xE1, 0x86, 0xB0, 0x01, 0x00, 0x43, 0xE1,
- 0x86, 0xB1, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB2,
- 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB3, 0x01, 0x00,
- 0x43, 0xE1, 0x86, 0xB4, 0x01, 0x00, 0x43, 0xE1,
- 0x86, 0xB5, 0x01, 0x00, 0x44, 0xCC, 0x88, 0xCC,
- 0x81, 0xCA, 0x32, 0x43, 0xE3, 0x82, 0x99, 0x0D,
- // Bytes 4a80 - 4abf
- 0x03, 0x43, 0xE3, 0x82, 0x9A, 0x0D, 0x03, 0x46,
- 0xE0, 0xBD, 0xB1, 0xE0, 0xBD, 0xB2, 0x9E, 0x26,
- 0x46, 0xE0, 0xBD, 0xB1, 0xE0, 0xBD, 0xB4, 0xA2,
- 0x26, 0x46, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80,
- 0x9E, 0x26, 0x00, 0x01,
-}
-
-// lookup returns the trie value for the first UTF-8 encoding in s and
-// the width in bytes of this encoding. The size will be 0 if s does not
-// hold enough bytes to complete the encoding. len(s) must be greater than 0.
-func (t *nfcTrie) lookup(s []byte) (v uint16, sz int) {
- c0 := s[0]
- switch {
- case c0 < 0x80: // is ASCII
- return nfcValues[c0], 1
- case c0 < 0xC2:
- return 0, 1 // Illegal UTF-8: not a starter, not ASCII.
- case c0 < 0xE0: // 2-byte UTF-8
- if len(s) < 2 {
- return 0, 0
- }
- i := nfcIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c1), 2
- case c0 < 0xF0: // 3-byte UTF-8
- if len(s) < 3 {
- return 0, 0
- }
- i := nfcIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = nfcIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c2), 3
- case c0 < 0xF8: // 4-byte UTF-8
- if len(s) < 4 {
- return 0, 0
- }
- i := nfcIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = nfcIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- o = uint32(i)<<6 + uint32(c2)
- i = nfcIndex[o]
- c3 := s[3]
- if c3 < 0x80 || 0xC0 <= c3 {
- return 0, 3 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c3), 4
- }
- // Illegal rune
- return 0, 1
-}
-
-// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.
-// s must start with a full and valid UTF-8 encoded rune.
-func (t *nfcTrie) lookupUnsafe(s []byte) uint16 {
- c0 := s[0]
- if c0 < 0x80 { // is ASCII
- return nfcValues[c0]
- }
- i := nfcIndex[c0]
- if c0 < 0xE0 { // 2-byte UTF-8
- return t.lookupValue(uint32(i), s[1])
- }
- i = nfcIndex[uint32(i)<<6+uint32(s[1])]
- if c0 < 0xF0 { // 3-byte UTF-8
- return t.lookupValue(uint32(i), s[2])
- }
- i = nfcIndex[uint32(i)<<6+uint32(s[2])]
- if c0 < 0xF8 { // 4-byte UTF-8
- return t.lookupValue(uint32(i), s[3])
- }
- return 0
-}
-
-// lookupString returns the trie value for the first UTF-8 encoding in s and
-// the width in bytes of this encoding. The size will be 0 if s does not
-// hold enough bytes to complete the encoding. len(s) must be greater than 0.
-func (t *nfcTrie) lookupString(s string) (v uint16, sz int) {
- c0 := s[0]
- switch {
- case c0 < 0x80: // is ASCII
- return nfcValues[c0], 1
- case c0 < 0xC2:
- return 0, 1 // Illegal UTF-8: not a starter, not ASCII.
- case c0 < 0xE0: // 2-byte UTF-8
- if len(s) < 2 {
- return 0, 0
- }
- i := nfcIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c1), 2
- case c0 < 0xF0: // 3-byte UTF-8
- if len(s) < 3 {
- return 0, 0
- }
- i := nfcIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = nfcIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c2), 3
- case c0 < 0xF8: // 4-byte UTF-8
- if len(s) < 4 {
- return 0, 0
- }
- i := nfcIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = nfcIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- o = uint32(i)<<6 + uint32(c2)
- i = nfcIndex[o]
- c3 := s[3]
- if c3 < 0x80 || 0xC0 <= c3 {
- return 0, 3 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c3), 4
- }
- // Illegal rune
- return 0, 1
-}
-
-// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.
-// s must start with a full and valid UTF-8 encoded rune.
-func (t *nfcTrie) lookupStringUnsafe(s string) uint16 {
- c0 := s[0]
- if c0 < 0x80 { // is ASCII
- return nfcValues[c0]
- }
- i := nfcIndex[c0]
- if c0 < 0xE0 { // 2-byte UTF-8
- return t.lookupValue(uint32(i), s[1])
- }
- i = nfcIndex[uint32(i)<<6+uint32(s[1])]
- if c0 < 0xF0 { // 3-byte UTF-8
- return t.lookupValue(uint32(i), s[2])
- }
- i = nfcIndex[uint32(i)<<6+uint32(s[2])]
- if c0 < 0xF8 { // 4-byte UTF-8
- return t.lookupValue(uint32(i), s[3])
- }
- return 0
-}
-
-// nfcTrie. Total size: 10610 bytes (10.36 KiB). Checksum: 95e8869a9f81e5e6.
-type nfcTrie struct{}
-
-func newNfcTrie(i int) *nfcTrie {
- return &nfcTrie{}
-}
-
-// lookupValue determines the type of block n and looks up the value for b.
-func (t *nfcTrie) lookupValue(n uint32, b byte) uint16 {
- switch {
- case n < 46:
- return uint16(nfcValues[n<<6+uint32(b)])
- default:
- n -= 46
- return uint16(nfcSparse.lookup(n, b))
- }
-}
-
-// nfcValues: 48 blocks, 3072 entries, 6144 bytes
-// The third block is the zero block.
-var nfcValues = [3072]uint16{
- // Block 0x0, offset 0x0
- 0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000,
- // Block 0x1, offset 0x40
- 0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000,
- 0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000,
- 0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000,
- 0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000,
- 0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000,
- 0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000,
- 0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000,
- 0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000,
- 0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000,
- 0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000,
- // Block 0x2, offset 0x80
- // Block 0x3, offset 0xc0
- 0xc0: 0x2f72, 0xc1: 0x2f77, 0xc2: 0x468b, 0xc3: 0x2f7c, 0xc4: 0x469a, 0xc5: 0x469f,
- 0xc6: 0xa000, 0xc7: 0x46a9, 0xc8: 0x2fe5, 0xc9: 0x2fea, 0xca: 0x46ae, 0xcb: 0x2ffe,
- 0xcc: 0x3071, 0xcd: 0x3076, 0xce: 0x307b, 0xcf: 0x46c2, 0xd1: 0x3107,
- 0xd2: 0x312a, 0xd3: 0x312f, 0xd4: 0x46cc, 0xd5: 0x46d1, 0xd6: 0x46e0,
- 0xd8: 0xa000, 0xd9: 0x31b6, 0xda: 0x31bb, 0xdb: 0x31c0, 0xdc: 0x4712, 0xdd: 0x3238,
- 0xe0: 0x327e, 0xe1: 0x3283, 0xe2: 0x471c, 0xe3: 0x3288,
- 0xe4: 0x472b, 0xe5: 0x4730, 0xe6: 0xa000, 0xe7: 0x473a, 0xe8: 0x32f1, 0xe9: 0x32f6,
- 0xea: 0x473f, 0xeb: 0x330a, 0xec: 0x3382, 0xed: 0x3387, 0xee: 0x338c, 0xef: 0x4753,
- 0xf1: 0x3418, 0xf2: 0x343b, 0xf3: 0x3440, 0xf4: 0x475d, 0xf5: 0x4762,
- 0xf6: 0x4771, 0xf8: 0xa000, 0xf9: 0x34cc, 0xfa: 0x34d1, 0xfb: 0x34d6,
- 0xfc: 0x47a3, 0xfd: 0x3553, 0xff: 0x356c,
- // Block 0x4, offset 0x100
- 0x100: 0x2f81, 0x101: 0x328d, 0x102: 0x4690, 0x103: 0x4721, 0x104: 0x2f9f, 0x105: 0x32ab,
- 0x106: 0x2fb3, 0x107: 0x32bf, 0x108: 0x2fb8, 0x109: 0x32c4, 0x10a: 0x2fbd, 0x10b: 0x32c9,
- 0x10c: 0x2fc2, 0x10d: 0x32ce, 0x10e: 0x2fcc, 0x10f: 0x32d8,
- 0x112: 0x46b3, 0x113: 0x4744, 0x114: 0x2ff4, 0x115: 0x3300, 0x116: 0x2ff9, 0x117: 0x3305,
- 0x118: 0x3017, 0x119: 0x3323, 0x11a: 0x3008, 0x11b: 0x3314, 0x11c: 0x3030, 0x11d: 0x333c,
- 0x11e: 0x303a, 0x11f: 0x3346, 0x120: 0x303f, 0x121: 0x334b, 0x122: 0x3049, 0x123: 0x3355,
- 0x124: 0x304e, 0x125: 0x335a, 0x128: 0x3080, 0x129: 0x3391,
- 0x12a: 0x3085, 0x12b: 0x3396, 0x12c: 0x308a, 0x12d: 0x339b, 0x12e: 0x30ad, 0x12f: 0x33b9,
- 0x130: 0x308f, 0x134: 0x30b7, 0x135: 0x33c3,
- 0x136: 0x30cb, 0x137: 0x33dc, 0x139: 0x30d5, 0x13a: 0x33e6, 0x13b: 0x30df,
- 0x13c: 0x33f0, 0x13d: 0x30da, 0x13e: 0x33eb,
- // Block 0x5, offset 0x140
- 0x143: 0x3102, 0x144: 0x3413, 0x145: 0x311b,
- 0x146: 0x342c, 0x147: 0x3111, 0x148: 0x3422,
- 0x14c: 0x46d6, 0x14d: 0x4767, 0x14e: 0x3134, 0x14f: 0x3445, 0x150: 0x313e, 0x151: 0x344f,
- 0x154: 0x315c, 0x155: 0x346d, 0x156: 0x3175, 0x157: 0x3486,
- 0x158: 0x3166, 0x159: 0x3477, 0x15a: 0x46f9, 0x15b: 0x478a, 0x15c: 0x317f, 0x15d: 0x3490,
- 0x15e: 0x318e, 0x15f: 0x349f, 0x160: 0x46fe, 0x161: 0x478f, 0x162: 0x31a7, 0x163: 0x34bd,
- 0x164: 0x3198, 0x165: 0x34ae, 0x168: 0x4708, 0x169: 0x4799,
- 0x16a: 0x470d, 0x16b: 0x479e, 0x16c: 0x31c5, 0x16d: 0x34db, 0x16e: 0x31cf, 0x16f: 0x34e5,
- 0x170: 0x31d4, 0x171: 0x34ea, 0x172: 0x31f2, 0x173: 0x3508, 0x174: 0x3215, 0x175: 0x352b,
- 0x176: 0x323d, 0x177: 0x3558, 0x178: 0x3251, 0x179: 0x3260, 0x17a: 0x3580, 0x17b: 0x326a,
- 0x17c: 0x358a, 0x17d: 0x326f, 0x17e: 0x358f, 0x17f: 0xa000,
- // Block 0x6, offset 0x180
- 0x184: 0x8100, 0x185: 0x8100,
- 0x186: 0x8100,
- 0x18d: 0x2f8b, 0x18e: 0x3297, 0x18f: 0x3099, 0x190: 0x33a5, 0x191: 0x3143,
- 0x192: 0x3454, 0x193: 0x31d9, 0x194: 0x34ef, 0x195: 0x39d2, 0x196: 0x3b61, 0x197: 0x39cb,
- 0x198: 0x3b5a, 0x199: 0x39d9, 0x19a: 0x3b68, 0x19b: 0x39c4, 0x19c: 0x3b53,
- 0x19e: 0x38b3, 0x19f: 0x3a42, 0x1a0: 0x38ac, 0x1a1: 0x3a3b, 0x1a2: 0x35b6, 0x1a3: 0x35c8,
- 0x1a6: 0x3044, 0x1a7: 0x3350, 0x1a8: 0x30c1, 0x1a9: 0x33d2,
- 0x1aa: 0x46ef, 0x1ab: 0x4780, 0x1ac: 0x3993, 0x1ad: 0x3b22, 0x1ae: 0x35da, 0x1af: 0x35e0,
- 0x1b0: 0x33c8, 0x1b4: 0x302b, 0x1b5: 0x3337,
- 0x1b8: 0x30fd, 0x1b9: 0x340e, 0x1ba: 0x38ba, 0x1bb: 0x3a49,
- 0x1bc: 0x35b0, 0x1bd: 0x35c2, 0x1be: 0x35bc, 0x1bf: 0x35ce,
- // Block 0x7, offset 0x1c0
- 0x1c0: 0x2f90, 0x1c1: 0x329c, 0x1c2: 0x2f95, 0x1c3: 0x32a1, 0x1c4: 0x300d, 0x1c5: 0x3319,
- 0x1c6: 0x3012, 0x1c7: 0x331e, 0x1c8: 0x309e, 0x1c9: 0x33aa, 0x1ca: 0x30a3, 0x1cb: 0x33af,
- 0x1cc: 0x3148, 0x1cd: 0x3459, 0x1ce: 0x314d, 0x1cf: 0x345e, 0x1d0: 0x316b, 0x1d1: 0x347c,
- 0x1d2: 0x3170, 0x1d3: 0x3481, 0x1d4: 0x31de, 0x1d5: 0x34f4, 0x1d6: 0x31e3, 0x1d7: 0x34f9,
- 0x1d8: 0x3189, 0x1d9: 0x349a, 0x1da: 0x31a2, 0x1db: 0x34b8,
- 0x1de: 0x305d, 0x1df: 0x3369,
- 0x1e6: 0x4695, 0x1e7: 0x4726, 0x1e8: 0x46bd, 0x1e9: 0x474e,
- 0x1ea: 0x3962, 0x1eb: 0x3af1, 0x1ec: 0x393f, 0x1ed: 0x3ace, 0x1ee: 0x46db, 0x1ef: 0x476c,
- 0x1f0: 0x395b, 0x1f1: 0x3aea, 0x1f2: 0x3247, 0x1f3: 0x3562,
- // Block 0x8, offset 0x200
- 0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132,
- 0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932,
- 0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932,
- 0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d,
- 0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d,
- 0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d,
- 0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d,
- 0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d,
- 0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101,
- 0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d,
- 0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132,
- // Block 0x9, offset 0x240
- 0x240: 0x49b1, 0x241: 0x49b6, 0x242: 0x9932, 0x243: 0x49bb, 0x244: 0x4a74, 0x245: 0x9936,
- 0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132,
- 0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132,
- 0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132,
- 0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135,
- 0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132,
- 0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132,
- 0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132,
- 0x274: 0x0170,
- 0x27a: 0x8100,
- 0x27e: 0x0037,
- // Block 0xa, offset 0x280
- 0x284: 0x8100, 0x285: 0x35a4,
- 0x286: 0x35ec, 0x287: 0x00ce, 0x288: 0x360a, 0x289: 0x3616, 0x28a: 0x3628,
- 0x28c: 0x3646, 0x28e: 0x3658, 0x28f: 0x3676, 0x290: 0x3e0b, 0x291: 0xa000,
- 0x295: 0xa000, 0x297: 0xa000,
- 0x299: 0xa000,
- 0x29f: 0xa000, 0x2a1: 0xa000,
- 0x2a5: 0xa000, 0x2a9: 0xa000,
- 0x2aa: 0x363a, 0x2ab: 0x366a, 0x2ac: 0x4801, 0x2ad: 0x369a, 0x2ae: 0x482b, 0x2af: 0x36ac,
- 0x2b0: 0x3e73, 0x2b1: 0xa000, 0x2b5: 0xa000,
- 0x2b7: 0xa000, 0x2b9: 0xa000,
- 0x2bf: 0xa000,
- // Block 0xb, offset 0x2c0
- 0x2c0: 0x3724, 0x2c1: 0x3730, 0x2c3: 0x371e,
- 0x2c6: 0xa000, 0x2c7: 0x370c,
- 0x2cc: 0x3760, 0x2cd: 0x3748, 0x2ce: 0x3772, 0x2d0: 0xa000,
- 0x2d3: 0xa000, 0x2d5: 0xa000, 0x2d6: 0xa000, 0x2d7: 0xa000,
- 0x2d8: 0xa000, 0x2d9: 0x3754, 0x2da: 0xa000,
- 0x2de: 0xa000, 0x2e3: 0xa000,
- 0x2e7: 0xa000,
- 0x2eb: 0xa000, 0x2ed: 0xa000,
- 0x2f0: 0xa000, 0x2f3: 0xa000, 0x2f5: 0xa000,
- 0x2f6: 0xa000, 0x2f7: 0xa000, 0x2f8: 0xa000, 0x2f9: 0x37d8, 0x2fa: 0xa000,
- 0x2fe: 0xa000,
- // Block 0xc, offset 0x300
- 0x301: 0x3736, 0x302: 0x37ba,
- 0x310: 0x3712, 0x311: 0x3796,
- 0x312: 0x3718, 0x313: 0x379c, 0x316: 0x372a, 0x317: 0x37ae,
- 0x318: 0xa000, 0x319: 0xa000, 0x31a: 0x382c, 0x31b: 0x3832, 0x31c: 0x373c, 0x31d: 0x37c0,
- 0x31e: 0x3742, 0x31f: 0x37c6, 0x322: 0x374e, 0x323: 0x37d2,
- 0x324: 0x375a, 0x325: 0x37de, 0x326: 0x3766, 0x327: 0x37ea, 0x328: 0xa000, 0x329: 0xa000,
- 0x32a: 0x3838, 0x32b: 0x383e, 0x32c: 0x3790, 0x32d: 0x3814, 0x32e: 0x376c, 0x32f: 0x37f0,
- 0x330: 0x3778, 0x331: 0x37fc, 0x332: 0x377e, 0x333: 0x3802, 0x334: 0x3784, 0x335: 0x3808,
- 0x338: 0x378a, 0x339: 0x380e,
- // Block 0xd, offset 0x340
- 0x351: 0x812d,
- 0x352: 0x8132, 0x353: 0x8132, 0x354: 0x8132, 0x355: 0x8132, 0x356: 0x812d, 0x357: 0x8132,
- 0x358: 0x8132, 0x359: 0x8132, 0x35a: 0x812e, 0x35b: 0x812d, 0x35c: 0x8132, 0x35d: 0x8132,
- 0x35e: 0x8132, 0x35f: 0x8132, 0x360: 0x8132, 0x361: 0x8132, 0x362: 0x812d, 0x363: 0x812d,
- 0x364: 0x812d, 0x365: 0x812d, 0x366: 0x812d, 0x367: 0x812d, 0x368: 0x8132, 0x369: 0x8132,
- 0x36a: 0x812d, 0x36b: 0x8132, 0x36c: 0x8132, 0x36d: 0x812e, 0x36e: 0x8131, 0x36f: 0x8132,
- 0x370: 0x8105, 0x371: 0x8106, 0x372: 0x8107, 0x373: 0x8108, 0x374: 0x8109, 0x375: 0x810a,
- 0x376: 0x810b, 0x377: 0x810c, 0x378: 0x810d, 0x379: 0x810e, 0x37a: 0x810e, 0x37b: 0x810f,
- 0x37c: 0x8110, 0x37d: 0x8111, 0x37f: 0x8112,
- // Block 0xe, offset 0x380
- 0x388: 0xa000, 0x38a: 0xa000, 0x38b: 0x8116,
- 0x38c: 0x8117, 0x38d: 0x8118, 0x38e: 0x8119, 0x38f: 0x811a, 0x390: 0x811b, 0x391: 0x811c,
- 0x392: 0x811d, 0x393: 0x9932, 0x394: 0x9932, 0x395: 0x992d, 0x396: 0x812d, 0x397: 0x8132,
- 0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x8132, 0x39b: 0x8132, 0x39c: 0x812d, 0x39d: 0x8132,
- 0x39e: 0x8132, 0x39f: 0x812d,
- 0x3b0: 0x811e,
- // Block 0xf, offset 0x3c0
- 0x3d3: 0x812d, 0x3d4: 0x8132, 0x3d5: 0x8132, 0x3d6: 0x8132, 0x3d7: 0x8132,
- 0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x8132, 0x3dd: 0x8132,
- 0x3de: 0x8132, 0x3df: 0x8132, 0x3e0: 0x8132, 0x3e1: 0x8132, 0x3e3: 0x812d,
- 0x3e4: 0x8132, 0x3e5: 0x8132, 0x3e6: 0x812d, 0x3e7: 0x8132, 0x3e8: 0x8132, 0x3e9: 0x812d,
- 0x3ea: 0x8132, 0x3eb: 0x8132, 0x3ec: 0x8132, 0x3ed: 0x812d, 0x3ee: 0x812d, 0x3ef: 0x812d,
- 0x3f0: 0x8116, 0x3f1: 0x8117, 0x3f2: 0x8118, 0x3f3: 0x8132, 0x3f4: 0x8132, 0x3f5: 0x8132,
- 0x3f6: 0x812d, 0x3f7: 0x8132, 0x3f8: 0x8132, 0x3f9: 0x812d, 0x3fa: 0x812d, 0x3fb: 0x8132,
- 0x3fc: 0x8132, 0x3fd: 0x8132, 0x3fe: 0x8132, 0x3ff: 0x8132,
- // Block 0x10, offset 0x400
- 0x405: 0xa000,
- 0x406: 0x2d29, 0x407: 0xa000, 0x408: 0x2d31, 0x409: 0xa000, 0x40a: 0x2d39, 0x40b: 0xa000,
- 0x40c: 0x2d41, 0x40d: 0xa000, 0x40e: 0x2d49, 0x411: 0xa000,
- 0x412: 0x2d51,
- 0x434: 0x8102, 0x435: 0x9900,
- 0x43a: 0xa000, 0x43b: 0x2d59,
- 0x43c: 0xa000, 0x43d: 0x2d61, 0x43e: 0xa000, 0x43f: 0xa000,
- // Block 0x11, offset 0x440
- 0x440: 0x8132, 0x441: 0x8132, 0x442: 0x812d, 0x443: 0x8132, 0x444: 0x8132, 0x445: 0x8132,
- 0x446: 0x8132, 0x447: 0x8132, 0x448: 0x8132, 0x449: 0x8132, 0x44a: 0x812d, 0x44b: 0x8132,
- 0x44c: 0x8132, 0x44d: 0x8135, 0x44e: 0x812a, 0x44f: 0x812d, 0x450: 0x8129, 0x451: 0x8132,
- 0x452: 0x8132, 0x453: 0x8132, 0x454: 0x8132, 0x455: 0x8132, 0x456: 0x8132, 0x457: 0x8132,
- 0x458: 0x8132, 0x459: 0x8132, 0x45a: 0x8132, 0x45b: 0x8132, 0x45c: 0x8132, 0x45d: 0x8132,
- 0x45e: 0x8132, 0x45f: 0x8132, 0x460: 0x8132, 0x461: 0x8132, 0x462: 0x8132, 0x463: 0x8132,
- 0x464: 0x8132, 0x465: 0x8132, 0x466: 0x8132, 0x467: 0x8132, 0x468: 0x8132, 0x469: 0x8132,
- 0x46a: 0x8132, 0x46b: 0x8132, 0x46c: 0x8132, 0x46d: 0x8132, 0x46e: 0x8132, 0x46f: 0x8132,
- 0x470: 0x8132, 0x471: 0x8132, 0x472: 0x8132, 0x473: 0x8132, 0x474: 0x8132, 0x475: 0x8132,
- 0x476: 0x8133, 0x477: 0x8131, 0x478: 0x8131, 0x479: 0x812d, 0x47b: 0x8132,
- 0x47c: 0x8134, 0x47d: 0x812d, 0x47e: 0x8132, 0x47f: 0x812d,
- // Block 0x12, offset 0x480
- 0x480: 0x2f9a, 0x481: 0x32a6, 0x482: 0x2fa4, 0x483: 0x32b0, 0x484: 0x2fa9, 0x485: 0x32b5,
- 0x486: 0x2fae, 0x487: 0x32ba, 0x488: 0x38cf, 0x489: 0x3a5e, 0x48a: 0x2fc7, 0x48b: 0x32d3,
- 0x48c: 0x2fd1, 0x48d: 0x32dd, 0x48e: 0x2fe0, 0x48f: 0x32ec, 0x490: 0x2fd6, 0x491: 0x32e2,
- 0x492: 0x2fdb, 0x493: 0x32e7, 0x494: 0x38f2, 0x495: 0x3a81, 0x496: 0x38f9, 0x497: 0x3a88,
- 0x498: 0x301c, 0x499: 0x3328, 0x49a: 0x3021, 0x49b: 0x332d, 0x49c: 0x3907, 0x49d: 0x3a96,
- 0x49e: 0x3026, 0x49f: 0x3332, 0x4a0: 0x3035, 0x4a1: 0x3341, 0x4a2: 0x3053, 0x4a3: 0x335f,
- 0x4a4: 0x3062, 0x4a5: 0x336e, 0x4a6: 0x3058, 0x4a7: 0x3364, 0x4a8: 0x3067, 0x4a9: 0x3373,
- 0x4aa: 0x306c, 0x4ab: 0x3378, 0x4ac: 0x30b2, 0x4ad: 0x33be, 0x4ae: 0x390e, 0x4af: 0x3a9d,
- 0x4b0: 0x30bc, 0x4b1: 0x33cd, 0x4b2: 0x30c6, 0x4b3: 0x33d7, 0x4b4: 0x30d0, 0x4b5: 0x33e1,
- 0x4b6: 0x46c7, 0x4b7: 0x4758, 0x4b8: 0x3915, 0x4b9: 0x3aa4, 0x4ba: 0x30e9, 0x4bb: 0x33fa,
- 0x4bc: 0x30e4, 0x4bd: 0x33f5, 0x4be: 0x30ee, 0x4bf: 0x33ff,
- // Block 0x13, offset 0x4c0
- 0x4c0: 0x30f3, 0x4c1: 0x3404, 0x4c2: 0x30f8, 0x4c3: 0x3409, 0x4c4: 0x310c, 0x4c5: 0x341d,
- 0x4c6: 0x3116, 0x4c7: 0x3427, 0x4c8: 0x3125, 0x4c9: 0x3436, 0x4ca: 0x3120, 0x4cb: 0x3431,
- 0x4cc: 0x3938, 0x4cd: 0x3ac7, 0x4ce: 0x3946, 0x4cf: 0x3ad5, 0x4d0: 0x394d, 0x4d1: 0x3adc,
- 0x4d2: 0x3954, 0x4d3: 0x3ae3, 0x4d4: 0x3152, 0x4d5: 0x3463, 0x4d6: 0x3157, 0x4d7: 0x3468,
- 0x4d8: 0x3161, 0x4d9: 0x3472, 0x4da: 0x46f4, 0x4db: 0x4785, 0x4dc: 0x399a, 0x4dd: 0x3b29,
- 0x4de: 0x317a, 0x4df: 0x348b, 0x4e0: 0x3184, 0x4e1: 0x3495, 0x4e2: 0x4703, 0x4e3: 0x4794,
- 0x4e4: 0x39a1, 0x4e5: 0x3b30, 0x4e6: 0x39a8, 0x4e7: 0x3b37, 0x4e8: 0x39af, 0x4e9: 0x3b3e,
- 0x4ea: 0x3193, 0x4eb: 0x34a4, 0x4ec: 0x319d, 0x4ed: 0x34b3, 0x4ee: 0x31b1, 0x4ef: 0x34c7,
- 0x4f0: 0x31ac, 0x4f1: 0x34c2, 0x4f2: 0x31ed, 0x4f3: 0x3503, 0x4f4: 0x31fc, 0x4f5: 0x3512,
- 0x4f6: 0x31f7, 0x4f7: 0x350d, 0x4f8: 0x39b6, 0x4f9: 0x3b45, 0x4fa: 0x39bd, 0x4fb: 0x3b4c,
- 0x4fc: 0x3201, 0x4fd: 0x3517, 0x4fe: 0x3206, 0x4ff: 0x351c,
- // Block 0x14, offset 0x500
- 0x500: 0x320b, 0x501: 0x3521, 0x502: 0x3210, 0x503: 0x3526, 0x504: 0x321f, 0x505: 0x3535,
- 0x506: 0x321a, 0x507: 0x3530, 0x508: 0x3224, 0x509: 0x353f, 0x50a: 0x3229, 0x50b: 0x3544,
- 0x50c: 0x322e, 0x50d: 0x3549, 0x50e: 0x324c, 0x50f: 0x3567, 0x510: 0x3265, 0x511: 0x3585,
- 0x512: 0x3274, 0x513: 0x3594, 0x514: 0x3279, 0x515: 0x3599, 0x516: 0x337d, 0x517: 0x34a9,
- 0x518: 0x353a, 0x519: 0x3576, 0x51b: 0x35d4,
- 0x520: 0x46a4, 0x521: 0x4735, 0x522: 0x2f86, 0x523: 0x3292,
- 0x524: 0x387b, 0x525: 0x3a0a, 0x526: 0x3874, 0x527: 0x3a03, 0x528: 0x3889, 0x529: 0x3a18,
- 0x52a: 0x3882, 0x52b: 0x3a11, 0x52c: 0x38c1, 0x52d: 0x3a50, 0x52e: 0x3897, 0x52f: 0x3a26,
- 0x530: 0x3890, 0x531: 0x3a1f, 0x532: 0x38a5, 0x533: 0x3a34, 0x534: 0x389e, 0x535: 0x3a2d,
- 0x536: 0x38c8, 0x537: 0x3a57, 0x538: 0x46b8, 0x539: 0x4749, 0x53a: 0x3003, 0x53b: 0x330f,
- 0x53c: 0x2fef, 0x53d: 0x32fb, 0x53e: 0x38dd, 0x53f: 0x3a6c,
- // Block 0x15, offset 0x540
- 0x540: 0x38d6, 0x541: 0x3a65, 0x542: 0x38eb, 0x543: 0x3a7a, 0x544: 0x38e4, 0x545: 0x3a73,
- 0x546: 0x3900, 0x547: 0x3a8f, 0x548: 0x3094, 0x549: 0x33a0, 0x54a: 0x30a8, 0x54b: 0x33b4,
- 0x54c: 0x46ea, 0x54d: 0x477b, 0x54e: 0x3139, 0x54f: 0x344a, 0x550: 0x3923, 0x551: 0x3ab2,
- 0x552: 0x391c, 0x553: 0x3aab, 0x554: 0x3931, 0x555: 0x3ac0, 0x556: 0x392a, 0x557: 0x3ab9,
- 0x558: 0x398c, 0x559: 0x3b1b, 0x55a: 0x3970, 0x55b: 0x3aff, 0x55c: 0x3969, 0x55d: 0x3af8,
- 0x55e: 0x397e, 0x55f: 0x3b0d, 0x560: 0x3977, 0x561: 0x3b06, 0x562: 0x3985, 0x563: 0x3b14,
- 0x564: 0x31e8, 0x565: 0x34fe, 0x566: 0x31ca, 0x567: 0x34e0, 0x568: 0x39e7, 0x569: 0x3b76,
- 0x56a: 0x39e0, 0x56b: 0x3b6f, 0x56c: 0x39f5, 0x56d: 0x3b84, 0x56e: 0x39ee, 0x56f: 0x3b7d,
- 0x570: 0x39fc, 0x571: 0x3b8b, 0x572: 0x3233, 0x573: 0x354e, 0x574: 0x325b, 0x575: 0x357b,
- 0x576: 0x3256, 0x577: 0x3571, 0x578: 0x3242, 0x579: 0x355d,
- // Block 0x16, offset 0x580
- 0x580: 0x4807, 0x581: 0x480d, 0x582: 0x4921, 0x583: 0x4939, 0x584: 0x4929, 0x585: 0x4941,
- 0x586: 0x4931, 0x587: 0x4949, 0x588: 0x47ad, 0x589: 0x47b3, 0x58a: 0x4891, 0x58b: 0x48a9,
- 0x58c: 0x4899, 0x58d: 0x48b1, 0x58e: 0x48a1, 0x58f: 0x48b9, 0x590: 0x4819, 0x591: 0x481f,
- 0x592: 0x3dbb, 0x593: 0x3dcb, 0x594: 0x3dc3, 0x595: 0x3dd3,
- 0x598: 0x47b9, 0x599: 0x47bf, 0x59a: 0x3ceb, 0x59b: 0x3cfb, 0x59c: 0x3cf3, 0x59d: 0x3d03,
- 0x5a0: 0x4831, 0x5a1: 0x4837, 0x5a2: 0x4951, 0x5a3: 0x4969,
- 0x5a4: 0x4959, 0x5a5: 0x4971, 0x5a6: 0x4961, 0x5a7: 0x4979, 0x5a8: 0x47c5, 0x5a9: 0x47cb,
- 0x5aa: 0x48c1, 0x5ab: 0x48d9, 0x5ac: 0x48c9, 0x5ad: 0x48e1, 0x5ae: 0x48d1, 0x5af: 0x48e9,
- 0x5b0: 0x4849, 0x5b1: 0x484f, 0x5b2: 0x3e1b, 0x5b3: 0x3e33, 0x5b4: 0x3e23, 0x5b5: 0x3e3b,
- 0x5b6: 0x3e2b, 0x5b7: 0x3e43, 0x5b8: 0x47d1, 0x5b9: 0x47d7, 0x5ba: 0x3d1b, 0x5bb: 0x3d33,
- 0x5bc: 0x3d23, 0x5bd: 0x3d3b, 0x5be: 0x3d2b, 0x5bf: 0x3d43,
- // Block 0x17, offset 0x5c0
- 0x5c0: 0x4855, 0x5c1: 0x485b, 0x5c2: 0x3e4b, 0x5c3: 0x3e5b, 0x5c4: 0x3e53, 0x5c5: 0x3e63,
- 0x5c8: 0x47dd, 0x5c9: 0x47e3, 0x5ca: 0x3d4b, 0x5cb: 0x3d5b,
- 0x5cc: 0x3d53, 0x5cd: 0x3d63, 0x5d0: 0x4867, 0x5d1: 0x486d,
- 0x5d2: 0x3e83, 0x5d3: 0x3e9b, 0x5d4: 0x3e8b, 0x5d5: 0x3ea3, 0x5d6: 0x3e93, 0x5d7: 0x3eab,
- 0x5d9: 0x47e9, 0x5db: 0x3d6b, 0x5dd: 0x3d73,
- 0x5df: 0x3d7b, 0x5e0: 0x487f, 0x5e1: 0x4885, 0x5e2: 0x4981, 0x5e3: 0x4999,
- 0x5e4: 0x4989, 0x5e5: 0x49a1, 0x5e6: 0x4991, 0x5e7: 0x49a9, 0x5e8: 0x47ef, 0x5e9: 0x47f5,
- 0x5ea: 0x48f1, 0x5eb: 0x4909, 0x5ec: 0x48f9, 0x5ed: 0x4911, 0x5ee: 0x4901, 0x5ef: 0x4919,
- 0x5f0: 0x47fb, 0x5f1: 0x4321, 0x5f2: 0x3694, 0x5f3: 0x4327, 0x5f4: 0x4825, 0x5f5: 0x432d,
- 0x5f6: 0x36a6, 0x5f7: 0x4333, 0x5f8: 0x36c4, 0x5f9: 0x4339, 0x5fa: 0x36dc, 0x5fb: 0x433f,
- 0x5fc: 0x4873, 0x5fd: 0x4345,
- // Block 0x18, offset 0x600
- 0x600: 0x3da3, 0x601: 0x3dab, 0x602: 0x4187, 0x603: 0x41a5, 0x604: 0x4191, 0x605: 0x41af,
- 0x606: 0x419b, 0x607: 0x41b9, 0x608: 0x3cdb, 0x609: 0x3ce3, 0x60a: 0x40d3, 0x60b: 0x40f1,
- 0x60c: 0x40dd, 0x60d: 0x40fb, 0x60e: 0x40e7, 0x60f: 0x4105, 0x610: 0x3deb, 0x611: 0x3df3,
- 0x612: 0x41c3, 0x613: 0x41e1, 0x614: 0x41cd, 0x615: 0x41eb, 0x616: 0x41d7, 0x617: 0x41f5,
- 0x618: 0x3d0b, 0x619: 0x3d13, 0x61a: 0x410f, 0x61b: 0x412d, 0x61c: 0x4119, 0x61d: 0x4137,
- 0x61e: 0x4123, 0x61f: 0x4141, 0x620: 0x3ec3, 0x621: 0x3ecb, 0x622: 0x41ff, 0x623: 0x421d,
- 0x624: 0x4209, 0x625: 0x4227, 0x626: 0x4213, 0x627: 0x4231, 0x628: 0x3d83, 0x629: 0x3d8b,
- 0x62a: 0x414b, 0x62b: 0x4169, 0x62c: 0x4155, 0x62d: 0x4173, 0x62e: 0x415f, 0x62f: 0x417d,
- 0x630: 0x3688, 0x631: 0x3682, 0x632: 0x3d93, 0x633: 0x368e, 0x634: 0x3d9b,
- 0x636: 0x4813, 0x637: 0x3db3, 0x638: 0x35f8, 0x639: 0x35f2, 0x63a: 0x35e6, 0x63b: 0x42f1,
- 0x63c: 0x35fe, 0x63d: 0x8100, 0x63e: 0x01d3, 0x63f: 0xa100,
- // Block 0x19, offset 0x640
- 0x640: 0x8100, 0x641: 0x35aa, 0x642: 0x3ddb, 0x643: 0x36a0, 0x644: 0x3de3,
- 0x646: 0x483d, 0x647: 0x3dfb, 0x648: 0x3604, 0x649: 0x42f7, 0x64a: 0x3610, 0x64b: 0x42fd,
- 0x64c: 0x361c, 0x64d: 0x3b92, 0x64e: 0x3b99, 0x64f: 0x3ba0, 0x650: 0x36b8, 0x651: 0x36b2,
- 0x652: 0x3e03, 0x653: 0x44e7, 0x656: 0x36be, 0x657: 0x3e13,
- 0x658: 0x3634, 0x659: 0x362e, 0x65a: 0x3622, 0x65b: 0x4303, 0x65d: 0x3ba7,
- 0x65e: 0x3bae, 0x65f: 0x3bb5, 0x660: 0x36ee, 0x661: 0x36e8, 0x662: 0x3e6b, 0x663: 0x44ef,
- 0x664: 0x36d0, 0x665: 0x36d6, 0x666: 0x36f4, 0x667: 0x3e7b, 0x668: 0x3664, 0x669: 0x365e,
- 0x66a: 0x3652, 0x66b: 0x430f, 0x66c: 0x364c, 0x66d: 0x359e, 0x66e: 0x42eb, 0x66f: 0x0081,
- 0x672: 0x3eb3, 0x673: 0x36fa, 0x674: 0x3ebb,
- 0x676: 0x488b, 0x677: 0x3ed3, 0x678: 0x3640, 0x679: 0x4309, 0x67a: 0x3670, 0x67b: 0x431b,
- 0x67c: 0x367c, 0x67d: 0x4259, 0x67e: 0xa100,
- // Block 0x1a, offset 0x680
- 0x681: 0x3c09, 0x683: 0xa000, 0x684: 0x3c10, 0x685: 0xa000,
- 0x687: 0x3c17, 0x688: 0xa000, 0x689: 0x3c1e,
- 0x68d: 0xa000,
- 0x6a0: 0x2f68, 0x6a1: 0xa000, 0x6a2: 0x3c2c,
- 0x6a4: 0xa000, 0x6a5: 0xa000,
- 0x6ad: 0x3c25, 0x6ae: 0x2f63, 0x6af: 0x2f6d,
- 0x6b0: 0x3c33, 0x6b1: 0x3c3a, 0x6b2: 0xa000, 0x6b3: 0xa000, 0x6b4: 0x3c41, 0x6b5: 0x3c48,
- 0x6b6: 0xa000, 0x6b7: 0xa000, 0x6b8: 0x3c4f, 0x6b9: 0x3c56, 0x6ba: 0xa000, 0x6bb: 0xa000,
- 0x6bc: 0xa000, 0x6bd: 0xa000,
- // Block 0x1b, offset 0x6c0
- 0x6c0: 0x3c5d, 0x6c1: 0x3c64, 0x6c2: 0xa000, 0x6c3: 0xa000, 0x6c4: 0x3c79, 0x6c5: 0x3c80,
- 0x6c6: 0xa000, 0x6c7: 0xa000, 0x6c8: 0x3c87, 0x6c9: 0x3c8e,
- 0x6d1: 0xa000,
- 0x6d2: 0xa000,
- 0x6e2: 0xa000,
- 0x6e8: 0xa000, 0x6e9: 0xa000,
- 0x6eb: 0xa000, 0x6ec: 0x3ca3, 0x6ed: 0x3caa, 0x6ee: 0x3cb1, 0x6ef: 0x3cb8,
- 0x6f2: 0xa000, 0x6f3: 0xa000, 0x6f4: 0xa000, 0x6f5: 0xa000,
- // Block 0x1c, offset 0x700
- 0x706: 0xa000, 0x70b: 0xa000,
- 0x70c: 0x3f0b, 0x70d: 0xa000, 0x70e: 0x3f13, 0x70f: 0xa000, 0x710: 0x3f1b, 0x711: 0xa000,
- 0x712: 0x3f23, 0x713: 0xa000, 0x714: 0x3f2b, 0x715: 0xa000, 0x716: 0x3f33, 0x717: 0xa000,
- 0x718: 0x3f3b, 0x719: 0xa000, 0x71a: 0x3f43, 0x71b: 0xa000, 0x71c: 0x3f4b, 0x71d: 0xa000,
- 0x71e: 0x3f53, 0x71f: 0xa000, 0x720: 0x3f5b, 0x721: 0xa000, 0x722: 0x3f63,
- 0x724: 0xa000, 0x725: 0x3f6b, 0x726: 0xa000, 0x727: 0x3f73, 0x728: 0xa000, 0x729: 0x3f7b,
- 0x72f: 0xa000,
- 0x730: 0x3f83, 0x731: 0x3f8b, 0x732: 0xa000, 0x733: 0x3f93, 0x734: 0x3f9b, 0x735: 0xa000,
- 0x736: 0x3fa3, 0x737: 0x3fab, 0x738: 0xa000, 0x739: 0x3fb3, 0x73a: 0x3fbb, 0x73b: 0xa000,
- 0x73c: 0x3fc3, 0x73d: 0x3fcb,
- // Block 0x1d, offset 0x740
- 0x754: 0x3f03,
- 0x759: 0x9903, 0x75a: 0x9903, 0x75b: 0x8100, 0x75c: 0x8100, 0x75d: 0xa000,
- 0x75e: 0x3fd3,
- 0x766: 0xa000,
- 0x76b: 0xa000, 0x76c: 0x3fe3, 0x76d: 0xa000, 0x76e: 0x3feb, 0x76f: 0xa000,
- 0x770: 0x3ff3, 0x771: 0xa000, 0x772: 0x3ffb, 0x773: 0xa000, 0x774: 0x4003, 0x775: 0xa000,
- 0x776: 0x400b, 0x777: 0xa000, 0x778: 0x4013, 0x779: 0xa000, 0x77a: 0x401b, 0x77b: 0xa000,
- 0x77c: 0x4023, 0x77d: 0xa000, 0x77e: 0x402b, 0x77f: 0xa000,
- // Block 0x1e, offset 0x780
- 0x780: 0x4033, 0x781: 0xa000, 0x782: 0x403b, 0x784: 0xa000, 0x785: 0x4043,
- 0x786: 0xa000, 0x787: 0x404b, 0x788: 0xa000, 0x789: 0x4053,
- 0x78f: 0xa000, 0x790: 0x405b, 0x791: 0x4063,
- 0x792: 0xa000, 0x793: 0x406b, 0x794: 0x4073, 0x795: 0xa000, 0x796: 0x407b, 0x797: 0x4083,
- 0x798: 0xa000, 0x799: 0x408b, 0x79a: 0x4093, 0x79b: 0xa000, 0x79c: 0x409b, 0x79d: 0x40a3,
- 0x7af: 0xa000,
- 0x7b0: 0xa000, 0x7b1: 0xa000, 0x7b2: 0xa000, 0x7b4: 0x3fdb,
- 0x7b7: 0x40ab, 0x7b8: 0x40b3, 0x7b9: 0x40bb, 0x7ba: 0x40c3,
- 0x7bd: 0xa000, 0x7be: 0x40cb,
- // Block 0x1f, offset 0x7c0
- 0x7c0: 0x1377, 0x7c1: 0x0cfb, 0x7c2: 0x13d3, 0x7c3: 0x139f, 0x7c4: 0x0e57, 0x7c5: 0x06eb,
- 0x7c6: 0x08df, 0x7c7: 0x162b, 0x7c8: 0x162b, 0x7c9: 0x0a0b, 0x7ca: 0x145f, 0x7cb: 0x0943,
- 0x7cc: 0x0a07, 0x7cd: 0x0bef, 0x7ce: 0x0fcf, 0x7cf: 0x115f, 0x7d0: 0x1297, 0x7d1: 0x12d3,
- 0x7d2: 0x1307, 0x7d3: 0x141b, 0x7d4: 0x0d73, 0x7d5: 0x0dff, 0x7d6: 0x0eab, 0x7d7: 0x0f43,
- 0x7d8: 0x125f, 0x7d9: 0x1447, 0x7da: 0x1573, 0x7db: 0x070f, 0x7dc: 0x08b3, 0x7dd: 0x0d87,
- 0x7de: 0x0ecf, 0x7df: 0x1293, 0x7e0: 0x15c3, 0x7e1: 0x0ab3, 0x7e2: 0x0e77, 0x7e3: 0x1283,
- 0x7e4: 0x1317, 0x7e5: 0x0c23, 0x7e6: 0x11bb, 0x7e7: 0x12df, 0x7e8: 0x0b1f, 0x7e9: 0x0d0f,
- 0x7ea: 0x0e17, 0x7eb: 0x0f1b, 0x7ec: 0x1427, 0x7ed: 0x074f, 0x7ee: 0x07e7, 0x7ef: 0x0853,
- 0x7f0: 0x0c8b, 0x7f1: 0x0d7f, 0x7f2: 0x0ecb, 0x7f3: 0x0fef, 0x7f4: 0x1177, 0x7f5: 0x128b,
- 0x7f6: 0x12a3, 0x7f7: 0x13c7, 0x7f8: 0x14ef, 0x7f9: 0x15a3, 0x7fa: 0x15bf, 0x7fb: 0x102b,
- 0x7fc: 0x106b, 0x7fd: 0x1123, 0x7fe: 0x1243, 0x7ff: 0x147b,
- // Block 0x20, offset 0x800
- 0x800: 0x15cb, 0x801: 0x134b, 0x802: 0x09c7, 0x803: 0x0b3b, 0x804: 0x10db, 0x805: 0x119b,
- 0x806: 0x0eff, 0x807: 0x1033, 0x808: 0x1397, 0x809: 0x14e7, 0x80a: 0x09c3, 0x80b: 0x0a8f,
- 0x80c: 0x0d77, 0x80d: 0x0e2b, 0x80e: 0x0e5f, 0x80f: 0x1113, 0x810: 0x113b, 0x811: 0x14a7,
- 0x812: 0x084f, 0x813: 0x11a7, 0x814: 0x07f3, 0x815: 0x07ef, 0x816: 0x1097, 0x817: 0x1127,
- 0x818: 0x125b, 0x819: 0x14af, 0x81a: 0x1367, 0x81b: 0x0c27, 0x81c: 0x0d73, 0x81d: 0x1357,
- 0x81e: 0x06f7, 0x81f: 0x0a63, 0x820: 0x0b93, 0x821: 0x0f2f, 0x822: 0x0faf, 0x823: 0x0873,
- 0x824: 0x103b, 0x825: 0x075f, 0x826: 0x0b77, 0x827: 0x06d7, 0x828: 0x0deb, 0x829: 0x0ca3,
- 0x82a: 0x110f, 0x82b: 0x08c7, 0x82c: 0x09b3, 0x82d: 0x0ffb, 0x82e: 0x1263, 0x82f: 0x133b,
- 0x830: 0x0db7, 0x831: 0x13f7, 0x832: 0x0de3, 0x833: 0x0c37, 0x834: 0x121b, 0x835: 0x0c57,
- 0x836: 0x0fab, 0x837: 0x072b, 0x838: 0x07a7, 0x839: 0x07eb, 0x83a: 0x0d53, 0x83b: 0x10fb,
- 0x83c: 0x11f3, 0x83d: 0x1347, 0x83e: 0x145b, 0x83f: 0x085b,
- // Block 0x21, offset 0x840
- 0x840: 0x090f, 0x841: 0x0a17, 0x842: 0x0b2f, 0x843: 0x0cbf, 0x844: 0x0e7b, 0x845: 0x103f,
- 0x846: 0x1497, 0x847: 0x157b, 0x848: 0x15cf, 0x849: 0x15e7, 0x84a: 0x0837, 0x84b: 0x0cf3,
- 0x84c: 0x0da3, 0x84d: 0x13eb, 0x84e: 0x0afb, 0x84f: 0x0bd7, 0x850: 0x0bf3, 0x851: 0x0c83,
- 0x852: 0x0e6b, 0x853: 0x0eb7, 0x854: 0x0f67, 0x855: 0x108b, 0x856: 0x112f, 0x857: 0x1193,
- 0x858: 0x13db, 0x859: 0x126b, 0x85a: 0x1403, 0x85b: 0x147f, 0x85c: 0x080f, 0x85d: 0x083b,
- 0x85e: 0x0923, 0x85f: 0x0ea7, 0x860: 0x12f3, 0x861: 0x133b, 0x862: 0x0b1b, 0x863: 0x0b8b,
- 0x864: 0x0c4f, 0x865: 0x0daf, 0x866: 0x10d7, 0x867: 0x0f23, 0x868: 0x073b, 0x869: 0x097f,
- 0x86a: 0x0a63, 0x86b: 0x0ac7, 0x86c: 0x0b97, 0x86d: 0x0f3f, 0x86e: 0x0f5b, 0x86f: 0x116b,
- 0x870: 0x118b, 0x871: 0x1463, 0x872: 0x14e3, 0x873: 0x14f3, 0x874: 0x152f, 0x875: 0x0753,
- 0x876: 0x107f, 0x877: 0x144f, 0x878: 0x14cb, 0x879: 0x0baf, 0x87a: 0x0717, 0x87b: 0x0777,
- 0x87c: 0x0a67, 0x87d: 0x0a87, 0x87e: 0x0caf, 0x87f: 0x0d73,
- // Block 0x22, offset 0x880
- 0x880: 0x0ec3, 0x881: 0x0fcb, 0x882: 0x1277, 0x883: 0x1417, 0x884: 0x1623, 0x885: 0x0ce3,
- 0x886: 0x14a3, 0x887: 0x0833, 0x888: 0x0d2f, 0x889: 0x0d3b, 0x88a: 0x0e0f, 0x88b: 0x0e47,
- 0x88c: 0x0f4b, 0x88d: 0x0fa7, 0x88e: 0x1027, 0x88f: 0x110b, 0x890: 0x153b, 0x891: 0x07af,
- 0x892: 0x0c03, 0x893: 0x14b3, 0x894: 0x0767, 0x895: 0x0aab, 0x896: 0x0e2f, 0x897: 0x13df,
- 0x898: 0x0b67, 0x899: 0x0bb7, 0x89a: 0x0d43, 0x89b: 0x0f2f, 0x89c: 0x14bb, 0x89d: 0x0817,
- 0x89e: 0x08ff, 0x89f: 0x0a97, 0x8a0: 0x0cd3, 0x8a1: 0x0d1f, 0x8a2: 0x0d5f, 0x8a3: 0x0df3,
- 0x8a4: 0x0f47, 0x8a5: 0x0fbb, 0x8a6: 0x1157, 0x8a7: 0x12f7, 0x8a8: 0x1303, 0x8a9: 0x1457,
- 0x8aa: 0x14d7, 0x8ab: 0x0883, 0x8ac: 0x0e4b, 0x8ad: 0x0903, 0x8ae: 0x0ec7, 0x8af: 0x0f6b,
- 0x8b0: 0x1287, 0x8b1: 0x14bf, 0x8b2: 0x15ab, 0x8b3: 0x15d3, 0x8b4: 0x0d37, 0x8b5: 0x0e27,
- 0x8b6: 0x11c3, 0x8b7: 0x10b7, 0x8b8: 0x10c3, 0x8b9: 0x10e7, 0x8ba: 0x0f17, 0x8bb: 0x0e9f,
- 0x8bc: 0x1363, 0x8bd: 0x0733, 0x8be: 0x122b, 0x8bf: 0x081b,
- // Block 0x23, offset 0x8c0
- 0x8c0: 0x080b, 0x8c1: 0x0b0b, 0x8c2: 0x0c2b, 0x8c3: 0x10f3, 0x8c4: 0x0a53, 0x8c5: 0x0e03,
- 0x8c6: 0x0cef, 0x8c7: 0x13e7, 0x8c8: 0x12e7, 0x8c9: 0x14ab, 0x8ca: 0x1323, 0x8cb: 0x0b27,
- 0x8cc: 0x0787, 0x8cd: 0x095b, 0x8d0: 0x09af,
- 0x8d2: 0x0cdf, 0x8d5: 0x07f7, 0x8d6: 0x0f1f, 0x8d7: 0x0fe3,
- 0x8d8: 0x1047, 0x8d9: 0x1063, 0x8da: 0x1067, 0x8db: 0x107b, 0x8dc: 0x14fb, 0x8dd: 0x10eb,
- 0x8de: 0x116f, 0x8e0: 0x128f, 0x8e2: 0x1353,
- 0x8e5: 0x1407, 0x8e6: 0x1433,
- 0x8ea: 0x154f, 0x8eb: 0x1553, 0x8ec: 0x1557, 0x8ed: 0x15bb, 0x8ee: 0x142b, 0x8ef: 0x14c7,
- 0x8f0: 0x0757, 0x8f1: 0x077b, 0x8f2: 0x078f, 0x8f3: 0x084b, 0x8f4: 0x0857, 0x8f5: 0x0897,
- 0x8f6: 0x094b, 0x8f7: 0x0967, 0x8f8: 0x096f, 0x8f9: 0x09ab, 0x8fa: 0x09b7, 0x8fb: 0x0a93,
- 0x8fc: 0x0a9b, 0x8fd: 0x0ba3, 0x8fe: 0x0bcb, 0x8ff: 0x0bd3,
- // Block 0x24, offset 0x900
- 0x900: 0x0beb, 0x901: 0x0c97, 0x902: 0x0cc7, 0x903: 0x0ce7, 0x904: 0x0d57, 0x905: 0x0e1b,
- 0x906: 0x0e37, 0x907: 0x0e67, 0x908: 0x0ebb, 0x909: 0x0edb, 0x90a: 0x0f4f, 0x90b: 0x102f,
- 0x90c: 0x104b, 0x90d: 0x1053, 0x90e: 0x104f, 0x90f: 0x1057, 0x910: 0x105b, 0x911: 0x105f,
- 0x912: 0x1073, 0x913: 0x1077, 0x914: 0x109b, 0x915: 0x10af, 0x916: 0x10cb, 0x917: 0x112f,
- 0x918: 0x1137, 0x919: 0x113f, 0x91a: 0x1153, 0x91b: 0x117b, 0x91c: 0x11cb, 0x91d: 0x11ff,
- 0x91e: 0x11ff, 0x91f: 0x1267, 0x920: 0x130f, 0x921: 0x1327, 0x922: 0x135b, 0x923: 0x135f,
- 0x924: 0x13a3, 0x925: 0x13a7, 0x926: 0x13ff, 0x927: 0x1407, 0x928: 0x14db, 0x929: 0x151f,
- 0x92a: 0x1537, 0x92b: 0x0b9b, 0x92c: 0x171e, 0x92d: 0x11e3,
- 0x930: 0x06df, 0x931: 0x07e3, 0x932: 0x07a3, 0x933: 0x074b, 0x934: 0x078b, 0x935: 0x07b7,
- 0x936: 0x0847, 0x937: 0x0863, 0x938: 0x094b, 0x939: 0x0937, 0x93a: 0x0947, 0x93b: 0x0963,
- 0x93c: 0x09af, 0x93d: 0x09bf, 0x93e: 0x0a03, 0x93f: 0x0a0f,
- // Block 0x25, offset 0x940
- 0x940: 0x0a2b, 0x941: 0x0a3b, 0x942: 0x0b23, 0x943: 0x0b2b, 0x944: 0x0b5b, 0x945: 0x0b7b,
- 0x946: 0x0bab, 0x947: 0x0bc3, 0x948: 0x0bb3, 0x949: 0x0bd3, 0x94a: 0x0bc7, 0x94b: 0x0beb,
- 0x94c: 0x0c07, 0x94d: 0x0c5f, 0x94e: 0x0c6b, 0x94f: 0x0c73, 0x950: 0x0c9b, 0x951: 0x0cdf,
- 0x952: 0x0d0f, 0x953: 0x0d13, 0x954: 0x0d27, 0x955: 0x0da7, 0x956: 0x0db7, 0x957: 0x0e0f,
- 0x958: 0x0e5b, 0x959: 0x0e53, 0x95a: 0x0e67, 0x95b: 0x0e83, 0x95c: 0x0ebb, 0x95d: 0x1013,
- 0x95e: 0x0edf, 0x95f: 0x0f13, 0x960: 0x0f1f, 0x961: 0x0f5f, 0x962: 0x0f7b, 0x963: 0x0f9f,
- 0x964: 0x0fc3, 0x965: 0x0fc7, 0x966: 0x0fe3, 0x967: 0x0fe7, 0x968: 0x0ff7, 0x969: 0x100b,
- 0x96a: 0x1007, 0x96b: 0x1037, 0x96c: 0x10b3, 0x96d: 0x10cb, 0x96e: 0x10e3, 0x96f: 0x111b,
- 0x970: 0x112f, 0x971: 0x114b, 0x972: 0x117b, 0x973: 0x122f, 0x974: 0x1257, 0x975: 0x12cb,
- 0x976: 0x1313, 0x977: 0x131f, 0x978: 0x1327, 0x979: 0x133f, 0x97a: 0x1353, 0x97b: 0x1343,
- 0x97c: 0x135b, 0x97d: 0x1357, 0x97e: 0x134f, 0x97f: 0x135f,
- // Block 0x26, offset 0x980
- 0x980: 0x136b, 0x981: 0x13a7, 0x982: 0x13e3, 0x983: 0x1413, 0x984: 0x144b, 0x985: 0x146b,
- 0x986: 0x14b7, 0x987: 0x14db, 0x988: 0x14fb, 0x989: 0x150f, 0x98a: 0x151f, 0x98b: 0x152b,
- 0x98c: 0x1537, 0x98d: 0x158b, 0x98e: 0x162b, 0x98f: 0x16b5, 0x990: 0x16b0, 0x991: 0x16e2,
- 0x992: 0x0607, 0x993: 0x062f, 0x994: 0x0633, 0x995: 0x1764, 0x996: 0x1791, 0x997: 0x1809,
- 0x998: 0x1617, 0x999: 0x1627,
- // Block 0x27, offset 0x9c0
- 0x9c0: 0x06fb, 0x9c1: 0x06f3, 0x9c2: 0x0703, 0x9c3: 0x1647, 0x9c4: 0x0747, 0x9c5: 0x0757,
- 0x9c6: 0x075b, 0x9c7: 0x0763, 0x9c8: 0x076b, 0x9c9: 0x076f, 0x9ca: 0x077b, 0x9cb: 0x0773,
- 0x9cc: 0x05b3, 0x9cd: 0x165b, 0x9ce: 0x078f, 0x9cf: 0x0793, 0x9d0: 0x0797, 0x9d1: 0x07b3,
- 0x9d2: 0x164c, 0x9d3: 0x05b7, 0x9d4: 0x079f, 0x9d5: 0x07bf, 0x9d6: 0x1656, 0x9d7: 0x07cf,
- 0x9d8: 0x07d7, 0x9d9: 0x0737, 0x9da: 0x07df, 0x9db: 0x07e3, 0x9dc: 0x1831, 0x9dd: 0x07ff,
- 0x9de: 0x0807, 0x9df: 0x05bf, 0x9e0: 0x081f, 0x9e1: 0x0823, 0x9e2: 0x082b, 0x9e3: 0x082f,
- 0x9e4: 0x05c3, 0x9e5: 0x0847, 0x9e6: 0x084b, 0x9e7: 0x0857, 0x9e8: 0x0863, 0x9e9: 0x0867,
- 0x9ea: 0x086b, 0x9eb: 0x0873, 0x9ec: 0x0893, 0x9ed: 0x0897, 0x9ee: 0x089f, 0x9ef: 0x08af,
- 0x9f0: 0x08b7, 0x9f1: 0x08bb, 0x9f2: 0x08bb, 0x9f3: 0x08bb, 0x9f4: 0x166a, 0x9f5: 0x0e93,
- 0x9f6: 0x08cf, 0x9f7: 0x08d7, 0x9f8: 0x166f, 0x9f9: 0x08e3, 0x9fa: 0x08eb, 0x9fb: 0x08f3,
- 0x9fc: 0x091b, 0x9fd: 0x0907, 0x9fe: 0x0913, 0x9ff: 0x0917,
- // Block 0x28, offset 0xa00
- 0xa00: 0x091f, 0xa01: 0x0927, 0xa02: 0x092b, 0xa03: 0x0933, 0xa04: 0x093b, 0xa05: 0x093f,
- 0xa06: 0x093f, 0xa07: 0x0947, 0xa08: 0x094f, 0xa09: 0x0953, 0xa0a: 0x095f, 0xa0b: 0x0983,
- 0xa0c: 0x0967, 0xa0d: 0x0987, 0xa0e: 0x096b, 0xa0f: 0x0973, 0xa10: 0x080b, 0xa11: 0x09cf,
- 0xa12: 0x0997, 0xa13: 0x099b, 0xa14: 0x099f, 0xa15: 0x0993, 0xa16: 0x09a7, 0xa17: 0x09a3,
- 0xa18: 0x09bb, 0xa19: 0x1674, 0xa1a: 0x09d7, 0xa1b: 0x09db, 0xa1c: 0x09e3, 0xa1d: 0x09ef,
- 0xa1e: 0x09f7, 0xa1f: 0x0a13, 0xa20: 0x1679, 0xa21: 0x167e, 0xa22: 0x0a1f, 0xa23: 0x0a23,
- 0xa24: 0x0a27, 0xa25: 0x0a1b, 0xa26: 0x0a2f, 0xa27: 0x05c7, 0xa28: 0x05cb, 0xa29: 0x0a37,
- 0xa2a: 0x0a3f, 0xa2b: 0x0a3f, 0xa2c: 0x1683, 0xa2d: 0x0a5b, 0xa2e: 0x0a5f, 0xa2f: 0x0a63,
- 0xa30: 0x0a6b, 0xa31: 0x1688, 0xa32: 0x0a73, 0xa33: 0x0a77, 0xa34: 0x0b4f, 0xa35: 0x0a7f,
- 0xa36: 0x05cf, 0xa37: 0x0a8b, 0xa38: 0x0a9b, 0xa39: 0x0aa7, 0xa3a: 0x0aa3, 0xa3b: 0x1692,
- 0xa3c: 0x0aaf, 0xa3d: 0x1697, 0xa3e: 0x0abb, 0xa3f: 0x0ab7,
- // Block 0x29, offset 0xa40
- 0xa40: 0x0abf, 0xa41: 0x0acf, 0xa42: 0x0ad3, 0xa43: 0x05d3, 0xa44: 0x0ae3, 0xa45: 0x0aeb,
- 0xa46: 0x0aef, 0xa47: 0x0af3, 0xa48: 0x05d7, 0xa49: 0x169c, 0xa4a: 0x05db, 0xa4b: 0x0b0f,
- 0xa4c: 0x0b13, 0xa4d: 0x0b17, 0xa4e: 0x0b1f, 0xa4f: 0x1863, 0xa50: 0x0b37, 0xa51: 0x16a6,
- 0xa52: 0x16a6, 0xa53: 0x11d7, 0xa54: 0x0b47, 0xa55: 0x0b47, 0xa56: 0x05df, 0xa57: 0x16c9,
- 0xa58: 0x179b, 0xa59: 0x0b57, 0xa5a: 0x0b5f, 0xa5b: 0x05e3, 0xa5c: 0x0b73, 0xa5d: 0x0b83,
- 0xa5e: 0x0b87, 0xa5f: 0x0b8f, 0xa60: 0x0b9f, 0xa61: 0x05eb, 0xa62: 0x05e7, 0xa63: 0x0ba3,
- 0xa64: 0x16ab, 0xa65: 0x0ba7, 0xa66: 0x0bbb, 0xa67: 0x0bbf, 0xa68: 0x0bc3, 0xa69: 0x0bbf,
- 0xa6a: 0x0bcf, 0xa6b: 0x0bd3, 0xa6c: 0x0be3, 0xa6d: 0x0bdb, 0xa6e: 0x0bdf, 0xa6f: 0x0be7,
- 0xa70: 0x0beb, 0xa71: 0x0bef, 0xa72: 0x0bfb, 0xa73: 0x0bff, 0xa74: 0x0c17, 0xa75: 0x0c1f,
- 0xa76: 0x0c2f, 0xa77: 0x0c43, 0xa78: 0x16ba, 0xa79: 0x0c3f, 0xa7a: 0x0c33, 0xa7b: 0x0c4b,
- 0xa7c: 0x0c53, 0xa7d: 0x0c67, 0xa7e: 0x16bf, 0xa7f: 0x0c6f,
- // Block 0x2a, offset 0xa80
- 0xa80: 0x0c63, 0xa81: 0x0c5b, 0xa82: 0x05ef, 0xa83: 0x0c77, 0xa84: 0x0c7f, 0xa85: 0x0c87,
- 0xa86: 0x0c7b, 0xa87: 0x05f3, 0xa88: 0x0c97, 0xa89: 0x0c9f, 0xa8a: 0x16c4, 0xa8b: 0x0ccb,
- 0xa8c: 0x0cff, 0xa8d: 0x0cdb, 0xa8e: 0x05ff, 0xa8f: 0x0ce7, 0xa90: 0x05fb, 0xa91: 0x05f7,
- 0xa92: 0x07c3, 0xa93: 0x07c7, 0xa94: 0x0d03, 0xa95: 0x0ceb, 0xa96: 0x11ab, 0xa97: 0x0663,
- 0xa98: 0x0d0f, 0xa99: 0x0d13, 0xa9a: 0x0d17, 0xa9b: 0x0d2b, 0xa9c: 0x0d23, 0xa9d: 0x16dd,
- 0xa9e: 0x0603, 0xa9f: 0x0d3f, 0xaa0: 0x0d33, 0xaa1: 0x0d4f, 0xaa2: 0x0d57, 0xaa3: 0x16e7,
- 0xaa4: 0x0d5b, 0xaa5: 0x0d47, 0xaa6: 0x0d63, 0xaa7: 0x0607, 0xaa8: 0x0d67, 0xaa9: 0x0d6b,
- 0xaaa: 0x0d6f, 0xaab: 0x0d7b, 0xaac: 0x16ec, 0xaad: 0x0d83, 0xaae: 0x060b, 0xaaf: 0x0d8f,
- 0xab0: 0x16f1, 0xab1: 0x0d93, 0xab2: 0x060f, 0xab3: 0x0d9f, 0xab4: 0x0dab, 0xab5: 0x0db7,
- 0xab6: 0x0dbb, 0xab7: 0x16f6, 0xab8: 0x168d, 0xab9: 0x16fb, 0xaba: 0x0ddb, 0xabb: 0x1700,
- 0xabc: 0x0de7, 0xabd: 0x0def, 0xabe: 0x0ddf, 0xabf: 0x0dfb,
- // Block 0x2b, offset 0xac0
- 0xac0: 0x0e0b, 0xac1: 0x0e1b, 0xac2: 0x0e0f, 0xac3: 0x0e13, 0xac4: 0x0e1f, 0xac5: 0x0e23,
- 0xac6: 0x1705, 0xac7: 0x0e07, 0xac8: 0x0e3b, 0xac9: 0x0e3f, 0xaca: 0x0613, 0xacb: 0x0e53,
- 0xacc: 0x0e4f, 0xacd: 0x170a, 0xace: 0x0e33, 0xacf: 0x0e6f, 0xad0: 0x170f, 0xad1: 0x1714,
- 0xad2: 0x0e73, 0xad3: 0x0e87, 0xad4: 0x0e83, 0xad5: 0x0e7f, 0xad6: 0x0617, 0xad7: 0x0e8b,
- 0xad8: 0x0e9b, 0xad9: 0x0e97, 0xada: 0x0ea3, 0xadb: 0x1651, 0xadc: 0x0eb3, 0xadd: 0x1719,
- 0xade: 0x0ebf, 0xadf: 0x1723, 0xae0: 0x0ed3, 0xae1: 0x0edf, 0xae2: 0x0ef3, 0xae3: 0x1728,
- 0xae4: 0x0f07, 0xae5: 0x0f0b, 0xae6: 0x172d, 0xae7: 0x1732, 0xae8: 0x0f27, 0xae9: 0x0f37,
- 0xaea: 0x061b, 0xaeb: 0x0f3b, 0xaec: 0x061f, 0xaed: 0x061f, 0xaee: 0x0f53, 0xaef: 0x0f57,
- 0xaf0: 0x0f5f, 0xaf1: 0x0f63, 0xaf2: 0x0f6f, 0xaf3: 0x0623, 0xaf4: 0x0f87, 0xaf5: 0x1737,
- 0xaf6: 0x0fa3, 0xaf7: 0x173c, 0xaf8: 0x0faf, 0xaf9: 0x16a1, 0xafa: 0x0fbf, 0xafb: 0x1741,
- 0xafc: 0x1746, 0xafd: 0x174b, 0xafe: 0x0627, 0xaff: 0x062b,
- // Block 0x2c, offset 0xb00
- 0xb00: 0x0ff7, 0xb01: 0x1755, 0xb02: 0x1750, 0xb03: 0x175a, 0xb04: 0x175f, 0xb05: 0x0fff,
- 0xb06: 0x1003, 0xb07: 0x1003, 0xb08: 0x100b, 0xb09: 0x0633, 0xb0a: 0x100f, 0xb0b: 0x0637,
- 0xb0c: 0x063b, 0xb0d: 0x1769, 0xb0e: 0x1023, 0xb0f: 0x102b, 0xb10: 0x1037, 0xb11: 0x063f,
- 0xb12: 0x176e, 0xb13: 0x105b, 0xb14: 0x1773, 0xb15: 0x1778, 0xb16: 0x107b, 0xb17: 0x1093,
- 0xb18: 0x0643, 0xb19: 0x109b, 0xb1a: 0x109f, 0xb1b: 0x10a3, 0xb1c: 0x177d, 0xb1d: 0x1782,
- 0xb1e: 0x1782, 0xb1f: 0x10bb, 0xb20: 0x0647, 0xb21: 0x1787, 0xb22: 0x10cf, 0xb23: 0x10d3,
- 0xb24: 0x064b, 0xb25: 0x178c, 0xb26: 0x10ef, 0xb27: 0x064f, 0xb28: 0x10ff, 0xb29: 0x10f7,
- 0xb2a: 0x1107, 0xb2b: 0x1796, 0xb2c: 0x111f, 0xb2d: 0x0653, 0xb2e: 0x112b, 0xb2f: 0x1133,
- 0xb30: 0x1143, 0xb31: 0x0657, 0xb32: 0x17a0, 0xb33: 0x17a5, 0xb34: 0x065b, 0xb35: 0x17aa,
- 0xb36: 0x115b, 0xb37: 0x17af, 0xb38: 0x1167, 0xb39: 0x1173, 0xb3a: 0x117b, 0xb3b: 0x17b4,
- 0xb3c: 0x17b9, 0xb3d: 0x118f, 0xb3e: 0x17be, 0xb3f: 0x1197,
- // Block 0x2d, offset 0xb40
- 0xb40: 0x16ce, 0xb41: 0x065f, 0xb42: 0x11af, 0xb43: 0x11b3, 0xb44: 0x0667, 0xb45: 0x11b7,
- 0xb46: 0x0a33, 0xb47: 0x17c3, 0xb48: 0x17c8, 0xb49: 0x16d3, 0xb4a: 0x16d8, 0xb4b: 0x11d7,
- 0xb4c: 0x11db, 0xb4d: 0x13f3, 0xb4e: 0x066b, 0xb4f: 0x1207, 0xb50: 0x1203, 0xb51: 0x120b,
- 0xb52: 0x083f, 0xb53: 0x120f, 0xb54: 0x1213, 0xb55: 0x1217, 0xb56: 0x121f, 0xb57: 0x17cd,
- 0xb58: 0x121b, 0xb59: 0x1223, 0xb5a: 0x1237, 0xb5b: 0x123b, 0xb5c: 0x1227, 0xb5d: 0x123f,
- 0xb5e: 0x1253, 0xb5f: 0x1267, 0xb60: 0x1233, 0xb61: 0x1247, 0xb62: 0x124b, 0xb63: 0x124f,
- 0xb64: 0x17d2, 0xb65: 0x17dc, 0xb66: 0x17d7, 0xb67: 0x066f, 0xb68: 0x126f, 0xb69: 0x1273,
- 0xb6a: 0x127b, 0xb6b: 0x17f0, 0xb6c: 0x127f, 0xb6d: 0x17e1, 0xb6e: 0x0673, 0xb6f: 0x0677,
- 0xb70: 0x17e6, 0xb71: 0x17eb, 0xb72: 0x067b, 0xb73: 0x129f, 0xb74: 0x12a3, 0xb75: 0x12a7,
- 0xb76: 0x12ab, 0xb77: 0x12b7, 0xb78: 0x12b3, 0xb79: 0x12bf, 0xb7a: 0x12bb, 0xb7b: 0x12cb,
- 0xb7c: 0x12c3, 0xb7d: 0x12c7, 0xb7e: 0x12cf, 0xb7f: 0x067f,
- // Block 0x2e, offset 0xb80
- 0xb80: 0x12d7, 0xb81: 0x12db, 0xb82: 0x0683, 0xb83: 0x12eb, 0xb84: 0x12ef, 0xb85: 0x17f5,
- 0xb86: 0x12fb, 0xb87: 0x12ff, 0xb88: 0x0687, 0xb89: 0x130b, 0xb8a: 0x05bb, 0xb8b: 0x17fa,
- 0xb8c: 0x17ff, 0xb8d: 0x068b, 0xb8e: 0x068f, 0xb8f: 0x1337, 0xb90: 0x134f, 0xb91: 0x136b,
- 0xb92: 0x137b, 0xb93: 0x1804, 0xb94: 0x138f, 0xb95: 0x1393, 0xb96: 0x13ab, 0xb97: 0x13b7,
- 0xb98: 0x180e, 0xb99: 0x1660, 0xb9a: 0x13c3, 0xb9b: 0x13bf, 0xb9c: 0x13cb, 0xb9d: 0x1665,
- 0xb9e: 0x13d7, 0xb9f: 0x13e3, 0xba0: 0x1813, 0xba1: 0x1818, 0xba2: 0x1423, 0xba3: 0x142f,
- 0xba4: 0x1437, 0xba5: 0x181d, 0xba6: 0x143b, 0xba7: 0x1467, 0xba8: 0x1473, 0xba9: 0x1477,
- 0xbaa: 0x146f, 0xbab: 0x1483, 0xbac: 0x1487, 0xbad: 0x1822, 0xbae: 0x1493, 0xbaf: 0x0693,
- 0xbb0: 0x149b, 0xbb1: 0x1827, 0xbb2: 0x0697, 0xbb3: 0x14d3, 0xbb4: 0x0ac3, 0xbb5: 0x14eb,
- 0xbb6: 0x182c, 0xbb7: 0x1836, 0xbb8: 0x069b, 0xbb9: 0x069f, 0xbba: 0x1513, 0xbbb: 0x183b,
- 0xbbc: 0x06a3, 0xbbd: 0x1840, 0xbbe: 0x152b, 0xbbf: 0x152b,
- // Block 0x2f, offset 0xbc0
- 0xbc0: 0x1533, 0xbc1: 0x1845, 0xbc2: 0x154b, 0xbc3: 0x06a7, 0xbc4: 0x155b, 0xbc5: 0x1567,
- 0xbc6: 0x156f, 0xbc7: 0x1577, 0xbc8: 0x06ab, 0xbc9: 0x184a, 0xbca: 0x158b, 0xbcb: 0x15a7,
- 0xbcc: 0x15b3, 0xbcd: 0x06af, 0xbce: 0x06b3, 0xbcf: 0x15b7, 0xbd0: 0x184f, 0xbd1: 0x06b7,
- 0xbd2: 0x1854, 0xbd3: 0x1859, 0xbd4: 0x185e, 0xbd5: 0x15db, 0xbd6: 0x06bb, 0xbd7: 0x15ef,
- 0xbd8: 0x15f7, 0xbd9: 0x15fb, 0xbda: 0x1603, 0xbdb: 0x160b, 0xbdc: 0x1613, 0xbdd: 0x1868,
-}
-
-// nfcIndex: 22 blocks, 1408 entries, 1408 bytes
-// Block 0 is the zero block.
-var nfcIndex = [1408]uint8{
- // Block 0x0, offset 0x0
- // Block 0x1, offset 0x40
- // Block 0x2, offset 0x80
- // Block 0x3, offset 0xc0
- 0xc2: 0x2e, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x2f, 0xc7: 0x04,
- 0xc8: 0x05, 0xca: 0x30, 0xcb: 0x31, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x32,
- 0xd0: 0x09, 0xd1: 0x33, 0xd2: 0x34, 0xd3: 0x0a, 0xd6: 0x0b, 0xd7: 0x35,
- 0xd8: 0x36, 0xd9: 0x0c, 0xdb: 0x37, 0xdc: 0x38, 0xdd: 0x39, 0xdf: 0x3a,
- 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05,
- 0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a,
- 0xf0: 0x13,
- // Block 0x4, offset 0x100
- 0x120: 0x3b, 0x121: 0x3c, 0x123: 0x0d, 0x124: 0x3d, 0x125: 0x3e, 0x126: 0x3f, 0x127: 0x40,
- 0x128: 0x41, 0x129: 0x42, 0x12a: 0x43, 0x12b: 0x44, 0x12c: 0x3f, 0x12d: 0x45, 0x12e: 0x46, 0x12f: 0x47,
- 0x131: 0x48, 0x132: 0x49, 0x133: 0x4a, 0x134: 0x4b, 0x135: 0x4c, 0x137: 0x4d,
- 0x138: 0x4e, 0x139: 0x4f, 0x13a: 0x50, 0x13b: 0x51, 0x13c: 0x52, 0x13d: 0x53, 0x13e: 0x54, 0x13f: 0x55,
- // Block 0x5, offset 0x140
- 0x140: 0x56, 0x142: 0x57, 0x144: 0x58, 0x145: 0x59, 0x146: 0x5a, 0x147: 0x5b,
- 0x14d: 0x5c,
- 0x15c: 0x5d, 0x15f: 0x5e,
- 0x162: 0x5f, 0x164: 0x60,
- 0x168: 0x61, 0x169: 0x62, 0x16a: 0x63, 0x16c: 0x0e, 0x16d: 0x64, 0x16e: 0x65, 0x16f: 0x66,
- 0x170: 0x67, 0x173: 0x68, 0x177: 0x0f,
- 0x178: 0x10, 0x179: 0x11, 0x17a: 0x12, 0x17b: 0x13, 0x17c: 0x14, 0x17d: 0x15, 0x17e: 0x16, 0x17f: 0x17,
- // Block 0x6, offset 0x180
- 0x180: 0x69, 0x183: 0x6a, 0x184: 0x6b, 0x186: 0x6c, 0x187: 0x6d,
- 0x188: 0x6e, 0x189: 0x18, 0x18a: 0x19, 0x18b: 0x6f, 0x18c: 0x70,
- 0x1ab: 0x71,
- 0x1b3: 0x72, 0x1b5: 0x73, 0x1b7: 0x74,
- // Block 0x7, offset 0x1c0
- 0x1c0: 0x75, 0x1c1: 0x1a, 0x1c2: 0x1b, 0x1c3: 0x1c, 0x1c4: 0x76, 0x1c5: 0x77,
- 0x1c9: 0x78, 0x1cc: 0x79, 0x1cd: 0x7a,
- // Block 0x8, offset 0x200
- 0x219: 0x7b, 0x21a: 0x7c, 0x21b: 0x7d,
- 0x220: 0x7e, 0x223: 0x7f, 0x224: 0x80, 0x225: 0x81, 0x226: 0x82, 0x227: 0x83,
- 0x22a: 0x84, 0x22b: 0x85, 0x22f: 0x86,
- 0x230: 0x87, 0x231: 0x88, 0x232: 0x89, 0x233: 0x8a, 0x234: 0x8b, 0x235: 0x8c, 0x236: 0x8d, 0x237: 0x87,
- 0x238: 0x88, 0x239: 0x89, 0x23a: 0x8a, 0x23b: 0x8b, 0x23c: 0x8c, 0x23d: 0x8d, 0x23e: 0x87, 0x23f: 0x88,
- // Block 0x9, offset 0x240
- 0x240: 0x89, 0x241: 0x8a, 0x242: 0x8b, 0x243: 0x8c, 0x244: 0x8d, 0x245: 0x87, 0x246: 0x88, 0x247: 0x89,
- 0x248: 0x8a, 0x249: 0x8b, 0x24a: 0x8c, 0x24b: 0x8d, 0x24c: 0x87, 0x24d: 0x88, 0x24e: 0x89, 0x24f: 0x8a,
- 0x250: 0x8b, 0x251: 0x8c, 0x252: 0x8d, 0x253: 0x87, 0x254: 0x88, 0x255: 0x89, 0x256: 0x8a, 0x257: 0x8b,
- 0x258: 0x8c, 0x259: 0x8d, 0x25a: 0x87, 0x25b: 0x88, 0x25c: 0x89, 0x25d: 0x8a, 0x25e: 0x8b, 0x25f: 0x8c,
- 0x260: 0x8d, 0x261: 0x87, 0x262: 0x88, 0x263: 0x89, 0x264: 0x8a, 0x265: 0x8b, 0x266: 0x8c, 0x267: 0x8d,
- 0x268: 0x87, 0x269: 0x88, 0x26a: 0x89, 0x26b: 0x8a, 0x26c: 0x8b, 0x26d: 0x8c, 0x26e: 0x8d, 0x26f: 0x87,
- 0x270: 0x88, 0x271: 0x89, 0x272: 0x8a, 0x273: 0x8b, 0x274: 0x8c, 0x275: 0x8d, 0x276: 0x87, 0x277: 0x88,
- 0x278: 0x89, 0x279: 0x8a, 0x27a: 0x8b, 0x27b: 0x8c, 0x27c: 0x8d, 0x27d: 0x87, 0x27e: 0x88, 0x27f: 0x89,
- // Block 0xa, offset 0x280
- 0x280: 0x8a, 0x281: 0x8b, 0x282: 0x8c, 0x283: 0x8d, 0x284: 0x87, 0x285: 0x88, 0x286: 0x89, 0x287: 0x8a,
- 0x288: 0x8b, 0x289: 0x8c, 0x28a: 0x8d, 0x28b: 0x87, 0x28c: 0x88, 0x28d: 0x89, 0x28e: 0x8a, 0x28f: 0x8b,
- 0x290: 0x8c, 0x291: 0x8d, 0x292: 0x87, 0x293: 0x88, 0x294: 0x89, 0x295: 0x8a, 0x296: 0x8b, 0x297: 0x8c,
- 0x298: 0x8d, 0x299: 0x87, 0x29a: 0x88, 0x29b: 0x89, 0x29c: 0x8a, 0x29d: 0x8b, 0x29e: 0x8c, 0x29f: 0x8d,
- 0x2a0: 0x87, 0x2a1: 0x88, 0x2a2: 0x89, 0x2a3: 0x8a, 0x2a4: 0x8b, 0x2a5: 0x8c, 0x2a6: 0x8d, 0x2a7: 0x87,
- 0x2a8: 0x88, 0x2a9: 0x89, 0x2aa: 0x8a, 0x2ab: 0x8b, 0x2ac: 0x8c, 0x2ad: 0x8d, 0x2ae: 0x87, 0x2af: 0x88,
- 0x2b0: 0x89, 0x2b1: 0x8a, 0x2b2: 0x8b, 0x2b3: 0x8c, 0x2b4: 0x8d, 0x2b5: 0x87, 0x2b6: 0x88, 0x2b7: 0x89,
- 0x2b8: 0x8a, 0x2b9: 0x8b, 0x2ba: 0x8c, 0x2bb: 0x8d, 0x2bc: 0x87, 0x2bd: 0x88, 0x2be: 0x89, 0x2bf: 0x8a,
- // Block 0xb, offset 0x2c0
- 0x2c0: 0x8b, 0x2c1: 0x8c, 0x2c2: 0x8d, 0x2c3: 0x87, 0x2c4: 0x88, 0x2c5: 0x89, 0x2c6: 0x8a, 0x2c7: 0x8b,
- 0x2c8: 0x8c, 0x2c9: 0x8d, 0x2ca: 0x87, 0x2cb: 0x88, 0x2cc: 0x89, 0x2cd: 0x8a, 0x2ce: 0x8b, 0x2cf: 0x8c,
- 0x2d0: 0x8d, 0x2d1: 0x87, 0x2d2: 0x88, 0x2d3: 0x89, 0x2d4: 0x8a, 0x2d5: 0x8b, 0x2d6: 0x8c, 0x2d7: 0x8d,
- 0x2d8: 0x87, 0x2d9: 0x88, 0x2da: 0x89, 0x2db: 0x8a, 0x2dc: 0x8b, 0x2dd: 0x8c, 0x2de: 0x8e,
- // Block 0xc, offset 0x300
- 0x324: 0x1d, 0x325: 0x1e, 0x326: 0x1f, 0x327: 0x20,
- 0x328: 0x21, 0x329: 0x22, 0x32a: 0x23, 0x32b: 0x24, 0x32c: 0x8f, 0x32d: 0x90, 0x32e: 0x91,
- 0x331: 0x92, 0x332: 0x93, 0x333: 0x94, 0x334: 0x95,
- 0x338: 0x96, 0x339: 0x97, 0x33a: 0x98, 0x33b: 0x99, 0x33e: 0x9a, 0x33f: 0x9b,
- // Block 0xd, offset 0x340
- 0x347: 0x9c,
- 0x34b: 0x9d, 0x34d: 0x9e,
- 0x368: 0x9f, 0x36b: 0xa0,
- 0x374: 0xa1,
- 0x37d: 0xa2,
- // Block 0xe, offset 0x380
- 0x381: 0xa3, 0x382: 0xa4, 0x384: 0xa5, 0x385: 0x82, 0x387: 0xa6,
- 0x388: 0xa7, 0x38b: 0xa8, 0x38c: 0xa9, 0x38d: 0xaa,
- 0x391: 0xab, 0x392: 0xac, 0x393: 0xad, 0x396: 0xae, 0x397: 0xaf,
- 0x398: 0x73, 0x39a: 0xb0, 0x39c: 0xb1,
- 0x3a0: 0xb2, 0x3a7: 0xb3,
- 0x3a8: 0xb4, 0x3a9: 0xb5, 0x3aa: 0xb6,
- 0x3b0: 0x73, 0x3b5: 0xb7, 0x3b6: 0xb8,
- // Block 0xf, offset 0x3c0
- 0x3eb: 0xb9, 0x3ec: 0xba,
- // Block 0x10, offset 0x400
- 0x432: 0xbb,
- // Block 0x11, offset 0x440
- 0x445: 0xbc, 0x446: 0xbd, 0x447: 0xbe,
- 0x449: 0xbf,
- // Block 0x12, offset 0x480
- 0x480: 0xc0, 0x484: 0xba,
- 0x48b: 0xc1,
- 0x4a3: 0xc2, 0x4a5: 0xc3,
- // Block 0x13, offset 0x4c0
- 0x4c8: 0xc4,
- // Block 0x14, offset 0x500
- 0x520: 0x25, 0x521: 0x26, 0x522: 0x27, 0x523: 0x28, 0x524: 0x29, 0x525: 0x2a, 0x526: 0x2b, 0x527: 0x2c,
- 0x528: 0x2d,
- // Block 0x15, offset 0x540
- 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d,
- 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,
- 0x56f: 0x12,
-}
-
-// nfcSparseOffset: 151 entries, 302 bytes
-var nfcSparseOffset = []uint16{0x0, 0x5, 0x9, 0xb, 0xd, 0x18, 0x28, 0x2a, 0x2f, 0x3a, 0x49, 0x56, 0x5e, 0x63, 0x68, 0x6a, 0x72, 0x79, 0x7c, 0x84, 0x88, 0x8c, 0x8e, 0x90, 0x99, 0x9d, 0xa4, 0xa9, 0xac, 0xb6, 0xb9, 0xc0, 0xc8, 0xcb, 0xcd, 0xd0, 0xd2, 0xd7, 0xe8, 0xf4, 0xf6, 0xfc, 0xfe, 0x100, 0x102, 0x104, 0x106, 0x108, 0x10b, 0x10e, 0x110, 0x113, 0x116, 0x11a, 0x11f, 0x128, 0x12a, 0x12d, 0x12f, 0x13a, 0x13e, 0x14c, 0x14f, 0x155, 0x15b, 0x166, 0x16a, 0x16c, 0x16e, 0x170, 0x172, 0x174, 0x17a, 0x17e, 0x180, 0x182, 0x18a, 0x18e, 0x191, 0x193, 0x195, 0x197, 0x19a, 0x19c, 0x19e, 0x1a0, 0x1a2, 0x1a8, 0x1ab, 0x1ad, 0x1b4, 0x1ba, 0x1c0, 0x1c8, 0x1ce, 0x1d4, 0x1da, 0x1de, 0x1ec, 0x1f5, 0x1f8, 0x1fb, 0x1fd, 0x200, 0x202, 0x206, 0x20b, 0x20d, 0x20f, 0x214, 0x21a, 0x21c, 0x21e, 0x220, 0x226, 0x229, 0x22b, 0x231, 0x234, 0x23c, 0x243, 0x246, 0x249, 0x24b, 0x24e, 0x256, 0x25a, 0x261, 0x264, 0x26a, 0x26c, 0x26f, 0x271, 0x274, 0x276, 0x278, 0x27a, 0x27c, 0x27f, 0x281, 0x283, 0x285, 0x287, 0x294, 0x29e, 0x2a0, 0x2a2, 0x2a8, 0x2aa, 0x2ac, 0x2af}
-
-// nfcSparseValues: 689 entries, 2756 bytes
-var nfcSparseValues = [689]valueRange{
- // Block 0x0, offset 0x0
- {value: 0x0000, lo: 0x04},
- {value: 0xa100, lo: 0xa8, hi: 0xa8},
- {value: 0x8100, lo: 0xaf, hi: 0xaf},
- {value: 0x8100, lo: 0xb4, hi: 0xb4},
- {value: 0x8100, lo: 0xb8, hi: 0xb8},
- // Block 0x1, offset 0x5
- {value: 0x0091, lo: 0x03},
- {value: 0x46e5, lo: 0xa0, hi: 0xa1},
- {value: 0x4717, lo: 0xaf, hi: 0xb0},
- {value: 0xa000, lo: 0xb7, hi: 0xb7},
- // Block 0x2, offset 0x9
- {value: 0x0000, lo: 0x01},
- {value: 0xa000, lo: 0x92, hi: 0x92},
- // Block 0x3, offset 0xb
- {value: 0x0000, lo: 0x01},
- {value: 0x8100, lo: 0x98, hi: 0x9d},
- // Block 0x4, offset 0xd
- {value: 0x0006, lo: 0x0a},
- {value: 0xa000, lo: 0x81, hi: 0x81},
- {value: 0xa000, lo: 0x85, hi: 0x85},
- {value: 0xa000, lo: 0x89, hi: 0x89},
- {value: 0x4843, lo: 0x8a, hi: 0x8a},
- {value: 0x4861, lo: 0x8b, hi: 0x8b},
- {value: 0x36ca, lo: 0x8c, hi: 0x8c},
- {value: 0x36e2, lo: 0x8d, hi: 0x8d},
- {value: 0x4879, lo: 0x8e, hi: 0x8e},
- {value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0x3700, lo: 0x93, hi: 0x94},
- // Block 0x5, offset 0x18
- {value: 0x0000, lo: 0x0f},
- {value: 0xa000, lo: 0x83, hi: 0x83},
- {value: 0xa000, lo: 0x87, hi: 0x87},
- {value: 0xa000, lo: 0x8b, hi: 0x8b},
- {value: 0xa000, lo: 0x8d, hi: 0x8d},
- {value: 0x37a8, lo: 0x90, hi: 0x90},
- {value: 0x37b4, lo: 0x91, hi: 0x91},
- {value: 0x37a2, lo: 0x93, hi: 0x93},
- {value: 0xa000, lo: 0x96, hi: 0x96},
- {value: 0x381a, lo: 0x97, hi: 0x97},
- {value: 0x37e4, lo: 0x9c, hi: 0x9c},
- {value: 0x37cc, lo: 0x9d, hi: 0x9d},
- {value: 0x37f6, lo: 0x9e, hi: 0x9e},
- {value: 0xa000, lo: 0xb4, hi: 0xb5},
- {value: 0x3820, lo: 0xb6, hi: 0xb6},
- {value: 0x3826, lo: 0xb7, hi: 0xb7},
- // Block 0x6, offset 0x28
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0x83, hi: 0x87},
- // Block 0x7, offset 0x2a
- {value: 0x0001, lo: 0x04},
- {value: 0x8113, lo: 0x81, hi: 0x82},
- {value: 0x8132, lo: 0x84, hi: 0x84},
- {value: 0x812d, lo: 0x85, hi: 0x85},
- {value: 0x810d, lo: 0x87, hi: 0x87},
- // Block 0x8, offset 0x2f
- {value: 0x0000, lo: 0x0a},
- {value: 0x8132, lo: 0x90, hi: 0x97},
- {value: 0x8119, lo: 0x98, hi: 0x98},
- {value: 0x811a, lo: 0x99, hi: 0x99},
- {value: 0x811b, lo: 0x9a, hi: 0x9a},
- {value: 0x3844, lo: 0xa2, hi: 0xa2},
- {value: 0x384a, lo: 0xa3, hi: 0xa3},
- {value: 0x3856, lo: 0xa4, hi: 0xa4},
- {value: 0x3850, lo: 0xa5, hi: 0xa5},
- {value: 0x385c, lo: 0xa6, hi: 0xa6},
- {value: 0xa000, lo: 0xa7, hi: 0xa7},
- // Block 0x9, offset 0x3a
- {value: 0x0000, lo: 0x0e},
- {value: 0x386e, lo: 0x80, hi: 0x80},
- {value: 0xa000, lo: 0x81, hi: 0x81},
- {value: 0x3862, lo: 0x82, hi: 0x82},
- {value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0x3868, lo: 0x93, hi: 0x93},
- {value: 0xa000, lo: 0x95, hi: 0x95},
- {value: 0x8132, lo: 0x96, hi: 0x9c},
- {value: 0x8132, lo: 0x9f, hi: 0xa2},
- {value: 0x812d, lo: 0xa3, hi: 0xa3},
- {value: 0x8132, lo: 0xa4, hi: 0xa4},
- {value: 0x8132, lo: 0xa7, hi: 0xa8},
- {value: 0x812d, lo: 0xaa, hi: 0xaa},
- {value: 0x8132, lo: 0xab, hi: 0xac},
- {value: 0x812d, lo: 0xad, hi: 0xad},
- // Block 0xa, offset 0x49
- {value: 0x0000, lo: 0x0c},
- {value: 0x811f, lo: 0x91, hi: 0x91},
- {value: 0x8132, lo: 0xb0, hi: 0xb0},
- {value: 0x812d, lo: 0xb1, hi: 0xb1},
- {value: 0x8132, lo: 0xb2, hi: 0xb3},
- {value: 0x812d, lo: 0xb4, hi: 0xb4},
- {value: 0x8132, lo: 0xb5, hi: 0xb6},
- {value: 0x812d, lo: 0xb7, hi: 0xb9},
- {value: 0x8132, lo: 0xba, hi: 0xba},
- {value: 0x812d, lo: 0xbb, hi: 0xbc},
- {value: 0x8132, lo: 0xbd, hi: 0xbd},
- {value: 0x812d, lo: 0xbe, hi: 0xbe},
- {value: 0x8132, lo: 0xbf, hi: 0xbf},
- // Block 0xb, offset 0x56
- {value: 0x0005, lo: 0x07},
- {value: 0x8132, lo: 0x80, hi: 0x80},
- {value: 0x8132, lo: 0x81, hi: 0x81},
- {value: 0x812d, lo: 0x82, hi: 0x83},
- {value: 0x812d, lo: 0x84, hi: 0x85},
- {value: 0x812d, lo: 0x86, hi: 0x87},
- {value: 0x812d, lo: 0x88, hi: 0x89},
- {value: 0x8132, lo: 0x8a, hi: 0x8a},
- // Block 0xc, offset 0x5e
- {value: 0x0000, lo: 0x04},
- {value: 0x8132, lo: 0xab, hi: 0xb1},
- {value: 0x812d, lo: 0xb2, hi: 0xb2},
- {value: 0x8132, lo: 0xb3, hi: 0xb3},
- {value: 0x812d, lo: 0xbd, hi: 0xbd},
- // Block 0xd, offset 0x63
- {value: 0x0000, lo: 0x04},
- {value: 0x8132, lo: 0x96, hi: 0x99},
- {value: 0x8132, lo: 0x9b, hi: 0xa3},
- {value: 0x8132, lo: 0xa5, hi: 0xa7},
- {value: 0x8132, lo: 0xa9, hi: 0xad},
- // Block 0xe, offset 0x68
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0x99, hi: 0x9b},
- // Block 0xf, offset 0x6a
- {value: 0x0000, lo: 0x07},
- {value: 0xa000, lo: 0xa8, hi: 0xa8},
- {value: 0x3edb, lo: 0xa9, hi: 0xa9},
- {value: 0xa000, lo: 0xb0, hi: 0xb0},
- {value: 0x3ee3, lo: 0xb1, hi: 0xb1},
- {value: 0xa000, lo: 0xb3, hi: 0xb3},
- {value: 0x3eeb, lo: 0xb4, hi: 0xb4},
- {value: 0x9902, lo: 0xbc, hi: 0xbc},
- // Block 0x10, offset 0x72
- {value: 0x0008, lo: 0x06},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x8132, lo: 0x91, hi: 0x91},
- {value: 0x812d, lo: 0x92, hi: 0x92},
- {value: 0x8132, lo: 0x93, hi: 0x93},
- {value: 0x8132, lo: 0x94, hi: 0x94},
- {value: 0x451f, lo: 0x98, hi: 0x9f},
- // Block 0x11, offset 0x79
- {value: 0x0000, lo: 0x02},
- {value: 0x8102, lo: 0xbc, hi: 0xbc},
- {value: 0x9900, lo: 0xbe, hi: 0xbe},
- // Block 0x12, offset 0x7c
- {value: 0x0008, lo: 0x07},
- {value: 0xa000, lo: 0x87, hi: 0x87},
- {value: 0x2ca1, lo: 0x8b, hi: 0x8c},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x9900, lo: 0x97, hi: 0x97},
- {value: 0x455f, lo: 0x9c, hi: 0x9d},
- {value: 0x456f, lo: 0x9f, hi: 0x9f},
- {value: 0x8132, lo: 0xbe, hi: 0xbe},
- // Block 0x13, offset 0x84
- {value: 0x0000, lo: 0x03},
- {value: 0x4597, lo: 0xb3, hi: 0xb3},
- {value: 0x459f, lo: 0xb6, hi: 0xb6},
- {value: 0x8102, lo: 0xbc, hi: 0xbc},
- // Block 0x14, offset 0x88
- {value: 0x0008, lo: 0x03},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x4577, lo: 0x99, hi: 0x9b},
- {value: 0x458f, lo: 0x9e, hi: 0x9e},
- // Block 0x15, offset 0x8c
- {value: 0x0000, lo: 0x01},
- {value: 0x8102, lo: 0xbc, hi: 0xbc},
- // Block 0x16, offset 0x8e
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- // Block 0x17, offset 0x90
- {value: 0x0000, lo: 0x08},
- {value: 0xa000, lo: 0x87, hi: 0x87},
- {value: 0x2cb9, lo: 0x88, hi: 0x88},
- {value: 0x2cb1, lo: 0x8b, hi: 0x8b},
- {value: 0x2cc1, lo: 0x8c, hi: 0x8c},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x9900, lo: 0x96, hi: 0x97},
- {value: 0x45a7, lo: 0x9c, hi: 0x9c},
- {value: 0x45af, lo: 0x9d, hi: 0x9d},
- // Block 0x18, offset 0x99
- {value: 0x0000, lo: 0x03},
- {value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0x2cc9, lo: 0x94, hi: 0x94},
- {value: 0x9900, lo: 0xbe, hi: 0xbe},
- // Block 0x19, offset 0x9d
- {value: 0x0000, lo: 0x06},
- {value: 0xa000, lo: 0x86, hi: 0x87},
- {value: 0x2cd1, lo: 0x8a, hi: 0x8a},
- {value: 0x2ce1, lo: 0x8b, hi: 0x8b},
- {value: 0x2cd9, lo: 0x8c, hi: 0x8c},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x9900, lo: 0x97, hi: 0x97},
- // Block 0x1a, offset 0xa4
- {value: 0x1801, lo: 0x04},
- {value: 0xa000, lo: 0x86, hi: 0x86},
- {value: 0x3ef3, lo: 0x88, hi: 0x88},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x8120, lo: 0x95, hi: 0x96},
- // Block 0x1b, offset 0xa9
- {value: 0x0000, lo: 0x02},
- {value: 0x8102, lo: 0xbc, hi: 0xbc},
- {value: 0xa000, lo: 0xbf, hi: 0xbf},
- // Block 0x1c, offset 0xac
- {value: 0x0000, lo: 0x09},
- {value: 0x2ce9, lo: 0x80, hi: 0x80},
- {value: 0x9900, lo: 0x82, hi: 0x82},
- {value: 0xa000, lo: 0x86, hi: 0x86},
- {value: 0x2cf1, lo: 0x87, hi: 0x87},
- {value: 0x2cf9, lo: 0x88, hi: 0x88},
- {value: 0x2f53, lo: 0x8a, hi: 0x8a},
- {value: 0x2ddb, lo: 0x8b, hi: 0x8b},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x9900, lo: 0x95, hi: 0x96},
- // Block 0x1d, offset 0xb6
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0xbb, hi: 0xbc},
- {value: 0x9900, lo: 0xbe, hi: 0xbe},
- // Block 0x1e, offset 0xb9
- {value: 0x0000, lo: 0x06},
- {value: 0xa000, lo: 0x86, hi: 0x87},
- {value: 0x2d01, lo: 0x8a, hi: 0x8a},
- {value: 0x2d11, lo: 0x8b, hi: 0x8b},
- {value: 0x2d09, lo: 0x8c, hi: 0x8c},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x9900, lo: 0x97, hi: 0x97},
- // Block 0x1f, offset 0xc0
- {value: 0x6be7, lo: 0x07},
- {value: 0x9904, lo: 0x8a, hi: 0x8a},
- {value: 0x9900, lo: 0x8f, hi: 0x8f},
- {value: 0xa000, lo: 0x99, hi: 0x99},
- {value: 0x3efb, lo: 0x9a, hi: 0x9a},
- {value: 0x2f5b, lo: 0x9c, hi: 0x9c},
- {value: 0x2de6, lo: 0x9d, hi: 0x9d},
- {value: 0x2d19, lo: 0x9e, hi: 0x9f},
- // Block 0x20, offset 0xc8
- {value: 0x0000, lo: 0x02},
- {value: 0x8122, lo: 0xb8, hi: 0xb9},
- {value: 0x8104, lo: 0xba, hi: 0xba},
- // Block 0x21, offset 0xcb
- {value: 0x0000, lo: 0x01},
- {value: 0x8123, lo: 0x88, hi: 0x8b},
- // Block 0x22, offset 0xcd
- {value: 0x0000, lo: 0x02},
- {value: 0x8124, lo: 0xb8, hi: 0xb9},
- {value: 0x8104, lo: 0xba, hi: 0xba},
- // Block 0x23, offset 0xd0
- {value: 0x0000, lo: 0x01},
- {value: 0x8125, lo: 0x88, hi: 0x8b},
- // Block 0x24, offset 0xd2
- {value: 0x0000, lo: 0x04},
- {value: 0x812d, lo: 0x98, hi: 0x99},
- {value: 0x812d, lo: 0xb5, hi: 0xb5},
- {value: 0x812d, lo: 0xb7, hi: 0xb7},
- {value: 0x812b, lo: 0xb9, hi: 0xb9},
- // Block 0x25, offset 0xd7
- {value: 0x0000, lo: 0x10},
- {value: 0x2647, lo: 0x83, hi: 0x83},
- {value: 0x264e, lo: 0x8d, hi: 0x8d},
- {value: 0x2655, lo: 0x92, hi: 0x92},
- {value: 0x265c, lo: 0x97, hi: 0x97},
- {value: 0x2663, lo: 0x9c, hi: 0x9c},
- {value: 0x2640, lo: 0xa9, hi: 0xa9},
- {value: 0x8126, lo: 0xb1, hi: 0xb1},
- {value: 0x8127, lo: 0xb2, hi: 0xb2},
- {value: 0x4a87, lo: 0xb3, hi: 0xb3},
- {value: 0x8128, lo: 0xb4, hi: 0xb4},
- {value: 0x4a90, lo: 0xb5, hi: 0xb5},
- {value: 0x45b7, lo: 0xb6, hi: 0xb6},
- {value: 0x8200, lo: 0xb7, hi: 0xb7},
- {value: 0x45bf, lo: 0xb8, hi: 0xb8},
- {value: 0x8200, lo: 0xb9, hi: 0xb9},
- {value: 0x8127, lo: 0xba, hi: 0xbd},
- // Block 0x26, offset 0xe8
- {value: 0x0000, lo: 0x0b},
- {value: 0x8127, lo: 0x80, hi: 0x80},
- {value: 0x4a99, lo: 0x81, hi: 0x81},
- {value: 0x8132, lo: 0x82, hi: 0x83},
- {value: 0x8104, lo: 0x84, hi: 0x84},
- {value: 0x8132, lo: 0x86, hi: 0x87},
- {value: 0x2671, lo: 0x93, hi: 0x93},
- {value: 0x2678, lo: 0x9d, hi: 0x9d},
- {value: 0x267f, lo: 0xa2, hi: 0xa2},
- {value: 0x2686, lo: 0xa7, hi: 0xa7},
- {value: 0x268d, lo: 0xac, hi: 0xac},
- {value: 0x266a, lo: 0xb9, hi: 0xb9},
- // Block 0x27, offset 0xf4
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0x86, hi: 0x86},
- // Block 0x28, offset 0xf6
- {value: 0x0000, lo: 0x05},
- {value: 0xa000, lo: 0xa5, hi: 0xa5},
- {value: 0x2d21, lo: 0xa6, hi: 0xa6},
- {value: 0x9900, lo: 0xae, hi: 0xae},
- {value: 0x8102, lo: 0xb7, hi: 0xb7},
- {value: 0x8104, lo: 0xb9, hi: 0xba},
- // Block 0x29, offset 0xfc
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0x8d, hi: 0x8d},
- // Block 0x2a, offset 0xfe
- {value: 0x0000, lo: 0x01},
- {value: 0xa000, lo: 0x80, hi: 0x92},
- // Block 0x2b, offset 0x100
- {value: 0x0000, lo: 0x01},
- {value: 0xb900, lo: 0xa1, hi: 0xb5},
- // Block 0x2c, offset 0x102
- {value: 0x0000, lo: 0x01},
- {value: 0x9900, lo: 0xa8, hi: 0xbf},
- // Block 0x2d, offset 0x104
- {value: 0x0000, lo: 0x01},
- {value: 0x9900, lo: 0x80, hi: 0x82},
- // Block 0x2e, offset 0x106
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0x9d, hi: 0x9f},
- // Block 0x2f, offset 0x108
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x94, hi: 0x94},
- {value: 0x8104, lo: 0xb4, hi: 0xb4},
- // Block 0x30, offset 0x10b
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x92, hi: 0x92},
- {value: 0x8132, lo: 0x9d, hi: 0x9d},
- // Block 0x31, offset 0x10e
- {value: 0x0000, lo: 0x01},
- {value: 0x8131, lo: 0xa9, hi: 0xa9},
- // Block 0x32, offset 0x110
- {value: 0x0004, lo: 0x02},
- {value: 0x812e, lo: 0xb9, hi: 0xba},
- {value: 0x812d, lo: 0xbb, hi: 0xbb},
- // Block 0x33, offset 0x113
- {value: 0x0000, lo: 0x02},
- {value: 0x8132, lo: 0x97, hi: 0x97},
- {value: 0x812d, lo: 0x98, hi: 0x98},
- // Block 0x34, offset 0x116
- {value: 0x0000, lo: 0x03},
- {value: 0x8104, lo: 0xa0, hi: 0xa0},
- {value: 0x8132, lo: 0xb5, hi: 0xbc},
- {value: 0x812d, lo: 0xbf, hi: 0xbf},
- // Block 0x35, offset 0x11a
- {value: 0x0000, lo: 0x04},
- {value: 0x8132, lo: 0xb0, hi: 0xb4},
- {value: 0x812d, lo: 0xb5, hi: 0xba},
- {value: 0x8132, lo: 0xbb, hi: 0xbc},
- {value: 0x812d, lo: 0xbd, hi: 0xbd},
- // Block 0x36, offset 0x11f
- {value: 0x0000, lo: 0x08},
- {value: 0x2d69, lo: 0x80, hi: 0x80},
- {value: 0x2d71, lo: 0x81, hi: 0x81},
- {value: 0xa000, lo: 0x82, hi: 0x82},
- {value: 0x2d79, lo: 0x83, hi: 0x83},
- {value: 0x8104, lo: 0x84, hi: 0x84},
- {value: 0x8132, lo: 0xab, hi: 0xab},
- {value: 0x812d, lo: 0xac, hi: 0xac},
- {value: 0x8132, lo: 0xad, hi: 0xb3},
- // Block 0x37, offset 0x128
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0xaa, hi: 0xab},
- // Block 0x38, offset 0x12a
- {value: 0x0000, lo: 0x02},
- {value: 0x8102, lo: 0xa6, hi: 0xa6},
- {value: 0x8104, lo: 0xb2, hi: 0xb3},
- // Block 0x39, offset 0x12d
- {value: 0x0000, lo: 0x01},
- {value: 0x8102, lo: 0xb7, hi: 0xb7},
- // Block 0x3a, offset 0x12f
- {value: 0x0000, lo: 0x0a},
- {value: 0x8132, lo: 0x90, hi: 0x92},
- {value: 0x8101, lo: 0x94, hi: 0x94},
- {value: 0x812d, lo: 0x95, hi: 0x99},
- {value: 0x8132, lo: 0x9a, hi: 0x9b},
- {value: 0x812d, lo: 0x9c, hi: 0x9f},
- {value: 0x8132, lo: 0xa0, hi: 0xa0},
- {value: 0x8101, lo: 0xa2, hi: 0xa8},
- {value: 0x812d, lo: 0xad, hi: 0xad},
- {value: 0x8132, lo: 0xb4, hi: 0xb4},
- {value: 0x8132, lo: 0xb8, hi: 0xb9},
- // Block 0x3b, offset 0x13a
- {value: 0x0004, lo: 0x03},
- {value: 0x0433, lo: 0x80, hi: 0x81},
- {value: 0x8100, lo: 0x97, hi: 0x97},
- {value: 0x8100, lo: 0xbe, hi: 0xbe},
- // Block 0x3c, offset 0x13e
- {value: 0x0000, lo: 0x0d},
- {value: 0x8132, lo: 0x90, hi: 0x91},
- {value: 0x8101, lo: 0x92, hi: 0x93},
- {value: 0x8132, lo: 0x94, hi: 0x97},
- {value: 0x8101, lo: 0x98, hi: 0x9a},
- {value: 0x8132, lo: 0x9b, hi: 0x9c},
- {value: 0x8132, lo: 0xa1, hi: 0xa1},
- {value: 0x8101, lo: 0xa5, hi: 0xa6},
- {value: 0x8132, lo: 0xa7, hi: 0xa7},
- {value: 0x812d, lo: 0xa8, hi: 0xa8},
- {value: 0x8132, lo: 0xa9, hi: 0xa9},
- {value: 0x8101, lo: 0xaa, hi: 0xab},
- {value: 0x812d, lo: 0xac, hi: 0xaf},
- {value: 0x8132, lo: 0xb0, hi: 0xb0},
- // Block 0x3d, offset 0x14c
- {value: 0x427e, lo: 0x02},
- {value: 0x01b8, lo: 0xa6, hi: 0xa6},
- {value: 0x0057, lo: 0xaa, hi: 0xab},
- // Block 0x3e, offset 0x14f
- {value: 0x0007, lo: 0x05},
- {value: 0xa000, lo: 0x90, hi: 0x90},
- {value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0xa000, lo: 0x94, hi: 0x94},
- {value: 0x3bbc, lo: 0x9a, hi: 0x9b},
- {value: 0x3bca, lo: 0xae, hi: 0xae},
- // Block 0x3f, offset 0x155
- {value: 0x000e, lo: 0x05},
- {value: 0x3bd1, lo: 0x8d, hi: 0x8e},
- {value: 0x3bd8, lo: 0x8f, hi: 0x8f},
- {value: 0xa000, lo: 0x90, hi: 0x90},
- {value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0xa000, lo: 0x94, hi: 0x94},
- // Block 0x40, offset 0x15b
- {value: 0x6405, lo: 0x0a},
- {value: 0xa000, lo: 0x83, hi: 0x83},
- {value: 0x3be6, lo: 0x84, hi: 0x84},
- {value: 0xa000, lo: 0x88, hi: 0x88},
- {value: 0x3bed, lo: 0x89, hi: 0x89},
- {value: 0xa000, lo: 0x8b, hi: 0x8b},
- {value: 0x3bf4, lo: 0x8c, hi: 0x8c},
- {value: 0xa000, lo: 0xa3, hi: 0xa3},
- {value: 0x3bfb, lo: 0xa4, hi: 0xa5},
- {value: 0x3c02, lo: 0xa6, hi: 0xa6},
- {value: 0xa000, lo: 0xbc, hi: 0xbc},
- // Block 0x41, offset 0x166
- {value: 0x0007, lo: 0x03},
- {value: 0x3c6b, lo: 0xa0, hi: 0xa1},
- {value: 0x3c95, lo: 0xa2, hi: 0xa3},
- {value: 0x3cbf, lo: 0xaa, hi: 0xad},
- // Block 0x42, offset 0x16a
- {value: 0x0004, lo: 0x01},
- {value: 0x048b, lo: 0xa9, hi: 0xaa},
- // Block 0x43, offset 0x16c
- {value: 0x0000, lo: 0x01},
- {value: 0x44e0, lo: 0x9c, hi: 0x9c},
- // Block 0x44, offset 0x16e
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0xaf, hi: 0xb1},
- // Block 0x45, offset 0x170
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0xbf, hi: 0xbf},
- // Block 0x46, offset 0x172
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0xa0, hi: 0xbf},
- // Block 0x47, offset 0x174
- {value: 0x0000, lo: 0x05},
- {value: 0x812c, lo: 0xaa, hi: 0xaa},
- {value: 0x8131, lo: 0xab, hi: 0xab},
- {value: 0x8133, lo: 0xac, hi: 0xac},
- {value: 0x812e, lo: 0xad, hi: 0xad},
- {value: 0x812f, lo: 0xae, hi: 0xaf},
- // Block 0x48, offset 0x17a
- {value: 0x0000, lo: 0x03},
- {value: 0x4aa2, lo: 0xb3, hi: 0xb3},
- {value: 0x4aa2, lo: 0xb5, hi: 0xb6},
- {value: 0x4aa2, lo: 0xba, hi: 0xbf},
- // Block 0x49, offset 0x17e
- {value: 0x0000, lo: 0x01},
- {value: 0x4aa2, lo: 0x8f, hi: 0xa3},
- // Block 0x4a, offset 0x180
- {value: 0x0000, lo: 0x01},
- {value: 0x8100, lo: 0xae, hi: 0xbe},
- // Block 0x4b, offset 0x182
- {value: 0x0000, lo: 0x07},
- {value: 0x8100, lo: 0x84, hi: 0x84},
- {value: 0x8100, lo: 0x87, hi: 0x87},
- {value: 0x8100, lo: 0x90, hi: 0x90},
- {value: 0x8100, lo: 0x9e, hi: 0x9e},
- {value: 0x8100, lo: 0xa1, hi: 0xa1},
- {value: 0x8100, lo: 0xb2, hi: 0xb2},
- {value: 0x8100, lo: 0xbb, hi: 0xbb},
- // Block 0x4c, offset 0x18a
- {value: 0x0000, lo: 0x03},
- {value: 0x8100, lo: 0x80, hi: 0x80},
- {value: 0x8100, lo: 0x8b, hi: 0x8b},
- {value: 0x8100, lo: 0x8e, hi: 0x8e},
- // Block 0x4d, offset 0x18e
- {value: 0x0000, lo: 0x02},
- {value: 0x8132, lo: 0xaf, hi: 0xaf},
- {value: 0x8132, lo: 0xb4, hi: 0xbd},
- // Block 0x4e, offset 0x191
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0x9e, hi: 0x9f},
- // Block 0x4f, offset 0x193
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0xb0, hi: 0xb1},
- // Block 0x50, offset 0x195
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0x86, hi: 0x86},
- // Block 0x51, offset 0x197
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x84, hi: 0x84},
- {value: 0x8132, lo: 0xa0, hi: 0xb1},
- // Block 0x52, offset 0x19a
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0xab, hi: 0xad},
- // Block 0x53, offset 0x19c
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0x93, hi: 0x93},
- // Block 0x54, offset 0x19e
- {value: 0x0000, lo: 0x01},
- {value: 0x8102, lo: 0xb3, hi: 0xb3},
- // Block 0x55, offset 0x1a0
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0x80, hi: 0x80},
- // Block 0x56, offset 0x1a2
- {value: 0x0000, lo: 0x05},
- {value: 0x8132, lo: 0xb0, hi: 0xb0},
- {value: 0x8132, lo: 0xb2, hi: 0xb3},
- {value: 0x812d, lo: 0xb4, hi: 0xb4},
- {value: 0x8132, lo: 0xb7, hi: 0xb8},
- {value: 0x8132, lo: 0xbe, hi: 0xbf},
- // Block 0x57, offset 0x1a8
- {value: 0x0000, lo: 0x02},
- {value: 0x8132, lo: 0x81, hi: 0x81},
- {value: 0x8104, lo: 0xb6, hi: 0xb6},
- // Block 0x58, offset 0x1ab
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0xad, hi: 0xad},
- // Block 0x59, offset 0x1ad
- {value: 0x0000, lo: 0x06},
- {value: 0xe500, lo: 0x80, hi: 0x80},
- {value: 0xc600, lo: 0x81, hi: 0x9b},
- {value: 0xe500, lo: 0x9c, hi: 0x9c},
- {value: 0xc600, lo: 0x9d, hi: 0xb7},
- {value: 0xe500, lo: 0xb8, hi: 0xb8},
- {value: 0xc600, lo: 0xb9, hi: 0xbf},
- // Block 0x5a, offset 0x1b4
- {value: 0x0000, lo: 0x05},
- {value: 0xc600, lo: 0x80, hi: 0x93},
- {value: 0xe500, lo: 0x94, hi: 0x94},
- {value: 0xc600, lo: 0x95, hi: 0xaf},
- {value: 0xe500, lo: 0xb0, hi: 0xb0},
- {value: 0xc600, lo: 0xb1, hi: 0xbf},
- // Block 0x5b, offset 0x1ba
- {value: 0x0000, lo: 0x05},
- {value: 0xc600, lo: 0x80, hi: 0x8b},
- {value: 0xe500, lo: 0x8c, hi: 0x8c},
- {value: 0xc600, lo: 0x8d, hi: 0xa7},
- {value: 0xe500, lo: 0xa8, hi: 0xa8},
- {value: 0xc600, lo: 0xa9, hi: 0xbf},
- // Block 0x5c, offset 0x1c0
- {value: 0x0000, lo: 0x07},
- {value: 0xc600, lo: 0x80, hi: 0x83},
- {value: 0xe500, lo: 0x84, hi: 0x84},
- {value: 0xc600, lo: 0x85, hi: 0x9f},
- {value: 0xe500, lo: 0xa0, hi: 0xa0},
- {value: 0xc600, lo: 0xa1, hi: 0xbb},
- {value: 0xe500, lo: 0xbc, hi: 0xbc},
- {value: 0xc600, lo: 0xbd, hi: 0xbf},
- // Block 0x5d, offset 0x1c8
- {value: 0x0000, lo: 0x05},
- {value: 0xc600, lo: 0x80, hi: 0x97},
- {value: 0xe500, lo: 0x98, hi: 0x98},
- {value: 0xc600, lo: 0x99, hi: 0xb3},
- {value: 0xe500, lo: 0xb4, hi: 0xb4},
- {value: 0xc600, lo: 0xb5, hi: 0xbf},
- // Block 0x5e, offset 0x1ce
- {value: 0x0000, lo: 0x05},
- {value: 0xc600, lo: 0x80, hi: 0x8f},
- {value: 0xe500, lo: 0x90, hi: 0x90},
- {value: 0xc600, lo: 0x91, hi: 0xab},
- {value: 0xe500, lo: 0xac, hi: 0xac},
- {value: 0xc600, lo: 0xad, hi: 0xbf},
- // Block 0x5f, offset 0x1d4
- {value: 0x0000, lo: 0x05},
- {value: 0xc600, lo: 0x80, hi: 0x87},
- {value: 0xe500, lo: 0x88, hi: 0x88},
- {value: 0xc600, lo: 0x89, hi: 0xa3},
- {value: 0xe500, lo: 0xa4, hi: 0xa4},
- {value: 0xc600, lo: 0xa5, hi: 0xbf},
- // Block 0x60, offset 0x1da
- {value: 0x0000, lo: 0x03},
- {value: 0xc600, lo: 0x80, hi: 0x87},
- {value: 0xe500, lo: 0x88, hi: 0x88},
- {value: 0xc600, lo: 0x89, hi: 0xa3},
- // Block 0x61, offset 0x1de
- {value: 0x0006, lo: 0x0d},
- {value: 0x4393, lo: 0x9d, hi: 0x9d},
- {value: 0x8115, lo: 0x9e, hi: 0x9e},
- {value: 0x4405, lo: 0x9f, hi: 0x9f},
- {value: 0x43f3, lo: 0xaa, hi: 0xab},
- {value: 0x44f7, lo: 0xac, hi: 0xac},
- {value: 0x44ff, lo: 0xad, hi: 0xad},
- {value: 0x434b, lo: 0xae, hi: 0xb1},
- {value: 0x4369, lo: 0xb2, hi: 0xb4},
- {value: 0x4381, lo: 0xb5, hi: 0xb6},
- {value: 0x438d, lo: 0xb8, hi: 0xb8},
- {value: 0x4399, lo: 0xb9, hi: 0xbb},
- {value: 0x43b1, lo: 0xbc, hi: 0xbc},
- {value: 0x43b7, lo: 0xbe, hi: 0xbe},
- // Block 0x62, offset 0x1ec
- {value: 0x0006, lo: 0x08},
- {value: 0x43bd, lo: 0x80, hi: 0x81},
- {value: 0x43c9, lo: 0x83, hi: 0x84},
- {value: 0x43db, lo: 0x86, hi: 0x89},
- {value: 0x43ff, lo: 0x8a, hi: 0x8a},
- {value: 0x437b, lo: 0x8b, hi: 0x8b},
- {value: 0x4363, lo: 0x8c, hi: 0x8c},
- {value: 0x43ab, lo: 0x8d, hi: 0x8d},
- {value: 0x43d5, lo: 0x8e, hi: 0x8e},
- // Block 0x63, offset 0x1f5
- {value: 0x0000, lo: 0x02},
- {value: 0x8100, lo: 0xa4, hi: 0xa5},
- {value: 0x8100, lo: 0xb0, hi: 0xb1},
- // Block 0x64, offset 0x1f8
- {value: 0x0000, lo: 0x02},
- {value: 0x8100, lo: 0x9b, hi: 0x9d},
- {value: 0x8200, lo: 0x9e, hi: 0xa3},
- // Block 0x65, offset 0x1fb
- {value: 0x0000, lo: 0x01},
- {value: 0x8100, lo: 0x90, hi: 0x90},
- // Block 0x66, offset 0x1fd
- {value: 0x0000, lo: 0x02},
- {value: 0x8100, lo: 0x99, hi: 0x99},
- {value: 0x8200, lo: 0xb2, hi: 0xb4},
- // Block 0x67, offset 0x200
- {value: 0x0000, lo: 0x01},
- {value: 0x8100, lo: 0xbc, hi: 0xbd},
- // Block 0x68, offset 0x202
- {value: 0x0000, lo: 0x03},
- {value: 0x8132, lo: 0xa0, hi: 0xa6},
- {value: 0x812d, lo: 0xa7, hi: 0xad},
- {value: 0x8132, lo: 0xae, hi: 0xaf},
- // Block 0x69, offset 0x206
- {value: 0x0000, lo: 0x04},
- {value: 0x8100, lo: 0x89, hi: 0x8c},
- {value: 0x8100, lo: 0xb0, hi: 0xb2},
- {value: 0x8100, lo: 0xb4, hi: 0xb4},
- {value: 0x8100, lo: 0xb6, hi: 0xbf},
- // Block 0x6a, offset 0x20b
- {value: 0x0000, lo: 0x01},
- {value: 0x8100, lo: 0x81, hi: 0x8c},
- // Block 0x6b, offset 0x20d
- {value: 0x0000, lo: 0x01},
- {value: 0x8100, lo: 0xb5, hi: 0xba},
- // Block 0x6c, offset 0x20f
- {value: 0x0000, lo: 0x04},
- {value: 0x4aa2, lo: 0x9e, hi: 0x9f},
- {value: 0x4aa2, lo: 0xa3, hi: 0xa3},
- {value: 0x4aa2, lo: 0xa5, hi: 0xa6},
- {value: 0x4aa2, lo: 0xaa, hi: 0xaf},
- // Block 0x6d, offset 0x214
- {value: 0x0000, lo: 0x05},
- {value: 0x4aa2, lo: 0x82, hi: 0x87},
- {value: 0x4aa2, lo: 0x8a, hi: 0x8f},
- {value: 0x4aa2, lo: 0x92, hi: 0x97},
- {value: 0x4aa2, lo: 0x9a, hi: 0x9c},
- {value: 0x8100, lo: 0xa3, hi: 0xa3},
- // Block 0x6e, offset 0x21a
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0xbd, hi: 0xbd},
- // Block 0x6f, offset 0x21c
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0xa0, hi: 0xa0},
- // Block 0x70, offset 0x21e
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0xb6, hi: 0xba},
- // Block 0x71, offset 0x220
- {value: 0x002c, lo: 0x05},
- {value: 0x812d, lo: 0x8d, hi: 0x8d},
- {value: 0x8132, lo: 0x8f, hi: 0x8f},
- {value: 0x8132, lo: 0xb8, hi: 0xb8},
- {value: 0x8101, lo: 0xb9, hi: 0xba},
- {value: 0x8104, lo: 0xbf, hi: 0xbf},
- // Block 0x72, offset 0x226
- {value: 0x0000, lo: 0x02},
- {value: 0x8132, lo: 0xa5, hi: 0xa5},
- {value: 0x812d, lo: 0xa6, hi: 0xa6},
- // Block 0x73, offset 0x229
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0xa4, hi: 0xa7},
- // Block 0x74, offset 0x22b
- {value: 0x0000, lo: 0x05},
- {value: 0x812d, lo: 0x86, hi: 0x87},
- {value: 0x8132, lo: 0x88, hi: 0x8a},
- {value: 0x812d, lo: 0x8b, hi: 0x8b},
- {value: 0x8132, lo: 0x8c, hi: 0x8c},
- {value: 0x812d, lo: 0x8d, hi: 0x90},
- // Block 0x75, offset 0x231
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x86, hi: 0x86},
- {value: 0x8104, lo: 0xbf, hi: 0xbf},
- // Block 0x76, offset 0x234
- {value: 0x17fe, lo: 0x07},
- {value: 0xa000, lo: 0x99, hi: 0x99},
- {value: 0x423b, lo: 0x9a, hi: 0x9a},
- {value: 0xa000, lo: 0x9b, hi: 0x9b},
- {value: 0x4245, lo: 0x9c, hi: 0x9c},
- {value: 0xa000, lo: 0xa5, hi: 0xa5},
- {value: 0x424f, lo: 0xab, hi: 0xab},
- {value: 0x8104, lo: 0xb9, hi: 0xba},
- // Block 0x77, offset 0x23c
- {value: 0x0000, lo: 0x06},
- {value: 0x8132, lo: 0x80, hi: 0x82},
- {value: 0x9900, lo: 0xa7, hi: 0xa7},
- {value: 0x2d81, lo: 0xae, hi: 0xae},
- {value: 0x2d8b, lo: 0xaf, hi: 0xaf},
- {value: 0xa000, lo: 0xb1, hi: 0xb2},
- {value: 0x8104, lo: 0xb3, hi: 0xb4},
- // Block 0x78, offset 0x243
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x80, hi: 0x80},
- {value: 0x8102, lo: 0x8a, hi: 0x8a},
- // Block 0x79, offset 0x246
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0xb5, hi: 0xb5},
- {value: 0x8102, lo: 0xb6, hi: 0xb6},
- // Block 0x7a, offset 0x249
- {value: 0x0002, lo: 0x01},
- {value: 0x8102, lo: 0xa9, hi: 0xaa},
- // Block 0x7b, offset 0x24b
- {value: 0x0000, lo: 0x02},
- {value: 0x8102, lo: 0xbb, hi: 0xbc},
- {value: 0x9900, lo: 0xbe, hi: 0xbe},
- // Block 0x7c, offset 0x24e
- {value: 0x0000, lo: 0x07},
- {value: 0xa000, lo: 0x87, hi: 0x87},
- {value: 0x2d95, lo: 0x8b, hi: 0x8b},
- {value: 0x2d9f, lo: 0x8c, hi: 0x8c},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x9900, lo: 0x97, hi: 0x97},
- {value: 0x8132, lo: 0xa6, hi: 0xac},
- {value: 0x8132, lo: 0xb0, hi: 0xb4},
- // Block 0x7d, offset 0x256
- {value: 0x0000, lo: 0x03},
- {value: 0x8104, lo: 0x82, hi: 0x82},
- {value: 0x8102, lo: 0x86, hi: 0x86},
- {value: 0x8132, lo: 0x9e, hi: 0x9e},
- // Block 0x7e, offset 0x25a
- {value: 0x6b57, lo: 0x06},
- {value: 0x9900, lo: 0xb0, hi: 0xb0},
- {value: 0xa000, lo: 0xb9, hi: 0xb9},
- {value: 0x9900, lo: 0xba, hi: 0xba},
- {value: 0x2db3, lo: 0xbb, hi: 0xbb},
- {value: 0x2da9, lo: 0xbc, hi: 0xbd},
- {value: 0x2dbd, lo: 0xbe, hi: 0xbe},
- // Block 0x7f, offset 0x261
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x82, hi: 0x82},
- {value: 0x8102, lo: 0x83, hi: 0x83},
- // Block 0x80, offset 0x264
- {value: 0x0000, lo: 0x05},
- {value: 0x9900, lo: 0xaf, hi: 0xaf},
- {value: 0xa000, lo: 0xb8, hi: 0xb9},
- {value: 0x2dc7, lo: 0xba, hi: 0xba},
- {value: 0x2dd1, lo: 0xbb, hi: 0xbb},
- {value: 0x8104, lo: 0xbf, hi: 0xbf},
- // Block 0x81, offset 0x26a
- {value: 0x0000, lo: 0x01},
- {value: 0x8102, lo: 0x80, hi: 0x80},
- // Block 0x82, offset 0x26c
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0xb6, hi: 0xb6},
- {value: 0x8102, lo: 0xb7, hi: 0xb7},
- // Block 0x83, offset 0x26f
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0xab, hi: 0xab},
- // Block 0x84, offset 0x271
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0xb9, hi: 0xb9},
- {value: 0x8102, lo: 0xba, hi: 0xba},
- // Block 0x85, offset 0x274
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0xa0, hi: 0xa0},
- // Block 0x86, offset 0x276
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0xb4, hi: 0xb4},
- // Block 0x87, offset 0x278
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0x87, hi: 0x87},
- // Block 0x88, offset 0x27a
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0x99, hi: 0x99},
- // Block 0x89, offset 0x27c
- {value: 0x0000, lo: 0x02},
- {value: 0x8102, lo: 0x82, hi: 0x82},
- {value: 0x8104, lo: 0x84, hi: 0x85},
- // Block 0x8a, offset 0x27f
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0x97, hi: 0x97},
- // Block 0x8b, offset 0x281
- {value: 0x0000, lo: 0x01},
- {value: 0x8101, lo: 0xb0, hi: 0xb4},
- // Block 0x8c, offset 0x283
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0xb0, hi: 0xb6},
- // Block 0x8d, offset 0x285
- {value: 0x0000, lo: 0x01},
- {value: 0x8101, lo: 0x9e, hi: 0x9e},
- // Block 0x8e, offset 0x287
- {value: 0x0000, lo: 0x0c},
- {value: 0x45cf, lo: 0x9e, hi: 0x9e},
- {value: 0x45d9, lo: 0x9f, hi: 0x9f},
- {value: 0x460d, lo: 0xa0, hi: 0xa0},
- {value: 0x461b, lo: 0xa1, hi: 0xa1},
- {value: 0x4629, lo: 0xa2, hi: 0xa2},
- {value: 0x4637, lo: 0xa3, hi: 0xa3},
- {value: 0x4645, lo: 0xa4, hi: 0xa4},
- {value: 0x812b, lo: 0xa5, hi: 0xa6},
- {value: 0x8101, lo: 0xa7, hi: 0xa9},
- {value: 0x8130, lo: 0xad, hi: 0xad},
- {value: 0x812b, lo: 0xae, hi: 0xb2},
- {value: 0x812d, lo: 0xbb, hi: 0xbf},
- // Block 0x8f, offset 0x294
- {value: 0x0000, lo: 0x09},
- {value: 0x812d, lo: 0x80, hi: 0x82},
- {value: 0x8132, lo: 0x85, hi: 0x89},
- {value: 0x812d, lo: 0x8a, hi: 0x8b},
- {value: 0x8132, lo: 0xaa, hi: 0xad},
- {value: 0x45e3, lo: 0xbb, hi: 0xbb},
- {value: 0x45ed, lo: 0xbc, hi: 0xbc},
- {value: 0x4653, lo: 0xbd, hi: 0xbd},
- {value: 0x466f, lo: 0xbe, hi: 0xbe},
- {value: 0x4661, lo: 0xbf, hi: 0xbf},
- // Block 0x90, offset 0x29e
- {value: 0x0000, lo: 0x01},
- {value: 0x467d, lo: 0x80, hi: 0x80},
- // Block 0x91, offset 0x2a0
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0x82, hi: 0x84},
- // Block 0x92, offset 0x2a2
- {value: 0x0000, lo: 0x05},
- {value: 0x8132, lo: 0x80, hi: 0x86},
- {value: 0x8132, lo: 0x88, hi: 0x98},
- {value: 0x8132, lo: 0x9b, hi: 0xa1},
- {value: 0x8132, lo: 0xa3, hi: 0xa4},
- {value: 0x8132, lo: 0xa6, hi: 0xaa},
- // Block 0x93, offset 0x2a8
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0xac, hi: 0xaf},
- // Block 0x94, offset 0x2aa
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0x90, hi: 0x96},
- // Block 0x95, offset 0x2ac
- {value: 0x0000, lo: 0x02},
- {value: 0x8132, lo: 0x84, hi: 0x89},
- {value: 0x8102, lo: 0x8a, hi: 0x8a},
- // Block 0x96, offset 0x2af
- {value: 0x0000, lo: 0x01},
- {value: 0x8100, lo: 0x93, hi: 0x93},
-}
-
-// lookup returns the trie value for the first UTF-8 encoding in s and
-// the width in bytes of this encoding. The size will be 0 if s does not
-// hold enough bytes to complete the encoding. len(s) must be greater than 0.
-func (t *nfkcTrie) lookup(s []byte) (v uint16, sz int) {
- c0 := s[0]
- switch {
- case c0 < 0x80: // is ASCII
- return nfkcValues[c0], 1
- case c0 < 0xC2:
- return 0, 1 // Illegal UTF-8: not a starter, not ASCII.
- case c0 < 0xE0: // 2-byte UTF-8
- if len(s) < 2 {
- return 0, 0
- }
- i := nfkcIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c1), 2
- case c0 < 0xF0: // 3-byte UTF-8
- if len(s) < 3 {
- return 0, 0
- }
- i := nfkcIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = nfkcIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c2), 3
- case c0 < 0xF8: // 4-byte UTF-8
- if len(s) < 4 {
- return 0, 0
- }
- i := nfkcIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = nfkcIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- o = uint32(i)<<6 + uint32(c2)
- i = nfkcIndex[o]
- c3 := s[3]
- if c3 < 0x80 || 0xC0 <= c3 {
- return 0, 3 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c3), 4
- }
- // Illegal rune
- return 0, 1
-}
-
-// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.
-// s must start with a full and valid UTF-8 encoded rune.
-func (t *nfkcTrie) lookupUnsafe(s []byte) uint16 {
- c0 := s[0]
- if c0 < 0x80 { // is ASCII
- return nfkcValues[c0]
- }
- i := nfkcIndex[c0]
- if c0 < 0xE0 { // 2-byte UTF-8
- return t.lookupValue(uint32(i), s[1])
- }
- i = nfkcIndex[uint32(i)<<6+uint32(s[1])]
- if c0 < 0xF0 { // 3-byte UTF-8
- return t.lookupValue(uint32(i), s[2])
- }
- i = nfkcIndex[uint32(i)<<6+uint32(s[2])]
- if c0 < 0xF8 { // 4-byte UTF-8
- return t.lookupValue(uint32(i), s[3])
- }
- return 0
-}
-
-// lookupString returns the trie value for the first UTF-8 encoding in s and
-// the width in bytes of this encoding. The size will be 0 if s does not
-// hold enough bytes to complete the encoding. len(s) must be greater than 0.
-func (t *nfkcTrie) lookupString(s string) (v uint16, sz int) {
- c0 := s[0]
- switch {
- case c0 < 0x80: // is ASCII
- return nfkcValues[c0], 1
- case c0 < 0xC2:
- return 0, 1 // Illegal UTF-8: not a starter, not ASCII.
- case c0 < 0xE0: // 2-byte UTF-8
- if len(s) < 2 {
- return 0, 0
- }
- i := nfkcIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c1), 2
- case c0 < 0xF0: // 3-byte UTF-8
- if len(s) < 3 {
- return 0, 0
- }
- i := nfkcIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = nfkcIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c2), 3
- case c0 < 0xF8: // 4-byte UTF-8
- if len(s) < 4 {
- return 0, 0
- }
- i := nfkcIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = nfkcIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- o = uint32(i)<<6 + uint32(c2)
- i = nfkcIndex[o]
- c3 := s[3]
- if c3 < 0x80 || 0xC0 <= c3 {
- return 0, 3 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c3), 4
- }
- // Illegal rune
- return 0, 1
-}
-
-// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.
-// s must start with a full and valid UTF-8 encoded rune.
-func (t *nfkcTrie) lookupStringUnsafe(s string) uint16 {
- c0 := s[0]
- if c0 < 0x80 { // is ASCII
- return nfkcValues[c0]
- }
- i := nfkcIndex[c0]
- if c0 < 0xE0 { // 2-byte UTF-8
- return t.lookupValue(uint32(i), s[1])
- }
- i = nfkcIndex[uint32(i)<<6+uint32(s[1])]
- if c0 < 0xF0 { // 3-byte UTF-8
- return t.lookupValue(uint32(i), s[2])
- }
- i = nfkcIndex[uint32(i)<<6+uint32(s[2])]
- if c0 < 0xF8 { // 4-byte UTF-8
- return t.lookupValue(uint32(i), s[3])
- }
- return 0
-}
-
-// nfkcTrie. Total size: 18684 bytes (18.25 KiB). Checksum: 113e23c477adfabd.
-type nfkcTrie struct{}
-
-func newNfkcTrie(i int) *nfkcTrie {
- return &nfkcTrie{}
-}
-
-// lookupValue determines the type of block n and looks up the value for b.
-func (t *nfkcTrie) lookupValue(n uint32, b byte) uint16 {
- switch {
- case n < 92:
- return uint16(nfkcValues[n<<6+uint32(b)])
- default:
- n -= 92
- return uint16(nfkcSparse.lookup(n, b))
- }
-}
-
-// nfkcValues: 94 blocks, 6016 entries, 12032 bytes
-// The third block is the zero block.
-var nfkcValues = [6016]uint16{
- // Block 0x0, offset 0x0
- 0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000,
- // Block 0x1, offset 0x40
- 0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000,
- 0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000,
- 0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000,
- 0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000,
- 0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000,
- 0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000,
- 0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000,
- 0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000,
- 0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000,
- 0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000,
- // Block 0x2, offset 0x80
- // Block 0x3, offset 0xc0
- 0xc0: 0x2f72, 0xc1: 0x2f77, 0xc2: 0x468b, 0xc3: 0x2f7c, 0xc4: 0x469a, 0xc5: 0x469f,
- 0xc6: 0xa000, 0xc7: 0x46a9, 0xc8: 0x2fe5, 0xc9: 0x2fea, 0xca: 0x46ae, 0xcb: 0x2ffe,
- 0xcc: 0x3071, 0xcd: 0x3076, 0xce: 0x307b, 0xcf: 0x46c2, 0xd1: 0x3107,
- 0xd2: 0x312a, 0xd3: 0x312f, 0xd4: 0x46cc, 0xd5: 0x46d1, 0xd6: 0x46e0,
- 0xd8: 0xa000, 0xd9: 0x31b6, 0xda: 0x31bb, 0xdb: 0x31c0, 0xdc: 0x4712, 0xdd: 0x3238,
- 0xe0: 0x327e, 0xe1: 0x3283, 0xe2: 0x471c, 0xe3: 0x3288,
- 0xe4: 0x472b, 0xe5: 0x4730, 0xe6: 0xa000, 0xe7: 0x473a, 0xe8: 0x32f1, 0xe9: 0x32f6,
- 0xea: 0x473f, 0xeb: 0x330a, 0xec: 0x3382, 0xed: 0x3387, 0xee: 0x338c, 0xef: 0x4753,
- 0xf1: 0x3418, 0xf2: 0x343b, 0xf3: 0x3440, 0xf4: 0x475d, 0xf5: 0x4762,
- 0xf6: 0x4771, 0xf8: 0xa000, 0xf9: 0x34cc, 0xfa: 0x34d1, 0xfb: 0x34d6,
- 0xfc: 0x47a3, 0xfd: 0x3553, 0xff: 0x356c,
- // Block 0x4, offset 0x100
- 0x100: 0x2f81, 0x101: 0x328d, 0x102: 0x4690, 0x103: 0x4721, 0x104: 0x2f9f, 0x105: 0x32ab,
- 0x106: 0x2fb3, 0x107: 0x32bf, 0x108: 0x2fb8, 0x109: 0x32c4, 0x10a: 0x2fbd, 0x10b: 0x32c9,
- 0x10c: 0x2fc2, 0x10d: 0x32ce, 0x10e: 0x2fcc, 0x10f: 0x32d8,
- 0x112: 0x46b3, 0x113: 0x4744, 0x114: 0x2ff4, 0x115: 0x3300, 0x116: 0x2ff9, 0x117: 0x3305,
- 0x118: 0x3017, 0x119: 0x3323, 0x11a: 0x3008, 0x11b: 0x3314, 0x11c: 0x3030, 0x11d: 0x333c,
- 0x11e: 0x303a, 0x11f: 0x3346, 0x120: 0x303f, 0x121: 0x334b, 0x122: 0x3049, 0x123: 0x3355,
- 0x124: 0x304e, 0x125: 0x335a, 0x128: 0x3080, 0x129: 0x3391,
- 0x12a: 0x3085, 0x12b: 0x3396, 0x12c: 0x308a, 0x12d: 0x339b, 0x12e: 0x30ad, 0x12f: 0x33b9,
- 0x130: 0x308f, 0x132: 0x195d, 0x133: 0x19ea, 0x134: 0x30b7, 0x135: 0x33c3,
- 0x136: 0x30cb, 0x137: 0x33dc, 0x139: 0x30d5, 0x13a: 0x33e6, 0x13b: 0x30df,
- 0x13c: 0x33f0, 0x13d: 0x30da, 0x13e: 0x33eb, 0x13f: 0x1baf,
- // Block 0x5, offset 0x140
- 0x140: 0x1c37, 0x143: 0x3102, 0x144: 0x3413, 0x145: 0x311b,
- 0x146: 0x342c, 0x147: 0x3111, 0x148: 0x3422, 0x149: 0x1c5f,
- 0x14c: 0x46d6, 0x14d: 0x4767, 0x14e: 0x3134, 0x14f: 0x3445, 0x150: 0x313e, 0x151: 0x344f,
- 0x154: 0x315c, 0x155: 0x346d, 0x156: 0x3175, 0x157: 0x3486,
- 0x158: 0x3166, 0x159: 0x3477, 0x15a: 0x46f9, 0x15b: 0x478a, 0x15c: 0x317f, 0x15d: 0x3490,
- 0x15e: 0x318e, 0x15f: 0x349f, 0x160: 0x46fe, 0x161: 0x478f, 0x162: 0x31a7, 0x163: 0x34bd,
- 0x164: 0x3198, 0x165: 0x34ae, 0x168: 0x4708, 0x169: 0x4799,
- 0x16a: 0x470d, 0x16b: 0x479e, 0x16c: 0x31c5, 0x16d: 0x34db, 0x16e: 0x31cf, 0x16f: 0x34e5,
- 0x170: 0x31d4, 0x171: 0x34ea, 0x172: 0x31f2, 0x173: 0x3508, 0x174: 0x3215, 0x175: 0x352b,
- 0x176: 0x323d, 0x177: 0x3558, 0x178: 0x3251, 0x179: 0x3260, 0x17a: 0x3580, 0x17b: 0x326a,
- 0x17c: 0x358a, 0x17d: 0x326f, 0x17e: 0x358f, 0x17f: 0x00a7,
- // Block 0x6, offset 0x180
- 0x184: 0x2df1, 0x185: 0x2df7,
- 0x186: 0x2dfd, 0x187: 0x1972, 0x188: 0x1975, 0x189: 0x1a0b, 0x18a: 0x198a, 0x18b: 0x198d,
- 0x18c: 0x1a41, 0x18d: 0x2f8b, 0x18e: 0x3297, 0x18f: 0x3099, 0x190: 0x33a5, 0x191: 0x3143,
- 0x192: 0x3454, 0x193: 0x31d9, 0x194: 0x34ef, 0x195: 0x39d2, 0x196: 0x3b61, 0x197: 0x39cb,
- 0x198: 0x3b5a, 0x199: 0x39d9, 0x19a: 0x3b68, 0x19b: 0x39c4, 0x19c: 0x3b53,
- 0x19e: 0x38b3, 0x19f: 0x3a42, 0x1a0: 0x38ac, 0x1a1: 0x3a3b, 0x1a2: 0x35b6, 0x1a3: 0x35c8,
- 0x1a6: 0x3044, 0x1a7: 0x3350, 0x1a8: 0x30c1, 0x1a9: 0x33d2,
- 0x1aa: 0x46ef, 0x1ab: 0x4780, 0x1ac: 0x3993, 0x1ad: 0x3b22, 0x1ae: 0x35da, 0x1af: 0x35e0,
- 0x1b0: 0x33c8, 0x1b1: 0x1942, 0x1b2: 0x1945, 0x1b3: 0x19d2, 0x1b4: 0x302b, 0x1b5: 0x3337,
- 0x1b8: 0x30fd, 0x1b9: 0x340e, 0x1ba: 0x38ba, 0x1bb: 0x3a49,
- 0x1bc: 0x35b0, 0x1bd: 0x35c2, 0x1be: 0x35bc, 0x1bf: 0x35ce,
- // Block 0x7, offset 0x1c0
- 0x1c0: 0x2f90, 0x1c1: 0x329c, 0x1c2: 0x2f95, 0x1c3: 0x32a1, 0x1c4: 0x300d, 0x1c5: 0x3319,
- 0x1c6: 0x3012, 0x1c7: 0x331e, 0x1c8: 0x309e, 0x1c9: 0x33aa, 0x1ca: 0x30a3, 0x1cb: 0x33af,
- 0x1cc: 0x3148, 0x1cd: 0x3459, 0x1ce: 0x314d, 0x1cf: 0x345e, 0x1d0: 0x316b, 0x1d1: 0x347c,
- 0x1d2: 0x3170, 0x1d3: 0x3481, 0x1d4: 0x31de, 0x1d5: 0x34f4, 0x1d6: 0x31e3, 0x1d7: 0x34f9,
- 0x1d8: 0x3189, 0x1d9: 0x349a, 0x1da: 0x31a2, 0x1db: 0x34b8,
- 0x1de: 0x305d, 0x1df: 0x3369,
- 0x1e6: 0x4695, 0x1e7: 0x4726, 0x1e8: 0x46bd, 0x1e9: 0x474e,
- 0x1ea: 0x3962, 0x1eb: 0x3af1, 0x1ec: 0x393f, 0x1ed: 0x3ace, 0x1ee: 0x46db, 0x1ef: 0x476c,
- 0x1f0: 0x395b, 0x1f1: 0x3aea, 0x1f2: 0x3247, 0x1f3: 0x3562,
- // Block 0x8, offset 0x200
- 0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132,
- 0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932,
- 0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932,
- 0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d,
- 0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d,
- 0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d,
- 0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d,
- 0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d,
- 0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101,
- 0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d,
- 0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132,
- // Block 0x9, offset 0x240
- 0x240: 0x49b1, 0x241: 0x49b6, 0x242: 0x9932, 0x243: 0x49bb, 0x244: 0x4a74, 0x245: 0x9936,
- 0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132,
- 0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132,
- 0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132,
- 0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135,
- 0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132,
- 0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132,
- 0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132,
- 0x274: 0x0170,
- 0x27a: 0x42a8,
- 0x27e: 0x0037,
- // Block 0xa, offset 0x280
- 0x284: 0x425d, 0x285: 0x447e,
- 0x286: 0x35ec, 0x287: 0x00ce, 0x288: 0x360a, 0x289: 0x3616, 0x28a: 0x3628,
- 0x28c: 0x3646, 0x28e: 0x3658, 0x28f: 0x3676, 0x290: 0x3e0b, 0x291: 0xa000,
- 0x295: 0xa000, 0x297: 0xa000,
- 0x299: 0xa000,
- 0x29f: 0xa000, 0x2a1: 0xa000,
- 0x2a5: 0xa000, 0x2a9: 0xa000,
- 0x2aa: 0x363a, 0x2ab: 0x366a, 0x2ac: 0x4801, 0x2ad: 0x369a, 0x2ae: 0x482b, 0x2af: 0x36ac,
- 0x2b0: 0x3e73, 0x2b1: 0xa000, 0x2b5: 0xa000,
- 0x2b7: 0xa000, 0x2b9: 0xa000,
- 0x2bf: 0xa000,
- // Block 0xb, offset 0x2c0
- 0x2c1: 0xa000, 0x2c5: 0xa000,
- 0x2c9: 0xa000, 0x2ca: 0x4843, 0x2cb: 0x4861,
- 0x2cc: 0x36ca, 0x2cd: 0x36e2, 0x2ce: 0x4879, 0x2d0: 0x01be, 0x2d1: 0x01d0,
- 0x2d2: 0x01ac, 0x2d3: 0x430f, 0x2d4: 0x4315, 0x2d5: 0x01fa, 0x2d6: 0x01e8,
- 0x2f0: 0x01d6, 0x2f1: 0x01eb, 0x2f2: 0x01ee, 0x2f4: 0x0188, 0x2f5: 0x01c7,
- 0x2f9: 0x01a6,
- // Block 0xc, offset 0x300
- 0x300: 0x3724, 0x301: 0x3730, 0x303: 0x371e,
- 0x306: 0xa000, 0x307: 0x370c,
- 0x30c: 0x3760, 0x30d: 0x3748, 0x30e: 0x3772, 0x310: 0xa000,
- 0x313: 0xa000, 0x315: 0xa000, 0x316: 0xa000, 0x317: 0xa000,
- 0x318: 0xa000, 0x319: 0x3754, 0x31a: 0xa000,
- 0x31e: 0xa000, 0x323: 0xa000,
- 0x327: 0xa000,
- 0x32b: 0xa000, 0x32d: 0xa000,
- 0x330: 0xa000, 0x333: 0xa000, 0x335: 0xa000,
- 0x336: 0xa000, 0x337: 0xa000, 0x338: 0xa000, 0x339: 0x37d8, 0x33a: 0xa000,
- 0x33e: 0xa000,
- // Block 0xd, offset 0x340
- 0x341: 0x3736, 0x342: 0x37ba,
- 0x350: 0x3712, 0x351: 0x3796,
- 0x352: 0x3718, 0x353: 0x379c, 0x356: 0x372a, 0x357: 0x37ae,
- 0x358: 0xa000, 0x359: 0xa000, 0x35a: 0x382c, 0x35b: 0x3832, 0x35c: 0x373c, 0x35d: 0x37c0,
- 0x35e: 0x3742, 0x35f: 0x37c6, 0x362: 0x374e, 0x363: 0x37d2,
- 0x364: 0x375a, 0x365: 0x37de, 0x366: 0x3766, 0x367: 0x37ea, 0x368: 0xa000, 0x369: 0xa000,
- 0x36a: 0x3838, 0x36b: 0x383e, 0x36c: 0x3790, 0x36d: 0x3814, 0x36e: 0x376c, 0x36f: 0x37f0,
- 0x370: 0x3778, 0x371: 0x37fc, 0x372: 0x377e, 0x373: 0x3802, 0x374: 0x3784, 0x375: 0x3808,
- 0x378: 0x378a, 0x379: 0x380e,
- // Block 0xe, offset 0x380
- 0x387: 0x1d64,
- 0x391: 0x812d,
- 0x392: 0x8132, 0x393: 0x8132, 0x394: 0x8132, 0x395: 0x8132, 0x396: 0x812d, 0x397: 0x8132,
- 0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x812e, 0x39b: 0x812d, 0x39c: 0x8132, 0x39d: 0x8132,
- 0x39e: 0x8132, 0x39f: 0x8132, 0x3a0: 0x8132, 0x3a1: 0x8132, 0x3a2: 0x812d, 0x3a3: 0x812d,
- 0x3a4: 0x812d, 0x3a5: 0x812d, 0x3a6: 0x812d, 0x3a7: 0x812d, 0x3a8: 0x8132, 0x3a9: 0x8132,
- 0x3aa: 0x812d, 0x3ab: 0x8132, 0x3ac: 0x8132, 0x3ad: 0x812e, 0x3ae: 0x8131, 0x3af: 0x8132,
- 0x3b0: 0x8105, 0x3b1: 0x8106, 0x3b2: 0x8107, 0x3b3: 0x8108, 0x3b4: 0x8109, 0x3b5: 0x810a,
- 0x3b6: 0x810b, 0x3b7: 0x810c, 0x3b8: 0x810d, 0x3b9: 0x810e, 0x3ba: 0x810e, 0x3bb: 0x810f,
- 0x3bc: 0x8110, 0x3bd: 0x8111, 0x3bf: 0x8112,
- // Block 0xf, offset 0x3c0
- 0x3c8: 0xa000, 0x3ca: 0xa000, 0x3cb: 0x8116,
- 0x3cc: 0x8117, 0x3cd: 0x8118, 0x3ce: 0x8119, 0x3cf: 0x811a, 0x3d0: 0x811b, 0x3d1: 0x811c,
- 0x3d2: 0x811d, 0x3d3: 0x9932, 0x3d4: 0x9932, 0x3d5: 0x992d, 0x3d6: 0x812d, 0x3d7: 0x8132,
- 0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x812d, 0x3dd: 0x8132,
- 0x3de: 0x8132, 0x3df: 0x812d,
- 0x3f0: 0x811e, 0x3f5: 0x1d87,
- 0x3f6: 0x2016, 0x3f7: 0x2052, 0x3f8: 0x204d,
- // Block 0x10, offset 0x400
- 0x413: 0x812d, 0x414: 0x8132, 0x415: 0x8132, 0x416: 0x8132, 0x417: 0x8132,
- 0x418: 0x8132, 0x419: 0x8132, 0x41a: 0x8132, 0x41b: 0x8132, 0x41c: 0x8132, 0x41d: 0x8132,
- 0x41e: 0x8132, 0x41f: 0x8132, 0x420: 0x8132, 0x421: 0x8132, 0x423: 0x812d,
- 0x424: 0x8132, 0x425: 0x8132, 0x426: 0x812d, 0x427: 0x8132, 0x428: 0x8132, 0x429: 0x812d,
- 0x42a: 0x8132, 0x42b: 0x8132, 0x42c: 0x8132, 0x42d: 0x812d, 0x42e: 0x812d, 0x42f: 0x812d,
- 0x430: 0x8116, 0x431: 0x8117, 0x432: 0x8118, 0x433: 0x8132, 0x434: 0x8132, 0x435: 0x8132,
- 0x436: 0x812d, 0x437: 0x8132, 0x438: 0x8132, 0x439: 0x812d, 0x43a: 0x812d, 0x43b: 0x8132,
- 0x43c: 0x8132, 0x43d: 0x8132, 0x43e: 0x8132, 0x43f: 0x8132,
- // Block 0x11, offset 0x440
- 0x445: 0xa000,
- 0x446: 0x2d29, 0x447: 0xa000, 0x448: 0x2d31, 0x449: 0xa000, 0x44a: 0x2d39, 0x44b: 0xa000,
- 0x44c: 0x2d41, 0x44d: 0xa000, 0x44e: 0x2d49, 0x451: 0xa000,
- 0x452: 0x2d51,
- 0x474: 0x8102, 0x475: 0x9900,
- 0x47a: 0xa000, 0x47b: 0x2d59,
- 0x47c: 0xa000, 0x47d: 0x2d61, 0x47e: 0xa000, 0x47f: 0xa000,
- // Block 0x12, offset 0x480
- 0x480: 0x0069, 0x481: 0x006b, 0x482: 0x006f, 0x483: 0x0083, 0x484: 0x00f5, 0x485: 0x00f8,
- 0x486: 0x0413, 0x487: 0x0085, 0x488: 0x0089, 0x489: 0x008b, 0x48a: 0x0104, 0x48b: 0x0107,
- 0x48c: 0x010a, 0x48d: 0x008f, 0x48f: 0x0097, 0x490: 0x009b, 0x491: 0x00e0,
- 0x492: 0x009f, 0x493: 0x00fe, 0x494: 0x0417, 0x495: 0x041b, 0x496: 0x00a1, 0x497: 0x00a9,
- 0x498: 0x00ab, 0x499: 0x0423, 0x49a: 0x012b, 0x49b: 0x00ad, 0x49c: 0x0427, 0x49d: 0x01be,
- 0x49e: 0x01c1, 0x49f: 0x01c4, 0x4a0: 0x01fa, 0x4a1: 0x01fd, 0x4a2: 0x0093, 0x4a3: 0x00a5,
- 0x4a4: 0x00ab, 0x4a5: 0x00ad, 0x4a6: 0x01be, 0x4a7: 0x01c1, 0x4a8: 0x01eb, 0x4a9: 0x01fa,
- 0x4aa: 0x01fd,
- 0x4b8: 0x020c,
- // Block 0x13, offset 0x4c0
- 0x4db: 0x00fb, 0x4dc: 0x0087, 0x4dd: 0x0101,
- 0x4de: 0x00d4, 0x4df: 0x010a, 0x4e0: 0x008d, 0x4e1: 0x010d, 0x4e2: 0x0110, 0x4e3: 0x0116,
- 0x4e4: 0x011c, 0x4e5: 0x011f, 0x4e6: 0x0122, 0x4e7: 0x042b, 0x4e8: 0x016a, 0x4e9: 0x0128,
- 0x4ea: 0x042f, 0x4eb: 0x016d, 0x4ec: 0x0131, 0x4ed: 0x012e, 0x4ee: 0x0134, 0x4ef: 0x0137,
- 0x4f0: 0x013a, 0x4f1: 0x013d, 0x4f2: 0x0140, 0x4f3: 0x014c, 0x4f4: 0x014f, 0x4f5: 0x00ec,
- 0x4f6: 0x0152, 0x4f7: 0x0155, 0x4f8: 0x041f, 0x4f9: 0x0158, 0x4fa: 0x015b, 0x4fb: 0x00b5,
- 0x4fc: 0x015e, 0x4fd: 0x0161, 0x4fe: 0x0164, 0x4ff: 0x01d0,
- // Block 0x14, offset 0x500
- 0x500: 0x8132, 0x501: 0x8132, 0x502: 0x812d, 0x503: 0x8132, 0x504: 0x8132, 0x505: 0x8132,
- 0x506: 0x8132, 0x507: 0x8132, 0x508: 0x8132, 0x509: 0x8132, 0x50a: 0x812d, 0x50b: 0x8132,
- 0x50c: 0x8132, 0x50d: 0x8135, 0x50e: 0x812a, 0x50f: 0x812d, 0x510: 0x8129, 0x511: 0x8132,
- 0x512: 0x8132, 0x513: 0x8132, 0x514: 0x8132, 0x515: 0x8132, 0x516: 0x8132, 0x517: 0x8132,
- 0x518: 0x8132, 0x519: 0x8132, 0x51a: 0x8132, 0x51b: 0x8132, 0x51c: 0x8132, 0x51d: 0x8132,
- 0x51e: 0x8132, 0x51f: 0x8132, 0x520: 0x8132, 0x521: 0x8132, 0x522: 0x8132, 0x523: 0x8132,
- 0x524: 0x8132, 0x525: 0x8132, 0x526: 0x8132, 0x527: 0x8132, 0x528: 0x8132, 0x529: 0x8132,
- 0x52a: 0x8132, 0x52b: 0x8132, 0x52c: 0x8132, 0x52d: 0x8132, 0x52e: 0x8132, 0x52f: 0x8132,
- 0x530: 0x8132, 0x531: 0x8132, 0x532: 0x8132, 0x533: 0x8132, 0x534: 0x8132, 0x535: 0x8132,
- 0x536: 0x8133, 0x537: 0x8131, 0x538: 0x8131, 0x539: 0x812d, 0x53b: 0x8132,
- 0x53c: 0x8134, 0x53d: 0x812d, 0x53e: 0x8132, 0x53f: 0x812d,
- // Block 0x15, offset 0x540
- 0x540: 0x2f9a, 0x541: 0x32a6, 0x542: 0x2fa4, 0x543: 0x32b0, 0x544: 0x2fa9, 0x545: 0x32b5,
- 0x546: 0x2fae, 0x547: 0x32ba, 0x548: 0x38cf, 0x549: 0x3a5e, 0x54a: 0x2fc7, 0x54b: 0x32d3,
- 0x54c: 0x2fd1, 0x54d: 0x32dd, 0x54e: 0x2fe0, 0x54f: 0x32ec, 0x550: 0x2fd6, 0x551: 0x32e2,
- 0x552: 0x2fdb, 0x553: 0x32e7, 0x554: 0x38f2, 0x555: 0x3a81, 0x556: 0x38f9, 0x557: 0x3a88,
- 0x558: 0x301c, 0x559: 0x3328, 0x55a: 0x3021, 0x55b: 0x332d, 0x55c: 0x3907, 0x55d: 0x3a96,
- 0x55e: 0x3026, 0x55f: 0x3332, 0x560: 0x3035, 0x561: 0x3341, 0x562: 0x3053, 0x563: 0x335f,
- 0x564: 0x3062, 0x565: 0x336e, 0x566: 0x3058, 0x567: 0x3364, 0x568: 0x3067, 0x569: 0x3373,
- 0x56a: 0x306c, 0x56b: 0x3378, 0x56c: 0x30b2, 0x56d: 0x33be, 0x56e: 0x390e, 0x56f: 0x3a9d,
- 0x570: 0x30bc, 0x571: 0x33cd, 0x572: 0x30c6, 0x573: 0x33d7, 0x574: 0x30d0, 0x575: 0x33e1,
- 0x576: 0x46c7, 0x577: 0x4758, 0x578: 0x3915, 0x579: 0x3aa4, 0x57a: 0x30e9, 0x57b: 0x33fa,
- 0x57c: 0x30e4, 0x57d: 0x33f5, 0x57e: 0x30ee, 0x57f: 0x33ff,
- // Block 0x16, offset 0x580
- 0x580: 0x30f3, 0x581: 0x3404, 0x582: 0x30f8, 0x583: 0x3409, 0x584: 0x310c, 0x585: 0x341d,
- 0x586: 0x3116, 0x587: 0x3427, 0x588: 0x3125, 0x589: 0x3436, 0x58a: 0x3120, 0x58b: 0x3431,
- 0x58c: 0x3938, 0x58d: 0x3ac7, 0x58e: 0x3946, 0x58f: 0x3ad5, 0x590: 0x394d, 0x591: 0x3adc,
- 0x592: 0x3954, 0x593: 0x3ae3, 0x594: 0x3152, 0x595: 0x3463, 0x596: 0x3157, 0x597: 0x3468,
- 0x598: 0x3161, 0x599: 0x3472, 0x59a: 0x46f4, 0x59b: 0x4785, 0x59c: 0x399a, 0x59d: 0x3b29,
- 0x59e: 0x317a, 0x59f: 0x348b, 0x5a0: 0x3184, 0x5a1: 0x3495, 0x5a2: 0x4703, 0x5a3: 0x4794,
- 0x5a4: 0x39a1, 0x5a5: 0x3b30, 0x5a6: 0x39a8, 0x5a7: 0x3b37, 0x5a8: 0x39af, 0x5a9: 0x3b3e,
- 0x5aa: 0x3193, 0x5ab: 0x34a4, 0x5ac: 0x319d, 0x5ad: 0x34b3, 0x5ae: 0x31b1, 0x5af: 0x34c7,
- 0x5b0: 0x31ac, 0x5b1: 0x34c2, 0x5b2: 0x31ed, 0x5b3: 0x3503, 0x5b4: 0x31fc, 0x5b5: 0x3512,
- 0x5b6: 0x31f7, 0x5b7: 0x350d, 0x5b8: 0x39b6, 0x5b9: 0x3b45, 0x5ba: 0x39bd, 0x5bb: 0x3b4c,
- 0x5bc: 0x3201, 0x5bd: 0x3517, 0x5be: 0x3206, 0x5bf: 0x351c,
- // Block 0x17, offset 0x5c0
- 0x5c0: 0x320b, 0x5c1: 0x3521, 0x5c2: 0x3210, 0x5c3: 0x3526, 0x5c4: 0x321f, 0x5c5: 0x3535,
- 0x5c6: 0x321a, 0x5c7: 0x3530, 0x5c8: 0x3224, 0x5c9: 0x353f, 0x5ca: 0x3229, 0x5cb: 0x3544,
- 0x5cc: 0x322e, 0x5cd: 0x3549, 0x5ce: 0x324c, 0x5cf: 0x3567, 0x5d0: 0x3265, 0x5d1: 0x3585,
- 0x5d2: 0x3274, 0x5d3: 0x3594, 0x5d4: 0x3279, 0x5d5: 0x3599, 0x5d6: 0x337d, 0x5d7: 0x34a9,
- 0x5d8: 0x353a, 0x5d9: 0x3576, 0x5da: 0x1be3, 0x5db: 0x42da,
- 0x5e0: 0x46a4, 0x5e1: 0x4735, 0x5e2: 0x2f86, 0x5e3: 0x3292,
- 0x5e4: 0x387b, 0x5e5: 0x3a0a, 0x5e6: 0x3874, 0x5e7: 0x3a03, 0x5e8: 0x3889, 0x5e9: 0x3a18,
- 0x5ea: 0x3882, 0x5eb: 0x3a11, 0x5ec: 0x38c1, 0x5ed: 0x3a50, 0x5ee: 0x3897, 0x5ef: 0x3a26,
- 0x5f0: 0x3890, 0x5f1: 0x3a1f, 0x5f2: 0x38a5, 0x5f3: 0x3a34, 0x5f4: 0x389e, 0x5f5: 0x3a2d,
- 0x5f6: 0x38c8, 0x5f7: 0x3a57, 0x5f8: 0x46b8, 0x5f9: 0x4749, 0x5fa: 0x3003, 0x5fb: 0x330f,
- 0x5fc: 0x2fef, 0x5fd: 0x32fb, 0x5fe: 0x38dd, 0x5ff: 0x3a6c,
- // Block 0x18, offset 0x600
- 0x600: 0x38d6, 0x601: 0x3a65, 0x602: 0x38eb, 0x603: 0x3a7a, 0x604: 0x38e4, 0x605: 0x3a73,
- 0x606: 0x3900, 0x607: 0x3a8f, 0x608: 0x3094, 0x609: 0x33a0, 0x60a: 0x30a8, 0x60b: 0x33b4,
- 0x60c: 0x46ea, 0x60d: 0x477b, 0x60e: 0x3139, 0x60f: 0x344a, 0x610: 0x3923, 0x611: 0x3ab2,
- 0x612: 0x391c, 0x613: 0x3aab, 0x614: 0x3931, 0x615: 0x3ac0, 0x616: 0x392a, 0x617: 0x3ab9,
- 0x618: 0x398c, 0x619: 0x3b1b, 0x61a: 0x3970, 0x61b: 0x3aff, 0x61c: 0x3969, 0x61d: 0x3af8,
- 0x61e: 0x397e, 0x61f: 0x3b0d, 0x620: 0x3977, 0x621: 0x3b06, 0x622: 0x3985, 0x623: 0x3b14,
- 0x624: 0x31e8, 0x625: 0x34fe, 0x626: 0x31ca, 0x627: 0x34e0, 0x628: 0x39e7, 0x629: 0x3b76,
- 0x62a: 0x39e0, 0x62b: 0x3b6f, 0x62c: 0x39f5, 0x62d: 0x3b84, 0x62e: 0x39ee, 0x62f: 0x3b7d,
- 0x630: 0x39fc, 0x631: 0x3b8b, 0x632: 0x3233, 0x633: 0x354e, 0x634: 0x325b, 0x635: 0x357b,
- 0x636: 0x3256, 0x637: 0x3571, 0x638: 0x3242, 0x639: 0x355d,
- // Block 0x19, offset 0x640
- 0x640: 0x4807, 0x641: 0x480d, 0x642: 0x4921, 0x643: 0x4939, 0x644: 0x4929, 0x645: 0x4941,
- 0x646: 0x4931, 0x647: 0x4949, 0x648: 0x47ad, 0x649: 0x47b3, 0x64a: 0x4891, 0x64b: 0x48a9,
- 0x64c: 0x4899, 0x64d: 0x48b1, 0x64e: 0x48a1, 0x64f: 0x48b9, 0x650: 0x4819, 0x651: 0x481f,
- 0x652: 0x3dbb, 0x653: 0x3dcb, 0x654: 0x3dc3, 0x655: 0x3dd3,
- 0x658: 0x47b9, 0x659: 0x47bf, 0x65a: 0x3ceb, 0x65b: 0x3cfb, 0x65c: 0x3cf3, 0x65d: 0x3d03,
- 0x660: 0x4831, 0x661: 0x4837, 0x662: 0x4951, 0x663: 0x4969,
- 0x664: 0x4959, 0x665: 0x4971, 0x666: 0x4961, 0x667: 0x4979, 0x668: 0x47c5, 0x669: 0x47cb,
- 0x66a: 0x48c1, 0x66b: 0x48d9, 0x66c: 0x48c9, 0x66d: 0x48e1, 0x66e: 0x48d1, 0x66f: 0x48e9,
- 0x670: 0x4849, 0x671: 0x484f, 0x672: 0x3e1b, 0x673: 0x3e33, 0x674: 0x3e23, 0x675: 0x3e3b,
- 0x676: 0x3e2b, 0x677: 0x3e43, 0x678: 0x47d1, 0x679: 0x47d7, 0x67a: 0x3d1b, 0x67b: 0x3d33,
- 0x67c: 0x3d23, 0x67d: 0x3d3b, 0x67e: 0x3d2b, 0x67f: 0x3d43,
- // Block 0x1a, offset 0x680
- 0x680: 0x4855, 0x681: 0x485b, 0x682: 0x3e4b, 0x683: 0x3e5b, 0x684: 0x3e53, 0x685: 0x3e63,
- 0x688: 0x47dd, 0x689: 0x47e3, 0x68a: 0x3d4b, 0x68b: 0x3d5b,
- 0x68c: 0x3d53, 0x68d: 0x3d63, 0x690: 0x4867, 0x691: 0x486d,
- 0x692: 0x3e83, 0x693: 0x3e9b, 0x694: 0x3e8b, 0x695: 0x3ea3, 0x696: 0x3e93, 0x697: 0x3eab,
- 0x699: 0x47e9, 0x69b: 0x3d6b, 0x69d: 0x3d73,
- 0x69f: 0x3d7b, 0x6a0: 0x487f, 0x6a1: 0x4885, 0x6a2: 0x4981, 0x6a3: 0x4999,
- 0x6a4: 0x4989, 0x6a5: 0x49a1, 0x6a6: 0x4991, 0x6a7: 0x49a9, 0x6a8: 0x47ef, 0x6a9: 0x47f5,
- 0x6aa: 0x48f1, 0x6ab: 0x4909, 0x6ac: 0x48f9, 0x6ad: 0x4911, 0x6ae: 0x4901, 0x6af: 0x4919,
- 0x6b0: 0x47fb, 0x6b1: 0x4321, 0x6b2: 0x3694, 0x6b3: 0x4327, 0x6b4: 0x4825, 0x6b5: 0x432d,
- 0x6b6: 0x36a6, 0x6b7: 0x4333, 0x6b8: 0x36c4, 0x6b9: 0x4339, 0x6ba: 0x36dc, 0x6bb: 0x433f,
- 0x6bc: 0x4873, 0x6bd: 0x4345,
- // Block 0x1b, offset 0x6c0
- 0x6c0: 0x3da3, 0x6c1: 0x3dab, 0x6c2: 0x4187, 0x6c3: 0x41a5, 0x6c4: 0x4191, 0x6c5: 0x41af,
- 0x6c6: 0x419b, 0x6c7: 0x41b9, 0x6c8: 0x3cdb, 0x6c9: 0x3ce3, 0x6ca: 0x40d3, 0x6cb: 0x40f1,
- 0x6cc: 0x40dd, 0x6cd: 0x40fb, 0x6ce: 0x40e7, 0x6cf: 0x4105, 0x6d0: 0x3deb, 0x6d1: 0x3df3,
- 0x6d2: 0x41c3, 0x6d3: 0x41e1, 0x6d4: 0x41cd, 0x6d5: 0x41eb, 0x6d6: 0x41d7, 0x6d7: 0x41f5,
- 0x6d8: 0x3d0b, 0x6d9: 0x3d13, 0x6da: 0x410f, 0x6db: 0x412d, 0x6dc: 0x4119, 0x6dd: 0x4137,
- 0x6de: 0x4123, 0x6df: 0x4141, 0x6e0: 0x3ec3, 0x6e1: 0x3ecb, 0x6e2: 0x41ff, 0x6e3: 0x421d,
- 0x6e4: 0x4209, 0x6e5: 0x4227, 0x6e6: 0x4213, 0x6e7: 0x4231, 0x6e8: 0x3d83, 0x6e9: 0x3d8b,
- 0x6ea: 0x414b, 0x6eb: 0x4169, 0x6ec: 0x4155, 0x6ed: 0x4173, 0x6ee: 0x415f, 0x6ef: 0x417d,
- 0x6f0: 0x3688, 0x6f1: 0x3682, 0x6f2: 0x3d93, 0x6f3: 0x368e, 0x6f4: 0x3d9b,
- 0x6f6: 0x4813, 0x6f7: 0x3db3, 0x6f8: 0x35f8, 0x6f9: 0x35f2, 0x6fa: 0x35e6, 0x6fb: 0x42f1,
- 0x6fc: 0x35fe, 0x6fd: 0x428a, 0x6fe: 0x01d3, 0x6ff: 0x428a,
- // Block 0x1c, offset 0x700
- 0x700: 0x42a3, 0x701: 0x4485, 0x702: 0x3ddb, 0x703: 0x36a0, 0x704: 0x3de3,
- 0x706: 0x483d, 0x707: 0x3dfb, 0x708: 0x3604, 0x709: 0x42f7, 0x70a: 0x3610, 0x70b: 0x42fd,
- 0x70c: 0x361c, 0x70d: 0x448c, 0x70e: 0x4493, 0x70f: 0x449a, 0x710: 0x36b8, 0x711: 0x36b2,
- 0x712: 0x3e03, 0x713: 0x44e7, 0x716: 0x36be, 0x717: 0x3e13,
- 0x718: 0x3634, 0x719: 0x362e, 0x71a: 0x3622, 0x71b: 0x4303, 0x71d: 0x44a1,
- 0x71e: 0x44a8, 0x71f: 0x44af, 0x720: 0x36ee, 0x721: 0x36e8, 0x722: 0x3e6b, 0x723: 0x44ef,
- 0x724: 0x36d0, 0x725: 0x36d6, 0x726: 0x36f4, 0x727: 0x3e7b, 0x728: 0x3664, 0x729: 0x365e,
- 0x72a: 0x3652, 0x72b: 0x430f, 0x72c: 0x364c, 0x72d: 0x4477, 0x72e: 0x447e, 0x72f: 0x0081,
- 0x732: 0x3eb3, 0x733: 0x36fa, 0x734: 0x3ebb,
- 0x736: 0x488b, 0x737: 0x3ed3, 0x738: 0x3640, 0x739: 0x4309, 0x73a: 0x3670, 0x73b: 0x431b,
- 0x73c: 0x367c, 0x73d: 0x425d, 0x73e: 0x428f,
- // Block 0x1d, offset 0x740
- 0x740: 0x1bdb, 0x741: 0x1bdf, 0x742: 0x0047, 0x743: 0x1c57, 0x745: 0x1beb,
- 0x746: 0x1bef, 0x747: 0x00e9, 0x749: 0x1c5b, 0x74a: 0x008f, 0x74b: 0x0051,
- 0x74c: 0x0051, 0x74d: 0x0051, 0x74e: 0x0091, 0x74f: 0x00da, 0x750: 0x0053, 0x751: 0x0053,
- 0x752: 0x0059, 0x753: 0x0099, 0x755: 0x005d, 0x756: 0x1990,
- 0x759: 0x0061, 0x75a: 0x0063, 0x75b: 0x0065, 0x75c: 0x0065, 0x75d: 0x0065,
- 0x760: 0x19a2, 0x761: 0x1bcb, 0x762: 0x19ab,
- 0x764: 0x0075, 0x766: 0x01b8, 0x768: 0x0075,
- 0x76a: 0x0057, 0x76b: 0x42d5, 0x76c: 0x0045, 0x76d: 0x0047, 0x76f: 0x008b,
- 0x770: 0x004b, 0x771: 0x004d, 0x773: 0x005b, 0x774: 0x009f, 0x775: 0x0215,
- 0x776: 0x0218, 0x777: 0x021b, 0x778: 0x021e, 0x779: 0x0093, 0x77b: 0x1b9b,
- 0x77c: 0x01e8, 0x77d: 0x01c1, 0x77e: 0x0179, 0x77f: 0x01a0,
- // Block 0x1e, offset 0x780
- 0x780: 0x0463, 0x785: 0x0049,
- 0x786: 0x0089, 0x787: 0x008b, 0x788: 0x0093, 0x789: 0x0095,
- 0x790: 0x2231, 0x791: 0x223d,
- 0x792: 0x22f1, 0x793: 0x2219, 0x794: 0x229d, 0x795: 0x2225, 0x796: 0x22a3, 0x797: 0x22bb,
- 0x798: 0x22c7, 0x799: 0x222b, 0x79a: 0x22cd, 0x79b: 0x2237, 0x79c: 0x22c1, 0x79d: 0x22d3,
- 0x79e: 0x22d9, 0x79f: 0x1cbf, 0x7a0: 0x0053, 0x7a1: 0x195a, 0x7a2: 0x1ba7, 0x7a3: 0x1963,
- 0x7a4: 0x006d, 0x7a5: 0x19ae, 0x7a6: 0x1bd3, 0x7a7: 0x1d4b, 0x7a8: 0x1966, 0x7a9: 0x0071,
- 0x7aa: 0x19ba, 0x7ab: 0x1bd7, 0x7ac: 0x0059, 0x7ad: 0x0047, 0x7ae: 0x0049, 0x7af: 0x005b,
- 0x7b0: 0x0093, 0x7b1: 0x19e7, 0x7b2: 0x1c1b, 0x7b3: 0x19f0, 0x7b4: 0x00ad, 0x7b5: 0x1a65,
- 0x7b6: 0x1c4f, 0x7b7: 0x1d5f, 0x7b8: 0x19f3, 0x7b9: 0x00b1, 0x7ba: 0x1a68, 0x7bb: 0x1c53,
- 0x7bc: 0x0099, 0x7bd: 0x0087, 0x7be: 0x0089, 0x7bf: 0x009b,
- // Block 0x1f, offset 0x7c0
- 0x7c1: 0x3c09, 0x7c3: 0xa000, 0x7c4: 0x3c10, 0x7c5: 0xa000,
- 0x7c7: 0x3c17, 0x7c8: 0xa000, 0x7c9: 0x3c1e,
- 0x7cd: 0xa000,
- 0x7e0: 0x2f68, 0x7e1: 0xa000, 0x7e2: 0x3c2c,
- 0x7e4: 0xa000, 0x7e5: 0xa000,
- 0x7ed: 0x3c25, 0x7ee: 0x2f63, 0x7ef: 0x2f6d,
- 0x7f0: 0x3c33, 0x7f1: 0x3c3a, 0x7f2: 0xa000, 0x7f3: 0xa000, 0x7f4: 0x3c41, 0x7f5: 0x3c48,
- 0x7f6: 0xa000, 0x7f7: 0xa000, 0x7f8: 0x3c4f, 0x7f9: 0x3c56, 0x7fa: 0xa000, 0x7fb: 0xa000,
- 0x7fc: 0xa000, 0x7fd: 0xa000,
- // Block 0x20, offset 0x800
- 0x800: 0x3c5d, 0x801: 0x3c64, 0x802: 0xa000, 0x803: 0xa000, 0x804: 0x3c79, 0x805: 0x3c80,
- 0x806: 0xa000, 0x807: 0xa000, 0x808: 0x3c87, 0x809: 0x3c8e,
- 0x811: 0xa000,
- 0x812: 0xa000,
- 0x822: 0xa000,
- 0x828: 0xa000, 0x829: 0xa000,
- 0x82b: 0xa000, 0x82c: 0x3ca3, 0x82d: 0x3caa, 0x82e: 0x3cb1, 0x82f: 0x3cb8,
- 0x832: 0xa000, 0x833: 0xa000, 0x834: 0xa000, 0x835: 0xa000,
- // Block 0x21, offset 0x840
- 0x860: 0x0023, 0x861: 0x0025, 0x862: 0x0027, 0x863: 0x0029,
- 0x864: 0x002b, 0x865: 0x002d, 0x866: 0x002f, 0x867: 0x0031, 0x868: 0x0033, 0x869: 0x1882,
- 0x86a: 0x1885, 0x86b: 0x1888, 0x86c: 0x188b, 0x86d: 0x188e, 0x86e: 0x1891, 0x86f: 0x1894,
- 0x870: 0x1897, 0x871: 0x189a, 0x872: 0x189d, 0x873: 0x18a6, 0x874: 0x1a6b, 0x875: 0x1a6f,
- 0x876: 0x1a73, 0x877: 0x1a77, 0x878: 0x1a7b, 0x879: 0x1a7f, 0x87a: 0x1a83, 0x87b: 0x1a87,
- 0x87c: 0x1a8b, 0x87d: 0x1c83, 0x87e: 0x1c88, 0x87f: 0x1c8d,
- // Block 0x22, offset 0x880
- 0x880: 0x1c92, 0x881: 0x1c97, 0x882: 0x1c9c, 0x883: 0x1ca1, 0x884: 0x1ca6, 0x885: 0x1cab,
- 0x886: 0x1cb0, 0x887: 0x1cb5, 0x888: 0x187f, 0x889: 0x18a3, 0x88a: 0x18c7, 0x88b: 0x18eb,
- 0x88c: 0x190f, 0x88d: 0x1918, 0x88e: 0x191e, 0x88f: 0x1924, 0x890: 0x192a, 0x891: 0x1b63,
- 0x892: 0x1b67, 0x893: 0x1b6b, 0x894: 0x1b6f, 0x895: 0x1b73, 0x896: 0x1b77, 0x897: 0x1b7b,
- 0x898: 0x1b7f, 0x899: 0x1b83, 0x89a: 0x1b87, 0x89b: 0x1b8b, 0x89c: 0x1af7, 0x89d: 0x1afb,
- 0x89e: 0x1aff, 0x89f: 0x1b03, 0x8a0: 0x1b07, 0x8a1: 0x1b0b, 0x8a2: 0x1b0f, 0x8a3: 0x1b13,
- 0x8a4: 0x1b17, 0x8a5: 0x1b1b, 0x8a6: 0x1b1f, 0x8a7: 0x1b23, 0x8a8: 0x1b27, 0x8a9: 0x1b2b,
- 0x8aa: 0x1b2f, 0x8ab: 0x1b33, 0x8ac: 0x1b37, 0x8ad: 0x1b3b, 0x8ae: 0x1b3f, 0x8af: 0x1b43,
- 0x8b0: 0x1b47, 0x8b1: 0x1b4b, 0x8b2: 0x1b4f, 0x8b3: 0x1b53, 0x8b4: 0x1b57, 0x8b5: 0x1b5b,
- 0x8b6: 0x0043, 0x8b7: 0x0045, 0x8b8: 0x0047, 0x8b9: 0x0049, 0x8ba: 0x004b, 0x8bb: 0x004d,
- 0x8bc: 0x004f, 0x8bd: 0x0051, 0x8be: 0x0053, 0x8bf: 0x0055,
- // Block 0x23, offset 0x8c0
- 0x8c0: 0x06bf, 0x8c1: 0x06e3, 0x8c2: 0x06ef, 0x8c3: 0x06ff, 0x8c4: 0x0707, 0x8c5: 0x0713,
- 0x8c6: 0x071b, 0x8c7: 0x0723, 0x8c8: 0x072f, 0x8c9: 0x0783, 0x8ca: 0x079b, 0x8cb: 0x07ab,
- 0x8cc: 0x07bb, 0x8cd: 0x07cb, 0x8ce: 0x07db, 0x8cf: 0x07fb, 0x8d0: 0x07ff, 0x8d1: 0x0803,
- 0x8d2: 0x0837, 0x8d3: 0x085f, 0x8d4: 0x086f, 0x8d5: 0x0877, 0x8d6: 0x087b, 0x8d7: 0x0887,
- 0x8d8: 0x08a3, 0x8d9: 0x08a7, 0x8da: 0x08bf, 0x8db: 0x08c3, 0x8dc: 0x08cb, 0x8dd: 0x08db,
- 0x8de: 0x0977, 0x8df: 0x098b, 0x8e0: 0x09cb, 0x8e1: 0x09df, 0x8e2: 0x09e7, 0x8e3: 0x09eb,
- 0x8e4: 0x09fb, 0x8e5: 0x0a17, 0x8e6: 0x0a43, 0x8e7: 0x0a4f, 0x8e8: 0x0a6f, 0x8e9: 0x0a7b,
- 0x8ea: 0x0a7f, 0x8eb: 0x0a83, 0x8ec: 0x0a9b, 0x8ed: 0x0a9f, 0x8ee: 0x0acb, 0x8ef: 0x0ad7,
- 0x8f0: 0x0adf, 0x8f1: 0x0ae7, 0x8f2: 0x0af7, 0x8f3: 0x0aff, 0x8f4: 0x0b07, 0x8f5: 0x0b33,
- 0x8f6: 0x0b37, 0x8f7: 0x0b3f, 0x8f8: 0x0b43, 0x8f9: 0x0b4b, 0x8fa: 0x0b53, 0x8fb: 0x0b63,
- 0x8fc: 0x0b7f, 0x8fd: 0x0bf7, 0x8fe: 0x0c0b, 0x8ff: 0x0c0f,
- // Block 0x24, offset 0x900
- 0x900: 0x0c8f, 0x901: 0x0c93, 0x902: 0x0ca7, 0x903: 0x0cab, 0x904: 0x0cb3, 0x905: 0x0cbb,
- 0x906: 0x0cc3, 0x907: 0x0ccf, 0x908: 0x0cf7, 0x909: 0x0d07, 0x90a: 0x0d1b, 0x90b: 0x0d8b,
- 0x90c: 0x0d97, 0x90d: 0x0da7, 0x90e: 0x0db3, 0x90f: 0x0dbf, 0x910: 0x0dc7, 0x911: 0x0dcb,
- 0x912: 0x0dcf, 0x913: 0x0dd3, 0x914: 0x0dd7, 0x915: 0x0e8f, 0x916: 0x0ed7, 0x917: 0x0ee3,
- 0x918: 0x0ee7, 0x919: 0x0eeb, 0x91a: 0x0eef, 0x91b: 0x0ef7, 0x91c: 0x0efb, 0x91d: 0x0f0f,
- 0x91e: 0x0f2b, 0x91f: 0x0f33, 0x920: 0x0f73, 0x921: 0x0f77, 0x922: 0x0f7f, 0x923: 0x0f83,
- 0x924: 0x0f8b, 0x925: 0x0f8f, 0x926: 0x0fb3, 0x927: 0x0fb7, 0x928: 0x0fd3, 0x929: 0x0fd7,
- 0x92a: 0x0fdb, 0x92b: 0x0fdf, 0x92c: 0x0ff3, 0x92d: 0x1017, 0x92e: 0x101b, 0x92f: 0x101f,
- 0x930: 0x1043, 0x931: 0x1083, 0x932: 0x1087, 0x933: 0x10a7, 0x934: 0x10b7, 0x935: 0x10bf,
- 0x936: 0x10df, 0x937: 0x1103, 0x938: 0x1147, 0x939: 0x114f, 0x93a: 0x1163, 0x93b: 0x116f,
- 0x93c: 0x1177, 0x93d: 0x117f, 0x93e: 0x1183, 0x93f: 0x1187,
- // Block 0x25, offset 0x940
- 0x940: 0x119f, 0x941: 0x11a3, 0x942: 0x11bf, 0x943: 0x11c7, 0x944: 0x11cf, 0x945: 0x11d3,
- 0x946: 0x11df, 0x947: 0x11e7, 0x948: 0x11eb, 0x949: 0x11ef, 0x94a: 0x11f7, 0x94b: 0x11fb,
- 0x94c: 0x129b, 0x94d: 0x12af, 0x94e: 0x12e3, 0x94f: 0x12e7, 0x950: 0x12ef, 0x951: 0x131b,
- 0x952: 0x1323, 0x953: 0x132b, 0x954: 0x1333, 0x955: 0x136f, 0x956: 0x1373, 0x957: 0x137b,
- 0x958: 0x137f, 0x959: 0x1383, 0x95a: 0x13af, 0x95b: 0x13b3, 0x95c: 0x13bb, 0x95d: 0x13cf,
- 0x95e: 0x13d3, 0x95f: 0x13ef, 0x960: 0x13f7, 0x961: 0x13fb, 0x962: 0x141f, 0x963: 0x143f,
- 0x964: 0x1453, 0x965: 0x1457, 0x966: 0x145f, 0x967: 0x148b, 0x968: 0x148f, 0x969: 0x149f,
- 0x96a: 0x14c3, 0x96b: 0x14cf, 0x96c: 0x14df, 0x96d: 0x14f7, 0x96e: 0x14ff, 0x96f: 0x1503,
- 0x970: 0x1507, 0x971: 0x150b, 0x972: 0x1517, 0x973: 0x151b, 0x974: 0x1523, 0x975: 0x153f,
- 0x976: 0x1543, 0x977: 0x1547, 0x978: 0x155f, 0x979: 0x1563, 0x97a: 0x156b, 0x97b: 0x157f,
- 0x97c: 0x1583, 0x97d: 0x1587, 0x97e: 0x158f, 0x97f: 0x1593,
- // Block 0x26, offset 0x980
- 0x986: 0xa000, 0x98b: 0xa000,
- 0x98c: 0x3f0b, 0x98d: 0xa000, 0x98e: 0x3f13, 0x98f: 0xa000, 0x990: 0x3f1b, 0x991: 0xa000,
- 0x992: 0x3f23, 0x993: 0xa000, 0x994: 0x3f2b, 0x995: 0xa000, 0x996: 0x3f33, 0x997: 0xa000,
- 0x998: 0x3f3b, 0x999: 0xa000, 0x99a: 0x3f43, 0x99b: 0xa000, 0x99c: 0x3f4b, 0x99d: 0xa000,
- 0x99e: 0x3f53, 0x99f: 0xa000, 0x9a0: 0x3f5b, 0x9a1: 0xa000, 0x9a2: 0x3f63,
- 0x9a4: 0xa000, 0x9a5: 0x3f6b, 0x9a6: 0xa000, 0x9a7: 0x3f73, 0x9a8: 0xa000, 0x9a9: 0x3f7b,
- 0x9af: 0xa000,
- 0x9b0: 0x3f83, 0x9b1: 0x3f8b, 0x9b2: 0xa000, 0x9b3: 0x3f93, 0x9b4: 0x3f9b, 0x9b5: 0xa000,
- 0x9b6: 0x3fa3, 0x9b7: 0x3fab, 0x9b8: 0xa000, 0x9b9: 0x3fb3, 0x9ba: 0x3fbb, 0x9bb: 0xa000,
- 0x9bc: 0x3fc3, 0x9bd: 0x3fcb,
- // Block 0x27, offset 0x9c0
- 0x9d4: 0x3f03,
- 0x9d9: 0x9903, 0x9da: 0x9903, 0x9db: 0x42df, 0x9dc: 0x42e5, 0x9dd: 0xa000,
- 0x9de: 0x3fd3, 0x9df: 0x26b7,
- 0x9e6: 0xa000,
- 0x9eb: 0xa000, 0x9ec: 0x3fe3, 0x9ed: 0xa000, 0x9ee: 0x3feb, 0x9ef: 0xa000,
- 0x9f0: 0x3ff3, 0x9f1: 0xa000, 0x9f2: 0x3ffb, 0x9f3: 0xa000, 0x9f4: 0x4003, 0x9f5: 0xa000,
- 0x9f6: 0x400b, 0x9f7: 0xa000, 0x9f8: 0x4013, 0x9f9: 0xa000, 0x9fa: 0x401b, 0x9fb: 0xa000,
- 0x9fc: 0x4023, 0x9fd: 0xa000, 0x9fe: 0x402b, 0x9ff: 0xa000,
- // Block 0x28, offset 0xa00
- 0xa00: 0x4033, 0xa01: 0xa000, 0xa02: 0x403b, 0xa04: 0xa000, 0xa05: 0x4043,
- 0xa06: 0xa000, 0xa07: 0x404b, 0xa08: 0xa000, 0xa09: 0x4053,
- 0xa0f: 0xa000, 0xa10: 0x405b, 0xa11: 0x4063,
- 0xa12: 0xa000, 0xa13: 0x406b, 0xa14: 0x4073, 0xa15: 0xa000, 0xa16: 0x407b, 0xa17: 0x4083,
- 0xa18: 0xa000, 0xa19: 0x408b, 0xa1a: 0x4093, 0xa1b: 0xa000, 0xa1c: 0x409b, 0xa1d: 0x40a3,
- 0xa2f: 0xa000,
- 0xa30: 0xa000, 0xa31: 0xa000, 0xa32: 0xa000, 0xa34: 0x3fdb,
- 0xa37: 0x40ab, 0xa38: 0x40b3, 0xa39: 0x40bb, 0xa3a: 0x40c3,
- 0xa3d: 0xa000, 0xa3e: 0x40cb, 0xa3f: 0x26cc,
- // Block 0x29, offset 0xa40
- 0xa40: 0x0367, 0xa41: 0x032b, 0xa42: 0x032f, 0xa43: 0x0333, 0xa44: 0x037b, 0xa45: 0x0337,
- 0xa46: 0x033b, 0xa47: 0x033f, 0xa48: 0x0343, 0xa49: 0x0347, 0xa4a: 0x034b, 0xa4b: 0x034f,
- 0xa4c: 0x0353, 0xa4d: 0x0357, 0xa4e: 0x035b, 0xa4f: 0x49c0, 0xa50: 0x49c6, 0xa51: 0x49cc,
- 0xa52: 0x49d2, 0xa53: 0x49d8, 0xa54: 0x49de, 0xa55: 0x49e4, 0xa56: 0x49ea, 0xa57: 0x49f0,
- 0xa58: 0x49f6, 0xa59: 0x49fc, 0xa5a: 0x4a02, 0xa5b: 0x4a08, 0xa5c: 0x4a0e, 0xa5d: 0x4a14,
- 0xa5e: 0x4a1a, 0xa5f: 0x4a20, 0xa60: 0x4a26, 0xa61: 0x4a2c, 0xa62: 0x4a32, 0xa63: 0x4a38,
- 0xa64: 0x03c3, 0xa65: 0x035f, 0xa66: 0x0363, 0xa67: 0x03e7, 0xa68: 0x03eb, 0xa69: 0x03ef,
- 0xa6a: 0x03f3, 0xa6b: 0x03f7, 0xa6c: 0x03fb, 0xa6d: 0x03ff, 0xa6e: 0x036b, 0xa6f: 0x0403,
- 0xa70: 0x0407, 0xa71: 0x036f, 0xa72: 0x0373, 0xa73: 0x0377, 0xa74: 0x037f, 0xa75: 0x0383,
- 0xa76: 0x0387, 0xa77: 0x038b, 0xa78: 0x038f, 0xa79: 0x0393, 0xa7a: 0x0397, 0xa7b: 0x039b,
- 0xa7c: 0x039f, 0xa7d: 0x03a3, 0xa7e: 0x03a7, 0xa7f: 0x03ab,
- // Block 0x2a, offset 0xa80
- 0xa80: 0x03af, 0xa81: 0x03b3, 0xa82: 0x040b, 0xa83: 0x040f, 0xa84: 0x03b7, 0xa85: 0x03bb,
- 0xa86: 0x03bf, 0xa87: 0x03c7, 0xa88: 0x03cb, 0xa89: 0x03cf, 0xa8a: 0x03d3, 0xa8b: 0x03d7,
- 0xa8c: 0x03db, 0xa8d: 0x03df, 0xa8e: 0x03e3,
- 0xa92: 0x06bf, 0xa93: 0x071b, 0xa94: 0x06cb, 0xa95: 0x097b, 0xa96: 0x06cf, 0xa97: 0x06e7,
- 0xa98: 0x06d3, 0xa99: 0x0f93, 0xa9a: 0x0707, 0xa9b: 0x06db, 0xa9c: 0x06c3, 0xa9d: 0x09ff,
- 0xa9e: 0x098f, 0xa9f: 0x072f,
- // Block 0x2b, offset 0xac0
- 0xac0: 0x2057, 0xac1: 0x205d, 0xac2: 0x2063, 0xac3: 0x2069, 0xac4: 0x206f, 0xac5: 0x2075,
- 0xac6: 0x207b, 0xac7: 0x2081, 0xac8: 0x2087, 0xac9: 0x208d, 0xaca: 0x2093, 0xacb: 0x2099,
- 0xacc: 0x209f, 0xacd: 0x20a5, 0xace: 0x2729, 0xacf: 0x2732, 0xad0: 0x273b, 0xad1: 0x2744,
- 0xad2: 0x274d, 0xad3: 0x2756, 0xad4: 0x275f, 0xad5: 0x2768, 0xad6: 0x2771, 0xad7: 0x2783,
- 0xad8: 0x278c, 0xad9: 0x2795, 0xada: 0x279e, 0xadb: 0x27a7, 0xadc: 0x277a, 0xadd: 0x2baf,
- 0xade: 0x2af0, 0xae0: 0x20ab, 0xae1: 0x20c3, 0xae2: 0x20b7, 0xae3: 0x210b,
- 0xae4: 0x20c9, 0xae5: 0x20e7, 0xae6: 0x20b1, 0xae7: 0x20e1, 0xae8: 0x20bd, 0xae9: 0x20f3,
- 0xaea: 0x2123, 0xaeb: 0x2141, 0xaec: 0x213b, 0xaed: 0x212f, 0xaee: 0x217d, 0xaef: 0x2111,
- 0xaf0: 0x211d, 0xaf1: 0x2135, 0xaf2: 0x2129, 0xaf3: 0x2153, 0xaf4: 0x20ff, 0xaf5: 0x2147,
- 0xaf6: 0x2171, 0xaf7: 0x2159, 0xaf8: 0x20ed, 0xaf9: 0x20cf, 0xafa: 0x2105, 0xafb: 0x2117,
- 0xafc: 0x214d, 0xafd: 0x20d5, 0xafe: 0x2177, 0xaff: 0x20f9,
- // Block 0x2c, offset 0xb00
- 0xb00: 0x215f, 0xb01: 0x20db, 0xb02: 0x2165, 0xb03: 0x216b, 0xb04: 0x092f, 0xb05: 0x0b03,
- 0xb06: 0x0ca7, 0xb07: 0x10c7,
- 0xb10: 0x1bc7, 0xb11: 0x18a9,
- 0xb12: 0x18ac, 0xb13: 0x18af, 0xb14: 0x18b2, 0xb15: 0x18b5, 0xb16: 0x18b8, 0xb17: 0x18bb,
- 0xb18: 0x18be, 0xb19: 0x18c1, 0xb1a: 0x18ca, 0xb1b: 0x18cd, 0xb1c: 0x18d0, 0xb1d: 0x18d3,
- 0xb1e: 0x18d6, 0xb1f: 0x18d9, 0xb20: 0x0313, 0xb21: 0x031b, 0xb22: 0x031f, 0xb23: 0x0327,
- 0xb24: 0x032b, 0xb25: 0x032f, 0xb26: 0x0337, 0xb27: 0x033f, 0xb28: 0x0343, 0xb29: 0x034b,
- 0xb2a: 0x034f, 0xb2b: 0x0353, 0xb2c: 0x0357, 0xb2d: 0x035b, 0xb2e: 0x2e1b, 0xb2f: 0x2e23,
- 0xb30: 0x2e2b, 0xb31: 0x2e33, 0xb32: 0x2e3b, 0xb33: 0x2e43, 0xb34: 0x2e4b, 0xb35: 0x2e53,
- 0xb36: 0x2e63, 0xb37: 0x2e6b, 0xb38: 0x2e73, 0xb39: 0x2e7b, 0xb3a: 0x2e83, 0xb3b: 0x2e8b,
- 0xb3c: 0x2ed6, 0xb3d: 0x2e9e, 0xb3e: 0x2e5b,
- // Block 0x2d, offset 0xb40
- 0xb40: 0x06bf, 0xb41: 0x071b, 0xb42: 0x06cb, 0xb43: 0x097b, 0xb44: 0x071f, 0xb45: 0x07af,
- 0xb46: 0x06c7, 0xb47: 0x07ab, 0xb48: 0x070b, 0xb49: 0x0887, 0xb4a: 0x0d07, 0xb4b: 0x0e8f,
- 0xb4c: 0x0dd7, 0xb4d: 0x0d1b, 0xb4e: 0x145f, 0xb4f: 0x098b, 0xb50: 0x0ccf, 0xb51: 0x0d4b,
- 0xb52: 0x0d0b, 0xb53: 0x104b, 0xb54: 0x08fb, 0xb55: 0x0f03, 0xb56: 0x1387, 0xb57: 0x105f,
- 0xb58: 0x0843, 0xb59: 0x108f, 0xb5a: 0x0f9b, 0xb5b: 0x0a17, 0xb5c: 0x140f, 0xb5d: 0x077f,
- 0xb5e: 0x08ab, 0xb5f: 0x0df7, 0xb60: 0x1527, 0xb61: 0x0743, 0xb62: 0x07d3, 0xb63: 0x0d9b,
- 0xb64: 0x06cf, 0xb65: 0x06e7, 0xb66: 0x06d3, 0xb67: 0x0adb, 0xb68: 0x08ef, 0xb69: 0x087f,
- 0xb6a: 0x0a57, 0xb6b: 0x0a4b, 0xb6c: 0x0feb, 0xb6d: 0x073f, 0xb6e: 0x139b, 0xb6f: 0x089b,
- 0xb70: 0x09f3, 0xb71: 0x18dc, 0xb72: 0x18df, 0xb73: 0x18e2, 0xb74: 0x18e5, 0xb75: 0x18ee,
- 0xb76: 0x18f1, 0xb77: 0x18f4, 0xb78: 0x18f7, 0xb79: 0x18fa, 0xb7a: 0x18fd, 0xb7b: 0x1900,
- 0xb7c: 0x1903, 0xb7d: 0x1906, 0xb7e: 0x1909, 0xb7f: 0x1912,
- // Block 0x2e, offset 0xb80
- 0xb80: 0x1cc9, 0xb81: 0x1cd8, 0xb82: 0x1ce7, 0xb83: 0x1cf6, 0xb84: 0x1d05, 0xb85: 0x1d14,
- 0xb86: 0x1d23, 0xb87: 0x1d32, 0xb88: 0x1d41, 0xb89: 0x218f, 0xb8a: 0x21a1, 0xb8b: 0x21b3,
- 0xb8c: 0x1954, 0xb8d: 0x1c07, 0xb8e: 0x19d5, 0xb8f: 0x1bab, 0xb90: 0x04cb, 0xb91: 0x04d3,
- 0xb92: 0x04db, 0xb93: 0x04e3, 0xb94: 0x04eb, 0xb95: 0x04ef, 0xb96: 0x04f3, 0xb97: 0x04f7,
- 0xb98: 0x04fb, 0xb99: 0x04ff, 0xb9a: 0x0503, 0xb9b: 0x0507, 0xb9c: 0x050b, 0xb9d: 0x050f,
- 0xb9e: 0x0513, 0xb9f: 0x0517, 0xba0: 0x051b, 0xba1: 0x0523, 0xba2: 0x0527, 0xba3: 0x052b,
- 0xba4: 0x052f, 0xba5: 0x0533, 0xba6: 0x0537, 0xba7: 0x053b, 0xba8: 0x053f, 0xba9: 0x0543,
- 0xbaa: 0x0547, 0xbab: 0x054b, 0xbac: 0x054f, 0xbad: 0x0553, 0xbae: 0x0557, 0xbaf: 0x055b,
- 0xbb0: 0x055f, 0xbb1: 0x0563, 0xbb2: 0x0567, 0xbb3: 0x056f, 0xbb4: 0x0577, 0xbb5: 0x057f,
- 0xbb6: 0x0583, 0xbb7: 0x0587, 0xbb8: 0x058b, 0xbb9: 0x058f, 0xbba: 0x0593, 0xbbb: 0x0597,
- 0xbbc: 0x059b, 0xbbd: 0x059f, 0xbbe: 0x05a3,
- // Block 0x2f, offset 0xbc0
- 0xbc0: 0x2b0f, 0xbc1: 0x29ab, 0xbc2: 0x2b1f, 0xbc3: 0x2883, 0xbc4: 0x2ee7, 0xbc5: 0x288d,
- 0xbc6: 0x2897, 0xbc7: 0x2f2b, 0xbc8: 0x29b8, 0xbc9: 0x28a1, 0xbca: 0x28ab, 0xbcb: 0x28b5,
- 0xbcc: 0x29df, 0xbcd: 0x29ec, 0xbce: 0x29c5, 0xbcf: 0x29d2, 0xbd0: 0x2eac, 0xbd1: 0x29f9,
- 0xbd2: 0x2a06, 0xbd3: 0x2bc1, 0xbd4: 0x26be, 0xbd5: 0x2bd4, 0xbd6: 0x2be7, 0xbd7: 0x2b2f,
- 0xbd8: 0x2a13, 0xbd9: 0x2bfa, 0xbda: 0x2c0d, 0xbdb: 0x2a20, 0xbdc: 0x28bf, 0xbdd: 0x28c9,
- 0xbde: 0x2eba, 0xbdf: 0x2a2d, 0xbe0: 0x2b3f, 0xbe1: 0x2ef8, 0xbe2: 0x28d3, 0xbe3: 0x28dd,
- 0xbe4: 0x2a3a, 0xbe5: 0x28e7, 0xbe6: 0x28f1, 0xbe7: 0x26d3, 0xbe8: 0x26da, 0xbe9: 0x28fb,
- 0xbea: 0x2905, 0xbeb: 0x2c20, 0xbec: 0x2a47, 0xbed: 0x2b4f, 0xbee: 0x2c33, 0xbef: 0x2a54,
- 0xbf0: 0x2919, 0xbf1: 0x290f, 0xbf2: 0x2f3f, 0xbf3: 0x2a61, 0xbf4: 0x2c46, 0xbf5: 0x2923,
- 0xbf6: 0x2b5f, 0xbf7: 0x292d, 0xbf8: 0x2a7b, 0xbf9: 0x2937, 0xbfa: 0x2a88, 0xbfb: 0x2f09,
- 0xbfc: 0x2a6e, 0xbfd: 0x2b6f, 0xbfe: 0x2a95, 0xbff: 0x26e1,
- // Block 0x30, offset 0xc00
- 0xc00: 0x2f1a, 0xc01: 0x2941, 0xc02: 0x294b, 0xc03: 0x2aa2, 0xc04: 0x2955, 0xc05: 0x295f,
- 0xc06: 0x2969, 0xc07: 0x2b7f, 0xc08: 0x2aaf, 0xc09: 0x26e8, 0xc0a: 0x2c59, 0xc0b: 0x2e93,
- 0xc0c: 0x2b8f, 0xc0d: 0x2abc, 0xc0e: 0x2ec8, 0xc0f: 0x2973, 0xc10: 0x297d, 0xc11: 0x2ac9,
- 0xc12: 0x26ef, 0xc13: 0x2ad6, 0xc14: 0x2b9f, 0xc15: 0x26f6, 0xc16: 0x2c6c, 0xc17: 0x2987,
- 0xc18: 0x1cba, 0xc19: 0x1cce, 0xc1a: 0x1cdd, 0xc1b: 0x1cec, 0xc1c: 0x1cfb, 0xc1d: 0x1d0a,
- 0xc1e: 0x1d19, 0xc1f: 0x1d28, 0xc20: 0x1d37, 0xc21: 0x1d46, 0xc22: 0x2195, 0xc23: 0x21a7,
- 0xc24: 0x21b9, 0xc25: 0x21c5, 0xc26: 0x21d1, 0xc27: 0x21dd, 0xc28: 0x21e9, 0xc29: 0x21f5,
- 0xc2a: 0x2201, 0xc2b: 0x220d, 0xc2c: 0x2249, 0xc2d: 0x2255, 0xc2e: 0x2261, 0xc2f: 0x226d,
- 0xc30: 0x2279, 0xc31: 0x1c17, 0xc32: 0x19c9, 0xc33: 0x1936, 0xc34: 0x1be7, 0xc35: 0x1a4a,
- 0xc36: 0x1a59, 0xc37: 0x19cf, 0xc38: 0x1bff, 0xc39: 0x1c03, 0xc3a: 0x1960, 0xc3b: 0x2704,
- 0xc3c: 0x2712, 0xc3d: 0x26fd, 0xc3e: 0x270b, 0xc3f: 0x2ae3,
- // Block 0x31, offset 0xc40
- 0xc40: 0x1a4d, 0xc41: 0x1a35, 0xc42: 0x1c63, 0xc43: 0x1a1d, 0xc44: 0x19f6, 0xc45: 0x1969,
- 0xc46: 0x1978, 0xc47: 0x1948, 0xc48: 0x1bf3, 0xc49: 0x1d55, 0xc4a: 0x1a50, 0xc4b: 0x1a38,
- 0xc4c: 0x1c67, 0xc4d: 0x1c73, 0xc4e: 0x1a29, 0xc4f: 0x19ff, 0xc50: 0x1957, 0xc51: 0x1c1f,
- 0xc52: 0x1bb3, 0xc53: 0x1b9f, 0xc54: 0x1bcf, 0xc55: 0x1c77, 0xc56: 0x1a2c, 0xc57: 0x19cc,
- 0xc58: 0x1a02, 0xc59: 0x19e1, 0xc5a: 0x1a44, 0xc5b: 0x1c7b, 0xc5c: 0x1a2f, 0xc5d: 0x19c3,
- 0xc5e: 0x1a05, 0xc5f: 0x1c3f, 0xc60: 0x1bf7, 0xc61: 0x1a17, 0xc62: 0x1c27, 0xc63: 0x1c43,
- 0xc64: 0x1bfb, 0xc65: 0x1a1a, 0xc66: 0x1c2b, 0xc67: 0x22eb, 0xc68: 0x22ff, 0xc69: 0x1999,
- 0xc6a: 0x1c23, 0xc6b: 0x1bb7, 0xc6c: 0x1ba3, 0xc6d: 0x1c4b, 0xc6e: 0x2719, 0xc6f: 0x27b0,
- 0xc70: 0x1a5c, 0xc71: 0x1a47, 0xc72: 0x1c7f, 0xc73: 0x1a32, 0xc74: 0x1a53, 0xc75: 0x1a3b,
- 0xc76: 0x1c6b, 0xc77: 0x1a20, 0xc78: 0x19f9, 0xc79: 0x1984, 0xc7a: 0x1a56, 0xc7b: 0x1a3e,
- 0xc7c: 0x1c6f, 0xc7d: 0x1a23, 0xc7e: 0x19fc, 0xc7f: 0x1987,
- // Block 0x32, offset 0xc80
- 0xc80: 0x1c2f, 0xc81: 0x1bbb, 0xc82: 0x1d50, 0xc83: 0x1939, 0xc84: 0x19bd, 0xc85: 0x19c0,
- 0xc86: 0x22f8, 0xc87: 0x1b97, 0xc88: 0x19c6, 0xc89: 0x194b, 0xc8a: 0x19e4, 0xc8b: 0x194e,
- 0xc8c: 0x19ed, 0xc8d: 0x196c, 0xc8e: 0x196f, 0xc8f: 0x1a08, 0xc90: 0x1a0e, 0xc91: 0x1a11,
- 0xc92: 0x1c33, 0xc93: 0x1a14, 0xc94: 0x1a26, 0xc95: 0x1c3b, 0xc96: 0x1c47, 0xc97: 0x1993,
- 0xc98: 0x1d5a, 0xc99: 0x1bbf, 0xc9a: 0x1996, 0xc9b: 0x1a5f, 0xc9c: 0x19a8, 0xc9d: 0x19b7,
- 0xc9e: 0x22e5, 0xc9f: 0x22df, 0xca0: 0x1cc4, 0xca1: 0x1cd3, 0xca2: 0x1ce2, 0xca3: 0x1cf1,
- 0xca4: 0x1d00, 0xca5: 0x1d0f, 0xca6: 0x1d1e, 0xca7: 0x1d2d, 0xca8: 0x1d3c, 0xca9: 0x2189,
- 0xcaa: 0x219b, 0xcab: 0x21ad, 0xcac: 0x21bf, 0xcad: 0x21cb, 0xcae: 0x21d7, 0xcaf: 0x21e3,
- 0xcb0: 0x21ef, 0xcb1: 0x21fb, 0xcb2: 0x2207, 0xcb3: 0x2243, 0xcb4: 0x224f, 0xcb5: 0x225b,
- 0xcb6: 0x2267, 0xcb7: 0x2273, 0xcb8: 0x227f, 0xcb9: 0x2285, 0xcba: 0x228b, 0xcbb: 0x2291,
- 0xcbc: 0x2297, 0xcbd: 0x22a9, 0xcbe: 0x22af, 0xcbf: 0x1c13,
- // Block 0x33, offset 0xcc0
- 0xcc0: 0x1377, 0xcc1: 0x0cfb, 0xcc2: 0x13d3, 0xcc3: 0x139f, 0xcc4: 0x0e57, 0xcc5: 0x06eb,
- 0xcc6: 0x08df, 0xcc7: 0x162b, 0xcc8: 0x162b, 0xcc9: 0x0a0b, 0xcca: 0x145f, 0xccb: 0x0943,
- 0xccc: 0x0a07, 0xccd: 0x0bef, 0xcce: 0x0fcf, 0xccf: 0x115f, 0xcd0: 0x1297, 0xcd1: 0x12d3,
- 0xcd2: 0x1307, 0xcd3: 0x141b, 0xcd4: 0x0d73, 0xcd5: 0x0dff, 0xcd6: 0x0eab, 0xcd7: 0x0f43,
- 0xcd8: 0x125f, 0xcd9: 0x1447, 0xcda: 0x1573, 0xcdb: 0x070f, 0xcdc: 0x08b3, 0xcdd: 0x0d87,
- 0xcde: 0x0ecf, 0xcdf: 0x1293, 0xce0: 0x15c3, 0xce1: 0x0ab3, 0xce2: 0x0e77, 0xce3: 0x1283,
- 0xce4: 0x1317, 0xce5: 0x0c23, 0xce6: 0x11bb, 0xce7: 0x12df, 0xce8: 0x0b1f, 0xce9: 0x0d0f,
- 0xcea: 0x0e17, 0xceb: 0x0f1b, 0xcec: 0x1427, 0xced: 0x074f, 0xcee: 0x07e7, 0xcef: 0x0853,
- 0xcf0: 0x0c8b, 0xcf1: 0x0d7f, 0xcf2: 0x0ecb, 0xcf3: 0x0fef, 0xcf4: 0x1177, 0xcf5: 0x128b,
- 0xcf6: 0x12a3, 0xcf7: 0x13c7, 0xcf8: 0x14ef, 0xcf9: 0x15a3, 0xcfa: 0x15bf, 0xcfb: 0x102b,
- 0xcfc: 0x106b, 0xcfd: 0x1123, 0xcfe: 0x1243, 0xcff: 0x147b,
- // Block 0x34, offset 0xd00
- 0xd00: 0x15cb, 0xd01: 0x134b, 0xd02: 0x09c7, 0xd03: 0x0b3b, 0xd04: 0x10db, 0xd05: 0x119b,
- 0xd06: 0x0eff, 0xd07: 0x1033, 0xd08: 0x1397, 0xd09: 0x14e7, 0xd0a: 0x09c3, 0xd0b: 0x0a8f,
- 0xd0c: 0x0d77, 0xd0d: 0x0e2b, 0xd0e: 0x0e5f, 0xd0f: 0x1113, 0xd10: 0x113b, 0xd11: 0x14a7,
- 0xd12: 0x084f, 0xd13: 0x11a7, 0xd14: 0x07f3, 0xd15: 0x07ef, 0xd16: 0x1097, 0xd17: 0x1127,
- 0xd18: 0x125b, 0xd19: 0x14af, 0xd1a: 0x1367, 0xd1b: 0x0c27, 0xd1c: 0x0d73, 0xd1d: 0x1357,
- 0xd1e: 0x06f7, 0xd1f: 0x0a63, 0xd20: 0x0b93, 0xd21: 0x0f2f, 0xd22: 0x0faf, 0xd23: 0x0873,
- 0xd24: 0x103b, 0xd25: 0x075f, 0xd26: 0x0b77, 0xd27: 0x06d7, 0xd28: 0x0deb, 0xd29: 0x0ca3,
- 0xd2a: 0x110f, 0xd2b: 0x08c7, 0xd2c: 0x09b3, 0xd2d: 0x0ffb, 0xd2e: 0x1263, 0xd2f: 0x133b,
- 0xd30: 0x0db7, 0xd31: 0x13f7, 0xd32: 0x0de3, 0xd33: 0x0c37, 0xd34: 0x121b, 0xd35: 0x0c57,
- 0xd36: 0x0fab, 0xd37: 0x072b, 0xd38: 0x07a7, 0xd39: 0x07eb, 0xd3a: 0x0d53, 0xd3b: 0x10fb,
- 0xd3c: 0x11f3, 0xd3d: 0x1347, 0xd3e: 0x145b, 0xd3f: 0x085b,
- // Block 0x35, offset 0xd40
- 0xd40: 0x090f, 0xd41: 0x0a17, 0xd42: 0x0b2f, 0xd43: 0x0cbf, 0xd44: 0x0e7b, 0xd45: 0x103f,
- 0xd46: 0x1497, 0xd47: 0x157b, 0xd48: 0x15cf, 0xd49: 0x15e7, 0xd4a: 0x0837, 0xd4b: 0x0cf3,
- 0xd4c: 0x0da3, 0xd4d: 0x13eb, 0xd4e: 0x0afb, 0xd4f: 0x0bd7, 0xd50: 0x0bf3, 0xd51: 0x0c83,
- 0xd52: 0x0e6b, 0xd53: 0x0eb7, 0xd54: 0x0f67, 0xd55: 0x108b, 0xd56: 0x112f, 0xd57: 0x1193,
- 0xd58: 0x13db, 0xd59: 0x126b, 0xd5a: 0x1403, 0xd5b: 0x147f, 0xd5c: 0x080f, 0xd5d: 0x083b,
- 0xd5e: 0x0923, 0xd5f: 0x0ea7, 0xd60: 0x12f3, 0xd61: 0x133b, 0xd62: 0x0b1b, 0xd63: 0x0b8b,
- 0xd64: 0x0c4f, 0xd65: 0x0daf, 0xd66: 0x10d7, 0xd67: 0x0f23, 0xd68: 0x073b, 0xd69: 0x097f,
- 0xd6a: 0x0a63, 0xd6b: 0x0ac7, 0xd6c: 0x0b97, 0xd6d: 0x0f3f, 0xd6e: 0x0f5b, 0xd6f: 0x116b,
- 0xd70: 0x118b, 0xd71: 0x1463, 0xd72: 0x14e3, 0xd73: 0x14f3, 0xd74: 0x152f, 0xd75: 0x0753,
- 0xd76: 0x107f, 0xd77: 0x144f, 0xd78: 0x14cb, 0xd79: 0x0baf, 0xd7a: 0x0717, 0xd7b: 0x0777,
- 0xd7c: 0x0a67, 0xd7d: 0x0a87, 0xd7e: 0x0caf, 0xd7f: 0x0d73,
- // Block 0x36, offset 0xd80
- 0xd80: 0x0ec3, 0xd81: 0x0fcb, 0xd82: 0x1277, 0xd83: 0x1417, 0xd84: 0x1623, 0xd85: 0x0ce3,
- 0xd86: 0x14a3, 0xd87: 0x0833, 0xd88: 0x0d2f, 0xd89: 0x0d3b, 0xd8a: 0x0e0f, 0xd8b: 0x0e47,
- 0xd8c: 0x0f4b, 0xd8d: 0x0fa7, 0xd8e: 0x1027, 0xd8f: 0x110b, 0xd90: 0x153b, 0xd91: 0x07af,
- 0xd92: 0x0c03, 0xd93: 0x14b3, 0xd94: 0x0767, 0xd95: 0x0aab, 0xd96: 0x0e2f, 0xd97: 0x13df,
- 0xd98: 0x0b67, 0xd99: 0x0bb7, 0xd9a: 0x0d43, 0xd9b: 0x0f2f, 0xd9c: 0x14bb, 0xd9d: 0x0817,
- 0xd9e: 0x08ff, 0xd9f: 0x0a97, 0xda0: 0x0cd3, 0xda1: 0x0d1f, 0xda2: 0x0d5f, 0xda3: 0x0df3,
- 0xda4: 0x0f47, 0xda5: 0x0fbb, 0xda6: 0x1157, 0xda7: 0x12f7, 0xda8: 0x1303, 0xda9: 0x1457,
- 0xdaa: 0x14d7, 0xdab: 0x0883, 0xdac: 0x0e4b, 0xdad: 0x0903, 0xdae: 0x0ec7, 0xdaf: 0x0f6b,
- 0xdb0: 0x1287, 0xdb1: 0x14bf, 0xdb2: 0x15ab, 0xdb3: 0x15d3, 0xdb4: 0x0d37, 0xdb5: 0x0e27,
- 0xdb6: 0x11c3, 0xdb7: 0x10b7, 0xdb8: 0x10c3, 0xdb9: 0x10e7, 0xdba: 0x0f17, 0xdbb: 0x0e9f,
- 0xdbc: 0x1363, 0xdbd: 0x0733, 0xdbe: 0x122b, 0xdbf: 0x081b,
- // Block 0x37, offset 0xdc0
- 0xdc0: 0x080b, 0xdc1: 0x0b0b, 0xdc2: 0x0c2b, 0xdc3: 0x10f3, 0xdc4: 0x0a53, 0xdc5: 0x0e03,
- 0xdc6: 0x0cef, 0xdc7: 0x13e7, 0xdc8: 0x12e7, 0xdc9: 0x14ab, 0xdca: 0x1323, 0xdcb: 0x0b27,
- 0xdcc: 0x0787, 0xdcd: 0x095b, 0xdd0: 0x09af,
- 0xdd2: 0x0cdf, 0xdd5: 0x07f7, 0xdd6: 0x0f1f, 0xdd7: 0x0fe3,
- 0xdd8: 0x1047, 0xdd9: 0x1063, 0xdda: 0x1067, 0xddb: 0x107b, 0xddc: 0x14fb, 0xddd: 0x10eb,
- 0xdde: 0x116f, 0xde0: 0x128f, 0xde2: 0x1353,
- 0xde5: 0x1407, 0xde6: 0x1433,
- 0xdea: 0x154f, 0xdeb: 0x1553, 0xdec: 0x1557, 0xded: 0x15bb, 0xdee: 0x142b, 0xdef: 0x14c7,
- 0xdf0: 0x0757, 0xdf1: 0x077b, 0xdf2: 0x078f, 0xdf3: 0x084b, 0xdf4: 0x0857, 0xdf5: 0x0897,
- 0xdf6: 0x094b, 0xdf7: 0x0967, 0xdf8: 0x096f, 0xdf9: 0x09ab, 0xdfa: 0x09b7, 0xdfb: 0x0a93,
- 0xdfc: 0x0a9b, 0xdfd: 0x0ba3, 0xdfe: 0x0bcb, 0xdff: 0x0bd3,
- // Block 0x38, offset 0xe00
- 0xe00: 0x0beb, 0xe01: 0x0c97, 0xe02: 0x0cc7, 0xe03: 0x0ce7, 0xe04: 0x0d57, 0xe05: 0x0e1b,
- 0xe06: 0x0e37, 0xe07: 0x0e67, 0xe08: 0x0ebb, 0xe09: 0x0edb, 0xe0a: 0x0f4f, 0xe0b: 0x102f,
- 0xe0c: 0x104b, 0xe0d: 0x1053, 0xe0e: 0x104f, 0xe0f: 0x1057, 0xe10: 0x105b, 0xe11: 0x105f,
- 0xe12: 0x1073, 0xe13: 0x1077, 0xe14: 0x109b, 0xe15: 0x10af, 0xe16: 0x10cb, 0xe17: 0x112f,
- 0xe18: 0x1137, 0xe19: 0x113f, 0xe1a: 0x1153, 0xe1b: 0x117b, 0xe1c: 0x11cb, 0xe1d: 0x11ff,
- 0xe1e: 0x11ff, 0xe1f: 0x1267, 0xe20: 0x130f, 0xe21: 0x1327, 0xe22: 0x135b, 0xe23: 0x135f,
- 0xe24: 0x13a3, 0xe25: 0x13a7, 0xe26: 0x13ff, 0xe27: 0x1407, 0xe28: 0x14db, 0xe29: 0x151f,
- 0xe2a: 0x1537, 0xe2b: 0x0b9b, 0xe2c: 0x171e, 0xe2d: 0x11e3,
- 0xe30: 0x06df, 0xe31: 0x07e3, 0xe32: 0x07a3, 0xe33: 0x074b, 0xe34: 0x078b, 0xe35: 0x07b7,
- 0xe36: 0x0847, 0xe37: 0x0863, 0xe38: 0x094b, 0xe39: 0x0937, 0xe3a: 0x0947, 0xe3b: 0x0963,
- 0xe3c: 0x09af, 0xe3d: 0x09bf, 0xe3e: 0x0a03, 0xe3f: 0x0a0f,
- // Block 0x39, offset 0xe40
- 0xe40: 0x0a2b, 0xe41: 0x0a3b, 0xe42: 0x0b23, 0xe43: 0x0b2b, 0xe44: 0x0b5b, 0xe45: 0x0b7b,
- 0xe46: 0x0bab, 0xe47: 0x0bc3, 0xe48: 0x0bb3, 0xe49: 0x0bd3, 0xe4a: 0x0bc7, 0xe4b: 0x0beb,
- 0xe4c: 0x0c07, 0xe4d: 0x0c5f, 0xe4e: 0x0c6b, 0xe4f: 0x0c73, 0xe50: 0x0c9b, 0xe51: 0x0cdf,
- 0xe52: 0x0d0f, 0xe53: 0x0d13, 0xe54: 0x0d27, 0xe55: 0x0da7, 0xe56: 0x0db7, 0xe57: 0x0e0f,
- 0xe58: 0x0e5b, 0xe59: 0x0e53, 0xe5a: 0x0e67, 0xe5b: 0x0e83, 0xe5c: 0x0ebb, 0xe5d: 0x1013,
- 0xe5e: 0x0edf, 0xe5f: 0x0f13, 0xe60: 0x0f1f, 0xe61: 0x0f5f, 0xe62: 0x0f7b, 0xe63: 0x0f9f,
- 0xe64: 0x0fc3, 0xe65: 0x0fc7, 0xe66: 0x0fe3, 0xe67: 0x0fe7, 0xe68: 0x0ff7, 0xe69: 0x100b,
- 0xe6a: 0x1007, 0xe6b: 0x1037, 0xe6c: 0x10b3, 0xe6d: 0x10cb, 0xe6e: 0x10e3, 0xe6f: 0x111b,
- 0xe70: 0x112f, 0xe71: 0x114b, 0xe72: 0x117b, 0xe73: 0x122f, 0xe74: 0x1257, 0xe75: 0x12cb,
- 0xe76: 0x1313, 0xe77: 0x131f, 0xe78: 0x1327, 0xe79: 0x133f, 0xe7a: 0x1353, 0xe7b: 0x1343,
- 0xe7c: 0x135b, 0xe7d: 0x1357, 0xe7e: 0x134f, 0xe7f: 0x135f,
- // Block 0x3a, offset 0xe80
- 0xe80: 0x136b, 0xe81: 0x13a7, 0xe82: 0x13e3, 0xe83: 0x1413, 0xe84: 0x144b, 0xe85: 0x146b,
- 0xe86: 0x14b7, 0xe87: 0x14db, 0xe88: 0x14fb, 0xe89: 0x150f, 0xe8a: 0x151f, 0xe8b: 0x152b,
- 0xe8c: 0x1537, 0xe8d: 0x158b, 0xe8e: 0x162b, 0xe8f: 0x16b5, 0xe90: 0x16b0, 0xe91: 0x16e2,
- 0xe92: 0x0607, 0xe93: 0x062f, 0xe94: 0x0633, 0xe95: 0x1764, 0xe96: 0x1791, 0xe97: 0x1809,
- 0xe98: 0x1617, 0xe99: 0x1627,
- // Block 0x3b, offset 0xec0
- 0xec0: 0x19d8, 0xec1: 0x19db, 0xec2: 0x19de, 0xec3: 0x1c0b, 0xec4: 0x1c0f, 0xec5: 0x1a62,
- 0xec6: 0x1a62,
- 0xed3: 0x1d78, 0xed4: 0x1d69, 0xed5: 0x1d6e, 0xed6: 0x1d7d, 0xed7: 0x1d73,
- 0xedd: 0x4393,
- 0xede: 0x8115, 0xedf: 0x4405, 0xee0: 0x022d, 0xee1: 0x0215, 0xee2: 0x021e, 0xee3: 0x0221,
- 0xee4: 0x0224, 0xee5: 0x0227, 0xee6: 0x022a, 0xee7: 0x0230, 0xee8: 0x0233, 0xee9: 0x0017,
- 0xeea: 0x43f3, 0xeeb: 0x43f9, 0xeec: 0x44f7, 0xeed: 0x44ff, 0xeee: 0x434b, 0xeef: 0x4351,
- 0xef0: 0x4357, 0xef1: 0x435d, 0xef2: 0x4369, 0xef3: 0x436f, 0xef4: 0x4375, 0xef5: 0x4381,
- 0xef6: 0x4387, 0xef8: 0x438d, 0xef9: 0x4399, 0xefa: 0x439f, 0xefb: 0x43a5,
- 0xefc: 0x43b1, 0xefe: 0x43b7,
- // Block 0x3c, offset 0xf00
- 0xf00: 0x43bd, 0xf01: 0x43c3, 0xf03: 0x43c9, 0xf04: 0x43cf,
- 0xf06: 0x43db, 0xf07: 0x43e1, 0xf08: 0x43e7, 0xf09: 0x43ed, 0xf0a: 0x43ff, 0xf0b: 0x437b,
- 0xf0c: 0x4363, 0xf0d: 0x43ab, 0xf0e: 0x43d5, 0xf0f: 0x1d82, 0xf10: 0x0299, 0xf11: 0x0299,
- 0xf12: 0x02a2, 0xf13: 0x02a2, 0xf14: 0x02a2, 0xf15: 0x02a2, 0xf16: 0x02a5, 0xf17: 0x02a5,
- 0xf18: 0x02a5, 0xf19: 0x02a5, 0xf1a: 0x02ab, 0xf1b: 0x02ab, 0xf1c: 0x02ab, 0xf1d: 0x02ab,
- 0xf1e: 0x029f, 0xf1f: 0x029f, 0xf20: 0x029f, 0xf21: 0x029f, 0xf22: 0x02a8, 0xf23: 0x02a8,
- 0xf24: 0x02a8, 0xf25: 0x02a8, 0xf26: 0x029c, 0xf27: 0x029c, 0xf28: 0x029c, 0xf29: 0x029c,
- 0xf2a: 0x02cf, 0xf2b: 0x02cf, 0xf2c: 0x02cf, 0xf2d: 0x02cf, 0xf2e: 0x02d2, 0xf2f: 0x02d2,
- 0xf30: 0x02d2, 0xf31: 0x02d2, 0xf32: 0x02b1, 0xf33: 0x02b1, 0xf34: 0x02b1, 0xf35: 0x02b1,
- 0xf36: 0x02ae, 0xf37: 0x02ae, 0xf38: 0x02ae, 0xf39: 0x02ae, 0xf3a: 0x02b4, 0xf3b: 0x02b4,
- 0xf3c: 0x02b4, 0xf3d: 0x02b4, 0xf3e: 0x02b7, 0xf3f: 0x02b7,
- // Block 0x3d, offset 0xf40
- 0xf40: 0x02b7, 0xf41: 0x02b7, 0xf42: 0x02c0, 0xf43: 0x02c0, 0xf44: 0x02bd, 0xf45: 0x02bd,
- 0xf46: 0x02c3, 0xf47: 0x02c3, 0xf48: 0x02ba, 0xf49: 0x02ba, 0xf4a: 0x02c9, 0xf4b: 0x02c9,
- 0xf4c: 0x02c6, 0xf4d: 0x02c6, 0xf4e: 0x02d5, 0xf4f: 0x02d5, 0xf50: 0x02d5, 0xf51: 0x02d5,
- 0xf52: 0x02db, 0xf53: 0x02db, 0xf54: 0x02db, 0xf55: 0x02db, 0xf56: 0x02e1, 0xf57: 0x02e1,
- 0xf58: 0x02e1, 0xf59: 0x02e1, 0xf5a: 0x02de, 0xf5b: 0x02de, 0xf5c: 0x02de, 0xf5d: 0x02de,
- 0xf5e: 0x02e4, 0xf5f: 0x02e4, 0xf60: 0x02e7, 0xf61: 0x02e7, 0xf62: 0x02e7, 0xf63: 0x02e7,
- 0xf64: 0x4471, 0xf65: 0x4471, 0xf66: 0x02ed, 0xf67: 0x02ed, 0xf68: 0x02ed, 0xf69: 0x02ed,
- 0xf6a: 0x02ea, 0xf6b: 0x02ea, 0xf6c: 0x02ea, 0xf6d: 0x02ea, 0xf6e: 0x0308, 0xf6f: 0x0308,
- 0xf70: 0x446b, 0xf71: 0x446b,
- // Block 0x3e, offset 0xf80
- 0xf93: 0x02d8, 0xf94: 0x02d8, 0xf95: 0x02d8, 0xf96: 0x02d8, 0xf97: 0x02f6,
- 0xf98: 0x02f6, 0xf99: 0x02f3, 0xf9a: 0x02f3, 0xf9b: 0x02f9, 0xf9c: 0x02f9, 0xf9d: 0x2052,
- 0xf9e: 0x02ff, 0xf9f: 0x02ff, 0xfa0: 0x02f0, 0xfa1: 0x02f0, 0xfa2: 0x02fc, 0xfa3: 0x02fc,
- 0xfa4: 0x0305, 0xfa5: 0x0305, 0xfa6: 0x0305, 0xfa7: 0x0305, 0xfa8: 0x028d, 0xfa9: 0x028d,
- 0xfaa: 0x25ad, 0xfab: 0x25ad, 0xfac: 0x261d, 0xfad: 0x261d, 0xfae: 0x25ec, 0xfaf: 0x25ec,
- 0xfb0: 0x2608, 0xfb1: 0x2608, 0xfb2: 0x2601, 0xfb3: 0x2601, 0xfb4: 0x260f, 0xfb5: 0x260f,
- 0xfb6: 0x2616, 0xfb7: 0x2616, 0xfb8: 0x2616, 0xfb9: 0x25f3, 0xfba: 0x25f3, 0xfbb: 0x25f3,
- 0xfbc: 0x0302, 0xfbd: 0x0302, 0xfbe: 0x0302, 0xfbf: 0x0302,
- // Block 0x3f, offset 0xfc0
- 0xfc0: 0x25b4, 0xfc1: 0x25bb, 0xfc2: 0x25d7, 0xfc3: 0x25f3, 0xfc4: 0x25fa, 0xfc5: 0x1d8c,
- 0xfc6: 0x1d91, 0xfc7: 0x1d96, 0xfc8: 0x1da5, 0xfc9: 0x1db4, 0xfca: 0x1db9, 0xfcb: 0x1dbe,
- 0xfcc: 0x1dc3, 0xfcd: 0x1dc8, 0xfce: 0x1dd7, 0xfcf: 0x1de6, 0xfd0: 0x1deb, 0xfd1: 0x1df0,
- 0xfd2: 0x1dff, 0xfd3: 0x1e0e, 0xfd4: 0x1e13, 0xfd5: 0x1e18, 0xfd6: 0x1e1d, 0xfd7: 0x1e2c,
- 0xfd8: 0x1e31, 0xfd9: 0x1e40, 0xfda: 0x1e45, 0xfdb: 0x1e4a, 0xfdc: 0x1e59, 0xfdd: 0x1e5e,
- 0xfde: 0x1e63, 0xfdf: 0x1e6d, 0xfe0: 0x1ea9, 0xfe1: 0x1eb8, 0xfe2: 0x1ec7, 0xfe3: 0x1ecc,
- 0xfe4: 0x1ed1, 0xfe5: 0x1edb, 0xfe6: 0x1eea, 0xfe7: 0x1eef, 0xfe8: 0x1efe, 0xfe9: 0x1f03,
- 0xfea: 0x1f08, 0xfeb: 0x1f17, 0xfec: 0x1f1c, 0xfed: 0x1f2b, 0xfee: 0x1f30, 0xfef: 0x1f35,
- 0xff0: 0x1f3a, 0xff1: 0x1f3f, 0xff2: 0x1f44, 0xff3: 0x1f49, 0xff4: 0x1f4e, 0xff5: 0x1f53,
- 0xff6: 0x1f58, 0xff7: 0x1f5d, 0xff8: 0x1f62, 0xff9: 0x1f67, 0xffa: 0x1f6c, 0xffb: 0x1f71,
- 0xffc: 0x1f76, 0xffd: 0x1f7b, 0xffe: 0x1f80, 0xfff: 0x1f8a,
- // Block 0x40, offset 0x1000
- 0x1000: 0x1f8f, 0x1001: 0x1f94, 0x1002: 0x1f99, 0x1003: 0x1fa3, 0x1004: 0x1fa8, 0x1005: 0x1fb2,
- 0x1006: 0x1fb7, 0x1007: 0x1fbc, 0x1008: 0x1fc1, 0x1009: 0x1fc6, 0x100a: 0x1fcb, 0x100b: 0x1fd0,
- 0x100c: 0x1fd5, 0x100d: 0x1fda, 0x100e: 0x1fe9, 0x100f: 0x1ff8, 0x1010: 0x1ffd, 0x1011: 0x2002,
- 0x1012: 0x2007, 0x1013: 0x200c, 0x1014: 0x2011, 0x1015: 0x201b, 0x1016: 0x2020, 0x1017: 0x2025,
- 0x1018: 0x2034, 0x1019: 0x2043, 0x101a: 0x2048, 0x101b: 0x4423, 0x101c: 0x4429, 0x101d: 0x445f,
- 0x101e: 0x44b6, 0x101f: 0x44bd, 0x1020: 0x44c4, 0x1021: 0x44cb, 0x1022: 0x44d2, 0x1023: 0x44d9,
- 0x1024: 0x25c9, 0x1025: 0x25d0, 0x1026: 0x25d7, 0x1027: 0x25de, 0x1028: 0x25f3, 0x1029: 0x25fa,
- 0x102a: 0x1d9b, 0x102b: 0x1da0, 0x102c: 0x1da5, 0x102d: 0x1daa, 0x102e: 0x1db4, 0x102f: 0x1db9,
- 0x1030: 0x1dcd, 0x1031: 0x1dd2, 0x1032: 0x1dd7, 0x1033: 0x1ddc, 0x1034: 0x1de6, 0x1035: 0x1deb,
- 0x1036: 0x1df5, 0x1037: 0x1dfa, 0x1038: 0x1dff, 0x1039: 0x1e04, 0x103a: 0x1e0e, 0x103b: 0x1e13,
- 0x103c: 0x1f3f, 0x103d: 0x1f44, 0x103e: 0x1f53, 0x103f: 0x1f58,
- // Block 0x41, offset 0x1040
- 0x1040: 0x1f5d, 0x1041: 0x1f71, 0x1042: 0x1f76, 0x1043: 0x1f7b, 0x1044: 0x1f80, 0x1045: 0x1f99,
- 0x1046: 0x1fa3, 0x1047: 0x1fa8, 0x1048: 0x1fad, 0x1049: 0x1fc1, 0x104a: 0x1fdf, 0x104b: 0x1fe4,
- 0x104c: 0x1fe9, 0x104d: 0x1fee, 0x104e: 0x1ff8, 0x104f: 0x1ffd, 0x1050: 0x445f, 0x1051: 0x202a,
- 0x1052: 0x202f, 0x1053: 0x2034, 0x1054: 0x2039, 0x1055: 0x2043, 0x1056: 0x2048, 0x1057: 0x25b4,
- 0x1058: 0x25bb, 0x1059: 0x25c2, 0x105a: 0x25d7, 0x105b: 0x25e5, 0x105c: 0x1d8c, 0x105d: 0x1d91,
- 0x105e: 0x1d96, 0x105f: 0x1da5, 0x1060: 0x1daf, 0x1061: 0x1dbe, 0x1062: 0x1dc3, 0x1063: 0x1dc8,
- 0x1064: 0x1dd7, 0x1065: 0x1de1, 0x1066: 0x1dff, 0x1067: 0x1e18, 0x1068: 0x1e1d, 0x1069: 0x1e2c,
- 0x106a: 0x1e31, 0x106b: 0x1e40, 0x106c: 0x1e4a, 0x106d: 0x1e59, 0x106e: 0x1e5e, 0x106f: 0x1e63,
- 0x1070: 0x1e6d, 0x1071: 0x1ea9, 0x1072: 0x1eae, 0x1073: 0x1eb8, 0x1074: 0x1ec7, 0x1075: 0x1ecc,
- 0x1076: 0x1ed1, 0x1077: 0x1edb, 0x1078: 0x1eea, 0x1079: 0x1efe, 0x107a: 0x1f03, 0x107b: 0x1f08,
- 0x107c: 0x1f17, 0x107d: 0x1f1c, 0x107e: 0x1f2b, 0x107f: 0x1f30,
- // Block 0x42, offset 0x1080
- 0x1080: 0x1f35, 0x1081: 0x1f3a, 0x1082: 0x1f49, 0x1083: 0x1f4e, 0x1084: 0x1f62, 0x1085: 0x1f67,
- 0x1086: 0x1f6c, 0x1087: 0x1f71, 0x1088: 0x1f76, 0x1089: 0x1f8a, 0x108a: 0x1f8f, 0x108b: 0x1f94,
- 0x108c: 0x1f99, 0x108d: 0x1f9e, 0x108e: 0x1fb2, 0x108f: 0x1fb7, 0x1090: 0x1fbc, 0x1091: 0x1fc1,
- 0x1092: 0x1fd0, 0x1093: 0x1fd5, 0x1094: 0x1fda, 0x1095: 0x1fe9, 0x1096: 0x1ff3, 0x1097: 0x2002,
- 0x1098: 0x2007, 0x1099: 0x4453, 0x109a: 0x201b, 0x109b: 0x2020, 0x109c: 0x2025, 0x109d: 0x2034,
- 0x109e: 0x203e, 0x109f: 0x25d7, 0x10a0: 0x25e5, 0x10a1: 0x1da5, 0x10a2: 0x1daf, 0x10a3: 0x1dd7,
- 0x10a4: 0x1de1, 0x10a5: 0x1dff, 0x10a6: 0x1e09, 0x10a7: 0x1e6d, 0x10a8: 0x1e72, 0x10a9: 0x1e95,
- 0x10aa: 0x1e9a, 0x10ab: 0x1f71, 0x10ac: 0x1f76, 0x10ad: 0x1f99, 0x10ae: 0x1fe9, 0x10af: 0x1ff3,
- 0x10b0: 0x2034, 0x10b1: 0x203e, 0x10b2: 0x4507, 0x10b3: 0x450f, 0x10b4: 0x4517, 0x10b5: 0x1ef4,
- 0x10b6: 0x1ef9, 0x10b7: 0x1f0d, 0x10b8: 0x1f12, 0x10b9: 0x1f21, 0x10ba: 0x1f26, 0x10bb: 0x1e77,
- 0x10bc: 0x1e7c, 0x10bd: 0x1e9f, 0x10be: 0x1ea4, 0x10bf: 0x1e36,
- // Block 0x43, offset 0x10c0
- 0x10c0: 0x1e3b, 0x10c1: 0x1e22, 0x10c2: 0x1e27, 0x10c3: 0x1e4f, 0x10c4: 0x1e54, 0x10c5: 0x1ebd,
- 0x10c6: 0x1ec2, 0x10c7: 0x1ee0, 0x10c8: 0x1ee5, 0x10c9: 0x1e81, 0x10ca: 0x1e86, 0x10cb: 0x1e8b,
- 0x10cc: 0x1e95, 0x10cd: 0x1e90, 0x10ce: 0x1e68, 0x10cf: 0x1eb3, 0x10d0: 0x1ed6, 0x10d1: 0x1ef4,
- 0x10d2: 0x1ef9, 0x10d3: 0x1f0d, 0x10d4: 0x1f12, 0x10d5: 0x1f21, 0x10d6: 0x1f26, 0x10d7: 0x1e77,
- 0x10d8: 0x1e7c, 0x10d9: 0x1e9f, 0x10da: 0x1ea4, 0x10db: 0x1e36, 0x10dc: 0x1e3b, 0x10dd: 0x1e22,
- 0x10de: 0x1e27, 0x10df: 0x1e4f, 0x10e0: 0x1e54, 0x10e1: 0x1ebd, 0x10e2: 0x1ec2, 0x10e3: 0x1ee0,
- 0x10e4: 0x1ee5, 0x10e5: 0x1e81, 0x10e6: 0x1e86, 0x10e7: 0x1e8b, 0x10e8: 0x1e95, 0x10e9: 0x1e90,
- 0x10ea: 0x1e68, 0x10eb: 0x1eb3, 0x10ec: 0x1ed6, 0x10ed: 0x1e81, 0x10ee: 0x1e86, 0x10ef: 0x1e8b,
- 0x10f0: 0x1e95, 0x10f1: 0x1e72, 0x10f2: 0x1e9a, 0x10f3: 0x1eef, 0x10f4: 0x1e59, 0x10f5: 0x1e5e,
- 0x10f6: 0x1e63, 0x10f7: 0x1e81, 0x10f8: 0x1e86, 0x10f9: 0x1e8b, 0x10fa: 0x1eef, 0x10fb: 0x1efe,
- 0x10fc: 0x440b, 0x10fd: 0x440b,
- // Block 0x44, offset 0x1100
- 0x1110: 0x2314, 0x1111: 0x2329,
- 0x1112: 0x2329, 0x1113: 0x2330, 0x1114: 0x2337, 0x1115: 0x234c, 0x1116: 0x2353, 0x1117: 0x235a,
- 0x1118: 0x237d, 0x1119: 0x237d, 0x111a: 0x23a0, 0x111b: 0x2399, 0x111c: 0x23b5, 0x111d: 0x23a7,
- 0x111e: 0x23ae, 0x111f: 0x23d1, 0x1120: 0x23d1, 0x1121: 0x23ca, 0x1122: 0x23d8, 0x1123: 0x23d8,
- 0x1124: 0x2402, 0x1125: 0x2402, 0x1126: 0x241e, 0x1127: 0x23e6, 0x1128: 0x23e6, 0x1129: 0x23df,
- 0x112a: 0x23f4, 0x112b: 0x23f4, 0x112c: 0x23fb, 0x112d: 0x23fb, 0x112e: 0x2425, 0x112f: 0x2433,
- 0x1130: 0x2433, 0x1131: 0x243a, 0x1132: 0x243a, 0x1133: 0x2441, 0x1134: 0x2448, 0x1135: 0x244f,
- 0x1136: 0x2456, 0x1137: 0x2456, 0x1138: 0x245d, 0x1139: 0x246b, 0x113a: 0x2479, 0x113b: 0x2472,
- 0x113c: 0x2480, 0x113d: 0x2480, 0x113e: 0x2495, 0x113f: 0x249c,
- // Block 0x45, offset 0x1140
- 0x1140: 0x24cd, 0x1141: 0x24db, 0x1142: 0x24d4, 0x1143: 0x24b8, 0x1144: 0x24b8, 0x1145: 0x24e2,
- 0x1146: 0x24e2, 0x1147: 0x24e9, 0x1148: 0x24e9, 0x1149: 0x2513, 0x114a: 0x251a, 0x114b: 0x2521,
- 0x114c: 0x24f7, 0x114d: 0x2505, 0x114e: 0x2528, 0x114f: 0x252f,
- 0x1152: 0x24fe, 0x1153: 0x2583, 0x1154: 0x258a, 0x1155: 0x2560, 0x1156: 0x2567, 0x1157: 0x254b,
- 0x1158: 0x254b, 0x1159: 0x2552, 0x115a: 0x257c, 0x115b: 0x2575, 0x115c: 0x259f, 0x115d: 0x259f,
- 0x115e: 0x230d, 0x115f: 0x2322, 0x1160: 0x231b, 0x1161: 0x2345, 0x1162: 0x233e, 0x1163: 0x2368,
- 0x1164: 0x2361, 0x1165: 0x238b, 0x1166: 0x236f, 0x1167: 0x2384, 0x1168: 0x23bc, 0x1169: 0x2409,
- 0x116a: 0x23ed, 0x116b: 0x242c, 0x116c: 0x24c6, 0x116d: 0x24f0, 0x116e: 0x2598, 0x116f: 0x2591,
- 0x1170: 0x25a6, 0x1171: 0x253d, 0x1172: 0x24a3, 0x1173: 0x256e, 0x1174: 0x2495, 0x1175: 0x24cd,
- 0x1176: 0x2464, 0x1177: 0x24b1, 0x1178: 0x2544, 0x1179: 0x2536, 0x117a: 0x24bf, 0x117b: 0x24aa,
- 0x117c: 0x24bf, 0x117d: 0x2544, 0x117e: 0x2376, 0x117f: 0x2392,
- // Block 0x46, offset 0x1180
- 0x1180: 0x250c, 0x1181: 0x2487, 0x1182: 0x2306, 0x1183: 0x24aa, 0x1184: 0x244f, 0x1185: 0x241e,
- 0x1186: 0x23c3, 0x1187: 0x2559,
- 0x11b0: 0x2417, 0x11b1: 0x248e, 0x11b2: 0x27c2, 0x11b3: 0x27b9, 0x11b4: 0x27ef, 0x11b5: 0x27dd,
- 0x11b6: 0x27cb, 0x11b7: 0x27e6, 0x11b8: 0x27f8, 0x11b9: 0x2410, 0x11ba: 0x2c7f, 0x11bb: 0x2aff,
- 0x11bc: 0x27d4,
- // Block 0x47, offset 0x11c0
- 0x11d0: 0x0019, 0x11d1: 0x0483,
- 0x11d2: 0x0487, 0x11d3: 0x0035, 0x11d4: 0x0037, 0x11d5: 0x0003, 0x11d6: 0x003f, 0x11d7: 0x04bf,
- 0x11d8: 0x04c3, 0x11d9: 0x1b5f,
- 0x11e0: 0x8132, 0x11e1: 0x8132, 0x11e2: 0x8132, 0x11e3: 0x8132,
- 0x11e4: 0x8132, 0x11e5: 0x8132, 0x11e6: 0x8132, 0x11e7: 0x812d, 0x11e8: 0x812d, 0x11e9: 0x812d,
- 0x11ea: 0x812d, 0x11eb: 0x812d, 0x11ec: 0x812d, 0x11ed: 0x812d, 0x11ee: 0x8132, 0x11ef: 0x8132,
- 0x11f0: 0x1873, 0x11f1: 0x0443, 0x11f2: 0x043f, 0x11f3: 0x007f, 0x11f4: 0x007f, 0x11f5: 0x0011,
- 0x11f6: 0x0013, 0x11f7: 0x00b7, 0x11f8: 0x00bb, 0x11f9: 0x04b7, 0x11fa: 0x04bb, 0x11fb: 0x04ab,
- 0x11fc: 0x04af, 0x11fd: 0x0493, 0x11fe: 0x0497, 0x11ff: 0x048b,
- // Block 0x48, offset 0x1200
- 0x1200: 0x048f, 0x1201: 0x049b, 0x1202: 0x049f, 0x1203: 0x04a3, 0x1204: 0x04a7,
- 0x1207: 0x0077, 0x1208: 0x007b, 0x1209: 0x426c, 0x120a: 0x426c, 0x120b: 0x426c,
- 0x120c: 0x426c, 0x120d: 0x007f, 0x120e: 0x007f, 0x120f: 0x007f, 0x1210: 0x0019, 0x1211: 0x0483,
- 0x1212: 0x001d, 0x1214: 0x0037, 0x1215: 0x0035, 0x1216: 0x003f, 0x1217: 0x0003,
- 0x1218: 0x0443, 0x1219: 0x0011, 0x121a: 0x0013, 0x121b: 0x00b7, 0x121c: 0x00bb, 0x121d: 0x04b7,
- 0x121e: 0x04bb, 0x121f: 0x0007, 0x1220: 0x000d, 0x1221: 0x0015, 0x1222: 0x0017, 0x1223: 0x001b,
- 0x1224: 0x0039, 0x1225: 0x003d, 0x1226: 0x003b, 0x1228: 0x0079, 0x1229: 0x0009,
- 0x122a: 0x000b, 0x122b: 0x0041,
- 0x1230: 0x42ad, 0x1231: 0x442f, 0x1232: 0x42b2, 0x1234: 0x42b7,
- 0x1236: 0x42bc, 0x1237: 0x4435, 0x1238: 0x42c1, 0x1239: 0x443b, 0x123a: 0x42c6, 0x123b: 0x4441,
- 0x123c: 0x42cb, 0x123d: 0x4447, 0x123e: 0x42d0, 0x123f: 0x444d,
- // Block 0x49, offset 0x1240
- 0x1240: 0x0236, 0x1241: 0x4411, 0x1242: 0x4411, 0x1243: 0x4417, 0x1244: 0x4417, 0x1245: 0x4459,
- 0x1246: 0x4459, 0x1247: 0x441d, 0x1248: 0x441d, 0x1249: 0x4465, 0x124a: 0x4465, 0x124b: 0x4465,
- 0x124c: 0x4465, 0x124d: 0x0239, 0x124e: 0x0239, 0x124f: 0x023c, 0x1250: 0x023c, 0x1251: 0x023c,
- 0x1252: 0x023c, 0x1253: 0x023f, 0x1254: 0x023f, 0x1255: 0x0242, 0x1256: 0x0242, 0x1257: 0x0242,
- 0x1258: 0x0242, 0x1259: 0x0245, 0x125a: 0x0245, 0x125b: 0x0245, 0x125c: 0x0245, 0x125d: 0x0248,
- 0x125e: 0x0248, 0x125f: 0x0248, 0x1260: 0x0248, 0x1261: 0x024b, 0x1262: 0x024b, 0x1263: 0x024b,
- 0x1264: 0x024b, 0x1265: 0x024e, 0x1266: 0x024e, 0x1267: 0x024e, 0x1268: 0x024e, 0x1269: 0x0251,
- 0x126a: 0x0251, 0x126b: 0x0254, 0x126c: 0x0254, 0x126d: 0x0257, 0x126e: 0x0257, 0x126f: 0x025a,
- 0x1270: 0x025a, 0x1271: 0x025d, 0x1272: 0x025d, 0x1273: 0x025d, 0x1274: 0x025d, 0x1275: 0x0260,
- 0x1276: 0x0260, 0x1277: 0x0260, 0x1278: 0x0260, 0x1279: 0x0263, 0x127a: 0x0263, 0x127b: 0x0263,
- 0x127c: 0x0263, 0x127d: 0x0266, 0x127e: 0x0266, 0x127f: 0x0266,
- // Block 0x4a, offset 0x1280
- 0x1280: 0x0266, 0x1281: 0x0269, 0x1282: 0x0269, 0x1283: 0x0269, 0x1284: 0x0269, 0x1285: 0x026c,
- 0x1286: 0x026c, 0x1287: 0x026c, 0x1288: 0x026c, 0x1289: 0x026f, 0x128a: 0x026f, 0x128b: 0x026f,
- 0x128c: 0x026f, 0x128d: 0x0272, 0x128e: 0x0272, 0x128f: 0x0272, 0x1290: 0x0272, 0x1291: 0x0275,
- 0x1292: 0x0275, 0x1293: 0x0275, 0x1294: 0x0275, 0x1295: 0x0278, 0x1296: 0x0278, 0x1297: 0x0278,
- 0x1298: 0x0278, 0x1299: 0x027b, 0x129a: 0x027b, 0x129b: 0x027b, 0x129c: 0x027b, 0x129d: 0x027e,
- 0x129e: 0x027e, 0x129f: 0x027e, 0x12a0: 0x027e, 0x12a1: 0x0281, 0x12a2: 0x0281, 0x12a3: 0x0281,
- 0x12a4: 0x0281, 0x12a5: 0x0284, 0x12a6: 0x0284, 0x12a7: 0x0284, 0x12a8: 0x0284, 0x12a9: 0x0287,
- 0x12aa: 0x0287, 0x12ab: 0x0287, 0x12ac: 0x0287, 0x12ad: 0x028a, 0x12ae: 0x028a, 0x12af: 0x028d,
- 0x12b0: 0x028d, 0x12b1: 0x0290, 0x12b2: 0x0290, 0x12b3: 0x0290, 0x12b4: 0x0290, 0x12b5: 0x2e03,
- 0x12b6: 0x2e03, 0x12b7: 0x2e0b, 0x12b8: 0x2e0b, 0x12b9: 0x2e13, 0x12ba: 0x2e13, 0x12bb: 0x1f85,
- 0x12bc: 0x1f85,
- // Block 0x4b, offset 0x12c0
- 0x12c0: 0x0081, 0x12c1: 0x0083, 0x12c2: 0x0085, 0x12c3: 0x0087, 0x12c4: 0x0089, 0x12c5: 0x008b,
- 0x12c6: 0x008d, 0x12c7: 0x008f, 0x12c8: 0x0091, 0x12c9: 0x0093, 0x12ca: 0x0095, 0x12cb: 0x0097,
- 0x12cc: 0x0099, 0x12cd: 0x009b, 0x12ce: 0x009d, 0x12cf: 0x009f, 0x12d0: 0x00a1, 0x12d1: 0x00a3,
- 0x12d2: 0x00a5, 0x12d3: 0x00a7, 0x12d4: 0x00a9, 0x12d5: 0x00ab, 0x12d6: 0x00ad, 0x12d7: 0x00af,
- 0x12d8: 0x00b1, 0x12d9: 0x00b3, 0x12da: 0x00b5, 0x12db: 0x00b7, 0x12dc: 0x00b9, 0x12dd: 0x00bb,
- 0x12de: 0x00bd, 0x12df: 0x0477, 0x12e0: 0x047b, 0x12e1: 0x0487, 0x12e2: 0x049b, 0x12e3: 0x049f,
- 0x12e4: 0x0483, 0x12e5: 0x05ab, 0x12e6: 0x05a3, 0x12e7: 0x04c7, 0x12e8: 0x04cf, 0x12e9: 0x04d7,
- 0x12ea: 0x04df, 0x12eb: 0x04e7, 0x12ec: 0x056b, 0x12ed: 0x0573, 0x12ee: 0x057b, 0x12ef: 0x051f,
- 0x12f0: 0x05af, 0x12f1: 0x04cb, 0x12f2: 0x04d3, 0x12f3: 0x04db, 0x12f4: 0x04e3, 0x12f5: 0x04eb,
- 0x12f6: 0x04ef, 0x12f7: 0x04f3, 0x12f8: 0x04f7, 0x12f9: 0x04fb, 0x12fa: 0x04ff, 0x12fb: 0x0503,
- 0x12fc: 0x0507, 0x12fd: 0x050b, 0x12fe: 0x050f, 0x12ff: 0x0513,
- // Block 0x4c, offset 0x1300
- 0x1300: 0x0517, 0x1301: 0x051b, 0x1302: 0x0523, 0x1303: 0x0527, 0x1304: 0x052b, 0x1305: 0x052f,
- 0x1306: 0x0533, 0x1307: 0x0537, 0x1308: 0x053b, 0x1309: 0x053f, 0x130a: 0x0543, 0x130b: 0x0547,
- 0x130c: 0x054b, 0x130d: 0x054f, 0x130e: 0x0553, 0x130f: 0x0557, 0x1310: 0x055b, 0x1311: 0x055f,
- 0x1312: 0x0563, 0x1313: 0x0567, 0x1314: 0x056f, 0x1315: 0x0577, 0x1316: 0x057f, 0x1317: 0x0583,
- 0x1318: 0x0587, 0x1319: 0x058b, 0x131a: 0x058f, 0x131b: 0x0593, 0x131c: 0x0597, 0x131d: 0x05a7,
- 0x131e: 0x4a7b, 0x131f: 0x4a81, 0x1320: 0x03c3, 0x1321: 0x0313, 0x1322: 0x0317, 0x1323: 0x4a3e,
- 0x1324: 0x031b, 0x1325: 0x4a44, 0x1326: 0x4a4a, 0x1327: 0x031f, 0x1328: 0x0323, 0x1329: 0x0327,
- 0x132a: 0x4a50, 0x132b: 0x4a56, 0x132c: 0x4a5c, 0x132d: 0x4a62, 0x132e: 0x4a68, 0x132f: 0x4a6e,
- 0x1330: 0x0367, 0x1331: 0x032b, 0x1332: 0x032f, 0x1333: 0x0333, 0x1334: 0x037b, 0x1335: 0x0337,
- 0x1336: 0x033b, 0x1337: 0x033f, 0x1338: 0x0343, 0x1339: 0x0347, 0x133a: 0x034b, 0x133b: 0x034f,
- 0x133c: 0x0353, 0x133d: 0x0357, 0x133e: 0x035b,
- // Block 0x4d, offset 0x1340
- 0x1342: 0x49c0, 0x1343: 0x49c6, 0x1344: 0x49cc, 0x1345: 0x49d2,
- 0x1346: 0x49d8, 0x1347: 0x49de, 0x134a: 0x49e4, 0x134b: 0x49ea,
- 0x134c: 0x49f0, 0x134d: 0x49f6, 0x134e: 0x49fc, 0x134f: 0x4a02,
- 0x1352: 0x4a08, 0x1353: 0x4a0e, 0x1354: 0x4a14, 0x1355: 0x4a1a, 0x1356: 0x4a20, 0x1357: 0x4a26,
- 0x135a: 0x4a2c, 0x135b: 0x4a32, 0x135c: 0x4a38,
- 0x1360: 0x00bf, 0x1361: 0x00c2, 0x1362: 0x00cb, 0x1363: 0x4267,
- 0x1364: 0x00c8, 0x1365: 0x00c5, 0x1366: 0x0447, 0x1368: 0x046b, 0x1369: 0x044b,
- 0x136a: 0x044f, 0x136b: 0x0453, 0x136c: 0x0457, 0x136d: 0x046f, 0x136e: 0x0473,
- // Block 0x4e, offset 0x1380
- 0x1380: 0x0063, 0x1381: 0x0065, 0x1382: 0x0067, 0x1383: 0x0069, 0x1384: 0x006b, 0x1385: 0x006d,
- 0x1386: 0x006f, 0x1387: 0x0071, 0x1388: 0x0073, 0x1389: 0x0075, 0x138a: 0x0083, 0x138b: 0x0085,
- 0x138c: 0x0087, 0x138d: 0x0089, 0x138e: 0x008b, 0x138f: 0x008d, 0x1390: 0x008f, 0x1391: 0x0091,
- 0x1392: 0x0093, 0x1393: 0x0095, 0x1394: 0x0097, 0x1395: 0x0099, 0x1396: 0x009b, 0x1397: 0x009d,
- 0x1398: 0x009f, 0x1399: 0x00a1, 0x139a: 0x00a3, 0x139b: 0x00a5, 0x139c: 0x00a7, 0x139d: 0x00a9,
- 0x139e: 0x00ab, 0x139f: 0x00ad, 0x13a0: 0x00af, 0x13a1: 0x00b1, 0x13a2: 0x00b3, 0x13a3: 0x00b5,
- 0x13a4: 0x00dd, 0x13a5: 0x00f2, 0x13a8: 0x0173, 0x13a9: 0x0176,
- 0x13aa: 0x0179, 0x13ab: 0x017c, 0x13ac: 0x017f, 0x13ad: 0x0182, 0x13ae: 0x0185, 0x13af: 0x0188,
- 0x13b0: 0x018b, 0x13b1: 0x018e, 0x13b2: 0x0191, 0x13b3: 0x0194, 0x13b4: 0x0197, 0x13b5: 0x019a,
- 0x13b6: 0x019d, 0x13b7: 0x01a0, 0x13b8: 0x01a3, 0x13b9: 0x0188, 0x13ba: 0x01a6, 0x13bb: 0x01a9,
- 0x13bc: 0x01ac, 0x13bd: 0x01af, 0x13be: 0x01b2, 0x13bf: 0x01b5,
- // Block 0x4f, offset 0x13c0
- 0x13c0: 0x01fd, 0x13c1: 0x0200, 0x13c2: 0x0203, 0x13c3: 0x045b, 0x13c4: 0x01c7, 0x13c5: 0x01d0,
- 0x13c6: 0x01d6, 0x13c7: 0x01fa, 0x13c8: 0x01eb, 0x13c9: 0x01e8, 0x13ca: 0x0206, 0x13cb: 0x0209,
- 0x13ce: 0x0021, 0x13cf: 0x0023, 0x13d0: 0x0025, 0x13d1: 0x0027,
- 0x13d2: 0x0029, 0x13d3: 0x002b, 0x13d4: 0x002d, 0x13d5: 0x002f, 0x13d6: 0x0031, 0x13d7: 0x0033,
- 0x13d8: 0x0021, 0x13d9: 0x0023, 0x13da: 0x0025, 0x13db: 0x0027, 0x13dc: 0x0029, 0x13dd: 0x002b,
- 0x13de: 0x002d, 0x13df: 0x002f, 0x13e0: 0x0031, 0x13e1: 0x0033, 0x13e2: 0x0021, 0x13e3: 0x0023,
- 0x13e4: 0x0025, 0x13e5: 0x0027, 0x13e6: 0x0029, 0x13e7: 0x002b, 0x13e8: 0x002d, 0x13e9: 0x002f,
- 0x13ea: 0x0031, 0x13eb: 0x0033, 0x13ec: 0x0021, 0x13ed: 0x0023, 0x13ee: 0x0025, 0x13ef: 0x0027,
- 0x13f0: 0x0029, 0x13f1: 0x002b, 0x13f2: 0x002d, 0x13f3: 0x002f, 0x13f4: 0x0031, 0x13f5: 0x0033,
- 0x13f6: 0x0021, 0x13f7: 0x0023, 0x13f8: 0x0025, 0x13f9: 0x0027, 0x13fa: 0x0029, 0x13fb: 0x002b,
- 0x13fc: 0x002d, 0x13fd: 0x002f, 0x13fe: 0x0031, 0x13ff: 0x0033,
- // Block 0x50, offset 0x1400
- 0x1400: 0x0239, 0x1401: 0x023c, 0x1402: 0x0248, 0x1403: 0x0251, 0x1405: 0x028a,
- 0x1406: 0x025a, 0x1407: 0x024b, 0x1408: 0x0269, 0x1409: 0x0290, 0x140a: 0x027b, 0x140b: 0x027e,
- 0x140c: 0x0281, 0x140d: 0x0284, 0x140e: 0x025d, 0x140f: 0x026f, 0x1410: 0x0275, 0x1411: 0x0263,
- 0x1412: 0x0278, 0x1413: 0x0257, 0x1414: 0x0260, 0x1415: 0x0242, 0x1416: 0x0245, 0x1417: 0x024e,
- 0x1418: 0x0254, 0x1419: 0x0266, 0x141a: 0x026c, 0x141b: 0x0272, 0x141c: 0x0293, 0x141d: 0x02e4,
- 0x141e: 0x02cc, 0x141f: 0x0296, 0x1421: 0x023c, 0x1422: 0x0248,
- 0x1424: 0x0287, 0x1427: 0x024b, 0x1429: 0x0290,
- 0x142a: 0x027b, 0x142b: 0x027e, 0x142c: 0x0281, 0x142d: 0x0284, 0x142e: 0x025d, 0x142f: 0x026f,
- 0x1430: 0x0275, 0x1431: 0x0263, 0x1432: 0x0278, 0x1434: 0x0260, 0x1435: 0x0242,
- 0x1436: 0x0245, 0x1437: 0x024e, 0x1439: 0x0266, 0x143b: 0x0272,
- // Block 0x51, offset 0x1440
- 0x1442: 0x0248,
- 0x1447: 0x024b, 0x1449: 0x0290, 0x144b: 0x027e,
- 0x144d: 0x0284, 0x144e: 0x025d, 0x144f: 0x026f, 0x1451: 0x0263,
- 0x1452: 0x0278, 0x1454: 0x0260, 0x1457: 0x024e,
- 0x1459: 0x0266, 0x145b: 0x0272, 0x145d: 0x02e4,
- 0x145f: 0x0296, 0x1461: 0x023c, 0x1462: 0x0248,
- 0x1464: 0x0287, 0x1467: 0x024b, 0x1468: 0x0269, 0x1469: 0x0290,
- 0x146a: 0x027b, 0x146c: 0x0281, 0x146d: 0x0284, 0x146e: 0x025d, 0x146f: 0x026f,
- 0x1470: 0x0275, 0x1471: 0x0263, 0x1472: 0x0278, 0x1474: 0x0260, 0x1475: 0x0242,
- 0x1476: 0x0245, 0x1477: 0x024e, 0x1479: 0x0266, 0x147a: 0x026c, 0x147b: 0x0272,
- 0x147c: 0x0293, 0x147e: 0x02cc,
- // Block 0x52, offset 0x1480
- 0x1480: 0x0239, 0x1481: 0x023c, 0x1482: 0x0248, 0x1483: 0x0251, 0x1484: 0x0287, 0x1485: 0x028a,
- 0x1486: 0x025a, 0x1487: 0x024b, 0x1488: 0x0269, 0x1489: 0x0290, 0x148b: 0x027e,
- 0x148c: 0x0281, 0x148d: 0x0284, 0x148e: 0x025d, 0x148f: 0x026f, 0x1490: 0x0275, 0x1491: 0x0263,
- 0x1492: 0x0278, 0x1493: 0x0257, 0x1494: 0x0260, 0x1495: 0x0242, 0x1496: 0x0245, 0x1497: 0x024e,
- 0x1498: 0x0254, 0x1499: 0x0266, 0x149a: 0x026c, 0x149b: 0x0272,
- 0x14a1: 0x023c, 0x14a2: 0x0248, 0x14a3: 0x0251,
- 0x14a5: 0x028a, 0x14a6: 0x025a, 0x14a7: 0x024b, 0x14a8: 0x0269, 0x14a9: 0x0290,
- 0x14ab: 0x027e, 0x14ac: 0x0281, 0x14ad: 0x0284, 0x14ae: 0x025d, 0x14af: 0x026f,
- 0x14b0: 0x0275, 0x14b1: 0x0263, 0x14b2: 0x0278, 0x14b3: 0x0257, 0x14b4: 0x0260, 0x14b5: 0x0242,
- 0x14b6: 0x0245, 0x14b7: 0x024e, 0x14b8: 0x0254, 0x14b9: 0x0266, 0x14ba: 0x026c, 0x14bb: 0x0272,
- // Block 0x53, offset 0x14c0
- 0x14c0: 0x1879, 0x14c1: 0x1876, 0x14c2: 0x187c, 0x14c3: 0x18a0, 0x14c4: 0x18c4, 0x14c5: 0x18e8,
- 0x14c6: 0x190c, 0x14c7: 0x1915, 0x14c8: 0x191b, 0x14c9: 0x1921, 0x14ca: 0x1927,
- 0x14d0: 0x1a8f, 0x14d1: 0x1a93,
- 0x14d2: 0x1a97, 0x14d3: 0x1a9b, 0x14d4: 0x1a9f, 0x14d5: 0x1aa3, 0x14d6: 0x1aa7, 0x14d7: 0x1aab,
- 0x14d8: 0x1aaf, 0x14d9: 0x1ab3, 0x14da: 0x1ab7, 0x14db: 0x1abb, 0x14dc: 0x1abf, 0x14dd: 0x1ac3,
- 0x14de: 0x1ac7, 0x14df: 0x1acb, 0x14e0: 0x1acf, 0x14e1: 0x1ad3, 0x14e2: 0x1ad7, 0x14e3: 0x1adb,
- 0x14e4: 0x1adf, 0x14e5: 0x1ae3, 0x14e6: 0x1ae7, 0x14e7: 0x1aeb, 0x14e8: 0x1aef, 0x14e9: 0x1af3,
- 0x14ea: 0x2721, 0x14eb: 0x0047, 0x14ec: 0x0065, 0x14ed: 0x193c, 0x14ee: 0x19b4,
- 0x14f0: 0x0043, 0x14f1: 0x0045, 0x14f2: 0x0047, 0x14f3: 0x0049, 0x14f4: 0x004b, 0x14f5: 0x004d,
- 0x14f6: 0x004f, 0x14f7: 0x0051, 0x14f8: 0x0053, 0x14f9: 0x0055, 0x14fa: 0x0057, 0x14fb: 0x0059,
- 0x14fc: 0x005b, 0x14fd: 0x005d, 0x14fe: 0x005f, 0x14ff: 0x0061,
- // Block 0x54, offset 0x1500
- 0x1500: 0x26b0, 0x1501: 0x26c5, 0x1502: 0x0503,
- 0x1510: 0x0c0f, 0x1511: 0x0a47,
- 0x1512: 0x08d3, 0x1513: 0x45c7, 0x1514: 0x071b, 0x1515: 0x09ef, 0x1516: 0x132f, 0x1517: 0x09ff,
- 0x1518: 0x0727, 0x1519: 0x0cd7, 0x151a: 0x0eaf, 0x151b: 0x0caf, 0x151c: 0x0827, 0x151d: 0x0b6b,
- 0x151e: 0x07bf, 0x151f: 0x0cb7, 0x1520: 0x0813, 0x1521: 0x1117, 0x1522: 0x0f83, 0x1523: 0x138b,
- 0x1524: 0x09d3, 0x1525: 0x090b, 0x1526: 0x0e63, 0x1527: 0x0c1b, 0x1528: 0x0c47, 0x1529: 0x06bf,
- 0x152a: 0x06cb, 0x152b: 0x140b, 0x152c: 0x0adb, 0x152d: 0x06e7, 0x152e: 0x08ef, 0x152f: 0x0c3b,
- 0x1530: 0x13b3, 0x1531: 0x0c13, 0x1532: 0x106f, 0x1533: 0x10ab, 0x1534: 0x08f7, 0x1535: 0x0e43,
- 0x1536: 0x0d0b, 0x1537: 0x0d07, 0x1538: 0x0f97, 0x1539: 0x082b, 0x153a: 0x0957, 0x153b: 0x1443,
- // Block 0x55, offset 0x1540
- 0x1540: 0x06fb, 0x1541: 0x06f3, 0x1542: 0x0703, 0x1543: 0x1647, 0x1544: 0x0747, 0x1545: 0x0757,
- 0x1546: 0x075b, 0x1547: 0x0763, 0x1548: 0x076b, 0x1549: 0x076f, 0x154a: 0x077b, 0x154b: 0x0773,
- 0x154c: 0x05b3, 0x154d: 0x165b, 0x154e: 0x078f, 0x154f: 0x0793, 0x1550: 0x0797, 0x1551: 0x07b3,
- 0x1552: 0x164c, 0x1553: 0x05b7, 0x1554: 0x079f, 0x1555: 0x07bf, 0x1556: 0x1656, 0x1557: 0x07cf,
- 0x1558: 0x07d7, 0x1559: 0x0737, 0x155a: 0x07df, 0x155b: 0x07e3, 0x155c: 0x1831, 0x155d: 0x07ff,
- 0x155e: 0x0807, 0x155f: 0x05bf, 0x1560: 0x081f, 0x1561: 0x0823, 0x1562: 0x082b, 0x1563: 0x082f,
- 0x1564: 0x05c3, 0x1565: 0x0847, 0x1566: 0x084b, 0x1567: 0x0857, 0x1568: 0x0863, 0x1569: 0x0867,
- 0x156a: 0x086b, 0x156b: 0x0873, 0x156c: 0x0893, 0x156d: 0x0897, 0x156e: 0x089f, 0x156f: 0x08af,
- 0x1570: 0x08b7, 0x1571: 0x08bb, 0x1572: 0x08bb, 0x1573: 0x08bb, 0x1574: 0x166a, 0x1575: 0x0e93,
- 0x1576: 0x08cf, 0x1577: 0x08d7, 0x1578: 0x166f, 0x1579: 0x08e3, 0x157a: 0x08eb, 0x157b: 0x08f3,
- 0x157c: 0x091b, 0x157d: 0x0907, 0x157e: 0x0913, 0x157f: 0x0917,
- // Block 0x56, offset 0x1580
- 0x1580: 0x091f, 0x1581: 0x0927, 0x1582: 0x092b, 0x1583: 0x0933, 0x1584: 0x093b, 0x1585: 0x093f,
- 0x1586: 0x093f, 0x1587: 0x0947, 0x1588: 0x094f, 0x1589: 0x0953, 0x158a: 0x095f, 0x158b: 0x0983,
- 0x158c: 0x0967, 0x158d: 0x0987, 0x158e: 0x096b, 0x158f: 0x0973, 0x1590: 0x080b, 0x1591: 0x09cf,
- 0x1592: 0x0997, 0x1593: 0x099b, 0x1594: 0x099f, 0x1595: 0x0993, 0x1596: 0x09a7, 0x1597: 0x09a3,
- 0x1598: 0x09bb, 0x1599: 0x1674, 0x159a: 0x09d7, 0x159b: 0x09db, 0x159c: 0x09e3, 0x159d: 0x09ef,
- 0x159e: 0x09f7, 0x159f: 0x0a13, 0x15a0: 0x1679, 0x15a1: 0x167e, 0x15a2: 0x0a1f, 0x15a3: 0x0a23,
- 0x15a4: 0x0a27, 0x15a5: 0x0a1b, 0x15a6: 0x0a2f, 0x15a7: 0x05c7, 0x15a8: 0x05cb, 0x15a9: 0x0a37,
- 0x15aa: 0x0a3f, 0x15ab: 0x0a3f, 0x15ac: 0x1683, 0x15ad: 0x0a5b, 0x15ae: 0x0a5f, 0x15af: 0x0a63,
- 0x15b0: 0x0a6b, 0x15b1: 0x1688, 0x15b2: 0x0a73, 0x15b3: 0x0a77, 0x15b4: 0x0b4f, 0x15b5: 0x0a7f,
- 0x15b6: 0x05cf, 0x15b7: 0x0a8b, 0x15b8: 0x0a9b, 0x15b9: 0x0aa7, 0x15ba: 0x0aa3, 0x15bb: 0x1692,
- 0x15bc: 0x0aaf, 0x15bd: 0x1697, 0x15be: 0x0abb, 0x15bf: 0x0ab7,
- // Block 0x57, offset 0x15c0
- 0x15c0: 0x0abf, 0x15c1: 0x0acf, 0x15c2: 0x0ad3, 0x15c3: 0x05d3, 0x15c4: 0x0ae3, 0x15c5: 0x0aeb,
- 0x15c6: 0x0aef, 0x15c7: 0x0af3, 0x15c8: 0x05d7, 0x15c9: 0x169c, 0x15ca: 0x05db, 0x15cb: 0x0b0f,
- 0x15cc: 0x0b13, 0x15cd: 0x0b17, 0x15ce: 0x0b1f, 0x15cf: 0x1863, 0x15d0: 0x0b37, 0x15d1: 0x16a6,
- 0x15d2: 0x16a6, 0x15d3: 0x11d7, 0x15d4: 0x0b47, 0x15d5: 0x0b47, 0x15d6: 0x05df, 0x15d7: 0x16c9,
- 0x15d8: 0x179b, 0x15d9: 0x0b57, 0x15da: 0x0b5f, 0x15db: 0x05e3, 0x15dc: 0x0b73, 0x15dd: 0x0b83,
- 0x15de: 0x0b87, 0x15df: 0x0b8f, 0x15e0: 0x0b9f, 0x15e1: 0x05eb, 0x15e2: 0x05e7, 0x15e3: 0x0ba3,
- 0x15e4: 0x16ab, 0x15e5: 0x0ba7, 0x15e6: 0x0bbb, 0x15e7: 0x0bbf, 0x15e8: 0x0bc3, 0x15e9: 0x0bbf,
- 0x15ea: 0x0bcf, 0x15eb: 0x0bd3, 0x15ec: 0x0be3, 0x15ed: 0x0bdb, 0x15ee: 0x0bdf, 0x15ef: 0x0be7,
- 0x15f0: 0x0beb, 0x15f1: 0x0bef, 0x15f2: 0x0bfb, 0x15f3: 0x0bff, 0x15f4: 0x0c17, 0x15f5: 0x0c1f,
- 0x15f6: 0x0c2f, 0x15f7: 0x0c43, 0x15f8: 0x16ba, 0x15f9: 0x0c3f, 0x15fa: 0x0c33, 0x15fb: 0x0c4b,
- 0x15fc: 0x0c53, 0x15fd: 0x0c67, 0x15fe: 0x16bf, 0x15ff: 0x0c6f,
- // Block 0x58, offset 0x1600
- 0x1600: 0x0c63, 0x1601: 0x0c5b, 0x1602: 0x05ef, 0x1603: 0x0c77, 0x1604: 0x0c7f, 0x1605: 0x0c87,
- 0x1606: 0x0c7b, 0x1607: 0x05f3, 0x1608: 0x0c97, 0x1609: 0x0c9f, 0x160a: 0x16c4, 0x160b: 0x0ccb,
- 0x160c: 0x0cff, 0x160d: 0x0cdb, 0x160e: 0x05ff, 0x160f: 0x0ce7, 0x1610: 0x05fb, 0x1611: 0x05f7,
- 0x1612: 0x07c3, 0x1613: 0x07c7, 0x1614: 0x0d03, 0x1615: 0x0ceb, 0x1616: 0x11ab, 0x1617: 0x0663,
- 0x1618: 0x0d0f, 0x1619: 0x0d13, 0x161a: 0x0d17, 0x161b: 0x0d2b, 0x161c: 0x0d23, 0x161d: 0x16dd,
- 0x161e: 0x0603, 0x161f: 0x0d3f, 0x1620: 0x0d33, 0x1621: 0x0d4f, 0x1622: 0x0d57, 0x1623: 0x16e7,
- 0x1624: 0x0d5b, 0x1625: 0x0d47, 0x1626: 0x0d63, 0x1627: 0x0607, 0x1628: 0x0d67, 0x1629: 0x0d6b,
- 0x162a: 0x0d6f, 0x162b: 0x0d7b, 0x162c: 0x16ec, 0x162d: 0x0d83, 0x162e: 0x060b, 0x162f: 0x0d8f,
- 0x1630: 0x16f1, 0x1631: 0x0d93, 0x1632: 0x060f, 0x1633: 0x0d9f, 0x1634: 0x0dab, 0x1635: 0x0db7,
- 0x1636: 0x0dbb, 0x1637: 0x16f6, 0x1638: 0x168d, 0x1639: 0x16fb, 0x163a: 0x0ddb, 0x163b: 0x1700,
- 0x163c: 0x0de7, 0x163d: 0x0def, 0x163e: 0x0ddf, 0x163f: 0x0dfb,
- // Block 0x59, offset 0x1640
- 0x1640: 0x0e0b, 0x1641: 0x0e1b, 0x1642: 0x0e0f, 0x1643: 0x0e13, 0x1644: 0x0e1f, 0x1645: 0x0e23,
- 0x1646: 0x1705, 0x1647: 0x0e07, 0x1648: 0x0e3b, 0x1649: 0x0e3f, 0x164a: 0x0613, 0x164b: 0x0e53,
- 0x164c: 0x0e4f, 0x164d: 0x170a, 0x164e: 0x0e33, 0x164f: 0x0e6f, 0x1650: 0x170f, 0x1651: 0x1714,
- 0x1652: 0x0e73, 0x1653: 0x0e87, 0x1654: 0x0e83, 0x1655: 0x0e7f, 0x1656: 0x0617, 0x1657: 0x0e8b,
- 0x1658: 0x0e9b, 0x1659: 0x0e97, 0x165a: 0x0ea3, 0x165b: 0x1651, 0x165c: 0x0eb3, 0x165d: 0x1719,
- 0x165e: 0x0ebf, 0x165f: 0x1723, 0x1660: 0x0ed3, 0x1661: 0x0edf, 0x1662: 0x0ef3, 0x1663: 0x1728,
- 0x1664: 0x0f07, 0x1665: 0x0f0b, 0x1666: 0x172d, 0x1667: 0x1732, 0x1668: 0x0f27, 0x1669: 0x0f37,
- 0x166a: 0x061b, 0x166b: 0x0f3b, 0x166c: 0x061f, 0x166d: 0x061f, 0x166e: 0x0f53, 0x166f: 0x0f57,
- 0x1670: 0x0f5f, 0x1671: 0x0f63, 0x1672: 0x0f6f, 0x1673: 0x0623, 0x1674: 0x0f87, 0x1675: 0x1737,
- 0x1676: 0x0fa3, 0x1677: 0x173c, 0x1678: 0x0faf, 0x1679: 0x16a1, 0x167a: 0x0fbf, 0x167b: 0x1741,
- 0x167c: 0x1746, 0x167d: 0x174b, 0x167e: 0x0627, 0x167f: 0x062b,
- // Block 0x5a, offset 0x1680
- 0x1680: 0x0ff7, 0x1681: 0x1755, 0x1682: 0x1750, 0x1683: 0x175a, 0x1684: 0x175f, 0x1685: 0x0fff,
- 0x1686: 0x1003, 0x1687: 0x1003, 0x1688: 0x100b, 0x1689: 0x0633, 0x168a: 0x100f, 0x168b: 0x0637,
- 0x168c: 0x063b, 0x168d: 0x1769, 0x168e: 0x1023, 0x168f: 0x102b, 0x1690: 0x1037, 0x1691: 0x063f,
- 0x1692: 0x176e, 0x1693: 0x105b, 0x1694: 0x1773, 0x1695: 0x1778, 0x1696: 0x107b, 0x1697: 0x1093,
- 0x1698: 0x0643, 0x1699: 0x109b, 0x169a: 0x109f, 0x169b: 0x10a3, 0x169c: 0x177d, 0x169d: 0x1782,
- 0x169e: 0x1782, 0x169f: 0x10bb, 0x16a0: 0x0647, 0x16a1: 0x1787, 0x16a2: 0x10cf, 0x16a3: 0x10d3,
- 0x16a4: 0x064b, 0x16a5: 0x178c, 0x16a6: 0x10ef, 0x16a7: 0x064f, 0x16a8: 0x10ff, 0x16a9: 0x10f7,
- 0x16aa: 0x1107, 0x16ab: 0x1796, 0x16ac: 0x111f, 0x16ad: 0x0653, 0x16ae: 0x112b, 0x16af: 0x1133,
- 0x16b0: 0x1143, 0x16b1: 0x0657, 0x16b2: 0x17a0, 0x16b3: 0x17a5, 0x16b4: 0x065b, 0x16b5: 0x17aa,
- 0x16b6: 0x115b, 0x16b7: 0x17af, 0x16b8: 0x1167, 0x16b9: 0x1173, 0x16ba: 0x117b, 0x16bb: 0x17b4,
- 0x16bc: 0x17b9, 0x16bd: 0x118f, 0x16be: 0x17be, 0x16bf: 0x1197,
- // Block 0x5b, offset 0x16c0
- 0x16c0: 0x16ce, 0x16c1: 0x065f, 0x16c2: 0x11af, 0x16c3: 0x11b3, 0x16c4: 0x0667, 0x16c5: 0x11b7,
- 0x16c6: 0x0a33, 0x16c7: 0x17c3, 0x16c8: 0x17c8, 0x16c9: 0x16d3, 0x16ca: 0x16d8, 0x16cb: 0x11d7,
- 0x16cc: 0x11db, 0x16cd: 0x13f3, 0x16ce: 0x066b, 0x16cf: 0x1207, 0x16d0: 0x1203, 0x16d1: 0x120b,
- 0x16d2: 0x083f, 0x16d3: 0x120f, 0x16d4: 0x1213, 0x16d5: 0x1217, 0x16d6: 0x121f, 0x16d7: 0x17cd,
- 0x16d8: 0x121b, 0x16d9: 0x1223, 0x16da: 0x1237, 0x16db: 0x123b, 0x16dc: 0x1227, 0x16dd: 0x123f,
- 0x16de: 0x1253, 0x16df: 0x1267, 0x16e0: 0x1233, 0x16e1: 0x1247, 0x16e2: 0x124b, 0x16e3: 0x124f,
- 0x16e4: 0x17d2, 0x16e5: 0x17dc, 0x16e6: 0x17d7, 0x16e7: 0x066f, 0x16e8: 0x126f, 0x16e9: 0x1273,
- 0x16ea: 0x127b, 0x16eb: 0x17f0, 0x16ec: 0x127f, 0x16ed: 0x17e1, 0x16ee: 0x0673, 0x16ef: 0x0677,
- 0x16f0: 0x17e6, 0x16f1: 0x17eb, 0x16f2: 0x067b, 0x16f3: 0x129f, 0x16f4: 0x12a3, 0x16f5: 0x12a7,
- 0x16f6: 0x12ab, 0x16f7: 0x12b7, 0x16f8: 0x12b3, 0x16f9: 0x12bf, 0x16fa: 0x12bb, 0x16fb: 0x12cb,
- 0x16fc: 0x12c3, 0x16fd: 0x12c7, 0x16fe: 0x12cf, 0x16ff: 0x067f,
- // Block 0x5c, offset 0x1700
- 0x1700: 0x12d7, 0x1701: 0x12db, 0x1702: 0x0683, 0x1703: 0x12eb, 0x1704: 0x12ef, 0x1705: 0x17f5,
- 0x1706: 0x12fb, 0x1707: 0x12ff, 0x1708: 0x0687, 0x1709: 0x130b, 0x170a: 0x05bb, 0x170b: 0x17fa,
- 0x170c: 0x17ff, 0x170d: 0x068b, 0x170e: 0x068f, 0x170f: 0x1337, 0x1710: 0x134f, 0x1711: 0x136b,
- 0x1712: 0x137b, 0x1713: 0x1804, 0x1714: 0x138f, 0x1715: 0x1393, 0x1716: 0x13ab, 0x1717: 0x13b7,
- 0x1718: 0x180e, 0x1719: 0x1660, 0x171a: 0x13c3, 0x171b: 0x13bf, 0x171c: 0x13cb, 0x171d: 0x1665,
- 0x171e: 0x13d7, 0x171f: 0x13e3, 0x1720: 0x1813, 0x1721: 0x1818, 0x1722: 0x1423, 0x1723: 0x142f,
- 0x1724: 0x1437, 0x1725: 0x181d, 0x1726: 0x143b, 0x1727: 0x1467, 0x1728: 0x1473, 0x1729: 0x1477,
- 0x172a: 0x146f, 0x172b: 0x1483, 0x172c: 0x1487, 0x172d: 0x1822, 0x172e: 0x1493, 0x172f: 0x0693,
- 0x1730: 0x149b, 0x1731: 0x1827, 0x1732: 0x0697, 0x1733: 0x14d3, 0x1734: 0x0ac3, 0x1735: 0x14eb,
- 0x1736: 0x182c, 0x1737: 0x1836, 0x1738: 0x069b, 0x1739: 0x069f, 0x173a: 0x1513, 0x173b: 0x183b,
- 0x173c: 0x06a3, 0x173d: 0x1840, 0x173e: 0x152b, 0x173f: 0x152b,
- // Block 0x5d, offset 0x1740
- 0x1740: 0x1533, 0x1741: 0x1845, 0x1742: 0x154b, 0x1743: 0x06a7, 0x1744: 0x155b, 0x1745: 0x1567,
- 0x1746: 0x156f, 0x1747: 0x1577, 0x1748: 0x06ab, 0x1749: 0x184a, 0x174a: 0x158b, 0x174b: 0x15a7,
- 0x174c: 0x15b3, 0x174d: 0x06af, 0x174e: 0x06b3, 0x174f: 0x15b7, 0x1750: 0x184f, 0x1751: 0x06b7,
- 0x1752: 0x1854, 0x1753: 0x1859, 0x1754: 0x185e, 0x1755: 0x15db, 0x1756: 0x06bb, 0x1757: 0x15ef,
- 0x1758: 0x15f7, 0x1759: 0x15fb, 0x175a: 0x1603, 0x175b: 0x160b, 0x175c: 0x1613, 0x175d: 0x1868,
-}
-
-// nfkcIndex: 22 blocks, 1408 entries, 2816 bytes
-// Block 0 is the zero block.
-var nfkcIndex = [1408]uint16{
- // Block 0x0, offset 0x0
- // Block 0x1, offset 0x40
- // Block 0x2, offset 0x80
- // Block 0x3, offset 0xc0
- 0xc2: 0x5c, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x5d, 0xc7: 0x04,
- 0xc8: 0x05, 0xca: 0x5e, 0xcb: 0x5f, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x09,
- 0xd0: 0x0a, 0xd1: 0x60, 0xd2: 0x61, 0xd3: 0x0b, 0xd6: 0x0c, 0xd7: 0x62,
- 0xd8: 0x63, 0xd9: 0x0d, 0xdb: 0x64, 0xdc: 0x65, 0xdd: 0x66, 0xdf: 0x67,
- 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05,
- 0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a,
- 0xf0: 0x13,
- // Block 0x4, offset 0x100
- 0x120: 0x68, 0x121: 0x69, 0x123: 0x0e, 0x124: 0x6a, 0x125: 0x6b, 0x126: 0x6c, 0x127: 0x6d,
- 0x128: 0x6e, 0x129: 0x6f, 0x12a: 0x70, 0x12b: 0x71, 0x12c: 0x6c, 0x12d: 0x72, 0x12e: 0x73, 0x12f: 0x74,
- 0x131: 0x75, 0x132: 0x76, 0x133: 0x77, 0x134: 0x78, 0x135: 0x79, 0x137: 0x7a,
- 0x138: 0x7b, 0x139: 0x7c, 0x13a: 0x7d, 0x13b: 0x7e, 0x13c: 0x7f, 0x13d: 0x80, 0x13e: 0x81, 0x13f: 0x82,
- // Block 0x5, offset 0x140
- 0x140: 0x83, 0x142: 0x84, 0x143: 0x85, 0x144: 0x86, 0x145: 0x87, 0x146: 0x88, 0x147: 0x89,
- 0x14d: 0x8a,
- 0x15c: 0x8b, 0x15f: 0x8c,
- 0x162: 0x8d, 0x164: 0x8e,
- 0x168: 0x8f, 0x169: 0x90, 0x16a: 0x91, 0x16c: 0x0f, 0x16d: 0x92, 0x16e: 0x93, 0x16f: 0x94,
- 0x170: 0x95, 0x173: 0x96, 0x174: 0x97, 0x175: 0x10, 0x176: 0x11, 0x177: 0x12,
- 0x178: 0x13, 0x179: 0x14, 0x17a: 0x15, 0x17b: 0x16, 0x17c: 0x17, 0x17d: 0x18, 0x17e: 0x19, 0x17f: 0x1a,
- // Block 0x6, offset 0x180
- 0x180: 0x98, 0x181: 0x99, 0x182: 0x9a, 0x183: 0x9b, 0x184: 0x1b, 0x185: 0x1c, 0x186: 0x9c, 0x187: 0x9d,
- 0x188: 0x9e, 0x189: 0x1d, 0x18a: 0x1e, 0x18b: 0x9f, 0x18c: 0xa0,
- 0x191: 0x1f, 0x192: 0x20, 0x193: 0xa1,
- 0x1a8: 0xa2, 0x1a9: 0xa3, 0x1ab: 0xa4,
- 0x1b1: 0xa5, 0x1b3: 0xa6, 0x1b5: 0xa7, 0x1b7: 0xa8,
- 0x1ba: 0xa9, 0x1bb: 0xaa, 0x1bc: 0x21, 0x1bd: 0x22, 0x1be: 0x23, 0x1bf: 0xab,
- // Block 0x7, offset 0x1c0
- 0x1c0: 0xac, 0x1c1: 0x24, 0x1c2: 0x25, 0x1c3: 0x26, 0x1c4: 0xad, 0x1c5: 0x27, 0x1c6: 0x28,
- 0x1c8: 0x29, 0x1c9: 0x2a, 0x1ca: 0x2b, 0x1cb: 0x2c, 0x1cc: 0x2d, 0x1cd: 0x2e, 0x1ce: 0x2f, 0x1cf: 0x30,
- // Block 0x8, offset 0x200
- 0x219: 0xae, 0x21a: 0xaf, 0x21b: 0xb0, 0x21d: 0xb1, 0x21f: 0xb2,
- 0x220: 0xb3, 0x223: 0xb4, 0x224: 0xb5, 0x225: 0xb6, 0x226: 0xb7, 0x227: 0xb8,
- 0x22a: 0xb9, 0x22b: 0xba, 0x22d: 0xbb, 0x22f: 0xbc,
- 0x230: 0xbd, 0x231: 0xbe, 0x232: 0xbf, 0x233: 0xc0, 0x234: 0xc1, 0x235: 0xc2, 0x236: 0xc3, 0x237: 0xbd,
- 0x238: 0xbe, 0x239: 0xbf, 0x23a: 0xc0, 0x23b: 0xc1, 0x23c: 0xc2, 0x23d: 0xc3, 0x23e: 0xbd, 0x23f: 0xbe,
- // Block 0x9, offset 0x240
- 0x240: 0xbf, 0x241: 0xc0, 0x242: 0xc1, 0x243: 0xc2, 0x244: 0xc3, 0x245: 0xbd, 0x246: 0xbe, 0x247: 0xbf,
- 0x248: 0xc0, 0x249: 0xc1, 0x24a: 0xc2, 0x24b: 0xc3, 0x24c: 0xbd, 0x24d: 0xbe, 0x24e: 0xbf, 0x24f: 0xc0,
- 0x250: 0xc1, 0x251: 0xc2, 0x252: 0xc3, 0x253: 0xbd, 0x254: 0xbe, 0x255: 0xbf, 0x256: 0xc0, 0x257: 0xc1,
- 0x258: 0xc2, 0x259: 0xc3, 0x25a: 0xbd, 0x25b: 0xbe, 0x25c: 0xbf, 0x25d: 0xc0, 0x25e: 0xc1, 0x25f: 0xc2,
- 0x260: 0xc3, 0x261: 0xbd, 0x262: 0xbe, 0x263: 0xbf, 0x264: 0xc0, 0x265: 0xc1, 0x266: 0xc2, 0x267: 0xc3,
- 0x268: 0xbd, 0x269: 0xbe, 0x26a: 0xbf, 0x26b: 0xc0, 0x26c: 0xc1, 0x26d: 0xc2, 0x26e: 0xc3, 0x26f: 0xbd,
- 0x270: 0xbe, 0x271: 0xbf, 0x272: 0xc0, 0x273: 0xc1, 0x274: 0xc2, 0x275: 0xc3, 0x276: 0xbd, 0x277: 0xbe,
- 0x278: 0xbf, 0x279: 0xc0, 0x27a: 0xc1, 0x27b: 0xc2, 0x27c: 0xc3, 0x27d: 0xbd, 0x27e: 0xbe, 0x27f: 0xbf,
- // Block 0xa, offset 0x280
- 0x280: 0xc0, 0x281: 0xc1, 0x282: 0xc2, 0x283: 0xc3, 0x284: 0xbd, 0x285: 0xbe, 0x286: 0xbf, 0x287: 0xc0,
- 0x288: 0xc1, 0x289: 0xc2, 0x28a: 0xc3, 0x28b: 0xbd, 0x28c: 0xbe, 0x28d: 0xbf, 0x28e: 0xc0, 0x28f: 0xc1,
- 0x290: 0xc2, 0x291: 0xc3, 0x292: 0xbd, 0x293: 0xbe, 0x294: 0xbf, 0x295: 0xc0, 0x296: 0xc1, 0x297: 0xc2,
- 0x298: 0xc3, 0x299: 0xbd, 0x29a: 0xbe, 0x29b: 0xbf, 0x29c: 0xc0, 0x29d: 0xc1, 0x29e: 0xc2, 0x29f: 0xc3,
- 0x2a0: 0xbd, 0x2a1: 0xbe, 0x2a2: 0xbf, 0x2a3: 0xc0, 0x2a4: 0xc1, 0x2a5: 0xc2, 0x2a6: 0xc3, 0x2a7: 0xbd,
- 0x2a8: 0xbe, 0x2a9: 0xbf, 0x2aa: 0xc0, 0x2ab: 0xc1, 0x2ac: 0xc2, 0x2ad: 0xc3, 0x2ae: 0xbd, 0x2af: 0xbe,
- 0x2b0: 0xbf, 0x2b1: 0xc0, 0x2b2: 0xc1, 0x2b3: 0xc2, 0x2b4: 0xc3, 0x2b5: 0xbd, 0x2b6: 0xbe, 0x2b7: 0xbf,
- 0x2b8: 0xc0, 0x2b9: 0xc1, 0x2ba: 0xc2, 0x2bb: 0xc3, 0x2bc: 0xbd, 0x2bd: 0xbe, 0x2be: 0xbf, 0x2bf: 0xc0,
- // Block 0xb, offset 0x2c0
- 0x2c0: 0xc1, 0x2c1: 0xc2, 0x2c2: 0xc3, 0x2c3: 0xbd, 0x2c4: 0xbe, 0x2c5: 0xbf, 0x2c6: 0xc0, 0x2c7: 0xc1,
- 0x2c8: 0xc2, 0x2c9: 0xc3, 0x2ca: 0xbd, 0x2cb: 0xbe, 0x2cc: 0xbf, 0x2cd: 0xc0, 0x2ce: 0xc1, 0x2cf: 0xc2,
- 0x2d0: 0xc3, 0x2d1: 0xbd, 0x2d2: 0xbe, 0x2d3: 0xbf, 0x2d4: 0xc0, 0x2d5: 0xc1, 0x2d6: 0xc2, 0x2d7: 0xc3,
- 0x2d8: 0xbd, 0x2d9: 0xbe, 0x2da: 0xbf, 0x2db: 0xc0, 0x2dc: 0xc1, 0x2dd: 0xc2, 0x2de: 0xc4,
- // Block 0xc, offset 0x300
- 0x324: 0x31, 0x325: 0x32, 0x326: 0x33, 0x327: 0x34,
- 0x328: 0x35, 0x329: 0x36, 0x32a: 0x37, 0x32b: 0x38, 0x32c: 0x39, 0x32d: 0x3a, 0x32e: 0x3b, 0x32f: 0x3c,
- 0x330: 0x3d, 0x331: 0x3e, 0x332: 0x3f, 0x333: 0x40, 0x334: 0x41, 0x335: 0x42, 0x336: 0x43, 0x337: 0x44,
- 0x338: 0x45, 0x339: 0x46, 0x33a: 0x47, 0x33b: 0x48, 0x33c: 0xc5, 0x33d: 0x49, 0x33e: 0x4a, 0x33f: 0x4b,
- // Block 0xd, offset 0x340
- 0x347: 0xc6,
- 0x34b: 0xc7, 0x34d: 0xc8,
- 0x368: 0xc9, 0x36b: 0xca,
- 0x374: 0xcb,
- 0x37d: 0xcc,
- // Block 0xe, offset 0x380
- 0x381: 0xcd, 0x382: 0xce, 0x384: 0xcf, 0x385: 0xb7, 0x387: 0xd0,
- 0x388: 0xd1, 0x38b: 0xd2, 0x38c: 0xd3, 0x38d: 0xd4,
- 0x391: 0xd5, 0x392: 0xd6, 0x393: 0xd7, 0x396: 0xd8, 0x397: 0xd9,
- 0x398: 0xda, 0x39a: 0xdb, 0x39c: 0xdc,
- 0x3a0: 0xdd, 0x3a7: 0xde,
- 0x3a8: 0xdf, 0x3a9: 0xe0, 0x3aa: 0xe1,
- 0x3b0: 0xda, 0x3b5: 0xe2, 0x3b6: 0xe3,
- // Block 0xf, offset 0x3c0
- 0x3eb: 0xe4, 0x3ec: 0xe5,
- // Block 0x10, offset 0x400
- 0x432: 0xe6,
- // Block 0x11, offset 0x440
- 0x445: 0xe7, 0x446: 0xe8, 0x447: 0xe9,
- 0x449: 0xea,
- 0x450: 0xeb, 0x451: 0xec, 0x452: 0xed, 0x453: 0xee, 0x454: 0xef, 0x455: 0xf0, 0x456: 0xf1, 0x457: 0xf2,
- 0x458: 0xf3, 0x459: 0xf4, 0x45a: 0x4c, 0x45b: 0xf5, 0x45c: 0xf6, 0x45d: 0xf7, 0x45e: 0xf8, 0x45f: 0x4d,
- // Block 0x12, offset 0x480
- 0x480: 0xf9, 0x484: 0xe5,
- 0x48b: 0xfa,
- 0x4a3: 0xfb, 0x4a5: 0xfc,
- 0x4b8: 0x4e, 0x4b9: 0x4f, 0x4ba: 0x50,
- // Block 0x13, offset 0x4c0
- 0x4c4: 0x51, 0x4c5: 0xfd, 0x4c6: 0xfe,
- 0x4c8: 0x52, 0x4c9: 0xff,
- // Block 0x14, offset 0x500
- 0x520: 0x53, 0x521: 0x54, 0x522: 0x55, 0x523: 0x56, 0x524: 0x57, 0x525: 0x58, 0x526: 0x59, 0x527: 0x5a,
- 0x528: 0x5b,
- // Block 0x15, offset 0x540
- 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d,
- 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,
- 0x56f: 0x12,
-}
-
-// nfkcSparseOffset: 164 entries, 328 bytes
-var nfkcSparseOffset = []uint16{0x0, 0xe, 0x12, 0x1b, 0x25, 0x35, 0x37, 0x3c, 0x47, 0x56, 0x63, 0x6b, 0x70, 0x75, 0x77, 0x7f, 0x86, 0x89, 0x91, 0x95, 0x99, 0x9b, 0x9d, 0xa6, 0xaa, 0xb1, 0xb6, 0xb9, 0xc3, 0xc6, 0xcd, 0xd5, 0xd9, 0xdb, 0xdf, 0xe3, 0xe9, 0xfa, 0x106, 0x108, 0x10e, 0x110, 0x112, 0x114, 0x116, 0x118, 0x11a, 0x11c, 0x11f, 0x122, 0x124, 0x127, 0x12a, 0x12e, 0x133, 0x13c, 0x13e, 0x141, 0x143, 0x14e, 0x159, 0x167, 0x175, 0x185, 0x193, 0x19a, 0x1a0, 0x1af, 0x1b3, 0x1b5, 0x1b9, 0x1bb, 0x1be, 0x1c0, 0x1c3, 0x1c5, 0x1c8, 0x1ca, 0x1cc, 0x1ce, 0x1da, 0x1e4, 0x1ee, 0x1f1, 0x1f5, 0x1f7, 0x1f9, 0x1fb, 0x1fd, 0x200, 0x202, 0x204, 0x206, 0x208, 0x20e, 0x211, 0x215, 0x217, 0x21e, 0x224, 0x22a, 0x232, 0x238, 0x23e, 0x244, 0x248, 0x24a, 0x24c, 0x24e, 0x250, 0x256, 0x259, 0x25b, 0x261, 0x264, 0x26c, 0x273, 0x276, 0x279, 0x27b, 0x27e, 0x286, 0x28a, 0x291, 0x294, 0x29a, 0x29c, 0x29e, 0x2a1, 0x2a3, 0x2a6, 0x2a8, 0x2aa, 0x2ac, 0x2ae, 0x2b1, 0x2b3, 0x2b5, 0x2b7, 0x2b9, 0x2c6, 0x2d0, 0x2d2, 0x2d4, 0x2d8, 0x2dd, 0x2e9, 0x2ee, 0x2f7, 0x2fd, 0x302, 0x306, 0x30b, 0x30f, 0x31f, 0x32d, 0x33b, 0x349, 0x34f, 0x351, 0x353, 0x356, 0x361, 0x363}
-
-// nfkcSparseValues: 877 entries, 3508 bytes
-var nfkcSparseValues = [877]valueRange{
- // Block 0x0, offset 0x0
- {value: 0x0002, lo: 0x0d},
- {value: 0x0001, lo: 0xa0, hi: 0xa0},
- {value: 0x427b, lo: 0xa8, hi: 0xa8},
- {value: 0x0083, lo: 0xaa, hi: 0xaa},
- {value: 0x4267, lo: 0xaf, hi: 0xaf},
- {value: 0x0025, lo: 0xb2, hi: 0xb3},
- {value: 0x425d, lo: 0xb4, hi: 0xb4},
- {value: 0x01dc, lo: 0xb5, hi: 0xb5},
- {value: 0x4294, lo: 0xb8, hi: 0xb8},
- {value: 0x0023, lo: 0xb9, hi: 0xb9},
- {value: 0x009f, lo: 0xba, hi: 0xba},
- {value: 0x221f, lo: 0xbc, hi: 0xbc},
- {value: 0x2213, lo: 0xbd, hi: 0xbd},
- {value: 0x22b5, lo: 0xbe, hi: 0xbe},
- // Block 0x1, offset 0xe
- {value: 0x0091, lo: 0x03},
- {value: 0x46e5, lo: 0xa0, hi: 0xa1},
- {value: 0x4717, lo: 0xaf, hi: 0xb0},
- {value: 0xa000, lo: 0xb7, hi: 0xb7},
- // Block 0x2, offset 0x12
- {value: 0x0003, lo: 0x08},
- {value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0x0091, lo: 0xb0, hi: 0xb0},
- {value: 0x0119, lo: 0xb1, hi: 0xb1},
- {value: 0x0095, lo: 0xb2, hi: 0xb2},
- {value: 0x00a5, lo: 0xb3, hi: 0xb3},
- {value: 0x0143, lo: 0xb4, hi: 0xb6},
- {value: 0x00af, lo: 0xb7, hi: 0xb7},
- {value: 0x00b3, lo: 0xb8, hi: 0xb8},
- // Block 0x3, offset 0x1b
- {value: 0x000a, lo: 0x09},
- {value: 0x4271, lo: 0x98, hi: 0x98},
- {value: 0x4276, lo: 0x99, hi: 0x9a},
- {value: 0x4299, lo: 0x9b, hi: 0x9b},
- {value: 0x4262, lo: 0x9c, hi: 0x9c},
- {value: 0x4285, lo: 0x9d, hi: 0x9d},
- {value: 0x0113, lo: 0xa0, hi: 0xa0},
- {value: 0x0099, lo: 0xa1, hi: 0xa1},
- {value: 0x00a7, lo: 0xa2, hi: 0xa3},
- {value: 0x0167, lo: 0xa4, hi: 0xa4},
- // Block 0x4, offset 0x25
- {value: 0x0000, lo: 0x0f},
- {value: 0xa000, lo: 0x83, hi: 0x83},
- {value: 0xa000, lo: 0x87, hi: 0x87},
- {value: 0xa000, lo: 0x8b, hi: 0x8b},
- {value: 0xa000, lo: 0x8d, hi: 0x8d},
- {value: 0x37a8, lo: 0x90, hi: 0x90},
- {value: 0x37b4, lo: 0x91, hi: 0x91},
- {value: 0x37a2, lo: 0x93, hi: 0x93},
- {value: 0xa000, lo: 0x96, hi: 0x96},
- {value: 0x381a, lo: 0x97, hi: 0x97},
- {value: 0x37e4, lo: 0x9c, hi: 0x9c},
- {value: 0x37cc, lo: 0x9d, hi: 0x9d},
- {value: 0x37f6, lo: 0x9e, hi: 0x9e},
- {value: 0xa000, lo: 0xb4, hi: 0xb5},
- {value: 0x3820, lo: 0xb6, hi: 0xb6},
- {value: 0x3826, lo: 0xb7, hi: 0xb7},
- // Block 0x5, offset 0x35
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0x83, hi: 0x87},
- // Block 0x6, offset 0x37
- {value: 0x0001, lo: 0x04},
- {value: 0x8113, lo: 0x81, hi: 0x82},
- {value: 0x8132, lo: 0x84, hi: 0x84},
- {value: 0x812d, lo: 0x85, hi: 0x85},
- {value: 0x810d, lo: 0x87, hi: 0x87},
- // Block 0x7, offset 0x3c
- {value: 0x0000, lo: 0x0a},
- {value: 0x8132, lo: 0x90, hi: 0x97},
- {value: 0x8119, lo: 0x98, hi: 0x98},
- {value: 0x811a, lo: 0x99, hi: 0x99},
- {value: 0x811b, lo: 0x9a, hi: 0x9a},
- {value: 0x3844, lo: 0xa2, hi: 0xa2},
- {value: 0x384a, lo: 0xa3, hi: 0xa3},
- {value: 0x3856, lo: 0xa4, hi: 0xa4},
- {value: 0x3850, lo: 0xa5, hi: 0xa5},
- {value: 0x385c, lo: 0xa6, hi: 0xa6},
- {value: 0xa000, lo: 0xa7, hi: 0xa7},
- // Block 0x8, offset 0x47
- {value: 0x0000, lo: 0x0e},
- {value: 0x386e, lo: 0x80, hi: 0x80},
- {value: 0xa000, lo: 0x81, hi: 0x81},
- {value: 0x3862, lo: 0x82, hi: 0x82},
- {value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0x3868, lo: 0x93, hi: 0x93},
- {value: 0xa000, lo: 0x95, hi: 0x95},
- {value: 0x8132, lo: 0x96, hi: 0x9c},
- {value: 0x8132, lo: 0x9f, hi: 0xa2},
- {value: 0x812d, lo: 0xa3, hi: 0xa3},
- {value: 0x8132, lo: 0xa4, hi: 0xa4},
- {value: 0x8132, lo: 0xa7, hi: 0xa8},
- {value: 0x812d, lo: 0xaa, hi: 0xaa},
- {value: 0x8132, lo: 0xab, hi: 0xac},
- {value: 0x812d, lo: 0xad, hi: 0xad},
- // Block 0x9, offset 0x56
- {value: 0x0000, lo: 0x0c},
- {value: 0x811f, lo: 0x91, hi: 0x91},
- {value: 0x8132, lo: 0xb0, hi: 0xb0},
- {value: 0x812d, lo: 0xb1, hi: 0xb1},
- {value: 0x8132, lo: 0xb2, hi: 0xb3},
- {value: 0x812d, lo: 0xb4, hi: 0xb4},
- {value: 0x8132, lo: 0xb5, hi: 0xb6},
- {value: 0x812d, lo: 0xb7, hi: 0xb9},
- {value: 0x8132, lo: 0xba, hi: 0xba},
- {value: 0x812d, lo: 0xbb, hi: 0xbc},
- {value: 0x8132, lo: 0xbd, hi: 0xbd},
- {value: 0x812d, lo: 0xbe, hi: 0xbe},
- {value: 0x8132, lo: 0xbf, hi: 0xbf},
- // Block 0xa, offset 0x63
- {value: 0x0005, lo: 0x07},
- {value: 0x8132, lo: 0x80, hi: 0x80},
- {value: 0x8132, lo: 0x81, hi: 0x81},
- {value: 0x812d, lo: 0x82, hi: 0x83},
- {value: 0x812d, lo: 0x84, hi: 0x85},
- {value: 0x812d, lo: 0x86, hi: 0x87},
- {value: 0x812d, lo: 0x88, hi: 0x89},
- {value: 0x8132, lo: 0x8a, hi: 0x8a},
- // Block 0xb, offset 0x6b
- {value: 0x0000, lo: 0x04},
- {value: 0x8132, lo: 0xab, hi: 0xb1},
- {value: 0x812d, lo: 0xb2, hi: 0xb2},
- {value: 0x8132, lo: 0xb3, hi: 0xb3},
- {value: 0x812d, lo: 0xbd, hi: 0xbd},
- // Block 0xc, offset 0x70
- {value: 0x0000, lo: 0x04},
- {value: 0x8132, lo: 0x96, hi: 0x99},
- {value: 0x8132, lo: 0x9b, hi: 0xa3},
- {value: 0x8132, lo: 0xa5, hi: 0xa7},
- {value: 0x8132, lo: 0xa9, hi: 0xad},
- // Block 0xd, offset 0x75
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0x99, hi: 0x9b},
- // Block 0xe, offset 0x77
- {value: 0x0000, lo: 0x07},
- {value: 0xa000, lo: 0xa8, hi: 0xa8},
- {value: 0x3edb, lo: 0xa9, hi: 0xa9},
- {value: 0xa000, lo: 0xb0, hi: 0xb0},
- {value: 0x3ee3, lo: 0xb1, hi: 0xb1},
- {value: 0xa000, lo: 0xb3, hi: 0xb3},
- {value: 0x3eeb, lo: 0xb4, hi: 0xb4},
- {value: 0x9902, lo: 0xbc, hi: 0xbc},
- // Block 0xf, offset 0x7f
- {value: 0x0008, lo: 0x06},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x8132, lo: 0x91, hi: 0x91},
- {value: 0x812d, lo: 0x92, hi: 0x92},
- {value: 0x8132, lo: 0x93, hi: 0x93},
- {value: 0x8132, lo: 0x94, hi: 0x94},
- {value: 0x451f, lo: 0x98, hi: 0x9f},
- // Block 0x10, offset 0x86
- {value: 0x0000, lo: 0x02},
- {value: 0x8102, lo: 0xbc, hi: 0xbc},
- {value: 0x9900, lo: 0xbe, hi: 0xbe},
- // Block 0x11, offset 0x89
- {value: 0x0008, lo: 0x07},
- {value: 0xa000, lo: 0x87, hi: 0x87},
- {value: 0x2ca1, lo: 0x8b, hi: 0x8c},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x9900, lo: 0x97, hi: 0x97},
- {value: 0x455f, lo: 0x9c, hi: 0x9d},
- {value: 0x456f, lo: 0x9f, hi: 0x9f},
- {value: 0x8132, lo: 0xbe, hi: 0xbe},
- // Block 0x12, offset 0x91
- {value: 0x0000, lo: 0x03},
- {value: 0x4597, lo: 0xb3, hi: 0xb3},
- {value: 0x459f, lo: 0xb6, hi: 0xb6},
- {value: 0x8102, lo: 0xbc, hi: 0xbc},
- // Block 0x13, offset 0x95
- {value: 0x0008, lo: 0x03},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x4577, lo: 0x99, hi: 0x9b},
- {value: 0x458f, lo: 0x9e, hi: 0x9e},
- // Block 0x14, offset 0x99
- {value: 0x0000, lo: 0x01},
- {value: 0x8102, lo: 0xbc, hi: 0xbc},
- // Block 0x15, offset 0x9b
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- // Block 0x16, offset 0x9d
- {value: 0x0000, lo: 0x08},
- {value: 0xa000, lo: 0x87, hi: 0x87},
- {value: 0x2cb9, lo: 0x88, hi: 0x88},
- {value: 0x2cb1, lo: 0x8b, hi: 0x8b},
- {value: 0x2cc1, lo: 0x8c, hi: 0x8c},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x9900, lo: 0x96, hi: 0x97},
- {value: 0x45a7, lo: 0x9c, hi: 0x9c},
- {value: 0x45af, lo: 0x9d, hi: 0x9d},
- // Block 0x17, offset 0xa6
- {value: 0x0000, lo: 0x03},
- {value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0x2cc9, lo: 0x94, hi: 0x94},
- {value: 0x9900, lo: 0xbe, hi: 0xbe},
- // Block 0x18, offset 0xaa
- {value: 0x0000, lo: 0x06},
- {value: 0xa000, lo: 0x86, hi: 0x87},
- {value: 0x2cd1, lo: 0x8a, hi: 0x8a},
- {value: 0x2ce1, lo: 0x8b, hi: 0x8b},
- {value: 0x2cd9, lo: 0x8c, hi: 0x8c},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x9900, lo: 0x97, hi: 0x97},
- // Block 0x19, offset 0xb1
- {value: 0x1801, lo: 0x04},
- {value: 0xa000, lo: 0x86, hi: 0x86},
- {value: 0x3ef3, lo: 0x88, hi: 0x88},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x8120, lo: 0x95, hi: 0x96},
- // Block 0x1a, offset 0xb6
- {value: 0x0000, lo: 0x02},
- {value: 0x8102, lo: 0xbc, hi: 0xbc},
- {value: 0xa000, lo: 0xbf, hi: 0xbf},
- // Block 0x1b, offset 0xb9
- {value: 0x0000, lo: 0x09},
- {value: 0x2ce9, lo: 0x80, hi: 0x80},
- {value: 0x9900, lo: 0x82, hi: 0x82},
- {value: 0xa000, lo: 0x86, hi: 0x86},
- {value: 0x2cf1, lo: 0x87, hi: 0x87},
- {value: 0x2cf9, lo: 0x88, hi: 0x88},
- {value: 0x2f53, lo: 0x8a, hi: 0x8a},
- {value: 0x2ddb, lo: 0x8b, hi: 0x8b},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x9900, lo: 0x95, hi: 0x96},
- // Block 0x1c, offset 0xc3
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0xbb, hi: 0xbc},
- {value: 0x9900, lo: 0xbe, hi: 0xbe},
- // Block 0x1d, offset 0xc6
- {value: 0x0000, lo: 0x06},
- {value: 0xa000, lo: 0x86, hi: 0x87},
- {value: 0x2d01, lo: 0x8a, hi: 0x8a},
- {value: 0x2d11, lo: 0x8b, hi: 0x8b},
- {value: 0x2d09, lo: 0x8c, hi: 0x8c},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x9900, lo: 0x97, hi: 0x97},
- // Block 0x1e, offset 0xcd
- {value: 0x6be7, lo: 0x07},
- {value: 0x9904, lo: 0x8a, hi: 0x8a},
- {value: 0x9900, lo: 0x8f, hi: 0x8f},
- {value: 0xa000, lo: 0x99, hi: 0x99},
- {value: 0x3efb, lo: 0x9a, hi: 0x9a},
- {value: 0x2f5b, lo: 0x9c, hi: 0x9c},
- {value: 0x2de6, lo: 0x9d, hi: 0x9d},
- {value: 0x2d19, lo: 0x9e, hi: 0x9f},
- // Block 0x1f, offset 0xd5
- {value: 0x0000, lo: 0x03},
- {value: 0x2624, lo: 0xb3, hi: 0xb3},
- {value: 0x8122, lo: 0xb8, hi: 0xb9},
- {value: 0x8104, lo: 0xba, hi: 0xba},
- // Block 0x20, offset 0xd9
- {value: 0x0000, lo: 0x01},
- {value: 0x8123, lo: 0x88, hi: 0x8b},
- // Block 0x21, offset 0xdb
- {value: 0x0000, lo: 0x03},
- {value: 0x2639, lo: 0xb3, hi: 0xb3},
- {value: 0x8124, lo: 0xb8, hi: 0xb9},
- {value: 0x8104, lo: 0xba, hi: 0xba},
- // Block 0x22, offset 0xdf
- {value: 0x0000, lo: 0x03},
- {value: 0x8125, lo: 0x88, hi: 0x8b},
- {value: 0x262b, lo: 0x9c, hi: 0x9c},
- {value: 0x2632, lo: 0x9d, hi: 0x9d},
- // Block 0x23, offset 0xe3
- {value: 0x0000, lo: 0x05},
- {value: 0x030b, lo: 0x8c, hi: 0x8c},
- {value: 0x812d, lo: 0x98, hi: 0x99},
- {value: 0x812d, lo: 0xb5, hi: 0xb5},
- {value: 0x812d, lo: 0xb7, hi: 0xb7},
- {value: 0x812b, lo: 0xb9, hi: 0xb9},
- // Block 0x24, offset 0xe9
- {value: 0x0000, lo: 0x10},
- {value: 0x2647, lo: 0x83, hi: 0x83},
- {value: 0x264e, lo: 0x8d, hi: 0x8d},
- {value: 0x2655, lo: 0x92, hi: 0x92},
- {value: 0x265c, lo: 0x97, hi: 0x97},
- {value: 0x2663, lo: 0x9c, hi: 0x9c},
- {value: 0x2640, lo: 0xa9, hi: 0xa9},
- {value: 0x8126, lo: 0xb1, hi: 0xb1},
- {value: 0x8127, lo: 0xb2, hi: 0xb2},
- {value: 0x4a87, lo: 0xb3, hi: 0xb3},
- {value: 0x8128, lo: 0xb4, hi: 0xb4},
- {value: 0x4a90, lo: 0xb5, hi: 0xb5},
- {value: 0x45b7, lo: 0xb6, hi: 0xb6},
- {value: 0x45f7, lo: 0xb7, hi: 0xb7},
- {value: 0x45bf, lo: 0xb8, hi: 0xb8},
- {value: 0x4602, lo: 0xb9, hi: 0xb9},
- {value: 0x8127, lo: 0xba, hi: 0xbd},
- // Block 0x25, offset 0xfa
- {value: 0x0000, lo: 0x0b},
- {value: 0x8127, lo: 0x80, hi: 0x80},
- {value: 0x4a99, lo: 0x81, hi: 0x81},
- {value: 0x8132, lo: 0x82, hi: 0x83},
- {value: 0x8104, lo: 0x84, hi: 0x84},
- {value: 0x8132, lo: 0x86, hi: 0x87},
- {value: 0x2671, lo: 0x93, hi: 0x93},
- {value: 0x2678, lo: 0x9d, hi: 0x9d},
- {value: 0x267f, lo: 0xa2, hi: 0xa2},
- {value: 0x2686, lo: 0xa7, hi: 0xa7},
- {value: 0x268d, lo: 0xac, hi: 0xac},
- {value: 0x266a, lo: 0xb9, hi: 0xb9},
- // Block 0x26, offset 0x106
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0x86, hi: 0x86},
- // Block 0x27, offset 0x108
- {value: 0x0000, lo: 0x05},
- {value: 0xa000, lo: 0xa5, hi: 0xa5},
- {value: 0x2d21, lo: 0xa6, hi: 0xa6},
- {value: 0x9900, lo: 0xae, hi: 0xae},
- {value: 0x8102, lo: 0xb7, hi: 0xb7},
- {value: 0x8104, lo: 0xb9, hi: 0xba},
- // Block 0x28, offset 0x10e
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0x8d, hi: 0x8d},
- // Block 0x29, offset 0x110
- {value: 0x0000, lo: 0x01},
- {value: 0x030f, lo: 0xbc, hi: 0xbc},
- // Block 0x2a, offset 0x112
- {value: 0x0000, lo: 0x01},
- {value: 0xa000, lo: 0x80, hi: 0x92},
- // Block 0x2b, offset 0x114
- {value: 0x0000, lo: 0x01},
- {value: 0xb900, lo: 0xa1, hi: 0xb5},
- // Block 0x2c, offset 0x116
- {value: 0x0000, lo: 0x01},
- {value: 0x9900, lo: 0xa8, hi: 0xbf},
- // Block 0x2d, offset 0x118
- {value: 0x0000, lo: 0x01},
- {value: 0x9900, lo: 0x80, hi: 0x82},
- // Block 0x2e, offset 0x11a
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0x9d, hi: 0x9f},
- // Block 0x2f, offset 0x11c
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x94, hi: 0x94},
- {value: 0x8104, lo: 0xb4, hi: 0xb4},
- // Block 0x30, offset 0x11f
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x92, hi: 0x92},
- {value: 0x8132, lo: 0x9d, hi: 0x9d},
- // Block 0x31, offset 0x122
- {value: 0x0000, lo: 0x01},
- {value: 0x8131, lo: 0xa9, hi: 0xa9},
- // Block 0x32, offset 0x124
- {value: 0x0004, lo: 0x02},
- {value: 0x812e, lo: 0xb9, hi: 0xba},
- {value: 0x812d, lo: 0xbb, hi: 0xbb},
- // Block 0x33, offset 0x127
- {value: 0x0000, lo: 0x02},
- {value: 0x8132, lo: 0x97, hi: 0x97},
- {value: 0x812d, lo: 0x98, hi: 0x98},
- // Block 0x34, offset 0x12a
- {value: 0x0000, lo: 0x03},
- {value: 0x8104, lo: 0xa0, hi: 0xa0},
- {value: 0x8132, lo: 0xb5, hi: 0xbc},
- {value: 0x812d, lo: 0xbf, hi: 0xbf},
- // Block 0x35, offset 0x12e
- {value: 0x0000, lo: 0x04},
- {value: 0x8132, lo: 0xb0, hi: 0xb4},
- {value: 0x812d, lo: 0xb5, hi: 0xba},
- {value: 0x8132, lo: 0xbb, hi: 0xbc},
- {value: 0x812d, lo: 0xbd, hi: 0xbd},
- // Block 0x36, offset 0x133
- {value: 0x0000, lo: 0x08},
- {value: 0x2d69, lo: 0x80, hi: 0x80},
- {value: 0x2d71, lo: 0x81, hi: 0x81},
- {value: 0xa000, lo: 0x82, hi: 0x82},
- {value: 0x2d79, lo: 0x83, hi: 0x83},
- {value: 0x8104, lo: 0x84, hi: 0x84},
- {value: 0x8132, lo: 0xab, hi: 0xab},
- {value: 0x812d, lo: 0xac, hi: 0xac},
- {value: 0x8132, lo: 0xad, hi: 0xb3},
- // Block 0x37, offset 0x13c
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0xaa, hi: 0xab},
- // Block 0x38, offset 0x13e
- {value: 0x0000, lo: 0x02},
- {value: 0x8102, lo: 0xa6, hi: 0xa6},
- {value: 0x8104, lo: 0xb2, hi: 0xb3},
- // Block 0x39, offset 0x141
- {value: 0x0000, lo: 0x01},
- {value: 0x8102, lo: 0xb7, hi: 0xb7},
- // Block 0x3a, offset 0x143
- {value: 0x0000, lo: 0x0a},
- {value: 0x8132, lo: 0x90, hi: 0x92},
- {value: 0x8101, lo: 0x94, hi: 0x94},
- {value: 0x812d, lo: 0x95, hi: 0x99},
- {value: 0x8132, lo: 0x9a, hi: 0x9b},
- {value: 0x812d, lo: 0x9c, hi: 0x9f},
- {value: 0x8132, lo: 0xa0, hi: 0xa0},
- {value: 0x8101, lo: 0xa2, hi: 0xa8},
- {value: 0x812d, lo: 0xad, hi: 0xad},
- {value: 0x8132, lo: 0xb4, hi: 0xb4},
- {value: 0x8132, lo: 0xb8, hi: 0xb9},
- // Block 0x3b, offset 0x14e
- {value: 0x0002, lo: 0x0a},
- {value: 0x0043, lo: 0xac, hi: 0xac},
- {value: 0x00d1, lo: 0xad, hi: 0xad},
- {value: 0x0045, lo: 0xae, hi: 0xae},
- {value: 0x0049, lo: 0xb0, hi: 0xb1},
- {value: 0x00e6, lo: 0xb2, hi: 0xb2},
- {value: 0x004f, lo: 0xb3, hi: 0xba},
- {value: 0x005f, lo: 0xbc, hi: 0xbc},
- {value: 0x00ef, lo: 0xbd, hi: 0xbd},
- {value: 0x0061, lo: 0xbe, hi: 0xbe},
- {value: 0x0065, lo: 0xbf, hi: 0xbf},
- // Block 0x3c, offset 0x159
- {value: 0x0000, lo: 0x0d},
- {value: 0x0001, lo: 0x80, hi: 0x8a},
- {value: 0x043b, lo: 0x91, hi: 0x91},
- {value: 0x429e, lo: 0x97, hi: 0x97},
- {value: 0x001d, lo: 0xa4, hi: 0xa4},
- {value: 0x1873, lo: 0xa5, hi: 0xa5},
- {value: 0x1b5f, lo: 0xa6, hi: 0xa6},
- {value: 0x0001, lo: 0xaf, hi: 0xaf},
- {value: 0x2694, lo: 0xb3, hi: 0xb3},
- {value: 0x2801, lo: 0xb4, hi: 0xb4},
- {value: 0x269b, lo: 0xb6, hi: 0xb6},
- {value: 0x280b, lo: 0xb7, hi: 0xb7},
- {value: 0x186d, lo: 0xbc, hi: 0xbc},
- {value: 0x426c, lo: 0xbe, hi: 0xbe},
- // Block 0x3d, offset 0x167
- {value: 0x0002, lo: 0x0d},
- {value: 0x1933, lo: 0x87, hi: 0x87},
- {value: 0x1930, lo: 0x88, hi: 0x88},
- {value: 0x1870, lo: 0x89, hi: 0x89},
- {value: 0x2991, lo: 0x97, hi: 0x97},
- {value: 0x0001, lo: 0x9f, hi: 0x9f},
- {value: 0x0021, lo: 0xb0, hi: 0xb0},
- {value: 0x0093, lo: 0xb1, hi: 0xb1},
- {value: 0x0029, lo: 0xb4, hi: 0xb9},
- {value: 0x0017, lo: 0xba, hi: 0xba},
- {value: 0x0467, lo: 0xbb, hi: 0xbb},
- {value: 0x003b, lo: 0xbc, hi: 0xbc},
- {value: 0x0011, lo: 0xbd, hi: 0xbe},
- {value: 0x009d, lo: 0xbf, hi: 0xbf},
- // Block 0x3e, offset 0x175
- {value: 0x0002, lo: 0x0f},
- {value: 0x0021, lo: 0x80, hi: 0x89},
- {value: 0x0017, lo: 0x8a, hi: 0x8a},
- {value: 0x0467, lo: 0x8b, hi: 0x8b},
- {value: 0x003b, lo: 0x8c, hi: 0x8c},
- {value: 0x0011, lo: 0x8d, hi: 0x8e},
- {value: 0x0083, lo: 0x90, hi: 0x90},
- {value: 0x008b, lo: 0x91, hi: 0x91},
- {value: 0x009f, lo: 0x92, hi: 0x92},
- {value: 0x00b1, lo: 0x93, hi: 0x93},
- {value: 0x0104, lo: 0x94, hi: 0x94},
- {value: 0x0091, lo: 0x95, hi: 0x95},
- {value: 0x0097, lo: 0x96, hi: 0x99},
- {value: 0x00a1, lo: 0x9a, hi: 0x9a},
- {value: 0x00a7, lo: 0x9b, hi: 0x9c},
- {value: 0x199c, lo: 0xa8, hi: 0xa8},
- // Block 0x3f, offset 0x185
- {value: 0x0000, lo: 0x0d},
- {value: 0x8132, lo: 0x90, hi: 0x91},
- {value: 0x8101, lo: 0x92, hi: 0x93},
- {value: 0x8132, lo: 0x94, hi: 0x97},
- {value: 0x8101, lo: 0x98, hi: 0x9a},
- {value: 0x8132, lo: 0x9b, hi: 0x9c},
- {value: 0x8132, lo: 0xa1, hi: 0xa1},
- {value: 0x8101, lo: 0xa5, hi: 0xa6},
- {value: 0x8132, lo: 0xa7, hi: 0xa7},
- {value: 0x812d, lo: 0xa8, hi: 0xa8},
- {value: 0x8132, lo: 0xa9, hi: 0xa9},
- {value: 0x8101, lo: 0xaa, hi: 0xab},
- {value: 0x812d, lo: 0xac, hi: 0xaf},
- {value: 0x8132, lo: 0xb0, hi: 0xb0},
- // Block 0x40, offset 0x193
- {value: 0x0007, lo: 0x06},
- {value: 0x2183, lo: 0x89, hi: 0x89},
- {value: 0xa000, lo: 0x90, hi: 0x90},
- {value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0xa000, lo: 0x94, hi: 0x94},
- {value: 0x3bbc, lo: 0x9a, hi: 0x9b},
- {value: 0x3bca, lo: 0xae, hi: 0xae},
- // Block 0x41, offset 0x19a
- {value: 0x000e, lo: 0x05},
- {value: 0x3bd1, lo: 0x8d, hi: 0x8e},
- {value: 0x3bd8, lo: 0x8f, hi: 0x8f},
- {value: 0xa000, lo: 0x90, hi: 0x90},
- {value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0xa000, lo: 0x94, hi: 0x94},
- // Block 0x42, offset 0x1a0
- {value: 0x0173, lo: 0x0e},
- {value: 0xa000, lo: 0x83, hi: 0x83},
- {value: 0x3be6, lo: 0x84, hi: 0x84},
- {value: 0xa000, lo: 0x88, hi: 0x88},
- {value: 0x3bed, lo: 0x89, hi: 0x89},
- {value: 0xa000, lo: 0x8b, hi: 0x8b},
- {value: 0x3bf4, lo: 0x8c, hi: 0x8c},
- {value: 0xa000, lo: 0xa3, hi: 0xa3},
- {value: 0x3bfb, lo: 0xa4, hi: 0xa4},
- {value: 0xa000, lo: 0xa5, hi: 0xa5},
- {value: 0x3c02, lo: 0xa6, hi: 0xa6},
- {value: 0x26a2, lo: 0xac, hi: 0xad},
- {value: 0x26a9, lo: 0xaf, hi: 0xaf},
- {value: 0x281f, lo: 0xb0, hi: 0xb0},
- {value: 0xa000, lo: 0xbc, hi: 0xbc},
- // Block 0x43, offset 0x1af
- {value: 0x0007, lo: 0x03},
- {value: 0x3c6b, lo: 0xa0, hi: 0xa1},
- {value: 0x3c95, lo: 0xa2, hi: 0xa3},
- {value: 0x3cbf, lo: 0xaa, hi: 0xad},
- // Block 0x44, offset 0x1b3
- {value: 0x0004, lo: 0x01},
- {value: 0x048b, lo: 0xa9, hi: 0xaa},
- // Block 0x45, offset 0x1b5
- {value: 0x0002, lo: 0x03},
- {value: 0x0057, lo: 0x80, hi: 0x8f},
- {value: 0x0083, lo: 0x90, hi: 0xa9},
- {value: 0x0021, lo: 0xaa, hi: 0xaa},
- // Block 0x46, offset 0x1b9
- {value: 0x0000, lo: 0x01},
- {value: 0x299e, lo: 0x8c, hi: 0x8c},
- // Block 0x47, offset 0x1bb
- {value: 0x0266, lo: 0x02},
- {value: 0x1b8f, lo: 0xb4, hi: 0xb4},
- {value: 0x192d, lo: 0xb5, hi: 0xb6},
- // Block 0x48, offset 0x1be
- {value: 0x0000, lo: 0x01},
- {value: 0x44e0, lo: 0x9c, hi: 0x9c},
- // Block 0x49, offset 0x1c0
- {value: 0x0000, lo: 0x02},
- {value: 0x0095, lo: 0xbc, hi: 0xbc},
- {value: 0x006d, lo: 0xbd, hi: 0xbd},
- // Block 0x4a, offset 0x1c3
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0xaf, hi: 0xb1},
- // Block 0x4b, offset 0x1c5
- {value: 0x0000, lo: 0x02},
- {value: 0x047f, lo: 0xaf, hi: 0xaf},
- {value: 0x8104, lo: 0xbf, hi: 0xbf},
- // Block 0x4c, offset 0x1c8
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0xa0, hi: 0xbf},
- // Block 0x4d, offset 0x1ca
- {value: 0x0000, lo: 0x01},
- {value: 0x0dc3, lo: 0x9f, hi: 0x9f},
- // Block 0x4e, offset 0x1cc
- {value: 0x0000, lo: 0x01},
- {value: 0x162f, lo: 0xb3, hi: 0xb3},
- // Block 0x4f, offset 0x1ce
- {value: 0x0004, lo: 0x0b},
- {value: 0x1597, lo: 0x80, hi: 0x82},
- {value: 0x15af, lo: 0x83, hi: 0x83},
- {value: 0x15c7, lo: 0x84, hi: 0x85},
- {value: 0x15d7, lo: 0x86, hi: 0x89},
- {value: 0x15eb, lo: 0x8a, hi: 0x8c},
- {value: 0x15ff, lo: 0x8d, hi: 0x8d},
- {value: 0x1607, lo: 0x8e, hi: 0x8e},
- {value: 0x160f, lo: 0x8f, hi: 0x90},
- {value: 0x161b, lo: 0x91, hi: 0x93},
- {value: 0x162b, lo: 0x94, hi: 0x94},
- {value: 0x1633, lo: 0x95, hi: 0x95},
- // Block 0x50, offset 0x1da
- {value: 0x0004, lo: 0x09},
- {value: 0x0001, lo: 0x80, hi: 0x80},
- {value: 0x812c, lo: 0xaa, hi: 0xaa},
- {value: 0x8131, lo: 0xab, hi: 0xab},
- {value: 0x8133, lo: 0xac, hi: 0xac},
- {value: 0x812e, lo: 0xad, hi: 0xad},
- {value: 0x812f, lo: 0xae, hi: 0xae},
- {value: 0x812f, lo: 0xaf, hi: 0xaf},
- {value: 0x04b3, lo: 0xb6, hi: 0xb6},
- {value: 0x0887, lo: 0xb8, hi: 0xba},
- // Block 0x51, offset 0x1e4
- {value: 0x0006, lo: 0x09},
- {value: 0x0313, lo: 0xb1, hi: 0xb1},
- {value: 0x0317, lo: 0xb2, hi: 0xb2},
- {value: 0x4a3e, lo: 0xb3, hi: 0xb3},
- {value: 0x031b, lo: 0xb4, hi: 0xb4},
- {value: 0x4a44, lo: 0xb5, hi: 0xb6},
- {value: 0x031f, lo: 0xb7, hi: 0xb7},
- {value: 0x0323, lo: 0xb8, hi: 0xb8},
- {value: 0x0327, lo: 0xb9, hi: 0xb9},
- {value: 0x4a50, lo: 0xba, hi: 0xbf},
- // Block 0x52, offset 0x1ee
- {value: 0x0000, lo: 0x02},
- {value: 0x8132, lo: 0xaf, hi: 0xaf},
- {value: 0x8132, lo: 0xb4, hi: 0xbd},
- // Block 0x53, offset 0x1f1
- {value: 0x0000, lo: 0x03},
- {value: 0x020f, lo: 0x9c, hi: 0x9c},
- {value: 0x0212, lo: 0x9d, hi: 0x9d},
- {value: 0x8132, lo: 0x9e, hi: 0x9f},
- // Block 0x54, offset 0x1f5
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0xb0, hi: 0xb1},
- // Block 0x55, offset 0x1f7
- {value: 0x0000, lo: 0x01},
- {value: 0x163b, lo: 0xb0, hi: 0xb0},
- // Block 0x56, offset 0x1f9
- {value: 0x000c, lo: 0x01},
- {value: 0x00d7, lo: 0xb8, hi: 0xb9},
- // Block 0x57, offset 0x1fb
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0x86, hi: 0x86},
- // Block 0x58, offset 0x1fd
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x84, hi: 0x84},
- {value: 0x8132, lo: 0xa0, hi: 0xb1},
- // Block 0x59, offset 0x200
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0xab, hi: 0xad},
- // Block 0x5a, offset 0x202
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0x93, hi: 0x93},
- // Block 0x5b, offset 0x204
- {value: 0x0000, lo: 0x01},
- {value: 0x8102, lo: 0xb3, hi: 0xb3},
- // Block 0x5c, offset 0x206
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0x80, hi: 0x80},
- // Block 0x5d, offset 0x208
- {value: 0x0000, lo: 0x05},
- {value: 0x8132, lo: 0xb0, hi: 0xb0},
- {value: 0x8132, lo: 0xb2, hi: 0xb3},
- {value: 0x812d, lo: 0xb4, hi: 0xb4},
- {value: 0x8132, lo: 0xb7, hi: 0xb8},
- {value: 0x8132, lo: 0xbe, hi: 0xbf},
- // Block 0x5e, offset 0x20e
- {value: 0x0000, lo: 0x02},
- {value: 0x8132, lo: 0x81, hi: 0x81},
- {value: 0x8104, lo: 0xb6, hi: 0xb6},
- // Block 0x5f, offset 0x211
- {value: 0x0008, lo: 0x03},
- {value: 0x1637, lo: 0x9c, hi: 0x9d},
- {value: 0x0125, lo: 0x9e, hi: 0x9e},
- {value: 0x1643, lo: 0x9f, hi: 0x9f},
- // Block 0x60, offset 0x215
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0xad, hi: 0xad},
- // Block 0x61, offset 0x217
- {value: 0x0000, lo: 0x06},
- {value: 0xe500, lo: 0x80, hi: 0x80},
- {value: 0xc600, lo: 0x81, hi: 0x9b},
- {value: 0xe500, lo: 0x9c, hi: 0x9c},
- {value: 0xc600, lo: 0x9d, hi: 0xb7},
- {value: 0xe500, lo: 0xb8, hi: 0xb8},
- {value: 0xc600, lo: 0xb9, hi: 0xbf},
- // Block 0x62, offset 0x21e
- {value: 0x0000, lo: 0x05},
- {value: 0xc600, lo: 0x80, hi: 0x93},
- {value: 0xe500, lo: 0x94, hi: 0x94},
- {value: 0xc600, lo: 0x95, hi: 0xaf},
- {value: 0xe500, lo: 0xb0, hi: 0xb0},
- {value: 0xc600, lo: 0xb1, hi: 0xbf},
- // Block 0x63, offset 0x224
- {value: 0x0000, lo: 0x05},
- {value: 0xc600, lo: 0x80, hi: 0x8b},
- {value: 0xe500, lo: 0x8c, hi: 0x8c},
- {value: 0xc600, lo: 0x8d, hi: 0xa7},
- {value: 0xe500, lo: 0xa8, hi: 0xa8},
- {value: 0xc600, lo: 0xa9, hi: 0xbf},
- // Block 0x64, offset 0x22a
- {value: 0x0000, lo: 0x07},
- {value: 0xc600, lo: 0x80, hi: 0x83},
- {value: 0xe500, lo: 0x84, hi: 0x84},
- {value: 0xc600, lo: 0x85, hi: 0x9f},
- {value: 0xe500, lo: 0xa0, hi: 0xa0},
- {value: 0xc600, lo: 0xa1, hi: 0xbb},
- {value: 0xe500, lo: 0xbc, hi: 0xbc},
- {value: 0xc600, lo: 0xbd, hi: 0xbf},
- // Block 0x65, offset 0x232
- {value: 0x0000, lo: 0x05},
- {value: 0xc600, lo: 0x80, hi: 0x97},
- {value: 0xe500, lo: 0x98, hi: 0x98},
- {value: 0xc600, lo: 0x99, hi: 0xb3},
- {value: 0xe500, lo: 0xb4, hi: 0xb4},
- {value: 0xc600, lo: 0xb5, hi: 0xbf},
- // Block 0x66, offset 0x238
- {value: 0x0000, lo: 0x05},
- {value: 0xc600, lo: 0x80, hi: 0x8f},
- {value: 0xe500, lo: 0x90, hi: 0x90},
- {value: 0xc600, lo: 0x91, hi: 0xab},
- {value: 0xe500, lo: 0xac, hi: 0xac},
- {value: 0xc600, lo: 0xad, hi: 0xbf},
- // Block 0x67, offset 0x23e
- {value: 0x0000, lo: 0x05},
- {value: 0xc600, lo: 0x80, hi: 0x87},
- {value: 0xe500, lo: 0x88, hi: 0x88},
- {value: 0xc600, lo: 0x89, hi: 0xa3},
- {value: 0xe500, lo: 0xa4, hi: 0xa4},
- {value: 0xc600, lo: 0xa5, hi: 0xbf},
- // Block 0x68, offset 0x244
- {value: 0x0000, lo: 0x03},
- {value: 0xc600, lo: 0x80, hi: 0x87},
- {value: 0xe500, lo: 0x88, hi: 0x88},
- {value: 0xc600, lo: 0x89, hi: 0xa3},
- // Block 0x69, offset 0x248
- {value: 0x0002, lo: 0x01},
- {value: 0x0003, lo: 0x81, hi: 0xbf},
- // Block 0x6a, offset 0x24a
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0xbd, hi: 0xbd},
- // Block 0x6b, offset 0x24c
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0xa0, hi: 0xa0},
- // Block 0x6c, offset 0x24e
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0xb6, hi: 0xba},
- // Block 0x6d, offset 0x250
- {value: 0x002c, lo: 0x05},
- {value: 0x812d, lo: 0x8d, hi: 0x8d},
- {value: 0x8132, lo: 0x8f, hi: 0x8f},
- {value: 0x8132, lo: 0xb8, hi: 0xb8},
- {value: 0x8101, lo: 0xb9, hi: 0xba},
- {value: 0x8104, lo: 0xbf, hi: 0xbf},
- // Block 0x6e, offset 0x256
- {value: 0x0000, lo: 0x02},
- {value: 0x8132, lo: 0xa5, hi: 0xa5},
- {value: 0x812d, lo: 0xa6, hi: 0xa6},
- // Block 0x6f, offset 0x259
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0xa4, hi: 0xa7},
- // Block 0x70, offset 0x25b
- {value: 0x0000, lo: 0x05},
- {value: 0x812d, lo: 0x86, hi: 0x87},
- {value: 0x8132, lo: 0x88, hi: 0x8a},
- {value: 0x812d, lo: 0x8b, hi: 0x8b},
- {value: 0x8132, lo: 0x8c, hi: 0x8c},
- {value: 0x812d, lo: 0x8d, hi: 0x90},
- // Block 0x71, offset 0x261
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x86, hi: 0x86},
- {value: 0x8104, lo: 0xbf, hi: 0xbf},
- // Block 0x72, offset 0x264
- {value: 0x17fe, lo: 0x07},
- {value: 0xa000, lo: 0x99, hi: 0x99},
- {value: 0x423b, lo: 0x9a, hi: 0x9a},
- {value: 0xa000, lo: 0x9b, hi: 0x9b},
- {value: 0x4245, lo: 0x9c, hi: 0x9c},
- {value: 0xa000, lo: 0xa5, hi: 0xa5},
- {value: 0x424f, lo: 0xab, hi: 0xab},
- {value: 0x8104, lo: 0xb9, hi: 0xba},
- // Block 0x73, offset 0x26c
- {value: 0x0000, lo: 0x06},
- {value: 0x8132, lo: 0x80, hi: 0x82},
- {value: 0x9900, lo: 0xa7, hi: 0xa7},
- {value: 0x2d81, lo: 0xae, hi: 0xae},
- {value: 0x2d8b, lo: 0xaf, hi: 0xaf},
- {value: 0xa000, lo: 0xb1, hi: 0xb2},
- {value: 0x8104, lo: 0xb3, hi: 0xb4},
- // Block 0x74, offset 0x273
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x80, hi: 0x80},
- {value: 0x8102, lo: 0x8a, hi: 0x8a},
- // Block 0x75, offset 0x276
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0xb5, hi: 0xb5},
- {value: 0x8102, lo: 0xb6, hi: 0xb6},
- // Block 0x76, offset 0x279
- {value: 0x0002, lo: 0x01},
- {value: 0x8102, lo: 0xa9, hi: 0xaa},
- // Block 0x77, offset 0x27b
- {value: 0x0000, lo: 0x02},
- {value: 0x8102, lo: 0xbb, hi: 0xbc},
- {value: 0x9900, lo: 0xbe, hi: 0xbe},
- // Block 0x78, offset 0x27e
- {value: 0x0000, lo: 0x07},
- {value: 0xa000, lo: 0x87, hi: 0x87},
- {value: 0x2d95, lo: 0x8b, hi: 0x8b},
- {value: 0x2d9f, lo: 0x8c, hi: 0x8c},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x9900, lo: 0x97, hi: 0x97},
- {value: 0x8132, lo: 0xa6, hi: 0xac},
- {value: 0x8132, lo: 0xb0, hi: 0xb4},
- // Block 0x79, offset 0x286
- {value: 0x0000, lo: 0x03},
- {value: 0x8104, lo: 0x82, hi: 0x82},
- {value: 0x8102, lo: 0x86, hi: 0x86},
- {value: 0x8132, lo: 0x9e, hi: 0x9e},
- // Block 0x7a, offset 0x28a
- {value: 0x6b57, lo: 0x06},
- {value: 0x9900, lo: 0xb0, hi: 0xb0},
- {value: 0xa000, lo: 0xb9, hi: 0xb9},
- {value: 0x9900, lo: 0xba, hi: 0xba},
- {value: 0x2db3, lo: 0xbb, hi: 0xbb},
- {value: 0x2da9, lo: 0xbc, hi: 0xbd},
- {value: 0x2dbd, lo: 0xbe, hi: 0xbe},
- // Block 0x7b, offset 0x291
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x82, hi: 0x82},
- {value: 0x8102, lo: 0x83, hi: 0x83},
- // Block 0x7c, offset 0x294
- {value: 0x0000, lo: 0x05},
- {value: 0x9900, lo: 0xaf, hi: 0xaf},
- {value: 0xa000, lo: 0xb8, hi: 0xb9},
- {value: 0x2dc7, lo: 0xba, hi: 0xba},
- {value: 0x2dd1, lo: 0xbb, hi: 0xbb},
- {value: 0x8104, lo: 0xbf, hi: 0xbf},
- // Block 0x7d, offset 0x29a
- {value: 0x0000, lo: 0x01},
- {value: 0x8102, lo: 0x80, hi: 0x80},
- // Block 0x7e, offset 0x29c
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0xbf, hi: 0xbf},
- // Block 0x7f, offset 0x29e
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0xb6, hi: 0xb6},
- {value: 0x8102, lo: 0xb7, hi: 0xb7},
- // Block 0x80, offset 0x2a1
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0xab, hi: 0xab},
- // Block 0x81, offset 0x2a3
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0xb9, hi: 0xb9},
- {value: 0x8102, lo: 0xba, hi: 0xba},
- // Block 0x82, offset 0x2a6
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0xa0, hi: 0xa0},
- // Block 0x83, offset 0x2a8
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0xb4, hi: 0xb4},
- // Block 0x84, offset 0x2aa
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0x87, hi: 0x87},
- // Block 0x85, offset 0x2ac
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0x99, hi: 0x99},
- // Block 0x86, offset 0x2ae
- {value: 0x0000, lo: 0x02},
- {value: 0x8102, lo: 0x82, hi: 0x82},
- {value: 0x8104, lo: 0x84, hi: 0x85},
- // Block 0x87, offset 0x2b1
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0x97, hi: 0x97},
- // Block 0x88, offset 0x2b3
- {value: 0x0000, lo: 0x01},
- {value: 0x8101, lo: 0xb0, hi: 0xb4},
- // Block 0x89, offset 0x2b5
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0xb0, hi: 0xb6},
- // Block 0x8a, offset 0x2b7
- {value: 0x0000, lo: 0x01},
- {value: 0x8101, lo: 0x9e, hi: 0x9e},
- // Block 0x8b, offset 0x2b9
- {value: 0x0000, lo: 0x0c},
- {value: 0x45cf, lo: 0x9e, hi: 0x9e},
- {value: 0x45d9, lo: 0x9f, hi: 0x9f},
- {value: 0x460d, lo: 0xa0, hi: 0xa0},
- {value: 0x461b, lo: 0xa1, hi: 0xa1},
- {value: 0x4629, lo: 0xa2, hi: 0xa2},
- {value: 0x4637, lo: 0xa3, hi: 0xa3},
- {value: 0x4645, lo: 0xa4, hi: 0xa4},
- {value: 0x812b, lo: 0xa5, hi: 0xa6},
- {value: 0x8101, lo: 0xa7, hi: 0xa9},
- {value: 0x8130, lo: 0xad, hi: 0xad},
- {value: 0x812b, lo: 0xae, hi: 0xb2},
- {value: 0x812d, lo: 0xbb, hi: 0xbf},
- // Block 0x8c, offset 0x2c6
- {value: 0x0000, lo: 0x09},
- {value: 0x812d, lo: 0x80, hi: 0x82},
- {value: 0x8132, lo: 0x85, hi: 0x89},
- {value: 0x812d, lo: 0x8a, hi: 0x8b},
- {value: 0x8132, lo: 0xaa, hi: 0xad},
- {value: 0x45e3, lo: 0xbb, hi: 0xbb},
- {value: 0x45ed, lo: 0xbc, hi: 0xbc},
- {value: 0x4653, lo: 0xbd, hi: 0xbd},
- {value: 0x466f, lo: 0xbe, hi: 0xbe},
- {value: 0x4661, lo: 0xbf, hi: 0xbf},
- // Block 0x8d, offset 0x2d0
- {value: 0x0000, lo: 0x01},
- {value: 0x467d, lo: 0x80, hi: 0x80},
- // Block 0x8e, offset 0x2d2
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0x82, hi: 0x84},
- // Block 0x8f, offset 0x2d4
- {value: 0x0002, lo: 0x03},
- {value: 0x0043, lo: 0x80, hi: 0x99},
- {value: 0x0083, lo: 0x9a, hi: 0xb3},
- {value: 0x0043, lo: 0xb4, hi: 0xbf},
- // Block 0x90, offset 0x2d8
- {value: 0x0002, lo: 0x04},
- {value: 0x005b, lo: 0x80, hi: 0x8d},
- {value: 0x0083, lo: 0x8e, hi: 0x94},
- {value: 0x0093, lo: 0x96, hi: 0xa7},
- {value: 0x0043, lo: 0xa8, hi: 0xbf},
- // Block 0x91, offset 0x2dd
- {value: 0x0002, lo: 0x0b},
- {value: 0x0073, lo: 0x80, hi: 0x81},
- {value: 0x0083, lo: 0x82, hi: 0x9b},
- {value: 0x0043, lo: 0x9c, hi: 0x9c},
- {value: 0x0047, lo: 0x9e, hi: 0x9f},
- {value: 0x004f, lo: 0xa2, hi: 0xa2},
- {value: 0x0055, lo: 0xa5, hi: 0xa6},
- {value: 0x005d, lo: 0xa9, hi: 0xac},
- {value: 0x0067, lo: 0xae, hi: 0xb5},
- {value: 0x0083, lo: 0xb6, hi: 0xb9},
- {value: 0x008d, lo: 0xbb, hi: 0xbb},
- {value: 0x0091, lo: 0xbd, hi: 0xbf},
- // Block 0x92, offset 0x2e9
- {value: 0x0002, lo: 0x04},
- {value: 0x0097, lo: 0x80, hi: 0x83},
- {value: 0x00a1, lo: 0x85, hi: 0x8f},
- {value: 0x0043, lo: 0x90, hi: 0xa9},
- {value: 0x0083, lo: 0xaa, hi: 0xbf},
- // Block 0x93, offset 0x2ee
- {value: 0x0002, lo: 0x08},
- {value: 0x00af, lo: 0x80, hi: 0x83},
- {value: 0x0043, lo: 0x84, hi: 0x85},
- {value: 0x0049, lo: 0x87, hi: 0x8a},
- {value: 0x0055, lo: 0x8d, hi: 0x94},
- {value: 0x0067, lo: 0x96, hi: 0x9c},
- {value: 0x0083, lo: 0x9e, hi: 0xb7},
- {value: 0x0043, lo: 0xb8, hi: 0xb9},
- {value: 0x0049, lo: 0xbb, hi: 0xbe},
- // Block 0x94, offset 0x2f7
- {value: 0x0002, lo: 0x05},
- {value: 0x0053, lo: 0x80, hi: 0x84},
- {value: 0x005f, lo: 0x86, hi: 0x86},
- {value: 0x0067, lo: 0x8a, hi: 0x90},
- {value: 0x0083, lo: 0x92, hi: 0xab},
- {value: 0x0043, lo: 0xac, hi: 0xbf},
- // Block 0x95, offset 0x2fd
- {value: 0x0002, lo: 0x04},
- {value: 0x006b, lo: 0x80, hi: 0x85},
- {value: 0x0083, lo: 0x86, hi: 0x9f},
- {value: 0x0043, lo: 0xa0, hi: 0xb9},
- {value: 0x0083, lo: 0xba, hi: 0xbf},
- // Block 0x96, offset 0x302
- {value: 0x0002, lo: 0x03},
- {value: 0x008f, lo: 0x80, hi: 0x93},
- {value: 0x0043, lo: 0x94, hi: 0xad},
- {value: 0x0083, lo: 0xae, hi: 0xbf},
- // Block 0x97, offset 0x306
- {value: 0x0002, lo: 0x04},
- {value: 0x00a7, lo: 0x80, hi: 0x87},
- {value: 0x0043, lo: 0x88, hi: 0xa1},
- {value: 0x0083, lo: 0xa2, hi: 0xbb},
- {value: 0x0043, lo: 0xbc, hi: 0xbf},
- // Block 0x98, offset 0x30b
- {value: 0x0002, lo: 0x03},
- {value: 0x004b, lo: 0x80, hi: 0x95},
- {value: 0x0083, lo: 0x96, hi: 0xaf},
- {value: 0x0043, lo: 0xb0, hi: 0xbf},
- // Block 0x99, offset 0x30f
- {value: 0x0003, lo: 0x0f},
- {value: 0x01b8, lo: 0x80, hi: 0x80},
- {value: 0x045f, lo: 0x81, hi: 0x81},
- {value: 0x01bb, lo: 0x82, hi: 0x9a},
- {value: 0x045b, lo: 0x9b, hi: 0x9b},
- {value: 0x01c7, lo: 0x9c, hi: 0x9c},
- {value: 0x01d0, lo: 0x9d, hi: 0x9d},
- {value: 0x01d6, lo: 0x9e, hi: 0x9e},
- {value: 0x01fa, lo: 0x9f, hi: 0x9f},
- {value: 0x01eb, lo: 0xa0, hi: 0xa0},
- {value: 0x01e8, lo: 0xa1, hi: 0xa1},
- {value: 0x0173, lo: 0xa2, hi: 0xb2},
- {value: 0x0188, lo: 0xb3, hi: 0xb3},
- {value: 0x01a6, lo: 0xb4, hi: 0xba},
- {value: 0x045f, lo: 0xbb, hi: 0xbb},
- {value: 0x01bb, lo: 0xbc, hi: 0xbf},
- // Block 0x9a, offset 0x31f
- {value: 0x0003, lo: 0x0d},
- {value: 0x01c7, lo: 0x80, hi: 0x94},
- {value: 0x045b, lo: 0x95, hi: 0x95},
- {value: 0x01c7, lo: 0x96, hi: 0x96},
- {value: 0x01d0, lo: 0x97, hi: 0x97},
- {value: 0x01d6, lo: 0x98, hi: 0x98},
- {value: 0x01fa, lo: 0x99, hi: 0x99},
- {value: 0x01eb, lo: 0x9a, hi: 0x9a},
- {value: 0x01e8, lo: 0x9b, hi: 0x9b},
- {value: 0x0173, lo: 0x9c, hi: 0xac},
- {value: 0x0188, lo: 0xad, hi: 0xad},
- {value: 0x01a6, lo: 0xae, hi: 0xb4},
- {value: 0x045f, lo: 0xb5, hi: 0xb5},
- {value: 0x01bb, lo: 0xb6, hi: 0xbf},
- // Block 0x9b, offset 0x32d
- {value: 0x0003, lo: 0x0d},
- {value: 0x01d9, lo: 0x80, hi: 0x8e},
- {value: 0x045b, lo: 0x8f, hi: 0x8f},
- {value: 0x01c7, lo: 0x90, hi: 0x90},
- {value: 0x01d0, lo: 0x91, hi: 0x91},
- {value: 0x01d6, lo: 0x92, hi: 0x92},
- {value: 0x01fa, lo: 0x93, hi: 0x93},
- {value: 0x01eb, lo: 0x94, hi: 0x94},
- {value: 0x01e8, lo: 0x95, hi: 0x95},
- {value: 0x0173, lo: 0x96, hi: 0xa6},
- {value: 0x0188, lo: 0xa7, hi: 0xa7},
- {value: 0x01a6, lo: 0xa8, hi: 0xae},
- {value: 0x045f, lo: 0xaf, hi: 0xaf},
- {value: 0x01bb, lo: 0xb0, hi: 0xbf},
- // Block 0x9c, offset 0x33b
- {value: 0x0003, lo: 0x0d},
- {value: 0x01eb, lo: 0x80, hi: 0x88},
- {value: 0x045b, lo: 0x89, hi: 0x89},
- {value: 0x01c7, lo: 0x8a, hi: 0x8a},
- {value: 0x01d0, lo: 0x8b, hi: 0x8b},
- {value: 0x01d6, lo: 0x8c, hi: 0x8c},
- {value: 0x01fa, lo: 0x8d, hi: 0x8d},
- {value: 0x01eb, lo: 0x8e, hi: 0x8e},
- {value: 0x01e8, lo: 0x8f, hi: 0x8f},
- {value: 0x0173, lo: 0x90, hi: 0xa0},
- {value: 0x0188, lo: 0xa1, hi: 0xa1},
- {value: 0x01a6, lo: 0xa2, hi: 0xa8},
- {value: 0x045f, lo: 0xa9, hi: 0xa9},
- {value: 0x01bb, lo: 0xaa, hi: 0xbf},
- // Block 0x9d, offset 0x349
- {value: 0x0000, lo: 0x05},
- {value: 0x8132, lo: 0x80, hi: 0x86},
- {value: 0x8132, lo: 0x88, hi: 0x98},
- {value: 0x8132, lo: 0x9b, hi: 0xa1},
- {value: 0x8132, lo: 0xa3, hi: 0xa4},
- {value: 0x8132, lo: 0xa6, hi: 0xaa},
- // Block 0x9e, offset 0x34f
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0xac, hi: 0xaf},
- // Block 0x9f, offset 0x351
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0x90, hi: 0x96},
- // Block 0xa0, offset 0x353
- {value: 0x0000, lo: 0x02},
- {value: 0x8132, lo: 0x84, hi: 0x89},
- {value: 0x8102, lo: 0x8a, hi: 0x8a},
- // Block 0xa1, offset 0x356
- {value: 0x0002, lo: 0x0a},
- {value: 0x0063, lo: 0x80, hi: 0x89},
- {value: 0x1951, lo: 0x8a, hi: 0x8a},
- {value: 0x1984, lo: 0x8b, hi: 0x8b},
- {value: 0x199f, lo: 0x8c, hi: 0x8c},
- {value: 0x19a5, lo: 0x8d, hi: 0x8d},
- {value: 0x1bc3, lo: 0x8e, hi: 0x8e},
- {value: 0x19b1, lo: 0x8f, hi: 0x8f},
- {value: 0x197b, lo: 0xaa, hi: 0xaa},
- {value: 0x197e, lo: 0xab, hi: 0xab},
- {value: 0x1981, lo: 0xac, hi: 0xac},
- // Block 0xa2, offset 0x361
- {value: 0x0000, lo: 0x01},
- {value: 0x193f, lo: 0x90, hi: 0x90},
- // Block 0xa3, offset 0x363
- {value: 0x0028, lo: 0x09},
- {value: 0x2865, lo: 0x80, hi: 0x80},
- {value: 0x2829, lo: 0x81, hi: 0x81},
- {value: 0x2833, lo: 0x82, hi: 0x82},
- {value: 0x2847, lo: 0x83, hi: 0x84},
- {value: 0x2851, lo: 0x85, hi: 0x86},
- {value: 0x283d, lo: 0x87, hi: 0x87},
- {value: 0x285b, lo: 0x88, hi: 0x88},
- {value: 0x0b6f, lo: 0x90, hi: 0x90},
- {value: 0x08e7, lo: 0x91, hi: 0x91},
-}
-
-// recompMap: 7520 bytes (entries only)
-var recompMap map[uint32]rune
-var recompMapOnce sync.Once
-
-const recompMapPacked = "" +
- "\x00A\x03\x00\x00\x00\x00\xc0" + // 0x00410300: 0x000000C0
- "\x00A\x03\x01\x00\x00\x00\xc1" + // 0x00410301: 0x000000C1
- "\x00A\x03\x02\x00\x00\x00\xc2" + // 0x00410302: 0x000000C2
- "\x00A\x03\x03\x00\x00\x00\xc3" + // 0x00410303: 0x000000C3
- "\x00A\x03\b\x00\x00\x00\xc4" + // 0x00410308: 0x000000C4
- "\x00A\x03\n\x00\x00\x00\xc5" + // 0x0041030A: 0x000000C5
- "\x00C\x03'\x00\x00\x00\xc7" + // 0x00430327: 0x000000C7
- "\x00E\x03\x00\x00\x00\x00\xc8" + // 0x00450300: 0x000000C8
- "\x00E\x03\x01\x00\x00\x00\xc9" + // 0x00450301: 0x000000C9
- "\x00E\x03\x02\x00\x00\x00\xca" + // 0x00450302: 0x000000CA
- "\x00E\x03\b\x00\x00\x00\xcb" + // 0x00450308: 0x000000CB
- "\x00I\x03\x00\x00\x00\x00\xcc" + // 0x00490300: 0x000000CC
- "\x00I\x03\x01\x00\x00\x00\xcd" + // 0x00490301: 0x000000CD
- "\x00I\x03\x02\x00\x00\x00\xce" + // 0x00490302: 0x000000CE
- "\x00I\x03\b\x00\x00\x00\xcf" + // 0x00490308: 0x000000CF
- "\x00N\x03\x03\x00\x00\x00\xd1" + // 0x004E0303: 0x000000D1
- "\x00O\x03\x00\x00\x00\x00\xd2" + // 0x004F0300: 0x000000D2
- "\x00O\x03\x01\x00\x00\x00\xd3" + // 0x004F0301: 0x000000D3
- "\x00O\x03\x02\x00\x00\x00\xd4" + // 0x004F0302: 0x000000D4
- "\x00O\x03\x03\x00\x00\x00\xd5" + // 0x004F0303: 0x000000D5
- "\x00O\x03\b\x00\x00\x00\xd6" + // 0x004F0308: 0x000000D6
- "\x00U\x03\x00\x00\x00\x00\xd9" + // 0x00550300: 0x000000D9
- "\x00U\x03\x01\x00\x00\x00\xda" + // 0x00550301: 0x000000DA
- "\x00U\x03\x02\x00\x00\x00\xdb" + // 0x00550302: 0x000000DB
- "\x00U\x03\b\x00\x00\x00\xdc" + // 0x00550308: 0x000000DC
- "\x00Y\x03\x01\x00\x00\x00\xdd" + // 0x00590301: 0x000000DD
- "\x00a\x03\x00\x00\x00\x00\xe0" + // 0x00610300: 0x000000E0
- "\x00a\x03\x01\x00\x00\x00\xe1" + // 0x00610301: 0x000000E1
- "\x00a\x03\x02\x00\x00\x00\xe2" + // 0x00610302: 0x000000E2
- "\x00a\x03\x03\x00\x00\x00\xe3" + // 0x00610303: 0x000000E3
- "\x00a\x03\b\x00\x00\x00\xe4" + // 0x00610308: 0x000000E4
- "\x00a\x03\n\x00\x00\x00\xe5" + // 0x0061030A: 0x000000E5
- "\x00c\x03'\x00\x00\x00\xe7" + // 0x00630327: 0x000000E7
- "\x00e\x03\x00\x00\x00\x00\xe8" + // 0x00650300: 0x000000E8
- "\x00e\x03\x01\x00\x00\x00\xe9" + // 0x00650301: 0x000000E9
- "\x00e\x03\x02\x00\x00\x00\xea" + // 0x00650302: 0x000000EA
- "\x00e\x03\b\x00\x00\x00\xeb" + // 0x00650308: 0x000000EB
- "\x00i\x03\x00\x00\x00\x00\xec" + // 0x00690300: 0x000000EC
- "\x00i\x03\x01\x00\x00\x00\xed" + // 0x00690301: 0x000000ED
- "\x00i\x03\x02\x00\x00\x00\xee" + // 0x00690302: 0x000000EE
- "\x00i\x03\b\x00\x00\x00\xef" + // 0x00690308: 0x000000EF
- "\x00n\x03\x03\x00\x00\x00\xf1" + // 0x006E0303: 0x000000F1
- "\x00o\x03\x00\x00\x00\x00\xf2" + // 0x006F0300: 0x000000F2
- "\x00o\x03\x01\x00\x00\x00\xf3" + // 0x006F0301: 0x000000F3
- "\x00o\x03\x02\x00\x00\x00\xf4" + // 0x006F0302: 0x000000F4
- "\x00o\x03\x03\x00\x00\x00\xf5" + // 0x006F0303: 0x000000F5
- "\x00o\x03\b\x00\x00\x00\xf6" + // 0x006F0308: 0x000000F6
- "\x00u\x03\x00\x00\x00\x00\xf9" + // 0x00750300: 0x000000F9
- "\x00u\x03\x01\x00\x00\x00\xfa" + // 0x00750301: 0x000000FA
- "\x00u\x03\x02\x00\x00\x00\xfb" + // 0x00750302: 0x000000FB
- "\x00u\x03\b\x00\x00\x00\xfc" + // 0x00750308: 0x000000FC
- "\x00y\x03\x01\x00\x00\x00\xfd" + // 0x00790301: 0x000000FD
- "\x00y\x03\b\x00\x00\x00\xff" + // 0x00790308: 0x000000FF
- "\x00A\x03\x04\x00\x00\x01\x00" + // 0x00410304: 0x00000100
- "\x00a\x03\x04\x00\x00\x01\x01" + // 0x00610304: 0x00000101
- "\x00A\x03\x06\x00\x00\x01\x02" + // 0x00410306: 0x00000102
- "\x00a\x03\x06\x00\x00\x01\x03" + // 0x00610306: 0x00000103
- "\x00A\x03(\x00\x00\x01\x04" + // 0x00410328: 0x00000104
- "\x00a\x03(\x00\x00\x01\x05" + // 0x00610328: 0x00000105
- "\x00C\x03\x01\x00\x00\x01\x06" + // 0x00430301: 0x00000106
- "\x00c\x03\x01\x00\x00\x01\a" + // 0x00630301: 0x00000107
- "\x00C\x03\x02\x00\x00\x01\b" + // 0x00430302: 0x00000108
- "\x00c\x03\x02\x00\x00\x01\t" + // 0x00630302: 0x00000109
- "\x00C\x03\a\x00\x00\x01\n" + // 0x00430307: 0x0000010A
- "\x00c\x03\a\x00\x00\x01\v" + // 0x00630307: 0x0000010B
- "\x00C\x03\f\x00\x00\x01\f" + // 0x0043030C: 0x0000010C
- "\x00c\x03\f\x00\x00\x01\r" + // 0x0063030C: 0x0000010D
- "\x00D\x03\f\x00\x00\x01\x0e" + // 0x0044030C: 0x0000010E
- "\x00d\x03\f\x00\x00\x01\x0f" + // 0x0064030C: 0x0000010F
- "\x00E\x03\x04\x00\x00\x01\x12" + // 0x00450304: 0x00000112
- "\x00e\x03\x04\x00\x00\x01\x13" + // 0x00650304: 0x00000113
- "\x00E\x03\x06\x00\x00\x01\x14" + // 0x00450306: 0x00000114
- "\x00e\x03\x06\x00\x00\x01\x15" + // 0x00650306: 0x00000115
- "\x00E\x03\a\x00\x00\x01\x16" + // 0x00450307: 0x00000116
- "\x00e\x03\a\x00\x00\x01\x17" + // 0x00650307: 0x00000117
- "\x00E\x03(\x00\x00\x01\x18" + // 0x00450328: 0x00000118
- "\x00e\x03(\x00\x00\x01\x19" + // 0x00650328: 0x00000119
- "\x00E\x03\f\x00\x00\x01\x1a" + // 0x0045030C: 0x0000011A
- "\x00e\x03\f\x00\x00\x01\x1b" + // 0x0065030C: 0x0000011B
- "\x00G\x03\x02\x00\x00\x01\x1c" + // 0x00470302: 0x0000011C
- "\x00g\x03\x02\x00\x00\x01\x1d" + // 0x00670302: 0x0000011D
- "\x00G\x03\x06\x00\x00\x01\x1e" + // 0x00470306: 0x0000011E
- "\x00g\x03\x06\x00\x00\x01\x1f" + // 0x00670306: 0x0000011F
- "\x00G\x03\a\x00\x00\x01 " + // 0x00470307: 0x00000120
- "\x00g\x03\a\x00\x00\x01!" + // 0x00670307: 0x00000121
- "\x00G\x03'\x00\x00\x01\"" + // 0x00470327: 0x00000122
- "\x00g\x03'\x00\x00\x01#" + // 0x00670327: 0x00000123
- "\x00H\x03\x02\x00\x00\x01$" + // 0x00480302: 0x00000124
- "\x00h\x03\x02\x00\x00\x01%" + // 0x00680302: 0x00000125
- "\x00I\x03\x03\x00\x00\x01(" + // 0x00490303: 0x00000128
- "\x00i\x03\x03\x00\x00\x01)" + // 0x00690303: 0x00000129
- "\x00I\x03\x04\x00\x00\x01*" + // 0x00490304: 0x0000012A
- "\x00i\x03\x04\x00\x00\x01+" + // 0x00690304: 0x0000012B
- "\x00I\x03\x06\x00\x00\x01," + // 0x00490306: 0x0000012C
- "\x00i\x03\x06\x00\x00\x01-" + // 0x00690306: 0x0000012D
- "\x00I\x03(\x00\x00\x01." + // 0x00490328: 0x0000012E
- "\x00i\x03(\x00\x00\x01/" + // 0x00690328: 0x0000012F
- "\x00I\x03\a\x00\x00\x010" + // 0x00490307: 0x00000130
- "\x00J\x03\x02\x00\x00\x014" + // 0x004A0302: 0x00000134
- "\x00j\x03\x02\x00\x00\x015" + // 0x006A0302: 0x00000135
- "\x00K\x03'\x00\x00\x016" + // 0x004B0327: 0x00000136
- "\x00k\x03'\x00\x00\x017" + // 0x006B0327: 0x00000137
- "\x00L\x03\x01\x00\x00\x019" + // 0x004C0301: 0x00000139
- "\x00l\x03\x01\x00\x00\x01:" + // 0x006C0301: 0x0000013A
- "\x00L\x03'\x00\x00\x01;" + // 0x004C0327: 0x0000013B
- "\x00l\x03'\x00\x00\x01<" + // 0x006C0327: 0x0000013C
- "\x00L\x03\f\x00\x00\x01=" + // 0x004C030C: 0x0000013D
- "\x00l\x03\f\x00\x00\x01>" + // 0x006C030C: 0x0000013E
- "\x00N\x03\x01\x00\x00\x01C" + // 0x004E0301: 0x00000143
- "\x00n\x03\x01\x00\x00\x01D" + // 0x006E0301: 0x00000144
- "\x00N\x03'\x00\x00\x01E" + // 0x004E0327: 0x00000145
- "\x00n\x03'\x00\x00\x01F" + // 0x006E0327: 0x00000146
- "\x00N\x03\f\x00\x00\x01G" + // 0x004E030C: 0x00000147
- "\x00n\x03\f\x00\x00\x01H" + // 0x006E030C: 0x00000148
- "\x00O\x03\x04\x00\x00\x01L" + // 0x004F0304: 0x0000014C
- "\x00o\x03\x04\x00\x00\x01M" + // 0x006F0304: 0x0000014D
- "\x00O\x03\x06\x00\x00\x01N" + // 0x004F0306: 0x0000014E
- "\x00o\x03\x06\x00\x00\x01O" + // 0x006F0306: 0x0000014F
- "\x00O\x03\v\x00\x00\x01P" + // 0x004F030B: 0x00000150
- "\x00o\x03\v\x00\x00\x01Q" + // 0x006F030B: 0x00000151
- "\x00R\x03\x01\x00\x00\x01T" + // 0x00520301: 0x00000154
- "\x00r\x03\x01\x00\x00\x01U" + // 0x00720301: 0x00000155
- "\x00R\x03'\x00\x00\x01V" + // 0x00520327: 0x00000156
- "\x00r\x03'\x00\x00\x01W" + // 0x00720327: 0x00000157
- "\x00R\x03\f\x00\x00\x01X" + // 0x0052030C: 0x00000158
- "\x00r\x03\f\x00\x00\x01Y" + // 0x0072030C: 0x00000159
- "\x00S\x03\x01\x00\x00\x01Z" + // 0x00530301: 0x0000015A
- "\x00s\x03\x01\x00\x00\x01[" + // 0x00730301: 0x0000015B
- "\x00S\x03\x02\x00\x00\x01\\" + // 0x00530302: 0x0000015C
- "\x00s\x03\x02\x00\x00\x01]" + // 0x00730302: 0x0000015D
- "\x00S\x03'\x00\x00\x01^" + // 0x00530327: 0x0000015E
- "\x00s\x03'\x00\x00\x01_" + // 0x00730327: 0x0000015F
- "\x00S\x03\f\x00\x00\x01`" + // 0x0053030C: 0x00000160
- "\x00s\x03\f\x00\x00\x01a" + // 0x0073030C: 0x00000161
- "\x00T\x03'\x00\x00\x01b" + // 0x00540327: 0x00000162
- "\x00t\x03'\x00\x00\x01c" + // 0x00740327: 0x00000163
- "\x00T\x03\f\x00\x00\x01d" + // 0x0054030C: 0x00000164
- "\x00t\x03\f\x00\x00\x01e" + // 0x0074030C: 0x00000165
- "\x00U\x03\x03\x00\x00\x01h" + // 0x00550303: 0x00000168
- "\x00u\x03\x03\x00\x00\x01i" + // 0x00750303: 0x00000169
- "\x00U\x03\x04\x00\x00\x01j" + // 0x00550304: 0x0000016A
- "\x00u\x03\x04\x00\x00\x01k" + // 0x00750304: 0x0000016B
- "\x00U\x03\x06\x00\x00\x01l" + // 0x00550306: 0x0000016C
- "\x00u\x03\x06\x00\x00\x01m" + // 0x00750306: 0x0000016D
- "\x00U\x03\n\x00\x00\x01n" + // 0x0055030A: 0x0000016E
- "\x00u\x03\n\x00\x00\x01o" + // 0x0075030A: 0x0000016F
- "\x00U\x03\v\x00\x00\x01p" + // 0x0055030B: 0x00000170
- "\x00u\x03\v\x00\x00\x01q" + // 0x0075030B: 0x00000171
- "\x00U\x03(\x00\x00\x01r" + // 0x00550328: 0x00000172
- "\x00u\x03(\x00\x00\x01s" + // 0x00750328: 0x00000173
- "\x00W\x03\x02\x00\x00\x01t" + // 0x00570302: 0x00000174
- "\x00w\x03\x02\x00\x00\x01u" + // 0x00770302: 0x00000175
- "\x00Y\x03\x02\x00\x00\x01v" + // 0x00590302: 0x00000176
- "\x00y\x03\x02\x00\x00\x01w" + // 0x00790302: 0x00000177
- "\x00Y\x03\b\x00\x00\x01x" + // 0x00590308: 0x00000178
- "\x00Z\x03\x01\x00\x00\x01y" + // 0x005A0301: 0x00000179
- "\x00z\x03\x01\x00\x00\x01z" + // 0x007A0301: 0x0000017A
- "\x00Z\x03\a\x00\x00\x01{" + // 0x005A0307: 0x0000017B
- "\x00z\x03\a\x00\x00\x01|" + // 0x007A0307: 0x0000017C
- "\x00Z\x03\f\x00\x00\x01}" + // 0x005A030C: 0x0000017D
- "\x00z\x03\f\x00\x00\x01~" + // 0x007A030C: 0x0000017E
- "\x00O\x03\x1b\x00\x00\x01\xa0" + // 0x004F031B: 0x000001A0
- "\x00o\x03\x1b\x00\x00\x01\xa1" + // 0x006F031B: 0x000001A1
- "\x00U\x03\x1b\x00\x00\x01\xaf" + // 0x0055031B: 0x000001AF
- "\x00u\x03\x1b\x00\x00\x01\xb0" + // 0x0075031B: 0x000001B0
- "\x00A\x03\f\x00\x00\x01\xcd" + // 0x0041030C: 0x000001CD
- "\x00a\x03\f\x00\x00\x01\xce" + // 0x0061030C: 0x000001CE
- "\x00I\x03\f\x00\x00\x01\xcf" + // 0x0049030C: 0x000001CF
- "\x00i\x03\f\x00\x00\x01\xd0" + // 0x0069030C: 0x000001D0
- "\x00O\x03\f\x00\x00\x01\xd1" + // 0x004F030C: 0x000001D1
- "\x00o\x03\f\x00\x00\x01\xd2" + // 0x006F030C: 0x000001D2
- "\x00U\x03\f\x00\x00\x01\xd3" + // 0x0055030C: 0x000001D3
- "\x00u\x03\f\x00\x00\x01\xd4" + // 0x0075030C: 0x000001D4
- "\x00\xdc\x03\x04\x00\x00\x01\xd5" + // 0x00DC0304: 0x000001D5
- "\x00\xfc\x03\x04\x00\x00\x01\xd6" + // 0x00FC0304: 0x000001D6
- "\x00\xdc\x03\x01\x00\x00\x01\xd7" + // 0x00DC0301: 0x000001D7
- "\x00\xfc\x03\x01\x00\x00\x01\xd8" + // 0x00FC0301: 0x000001D8
- "\x00\xdc\x03\f\x00\x00\x01\xd9" + // 0x00DC030C: 0x000001D9
- "\x00\xfc\x03\f\x00\x00\x01\xda" + // 0x00FC030C: 0x000001DA
- "\x00\xdc\x03\x00\x00\x00\x01\xdb" + // 0x00DC0300: 0x000001DB
- "\x00\xfc\x03\x00\x00\x00\x01\xdc" + // 0x00FC0300: 0x000001DC
- "\x00\xc4\x03\x04\x00\x00\x01\xde" + // 0x00C40304: 0x000001DE
- "\x00\xe4\x03\x04\x00\x00\x01\xdf" + // 0x00E40304: 0x000001DF
- "\x02&\x03\x04\x00\x00\x01\xe0" + // 0x02260304: 0x000001E0
- "\x02'\x03\x04\x00\x00\x01\xe1" + // 0x02270304: 0x000001E1
- "\x00\xc6\x03\x04\x00\x00\x01\xe2" + // 0x00C60304: 0x000001E2
- "\x00\xe6\x03\x04\x00\x00\x01\xe3" + // 0x00E60304: 0x000001E3
- "\x00G\x03\f\x00\x00\x01\xe6" + // 0x0047030C: 0x000001E6
- "\x00g\x03\f\x00\x00\x01\xe7" + // 0x0067030C: 0x000001E7
- "\x00K\x03\f\x00\x00\x01\xe8" + // 0x004B030C: 0x000001E8
- "\x00k\x03\f\x00\x00\x01\xe9" + // 0x006B030C: 0x000001E9
- "\x00O\x03(\x00\x00\x01\xea" + // 0x004F0328: 0x000001EA
- "\x00o\x03(\x00\x00\x01\xeb" + // 0x006F0328: 0x000001EB
- "\x01\xea\x03\x04\x00\x00\x01\xec" + // 0x01EA0304: 0x000001EC
- "\x01\xeb\x03\x04\x00\x00\x01\xed" + // 0x01EB0304: 0x000001ED
- "\x01\xb7\x03\f\x00\x00\x01\xee" + // 0x01B7030C: 0x000001EE
- "\x02\x92\x03\f\x00\x00\x01\xef" + // 0x0292030C: 0x000001EF
- "\x00j\x03\f\x00\x00\x01\xf0" + // 0x006A030C: 0x000001F0
- "\x00G\x03\x01\x00\x00\x01\xf4" + // 0x00470301: 0x000001F4
- "\x00g\x03\x01\x00\x00\x01\xf5" + // 0x00670301: 0x000001F5
- "\x00N\x03\x00\x00\x00\x01\xf8" + // 0x004E0300: 0x000001F8
- "\x00n\x03\x00\x00\x00\x01\xf9" + // 0x006E0300: 0x000001F9
- "\x00\xc5\x03\x01\x00\x00\x01\xfa" + // 0x00C50301: 0x000001FA
- "\x00\xe5\x03\x01\x00\x00\x01\xfb" + // 0x00E50301: 0x000001FB
- "\x00\xc6\x03\x01\x00\x00\x01\xfc" + // 0x00C60301: 0x000001FC
- "\x00\xe6\x03\x01\x00\x00\x01\xfd" + // 0x00E60301: 0x000001FD
- "\x00\xd8\x03\x01\x00\x00\x01\xfe" + // 0x00D80301: 0x000001FE
- "\x00\xf8\x03\x01\x00\x00\x01\xff" + // 0x00F80301: 0x000001FF
- "\x00A\x03\x0f\x00\x00\x02\x00" + // 0x0041030F: 0x00000200
- "\x00a\x03\x0f\x00\x00\x02\x01" + // 0x0061030F: 0x00000201
- "\x00A\x03\x11\x00\x00\x02\x02" + // 0x00410311: 0x00000202
- "\x00a\x03\x11\x00\x00\x02\x03" + // 0x00610311: 0x00000203
- "\x00E\x03\x0f\x00\x00\x02\x04" + // 0x0045030F: 0x00000204
- "\x00e\x03\x0f\x00\x00\x02\x05" + // 0x0065030F: 0x00000205
- "\x00E\x03\x11\x00\x00\x02\x06" + // 0x00450311: 0x00000206
- "\x00e\x03\x11\x00\x00\x02\a" + // 0x00650311: 0x00000207
- "\x00I\x03\x0f\x00\x00\x02\b" + // 0x0049030F: 0x00000208
- "\x00i\x03\x0f\x00\x00\x02\t" + // 0x0069030F: 0x00000209
- "\x00I\x03\x11\x00\x00\x02\n" + // 0x00490311: 0x0000020A
- "\x00i\x03\x11\x00\x00\x02\v" + // 0x00690311: 0x0000020B
- "\x00O\x03\x0f\x00\x00\x02\f" + // 0x004F030F: 0x0000020C
- "\x00o\x03\x0f\x00\x00\x02\r" + // 0x006F030F: 0x0000020D
- "\x00O\x03\x11\x00\x00\x02\x0e" + // 0x004F0311: 0x0000020E
- "\x00o\x03\x11\x00\x00\x02\x0f" + // 0x006F0311: 0x0000020F
- "\x00R\x03\x0f\x00\x00\x02\x10" + // 0x0052030F: 0x00000210
- "\x00r\x03\x0f\x00\x00\x02\x11" + // 0x0072030F: 0x00000211
- "\x00R\x03\x11\x00\x00\x02\x12" + // 0x00520311: 0x00000212
- "\x00r\x03\x11\x00\x00\x02\x13" + // 0x00720311: 0x00000213
- "\x00U\x03\x0f\x00\x00\x02\x14" + // 0x0055030F: 0x00000214
- "\x00u\x03\x0f\x00\x00\x02\x15" + // 0x0075030F: 0x00000215
- "\x00U\x03\x11\x00\x00\x02\x16" + // 0x00550311: 0x00000216
- "\x00u\x03\x11\x00\x00\x02\x17" + // 0x00750311: 0x00000217
- "\x00S\x03&\x00\x00\x02\x18" + // 0x00530326: 0x00000218
- "\x00s\x03&\x00\x00\x02\x19" + // 0x00730326: 0x00000219
- "\x00T\x03&\x00\x00\x02\x1a" + // 0x00540326: 0x0000021A
- "\x00t\x03&\x00\x00\x02\x1b" + // 0x00740326: 0x0000021B
- "\x00H\x03\f\x00\x00\x02\x1e" + // 0x0048030C: 0x0000021E
- "\x00h\x03\f\x00\x00\x02\x1f" + // 0x0068030C: 0x0000021F
- "\x00A\x03\a\x00\x00\x02&" + // 0x00410307: 0x00000226
- "\x00a\x03\a\x00\x00\x02'" + // 0x00610307: 0x00000227
- "\x00E\x03'\x00\x00\x02(" + // 0x00450327: 0x00000228
- "\x00e\x03'\x00\x00\x02)" + // 0x00650327: 0x00000229
- "\x00\xd6\x03\x04\x00\x00\x02*" + // 0x00D60304: 0x0000022A
- "\x00\xf6\x03\x04\x00\x00\x02+" + // 0x00F60304: 0x0000022B
- "\x00\xd5\x03\x04\x00\x00\x02," + // 0x00D50304: 0x0000022C
- "\x00\xf5\x03\x04\x00\x00\x02-" + // 0x00F50304: 0x0000022D
- "\x00O\x03\a\x00\x00\x02." + // 0x004F0307: 0x0000022E
- "\x00o\x03\a\x00\x00\x02/" + // 0x006F0307: 0x0000022F
- "\x02.\x03\x04\x00\x00\x020" + // 0x022E0304: 0x00000230
- "\x02/\x03\x04\x00\x00\x021" + // 0x022F0304: 0x00000231
- "\x00Y\x03\x04\x00\x00\x022" + // 0x00590304: 0x00000232
- "\x00y\x03\x04\x00\x00\x023" + // 0x00790304: 0x00000233
- "\x00\xa8\x03\x01\x00\x00\x03\x85" + // 0x00A80301: 0x00000385
- "\x03\x91\x03\x01\x00\x00\x03\x86" + // 0x03910301: 0x00000386
- "\x03\x95\x03\x01\x00\x00\x03\x88" + // 0x03950301: 0x00000388
- "\x03\x97\x03\x01\x00\x00\x03\x89" + // 0x03970301: 0x00000389
- "\x03\x99\x03\x01\x00\x00\x03\x8a" + // 0x03990301: 0x0000038A
- "\x03\x9f\x03\x01\x00\x00\x03\x8c" + // 0x039F0301: 0x0000038C
- "\x03\xa5\x03\x01\x00\x00\x03\x8e" + // 0x03A50301: 0x0000038E
- "\x03\xa9\x03\x01\x00\x00\x03\x8f" + // 0x03A90301: 0x0000038F
- "\x03\xca\x03\x01\x00\x00\x03\x90" + // 0x03CA0301: 0x00000390
- "\x03\x99\x03\b\x00\x00\x03\xaa" + // 0x03990308: 0x000003AA
- "\x03\xa5\x03\b\x00\x00\x03\xab" + // 0x03A50308: 0x000003AB
- "\x03\xb1\x03\x01\x00\x00\x03\xac" + // 0x03B10301: 0x000003AC
- "\x03\xb5\x03\x01\x00\x00\x03\xad" + // 0x03B50301: 0x000003AD
- "\x03\xb7\x03\x01\x00\x00\x03\xae" + // 0x03B70301: 0x000003AE
- "\x03\xb9\x03\x01\x00\x00\x03\xaf" + // 0x03B90301: 0x000003AF
- "\x03\xcb\x03\x01\x00\x00\x03\xb0" + // 0x03CB0301: 0x000003B0
- "\x03\xb9\x03\b\x00\x00\x03\xca" + // 0x03B90308: 0x000003CA
- "\x03\xc5\x03\b\x00\x00\x03\xcb" + // 0x03C50308: 0x000003CB
- "\x03\xbf\x03\x01\x00\x00\x03\xcc" + // 0x03BF0301: 0x000003CC
- "\x03\xc5\x03\x01\x00\x00\x03\xcd" + // 0x03C50301: 0x000003CD
- "\x03\xc9\x03\x01\x00\x00\x03\xce" + // 0x03C90301: 0x000003CE
- "\x03\xd2\x03\x01\x00\x00\x03\xd3" + // 0x03D20301: 0x000003D3
- "\x03\xd2\x03\b\x00\x00\x03\xd4" + // 0x03D20308: 0x000003D4
- "\x04\x15\x03\x00\x00\x00\x04\x00" + // 0x04150300: 0x00000400
- "\x04\x15\x03\b\x00\x00\x04\x01" + // 0x04150308: 0x00000401
- "\x04\x13\x03\x01\x00\x00\x04\x03" + // 0x04130301: 0x00000403
- "\x04\x06\x03\b\x00\x00\x04\a" + // 0x04060308: 0x00000407
- "\x04\x1a\x03\x01\x00\x00\x04\f" + // 0x041A0301: 0x0000040C
- "\x04\x18\x03\x00\x00\x00\x04\r" + // 0x04180300: 0x0000040D
- "\x04#\x03\x06\x00\x00\x04\x0e" + // 0x04230306: 0x0000040E
- "\x04\x18\x03\x06\x00\x00\x04\x19" + // 0x04180306: 0x00000419
- "\x048\x03\x06\x00\x00\x049" + // 0x04380306: 0x00000439
- "\x045\x03\x00\x00\x00\x04P" + // 0x04350300: 0x00000450
- "\x045\x03\b\x00\x00\x04Q" + // 0x04350308: 0x00000451
- "\x043\x03\x01\x00\x00\x04S" + // 0x04330301: 0x00000453
- "\x04V\x03\b\x00\x00\x04W" + // 0x04560308: 0x00000457
- "\x04:\x03\x01\x00\x00\x04\\" + // 0x043A0301: 0x0000045C
- "\x048\x03\x00\x00\x00\x04]" + // 0x04380300: 0x0000045D
- "\x04C\x03\x06\x00\x00\x04^" + // 0x04430306: 0x0000045E
- "\x04t\x03\x0f\x00\x00\x04v" + // 0x0474030F: 0x00000476
- "\x04u\x03\x0f\x00\x00\x04w" + // 0x0475030F: 0x00000477
- "\x04\x16\x03\x06\x00\x00\x04\xc1" + // 0x04160306: 0x000004C1
- "\x046\x03\x06\x00\x00\x04\xc2" + // 0x04360306: 0x000004C2
- "\x04\x10\x03\x06\x00\x00\x04\xd0" + // 0x04100306: 0x000004D0
- "\x040\x03\x06\x00\x00\x04\xd1" + // 0x04300306: 0x000004D1
- "\x04\x10\x03\b\x00\x00\x04\xd2" + // 0x04100308: 0x000004D2
- "\x040\x03\b\x00\x00\x04\xd3" + // 0x04300308: 0x000004D3
- "\x04\x15\x03\x06\x00\x00\x04\xd6" + // 0x04150306: 0x000004D6
- "\x045\x03\x06\x00\x00\x04\xd7" + // 0x04350306: 0x000004D7
- "\x04\xd8\x03\b\x00\x00\x04\xda" + // 0x04D80308: 0x000004DA
- "\x04\xd9\x03\b\x00\x00\x04\xdb" + // 0x04D90308: 0x000004DB
- "\x04\x16\x03\b\x00\x00\x04\xdc" + // 0x04160308: 0x000004DC
- "\x046\x03\b\x00\x00\x04\xdd" + // 0x04360308: 0x000004DD
- "\x04\x17\x03\b\x00\x00\x04\xde" + // 0x04170308: 0x000004DE
- "\x047\x03\b\x00\x00\x04\xdf" + // 0x04370308: 0x000004DF
- "\x04\x18\x03\x04\x00\x00\x04\xe2" + // 0x04180304: 0x000004E2
- "\x048\x03\x04\x00\x00\x04\xe3" + // 0x04380304: 0x000004E3
- "\x04\x18\x03\b\x00\x00\x04\xe4" + // 0x04180308: 0x000004E4
- "\x048\x03\b\x00\x00\x04\xe5" + // 0x04380308: 0x000004E5
- "\x04\x1e\x03\b\x00\x00\x04\xe6" + // 0x041E0308: 0x000004E6
- "\x04>\x03\b\x00\x00\x04\xe7" + // 0x043E0308: 0x000004E7
- "\x04\xe8\x03\b\x00\x00\x04\xea" + // 0x04E80308: 0x000004EA
- "\x04\xe9\x03\b\x00\x00\x04\xeb" + // 0x04E90308: 0x000004EB
- "\x04-\x03\b\x00\x00\x04\xec" + // 0x042D0308: 0x000004EC
- "\x04M\x03\b\x00\x00\x04\xed" + // 0x044D0308: 0x000004ED
- "\x04#\x03\x04\x00\x00\x04\xee" + // 0x04230304: 0x000004EE
- "\x04C\x03\x04\x00\x00\x04\xef" + // 0x04430304: 0x000004EF
- "\x04#\x03\b\x00\x00\x04\xf0" + // 0x04230308: 0x000004F0
- "\x04C\x03\b\x00\x00\x04\xf1" + // 0x04430308: 0x000004F1
- "\x04#\x03\v\x00\x00\x04\xf2" + // 0x0423030B: 0x000004F2
- "\x04C\x03\v\x00\x00\x04\xf3" + // 0x0443030B: 0x000004F3
- "\x04'\x03\b\x00\x00\x04\xf4" + // 0x04270308: 0x000004F4
- "\x04G\x03\b\x00\x00\x04\xf5" + // 0x04470308: 0x000004F5
- "\x04+\x03\b\x00\x00\x04\xf8" + // 0x042B0308: 0x000004F8
- "\x04K\x03\b\x00\x00\x04\xf9" + // 0x044B0308: 0x000004F9
- "\x06'\x06S\x00\x00\x06\"" + // 0x06270653: 0x00000622
- "\x06'\x06T\x00\x00\x06#" + // 0x06270654: 0x00000623
- "\x06H\x06T\x00\x00\x06$" + // 0x06480654: 0x00000624
- "\x06'\x06U\x00\x00\x06%" + // 0x06270655: 0x00000625
- "\x06J\x06T\x00\x00\x06&" + // 0x064A0654: 0x00000626
- "\x06\xd5\x06T\x00\x00\x06\xc0" + // 0x06D50654: 0x000006C0
- "\x06\xc1\x06T\x00\x00\x06\xc2" + // 0x06C10654: 0x000006C2
- "\x06\xd2\x06T\x00\x00\x06\xd3" + // 0x06D20654: 0x000006D3
- "\t(\t<\x00\x00\t)" + // 0x0928093C: 0x00000929
- "\t0\t<\x00\x00\t1" + // 0x0930093C: 0x00000931
- "\t3\t<\x00\x00\t4" + // 0x0933093C: 0x00000934
- "\t\xc7\t\xbe\x00\x00\t\xcb" + // 0x09C709BE: 0x000009CB
- "\t\xc7\t\xd7\x00\x00\t\xcc" + // 0x09C709D7: 0x000009CC
- "\vG\vV\x00\x00\vH" + // 0x0B470B56: 0x00000B48
- "\vG\v>\x00\x00\vK" + // 0x0B470B3E: 0x00000B4B
- "\vG\vW\x00\x00\vL" + // 0x0B470B57: 0x00000B4C
- "\v\x92\v\xd7\x00\x00\v\x94" + // 0x0B920BD7: 0x00000B94
- "\v\xc6\v\xbe\x00\x00\v\xca" + // 0x0BC60BBE: 0x00000BCA
- "\v\xc7\v\xbe\x00\x00\v\xcb" + // 0x0BC70BBE: 0x00000BCB
- "\v\xc6\v\xd7\x00\x00\v\xcc" + // 0x0BC60BD7: 0x00000BCC
- "\fF\fV\x00\x00\fH" + // 0x0C460C56: 0x00000C48
- "\f\xbf\f\xd5\x00\x00\f\xc0" + // 0x0CBF0CD5: 0x00000CC0
- "\f\xc6\f\xd5\x00\x00\f\xc7" + // 0x0CC60CD5: 0x00000CC7
- "\f\xc6\f\xd6\x00\x00\f\xc8" + // 0x0CC60CD6: 0x00000CC8
- "\f\xc6\f\xc2\x00\x00\f\xca" + // 0x0CC60CC2: 0x00000CCA
- "\f\xca\f\xd5\x00\x00\f\xcb" + // 0x0CCA0CD5: 0x00000CCB
- "\rF\r>\x00\x00\rJ" + // 0x0D460D3E: 0x00000D4A
- "\rG\r>\x00\x00\rK" + // 0x0D470D3E: 0x00000D4B
- "\rF\rW\x00\x00\rL" + // 0x0D460D57: 0x00000D4C
- "\r\xd9\r\xca\x00\x00\r\xda" + // 0x0DD90DCA: 0x00000DDA
- "\r\xd9\r\xcf\x00\x00\r\xdc" + // 0x0DD90DCF: 0x00000DDC
- "\r\xdc\r\xca\x00\x00\r\xdd" + // 0x0DDC0DCA: 0x00000DDD
- "\r\xd9\r\xdf\x00\x00\r\xde" + // 0x0DD90DDF: 0x00000DDE
- "\x10%\x10.\x00\x00\x10&" + // 0x1025102E: 0x00001026
- "\x1b\x05\x1b5\x00\x00\x1b\x06" + // 0x1B051B35: 0x00001B06
- "\x1b\a\x1b5\x00\x00\x1b\b" + // 0x1B071B35: 0x00001B08
- "\x1b\t\x1b5\x00\x00\x1b\n" + // 0x1B091B35: 0x00001B0A
- "\x1b\v\x1b5\x00\x00\x1b\f" + // 0x1B0B1B35: 0x00001B0C
- "\x1b\r\x1b5\x00\x00\x1b\x0e" + // 0x1B0D1B35: 0x00001B0E
- "\x1b\x11\x1b5\x00\x00\x1b\x12" + // 0x1B111B35: 0x00001B12
- "\x1b:\x1b5\x00\x00\x1b;" + // 0x1B3A1B35: 0x00001B3B
- "\x1b<\x1b5\x00\x00\x1b=" + // 0x1B3C1B35: 0x00001B3D
- "\x1b>\x1b5\x00\x00\x1b@" + // 0x1B3E1B35: 0x00001B40
- "\x1b?\x1b5\x00\x00\x1bA" + // 0x1B3F1B35: 0x00001B41
- "\x1bB\x1b5\x00\x00\x1bC" + // 0x1B421B35: 0x00001B43
- "\x00A\x03%\x00\x00\x1e\x00" + // 0x00410325: 0x00001E00
- "\x00a\x03%\x00\x00\x1e\x01" + // 0x00610325: 0x00001E01
- "\x00B\x03\a\x00\x00\x1e\x02" + // 0x00420307: 0x00001E02
- "\x00b\x03\a\x00\x00\x1e\x03" + // 0x00620307: 0x00001E03
- "\x00B\x03#\x00\x00\x1e\x04" + // 0x00420323: 0x00001E04
- "\x00b\x03#\x00\x00\x1e\x05" + // 0x00620323: 0x00001E05
- "\x00B\x031\x00\x00\x1e\x06" + // 0x00420331: 0x00001E06
- "\x00b\x031\x00\x00\x1e\a" + // 0x00620331: 0x00001E07
- "\x00\xc7\x03\x01\x00\x00\x1e\b" + // 0x00C70301: 0x00001E08
- "\x00\xe7\x03\x01\x00\x00\x1e\t" + // 0x00E70301: 0x00001E09
- "\x00D\x03\a\x00\x00\x1e\n" + // 0x00440307: 0x00001E0A
- "\x00d\x03\a\x00\x00\x1e\v" + // 0x00640307: 0x00001E0B
- "\x00D\x03#\x00\x00\x1e\f" + // 0x00440323: 0x00001E0C
- "\x00d\x03#\x00\x00\x1e\r" + // 0x00640323: 0x00001E0D
- "\x00D\x031\x00\x00\x1e\x0e" + // 0x00440331: 0x00001E0E
- "\x00d\x031\x00\x00\x1e\x0f" + // 0x00640331: 0x00001E0F
- "\x00D\x03'\x00\x00\x1e\x10" + // 0x00440327: 0x00001E10
- "\x00d\x03'\x00\x00\x1e\x11" + // 0x00640327: 0x00001E11
- "\x00D\x03-\x00\x00\x1e\x12" + // 0x0044032D: 0x00001E12
- "\x00d\x03-\x00\x00\x1e\x13" + // 0x0064032D: 0x00001E13
- "\x01\x12\x03\x00\x00\x00\x1e\x14" + // 0x01120300: 0x00001E14
- "\x01\x13\x03\x00\x00\x00\x1e\x15" + // 0x01130300: 0x00001E15
- "\x01\x12\x03\x01\x00\x00\x1e\x16" + // 0x01120301: 0x00001E16
- "\x01\x13\x03\x01\x00\x00\x1e\x17" + // 0x01130301: 0x00001E17
- "\x00E\x03-\x00\x00\x1e\x18" + // 0x0045032D: 0x00001E18
- "\x00e\x03-\x00\x00\x1e\x19" + // 0x0065032D: 0x00001E19
- "\x00E\x030\x00\x00\x1e\x1a" + // 0x00450330: 0x00001E1A
- "\x00e\x030\x00\x00\x1e\x1b" + // 0x00650330: 0x00001E1B
- "\x02(\x03\x06\x00\x00\x1e\x1c" + // 0x02280306: 0x00001E1C
- "\x02)\x03\x06\x00\x00\x1e\x1d" + // 0x02290306: 0x00001E1D
- "\x00F\x03\a\x00\x00\x1e\x1e" + // 0x00460307: 0x00001E1E
- "\x00f\x03\a\x00\x00\x1e\x1f" + // 0x00660307: 0x00001E1F
- "\x00G\x03\x04\x00\x00\x1e " + // 0x00470304: 0x00001E20
- "\x00g\x03\x04\x00\x00\x1e!" + // 0x00670304: 0x00001E21
- "\x00H\x03\a\x00\x00\x1e\"" + // 0x00480307: 0x00001E22
- "\x00h\x03\a\x00\x00\x1e#" + // 0x00680307: 0x00001E23
- "\x00H\x03#\x00\x00\x1e$" + // 0x00480323: 0x00001E24
- "\x00h\x03#\x00\x00\x1e%" + // 0x00680323: 0x00001E25
- "\x00H\x03\b\x00\x00\x1e&" + // 0x00480308: 0x00001E26
- "\x00h\x03\b\x00\x00\x1e'" + // 0x00680308: 0x00001E27
- "\x00H\x03'\x00\x00\x1e(" + // 0x00480327: 0x00001E28
- "\x00h\x03'\x00\x00\x1e)" + // 0x00680327: 0x00001E29
- "\x00H\x03.\x00\x00\x1e*" + // 0x0048032E: 0x00001E2A
- "\x00h\x03.\x00\x00\x1e+" + // 0x0068032E: 0x00001E2B
- "\x00I\x030\x00\x00\x1e," + // 0x00490330: 0x00001E2C
- "\x00i\x030\x00\x00\x1e-" + // 0x00690330: 0x00001E2D
- "\x00\xcf\x03\x01\x00\x00\x1e." + // 0x00CF0301: 0x00001E2E
- "\x00\xef\x03\x01\x00\x00\x1e/" + // 0x00EF0301: 0x00001E2F
- "\x00K\x03\x01\x00\x00\x1e0" + // 0x004B0301: 0x00001E30
- "\x00k\x03\x01\x00\x00\x1e1" + // 0x006B0301: 0x00001E31
- "\x00K\x03#\x00\x00\x1e2" + // 0x004B0323: 0x00001E32
- "\x00k\x03#\x00\x00\x1e3" + // 0x006B0323: 0x00001E33
- "\x00K\x031\x00\x00\x1e4" + // 0x004B0331: 0x00001E34
- "\x00k\x031\x00\x00\x1e5" + // 0x006B0331: 0x00001E35
- "\x00L\x03#\x00\x00\x1e6" + // 0x004C0323: 0x00001E36
- "\x00l\x03#\x00\x00\x1e7" + // 0x006C0323: 0x00001E37
- "\x1e6\x03\x04\x00\x00\x1e8" + // 0x1E360304: 0x00001E38
- "\x1e7\x03\x04\x00\x00\x1e9" + // 0x1E370304: 0x00001E39
- "\x00L\x031\x00\x00\x1e:" + // 0x004C0331: 0x00001E3A
- "\x00l\x031\x00\x00\x1e;" + // 0x006C0331: 0x00001E3B
- "\x00L\x03-\x00\x00\x1e<" + // 0x004C032D: 0x00001E3C
- "\x00l\x03-\x00\x00\x1e=" + // 0x006C032D: 0x00001E3D
- "\x00M\x03\x01\x00\x00\x1e>" + // 0x004D0301: 0x00001E3E
- "\x00m\x03\x01\x00\x00\x1e?" + // 0x006D0301: 0x00001E3F
- "\x00M\x03\a\x00\x00\x1e@" + // 0x004D0307: 0x00001E40
- "\x00m\x03\a\x00\x00\x1eA" + // 0x006D0307: 0x00001E41
- "\x00M\x03#\x00\x00\x1eB" + // 0x004D0323: 0x00001E42
- "\x00m\x03#\x00\x00\x1eC" + // 0x006D0323: 0x00001E43
- "\x00N\x03\a\x00\x00\x1eD" + // 0x004E0307: 0x00001E44
- "\x00n\x03\a\x00\x00\x1eE" + // 0x006E0307: 0x00001E45
- "\x00N\x03#\x00\x00\x1eF" + // 0x004E0323: 0x00001E46
- "\x00n\x03#\x00\x00\x1eG" + // 0x006E0323: 0x00001E47
- "\x00N\x031\x00\x00\x1eH" + // 0x004E0331: 0x00001E48
- "\x00n\x031\x00\x00\x1eI" + // 0x006E0331: 0x00001E49
- "\x00N\x03-\x00\x00\x1eJ" + // 0x004E032D: 0x00001E4A
- "\x00n\x03-\x00\x00\x1eK" + // 0x006E032D: 0x00001E4B
- "\x00\xd5\x03\x01\x00\x00\x1eL" + // 0x00D50301: 0x00001E4C
- "\x00\xf5\x03\x01\x00\x00\x1eM" + // 0x00F50301: 0x00001E4D
- "\x00\xd5\x03\b\x00\x00\x1eN" + // 0x00D50308: 0x00001E4E
- "\x00\xf5\x03\b\x00\x00\x1eO" + // 0x00F50308: 0x00001E4F
- "\x01L\x03\x00\x00\x00\x1eP" + // 0x014C0300: 0x00001E50
- "\x01M\x03\x00\x00\x00\x1eQ" + // 0x014D0300: 0x00001E51
- "\x01L\x03\x01\x00\x00\x1eR" + // 0x014C0301: 0x00001E52
- "\x01M\x03\x01\x00\x00\x1eS" + // 0x014D0301: 0x00001E53
- "\x00P\x03\x01\x00\x00\x1eT" + // 0x00500301: 0x00001E54
- "\x00p\x03\x01\x00\x00\x1eU" + // 0x00700301: 0x00001E55
- "\x00P\x03\a\x00\x00\x1eV" + // 0x00500307: 0x00001E56
- "\x00p\x03\a\x00\x00\x1eW" + // 0x00700307: 0x00001E57
- "\x00R\x03\a\x00\x00\x1eX" + // 0x00520307: 0x00001E58
- "\x00r\x03\a\x00\x00\x1eY" + // 0x00720307: 0x00001E59
- "\x00R\x03#\x00\x00\x1eZ" + // 0x00520323: 0x00001E5A
- "\x00r\x03#\x00\x00\x1e[" + // 0x00720323: 0x00001E5B
- "\x1eZ\x03\x04\x00\x00\x1e\\" + // 0x1E5A0304: 0x00001E5C
- "\x1e[\x03\x04\x00\x00\x1e]" + // 0x1E5B0304: 0x00001E5D
- "\x00R\x031\x00\x00\x1e^" + // 0x00520331: 0x00001E5E
- "\x00r\x031\x00\x00\x1e_" + // 0x00720331: 0x00001E5F
- "\x00S\x03\a\x00\x00\x1e`" + // 0x00530307: 0x00001E60
- "\x00s\x03\a\x00\x00\x1ea" + // 0x00730307: 0x00001E61
- "\x00S\x03#\x00\x00\x1eb" + // 0x00530323: 0x00001E62
- "\x00s\x03#\x00\x00\x1ec" + // 0x00730323: 0x00001E63
- "\x01Z\x03\a\x00\x00\x1ed" + // 0x015A0307: 0x00001E64
- "\x01[\x03\a\x00\x00\x1ee" + // 0x015B0307: 0x00001E65
- "\x01`\x03\a\x00\x00\x1ef" + // 0x01600307: 0x00001E66
- "\x01a\x03\a\x00\x00\x1eg" + // 0x01610307: 0x00001E67
- "\x1eb\x03\a\x00\x00\x1eh" + // 0x1E620307: 0x00001E68
- "\x1ec\x03\a\x00\x00\x1ei" + // 0x1E630307: 0x00001E69
- "\x00T\x03\a\x00\x00\x1ej" + // 0x00540307: 0x00001E6A
- "\x00t\x03\a\x00\x00\x1ek" + // 0x00740307: 0x00001E6B
- "\x00T\x03#\x00\x00\x1el" + // 0x00540323: 0x00001E6C
- "\x00t\x03#\x00\x00\x1em" + // 0x00740323: 0x00001E6D
- "\x00T\x031\x00\x00\x1en" + // 0x00540331: 0x00001E6E
- "\x00t\x031\x00\x00\x1eo" + // 0x00740331: 0x00001E6F
- "\x00T\x03-\x00\x00\x1ep" + // 0x0054032D: 0x00001E70
- "\x00t\x03-\x00\x00\x1eq" + // 0x0074032D: 0x00001E71
- "\x00U\x03$\x00\x00\x1er" + // 0x00550324: 0x00001E72
- "\x00u\x03$\x00\x00\x1es" + // 0x00750324: 0x00001E73
- "\x00U\x030\x00\x00\x1et" + // 0x00550330: 0x00001E74
- "\x00u\x030\x00\x00\x1eu" + // 0x00750330: 0x00001E75
- "\x00U\x03-\x00\x00\x1ev" + // 0x0055032D: 0x00001E76
- "\x00u\x03-\x00\x00\x1ew" + // 0x0075032D: 0x00001E77
- "\x01h\x03\x01\x00\x00\x1ex" + // 0x01680301: 0x00001E78
- "\x01i\x03\x01\x00\x00\x1ey" + // 0x01690301: 0x00001E79
- "\x01j\x03\b\x00\x00\x1ez" + // 0x016A0308: 0x00001E7A
- "\x01k\x03\b\x00\x00\x1e{" + // 0x016B0308: 0x00001E7B
- "\x00V\x03\x03\x00\x00\x1e|" + // 0x00560303: 0x00001E7C
- "\x00v\x03\x03\x00\x00\x1e}" + // 0x00760303: 0x00001E7D
- "\x00V\x03#\x00\x00\x1e~" + // 0x00560323: 0x00001E7E
- "\x00v\x03#\x00\x00\x1e\u007f" + // 0x00760323: 0x00001E7F
- "\x00W\x03\x00\x00\x00\x1e\x80" + // 0x00570300: 0x00001E80
- "\x00w\x03\x00\x00\x00\x1e\x81" + // 0x00770300: 0x00001E81
- "\x00W\x03\x01\x00\x00\x1e\x82" + // 0x00570301: 0x00001E82
- "\x00w\x03\x01\x00\x00\x1e\x83" + // 0x00770301: 0x00001E83
- "\x00W\x03\b\x00\x00\x1e\x84" + // 0x00570308: 0x00001E84
- "\x00w\x03\b\x00\x00\x1e\x85" + // 0x00770308: 0x00001E85
- "\x00W\x03\a\x00\x00\x1e\x86" + // 0x00570307: 0x00001E86
- "\x00w\x03\a\x00\x00\x1e\x87" + // 0x00770307: 0x00001E87
- "\x00W\x03#\x00\x00\x1e\x88" + // 0x00570323: 0x00001E88
- "\x00w\x03#\x00\x00\x1e\x89" + // 0x00770323: 0x00001E89
- "\x00X\x03\a\x00\x00\x1e\x8a" + // 0x00580307: 0x00001E8A
- "\x00x\x03\a\x00\x00\x1e\x8b" + // 0x00780307: 0x00001E8B
- "\x00X\x03\b\x00\x00\x1e\x8c" + // 0x00580308: 0x00001E8C
- "\x00x\x03\b\x00\x00\x1e\x8d" + // 0x00780308: 0x00001E8D
- "\x00Y\x03\a\x00\x00\x1e\x8e" + // 0x00590307: 0x00001E8E
- "\x00y\x03\a\x00\x00\x1e\x8f" + // 0x00790307: 0x00001E8F
- "\x00Z\x03\x02\x00\x00\x1e\x90" + // 0x005A0302: 0x00001E90
- "\x00z\x03\x02\x00\x00\x1e\x91" + // 0x007A0302: 0x00001E91
- "\x00Z\x03#\x00\x00\x1e\x92" + // 0x005A0323: 0x00001E92
- "\x00z\x03#\x00\x00\x1e\x93" + // 0x007A0323: 0x00001E93
- "\x00Z\x031\x00\x00\x1e\x94" + // 0x005A0331: 0x00001E94
- "\x00z\x031\x00\x00\x1e\x95" + // 0x007A0331: 0x00001E95
- "\x00h\x031\x00\x00\x1e\x96" + // 0x00680331: 0x00001E96
- "\x00t\x03\b\x00\x00\x1e\x97" + // 0x00740308: 0x00001E97
- "\x00w\x03\n\x00\x00\x1e\x98" + // 0x0077030A: 0x00001E98
- "\x00y\x03\n\x00\x00\x1e\x99" + // 0x0079030A: 0x00001E99
- "\x01\u007f\x03\a\x00\x00\x1e\x9b" + // 0x017F0307: 0x00001E9B
- "\x00A\x03#\x00\x00\x1e\xa0" + // 0x00410323: 0x00001EA0
- "\x00a\x03#\x00\x00\x1e\xa1" + // 0x00610323: 0x00001EA1
- "\x00A\x03\t\x00\x00\x1e\xa2" + // 0x00410309: 0x00001EA2
- "\x00a\x03\t\x00\x00\x1e\xa3" + // 0x00610309: 0x00001EA3
- "\x00\xc2\x03\x01\x00\x00\x1e\xa4" + // 0x00C20301: 0x00001EA4
- "\x00\xe2\x03\x01\x00\x00\x1e\xa5" + // 0x00E20301: 0x00001EA5
- "\x00\xc2\x03\x00\x00\x00\x1e\xa6" + // 0x00C20300: 0x00001EA6
- "\x00\xe2\x03\x00\x00\x00\x1e\xa7" + // 0x00E20300: 0x00001EA7
- "\x00\xc2\x03\t\x00\x00\x1e\xa8" + // 0x00C20309: 0x00001EA8
- "\x00\xe2\x03\t\x00\x00\x1e\xa9" + // 0x00E20309: 0x00001EA9
- "\x00\xc2\x03\x03\x00\x00\x1e\xaa" + // 0x00C20303: 0x00001EAA
- "\x00\xe2\x03\x03\x00\x00\x1e\xab" + // 0x00E20303: 0x00001EAB
- "\x1e\xa0\x03\x02\x00\x00\x1e\xac" + // 0x1EA00302: 0x00001EAC
- "\x1e\xa1\x03\x02\x00\x00\x1e\xad" + // 0x1EA10302: 0x00001EAD
- "\x01\x02\x03\x01\x00\x00\x1e\xae" + // 0x01020301: 0x00001EAE
- "\x01\x03\x03\x01\x00\x00\x1e\xaf" + // 0x01030301: 0x00001EAF
- "\x01\x02\x03\x00\x00\x00\x1e\xb0" + // 0x01020300: 0x00001EB0
- "\x01\x03\x03\x00\x00\x00\x1e\xb1" + // 0x01030300: 0x00001EB1
- "\x01\x02\x03\t\x00\x00\x1e\xb2" + // 0x01020309: 0x00001EB2
- "\x01\x03\x03\t\x00\x00\x1e\xb3" + // 0x01030309: 0x00001EB3
- "\x01\x02\x03\x03\x00\x00\x1e\xb4" + // 0x01020303: 0x00001EB4
- "\x01\x03\x03\x03\x00\x00\x1e\xb5" + // 0x01030303: 0x00001EB5
- "\x1e\xa0\x03\x06\x00\x00\x1e\xb6" + // 0x1EA00306: 0x00001EB6
- "\x1e\xa1\x03\x06\x00\x00\x1e\xb7" + // 0x1EA10306: 0x00001EB7
- "\x00E\x03#\x00\x00\x1e\xb8" + // 0x00450323: 0x00001EB8
- "\x00e\x03#\x00\x00\x1e\xb9" + // 0x00650323: 0x00001EB9
- "\x00E\x03\t\x00\x00\x1e\xba" + // 0x00450309: 0x00001EBA
- "\x00e\x03\t\x00\x00\x1e\xbb" + // 0x00650309: 0x00001EBB
- "\x00E\x03\x03\x00\x00\x1e\xbc" + // 0x00450303: 0x00001EBC
- "\x00e\x03\x03\x00\x00\x1e\xbd" + // 0x00650303: 0x00001EBD
- "\x00\xca\x03\x01\x00\x00\x1e\xbe" + // 0x00CA0301: 0x00001EBE
- "\x00\xea\x03\x01\x00\x00\x1e\xbf" + // 0x00EA0301: 0x00001EBF
- "\x00\xca\x03\x00\x00\x00\x1e\xc0" + // 0x00CA0300: 0x00001EC0
- "\x00\xea\x03\x00\x00\x00\x1e\xc1" + // 0x00EA0300: 0x00001EC1
- "\x00\xca\x03\t\x00\x00\x1e\xc2" + // 0x00CA0309: 0x00001EC2
- "\x00\xea\x03\t\x00\x00\x1e\xc3" + // 0x00EA0309: 0x00001EC3
- "\x00\xca\x03\x03\x00\x00\x1e\xc4" + // 0x00CA0303: 0x00001EC4
- "\x00\xea\x03\x03\x00\x00\x1e\xc5" + // 0x00EA0303: 0x00001EC5
- "\x1e\xb8\x03\x02\x00\x00\x1e\xc6" + // 0x1EB80302: 0x00001EC6
- "\x1e\xb9\x03\x02\x00\x00\x1e\xc7" + // 0x1EB90302: 0x00001EC7
- "\x00I\x03\t\x00\x00\x1e\xc8" + // 0x00490309: 0x00001EC8
- "\x00i\x03\t\x00\x00\x1e\xc9" + // 0x00690309: 0x00001EC9
- "\x00I\x03#\x00\x00\x1e\xca" + // 0x00490323: 0x00001ECA
- "\x00i\x03#\x00\x00\x1e\xcb" + // 0x00690323: 0x00001ECB
- "\x00O\x03#\x00\x00\x1e\xcc" + // 0x004F0323: 0x00001ECC
- "\x00o\x03#\x00\x00\x1e\xcd" + // 0x006F0323: 0x00001ECD
- "\x00O\x03\t\x00\x00\x1e\xce" + // 0x004F0309: 0x00001ECE
- "\x00o\x03\t\x00\x00\x1e\xcf" + // 0x006F0309: 0x00001ECF
- "\x00\xd4\x03\x01\x00\x00\x1e\xd0" + // 0x00D40301: 0x00001ED0
- "\x00\xf4\x03\x01\x00\x00\x1e\xd1" + // 0x00F40301: 0x00001ED1
- "\x00\xd4\x03\x00\x00\x00\x1e\xd2" + // 0x00D40300: 0x00001ED2
- "\x00\xf4\x03\x00\x00\x00\x1e\xd3" + // 0x00F40300: 0x00001ED3
- "\x00\xd4\x03\t\x00\x00\x1e\xd4" + // 0x00D40309: 0x00001ED4
- "\x00\xf4\x03\t\x00\x00\x1e\xd5" + // 0x00F40309: 0x00001ED5
- "\x00\xd4\x03\x03\x00\x00\x1e\xd6" + // 0x00D40303: 0x00001ED6
- "\x00\xf4\x03\x03\x00\x00\x1e\xd7" + // 0x00F40303: 0x00001ED7
- "\x1e\xcc\x03\x02\x00\x00\x1e\xd8" + // 0x1ECC0302: 0x00001ED8
- "\x1e\xcd\x03\x02\x00\x00\x1e\xd9" + // 0x1ECD0302: 0x00001ED9
- "\x01\xa0\x03\x01\x00\x00\x1e\xda" + // 0x01A00301: 0x00001EDA
- "\x01\xa1\x03\x01\x00\x00\x1e\xdb" + // 0x01A10301: 0x00001EDB
- "\x01\xa0\x03\x00\x00\x00\x1e\xdc" + // 0x01A00300: 0x00001EDC
- "\x01\xa1\x03\x00\x00\x00\x1e\xdd" + // 0x01A10300: 0x00001EDD
- "\x01\xa0\x03\t\x00\x00\x1e\xde" + // 0x01A00309: 0x00001EDE
- "\x01\xa1\x03\t\x00\x00\x1e\xdf" + // 0x01A10309: 0x00001EDF
- "\x01\xa0\x03\x03\x00\x00\x1e\xe0" + // 0x01A00303: 0x00001EE0
- "\x01\xa1\x03\x03\x00\x00\x1e\xe1" + // 0x01A10303: 0x00001EE1
- "\x01\xa0\x03#\x00\x00\x1e\xe2" + // 0x01A00323: 0x00001EE2
- "\x01\xa1\x03#\x00\x00\x1e\xe3" + // 0x01A10323: 0x00001EE3
- "\x00U\x03#\x00\x00\x1e\xe4" + // 0x00550323: 0x00001EE4
- "\x00u\x03#\x00\x00\x1e\xe5" + // 0x00750323: 0x00001EE5
- "\x00U\x03\t\x00\x00\x1e\xe6" + // 0x00550309: 0x00001EE6
- "\x00u\x03\t\x00\x00\x1e\xe7" + // 0x00750309: 0x00001EE7
- "\x01\xaf\x03\x01\x00\x00\x1e\xe8" + // 0x01AF0301: 0x00001EE8
- "\x01\xb0\x03\x01\x00\x00\x1e\xe9" + // 0x01B00301: 0x00001EE9
- "\x01\xaf\x03\x00\x00\x00\x1e\xea" + // 0x01AF0300: 0x00001EEA
- "\x01\xb0\x03\x00\x00\x00\x1e\xeb" + // 0x01B00300: 0x00001EEB
- "\x01\xaf\x03\t\x00\x00\x1e\xec" + // 0x01AF0309: 0x00001EEC
- "\x01\xb0\x03\t\x00\x00\x1e\xed" + // 0x01B00309: 0x00001EED
- "\x01\xaf\x03\x03\x00\x00\x1e\xee" + // 0x01AF0303: 0x00001EEE
- "\x01\xb0\x03\x03\x00\x00\x1e\xef" + // 0x01B00303: 0x00001EEF
- "\x01\xaf\x03#\x00\x00\x1e\xf0" + // 0x01AF0323: 0x00001EF0
- "\x01\xb0\x03#\x00\x00\x1e\xf1" + // 0x01B00323: 0x00001EF1
- "\x00Y\x03\x00\x00\x00\x1e\xf2" + // 0x00590300: 0x00001EF2
- "\x00y\x03\x00\x00\x00\x1e\xf3" + // 0x00790300: 0x00001EF3
- "\x00Y\x03#\x00\x00\x1e\xf4" + // 0x00590323: 0x00001EF4
- "\x00y\x03#\x00\x00\x1e\xf5" + // 0x00790323: 0x00001EF5
- "\x00Y\x03\t\x00\x00\x1e\xf6" + // 0x00590309: 0x00001EF6
- "\x00y\x03\t\x00\x00\x1e\xf7" + // 0x00790309: 0x00001EF7
- "\x00Y\x03\x03\x00\x00\x1e\xf8" + // 0x00590303: 0x00001EF8
- "\x00y\x03\x03\x00\x00\x1e\xf9" + // 0x00790303: 0x00001EF9
- "\x03\xb1\x03\x13\x00\x00\x1f\x00" + // 0x03B10313: 0x00001F00
- "\x03\xb1\x03\x14\x00\x00\x1f\x01" + // 0x03B10314: 0x00001F01
- "\x1f\x00\x03\x00\x00\x00\x1f\x02" + // 0x1F000300: 0x00001F02
- "\x1f\x01\x03\x00\x00\x00\x1f\x03" + // 0x1F010300: 0x00001F03
- "\x1f\x00\x03\x01\x00\x00\x1f\x04" + // 0x1F000301: 0x00001F04
- "\x1f\x01\x03\x01\x00\x00\x1f\x05" + // 0x1F010301: 0x00001F05
- "\x1f\x00\x03B\x00\x00\x1f\x06" + // 0x1F000342: 0x00001F06
- "\x1f\x01\x03B\x00\x00\x1f\a" + // 0x1F010342: 0x00001F07
- "\x03\x91\x03\x13\x00\x00\x1f\b" + // 0x03910313: 0x00001F08
- "\x03\x91\x03\x14\x00\x00\x1f\t" + // 0x03910314: 0x00001F09
- "\x1f\b\x03\x00\x00\x00\x1f\n" + // 0x1F080300: 0x00001F0A
- "\x1f\t\x03\x00\x00\x00\x1f\v" + // 0x1F090300: 0x00001F0B
- "\x1f\b\x03\x01\x00\x00\x1f\f" + // 0x1F080301: 0x00001F0C
- "\x1f\t\x03\x01\x00\x00\x1f\r" + // 0x1F090301: 0x00001F0D
- "\x1f\b\x03B\x00\x00\x1f\x0e" + // 0x1F080342: 0x00001F0E
- "\x1f\t\x03B\x00\x00\x1f\x0f" + // 0x1F090342: 0x00001F0F
- "\x03\xb5\x03\x13\x00\x00\x1f\x10" + // 0x03B50313: 0x00001F10
- "\x03\xb5\x03\x14\x00\x00\x1f\x11" + // 0x03B50314: 0x00001F11
- "\x1f\x10\x03\x00\x00\x00\x1f\x12" + // 0x1F100300: 0x00001F12
- "\x1f\x11\x03\x00\x00\x00\x1f\x13" + // 0x1F110300: 0x00001F13
- "\x1f\x10\x03\x01\x00\x00\x1f\x14" + // 0x1F100301: 0x00001F14
- "\x1f\x11\x03\x01\x00\x00\x1f\x15" + // 0x1F110301: 0x00001F15
- "\x03\x95\x03\x13\x00\x00\x1f\x18" + // 0x03950313: 0x00001F18
- "\x03\x95\x03\x14\x00\x00\x1f\x19" + // 0x03950314: 0x00001F19
- "\x1f\x18\x03\x00\x00\x00\x1f\x1a" + // 0x1F180300: 0x00001F1A
- "\x1f\x19\x03\x00\x00\x00\x1f\x1b" + // 0x1F190300: 0x00001F1B
- "\x1f\x18\x03\x01\x00\x00\x1f\x1c" + // 0x1F180301: 0x00001F1C
- "\x1f\x19\x03\x01\x00\x00\x1f\x1d" + // 0x1F190301: 0x00001F1D
- "\x03\xb7\x03\x13\x00\x00\x1f " + // 0x03B70313: 0x00001F20
- "\x03\xb7\x03\x14\x00\x00\x1f!" + // 0x03B70314: 0x00001F21
- "\x1f \x03\x00\x00\x00\x1f\"" + // 0x1F200300: 0x00001F22
- "\x1f!\x03\x00\x00\x00\x1f#" + // 0x1F210300: 0x00001F23
- "\x1f \x03\x01\x00\x00\x1f$" + // 0x1F200301: 0x00001F24
- "\x1f!\x03\x01\x00\x00\x1f%" + // 0x1F210301: 0x00001F25
- "\x1f \x03B\x00\x00\x1f&" + // 0x1F200342: 0x00001F26
- "\x1f!\x03B\x00\x00\x1f'" + // 0x1F210342: 0x00001F27
- "\x03\x97\x03\x13\x00\x00\x1f(" + // 0x03970313: 0x00001F28
- "\x03\x97\x03\x14\x00\x00\x1f)" + // 0x03970314: 0x00001F29
- "\x1f(\x03\x00\x00\x00\x1f*" + // 0x1F280300: 0x00001F2A
- "\x1f)\x03\x00\x00\x00\x1f+" + // 0x1F290300: 0x00001F2B
- "\x1f(\x03\x01\x00\x00\x1f," + // 0x1F280301: 0x00001F2C
- "\x1f)\x03\x01\x00\x00\x1f-" + // 0x1F290301: 0x00001F2D
- "\x1f(\x03B\x00\x00\x1f." + // 0x1F280342: 0x00001F2E
- "\x1f)\x03B\x00\x00\x1f/" + // 0x1F290342: 0x00001F2F
- "\x03\xb9\x03\x13\x00\x00\x1f0" + // 0x03B90313: 0x00001F30
- "\x03\xb9\x03\x14\x00\x00\x1f1" + // 0x03B90314: 0x00001F31
- "\x1f0\x03\x00\x00\x00\x1f2" + // 0x1F300300: 0x00001F32
- "\x1f1\x03\x00\x00\x00\x1f3" + // 0x1F310300: 0x00001F33
- "\x1f0\x03\x01\x00\x00\x1f4" + // 0x1F300301: 0x00001F34
- "\x1f1\x03\x01\x00\x00\x1f5" + // 0x1F310301: 0x00001F35
- "\x1f0\x03B\x00\x00\x1f6" + // 0x1F300342: 0x00001F36
- "\x1f1\x03B\x00\x00\x1f7" + // 0x1F310342: 0x00001F37
- "\x03\x99\x03\x13\x00\x00\x1f8" + // 0x03990313: 0x00001F38
- "\x03\x99\x03\x14\x00\x00\x1f9" + // 0x03990314: 0x00001F39
- "\x1f8\x03\x00\x00\x00\x1f:" + // 0x1F380300: 0x00001F3A
- "\x1f9\x03\x00\x00\x00\x1f;" + // 0x1F390300: 0x00001F3B
- "\x1f8\x03\x01\x00\x00\x1f<" + // 0x1F380301: 0x00001F3C
- "\x1f9\x03\x01\x00\x00\x1f=" + // 0x1F390301: 0x00001F3D
- "\x1f8\x03B\x00\x00\x1f>" + // 0x1F380342: 0x00001F3E
- "\x1f9\x03B\x00\x00\x1f?" + // 0x1F390342: 0x00001F3F
- "\x03\xbf\x03\x13\x00\x00\x1f@" + // 0x03BF0313: 0x00001F40
- "\x03\xbf\x03\x14\x00\x00\x1fA" + // 0x03BF0314: 0x00001F41
- "\x1f@\x03\x00\x00\x00\x1fB" + // 0x1F400300: 0x00001F42
- "\x1fA\x03\x00\x00\x00\x1fC" + // 0x1F410300: 0x00001F43
- "\x1f@\x03\x01\x00\x00\x1fD" + // 0x1F400301: 0x00001F44
- "\x1fA\x03\x01\x00\x00\x1fE" + // 0x1F410301: 0x00001F45
- "\x03\x9f\x03\x13\x00\x00\x1fH" + // 0x039F0313: 0x00001F48
- "\x03\x9f\x03\x14\x00\x00\x1fI" + // 0x039F0314: 0x00001F49
- "\x1fH\x03\x00\x00\x00\x1fJ" + // 0x1F480300: 0x00001F4A
- "\x1fI\x03\x00\x00\x00\x1fK" + // 0x1F490300: 0x00001F4B
- "\x1fH\x03\x01\x00\x00\x1fL" + // 0x1F480301: 0x00001F4C
- "\x1fI\x03\x01\x00\x00\x1fM" + // 0x1F490301: 0x00001F4D
- "\x03\xc5\x03\x13\x00\x00\x1fP" + // 0x03C50313: 0x00001F50
- "\x03\xc5\x03\x14\x00\x00\x1fQ" + // 0x03C50314: 0x00001F51
- "\x1fP\x03\x00\x00\x00\x1fR" + // 0x1F500300: 0x00001F52
- "\x1fQ\x03\x00\x00\x00\x1fS" + // 0x1F510300: 0x00001F53
- "\x1fP\x03\x01\x00\x00\x1fT" + // 0x1F500301: 0x00001F54
- "\x1fQ\x03\x01\x00\x00\x1fU" + // 0x1F510301: 0x00001F55
- "\x1fP\x03B\x00\x00\x1fV" + // 0x1F500342: 0x00001F56
- "\x1fQ\x03B\x00\x00\x1fW" + // 0x1F510342: 0x00001F57
- "\x03\xa5\x03\x14\x00\x00\x1fY" + // 0x03A50314: 0x00001F59
- "\x1fY\x03\x00\x00\x00\x1f[" + // 0x1F590300: 0x00001F5B
- "\x1fY\x03\x01\x00\x00\x1f]" + // 0x1F590301: 0x00001F5D
- "\x1fY\x03B\x00\x00\x1f_" + // 0x1F590342: 0x00001F5F
- "\x03\xc9\x03\x13\x00\x00\x1f`" + // 0x03C90313: 0x00001F60
- "\x03\xc9\x03\x14\x00\x00\x1fa" + // 0x03C90314: 0x00001F61
- "\x1f`\x03\x00\x00\x00\x1fb" + // 0x1F600300: 0x00001F62
- "\x1fa\x03\x00\x00\x00\x1fc" + // 0x1F610300: 0x00001F63
- "\x1f`\x03\x01\x00\x00\x1fd" + // 0x1F600301: 0x00001F64
- "\x1fa\x03\x01\x00\x00\x1fe" + // 0x1F610301: 0x00001F65
- "\x1f`\x03B\x00\x00\x1ff" + // 0x1F600342: 0x00001F66
- "\x1fa\x03B\x00\x00\x1fg" + // 0x1F610342: 0x00001F67
- "\x03\xa9\x03\x13\x00\x00\x1fh" + // 0x03A90313: 0x00001F68
- "\x03\xa9\x03\x14\x00\x00\x1fi" + // 0x03A90314: 0x00001F69
- "\x1fh\x03\x00\x00\x00\x1fj" + // 0x1F680300: 0x00001F6A
- "\x1fi\x03\x00\x00\x00\x1fk" + // 0x1F690300: 0x00001F6B
- "\x1fh\x03\x01\x00\x00\x1fl" + // 0x1F680301: 0x00001F6C
- "\x1fi\x03\x01\x00\x00\x1fm" + // 0x1F690301: 0x00001F6D
- "\x1fh\x03B\x00\x00\x1fn" + // 0x1F680342: 0x00001F6E
- "\x1fi\x03B\x00\x00\x1fo" + // 0x1F690342: 0x00001F6F
- "\x03\xb1\x03\x00\x00\x00\x1fp" + // 0x03B10300: 0x00001F70
- "\x03\xb5\x03\x00\x00\x00\x1fr" + // 0x03B50300: 0x00001F72
- "\x03\xb7\x03\x00\x00\x00\x1ft" + // 0x03B70300: 0x00001F74
- "\x03\xb9\x03\x00\x00\x00\x1fv" + // 0x03B90300: 0x00001F76
- "\x03\xbf\x03\x00\x00\x00\x1fx" + // 0x03BF0300: 0x00001F78
- "\x03\xc5\x03\x00\x00\x00\x1fz" + // 0x03C50300: 0x00001F7A
- "\x03\xc9\x03\x00\x00\x00\x1f|" + // 0x03C90300: 0x00001F7C
- "\x1f\x00\x03E\x00\x00\x1f\x80" + // 0x1F000345: 0x00001F80
- "\x1f\x01\x03E\x00\x00\x1f\x81" + // 0x1F010345: 0x00001F81
- "\x1f\x02\x03E\x00\x00\x1f\x82" + // 0x1F020345: 0x00001F82
- "\x1f\x03\x03E\x00\x00\x1f\x83" + // 0x1F030345: 0x00001F83
- "\x1f\x04\x03E\x00\x00\x1f\x84" + // 0x1F040345: 0x00001F84
- "\x1f\x05\x03E\x00\x00\x1f\x85" + // 0x1F050345: 0x00001F85
- "\x1f\x06\x03E\x00\x00\x1f\x86" + // 0x1F060345: 0x00001F86
- "\x1f\a\x03E\x00\x00\x1f\x87" + // 0x1F070345: 0x00001F87
- "\x1f\b\x03E\x00\x00\x1f\x88" + // 0x1F080345: 0x00001F88
- "\x1f\t\x03E\x00\x00\x1f\x89" + // 0x1F090345: 0x00001F89
- "\x1f\n\x03E\x00\x00\x1f\x8a" + // 0x1F0A0345: 0x00001F8A
- "\x1f\v\x03E\x00\x00\x1f\x8b" + // 0x1F0B0345: 0x00001F8B
- "\x1f\f\x03E\x00\x00\x1f\x8c" + // 0x1F0C0345: 0x00001F8C
- "\x1f\r\x03E\x00\x00\x1f\x8d" + // 0x1F0D0345: 0x00001F8D
- "\x1f\x0e\x03E\x00\x00\x1f\x8e" + // 0x1F0E0345: 0x00001F8E
- "\x1f\x0f\x03E\x00\x00\x1f\x8f" + // 0x1F0F0345: 0x00001F8F
- "\x1f \x03E\x00\x00\x1f\x90" + // 0x1F200345: 0x00001F90
- "\x1f!\x03E\x00\x00\x1f\x91" + // 0x1F210345: 0x00001F91
- "\x1f\"\x03E\x00\x00\x1f\x92" + // 0x1F220345: 0x00001F92
- "\x1f#\x03E\x00\x00\x1f\x93" + // 0x1F230345: 0x00001F93
- "\x1f$\x03E\x00\x00\x1f\x94" + // 0x1F240345: 0x00001F94
- "\x1f%\x03E\x00\x00\x1f\x95" + // 0x1F250345: 0x00001F95
- "\x1f&\x03E\x00\x00\x1f\x96" + // 0x1F260345: 0x00001F96
- "\x1f'\x03E\x00\x00\x1f\x97" + // 0x1F270345: 0x00001F97
- "\x1f(\x03E\x00\x00\x1f\x98" + // 0x1F280345: 0x00001F98
- "\x1f)\x03E\x00\x00\x1f\x99" + // 0x1F290345: 0x00001F99
- "\x1f*\x03E\x00\x00\x1f\x9a" + // 0x1F2A0345: 0x00001F9A
- "\x1f+\x03E\x00\x00\x1f\x9b" + // 0x1F2B0345: 0x00001F9B
- "\x1f,\x03E\x00\x00\x1f\x9c" + // 0x1F2C0345: 0x00001F9C
- "\x1f-\x03E\x00\x00\x1f\x9d" + // 0x1F2D0345: 0x00001F9D
- "\x1f.\x03E\x00\x00\x1f\x9e" + // 0x1F2E0345: 0x00001F9E
- "\x1f/\x03E\x00\x00\x1f\x9f" + // 0x1F2F0345: 0x00001F9F
- "\x1f`\x03E\x00\x00\x1f\xa0" + // 0x1F600345: 0x00001FA0
- "\x1fa\x03E\x00\x00\x1f\xa1" + // 0x1F610345: 0x00001FA1
- "\x1fb\x03E\x00\x00\x1f\xa2" + // 0x1F620345: 0x00001FA2
- "\x1fc\x03E\x00\x00\x1f\xa3" + // 0x1F630345: 0x00001FA3
- "\x1fd\x03E\x00\x00\x1f\xa4" + // 0x1F640345: 0x00001FA4
- "\x1fe\x03E\x00\x00\x1f\xa5" + // 0x1F650345: 0x00001FA5
- "\x1ff\x03E\x00\x00\x1f\xa6" + // 0x1F660345: 0x00001FA6
- "\x1fg\x03E\x00\x00\x1f\xa7" + // 0x1F670345: 0x00001FA7
- "\x1fh\x03E\x00\x00\x1f\xa8" + // 0x1F680345: 0x00001FA8
- "\x1fi\x03E\x00\x00\x1f\xa9" + // 0x1F690345: 0x00001FA9
- "\x1fj\x03E\x00\x00\x1f\xaa" + // 0x1F6A0345: 0x00001FAA
- "\x1fk\x03E\x00\x00\x1f\xab" + // 0x1F6B0345: 0x00001FAB
- "\x1fl\x03E\x00\x00\x1f\xac" + // 0x1F6C0345: 0x00001FAC
- "\x1fm\x03E\x00\x00\x1f\xad" + // 0x1F6D0345: 0x00001FAD
- "\x1fn\x03E\x00\x00\x1f\xae" + // 0x1F6E0345: 0x00001FAE
- "\x1fo\x03E\x00\x00\x1f\xaf" + // 0x1F6F0345: 0x00001FAF
- "\x03\xb1\x03\x06\x00\x00\x1f\xb0" + // 0x03B10306: 0x00001FB0
- "\x03\xb1\x03\x04\x00\x00\x1f\xb1" + // 0x03B10304: 0x00001FB1
- "\x1fp\x03E\x00\x00\x1f\xb2" + // 0x1F700345: 0x00001FB2
- "\x03\xb1\x03E\x00\x00\x1f\xb3" + // 0x03B10345: 0x00001FB3
- "\x03\xac\x03E\x00\x00\x1f\xb4" + // 0x03AC0345: 0x00001FB4
- "\x03\xb1\x03B\x00\x00\x1f\xb6" + // 0x03B10342: 0x00001FB6
- "\x1f\xb6\x03E\x00\x00\x1f\xb7" + // 0x1FB60345: 0x00001FB7
- "\x03\x91\x03\x06\x00\x00\x1f\xb8" + // 0x03910306: 0x00001FB8
- "\x03\x91\x03\x04\x00\x00\x1f\xb9" + // 0x03910304: 0x00001FB9
- "\x03\x91\x03\x00\x00\x00\x1f\xba" + // 0x03910300: 0x00001FBA
- "\x03\x91\x03E\x00\x00\x1f\xbc" + // 0x03910345: 0x00001FBC
- "\x00\xa8\x03B\x00\x00\x1f\xc1" + // 0x00A80342: 0x00001FC1
- "\x1ft\x03E\x00\x00\x1f\xc2" + // 0x1F740345: 0x00001FC2
- "\x03\xb7\x03E\x00\x00\x1f\xc3" + // 0x03B70345: 0x00001FC3
- "\x03\xae\x03E\x00\x00\x1f\xc4" + // 0x03AE0345: 0x00001FC4
- "\x03\xb7\x03B\x00\x00\x1f\xc6" + // 0x03B70342: 0x00001FC6
- "\x1f\xc6\x03E\x00\x00\x1f\xc7" + // 0x1FC60345: 0x00001FC7
- "\x03\x95\x03\x00\x00\x00\x1f\xc8" + // 0x03950300: 0x00001FC8
- "\x03\x97\x03\x00\x00\x00\x1f\xca" + // 0x03970300: 0x00001FCA
- "\x03\x97\x03E\x00\x00\x1f\xcc" + // 0x03970345: 0x00001FCC
- "\x1f\xbf\x03\x00\x00\x00\x1f\xcd" + // 0x1FBF0300: 0x00001FCD
- "\x1f\xbf\x03\x01\x00\x00\x1f\xce" + // 0x1FBF0301: 0x00001FCE
- "\x1f\xbf\x03B\x00\x00\x1f\xcf" + // 0x1FBF0342: 0x00001FCF
- "\x03\xb9\x03\x06\x00\x00\x1f\xd0" + // 0x03B90306: 0x00001FD0
- "\x03\xb9\x03\x04\x00\x00\x1f\xd1" + // 0x03B90304: 0x00001FD1
- "\x03\xca\x03\x00\x00\x00\x1f\xd2" + // 0x03CA0300: 0x00001FD2
- "\x03\xb9\x03B\x00\x00\x1f\xd6" + // 0x03B90342: 0x00001FD6
- "\x03\xca\x03B\x00\x00\x1f\xd7" + // 0x03CA0342: 0x00001FD7
- "\x03\x99\x03\x06\x00\x00\x1f\xd8" + // 0x03990306: 0x00001FD8
- "\x03\x99\x03\x04\x00\x00\x1f\xd9" + // 0x03990304: 0x00001FD9
- "\x03\x99\x03\x00\x00\x00\x1f\xda" + // 0x03990300: 0x00001FDA
- "\x1f\xfe\x03\x00\x00\x00\x1f\xdd" + // 0x1FFE0300: 0x00001FDD
- "\x1f\xfe\x03\x01\x00\x00\x1f\xde" + // 0x1FFE0301: 0x00001FDE
- "\x1f\xfe\x03B\x00\x00\x1f\xdf" + // 0x1FFE0342: 0x00001FDF
- "\x03\xc5\x03\x06\x00\x00\x1f\xe0" + // 0x03C50306: 0x00001FE0
- "\x03\xc5\x03\x04\x00\x00\x1f\xe1" + // 0x03C50304: 0x00001FE1
- "\x03\xcb\x03\x00\x00\x00\x1f\xe2" + // 0x03CB0300: 0x00001FE2
- "\x03\xc1\x03\x13\x00\x00\x1f\xe4" + // 0x03C10313: 0x00001FE4
- "\x03\xc1\x03\x14\x00\x00\x1f\xe5" + // 0x03C10314: 0x00001FE5
- "\x03\xc5\x03B\x00\x00\x1f\xe6" + // 0x03C50342: 0x00001FE6
- "\x03\xcb\x03B\x00\x00\x1f\xe7" + // 0x03CB0342: 0x00001FE7
- "\x03\xa5\x03\x06\x00\x00\x1f\xe8" + // 0x03A50306: 0x00001FE8
- "\x03\xa5\x03\x04\x00\x00\x1f\xe9" + // 0x03A50304: 0x00001FE9
- "\x03\xa5\x03\x00\x00\x00\x1f\xea" + // 0x03A50300: 0x00001FEA
- "\x03\xa1\x03\x14\x00\x00\x1f\xec" + // 0x03A10314: 0x00001FEC
- "\x00\xa8\x03\x00\x00\x00\x1f\xed" + // 0x00A80300: 0x00001FED
- "\x1f|\x03E\x00\x00\x1f\xf2" + // 0x1F7C0345: 0x00001FF2
- "\x03\xc9\x03E\x00\x00\x1f\xf3" + // 0x03C90345: 0x00001FF3
- "\x03\xce\x03E\x00\x00\x1f\xf4" + // 0x03CE0345: 0x00001FF4
- "\x03\xc9\x03B\x00\x00\x1f\xf6" + // 0x03C90342: 0x00001FF6
- "\x1f\xf6\x03E\x00\x00\x1f\xf7" + // 0x1FF60345: 0x00001FF7
- "\x03\x9f\x03\x00\x00\x00\x1f\xf8" + // 0x039F0300: 0x00001FF8
- "\x03\xa9\x03\x00\x00\x00\x1f\xfa" + // 0x03A90300: 0x00001FFA
- "\x03\xa9\x03E\x00\x00\x1f\xfc" + // 0x03A90345: 0x00001FFC
- "!\x90\x038\x00\x00!\x9a" + // 0x21900338: 0x0000219A
- "!\x92\x038\x00\x00!\x9b" + // 0x21920338: 0x0000219B
- "!\x94\x038\x00\x00!\xae" + // 0x21940338: 0x000021AE
- "!\xd0\x038\x00\x00!\xcd" + // 0x21D00338: 0x000021CD
- "!\xd4\x038\x00\x00!\xce" + // 0x21D40338: 0x000021CE
- "!\xd2\x038\x00\x00!\xcf" + // 0x21D20338: 0x000021CF
- "\"\x03\x038\x00\x00\"\x04" + // 0x22030338: 0x00002204
- "\"\b\x038\x00\x00\"\t" + // 0x22080338: 0x00002209
- "\"\v\x038\x00\x00\"\f" + // 0x220B0338: 0x0000220C
- "\"#\x038\x00\x00\"$" + // 0x22230338: 0x00002224
- "\"%\x038\x00\x00\"&" + // 0x22250338: 0x00002226
- "\"<\x038\x00\x00\"A" + // 0x223C0338: 0x00002241
- "\"C\x038\x00\x00\"D" + // 0x22430338: 0x00002244
- "\"E\x038\x00\x00\"G" + // 0x22450338: 0x00002247
- "\"H\x038\x00\x00\"I" + // 0x22480338: 0x00002249
- "\x00=\x038\x00\x00\"`" + // 0x003D0338: 0x00002260
- "\"a\x038\x00\x00\"b" + // 0x22610338: 0x00002262
- "\"M\x038\x00\x00\"m" + // 0x224D0338: 0x0000226D
- "\x00<\x038\x00\x00\"n" + // 0x003C0338: 0x0000226E
- "\x00>\x038\x00\x00\"o" + // 0x003E0338: 0x0000226F
- "\"d\x038\x00\x00\"p" + // 0x22640338: 0x00002270
- "\"e\x038\x00\x00\"q" + // 0x22650338: 0x00002271
- "\"r\x038\x00\x00\"t" + // 0x22720338: 0x00002274
- "\"s\x038\x00\x00\"u" + // 0x22730338: 0x00002275
- "\"v\x038\x00\x00\"x" + // 0x22760338: 0x00002278
- "\"w\x038\x00\x00\"y" + // 0x22770338: 0x00002279
- "\"z\x038\x00\x00\"\x80" + // 0x227A0338: 0x00002280
- "\"{\x038\x00\x00\"\x81" + // 0x227B0338: 0x00002281
- "\"\x82\x038\x00\x00\"\x84" + // 0x22820338: 0x00002284
- "\"\x83\x038\x00\x00\"\x85" + // 0x22830338: 0x00002285
- "\"\x86\x038\x00\x00\"\x88" + // 0x22860338: 0x00002288
- "\"\x87\x038\x00\x00\"\x89" + // 0x22870338: 0x00002289
- "\"\xa2\x038\x00\x00\"\xac" + // 0x22A20338: 0x000022AC
- "\"\xa8\x038\x00\x00\"\xad" + // 0x22A80338: 0x000022AD
- "\"\xa9\x038\x00\x00\"\xae" + // 0x22A90338: 0x000022AE
- "\"\xab\x038\x00\x00\"\xaf" + // 0x22AB0338: 0x000022AF
- "\"|\x038\x00\x00\"\xe0" + // 0x227C0338: 0x000022E0
- "\"}\x038\x00\x00\"\xe1" + // 0x227D0338: 0x000022E1
- "\"\x91\x038\x00\x00\"\xe2" + // 0x22910338: 0x000022E2
- "\"\x92\x038\x00\x00\"\xe3" + // 0x22920338: 0x000022E3
- "\"\xb2\x038\x00\x00\"\xea" + // 0x22B20338: 0x000022EA
- "\"\xb3\x038\x00\x00\"\xeb" + // 0x22B30338: 0x000022EB
- "\"\xb4\x038\x00\x00\"\xec" + // 0x22B40338: 0x000022EC
- "\"\xb5\x038\x00\x00\"\xed" + // 0x22B50338: 0x000022ED
- "0K0\x99\x00\x000L" + // 0x304B3099: 0x0000304C
- "0M0\x99\x00\x000N" + // 0x304D3099: 0x0000304E
- "0O0\x99\x00\x000P" + // 0x304F3099: 0x00003050
- "0Q0\x99\x00\x000R" + // 0x30513099: 0x00003052
- "0S0\x99\x00\x000T" + // 0x30533099: 0x00003054
- "0U0\x99\x00\x000V" + // 0x30553099: 0x00003056
- "0W0\x99\x00\x000X" + // 0x30573099: 0x00003058
- "0Y0\x99\x00\x000Z" + // 0x30593099: 0x0000305A
- "0[0\x99\x00\x000\\" + // 0x305B3099: 0x0000305C
- "0]0\x99\x00\x000^" + // 0x305D3099: 0x0000305E
- "0_0\x99\x00\x000`" + // 0x305F3099: 0x00003060
- "0a0\x99\x00\x000b" + // 0x30613099: 0x00003062
- "0d0\x99\x00\x000e" + // 0x30643099: 0x00003065
- "0f0\x99\x00\x000g" + // 0x30663099: 0x00003067
- "0h0\x99\x00\x000i" + // 0x30683099: 0x00003069
- "0o0\x99\x00\x000p" + // 0x306F3099: 0x00003070
- "0o0\x9a\x00\x000q" + // 0x306F309A: 0x00003071
- "0r0\x99\x00\x000s" + // 0x30723099: 0x00003073
- "0r0\x9a\x00\x000t" + // 0x3072309A: 0x00003074
- "0u0\x99\x00\x000v" + // 0x30753099: 0x00003076
- "0u0\x9a\x00\x000w" + // 0x3075309A: 0x00003077
- "0x0\x99\x00\x000y" + // 0x30783099: 0x00003079
- "0x0\x9a\x00\x000z" + // 0x3078309A: 0x0000307A
- "0{0\x99\x00\x000|" + // 0x307B3099: 0x0000307C
- "0{0\x9a\x00\x000}" + // 0x307B309A: 0x0000307D
- "0F0\x99\x00\x000\x94" + // 0x30463099: 0x00003094
- "0\x9d0\x99\x00\x000\x9e" + // 0x309D3099: 0x0000309E
- "0\xab0\x99\x00\x000\xac" + // 0x30AB3099: 0x000030AC
- "0\xad0\x99\x00\x000\xae" + // 0x30AD3099: 0x000030AE
- "0\xaf0\x99\x00\x000\xb0" + // 0x30AF3099: 0x000030B0
- "0\xb10\x99\x00\x000\xb2" + // 0x30B13099: 0x000030B2
- "0\xb30\x99\x00\x000\xb4" + // 0x30B33099: 0x000030B4
- "0\xb50\x99\x00\x000\xb6" + // 0x30B53099: 0x000030B6
- "0\xb70\x99\x00\x000\xb8" + // 0x30B73099: 0x000030B8
- "0\xb90\x99\x00\x000\xba" + // 0x30B93099: 0x000030BA
- "0\xbb0\x99\x00\x000\xbc" + // 0x30BB3099: 0x000030BC
- "0\xbd0\x99\x00\x000\xbe" + // 0x30BD3099: 0x000030BE
- "0\xbf0\x99\x00\x000\xc0" + // 0x30BF3099: 0x000030C0
- "0\xc10\x99\x00\x000\xc2" + // 0x30C13099: 0x000030C2
- "0\xc40\x99\x00\x000\xc5" + // 0x30C43099: 0x000030C5
- "0\xc60\x99\x00\x000\xc7" + // 0x30C63099: 0x000030C7
- "0\xc80\x99\x00\x000\xc9" + // 0x30C83099: 0x000030C9
- "0\xcf0\x99\x00\x000\xd0" + // 0x30CF3099: 0x000030D0
- "0\xcf0\x9a\x00\x000\xd1" + // 0x30CF309A: 0x000030D1
- "0\xd20\x99\x00\x000\xd3" + // 0x30D23099: 0x000030D3
- "0\xd20\x9a\x00\x000\xd4" + // 0x30D2309A: 0x000030D4
- "0\xd50\x99\x00\x000\xd6" + // 0x30D53099: 0x000030D6
- "0\xd50\x9a\x00\x000\xd7" + // 0x30D5309A: 0x000030D7
- "0\xd80\x99\x00\x000\xd9" + // 0x30D83099: 0x000030D9
- "0\xd80\x9a\x00\x000\xda" + // 0x30D8309A: 0x000030DA
- "0\xdb0\x99\x00\x000\xdc" + // 0x30DB3099: 0x000030DC
- "0\xdb0\x9a\x00\x000\xdd" + // 0x30DB309A: 0x000030DD
- "0\xa60\x99\x00\x000\xf4" + // 0x30A63099: 0x000030F4
- "0\xef0\x99\x00\x000\xf7" + // 0x30EF3099: 0x000030F7
- "0\xf00\x99\x00\x000\xf8" + // 0x30F03099: 0x000030F8
- "0\xf10\x99\x00\x000\xf9" + // 0x30F13099: 0x000030F9
- "0\xf20\x99\x00\x000\xfa" + // 0x30F23099: 0x000030FA
- "0\xfd0\x99\x00\x000\xfe" + // 0x30FD3099: 0x000030FE
- "\x10\x99\x10\xba\x00\x01\x10\x9a" + // 0x109910BA: 0x0001109A
- "\x10\x9b\x10\xba\x00\x01\x10\x9c" + // 0x109B10BA: 0x0001109C
- "\x10\xa5\x10\xba\x00\x01\x10\xab" + // 0x10A510BA: 0x000110AB
- "\x111\x11'\x00\x01\x11." + // 0x11311127: 0x0001112E
- "\x112\x11'\x00\x01\x11/" + // 0x11321127: 0x0001112F
- "\x13G\x13>\x00\x01\x13K" + // 0x1347133E: 0x0001134B
- "\x13G\x13W\x00\x01\x13L" + // 0x13471357: 0x0001134C
- "\x14\xb9\x14\xba\x00\x01\x14\xbb" + // 0x14B914BA: 0x000114BB
- "\x14\xb9\x14\xb0\x00\x01\x14\xbc" + // 0x14B914B0: 0x000114BC
- "\x14\xb9\x14\xbd\x00\x01\x14\xbe" + // 0x14B914BD: 0x000114BE
- "\x15\xb8\x15\xaf\x00\x01\x15\xba" + // 0x15B815AF: 0x000115BA
- "\x15\xb9\x15\xaf\x00\x01\x15\xbb" + // 0x15B915AF: 0x000115BB
- ""
- // Total size of tables: 55KB (55977 bytes)
diff --git a/vendor/golang.org/x/text/unicode/norm/tables15.0.0.go b/vendor/golang.org/x/text/unicode/norm/tables15.0.0.go
index b0819e42..d9623241 100644
--- a/vendor/golang.org/x/text/unicode/norm/tables15.0.0.go
+++ b/vendor/golang.org/x/text/unicode/norm/tables15.0.0.go
@@ -1,6 +1,6 @@
// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
-//go:build go1.21
+//go:build !go1.27
package norm
@@ -30,7 +30,7 @@ var ccc = [56]uint8{
const (
firstMulti = 0x199A
firstCCC = 0x2DD5
- endMulti = 0x30A1
+ endMulti = 0x2EBF
firstLeadingCCC = 0x4AEF
firstCCCZeroExcept = 0x4BB9
firstStarterWithNLead = 0x4BE0
@@ -1685,802 +1685,783 @@ var decomps = [...]byte{
0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB,
0x52, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xB3, 0xE3,
0x83, 0x88, 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99,
- 0xE3, 0x83, 0xB3, 0x61, 0xD8, 0xB5, 0xD9, 0x84,
+ 0xE3, 0x83, 0xB3, 0x5F, 0xD8, 0xB5, 0xD9, 0x84,
0xD9, 0x89, 0x20, 0xD8, 0xA7, 0xD9, 0x84, 0xD9,
// Bytes 2dc0 - 2dff
0x84, 0xD9, 0x87, 0x20, 0xD8, 0xB9, 0xD9, 0x84,
0xD9, 0x8A, 0xD9, 0x87, 0x20, 0xD9, 0x88, 0xD8,
- 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x06, 0xE0, 0xA7,
- 0x87, 0xE0, 0xA6, 0xBE, 0x01, 0x06, 0xE0, 0xA7,
- 0x87, 0xE0, 0xA7, 0x97, 0x01, 0x06, 0xE0, 0xAD,
- 0x87, 0xE0, 0xAC, 0xBE, 0x01, 0x06, 0xE0, 0xAD,
- 0x87, 0xE0, 0xAD, 0x96, 0x01, 0x06, 0xE0, 0xAD,
- 0x87, 0xE0, 0xAD, 0x97, 0x01, 0x06, 0xE0, 0xAE,
+ 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x44, 0x44, 0x5A,
+ 0xCC, 0x8C, 0xCD, 0x44, 0x44, 0x7A, 0xCC, 0x8C,
+ 0xCD, 0x44, 0x64, 0x7A, 0xCC, 0x8C, 0xCD, 0x46,
+ 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x93, 0xCD, 0x46,
+ 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x94, 0xCD, 0x46,
+ 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x95, 0xB9, 0x49,
// Bytes 2e00 - 2e3f
- 0x92, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0, 0xAF,
- 0x86, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0, 0xAF,
- 0x86, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0, 0xAF,
- 0x87, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0, 0xB2,
- 0xBF, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0, 0xB3,
- 0x86, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0, 0xB3,
- 0x86, 0xE0, 0xB3, 0x96, 0x01, 0x06, 0xE0, 0xB5,
- 0x86, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0, 0xB5,
+ 0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB, 0xE3, 0x82,
+ 0x99, 0x11, 0x4C, 0xE1, 0x84, 0x8C, 0xE1, 0x85,
+ 0xAE, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xB4, 0x01,
+ 0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3,
+ 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x11, 0x4C, 0xE3,
+ 0x82, 0xB3, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x9B,
+ 0xE3, 0x82, 0x9A, 0x11, 0x4C, 0xE3, 0x83, 0xA4,
+ 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x82,
// Bytes 2e40 - 2e7f
- 0x86, 0xE0, 0xB5, 0x97, 0x01, 0x06, 0xE0, 0xB5,
- 0x87, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0, 0xB7,
- 0x99, 0xE0, 0xB7, 0x9F, 0x01, 0x06, 0xE1, 0x80,
- 0xA5, 0xE1, 0x80, 0xAE, 0x01, 0x06, 0xE1, 0xAC,
- 0x85, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC,
- 0x87, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC,
- 0x89, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC,
- 0x8B, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC,
+ 0x99, 0x11, 0x4F, 0xE1, 0x84, 0x8E, 0xE1, 0x85,
+ 0xA1, 0xE1, 0x86, 0xB7, 0xE1, 0x84, 0x80, 0xE1,
+ 0x85, 0xA9, 0x01, 0x4F, 0xE3, 0x82, 0xA4, 0xE3,
+ 0x83, 0x8B, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xAF,
+ 0xE3, 0x82, 0x99, 0x11, 0x4F, 0xE3, 0x82, 0xB7,
+ 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xB3, 0xE3, 0x82,
+ 0xAF, 0xE3, 0x82, 0x99, 0x11, 0x4F, 0xE3, 0x83,
+ 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3,
// Bytes 2e80 - 2ebf
- 0x8D, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC,
- 0x91, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC,
- 0xBA, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC,
- 0xBC, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC,
- 0xBE, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC,
- 0xBF, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAD,
- 0x82, 0xE1, 0xAC, 0xB5, 0x01, 0x08, 0xF0, 0x91,
- 0x84, 0xB1, 0xF0, 0x91, 0x84, 0xA7, 0x01, 0x08,
+ 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x11, 0x4F, 0xE3,
+ 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xB3,
+ 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x11, 0x52,
+ 0xE3, 0x82, 0xA8, 0xE3, 0x82, 0xB9, 0xE3, 0x82,
+ 0xAF, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3,
+ 0x82, 0x99, 0x11, 0x52, 0xE3, 0x83, 0x95, 0xE3,
+ 0x82, 0xA1, 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0x83,
+ 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x11, 0x03,
// Bytes 2ec0 - 2eff
- 0xF0, 0x91, 0x84, 0xB2, 0xF0, 0x91, 0x84, 0xA7,
- 0x01, 0x08, 0xF0, 0x91, 0x8D, 0x87, 0xF0, 0x91,
- 0x8C, 0xBE, 0x01, 0x08, 0xF0, 0x91, 0x8D, 0x87,
- 0xF0, 0x91, 0x8D, 0x97, 0x01, 0x08, 0xF0, 0x91,
- 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xB0, 0x01, 0x08,
- 0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xBA,
- 0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91,
- 0x92, 0xBD, 0x01, 0x08, 0xF0, 0x91, 0x96, 0xB8,
+ 0x3C, 0xCC, 0xB8, 0x05, 0x03, 0x3D, 0xCC, 0xB8,
+ 0x05, 0x03, 0x3E, 0xCC, 0xB8, 0x05, 0x03, 0x41,
+ 0xCC, 0x80, 0xCD, 0x03, 0x41, 0xCC, 0x81, 0xCD,
+ 0x03, 0x41, 0xCC, 0x83, 0xCD, 0x03, 0x41, 0xCC,
+ 0x84, 0xCD, 0x03, 0x41, 0xCC, 0x89, 0xCD, 0x03,
+ 0x41, 0xCC, 0x8C, 0xCD, 0x03, 0x41, 0xCC, 0x8F,
+ 0xCD, 0x03, 0x41, 0xCC, 0x91, 0xCD, 0x03, 0x41,
+ 0xCC, 0xA5, 0xB9, 0x03, 0x41, 0xCC, 0xA8, 0xA9,
// Bytes 2f00 - 2f3f
- 0xF0, 0x91, 0x96, 0xAF, 0x01, 0x08, 0xF0, 0x91,
- 0x96, 0xB9, 0xF0, 0x91, 0x96, 0xAF, 0x01, 0x08,
- 0xF0, 0x91, 0xA4, 0xB5, 0xF0, 0x91, 0xA4, 0xB0,
- 0x01, 0x09, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82,
- 0xE0, 0xB3, 0x95, 0x02, 0x09, 0xE0, 0xB7, 0x99,
- 0xE0, 0xB7, 0x8F, 0xE0, 0xB7, 0x8A, 0x16, 0x44,
- 0x44, 0x5A, 0xCC, 0x8C, 0xCD, 0x44, 0x44, 0x7A,
- 0xCC, 0x8C, 0xCD, 0x44, 0x64, 0x7A, 0xCC, 0x8C,
+ 0x03, 0x42, 0xCC, 0x87, 0xCD, 0x03, 0x42, 0xCC,
+ 0xA3, 0xB9, 0x03, 0x42, 0xCC, 0xB1, 0xB9, 0x03,
+ 0x43, 0xCC, 0x81, 0xCD, 0x03, 0x43, 0xCC, 0x82,
+ 0xCD, 0x03, 0x43, 0xCC, 0x87, 0xCD, 0x03, 0x43,
+ 0xCC, 0x8C, 0xCD, 0x03, 0x44, 0xCC, 0x87, 0xCD,
+ 0x03, 0x44, 0xCC, 0x8C, 0xCD, 0x03, 0x44, 0xCC,
+ 0xA3, 0xB9, 0x03, 0x44, 0xCC, 0xA7, 0xA9, 0x03,
+ 0x44, 0xCC, 0xAD, 0xB9, 0x03, 0x44, 0xCC, 0xB1,
// Bytes 2f40 - 2f7f
- 0xCD, 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x93,
- 0xCD, 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x94,
- 0xCD, 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x95,
- 0xB9, 0x46, 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1,
- 0x01, 0x46, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1,
- 0x01, 0x46, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1,
- 0x01, 0x46, 0xE1, 0x84, 0x85, 0xE1, 0x85, 0xA1,
- 0x01, 0x46, 0xE1, 0x84, 0x86, 0xE1, 0x85, 0xA1,
+ 0xB9, 0x03, 0x45, 0xCC, 0x80, 0xCD, 0x03, 0x45,
+ 0xCC, 0x81, 0xCD, 0x03, 0x45, 0xCC, 0x83, 0xCD,
+ 0x03, 0x45, 0xCC, 0x86, 0xCD, 0x03, 0x45, 0xCC,
+ 0x87, 0xCD, 0x03, 0x45, 0xCC, 0x88, 0xCD, 0x03,
+ 0x45, 0xCC, 0x89, 0xCD, 0x03, 0x45, 0xCC, 0x8C,
+ 0xCD, 0x03, 0x45, 0xCC, 0x8F, 0xCD, 0x03, 0x45,
+ 0xCC, 0x91, 0xCD, 0x03, 0x45, 0xCC, 0xA8, 0xA9,
+ 0x03, 0x45, 0xCC, 0xAD, 0xB9, 0x03, 0x45, 0xCC,
// Bytes 2f80 - 2fbf
- 0x01, 0x46, 0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1,
- 0x01, 0x46, 0xE1, 0x84, 0x89, 0xE1, 0x85, 0xA1,
- 0x01, 0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA1,
- 0x01, 0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xAE,
- 0x01, 0x46, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1,
- 0x01, 0x46, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1,
- 0x01, 0x46, 0xE1, 0x84, 0x8F, 0xE1, 0x85, 0xA1,
- 0x01, 0x46, 0xE1, 0x84, 0x90, 0xE1, 0x85, 0xA1,
+ 0xB0, 0xB9, 0x03, 0x46, 0xCC, 0x87, 0xCD, 0x03,
+ 0x47, 0xCC, 0x81, 0xCD, 0x03, 0x47, 0xCC, 0x82,
+ 0xCD, 0x03, 0x47, 0xCC, 0x84, 0xCD, 0x03, 0x47,
+ 0xCC, 0x86, 0xCD, 0x03, 0x47, 0xCC, 0x87, 0xCD,
+ 0x03, 0x47, 0xCC, 0x8C, 0xCD, 0x03, 0x47, 0xCC,
+ 0xA7, 0xA9, 0x03, 0x48, 0xCC, 0x82, 0xCD, 0x03,
+ 0x48, 0xCC, 0x87, 0xCD, 0x03, 0x48, 0xCC, 0x88,
+ 0xCD, 0x03, 0x48, 0xCC, 0x8C, 0xCD, 0x03, 0x48,
// Bytes 2fc0 - 2fff
- 0x01, 0x46, 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1,
- 0x01, 0x46, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1,
- 0x01, 0x49, 0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB,
- 0xE3, 0x82, 0x99, 0x11, 0x4C, 0xE1, 0x84, 0x8C,
- 0xE1, 0x85, 0xAE, 0xE1, 0x84, 0x8B, 0xE1, 0x85,
- 0xB4, 0x01, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x82,
- 0x99, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x11,
- 0x4C, 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0xBC, 0xE3,
+ 0xCC, 0xA3, 0xB9, 0x03, 0x48, 0xCC, 0xA7, 0xA9,
+ 0x03, 0x48, 0xCC, 0xAE, 0xB9, 0x03, 0x49, 0xCC,
+ 0x80, 0xCD, 0x03, 0x49, 0xCC, 0x81, 0xCD, 0x03,
+ 0x49, 0xCC, 0x82, 0xCD, 0x03, 0x49, 0xCC, 0x83,
+ 0xCD, 0x03, 0x49, 0xCC, 0x84, 0xCD, 0x03, 0x49,
+ 0xCC, 0x86, 0xCD, 0x03, 0x49, 0xCC, 0x87, 0xCD,
+ 0x03, 0x49, 0xCC, 0x89, 0xCD, 0x03, 0x49, 0xCC,
+ 0x8C, 0xCD, 0x03, 0x49, 0xCC, 0x8F, 0xCD, 0x03,
// Bytes 3000 - 303f
- 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0x11, 0x4C, 0xE3,
- 0x83, 0xA4, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88,
- 0xE3, 0x82, 0x99, 0x11, 0x4F, 0xE1, 0x84, 0x8E,
- 0xE1, 0x85, 0xA1, 0xE1, 0x86, 0xB7, 0xE1, 0x84,
- 0x80, 0xE1, 0x85, 0xA9, 0x01, 0x4F, 0xE3, 0x82,
- 0xA4, 0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xB3, 0xE3,
- 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x11, 0x4F, 0xE3,
- 0x82, 0xB7, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xB3,
+ 0x49, 0xCC, 0x91, 0xCD, 0x03, 0x49, 0xCC, 0xA3,
+ 0xB9, 0x03, 0x49, 0xCC, 0xA8, 0xA9, 0x03, 0x49,
+ 0xCC, 0xB0, 0xB9, 0x03, 0x4A, 0xCC, 0x82, 0xCD,
+ 0x03, 0x4B, 0xCC, 0x81, 0xCD, 0x03, 0x4B, 0xCC,
+ 0x8C, 0xCD, 0x03, 0x4B, 0xCC, 0xA3, 0xB9, 0x03,
+ 0x4B, 0xCC, 0xA7, 0xA9, 0x03, 0x4B, 0xCC, 0xB1,
+ 0xB9, 0x03, 0x4C, 0xCC, 0x81, 0xCD, 0x03, 0x4C,
+ 0xCC, 0x8C, 0xCD, 0x03, 0x4C, 0xCC, 0xA7, 0xA9,
// Bytes 3040 - 307f
- 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x11, 0x4F,
- 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83,
- 0xBC, 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x11,
- 0x4F, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0xE3,
- 0x83, 0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99,
- 0x11, 0x52, 0xE3, 0x82, 0xA8, 0xE3, 0x82, 0xB9,
- 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xBC, 0xE3, 0x83,
- 0x88, 0xE3, 0x82, 0x99, 0x11, 0x52, 0xE3, 0x83,
+ 0x03, 0x4C, 0xCC, 0xAD, 0xB9, 0x03, 0x4C, 0xCC,
+ 0xB1, 0xB9, 0x03, 0x4D, 0xCC, 0x81, 0xCD, 0x03,
+ 0x4D, 0xCC, 0x87, 0xCD, 0x03, 0x4D, 0xCC, 0xA3,
+ 0xB9, 0x03, 0x4E, 0xCC, 0x80, 0xCD, 0x03, 0x4E,
+ 0xCC, 0x81, 0xCD, 0x03, 0x4E, 0xCC, 0x83, 0xCD,
+ 0x03, 0x4E, 0xCC, 0x87, 0xCD, 0x03, 0x4E, 0xCC,
+ 0x8C, 0xCD, 0x03, 0x4E, 0xCC, 0xA3, 0xB9, 0x03,
+ 0x4E, 0xCC, 0xA7, 0xA9, 0x03, 0x4E, 0xCC, 0xAD,
// Bytes 3080 - 30bf
- 0x95, 0xE3, 0x82, 0xA1, 0xE3, 0x83, 0xA9, 0xE3,
- 0x83, 0x83, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99,
- 0x11, 0x86, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82,
- 0x01, 0x86, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8F,
- 0x01, 0x03, 0x3C, 0xCC, 0xB8, 0x05, 0x03, 0x3D,
- 0xCC, 0xB8, 0x05, 0x03, 0x3E, 0xCC, 0xB8, 0x05,
- 0x03, 0x41, 0xCC, 0x80, 0xCD, 0x03, 0x41, 0xCC,
- 0x81, 0xCD, 0x03, 0x41, 0xCC, 0x83, 0xCD, 0x03,
+ 0xB9, 0x03, 0x4E, 0xCC, 0xB1, 0xB9, 0x03, 0x4F,
+ 0xCC, 0x80, 0xCD, 0x03, 0x4F, 0xCC, 0x81, 0xCD,
+ 0x03, 0x4F, 0xCC, 0x86, 0xCD, 0x03, 0x4F, 0xCC,
+ 0x89, 0xCD, 0x03, 0x4F, 0xCC, 0x8B, 0xCD, 0x03,
+ 0x4F, 0xCC, 0x8C, 0xCD, 0x03, 0x4F, 0xCC, 0x8F,
+ 0xCD, 0x03, 0x4F, 0xCC, 0x91, 0xCD, 0x03, 0x50,
+ 0xCC, 0x81, 0xCD, 0x03, 0x50, 0xCC, 0x87, 0xCD,
+ 0x03, 0x52, 0xCC, 0x81, 0xCD, 0x03, 0x52, 0xCC,
// Bytes 30c0 - 30ff
- 0x41, 0xCC, 0x84, 0xCD, 0x03, 0x41, 0xCC, 0x89,
- 0xCD, 0x03, 0x41, 0xCC, 0x8C, 0xCD, 0x03, 0x41,
- 0xCC, 0x8F, 0xCD, 0x03, 0x41, 0xCC, 0x91, 0xCD,
- 0x03, 0x41, 0xCC, 0xA5, 0xB9, 0x03, 0x41, 0xCC,
- 0xA8, 0xA9, 0x03, 0x42, 0xCC, 0x87, 0xCD, 0x03,
- 0x42, 0xCC, 0xA3, 0xB9, 0x03, 0x42, 0xCC, 0xB1,
- 0xB9, 0x03, 0x43, 0xCC, 0x81, 0xCD, 0x03, 0x43,
- 0xCC, 0x82, 0xCD, 0x03, 0x43, 0xCC, 0x87, 0xCD,
+ 0x87, 0xCD, 0x03, 0x52, 0xCC, 0x8C, 0xCD, 0x03,
+ 0x52, 0xCC, 0x8F, 0xCD, 0x03, 0x52, 0xCC, 0x91,
+ 0xCD, 0x03, 0x52, 0xCC, 0xA7, 0xA9, 0x03, 0x52,
+ 0xCC, 0xB1, 0xB9, 0x03, 0x53, 0xCC, 0x82, 0xCD,
+ 0x03, 0x53, 0xCC, 0x87, 0xCD, 0x03, 0x53, 0xCC,
+ 0xA6, 0xB9, 0x03, 0x53, 0xCC, 0xA7, 0xA9, 0x03,
+ 0x54, 0xCC, 0x87, 0xCD, 0x03, 0x54, 0xCC, 0x8C,
+ 0xCD, 0x03, 0x54, 0xCC, 0xA3, 0xB9, 0x03, 0x54,
// Bytes 3100 - 313f
- 0x03, 0x43, 0xCC, 0x8C, 0xCD, 0x03, 0x44, 0xCC,
- 0x87, 0xCD, 0x03, 0x44, 0xCC, 0x8C, 0xCD, 0x03,
- 0x44, 0xCC, 0xA3, 0xB9, 0x03, 0x44, 0xCC, 0xA7,
- 0xA9, 0x03, 0x44, 0xCC, 0xAD, 0xB9, 0x03, 0x44,
- 0xCC, 0xB1, 0xB9, 0x03, 0x45, 0xCC, 0x80, 0xCD,
- 0x03, 0x45, 0xCC, 0x81, 0xCD, 0x03, 0x45, 0xCC,
- 0x83, 0xCD, 0x03, 0x45, 0xCC, 0x86, 0xCD, 0x03,
- 0x45, 0xCC, 0x87, 0xCD, 0x03, 0x45, 0xCC, 0x88,
+ 0xCC, 0xA6, 0xB9, 0x03, 0x54, 0xCC, 0xA7, 0xA9,
+ 0x03, 0x54, 0xCC, 0xAD, 0xB9, 0x03, 0x54, 0xCC,
+ 0xB1, 0xB9, 0x03, 0x55, 0xCC, 0x80, 0xCD, 0x03,
+ 0x55, 0xCC, 0x81, 0xCD, 0x03, 0x55, 0xCC, 0x82,
+ 0xCD, 0x03, 0x55, 0xCC, 0x86, 0xCD, 0x03, 0x55,
+ 0xCC, 0x89, 0xCD, 0x03, 0x55, 0xCC, 0x8A, 0xCD,
+ 0x03, 0x55, 0xCC, 0x8B, 0xCD, 0x03, 0x55, 0xCC,
+ 0x8C, 0xCD, 0x03, 0x55, 0xCC, 0x8F, 0xCD, 0x03,
// Bytes 3140 - 317f
- 0xCD, 0x03, 0x45, 0xCC, 0x89, 0xCD, 0x03, 0x45,
- 0xCC, 0x8C, 0xCD, 0x03, 0x45, 0xCC, 0x8F, 0xCD,
- 0x03, 0x45, 0xCC, 0x91, 0xCD, 0x03, 0x45, 0xCC,
- 0xA8, 0xA9, 0x03, 0x45, 0xCC, 0xAD, 0xB9, 0x03,
- 0x45, 0xCC, 0xB0, 0xB9, 0x03, 0x46, 0xCC, 0x87,
- 0xCD, 0x03, 0x47, 0xCC, 0x81, 0xCD, 0x03, 0x47,
- 0xCC, 0x82, 0xCD, 0x03, 0x47, 0xCC, 0x84, 0xCD,
- 0x03, 0x47, 0xCC, 0x86, 0xCD, 0x03, 0x47, 0xCC,
+ 0x55, 0xCC, 0x91, 0xCD, 0x03, 0x55, 0xCC, 0xA3,
+ 0xB9, 0x03, 0x55, 0xCC, 0xA4, 0xB9, 0x03, 0x55,
+ 0xCC, 0xA8, 0xA9, 0x03, 0x55, 0xCC, 0xAD, 0xB9,
+ 0x03, 0x55, 0xCC, 0xB0, 0xB9, 0x03, 0x56, 0xCC,
+ 0x83, 0xCD, 0x03, 0x56, 0xCC, 0xA3, 0xB9, 0x03,
+ 0x57, 0xCC, 0x80, 0xCD, 0x03, 0x57, 0xCC, 0x81,
+ 0xCD, 0x03, 0x57, 0xCC, 0x82, 0xCD, 0x03, 0x57,
+ 0xCC, 0x87, 0xCD, 0x03, 0x57, 0xCC, 0x88, 0xCD,
// Bytes 3180 - 31bf
- 0x87, 0xCD, 0x03, 0x47, 0xCC, 0x8C, 0xCD, 0x03,
- 0x47, 0xCC, 0xA7, 0xA9, 0x03, 0x48, 0xCC, 0x82,
- 0xCD, 0x03, 0x48, 0xCC, 0x87, 0xCD, 0x03, 0x48,
- 0xCC, 0x88, 0xCD, 0x03, 0x48, 0xCC, 0x8C, 0xCD,
- 0x03, 0x48, 0xCC, 0xA3, 0xB9, 0x03, 0x48, 0xCC,
- 0xA7, 0xA9, 0x03, 0x48, 0xCC, 0xAE, 0xB9, 0x03,
- 0x49, 0xCC, 0x80, 0xCD, 0x03, 0x49, 0xCC, 0x81,
- 0xCD, 0x03, 0x49, 0xCC, 0x82, 0xCD, 0x03, 0x49,
+ 0x03, 0x57, 0xCC, 0xA3, 0xB9, 0x03, 0x58, 0xCC,
+ 0x87, 0xCD, 0x03, 0x58, 0xCC, 0x88, 0xCD, 0x03,
+ 0x59, 0xCC, 0x80, 0xCD, 0x03, 0x59, 0xCC, 0x81,
+ 0xCD, 0x03, 0x59, 0xCC, 0x82, 0xCD, 0x03, 0x59,
+ 0xCC, 0x83, 0xCD, 0x03, 0x59, 0xCC, 0x84, 0xCD,
+ 0x03, 0x59, 0xCC, 0x87, 0xCD, 0x03, 0x59, 0xCC,
+ 0x88, 0xCD, 0x03, 0x59, 0xCC, 0x89, 0xCD, 0x03,
+ 0x59, 0xCC, 0xA3, 0xB9, 0x03, 0x5A, 0xCC, 0x81,
// Bytes 31c0 - 31ff
- 0xCC, 0x83, 0xCD, 0x03, 0x49, 0xCC, 0x84, 0xCD,
- 0x03, 0x49, 0xCC, 0x86, 0xCD, 0x03, 0x49, 0xCC,
- 0x87, 0xCD, 0x03, 0x49, 0xCC, 0x89, 0xCD, 0x03,
- 0x49, 0xCC, 0x8C, 0xCD, 0x03, 0x49, 0xCC, 0x8F,
- 0xCD, 0x03, 0x49, 0xCC, 0x91, 0xCD, 0x03, 0x49,
- 0xCC, 0xA3, 0xB9, 0x03, 0x49, 0xCC, 0xA8, 0xA9,
- 0x03, 0x49, 0xCC, 0xB0, 0xB9, 0x03, 0x4A, 0xCC,
- 0x82, 0xCD, 0x03, 0x4B, 0xCC, 0x81, 0xCD, 0x03,
+ 0xCD, 0x03, 0x5A, 0xCC, 0x82, 0xCD, 0x03, 0x5A,
+ 0xCC, 0x87, 0xCD, 0x03, 0x5A, 0xCC, 0x8C, 0xCD,
+ 0x03, 0x5A, 0xCC, 0xA3, 0xB9, 0x03, 0x5A, 0xCC,
+ 0xB1, 0xB9, 0x03, 0x61, 0xCC, 0x80, 0xCD, 0x03,
+ 0x61, 0xCC, 0x81, 0xCD, 0x03, 0x61, 0xCC, 0x83,
+ 0xCD, 0x03, 0x61, 0xCC, 0x84, 0xCD, 0x03, 0x61,
+ 0xCC, 0x89, 0xCD, 0x03, 0x61, 0xCC, 0x8C, 0xCD,
+ 0x03, 0x61, 0xCC, 0x8F, 0xCD, 0x03, 0x61, 0xCC,
// Bytes 3200 - 323f
- 0x4B, 0xCC, 0x8C, 0xCD, 0x03, 0x4B, 0xCC, 0xA3,
- 0xB9, 0x03, 0x4B, 0xCC, 0xA7, 0xA9, 0x03, 0x4B,
- 0xCC, 0xB1, 0xB9, 0x03, 0x4C, 0xCC, 0x81, 0xCD,
- 0x03, 0x4C, 0xCC, 0x8C, 0xCD, 0x03, 0x4C, 0xCC,
- 0xA7, 0xA9, 0x03, 0x4C, 0xCC, 0xAD, 0xB9, 0x03,
- 0x4C, 0xCC, 0xB1, 0xB9, 0x03, 0x4D, 0xCC, 0x81,
- 0xCD, 0x03, 0x4D, 0xCC, 0x87, 0xCD, 0x03, 0x4D,
- 0xCC, 0xA3, 0xB9, 0x03, 0x4E, 0xCC, 0x80, 0xCD,
+ 0x91, 0xCD, 0x03, 0x61, 0xCC, 0xA5, 0xB9, 0x03,
+ 0x61, 0xCC, 0xA8, 0xA9, 0x03, 0x62, 0xCC, 0x87,
+ 0xCD, 0x03, 0x62, 0xCC, 0xA3, 0xB9, 0x03, 0x62,
+ 0xCC, 0xB1, 0xB9, 0x03, 0x63, 0xCC, 0x81, 0xCD,
+ 0x03, 0x63, 0xCC, 0x82, 0xCD, 0x03, 0x63, 0xCC,
+ 0x87, 0xCD, 0x03, 0x63, 0xCC, 0x8C, 0xCD, 0x03,
+ 0x64, 0xCC, 0x87, 0xCD, 0x03, 0x64, 0xCC, 0x8C,
+ 0xCD, 0x03, 0x64, 0xCC, 0xA3, 0xB9, 0x03, 0x64,
// Bytes 3240 - 327f
- 0x03, 0x4E, 0xCC, 0x81, 0xCD, 0x03, 0x4E, 0xCC,
- 0x83, 0xCD, 0x03, 0x4E, 0xCC, 0x87, 0xCD, 0x03,
- 0x4E, 0xCC, 0x8C, 0xCD, 0x03, 0x4E, 0xCC, 0xA3,
- 0xB9, 0x03, 0x4E, 0xCC, 0xA7, 0xA9, 0x03, 0x4E,
- 0xCC, 0xAD, 0xB9, 0x03, 0x4E, 0xCC, 0xB1, 0xB9,
- 0x03, 0x4F, 0xCC, 0x80, 0xCD, 0x03, 0x4F, 0xCC,
- 0x81, 0xCD, 0x03, 0x4F, 0xCC, 0x86, 0xCD, 0x03,
- 0x4F, 0xCC, 0x89, 0xCD, 0x03, 0x4F, 0xCC, 0x8B,
+ 0xCC, 0xA7, 0xA9, 0x03, 0x64, 0xCC, 0xAD, 0xB9,
+ 0x03, 0x64, 0xCC, 0xB1, 0xB9, 0x03, 0x65, 0xCC,
+ 0x80, 0xCD, 0x03, 0x65, 0xCC, 0x81, 0xCD, 0x03,
+ 0x65, 0xCC, 0x83, 0xCD, 0x03, 0x65, 0xCC, 0x86,
+ 0xCD, 0x03, 0x65, 0xCC, 0x87, 0xCD, 0x03, 0x65,
+ 0xCC, 0x88, 0xCD, 0x03, 0x65, 0xCC, 0x89, 0xCD,
+ 0x03, 0x65, 0xCC, 0x8C, 0xCD, 0x03, 0x65, 0xCC,
+ 0x8F, 0xCD, 0x03, 0x65, 0xCC, 0x91, 0xCD, 0x03,
// Bytes 3280 - 32bf
- 0xCD, 0x03, 0x4F, 0xCC, 0x8C, 0xCD, 0x03, 0x4F,
- 0xCC, 0x8F, 0xCD, 0x03, 0x4F, 0xCC, 0x91, 0xCD,
- 0x03, 0x50, 0xCC, 0x81, 0xCD, 0x03, 0x50, 0xCC,
- 0x87, 0xCD, 0x03, 0x52, 0xCC, 0x81, 0xCD, 0x03,
- 0x52, 0xCC, 0x87, 0xCD, 0x03, 0x52, 0xCC, 0x8C,
- 0xCD, 0x03, 0x52, 0xCC, 0x8F, 0xCD, 0x03, 0x52,
- 0xCC, 0x91, 0xCD, 0x03, 0x52, 0xCC, 0xA7, 0xA9,
- 0x03, 0x52, 0xCC, 0xB1, 0xB9, 0x03, 0x53, 0xCC,
+ 0x65, 0xCC, 0xA8, 0xA9, 0x03, 0x65, 0xCC, 0xAD,
+ 0xB9, 0x03, 0x65, 0xCC, 0xB0, 0xB9, 0x03, 0x66,
+ 0xCC, 0x87, 0xCD, 0x03, 0x67, 0xCC, 0x81, 0xCD,
+ 0x03, 0x67, 0xCC, 0x82, 0xCD, 0x03, 0x67, 0xCC,
+ 0x84, 0xCD, 0x03, 0x67, 0xCC, 0x86, 0xCD, 0x03,
+ 0x67, 0xCC, 0x87, 0xCD, 0x03, 0x67, 0xCC, 0x8C,
+ 0xCD, 0x03, 0x67, 0xCC, 0xA7, 0xA9, 0x03, 0x68,
+ 0xCC, 0x82, 0xCD, 0x03, 0x68, 0xCC, 0x87, 0xCD,
// Bytes 32c0 - 32ff
- 0x82, 0xCD, 0x03, 0x53, 0xCC, 0x87, 0xCD, 0x03,
- 0x53, 0xCC, 0xA6, 0xB9, 0x03, 0x53, 0xCC, 0xA7,
- 0xA9, 0x03, 0x54, 0xCC, 0x87, 0xCD, 0x03, 0x54,
- 0xCC, 0x8C, 0xCD, 0x03, 0x54, 0xCC, 0xA3, 0xB9,
- 0x03, 0x54, 0xCC, 0xA6, 0xB9, 0x03, 0x54, 0xCC,
- 0xA7, 0xA9, 0x03, 0x54, 0xCC, 0xAD, 0xB9, 0x03,
- 0x54, 0xCC, 0xB1, 0xB9, 0x03, 0x55, 0xCC, 0x80,
- 0xCD, 0x03, 0x55, 0xCC, 0x81, 0xCD, 0x03, 0x55,
+ 0x03, 0x68, 0xCC, 0x88, 0xCD, 0x03, 0x68, 0xCC,
+ 0x8C, 0xCD, 0x03, 0x68, 0xCC, 0xA3, 0xB9, 0x03,
+ 0x68, 0xCC, 0xA7, 0xA9, 0x03, 0x68, 0xCC, 0xAE,
+ 0xB9, 0x03, 0x68, 0xCC, 0xB1, 0xB9, 0x03, 0x69,
+ 0xCC, 0x80, 0xCD, 0x03, 0x69, 0xCC, 0x81, 0xCD,
+ 0x03, 0x69, 0xCC, 0x82, 0xCD, 0x03, 0x69, 0xCC,
+ 0x83, 0xCD, 0x03, 0x69, 0xCC, 0x84, 0xCD, 0x03,
+ 0x69, 0xCC, 0x86, 0xCD, 0x03, 0x69, 0xCC, 0x89,
// Bytes 3300 - 333f
- 0xCC, 0x82, 0xCD, 0x03, 0x55, 0xCC, 0x86, 0xCD,
- 0x03, 0x55, 0xCC, 0x89, 0xCD, 0x03, 0x55, 0xCC,
- 0x8A, 0xCD, 0x03, 0x55, 0xCC, 0x8B, 0xCD, 0x03,
- 0x55, 0xCC, 0x8C, 0xCD, 0x03, 0x55, 0xCC, 0x8F,
- 0xCD, 0x03, 0x55, 0xCC, 0x91, 0xCD, 0x03, 0x55,
- 0xCC, 0xA3, 0xB9, 0x03, 0x55, 0xCC, 0xA4, 0xB9,
- 0x03, 0x55, 0xCC, 0xA8, 0xA9, 0x03, 0x55, 0xCC,
- 0xAD, 0xB9, 0x03, 0x55, 0xCC, 0xB0, 0xB9, 0x03,
+ 0xCD, 0x03, 0x69, 0xCC, 0x8C, 0xCD, 0x03, 0x69,
+ 0xCC, 0x8F, 0xCD, 0x03, 0x69, 0xCC, 0x91, 0xCD,
+ 0x03, 0x69, 0xCC, 0xA3, 0xB9, 0x03, 0x69, 0xCC,
+ 0xA8, 0xA9, 0x03, 0x69, 0xCC, 0xB0, 0xB9, 0x03,
+ 0x6A, 0xCC, 0x82, 0xCD, 0x03, 0x6A, 0xCC, 0x8C,
+ 0xCD, 0x03, 0x6B, 0xCC, 0x81, 0xCD, 0x03, 0x6B,
+ 0xCC, 0x8C, 0xCD, 0x03, 0x6B, 0xCC, 0xA3, 0xB9,
+ 0x03, 0x6B, 0xCC, 0xA7, 0xA9, 0x03, 0x6B, 0xCC,
// Bytes 3340 - 337f
- 0x56, 0xCC, 0x83, 0xCD, 0x03, 0x56, 0xCC, 0xA3,
- 0xB9, 0x03, 0x57, 0xCC, 0x80, 0xCD, 0x03, 0x57,
- 0xCC, 0x81, 0xCD, 0x03, 0x57, 0xCC, 0x82, 0xCD,
- 0x03, 0x57, 0xCC, 0x87, 0xCD, 0x03, 0x57, 0xCC,
- 0x88, 0xCD, 0x03, 0x57, 0xCC, 0xA3, 0xB9, 0x03,
- 0x58, 0xCC, 0x87, 0xCD, 0x03, 0x58, 0xCC, 0x88,
- 0xCD, 0x03, 0x59, 0xCC, 0x80, 0xCD, 0x03, 0x59,
- 0xCC, 0x81, 0xCD, 0x03, 0x59, 0xCC, 0x82, 0xCD,
+ 0xB1, 0xB9, 0x03, 0x6C, 0xCC, 0x81, 0xCD, 0x03,
+ 0x6C, 0xCC, 0x8C, 0xCD, 0x03, 0x6C, 0xCC, 0xA7,
+ 0xA9, 0x03, 0x6C, 0xCC, 0xAD, 0xB9, 0x03, 0x6C,
+ 0xCC, 0xB1, 0xB9, 0x03, 0x6D, 0xCC, 0x81, 0xCD,
+ 0x03, 0x6D, 0xCC, 0x87, 0xCD, 0x03, 0x6D, 0xCC,
+ 0xA3, 0xB9, 0x03, 0x6E, 0xCC, 0x80, 0xCD, 0x03,
+ 0x6E, 0xCC, 0x81, 0xCD, 0x03, 0x6E, 0xCC, 0x83,
+ 0xCD, 0x03, 0x6E, 0xCC, 0x87, 0xCD, 0x03, 0x6E,
// Bytes 3380 - 33bf
- 0x03, 0x59, 0xCC, 0x83, 0xCD, 0x03, 0x59, 0xCC,
- 0x84, 0xCD, 0x03, 0x59, 0xCC, 0x87, 0xCD, 0x03,
- 0x59, 0xCC, 0x88, 0xCD, 0x03, 0x59, 0xCC, 0x89,
- 0xCD, 0x03, 0x59, 0xCC, 0xA3, 0xB9, 0x03, 0x5A,
- 0xCC, 0x81, 0xCD, 0x03, 0x5A, 0xCC, 0x82, 0xCD,
- 0x03, 0x5A, 0xCC, 0x87, 0xCD, 0x03, 0x5A, 0xCC,
- 0x8C, 0xCD, 0x03, 0x5A, 0xCC, 0xA3, 0xB9, 0x03,
- 0x5A, 0xCC, 0xB1, 0xB9, 0x03, 0x61, 0xCC, 0x80,
+ 0xCC, 0x8C, 0xCD, 0x03, 0x6E, 0xCC, 0xA3, 0xB9,
+ 0x03, 0x6E, 0xCC, 0xA7, 0xA9, 0x03, 0x6E, 0xCC,
+ 0xAD, 0xB9, 0x03, 0x6E, 0xCC, 0xB1, 0xB9, 0x03,
+ 0x6F, 0xCC, 0x80, 0xCD, 0x03, 0x6F, 0xCC, 0x81,
+ 0xCD, 0x03, 0x6F, 0xCC, 0x86, 0xCD, 0x03, 0x6F,
+ 0xCC, 0x89, 0xCD, 0x03, 0x6F, 0xCC, 0x8B, 0xCD,
+ 0x03, 0x6F, 0xCC, 0x8C, 0xCD, 0x03, 0x6F, 0xCC,
+ 0x8F, 0xCD, 0x03, 0x6F, 0xCC, 0x91, 0xCD, 0x03,
// Bytes 33c0 - 33ff
- 0xCD, 0x03, 0x61, 0xCC, 0x81, 0xCD, 0x03, 0x61,
- 0xCC, 0x83, 0xCD, 0x03, 0x61, 0xCC, 0x84, 0xCD,
- 0x03, 0x61, 0xCC, 0x89, 0xCD, 0x03, 0x61, 0xCC,
- 0x8C, 0xCD, 0x03, 0x61, 0xCC, 0x8F, 0xCD, 0x03,
- 0x61, 0xCC, 0x91, 0xCD, 0x03, 0x61, 0xCC, 0xA5,
- 0xB9, 0x03, 0x61, 0xCC, 0xA8, 0xA9, 0x03, 0x62,
- 0xCC, 0x87, 0xCD, 0x03, 0x62, 0xCC, 0xA3, 0xB9,
- 0x03, 0x62, 0xCC, 0xB1, 0xB9, 0x03, 0x63, 0xCC,
+ 0x70, 0xCC, 0x81, 0xCD, 0x03, 0x70, 0xCC, 0x87,
+ 0xCD, 0x03, 0x72, 0xCC, 0x81, 0xCD, 0x03, 0x72,
+ 0xCC, 0x87, 0xCD, 0x03, 0x72, 0xCC, 0x8C, 0xCD,
+ 0x03, 0x72, 0xCC, 0x8F, 0xCD, 0x03, 0x72, 0xCC,
+ 0x91, 0xCD, 0x03, 0x72, 0xCC, 0xA7, 0xA9, 0x03,
+ 0x72, 0xCC, 0xB1, 0xB9, 0x03, 0x73, 0xCC, 0x82,
+ 0xCD, 0x03, 0x73, 0xCC, 0x87, 0xCD, 0x03, 0x73,
+ 0xCC, 0xA6, 0xB9, 0x03, 0x73, 0xCC, 0xA7, 0xA9,
// Bytes 3400 - 343f
- 0x81, 0xCD, 0x03, 0x63, 0xCC, 0x82, 0xCD, 0x03,
- 0x63, 0xCC, 0x87, 0xCD, 0x03, 0x63, 0xCC, 0x8C,
- 0xCD, 0x03, 0x64, 0xCC, 0x87, 0xCD, 0x03, 0x64,
- 0xCC, 0x8C, 0xCD, 0x03, 0x64, 0xCC, 0xA3, 0xB9,
- 0x03, 0x64, 0xCC, 0xA7, 0xA9, 0x03, 0x64, 0xCC,
- 0xAD, 0xB9, 0x03, 0x64, 0xCC, 0xB1, 0xB9, 0x03,
- 0x65, 0xCC, 0x80, 0xCD, 0x03, 0x65, 0xCC, 0x81,
- 0xCD, 0x03, 0x65, 0xCC, 0x83, 0xCD, 0x03, 0x65,
+ 0x03, 0x74, 0xCC, 0x87, 0xCD, 0x03, 0x74, 0xCC,
+ 0x88, 0xCD, 0x03, 0x74, 0xCC, 0x8C, 0xCD, 0x03,
+ 0x74, 0xCC, 0xA3, 0xB9, 0x03, 0x74, 0xCC, 0xA6,
+ 0xB9, 0x03, 0x74, 0xCC, 0xA7, 0xA9, 0x03, 0x74,
+ 0xCC, 0xAD, 0xB9, 0x03, 0x74, 0xCC, 0xB1, 0xB9,
+ 0x03, 0x75, 0xCC, 0x80, 0xCD, 0x03, 0x75, 0xCC,
+ 0x81, 0xCD, 0x03, 0x75, 0xCC, 0x82, 0xCD, 0x03,
+ 0x75, 0xCC, 0x86, 0xCD, 0x03, 0x75, 0xCC, 0x89,
// Bytes 3440 - 347f
- 0xCC, 0x86, 0xCD, 0x03, 0x65, 0xCC, 0x87, 0xCD,
- 0x03, 0x65, 0xCC, 0x88, 0xCD, 0x03, 0x65, 0xCC,
- 0x89, 0xCD, 0x03, 0x65, 0xCC, 0x8C, 0xCD, 0x03,
- 0x65, 0xCC, 0x8F, 0xCD, 0x03, 0x65, 0xCC, 0x91,
- 0xCD, 0x03, 0x65, 0xCC, 0xA8, 0xA9, 0x03, 0x65,
- 0xCC, 0xAD, 0xB9, 0x03, 0x65, 0xCC, 0xB0, 0xB9,
- 0x03, 0x66, 0xCC, 0x87, 0xCD, 0x03, 0x67, 0xCC,
- 0x81, 0xCD, 0x03, 0x67, 0xCC, 0x82, 0xCD, 0x03,
+ 0xCD, 0x03, 0x75, 0xCC, 0x8A, 0xCD, 0x03, 0x75,
+ 0xCC, 0x8B, 0xCD, 0x03, 0x75, 0xCC, 0x8C, 0xCD,
+ 0x03, 0x75, 0xCC, 0x8F, 0xCD, 0x03, 0x75, 0xCC,
+ 0x91, 0xCD, 0x03, 0x75, 0xCC, 0xA3, 0xB9, 0x03,
+ 0x75, 0xCC, 0xA4, 0xB9, 0x03, 0x75, 0xCC, 0xA8,
+ 0xA9, 0x03, 0x75, 0xCC, 0xAD, 0xB9, 0x03, 0x75,
+ 0xCC, 0xB0, 0xB9, 0x03, 0x76, 0xCC, 0x83, 0xCD,
+ 0x03, 0x76, 0xCC, 0xA3, 0xB9, 0x03, 0x77, 0xCC,
// Bytes 3480 - 34bf
- 0x67, 0xCC, 0x84, 0xCD, 0x03, 0x67, 0xCC, 0x86,
- 0xCD, 0x03, 0x67, 0xCC, 0x87, 0xCD, 0x03, 0x67,
- 0xCC, 0x8C, 0xCD, 0x03, 0x67, 0xCC, 0xA7, 0xA9,
- 0x03, 0x68, 0xCC, 0x82, 0xCD, 0x03, 0x68, 0xCC,
- 0x87, 0xCD, 0x03, 0x68, 0xCC, 0x88, 0xCD, 0x03,
- 0x68, 0xCC, 0x8C, 0xCD, 0x03, 0x68, 0xCC, 0xA3,
- 0xB9, 0x03, 0x68, 0xCC, 0xA7, 0xA9, 0x03, 0x68,
- 0xCC, 0xAE, 0xB9, 0x03, 0x68, 0xCC, 0xB1, 0xB9,
+ 0x80, 0xCD, 0x03, 0x77, 0xCC, 0x81, 0xCD, 0x03,
+ 0x77, 0xCC, 0x82, 0xCD, 0x03, 0x77, 0xCC, 0x87,
+ 0xCD, 0x03, 0x77, 0xCC, 0x88, 0xCD, 0x03, 0x77,
+ 0xCC, 0x8A, 0xCD, 0x03, 0x77, 0xCC, 0xA3, 0xB9,
+ 0x03, 0x78, 0xCC, 0x87, 0xCD, 0x03, 0x78, 0xCC,
+ 0x88, 0xCD, 0x03, 0x79, 0xCC, 0x80, 0xCD, 0x03,
+ 0x79, 0xCC, 0x81, 0xCD, 0x03, 0x79, 0xCC, 0x82,
+ 0xCD, 0x03, 0x79, 0xCC, 0x83, 0xCD, 0x03, 0x79,
// Bytes 34c0 - 34ff
- 0x03, 0x69, 0xCC, 0x80, 0xCD, 0x03, 0x69, 0xCC,
- 0x81, 0xCD, 0x03, 0x69, 0xCC, 0x82, 0xCD, 0x03,
- 0x69, 0xCC, 0x83, 0xCD, 0x03, 0x69, 0xCC, 0x84,
- 0xCD, 0x03, 0x69, 0xCC, 0x86, 0xCD, 0x03, 0x69,
- 0xCC, 0x89, 0xCD, 0x03, 0x69, 0xCC, 0x8C, 0xCD,
- 0x03, 0x69, 0xCC, 0x8F, 0xCD, 0x03, 0x69, 0xCC,
- 0x91, 0xCD, 0x03, 0x69, 0xCC, 0xA3, 0xB9, 0x03,
- 0x69, 0xCC, 0xA8, 0xA9, 0x03, 0x69, 0xCC, 0xB0,
+ 0xCC, 0x84, 0xCD, 0x03, 0x79, 0xCC, 0x87, 0xCD,
+ 0x03, 0x79, 0xCC, 0x88, 0xCD, 0x03, 0x79, 0xCC,
+ 0x89, 0xCD, 0x03, 0x79, 0xCC, 0x8A, 0xCD, 0x03,
+ 0x79, 0xCC, 0xA3, 0xB9, 0x03, 0x7A, 0xCC, 0x81,
+ 0xCD, 0x03, 0x7A, 0xCC, 0x82, 0xCD, 0x03, 0x7A,
+ 0xCC, 0x87, 0xCD, 0x03, 0x7A, 0xCC, 0x8C, 0xCD,
+ 0x03, 0x7A, 0xCC, 0xA3, 0xB9, 0x03, 0x7A, 0xCC,
+ 0xB1, 0xB9, 0x04, 0xC2, 0xA8, 0xCC, 0x80, 0xCE,
// Bytes 3500 - 353f
- 0xB9, 0x03, 0x6A, 0xCC, 0x82, 0xCD, 0x03, 0x6A,
- 0xCC, 0x8C, 0xCD, 0x03, 0x6B, 0xCC, 0x81, 0xCD,
- 0x03, 0x6B, 0xCC, 0x8C, 0xCD, 0x03, 0x6B, 0xCC,
- 0xA3, 0xB9, 0x03, 0x6B, 0xCC, 0xA7, 0xA9, 0x03,
- 0x6B, 0xCC, 0xB1, 0xB9, 0x03, 0x6C, 0xCC, 0x81,
- 0xCD, 0x03, 0x6C, 0xCC, 0x8C, 0xCD, 0x03, 0x6C,
- 0xCC, 0xA7, 0xA9, 0x03, 0x6C, 0xCC, 0xAD, 0xB9,
- 0x03, 0x6C, 0xCC, 0xB1, 0xB9, 0x03, 0x6D, 0xCC,
+ 0x04, 0xC2, 0xA8, 0xCC, 0x81, 0xCE, 0x04, 0xC2,
+ 0xA8, 0xCD, 0x82, 0xCE, 0x04, 0xC3, 0x86, 0xCC,
+ 0x81, 0xCD, 0x04, 0xC3, 0x86, 0xCC, 0x84, 0xCD,
+ 0x04, 0xC3, 0x98, 0xCC, 0x81, 0xCD, 0x04, 0xC3,
+ 0xA6, 0xCC, 0x81, 0xCD, 0x04, 0xC3, 0xA6, 0xCC,
+ 0x84, 0xCD, 0x04, 0xC3, 0xB8, 0xCC, 0x81, 0xCD,
+ 0x04, 0xC5, 0xBF, 0xCC, 0x87, 0xCD, 0x04, 0xC6,
+ 0xB7, 0xCC, 0x8C, 0xCD, 0x04, 0xCA, 0x92, 0xCC,
// Bytes 3540 - 357f
- 0x81, 0xCD, 0x03, 0x6D, 0xCC, 0x87, 0xCD, 0x03,
- 0x6D, 0xCC, 0xA3, 0xB9, 0x03, 0x6E, 0xCC, 0x80,
- 0xCD, 0x03, 0x6E, 0xCC, 0x81, 0xCD, 0x03, 0x6E,
- 0xCC, 0x83, 0xCD, 0x03, 0x6E, 0xCC, 0x87, 0xCD,
- 0x03, 0x6E, 0xCC, 0x8C, 0xCD, 0x03, 0x6E, 0xCC,
- 0xA3, 0xB9, 0x03, 0x6E, 0xCC, 0xA7, 0xA9, 0x03,
- 0x6E, 0xCC, 0xAD, 0xB9, 0x03, 0x6E, 0xCC, 0xB1,
- 0xB9, 0x03, 0x6F, 0xCC, 0x80, 0xCD, 0x03, 0x6F,
+ 0x8C, 0xCD, 0x04, 0xCE, 0x91, 0xCC, 0x80, 0xCD,
+ 0x04, 0xCE, 0x91, 0xCC, 0x81, 0xCD, 0x04, 0xCE,
+ 0x91, 0xCC, 0x84, 0xCD, 0x04, 0xCE, 0x91, 0xCC,
+ 0x86, 0xCD, 0x04, 0xCE, 0x91, 0xCD, 0x85, 0xDD,
+ 0x04, 0xCE, 0x95, 0xCC, 0x80, 0xCD, 0x04, 0xCE,
+ 0x95, 0xCC, 0x81, 0xCD, 0x04, 0xCE, 0x97, 0xCC,
+ 0x80, 0xCD, 0x04, 0xCE, 0x97, 0xCC, 0x81, 0xCD,
+ 0x04, 0xCE, 0x97, 0xCD, 0x85, 0xDD, 0x04, 0xCE,
// Bytes 3580 - 35bf
- 0xCC, 0x81, 0xCD, 0x03, 0x6F, 0xCC, 0x86, 0xCD,
- 0x03, 0x6F, 0xCC, 0x89, 0xCD, 0x03, 0x6F, 0xCC,
- 0x8B, 0xCD, 0x03, 0x6F, 0xCC, 0x8C, 0xCD, 0x03,
- 0x6F, 0xCC, 0x8F, 0xCD, 0x03, 0x6F, 0xCC, 0x91,
- 0xCD, 0x03, 0x70, 0xCC, 0x81, 0xCD, 0x03, 0x70,
- 0xCC, 0x87, 0xCD, 0x03, 0x72, 0xCC, 0x81, 0xCD,
- 0x03, 0x72, 0xCC, 0x87, 0xCD, 0x03, 0x72, 0xCC,
- 0x8C, 0xCD, 0x03, 0x72, 0xCC, 0x8F, 0xCD, 0x03,
+ 0x99, 0xCC, 0x80, 0xCD, 0x04, 0xCE, 0x99, 0xCC,
+ 0x81, 0xCD, 0x04, 0xCE, 0x99, 0xCC, 0x84, 0xCD,
+ 0x04, 0xCE, 0x99, 0xCC, 0x86, 0xCD, 0x04, 0xCE,
+ 0x99, 0xCC, 0x88, 0xCD, 0x04, 0xCE, 0x9F, 0xCC,
+ 0x80, 0xCD, 0x04, 0xCE, 0x9F, 0xCC, 0x81, 0xCD,
+ 0x04, 0xCE, 0xA1, 0xCC, 0x94, 0xCD, 0x04, 0xCE,
+ 0xA5, 0xCC, 0x80, 0xCD, 0x04, 0xCE, 0xA5, 0xCC,
+ 0x81, 0xCD, 0x04, 0xCE, 0xA5, 0xCC, 0x84, 0xCD,
// Bytes 35c0 - 35ff
- 0x72, 0xCC, 0x91, 0xCD, 0x03, 0x72, 0xCC, 0xA7,
- 0xA9, 0x03, 0x72, 0xCC, 0xB1, 0xB9, 0x03, 0x73,
- 0xCC, 0x82, 0xCD, 0x03, 0x73, 0xCC, 0x87, 0xCD,
- 0x03, 0x73, 0xCC, 0xA6, 0xB9, 0x03, 0x73, 0xCC,
- 0xA7, 0xA9, 0x03, 0x74, 0xCC, 0x87, 0xCD, 0x03,
- 0x74, 0xCC, 0x88, 0xCD, 0x03, 0x74, 0xCC, 0x8C,
- 0xCD, 0x03, 0x74, 0xCC, 0xA3, 0xB9, 0x03, 0x74,
- 0xCC, 0xA6, 0xB9, 0x03, 0x74, 0xCC, 0xA7, 0xA9,
+ 0x04, 0xCE, 0xA5, 0xCC, 0x86, 0xCD, 0x04, 0xCE,
+ 0xA5, 0xCC, 0x88, 0xCD, 0x04, 0xCE, 0xA9, 0xCC,
+ 0x80, 0xCD, 0x04, 0xCE, 0xA9, 0xCC, 0x81, 0xCD,
+ 0x04, 0xCE, 0xA9, 0xCD, 0x85, 0xDD, 0x04, 0xCE,
+ 0xB1, 0xCC, 0x84, 0xCD, 0x04, 0xCE, 0xB1, 0xCC,
+ 0x86, 0xCD, 0x04, 0xCE, 0xB1, 0xCD, 0x85, 0xDD,
+ 0x04, 0xCE, 0xB5, 0xCC, 0x80, 0xCD, 0x04, 0xCE,
+ 0xB5, 0xCC, 0x81, 0xCD, 0x04, 0xCE, 0xB7, 0xCD,
// Bytes 3600 - 363f
- 0x03, 0x74, 0xCC, 0xAD, 0xB9, 0x03, 0x74, 0xCC,
- 0xB1, 0xB9, 0x03, 0x75, 0xCC, 0x80, 0xCD, 0x03,
- 0x75, 0xCC, 0x81, 0xCD, 0x03, 0x75, 0xCC, 0x82,
- 0xCD, 0x03, 0x75, 0xCC, 0x86, 0xCD, 0x03, 0x75,
- 0xCC, 0x89, 0xCD, 0x03, 0x75, 0xCC, 0x8A, 0xCD,
- 0x03, 0x75, 0xCC, 0x8B, 0xCD, 0x03, 0x75, 0xCC,
- 0x8C, 0xCD, 0x03, 0x75, 0xCC, 0x8F, 0xCD, 0x03,
- 0x75, 0xCC, 0x91, 0xCD, 0x03, 0x75, 0xCC, 0xA3,
+ 0x85, 0xDD, 0x04, 0xCE, 0xB9, 0xCC, 0x80, 0xCD,
+ 0x04, 0xCE, 0xB9, 0xCC, 0x81, 0xCD, 0x04, 0xCE,
+ 0xB9, 0xCC, 0x84, 0xCD, 0x04, 0xCE, 0xB9, 0xCC,
+ 0x86, 0xCD, 0x04, 0xCE, 0xB9, 0xCD, 0x82, 0xCD,
+ 0x04, 0xCE, 0xBF, 0xCC, 0x80, 0xCD, 0x04, 0xCE,
+ 0xBF, 0xCC, 0x81, 0xCD, 0x04, 0xCF, 0x81, 0xCC,
+ 0x93, 0xCD, 0x04, 0xCF, 0x81, 0xCC, 0x94, 0xCD,
+ 0x04, 0xCF, 0x85, 0xCC, 0x80, 0xCD, 0x04, 0xCF,
// Bytes 3640 - 367f
- 0xB9, 0x03, 0x75, 0xCC, 0xA4, 0xB9, 0x03, 0x75,
- 0xCC, 0xA8, 0xA9, 0x03, 0x75, 0xCC, 0xAD, 0xB9,
- 0x03, 0x75, 0xCC, 0xB0, 0xB9, 0x03, 0x76, 0xCC,
- 0x83, 0xCD, 0x03, 0x76, 0xCC, 0xA3, 0xB9, 0x03,
- 0x77, 0xCC, 0x80, 0xCD, 0x03, 0x77, 0xCC, 0x81,
- 0xCD, 0x03, 0x77, 0xCC, 0x82, 0xCD, 0x03, 0x77,
- 0xCC, 0x87, 0xCD, 0x03, 0x77, 0xCC, 0x88, 0xCD,
- 0x03, 0x77, 0xCC, 0x8A, 0xCD, 0x03, 0x77, 0xCC,
+ 0x85, 0xCC, 0x81, 0xCD, 0x04, 0xCF, 0x85, 0xCC,
+ 0x84, 0xCD, 0x04, 0xCF, 0x85, 0xCC, 0x86, 0xCD,
+ 0x04, 0xCF, 0x85, 0xCD, 0x82, 0xCD, 0x04, 0xCF,
+ 0x89, 0xCD, 0x85, 0xDD, 0x04, 0xCF, 0x92, 0xCC,
+ 0x81, 0xCD, 0x04, 0xCF, 0x92, 0xCC, 0x88, 0xCD,
+ 0x04, 0xD0, 0x86, 0xCC, 0x88, 0xCD, 0x04, 0xD0,
+ 0x90, 0xCC, 0x86, 0xCD, 0x04, 0xD0, 0x90, 0xCC,
+ 0x88, 0xCD, 0x04, 0xD0, 0x93, 0xCC, 0x81, 0xCD,
// Bytes 3680 - 36bf
- 0xA3, 0xB9, 0x03, 0x78, 0xCC, 0x87, 0xCD, 0x03,
- 0x78, 0xCC, 0x88, 0xCD, 0x03, 0x79, 0xCC, 0x80,
- 0xCD, 0x03, 0x79, 0xCC, 0x81, 0xCD, 0x03, 0x79,
- 0xCC, 0x82, 0xCD, 0x03, 0x79, 0xCC, 0x83, 0xCD,
- 0x03, 0x79, 0xCC, 0x84, 0xCD, 0x03, 0x79, 0xCC,
- 0x87, 0xCD, 0x03, 0x79, 0xCC, 0x88, 0xCD, 0x03,
- 0x79, 0xCC, 0x89, 0xCD, 0x03, 0x79, 0xCC, 0x8A,
- 0xCD, 0x03, 0x79, 0xCC, 0xA3, 0xB9, 0x03, 0x7A,
+ 0x04, 0xD0, 0x95, 0xCC, 0x80, 0xCD, 0x04, 0xD0,
+ 0x95, 0xCC, 0x86, 0xCD, 0x04, 0xD0, 0x95, 0xCC,
+ 0x88, 0xCD, 0x04, 0xD0, 0x96, 0xCC, 0x86, 0xCD,
+ 0x04, 0xD0, 0x96, 0xCC, 0x88, 0xCD, 0x04, 0xD0,
+ 0x97, 0xCC, 0x88, 0xCD, 0x04, 0xD0, 0x98, 0xCC,
+ 0x80, 0xCD, 0x04, 0xD0, 0x98, 0xCC, 0x84, 0xCD,
+ 0x04, 0xD0, 0x98, 0xCC, 0x86, 0xCD, 0x04, 0xD0,
+ 0x98, 0xCC, 0x88, 0xCD, 0x04, 0xD0, 0x9A, 0xCC,
// Bytes 36c0 - 36ff
- 0xCC, 0x81, 0xCD, 0x03, 0x7A, 0xCC, 0x82, 0xCD,
- 0x03, 0x7A, 0xCC, 0x87, 0xCD, 0x03, 0x7A, 0xCC,
- 0x8C, 0xCD, 0x03, 0x7A, 0xCC, 0xA3, 0xB9, 0x03,
- 0x7A, 0xCC, 0xB1, 0xB9, 0x04, 0xC2, 0xA8, 0xCC,
- 0x80, 0xCE, 0x04, 0xC2, 0xA8, 0xCC, 0x81, 0xCE,
- 0x04, 0xC2, 0xA8, 0xCD, 0x82, 0xCE, 0x04, 0xC3,
- 0x86, 0xCC, 0x81, 0xCD, 0x04, 0xC3, 0x86, 0xCC,
- 0x84, 0xCD, 0x04, 0xC3, 0x98, 0xCC, 0x81, 0xCD,
+ 0x81, 0xCD, 0x04, 0xD0, 0x9E, 0xCC, 0x88, 0xCD,
+ 0x04, 0xD0, 0xA3, 0xCC, 0x84, 0xCD, 0x04, 0xD0,
+ 0xA3, 0xCC, 0x86, 0xCD, 0x04, 0xD0, 0xA3, 0xCC,
+ 0x88, 0xCD, 0x04, 0xD0, 0xA3, 0xCC, 0x8B, 0xCD,
+ 0x04, 0xD0, 0xA7, 0xCC, 0x88, 0xCD, 0x04, 0xD0,
+ 0xAB, 0xCC, 0x88, 0xCD, 0x04, 0xD0, 0xAD, 0xCC,
+ 0x88, 0xCD, 0x04, 0xD0, 0xB0, 0xCC, 0x86, 0xCD,
+ 0x04, 0xD0, 0xB0, 0xCC, 0x88, 0xCD, 0x04, 0xD0,
// Bytes 3700 - 373f
- 0x04, 0xC3, 0xA6, 0xCC, 0x81, 0xCD, 0x04, 0xC3,
- 0xA6, 0xCC, 0x84, 0xCD, 0x04, 0xC3, 0xB8, 0xCC,
- 0x81, 0xCD, 0x04, 0xC5, 0xBF, 0xCC, 0x87, 0xCD,
- 0x04, 0xC6, 0xB7, 0xCC, 0x8C, 0xCD, 0x04, 0xCA,
- 0x92, 0xCC, 0x8C, 0xCD, 0x04, 0xCE, 0x91, 0xCC,
- 0x80, 0xCD, 0x04, 0xCE, 0x91, 0xCC, 0x81, 0xCD,
- 0x04, 0xCE, 0x91, 0xCC, 0x84, 0xCD, 0x04, 0xCE,
- 0x91, 0xCC, 0x86, 0xCD, 0x04, 0xCE, 0x91, 0xCD,
+ 0xB3, 0xCC, 0x81, 0xCD, 0x04, 0xD0, 0xB5, 0xCC,
+ 0x80, 0xCD, 0x04, 0xD0, 0xB5, 0xCC, 0x86, 0xCD,
+ 0x04, 0xD0, 0xB5, 0xCC, 0x88, 0xCD, 0x04, 0xD0,
+ 0xB6, 0xCC, 0x86, 0xCD, 0x04, 0xD0, 0xB6, 0xCC,
+ 0x88, 0xCD, 0x04, 0xD0, 0xB7, 0xCC, 0x88, 0xCD,
+ 0x04, 0xD0, 0xB8, 0xCC, 0x80, 0xCD, 0x04, 0xD0,
+ 0xB8, 0xCC, 0x84, 0xCD, 0x04, 0xD0, 0xB8, 0xCC,
+ 0x86, 0xCD, 0x04, 0xD0, 0xB8, 0xCC, 0x88, 0xCD,
// Bytes 3740 - 377f
- 0x85, 0xDD, 0x04, 0xCE, 0x95, 0xCC, 0x80, 0xCD,
- 0x04, 0xCE, 0x95, 0xCC, 0x81, 0xCD, 0x04, 0xCE,
- 0x97, 0xCC, 0x80, 0xCD, 0x04, 0xCE, 0x97, 0xCC,
- 0x81, 0xCD, 0x04, 0xCE, 0x97, 0xCD, 0x85, 0xDD,
- 0x04, 0xCE, 0x99, 0xCC, 0x80, 0xCD, 0x04, 0xCE,
- 0x99, 0xCC, 0x81, 0xCD, 0x04, 0xCE, 0x99, 0xCC,
- 0x84, 0xCD, 0x04, 0xCE, 0x99, 0xCC, 0x86, 0xCD,
- 0x04, 0xCE, 0x99, 0xCC, 0x88, 0xCD, 0x04, 0xCE,
+ 0x04, 0xD0, 0xBA, 0xCC, 0x81, 0xCD, 0x04, 0xD0,
+ 0xBE, 0xCC, 0x88, 0xCD, 0x04, 0xD1, 0x83, 0xCC,
+ 0x84, 0xCD, 0x04, 0xD1, 0x83, 0xCC, 0x86, 0xCD,
+ 0x04, 0xD1, 0x83, 0xCC, 0x88, 0xCD, 0x04, 0xD1,
+ 0x83, 0xCC, 0x8B, 0xCD, 0x04, 0xD1, 0x87, 0xCC,
+ 0x88, 0xCD, 0x04, 0xD1, 0x8B, 0xCC, 0x88, 0xCD,
+ 0x04, 0xD1, 0x8D, 0xCC, 0x88, 0xCD, 0x04, 0xD1,
+ 0x96, 0xCC, 0x88, 0xCD, 0x04, 0xD1, 0xB4, 0xCC,
// Bytes 3780 - 37bf
- 0x9F, 0xCC, 0x80, 0xCD, 0x04, 0xCE, 0x9F, 0xCC,
- 0x81, 0xCD, 0x04, 0xCE, 0xA1, 0xCC, 0x94, 0xCD,
- 0x04, 0xCE, 0xA5, 0xCC, 0x80, 0xCD, 0x04, 0xCE,
- 0xA5, 0xCC, 0x81, 0xCD, 0x04, 0xCE, 0xA5, 0xCC,
- 0x84, 0xCD, 0x04, 0xCE, 0xA5, 0xCC, 0x86, 0xCD,
- 0x04, 0xCE, 0xA5, 0xCC, 0x88, 0xCD, 0x04, 0xCE,
- 0xA9, 0xCC, 0x80, 0xCD, 0x04, 0xCE, 0xA9, 0xCC,
- 0x81, 0xCD, 0x04, 0xCE, 0xA9, 0xCD, 0x85, 0xDD,
+ 0x8F, 0xCD, 0x04, 0xD1, 0xB5, 0xCC, 0x8F, 0xCD,
+ 0x04, 0xD3, 0x98, 0xCC, 0x88, 0xCD, 0x04, 0xD3,
+ 0x99, 0xCC, 0x88, 0xCD, 0x04, 0xD3, 0xA8, 0xCC,
+ 0x88, 0xCD, 0x04, 0xD3, 0xA9, 0xCC, 0x88, 0xCD,
+ 0x04, 0xD8, 0xA7, 0xD9, 0x93, 0xCD, 0x04, 0xD8,
+ 0xA7, 0xD9, 0x94, 0xCD, 0x04, 0xD8, 0xA7, 0xD9,
+ 0x95, 0xB9, 0x04, 0xD9, 0x88, 0xD9, 0x94, 0xCD,
+ 0x04, 0xD9, 0x8A, 0xD9, 0x94, 0xCD, 0x04, 0xDB,
// Bytes 37c0 - 37ff
- 0x04, 0xCE, 0xB1, 0xCC, 0x84, 0xCD, 0x04, 0xCE,
- 0xB1, 0xCC, 0x86, 0xCD, 0x04, 0xCE, 0xB1, 0xCD,
- 0x85, 0xDD, 0x04, 0xCE, 0xB5, 0xCC, 0x80, 0xCD,
- 0x04, 0xCE, 0xB5, 0xCC, 0x81, 0xCD, 0x04, 0xCE,
- 0xB7, 0xCD, 0x85, 0xDD, 0x04, 0xCE, 0xB9, 0xCC,
- 0x80, 0xCD, 0x04, 0xCE, 0xB9, 0xCC, 0x81, 0xCD,
- 0x04, 0xCE, 0xB9, 0xCC, 0x84, 0xCD, 0x04, 0xCE,
- 0xB9, 0xCC, 0x86, 0xCD, 0x04, 0xCE, 0xB9, 0xCD,
+ 0x81, 0xD9, 0x94, 0xCD, 0x04, 0xDB, 0x92, 0xD9,
+ 0x94, 0xCD, 0x04, 0xDB, 0x95, 0xD9, 0x94, 0xCD,
+ 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x80, 0xCE, 0x05,
+ 0x41, 0xCC, 0x82, 0xCC, 0x81, 0xCE, 0x05, 0x41,
+ 0xCC, 0x82, 0xCC, 0x83, 0xCE, 0x05, 0x41, 0xCC,
+ 0x82, 0xCC, 0x89, 0xCE, 0x05, 0x41, 0xCC, 0x86,
+ 0xCC, 0x80, 0xCE, 0x05, 0x41, 0xCC, 0x86, 0xCC,
+ 0x81, 0xCE, 0x05, 0x41, 0xCC, 0x86, 0xCC, 0x83,
// Bytes 3800 - 383f
- 0x82, 0xCD, 0x04, 0xCE, 0xBF, 0xCC, 0x80, 0xCD,
- 0x04, 0xCE, 0xBF, 0xCC, 0x81, 0xCD, 0x04, 0xCF,
- 0x81, 0xCC, 0x93, 0xCD, 0x04, 0xCF, 0x81, 0xCC,
- 0x94, 0xCD, 0x04, 0xCF, 0x85, 0xCC, 0x80, 0xCD,
- 0x04, 0xCF, 0x85, 0xCC, 0x81, 0xCD, 0x04, 0xCF,
- 0x85, 0xCC, 0x84, 0xCD, 0x04, 0xCF, 0x85, 0xCC,
- 0x86, 0xCD, 0x04, 0xCF, 0x85, 0xCD, 0x82, 0xCD,
- 0x04, 0xCF, 0x89, 0xCD, 0x85, 0xDD, 0x04, 0xCF,
+ 0xCE, 0x05, 0x41, 0xCC, 0x86, 0xCC, 0x89, 0xCE,
+ 0x05, 0x41, 0xCC, 0x87, 0xCC, 0x84, 0xCE, 0x05,
+ 0x41, 0xCC, 0x88, 0xCC, 0x84, 0xCE, 0x05, 0x41,
+ 0xCC, 0x8A, 0xCC, 0x81, 0xCE, 0x05, 0x41, 0xCC,
+ 0xA3, 0xCC, 0x82, 0xCE, 0x05, 0x41, 0xCC, 0xA3,
+ 0xCC, 0x86, 0xCE, 0x05, 0x43, 0xCC, 0xA7, 0xCC,
+ 0x81, 0xCE, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x80,
+ 0xCE, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x81, 0xCE,
// Bytes 3840 - 387f
- 0x92, 0xCC, 0x81, 0xCD, 0x04, 0xCF, 0x92, 0xCC,
- 0x88, 0xCD, 0x04, 0xD0, 0x86, 0xCC, 0x88, 0xCD,
- 0x04, 0xD0, 0x90, 0xCC, 0x86, 0xCD, 0x04, 0xD0,
- 0x90, 0xCC, 0x88, 0xCD, 0x04, 0xD0, 0x93, 0xCC,
- 0x81, 0xCD, 0x04, 0xD0, 0x95, 0xCC, 0x80, 0xCD,
- 0x04, 0xD0, 0x95, 0xCC, 0x86, 0xCD, 0x04, 0xD0,
- 0x95, 0xCC, 0x88, 0xCD, 0x04, 0xD0, 0x96, 0xCC,
- 0x86, 0xCD, 0x04, 0xD0, 0x96, 0xCC, 0x88, 0xCD,
+ 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x83, 0xCE, 0x05,
+ 0x45, 0xCC, 0x82, 0xCC, 0x89, 0xCE, 0x05, 0x45,
+ 0xCC, 0x84, 0xCC, 0x80, 0xCE, 0x05, 0x45, 0xCC,
+ 0x84, 0xCC, 0x81, 0xCE, 0x05, 0x45, 0xCC, 0xA3,
+ 0xCC, 0x82, 0xCE, 0x05, 0x45, 0xCC, 0xA7, 0xCC,
+ 0x86, 0xCE, 0x05, 0x49, 0xCC, 0x88, 0xCC, 0x81,
+ 0xCE, 0x05, 0x4C, 0xCC, 0xA3, 0xCC, 0x84, 0xCE,
+ 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x80, 0xCE, 0x05,
// Bytes 3880 - 38bf
- 0x04, 0xD0, 0x97, 0xCC, 0x88, 0xCD, 0x04, 0xD0,
- 0x98, 0xCC, 0x80, 0xCD, 0x04, 0xD0, 0x98, 0xCC,
- 0x84, 0xCD, 0x04, 0xD0, 0x98, 0xCC, 0x86, 0xCD,
- 0x04, 0xD0, 0x98, 0xCC, 0x88, 0xCD, 0x04, 0xD0,
- 0x9A, 0xCC, 0x81, 0xCD, 0x04, 0xD0, 0x9E, 0xCC,
- 0x88, 0xCD, 0x04, 0xD0, 0xA3, 0xCC, 0x84, 0xCD,
- 0x04, 0xD0, 0xA3, 0xCC, 0x86, 0xCD, 0x04, 0xD0,
- 0xA3, 0xCC, 0x88, 0xCD, 0x04, 0xD0, 0xA3, 0xCC,
+ 0x4F, 0xCC, 0x82, 0xCC, 0x81, 0xCE, 0x05, 0x4F,
+ 0xCC, 0x82, 0xCC, 0x83, 0xCE, 0x05, 0x4F, 0xCC,
+ 0x82, 0xCC, 0x89, 0xCE, 0x05, 0x4F, 0xCC, 0x83,
+ 0xCC, 0x81, 0xCE, 0x05, 0x4F, 0xCC, 0x83, 0xCC,
+ 0x84, 0xCE, 0x05, 0x4F, 0xCC, 0x83, 0xCC, 0x88,
+ 0xCE, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x80, 0xCE,
+ 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x81, 0xCE, 0x05,
+ 0x4F, 0xCC, 0x87, 0xCC, 0x84, 0xCE, 0x05, 0x4F,
// Bytes 38c0 - 38ff
- 0x8B, 0xCD, 0x04, 0xD0, 0xA7, 0xCC, 0x88, 0xCD,
- 0x04, 0xD0, 0xAB, 0xCC, 0x88, 0xCD, 0x04, 0xD0,
- 0xAD, 0xCC, 0x88, 0xCD, 0x04, 0xD0, 0xB0, 0xCC,
- 0x86, 0xCD, 0x04, 0xD0, 0xB0, 0xCC, 0x88, 0xCD,
- 0x04, 0xD0, 0xB3, 0xCC, 0x81, 0xCD, 0x04, 0xD0,
- 0xB5, 0xCC, 0x80, 0xCD, 0x04, 0xD0, 0xB5, 0xCC,
- 0x86, 0xCD, 0x04, 0xD0, 0xB5, 0xCC, 0x88, 0xCD,
- 0x04, 0xD0, 0xB6, 0xCC, 0x86, 0xCD, 0x04, 0xD0,
+ 0xCC, 0x88, 0xCC, 0x84, 0xCE, 0x05, 0x4F, 0xCC,
+ 0x9B, 0xCC, 0x80, 0xCE, 0x05, 0x4F, 0xCC, 0x9B,
+ 0xCC, 0x81, 0xCE, 0x05, 0x4F, 0xCC, 0x9B, 0xCC,
+ 0x83, 0xCE, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0x89,
+ 0xCE, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0xA3, 0xBA,
+ 0x05, 0x4F, 0xCC, 0xA3, 0xCC, 0x82, 0xCE, 0x05,
+ 0x4F, 0xCC, 0xA8, 0xCC, 0x84, 0xCE, 0x05, 0x52,
+ 0xCC, 0xA3, 0xCC, 0x84, 0xCE, 0x05, 0x53, 0xCC,
// Bytes 3900 - 393f
- 0xB6, 0xCC, 0x88, 0xCD, 0x04, 0xD0, 0xB7, 0xCC,
- 0x88, 0xCD, 0x04, 0xD0, 0xB8, 0xCC, 0x80, 0xCD,
- 0x04, 0xD0, 0xB8, 0xCC, 0x84, 0xCD, 0x04, 0xD0,
- 0xB8, 0xCC, 0x86, 0xCD, 0x04, 0xD0, 0xB8, 0xCC,
- 0x88, 0xCD, 0x04, 0xD0, 0xBA, 0xCC, 0x81, 0xCD,
- 0x04, 0xD0, 0xBE, 0xCC, 0x88, 0xCD, 0x04, 0xD1,
- 0x83, 0xCC, 0x84, 0xCD, 0x04, 0xD1, 0x83, 0xCC,
- 0x86, 0xCD, 0x04, 0xD1, 0x83, 0xCC, 0x88, 0xCD,
+ 0x81, 0xCC, 0x87, 0xCE, 0x05, 0x53, 0xCC, 0x8C,
+ 0xCC, 0x87, 0xCE, 0x05, 0x53, 0xCC, 0xA3, 0xCC,
+ 0x87, 0xCE, 0x05, 0x55, 0xCC, 0x83, 0xCC, 0x81,
+ 0xCE, 0x05, 0x55, 0xCC, 0x84, 0xCC, 0x88, 0xCE,
+ 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x80, 0xCE, 0x05,
+ 0x55, 0xCC, 0x88, 0xCC, 0x81, 0xCE, 0x05, 0x55,
+ 0xCC, 0x88, 0xCC, 0x84, 0xCE, 0x05, 0x55, 0xCC,
+ 0x88, 0xCC, 0x8C, 0xCE, 0x05, 0x55, 0xCC, 0x9B,
// Bytes 3940 - 397f
- 0x04, 0xD1, 0x83, 0xCC, 0x8B, 0xCD, 0x04, 0xD1,
- 0x87, 0xCC, 0x88, 0xCD, 0x04, 0xD1, 0x8B, 0xCC,
- 0x88, 0xCD, 0x04, 0xD1, 0x8D, 0xCC, 0x88, 0xCD,
- 0x04, 0xD1, 0x96, 0xCC, 0x88, 0xCD, 0x04, 0xD1,
- 0xB4, 0xCC, 0x8F, 0xCD, 0x04, 0xD1, 0xB5, 0xCC,
- 0x8F, 0xCD, 0x04, 0xD3, 0x98, 0xCC, 0x88, 0xCD,
- 0x04, 0xD3, 0x99, 0xCC, 0x88, 0xCD, 0x04, 0xD3,
- 0xA8, 0xCC, 0x88, 0xCD, 0x04, 0xD3, 0xA9, 0xCC,
+ 0xCC, 0x80, 0xCE, 0x05, 0x55, 0xCC, 0x9B, 0xCC,
+ 0x81, 0xCE, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0x83,
+ 0xCE, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0x89, 0xCE,
+ 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0xA3, 0xBA, 0x05,
+ 0x61, 0xCC, 0x82, 0xCC, 0x80, 0xCE, 0x05, 0x61,
+ 0xCC, 0x82, 0xCC, 0x81, 0xCE, 0x05, 0x61, 0xCC,
+ 0x82, 0xCC, 0x83, 0xCE, 0x05, 0x61, 0xCC, 0x82,
+ 0xCC, 0x89, 0xCE, 0x05, 0x61, 0xCC, 0x86, 0xCC,
// Bytes 3980 - 39bf
- 0x88, 0xCD, 0x04, 0xD8, 0xA7, 0xD9, 0x93, 0xCD,
- 0x04, 0xD8, 0xA7, 0xD9, 0x94, 0xCD, 0x04, 0xD8,
- 0xA7, 0xD9, 0x95, 0xB9, 0x04, 0xD9, 0x88, 0xD9,
- 0x94, 0xCD, 0x04, 0xD9, 0x8A, 0xD9, 0x94, 0xCD,
- 0x04, 0xDB, 0x81, 0xD9, 0x94, 0xCD, 0x04, 0xDB,
- 0x92, 0xD9, 0x94, 0xCD, 0x04, 0xDB, 0x95, 0xD9,
- 0x94, 0xCD, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x80,
- 0xCE, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x81, 0xCE,
+ 0x80, 0xCE, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x81,
+ 0xCE, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x83, 0xCE,
+ 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x89, 0xCE, 0x05,
+ 0x61, 0xCC, 0x87, 0xCC, 0x84, 0xCE, 0x05, 0x61,
+ 0xCC, 0x88, 0xCC, 0x84, 0xCE, 0x05, 0x61, 0xCC,
+ 0x8A, 0xCC, 0x81, 0xCE, 0x05, 0x61, 0xCC, 0xA3,
+ 0xCC, 0x82, 0xCE, 0x05, 0x61, 0xCC, 0xA3, 0xCC,
+ 0x86, 0xCE, 0x05, 0x63, 0xCC, 0xA7, 0xCC, 0x81,
// Bytes 39c0 - 39ff
- 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x83, 0xCE, 0x05,
- 0x41, 0xCC, 0x82, 0xCC, 0x89, 0xCE, 0x05, 0x41,
- 0xCC, 0x86, 0xCC, 0x80, 0xCE, 0x05, 0x41, 0xCC,
- 0x86, 0xCC, 0x81, 0xCE, 0x05, 0x41, 0xCC, 0x86,
- 0xCC, 0x83, 0xCE, 0x05, 0x41, 0xCC, 0x86, 0xCC,
- 0x89, 0xCE, 0x05, 0x41, 0xCC, 0x87, 0xCC, 0x84,
- 0xCE, 0x05, 0x41, 0xCC, 0x88, 0xCC, 0x84, 0xCE,
- 0x05, 0x41, 0xCC, 0x8A, 0xCC, 0x81, 0xCE, 0x05,
+ 0xCE, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x80, 0xCE,
+ 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x81, 0xCE, 0x05,
+ 0x65, 0xCC, 0x82, 0xCC, 0x83, 0xCE, 0x05, 0x65,
+ 0xCC, 0x82, 0xCC, 0x89, 0xCE, 0x05, 0x65, 0xCC,
+ 0x84, 0xCC, 0x80, 0xCE, 0x05, 0x65, 0xCC, 0x84,
+ 0xCC, 0x81, 0xCE, 0x05, 0x65, 0xCC, 0xA3, 0xCC,
+ 0x82, 0xCE, 0x05, 0x65, 0xCC, 0xA7, 0xCC, 0x86,
+ 0xCE, 0x05, 0x69, 0xCC, 0x88, 0xCC, 0x81, 0xCE,
// Bytes 3a00 - 3a3f
- 0x41, 0xCC, 0xA3, 0xCC, 0x82, 0xCE, 0x05, 0x41,
- 0xCC, 0xA3, 0xCC, 0x86, 0xCE, 0x05, 0x43, 0xCC,
- 0xA7, 0xCC, 0x81, 0xCE, 0x05, 0x45, 0xCC, 0x82,
- 0xCC, 0x80, 0xCE, 0x05, 0x45, 0xCC, 0x82, 0xCC,
- 0x81, 0xCE, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x83,
- 0xCE, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x89, 0xCE,
- 0x05, 0x45, 0xCC, 0x84, 0xCC, 0x80, 0xCE, 0x05,
- 0x45, 0xCC, 0x84, 0xCC, 0x81, 0xCE, 0x05, 0x45,
+ 0x05, 0x6C, 0xCC, 0xA3, 0xCC, 0x84, 0xCE, 0x05,
+ 0x6F, 0xCC, 0x82, 0xCC, 0x80, 0xCE, 0x05, 0x6F,
+ 0xCC, 0x82, 0xCC, 0x81, 0xCE, 0x05, 0x6F, 0xCC,
+ 0x82, 0xCC, 0x83, 0xCE, 0x05, 0x6F, 0xCC, 0x82,
+ 0xCC, 0x89, 0xCE, 0x05, 0x6F, 0xCC, 0x83, 0xCC,
+ 0x81, 0xCE, 0x05, 0x6F, 0xCC, 0x83, 0xCC, 0x84,
+ 0xCE, 0x05, 0x6F, 0xCC, 0x83, 0xCC, 0x88, 0xCE,
+ 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x80, 0xCE, 0x05,
// Bytes 3a40 - 3a7f
- 0xCC, 0xA3, 0xCC, 0x82, 0xCE, 0x05, 0x45, 0xCC,
- 0xA7, 0xCC, 0x86, 0xCE, 0x05, 0x49, 0xCC, 0x88,
- 0xCC, 0x81, 0xCE, 0x05, 0x4C, 0xCC, 0xA3, 0xCC,
- 0x84, 0xCE, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x80,
- 0xCE, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x81, 0xCE,
- 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x83, 0xCE, 0x05,
- 0x4F, 0xCC, 0x82, 0xCC, 0x89, 0xCE, 0x05, 0x4F,
- 0xCC, 0x83, 0xCC, 0x81, 0xCE, 0x05, 0x4F, 0xCC,
+ 0x6F, 0xCC, 0x84, 0xCC, 0x81, 0xCE, 0x05, 0x6F,
+ 0xCC, 0x87, 0xCC, 0x84, 0xCE, 0x05, 0x6F, 0xCC,
+ 0x88, 0xCC, 0x84, 0xCE, 0x05, 0x6F, 0xCC, 0x9B,
+ 0xCC, 0x80, 0xCE, 0x05, 0x6F, 0xCC, 0x9B, 0xCC,
+ 0x81, 0xCE, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0x83,
+ 0xCE, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0x89, 0xCE,
+ 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0xA3, 0xBA, 0x05,
+ 0x6F, 0xCC, 0xA3, 0xCC, 0x82, 0xCE, 0x05, 0x6F,
// Bytes 3a80 - 3abf
- 0x83, 0xCC, 0x84, 0xCE, 0x05, 0x4F, 0xCC, 0x83,
- 0xCC, 0x88, 0xCE, 0x05, 0x4F, 0xCC, 0x84, 0xCC,
- 0x80, 0xCE, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x81,
- 0xCE, 0x05, 0x4F, 0xCC, 0x87, 0xCC, 0x84, 0xCE,
- 0x05, 0x4F, 0xCC, 0x88, 0xCC, 0x84, 0xCE, 0x05,
- 0x4F, 0xCC, 0x9B, 0xCC, 0x80, 0xCE, 0x05, 0x4F,
- 0xCC, 0x9B, 0xCC, 0x81, 0xCE, 0x05, 0x4F, 0xCC,
- 0x9B, 0xCC, 0x83, 0xCE, 0x05, 0x4F, 0xCC, 0x9B,
+ 0xCC, 0xA8, 0xCC, 0x84, 0xCE, 0x05, 0x72, 0xCC,
+ 0xA3, 0xCC, 0x84, 0xCE, 0x05, 0x73, 0xCC, 0x81,
+ 0xCC, 0x87, 0xCE, 0x05, 0x73, 0xCC, 0x8C, 0xCC,
+ 0x87, 0xCE, 0x05, 0x73, 0xCC, 0xA3, 0xCC, 0x87,
+ 0xCE, 0x05, 0x75, 0xCC, 0x83, 0xCC, 0x81, 0xCE,
+ 0x05, 0x75, 0xCC, 0x84, 0xCC, 0x88, 0xCE, 0x05,
+ 0x75, 0xCC, 0x88, 0xCC, 0x80, 0xCE, 0x05, 0x75,
+ 0xCC, 0x88, 0xCC, 0x81, 0xCE, 0x05, 0x75, 0xCC,
// Bytes 3ac0 - 3aff
- 0xCC, 0x89, 0xCE, 0x05, 0x4F, 0xCC, 0x9B, 0xCC,
- 0xA3, 0xBA, 0x05, 0x4F, 0xCC, 0xA3, 0xCC, 0x82,
- 0xCE, 0x05, 0x4F, 0xCC, 0xA8, 0xCC, 0x84, 0xCE,
- 0x05, 0x52, 0xCC, 0xA3, 0xCC, 0x84, 0xCE, 0x05,
- 0x53, 0xCC, 0x81, 0xCC, 0x87, 0xCE, 0x05, 0x53,
- 0xCC, 0x8C, 0xCC, 0x87, 0xCE, 0x05, 0x53, 0xCC,
- 0xA3, 0xCC, 0x87, 0xCE, 0x05, 0x55, 0xCC, 0x83,
- 0xCC, 0x81, 0xCE, 0x05, 0x55, 0xCC, 0x84, 0xCC,
+ 0x88, 0xCC, 0x84, 0xCE, 0x05, 0x75, 0xCC, 0x88,
+ 0xCC, 0x8C, 0xCE, 0x05, 0x75, 0xCC, 0x9B, 0xCC,
+ 0x80, 0xCE, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x81,
+ 0xCE, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x83, 0xCE,
+ 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x89, 0xCE, 0x05,
+ 0x75, 0xCC, 0x9B, 0xCC, 0xA3, 0xBA, 0x05, 0xE1,
+ 0xBE, 0xBF, 0xCC, 0x80, 0xCE, 0x05, 0xE1, 0xBE,
+ 0xBF, 0xCC, 0x81, 0xCE, 0x05, 0xE1, 0xBE, 0xBF,
// Bytes 3b00 - 3b3f
- 0x88, 0xCE, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x80,
- 0xCE, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x81, 0xCE,
- 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x84, 0xCE, 0x05,
- 0x55, 0xCC, 0x88, 0xCC, 0x8C, 0xCE, 0x05, 0x55,
- 0xCC, 0x9B, 0xCC, 0x80, 0xCE, 0x05, 0x55, 0xCC,
- 0x9B, 0xCC, 0x81, 0xCE, 0x05, 0x55, 0xCC, 0x9B,
- 0xCC, 0x83, 0xCE, 0x05, 0x55, 0xCC, 0x9B, 0xCC,
- 0x89, 0xCE, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0xA3,
+ 0xCD, 0x82, 0xCE, 0x05, 0xE1, 0xBF, 0xBE, 0xCC,
+ 0x80, 0xCE, 0x05, 0xE1, 0xBF, 0xBE, 0xCC, 0x81,
+ 0xCE, 0x05, 0xE1, 0xBF, 0xBE, 0xCD, 0x82, 0xCE,
+ 0x05, 0xE2, 0x86, 0x90, 0xCC, 0xB8, 0x05, 0x05,
+ 0xE2, 0x86, 0x92, 0xCC, 0xB8, 0x05, 0x05, 0xE2,
+ 0x86, 0x94, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87,
+ 0x90, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, 0x92,
+ 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, 0x94, 0xCC,
// Bytes 3b40 - 3b7f
- 0xBA, 0x05, 0x61, 0xCC, 0x82, 0xCC, 0x80, 0xCE,
- 0x05, 0x61, 0xCC, 0x82, 0xCC, 0x81, 0xCE, 0x05,
- 0x61, 0xCC, 0x82, 0xCC, 0x83, 0xCE, 0x05, 0x61,
- 0xCC, 0x82, 0xCC, 0x89, 0xCE, 0x05, 0x61, 0xCC,
- 0x86, 0xCC, 0x80, 0xCE, 0x05, 0x61, 0xCC, 0x86,
- 0xCC, 0x81, 0xCE, 0x05, 0x61, 0xCC, 0x86, 0xCC,
- 0x83, 0xCE, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x89,
- 0xCE, 0x05, 0x61, 0xCC, 0x87, 0xCC, 0x84, 0xCE,
+ 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x83, 0xCC, 0xB8,
+ 0x05, 0x05, 0xE2, 0x88, 0x88, 0xCC, 0xB8, 0x05,
+ 0x05, 0xE2, 0x88, 0x8B, 0xCC, 0xB8, 0x05, 0x05,
+ 0xE2, 0x88, 0xA3, 0xCC, 0xB8, 0x05, 0x05, 0xE2,
+ 0x88, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88,
+ 0xBC, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x83,
+ 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x85, 0xCC,
+ 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x88, 0xCC, 0xB8,
// Bytes 3b80 - 3bbf
- 0x05, 0x61, 0xCC, 0x88, 0xCC, 0x84, 0xCE, 0x05,
- 0x61, 0xCC, 0x8A, 0xCC, 0x81, 0xCE, 0x05, 0x61,
- 0xCC, 0xA3, 0xCC, 0x82, 0xCE, 0x05, 0x61, 0xCC,
- 0xA3, 0xCC, 0x86, 0xCE, 0x05, 0x63, 0xCC, 0xA7,
- 0xCC, 0x81, 0xCE, 0x05, 0x65, 0xCC, 0x82, 0xCC,
- 0x80, 0xCE, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x81,
- 0xCE, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x83, 0xCE,
- 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x89, 0xCE, 0x05,
+ 0x05, 0x05, 0xE2, 0x89, 0x8D, 0xCC, 0xB8, 0x05,
+ 0x05, 0xE2, 0x89, 0xA1, 0xCC, 0xB8, 0x05, 0x05,
+ 0xE2, 0x89, 0xA4, 0xCC, 0xB8, 0x05, 0x05, 0xE2,
+ 0x89, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89,
+ 0xB2, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB3,
+ 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB6, 0xCC,
+ 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB7, 0xCC, 0xB8,
+ 0x05, 0x05, 0xE2, 0x89, 0xBA, 0xCC, 0xB8, 0x05,
// Bytes 3bc0 - 3bff
- 0x65, 0xCC, 0x84, 0xCC, 0x80, 0xCE, 0x05, 0x65,
- 0xCC, 0x84, 0xCC, 0x81, 0xCE, 0x05, 0x65, 0xCC,
- 0xA3, 0xCC, 0x82, 0xCE, 0x05, 0x65, 0xCC, 0xA7,
- 0xCC, 0x86, 0xCE, 0x05, 0x69, 0xCC, 0x88, 0xCC,
- 0x81, 0xCE, 0x05, 0x6C, 0xCC, 0xA3, 0xCC, 0x84,
- 0xCE, 0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x80, 0xCE,
- 0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x81, 0xCE, 0x05,
- 0x6F, 0xCC, 0x82, 0xCC, 0x83, 0xCE, 0x05, 0x6F,
+ 0x05, 0xE2, 0x89, 0xBB, 0xCC, 0xB8, 0x05, 0x05,
+ 0xE2, 0x89, 0xBC, 0xCC, 0xB8, 0x05, 0x05, 0xE2,
+ 0x89, 0xBD, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A,
+ 0x82, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x83,
+ 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x86, 0xCC,
+ 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x87, 0xCC, 0xB8,
+ 0x05, 0x05, 0xE2, 0x8A, 0x91, 0xCC, 0xB8, 0x05,
+ 0x05, 0xE2, 0x8A, 0x92, 0xCC, 0xB8, 0x05, 0x05,
// Bytes 3c00 - 3c3f
- 0xCC, 0x82, 0xCC, 0x89, 0xCE, 0x05, 0x6F, 0xCC,
- 0x83, 0xCC, 0x81, 0xCE, 0x05, 0x6F, 0xCC, 0x83,
- 0xCC, 0x84, 0xCE, 0x05, 0x6F, 0xCC, 0x83, 0xCC,
- 0x88, 0xCE, 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x80,
- 0xCE, 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x81, 0xCE,
- 0x05, 0x6F, 0xCC, 0x87, 0xCC, 0x84, 0xCE, 0x05,
- 0x6F, 0xCC, 0x88, 0xCC, 0x84, 0xCE, 0x05, 0x6F,
- 0xCC, 0x9B, 0xCC, 0x80, 0xCE, 0x05, 0x6F, 0xCC,
+ 0xE2, 0x8A, 0xA2, 0xCC, 0xB8, 0x05, 0x05, 0xE2,
+ 0x8A, 0xA8, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A,
+ 0xA9, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xAB,
+ 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB2, 0xCC,
+ 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB3, 0xCC, 0xB8,
+ 0x05, 0x05, 0xE2, 0x8A, 0xB4, 0xCC, 0xB8, 0x05,
+ 0x05, 0xE2, 0x8A, 0xB5, 0xCC, 0xB8, 0x05, 0x06,
+ 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x85, 0xDE, 0x06,
// Bytes 3c40 - 3c7f
- 0x9B, 0xCC, 0x81, 0xCE, 0x05, 0x6F, 0xCC, 0x9B,
- 0xCC, 0x83, 0xCE, 0x05, 0x6F, 0xCC, 0x9B, 0xCC,
- 0x89, 0xCE, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0xA3,
- 0xBA, 0x05, 0x6F, 0xCC, 0xA3, 0xCC, 0x82, 0xCE,
- 0x05, 0x6F, 0xCC, 0xA8, 0xCC, 0x84, 0xCE, 0x05,
- 0x72, 0xCC, 0xA3, 0xCC, 0x84, 0xCE, 0x05, 0x73,
- 0xCC, 0x81, 0xCC, 0x87, 0xCE, 0x05, 0x73, 0xCC,
- 0x8C, 0xCC, 0x87, 0xCE, 0x05, 0x73, 0xCC, 0xA3,
+ 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x85, 0xDE, 0x06,
+ 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x06,
+ 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x06,
+ 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x06,
+ 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x06,
+ 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x85, 0xDE, 0x06,
+ 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x85, 0xDE, 0x06,
+ 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x06,
// Bytes 3c80 - 3cbf
- 0xCC, 0x87, 0xCE, 0x05, 0x75, 0xCC, 0x83, 0xCC,
- 0x81, 0xCE, 0x05, 0x75, 0xCC, 0x84, 0xCC, 0x88,
- 0xCE, 0x05, 0x75, 0xCC, 0x88, 0xCC, 0x80, 0xCE,
- 0x05, 0x75, 0xCC, 0x88, 0xCC, 0x81, 0xCE, 0x05,
- 0x75, 0xCC, 0x88, 0xCC, 0x84, 0xCE, 0x05, 0x75,
- 0xCC, 0x88, 0xCC, 0x8C, 0xCE, 0x05, 0x75, 0xCC,
- 0x9B, 0xCC, 0x80, 0xCE, 0x05, 0x75, 0xCC, 0x9B,
- 0xCC, 0x81, 0xCE, 0x05, 0x75, 0xCC, 0x9B, 0xCC,
+ 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x06,
+ 0xCE, 0x99, 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x06,
+ 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x06,
+ 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x06,
+ 0xCE, 0x99, 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x06,
+ 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x06,
+ 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x06,
+ 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x06,
// Bytes 3cc0 - 3cff
- 0x83, 0xCE, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x89,
- 0xCE, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0xA3, 0xBA,
- 0x05, 0xE1, 0xBE, 0xBF, 0xCC, 0x80, 0xCE, 0x05,
- 0xE1, 0xBE, 0xBF, 0xCC, 0x81, 0xCE, 0x05, 0xE1,
- 0xBE, 0xBF, 0xCD, 0x82, 0xCE, 0x05, 0xE1, 0xBF,
- 0xBE, 0xCC, 0x80, 0xCE, 0x05, 0xE1, 0xBF, 0xBE,
- 0xCC, 0x81, 0xCE, 0x05, 0xE1, 0xBF, 0xBE, 0xCD,
- 0x82, 0xCE, 0x05, 0xE2, 0x86, 0x90, 0xCC, 0xB8,
+ 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x06,
+ 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x06,
+ 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x06,
+ 0xCE, 0xA5, 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x06,
+ 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x85, 0xDE, 0x06,
+ 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x85, 0xDE, 0x06,
+ 0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x85, 0xDE, 0x06,
+ 0xCE, 0xB1, 0xCC, 0x81, 0xCD, 0x85, 0xDE, 0x06,
// Bytes 3d00 - 3d3f
- 0x05, 0x05, 0xE2, 0x86, 0x92, 0xCC, 0xB8, 0x05,
- 0x05, 0xE2, 0x86, 0x94, 0xCC, 0xB8, 0x05, 0x05,
- 0xE2, 0x87, 0x90, 0xCC, 0xB8, 0x05, 0x05, 0xE2,
- 0x87, 0x92, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87,
- 0x94, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x83,
- 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x88, 0xCC,
- 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x8B, 0xCC, 0xB8,
- 0x05, 0x05, 0xE2, 0x88, 0xA3, 0xCC, 0xB8, 0x05,
+ 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x85, 0xDE, 0x06,
+ 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x85, 0xDE, 0x06,
+ 0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x85, 0xDE, 0x06,
+ 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x06,
+ 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x06,
+ 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x06,
+ 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x06,
+ 0xCE, 0xB7, 0xCC, 0x80, 0xCD, 0x85, 0xDE, 0x06,
// Bytes 3d40 - 3d7f
- 0x05, 0xE2, 0x88, 0xA5, 0xCC, 0xB8, 0x05, 0x05,
- 0xE2, 0x88, 0xBC, 0xCC, 0xB8, 0x05, 0x05, 0xE2,
- 0x89, 0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89,
- 0x85, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x88,
- 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x8D, 0xCC,
- 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xA1, 0xCC, 0xB8,
- 0x05, 0x05, 0xE2, 0x89, 0xA4, 0xCC, 0xB8, 0x05,
- 0x05, 0xE2, 0x89, 0xA5, 0xCC, 0xB8, 0x05, 0x05,
+ 0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x85, 0xDE, 0x06,
+ 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x85, 0xDE, 0x06,
+ 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x85, 0xDE, 0x06,
+ 0xCE, 0xB7, 0xCD, 0x82, 0xCD, 0x85, 0xDE, 0x06,
+ 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x80, 0xCE, 0x06,
+ 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x81, 0xCE, 0x06,
+ 0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x82, 0xCE, 0x06,
+ 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x06,
// Bytes 3d80 - 3dbf
- 0xE2, 0x89, 0xB2, 0xCC, 0xB8, 0x05, 0x05, 0xE2,
- 0x89, 0xB3, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89,
- 0xB6, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB7,
- 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBA, 0xCC,
- 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBB, 0xCC, 0xB8,
- 0x05, 0x05, 0xE2, 0x89, 0xBC, 0xCC, 0xB8, 0x05,
- 0x05, 0xE2, 0x89, 0xBD, 0xCC, 0xB8, 0x05, 0x05,
- 0xE2, 0x8A, 0x82, 0xCC, 0xB8, 0x05, 0x05, 0xE2,
+ 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x06,
+ 0xCE, 0xB9, 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x06,
+ 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x06,
+ 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x06,
+ 0xCE, 0xB9, 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x06,
+ 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x06,
+ 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x06,
+ 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x06,
// Bytes 3dc0 - 3dff
- 0x8A, 0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A,
- 0x86, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x87,
- 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x91, 0xCC,
- 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x92, 0xCC, 0xB8,
- 0x05, 0x05, 0xE2, 0x8A, 0xA2, 0xCC, 0xB8, 0x05,
- 0x05, 0xE2, 0x8A, 0xA8, 0xCC, 0xB8, 0x05, 0x05,
- 0xE2, 0x8A, 0xA9, 0xCC, 0xB8, 0x05, 0x05, 0xE2,
- 0x8A, 0xAB, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A,
+ 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x06,
+ 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x80, 0xCE, 0x06,
+ 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xCE, 0x06,
+ 0xCF, 0x85, 0xCC, 0x88, 0xCD, 0x82, 0xCE, 0x06,
+ 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x06,
+ 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x06,
+ 0xCF, 0x85, 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x06,
+ 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x06,
// Bytes 3e00 - 3e3f
- 0xB2, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB3,
- 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB4, 0xCC,
- 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB5, 0xCC, 0xB8,
- 0x05, 0x06, 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x85,
- 0xDE, 0x06, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x85,
- 0xDE, 0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x80,
- 0xCE, 0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x81,
- 0xCE, 0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x80,
+ 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x06,
+ 0xCF, 0x85, 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x06,
+ 0xCF, 0x89, 0xCC, 0x80, 0xCD, 0x85, 0xDE, 0x06,
+ 0xCF, 0x89, 0xCC, 0x81, 0xCD, 0x85, 0xDE, 0x06,
+ 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x85, 0xDE, 0x06,
+ 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x85, 0xDE, 0x06,
+ 0xCF, 0x89, 0xCD, 0x82, 0xCD, 0x85, 0xDE, 0x06,
+ 0xE0, 0xA4, 0xA8, 0xE0, 0xA4, 0xBC, 0x0D, 0x06,
// Bytes 3e40 - 3e7f
- 0xCE, 0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x81,
- 0xCE, 0x06, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x85,
- 0xDE, 0x06, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x85,
- 0xDE, 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x80,
- 0xCE, 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x81,
- 0xCE, 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCD, 0x82,
- 0xCE, 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x80,
- 0xCE, 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x81,
+ 0xE0, 0xA4, 0xB0, 0xE0, 0xA4, 0xBC, 0x0D, 0x06,
+ 0xE0, 0xA4, 0xB3, 0xE0, 0xA4, 0xBC, 0x0D, 0x06,
+ 0xE0, 0xA7, 0x87, 0xE0, 0xA6, 0xBE, 0x01, 0x06,
+ 0xE0, 0xA7, 0x87, 0xE0, 0xA7, 0x97, 0x01, 0x06,
+ 0xE0, 0xAD, 0x87, 0xE0, 0xAC, 0xBE, 0x01, 0x06,
+ 0xE0, 0xAD, 0x87, 0xE0, 0xAD, 0x96, 0x01, 0x06,
+ 0xE0, 0xAD, 0x87, 0xE0, 0xAD, 0x97, 0x01, 0x06,
+ 0xE0, 0xAE, 0x92, 0xE0, 0xAF, 0x97, 0x01, 0x06,
// Bytes 3e80 - 3ebf
- 0xCE, 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCD, 0x82,
- 0xCE, 0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x80,
- 0xCE, 0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x81,
- 0xCE, 0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x80,
- 0xCE, 0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x81,
- 0xCE, 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x80,
- 0xCE, 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x81,
- 0xCE, 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCD, 0x82,
+ 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xBE, 0x01, 0x06,
+ 0xE0, 0xAF, 0x86, 0xE0, 0xAF, 0x97, 0x01, 0x06,
+ 0xE0, 0xAF, 0x87, 0xE0, 0xAE, 0xBE, 0x01, 0x06,
+ 0xE0, 0xB1, 0x86, 0xE0, 0xB1, 0x96, 0x89, 0x06,
+ 0xE0, 0xB2, 0xBF, 0xE0, 0xB3, 0x95, 0x01, 0x06,
+ 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x95, 0x01, 0x06,
+ 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x96, 0x01, 0x06,
+ 0xE0, 0xB5, 0x86, 0xE0, 0xB4, 0xBE, 0x01, 0x06,
// Bytes 3ec0 - 3eff
- 0xCE, 0x06, 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x85,
- 0xDE, 0x06, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x85,
- 0xDE, 0x06, 0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x85,
- 0xDE, 0x06, 0xCE, 0xB1, 0xCC, 0x81, 0xCD, 0x85,
- 0xDE, 0x06, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x85,
- 0xDE, 0x06, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x85,
- 0xDE, 0x06, 0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x85,
- 0xDE, 0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x80,
+ 0xE0, 0xB5, 0x86, 0xE0, 0xB5, 0x97, 0x01, 0x06,
+ 0xE0, 0xB5, 0x87, 0xE0, 0xB4, 0xBE, 0x01, 0x06,
+ 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8A, 0x15, 0x06,
+ 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x9F, 0x01, 0x06,
+ 0xE1, 0x80, 0xA5, 0xE1, 0x80, 0xAE, 0x01, 0x06,
+ 0xE1, 0xAC, 0x85, 0xE1, 0xAC, 0xB5, 0x01, 0x06,
+ 0xE1, 0xAC, 0x87, 0xE1, 0xAC, 0xB5, 0x01, 0x06,
+ 0xE1, 0xAC, 0x89, 0xE1, 0xAC, 0xB5, 0x01, 0x06,
// Bytes 3f00 - 3f3f
- 0xCE, 0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x81,
- 0xCE, 0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x80,
- 0xCE, 0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x81,
- 0xCE, 0x06, 0xCE, 0xB7, 0xCC, 0x80, 0xCD, 0x85,
- 0xDE, 0x06, 0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x85,
- 0xDE, 0x06, 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x85,
- 0xDE, 0x06, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x85,
- 0xDE, 0x06, 0xCE, 0xB7, 0xCD, 0x82, 0xCD, 0x85,
+ 0xE1, 0xAC, 0x8B, 0xE1, 0xAC, 0xB5, 0x01, 0x06,
+ 0xE1, 0xAC, 0x8D, 0xE1, 0xAC, 0xB5, 0x01, 0x06,
+ 0xE1, 0xAC, 0x91, 0xE1, 0xAC, 0xB5, 0x01, 0x06,
+ 0xE1, 0xAC, 0xBA, 0xE1, 0xAC, 0xB5, 0x01, 0x06,
+ 0xE1, 0xAC, 0xBC, 0xE1, 0xAC, 0xB5, 0x01, 0x06,
+ 0xE1, 0xAC, 0xBE, 0xE1, 0xAC, 0xB5, 0x01, 0x06,
+ 0xE1, 0xAC, 0xBF, 0xE1, 0xAC, 0xB5, 0x01, 0x06,
+ 0xE1, 0xAD, 0x82, 0xE1, 0xAC, 0xB5, 0x01, 0x06,
// Bytes 3f40 - 3f7f
- 0xDE, 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x80,
- 0xCE, 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x81,
- 0xCE, 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x82,
- 0xCE, 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x80,
- 0xCE, 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x81,
- 0xCE, 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCD, 0x82,
- 0xCE, 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x80,
- 0xCE, 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x81,
+ 0xE3, 0x81, 0x86, 0xE3, 0x82, 0x99, 0x11, 0x06,
+ 0xE3, 0x81, 0x8B, 0xE3, 0x82, 0x99, 0x11, 0x06,
+ 0xE3, 0x81, 0x8D, 0xE3, 0x82, 0x99, 0x11, 0x06,
+ 0xE3, 0x81, 0x8F, 0xE3, 0x82, 0x99, 0x11, 0x06,
+ 0xE3, 0x81, 0x91, 0xE3, 0x82, 0x99, 0x11, 0x06,
+ 0xE3, 0x81, 0x93, 0xE3, 0x82, 0x99, 0x11, 0x06,
+ 0xE3, 0x81, 0x95, 0xE3, 0x82, 0x99, 0x11, 0x06,
+ 0xE3, 0x81, 0x97, 0xE3, 0x82, 0x99, 0x11, 0x06,
// Bytes 3f80 - 3fbf
- 0xCE, 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCD, 0x82,
- 0xCE, 0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x80,
- 0xCE, 0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x81,
- 0xCE, 0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x80,
- 0xCE, 0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x81,
- 0xCE, 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x80,
- 0xCE, 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81,
- 0xCE, 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCD, 0x82,
+ 0xE3, 0x81, 0x99, 0xE3, 0x82, 0x99, 0x11, 0x06,
+ 0xE3, 0x81, 0x9B, 0xE3, 0x82, 0x99, 0x11, 0x06,
+ 0xE3, 0x81, 0x9D, 0xE3, 0x82, 0x99, 0x11, 0x06,
+ 0xE3, 0x81, 0x9F, 0xE3, 0x82, 0x99, 0x11, 0x06,
+ 0xE3, 0x81, 0xA1, 0xE3, 0x82, 0x99, 0x11, 0x06,
+ 0xE3, 0x81, 0xA4, 0xE3, 0x82, 0x99, 0x11, 0x06,
+ 0xE3, 0x81, 0xA6, 0xE3, 0x82, 0x99, 0x11, 0x06,
+ 0xE3, 0x81, 0xA8, 0xE3, 0x82, 0x99, 0x11, 0x06,
// Bytes 3fc0 - 3fff
- 0xCE, 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x80,
- 0xCE, 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x81,
- 0xCE, 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCD, 0x82,
- 0xCE, 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x80,
- 0xCE, 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x81,
- 0xCE, 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCD, 0x82,
- 0xCE, 0x06, 0xCF, 0x89, 0xCC, 0x80, 0xCD, 0x85,
- 0xDE, 0x06, 0xCF, 0x89, 0xCC, 0x81, 0xCD, 0x85,
+ 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x99, 0x11, 0x06,
+ 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x9A, 0x11, 0x06,
+ 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x99, 0x11, 0x06,
+ 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x9A, 0x11, 0x06,
+ 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x99, 0x11, 0x06,
+ 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x9A, 0x11, 0x06,
+ 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x99, 0x11, 0x06,
+ 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x9A, 0x11, 0x06,
// Bytes 4000 - 403f
- 0xDE, 0x06, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x85,
- 0xDE, 0x06, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x85,
- 0xDE, 0x06, 0xCF, 0x89, 0xCD, 0x82, 0xCD, 0x85,
- 0xDE, 0x06, 0xE0, 0xA4, 0xA8, 0xE0, 0xA4, 0xBC,
- 0x0D, 0x06, 0xE0, 0xA4, 0xB0, 0xE0, 0xA4, 0xBC,
- 0x0D, 0x06, 0xE0, 0xA4, 0xB3, 0xE0, 0xA4, 0xBC,
- 0x0D, 0x06, 0xE0, 0xB1, 0x86, 0xE0, 0xB1, 0x96,
- 0x89, 0x06, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8A,
+ 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x99, 0x11, 0x06,
+ 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x9A, 0x11, 0x06,
+ 0xE3, 0x82, 0x9D, 0xE3, 0x82, 0x99, 0x11, 0x06,
+ 0xE3, 0x82, 0xA6, 0xE3, 0x82, 0x99, 0x11, 0x06,
+ 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x11, 0x06,
+ 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, 0x11, 0x06,
+ 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x11, 0x06,
+ 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99, 0x11, 0x06,
// Bytes 4040 - 407f
- 0x15, 0x06, 0xE3, 0x81, 0x86, 0xE3, 0x82, 0x99,
- 0x11, 0x06, 0xE3, 0x81, 0x8B, 0xE3, 0x82, 0x99,
- 0x11, 0x06, 0xE3, 0x81, 0x8D, 0xE3, 0x82, 0x99,
- 0x11, 0x06, 0xE3, 0x81, 0x8F, 0xE3, 0x82, 0x99,
- 0x11, 0x06, 0xE3, 0x81, 0x91, 0xE3, 0x82, 0x99,
- 0x11, 0x06, 0xE3, 0x81, 0x93, 0xE3, 0x82, 0x99,
- 0x11, 0x06, 0xE3, 0x81, 0x95, 0xE3, 0x82, 0x99,
- 0x11, 0x06, 0xE3, 0x81, 0x97, 0xE3, 0x82, 0x99,
+ 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0x99, 0x11, 0x06,
+ 0xE3, 0x82, 0xB5, 0xE3, 0x82, 0x99, 0x11, 0x06,
+ 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x11, 0x06,
+ 0xE3, 0x82, 0xB9, 0xE3, 0x82, 0x99, 0x11, 0x06,
+ 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0x11, 0x06,
+ 0xE3, 0x82, 0xBD, 0xE3, 0x82, 0x99, 0x11, 0x06,
+ 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0x11, 0x06,
+ 0xE3, 0x83, 0x81, 0xE3, 0x82, 0x99, 0x11, 0x06,
// Bytes 4080 - 40bf
- 0x11, 0x06, 0xE3, 0x81, 0x99, 0xE3, 0x82, 0x99,
- 0x11, 0x06, 0xE3, 0x81, 0x9B, 0xE3, 0x82, 0x99,
- 0x11, 0x06, 0xE3, 0x81, 0x9D, 0xE3, 0x82, 0x99,
- 0x11, 0x06, 0xE3, 0x81, 0x9F, 0xE3, 0x82, 0x99,
- 0x11, 0x06, 0xE3, 0x81, 0xA1, 0xE3, 0x82, 0x99,
- 0x11, 0x06, 0xE3, 0x81, 0xA4, 0xE3, 0x82, 0x99,
- 0x11, 0x06, 0xE3, 0x81, 0xA6, 0xE3, 0x82, 0x99,
- 0x11, 0x06, 0xE3, 0x81, 0xA8, 0xE3, 0x82, 0x99,
+ 0xE3, 0x83, 0x84, 0xE3, 0x82, 0x99, 0x11, 0x06,
+ 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0x11, 0x06,
+ 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x11, 0x06,
+ 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, 0x11, 0x06,
+ 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0x11, 0x06,
+ 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99, 0x11, 0x06,
+ 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0x11, 0x06,
+ 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, 0x11, 0x06,
// Bytes 40c0 - 40ff
- 0x11, 0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x99,
- 0x11, 0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x9A,
- 0x11, 0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x99,
- 0x11, 0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x9A,
- 0x11, 0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x99,
- 0x11, 0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x9A,
- 0x11, 0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x99,
- 0x11, 0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x9A,
+ 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x9A, 0x11, 0x06,
+ 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x99, 0x11, 0x06,
+ 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0x11, 0x06,
+ 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x99, 0x11, 0x06,
+ 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0x11, 0x06,
+ 0xE3, 0x83, 0xAF, 0xE3, 0x82, 0x99, 0x11, 0x06,
+ 0xE3, 0x83, 0xB0, 0xE3, 0x82, 0x99, 0x11, 0x06,
+ 0xE3, 0x83, 0xB1, 0xE3, 0x82, 0x99, 0x11, 0x06,
// Bytes 4100 - 413f
- 0x11, 0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x99,
- 0x11, 0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x9A,
- 0x11, 0x06, 0xE3, 0x82, 0x9D, 0xE3, 0x82, 0x99,
- 0x11, 0x06, 0xE3, 0x82, 0xA6, 0xE3, 0x82, 0x99,
- 0x11, 0x06, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99,
- 0x11, 0x06, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99,
- 0x11, 0x06, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99,
- 0x11, 0x06, 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99,
+ 0xE3, 0x83, 0xB2, 0xE3, 0x82, 0x99, 0x11, 0x06,
+ 0xE3, 0x83, 0xBD, 0xE3, 0x82, 0x99, 0x11, 0x08,
+ 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85,
+ 0xDF, 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x81,
+ 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x91, 0xCC, 0x93,
+ 0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x91,
+ 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08,
+ 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85,
// Bytes 4140 - 417f
- 0x11, 0x06, 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0x99,
- 0x11, 0x06, 0xE3, 0x82, 0xB5, 0xE3, 0x82, 0x99,
- 0x11, 0x06, 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99,
- 0x11, 0x06, 0xE3, 0x82, 0xB9, 0xE3, 0x82, 0x99,
- 0x11, 0x06, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99,
- 0x11, 0x06, 0xE3, 0x82, 0xBD, 0xE3, 0x82, 0x99,
- 0x11, 0x06, 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99,
- 0x11, 0x06, 0xE3, 0x83, 0x81, 0xE3, 0x82, 0x99,
+ 0xDF, 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x82,
+ 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x97, 0xCC, 0x93,
+ 0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x97,
+ 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08,
+ 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85,
+ 0xDF, 0x08, 0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x80,
+ 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x97, 0xCC, 0x94,
+ 0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x97,
// Bytes 4180 - 41bf
- 0x11, 0x06, 0xE3, 0x83, 0x84, 0xE3, 0x82, 0x99,
- 0x11, 0x06, 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99,
- 0x11, 0x06, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99,
- 0x11, 0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99,
- 0x11, 0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A,
- 0x11, 0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99,
- 0x11, 0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A,
- 0x11, 0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99,
+ 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08,
+ 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85,
+ 0xDF, 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x81,
+ 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xA9, 0xCC, 0x93,
+ 0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xA9,
+ 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08,
+ 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85,
+ 0xDF, 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x82,
// Bytes 41c0 - 41ff
- 0x11, 0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x9A,
- 0x11, 0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x99,
- 0x11, 0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A,
- 0x11, 0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x99,
- 0x11, 0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A,
- 0x11, 0x06, 0xE3, 0x83, 0xAF, 0xE3, 0x82, 0x99,
- 0x11, 0x06, 0xE3, 0x83, 0xB0, 0xE3, 0x82, 0x99,
- 0x11, 0x06, 0xE3, 0x83, 0xB1, 0xE3, 0x82, 0x99,
+ 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB1, 0xCC, 0x93,
+ 0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB1,
+ 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08,
+ 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85,
+ 0xDF, 0x08, 0xCE, 0xB1, 0xCC, 0x94, 0xCC, 0x80,
+ 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB1, 0xCC, 0x94,
+ 0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB1,
+ 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08,
// Bytes 4200 - 423f
- 0x11, 0x06, 0xE3, 0x83, 0xB2, 0xE3, 0x82, 0x99,
- 0x11, 0x06, 0xE3, 0x83, 0xBD, 0xE3, 0x82, 0x99,
- 0x11, 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80,
- 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x91, 0xCC, 0x93,
- 0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x91,
- 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08,
- 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85,
- 0xDF, 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x81,
+ 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85,
+ 0xDF, 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x81,
+ 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB7, 0xCC, 0x93,
+ 0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB7,
+ 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08,
+ 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85,
+ 0xDF, 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x82,
+ 0xCD, 0x85, 0xDF, 0x08, 0xCF, 0x89, 0xCC, 0x93,
// Bytes 4240 - 427f
- 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x91, 0xCC, 0x94,
- 0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x97,
- 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08,
- 0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85,
- 0xDF, 0x08, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82,
- 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x97, 0xCC, 0x94,
- 0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x97,
- 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08,
+ 0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08, 0xCF, 0x89,
+ 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08,
+ 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85,
+ 0xDF, 0x08, 0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x80,
+ 0xCD, 0x85, 0xDF, 0x08, 0xCF, 0x89, 0xCC, 0x94,
+ 0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08, 0xCF, 0x89,
+ 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08,
+ 0xF0, 0x91, 0x82, 0x99, 0xF0, 0x91, 0x82, 0xBA,
// Bytes 4280 - 42bf
- 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85,
- 0xDF, 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80,
- 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xA9, 0xCC, 0x93,
- 0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xA9,
- 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08,
- 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85,
- 0xDF, 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x81,
- 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xA9, 0xCC, 0x94,
+ 0x0D, 0x08, 0xF0, 0x91, 0x82, 0x9B, 0xF0, 0x91,
+ 0x82, 0xBA, 0x0D, 0x08, 0xF0, 0x91, 0x82, 0xA5,
+ 0xF0, 0x91, 0x82, 0xBA, 0x0D, 0x08, 0xF0, 0x91,
+ 0x84, 0xB1, 0xF0, 0x91, 0x84, 0xA7, 0x01, 0x08,
+ 0xF0, 0x91, 0x84, 0xB2, 0xF0, 0x91, 0x84, 0xA7,
+ 0x01, 0x08, 0xF0, 0x91, 0x8D, 0x87, 0xF0, 0x91,
+ 0x8C, 0xBE, 0x01, 0x08, 0xF0, 0x91, 0x8D, 0x87,
+ 0xF0, 0x91, 0x8D, 0x97, 0x01, 0x08, 0xF0, 0x91,
// Bytes 42c0 - 42ff
- 0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB1,
- 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08,
- 0xCE, 0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85,
- 0xDF, 0x08, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82,
- 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB1, 0xCC, 0x94,
- 0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB1,
- 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08,
- 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85,
+ 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xB0, 0x01, 0x08,
+ 0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xBA,
+ 0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91,
+ 0x92, 0xBD, 0x01, 0x08, 0xF0, 0x91, 0x96, 0xB8,
+ 0xF0, 0x91, 0x96, 0xAF, 0x01, 0x08, 0xF0, 0x91,
+ 0x96, 0xB9, 0xF0, 0x91, 0x96, 0xAF, 0x01, 0x08,
+ 0xF0, 0x91, 0xA4, 0xB5, 0xF0, 0x91, 0xA4, 0xB0,
+ 0x01, 0x09, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82,
// Bytes 4300 - 433f
- 0xDF, 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80,
- 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB7, 0xCC, 0x93,
- 0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB7,
- 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08,
- 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85,
- 0xDF, 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81,
- 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB7, 0xCC, 0x94,
- 0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08, 0xCF, 0x89,
- // Bytes 4340 - 437f
- 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08,
- 0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85,
- 0xDF, 0x08, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82,
- 0xCD, 0x85, 0xDF, 0x08, 0xCF, 0x89, 0xCC, 0x94,
- 0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08, 0xCF, 0x89,
- 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08,
- 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85,
- 0xDF, 0x08, 0xF0, 0x91, 0x82, 0x99, 0xF0, 0x91,
- // Bytes 4380 - 43bf
- 0x82, 0xBA, 0x0D, 0x08, 0xF0, 0x91, 0x82, 0x9B,
- 0xF0, 0x91, 0x82, 0xBA, 0x0D, 0x08, 0xF0, 0x91,
- 0x82, 0xA5, 0xF0, 0x91, 0x82, 0xBA, 0x0D, 0x42,
+ 0xE0, 0xB3, 0x95, 0x02, 0x09, 0xE0, 0xB7, 0x99,
+ 0xE0, 0xB7, 0x8F, 0xE0, 0xB7, 0x8A, 0x16, 0x42,
0xC2, 0xB4, 0x01, 0x43, 0x20, 0xCC, 0x81, 0xCD,
0x43, 0x20, 0xCC, 0x83, 0xCD, 0x43, 0x20, 0xCC,
0x84, 0xCD, 0x43, 0x20, 0xCC, 0x85, 0xCD, 0x43,
0x20, 0xCC, 0x86, 0xCD, 0x43, 0x20, 0xCC, 0x87,
0xCD, 0x43, 0x20, 0xCC, 0x88, 0xCD, 0x43, 0x20,
- // Bytes 43c0 - 43ff
0xCC, 0x8A, 0xCD, 0x43, 0x20, 0xCC, 0x8B, 0xCD,
+ // Bytes 4340 - 437f
0x43, 0x20, 0xCC, 0x93, 0xCD, 0x43, 0x20, 0xCC,
0x94, 0xCD, 0x43, 0x20, 0xCC, 0xA7, 0xA9, 0x43,
0x20, 0xCC, 0xA8, 0xA9, 0x43, 0x20, 0xCC, 0xB3,
@@ -2488,8 +2469,8 @@ var decomps = [...]byte{
0xCD, 0x85, 0xDD, 0x43, 0x20, 0xD9, 0x8B, 0x5D,
0x43, 0x20, 0xD9, 0x8C, 0x61, 0x43, 0x20, 0xD9,
0x8D, 0x65, 0x43, 0x20, 0xD9, 0x8E, 0x69, 0x43,
- // Bytes 4400 - 443f
0x20, 0xD9, 0x8F, 0x6D, 0x43, 0x20, 0xD9, 0x90,
+ // Bytes 4380 - 43bf
0x71, 0x43, 0x20, 0xD9, 0x91, 0x75, 0x43, 0x20,
0xD9, 0x92, 0x79, 0x43, 0x41, 0xCC, 0x8A, 0xCD,
0x43, 0x73, 0xCC, 0x87, 0xCD, 0x44, 0x20, 0xE3,
@@ -2497,8 +2478,8 @@ var decomps = [...]byte{
0x11, 0x44, 0xC2, 0xA8, 0xCC, 0x81, 0xCE, 0x44,
0xCE, 0x91, 0xCC, 0x81, 0xCD, 0x44, 0xCE, 0x95,
0xCC, 0x81, 0xCD, 0x44, 0xCE, 0x97, 0xCC, 0x81,
- // Bytes 4440 - 447f
0xCD, 0x44, 0xCE, 0x99, 0xCC, 0x81, 0xCD, 0x44,
+ // Bytes 43c0 - 43ff
0xCE, 0x9F, 0xCC, 0x81, 0xCD, 0x44, 0xCE, 0xA5,
0xCC, 0x81, 0xCD, 0x44, 0xCE, 0xA5, 0xCC, 0x88,
0xCD, 0x44, 0xCE, 0xA9, 0xCC, 0x81, 0xCD, 0x44,
@@ -2506,8 +2487,8 @@ var decomps = [...]byte{
0xCC, 0x81, 0xCD, 0x44, 0xCE, 0xB7, 0xCC, 0x81,
0xCD, 0x44, 0xCE, 0xB9, 0xCC, 0x81, 0xCD, 0x44,
0xCE, 0xBF, 0xCC, 0x81, 0xCD, 0x44, 0xCF, 0x85,
- // Bytes 4480 - 44bf
0xCC, 0x81, 0xCD, 0x44, 0xCF, 0x89, 0xCC, 0x81,
+ // Bytes 4400 - 443f
0xCD, 0x44, 0xD7, 0x90, 0xD6, 0xB7, 0x35, 0x44,
0xD7, 0x90, 0xD6, 0xB8, 0x39, 0x44, 0xD7, 0x90,
0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x91, 0xD6, 0xBC,
@@ -2515,8 +2496,8 @@ var decomps = [...]byte{
0xD7, 0x92, 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x93,
0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x94, 0xD6, 0xBC,
0x45, 0x44, 0xD7, 0x95, 0xD6, 0xB9, 0x3D, 0x44,
- // Bytes 44c0 - 44ff
0xD7, 0x95, 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x96,
+ // Bytes 4440 - 447f
0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x98, 0xD6, 0xBC,
0x45, 0x44, 0xD7, 0x99, 0xD6, 0xB4, 0x29, 0x44,
0xD7, 0x99, 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x9A,
@@ -2524,8 +2505,8 @@ var decomps = [...]byte{
0x45, 0x44, 0xD7, 0x9B, 0xD6, 0xBF, 0x4D, 0x44,
0xD7, 0x9C, 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x9E,
0xD6, 0xBC, 0x45, 0x44, 0xD7, 0xA0, 0xD6, 0xBC,
- // Bytes 4500 - 453f
0x45, 0x44, 0xD7, 0xA1, 0xD6, 0xBC, 0x45, 0x44,
+ // Bytes 4480 - 44bf
0xD7, 0xA3, 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0xA4,
0xD6, 0xBC, 0x45, 0x44, 0xD7, 0xA4, 0xD6, 0xBF,
0x4D, 0x44, 0xD7, 0xA6, 0xD6, 0xBC, 0x45, 0x44,
@@ -2533,8 +2514,8 @@ var decomps = [...]byte{
0xD6, 0xBC, 0x45, 0x44, 0xD7, 0xA9, 0xD6, 0xBC,
0x45, 0x44, 0xD7, 0xA9, 0xD7, 0x81, 0x51, 0x44,
0xD7, 0xA9, 0xD7, 0x82, 0x55, 0x44, 0xD7, 0xAA,
- // Bytes 4540 - 457f
0xD6, 0xBC, 0x45, 0x44, 0xD7, 0xB2, 0xD6, 0xB7,
+ // Bytes 44c0 - 44ff
0x35, 0x44, 0xD8, 0xA7, 0xD9, 0x8B, 0x5D, 0x44,
0xD8, 0xA7, 0xD9, 0x93, 0xCD, 0x44, 0xD8, 0xA7,
0xD9, 0x94, 0xCD, 0x44, 0xD8, 0xA7, 0xD9, 0x95,
@@ -2542,8 +2523,8 @@ var decomps = [...]byte{
0xD8, 0xB1, 0xD9, 0xB0, 0x7D, 0x44, 0xD9, 0x80,
0xD9, 0x8B, 0x5D, 0x44, 0xD9, 0x80, 0xD9, 0x8E,
0x69, 0x44, 0xD9, 0x80, 0xD9, 0x8F, 0x6D, 0x44,
- // Bytes 4580 - 45bf
0xD9, 0x80, 0xD9, 0x90, 0x71, 0x44, 0xD9, 0x80,
+ // Bytes 4500 - 453f
0xD9, 0x91, 0x75, 0x44, 0xD9, 0x80, 0xD9, 0x92,
0x79, 0x44, 0xD9, 0x87, 0xD9, 0xB0, 0x7D, 0x44,
0xD9, 0x88, 0xD9, 0x94, 0xCD, 0x44, 0xD9, 0x89,
@@ -2551,8 +2532,8 @@ var decomps = [...]byte{
0xCD, 0x44, 0xDB, 0x92, 0xD9, 0x94, 0xCD, 0x44,
0xDB, 0x95, 0xD9, 0x94, 0xCD, 0x45, 0x20, 0xCC,
0x88, 0xCC, 0x80, 0xCE, 0x45, 0x20, 0xCC, 0x88,
- // Bytes 45c0 - 45ff
0xCC, 0x81, 0xCE, 0x45, 0x20, 0xCC, 0x88, 0xCD,
+ // Bytes 4540 - 457f
0x82, 0xCE, 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x80,
0xCE, 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x81, 0xCE,
0x45, 0x20, 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x45,
@@ -2560,8 +2541,8 @@ var decomps = [...]byte{
0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x45, 0x20, 0xCC,
0x94, 0xCD, 0x82, 0xCE, 0x45, 0x20, 0xD9, 0x8C,
0xD9, 0x91, 0x76, 0x45, 0x20, 0xD9, 0x8D, 0xD9,
- // Bytes 4600 - 463f
0x91, 0x76, 0x45, 0x20, 0xD9, 0x8E, 0xD9, 0x91,
+ // Bytes 4580 - 45bf
0x76, 0x45, 0x20, 0xD9, 0x8F, 0xD9, 0x91, 0x76,
0x45, 0x20, 0xD9, 0x90, 0xD9, 0x91, 0x76, 0x45,
0x20, 0xD9, 0x91, 0xD9, 0xB0, 0x7E, 0x45, 0xE2,
@@ -2569,8 +2550,8 @@ var decomps = [...]byte{
0xCC, 0x88, 0xCC, 0x81, 0xCE, 0x46, 0xCF, 0x85,
0xCC, 0x88, 0xCC, 0x81, 0xCE, 0x46, 0xD7, 0xA9,
0xD6, 0xBC, 0xD7, 0x81, 0x52, 0x46, 0xD7, 0xA9,
- // Bytes 4640 - 467f
0xD6, 0xBC, 0xD7, 0x82, 0x56, 0x46, 0xD9, 0x80,
+ // Bytes 45c0 - 45ff
0xD9, 0x8E, 0xD9, 0x91, 0x76, 0x46, 0xD9, 0x80,
0xD9, 0x8F, 0xD9, 0x91, 0x76, 0x46, 0xD9, 0x80,
0xD9, 0x90, 0xD9, 0x91, 0x76, 0x46, 0xE0, 0xA4,
@@ -2578,8 +2559,8 @@ var decomps = [...]byte{
0x96, 0xE0, 0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4,
0x97, 0xE0, 0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4,
0x9C, 0xE0, 0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4,
- // Bytes 4680 - 46bf
0xA1, 0xE0, 0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4,
+ // Bytes 4600 - 463f
0xA2, 0xE0, 0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4,
0xAB, 0xE0, 0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4,
0xAF, 0xE0, 0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA6,
@@ -2587,8 +2568,8 @@ var decomps = [...]byte{
0xA2, 0xE0, 0xA6, 0xBC, 0x0D, 0x46, 0xE0, 0xA6,
0xAF, 0xE0, 0xA6, 0xBC, 0x0D, 0x46, 0xE0, 0xA8,
0x96, 0xE0, 0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xA8,
- // Bytes 46c0 - 46ff
0x97, 0xE0, 0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xA8,
+ // Bytes 4640 - 467f
0x9C, 0xE0, 0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xA8,
0xAB, 0xE0, 0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xA8,
0xB2, 0xE0, 0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xA8,
@@ -2596,148 +2577,167 @@ var decomps = [...]byte{
0xA1, 0xE0, 0xAC, 0xBC, 0x0D, 0x46, 0xE0, 0xAC,
0xA2, 0xE0, 0xAC, 0xBC, 0x0D, 0x46, 0xE0, 0xBE,
0xB2, 0xE0, 0xBE, 0x80, 0xA1, 0x46, 0xE0, 0xBE,
- // Bytes 4700 - 473f
- 0xB3, 0xE0, 0xBE, 0x80, 0xA1, 0x46, 0xE3, 0x83,
+ 0xB3, 0xE0, 0xBE, 0x80, 0xA1, 0x46, 0xE1, 0x84,
+ // Bytes 4680 - 46bf
+ 0x80, 0xE1, 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84,
+ 0x82, 0xE1, 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84,
+ 0x83, 0xE1, 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84,
+ 0x85, 0xE1, 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84,
+ 0x86, 0xE1, 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84,
+ 0x87, 0xE1, 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84,
+ 0x89, 0xE1, 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84,
+ 0x8B, 0xE1, 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84,
+ // Bytes 46c0 - 46ff
+ 0x8B, 0xE1, 0x85, 0xAE, 0x01, 0x46, 0xE1, 0x84,
+ 0x8C, 0xE1, 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84,
+ 0x8E, 0xE1, 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84,
+ 0x8F, 0xE1, 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84,
+ 0x90, 0xE1, 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84,
+ 0x91, 0xE1, 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84,
+ 0x92, 0xE1, 0x85, 0xA1, 0x01, 0x46, 0xE3, 0x83,
0x86, 0xE3, 0x82, 0x99, 0x11, 0x48, 0xF0, 0x9D,
+ // Bytes 4700 - 473f
0x85, 0x97, 0xF0, 0x9D, 0x85, 0xA5, 0xB1, 0x48,
0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5,
0xB1, 0x48, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D,
0x85, 0xA5, 0xB1, 0x48, 0xF0, 0x9D, 0x86, 0xBA,
0xF0, 0x9D, 0x85, 0xA5, 0xB1, 0x49, 0xE0, 0xBE,
0xB2, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0xA2,
- // Bytes 4740 - 477f
0x49, 0xE0, 0xBE, 0xB3, 0xE0, 0xBD, 0xB1, 0xE0,
0xBE, 0x80, 0xA2, 0x4C, 0xF0, 0x9D, 0x85, 0x98,
+ // Bytes 4740 - 477f
0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE,
0xB2, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D,
0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xB2, 0x4C,
0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5,
0xF0, 0x9D, 0x85, 0xB0, 0xB2, 0x4C, 0xF0, 0x9D,
0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D,
- // Bytes 4780 - 47bf
0x85, 0xB1, 0xB2, 0x4C, 0xF0, 0x9D, 0x85, 0x98,
0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB2,
+ // Bytes 4780 - 47bf
0xB2, 0x4C, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D,
0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xB2, 0x4C,
0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5,
0xF0, 0x9D, 0x85, 0xAF, 0xB2, 0x4C, 0xF0, 0x9D,
0x86, 0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D,
0x85, 0xAE, 0xB2, 0x4C, 0xF0, 0x9D, 0x86, 0xBA,
- // Bytes 47c0 - 47ff
0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF,
0xB2, 0x83, 0x41, 0xCC, 0x82, 0xCD, 0x83, 0x41,
+ // Bytes 47c0 - 47ff
0xCC, 0x86, 0xCD, 0x83, 0x41, 0xCC, 0x87, 0xCD,
0x83, 0x41, 0xCC, 0x88, 0xCD, 0x83, 0x41, 0xCC,
0x8A, 0xCD, 0x83, 0x41, 0xCC, 0xA3, 0xB9, 0x83,
0x43, 0xCC, 0xA7, 0xA9, 0x83, 0x45, 0xCC, 0x82,
0xCD, 0x83, 0x45, 0xCC, 0x84, 0xCD, 0x83, 0x45,
0xCC, 0xA3, 0xB9, 0x83, 0x45, 0xCC, 0xA7, 0xA9,
- // Bytes 4800 - 483f
0x83, 0x49, 0xCC, 0x88, 0xCD, 0x83, 0x4C, 0xCC,
0xA3, 0xB9, 0x83, 0x4F, 0xCC, 0x82, 0xCD, 0x83,
+ // Bytes 4800 - 483f
0x4F, 0xCC, 0x83, 0xCD, 0x83, 0x4F, 0xCC, 0x84,
0xCD, 0x83, 0x4F, 0xCC, 0x87, 0xCD, 0x83, 0x4F,
0xCC, 0x88, 0xCD, 0x83, 0x4F, 0xCC, 0x9B, 0xB1,
0x83, 0x4F, 0xCC, 0xA3, 0xB9, 0x83, 0x4F, 0xCC,
0xA8, 0xA9, 0x83, 0x52, 0xCC, 0xA3, 0xB9, 0x83,
0x53, 0xCC, 0x81, 0xCD, 0x83, 0x53, 0xCC, 0x8C,
- // Bytes 4840 - 487f
0xCD, 0x83, 0x53, 0xCC, 0xA3, 0xB9, 0x83, 0x55,
0xCC, 0x83, 0xCD, 0x83, 0x55, 0xCC, 0x84, 0xCD,
+ // Bytes 4840 - 487f
0x83, 0x55, 0xCC, 0x88, 0xCD, 0x83, 0x55, 0xCC,
0x9B, 0xB1, 0x83, 0x61, 0xCC, 0x82, 0xCD, 0x83,
0x61, 0xCC, 0x86, 0xCD, 0x83, 0x61, 0xCC, 0x87,
0xCD, 0x83, 0x61, 0xCC, 0x88, 0xCD, 0x83, 0x61,
0xCC, 0x8A, 0xCD, 0x83, 0x61, 0xCC, 0xA3, 0xB9,
0x83, 0x63, 0xCC, 0xA7, 0xA9, 0x83, 0x65, 0xCC,
- // Bytes 4880 - 48bf
0x82, 0xCD, 0x83, 0x65, 0xCC, 0x84, 0xCD, 0x83,
0x65, 0xCC, 0xA3, 0xB9, 0x83, 0x65, 0xCC, 0xA7,
+ // Bytes 4880 - 48bf
0xA9, 0x83, 0x69, 0xCC, 0x88, 0xCD, 0x83, 0x6C,
0xCC, 0xA3, 0xB9, 0x83, 0x6F, 0xCC, 0x82, 0xCD,
0x83, 0x6F, 0xCC, 0x83, 0xCD, 0x83, 0x6F, 0xCC,
0x84, 0xCD, 0x83, 0x6F, 0xCC, 0x87, 0xCD, 0x83,
0x6F, 0xCC, 0x88, 0xCD, 0x83, 0x6F, 0xCC, 0x9B,
0xB1, 0x83, 0x6F, 0xCC, 0xA3, 0xB9, 0x83, 0x6F,
- // Bytes 48c0 - 48ff
0xCC, 0xA8, 0xA9, 0x83, 0x72, 0xCC, 0xA3, 0xB9,
0x83, 0x73, 0xCC, 0x81, 0xCD, 0x83, 0x73, 0xCC,
+ // Bytes 48c0 - 48ff
0x8C, 0xCD, 0x83, 0x73, 0xCC, 0xA3, 0xB9, 0x83,
0x75, 0xCC, 0x83, 0xCD, 0x83, 0x75, 0xCC, 0x84,
0xCD, 0x83, 0x75, 0xCC, 0x88, 0xCD, 0x83, 0x75,
0xCC, 0x9B, 0xB1, 0x84, 0xCE, 0x91, 0xCC, 0x93,
0xCD, 0x84, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x84,
0xCE, 0x95, 0xCC, 0x93, 0xCD, 0x84, 0xCE, 0x95,
- // Bytes 4900 - 493f
0xCC, 0x94, 0xCD, 0x84, 0xCE, 0x97, 0xCC, 0x93,
0xCD, 0x84, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x84,
+ // Bytes 4900 - 493f
0xCE, 0x99, 0xCC, 0x93, 0xCD, 0x84, 0xCE, 0x99,
0xCC, 0x94, 0xCD, 0x84, 0xCE, 0x9F, 0xCC, 0x93,
0xCD, 0x84, 0xCE, 0x9F, 0xCC, 0x94, 0xCD, 0x84,
0xCE, 0xA5, 0xCC, 0x94, 0xCD, 0x84, 0xCE, 0xA9,
0xCC, 0x93, 0xCD, 0x84, 0xCE, 0xA9, 0xCC, 0x94,
0xCD, 0x84, 0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x84,
- // Bytes 4940 - 497f
0xCE, 0xB1, 0xCC, 0x81, 0xCD, 0x84, 0xCE, 0xB1,
0xCC, 0x93, 0xCD, 0x84, 0xCE, 0xB1, 0xCC, 0x94,
+ // Bytes 4940 - 497f
0xCD, 0x84, 0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x84,
0xCE, 0xB5, 0xCC, 0x93, 0xCD, 0x84, 0xCE, 0xB5,
0xCC, 0x94, 0xCD, 0x84, 0xCE, 0xB7, 0xCC, 0x80,
0xCD, 0x84, 0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x84,
0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x84, 0xCE, 0xB7,
0xCC, 0x94, 0xCD, 0x84, 0xCE, 0xB7, 0xCD, 0x82,
- // Bytes 4980 - 49bf
0xCD, 0x84, 0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x84,
0xCE, 0xB9, 0xCC, 0x93, 0xCD, 0x84, 0xCE, 0xB9,
+ // Bytes 4980 - 49bf
0xCC, 0x94, 0xCD, 0x84, 0xCE, 0xBF, 0xCC, 0x93,
0xCD, 0x84, 0xCE, 0xBF, 0xCC, 0x94, 0xCD, 0x84,
0xCF, 0x85, 0xCC, 0x88, 0xCD, 0x84, 0xCF, 0x85,
0xCC, 0x93, 0xCD, 0x84, 0xCF, 0x85, 0xCC, 0x94,
0xCD, 0x84, 0xCF, 0x89, 0xCC, 0x80, 0xCD, 0x84,
0xCF, 0x89, 0xCC, 0x81, 0xCD, 0x84, 0xCF, 0x89,
- // Bytes 49c0 - 49ff
0xCC, 0x93, 0xCD, 0x84, 0xCF, 0x89, 0xCC, 0x94,
0xCD, 0x84, 0xCF, 0x89, 0xCD, 0x82, 0xCD, 0x86,
+ // Bytes 49c0 - 49ff
0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86,
0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86,
0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86,
0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86,
0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86,
0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x86,
- // Bytes 4a00 - 4a3f
0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86,
0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86,
+ // Bytes 4a00 - 4a3f
0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86,
0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86,
0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86,
0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x86,
0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86,
0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86,
- // Bytes 4a40 - 4a7f
0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86,
0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86,
+ // Bytes 4a40 - 4a7f
0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86,
0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x86,
0xCE, 0xB1, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86,
0xCE, 0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86,
0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86,
0xCE, 0xB1, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86,
- // Bytes 4a80 - 4abf
0xCE, 0xB1, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86,
0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x86,
+ // Bytes 4a80 - 4abf
0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86,
0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86,
0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86,
0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86,
0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86,
0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x86,
- // Bytes 4ac0 - 4aff
0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86,
0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86,
+ // Bytes 4ac0 - 4aff
0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86,
0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86,
0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86,
- 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x42,
+ 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x86,
+ 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0x01, 0x86,
+ 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8F, 0x01, 0x42,
0xCC, 0x80, 0xCD, 0x33, 0x42, 0xCC, 0x81, 0xCD,
0x33, 0x42, 0xCC, 0x93, 0xCD, 0x33, 0x43, 0xE1,
// Bytes 4b00 - 4b3f
@@ -2945,7 +2945,7 @@ func (t *nfcTrie) lookupStringUnsafe(s string) uint16 {
return 0
}
-// nfcTrie. Total size: 10798 bytes (10.54 KiB). Checksum: b5981cc85e3bd14.
+// nfcTrie. Total size: 10798 bytes (10.54 KiB). Checksum: 721e0f15a4524bda.
type nfcTrie struct{}
func newNfcTrie(i int) *nfcTrie {
@@ -2981,63 +2981,63 @@ var nfcValues = [3072]uint16{
0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000,
// Block 0x2, offset 0x80
// Block 0x3, offset 0xc0
- 0xc0: 0x30b0, 0xc1: 0x30b5, 0xc2: 0x47c9, 0xc3: 0x30ba, 0xc4: 0x47d8, 0xc5: 0x47dd,
- 0xc6: 0xa000, 0xc7: 0x47e7, 0xc8: 0x3123, 0xc9: 0x3128, 0xca: 0x47ec, 0xcb: 0x313c,
- 0xcc: 0x31af, 0xcd: 0x31b4, 0xce: 0x31b9, 0xcf: 0x4800, 0xd1: 0x3245,
- 0xd2: 0x3268, 0xd3: 0x326d, 0xd4: 0x480a, 0xd5: 0x480f, 0xd6: 0x481e,
- 0xd8: 0xa000, 0xd9: 0x32f4, 0xda: 0x32f9, 0xdb: 0x32fe, 0xdc: 0x4850, 0xdd: 0x3376,
- 0xe0: 0x33bc, 0xe1: 0x33c1, 0xe2: 0x485a, 0xe3: 0x33c6,
- 0xe4: 0x4869, 0xe5: 0x486e, 0xe6: 0xa000, 0xe7: 0x4878, 0xe8: 0x342f, 0xe9: 0x3434,
- 0xea: 0x487d, 0xeb: 0x3448, 0xec: 0x34c0, 0xed: 0x34c5, 0xee: 0x34ca, 0xef: 0x4891,
- 0xf1: 0x3556, 0xf2: 0x3579, 0xf3: 0x357e, 0xf4: 0x489b, 0xf5: 0x48a0,
- 0xf6: 0x48af, 0xf8: 0xa000, 0xf9: 0x360a, 0xfa: 0x360f, 0xfb: 0x3614,
- 0xfc: 0x48e1, 0xfd: 0x3691, 0xff: 0x36aa,
+ 0xc0: 0x2ece, 0xc1: 0x2ed3, 0xc2: 0x47b9, 0xc3: 0x2ed8, 0xc4: 0x47c8, 0xc5: 0x47cd,
+ 0xc6: 0xa000, 0xc7: 0x47d7, 0xc8: 0x2f41, 0xc9: 0x2f46, 0xca: 0x47dc, 0xcb: 0x2f5a,
+ 0xcc: 0x2fcd, 0xcd: 0x2fd2, 0xce: 0x2fd7, 0xcf: 0x47f0, 0xd1: 0x3063,
+ 0xd2: 0x3086, 0xd3: 0x308b, 0xd4: 0x47fa, 0xd5: 0x47ff, 0xd6: 0x480e,
+ 0xd8: 0xa000, 0xd9: 0x3112, 0xda: 0x3117, 0xdb: 0x311c, 0xdc: 0x4840, 0xdd: 0x3194,
+ 0xe0: 0x31da, 0xe1: 0x31df, 0xe2: 0x484a, 0xe3: 0x31e4,
+ 0xe4: 0x4859, 0xe5: 0x485e, 0xe6: 0xa000, 0xe7: 0x4868, 0xe8: 0x324d, 0xe9: 0x3252,
+ 0xea: 0x486d, 0xeb: 0x3266, 0xec: 0x32de, 0xed: 0x32e3, 0xee: 0x32e8, 0xef: 0x4881,
+ 0xf1: 0x3374, 0xf2: 0x3397, 0xf3: 0x339c, 0xf4: 0x488b, 0xf5: 0x4890,
+ 0xf6: 0x489f, 0xf8: 0xa000, 0xf9: 0x3428, 0xfa: 0x342d, 0xfb: 0x3432,
+ 0xfc: 0x48d1, 0xfd: 0x34af, 0xff: 0x34c8,
// Block 0x4, offset 0x100
- 0x100: 0x30bf, 0x101: 0x33cb, 0x102: 0x47ce, 0x103: 0x485f, 0x104: 0x30dd, 0x105: 0x33e9,
- 0x106: 0x30f1, 0x107: 0x33fd, 0x108: 0x30f6, 0x109: 0x3402, 0x10a: 0x30fb, 0x10b: 0x3407,
- 0x10c: 0x3100, 0x10d: 0x340c, 0x10e: 0x310a, 0x10f: 0x3416,
- 0x112: 0x47f1, 0x113: 0x4882, 0x114: 0x3132, 0x115: 0x343e, 0x116: 0x3137, 0x117: 0x3443,
- 0x118: 0x3155, 0x119: 0x3461, 0x11a: 0x3146, 0x11b: 0x3452, 0x11c: 0x316e, 0x11d: 0x347a,
- 0x11e: 0x3178, 0x11f: 0x3484, 0x120: 0x317d, 0x121: 0x3489, 0x122: 0x3187, 0x123: 0x3493,
- 0x124: 0x318c, 0x125: 0x3498, 0x128: 0x31be, 0x129: 0x34cf,
- 0x12a: 0x31c3, 0x12b: 0x34d4, 0x12c: 0x31c8, 0x12d: 0x34d9, 0x12e: 0x31eb, 0x12f: 0x34f7,
- 0x130: 0x31cd, 0x134: 0x31f5, 0x135: 0x3501,
- 0x136: 0x3209, 0x137: 0x351a, 0x139: 0x3213, 0x13a: 0x3524, 0x13b: 0x321d,
- 0x13c: 0x352e, 0x13d: 0x3218, 0x13e: 0x3529,
+ 0x100: 0x2edd, 0x101: 0x31e9, 0x102: 0x47be, 0x103: 0x484f, 0x104: 0x2efb, 0x105: 0x3207,
+ 0x106: 0x2f0f, 0x107: 0x321b, 0x108: 0x2f14, 0x109: 0x3220, 0x10a: 0x2f19, 0x10b: 0x3225,
+ 0x10c: 0x2f1e, 0x10d: 0x322a, 0x10e: 0x2f28, 0x10f: 0x3234,
+ 0x112: 0x47e1, 0x113: 0x4872, 0x114: 0x2f50, 0x115: 0x325c, 0x116: 0x2f55, 0x117: 0x3261,
+ 0x118: 0x2f73, 0x119: 0x327f, 0x11a: 0x2f64, 0x11b: 0x3270, 0x11c: 0x2f8c, 0x11d: 0x3298,
+ 0x11e: 0x2f96, 0x11f: 0x32a2, 0x120: 0x2f9b, 0x121: 0x32a7, 0x122: 0x2fa5, 0x123: 0x32b1,
+ 0x124: 0x2faa, 0x125: 0x32b6, 0x128: 0x2fdc, 0x129: 0x32ed,
+ 0x12a: 0x2fe1, 0x12b: 0x32f2, 0x12c: 0x2fe6, 0x12d: 0x32f7, 0x12e: 0x3009, 0x12f: 0x3315,
+ 0x130: 0x2feb, 0x134: 0x3013, 0x135: 0x331f,
+ 0x136: 0x3027, 0x137: 0x3338, 0x139: 0x3031, 0x13a: 0x3342, 0x13b: 0x303b,
+ 0x13c: 0x334c, 0x13d: 0x3036, 0x13e: 0x3347,
// Block 0x5, offset 0x140
- 0x143: 0x3240, 0x144: 0x3551, 0x145: 0x3259,
- 0x146: 0x356a, 0x147: 0x324f, 0x148: 0x3560,
- 0x14c: 0x4814, 0x14d: 0x48a5, 0x14e: 0x3272, 0x14f: 0x3583, 0x150: 0x327c, 0x151: 0x358d,
- 0x154: 0x329a, 0x155: 0x35ab, 0x156: 0x32b3, 0x157: 0x35c4,
- 0x158: 0x32a4, 0x159: 0x35b5, 0x15a: 0x4837, 0x15b: 0x48c8, 0x15c: 0x32bd, 0x15d: 0x35ce,
- 0x15e: 0x32cc, 0x15f: 0x35dd, 0x160: 0x483c, 0x161: 0x48cd, 0x162: 0x32e5, 0x163: 0x35fb,
- 0x164: 0x32d6, 0x165: 0x35ec, 0x168: 0x4846, 0x169: 0x48d7,
- 0x16a: 0x484b, 0x16b: 0x48dc, 0x16c: 0x3303, 0x16d: 0x3619, 0x16e: 0x330d, 0x16f: 0x3623,
- 0x170: 0x3312, 0x171: 0x3628, 0x172: 0x3330, 0x173: 0x3646, 0x174: 0x3353, 0x175: 0x3669,
- 0x176: 0x337b, 0x177: 0x3696, 0x178: 0x338f, 0x179: 0x339e, 0x17a: 0x36be, 0x17b: 0x33a8,
- 0x17c: 0x36c8, 0x17d: 0x33ad, 0x17e: 0x36cd, 0x17f: 0xa000,
+ 0x143: 0x305e, 0x144: 0x336f, 0x145: 0x3077,
+ 0x146: 0x3388, 0x147: 0x306d, 0x148: 0x337e,
+ 0x14c: 0x4804, 0x14d: 0x4895, 0x14e: 0x3090, 0x14f: 0x33a1, 0x150: 0x309a, 0x151: 0x33ab,
+ 0x154: 0x30b8, 0x155: 0x33c9, 0x156: 0x30d1, 0x157: 0x33e2,
+ 0x158: 0x30c2, 0x159: 0x33d3, 0x15a: 0x4827, 0x15b: 0x48b8, 0x15c: 0x30db, 0x15d: 0x33ec,
+ 0x15e: 0x30ea, 0x15f: 0x33fb, 0x160: 0x482c, 0x161: 0x48bd, 0x162: 0x3103, 0x163: 0x3419,
+ 0x164: 0x30f4, 0x165: 0x340a, 0x168: 0x4836, 0x169: 0x48c7,
+ 0x16a: 0x483b, 0x16b: 0x48cc, 0x16c: 0x3121, 0x16d: 0x3437, 0x16e: 0x312b, 0x16f: 0x3441,
+ 0x170: 0x3130, 0x171: 0x3446, 0x172: 0x314e, 0x173: 0x3464, 0x174: 0x3171, 0x175: 0x3487,
+ 0x176: 0x3199, 0x177: 0x34b4, 0x178: 0x31ad, 0x179: 0x31bc, 0x17a: 0x34dc, 0x17b: 0x31c6,
+ 0x17c: 0x34e6, 0x17d: 0x31cb, 0x17e: 0x34eb, 0x17f: 0xa000,
// Block 0x6, offset 0x180
0x184: 0x8100, 0x185: 0x8100,
0x186: 0x8100,
- 0x18d: 0x30c9, 0x18e: 0x33d5, 0x18f: 0x31d7, 0x190: 0x34e3, 0x191: 0x3281,
- 0x192: 0x3592, 0x193: 0x3317, 0x194: 0x362d, 0x195: 0x3b10, 0x196: 0x3c9f, 0x197: 0x3b09,
- 0x198: 0x3c98, 0x199: 0x3b17, 0x19a: 0x3ca6, 0x19b: 0x3b02, 0x19c: 0x3c91,
- 0x19e: 0x39f1, 0x19f: 0x3b80, 0x1a0: 0x39ea, 0x1a1: 0x3b79, 0x1a2: 0x36f4, 0x1a3: 0x3706,
- 0x1a6: 0x3182, 0x1a7: 0x348e, 0x1a8: 0x31ff, 0x1a9: 0x3510,
- 0x1aa: 0x482d, 0x1ab: 0x48be, 0x1ac: 0x3ad1, 0x1ad: 0x3c60, 0x1ae: 0x3718, 0x1af: 0x371e,
- 0x1b0: 0x3506, 0x1b4: 0x3169, 0x1b5: 0x3475,
- 0x1b8: 0x323b, 0x1b9: 0x354c, 0x1ba: 0x39f8, 0x1bb: 0x3b87,
- 0x1bc: 0x36ee, 0x1bd: 0x3700, 0x1be: 0x36fa, 0x1bf: 0x370c,
+ 0x18d: 0x2ee7, 0x18e: 0x31f3, 0x18f: 0x2ff5, 0x190: 0x3301, 0x191: 0x309f,
+ 0x192: 0x33b0, 0x193: 0x3135, 0x194: 0x344b, 0x195: 0x392e, 0x196: 0x3abd, 0x197: 0x3927,
+ 0x198: 0x3ab6, 0x199: 0x3935, 0x19a: 0x3ac4, 0x19b: 0x3920, 0x19c: 0x3aaf,
+ 0x19e: 0x380f, 0x19f: 0x399e, 0x1a0: 0x3808, 0x1a1: 0x3997, 0x1a2: 0x3512, 0x1a3: 0x3524,
+ 0x1a6: 0x2fa0, 0x1a7: 0x32ac, 0x1a8: 0x301d, 0x1a9: 0x332e,
+ 0x1aa: 0x481d, 0x1ab: 0x48ae, 0x1ac: 0x38ef, 0x1ad: 0x3a7e, 0x1ae: 0x3536, 0x1af: 0x353c,
+ 0x1b0: 0x3324, 0x1b4: 0x2f87, 0x1b5: 0x3293,
+ 0x1b8: 0x3059, 0x1b9: 0x336a, 0x1ba: 0x3816, 0x1bb: 0x39a5,
+ 0x1bc: 0x350c, 0x1bd: 0x351e, 0x1be: 0x3518, 0x1bf: 0x352a,
// Block 0x7, offset 0x1c0
- 0x1c0: 0x30ce, 0x1c1: 0x33da, 0x1c2: 0x30d3, 0x1c3: 0x33df, 0x1c4: 0x314b, 0x1c5: 0x3457,
- 0x1c6: 0x3150, 0x1c7: 0x345c, 0x1c8: 0x31dc, 0x1c9: 0x34e8, 0x1ca: 0x31e1, 0x1cb: 0x34ed,
- 0x1cc: 0x3286, 0x1cd: 0x3597, 0x1ce: 0x328b, 0x1cf: 0x359c, 0x1d0: 0x32a9, 0x1d1: 0x35ba,
- 0x1d2: 0x32ae, 0x1d3: 0x35bf, 0x1d4: 0x331c, 0x1d5: 0x3632, 0x1d6: 0x3321, 0x1d7: 0x3637,
- 0x1d8: 0x32c7, 0x1d9: 0x35d8, 0x1da: 0x32e0, 0x1db: 0x35f6,
- 0x1de: 0x319b, 0x1df: 0x34a7,
- 0x1e6: 0x47d3, 0x1e7: 0x4864, 0x1e8: 0x47fb, 0x1e9: 0x488c,
- 0x1ea: 0x3aa0, 0x1eb: 0x3c2f, 0x1ec: 0x3a7d, 0x1ed: 0x3c0c, 0x1ee: 0x4819, 0x1ef: 0x48aa,
- 0x1f0: 0x3a99, 0x1f1: 0x3c28, 0x1f2: 0x3385, 0x1f3: 0x36a0,
+ 0x1c0: 0x2eec, 0x1c1: 0x31f8, 0x1c2: 0x2ef1, 0x1c3: 0x31fd, 0x1c4: 0x2f69, 0x1c5: 0x3275,
+ 0x1c6: 0x2f6e, 0x1c7: 0x327a, 0x1c8: 0x2ffa, 0x1c9: 0x3306, 0x1ca: 0x2fff, 0x1cb: 0x330b,
+ 0x1cc: 0x30a4, 0x1cd: 0x33b5, 0x1ce: 0x30a9, 0x1cf: 0x33ba, 0x1d0: 0x30c7, 0x1d1: 0x33d8,
+ 0x1d2: 0x30cc, 0x1d3: 0x33dd, 0x1d4: 0x313a, 0x1d5: 0x3450, 0x1d6: 0x313f, 0x1d7: 0x3455,
+ 0x1d8: 0x30e5, 0x1d9: 0x33f6, 0x1da: 0x30fe, 0x1db: 0x3414,
+ 0x1de: 0x2fb9, 0x1df: 0x32c5,
+ 0x1e6: 0x47c3, 0x1e7: 0x4854, 0x1e8: 0x47eb, 0x1e9: 0x487c,
+ 0x1ea: 0x38be, 0x1eb: 0x3a4d, 0x1ec: 0x389b, 0x1ed: 0x3a2a, 0x1ee: 0x4809, 0x1ef: 0x489a,
+ 0x1f0: 0x38b7, 0x1f1: 0x3a46, 0x1f2: 0x31a3, 0x1f3: 0x34be,
// Block 0x8, offset 0x200
0x200: 0x9933, 0x201: 0x9933, 0x202: 0x9933, 0x203: 0x9933, 0x204: 0x9933, 0x205: 0x8133,
0x206: 0x9933, 0x207: 0x9933, 0x208: 0x9933, 0x209: 0x9933, 0x20a: 0x9933, 0x20b: 0x9933,
@@ -3063,39 +3063,39 @@ var nfcValues = [3072]uint16{
0x27a: 0x8100,
0x27e: 0x0037,
// Block 0xa, offset 0x280
- 0x284: 0x8100, 0x285: 0x36e2,
- 0x286: 0x372a, 0x287: 0x00ce, 0x288: 0x3748, 0x289: 0x3754, 0x28a: 0x3766,
- 0x28c: 0x3784, 0x28e: 0x3796, 0x28f: 0x37b4, 0x290: 0x3f49, 0x291: 0xa000,
+ 0x284: 0x8100, 0x285: 0x3500,
+ 0x286: 0x3548, 0x287: 0x00ce, 0x288: 0x3566, 0x289: 0x3572, 0x28a: 0x3584,
+ 0x28c: 0x35a2, 0x28e: 0x35b4, 0x28f: 0x35d2, 0x290: 0x3d67, 0x291: 0xa000,
0x295: 0xa000, 0x297: 0xa000,
0x299: 0xa000,
0x29f: 0xa000, 0x2a1: 0xa000,
0x2a5: 0xa000, 0x2a9: 0xa000,
- 0x2aa: 0x3778, 0x2ab: 0x37a8, 0x2ac: 0x493f, 0x2ad: 0x37d8, 0x2ae: 0x4969, 0x2af: 0x37ea,
- 0x2b0: 0x3fb1, 0x2b1: 0xa000, 0x2b5: 0xa000,
+ 0x2aa: 0x3596, 0x2ab: 0x35c6, 0x2ac: 0x492f, 0x2ad: 0x35f6, 0x2ae: 0x4959, 0x2af: 0x3608,
+ 0x2b0: 0x3dcf, 0x2b1: 0xa000, 0x2b5: 0xa000,
0x2b7: 0xa000, 0x2b9: 0xa000,
0x2bf: 0xa000,
// Block 0xb, offset 0x2c0
- 0x2c0: 0x3862, 0x2c1: 0x386e, 0x2c3: 0x385c,
- 0x2c6: 0xa000, 0x2c7: 0x384a,
- 0x2cc: 0x389e, 0x2cd: 0x3886, 0x2ce: 0x38b0, 0x2d0: 0xa000,
+ 0x2c0: 0x3680, 0x2c1: 0x368c, 0x2c3: 0x367a,
+ 0x2c6: 0xa000, 0x2c7: 0x3668,
+ 0x2cc: 0x36bc, 0x2cd: 0x36a4, 0x2ce: 0x36ce, 0x2d0: 0xa000,
0x2d3: 0xa000, 0x2d5: 0xa000, 0x2d6: 0xa000, 0x2d7: 0xa000,
- 0x2d8: 0xa000, 0x2d9: 0x3892, 0x2da: 0xa000,
+ 0x2d8: 0xa000, 0x2d9: 0x36b0, 0x2da: 0xa000,
0x2de: 0xa000, 0x2e3: 0xa000,
0x2e7: 0xa000,
0x2eb: 0xa000, 0x2ed: 0xa000,
0x2f0: 0xa000, 0x2f3: 0xa000, 0x2f5: 0xa000,
- 0x2f6: 0xa000, 0x2f7: 0xa000, 0x2f8: 0xa000, 0x2f9: 0x3916, 0x2fa: 0xa000,
+ 0x2f6: 0xa000, 0x2f7: 0xa000, 0x2f8: 0xa000, 0x2f9: 0x3734, 0x2fa: 0xa000,
0x2fe: 0xa000,
// Block 0xc, offset 0x300
- 0x301: 0x3874, 0x302: 0x38f8,
- 0x310: 0x3850, 0x311: 0x38d4,
- 0x312: 0x3856, 0x313: 0x38da, 0x316: 0x3868, 0x317: 0x38ec,
- 0x318: 0xa000, 0x319: 0xa000, 0x31a: 0x396a, 0x31b: 0x3970, 0x31c: 0x387a, 0x31d: 0x38fe,
- 0x31e: 0x3880, 0x31f: 0x3904, 0x322: 0x388c, 0x323: 0x3910,
- 0x324: 0x3898, 0x325: 0x391c, 0x326: 0x38a4, 0x327: 0x3928, 0x328: 0xa000, 0x329: 0xa000,
- 0x32a: 0x3976, 0x32b: 0x397c, 0x32c: 0x38ce, 0x32d: 0x3952, 0x32e: 0x38aa, 0x32f: 0x392e,
- 0x330: 0x38b6, 0x331: 0x393a, 0x332: 0x38bc, 0x333: 0x3940, 0x334: 0x38c2, 0x335: 0x3946,
- 0x338: 0x38c8, 0x339: 0x394c,
+ 0x301: 0x3692, 0x302: 0x3716,
+ 0x310: 0x366e, 0x311: 0x36f2,
+ 0x312: 0x3674, 0x313: 0x36f8, 0x316: 0x3686, 0x317: 0x370a,
+ 0x318: 0xa000, 0x319: 0xa000, 0x31a: 0x3788, 0x31b: 0x378e, 0x31c: 0x3698, 0x31d: 0x371c,
+ 0x31e: 0x369e, 0x31f: 0x3722, 0x322: 0x36aa, 0x323: 0x372e,
+ 0x324: 0x36b6, 0x325: 0x373a, 0x326: 0x36c2, 0x327: 0x3746, 0x328: 0xa000, 0x329: 0xa000,
+ 0x32a: 0x3794, 0x32b: 0x379a, 0x32c: 0x36ec, 0x32d: 0x3770, 0x32e: 0x36c8, 0x32f: 0x374c,
+ 0x330: 0x36d4, 0x331: 0x3758, 0x332: 0x36da, 0x333: 0x375e, 0x334: 0x36e0, 0x335: 0x3764,
+ 0x338: 0x36e6, 0x339: 0x376a,
// Block 0xd, offset 0x340
0x351: 0x812e,
0x352: 0x8133, 0x353: 0x8133, 0x354: 0x8133, 0x355: 0x8133, 0x356: 0x812e, 0x357: 0x8133,
@@ -3126,12 +3126,12 @@ var nfcValues = [3072]uint16{
0x3fc: 0x8133, 0x3fd: 0x8133, 0x3fe: 0x8133, 0x3ff: 0x8133,
// Block 0x10, offset 0x400
0x405: 0xa000,
- 0x406: 0x2e5d, 0x407: 0xa000, 0x408: 0x2e65, 0x409: 0xa000, 0x40a: 0x2e6d, 0x40b: 0xa000,
- 0x40c: 0x2e75, 0x40d: 0xa000, 0x40e: 0x2e7d, 0x411: 0xa000,
- 0x412: 0x2e85,
+ 0x406: 0x3ee7, 0x407: 0xa000, 0x408: 0x3eef, 0x409: 0xa000, 0x40a: 0x3ef7, 0x40b: 0xa000,
+ 0x40c: 0x3eff, 0x40d: 0xa000, 0x40e: 0x3f07, 0x411: 0xa000,
+ 0x412: 0x3f0f,
0x434: 0x8103, 0x435: 0x9900,
- 0x43a: 0xa000, 0x43b: 0x2e8d,
- 0x43c: 0xa000, 0x43d: 0x2e95, 0x43e: 0xa000, 0x43f: 0xa000,
+ 0x43a: 0xa000, 0x43b: 0x3f17,
+ 0x43c: 0xa000, 0x43d: 0x3f1f, 0x43e: 0xa000, 0x43f: 0xa000,
// Block 0x11, offset 0x440
0x440: 0x8133, 0x441: 0x8133, 0x442: 0x812e, 0x443: 0x8133, 0x444: 0x8133, 0x445: 0x8133,
0x446: 0x8133, 0x447: 0x8133, 0x448: 0x8133, 0x449: 0x8133, 0x44a: 0x812e, 0x44b: 0x8133,
@@ -3145,149 +3145,149 @@ var nfcValues = [3072]uint16{
0x476: 0x8134, 0x477: 0x8132, 0x478: 0x8132, 0x479: 0x812e, 0x47a: 0x812d, 0x47b: 0x8133,
0x47c: 0x8135, 0x47d: 0x812e, 0x47e: 0x8133, 0x47f: 0x812e,
// Block 0x12, offset 0x480
- 0x480: 0x30d8, 0x481: 0x33e4, 0x482: 0x30e2, 0x483: 0x33ee, 0x484: 0x30e7, 0x485: 0x33f3,
- 0x486: 0x30ec, 0x487: 0x33f8, 0x488: 0x3a0d, 0x489: 0x3b9c, 0x48a: 0x3105, 0x48b: 0x3411,
- 0x48c: 0x310f, 0x48d: 0x341b, 0x48e: 0x311e, 0x48f: 0x342a, 0x490: 0x3114, 0x491: 0x3420,
- 0x492: 0x3119, 0x493: 0x3425, 0x494: 0x3a30, 0x495: 0x3bbf, 0x496: 0x3a37, 0x497: 0x3bc6,
- 0x498: 0x315a, 0x499: 0x3466, 0x49a: 0x315f, 0x49b: 0x346b, 0x49c: 0x3a45, 0x49d: 0x3bd4,
- 0x49e: 0x3164, 0x49f: 0x3470, 0x4a0: 0x3173, 0x4a1: 0x347f, 0x4a2: 0x3191, 0x4a3: 0x349d,
- 0x4a4: 0x31a0, 0x4a5: 0x34ac, 0x4a6: 0x3196, 0x4a7: 0x34a2, 0x4a8: 0x31a5, 0x4a9: 0x34b1,
- 0x4aa: 0x31aa, 0x4ab: 0x34b6, 0x4ac: 0x31f0, 0x4ad: 0x34fc, 0x4ae: 0x3a4c, 0x4af: 0x3bdb,
- 0x4b0: 0x31fa, 0x4b1: 0x350b, 0x4b2: 0x3204, 0x4b3: 0x3515, 0x4b4: 0x320e, 0x4b5: 0x351f,
- 0x4b6: 0x4805, 0x4b7: 0x4896, 0x4b8: 0x3a53, 0x4b9: 0x3be2, 0x4ba: 0x3227, 0x4bb: 0x3538,
- 0x4bc: 0x3222, 0x4bd: 0x3533, 0x4be: 0x322c, 0x4bf: 0x353d,
+ 0x480: 0x2ef6, 0x481: 0x3202, 0x482: 0x2f00, 0x483: 0x320c, 0x484: 0x2f05, 0x485: 0x3211,
+ 0x486: 0x2f0a, 0x487: 0x3216, 0x488: 0x382b, 0x489: 0x39ba, 0x48a: 0x2f23, 0x48b: 0x322f,
+ 0x48c: 0x2f2d, 0x48d: 0x3239, 0x48e: 0x2f3c, 0x48f: 0x3248, 0x490: 0x2f32, 0x491: 0x323e,
+ 0x492: 0x2f37, 0x493: 0x3243, 0x494: 0x384e, 0x495: 0x39dd, 0x496: 0x3855, 0x497: 0x39e4,
+ 0x498: 0x2f78, 0x499: 0x3284, 0x49a: 0x2f7d, 0x49b: 0x3289, 0x49c: 0x3863, 0x49d: 0x39f2,
+ 0x49e: 0x2f82, 0x49f: 0x328e, 0x4a0: 0x2f91, 0x4a1: 0x329d, 0x4a2: 0x2faf, 0x4a3: 0x32bb,
+ 0x4a4: 0x2fbe, 0x4a5: 0x32ca, 0x4a6: 0x2fb4, 0x4a7: 0x32c0, 0x4a8: 0x2fc3, 0x4a9: 0x32cf,
+ 0x4aa: 0x2fc8, 0x4ab: 0x32d4, 0x4ac: 0x300e, 0x4ad: 0x331a, 0x4ae: 0x386a, 0x4af: 0x39f9,
+ 0x4b0: 0x3018, 0x4b1: 0x3329, 0x4b2: 0x3022, 0x4b3: 0x3333, 0x4b4: 0x302c, 0x4b5: 0x333d,
+ 0x4b6: 0x47f5, 0x4b7: 0x4886, 0x4b8: 0x3871, 0x4b9: 0x3a00, 0x4ba: 0x3045, 0x4bb: 0x3356,
+ 0x4bc: 0x3040, 0x4bd: 0x3351, 0x4be: 0x304a, 0x4bf: 0x335b,
// Block 0x13, offset 0x4c0
- 0x4c0: 0x3231, 0x4c1: 0x3542, 0x4c2: 0x3236, 0x4c3: 0x3547, 0x4c4: 0x324a, 0x4c5: 0x355b,
- 0x4c6: 0x3254, 0x4c7: 0x3565, 0x4c8: 0x3263, 0x4c9: 0x3574, 0x4ca: 0x325e, 0x4cb: 0x356f,
- 0x4cc: 0x3a76, 0x4cd: 0x3c05, 0x4ce: 0x3a84, 0x4cf: 0x3c13, 0x4d0: 0x3a8b, 0x4d1: 0x3c1a,
- 0x4d2: 0x3a92, 0x4d3: 0x3c21, 0x4d4: 0x3290, 0x4d5: 0x35a1, 0x4d6: 0x3295, 0x4d7: 0x35a6,
- 0x4d8: 0x329f, 0x4d9: 0x35b0, 0x4da: 0x4832, 0x4db: 0x48c3, 0x4dc: 0x3ad8, 0x4dd: 0x3c67,
- 0x4de: 0x32b8, 0x4df: 0x35c9, 0x4e0: 0x32c2, 0x4e1: 0x35d3, 0x4e2: 0x4841, 0x4e3: 0x48d2,
- 0x4e4: 0x3adf, 0x4e5: 0x3c6e, 0x4e6: 0x3ae6, 0x4e7: 0x3c75, 0x4e8: 0x3aed, 0x4e9: 0x3c7c,
- 0x4ea: 0x32d1, 0x4eb: 0x35e2, 0x4ec: 0x32db, 0x4ed: 0x35f1, 0x4ee: 0x32ef, 0x4ef: 0x3605,
- 0x4f0: 0x32ea, 0x4f1: 0x3600, 0x4f2: 0x332b, 0x4f3: 0x3641, 0x4f4: 0x333a, 0x4f5: 0x3650,
- 0x4f6: 0x3335, 0x4f7: 0x364b, 0x4f8: 0x3af4, 0x4f9: 0x3c83, 0x4fa: 0x3afb, 0x4fb: 0x3c8a,
- 0x4fc: 0x333f, 0x4fd: 0x3655, 0x4fe: 0x3344, 0x4ff: 0x365a,
+ 0x4c0: 0x304f, 0x4c1: 0x3360, 0x4c2: 0x3054, 0x4c3: 0x3365, 0x4c4: 0x3068, 0x4c5: 0x3379,
+ 0x4c6: 0x3072, 0x4c7: 0x3383, 0x4c8: 0x3081, 0x4c9: 0x3392, 0x4ca: 0x307c, 0x4cb: 0x338d,
+ 0x4cc: 0x3894, 0x4cd: 0x3a23, 0x4ce: 0x38a2, 0x4cf: 0x3a31, 0x4d0: 0x38a9, 0x4d1: 0x3a38,
+ 0x4d2: 0x38b0, 0x4d3: 0x3a3f, 0x4d4: 0x30ae, 0x4d5: 0x33bf, 0x4d6: 0x30b3, 0x4d7: 0x33c4,
+ 0x4d8: 0x30bd, 0x4d9: 0x33ce, 0x4da: 0x4822, 0x4db: 0x48b3, 0x4dc: 0x38f6, 0x4dd: 0x3a85,
+ 0x4de: 0x30d6, 0x4df: 0x33e7, 0x4e0: 0x30e0, 0x4e1: 0x33f1, 0x4e2: 0x4831, 0x4e3: 0x48c2,
+ 0x4e4: 0x38fd, 0x4e5: 0x3a8c, 0x4e6: 0x3904, 0x4e7: 0x3a93, 0x4e8: 0x390b, 0x4e9: 0x3a9a,
+ 0x4ea: 0x30ef, 0x4eb: 0x3400, 0x4ec: 0x30f9, 0x4ed: 0x340f, 0x4ee: 0x310d, 0x4ef: 0x3423,
+ 0x4f0: 0x3108, 0x4f1: 0x341e, 0x4f2: 0x3149, 0x4f3: 0x345f, 0x4f4: 0x3158, 0x4f5: 0x346e,
+ 0x4f6: 0x3153, 0x4f7: 0x3469, 0x4f8: 0x3912, 0x4f9: 0x3aa1, 0x4fa: 0x3919, 0x4fb: 0x3aa8,
+ 0x4fc: 0x315d, 0x4fd: 0x3473, 0x4fe: 0x3162, 0x4ff: 0x3478,
// Block 0x14, offset 0x500
- 0x500: 0x3349, 0x501: 0x365f, 0x502: 0x334e, 0x503: 0x3664, 0x504: 0x335d, 0x505: 0x3673,
- 0x506: 0x3358, 0x507: 0x366e, 0x508: 0x3362, 0x509: 0x367d, 0x50a: 0x3367, 0x50b: 0x3682,
- 0x50c: 0x336c, 0x50d: 0x3687, 0x50e: 0x338a, 0x50f: 0x36a5, 0x510: 0x33a3, 0x511: 0x36c3,
- 0x512: 0x33b2, 0x513: 0x36d2, 0x514: 0x33b7, 0x515: 0x36d7, 0x516: 0x34bb, 0x517: 0x35e7,
- 0x518: 0x3678, 0x519: 0x36b4, 0x51b: 0x3712,
- 0x520: 0x47e2, 0x521: 0x4873, 0x522: 0x30c4, 0x523: 0x33d0,
- 0x524: 0x39b9, 0x525: 0x3b48, 0x526: 0x39b2, 0x527: 0x3b41, 0x528: 0x39c7, 0x529: 0x3b56,
- 0x52a: 0x39c0, 0x52b: 0x3b4f, 0x52c: 0x39ff, 0x52d: 0x3b8e, 0x52e: 0x39d5, 0x52f: 0x3b64,
- 0x530: 0x39ce, 0x531: 0x3b5d, 0x532: 0x39e3, 0x533: 0x3b72, 0x534: 0x39dc, 0x535: 0x3b6b,
- 0x536: 0x3a06, 0x537: 0x3b95, 0x538: 0x47f6, 0x539: 0x4887, 0x53a: 0x3141, 0x53b: 0x344d,
- 0x53c: 0x312d, 0x53d: 0x3439, 0x53e: 0x3a1b, 0x53f: 0x3baa,
+ 0x500: 0x3167, 0x501: 0x347d, 0x502: 0x316c, 0x503: 0x3482, 0x504: 0x317b, 0x505: 0x3491,
+ 0x506: 0x3176, 0x507: 0x348c, 0x508: 0x3180, 0x509: 0x349b, 0x50a: 0x3185, 0x50b: 0x34a0,
+ 0x50c: 0x318a, 0x50d: 0x34a5, 0x50e: 0x31a8, 0x50f: 0x34c3, 0x510: 0x31c1, 0x511: 0x34e1,
+ 0x512: 0x31d0, 0x513: 0x34f0, 0x514: 0x31d5, 0x515: 0x34f5, 0x516: 0x32d9, 0x517: 0x3405,
+ 0x518: 0x3496, 0x519: 0x34d2, 0x51b: 0x3530,
+ 0x520: 0x47d2, 0x521: 0x4863, 0x522: 0x2ee2, 0x523: 0x31ee,
+ 0x524: 0x37d7, 0x525: 0x3966, 0x526: 0x37d0, 0x527: 0x395f, 0x528: 0x37e5, 0x529: 0x3974,
+ 0x52a: 0x37de, 0x52b: 0x396d, 0x52c: 0x381d, 0x52d: 0x39ac, 0x52e: 0x37f3, 0x52f: 0x3982,
+ 0x530: 0x37ec, 0x531: 0x397b, 0x532: 0x3801, 0x533: 0x3990, 0x534: 0x37fa, 0x535: 0x3989,
+ 0x536: 0x3824, 0x537: 0x39b3, 0x538: 0x47e6, 0x539: 0x4877, 0x53a: 0x2f5f, 0x53b: 0x326b,
+ 0x53c: 0x2f4b, 0x53d: 0x3257, 0x53e: 0x3839, 0x53f: 0x39c8,
// Block 0x15, offset 0x540
- 0x540: 0x3a14, 0x541: 0x3ba3, 0x542: 0x3a29, 0x543: 0x3bb8, 0x544: 0x3a22, 0x545: 0x3bb1,
- 0x546: 0x3a3e, 0x547: 0x3bcd, 0x548: 0x31d2, 0x549: 0x34de, 0x54a: 0x31e6, 0x54b: 0x34f2,
- 0x54c: 0x4828, 0x54d: 0x48b9, 0x54e: 0x3277, 0x54f: 0x3588, 0x550: 0x3a61, 0x551: 0x3bf0,
- 0x552: 0x3a5a, 0x553: 0x3be9, 0x554: 0x3a6f, 0x555: 0x3bfe, 0x556: 0x3a68, 0x557: 0x3bf7,
- 0x558: 0x3aca, 0x559: 0x3c59, 0x55a: 0x3aae, 0x55b: 0x3c3d, 0x55c: 0x3aa7, 0x55d: 0x3c36,
- 0x55e: 0x3abc, 0x55f: 0x3c4b, 0x560: 0x3ab5, 0x561: 0x3c44, 0x562: 0x3ac3, 0x563: 0x3c52,
- 0x564: 0x3326, 0x565: 0x363c, 0x566: 0x3308, 0x567: 0x361e, 0x568: 0x3b25, 0x569: 0x3cb4,
- 0x56a: 0x3b1e, 0x56b: 0x3cad, 0x56c: 0x3b33, 0x56d: 0x3cc2, 0x56e: 0x3b2c, 0x56f: 0x3cbb,
- 0x570: 0x3b3a, 0x571: 0x3cc9, 0x572: 0x3371, 0x573: 0x368c, 0x574: 0x3399, 0x575: 0x36b9,
- 0x576: 0x3394, 0x577: 0x36af, 0x578: 0x3380, 0x579: 0x369b,
+ 0x540: 0x3832, 0x541: 0x39c1, 0x542: 0x3847, 0x543: 0x39d6, 0x544: 0x3840, 0x545: 0x39cf,
+ 0x546: 0x385c, 0x547: 0x39eb, 0x548: 0x2ff0, 0x549: 0x32fc, 0x54a: 0x3004, 0x54b: 0x3310,
+ 0x54c: 0x4818, 0x54d: 0x48a9, 0x54e: 0x3095, 0x54f: 0x33a6, 0x550: 0x387f, 0x551: 0x3a0e,
+ 0x552: 0x3878, 0x553: 0x3a07, 0x554: 0x388d, 0x555: 0x3a1c, 0x556: 0x3886, 0x557: 0x3a15,
+ 0x558: 0x38e8, 0x559: 0x3a77, 0x55a: 0x38cc, 0x55b: 0x3a5b, 0x55c: 0x38c5, 0x55d: 0x3a54,
+ 0x55e: 0x38da, 0x55f: 0x3a69, 0x560: 0x38d3, 0x561: 0x3a62, 0x562: 0x38e1, 0x563: 0x3a70,
+ 0x564: 0x3144, 0x565: 0x345a, 0x566: 0x3126, 0x567: 0x343c, 0x568: 0x3943, 0x569: 0x3ad2,
+ 0x56a: 0x393c, 0x56b: 0x3acb, 0x56c: 0x3951, 0x56d: 0x3ae0, 0x56e: 0x394a, 0x56f: 0x3ad9,
+ 0x570: 0x3958, 0x571: 0x3ae7, 0x572: 0x318f, 0x573: 0x34aa, 0x574: 0x31b7, 0x575: 0x34d7,
+ 0x576: 0x31b2, 0x577: 0x34cd, 0x578: 0x319e, 0x579: 0x34b9,
// Block 0x16, offset 0x580
- 0x580: 0x4945, 0x581: 0x494b, 0x582: 0x4a5f, 0x583: 0x4a77, 0x584: 0x4a67, 0x585: 0x4a7f,
- 0x586: 0x4a6f, 0x587: 0x4a87, 0x588: 0x48eb, 0x589: 0x48f1, 0x58a: 0x49cf, 0x58b: 0x49e7,
- 0x58c: 0x49d7, 0x58d: 0x49ef, 0x58e: 0x49df, 0x58f: 0x49f7, 0x590: 0x4957, 0x591: 0x495d,
- 0x592: 0x3ef9, 0x593: 0x3f09, 0x594: 0x3f01, 0x595: 0x3f11,
- 0x598: 0x48f7, 0x599: 0x48fd, 0x59a: 0x3e29, 0x59b: 0x3e39, 0x59c: 0x3e31, 0x59d: 0x3e41,
- 0x5a0: 0x496f, 0x5a1: 0x4975, 0x5a2: 0x4a8f, 0x5a3: 0x4aa7,
- 0x5a4: 0x4a97, 0x5a5: 0x4aaf, 0x5a6: 0x4a9f, 0x5a7: 0x4ab7, 0x5a8: 0x4903, 0x5a9: 0x4909,
- 0x5aa: 0x49ff, 0x5ab: 0x4a17, 0x5ac: 0x4a07, 0x5ad: 0x4a1f, 0x5ae: 0x4a0f, 0x5af: 0x4a27,
- 0x5b0: 0x4987, 0x5b1: 0x498d, 0x5b2: 0x3f59, 0x5b3: 0x3f71, 0x5b4: 0x3f61, 0x5b5: 0x3f79,
- 0x5b6: 0x3f69, 0x5b7: 0x3f81, 0x5b8: 0x490f, 0x5b9: 0x4915, 0x5ba: 0x3e59, 0x5bb: 0x3e71,
- 0x5bc: 0x3e61, 0x5bd: 0x3e79, 0x5be: 0x3e69, 0x5bf: 0x3e81,
+ 0x580: 0x4935, 0x581: 0x493b, 0x582: 0x4a4f, 0x583: 0x4a67, 0x584: 0x4a57, 0x585: 0x4a6f,
+ 0x586: 0x4a5f, 0x587: 0x4a77, 0x588: 0x48db, 0x589: 0x48e1, 0x58a: 0x49bf, 0x58b: 0x49d7,
+ 0x58c: 0x49c7, 0x58d: 0x49df, 0x58e: 0x49cf, 0x58f: 0x49e7, 0x590: 0x4947, 0x591: 0x494d,
+ 0x592: 0x3d17, 0x593: 0x3d27, 0x594: 0x3d1f, 0x595: 0x3d2f,
+ 0x598: 0x48e7, 0x599: 0x48ed, 0x59a: 0x3c47, 0x59b: 0x3c57, 0x59c: 0x3c4f, 0x59d: 0x3c5f,
+ 0x5a0: 0x495f, 0x5a1: 0x4965, 0x5a2: 0x4a7f, 0x5a3: 0x4a97,
+ 0x5a4: 0x4a87, 0x5a5: 0x4a9f, 0x5a6: 0x4a8f, 0x5a7: 0x4aa7, 0x5a8: 0x48f3, 0x5a9: 0x48f9,
+ 0x5aa: 0x49ef, 0x5ab: 0x4a07, 0x5ac: 0x49f7, 0x5ad: 0x4a0f, 0x5ae: 0x49ff, 0x5af: 0x4a17,
+ 0x5b0: 0x4977, 0x5b1: 0x497d, 0x5b2: 0x3d77, 0x5b3: 0x3d8f, 0x5b4: 0x3d7f, 0x5b5: 0x3d97,
+ 0x5b6: 0x3d87, 0x5b7: 0x3d9f, 0x5b8: 0x48ff, 0x5b9: 0x4905, 0x5ba: 0x3c77, 0x5bb: 0x3c8f,
+ 0x5bc: 0x3c7f, 0x5bd: 0x3c97, 0x5be: 0x3c87, 0x5bf: 0x3c9f,
// Block 0x17, offset 0x5c0
- 0x5c0: 0x4993, 0x5c1: 0x4999, 0x5c2: 0x3f89, 0x5c3: 0x3f99, 0x5c4: 0x3f91, 0x5c5: 0x3fa1,
- 0x5c8: 0x491b, 0x5c9: 0x4921, 0x5ca: 0x3e89, 0x5cb: 0x3e99,
- 0x5cc: 0x3e91, 0x5cd: 0x3ea1, 0x5d0: 0x49a5, 0x5d1: 0x49ab,
- 0x5d2: 0x3fc1, 0x5d3: 0x3fd9, 0x5d4: 0x3fc9, 0x5d5: 0x3fe1, 0x5d6: 0x3fd1, 0x5d7: 0x3fe9,
- 0x5d9: 0x4927, 0x5db: 0x3ea9, 0x5dd: 0x3eb1,
- 0x5df: 0x3eb9, 0x5e0: 0x49bd, 0x5e1: 0x49c3, 0x5e2: 0x4abf, 0x5e3: 0x4ad7,
- 0x5e4: 0x4ac7, 0x5e5: 0x4adf, 0x5e6: 0x4acf, 0x5e7: 0x4ae7, 0x5e8: 0x492d, 0x5e9: 0x4933,
- 0x5ea: 0x4a2f, 0x5eb: 0x4a47, 0x5ec: 0x4a37, 0x5ed: 0x4a4f, 0x5ee: 0x4a3f, 0x5ef: 0x4a57,
- 0x5f0: 0x4939, 0x5f1: 0x445f, 0x5f2: 0x37d2, 0x5f3: 0x4465, 0x5f4: 0x4963, 0x5f5: 0x446b,
- 0x5f6: 0x37e4, 0x5f7: 0x4471, 0x5f8: 0x3802, 0x5f9: 0x4477, 0x5fa: 0x381a, 0x5fb: 0x447d,
- 0x5fc: 0x49b1, 0x5fd: 0x4483,
+ 0x5c0: 0x4983, 0x5c1: 0x4989, 0x5c2: 0x3da7, 0x5c3: 0x3db7, 0x5c4: 0x3daf, 0x5c5: 0x3dbf,
+ 0x5c8: 0x490b, 0x5c9: 0x4911, 0x5ca: 0x3ca7, 0x5cb: 0x3cb7,
+ 0x5cc: 0x3caf, 0x5cd: 0x3cbf, 0x5d0: 0x4995, 0x5d1: 0x499b,
+ 0x5d2: 0x3ddf, 0x5d3: 0x3df7, 0x5d4: 0x3de7, 0x5d5: 0x3dff, 0x5d6: 0x3def, 0x5d7: 0x3e07,
+ 0x5d9: 0x4917, 0x5db: 0x3cc7, 0x5dd: 0x3ccf,
+ 0x5df: 0x3cd7, 0x5e0: 0x49ad, 0x5e1: 0x49b3, 0x5e2: 0x4aaf, 0x5e3: 0x4ac7,
+ 0x5e4: 0x4ab7, 0x5e5: 0x4acf, 0x5e6: 0x4abf, 0x5e7: 0x4ad7, 0x5e8: 0x491d, 0x5e9: 0x4923,
+ 0x5ea: 0x4a1f, 0x5eb: 0x4a37, 0x5ec: 0x4a27, 0x5ed: 0x4a3f, 0x5ee: 0x4a2f, 0x5ef: 0x4a47,
+ 0x5f0: 0x4929, 0x5f1: 0x43d7, 0x5f2: 0x35f0, 0x5f3: 0x43dd, 0x5f4: 0x4953, 0x5f5: 0x43e3,
+ 0x5f6: 0x3602, 0x5f7: 0x43e9, 0x5f8: 0x3620, 0x5f9: 0x43ef, 0x5fa: 0x3638, 0x5fb: 0x43f5,
+ 0x5fc: 0x49a1, 0x5fd: 0x43fb,
// Block 0x18, offset 0x600
- 0x600: 0x3ee1, 0x601: 0x3ee9, 0x602: 0x42c5, 0x603: 0x42e3, 0x604: 0x42cf, 0x605: 0x42ed,
- 0x606: 0x42d9, 0x607: 0x42f7, 0x608: 0x3e19, 0x609: 0x3e21, 0x60a: 0x4211, 0x60b: 0x422f,
- 0x60c: 0x421b, 0x60d: 0x4239, 0x60e: 0x4225, 0x60f: 0x4243, 0x610: 0x3f29, 0x611: 0x3f31,
- 0x612: 0x4301, 0x613: 0x431f, 0x614: 0x430b, 0x615: 0x4329, 0x616: 0x4315, 0x617: 0x4333,
- 0x618: 0x3e49, 0x619: 0x3e51, 0x61a: 0x424d, 0x61b: 0x426b, 0x61c: 0x4257, 0x61d: 0x4275,
- 0x61e: 0x4261, 0x61f: 0x427f, 0x620: 0x4001, 0x621: 0x4009, 0x622: 0x433d, 0x623: 0x435b,
- 0x624: 0x4347, 0x625: 0x4365, 0x626: 0x4351, 0x627: 0x436f, 0x628: 0x3ec1, 0x629: 0x3ec9,
- 0x62a: 0x4289, 0x62b: 0x42a7, 0x62c: 0x4293, 0x62d: 0x42b1, 0x62e: 0x429d, 0x62f: 0x42bb,
- 0x630: 0x37c6, 0x631: 0x37c0, 0x632: 0x3ed1, 0x633: 0x37cc, 0x634: 0x3ed9,
- 0x636: 0x4951, 0x637: 0x3ef1, 0x638: 0x3736, 0x639: 0x3730, 0x63a: 0x3724, 0x63b: 0x442f,
- 0x63c: 0x373c, 0x63d: 0x8100, 0x63e: 0x0257, 0x63f: 0xa100,
+ 0x600: 0x3cff, 0x601: 0x3d07, 0x602: 0x41c3, 0x603: 0x41e1, 0x604: 0x41cd, 0x605: 0x41eb,
+ 0x606: 0x41d7, 0x607: 0x41f5, 0x608: 0x3c37, 0x609: 0x3c3f, 0x60a: 0x410f, 0x60b: 0x412d,
+ 0x60c: 0x4119, 0x60d: 0x4137, 0x60e: 0x4123, 0x60f: 0x4141, 0x610: 0x3d47, 0x611: 0x3d4f,
+ 0x612: 0x41ff, 0x613: 0x421d, 0x614: 0x4209, 0x615: 0x4227, 0x616: 0x4213, 0x617: 0x4231,
+ 0x618: 0x3c67, 0x619: 0x3c6f, 0x61a: 0x414b, 0x61b: 0x4169, 0x61c: 0x4155, 0x61d: 0x4173,
+ 0x61e: 0x415f, 0x61f: 0x417d, 0x620: 0x3e1f, 0x621: 0x3e27, 0x622: 0x423b, 0x623: 0x4259,
+ 0x624: 0x4245, 0x625: 0x4263, 0x626: 0x424f, 0x627: 0x426d, 0x628: 0x3cdf, 0x629: 0x3ce7,
+ 0x62a: 0x4187, 0x62b: 0x41a5, 0x62c: 0x4191, 0x62d: 0x41af, 0x62e: 0x419b, 0x62f: 0x41b9,
+ 0x630: 0x35e4, 0x631: 0x35de, 0x632: 0x3cef, 0x633: 0x35ea, 0x634: 0x3cf7,
+ 0x636: 0x4941, 0x637: 0x3d0f, 0x638: 0x3554, 0x639: 0x354e, 0x63a: 0x3542, 0x63b: 0x43a7,
+ 0x63c: 0x355a, 0x63d: 0x8100, 0x63e: 0x0257, 0x63f: 0xa100,
// Block 0x19, offset 0x640
- 0x640: 0x8100, 0x641: 0x36e8, 0x642: 0x3f19, 0x643: 0x37de, 0x644: 0x3f21,
- 0x646: 0x497b, 0x647: 0x3f39, 0x648: 0x3742, 0x649: 0x4435, 0x64a: 0x374e, 0x64b: 0x443b,
- 0x64c: 0x375a, 0x64d: 0x3cd0, 0x64e: 0x3cd7, 0x64f: 0x3cde, 0x650: 0x37f6, 0x651: 0x37f0,
- 0x652: 0x3f41, 0x653: 0x4625, 0x656: 0x37fc, 0x657: 0x3f51,
- 0x658: 0x3772, 0x659: 0x376c, 0x65a: 0x3760, 0x65b: 0x4441, 0x65d: 0x3ce5,
- 0x65e: 0x3cec, 0x65f: 0x3cf3, 0x660: 0x382c, 0x661: 0x3826, 0x662: 0x3fa9, 0x663: 0x462d,
- 0x664: 0x380e, 0x665: 0x3814, 0x666: 0x3832, 0x667: 0x3fb9, 0x668: 0x37a2, 0x669: 0x379c,
- 0x66a: 0x3790, 0x66b: 0x444d, 0x66c: 0x378a, 0x66d: 0x36dc, 0x66e: 0x4429, 0x66f: 0x0081,
- 0x672: 0x3ff1, 0x673: 0x3838, 0x674: 0x3ff9,
- 0x676: 0x49c9, 0x677: 0x4011, 0x678: 0x377e, 0x679: 0x4447, 0x67a: 0x37ae, 0x67b: 0x4459,
- 0x67c: 0x37ba, 0x67d: 0x4397, 0x67e: 0xa100,
+ 0x640: 0x8100, 0x641: 0x3506, 0x642: 0x3d37, 0x643: 0x35fc, 0x644: 0x3d3f,
+ 0x646: 0x496b, 0x647: 0x3d57, 0x648: 0x3560, 0x649: 0x43ad, 0x64a: 0x356c, 0x64b: 0x43b3,
+ 0x64c: 0x3578, 0x64d: 0x3aee, 0x64e: 0x3af5, 0x64f: 0x3afc, 0x650: 0x3614, 0x651: 0x360e,
+ 0x652: 0x3d5f, 0x653: 0x459d, 0x656: 0x361a, 0x657: 0x3d6f,
+ 0x658: 0x3590, 0x659: 0x358a, 0x65a: 0x357e, 0x65b: 0x43b9, 0x65d: 0x3b03,
+ 0x65e: 0x3b0a, 0x65f: 0x3b11, 0x660: 0x364a, 0x661: 0x3644, 0x662: 0x3dc7, 0x663: 0x45a5,
+ 0x664: 0x362c, 0x665: 0x3632, 0x666: 0x3650, 0x667: 0x3dd7, 0x668: 0x35c0, 0x669: 0x35ba,
+ 0x66a: 0x35ae, 0x66b: 0x43c5, 0x66c: 0x35a8, 0x66d: 0x34fa, 0x66e: 0x43a1, 0x66f: 0x0081,
+ 0x672: 0x3e0f, 0x673: 0x3656, 0x674: 0x3e17,
+ 0x676: 0x49b9, 0x677: 0x3e2f, 0x678: 0x359c, 0x679: 0x43bf, 0x67a: 0x35cc, 0x67b: 0x43d1,
+ 0x67c: 0x35d8, 0x67d: 0x430f, 0x67e: 0xa100,
// Block 0x1a, offset 0x680
- 0x681: 0x3d47, 0x683: 0xa000, 0x684: 0x3d4e, 0x685: 0xa000,
- 0x687: 0x3d55, 0x688: 0xa000, 0x689: 0x3d5c,
+ 0x681: 0x3b65, 0x683: 0xa000, 0x684: 0x3b6c, 0x685: 0xa000,
+ 0x687: 0x3b73, 0x688: 0xa000, 0x689: 0x3b7a,
0x68d: 0xa000,
- 0x6a0: 0x30a6, 0x6a1: 0xa000, 0x6a2: 0x3d6a,
+ 0x6a0: 0x2ec4, 0x6a1: 0xa000, 0x6a2: 0x3b88,
0x6a4: 0xa000, 0x6a5: 0xa000,
- 0x6ad: 0x3d63, 0x6ae: 0x30a1, 0x6af: 0x30ab,
- 0x6b0: 0x3d71, 0x6b1: 0x3d78, 0x6b2: 0xa000, 0x6b3: 0xa000, 0x6b4: 0x3d7f, 0x6b5: 0x3d86,
- 0x6b6: 0xa000, 0x6b7: 0xa000, 0x6b8: 0x3d8d, 0x6b9: 0x3d94, 0x6ba: 0xa000, 0x6bb: 0xa000,
+ 0x6ad: 0x3b81, 0x6ae: 0x2ebf, 0x6af: 0x2ec9,
+ 0x6b0: 0x3b8f, 0x6b1: 0x3b96, 0x6b2: 0xa000, 0x6b3: 0xa000, 0x6b4: 0x3b9d, 0x6b5: 0x3ba4,
+ 0x6b6: 0xa000, 0x6b7: 0xa000, 0x6b8: 0x3bab, 0x6b9: 0x3bb2, 0x6ba: 0xa000, 0x6bb: 0xa000,
0x6bc: 0xa000, 0x6bd: 0xa000,
// Block 0x1b, offset 0x6c0
- 0x6c0: 0x3d9b, 0x6c1: 0x3da2, 0x6c2: 0xa000, 0x6c3: 0xa000, 0x6c4: 0x3db7, 0x6c5: 0x3dbe,
- 0x6c6: 0xa000, 0x6c7: 0xa000, 0x6c8: 0x3dc5, 0x6c9: 0x3dcc,
+ 0x6c0: 0x3bb9, 0x6c1: 0x3bc0, 0x6c2: 0xa000, 0x6c3: 0xa000, 0x6c4: 0x3bd5, 0x6c5: 0x3bdc,
+ 0x6c6: 0xa000, 0x6c7: 0xa000, 0x6c8: 0x3be3, 0x6c9: 0x3bea,
0x6d1: 0xa000,
0x6d2: 0xa000,
0x6e2: 0xa000,
0x6e8: 0xa000, 0x6e9: 0xa000,
- 0x6eb: 0xa000, 0x6ec: 0x3de1, 0x6ed: 0x3de8, 0x6ee: 0x3def, 0x6ef: 0x3df6,
+ 0x6eb: 0xa000, 0x6ec: 0x3bff, 0x6ed: 0x3c06, 0x6ee: 0x3c0d, 0x6ef: 0x3c14,
0x6f2: 0xa000, 0x6f3: 0xa000, 0x6f4: 0xa000, 0x6f5: 0xa000,
// Block 0x1c, offset 0x700
0x706: 0xa000, 0x70b: 0xa000,
- 0x70c: 0x4049, 0x70d: 0xa000, 0x70e: 0x4051, 0x70f: 0xa000, 0x710: 0x4059, 0x711: 0xa000,
- 0x712: 0x4061, 0x713: 0xa000, 0x714: 0x4069, 0x715: 0xa000, 0x716: 0x4071, 0x717: 0xa000,
- 0x718: 0x4079, 0x719: 0xa000, 0x71a: 0x4081, 0x71b: 0xa000, 0x71c: 0x4089, 0x71d: 0xa000,
- 0x71e: 0x4091, 0x71f: 0xa000, 0x720: 0x4099, 0x721: 0xa000, 0x722: 0x40a1,
- 0x724: 0xa000, 0x725: 0x40a9, 0x726: 0xa000, 0x727: 0x40b1, 0x728: 0xa000, 0x729: 0x40b9,
+ 0x70c: 0x3f47, 0x70d: 0xa000, 0x70e: 0x3f4f, 0x70f: 0xa000, 0x710: 0x3f57, 0x711: 0xa000,
+ 0x712: 0x3f5f, 0x713: 0xa000, 0x714: 0x3f67, 0x715: 0xa000, 0x716: 0x3f6f, 0x717: 0xa000,
+ 0x718: 0x3f77, 0x719: 0xa000, 0x71a: 0x3f7f, 0x71b: 0xa000, 0x71c: 0x3f87, 0x71d: 0xa000,
+ 0x71e: 0x3f8f, 0x71f: 0xa000, 0x720: 0x3f97, 0x721: 0xa000, 0x722: 0x3f9f,
+ 0x724: 0xa000, 0x725: 0x3fa7, 0x726: 0xa000, 0x727: 0x3faf, 0x728: 0xa000, 0x729: 0x3fb7,
0x72f: 0xa000,
- 0x730: 0x40c1, 0x731: 0x40c9, 0x732: 0xa000, 0x733: 0x40d1, 0x734: 0x40d9, 0x735: 0xa000,
- 0x736: 0x40e1, 0x737: 0x40e9, 0x738: 0xa000, 0x739: 0x40f1, 0x73a: 0x40f9, 0x73b: 0xa000,
- 0x73c: 0x4101, 0x73d: 0x4109,
+ 0x730: 0x3fbf, 0x731: 0x3fc7, 0x732: 0xa000, 0x733: 0x3fcf, 0x734: 0x3fd7, 0x735: 0xa000,
+ 0x736: 0x3fdf, 0x737: 0x3fe7, 0x738: 0xa000, 0x739: 0x3fef, 0x73a: 0x3ff7, 0x73b: 0xa000,
+ 0x73c: 0x3fff, 0x73d: 0x4007,
// Block 0x1d, offset 0x740
- 0x754: 0x4041,
+ 0x754: 0x3f3f,
0x759: 0x9904, 0x75a: 0x9904, 0x75b: 0x8100, 0x75c: 0x8100, 0x75d: 0xa000,
- 0x75e: 0x4111,
+ 0x75e: 0x400f,
0x766: 0xa000,
- 0x76b: 0xa000, 0x76c: 0x4121, 0x76d: 0xa000, 0x76e: 0x4129, 0x76f: 0xa000,
- 0x770: 0x4131, 0x771: 0xa000, 0x772: 0x4139, 0x773: 0xa000, 0x774: 0x4141, 0x775: 0xa000,
- 0x776: 0x4149, 0x777: 0xa000, 0x778: 0x4151, 0x779: 0xa000, 0x77a: 0x4159, 0x77b: 0xa000,
- 0x77c: 0x4161, 0x77d: 0xa000, 0x77e: 0x4169, 0x77f: 0xa000,
+ 0x76b: 0xa000, 0x76c: 0x401f, 0x76d: 0xa000, 0x76e: 0x4027, 0x76f: 0xa000,
+ 0x770: 0x402f, 0x771: 0xa000, 0x772: 0x4037, 0x773: 0xa000, 0x774: 0x403f, 0x775: 0xa000,
+ 0x776: 0x4047, 0x777: 0xa000, 0x778: 0x404f, 0x779: 0xa000, 0x77a: 0x4057, 0x77b: 0xa000,
+ 0x77c: 0x405f, 0x77d: 0xa000, 0x77e: 0x4067, 0x77f: 0xa000,
// Block 0x1e, offset 0x780
- 0x780: 0x4171, 0x781: 0xa000, 0x782: 0x4179, 0x784: 0xa000, 0x785: 0x4181,
- 0x786: 0xa000, 0x787: 0x4189, 0x788: 0xa000, 0x789: 0x4191,
- 0x78f: 0xa000, 0x790: 0x4199, 0x791: 0x41a1,
- 0x792: 0xa000, 0x793: 0x41a9, 0x794: 0x41b1, 0x795: 0xa000, 0x796: 0x41b9, 0x797: 0x41c1,
- 0x798: 0xa000, 0x799: 0x41c9, 0x79a: 0x41d1, 0x79b: 0xa000, 0x79c: 0x41d9, 0x79d: 0x41e1,
+ 0x780: 0x406f, 0x781: 0xa000, 0x782: 0x4077, 0x784: 0xa000, 0x785: 0x407f,
+ 0x786: 0xa000, 0x787: 0x4087, 0x788: 0xa000, 0x789: 0x408f,
+ 0x78f: 0xa000, 0x790: 0x4097, 0x791: 0x409f,
+ 0x792: 0xa000, 0x793: 0x40a7, 0x794: 0x40af, 0x795: 0xa000, 0x796: 0x40b7, 0x797: 0x40bf,
+ 0x798: 0xa000, 0x799: 0x40c7, 0x79a: 0x40cf, 0x79b: 0xa000, 0x79c: 0x40d7, 0x79d: 0x40df,
0x7af: 0xa000,
- 0x7b0: 0xa000, 0x7b1: 0xa000, 0x7b2: 0xa000, 0x7b4: 0x4119,
- 0x7b7: 0x41e9, 0x7b8: 0x41f1, 0x7b9: 0x41f9, 0x7ba: 0x4201,
- 0x7bd: 0xa000, 0x7be: 0x4209,
+ 0x7b0: 0xa000, 0x7b1: 0xa000, 0x7b2: 0xa000, 0x7b4: 0x4017,
+ 0x7b7: 0x40e7, 0x7b8: 0x40ef, 0x7b9: 0x40f7, 0x7ba: 0x40ff,
+ 0x7bd: 0xa000, 0x7be: 0x4107,
// Block 0x1f, offset 0x7c0
0x7c0: 0x1472, 0x7c1: 0x0df6, 0x7c2: 0x14ce, 0x7c3: 0x149a, 0x7c4: 0x0f52, 0x7c5: 0x07e6,
0x7c6: 0x09da, 0x7c7: 0x1726, 0x7c8: 0x1726, 0x7c9: 0x0b06, 0x7ca: 0x155a, 0x7cb: 0x0a3e,
@@ -3603,8 +3603,8 @@ var nfcSparseValues = [730]valueRange{
{value: 0x8100, lo: 0xb8, hi: 0xb8},
// Block 0x1, offset 0x5
{value: 0x0091, lo: 0x03},
- {value: 0x4823, lo: 0xa0, hi: 0xa1},
- {value: 0x4855, lo: 0xaf, hi: 0xb0},
+ {value: 0x4813, lo: 0xa0, hi: 0xa1},
+ {value: 0x4845, lo: 0xaf, hi: 0xb0},
{value: 0xa000, lo: 0xb7, hi: 0xb7},
// Block 0x2, offset 0x9
{value: 0x0000, lo: 0x01},
@@ -3617,30 +3617,30 @@ var nfcSparseValues = [730]valueRange{
{value: 0xa000, lo: 0x81, hi: 0x81},
{value: 0xa000, lo: 0x85, hi: 0x85},
{value: 0xa000, lo: 0x89, hi: 0x89},
- {value: 0x4981, lo: 0x8a, hi: 0x8a},
- {value: 0x499f, lo: 0x8b, hi: 0x8b},
- {value: 0x3808, lo: 0x8c, hi: 0x8c},
- {value: 0x3820, lo: 0x8d, hi: 0x8d},
- {value: 0x49b7, lo: 0x8e, hi: 0x8e},
+ {value: 0x4971, lo: 0x8a, hi: 0x8a},
+ {value: 0x498f, lo: 0x8b, hi: 0x8b},
+ {value: 0x3626, lo: 0x8c, hi: 0x8c},
+ {value: 0x363e, lo: 0x8d, hi: 0x8d},
+ {value: 0x49a7, lo: 0x8e, hi: 0x8e},
{value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0x383e, lo: 0x93, hi: 0x94},
+ {value: 0x365c, lo: 0x93, hi: 0x94},
// Block 0x5, offset 0x18
{value: 0x0000, lo: 0x0f},
{value: 0xa000, lo: 0x83, hi: 0x83},
{value: 0xa000, lo: 0x87, hi: 0x87},
{value: 0xa000, lo: 0x8b, hi: 0x8b},
{value: 0xa000, lo: 0x8d, hi: 0x8d},
- {value: 0x38e6, lo: 0x90, hi: 0x90},
- {value: 0x38f2, lo: 0x91, hi: 0x91},
- {value: 0x38e0, lo: 0x93, hi: 0x93},
+ {value: 0x3704, lo: 0x90, hi: 0x90},
+ {value: 0x3710, lo: 0x91, hi: 0x91},
+ {value: 0x36fe, lo: 0x93, hi: 0x93},
{value: 0xa000, lo: 0x96, hi: 0x96},
- {value: 0x3958, lo: 0x97, hi: 0x97},
- {value: 0x3922, lo: 0x9c, hi: 0x9c},
- {value: 0x390a, lo: 0x9d, hi: 0x9d},
- {value: 0x3934, lo: 0x9e, hi: 0x9e},
+ {value: 0x3776, lo: 0x97, hi: 0x97},
+ {value: 0x3740, lo: 0x9c, hi: 0x9c},
+ {value: 0x3728, lo: 0x9d, hi: 0x9d},
+ {value: 0x3752, lo: 0x9e, hi: 0x9e},
{value: 0xa000, lo: 0xb4, hi: 0xb5},
- {value: 0x395e, lo: 0xb6, hi: 0xb6},
- {value: 0x3964, lo: 0xb7, hi: 0xb7},
+ {value: 0x377c, lo: 0xb6, hi: 0xb6},
+ {value: 0x3782, lo: 0xb7, hi: 0xb7},
// Block 0x6, offset 0x28
{value: 0x0000, lo: 0x01},
{value: 0x8133, lo: 0x83, hi: 0x87},
@@ -3656,19 +3656,19 @@ var nfcSparseValues = [730]valueRange{
{value: 0x811a, lo: 0x98, hi: 0x98},
{value: 0x811b, lo: 0x99, hi: 0x99},
{value: 0x811c, lo: 0x9a, hi: 0x9a},
- {value: 0x3982, lo: 0xa2, hi: 0xa2},
- {value: 0x3988, lo: 0xa3, hi: 0xa3},
- {value: 0x3994, lo: 0xa4, hi: 0xa4},
- {value: 0x398e, lo: 0xa5, hi: 0xa5},
- {value: 0x399a, lo: 0xa6, hi: 0xa6},
+ {value: 0x37a0, lo: 0xa2, hi: 0xa2},
+ {value: 0x37a6, lo: 0xa3, hi: 0xa3},
+ {value: 0x37b2, lo: 0xa4, hi: 0xa4},
+ {value: 0x37ac, lo: 0xa5, hi: 0xa5},
+ {value: 0x37b8, lo: 0xa6, hi: 0xa6},
{value: 0xa000, lo: 0xa7, hi: 0xa7},
// Block 0x9, offset 0x3a
{value: 0x0000, lo: 0x0e},
- {value: 0x39ac, lo: 0x80, hi: 0x80},
+ {value: 0x37ca, lo: 0x80, hi: 0x80},
{value: 0xa000, lo: 0x81, hi: 0x81},
- {value: 0x39a0, lo: 0x82, hi: 0x82},
+ {value: 0x37be, lo: 0x82, hi: 0x82},
{value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0x39a6, lo: 0x93, hi: 0x93},
+ {value: 0x37c4, lo: 0x93, hi: 0x93},
{value: 0xa000, lo: 0x95, hi: 0x95},
{value: 0x8133, lo: 0x96, hi: 0x9c},
{value: 0x8133, lo: 0x9f, hi: 0xa2},
@@ -3724,11 +3724,11 @@ var nfcSparseValues = [730]valueRange{
// Block 0x10, offset 0x6e
{value: 0x0000, lo: 0x07},
{value: 0xa000, lo: 0xa8, hi: 0xa8},
- {value: 0x4019, lo: 0xa9, hi: 0xa9},
+ {value: 0x3e37, lo: 0xa9, hi: 0xa9},
{value: 0xa000, lo: 0xb0, hi: 0xb0},
- {value: 0x4021, lo: 0xb1, hi: 0xb1},
+ {value: 0x3e3f, lo: 0xb1, hi: 0xb1},
{value: 0xa000, lo: 0xb3, hi: 0xb3},
- {value: 0x4029, lo: 0xb4, hi: 0xb4},
+ {value: 0x3e47, lo: 0xb4, hi: 0xb4},
{value: 0x9903, lo: 0xbc, hi: 0xbc},
// Block 0x11, offset 0x76
{value: 0x0008, lo: 0x06},
@@ -3737,7 +3737,7 @@ var nfcSparseValues = [730]valueRange{
{value: 0x812e, lo: 0x92, hi: 0x92},
{value: 0x8133, lo: 0x93, hi: 0x93},
{value: 0x8133, lo: 0x94, hi: 0x94},
- {value: 0x465d, lo: 0x98, hi: 0x9f},
+ {value: 0x45d5, lo: 0x98, hi: 0x9f},
// Block 0x12, offset 0x7d
{value: 0x0000, lo: 0x02},
{value: 0x8103, lo: 0xbc, hi: 0xbc},
@@ -3745,22 +3745,22 @@ var nfcSparseValues = [730]valueRange{
// Block 0x13, offset 0x80
{value: 0x0008, lo: 0x07},
{value: 0xa000, lo: 0x87, hi: 0x87},
- {value: 0x2dd5, lo: 0x8b, hi: 0x8c},
+ {value: 0x3e4f, lo: 0x8b, hi: 0x8c},
{value: 0x8105, lo: 0x8d, hi: 0x8d},
{value: 0x9900, lo: 0x97, hi: 0x97},
- {value: 0x469d, lo: 0x9c, hi: 0x9d},
- {value: 0x46ad, lo: 0x9f, hi: 0x9f},
+ {value: 0x4615, lo: 0x9c, hi: 0x9d},
+ {value: 0x4625, lo: 0x9f, hi: 0x9f},
{value: 0x8133, lo: 0xbe, hi: 0xbe},
// Block 0x14, offset 0x88
{value: 0x0000, lo: 0x03},
- {value: 0x46d5, lo: 0xb3, hi: 0xb3},
- {value: 0x46dd, lo: 0xb6, hi: 0xb6},
+ {value: 0x464d, lo: 0xb3, hi: 0xb3},
+ {value: 0x4655, lo: 0xb6, hi: 0xb6},
{value: 0x8103, lo: 0xbc, hi: 0xbc},
// Block 0x15, offset 0x8c
{value: 0x0008, lo: 0x03},
{value: 0x8105, lo: 0x8d, hi: 0x8d},
- {value: 0x46b5, lo: 0x99, hi: 0x9b},
- {value: 0x46cd, lo: 0x9e, hi: 0x9e},
+ {value: 0x462d, lo: 0x99, hi: 0x9b},
+ {value: 0x4645, lo: 0x9e, hi: 0x9e},
// Block 0x16, offset 0x90
{value: 0x0000, lo: 0x01},
{value: 0x8103, lo: 0xbc, hi: 0xbc},
@@ -3770,30 +3770,30 @@ var nfcSparseValues = [730]valueRange{
// Block 0x18, offset 0x94
{value: 0x0000, lo: 0x08},
{value: 0xa000, lo: 0x87, hi: 0x87},
- {value: 0x2ded, lo: 0x88, hi: 0x88},
- {value: 0x2de5, lo: 0x8b, hi: 0x8b},
- {value: 0x2df5, lo: 0x8c, hi: 0x8c},
+ {value: 0x3e67, lo: 0x88, hi: 0x88},
+ {value: 0x3e5f, lo: 0x8b, hi: 0x8b},
+ {value: 0x3e6f, lo: 0x8c, hi: 0x8c},
{value: 0x8105, lo: 0x8d, hi: 0x8d},
{value: 0x9900, lo: 0x96, hi: 0x97},
- {value: 0x46e5, lo: 0x9c, hi: 0x9c},
- {value: 0x46ed, lo: 0x9d, hi: 0x9d},
+ {value: 0x465d, lo: 0x9c, hi: 0x9c},
+ {value: 0x4665, lo: 0x9d, hi: 0x9d},
// Block 0x19, offset 0x9d
{value: 0x0000, lo: 0x03},
{value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0x2dfd, lo: 0x94, hi: 0x94},
+ {value: 0x3e77, lo: 0x94, hi: 0x94},
{value: 0x9900, lo: 0xbe, hi: 0xbe},
// Block 0x1a, offset 0xa1
{value: 0x0000, lo: 0x06},
{value: 0xa000, lo: 0x86, hi: 0x87},
- {value: 0x2e05, lo: 0x8a, hi: 0x8a},
- {value: 0x2e15, lo: 0x8b, hi: 0x8b},
- {value: 0x2e0d, lo: 0x8c, hi: 0x8c},
+ {value: 0x3e7f, lo: 0x8a, hi: 0x8a},
+ {value: 0x3e8f, lo: 0x8b, hi: 0x8b},
+ {value: 0x3e87, lo: 0x8c, hi: 0x8c},
{value: 0x8105, lo: 0x8d, hi: 0x8d},
{value: 0x9900, lo: 0x97, hi: 0x97},
// Block 0x1b, offset 0xa8
{value: 0x1801, lo: 0x04},
{value: 0xa000, lo: 0x86, hi: 0x86},
- {value: 0x4031, lo: 0x88, hi: 0x88},
+ {value: 0x3e97, lo: 0x88, hi: 0x88},
{value: 0x8105, lo: 0x8d, hi: 0x8d},
{value: 0x8121, lo: 0x95, hi: 0x96},
// Block 0x1c, offset 0xad
@@ -3802,13 +3802,13 @@ var nfcSparseValues = [730]valueRange{
{value: 0xa000, lo: 0xbf, hi: 0xbf},
// Block 0x1d, offset 0xb0
{value: 0x0000, lo: 0x09},
- {value: 0x2e1d, lo: 0x80, hi: 0x80},
+ {value: 0x3e9f, lo: 0x80, hi: 0x80},
{value: 0x9900, lo: 0x82, hi: 0x82},
{value: 0xa000, lo: 0x86, hi: 0x86},
- {value: 0x2e25, lo: 0x87, hi: 0x87},
- {value: 0x2e2d, lo: 0x88, hi: 0x88},
- {value: 0x3091, lo: 0x8a, hi: 0x8a},
- {value: 0x2f19, lo: 0x8b, hi: 0x8b},
+ {value: 0x3ea7, lo: 0x87, hi: 0x87},
+ {value: 0x3eaf, lo: 0x88, hi: 0x88},
+ {value: 0x4adf, lo: 0x8a, hi: 0x8a},
+ {value: 0x42f9, lo: 0x8b, hi: 0x8b},
{value: 0x8105, lo: 0x8d, hi: 0x8d},
{value: 0x9900, lo: 0x95, hi: 0x96},
// Block 0x1e, offset 0xba
@@ -3818,20 +3818,20 @@ var nfcSparseValues = [730]valueRange{
// Block 0x1f, offset 0xbd
{value: 0x0000, lo: 0x06},
{value: 0xa000, lo: 0x86, hi: 0x87},
- {value: 0x2e35, lo: 0x8a, hi: 0x8a},
- {value: 0x2e45, lo: 0x8b, hi: 0x8b},
- {value: 0x2e3d, lo: 0x8c, hi: 0x8c},
+ {value: 0x3eb7, lo: 0x8a, hi: 0x8a},
+ {value: 0x3ec7, lo: 0x8b, hi: 0x8b},
+ {value: 0x3ebf, lo: 0x8c, hi: 0x8c},
{value: 0x8105, lo: 0x8d, hi: 0x8d},
{value: 0x9900, lo: 0x97, hi: 0x97},
// Block 0x20, offset 0xc4
- {value: 0x6ab3, lo: 0x07},
+ {value: 0x5a29, lo: 0x07},
{value: 0x9905, lo: 0x8a, hi: 0x8a},
{value: 0x9900, lo: 0x8f, hi: 0x8f},
{value: 0xa000, lo: 0x99, hi: 0x99},
- {value: 0x4039, lo: 0x9a, hi: 0x9a},
- {value: 0x3099, lo: 0x9c, hi: 0x9c},
- {value: 0x2f24, lo: 0x9d, hi: 0x9d},
- {value: 0x2e4d, lo: 0x9e, hi: 0x9f},
+ {value: 0x3ecf, lo: 0x9a, hi: 0x9a},
+ {value: 0x4ae7, lo: 0x9c, hi: 0x9c},
+ {value: 0x4304, lo: 0x9d, hi: 0x9d},
+ {value: 0x3ed7, lo: 0x9e, hi: 0x9f},
// Block 0x21, offset 0xcc
{value: 0x0000, lo: 0x02},
{value: 0x8123, lo: 0xb8, hi: 0xb9},
@@ -3865,9 +3865,9 @@ var nfcSparseValues = [730]valueRange{
{value: 0x4bc5, lo: 0xb3, hi: 0xb3},
{value: 0x8129, lo: 0xb4, hi: 0xb4},
{value: 0x4bce, lo: 0xb5, hi: 0xb5},
- {value: 0x46f5, lo: 0xb6, hi: 0xb6},
+ {value: 0x466d, lo: 0xb6, hi: 0xb6},
{value: 0x8200, lo: 0xb7, hi: 0xb7},
- {value: 0x46fd, lo: 0xb8, hi: 0xb8},
+ {value: 0x4675, lo: 0xb8, hi: 0xb8},
{value: 0x8200, lo: 0xb9, hi: 0xb9},
{value: 0x8128, lo: 0xba, hi: 0xbd},
// Block 0x27, offset 0xec
@@ -3889,7 +3889,7 @@ var nfcSparseValues = [730]valueRange{
// Block 0x29, offset 0xfa
{value: 0x0000, lo: 0x05},
{value: 0xa000, lo: 0xa5, hi: 0xa5},
- {value: 0x2e55, lo: 0xa6, hi: 0xa6},
+ {value: 0x3edf, lo: 0xa6, hi: 0xa6},
{value: 0x9900, lo: 0xae, hi: 0xae},
{value: 0x8103, lo: 0xb7, hi: 0xb7},
{value: 0x8105, lo: 0xb9, hi: 0xba},
@@ -3952,10 +3952,10 @@ var nfcSparseValues = [730]valueRange{
{value: 0x8133, lo: 0x8b, hi: 0x8e},
// Block 0x38, offset 0x12b
{value: 0x0000, lo: 0x08},
- {value: 0x2e9d, lo: 0x80, hi: 0x80},
- {value: 0x2ea5, lo: 0x81, hi: 0x81},
+ {value: 0x3f27, lo: 0x80, hi: 0x80},
+ {value: 0x3f2f, lo: 0x81, hi: 0x81},
{value: 0xa000, lo: 0x82, hi: 0x82},
- {value: 0x2ead, lo: 0x83, hi: 0x83},
+ {value: 0x3f37, lo: 0x83, hi: 0x83},
{value: 0x8105, lo: 0x84, hi: 0x84},
{value: 0x8133, lo: 0xab, hi: 0xab},
{value: 0x812e, lo: 0xac, hi: 0xac},
@@ -4003,7 +4003,7 @@ var nfcSparseValues = [730]valueRange{
{value: 0x812e, lo: 0xac, hi: 0xaf},
{value: 0x8133, lo: 0xb0, hi: 0xb0},
// Block 0x3f, offset 0x158
- {value: 0x43bc, lo: 0x02},
+ {value: 0x4334, lo: 0x02},
{value: 0x023c, lo: 0xa6, hi: 0xa6},
{value: 0x0057, lo: 0xaa, hi: 0xab},
// Block 0x40, offset 0x15b
@@ -4011,38 +4011,38 @@ var nfcSparseValues = [730]valueRange{
{value: 0xa000, lo: 0x90, hi: 0x90},
{value: 0xa000, lo: 0x92, hi: 0x92},
{value: 0xa000, lo: 0x94, hi: 0x94},
- {value: 0x3cfa, lo: 0x9a, hi: 0x9b},
- {value: 0x3d08, lo: 0xae, hi: 0xae},
+ {value: 0x3b18, lo: 0x9a, hi: 0x9b},
+ {value: 0x3b26, lo: 0xae, hi: 0xae},
// Block 0x41, offset 0x161
{value: 0x000e, lo: 0x05},
- {value: 0x3d0f, lo: 0x8d, hi: 0x8e},
- {value: 0x3d16, lo: 0x8f, hi: 0x8f},
+ {value: 0x3b2d, lo: 0x8d, hi: 0x8e},
+ {value: 0x3b34, lo: 0x8f, hi: 0x8f},
{value: 0xa000, lo: 0x90, hi: 0x90},
{value: 0xa000, lo: 0x92, hi: 0x92},
{value: 0xa000, lo: 0x94, hi: 0x94},
// Block 0x42, offset 0x167
- {value: 0x62c7, lo: 0x0a},
+ {value: 0x64a9, lo: 0x0a},
{value: 0xa000, lo: 0x83, hi: 0x83},
- {value: 0x3d24, lo: 0x84, hi: 0x84},
+ {value: 0x3b42, lo: 0x84, hi: 0x84},
{value: 0xa000, lo: 0x88, hi: 0x88},
- {value: 0x3d2b, lo: 0x89, hi: 0x89},
+ {value: 0x3b49, lo: 0x89, hi: 0x89},
{value: 0xa000, lo: 0x8b, hi: 0x8b},
- {value: 0x3d32, lo: 0x8c, hi: 0x8c},
+ {value: 0x3b50, lo: 0x8c, hi: 0x8c},
{value: 0xa000, lo: 0xa3, hi: 0xa3},
- {value: 0x3d39, lo: 0xa4, hi: 0xa5},
- {value: 0x3d40, lo: 0xa6, hi: 0xa6},
+ {value: 0x3b57, lo: 0xa4, hi: 0xa5},
+ {value: 0x3b5e, lo: 0xa6, hi: 0xa6},
{value: 0xa000, lo: 0xbc, hi: 0xbc},
// Block 0x43, offset 0x172
{value: 0x0007, lo: 0x03},
- {value: 0x3da9, lo: 0xa0, hi: 0xa1},
- {value: 0x3dd3, lo: 0xa2, hi: 0xa3},
- {value: 0x3dfd, lo: 0xaa, hi: 0xad},
+ {value: 0x3bc7, lo: 0xa0, hi: 0xa1},
+ {value: 0x3bf1, lo: 0xa2, hi: 0xa3},
+ {value: 0x3c1b, lo: 0xaa, hi: 0xad},
// Block 0x44, offset 0x176
{value: 0x0004, lo: 0x01},
{value: 0x0586, lo: 0xa9, hi: 0xaa},
// Block 0x45, offset 0x178
{value: 0x0000, lo: 0x01},
- {value: 0x461e, lo: 0x9c, hi: 0x9c},
+ {value: 0x4596, lo: 0x9c, hi: 0x9c},
// Block 0x46, offset 0x17a
{value: 0x0000, lo: 0x01},
{value: 0x8133, lo: 0xaf, hi: 0xb1},
@@ -4187,29 +4187,29 @@ var nfcSparseValues = [730]valueRange{
{value: 0xc600, lo: 0x89, hi: 0xa3},
// Block 0x63, offset 0x1eb
{value: 0x0006, lo: 0x0d},
- {value: 0x44d1, lo: 0x9d, hi: 0x9d},
+ {value: 0x4449, lo: 0x9d, hi: 0x9d},
{value: 0x8116, lo: 0x9e, hi: 0x9e},
- {value: 0x4543, lo: 0x9f, hi: 0x9f},
- {value: 0x4531, lo: 0xaa, hi: 0xab},
- {value: 0x4635, lo: 0xac, hi: 0xac},
- {value: 0x463d, lo: 0xad, hi: 0xad},
- {value: 0x4489, lo: 0xae, hi: 0xb1},
- {value: 0x44a7, lo: 0xb2, hi: 0xb4},
- {value: 0x44bf, lo: 0xb5, hi: 0xb6},
- {value: 0x44cb, lo: 0xb8, hi: 0xb8},
- {value: 0x44d7, lo: 0xb9, hi: 0xbb},
- {value: 0x44ef, lo: 0xbc, hi: 0xbc},
- {value: 0x44f5, lo: 0xbe, hi: 0xbe},
+ {value: 0x44bb, lo: 0x9f, hi: 0x9f},
+ {value: 0x44a9, lo: 0xaa, hi: 0xab},
+ {value: 0x45ad, lo: 0xac, hi: 0xac},
+ {value: 0x45b5, lo: 0xad, hi: 0xad},
+ {value: 0x4401, lo: 0xae, hi: 0xb1},
+ {value: 0x441f, lo: 0xb2, hi: 0xb4},
+ {value: 0x4437, lo: 0xb5, hi: 0xb6},
+ {value: 0x4443, lo: 0xb8, hi: 0xb8},
+ {value: 0x444f, lo: 0xb9, hi: 0xbb},
+ {value: 0x4467, lo: 0xbc, hi: 0xbc},
+ {value: 0x446d, lo: 0xbe, hi: 0xbe},
// Block 0x64, offset 0x1f9
{value: 0x0006, lo: 0x08},
- {value: 0x44fb, lo: 0x80, hi: 0x81},
- {value: 0x4507, lo: 0x83, hi: 0x84},
- {value: 0x4519, lo: 0x86, hi: 0x89},
- {value: 0x453d, lo: 0x8a, hi: 0x8a},
- {value: 0x44b9, lo: 0x8b, hi: 0x8b},
- {value: 0x44a1, lo: 0x8c, hi: 0x8c},
- {value: 0x44e9, lo: 0x8d, hi: 0x8d},
- {value: 0x4513, lo: 0x8e, hi: 0x8e},
+ {value: 0x4473, lo: 0x80, hi: 0x81},
+ {value: 0x447f, lo: 0x83, hi: 0x84},
+ {value: 0x4491, lo: 0x86, hi: 0x89},
+ {value: 0x44b5, lo: 0x8a, hi: 0x8a},
+ {value: 0x4431, lo: 0x8b, hi: 0x8b},
+ {value: 0x4419, lo: 0x8c, hi: 0x8c},
+ {value: 0x4461, lo: 0x8d, hi: 0x8d},
+ {value: 0x448b, lo: 0x8e, hi: 0x8e},
// Block 0x65, offset 0x202
{value: 0x0000, lo: 0x02},
{value: 0x8100, lo: 0xa4, hi: 0xa5},
@@ -4307,18 +4307,18 @@ var nfcSparseValues = [730]valueRange{
// Block 0x7b, offset 0x24a
{value: 0x17fe, lo: 0x07},
{value: 0xa000, lo: 0x99, hi: 0x99},
- {value: 0x4379, lo: 0x9a, hi: 0x9a},
+ {value: 0x4277, lo: 0x9a, hi: 0x9a},
{value: 0xa000, lo: 0x9b, hi: 0x9b},
- {value: 0x4383, lo: 0x9c, hi: 0x9c},
+ {value: 0x4281, lo: 0x9c, hi: 0x9c},
{value: 0xa000, lo: 0xa5, hi: 0xa5},
- {value: 0x438d, lo: 0xab, hi: 0xab},
+ {value: 0x428b, lo: 0xab, hi: 0xab},
{value: 0x8105, lo: 0xb9, hi: 0xba},
// Block 0x7c, offset 0x252
{value: 0x0000, lo: 0x06},
{value: 0x8133, lo: 0x80, hi: 0x82},
{value: 0x9900, lo: 0xa7, hi: 0xa7},
- {value: 0x2eb5, lo: 0xae, hi: 0xae},
- {value: 0x2ebf, lo: 0xaf, hi: 0xaf},
+ {value: 0x4295, lo: 0xae, hi: 0xae},
+ {value: 0x429f, lo: 0xaf, hi: 0xaf},
{value: 0xa000, lo: 0xb1, hi: 0xb2},
{value: 0x8105, lo: 0xb3, hi: 0xb4},
// Block 0x7d, offset 0x259
@@ -4339,8 +4339,8 @@ var nfcSparseValues = [730]valueRange{
// Block 0x81, offset 0x264
{value: 0x0000, lo: 0x07},
{value: 0xa000, lo: 0x87, hi: 0x87},
- {value: 0x2ec9, lo: 0x8b, hi: 0x8b},
- {value: 0x2ed3, lo: 0x8c, hi: 0x8c},
+ {value: 0x42a9, lo: 0x8b, hi: 0x8b},
+ {value: 0x42b3, lo: 0x8c, hi: 0x8c},
{value: 0x8105, lo: 0x8d, hi: 0x8d},
{value: 0x9900, lo: 0x97, hi: 0x97},
{value: 0x8133, lo: 0xa6, hi: 0xac},
@@ -4351,13 +4351,13 @@ var nfcSparseValues = [730]valueRange{
{value: 0x8103, lo: 0x86, hi: 0x86},
{value: 0x8133, lo: 0x9e, hi: 0x9e},
// Block 0x83, offset 0x270
- {value: 0x6a23, lo: 0x06},
+ {value: 0x5643, lo: 0x06},
{value: 0x9900, lo: 0xb0, hi: 0xb0},
{value: 0xa000, lo: 0xb9, hi: 0xb9},
{value: 0x9900, lo: 0xba, hi: 0xba},
- {value: 0x2ee7, lo: 0xbb, hi: 0xbb},
- {value: 0x2edd, lo: 0xbc, hi: 0xbd},
- {value: 0x2ef1, lo: 0xbe, hi: 0xbe},
+ {value: 0x42c7, lo: 0xbb, hi: 0xbb},
+ {value: 0x42bd, lo: 0xbc, hi: 0xbd},
+ {value: 0x42d1, lo: 0xbe, hi: 0xbe},
// Block 0x84, offset 0x277
{value: 0x0000, lo: 0x02},
{value: 0x8105, lo: 0x82, hi: 0x82},
@@ -4366,8 +4366,8 @@ var nfcSparseValues = [730]valueRange{
{value: 0x0000, lo: 0x05},
{value: 0x9900, lo: 0xaf, hi: 0xaf},
{value: 0xa000, lo: 0xb8, hi: 0xb9},
- {value: 0x2efb, lo: 0xba, hi: 0xba},
- {value: 0x2f05, lo: 0xbb, hi: 0xbb},
+ {value: 0x42db, lo: 0xba, hi: 0xba},
+ {value: 0x42e5, lo: 0xbb, hi: 0xbb},
{value: 0x8105, lo: 0xbf, hi: 0xbf},
// Block 0x86, offset 0x280
{value: 0x0000, lo: 0x01},
@@ -4387,7 +4387,7 @@ var nfcSparseValues = [730]valueRange{
{value: 0x0000, lo: 0x04},
{value: 0x9900, lo: 0xb0, hi: 0xb0},
{value: 0xa000, lo: 0xb5, hi: 0xb5},
- {value: 0x2f0f, lo: 0xb8, hi: 0xb8},
+ {value: 0x42ef, lo: 0xb8, hi: 0xb8},
{value: 0x8105, lo: 0xbd, hi: 0xbe},
// Block 0x8b, offset 0x28f
{value: 0x0000, lo: 0x01},
@@ -4428,13 +4428,13 @@ var nfcSparseValues = [730]valueRange{
{value: 0x8101, lo: 0x9e, hi: 0x9e},
// Block 0x97, offset 0x2a8
{value: 0x0000, lo: 0x0c},
- {value: 0x470d, lo: 0x9e, hi: 0x9e},
- {value: 0x4717, lo: 0x9f, hi: 0x9f},
- {value: 0x474b, lo: 0xa0, hi: 0xa0},
- {value: 0x4759, lo: 0xa1, hi: 0xa1},
- {value: 0x4767, lo: 0xa2, hi: 0xa2},
- {value: 0x4775, lo: 0xa3, hi: 0xa3},
- {value: 0x4783, lo: 0xa4, hi: 0xa4},
+ {value: 0x46fd, lo: 0x9e, hi: 0x9e},
+ {value: 0x4707, lo: 0x9f, hi: 0x9f},
+ {value: 0x473b, lo: 0xa0, hi: 0xa0},
+ {value: 0x4749, lo: 0xa1, hi: 0xa1},
+ {value: 0x4757, lo: 0xa2, hi: 0xa2},
+ {value: 0x4765, lo: 0xa3, hi: 0xa3},
+ {value: 0x4773, lo: 0xa4, hi: 0xa4},
{value: 0x812c, lo: 0xa5, hi: 0xa6},
{value: 0x8101, lo: 0xa7, hi: 0xa9},
{value: 0x8131, lo: 0xad, hi: 0xad},
@@ -4446,14 +4446,14 @@ var nfcSparseValues = [730]valueRange{
{value: 0x8133, lo: 0x85, hi: 0x89},
{value: 0x812e, lo: 0x8a, hi: 0x8b},
{value: 0x8133, lo: 0xaa, hi: 0xad},
- {value: 0x4721, lo: 0xbb, hi: 0xbb},
- {value: 0x472b, lo: 0xbc, hi: 0xbc},
- {value: 0x4791, lo: 0xbd, hi: 0xbd},
- {value: 0x47ad, lo: 0xbe, hi: 0xbe},
- {value: 0x479f, lo: 0xbf, hi: 0xbf},
+ {value: 0x4711, lo: 0xbb, hi: 0xbb},
+ {value: 0x471b, lo: 0xbc, hi: 0xbc},
+ {value: 0x4781, lo: 0xbd, hi: 0xbd},
+ {value: 0x479d, lo: 0xbe, hi: 0xbe},
+ {value: 0x478f, lo: 0xbf, hi: 0xbf},
// Block 0x99, offset 0x2bf
{value: 0x0000, lo: 0x01},
- {value: 0x47bb, lo: 0x80, hi: 0x80},
+ {value: 0x47ab, lo: 0x80, hi: 0x80},
// Block 0x9a, offset 0x2c1
{value: 0x0000, lo: 0x01},
{value: 0x8133, lo: 0x82, hi: 0x84},
@@ -4660,7 +4660,7 @@ func (t *nfkcTrie) lookupStringUnsafe(s string) uint16 {
return 0
}
-// nfkcTrie. Total size: 19260 bytes (18.81 KiB). Checksum: 1a0bbc4c8c24da49.
+// nfkcTrie. Total size: 19260 bytes (18.81 KiB). Checksum: 4d294206c9ae0ba8.
type nfkcTrie struct{}
func newNfkcTrie(i int) *nfkcTrie {
@@ -4696,63 +4696,63 @@ var nfkcValues = [6208]uint16{
0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000,
// Block 0x2, offset 0x80
// Block 0x3, offset 0xc0
- 0xc0: 0x30b0, 0xc1: 0x30b5, 0xc2: 0x47c9, 0xc3: 0x30ba, 0xc4: 0x47d8, 0xc5: 0x47dd,
- 0xc6: 0xa000, 0xc7: 0x47e7, 0xc8: 0x3123, 0xc9: 0x3128, 0xca: 0x47ec, 0xcb: 0x313c,
- 0xcc: 0x31af, 0xcd: 0x31b4, 0xce: 0x31b9, 0xcf: 0x4800, 0xd1: 0x3245,
- 0xd2: 0x3268, 0xd3: 0x326d, 0xd4: 0x480a, 0xd5: 0x480f, 0xd6: 0x481e,
- 0xd8: 0xa000, 0xd9: 0x32f4, 0xda: 0x32f9, 0xdb: 0x32fe, 0xdc: 0x4850, 0xdd: 0x3376,
- 0xe0: 0x33bc, 0xe1: 0x33c1, 0xe2: 0x485a, 0xe3: 0x33c6,
- 0xe4: 0x4869, 0xe5: 0x486e, 0xe6: 0xa000, 0xe7: 0x4878, 0xe8: 0x342f, 0xe9: 0x3434,
- 0xea: 0x487d, 0xeb: 0x3448, 0xec: 0x34c0, 0xed: 0x34c5, 0xee: 0x34ca, 0xef: 0x4891,
- 0xf1: 0x3556, 0xf2: 0x3579, 0xf3: 0x357e, 0xf4: 0x489b, 0xf5: 0x48a0,
- 0xf6: 0x48af, 0xf8: 0xa000, 0xf9: 0x360a, 0xfa: 0x360f, 0xfb: 0x3614,
- 0xfc: 0x48e1, 0xfd: 0x3691, 0xff: 0x36aa,
+ 0xc0: 0x2ece, 0xc1: 0x2ed3, 0xc2: 0x47b9, 0xc3: 0x2ed8, 0xc4: 0x47c8, 0xc5: 0x47cd,
+ 0xc6: 0xa000, 0xc7: 0x47d7, 0xc8: 0x2f41, 0xc9: 0x2f46, 0xca: 0x47dc, 0xcb: 0x2f5a,
+ 0xcc: 0x2fcd, 0xcd: 0x2fd2, 0xce: 0x2fd7, 0xcf: 0x47f0, 0xd1: 0x3063,
+ 0xd2: 0x3086, 0xd3: 0x308b, 0xd4: 0x47fa, 0xd5: 0x47ff, 0xd6: 0x480e,
+ 0xd8: 0xa000, 0xd9: 0x3112, 0xda: 0x3117, 0xdb: 0x311c, 0xdc: 0x4840, 0xdd: 0x3194,
+ 0xe0: 0x31da, 0xe1: 0x31df, 0xe2: 0x484a, 0xe3: 0x31e4,
+ 0xe4: 0x4859, 0xe5: 0x485e, 0xe6: 0xa000, 0xe7: 0x4868, 0xe8: 0x324d, 0xe9: 0x3252,
+ 0xea: 0x486d, 0xeb: 0x3266, 0xec: 0x32de, 0xed: 0x32e3, 0xee: 0x32e8, 0xef: 0x4881,
+ 0xf1: 0x3374, 0xf2: 0x3397, 0xf3: 0x339c, 0xf4: 0x488b, 0xf5: 0x4890,
+ 0xf6: 0x489f, 0xf8: 0xa000, 0xf9: 0x3428, 0xfa: 0x342d, 0xfb: 0x3432,
+ 0xfc: 0x48d1, 0xfd: 0x34af, 0xff: 0x34c8,
// Block 0x4, offset 0x100
- 0x100: 0x30bf, 0x101: 0x33cb, 0x102: 0x47ce, 0x103: 0x485f, 0x104: 0x30dd, 0x105: 0x33e9,
- 0x106: 0x30f1, 0x107: 0x33fd, 0x108: 0x30f6, 0x109: 0x3402, 0x10a: 0x30fb, 0x10b: 0x3407,
- 0x10c: 0x3100, 0x10d: 0x340c, 0x10e: 0x310a, 0x10f: 0x3416,
- 0x112: 0x47f1, 0x113: 0x4882, 0x114: 0x3132, 0x115: 0x343e, 0x116: 0x3137, 0x117: 0x3443,
- 0x118: 0x3155, 0x119: 0x3461, 0x11a: 0x3146, 0x11b: 0x3452, 0x11c: 0x316e, 0x11d: 0x347a,
- 0x11e: 0x3178, 0x11f: 0x3484, 0x120: 0x317d, 0x121: 0x3489, 0x122: 0x3187, 0x123: 0x3493,
- 0x124: 0x318c, 0x125: 0x3498, 0x128: 0x31be, 0x129: 0x34cf,
- 0x12a: 0x31c3, 0x12b: 0x34d4, 0x12c: 0x31c8, 0x12d: 0x34d9, 0x12e: 0x31eb, 0x12f: 0x34f7,
- 0x130: 0x31cd, 0x132: 0x1a8a, 0x133: 0x1b17, 0x134: 0x31f5, 0x135: 0x3501,
- 0x136: 0x3209, 0x137: 0x351a, 0x139: 0x3213, 0x13a: 0x3524, 0x13b: 0x321d,
- 0x13c: 0x352e, 0x13d: 0x3218, 0x13e: 0x3529, 0x13f: 0x1cdc,
+ 0x100: 0x2edd, 0x101: 0x31e9, 0x102: 0x47be, 0x103: 0x484f, 0x104: 0x2efb, 0x105: 0x3207,
+ 0x106: 0x2f0f, 0x107: 0x321b, 0x108: 0x2f14, 0x109: 0x3220, 0x10a: 0x2f19, 0x10b: 0x3225,
+ 0x10c: 0x2f1e, 0x10d: 0x322a, 0x10e: 0x2f28, 0x10f: 0x3234,
+ 0x112: 0x47e1, 0x113: 0x4872, 0x114: 0x2f50, 0x115: 0x325c, 0x116: 0x2f55, 0x117: 0x3261,
+ 0x118: 0x2f73, 0x119: 0x327f, 0x11a: 0x2f64, 0x11b: 0x3270, 0x11c: 0x2f8c, 0x11d: 0x3298,
+ 0x11e: 0x2f96, 0x11f: 0x32a2, 0x120: 0x2f9b, 0x121: 0x32a7, 0x122: 0x2fa5, 0x123: 0x32b1,
+ 0x124: 0x2faa, 0x125: 0x32b6, 0x128: 0x2fdc, 0x129: 0x32ed,
+ 0x12a: 0x2fe1, 0x12b: 0x32f2, 0x12c: 0x2fe6, 0x12d: 0x32f7, 0x12e: 0x3009, 0x12f: 0x3315,
+ 0x130: 0x2feb, 0x132: 0x1a8a, 0x133: 0x1b17, 0x134: 0x3013, 0x135: 0x331f,
+ 0x136: 0x3027, 0x137: 0x3338, 0x139: 0x3031, 0x13a: 0x3342, 0x13b: 0x303b,
+ 0x13c: 0x334c, 0x13d: 0x3036, 0x13e: 0x3347, 0x13f: 0x1cdc,
// Block 0x5, offset 0x140
- 0x140: 0x1d64, 0x143: 0x3240, 0x144: 0x3551, 0x145: 0x3259,
- 0x146: 0x356a, 0x147: 0x324f, 0x148: 0x3560, 0x149: 0x1d8c,
- 0x14c: 0x4814, 0x14d: 0x48a5, 0x14e: 0x3272, 0x14f: 0x3583, 0x150: 0x327c, 0x151: 0x358d,
- 0x154: 0x329a, 0x155: 0x35ab, 0x156: 0x32b3, 0x157: 0x35c4,
- 0x158: 0x32a4, 0x159: 0x35b5, 0x15a: 0x4837, 0x15b: 0x48c8, 0x15c: 0x32bd, 0x15d: 0x35ce,
- 0x15e: 0x32cc, 0x15f: 0x35dd, 0x160: 0x483c, 0x161: 0x48cd, 0x162: 0x32e5, 0x163: 0x35fb,
- 0x164: 0x32d6, 0x165: 0x35ec, 0x168: 0x4846, 0x169: 0x48d7,
- 0x16a: 0x484b, 0x16b: 0x48dc, 0x16c: 0x3303, 0x16d: 0x3619, 0x16e: 0x330d, 0x16f: 0x3623,
- 0x170: 0x3312, 0x171: 0x3628, 0x172: 0x3330, 0x173: 0x3646, 0x174: 0x3353, 0x175: 0x3669,
- 0x176: 0x337b, 0x177: 0x3696, 0x178: 0x338f, 0x179: 0x339e, 0x17a: 0x36be, 0x17b: 0x33a8,
- 0x17c: 0x36c8, 0x17d: 0x33ad, 0x17e: 0x36cd, 0x17f: 0x00a7,
+ 0x140: 0x1d64, 0x143: 0x305e, 0x144: 0x336f, 0x145: 0x3077,
+ 0x146: 0x3388, 0x147: 0x306d, 0x148: 0x337e, 0x149: 0x1d8c,
+ 0x14c: 0x4804, 0x14d: 0x4895, 0x14e: 0x3090, 0x14f: 0x33a1, 0x150: 0x309a, 0x151: 0x33ab,
+ 0x154: 0x30b8, 0x155: 0x33c9, 0x156: 0x30d1, 0x157: 0x33e2,
+ 0x158: 0x30c2, 0x159: 0x33d3, 0x15a: 0x4827, 0x15b: 0x48b8, 0x15c: 0x30db, 0x15d: 0x33ec,
+ 0x15e: 0x30ea, 0x15f: 0x33fb, 0x160: 0x482c, 0x161: 0x48bd, 0x162: 0x3103, 0x163: 0x3419,
+ 0x164: 0x30f4, 0x165: 0x340a, 0x168: 0x4836, 0x169: 0x48c7,
+ 0x16a: 0x483b, 0x16b: 0x48cc, 0x16c: 0x3121, 0x16d: 0x3437, 0x16e: 0x312b, 0x16f: 0x3441,
+ 0x170: 0x3130, 0x171: 0x3446, 0x172: 0x314e, 0x173: 0x3464, 0x174: 0x3171, 0x175: 0x3487,
+ 0x176: 0x3199, 0x177: 0x34b4, 0x178: 0x31ad, 0x179: 0x31bc, 0x17a: 0x34dc, 0x17b: 0x31c6,
+ 0x17c: 0x34e6, 0x17d: 0x31cb, 0x17e: 0x34eb, 0x17f: 0x00a7,
// Block 0x6, offset 0x180
- 0x184: 0x2f2f, 0x185: 0x2f35,
- 0x186: 0x2f3b, 0x187: 0x1a9f, 0x188: 0x1aa2, 0x189: 0x1b38, 0x18a: 0x1ab7, 0x18b: 0x1aba,
- 0x18c: 0x1b6e, 0x18d: 0x30c9, 0x18e: 0x33d5, 0x18f: 0x31d7, 0x190: 0x34e3, 0x191: 0x3281,
- 0x192: 0x3592, 0x193: 0x3317, 0x194: 0x362d, 0x195: 0x3b10, 0x196: 0x3c9f, 0x197: 0x3b09,
- 0x198: 0x3c98, 0x199: 0x3b17, 0x19a: 0x3ca6, 0x19b: 0x3b02, 0x19c: 0x3c91,
- 0x19e: 0x39f1, 0x19f: 0x3b80, 0x1a0: 0x39ea, 0x1a1: 0x3b79, 0x1a2: 0x36f4, 0x1a3: 0x3706,
- 0x1a6: 0x3182, 0x1a7: 0x348e, 0x1a8: 0x31ff, 0x1a9: 0x3510,
- 0x1aa: 0x482d, 0x1ab: 0x48be, 0x1ac: 0x3ad1, 0x1ad: 0x3c60, 0x1ae: 0x3718, 0x1af: 0x371e,
- 0x1b0: 0x3506, 0x1b1: 0x1a6f, 0x1b2: 0x1a72, 0x1b3: 0x1aff, 0x1b4: 0x3169, 0x1b5: 0x3475,
- 0x1b8: 0x323b, 0x1b9: 0x354c, 0x1ba: 0x39f8, 0x1bb: 0x3b87,
- 0x1bc: 0x36ee, 0x1bd: 0x3700, 0x1be: 0x36fa, 0x1bf: 0x370c,
+ 0x184: 0x2dd5, 0x185: 0x2ddb,
+ 0x186: 0x2de1, 0x187: 0x1a9f, 0x188: 0x1aa2, 0x189: 0x1b38, 0x18a: 0x1ab7, 0x18b: 0x1aba,
+ 0x18c: 0x1b6e, 0x18d: 0x2ee7, 0x18e: 0x31f3, 0x18f: 0x2ff5, 0x190: 0x3301, 0x191: 0x309f,
+ 0x192: 0x33b0, 0x193: 0x3135, 0x194: 0x344b, 0x195: 0x392e, 0x196: 0x3abd, 0x197: 0x3927,
+ 0x198: 0x3ab6, 0x199: 0x3935, 0x19a: 0x3ac4, 0x19b: 0x3920, 0x19c: 0x3aaf,
+ 0x19e: 0x380f, 0x19f: 0x399e, 0x1a0: 0x3808, 0x1a1: 0x3997, 0x1a2: 0x3512, 0x1a3: 0x3524,
+ 0x1a6: 0x2fa0, 0x1a7: 0x32ac, 0x1a8: 0x301d, 0x1a9: 0x332e,
+ 0x1aa: 0x481d, 0x1ab: 0x48ae, 0x1ac: 0x38ef, 0x1ad: 0x3a7e, 0x1ae: 0x3536, 0x1af: 0x353c,
+ 0x1b0: 0x3324, 0x1b1: 0x1a6f, 0x1b2: 0x1a72, 0x1b3: 0x1aff, 0x1b4: 0x2f87, 0x1b5: 0x3293,
+ 0x1b8: 0x3059, 0x1b9: 0x336a, 0x1ba: 0x3816, 0x1bb: 0x39a5,
+ 0x1bc: 0x350c, 0x1bd: 0x351e, 0x1be: 0x3518, 0x1bf: 0x352a,
// Block 0x7, offset 0x1c0
- 0x1c0: 0x30ce, 0x1c1: 0x33da, 0x1c2: 0x30d3, 0x1c3: 0x33df, 0x1c4: 0x314b, 0x1c5: 0x3457,
- 0x1c6: 0x3150, 0x1c7: 0x345c, 0x1c8: 0x31dc, 0x1c9: 0x34e8, 0x1ca: 0x31e1, 0x1cb: 0x34ed,
- 0x1cc: 0x3286, 0x1cd: 0x3597, 0x1ce: 0x328b, 0x1cf: 0x359c, 0x1d0: 0x32a9, 0x1d1: 0x35ba,
- 0x1d2: 0x32ae, 0x1d3: 0x35bf, 0x1d4: 0x331c, 0x1d5: 0x3632, 0x1d6: 0x3321, 0x1d7: 0x3637,
- 0x1d8: 0x32c7, 0x1d9: 0x35d8, 0x1da: 0x32e0, 0x1db: 0x35f6,
- 0x1de: 0x319b, 0x1df: 0x34a7,
- 0x1e6: 0x47d3, 0x1e7: 0x4864, 0x1e8: 0x47fb, 0x1e9: 0x488c,
- 0x1ea: 0x3aa0, 0x1eb: 0x3c2f, 0x1ec: 0x3a7d, 0x1ed: 0x3c0c, 0x1ee: 0x4819, 0x1ef: 0x48aa,
- 0x1f0: 0x3a99, 0x1f1: 0x3c28, 0x1f2: 0x3385, 0x1f3: 0x36a0,
+ 0x1c0: 0x2eec, 0x1c1: 0x31f8, 0x1c2: 0x2ef1, 0x1c3: 0x31fd, 0x1c4: 0x2f69, 0x1c5: 0x3275,
+ 0x1c6: 0x2f6e, 0x1c7: 0x327a, 0x1c8: 0x2ffa, 0x1c9: 0x3306, 0x1ca: 0x2fff, 0x1cb: 0x330b,
+ 0x1cc: 0x30a4, 0x1cd: 0x33b5, 0x1ce: 0x30a9, 0x1cf: 0x33ba, 0x1d0: 0x30c7, 0x1d1: 0x33d8,
+ 0x1d2: 0x30cc, 0x1d3: 0x33dd, 0x1d4: 0x313a, 0x1d5: 0x3450, 0x1d6: 0x313f, 0x1d7: 0x3455,
+ 0x1d8: 0x30e5, 0x1d9: 0x33f6, 0x1da: 0x30fe, 0x1db: 0x3414,
+ 0x1de: 0x2fb9, 0x1df: 0x32c5,
+ 0x1e6: 0x47c3, 0x1e7: 0x4854, 0x1e8: 0x47eb, 0x1e9: 0x487c,
+ 0x1ea: 0x38be, 0x1eb: 0x3a4d, 0x1ec: 0x389b, 0x1ed: 0x3a2a, 0x1ee: 0x4809, 0x1ef: 0x489a,
+ 0x1f0: 0x38b7, 0x1f1: 0x3a46, 0x1f2: 0x31a3, 0x1f3: 0x34be,
// Block 0x8, offset 0x200
0x200: 0x9933, 0x201: 0x9933, 0x202: 0x9933, 0x203: 0x9933, 0x204: 0x9933, 0x205: 0x8133,
0x206: 0x9933, 0x207: 0x9933, 0x208: 0x9933, 0x209: 0x9933, 0x20a: 0x9933, 0x20b: 0x9933,
@@ -4775,49 +4775,49 @@ var nfkcValues = [6208]uint16{
0x264: 0x8133, 0x265: 0x8133, 0x266: 0x8133, 0x267: 0x8133, 0x268: 0x8133, 0x269: 0x8133,
0x26a: 0x8133, 0x26b: 0x8133, 0x26c: 0x8133, 0x26d: 0x8133, 0x26e: 0x8133, 0x26f: 0x8133,
0x274: 0x01ee,
- 0x27a: 0x43e6,
+ 0x27a: 0x435e,
0x27e: 0x0037,
// Block 0xa, offset 0x280
- 0x284: 0x439b, 0x285: 0x45bc,
- 0x286: 0x372a, 0x287: 0x00ce, 0x288: 0x3748, 0x289: 0x3754, 0x28a: 0x3766,
- 0x28c: 0x3784, 0x28e: 0x3796, 0x28f: 0x37b4, 0x290: 0x3f49, 0x291: 0xa000,
+ 0x284: 0x4313, 0x285: 0x4534,
+ 0x286: 0x3548, 0x287: 0x00ce, 0x288: 0x3566, 0x289: 0x3572, 0x28a: 0x3584,
+ 0x28c: 0x35a2, 0x28e: 0x35b4, 0x28f: 0x35d2, 0x290: 0x3d67, 0x291: 0xa000,
0x295: 0xa000, 0x297: 0xa000,
0x299: 0xa000,
0x29f: 0xa000, 0x2a1: 0xa000,
0x2a5: 0xa000, 0x2a9: 0xa000,
- 0x2aa: 0x3778, 0x2ab: 0x37a8, 0x2ac: 0x493f, 0x2ad: 0x37d8, 0x2ae: 0x4969, 0x2af: 0x37ea,
- 0x2b0: 0x3fb1, 0x2b1: 0xa000, 0x2b5: 0xa000,
+ 0x2aa: 0x3596, 0x2ab: 0x35c6, 0x2ac: 0x492f, 0x2ad: 0x35f6, 0x2ae: 0x4959, 0x2af: 0x3608,
+ 0x2b0: 0x3dcf, 0x2b1: 0xa000, 0x2b5: 0xa000,
0x2b7: 0xa000, 0x2b9: 0xa000,
0x2bf: 0xa000,
// Block 0xb, offset 0x2c0
0x2c1: 0xa000, 0x2c5: 0xa000,
- 0x2c9: 0xa000, 0x2ca: 0x4981, 0x2cb: 0x499f,
- 0x2cc: 0x3808, 0x2cd: 0x3820, 0x2ce: 0x49b7, 0x2d0: 0x0242, 0x2d1: 0x0254,
- 0x2d2: 0x0230, 0x2d3: 0x444d, 0x2d4: 0x4453, 0x2d5: 0x027e, 0x2d6: 0x026c,
+ 0x2c9: 0xa000, 0x2ca: 0x4971, 0x2cb: 0x498f,
+ 0x2cc: 0x3626, 0x2cd: 0x363e, 0x2ce: 0x49a7, 0x2d0: 0x0242, 0x2d1: 0x0254,
+ 0x2d2: 0x0230, 0x2d3: 0x43c5, 0x2d4: 0x43cb, 0x2d5: 0x027e, 0x2d6: 0x026c,
0x2f0: 0x025a, 0x2f1: 0x026f, 0x2f2: 0x0272, 0x2f4: 0x020c, 0x2f5: 0x024b,
0x2f9: 0x022a,
// Block 0xc, offset 0x300
- 0x300: 0x3862, 0x301: 0x386e, 0x303: 0x385c,
- 0x306: 0xa000, 0x307: 0x384a,
- 0x30c: 0x389e, 0x30d: 0x3886, 0x30e: 0x38b0, 0x310: 0xa000,
+ 0x300: 0x3680, 0x301: 0x368c, 0x303: 0x367a,
+ 0x306: 0xa000, 0x307: 0x3668,
+ 0x30c: 0x36bc, 0x30d: 0x36a4, 0x30e: 0x36ce, 0x310: 0xa000,
0x313: 0xa000, 0x315: 0xa000, 0x316: 0xa000, 0x317: 0xa000,
- 0x318: 0xa000, 0x319: 0x3892, 0x31a: 0xa000,
+ 0x318: 0xa000, 0x319: 0x36b0, 0x31a: 0xa000,
0x31e: 0xa000, 0x323: 0xa000,
0x327: 0xa000,
0x32b: 0xa000, 0x32d: 0xa000,
0x330: 0xa000, 0x333: 0xa000, 0x335: 0xa000,
- 0x336: 0xa000, 0x337: 0xa000, 0x338: 0xa000, 0x339: 0x3916, 0x33a: 0xa000,
+ 0x336: 0xa000, 0x337: 0xa000, 0x338: 0xa000, 0x339: 0x3734, 0x33a: 0xa000,
0x33e: 0xa000,
// Block 0xd, offset 0x340
- 0x341: 0x3874, 0x342: 0x38f8,
- 0x350: 0x3850, 0x351: 0x38d4,
- 0x352: 0x3856, 0x353: 0x38da, 0x356: 0x3868, 0x357: 0x38ec,
- 0x358: 0xa000, 0x359: 0xa000, 0x35a: 0x396a, 0x35b: 0x3970, 0x35c: 0x387a, 0x35d: 0x38fe,
- 0x35e: 0x3880, 0x35f: 0x3904, 0x362: 0x388c, 0x363: 0x3910,
- 0x364: 0x3898, 0x365: 0x391c, 0x366: 0x38a4, 0x367: 0x3928, 0x368: 0xa000, 0x369: 0xa000,
- 0x36a: 0x3976, 0x36b: 0x397c, 0x36c: 0x38ce, 0x36d: 0x3952, 0x36e: 0x38aa, 0x36f: 0x392e,
- 0x370: 0x38b6, 0x371: 0x393a, 0x372: 0x38bc, 0x373: 0x3940, 0x374: 0x38c2, 0x375: 0x3946,
- 0x378: 0x38c8, 0x379: 0x394c,
+ 0x341: 0x3692, 0x342: 0x3716,
+ 0x350: 0x366e, 0x351: 0x36f2,
+ 0x352: 0x3674, 0x353: 0x36f8, 0x356: 0x3686, 0x357: 0x370a,
+ 0x358: 0xa000, 0x359: 0xa000, 0x35a: 0x3788, 0x35b: 0x378e, 0x35c: 0x3698, 0x35d: 0x371c,
+ 0x35e: 0x369e, 0x35f: 0x3722, 0x362: 0x36aa, 0x363: 0x372e,
+ 0x364: 0x36b6, 0x365: 0x373a, 0x366: 0x36c2, 0x367: 0x3746, 0x368: 0xa000, 0x369: 0xa000,
+ 0x36a: 0x3794, 0x36b: 0x379a, 0x36c: 0x36ec, 0x36d: 0x3770, 0x36e: 0x36c8, 0x36f: 0x374c,
+ 0x370: 0x36d4, 0x371: 0x3758, 0x372: 0x36da, 0x373: 0x375e, 0x374: 0x36e0, 0x375: 0x3764,
+ 0x378: 0x36e6, 0x379: 0x376a,
// Block 0xe, offset 0x380
0x387: 0x1e91,
0x391: 0x812e,
@@ -4850,12 +4850,12 @@ var nfkcValues = [6208]uint16{
0x43c: 0x8133, 0x43d: 0x8133, 0x43e: 0x8133, 0x43f: 0x8133,
// Block 0x11, offset 0x440
0x445: 0xa000,
- 0x446: 0x2e5d, 0x447: 0xa000, 0x448: 0x2e65, 0x449: 0xa000, 0x44a: 0x2e6d, 0x44b: 0xa000,
- 0x44c: 0x2e75, 0x44d: 0xa000, 0x44e: 0x2e7d, 0x451: 0xa000,
- 0x452: 0x2e85,
+ 0x446: 0x3ee7, 0x447: 0xa000, 0x448: 0x3eef, 0x449: 0xa000, 0x44a: 0x3ef7, 0x44b: 0xa000,
+ 0x44c: 0x3eff, 0x44d: 0xa000, 0x44e: 0x3f07, 0x451: 0xa000,
+ 0x452: 0x3f0f,
0x474: 0x8103, 0x475: 0x9900,
- 0x47a: 0xa000, 0x47b: 0x2e8d,
- 0x47c: 0xa000, 0x47d: 0x2e95, 0x47e: 0xa000, 0x47f: 0xa000,
+ 0x47a: 0xa000, 0x47b: 0x3f17,
+ 0x47c: 0xa000, 0x47d: 0x3f1f, 0x47e: 0xa000, 0x47f: 0xa000,
// Block 0x12, offset 0x480
0x480: 0x0069, 0x481: 0x006b, 0x482: 0x006f, 0x483: 0x0083, 0x484: 0x0104, 0x485: 0x0107,
0x486: 0x0506, 0x487: 0x0085, 0x488: 0x0089, 0x489: 0x008b, 0x48a: 0x011f, 0x48b: 0x0122,
@@ -4887,100 +4887,100 @@ var nfkcValues = [6208]uint16{
0x536: 0x8134, 0x537: 0x8132, 0x538: 0x8132, 0x539: 0x812e, 0x53a: 0x812d, 0x53b: 0x8133,
0x53c: 0x8135, 0x53d: 0x812e, 0x53e: 0x8133, 0x53f: 0x812e,
// Block 0x15, offset 0x540
- 0x540: 0x30d8, 0x541: 0x33e4, 0x542: 0x30e2, 0x543: 0x33ee, 0x544: 0x30e7, 0x545: 0x33f3,
- 0x546: 0x30ec, 0x547: 0x33f8, 0x548: 0x3a0d, 0x549: 0x3b9c, 0x54a: 0x3105, 0x54b: 0x3411,
- 0x54c: 0x310f, 0x54d: 0x341b, 0x54e: 0x311e, 0x54f: 0x342a, 0x550: 0x3114, 0x551: 0x3420,
- 0x552: 0x3119, 0x553: 0x3425, 0x554: 0x3a30, 0x555: 0x3bbf, 0x556: 0x3a37, 0x557: 0x3bc6,
- 0x558: 0x315a, 0x559: 0x3466, 0x55a: 0x315f, 0x55b: 0x346b, 0x55c: 0x3a45, 0x55d: 0x3bd4,
- 0x55e: 0x3164, 0x55f: 0x3470, 0x560: 0x3173, 0x561: 0x347f, 0x562: 0x3191, 0x563: 0x349d,
- 0x564: 0x31a0, 0x565: 0x34ac, 0x566: 0x3196, 0x567: 0x34a2, 0x568: 0x31a5, 0x569: 0x34b1,
- 0x56a: 0x31aa, 0x56b: 0x34b6, 0x56c: 0x31f0, 0x56d: 0x34fc, 0x56e: 0x3a4c, 0x56f: 0x3bdb,
- 0x570: 0x31fa, 0x571: 0x350b, 0x572: 0x3204, 0x573: 0x3515, 0x574: 0x320e, 0x575: 0x351f,
- 0x576: 0x4805, 0x577: 0x4896, 0x578: 0x3a53, 0x579: 0x3be2, 0x57a: 0x3227, 0x57b: 0x3538,
- 0x57c: 0x3222, 0x57d: 0x3533, 0x57e: 0x322c, 0x57f: 0x353d,
+ 0x540: 0x2ef6, 0x541: 0x3202, 0x542: 0x2f00, 0x543: 0x320c, 0x544: 0x2f05, 0x545: 0x3211,
+ 0x546: 0x2f0a, 0x547: 0x3216, 0x548: 0x382b, 0x549: 0x39ba, 0x54a: 0x2f23, 0x54b: 0x322f,
+ 0x54c: 0x2f2d, 0x54d: 0x3239, 0x54e: 0x2f3c, 0x54f: 0x3248, 0x550: 0x2f32, 0x551: 0x323e,
+ 0x552: 0x2f37, 0x553: 0x3243, 0x554: 0x384e, 0x555: 0x39dd, 0x556: 0x3855, 0x557: 0x39e4,
+ 0x558: 0x2f78, 0x559: 0x3284, 0x55a: 0x2f7d, 0x55b: 0x3289, 0x55c: 0x3863, 0x55d: 0x39f2,
+ 0x55e: 0x2f82, 0x55f: 0x328e, 0x560: 0x2f91, 0x561: 0x329d, 0x562: 0x2faf, 0x563: 0x32bb,
+ 0x564: 0x2fbe, 0x565: 0x32ca, 0x566: 0x2fb4, 0x567: 0x32c0, 0x568: 0x2fc3, 0x569: 0x32cf,
+ 0x56a: 0x2fc8, 0x56b: 0x32d4, 0x56c: 0x300e, 0x56d: 0x331a, 0x56e: 0x386a, 0x56f: 0x39f9,
+ 0x570: 0x3018, 0x571: 0x3329, 0x572: 0x3022, 0x573: 0x3333, 0x574: 0x302c, 0x575: 0x333d,
+ 0x576: 0x47f5, 0x577: 0x4886, 0x578: 0x3871, 0x579: 0x3a00, 0x57a: 0x3045, 0x57b: 0x3356,
+ 0x57c: 0x3040, 0x57d: 0x3351, 0x57e: 0x304a, 0x57f: 0x335b,
// Block 0x16, offset 0x580
- 0x580: 0x3231, 0x581: 0x3542, 0x582: 0x3236, 0x583: 0x3547, 0x584: 0x324a, 0x585: 0x355b,
- 0x586: 0x3254, 0x587: 0x3565, 0x588: 0x3263, 0x589: 0x3574, 0x58a: 0x325e, 0x58b: 0x356f,
- 0x58c: 0x3a76, 0x58d: 0x3c05, 0x58e: 0x3a84, 0x58f: 0x3c13, 0x590: 0x3a8b, 0x591: 0x3c1a,
- 0x592: 0x3a92, 0x593: 0x3c21, 0x594: 0x3290, 0x595: 0x35a1, 0x596: 0x3295, 0x597: 0x35a6,
- 0x598: 0x329f, 0x599: 0x35b0, 0x59a: 0x4832, 0x59b: 0x48c3, 0x59c: 0x3ad8, 0x59d: 0x3c67,
- 0x59e: 0x32b8, 0x59f: 0x35c9, 0x5a0: 0x32c2, 0x5a1: 0x35d3, 0x5a2: 0x4841, 0x5a3: 0x48d2,
- 0x5a4: 0x3adf, 0x5a5: 0x3c6e, 0x5a6: 0x3ae6, 0x5a7: 0x3c75, 0x5a8: 0x3aed, 0x5a9: 0x3c7c,
- 0x5aa: 0x32d1, 0x5ab: 0x35e2, 0x5ac: 0x32db, 0x5ad: 0x35f1, 0x5ae: 0x32ef, 0x5af: 0x3605,
- 0x5b0: 0x32ea, 0x5b1: 0x3600, 0x5b2: 0x332b, 0x5b3: 0x3641, 0x5b4: 0x333a, 0x5b5: 0x3650,
- 0x5b6: 0x3335, 0x5b7: 0x364b, 0x5b8: 0x3af4, 0x5b9: 0x3c83, 0x5ba: 0x3afb, 0x5bb: 0x3c8a,
- 0x5bc: 0x333f, 0x5bd: 0x3655, 0x5be: 0x3344, 0x5bf: 0x365a,
+ 0x580: 0x304f, 0x581: 0x3360, 0x582: 0x3054, 0x583: 0x3365, 0x584: 0x3068, 0x585: 0x3379,
+ 0x586: 0x3072, 0x587: 0x3383, 0x588: 0x3081, 0x589: 0x3392, 0x58a: 0x307c, 0x58b: 0x338d,
+ 0x58c: 0x3894, 0x58d: 0x3a23, 0x58e: 0x38a2, 0x58f: 0x3a31, 0x590: 0x38a9, 0x591: 0x3a38,
+ 0x592: 0x38b0, 0x593: 0x3a3f, 0x594: 0x30ae, 0x595: 0x33bf, 0x596: 0x30b3, 0x597: 0x33c4,
+ 0x598: 0x30bd, 0x599: 0x33ce, 0x59a: 0x4822, 0x59b: 0x48b3, 0x59c: 0x38f6, 0x59d: 0x3a85,
+ 0x59e: 0x30d6, 0x59f: 0x33e7, 0x5a0: 0x30e0, 0x5a1: 0x33f1, 0x5a2: 0x4831, 0x5a3: 0x48c2,
+ 0x5a4: 0x38fd, 0x5a5: 0x3a8c, 0x5a6: 0x3904, 0x5a7: 0x3a93, 0x5a8: 0x390b, 0x5a9: 0x3a9a,
+ 0x5aa: 0x30ef, 0x5ab: 0x3400, 0x5ac: 0x30f9, 0x5ad: 0x340f, 0x5ae: 0x310d, 0x5af: 0x3423,
+ 0x5b0: 0x3108, 0x5b1: 0x341e, 0x5b2: 0x3149, 0x5b3: 0x345f, 0x5b4: 0x3158, 0x5b5: 0x346e,
+ 0x5b6: 0x3153, 0x5b7: 0x3469, 0x5b8: 0x3912, 0x5b9: 0x3aa1, 0x5ba: 0x3919, 0x5bb: 0x3aa8,
+ 0x5bc: 0x315d, 0x5bd: 0x3473, 0x5be: 0x3162, 0x5bf: 0x3478,
// Block 0x17, offset 0x5c0
- 0x5c0: 0x3349, 0x5c1: 0x365f, 0x5c2: 0x334e, 0x5c3: 0x3664, 0x5c4: 0x335d, 0x5c5: 0x3673,
- 0x5c6: 0x3358, 0x5c7: 0x366e, 0x5c8: 0x3362, 0x5c9: 0x367d, 0x5ca: 0x3367, 0x5cb: 0x3682,
- 0x5cc: 0x336c, 0x5cd: 0x3687, 0x5ce: 0x338a, 0x5cf: 0x36a5, 0x5d0: 0x33a3, 0x5d1: 0x36c3,
- 0x5d2: 0x33b2, 0x5d3: 0x36d2, 0x5d4: 0x33b7, 0x5d5: 0x36d7, 0x5d6: 0x34bb, 0x5d7: 0x35e7,
- 0x5d8: 0x3678, 0x5d9: 0x36b4, 0x5da: 0x1d10, 0x5db: 0x4418,
- 0x5e0: 0x47e2, 0x5e1: 0x4873, 0x5e2: 0x30c4, 0x5e3: 0x33d0,
- 0x5e4: 0x39b9, 0x5e5: 0x3b48, 0x5e6: 0x39b2, 0x5e7: 0x3b41, 0x5e8: 0x39c7, 0x5e9: 0x3b56,
- 0x5ea: 0x39c0, 0x5eb: 0x3b4f, 0x5ec: 0x39ff, 0x5ed: 0x3b8e, 0x5ee: 0x39d5, 0x5ef: 0x3b64,
- 0x5f0: 0x39ce, 0x5f1: 0x3b5d, 0x5f2: 0x39e3, 0x5f3: 0x3b72, 0x5f4: 0x39dc, 0x5f5: 0x3b6b,
- 0x5f6: 0x3a06, 0x5f7: 0x3b95, 0x5f8: 0x47f6, 0x5f9: 0x4887, 0x5fa: 0x3141, 0x5fb: 0x344d,
- 0x5fc: 0x312d, 0x5fd: 0x3439, 0x5fe: 0x3a1b, 0x5ff: 0x3baa,
+ 0x5c0: 0x3167, 0x5c1: 0x347d, 0x5c2: 0x316c, 0x5c3: 0x3482, 0x5c4: 0x317b, 0x5c5: 0x3491,
+ 0x5c6: 0x3176, 0x5c7: 0x348c, 0x5c8: 0x3180, 0x5c9: 0x349b, 0x5ca: 0x3185, 0x5cb: 0x34a0,
+ 0x5cc: 0x318a, 0x5cd: 0x34a5, 0x5ce: 0x31a8, 0x5cf: 0x34c3, 0x5d0: 0x31c1, 0x5d1: 0x34e1,
+ 0x5d2: 0x31d0, 0x5d3: 0x34f0, 0x5d4: 0x31d5, 0x5d5: 0x34f5, 0x5d6: 0x32d9, 0x5d7: 0x3405,
+ 0x5d8: 0x3496, 0x5d9: 0x34d2, 0x5da: 0x1d10, 0x5db: 0x4390,
+ 0x5e0: 0x47d2, 0x5e1: 0x4863, 0x5e2: 0x2ee2, 0x5e3: 0x31ee,
+ 0x5e4: 0x37d7, 0x5e5: 0x3966, 0x5e6: 0x37d0, 0x5e7: 0x395f, 0x5e8: 0x37e5, 0x5e9: 0x3974,
+ 0x5ea: 0x37de, 0x5eb: 0x396d, 0x5ec: 0x381d, 0x5ed: 0x39ac, 0x5ee: 0x37f3, 0x5ef: 0x3982,
+ 0x5f0: 0x37ec, 0x5f1: 0x397b, 0x5f2: 0x3801, 0x5f3: 0x3990, 0x5f4: 0x37fa, 0x5f5: 0x3989,
+ 0x5f6: 0x3824, 0x5f7: 0x39b3, 0x5f8: 0x47e6, 0x5f9: 0x4877, 0x5fa: 0x2f5f, 0x5fb: 0x326b,
+ 0x5fc: 0x2f4b, 0x5fd: 0x3257, 0x5fe: 0x3839, 0x5ff: 0x39c8,
// Block 0x18, offset 0x600
- 0x600: 0x3a14, 0x601: 0x3ba3, 0x602: 0x3a29, 0x603: 0x3bb8, 0x604: 0x3a22, 0x605: 0x3bb1,
- 0x606: 0x3a3e, 0x607: 0x3bcd, 0x608: 0x31d2, 0x609: 0x34de, 0x60a: 0x31e6, 0x60b: 0x34f2,
- 0x60c: 0x4828, 0x60d: 0x48b9, 0x60e: 0x3277, 0x60f: 0x3588, 0x610: 0x3a61, 0x611: 0x3bf0,
- 0x612: 0x3a5a, 0x613: 0x3be9, 0x614: 0x3a6f, 0x615: 0x3bfe, 0x616: 0x3a68, 0x617: 0x3bf7,
- 0x618: 0x3aca, 0x619: 0x3c59, 0x61a: 0x3aae, 0x61b: 0x3c3d, 0x61c: 0x3aa7, 0x61d: 0x3c36,
- 0x61e: 0x3abc, 0x61f: 0x3c4b, 0x620: 0x3ab5, 0x621: 0x3c44, 0x622: 0x3ac3, 0x623: 0x3c52,
- 0x624: 0x3326, 0x625: 0x363c, 0x626: 0x3308, 0x627: 0x361e, 0x628: 0x3b25, 0x629: 0x3cb4,
- 0x62a: 0x3b1e, 0x62b: 0x3cad, 0x62c: 0x3b33, 0x62d: 0x3cc2, 0x62e: 0x3b2c, 0x62f: 0x3cbb,
- 0x630: 0x3b3a, 0x631: 0x3cc9, 0x632: 0x3371, 0x633: 0x368c, 0x634: 0x3399, 0x635: 0x36b9,
- 0x636: 0x3394, 0x637: 0x36af, 0x638: 0x3380, 0x639: 0x369b,
+ 0x600: 0x3832, 0x601: 0x39c1, 0x602: 0x3847, 0x603: 0x39d6, 0x604: 0x3840, 0x605: 0x39cf,
+ 0x606: 0x385c, 0x607: 0x39eb, 0x608: 0x2ff0, 0x609: 0x32fc, 0x60a: 0x3004, 0x60b: 0x3310,
+ 0x60c: 0x4818, 0x60d: 0x48a9, 0x60e: 0x3095, 0x60f: 0x33a6, 0x610: 0x387f, 0x611: 0x3a0e,
+ 0x612: 0x3878, 0x613: 0x3a07, 0x614: 0x388d, 0x615: 0x3a1c, 0x616: 0x3886, 0x617: 0x3a15,
+ 0x618: 0x38e8, 0x619: 0x3a77, 0x61a: 0x38cc, 0x61b: 0x3a5b, 0x61c: 0x38c5, 0x61d: 0x3a54,
+ 0x61e: 0x38da, 0x61f: 0x3a69, 0x620: 0x38d3, 0x621: 0x3a62, 0x622: 0x38e1, 0x623: 0x3a70,
+ 0x624: 0x3144, 0x625: 0x345a, 0x626: 0x3126, 0x627: 0x343c, 0x628: 0x3943, 0x629: 0x3ad2,
+ 0x62a: 0x393c, 0x62b: 0x3acb, 0x62c: 0x3951, 0x62d: 0x3ae0, 0x62e: 0x394a, 0x62f: 0x3ad9,
+ 0x630: 0x3958, 0x631: 0x3ae7, 0x632: 0x318f, 0x633: 0x34aa, 0x634: 0x31b7, 0x635: 0x34d7,
+ 0x636: 0x31b2, 0x637: 0x34cd, 0x638: 0x319e, 0x639: 0x34b9,
// Block 0x19, offset 0x640
- 0x640: 0x4945, 0x641: 0x494b, 0x642: 0x4a5f, 0x643: 0x4a77, 0x644: 0x4a67, 0x645: 0x4a7f,
- 0x646: 0x4a6f, 0x647: 0x4a87, 0x648: 0x48eb, 0x649: 0x48f1, 0x64a: 0x49cf, 0x64b: 0x49e7,
- 0x64c: 0x49d7, 0x64d: 0x49ef, 0x64e: 0x49df, 0x64f: 0x49f7, 0x650: 0x4957, 0x651: 0x495d,
- 0x652: 0x3ef9, 0x653: 0x3f09, 0x654: 0x3f01, 0x655: 0x3f11,
- 0x658: 0x48f7, 0x659: 0x48fd, 0x65a: 0x3e29, 0x65b: 0x3e39, 0x65c: 0x3e31, 0x65d: 0x3e41,
- 0x660: 0x496f, 0x661: 0x4975, 0x662: 0x4a8f, 0x663: 0x4aa7,
- 0x664: 0x4a97, 0x665: 0x4aaf, 0x666: 0x4a9f, 0x667: 0x4ab7, 0x668: 0x4903, 0x669: 0x4909,
- 0x66a: 0x49ff, 0x66b: 0x4a17, 0x66c: 0x4a07, 0x66d: 0x4a1f, 0x66e: 0x4a0f, 0x66f: 0x4a27,
- 0x670: 0x4987, 0x671: 0x498d, 0x672: 0x3f59, 0x673: 0x3f71, 0x674: 0x3f61, 0x675: 0x3f79,
- 0x676: 0x3f69, 0x677: 0x3f81, 0x678: 0x490f, 0x679: 0x4915, 0x67a: 0x3e59, 0x67b: 0x3e71,
- 0x67c: 0x3e61, 0x67d: 0x3e79, 0x67e: 0x3e69, 0x67f: 0x3e81,
+ 0x640: 0x4935, 0x641: 0x493b, 0x642: 0x4a4f, 0x643: 0x4a67, 0x644: 0x4a57, 0x645: 0x4a6f,
+ 0x646: 0x4a5f, 0x647: 0x4a77, 0x648: 0x48db, 0x649: 0x48e1, 0x64a: 0x49bf, 0x64b: 0x49d7,
+ 0x64c: 0x49c7, 0x64d: 0x49df, 0x64e: 0x49cf, 0x64f: 0x49e7, 0x650: 0x4947, 0x651: 0x494d,
+ 0x652: 0x3d17, 0x653: 0x3d27, 0x654: 0x3d1f, 0x655: 0x3d2f,
+ 0x658: 0x48e7, 0x659: 0x48ed, 0x65a: 0x3c47, 0x65b: 0x3c57, 0x65c: 0x3c4f, 0x65d: 0x3c5f,
+ 0x660: 0x495f, 0x661: 0x4965, 0x662: 0x4a7f, 0x663: 0x4a97,
+ 0x664: 0x4a87, 0x665: 0x4a9f, 0x666: 0x4a8f, 0x667: 0x4aa7, 0x668: 0x48f3, 0x669: 0x48f9,
+ 0x66a: 0x49ef, 0x66b: 0x4a07, 0x66c: 0x49f7, 0x66d: 0x4a0f, 0x66e: 0x49ff, 0x66f: 0x4a17,
+ 0x670: 0x4977, 0x671: 0x497d, 0x672: 0x3d77, 0x673: 0x3d8f, 0x674: 0x3d7f, 0x675: 0x3d97,
+ 0x676: 0x3d87, 0x677: 0x3d9f, 0x678: 0x48ff, 0x679: 0x4905, 0x67a: 0x3c77, 0x67b: 0x3c8f,
+ 0x67c: 0x3c7f, 0x67d: 0x3c97, 0x67e: 0x3c87, 0x67f: 0x3c9f,
// Block 0x1a, offset 0x680
- 0x680: 0x4993, 0x681: 0x4999, 0x682: 0x3f89, 0x683: 0x3f99, 0x684: 0x3f91, 0x685: 0x3fa1,
- 0x688: 0x491b, 0x689: 0x4921, 0x68a: 0x3e89, 0x68b: 0x3e99,
- 0x68c: 0x3e91, 0x68d: 0x3ea1, 0x690: 0x49a5, 0x691: 0x49ab,
- 0x692: 0x3fc1, 0x693: 0x3fd9, 0x694: 0x3fc9, 0x695: 0x3fe1, 0x696: 0x3fd1, 0x697: 0x3fe9,
- 0x699: 0x4927, 0x69b: 0x3ea9, 0x69d: 0x3eb1,
- 0x69f: 0x3eb9, 0x6a0: 0x49bd, 0x6a1: 0x49c3, 0x6a2: 0x4abf, 0x6a3: 0x4ad7,
- 0x6a4: 0x4ac7, 0x6a5: 0x4adf, 0x6a6: 0x4acf, 0x6a7: 0x4ae7, 0x6a8: 0x492d, 0x6a9: 0x4933,
- 0x6aa: 0x4a2f, 0x6ab: 0x4a47, 0x6ac: 0x4a37, 0x6ad: 0x4a4f, 0x6ae: 0x4a3f, 0x6af: 0x4a57,
- 0x6b0: 0x4939, 0x6b1: 0x445f, 0x6b2: 0x37d2, 0x6b3: 0x4465, 0x6b4: 0x4963, 0x6b5: 0x446b,
- 0x6b6: 0x37e4, 0x6b7: 0x4471, 0x6b8: 0x3802, 0x6b9: 0x4477, 0x6ba: 0x381a, 0x6bb: 0x447d,
- 0x6bc: 0x49b1, 0x6bd: 0x4483,
+ 0x680: 0x4983, 0x681: 0x4989, 0x682: 0x3da7, 0x683: 0x3db7, 0x684: 0x3daf, 0x685: 0x3dbf,
+ 0x688: 0x490b, 0x689: 0x4911, 0x68a: 0x3ca7, 0x68b: 0x3cb7,
+ 0x68c: 0x3caf, 0x68d: 0x3cbf, 0x690: 0x4995, 0x691: 0x499b,
+ 0x692: 0x3ddf, 0x693: 0x3df7, 0x694: 0x3de7, 0x695: 0x3dff, 0x696: 0x3def, 0x697: 0x3e07,
+ 0x699: 0x4917, 0x69b: 0x3cc7, 0x69d: 0x3ccf,
+ 0x69f: 0x3cd7, 0x6a0: 0x49ad, 0x6a1: 0x49b3, 0x6a2: 0x4aaf, 0x6a3: 0x4ac7,
+ 0x6a4: 0x4ab7, 0x6a5: 0x4acf, 0x6a6: 0x4abf, 0x6a7: 0x4ad7, 0x6a8: 0x491d, 0x6a9: 0x4923,
+ 0x6aa: 0x4a1f, 0x6ab: 0x4a37, 0x6ac: 0x4a27, 0x6ad: 0x4a3f, 0x6ae: 0x4a2f, 0x6af: 0x4a47,
+ 0x6b0: 0x4929, 0x6b1: 0x43d7, 0x6b2: 0x35f0, 0x6b3: 0x43dd, 0x6b4: 0x4953, 0x6b5: 0x43e3,
+ 0x6b6: 0x3602, 0x6b7: 0x43e9, 0x6b8: 0x3620, 0x6b9: 0x43ef, 0x6ba: 0x3638, 0x6bb: 0x43f5,
+ 0x6bc: 0x49a1, 0x6bd: 0x43fb,
// Block 0x1b, offset 0x6c0
- 0x6c0: 0x3ee1, 0x6c1: 0x3ee9, 0x6c2: 0x42c5, 0x6c3: 0x42e3, 0x6c4: 0x42cf, 0x6c5: 0x42ed,
- 0x6c6: 0x42d9, 0x6c7: 0x42f7, 0x6c8: 0x3e19, 0x6c9: 0x3e21, 0x6ca: 0x4211, 0x6cb: 0x422f,
- 0x6cc: 0x421b, 0x6cd: 0x4239, 0x6ce: 0x4225, 0x6cf: 0x4243, 0x6d0: 0x3f29, 0x6d1: 0x3f31,
- 0x6d2: 0x4301, 0x6d3: 0x431f, 0x6d4: 0x430b, 0x6d5: 0x4329, 0x6d6: 0x4315, 0x6d7: 0x4333,
- 0x6d8: 0x3e49, 0x6d9: 0x3e51, 0x6da: 0x424d, 0x6db: 0x426b, 0x6dc: 0x4257, 0x6dd: 0x4275,
- 0x6de: 0x4261, 0x6df: 0x427f, 0x6e0: 0x4001, 0x6e1: 0x4009, 0x6e2: 0x433d, 0x6e3: 0x435b,
- 0x6e4: 0x4347, 0x6e5: 0x4365, 0x6e6: 0x4351, 0x6e7: 0x436f, 0x6e8: 0x3ec1, 0x6e9: 0x3ec9,
- 0x6ea: 0x4289, 0x6eb: 0x42a7, 0x6ec: 0x4293, 0x6ed: 0x42b1, 0x6ee: 0x429d, 0x6ef: 0x42bb,
- 0x6f0: 0x37c6, 0x6f1: 0x37c0, 0x6f2: 0x3ed1, 0x6f3: 0x37cc, 0x6f4: 0x3ed9,
- 0x6f6: 0x4951, 0x6f7: 0x3ef1, 0x6f8: 0x3736, 0x6f9: 0x3730, 0x6fa: 0x3724, 0x6fb: 0x442f,
- 0x6fc: 0x373c, 0x6fd: 0x43c8, 0x6fe: 0x0257, 0x6ff: 0x43c8,
+ 0x6c0: 0x3cff, 0x6c1: 0x3d07, 0x6c2: 0x41c3, 0x6c3: 0x41e1, 0x6c4: 0x41cd, 0x6c5: 0x41eb,
+ 0x6c6: 0x41d7, 0x6c7: 0x41f5, 0x6c8: 0x3c37, 0x6c9: 0x3c3f, 0x6ca: 0x410f, 0x6cb: 0x412d,
+ 0x6cc: 0x4119, 0x6cd: 0x4137, 0x6ce: 0x4123, 0x6cf: 0x4141, 0x6d0: 0x3d47, 0x6d1: 0x3d4f,
+ 0x6d2: 0x41ff, 0x6d3: 0x421d, 0x6d4: 0x4209, 0x6d5: 0x4227, 0x6d6: 0x4213, 0x6d7: 0x4231,
+ 0x6d8: 0x3c67, 0x6d9: 0x3c6f, 0x6da: 0x414b, 0x6db: 0x4169, 0x6dc: 0x4155, 0x6dd: 0x4173,
+ 0x6de: 0x415f, 0x6df: 0x417d, 0x6e0: 0x3e1f, 0x6e1: 0x3e27, 0x6e2: 0x423b, 0x6e3: 0x4259,
+ 0x6e4: 0x4245, 0x6e5: 0x4263, 0x6e6: 0x424f, 0x6e7: 0x426d, 0x6e8: 0x3cdf, 0x6e9: 0x3ce7,
+ 0x6ea: 0x4187, 0x6eb: 0x41a5, 0x6ec: 0x4191, 0x6ed: 0x41af, 0x6ee: 0x419b, 0x6ef: 0x41b9,
+ 0x6f0: 0x35e4, 0x6f1: 0x35de, 0x6f2: 0x3cef, 0x6f3: 0x35ea, 0x6f4: 0x3cf7,
+ 0x6f6: 0x4941, 0x6f7: 0x3d0f, 0x6f8: 0x3554, 0x6f9: 0x354e, 0x6fa: 0x3542, 0x6fb: 0x43a7,
+ 0x6fc: 0x355a, 0x6fd: 0x4340, 0x6fe: 0x0257, 0x6ff: 0x4340,
// Block 0x1c, offset 0x700
- 0x700: 0x43e1, 0x701: 0x45c3, 0x702: 0x3f19, 0x703: 0x37de, 0x704: 0x3f21,
- 0x706: 0x497b, 0x707: 0x3f39, 0x708: 0x3742, 0x709: 0x4435, 0x70a: 0x374e, 0x70b: 0x443b,
- 0x70c: 0x375a, 0x70d: 0x45ca, 0x70e: 0x45d1, 0x70f: 0x45d8, 0x710: 0x37f6, 0x711: 0x37f0,
- 0x712: 0x3f41, 0x713: 0x4625, 0x716: 0x37fc, 0x717: 0x3f51,
- 0x718: 0x3772, 0x719: 0x376c, 0x71a: 0x3760, 0x71b: 0x4441, 0x71d: 0x45df,
- 0x71e: 0x45e6, 0x71f: 0x45ed, 0x720: 0x382c, 0x721: 0x3826, 0x722: 0x3fa9, 0x723: 0x462d,
- 0x724: 0x380e, 0x725: 0x3814, 0x726: 0x3832, 0x727: 0x3fb9, 0x728: 0x37a2, 0x729: 0x379c,
- 0x72a: 0x3790, 0x72b: 0x444d, 0x72c: 0x378a, 0x72d: 0x45b5, 0x72e: 0x45bc, 0x72f: 0x0081,
- 0x732: 0x3ff1, 0x733: 0x3838, 0x734: 0x3ff9,
- 0x736: 0x49c9, 0x737: 0x4011, 0x738: 0x377e, 0x739: 0x4447, 0x73a: 0x37ae, 0x73b: 0x4459,
- 0x73c: 0x37ba, 0x73d: 0x439b, 0x73e: 0x43cd,
+ 0x700: 0x4359, 0x701: 0x453b, 0x702: 0x3d37, 0x703: 0x35fc, 0x704: 0x3d3f,
+ 0x706: 0x496b, 0x707: 0x3d57, 0x708: 0x3560, 0x709: 0x43ad, 0x70a: 0x356c, 0x70b: 0x43b3,
+ 0x70c: 0x3578, 0x70d: 0x4542, 0x70e: 0x4549, 0x70f: 0x4550, 0x710: 0x3614, 0x711: 0x360e,
+ 0x712: 0x3d5f, 0x713: 0x459d, 0x716: 0x361a, 0x717: 0x3d6f,
+ 0x718: 0x3590, 0x719: 0x358a, 0x71a: 0x357e, 0x71b: 0x43b9, 0x71d: 0x4557,
+ 0x71e: 0x455e, 0x71f: 0x4565, 0x720: 0x364a, 0x721: 0x3644, 0x722: 0x3dc7, 0x723: 0x45a5,
+ 0x724: 0x362c, 0x725: 0x3632, 0x726: 0x3650, 0x727: 0x3dd7, 0x728: 0x35c0, 0x729: 0x35ba,
+ 0x72a: 0x35ae, 0x72b: 0x43c5, 0x72c: 0x35a8, 0x72d: 0x452d, 0x72e: 0x4534, 0x72f: 0x0081,
+ 0x732: 0x3e0f, 0x733: 0x3656, 0x734: 0x3e17,
+ 0x736: 0x49b9, 0x737: 0x3e2f, 0x738: 0x359c, 0x739: 0x43bf, 0x73a: 0x35cc, 0x73b: 0x43d1,
+ 0x73c: 0x35d8, 0x73d: 0x4313, 0x73e: 0x4345,
// Block 0x1d, offset 0x740
0x740: 0x1d08, 0x741: 0x1d0c, 0x742: 0x0047, 0x743: 0x1d84, 0x745: 0x1d18,
0x746: 0x1d1c, 0x747: 0x00ef, 0x749: 0x1d88, 0x74a: 0x008f, 0x74b: 0x0051,
@@ -4989,7 +4989,7 @@ var nfkcValues = [6208]uint16{
0x759: 0x0061, 0x75a: 0x0063, 0x75b: 0x0065, 0x75c: 0x0065, 0x75d: 0x0065,
0x760: 0x1acf, 0x761: 0x1cf8, 0x762: 0x1ad8,
0x764: 0x0075, 0x766: 0x023c, 0x768: 0x0075,
- 0x76a: 0x0057, 0x76b: 0x4413, 0x76c: 0x0045, 0x76d: 0x0047, 0x76f: 0x008b,
+ 0x76a: 0x0057, 0x76b: 0x438b, 0x76c: 0x0045, 0x76d: 0x0047, 0x76f: 0x008b,
0x770: 0x004b, 0x771: 0x004d, 0x773: 0x005b, 0x774: 0x009f, 0x775: 0x0308,
0x776: 0x030b, 0x777: 0x030e, 0x778: 0x0311, 0x779: 0x0093, 0x77b: 0x1cc8,
0x77c: 0x026c, 0x77d: 0x0245, 0x77e: 0x01fd, 0x77f: 0x0224,
@@ -5006,23 +5006,23 @@ var nfkcValues = [6208]uint16{
0x7b6: 0x1d7c, 0x7b7: 0x1e8c, 0x7b8: 0x1b20, 0x7b9: 0x00b1, 0x7ba: 0x1b95, 0x7bb: 0x1d80,
0x7bc: 0x0099, 0x7bd: 0x0087, 0x7be: 0x0089, 0x7bf: 0x009b,
// Block 0x1f, offset 0x7c0
- 0x7c1: 0x3d47, 0x7c3: 0xa000, 0x7c4: 0x3d4e, 0x7c5: 0xa000,
- 0x7c7: 0x3d55, 0x7c8: 0xa000, 0x7c9: 0x3d5c,
+ 0x7c1: 0x3b65, 0x7c3: 0xa000, 0x7c4: 0x3b6c, 0x7c5: 0xa000,
+ 0x7c7: 0x3b73, 0x7c8: 0xa000, 0x7c9: 0x3b7a,
0x7cd: 0xa000,
- 0x7e0: 0x30a6, 0x7e1: 0xa000, 0x7e2: 0x3d6a,
+ 0x7e0: 0x2ec4, 0x7e1: 0xa000, 0x7e2: 0x3b88,
0x7e4: 0xa000, 0x7e5: 0xa000,
- 0x7ed: 0x3d63, 0x7ee: 0x30a1, 0x7ef: 0x30ab,
- 0x7f0: 0x3d71, 0x7f1: 0x3d78, 0x7f2: 0xa000, 0x7f3: 0xa000, 0x7f4: 0x3d7f, 0x7f5: 0x3d86,
- 0x7f6: 0xa000, 0x7f7: 0xa000, 0x7f8: 0x3d8d, 0x7f9: 0x3d94, 0x7fa: 0xa000, 0x7fb: 0xa000,
+ 0x7ed: 0x3b81, 0x7ee: 0x2ebf, 0x7ef: 0x2ec9,
+ 0x7f0: 0x3b8f, 0x7f1: 0x3b96, 0x7f2: 0xa000, 0x7f3: 0xa000, 0x7f4: 0x3b9d, 0x7f5: 0x3ba4,
+ 0x7f6: 0xa000, 0x7f7: 0xa000, 0x7f8: 0x3bab, 0x7f9: 0x3bb2, 0x7fa: 0xa000, 0x7fb: 0xa000,
0x7fc: 0xa000, 0x7fd: 0xa000,
// Block 0x20, offset 0x800
- 0x800: 0x3d9b, 0x801: 0x3da2, 0x802: 0xa000, 0x803: 0xa000, 0x804: 0x3db7, 0x805: 0x3dbe,
- 0x806: 0xa000, 0x807: 0xa000, 0x808: 0x3dc5, 0x809: 0x3dcc,
+ 0x800: 0x3bb9, 0x801: 0x3bc0, 0x802: 0xa000, 0x803: 0xa000, 0x804: 0x3bd5, 0x805: 0x3bdc,
+ 0x806: 0xa000, 0x807: 0xa000, 0x808: 0x3be3, 0x809: 0x3bea,
0x811: 0xa000,
0x812: 0xa000,
0x822: 0xa000,
0x828: 0xa000, 0x829: 0xa000,
- 0x82b: 0xa000, 0x82c: 0x3de1, 0x82d: 0x3de8, 0x82e: 0x3def, 0x82f: 0x3df6,
+ 0x82b: 0xa000, 0x82c: 0x3bff, 0x82d: 0x3c06, 0x82e: 0x3c0d, 0x82f: 0x3c14,
0x832: 0xa000, 0x833: 0xa000, 0x834: 0xa000, 0x835: 0xa000,
// Block 0x21, offset 0x840
0x860: 0x0023, 0x861: 0x0025, 0x862: 0x0027, 0x863: 0x0029,
@@ -5081,34 +5081,34 @@ var nfkcValues = [6208]uint16{
0x97c: 0x167e, 0x97d: 0x1682, 0x97e: 0x168a, 0x97f: 0x168e,
// Block 0x26, offset 0x980
0x986: 0xa000, 0x98b: 0xa000,
- 0x98c: 0x4049, 0x98d: 0xa000, 0x98e: 0x4051, 0x98f: 0xa000, 0x990: 0x4059, 0x991: 0xa000,
- 0x992: 0x4061, 0x993: 0xa000, 0x994: 0x4069, 0x995: 0xa000, 0x996: 0x4071, 0x997: 0xa000,
- 0x998: 0x4079, 0x999: 0xa000, 0x99a: 0x4081, 0x99b: 0xa000, 0x99c: 0x4089, 0x99d: 0xa000,
- 0x99e: 0x4091, 0x99f: 0xa000, 0x9a0: 0x4099, 0x9a1: 0xa000, 0x9a2: 0x40a1,
- 0x9a4: 0xa000, 0x9a5: 0x40a9, 0x9a6: 0xa000, 0x9a7: 0x40b1, 0x9a8: 0xa000, 0x9a9: 0x40b9,
+ 0x98c: 0x3f47, 0x98d: 0xa000, 0x98e: 0x3f4f, 0x98f: 0xa000, 0x990: 0x3f57, 0x991: 0xa000,
+ 0x992: 0x3f5f, 0x993: 0xa000, 0x994: 0x3f67, 0x995: 0xa000, 0x996: 0x3f6f, 0x997: 0xa000,
+ 0x998: 0x3f77, 0x999: 0xa000, 0x99a: 0x3f7f, 0x99b: 0xa000, 0x99c: 0x3f87, 0x99d: 0xa000,
+ 0x99e: 0x3f8f, 0x99f: 0xa000, 0x9a0: 0x3f97, 0x9a1: 0xa000, 0x9a2: 0x3f9f,
+ 0x9a4: 0xa000, 0x9a5: 0x3fa7, 0x9a6: 0xa000, 0x9a7: 0x3faf, 0x9a8: 0xa000, 0x9a9: 0x3fb7,
0x9af: 0xa000,
- 0x9b0: 0x40c1, 0x9b1: 0x40c9, 0x9b2: 0xa000, 0x9b3: 0x40d1, 0x9b4: 0x40d9, 0x9b5: 0xa000,
- 0x9b6: 0x40e1, 0x9b7: 0x40e9, 0x9b8: 0xa000, 0x9b9: 0x40f1, 0x9ba: 0x40f9, 0x9bb: 0xa000,
- 0x9bc: 0x4101, 0x9bd: 0x4109,
+ 0x9b0: 0x3fbf, 0x9b1: 0x3fc7, 0x9b2: 0xa000, 0x9b3: 0x3fcf, 0x9b4: 0x3fd7, 0x9b5: 0xa000,
+ 0x9b6: 0x3fdf, 0x9b7: 0x3fe7, 0x9b8: 0xa000, 0x9b9: 0x3fef, 0x9ba: 0x3ff7, 0x9bb: 0xa000,
+ 0x9bc: 0x3fff, 0x9bd: 0x4007,
// Block 0x27, offset 0x9c0
- 0x9d4: 0x4041,
- 0x9d9: 0x9904, 0x9da: 0x9904, 0x9db: 0x441d, 0x9dc: 0x4423, 0x9dd: 0xa000,
- 0x9de: 0x4111, 0x9df: 0x27e4,
+ 0x9d4: 0x3f3f,
+ 0x9d9: 0x9904, 0x9da: 0x9904, 0x9db: 0x4395, 0x9dc: 0x439b, 0x9dd: 0xa000,
+ 0x9de: 0x400f, 0x9df: 0x27e4,
0x9e6: 0xa000,
- 0x9eb: 0xa000, 0x9ec: 0x4121, 0x9ed: 0xa000, 0x9ee: 0x4129, 0x9ef: 0xa000,
- 0x9f0: 0x4131, 0x9f1: 0xa000, 0x9f2: 0x4139, 0x9f3: 0xa000, 0x9f4: 0x4141, 0x9f5: 0xa000,
- 0x9f6: 0x4149, 0x9f7: 0xa000, 0x9f8: 0x4151, 0x9f9: 0xa000, 0x9fa: 0x4159, 0x9fb: 0xa000,
- 0x9fc: 0x4161, 0x9fd: 0xa000, 0x9fe: 0x4169, 0x9ff: 0xa000,
+ 0x9eb: 0xa000, 0x9ec: 0x401f, 0x9ed: 0xa000, 0x9ee: 0x4027, 0x9ef: 0xa000,
+ 0x9f0: 0x402f, 0x9f1: 0xa000, 0x9f2: 0x4037, 0x9f3: 0xa000, 0x9f4: 0x403f, 0x9f5: 0xa000,
+ 0x9f6: 0x4047, 0x9f7: 0xa000, 0x9f8: 0x404f, 0x9f9: 0xa000, 0x9fa: 0x4057, 0x9fb: 0xa000,
+ 0x9fc: 0x405f, 0x9fd: 0xa000, 0x9fe: 0x4067, 0x9ff: 0xa000,
// Block 0x28, offset 0xa00
- 0xa00: 0x4171, 0xa01: 0xa000, 0xa02: 0x4179, 0xa04: 0xa000, 0xa05: 0x4181,
- 0xa06: 0xa000, 0xa07: 0x4189, 0xa08: 0xa000, 0xa09: 0x4191,
- 0xa0f: 0xa000, 0xa10: 0x4199, 0xa11: 0x41a1,
- 0xa12: 0xa000, 0xa13: 0x41a9, 0xa14: 0x41b1, 0xa15: 0xa000, 0xa16: 0x41b9, 0xa17: 0x41c1,
- 0xa18: 0xa000, 0xa19: 0x41c9, 0xa1a: 0x41d1, 0xa1b: 0xa000, 0xa1c: 0x41d9, 0xa1d: 0x41e1,
+ 0xa00: 0x406f, 0xa01: 0xa000, 0xa02: 0x4077, 0xa04: 0xa000, 0xa05: 0x407f,
+ 0xa06: 0xa000, 0xa07: 0x4087, 0xa08: 0xa000, 0xa09: 0x408f,
+ 0xa0f: 0xa000, 0xa10: 0x4097, 0xa11: 0x409f,
+ 0xa12: 0xa000, 0xa13: 0x40a7, 0xa14: 0x40af, 0xa15: 0xa000, 0xa16: 0x40b7, 0xa17: 0x40bf,
+ 0xa18: 0xa000, 0xa19: 0x40c7, 0xa1a: 0x40cf, 0xa1b: 0xa000, 0xa1c: 0x40d7, 0xa1d: 0x40df,
0xa2f: 0xa000,
- 0xa30: 0xa000, 0xa31: 0xa000, 0xa32: 0xa000, 0xa34: 0x4119,
- 0xa37: 0x41e9, 0xa38: 0x41f1, 0xa39: 0x41f9, 0xa3a: 0x4201,
- 0xa3d: 0xa000, 0xa3e: 0x4209, 0xa3f: 0x27f9,
+ 0xa30: 0xa000, 0xa31: 0xa000, 0xa32: 0xa000, 0xa34: 0x4017,
+ 0xa37: 0x40e7, 0xa38: 0x40ef, 0xa39: 0x40f7, 0xa3a: 0x40ff,
+ 0xa3d: 0xa000, 0xa3e: 0x4107, 0xa3f: 0x27f9,
// Block 0x29, offset 0xa40
0xa40: 0x045a, 0xa41: 0x041e, 0xa42: 0x0422, 0xa43: 0x0426, 0xa44: 0x046e, 0xa45: 0x042a,
0xa46: 0x042e, 0xa47: 0x0432, 0xa48: 0x0436, 0xa49: 0x043a, 0xa4a: 0x043e, 0xa4b: 0x0442,
@@ -5148,10 +5148,10 @@ var nfkcValues = [6208]uint16{
0xb18: 0x19eb, 0xb19: 0x19ee, 0xb1a: 0x19f7, 0xb1b: 0x19fa, 0xb1c: 0x19fd, 0xb1d: 0x1a00,
0xb1e: 0x1a03, 0xb1f: 0x1a06, 0xb20: 0x0406, 0xb21: 0x040e, 0xb22: 0x0412, 0xb23: 0x041a,
0xb24: 0x041e, 0xb25: 0x0422, 0xb26: 0x042a, 0xb27: 0x0432, 0xb28: 0x0436, 0xb29: 0x043e,
- 0xb2a: 0x0442, 0xb2b: 0x0446, 0xb2c: 0x044a, 0xb2d: 0x044e, 0xb2e: 0x2f59, 0xb2f: 0x2f61,
- 0xb30: 0x2f69, 0xb31: 0x2f71, 0xb32: 0x2f79, 0xb33: 0x2f81, 0xb34: 0x2f89, 0xb35: 0x2f91,
- 0xb36: 0x2fa1, 0xb37: 0x2fa9, 0xb38: 0x2fb1, 0xb39: 0x2fb9, 0xb3a: 0x2fc1, 0xb3b: 0x2fc9,
- 0xb3c: 0x3014, 0xb3d: 0x2fdc, 0xb3e: 0x2f99,
+ 0xb2a: 0x0442, 0xb2b: 0x0446, 0xb2c: 0x044a, 0xb2d: 0x044e, 0xb2e: 0x467d, 0xb2f: 0x4685,
+ 0xb30: 0x468d, 0xb31: 0x4695, 0xb32: 0x469d, 0xb33: 0x46a5, 0xb34: 0x46ad, 0xb35: 0x46b5,
+ 0xb36: 0x46c5, 0xb37: 0x46cd, 0xb38: 0x46d5, 0xb39: 0x46dd, 0xb3a: 0x46e5, 0xb3b: 0x46ed,
+ 0xb3c: 0x2e42, 0xb3d: 0x2e0a, 0xb3e: 0x46bd,
// Block 0x2d, offset 0xb40
0xb40: 0x07ba, 0xb41: 0x0816, 0xb42: 0x07c6, 0xb43: 0x0a76, 0xb44: 0x081a, 0xb45: 0x08aa,
0xb46: 0x07c2, 0xb47: 0x08a6, 0xb48: 0x0806, 0xb49: 0x0982, 0xb4a: 0x0e02, 0xb4b: 0x0f8a,
@@ -5177,21 +5177,21 @@ var nfkcValues = [6208]uint16{
0xbb6: 0x067e, 0xbb7: 0x0682, 0xbb8: 0x0686, 0xbb9: 0x068a, 0xbba: 0x068e, 0xbbb: 0x0692,
0xbbc: 0x0696, 0xbbd: 0x069a, 0xbbe: 0x069e, 0xbbf: 0x282a,
// Block 0x2f, offset 0xbc0
- 0xbc0: 0x2c43, 0xbc1: 0x2adf, 0xbc2: 0x2c53, 0xbc3: 0x29b7, 0xbc4: 0x3025, 0xbc5: 0x29c1,
- 0xbc6: 0x29cb, 0xbc7: 0x3069, 0xbc8: 0x2aec, 0xbc9: 0x29d5, 0xbca: 0x29df, 0xbcb: 0x29e9,
- 0xbcc: 0x2b13, 0xbcd: 0x2b20, 0xbce: 0x2af9, 0xbcf: 0x2b06, 0xbd0: 0x2fea, 0xbd1: 0x2b2d,
+ 0xbc0: 0x2c43, 0xbc1: 0x2adf, 0xbc2: 0x2c53, 0xbc3: 0x29b7, 0xbc4: 0x2e53, 0xbc5: 0x29c1,
+ 0xbc6: 0x29cb, 0xbc7: 0x2e97, 0xbc8: 0x2aec, 0xbc9: 0x29d5, 0xbca: 0x29df, 0xbcb: 0x29e9,
+ 0xbcc: 0x2b13, 0xbcd: 0x2b20, 0xbce: 0x2af9, 0xbcf: 0x2b06, 0xbd0: 0x2e18, 0xbd1: 0x2b2d,
0xbd2: 0x2b3a, 0xbd3: 0x2cf5, 0xbd4: 0x27eb, 0xbd5: 0x2d08, 0xbd6: 0x2d1b, 0xbd7: 0x2c63,
0xbd8: 0x2b47, 0xbd9: 0x2d2e, 0xbda: 0x2d41, 0xbdb: 0x2b54, 0xbdc: 0x29f3, 0xbdd: 0x29fd,
- 0xbde: 0x2ff8, 0xbdf: 0x2b61, 0xbe0: 0x2c73, 0xbe1: 0x3036, 0xbe2: 0x2a07, 0xbe3: 0x2a11,
+ 0xbde: 0x2e26, 0xbdf: 0x2b61, 0xbe0: 0x2c73, 0xbe1: 0x2e64, 0xbe2: 0x2a07, 0xbe3: 0x2a11,
0xbe4: 0x2b6e, 0xbe5: 0x2a1b, 0xbe6: 0x2a25, 0xbe7: 0x2800, 0xbe8: 0x2807, 0xbe9: 0x2a2f,
0xbea: 0x2a39, 0xbeb: 0x2d54, 0xbec: 0x2b7b, 0xbed: 0x2c83, 0xbee: 0x2d67, 0xbef: 0x2b88,
- 0xbf0: 0x2a4d, 0xbf1: 0x2a43, 0xbf2: 0x307d, 0xbf3: 0x2b95, 0xbf4: 0x2d7a, 0xbf5: 0x2a57,
- 0xbf6: 0x2c93, 0xbf7: 0x2a61, 0xbf8: 0x2baf, 0xbf9: 0x2a6b, 0xbfa: 0x2bbc, 0xbfb: 0x3047,
+ 0xbf0: 0x2a4d, 0xbf1: 0x2a43, 0xbf2: 0x2eab, 0xbf3: 0x2b95, 0xbf4: 0x2d7a, 0xbf5: 0x2a57,
+ 0xbf6: 0x2c93, 0xbf7: 0x2a61, 0xbf8: 0x2baf, 0xbf9: 0x2a6b, 0xbfa: 0x2bbc, 0xbfb: 0x2e75,
0xbfc: 0x2ba2, 0xbfd: 0x2ca3, 0xbfe: 0x2bc9, 0xbff: 0x280e,
// Block 0x30, offset 0xc00
- 0xc00: 0x3058, 0xc01: 0x2a75, 0xc02: 0x2a7f, 0xc03: 0x2bd6, 0xc04: 0x2a89, 0xc05: 0x2a93,
- 0xc06: 0x2a9d, 0xc07: 0x2cb3, 0xc08: 0x2be3, 0xc09: 0x2815, 0xc0a: 0x2d8d, 0xc0b: 0x2fd1,
- 0xc0c: 0x2cc3, 0xc0d: 0x2bf0, 0xc0e: 0x3006, 0xc0f: 0x2aa7, 0xc10: 0x2ab1, 0xc11: 0x2bfd,
+ 0xc00: 0x2e86, 0xc01: 0x2a75, 0xc02: 0x2a7f, 0xc03: 0x2bd6, 0xc04: 0x2a89, 0xc05: 0x2a93,
+ 0xc06: 0x2a9d, 0xc07: 0x2cb3, 0xc08: 0x2be3, 0xc09: 0x2815, 0xc0a: 0x2d8d, 0xc0b: 0x2dff,
+ 0xc0c: 0x2cc3, 0xc0d: 0x2bf0, 0xc0e: 0x2e34, 0xc0f: 0x2aa7, 0xc10: 0x2ab1, 0xc11: 0x2bfd,
0xc12: 0x281c, 0xc13: 0x2c0a, 0xc14: 0x2cd3, 0xc15: 0x2823, 0xc16: 0x2da0, 0xc17: 0x2abb,
0xc18: 0x1de7, 0xc19: 0x1dfb, 0xc1a: 0x1e0a, 0xc1b: 0x1e19, 0xc1c: 0x1e28, 0xc1d: 0x1e37,
0xc1e: 0x1e46, 0xc1f: 0x1e55, 0xc20: 0x1e64, 0xc21: 0x1e73, 0xc22: 0x22c2, 0xc23: 0x22d4,
@@ -5318,17 +5318,17 @@ var nfkcValues = [6208]uint16{
0xec0: 0x1b05, 0xec1: 0x1b08, 0xec2: 0x1b0b, 0xec3: 0x1d38, 0xec4: 0x1d3c, 0xec5: 0x1b8f,
0xec6: 0x1b8f,
0xed3: 0x1ea5, 0xed4: 0x1e96, 0xed5: 0x1e9b, 0xed6: 0x1eaa, 0xed7: 0x1ea0,
- 0xedd: 0x44d1,
- 0xede: 0x8116, 0xedf: 0x4543, 0xee0: 0x0320, 0xee1: 0x0308, 0xee2: 0x0311, 0xee3: 0x0314,
+ 0xedd: 0x4449,
+ 0xede: 0x8116, 0xedf: 0x44bb, 0xee0: 0x0320, 0xee1: 0x0308, 0xee2: 0x0311, 0xee3: 0x0314,
0xee4: 0x0317, 0xee5: 0x031a, 0xee6: 0x031d, 0xee7: 0x0323, 0xee8: 0x0326, 0xee9: 0x0017,
- 0xeea: 0x4531, 0xeeb: 0x4537, 0xeec: 0x4635, 0xeed: 0x463d, 0xeee: 0x4489, 0xeef: 0x448f,
- 0xef0: 0x4495, 0xef1: 0x449b, 0xef2: 0x44a7, 0xef3: 0x44ad, 0xef4: 0x44b3, 0xef5: 0x44bf,
- 0xef6: 0x44c5, 0xef8: 0x44cb, 0xef9: 0x44d7, 0xefa: 0x44dd, 0xefb: 0x44e3,
- 0xefc: 0x44ef, 0xefe: 0x44f5,
+ 0xeea: 0x44a9, 0xeeb: 0x44af, 0xeec: 0x45ad, 0xeed: 0x45b5, 0xeee: 0x4401, 0xeef: 0x4407,
+ 0xef0: 0x440d, 0xef1: 0x4413, 0xef2: 0x441f, 0xef3: 0x4425, 0xef4: 0x442b, 0xef5: 0x4437,
+ 0xef6: 0x443d, 0xef8: 0x4443, 0xef9: 0x444f, 0xefa: 0x4455, 0xefb: 0x445b,
+ 0xefc: 0x4467, 0xefe: 0x446d,
// Block 0x3c, offset 0xf00
- 0xf00: 0x44fb, 0xf01: 0x4501, 0xf03: 0x4507, 0xf04: 0x450d,
- 0xf06: 0x4519, 0xf07: 0x451f, 0xf08: 0x4525, 0xf09: 0x452b, 0xf0a: 0x453d, 0xf0b: 0x44b9,
- 0xf0c: 0x44a1, 0xf0d: 0x44e9, 0xf0e: 0x4513, 0xf0f: 0x1eaf, 0xf10: 0x038c, 0xf11: 0x038c,
+ 0xf00: 0x4473, 0xf01: 0x4479, 0xf03: 0x447f, 0xf04: 0x4485,
+ 0xf06: 0x4491, 0xf07: 0x4497, 0xf08: 0x449d, 0xf09: 0x44a3, 0xf0a: 0x44b5, 0xf0b: 0x4431,
+ 0xf0c: 0x4419, 0xf0d: 0x4461, 0xf0e: 0x448b, 0xf0f: 0x1eaf, 0xf10: 0x038c, 0xf11: 0x038c,
0xf12: 0x0395, 0xf13: 0x0395, 0xf14: 0x0395, 0xf15: 0x0395, 0xf16: 0x0398, 0xf17: 0x0398,
0xf18: 0x0398, 0xf19: 0x0398, 0xf1a: 0x039e, 0xf1b: 0x039e, 0xf1c: 0x039e, 0xf1d: 0x039e,
0xf1e: 0x0392, 0xf1f: 0x0392, 0xf20: 0x0392, 0xf21: 0x0392, 0xf22: 0x039b, 0xf23: 0x039b,
@@ -5344,9 +5344,9 @@ var nfkcValues = [6208]uint16{
0xf52: 0x03ce, 0xf53: 0x03ce, 0xf54: 0x03ce, 0xf55: 0x03ce, 0xf56: 0x03d4, 0xf57: 0x03d4,
0xf58: 0x03d4, 0xf59: 0x03d4, 0xf5a: 0x03d1, 0xf5b: 0x03d1, 0xf5c: 0x03d1, 0xf5d: 0x03d1,
0xf5e: 0x03d7, 0xf5f: 0x03d7, 0xf60: 0x03da, 0xf61: 0x03da, 0xf62: 0x03da, 0xf63: 0x03da,
- 0xf64: 0x45af, 0xf65: 0x45af, 0xf66: 0x03e0, 0xf67: 0x03e0, 0xf68: 0x03e0, 0xf69: 0x03e0,
+ 0xf64: 0x4527, 0xf65: 0x4527, 0xf66: 0x03e0, 0xf67: 0x03e0, 0xf68: 0x03e0, 0xf69: 0x03e0,
0xf6a: 0x03dd, 0xf6b: 0x03dd, 0xf6c: 0x03dd, 0xf6d: 0x03dd, 0xf6e: 0x03fb, 0xf6f: 0x03fb,
- 0xf70: 0x45a9, 0xf71: 0x45a9,
+ 0xf70: 0x4521, 0xf71: 0x4521,
// Block 0x3e, offset 0xf80
0xf93: 0x03cb, 0xf94: 0x03cb, 0xf95: 0x03cb, 0xf96: 0x03cb, 0xf97: 0x03e9,
0xf98: 0x03e9, 0xf99: 0x03e6, 0xf9a: 0x03e6, 0xf9b: 0x03ec, 0xf9c: 0x03ec, 0xf9d: 0x217f,
@@ -5373,8 +5373,8 @@ var nfkcValues = [6208]uint16{
0x1006: 0x20e4, 0x1007: 0x20e9, 0x1008: 0x20ee, 0x1009: 0x20f3, 0x100a: 0x20f8, 0x100b: 0x20fd,
0x100c: 0x2102, 0x100d: 0x2107, 0x100e: 0x2116, 0x100f: 0x2125, 0x1010: 0x212a, 0x1011: 0x212f,
0x1012: 0x2134, 0x1013: 0x2139, 0x1014: 0x213e, 0x1015: 0x2148, 0x1016: 0x214d, 0x1017: 0x2152,
- 0x1018: 0x2161, 0x1019: 0x2170, 0x101a: 0x2175, 0x101b: 0x4561, 0x101c: 0x4567, 0x101d: 0x459d,
- 0x101e: 0x45f4, 0x101f: 0x45fb, 0x1020: 0x4602, 0x1021: 0x4609, 0x1022: 0x4610, 0x1023: 0x4617,
+ 0x1018: 0x2161, 0x1019: 0x2170, 0x101a: 0x2175, 0x101b: 0x44d9, 0x101c: 0x44df, 0x101d: 0x4515,
+ 0x101e: 0x456c, 0x101f: 0x4573, 0x1020: 0x457a, 0x1021: 0x4581, 0x1022: 0x4588, 0x1023: 0x458f,
0x1024: 0x26f6, 0x1025: 0x26fd, 0x1026: 0x2704, 0x1027: 0x270b, 0x1028: 0x2720, 0x1029: 0x2727,
0x102a: 0x1ec8, 0x102b: 0x1ecd, 0x102c: 0x1ed2, 0x102d: 0x1ed7, 0x102e: 0x1ee1, 0x102f: 0x1ee6,
0x1030: 0x1efa, 0x1031: 0x1eff, 0x1032: 0x1f04, 0x1033: 0x1f09, 0x1034: 0x1f13, 0x1035: 0x1f18,
@@ -5383,7 +5383,7 @@ var nfkcValues = [6208]uint16{
// Block 0x41, offset 0x1040
0x1040: 0x208a, 0x1041: 0x209e, 0x1042: 0x20a3, 0x1043: 0x20a8, 0x1044: 0x20ad, 0x1045: 0x20c6,
0x1046: 0x20d0, 0x1047: 0x20d5, 0x1048: 0x20da, 0x1049: 0x20ee, 0x104a: 0x210c, 0x104b: 0x2111,
- 0x104c: 0x2116, 0x104d: 0x211b, 0x104e: 0x2125, 0x104f: 0x212a, 0x1050: 0x459d, 0x1051: 0x2157,
+ 0x104c: 0x2116, 0x104d: 0x211b, 0x104e: 0x2125, 0x104f: 0x212a, 0x1050: 0x4515, 0x1051: 0x2157,
0x1052: 0x215c, 0x1053: 0x2161, 0x1054: 0x2166, 0x1055: 0x2170, 0x1056: 0x2175, 0x1057: 0x26e1,
0x1058: 0x26e8, 0x1059: 0x26ef, 0x105a: 0x2704, 0x105b: 0x2712, 0x105c: 0x1eb9, 0x105d: 0x1ebe,
0x105e: 0x1ec3, 0x105f: 0x1ed2, 0x1060: 0x1edc, 0x1061: 0x1eeb, 0x1062: 0x1ef0, 0x1063: 0x1ef5,
@@ -5397,11 +5397,11 @@ var nfkcValues = [6208]uint16{
0x1086: 0x2099, 0x1087: 0x209e, 0x1088: 0x20a3, 0x1089: 0x20b7, 0x108a: 0x20bc, 0x108b: 0x20c1,
0x108c: 0x20c6, 0x108d: 0x20cb, 0x108e: 0x20df, 0x108f: 0x20e4, 0x1090: 0x20e9, 0x1091: 0x20ee,
0x1092: 0x20fd, 0x1093: 0x2102, 0x1094: 0x2107, 0x1095: 0x2116, 0x1096: 0x2120, 0x1097: 0x212f,
- 0x1098: 0x2134, 0x1099: 0x4591, 0x109a: 0x2148, 0x109b: 0x214d, 0x109c: 0x2152, 0x109d: 0x2161,
+ 0x1098: 0x2134, 0x1099: 0x4509, 0x109a: 0x2148, 0x109b: 0x214d, 0x109c: 0x2152, 0x109d: 0x2161,
0x109e: 0x216b, 0x109f: 0x2704, 0x10a0: 0x2712, 0x10a1: 0x1ed2, 0x10a2: 0x1edc, 0x10a3: 0x1f04,
0x10a4: 0x1f0e, 0x10a5: 0x1f2c, 0x10a6: 0x1f36, 0x10a7: 0x1f9a, 0x10a8: 0x1f9f, 0x10a9: 0x1fc2,
0x10aa: 0x1fc7, 0x10ab: 0x209e, 0x10ac: 0x20a3, 0x10ad: 0x20c6, 0x10ae: 0x2116, 0x10af: 0x2120,
- 0x10b0: 0x2161, 0x10b1: 0x216b, 0x10b2: 0x4645, 0x10b3: 0x464d, 0x10b4: 0x4655, 0x10b5: 0x2021,
+ 0x10b0: 0x2161, 0x10b1: 0x216b, 0x10b2: 0x45bd, 0x10b3: 0x45c5, 0x10b4: 0x45cd, 0x10b5: 0x2021,
0x10b6: 0x2026, 0x10b7: 0x203a, 0x10b8: 0x203f, 0x10b9: 0x204e, 0x10ba: 0x2053, 0x10bb: 0x1fa4,
0x10bc: 0x1fa9, 0x10bd: 0x1fcc, 0x10be: 0x1fd1, 0x10bf: 0x1f63,
// Block 0x43, offset 0x10c0
@@ -5415,7 +5415,7 @@ var nfkcValues = [6208]uint16{
0x10ea: 0x1f95, 0x10eb: 0x1fe0, 0x10ec: 0x2003, 0x10ed: 0x1fae, 0x10ee: 0x1fb3, 0x10ef: 0x1fb8,
0x10f0: 0x1fc2, 0x10f1: 0x1f9f, 0x10f2: 0x1fc7, 0x10f3: 0x201c, 0x10f4: 0x1f86, 0x10f5: 0x1f8b,
0x10f6: 0x1f90, 0x10f7: 0x1fae, 0x10f8: 0x1fb3, 0x10f9: 0x1fb8, 0x10fa: 0x201c, 0x10fb: 0x202b,
- 0x10fc: 0x4549, 0x10fd: 0x4549,
+ 0x10fc: 0x44c1, 0x10fd: 0x44c1,
// Block 0x44, offset 0x1100
0x1110: 0x2441, 0x1111: 0x2456,
0x1112: 0x2456, 0x1113: 0x245d, 0x1114: 0x2464, 0x1115: 0x2479, 0x1116: 0x2480, 0x1117: 0x2487,
@@ -5456,20 +5456,20 @@ var nfkcValues = [6208]uint16{
0x11fc: 0x05aa, 0x11fd: 0x058e, 0x11fe: 0x0592, 0x11ff: 0x0586,
// Block 0x48, offset 0x1200
0x1200: 0x058a, 0x1201: 0x0596, 0x1202: 0x059a, 0x1203: 0x059e, 0x1204: 0x05a2,
- 0x1207: 0x0077, 0x1208: 0x007b, 0x1209: 0x43aa, 0x120a: 0x43aa, 0x120b: 0x43aa,
- 0x120c: 0x43aa, 0x120d: 0x007f, 0x120e: 0x007f, 0x120f: 0x007f, 0x1210: 0x0019, 0x1211: 0x057e,
+ 0x1207: 0x0077, 0x1208: 0x007b, 0x1209: 0x4322, 0x120a: 0x4322, 0x120b: 0x4322,
+ 0x120c: 0x4322, 0x120d: 0x007f, 0x120e: 0x007f, 0x120f: 0x007f, 0x1210: 0x0019, 0x1211: 0x057e,
0x1212: 0x001d, 0x1214: 0x0037, 0x1215: 0x0035, 0x1216: 0x003f, 0x1217: 0x0003,
0x1218: 0x053a, 0x1219: 0x0011, 0x121a: 0x0013, 0x121b: 0x00b7, 0x121c: 0x00bb, 0x121d: 0x05b2,
0x121e: 0x05b6, 0x121f: 0x0007, 0x1220: 0x000d, 0x1221: 0x0015, 0x1222: 0x0017, 0x1223: 0x001b,
0x1224: 0x0039, 0x1225: 0x003d, 0x1226: 0x003b, 0x1228: 0x0079, 0x1229: 0x0009,
0x122a: 0x000b, 0x122b: 0x0041,
- 0x1230: 0x43eb, 0x1231: 0x456d, 0x1232: 0x43f0, 0x1234: 0x43f5,
- 0x1236: 0x43fa, 0x1237: 0x4573, 0x1238: 0x43ff, 0x1239: 0x4579, 0x123a: 0x4404, 0x123b: 0x457f,
- 0x123c: 0x4409, 0x123d: 0x4585, 0x123e: 0x440e, 0x123f: 0x458b,
+ 0x1230: 0x4363, 0x1231: 0x44e5, 0x1232: 0x4368, 0x1234: 0x436d,
+ 0x1236: 0x4372, 0x1237: 0x44eb, 0x1238: 0x4377, 0x1239: 0x44f1, 0x123a: 0x437c, 0x123b: 0x44f7,
+ 0x123c: 0x4381, 0x123d: 0x44fd, 0x123e: 0x4386, 0x123f: 0x4503,
// Block 0x49, offset 0x1240
- 0x1240: 0x0329, 0x1241: 0x454f, 0x1242: 0x454f, 0x1243: 0x4555, 0x1244: 0x4555, 0x1245: 0x4597,
- 0x1246: 0x4597, 0x1247: 0x455b, 0x1248: 0x455b, 0x1249: 0x45a3, 0x124a: 0x45a3, 0x124b: 0x45a3,
- 0x124c: 0x45a3, 0x124d: 0x032c, 0x124e: 0x032c, 0x124f: 0x032f, 0x1250: 0x032f, 0x1251: 0x032f,
+ 0x1240: 0x0329, 0x1241: 0x44c7, 0x1242: 0x44c7, 0x1243: 0x44cd, 0x1244: 0x44cd, 0x1245: 0x450f,
+ 0x1246: 0x450f, 0x1247: 0x44d3, 0x1248: 0x44d3, 0x1249: 0x451b, 0x124a: 0x451b, 0x124b: 0x451b,
+ 0x124c: 0x451b, 0x124d: 0x032c, 0x124e: 0x032c, 0x124f: 0x032f, 0x1250: 0x032f, 0x1251: 0x032f,
0x1252: 0x032f, 0x1253: 0x0332, 0x1254: 0x0332, 0x1255: 0x0335, 0x1256: 0x0335, 0x1257: 0x0335,
0x1258: 0x0335, 0x1259: 0x0338, 0x125a: 0x0338, 0x125b: 0x0338, 0x125c: 0x0338, 0x125d: 0x033b,
0x125e: 0x033b, 0x125f: 0x033b, 0x1260: 0x033b, 0x1261: 0x033e, 0x1262: 0x033e, 0x1263: 0x033e,
@@ -5487,8 +5487,8 @@ var nfkcValues = [6208]uint16{
0x129e: 0x0371, 0x129f: 0x0371, 0x12a0: 0x0371, 0x12a1: 0x0374, 0x12a2: 0x0374, 0x12a3: 0x0374,
0x12a4: 0x0374, 0x12a5: 0x0377, 0x12a6: 0x0377, 0x12a7: 0x0377, 0x12a8: 0x0377, 0x12a9: 0x037a,
0x12aa: 0x037a, 0x12ab: 0x037a, 0x12ac: 0x037a, 0x12ad: 0x037d, 0x12ae: 0x037d, 0x12af: 0x0380,
- 0x12b0: 0x0380, 0x12b1: 0x0383, 0x12b2: 0x0383, 0x12b3: 0x0383, 0x12b4: 0x0383, 0x12b5: 0x2f41,
- 0x12b6: 0x2f41, 0x12b7: 0x2f49, 0x12b8: 0x2f49, 0x12b9: 0x2f51, 0x12ba: 0x2f51, 0x12bb: 0x20b2,
+ 0x12b0: 0x0380, 0x12b1: 0x0383, 0x12b2: 0x0383, 0x12b3: 0x0383, 0x12b4: 0x0383, 0x12b5: 0x2de7,
+ 0x12b6: 0x2de7, 0x12b7: 0x2def, 0x12b8: 0x2def, 0x12b9: 0x2df7, 0x12ba: 0x2df7, 0x12bb: 0x20b2,
0x12bc: 0x20b2,
// Block 0x4b, offset 0x12c0
0x12c0: 0x0081, 0x12c1: 0x0083, 0x12c2: 0x0085, 0x12c3: 0x0087, 0x12c4: 0x0089, 0x12c5: 0x008b,
@@ -5520,7 +5520,7 @@ var nfkcValues = [6208]uint16{
0x134c: 0x4b2e, 0x134d: 0x4b34, 0x134e: 0x4b3a, 0x134f: 0x4b40,
0x1352: 0x4b46, 0x1353: 0x4b4c, 0x1354: 0x4b52, 0x1355: 0x4b58, 0x1356: 0x4b5e, 0x1357: 0x4b64,
0x135a: 0x4b6a, 0x135b: 0x4b70, 0x135c: 0x4b76,
- 0x1360: 0x00bf, 0x1361: 0x00c2, 0x1362: 0x00cb, 0x1363: 0x43a5,
+ 0x1360: 0x00bf, 0x1361: 0x00c2, 0x1362: 0x00cb, 0x1363: 0x431d,
0x1364: 0x00c8, 0x1365: 0x00c5, 0x1366: 0x053e, 0x1368: 0x0562, 0x1369: 0x0542,
0x136a: 0x0546, 0x136b: 0x054a, 0x136c: 0x054e, 0x136d: 0x0566, 0x136e: 0x056a,
// Block 0x4e, offset 0x1380
@@ -5628,7 +5628,7 @@ var nfkcValues = [6208]uint16{
// Block 0x57, offset 0x15c0
0x15c0: 0x27dd, 0x15c1: 0x27f2, 0x15c2: 0x05fe,
0x15d0: 0x0d0a, 0x15d1: 0x0b42,
- 0x15d2: 0x09ce, 0x15d3: 0x4705, 0x15d4: 0x0816, 0x15d5: 0x0aea, 0x15d6: 0x142a, 0x15d7: 0x0afa,
+ 0x15d2: 0x09ce, 0x15d3: 0x46f5, 0x15d4: 0x0816, 0x15d5: 0x0aea, 0x15d6: 0x142a, 0x15d7: 0x0afa,
0x15d8: 0x0822, 0x15d9: 0x0dd2, 0x15da: 0x0faa, 0x15db: 0x0daa, 0x15dc: 0x0922, 0x15dd: 0x0c66,
0x15de: 0x08ba, 0x15df: 0x0db2, 0x15e0: 0x090e, 0x15e1: 0x1212, 0x15e2: 0x107e, 0x15e3: 0x1486,
0x15e4: 0x0ace, 0x15e5: 0x0a06, 0x15e6: 0x0f5e, 0x15e7: 0x0d16, 0x15e8: 0x0d42, 0x15e9: 0x07ba,
@@ -5863,13 +5863,13 @@ var nfkcSparseValues = [919]valueRange{
// Block 0x0, offset 0x0
{value: 0x0002, lo: 0x0d},
{value: 0x0001, lo: 0xa0, hi: 0xa0},
- {value: 0x43b9, lo: 0xa8, hi: 0xa8},
+ {value: 0x4331, lo: 0xa8, hi: 0xa8},
{value: 0x0083, lo: 0xaa, hi: 0xaa},
- {value: 0x43a5, lo: 0xaf, hi: 0xaf},
+ {value: 0x431d, lo: 0xaf, hi: 0xaf},
{value: 0x0025, lo: 0xb2, hi: 0xb3},
- {value: 0x439b, lo: 0xb4, hi: 0xb4},
+ {value: 0x4313, lo: 0xb4, hi: 0xb4},
{value: 0x0260, lo: 0xb5, hi: 0xb5},
- {value: 0x43d2, lo: 0xb8, hi: 0xb8},
+ {value: 0x434a, lo: 0xb8, hi: 0xb8},
{value: 0x0023, lo: 0xb9, hi: 0xb9},
{value: 0x009f, lo: 0xba, hi: 0xba},
{value: 0x234c, lo: 0xbc, hi: 0xbc},
@@ -5877,8 +5877,8 @@ var nfkcSparseValues = [919]valueRange{
{value: 0x23e2, lo: 0xbe, hi: 0xbe},
// Block 0x1, offset 0xe
{value: 0x0091, lo: 0x03},
- {value: 0x4823, lo: 0xa0, hi: 0xa1},
- {value: 0x4855, lo: 0xaf, hi: 0xb0},
+ {value: 0x4813, lo: 0xa0, hi: 0xa1},
+ {value: 0x4845, lo: 0xaf, hi: 0xb0},
{value: 0xa000, lo: 0xb7, hi: 0xb7},
// Block 0x2, offset 0x12
{value: 0x0004, lo: 0x09},
@@ -5893,11 +5893,11 @@ var nfkcSparseValues = [919]valueRange{
{value: 0x00af, lo: 0xb7, hi: 0xb8},
// Block 0x3, offset 0x1c
{value: 0x000a, lo: 0x09},
- {value: 0x43af, lo: 0x98, hi: 0x98},
- {value: 0x43b4, lo: 0x99, hi: 0x9a},
- {value: 0x43d7, lo: 0x9b, hi: 0x9b},
- {value: 0x43a0, lo: 0x9c, hi: 0x9c},
- {value: 0x43c3, lo: 0x9d, hi: 0x9d},
+ {value: 0x4327, lo: 0x98, hi: 0x98},
+ {value: 0x432c, lo: 0x99, hi: 0x9a},
+ {value: 0x434f, lo: 0x9b, hi: 0x9b},
+ {value: 0x4318, lo: 0x9c, hi: 0x9c},
+ {value: 0x433b, lo: 0x9d, hi: 0x9d},
{value: 0x0137, lo: 0xa0, hi: 0xa0},
{value: 0x0099, lo: 0xa1, hi: 0xa1},
{value: 0x00a7, lo: 0xa2, hi: 0xa3},
@@ -5908,17 +5908,17 @@ var nfkcSparseValues = [919]valueRange{
{value: 0xa000, lo: 0x87, hi: 0x87},
{value: 0xa000, lo: 0x8b, hi: 0x8b},
{value: 0xa000, lo: 0x8d, hi: 0x8d},
- {value: 0x38e6, lo: 0x90, hi: 0x90},
- {value: 0x38f2, lo: 0x91, hi: 0x91},
- {value: 0x38e0, lo: 0x93, hi: 0x93},
+ {value: 0x3704, lo: 0x90, hi: 0x90},
+ {value: 0x3710, lo: 0x91, hi: 0x91},
+ {value: 0x36fe, lo: 0x93, hi: 0x93},
{value: 0xa000, lo: 0x96, hi: 0x96},
- {value: 0x3958, lo: 0x97, hi: 0x97},
- {value: 0x3922, lo: 0x9c, hi: 0x9c},
- {value: 0x390a, lo: 0x9d, hi: 0x9d},
- {value: 0x3934, lo: 0x9e, hi: 0x9e},
+ {value: 0x3776, lo: 0x97, hi: 0x97},
+ {value: 0x3740, lo: 0x9c, hi: 0x9c},
+ {value: 0x3728, lo: 0x9d, hi: 0x9d},
+ {value: 0x3752, lo: 0x9e, hi: 0x9e},
{value: 0xa000, lo: 0xb4, hi: 0xb5},
- {value: 0x395e, lo: 0xb6, hi: 0xb6},
- {value: 0x3964, lo: 0xb7, hi: 0xb7},
+ {value: 0x377c, lo: 0xb6, hi: 0xb6},
+ {value: 0x3782, lo: 0xb7, hi: 0xb7},
// Block 0x5, offset 0x36
{value: 0x0000, lo: 0x01},
{value: 0x8133, lo: 0x83, hi: 0x87},
@@ -5934,19 +5934,19 @@ var nfkcSparseValues = [919]valueRange{
{value: 0x811a, lo: 0x98, hi: 0x98},
{value: 0x811b, lo: 0x99, hi: 0x99},
{value: 0x811c, lo: 0x9a, hi: 0x9a},
- {value: 0x3982, lo: 0xa2, hi: 0xa2},
- {value: 0x3988, lo: 0xa3, hi: 0xa3},
- {value: 0x3994, lo: 0xa4, hi: 0xa4},
- {value: 0x398e, lo: 0xa5, hi: 0xa5},
- {value: 0x399a, lo: 0xa6, hi: 0xa6},
+ {value: 0x37a0, lo: 0xa2, hi: 0xa2},
+ {value: 0x37a6, lo: 0xa3, hi: 0xa3},
+ {value: 0x37b2, lo: 0xa4, hi: 0xa4},
+ {value: 0x37ac, lo: 0xa5, hi: 0xa5},
+ {value: 0x37b8, lo: 0xa6, hi: 0xa6},
{value: 0xa000, lo: 0xa7, hi: 0xa7},
// Block 0x8, offset 0x48
{value: 0x0000, lo: 0x0e},
- {value: 0x39ac, lo: 0x80, hi: 0x80},
+ {value: 0x37ca, lo: 0x80, hi: 0x80},
{value: 0xa000, lo: 0x81, hi: 0x81},
- {value: 0x39a0, lo: 0x82, hi: 0x82},
+ {value: 0x37be, lo: 0x82, hi: 0x82},
{value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0x39a6, lo: 0x93, hi: 0x93},
+ {value: 0x37c4, lo: 0x93, hi: 0x93},
{value: 0xa000, lo: 0x95, hi: 0x95},
{value: 0x8133, lo: 0x96, hi: 0x9c},
{value: 0x8133, lo: 0x9f, hi: 0xa2},
@@ -6002,11 +6002,11 @@ var nfkcSparseValues = [919]valueRange{
// Block 0xf, offset 0x7c
{value: 0x0000, lo: 0x07},
{value: 0xa000, lo: 0xa8, hi: 0xa8},
- {value: 0x4019, lo: 0xa9, hi: 0xa9},
+ {value: 0x3e37, lo: 0xa9, hi: 0xa9},
{value: 0xa000, lo: 0xb0, hi: 0xb0},
- {value: 0x4021, lo: 0xb1, hi: 0xb1},
+ {value: 0x3e3f, lo: 0xb1, hi: 0xb1},
{value: 0xa000, lo: 0xb3, hi: 0xb3},
- {value: 0x4029, lo: 0xb4, hi: 0xb4},
+ {value: 0x3e47, lo: 0xb4, hi: 0xb4},
{value: 0x9903, lo: 0xbc, hi: 0xbc},
// Block 0x10, offset 0x84
{value: 0x0008, lo: 0x06},
@@ -6015,7 +6015,7 @@ var nfkcSparseValues = [919]valueRange{
{value: 0x812e, lo: 0x92, hi: 0x92},
{value: 0x8133, lo: 0x93, hi: 0x93},
{value: 0x8133, lo: 0x94, hi: 0x94},
- {value: 0x465d, lo: 0x98, hi: 0x9f},
+ {value: 0x45d5, lo: 0x98, hi: 0x9f},
// Block 0x11, offset 0x8b
{value: 0x0000, lo: 0x02},
{value: 0x8103, lo: 0xbc, hi: 0xbc},
@@ -6023,22 +6023,22 @@ var nfkcSparseValues = [919]valueRange{
// Block 0x12, offset 0x8e
{value: 0x0008, lo: 0x07},
{value: 0xa000, lo: 0x87, hi: 0x87},
- {value: 0x2dd5, lo: 0x8b, hi: 0x8c},
+ {value: 0x3e4f, lo: 0x8b, hi: 0x8c},
{value: 0x8105, lo: 0x8d, hi: 0x8d},
{value: 0x9900, lo: 0x97, hi: 0x97},
- {value: 0x469d, lo: 0x9c, hi: 0x9d},
- {value: 0x46ad, lo: 0x9f, hi: 0x9f},
+ {value: 0x4615, lo: 0x9c, hi: 0x9d},
+ {value: 0x4625, lo: 0x9f, hi: 0x9f},
{value: 0x8133, lo: 0xbe, hi: 0xbe},
// Block 0x13, offset 0x96
{value: 0x0000, lo: 0x03},
- {value: 0x46d5, lo: 0xb3, hi: 0xb3},
- {value: 0x46dd, lo: 0xb6, hi: 0xb6},
+ {value: 0x464d, lo: 0xb3, hi: 0xb3},
+ {value: 0x4655, lo: 0xb6, hi: 0xb6},
{value: 0x8103, lo: 0xbc, hi: 0xbc},
// Block 0x14, offset 0x9a
{value: 0x0008, lo: 0x03},
{value: 0x8105, lo: 0x8d, hi: 0x8d},
- {value: 0x46b5, lo: 0x99, hi: 0x9b},
- {value: 0x46cd, lo: 0x9e, hi: 0x9e},
+ {value: 0x462d, lo: 0x99, hi: 0x9b},
+ {value: 0x4645, lo: 0x9e, hi: 0x9e},
// Block 0x15, offset 0x9e
{value: 0x0000, lo: 0x01},
{value: 0x8103, lo: 0xbc, hi: 0xbc},
@@ -6048,30 +6048,30 @@ var nfkcSparseValues = [919]valueRange{
// Block 0x17, offset 0xa2
{value: 0x0000, lo: 0x08},
{value: 0xa000, lo: 0x87, hi: 0x87},
- {value: 0x2ded, lo: 0x88, hi: 0x88},
- {value: 0x2de5, lo: 0x8b, hi: 0x8b},
- {value: 0x2df5, lo: 0x8c, hi: 0x8c},
+ {value: 0x3e67, lo: 0x88, hi: 0x88},
+ {value: 0x3e5f, lo: 0x8b, hi: 0x8b},
+ {value: 0x3e6f, lo: 0x8c, hi: 0x8c},
{value: 0x8105, lo: 0x8d, hi: 0x8d},
{value: 0x9900, lo: 0x96, hi: 0x97},
- {value: 0x46e5, lo: 0x9c, hi: 0x9c},
- {value: 0x46ed, lo: 0x9d, hi: 0x9d},
+ {value: 0x465d, lo: 0x9c, hi: 0x9c},
+ {value: 0x4665, lo: 0x9d, hi: 0x9d},
// Block 0x18, offset 0xab
{value: 0x0000, lo: 0x03},
{value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0x2dfd, lo: 0x94, hi: 0x94},
+ {value: 0x3e77, lo: 0x94, hi: 0x94},
{value: 0x9900, lo: 0xbe, hi: 0xbe},
// Block 0x19, offset 0xaf
{value: 0x0000, lo: 0x06},
{value: 0xa000, lo: 0x86, hi: 0x87},
- {value: 0x2e05, lo: 0x8a, hi: 0x8a},
- {value: 0x2e15, lo: 0x8b, hi: 0x8b},
- {value: 0x2e0d, lo: 0x8c, hi: 0x8c},
+ {value: 0x3e7f, lo: 0x8a, hi: 0x8a},
+ {value: 0x3e8f, lo: 0x8b, hi: 0x8b},
+ {value: 0x3e87, lo: 0x8c, hi: 0x8c},
{value: 0x8105, lo: 0x8d, hi: 0x8d},
{value: 0x9900, lo: 0x97, hi: 0x97},
// Block 0x1a, offset 0xb6
{value: 0x1801, lo: 0x04},
{value: 0xa000, lo: 0x86, hi: 0x86},
- {value: 0x4031, lo: 0x88, hi: 0x88},
+ {value: 0x3e97, lo: 0x88, hi: 0x88},
{value: 0x8105, lo: 0x8d, hi: 0x8d},
{value: 0x8121, lo: 0x95, hi: 0x96},
// Block 0x1b, offset 0xbb
@@ -6080,13 +6080,13 @@ var nfkcSparseValues = [919]valueRange{
{value: 0xa000, lo: 0xbf, hi: 0xbf},
// Block 0x1c, offset 0xbe
{value: 0x0000, lo: 0x09},
- {value: 0x2e1d, lo: 0x80, hi: 0x80},
+ {value: 0x3e9f, lo: 0x80, hi: 0x80},
{value: 0x9900, lo: 0x82, hi: 0x82},
{value: 0xa000, lo: 0x86, hi: 0x86},
- {value: 0x2e25, lo: 0x87, hi: 0x87},
- {value: 0x2e2d, lo: 0x88, hi: 0x88},
- {value: 0x3091, lo: 0x8a, hi: 0x8a},
- {value: 0x2f19, lo: 0x8b, hi: 0x8b},
+ {value: 0x3ea7, lo: 0x87, hi: 0x87},
+ {value: 0x3eaf, lo: 0x88, hi: 0x88},
+ {value: 0x4adf, lo: 0x8a, hi: 0x8a},
+ {value: 0x42f9, lo: 0x8b, hi: 0x8b},
{value: 0x8105, lo: 0x8d, hi: 0x8d},
{value: 0x9900, lo: 0x95, hi: 0x96},
// Block 0x1d, offset 0xc8
@@ -6096,20 +6096,20 @@ var nfkcSparseValues = [919]valueRange{
// Block 0x1e, offset 0xcb
{value: 0x0000, lo: 0x06},
{value: 0xa000, lo: 0x86, hi: 0x87},
- {value: 0x2e35, lo: 0x8a, hi: 0x8a},
- {value: 0x2e45, lo: 0x8b, hi: 0x8b},
- {value: 0x2e3d, lo: 0x8c, hi: 0x8c},
+ {value: 0x3eb7, lo: 0x8a, hi: 0x8a},
+ {value: 0x3ec7, lo: 0x8b, hi: 0x8b},
+ {value: 0x3ebf, lo: 0x8c, hi: 0x8c},
{value: 0x8105, lo: 0x8d, hi: 0x8d},
{value: 0x9900, lo: 0x97, hi: 0x97},
// Block 0x1f, offset 0xd2
- {value: 0x6ab3, lo: 0x07},
+ {value: 0x5a29, lo: 0x07},
{value: 0x9905, lo: 0x8a, hi: 0x8a},
{value: 0x9900, lo: 0x8f, hi: 0x8f},
{value: 0xa000, lo: 0x99, hi: 0x99},
- {value: 0x4039, lo: 0x9a, hi: 0x9a},
- {value: 0x3099, lo: 0x9c, hi: 0x9c},
- {value: 0x2f24, lo: 0x9d, hi: 0x9d},
- {value: 0x2e4d, lo: 0x9e, hi: 0x9f},
+ {value: 0x3ecf, lo: 0x9a, hi: 0x9a},
+ {value: 0x4ae7, lo: 0x9c, hi: 0x9c},
+ {value: 0x4304, lo: 0x9d, hi: 0x9d},
+ {value: 0x3ed7, lo: 0x9e, hi: 0x9f},
// Block 0x20, offset 0xda
{value: 0x0000, lo: 0x03},
{value: 0x2751, lo: 0xb3, hi: 0xb3},
@@ -6148,10 +6148,10 @@ var nfkcSparseValues = [919]valueRange{
{value: 0x4bc5, lo: 0xb3, hi: 0xb3},
{value: 0x8129, lo: 0xb4, hi: 0xb4},
{value: 0x4bce, lo: 0xb5, hi: 0xb5},
- {value: 0x46f5, lo: 0xb6, hi: 0xb6},
- {value: 0x4735, lo: 0xb7, hi: 0xb7},
- {value: 0x46fd, lo: 0xb8, hi: 0xb8},
- {value: 0x4740, lo: 0xb9, hi: 0xb9},
+ {value: 0x466d, lo: 0xb6, hi: 0xb6},
+ {value: 0x4725, lo: 0xb7, hi: 0xb7},
+ {value: 0x4675, lo: 0xb8, hi: 0xb8},
+ {value: 0x4730, lo: 0xb9, hi: 0xb9},
{value: 0x8128, lo: 0xba, hi: 0xbd},
// Block 0x26, offset 0xff
{value: 0x0000, lo: 0x0b},
@@ -6172,7 +6172,7 @@ var nfkcSparseValues = [919]valueRange{
// Block 0x28, offset 0x10d
{value: 0x0000, lo: 0x05},
{value: 0xa000, lo: 0xa5, hi: 0xa5},
- {value: 0x2e55, lo: 0xa6, hi: 0xa6},
+ {value: 0x3edf, lo: 0xa6, hi: 0xa6},
{value: 0x9900, lo: 0xae, hi: 0xae},
{value: 0x8103, lo: 0xb7, hi: 0xb7},
{value: 0x8105, lo: 0xb9, hi: 0xba},
@@ -6238,10 +6238,10 @@ var nfkcSparseValues = [919]valueRange{
{value: 0x8133, lo: 0x8b, hi: 0x8e},
// Block 0x38, offset 0x140
{value: 0x0000, lo: 0x08},
- {value: 0x2e9d, lo: 0x80, hi: 0x80},
- {value: 0x2ea5, lo: 0x81, hi: 0x81},
+ {value: 0x3f27, lo: 0x80, hi: 0x80},
+ {value: 0x3f2f, lo: 0x81, hi: 0x81},
{value: 0xa000, lo: 0x82, hi: 0x82},
- {value: 0x2ead, lo: 0x83, hi: 0x83},
+ {value: 0x3f37, lo: 0x83, hi: 0x83},
{value: 0x8105, lo: 0x84, hi: 0x84},
{value: 0x8133, lo: 0xab, hi: 0xab},
{value: 0x812e, lo: 0xac, hi: 0xac},
@@ -6284,7 +6284,7 @@ var nfkcSparseValues = [919]valueRange{
{value: 0x0000, lo: 0x0d},
{value: 0x0001, lo: 0x80, hi: 0x8a},
{value: 0x0532, lo: 0x91, hi: 0x91},
- {value: 0x43dc, lo: 0x97, hi: 0x97},
+ {value: 0x4354, lo: 0x97, hi: 0x97},
{value: 0x001d, lo: 0xa4, hi: 0xa4},
{value: 0x19a0, lo: 0xa5, hi: 0xa5},
{value: 0x1c8c, lo: 0xa6, hi: 0xa6},
@@ -6294,7 +6294,7 @@ var nfkcSparseValues = [919]valueRange{
{value: 0x27c8, lo: 0xb6, hi: 0xb6},
{value: 0x293f, lo: 0xb7, hi: 0xb7},
{value: 0x199a, lo: 0xbc, hi: 0xbc},
- {value: 0x43aa, lo: 0xbe, hi: 0xbe},
+ {value: 0x4322, lo: 0xbe, hi: 0xbe},
// Block 0x3f, offset 0x174
{value: 0x0002, lo: 0x0d},
{value: 0x1a60, lo: 0x87, hi: 0x87},
@@ -6348,36 +6348,36 @@ var nfkcSparseValues = [919]valueRange{
{value: 0xa000, lo: 0x90, hi: 0x90},
{value: 0xa000, lo: 0x92, hi: 0x92},
{value: 0xa000, lo: 0x94, hi: 0x94},
- {value: 0x3cfa, lo: 0x9a, hi: 0x9b},
- {value: 0x3d08, lo: 0xae, hi: 0xae},
+ {value: 0x3b18, lo: 0x9a, hi: 0x9b},
+ {value: 0x3b26, lo: 0xae, hi: 0xae},
// Block 0x43, offset 0x1a7
{value: 0x000e, lo: 0x05},
- {value: 0x3d0f, lo: 0x8d, hi: 0x8e},
- {value: 0x3d16, lo: 0x8f, hi: 0x8f},
+ {value: 0x3b2d, lo: 0x8d, hi: 0x8e},
+ {value: 0x3b34, lo: 0x8f, hi: 0x8f},
{value: 0xa000, lo: 0x90, hi: 0x90},
{value: 0xa000, lo: 0x92, hi: 0x92},
{value: 0xa000, lo: 0x94, hi: 0x94},
// Block 0x44, offset 0x1ad
{value: 0x017a, lo: 0x0e},
{value: 0xa000, lo: 0x83, hi: 0x83},
- {value: 0x3d24, lo: 0x84, hi: 0x84},
+ {value: 0x3b42, lo: 0x84, hi: 0x84},
{value: 0xa000, lo: 0x88, hi: 0x88},
- {value: 0x3d2b, lo: 0x89, hi: 0x89},
+ {value: 0x3b49, lo: 0x89, hi: 0x89},
{value: 0xa000, lo: 0x8b, hi: 0x8b},
- {value: 0x3d32, lo: 0x8c, hi: 0x8c},
+ {value: 0x3b50, lo: 0x8c, hi: 0x8c},
{value: 0xa000, lo: 0xa3, hi: 0xa3},
- {value: 0x3d39, lo: 0xa4, hi: 0xa4},
+ {value: 0x3b57, lo: 0xa4, hi: 0xa4},
{value: 0xa000, lo: 0xa5, hi: 0xa5},
- {value: 0x3d40, lo: 0xa6, hi: 0xa6},
+ {value: 0x3b5e, lo: 0xa6, hi: 0xa6},
{value: 0x27cf, lo: 0xac, hi: 0xad},
{value: 0x27d6, lo: 0xaf, hi: 0xaf},
{value: 0x2953, lo: 0xb0, hi: 0xb0},
{value: 0xa000, lo: 0xbc, hi: 0xbc},
// Block 0x45, offset 0x1bc
{value: 0x0007, lo: 0x03},
- {value: 0x3da9, lo: 0xa0, hi: 0xa1},
- {value: 0x3dd3, lo: 0xa2, hi: 0xa3},
- {value: 0x3dfd, lo: 0xaa, hi: 0xad},
+ {value: 0x3bc7, lo: 0xa0, hi: 0xa1},
+ {value: 0x3bf1, lo: 0xa2, hi: 0xa3},
+ {value: 0x3c1b, lo: 0xaa, hi: 0xad},
// Block 0x46, offset 0x1c0
{value: 0x0004, lo: 0x01},
{value: 0x0586, lo: 0xa9, hi: 0xaa},
@@ -6395,7 +6395,7 @@ var nfkcSparseValues = [919]valueRange{
{value: 0x1a5a, lo: 0xb5, hi: 0xb6},
// Block 0x4a, offset 0x1cb
{value: 0x0000, lo: 0x01},
- {value: 0x461e, lo: 0x9c, hi: 0x9c},
+ {value: 0x4596, lo: 0x9c, hi: 0x9c},
// Block 0x4b, offset 0x1cd
{value: 0x0000, lo: 0x02},
{value: 0x0095, lo: 0xbc, hi: 0xbc},
@@ -6621,18 +6621,18 @@ var nfkcSparseValues = [919]valueRange{
// Block 0x77, offset 0x27f
{value: 0x17fe, lo: 0x07},
{value: 0xa000, lo: 0x99, hi: 0x99},
- {value: 0x4379, lo: 0x9a, hi: 0x9a},
+ {value: 0x4277, lo: 0x9a, hi: 0x9a},
{value: 0xa000, lo: 0x9b, hi: 0x9b},
- {value: 0x4383, lo: 0x9c, hi: 0x9c},
+ {value: 0x4281, lo: 0x9c, hi: 0x9c},
{value: 0xa000, lo: 0xa5, hi: 0xa5},
- {value: 0x438d, lo: 0xab, hi: 0xab},
+ {value: 0x428b, lo: 0xab, hi: 0xab},
{value: 0x8105, lo: 0xb9, hi: 0xba},
// Block 0x78, offset 0x287
{value: 0x0000, lo: 0x06},
{value: 0x8133, lo: 0x80, hi: 0x82},
{value: 0x9900, lo: 0xa7, hi: 0xa7},
- {value: 0x2eb5, lo: 0xae, hi: 0xae},
- {value: 0x2ebf, lo: 0xaf, hi: 0xaf},
+ {value: 0x4295, lo: 0xae, hi: 0xae},
+ {value: 0x429f, lo: 0xaf, hi: 0xaf},
{value: 0xa000, lo: 0xb1, hi: 0xb2},
{value: 0x8105, lo: 0xb3, hi: 0xb4},
// Block 0x79, offset 0x28e
@@ -6653,8 +6653,8 @@ var nfkcSparseValues = [919]valueRange{
// Block 0x7d, offset 0x299
{value: 0x0000, lo: 0x07},
{value: 0xa000, lo: 0x87, hi: 0x87},
- {value: 0x2ec9, lo: 0x8b, hi: 0x8b},
- {value: 0x2ed3, lo: 0x8c, hi: 0x8c},
+ {value: 0x42a9, lo: 0x8b, hi: 0x8b},
+ {value: 0x42b3, lo: 0x8c, hi: 0x8c},
{value: 0x8105, lo: 0x8d, hi: 0x8d},
{value: 0x9900, lo: 0x97, hi: 0x97},
{value: 0x8133, lo: 0xa6, hi: 0xac},
@@ -6665,13 +6665,13 @@ var nfkcSparseValues = [919]valueRange{
{value: 0x8103, lo: 0x86, hi: 0x86},
{value: 0x8133, lo: 0x9e, hi: 0x9e},
// Block 0x7f, offset 0x2a5
- {value: 0x6a23, lo: 0x06},
+ {value: 0x5643, lo: 0x06},
{value: 0x9900, lo: 0xb0, hi: 0xb0},
{value: 0xa000, lo: 0xb9, hi: 0xb9},
{value: 0x9900, lo: 0xba, hi: 0xba},
- {value: 0x2ee7, lo: 0xbb, hi: 0xbb},
- {value: 0x2edd, lo: 0xbc, hi: 0xbd},
- {value: 0x2ef1, lo: 0xbe, hi: 0xbe},
+ {value: 0x42c7, lo: 0xbb, hi: 0xbb},
+ {value: 0x42bd, lo: 0xbc, hi: 0xbd},
+ {value: 0x42d1, lo: 0xbe, hi: 0xbe},
// Block 0x80, offset 0x2ac
{value: 0x0000, lo: 0x02},
{value: 0x8105, lo: 0x82, hi: 0x82},
@@ -6680,8 +6680,8 @@ var nfkcSparseValues = [919]valueRange{
{value: 0x0000, lo: 0x05},
{value: 0x9900, lo: 0xaf, hi: 0xaf},
{value: 0xa000, lo: 0xb8, hi: 0xb9},
- {value: 0x2efb, lo: 0xba, hi: 0xba},
- {value: 0x2f05, lo: 0xbb, hi: 0xbb},
+ {value: 0x42db, lo: 0xba, hi: 0xba},
+ {value: 0x42e5, lo: 0xbb, hi: 0xbb},
{value: 0x8105, lo: 0xbf, hi: 0xbf},
// Block 0x82, offset 0x2b5
{value: 0x0000, lo: 0x01},
@@ -6704,7 +6704,7 @@ var nfkcSparseValues = [919]valueRange{
{value: 0x0000, lo: 0x04},
{value: 0x9900, lo: 0xb0, hi: 0xb0},
{value: 0xa000, lo: 0xb5, hi: 0xb5},
- {value: 0x2f0f, lo: 0xb8, hi: 0xb8},
+ {value: 0x42ef, lo: 0xb8, hi: 0xb8},
{value: 0x8105, lo: 0xbd, hi: 0xbe},
// Block 0x88, offset 0x2c6
{value: 0x0000, lo: 0x01},
@@ -6745,13 +6745,13 @@ var nfkcSparseValues = [919]valueRange{
{value: 0x8101, lo: 0x9e, hi: 0x9e},
// Block 0x94, offset 0x2df
{value: 0x0000, lo: 0x0c},
- {value: 0x470d, lo: 0x9e, hi: 0x9e},
- {value: 0x4717, lo: 0x9f, hi: 0x9f},
- {value: 0x474b, lo: 0xa0, hi: 0xa0},
- {value: 0x4759, lo: 0xa1, hi: 0xa1},
- {value: 0x4767, lo: 0xa2, hi: 0xa2},
- {value: 0x4775, lo: 0xa3, hi: 0xa3},
- {value: 0x4783, lo: 0xa4, hi: 0xa4},
+ {value: 0x46fd, lo: 0x9e, hi: 0x9e},
+ {value: 0x4707, lo: 0x9f, hi: 0x9f},
+ {value: 0x473b, lo: 0xa0, hi: 0xa0},
+ {value: 0x4749, lo: 0xa1, hi: 0xa1},
+ {value: 0x4757, lo: 0xa2, hi: 0xa2},
+ {value: 0x4765, lo: 0xa3, hi: 0xa3},
+ {value: 0x4773, lo: 0xa4, hi: 0xa4},
{value: 0x812c, lo: 0xa5, hi: 0xa6},
{value: 0x8101, lo: 0xa7, hi: 0xa9},
{value: 0x8131, lo: 0xad, hi: 0xad},
@@ -6763,14 +6763,14 @@ var nfkcSparseValues = [919]valueRange{
{value: 0x8133, lo: 0x85, hi: 0x89},
{value: 0x812e, lo: 0x8a, hi: 0x8b},
{value: 0x8133, lo: 0xaa, hi: 0xad},
- {value: 0x4721, lo: 0xbb, hi: 0xbb},
- {value: 0x472b, lo: 0xbc, hi: 0xbc},
- {value: 0x4791, lo: 0xbd, hi: 0xbd},
- {value: 0x47ad, lo: 0xbe, hi: 0xbe},
- {value: 0x479f, lo: 0xbf, hi: 0xbf},
+ {value: 0x4711, lo: 0xbb, hi: 0xbb},
+ {value: 0x471b, lo: 0xbc, hi: 0xbc},
+ {value: 0x4781, lo: 0xbd, hi: 0xbd},
+ {value: 0x479d, lo: 0xbe, hi: 0xbe},
+ {value: 0x478f, lo: 0xbf, hi: 0xbf},
// Block 0x96, offset 0x2f6
{value: 0x0000, lo: 0x01},
- {value: 0x47bb, lo: 0x80, hi: 0x80},
+ {value: 0x47ab, lo: 0x80, hi: 0x80},
// Block 0x97, offset 0x2f8
{value: 0x0000, lo: 0x01},
{value: 0x8133, lo: 0x82, hi: 0x84},
diff --git a/vendor/golang.org/x/text/unicode/norm/tables13.0.0.go b/vendor/golang.org/x/text/unicode/norm/tables17.0.0.go
similarity index 53%
rename from vendor/golang.org/x/text/unicode/norm/tables13.0.0.go
rename to vendor/golang.org/x/text/unicode/norm/tables17.0.0.go
index 0cceffd7..dfd555fc 100644
--- a/vendor/golang.org/x/text/unicode/norm/tables13.0.0.go
+++ b/vendor/golang.org/x/text/unicode/norm/tables17.0.0.go
@@ -1,6 +1,6 @@
// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
-//go:build go1.16 && !go1.21
+//go:build go1.27
package norm
@@ -8,7 +8,7 @@ import "sync"
const (
// Version is the Unicode edition from which the tables are derived.
- Version = "13.0.0"
+ Version = "17.0.0"
// MaxTransformChunkSize indicates the maximum number of bytes that Transform
// may need to write atomically for any Form. Making a destination buffer at
@@ -28,17 +28,17 @@ var ccc = [56]uint8{
}
const (
- firstMulti = 0x1870
- firstCCC = 0x2CAB
- endMulti = 0x2F77
- firstLeadingCCC = 0x49C5
- firstCCCZeroExcept = 0x4A8F
- firstStarterWithNLead = 0x4AB6
- lastDecomp = 0x4AB8
+ firstMulti = 0x199A
+ firstCCC = 0x2DD5
+ endMulti = 0x2EBF
+ firstLeadingCCC = 0x4B3F
+ firstCCCZeroExcept = 0x4C99
+ firstStarterWithNLead = 0x4CC0
+ lastDecomp = 0x4CC2
maxDecomp = 0x8000
)
-// decomps: 19128 bytes
+// decomps: 19650 bytes
var decomps = [...]byte{
// Bytes 0 - 3f
0x00, 0x41, 0x20, 0x41, 0x21, 0x41, 0x22, 0x41,
@@ -70,140 +70,175 @@ var decomps = [...]byte{
// Bytes c0 - ff
0xC2, 0xA2, 0x42, 0xC2, 0xA3, 0x42, 0xC2, 0xA5,
0x42, 0xC2, 0xA6, 0x42, 0xC2, 0xAC, 0x42, 0xC2,
- 0xB7, 0x42, 0xC3, 0x86, 0x42, 0xC3, 0xB0, 0x42,
- 0xC4, 0xA6, 0x42, 0xC4, 0xA7, 0x42, 0xC4, 0xB1,
- 0x42, 0xC5, 0x8B, 0x42, 0xC5, 0x93, 0x42, 0xC6,
- 0x8E, 0x42, 0xC6, 0x90, 0x42, 0xC6, 0xAB, 0x42,
- 0xC8, 0xA2, 0x42, 0xC8, 0xB7, 0x42, 0xC9, 0x90,
- 0x42, 0xC9, 0x91, 0x42, 0xC9, 0x92, 0x42, 0xC9,
+ 0xB7, 0x42, 0xC3, 0x86, 0x42, 0xC3, 0xA6, 0x42,
+ 0xC3, 0xB0, 0x42, 0xC3, 0xB8, 0x42, 0xC4, 0xA6,
+ 0x42, 0xC4, 0xA7, 0x42, 0xC4, 0xB1, 0x42, 0xC5,
+ 0x8B, 0x42, 0xC5, 0x93, 0x42, 0xC6, 0x8E, 0x42,
+ 0xC6, 0x90, 0x42, 0xC6, 0xAB, 0x42, 0xC7, 0x80,
+ 0x42, 0xC7, 0x81, 0x42, 0xC7, 0x82, 0x42, 0xC8,
// Bytes 100 - 13f
- 0x94, 0x42, 0xC9, 0x95, 0x42, 0xC9, 0x99, 0x42,
- 0xC9, 0x9B, 0x42, 0xC9, 0x9C, 0x42, 0xC9, 0x9F,
- 0x42, 0xC9, 0xA1, 0x42, 0xC9, 0xA3, 0x42, 0xC9,
- 0xA5, 0x42, 0xC9, 0xA6, 0x42, 0xC9, 0xA8, 0x42,
- 0xC9, 0xA9, 0x42, 0xC9, 0xAA, 0x42, 0xC9, 0xAB,
- 0x42, 0xC9, 0xAD, 0x42, 0xC9, 0xAF, 0x42, 0xC9,
+ 0xA2, 0x42, 0xC8, 0xB7, 0x42, 0xC9, 0x90, 0x42,
+ 0xC9, 0x91, 0x42, 0xC9, 0x92, 0x42, 0xC9, 0x93,
+ 0x42, 0xC9, 0x94, 0x42, 0xC9, 0x95, 0x42, 0xC9,
+ 0x96, 0x42, 0xC9, 0x97, 0x42, 0xC9, 0x98, 0x42,
+ 0xC9, 0x99, 0x42, 0xC9, 0x9B, 0x42, 0xC9, 0x9C,
+ 0x42, 0xC9, 0x9E, 0x42, 0xC9, 0x9F, 0x42, 0xC9,
+ 0xA0, 0x42, 0xC9, 0xA1, 0x42, 0xC9, 0xA2, 0x42,
+ 0xC9, 0xA3, 0x42, 0xC9, 0xA4, 0x42, 0xC9, 0xA5,
+ // Bytes 140 - 17f
+ 0x42, 0xC9, 0xA6, 0x42, 0xC9, 0xA7, 0x42, 0xC9,
+ 0xA8, 0x42, 0xC9, 0xA9, 0x42, 0xC9, 0xAA, 0x42,
+ 0xC9, 0xAB, 0x42, 0xC9, 0xAC, 0x42, 0xC9, 0xAD,
+ 0x42, 0xC9, 0xAE, 0x42, 0xC9, 0xAF, 0x42, 0xC9,
0xB0, 0x42, 0xC9, 0xB1, 0x42, 0xC9, 0xB2, 0x42,
0xC9, 0xB3, 0x42, 0xC9, 0xB4, 0x42, 0xC9, 0xB5,
- // Bytes 140 - 17f
- 0x42, 0xC9, 0xB8, 0x42, 0xC9, 0xB9, 0x42, 0xC9,
- 0xBB, 0x42, 0xCA, 0x81, 0x42, 0xCA, 0x82, 0x42,
- 0xCA, 0x83, 0x42, 0xCA, 0x89, 0x42, 0xCA, 0x8A,
- 0x42, 0xCA, 0x8B, 0x42, 0xCA, 0x8C, 0x42, 0xCA,
- 0x8D, 0x42, 0xCA, 0x90, 0x42, 0xCA, 0x91, 0x42,
- 0xCA, 0x92, 0x42, 0xCA, 0x95, 0x42, 0xCA, 0x9D,
- 0x42, 0xCA, 0x9F, 0x42, 0xCA, 0xB9, 0x42, 0xCE,
- 0x91, 0x42, 0xCE, 0x92, 0x42, 0xCE, 0x93, 0x42,
+ 0x42, 0xC9, 0xB6, 0x42, 0xC9, 0xB7, 0x42, 0xC9,
+ 0xB8, 0x42, 0xC9, 0xB9, 0x42, 0xC9, 0xBA, 0x42,
// Bytes 180 - 1bf
- 0xCE, 0x94, 0x42, 0xCE, 0x95, 0x42, 0xCE, 0x96,
- 0x42, 0xCE, 0x97, 0x42, 0xCE, 0x98, 0x42, 0xCE,
- 0x99, 0x42, 0xCE, 0x9A, 0x42, 0xCE, 0x9B, 0x42,
- 0xCE, 0x9C, 0x42, 0xCE, 0x9D, 0x42, 0xCE, 0x9E,
- 0x42, 0xCE, 0x9F, 0x42, 0xCE, 0xA0, 0x42, 0xCE,
- 0xA1, 0x42, 0xCE, 0xA3, 0x42, 0xCE, 0xA4, 0x42,
- 0xCE, 0xA5, 0x42, 0xCE, 0xA6, 0x42, 0xCE, 0xA7,
- 0x42, 0xCE, 0xA8, 0x42, 0xCE, 0xA9, 0x42, 0xCE,
+ 0xC9, 0xBB, 0x42, 0xC9, 0xBD, 0x42, 0xC9, 0xBE,
+ 0x42, 0xCA, 0x80, 0x42, 0xCA, 0x81, 0x42, 0xCA,
+ 0x82, 0x42, 0xCA, 0x83, 0x42, 0xCA, 0x84, 0x42,
+ 0xCA, 0x88, 0x42, 0xCA, 0x89, 0x42, 0xCA, 0x8A,
+ 0x42, 0xCA, 0x8B, 0x42, 0xCA, 0x8C, 0x42, 0xCA,
+ 0x8D, 0x42, 0xCA, 0x8E, 0x42, 0xCA, 0x8F, 0x42,
+ 0xCA, 0x90, 0x42, 0xCA, 0x91, 0x42, 0xCA, 0x92,
+ 0x42, 0xCA, 0x95, 0x42, 0xCA, 0x98, 0x42, 0xCA,
// Bytes 1c0 - 1ff
- 0xB1, 0x42, 0xCE, 0xB2, 0x42, 0xCE, 0xB3, 0x42,
- 0xCE, 0xB4, 0x42, 0xCE, 0xB5, 0x42, 0xCE, 0xB6,
- 0x42, 0xCE, 0xB7, 0x42, 0xCE, 0xB8, 0x42, 0xCE,
- 0xB9, 0x42, 0xCE, 0xBA, 0x42, 0xCE, 0xBB, 0x42,
- 0xCE, 0xBC, 0x42, 0xCE, 0xBD, 0x42, 0xCE, 0xBE,
- 0x42, 0xCE, 0xBF, 0x42, 0xCF, 0x80, 0x42, 0xCF,
- 0x81, 0x42, 0xCF, 0x82, 0x42, 0xCF, 0x83, 0x42,
- 0xCF, 0x84, 0x42, 0xCF, 0x85, 0x42, 0xCF, 0x86,
+ 0x99, 0x42, 0xCA, 0x9B, 0x42, 0xCA, 0x9C, 0x42,
+ 0xCA, 0x9D, 0x42, 0xCA, 0x9F, 0x42, 0xCA, 0xA1,
+ 0x42, 0xCA, 0xA2, 0x42, 0xCA, 0xA3, 0x42, 0xCA,
+ 0xA4, 0x42, 0xCA, 0xA5, 0x42, 0xCA, 0xA6, 0x42,
+ 0xCA, 0xA7, 0x42, 0xCA, 0xA8, 0x42, 0xCA, 0xA9,
+ 0x42, 0xCA, 0xAA, 0x42, 0xCA, 0xAB, 0x42, 0xCA,
+ 0xB9, 0x42, 0xCB, 0x90, 0x42, 0xCB, 0x91, 0x42,
+ 0xCE, 0x91, 0x42, 0xCE, 0x92, 0x42, 0xCE, 0x93,
// Bytes 200 - 23f
- 0x42, 0xCF, 0x87, 0x42, 0xCF, 0x88, 0x42, 0xCF,
- 0x89, 0x42, 0xCF, 0x9C, 0x42, 0xCF, 0x9D, 0x42,
- 0xD0, 0xBD, 0x42, 0xD1, 0x8A, 0x42, 0xD1, 0x8C,
+ 0x42, 0xCE, 0x94, 0x42, 0xCE, 0x95, 0x42, 0xCE,
+ 0x96, 0x42, 0xCE, 0x97, 0x42, 0xCE, 0x98, 0x42,
+ 0xCE, 0x99, 0x42, 0xCE, 0x9A, 0x42, 0xCE, 0x9B,
+ 0x42, 0xCE, 0x9C, 0x42, 0xCE, 0x9D, 0x42, 0xCE,
+ 0x9E, 0x42, 0xCE, 0x9F, 0x42, 0xCE, 0xA0, 0x42,
+ 0xCE, 0xA1, 0x42, 0xCE, 0xA3, 0x42, 0xCE, 0xA4,
+ 0x42, 0xCE, 0xA5, 0x42, 0xCE, 0xA6, 0x42, 0xCE,
+ 0xA7, 0x42, 0xCE, 0xA8, 0x42, 0xCE, 0xA9, 0x42,
+ // Bytes 240 - 27f
+ 0xCE, 0xB1, 0x42, 0xCE, 0xB2, 0x42, 0xCE, 0xB3,
+ 0x42, 0xCE, 0xB4, 0x42, 0xCE, 0xB5, 0x42, 0xCE,
+ 0xB6, 0x42, 0xCE, 0xB7, 0x42, 0xCE, 0xB8, 0x42,
+ 0xCE, 0xB9, 0x42, 0xCE, 0xBA, 0x42, 0xCE, 0xBB,
+ 0x42, 0xCE, 0xBC, 0x42, 0xCE, 0xBD, 0x42, 0xCE,
+ 0xBE, 0x42, 0xCE, 0xBF, 0x42, 0xCF, 0x80, 0x42,
+ 0xCF, 0x81, 0x42, 0xCF, 0x82, 0x42, 0xCF, 0x83,
+ 0x42, 0xCF, 0x84, 0x42, 0xCF, 0x85, 0x42, 0xCF,
+ // Bytes 280 - 2bf
+ 0x86, 0x42, 0xCF, 0x87, 0x42, 0xCF, 0x88, 0x42,
+ 0xCF, 0x89, 0x42, 0xCF, 0x9C, 0x42, 0xCF, 0x9D,
+ 0x42, 0xD0, 0xB0, 0x42, 0xD0, 0xB1, 0x42, 0xD0,
+ 0xB2, 0x42, 0xD0, 0xB3, 0x42, 0xD0, 0xB4, 0x42,
+ 0xD0, 0xB5, 0x42, 0xD0, 0xB6, 0x42, 0xD0, 0xB7,
+ 0x42, 0xD0, 0xB8, 0x42, 0xD0, 0xBA, 0x42, 0xD0,
+ 0xBB, 0x42, 0xD0, 0xBC, 0x42, 0xD0, 0xBD, 0x42,
+ 0xD0, 0xBE, 0x42, 0xD0, 0xBF, 0x42, 0xD1, 0x80,
+ // Bytes 2c0 - 2ff
+ 0x42, 0xD1, 0x81, 0x42, 0xD1, 0x82, 0x42, 0xD1,
+ 0x83, 0x42, 0xD1, 0x84, 0x42, 0xD1, 0x85, 0x42,
+ 0xD1, 0x86, 0x42, 0xD1, 0x87, 0x42, 0xD1, 0x88,
+ 0x42, 0xD1, 0x8A, 0x42, 0xD1, 0x8B, 0x42, 0xD1,
+ 0x8C, 0x42, 0xD1, 0x8D, 0x42, 0xD1, 0x8E, 0x42,
+ 0xD1, 0x95, 0x42, 0xD1, 0x96, 0x42, 0xD1, 0x98,
+ 0x42, 0xD1, 0x9F, 0x42, 0xD2, 0x91, 0x42, 0xD2,
+ 0xAB, 0x42, 0xD2, 0xAF, 0x42, 0xD2, 0xB1, 0x42,
+ // Bytes 300 - 33f
+ 0xD3, 0x8F, 0x42, 0xD3, 0x99, 0x42, 0xD3, 0xA9,
0x42, 0xD7, 0x90, 0x42, 0xD7, 0x91, 0x42, 0xD7,
0x92, 0x42, 0xD7, 0x93, 0x42, 0xD7, 0x94, 0x42,
0xD7, 0x9B, 0x42, 0xD7, 0x9C, 0x42, 0xD7, 0x9D,
0x42, 0xD7, 0xA2, 0x42, 0xD7, 0xA8, 0x42, 0xD7,
0xAA, 0x42, 0xD8, 0xA1, 0x42, 0xD8, 0xA7, 0x42,
- // Bytes 240 - 27f
0xD8, 0xA8, 0x42, 0xD8, 0xA9, 0x42, 0xD8, 0xAA,
0x42, 0xD8, 0xAB, 0x42, 0xD8, 0xAC, 0x42, 0xD8,
+ // Bytes 340 - 37f
0xAD, 0x42, 0xD8, 0xAE, 0x42, 0xD8, 0xAF, 0x42,
0xD8, 0xB0, 0x42, 0xD8, 0xB1, 0x42, 0xD8, 0xB2,
0x42, 0xD8, 0xB3, 0x42, 0xD8, 0xB4, 0x42, 0xD8,
0xB5, 0x42, 0xD8, 0xB6, 0x42, 0xD8, 0xB7, 0x42,
0xD8, 0xB8, 0x42, 0xD8, 0xB9, 0x42, 0xD8, 0xBA,
0x42, 0xD9, 0x81, 0x42, 0xD9, 0x82, 0x42, 0xD9,
- // Bytes 280 - 2bf
0x83, 0x42, 0xD9, 0x84, 0x42, 0xD9, 0x85, 0x42,
0xD9, 0x86, 0x42, 0xD9, 0x87, 0x42, 0xD9, 0x88,
+ // Bytes 380 - 3bf
0x42, 0xD9, 0x89, 0x42, 0xD9, 0x8A, 0x42, 0xD9,
0xAE, 0x42, 0xD9, 0xAF, 0x42, 0xD9, 0xB1, 0x42,
0xD9, 0xB9, 0x42, 0xD9, 0xBA, 0x42, 0xD9, 0xBB,
0x42, 0xD9, 0xBE, 0x42, 0xD9, 0xBF, 0x42, 0xDA,
0x80, 0x42, 0xDA, 0x83, 0x42, 0xDA, 0x84, 0x42,
0xDA, 0x86, 0x42, 0xDA, 0x87, 0x42, 0xDA, 0x88,
- // Bytes 2c0 - 2ff
0x42, 0xDA, 0x8C, 0x42, 0xDA, 0x8D, 0x42, 0xDA,
0x8E, 0x42, 0xDA, 0x91, 0x42, 0xDA, 0x98, 0x42,
+ // Bytes 3c0 - 3ff
0xDA, 0xA1, 0x42, 0xDA, 0xA4, 0x42, 0xDA, 0xA6,
0x42, 0xDA, 0xA9, 0x42, 0xDA, 0xAD, 0x42, 0xDA,
0xAF, 0x42, 0xDA, 0xB1, 0x42, 0xDA, 0xB3, 0x42,
0xDA, 0xBA, 0x42, 0xDA, 0xBB, 0x42, 0xDA, 0xBE,
0x42, 0xDB, 0x81, 0x42, 0xDB, 0x85, 0x42, 0xDB,
0x86, 0x42, 0xDB, 0x87, 0x42, 0xDB, 0x88, 0x42,
- // Bytes 300 - 33f
0xDB, 0x89, 0x42, 0xDB, 0x8B, 0x42, 0xDB, 0x8C,
0x42, 0xDB, 0x90, 0x42, 0xDB, 0x92, 0x43, 0xE0,
+ // Bytes 400 - 43f
0xBC, 0x8B, 0x43, 0xE1, 0x83, 0x9C, 0x43, 0xE1,
0x84, 0x80, 0x43, 0xE1, 0x84, 0x81, 0x43, 0xE1,
0x84, 0x82, 0x43, 0xE1, 0x84, 0x83, 0x43, 0xE1,
0x84, 0x84, 0x43, 0xE1, 0x84, 0x85, 0x43, 0xE1,
0x84, 0x86, 0x43, 0xE1, 0x84, 0x87, 0x43, 0xE1,
0x84, 0x88, 0x43, 0xE1, 0x84, 0x89, 0x43, 0xE1,
- // Bytes 340 - 37f
0x84, 0x8A, 0x43, 0xE1, 0x84, 0x8B, 0x43, 0xE1,
0x84, 0x8C, 0x43, 0xE1, 0x84, 0x8D, 0x43, 0xE1,
+ // Bytes 440 - 47f
0x84, 0x8E, 0x43, 0xE1, 0x84, 0x8F, 0x43, 0xE1,
0x84, 0x90, 0x43, 0xE1, 0x84, 0x91, 0x43, 0xE1,
0x84, 0x92, 0x43, 0xE1, 0x84, 0x94, 0x43, 0xE1,
0x84, 0x95, 0x43, 0xE1, 0x84, 0x9A, 0x43, 0xE1,
0x84, 0x9C, 0x43, 0xE1, 0x84, 0x9D, 0x43, 0xE1,
0x84, 0x9E, 0x43, 0xE1, 0x84, 0xA0, 0x43, 0xE1,
- // Bytes 380 - 3bf
0x84, 0xA1, 0x43, 0xE1, 0x84, 0xA2, 0x43, 0xE1,
0x84, 0xA3, 0x43, 0xE1, 0x84, 0xA7, 0x43, 0xE1,
+ // Bytes 480 - 4bf
0x84, 0xA9, 0x43, 0xE1, 0x84, 0xAB, 0x43, 0xE1,
0x84, 0xAC, 0x43, 0xE1, 0x84, 0xAD, 0x43, 0xE1,
0x84, 0xAE, 0x43, 0xE1, 0x84, 0xAF, 0x43, 0xE1,
0x84, 0xB2, 0x43, 0xE1, 0x84, 0xB6, 0x43, 0xE1,
0x85, 0x80, 0x43, 0xE1, 0x85, 0x87, 0x43, 0xE1,
0x85, 0x8C, 0x43, 0xE1, 0x85, 0x97, 0x43, 0xE1,
- // Bytes 3c0 - 3ff
0x85, 0x98, 0x43, 0xE1, 0x85, 0x99, 0x43, 0xE1,
0x85, 0xA0, 0x43, 0xE1, 0x86, 0x84, 0x43, 0xE1,
+ // Bytes 4c0 - 4ff
0x86, 0x85, 0x43, 0xE1, 0x86, 0x88, 0x43, 0xE1,
0x86, 0x91, 0x43, 0xE1, 0x86, 0x92, 0x43, 0xE1,
0x86, 0x94, 0x43, 0xE1, 0x86, 0x9E, 0x43, 0xE1,
0x86, 0xA1, 0x43, 0xE1, 0x87, 0x87, 0x43, 0xE1,
0x87, 0x88, 0x43, 0xE1, 0x87, 0x8C, 0x43, 0xE1,
0x87, 0x8E, 0x43, 0xE1, 0x87, 0x93, 0x43, 0xE1,
- // Bytes 400 - 43f
0x87, 0x97, 0x43, 0xE1, 0x87, 0x99, 0x43, 0xE1,
0x87, 0x9D, 0x43, 0xE1, 0x87, 0x9F, 0x43, 0xE1,
+ // Bytes 500 - 53f
0x87, 0xB1, 0x43, 0xE1, 0x87, 0xB2, 0x43, 0xE1,
0xB4, 0x82, 0x43, 0xE1, 0xB4, 0x96, 0x43, 0xE1,
0xB4, 0x97, 0x43, 0xE1, 0xB4, 0x9C, 0x43, 0xE1,
0xB4, 0x9D, 0x43, 0xE1, 0xB4, 0xA5, 0x43, 0xE1,
- 0xB5, 0xBB, 0x43, 0xE1, 0xB6, 0x85, 0x43, 0xE2,
- 0x80, 0x82, 0x43, 0xE2, 0x80, 0x83, 0x43, 0xE2,
- // Bytes 440 - 47f
- 0x80, 0x90, 0x43, 0xE2, 0x80, 0x93, 0x43, 0xE2,
- 0x80, 0x94, 0x43, 0xE2, 0x82, 0xA9, 0x43, 0xE2,
- 0x86, 0x90, 0x43, 0xE2, 0x86, 0x91, 0x43, 0xE2,
- 0x86, 0x92, 0x43, 0xE2, 0x86, 0x93, 0x43, 0xE2,
- 0x88, 0x82, 0x43, 0xE2, 0x88, 0x87, 0x43, 0xE2,
- 0x88, 0x91, 0x43, 0xE2, 0x88, 0x92, 0x43, 0xE2,
- 0x94, 0x82, 0x43, 0xE2, 0x96, 0xA0, 0x43, 0xE2,
- 0x97, 0x8B, 0x43, 0xE2, 0xA6, 0x85, 0x43, 0xE2,
- // Bytes 480 - 4bf
- 0xA6, 0x86, 0x43, 0xE2, 0xB5, 0xA1, 0x43, 0xE3,
+ 0xB5, 0xBB, 0x43, 0xE1, 0xB6, 0x85, 0x43, 0xE1,
+ 0xB6, 0x91, 0x43, 0xE2, 0x80, 0x82, 0x43, 0xE2,
+ 0x80, 0x83, 0x43, 0xE2, 0x80, 0x90, 0x43, 0xE2,
+ 0x80, 0x93, 0x43, 0xE2, 0x80, 0x94, 0x43, 0xE2,
+ // Bytes 540 - 57f
+ 0x82, 0xA9, 0x43, 0xE2, 0x86, 0x90, 0x43, 0xE2,
+ 0x86, 0x91, 0x43, 0xE2, 0x86, 0x92, 0x43, 0xE2,
+ 0x86, 0x93, 0x43, 0xE2, 0x88, 0x82, 0x43, 0xE2,
+ 0x88, 0x87, 0x43, 0xE2, 0x88, 0x91, 0x43, 0xE2,
+ 0x88, 0x92, 0x43, 0xE2, 0x94, 0x82, 0x43, 0xE2,
+ 0x96, 0xA0, 0x43, 0xE2, 0x97, 0x8B, 0x43, 0xE2,
+ 0xA6, 0x85, 0x43, 0xE2, 0xA6, 0x86, 0x43, 0xE2,
+ 0xB1, 0xB1, 0x43, 0xE2, 0xB5, 0xA1, 0x43, 0xE3,
+ // Bytes 580 - 5bf
0x80, 0x81, 0x43, 0xE3, 0x80, 0x82, 0x43, 0xE3,
0x80, 0x88, 0x43, 0xE3, 0x80, 0x89, 0x43, 0xE3,
0x80, 0x8A, 0x43, 0xE3, 0x80, 0x8B, 0x43, 0xE3,
@@ -211,8 +246,8 @@ var decomps = [...]byte{
0x80, 0x8E, 0x43, 0xE3, 0x80, 0x8F, 0x43, 0xE3,
0x80, 0x90, 0x43, 0xE3, 0x80, 0x91, 0x43, 0xE3,
0x80, 0x92, 0x43, 0xE3, 0x80, 0x94, 0x43, 0xE3,
- // Bytes 4c0 - 4ff
0x80, 0x95, 0x43, 0xE3, 0x80, 0x96, 0x43, 0xE3,
+ // Bytes 5c0 - 5ff
0x80, 0x97, 0x43, 0xE3, 0x82, 0xA1, 0x43, 0xE3,
0x82, 0xA2, 0x43, 0xE3, 0x82, 0xA3, 0x43, 0xE3,
0x82, 0xA4, 0x43, 0xE3, 0x82, 0xA5, 0x43, 0xE3,
@@ -220,8 +255,8 @@ var decomps = [...]byte{
0x82, 0xA8, 0x43, 0xE3, 0x82, 0xA9, 0x43, 0xE3,
0x82, 0xAA, 0x43, 0xE3, 0x82, 0xAB, 0x43, 0xE3,
0x82, 0xAD, 0x43, 0xE3, 0x82, 0xAF, 0x43, 0xE3,
- // Bytes 500 - 53f
0x82, 0xB1, 0x43, 0xE3, 0x82, 0xB3, 0x43, 0xE3,
+ // Bytes 600 - 63f
0x82, 0xB5, 0x43, 0xE3, 0x82, 0xB7, 0x43, 0xE3,
0x82, 0xB9, 0x43, 0xE3, 0x82, 0xBB, 0x43, 0xE3,
0x82, 0xBD, 0x43, 0xE3, 0x82, 0xBF, 0x43, 0xE3,
@@ -229,8 +264,8 @@ var decomps = [...]byte{
0x83, 0x84, 0x43, 0xE3, 0x83, 0x86, 0x43, 0xE3,
0x83, 0x88, 0x43, 0xE3, 0x83, 0x8A, 0x43, 0xE3,
0x83, 0x8B, 0x43, 0xE3, 0x83, 0x8C, 0x43, 0xE3,
- // Bytes 540 - 57f
0x83, 0x8D, 0x43, 0xE3, 0x83, 0x8E, 0x43, 0xE3,
+ // Bytes 640 - 67f
0x83, 0x8F, 0x43, 0xE3, 0x83, 0x92, 0x43, 0xE3,
0x83, 0x95, 0x43, 0xE3, 0x83, 0x98, 0x43, 0xE3,
0x83, 0x9B, 0x43, 0xE3, 0x83, 0x9E, 0x43, 0xE3,
@@ -238,8 +273,8 @@ var decomps = [...]byte{
0x83, 0xA1, 0x43, 0xE3, 0x83, 0xA2, 0x43, 0xE3,
0x83, 0xA3, 0x43, 0xE3, 0x83, 0xA4, 0x43, 0xE3,
0x83, 0xA5, 0x43, 0xE3, 0x83, 0xA6, 0x43, 0xE3,
- // Bytes 580 - 5bf
0x83, 0xA7, 0x43, 0xE3, 0x83, 0xA8, 0x43, 0xE3,
+ // Bytes 680 - 6bf
0x83, 0xA9, 0x43, 0xE3, 0x83, 0xAA, 0x43, 0xE3,
0x83, 0xAB, 0x43, 0xE3, 0x83, 0xAC, 0x43, 0xE3,
0x83, 0xAD, 0x43, 0xE3, 0x83, 0xAF, 0x43, 0xE3,
@@ -247,8 +282,8 @@ var decomps = [...]byte{
0x83, 0xB2, 0x43, 0xE3, 0x83, 0xB3, 0x43, 0xE3,
0x83, 0xBB, 0x43, 0xE3, 0x83, 0xBC, 0x43, 0xE3,
0x92, 0x9E, 0x43, 0xE3, 0x92, 0xB9, 0x43, 0xE3,
- // Bytes 5c0 - 5ff
0x92, 0xBB, 0x43, 0xE3, 0x93, 0x9F, 0x43, 0xE3,
+ // Bytes 6c0 - 6ff
0x94, 0x95, 0x43, 0xE3, 0x9B, 0xAE, 0x43, 0xE3,
0x9B, 0xBC, 0x43, 0xE3, 0x9E, 0x81, 0x43, 0xE3,
0xA0, 0xAF, 0x43, 0xE3, 0xA1, 0xA2, 0x43, 0xE3,
@@ -256,8 +291,8 @@ var decomps = [...]byte{
0xA3, 0xA3, 0x43, 0xE3, 0xA4, 0x9C, 0x43, 0xE3,
0xA4, 0xBA, 0x43, 0xE3, 0xA8, 0xAE, 0x43, 0xE3,
0xA9, 0xAC, 0x43, 0xE3, 0xAB, 0xA4, 0x43, 0xE3,
- // Bytes 600 - 63f
0xAC, 0x88, 0x43, 0xE3, 0xAC, 0x99, 0x43, 0xE3,
+ // Bytes 700 - 73f
0xAD, 0x89, 0x43, 0xE3, 0xAE, 0x9D, 0x43, 0xE3,
0xB0, 0x98, 0x43, 0xE3, 0xB1, 0x8E, 0x43, 0xE3,
0xB4, 0xB3, 0x43, 0xE3, 0xB6, 0x96, 0x43, 0xE3,
@@ -265,8 +300,8 @@ var decomps = [...]byte{
0xBC, 0x9B, 0x43, 0xE3, 0xBF, 0xBC, 0x43, 0xE4,
0x80, 0x88, 0x43, 0xE4, 0x80, 0x98, 0x43, 0xE4,
0x80, 0xB9, 0x43, 0xE4, 0x81, 0x86, 0x43, 0xE4,
- // Bytes 640 - 67f
0x82, 0x96, 0x43, 0xE4, 0x83, 0xA3, 0x43, 0xE4,
+ // Bytes 740 - 77f
0x84, 0xAF, 0x43, 0xE4, 0x88, 0x82, 0x43, 0xE4,
0x88, 0xA7, 0x43, 0xE4, 0x8A, 0xA0, 0x43, 0xE4,
0x8C, 0x81, 0x43, 0xE4, 0x8C, 0xB4, 0x43, 0xE4,
@@ -274,8 +309,8 @@ var decomps = [...]byte{
0x8F, 0x99, 0x43, 0xE4, 0x90, 0x8B, 0x43, 0xE4,
0x91, 0xAB, 0x43, 0xE4, 0x94, 0xAB, 0x43, 0xE4,
0x95, 0x9D, 0x43, 0xE4, 0x95, 0xA1, 0x43, 0xE4,
- // Bytes 680 - 6bf
0x95, 0xAB, 0x43, 0xE4, 0x97, 0x97, 0x43, 0xE4,
+ // Bytes 780 - 7bf
0x97, 0xB9, 0x43, 0xE4, 0x98, 0xB5, 0x43, 0xE4,
0x9A, 0xBE, 0x43, 0xE4, 0x9B, 0x87, 0x43, 0xE4,
0xA6, 0x95, 0x43, 0xE4, 0xA7, 0xA6, 0x43, 0xE4,
@@ -283,8 +318,8 @@ var decomps = [...]byte{
0xAA, 0xB2, 0x43, 0xE4, 0xAC, 0xB3, 0x43, 0xE4,
0xAF, 0x8E, 0x43, 0xE4, 0xB3, 0x8E, 0x43, 0xE4,
0xB3, 0xAD, 0x43, 0xE4, 0xB3, 0xB8, 0x43, 0xE4,
- // Bytes 6c0 - 6ff
0xB5, 0x96, 0x43, 0xE4, 0xB8, 0x80, 0x43, 0xE4,
+ // Bytes 7c0 - 7ff
0xB8, 0x81, 0x43, 0xE4, 0xB8, 0x83, 0x43, 0xE4,
0xB8, 0x89, 0x43, 0xE4, 0xB8, 0x8A, 0x43, 0xE4,
0xB8, 0x8B, 0x43, 0xE4, 0xB8, 0x8D, 0x43, 0xE4,
@@ -292,8 +327,8 @@ var decomps = [...]byte{
0xB8, 0xA8, 0x43, 0xE4, 0xB8, 0xAD, 0x43, 0xE4,
0xB8, 0xB2, 0x43, 0xE4, 0xB8, 0xB6, 0x43, 0xE4,
0xB8, 0xB8, 0x43, 0xE4, 0xB8, 0xB9, 0x43, 0xE4,
- // Bytes 700 - 73f
0xB8, 0xBD, 0x43, 0xE4, 0xB8, 0xBF, 0x43, 0xE4,
+ // Bytes 800 - 83f
0xB9, 0x81, 0x43, 0xE4, 0xB9, 0x99, 0x43, 0xE4,
0xB9, 0x9D, 0x43, 0xE4, 0xBA, 0x82, 0x43, 0xE4,
0xBA, 0x85, 0x43, 0xE4, 0xBA, 0x86, 0x43, 0xE4,
@@ -301,8 +336,8 @@ var decomps = [...]byte{
0xBA, 0xA0, 0x43, 0xE4, 0xBA, 0xA4, 0x43, 0xE4,
0xBA, 0xAE, 0x43, 0xE4, 0xBA, 0xBA, 0x43, 0xE4,
0xBB, 0x80, 0x43, 0xE4, 0xBB, 0x8C, 0x43, 0xE4,
- // Bytes 740 - 77f
0xBB, 0xA4, 0x43, 0xE4, 0xBC, 0x81, 0x43, 0xE4,
+ // Bytes 840 - 87f
0xBC, 0x91, 0x43, 0xE4, 0xBD, 0xA0, 0x43, 0xE4,
0xBE, 0x80, 0x43, 0xE4, 0xBE, 0x86, 0x43, 0xE4,
0xBE, 0x8B, 0x43, 0xE4, 0xBE, 0xAE, 0x43, 0xE4,
@@ -310,8 +345,8 @@ var decomps = [...]byte{
0x80, 0x82, 0x43, 0xE5, 0x80, 0xAB, 0x43, 0xE5,
0x81, 0xBA, 0x43, 0xE5, 0x82, 0x99, 0x43, 0xE5,
0x83, 0x8F, 0x43, 0xE5, 0x83, 0x9A, 0x43, 0xE5,
- // Bytes 780 - 7bf
0x83, 0xA7, 0x43, 0xE5, 0x84, 0xAA, 0x43, 0xE5,
+ // Bytes 880 - 8bf
0x84, 0xBF, 0x43, 0xE5, 0x85, 0x80, 0x43, 0xE5,
0x85, 0x85, 0x43, 0xE5, 0x85, 0x8D, 0x43, 0xE5,
0x85, 0x94, 0x43, 0xE5, 0x85, 0xA4, 0x43, 0xE5,
@@ -319,8 +354,8 @@ var decomps = [...]byte{
0x85, 0xA8, 0x43, 0xE5, 0x85, 0xA9, 0x43, 0xE5,
0x85, 0xAB, 0x43, 0xE5, 0x85, 0xAD, 0x43, 0xE5,
0x85, 0xB7, 0x43, 0xE5, 0x86, 0x80, 0x43, 0xE5,
- // Bytes 7c0 - 7ff
0x86, 0x82, 0x43, 0xE5, 0x86, 0x8D, 0x43, 0xE5,
+ // Bytes 8c0 - 8ff
0x86, 0x92, 0x43, 0xE5, 0x86, 0x95, 0x43, 0xE5,
0x86, 0x96, 0x43, 0xE5, 0x86, 0x97, 0x43, 0xE5,
0x86, 0x99, 0x43, 0xE5, 0x86, 0xA4, 0x43, 0xE5,
@@ -328,8 +363,8 @@ var decomps = [...]byte{
0x86, 0xB5, 0x43, 0xE5, 0x86, 0xB7, 0x43, 0xE5,
0x87, 0x89, 0x43, 0xE5, 0x87, 0x8C, 0x43, 0xE5,
0x87, 0x9C, 0x43, 0xE5, 0x87, 0x9E, 0x43, 0xE5,
- // Bytes 800 - 83f
0x87, 0xA0, 0x43, 0xE5, 0x87, 0xB5, 0x43, 0xE5,
+ // Bytes 900 - 93f
0x88, 0x80, 0x43, 0xE5, 0x88, 0x83, 0x43, 0xE5,
0x88, 0x87, 0x43, 0xE5, 0x88, 0x97, 0x43, 0xE5,
0x88, 0x9D, 0x43, 0xE5, 0x88, 0xA9, 0x43, 0xE5,
@@ -337,8 +372,8 @@ var decomps = [...]byte{
0x89, 0x86, 0x43, 0xE5, 0x89, 0x8D, 0x43, 0xE5,
0x89, 0xB2, 0x43, 0xE5, 0x89, 0xB7, 0x43, 0xE5,
0x8A, 0x89, 0x43, 0xE5, 0x8A, 0x9B, 0x43, 0xE5,
- // Bytes 840 - 87f
0x8A, 0xA3, 0x43, 0xE5, 0x8A, 0xB3, 0x43, 0xE5,
+ // Bytes 940 - 97f
0x8A, 0xB4, 0x43, 0xE5, 0x8B, 0x87, 0x43, 0xE5,
0x8B, 0x89, 0x43, 0xE5, 0x8B, 0x92, 0x43, 0xE5,
0x8B, 0x9E, 0x43, 0xE5, 0x8B, 0xA4, 0x43, 0xE5,
@@ -346,8 +381,8 @@ var decomps = [...]byte{
0x8B, 0xBA, 0x43, 0xE5, 0x8C, 0x85, 0x43, 0xE5,
0x8C, 0x86, 0x43, 0xE5, 0x8C, 0x95, 0x43, 0xE5,
0x8C, 0x97, 0x43, 0xE5, 0x8C, 0x9A, 0x43, 0xE5,
- // Bytes 880 - 8bf
0x8C, 0xB8, 0x43, 0xE5, 0x8C, 0xBB, 0x43, 0xE5,
+ // Bytes 980 - 9bf
0x8C, 0xBF, 0x43, 0xE5, 0x8D, 0x81, 0x43, 0xE5,
0x8D, 0x84, 0x43, 0xE5, 0x8D, 0x85, 0x43, 0xE5,
0x8D, 0x89, 0x43, 0xE5, 0x8D, 0x91, 0x43, 0xE5,
@@ -355,8 +390,8 @@ var decomps = [...]byte{
0x8D, 0x9C, 0x43, 0xE5, 0x8D, 0xA9, 0x43, 0xE5,
0x8D, 0xB0, 0x43, 0xE5, 0x8D, 0xB3, 0x43, 0xE5,
0x8D, 0xB5, 0x43, 0xE5, 0x8D, 0xBD, 0x43, 0xE5,
- // Bytes 8c0 - 8ff
0x8D, 0xBF, 0x43, 0xE5, 0x8E, 0x82, 0x43, 0xE5,
+ // Bytes 9c0 - 9ff
0x8E, 0xB6, 0x43, 0xE5, 0x8F, 0x83, 0x43, 0xE5,
0x8F, 0x88, 0x43, 0xE5, 0x8F, 0x8A, 0x43, 0xE5,
0x8F, 0x8C, 0x43, 0xE5, 0x8F, 0x9F, 0x43, 0xE5,
@@ -364,8 +399,8 @@ var decomps = [...]byte{
0x8F, 0xAB, 0x43, 0xE5, 0x8F, 0xAF, 0x43, 0xE5,
0x8F, 0xB1, 0x43, 0xE5, 0x8F, 0xB3, 0x43, 0xE5,
0x90, 0x86, 0x43, 0xE5, 0x90, 0x88, 0x43, 0xE5,
- // Bytes 900 - 93f
0x90, 0x8D, 0x43, 0xE5, 0x90, 0x8F, 0x43, 0xE5,
+ // Bytes a00 - a3f
0x90, 0x9D, 0x43, 0xE5, 0x90, 0xB8, 0x43, 0xE5,
0x90, 0xB9, 0x43, 0xE5, 0x91, 0x82, 0x43, 0xE5,
0x91, 0x88, 0x43, 0xE5, 0x91, 0xA8, 0x43, 0xE5,
@@ -373,8 +408,8 @@ var decomps = [...]byte{
0x92, 0xBD, 0x43, 0xE5, 0x93, 0xB6, 0x43, 0xE5,
0x94, 0x90, 0x43, 0xE5, 0x95, 0x8F, 0x43, 0xE5,
0x95, 0x93, 0x43, 0xE5, 0x95, 0x95, 0x43, 0xE5,
- // Bytes 940 - 97f
0x95, 0xA3, 0x43, 0xE5, 0x96, 0x84, 0x43, 0xE5,
+ // Bytes a40 - a7f
0x96, 0x87, 0x43, 0xE5, 0x96, 0x99, 0x43, 0xE5,
0x96, 0x9D, 0x43, 0xE5, 0x96, 0xAB, 0x43, 0xE5,
0x96, 0xB3, 0x43, 0xE5, 0x96, 0xB6, 0x43, 0xE5,
@@ -382,8 +417,8 @@ var decomps = [...]byte{
0x97, 0xA2, 0x43, 0xE5, 0x98, 0x86, 0x43, 0xE5,
0x99, 0x91, 0x43, 0xE5, 0x99, 0xA8, 0x43, 0xE5,
0x99, 0xB4, 0x43, 0xE5, 0x9B, 0x97, 0x43, 0xE5,
- // Bytes 980 - 9bf
0x9B, 0x9B, 0x43, 0xE5, 0x9B, 0xB9, 0x43, 0xE5,
+ // Bytes a80 - abf
0x9C, 0x96, 0x43, 0xE5, 0x9C, 0x97, 0x43, 0xE5,
0x9C, 0x9F, 0x43, 0xE5, 0x9C, 0xB0, 0x43, 0xE5,
0x9E, 0x8B, 0x43, 0xE5, 0x9F, 0x8E, 0x43, 0xE5,
@@ -391,8 +426,8 @@ var decomps = [...]byte{
0xA0, 0xB1, 0x43, 0xE5, 0xA0, 0xB2, 0x43, 0xE5,
0xA1, 0x80, 0x43, 0xE5, 0xA1, 0x9A, 0x43, 0xE5,
0xA1, 0x9E, 0x43, 0xE5, 0xA2, 0xA8, 0x43, 0xE5,
- // Bytes 9c0 - 9ff
0xA2, 0xAC, 0x43, 0xE5, 0xA2, 0xB3, 0x43, 0xE5,
+ // Bytes ac0 - aff
0xA3, 0x98, 0x43, 0xE5, 0xA3, 0x9F, 0x43, 0xE5,
0xA3, 0xAB, 0x43, 0xE5, 0xA3, 0xAE, 0x43, 0xE5,
0xA3, 0xB0, 0x43, 0xE5, 0xA3, 0xB2, 0x43, 0xE5,
@@ -400,8 +435,8 @@ var decomps = [...]byte{
0xA4, 0x86, 0x43, 0xE5, 0xA4, 0x8A, 0x43, 0xE5,
0xA4, 0x95, 0x43, 0xE5, 0xA4, 0x9A, 0x43, 0xE5,
0xA4, 0x9C, 0x43, 0xE5, 0xA4, 0xA2, 0x43, 0xE5,
- // Bytes a00 - a3f
0xA4, 0xA7, 0x43, 0xE5, 0xA4, 0xA9, 0x43, 0xE5,
+ // Bytes b00 - b3f
0xA5, 0x84, 0x43, 0xE5, 0xA5, 0x88, 0x43, 0xE5,
0xA5, 0x91, 0x43, 0xE5, 0xA5, 0x94, 0x43, 0xE5,
0xA5, 0xA2, 0x43, 0xE5, 0xA5, 0xB3, 0x43, 0xE5,
@@ -409,8 +444,8 @@ var decomps = [...]byte{
0xA8, 0x9B, 0x43, 0xE5, 0xA8, 0xA7, 0x43, 0xE5,
0xA9, 0xA2, 0x43, 0xE5, 0xA9, 0xA6, 0x43, 0xE5,
0xAA, 0xB5, 0x43, 0xE5, 0xAC, 0x88, 0x43, 0xE5,
- // Bytes a40 - a7f
0xAC, 0xA8, 0x43, 0xE5, 0xAC, 0xBE, 0x43, 0xE5,
+ // Bytes b40 - b7f
0xAD, 0x90, 0x43, 0xE5, 0xAD, 0x97, 0x43, 0xE5,
0xAD, 0xA6, 0x43, 0xE5, 0xAE, 0x80, 0x43, 0xE5,
0xAE, 0x85, 0x43, 0xE5, 0xAE, 0x97, 0x43, 0xE5,
@@ -418,8 +453,8 @@ var decomps = [...]byte{
0xAF, 0xA7, 0x43, 0xE5, 0xAF, 0xAE, 0x43, 0xE5,
0xAF, 0xB3, 0x43, 0xE5, 0xAF, 0xB8, 0x43, 0xE5,
0xAF, 0xBF, 0x43, 0xE5, 0xB0, 0x86, 0x43, 0xE5,
- // Bytes a80 - abf
0xB0, 0x8F, 0x43, 0xE5, 0xB0, 0xA2, 0x43, 0xE5,
+ // Bytes b80 - bbf
0xB0, 0xB8, 0x43, 0xE5, 0xB0, 0xBF, 0x43, 0xE5,
0xB1, 0xA0, 0x43, 0xE5, 0xB1, 0xA2, 0x43, 0xE5,
0xB1, 0xA4, 0x43, 0xE5, 0xB1, 0xA5, 0x43, 0xE5,
@@ -427,8 +462,8 @@ var decomps = [...]byte{
0xB2, 0x8D, 0x43, 0xE5, 0xB3, 0x80, 0x43, 0xE5,
0xB4, 0x99, 0x43, 0xE5, 0xB5, 0x83, 0x43, 0xE5,
0xB5, 0x90, 0x43, 0xE5, 0xB5, 0xAB, 0x43, 0xE5,
- // Bytes ac0 - aff
0xB5, 0xAE, 0x43, 0xE5, 0xB5, 0xBC, 0x43, 0xE5,
+ // Bytes bc0 - bff
0xB6, 0xB2, 0x43, 0xE5, 0xB6, 0xBA, 0x43, 0xE5,
0xB7, 0x9B, 0x43, 0xE5, 0xB7, 0xA1, 0x43, 0xE5,
0xB7, 0xA2, 0x43, 0xE5, 0xB7, 0xA5, 0x43, 0xE5,
@@ -436,8 +471,8 @@ var decomps = [...]byte{
0xB7, 0xBD, 0x43, 0xE5, 0xB7, 0xBE, 0x43, 0xE5,
0xB8, 0xA8, 0x43, 0xE5, 0xB8, 0xBD, 0x43, 0xE5,
0xB9, 0xA9, 0x43, 0xE5, 0xB9, 0xB2, 0x43, 0xE5,
- // Bytes b00 - b3f
0xB9, 0xB4, 0x43, 0xE5, 0xB9, 0xBA, 0x43, 0xE5,
+ // Bytes c00 - c3f
0xB9, 0xBC, 0x43, 0xE5, 0xB9, 0xBF, 0x43, 0xE5,
0xBA, 0xA6, 0x43, 0xE5, 0xBA, 0xB0, 0x43, 0xE5,
0xBA, 0xB3, 0x43, 0xE5, 0xBA, 0xB6, 0x43, 0xE5,
@@ -445,8 +480,8 @@ var decomps = [...]byte{
0xBB, 0x92, 0x43, 0xE5, 0xBB, 0x93, 0x43, 0xE5,
0xBB, 0x99, 0x43, 0xE5, 0xBB, 0xAC, 0x43, 0xE5,
0xBB, 0xB4, 0x43, 0xE5, 0xBB, 0xBE, 0x43, 0xE5,
- // Bytes b40 - b7f
0xBC, 0x84, 0x43, 0xE5, 0xBC, 0x8B, 0x43, 0xE5,
+ // Bytes c40 - c7f
0xBC, 0x93, 0x43, 0xE5, 0xBC, 0xA2, 0x43, 0xE5,
0xBD, 0x90, 0x43, 0xE5, 0xBD, 0x93, 0x43, 0xE5,
0xBD, 0xA1, 0x43, 0xE5, 0xBD, 0xA2, 0x43, 0xE5,
@@ -454,8 +489,8 @@ var decomps = [...]byte{
0xBD, 0xB3, 0x43, 0xE5, 0xBE, 0x8B, 0x43, 0xE5,
0xBE, 0x8C, 0x43, 0xE5, 0xBE, 0x97, 0x43, 0xE5,
0xBE, 0x9A, 0x43, 0xE5, 0xBE, 0xA9, 0x43, 0xE5,
- // Bytes b80 - bbf
0xBE, 0xAD, 0x43, 0xE5, 0xBF, 0x83, 0x43, 0xE5,
+ // Bytes c80 - cbf
0xBF, 0x8D, 0x43, 0xE5, 0xBF, 0x97, 0x43, 0xE5,
0xBF, 0xB5, 0x43, 0xE5, 0xBF, 0xB9, 0x43, 0xE6,
0x80, 0x92, 0x43, 0xE6, 0x80, 0x9C, 0x43, 0xE6,
@@ -463,8 +498,8 @@ var decomps = [...]byte{
0x82, 0x94, 0x43, 0xE6, 0x83, 0x87, 0x43, 0xE6,
0x83, 0x98, 0x43, 0xE6, 0x83, 0xA1, 0x43, 0xE6,
0x84, 0x88, 0x43, 0xE6, 0x85, 0x84, 0x43, 0xE6,
- // Bytes bc0 - bff
0x85, 0x88, 0x43, 0xE6, 0x85, 0x8C, 0x43, 0xE6,
+ // Bytes cc0 - cff
0x85, 0x8E, 0x43, 0xE6, 0x85, 0xA0, 0x43, 0xE6,
0x85, 0xA8, 0x43, 0xE6, 0x85, 0xBA, 0x43, 0xE6,
0x86, 0x8E, 0x43, 0xE6, 0x86, 0x90, 0x43, 0xE6,
@@ -472,8 +507,8 @@ var decomps = [...]byte{
0x86, 0xB2, 0x43, 0xE6, 0x87, 0x9E, 0x43, 0xE6,
0x87, 0xB2, 0x43, 0xE6, 0x87, 0xB6, 0x43, 0xE6,
0x88, 0x80, 0x43, 0xE6, 0x88, 0x88, 0x43, 0xE6,
- // Bytes c00 - c3f
0x88, 0x90, 0x43, 0xE6, 0x88, 0x9B, 0x43, 0xE6,
+ // Bytes d00 - d3f
0x88, 0xAE, 0x43, 0xE6, 0x88, 0xB4, 0x43, 0xE6,
0x88, 0xB6, 0x43, 0xE6, 0x89, 0x8B, 0x43, 0xE6,
0x89, 0x93, 0x43, 0xE6, 0x89, 0x9D, 0x43, 0xE6,
@@ -481,8 +516,8 @@ var decomps = [...]byte{
0x8B, 0x89, 0x43, 0xE6, 0x8B, 0x8F, 0x43, 0xE6,
0x8B, 0x93, 0x43, 0xE6, 0x8B, 0x94, 0x43, 0xE6,
0x8B, 0xBC, 0x43, 0xE6, 0x8B, 0xBE, 0x43, 0xE6,
- // Bytes c40 - c7f
0x8C, 0x87, 0x43, 0xE6, 0x8C, 0xBD, 0x43, 0xE6,
+ // Bytes d40 - d7f
0x8D, 0x90, 0x43, 0xE6, 0x8D, 0x95, 0x43, 0xE6,
0x8D, 0xA8, 0x43, 0xE6, 0x8D, 0xBB, 0x43, 0xE6,
0x8E, 0x83, 0x43, 0xE6, 0x8E, 0xA0, 0x43, 0xE6,
@@ -490,8 +525,8 @@ var decomps = [...]byte{
0x8F, 0x85, 0x43, 0xE6, 0x8F, 0xA4, 0x43, 0xE6,
0x90, 0x9C, 0x43, 0xE6, 0x90, 0xA2, 0x43, 0xE6,
0x91, 0x92, 0x43, 0xE6, 0x91, 0xA9, 0x43, 0xE6,
- // Bytes c80 - cbf
0x91, 0xB7, 0x43, 0xE6, 0x91, 0xBE, 0x43, 0xE6,
+ // Bytes d80 - dbf
0x92, 0x9A, 0x43, 0xE6, 0x92, 0x9D, 0x43, 0xE6,
0x93, 0x84, 0x43, 0xE6, 0x94, 0xAF, 0x43, 0xE6,
0x94, 0xB4, 0x43, 0xE6, 0x95, 0x8F, 0x43, 0xE6,
@@ -499,8 +534,8 @@ var decomps = [...]byte{
0x95, 0xB8, 0x43, 0xE6, 0x96, 0x87, 0x43, 0xE6,
0x96, 0x97, 0x43, 0xE6, 0x96, 0x99, 0x43, 0xE6,
0x96, 0xA4, 0x43, 0xE6, 0x96, 0xB0, 0x43, 0xE6,
- // Bytes cc0 - cff
0x96, 0xB9, 0x43, 0xE6, 0x97, 0x85, 0x43, 0xE6,
+ // Bytes dc0 - dff
0x97, 0xA0, 0x43, 0xE6, 0x97, 0xA2, 0x43, 0xE6,
0x97, 0xA3, 0x43, 0xE6, 0x97, 0xA5, 0x43, 0xE6,
0x98, 0x93, 0x43, 0xE6, 0x98, 0xA0, 0x43, 0xE6,
@@ -508,8 +543,8 @@ var decomps = [...]byte{
0x9A, 0x88, 0x43, 0xE6, 0x9A, 0x91, 0x43, 0xE6,
0x9A, 0x9C, 0x43, 0xE6, 0x9A, 0xB4, 0x43, 0xE6,
0x9B, 0x86, 0x43, 0xE6, 0x9B, 0xB0, 0x43, 0xE6,
- // Bytes d00 - d3f
0x9B, 0xB4, 0x43, 0xE6, 0x9B, 0xB8, 0x43, 0xE6,
+ // Bytes e00 - e3f
0x9C, 0x80, 0x43, 0xE6, 0x9C, 0x88, 0x43, 0xE6,
0x9C, 0x89, 0x43, 0xE6, 0x9C, 0x97, 0x43, 0xE6,
0x9C, 0x9B, 0x43, 0xE6, 0x9C, 0xA1, 0x43, 0xE6,
@@ -517,8 +552,8 @@ var decomps = [...]byte{
0x9D, 0x93, 0x43, 0xE6, 0x9D, 0x96, 0x43, 0xE6,
0x9D, 0x9E, 0x43, 0xE6, 0x9D, 0xBB, 0x43, 0xE6,
0x9E, 0x85, 0x43, 0xE6, 0x9E, 0x97, 0x43, 0xE6,
- // Bytes d40 - d7f
0x9F, 0xB3, 0x43, 0xE6, 0x9F, 0xBA, 0x43, 0xE6,
+ // Bytes e40 - e7f
0xA0, 0x97, 0x43, 0xE6, 0xA0, 0x9F, 0x43, 0xE6,
0xA0, 0xAA, 0x43, 0xE6, 0xA1, 0x92, 0x43, 0xE6,
0xA2, 0x81, 0x43, 0xE6, 0xA2, 0x85, 0x43, 0xE6,
@@ -526,8 +561,8 @@ var decomps = [...]byte{
0xA4, 0x94, 0x43, 0xE6, 0xA5, 0x82, 0x43, 0xE6,
0xA6, 0xA3, 0x43, 0xE6, 0xA7, 0xAA, 0x43, 0xE6,
0xA8, 0x82, 0x43, 0xE6, 0xA8, 0x93, 0x43, 0xE6,
- // Bytes d80 - dbf
0xAA, 0xA8, 0x43, 0xE6, 0xAB, 0x93, 0x43, 0xE6,
+ // Bytes e80 - ebf
0xAB, 0x9B, 0x43, 0xE6, 0xAC, 0x84, 0x43, 0xE6,
0xAC, 0xA0, 0x43, 0xE6, 0xAC, 0xA1, 0x43, 0xE6,
0xAD, 0x94, 0x43, 0xE6, 0xAD, 0xA2, 0x43, 0xE6,
@@ -535,8 +570,8 @@ var decomps = [...]byte{
0xAD, 0xB7, 0x43, 0xE6, 0xAD, 0xB9, 0x43, 0xE6,
0xAE, 0x9F, 0x43, 0xE6, 0xAE, 0xAE, 0x43, 0xE6,
0xAE, 0xB3, 0x43, 0xE6, 0xAE, 0xBA, 0x43, 0xE6,
- // Bytes dc0 - dff
0xAE, 0xBB, 0x43, 0xE6, 0xAF, 0x8B, 0x43, 0xE6,
+ // Bytes ec0 - eff
0xAF, 0x8D, 0x43, 0xE6, 0xAF, 0x94, 0x43, 0xE6,
0xAF, 0x9B, 0x43, 0xE6, 0xB0, 0x8F, 0x43, 0xE6,
0xB0, 0x94, 0x43, 0xE6, 0xB0, 0xB4, 0x43, 0xE6,
@@ -544,8 +579,8 @@ var decomps = [...]byte{
0xB2, 0x88, 0x43, 0xE6, 0xB2, 0xBF, 0x43, 0xE6,
0xB3, 0x8C, 0x43, 0xE6, 0xB3, 0x8D, 0x43, 0xE6,
0xB3, 0xA5, 0x43, 0xE6, 0xB3, 0xA8, 0x43, 0xE6,
- // Bytes e00 - e3f
0xB4, 0x96, 0x43, 0xE6, 0xB4, 0x9B, 0x43, 0xE6,
+ // Bytes f00 - f3f
0xB4, 0x9E, 0x43, 0xE6, 0xB4, 0xB4, 0x43, 0xE6,
0xB4, 0xBE, 0x43, 0xE6, 0xB5, 0x81, 0x43, 0xE6,
0xB5, 0xA9, 0x43, 0xE6, 0xB5, 0xAA, 0x43, 0xE6,
@@ -553,8 +588,8 @@ var decomps = [...]byte{
0xB6, 0x85, 0x43, 0xE6, 0xB7, 0x8B, 0x43, 0xE6,
0xB7, 0x9A, 0x43, 0xE6, 0xB7, 0xAA, 0x43, 0xE6,
0xB7, 0xB9, 0x43, 0xE6, 0xB8, 0x9A, 0x43, 0xE6,
- // Bytes e40 - e7f
0xB8, 0xAF, 0x43, 0xE6, 0xB9, 0xAE, 0x43, 0xE6,
+ // Bytes f40 - f7f
0xBA, 0x80, 0x43, 0xE6, 0xBA, 0x9C, 0x43, 0xE6,
0xBA, 0xBA, 0x43, 0xE6, 0xBB, 0x87, 0x43, 0xE6,
0xBB, 0x8B, 0x43, 0xE6, 0xBB, 0x91, 0x43, 0xE6,
@@ -562,8 +597,8 @@ var decomps = [...]byte{
0xBC, 0x94, 0x43, 0xE6, 0xBC, 0xA2, 0x43, 0xE6,
0xBC, 0xA3, 0x43, 0xE6, 0xBD, 0xAE, 0x43, 0xE6,
0xBF, 0x86, 0x43, 0xE6, 0xBF, 0xAB, 0x43, 0xE6,
- // Bytes e80 - ebf
0xBF, 0xBE, 0x43, 0xE7, 0x80, 0x9B, 0x43, 0xE7,
+ // Bytes f80 - fbf
0x80, 0x9E, 0x43, 0xE7, 0x80, 0xB9, 0x43, 0xE7,
0x81, 0x8A, 0x43, 0xE7, 0x81, 0xAB, 0x43, 0xE7,
0x81, 0xB0, 0x43, 0xE7, 0x81, 0xB7, 0x43, 0xE7,
@@ -571,8 +606,8 @@ var decomps = [...]byte{
0x82, 0xAD, 0x43, 0xE7, 0x83, 0x88, 0x43, 0xE7,
0x83, 0x99, 0x43, 0xE7, 0x84, 0xA1, 0x43, 0xE7,
0x85, 0x85, 0x43, 0xE7, 0x85, 0x89, 0x43, 0xE7,
- // Bytes ec0 - eff
0x85, 0xAE, 0x43, 0xE7, 0x86, 0x9C, 0x43, 0xE7,
+ // Bytes fc0 - fff
0x87, 0x8E, 0x43, 0xE7, 0x87, 0x90, 0x43, 0xE7,
0x88, 0x90, 0x43, 0xE7, 0x88, 0x9B, 0x43, 0xE7,
0x88, 0xA8, 0x43, 0xE7, 0x88, 0xAA, 0x43, 0xE7,
@@ -580,8 +615,8 @@ var decomps = [...]byte{
0x88, 0xB6, 0x43, 0xE7, 0x88, 0xBB, 0x43, 0xE7,
0x88, 0xBF, 0x43, 0xE7, 0x89, 0x87, 0x43, 0xE7,
0x89, 0x90, 0x43, 0xE7, 0x89, 0x99, 0x43, 0xE7,
- // Bytes f00 - f3f
0x89, 0x9B, 0x43, 0xE7, 0x89, 0xA2, 0x43, 0xE7,
+ // Bytes 1000 - 103f
0x89, 0xB9, 0x43, 0xE7, 0x8A, 0x80, 0x43, 0xE7,
0x8A, 0x95, 0x43, 0xE7, 0x8A, 0xAC, 0x43, 0xE7,
0x8A, 0xAF, 0x43, 0xE7, 0x8B, 0x80, 0x43, 0xE7,
@@ -589,8 +624,8 @@ var decomps = [...]byte{
0x8D, 0xB5, 0x43, 0xE7, 0x8D, 0xBA, 0x43, 0xE7,
0x8E, 0x84, 0x43, 0xE7, 0x8E, 0x87, 0x43, 0xE7,
0x8E, 0x89, 0x43, 0xE7, 0x8E, 0x8B, 0x43, 0xE7,
- // Bytes f40 - f7f
0x8E, 0xA5, 0x43, 0xE7, 0x8E, 0xB2, 0x43, 0xE7,
+ // Bytes 1040 - 107f
0x8F, 0x9E, 0x43, 0xE7, 0x90, 0x86, 0x43, 0xE7,
0x90, 0x89, 0x43, 0xE7, 0x90, 0xA2, 0x43, 0xE7,
0x91, 0x87, 0x43, 0xE7, 0x91, 0x9C, 0x43, 0xE7,
@@ -598,8 +633,8 @@ var decomps = [...]byte{
0x92, 0x85, 0x43, 0xE7, 0x92, 0x89, 0x43, 0xE7,
0x92, 0x98, 0x43, 0xE7, 0x93, 0x8A, 0x43, 0xE7,
0x93, 0x9C, 0x43, 0xE7, 0x93, 0xA6, 0x43, 0xE7,
- // Bytes f80 - fbf
0x94, 0x86, 0x43, 0xE7, 0x94, 0x98, 0x43, 0xE7,
+ // Bytes 1080 - 10bf
0x94, 0x9F, 0x43, 0xE7, 0x94, 0xA4, 0x43, 0xE7,
0x94, 0xA8, 0x43, 0xE7, 0x94, 0xB0, 0x43, 0xE7,
0x94, 0xB2, 0x43, 0xE7, 0x94, 0xB3, 0x43, 0xE7,
@@ -607,8 +642,8 @@ var decomps = [...]byte{
0x94, 0xBE, 0x43, 0xE7, 0x95, 0x99, 0x43, 0xE7,
0x95, 0xA5, 0x43, 0xE7, 0x95, 0xB0, 0x43, 0xE7,
0x96, 0x8B, 0x43, 0xE7, 0x96, 0x92, 0x43, 0xE7,
- // Bytes fc0 - fff
0x97, 0xA2, 0x43, 0xE7, 0x98, 0x90, 0x43, 0xE7,
+ // Bytes 10c0 - 10ff
0x98, 0x9D, 0x43, 0xE7, 0x98, 0x9F, 0x43, 0xE7,
0x99, 0x82, 0x43, 0xE7, 0x99, 0xA9, 0x43, 0xE7,
0x99, 0xB6, 0x43, 0xE7, 0x99, 0xBD, 0x43, 0xE7,
@@ -616,8 +651,8 @@ var decomps = [...]byte{
0x9B, 0x8A, 0x43, 0xE7, 0x9B, 0x9B, 0x43, 0xE7,
0x9B, 0xA3, 0x43, 0xE7, 0x9B, 0xA7, 0x43, 0xE7,
0x9B, 0xAE, 0x43, 0xE7, 0x9B, 0xB4, 0x43, 0xE7,
- // Bytes 1000 - 103f
0x9C, 0x81, 0x43, 0xE7, 0x9C, 0x9E, 0x43, 0xE7,
+ // Bytes 1100 - 113f
0x9C, 0x9F, 0x43, 0xE7, 0x9D, 0x80, 0x43, 0xE7,
0x9D, 0x8A, 0x43, 0xE7, 0x9E, 0x8B, 0x43, 0xE7,
0x9E, 0xA7, 0x43, 0xE7, 0x9F, 0x9B, 0x43, 0xE7,
@@ -625,8 +660,8 @@ var decomps = [...]byte{
0xA1, 0x8E, 0x43, 0xE7, 0xA1, 0xAB, 0x43, 0xE7,
0xA2, 0x8C, 0x43, 0xE7, 0xA2, 0x91, 0x43, 0xE7,
0xA3, 0x8A, 0x43, 0xE7, 0xA3, 0x8C, 0x43, 0xE7,
- // Bytes 1040 - 107f
0xA3, 0xBB, 0x43, 0xE7, 0xA4, 0xAA, 0x43, 0xE7,
+ // Bytes 1140 - 117f
0xA4, 0xBA, 0x43, 0xE7, 0xA4, 0xBC, 0x43, 0xE7,
0xA4, 0xBE, 0x43, 0xE7, 0xA5, 0x88, 0x43, 0xE7,
0xA5, 0x89, 0x43, 0xE7, 0xA5, 0x90, 0x43, 0xE7,
@@ -634,8 +669,8 @@ var decomps = [...]byte{
0xA5, 0x9E, 0x43, 0xE7, 0xA5, 0xA5, 0x43, 0xE7,
0xA5, 0xBF, 0x43, 0xE7, 0xA6, 0x81, 0x43, 0xE7,
0xA6, 0x8D, 0x43, 0xE7, 0xA6, 0x8E, 0x43, 0xE7,
- // Bytes 1080 - 10bf
0xA6, 0x8F, 0x43, 0xE7, 0xA6, 0xAE, 0x43, 0xE7,
+ // Bytes 1180 - 11bf
0xA6, 0xB8, 0x43, 0xE7, 0xA6, 0xBE, 0x43, 0xE7,
0xA7, 0x8A, 0x43, 0xE7, 0xA7, 0x98, 0x43, 0xE7,
0xA7, 0xAB, 0x43, 0xE7, 0xA8, 0x9C, 0x43, 0xE7,
@@ -643,8 +678,8 @@ var decomps = [...]byte{
0xA9, 0x8F, 0x43, 0xE7, 0xA9, 0xB4, 0x43, 0xE7,
0xA9, 0xBA, 0x43, 0xE7, 0xAA, 0x81, 0x43, 0xE7,
0xAA, 0xB1, 0x43, 0xE7, 0xAB, 0x8B, 0x43, 0xE7,
- // Bytes 10c0 - 10ff
0xAB, 0xAE, 0x43, 0xE7, 0xAB, 0xB9, 0x43, 0xE7,
+ // Bytes 11c0 - 11ff
0xAC, 0xA0, 0x43, 0xE7, 0xAE, 0x8F, 0x43, 0xE7,
0xAF, 0x80, 0x43, 0xE7, 0xAF, 0x86, 0x43, 0xE7,
0xAF, 0x89, 0x43, 0xE7, 0xB0, 0xBE, 0x43, 0xE7,
@@ -652,8 +687,8 @@ var decomps = [...]byte{
0xB1, 0xBB, 0x43, 0xE7, 0xB2, 0x92, 0x43, 0xE7,
0xB2, 0xBE, 0x43, 0xE7, 0xB3, 0x92, 0x43, 0xE7,
0xB3, 0x96, 0x43, 0xE7, 0xB3, 0xA3, 0x43, 0xE7,
- // Bytes 1100 - 113f
0xB3, 0xA7, 0x43, 0xE7, 0xB3, 0xA8, 0x43, 0xE7,
+ // Bytes 1200 - 123f
0xB3, 0xB8, 0x43, 0xE7, 0xB4, 0x80, 0x43, 0xE7,
0xB4, 0x90, 0x43, 0xE7, 0xB4, 0xA2, 0x43, 0xE7,
0xB4, 0xAF, 0x43, 0xE7, 0xB5, 0x82, 0x43, 0xE7,
@@ -661,8 +696,8 @@ var decomps = [...]byte{
0xB6, 0xA0, 0x43, 0xE7, 0xB6, 0xBE, 0x43, 0xE7,
0xB7, 0x87, 0x43, 0xE7, 0xB7, 0xB4, 0x43, 0xE7,
0xB8, 0x82, 0x43, 0xE7, 0xB8, 0x89, 0x43, 0xE7,
- // Bytes 1140 - 117f
0xB8, 0xB7, 0x43, 0xE7, 0xB9, 0x81, 0x43, 0xE7,
+ // Bytes 1240 - 127f
0xB9, 0x85, 0x43, 0xE7, 0xBC, 0xB6, 0x43, 0xE7,
0xBC, 0xBE, 0x43, 0xE7, 0xBD, 0x91, 0x43, 0xE7,
0xBD, 0xB2, 0x43, 0xE7, 0xBD, 0xB9, 0x43, 0xE7,
@@ -670,8 +705,8 @@ var decomps = [...]byte{
0xBE, 0x8A, 0x43, 0xE7, 0xBE, 0x95, 0x43, 0xE7,
0xBE, 0x9A, 0x43, 0xE7, 0xBE, 0xBD, 0x43, 0xE7,
0xBF, 0xBA, 0x43, 0xE8, 0x80, 0x81, 0x43, 0xE8,
- // Bytes 1180 - 11bf
0x80, 0x85, 0x43, 0xE8, 0x80, 0x8C, 0x43, 0xE8,
+ // Bytes 1280 - 12bf
0x80, 0x92, 0x43, 0xE8, 0x80, 0xB3, 0x43, 0xE8,
0x81, 0x86, 0x43, 0xE8, 0x81, 0xA0, 0x43, 0xE8,
0x81, 0xAF, 0x43, 0xE8, 0x81, 0xB0, 0x43, 0xE8,
@@ -679,8 +714,8 @@ var decomps = [...]byte{
0x82, 0x89, 0x43, 0xE8, 0x82, 0x8B, 0x43, 0xE8,
0x82, 0xAD, 0x43, 0xE8, 0x82, 0xB2, 0x43, 0xE8,
0x84, 0x83, 0x43, 0xE8, 0x84, 0xBE, 0x43, 0xE8,
- // Bytes 11c0 - 11ff
0x87, 0x98, 0x43, 0xE8, 0x87, 0xA3, 0x43, 0xE8,
+ // Bytes 12c0 - 12ff
0x87, 0xA8, 0x43, 0xE8, 0x87, 0xAA, 0x43, 0xE8,
0x87, 0xAD, 0x43, 0xE8, 0x87, 0xB3, 0x43, 0xE8,
0x87, 0xBC, 0x43, 0xE8, 0x88, 0x81, 0x43, 0xE8,
@@ -688,8 +723,8 @@ var decomps = [...]byte{
0x88, 0x98, 0x43, 0xE8, 0x88, 0x9B, 0x43, 0xE8,
0x88, 0x9F, 0x43, 0xE8, 0x89, 0xAE, 0x43, 0xE8,
0x89, 0xAF, 0x43, 0xE8, 0x89, 0xB2, 0x43, 0xE8,
- // Bytes 1200 - 123f
0x89, 0xB8, 0x43, 0xE8, 0x89, 0xB9, 0x43, 0xE8,
+ // Bytes 1300 - 133f
0x8A, 0x8B, 0x43, 0xE8, 0x8A, 0x91, 0x43, 0xE8,
0x8A, 0x9D, 0x43, 0xE8, 0x8A, 0xB1, 0x43, 0xE8,
0x8A, 0xB3, 0x43, 0xE8, 0x8A, 0xBD, 0x43, 0xE8,
@@ -697,8 +732,8 @@ var decomps = [...]byte{
0x8C, 0x9D, 0x43, 0xE8, 0x8C, 0xA3, 0x43, 0xE8,
0x8C, 0xB6, 0x43, 0xE8, 0x8D, 0x92, 0x43, 0xE8,
0x8D, 0x93, 0x43, 0xE8, 0x8D, 0xA3, 0x43, 0xE8,
- // Bytes 1240 - 127f
0x8E, 0xAD, 0x43, 0xE8, 0x8E, 0xBD, 0x43, 0xE8,
+ // Bytes 1340 - 137f
0x8F, 0x89, 0x43, 0xE8, 0x8F, 0x8A, 0x43, 0xE8,
0x8F, 0x8C, 0x43, 0xE8, 0x8F, 0x9C, 0x43, 0xE8,
0x8F, 0xA7, 0x43, 0xE8, 0x8F, 0xAF, 0x43, 0xE8,
@@ -706,8 +741,8 @@ var decomps = [...]byte{
0x91, 0x89, 0x43, 0xE8, 0x91, 0x97, 0x43, 0xE8,
0x93, 0xAE, 0x43, 0xE8, 0x93, 0xB1, 0x43, 0xE8,
0x93, 0xB3, 0x43, 0xE8, 0x93, 0xBC, 0x43, 0xE8,
- // Bytes 1280 - 12bf
0x94, 0x96, 0x43, 0xE8, 0x95, 0xA4, 0x43, 0xE8,
+ // Bytes 1380 - 13bf
0x97, 0x8D, 0x43, 0xE8, 0x97, 0xBA, 0x43, 0xE8,
0x98, 0x86, 0x43, 0xE8, 0x98, 0x92, 0x43, 0xE8,
0x98, 0xAD, 0x43, 0xE8, 0x98, 0xBF, 0x43, 0xE8,
@@ -715,8 +750,8 @@ var decomps = [...]byte{
0x99, 0x9C, 0x43, 0xE8, 0x99, 0xA7, 0x43, 0xE8,
0x99, 0xA9, 0x43, 0xE8, 0x99, 0xAB, 0x43, 0xE8,
0x9A, 0x88, 0x43, 0xE8, 0x9A, 0xA9, 0x43, 0xE8,
- // Bytes 12c0 - 12ff
0x9B, 0xA2, 0x43, 0xE8, 0x9C, 0x8E, 0x43, 0xE8,
+ // Bytes 13c0 - 13ff
0x9C, 0xA8, 0x43, 0xE8, 0x9D, 0xAB, 0x43, 0xE8,
0x9D, 0xB9, 0x43, 0xE8, 0x9E, 0x86, 0x43, 0xE8,
0x9E, 0xBA, 0x43, 0xE8, 0x9F, 0xA1, 0x43, 0xE8,
@@ -724,8 +759,8 @@ var decomps = [...]byte{
0xA1, 0x80, 0x43, 0xE8, 0xA1, 0x8C, 0x43, 0xE8,
0xA1, 0xA0, 0x43, 0xE8, 0xA1, 0xA3, 0x43, 0xE8,
0xA3, 0x82, 0x43, 0xE8, 0xA3, 0x8F, 0x43, 0xE8,
- // Bytes 1300 - 133f
0xA3, 0x97, 0x43, 0xE8, 0xA3, 0x9E, 0x43, 0xE8,
+ // Bytes 1400 - 143f
0xA3, 0xA1, 0x43, 0xE8, 0xA3, 0xB8, 0x43, 0xE8,
0xA3, 0xBA, 0x43, 0xE8, 0xA4, 0x90, 0x43, 0xE8,
0xA5, 0x81, 0x43, 0xE8, 0xA5, 0xA4, 0x43, 0xE8,
@@ -733,8 +768,8 @@ var decomps = [...]byte{
0xA6, 0x8B, 0x43, 0xE8, 0xA6, 0x96, 0x43, 0xE8,
0xA7, 0x92, 0x43, 0xE8, 0xA7, 0xA3, 0x43, 0xE8,
0xA8, 0x80, 0x43, 0xE8, 0xAA, 0xA0, 0x43, 0xE8,
- // Bytes 1340 - 137f
0xAA, 0xAA, 0x43, 0xE8, 0xAA, 0xBF, 0x43, 0xE8,
+ // Bytes 1440 - 147f
0xAB, 0x8B, 0x43, 0xE8, 0xAB, 0x92, 0x43, 0xE8,
0xAB, 0x96, 0x43, 0xE8, 0xAB, 0xAD, 0x43, 0xE8,
0xAB, 0xB8, 0x43, 0xE8, 0xAB, 0xBE, 0x43, 0xE8,
@@ -742,8 +777,8 @@ var decomps = [...]byte{
0xAD, 0x98, 0x43, 0xE8, 0xAE, 0x80, 0x43, 0xE8,
0xAE, 0x8A, 0x43, 0xE8, 0xB0, 0xB7, 0x43, 0xE8,
0xB1, 0x86, 0x43, 0xE8, 0xB1, 0x88, 0x43, 0xE8,
- // Bytes 1380 - 13bf
0xB1, 0x95, 0x43, 0xE8, 0xB1, 0xB8, 0x43, 0xE8,
+ // Bytes 1480 - 14bf
0xB2, 0x9D, 0x43, 0xE8, 0xB2, 0xA1, 0x43, 0xE8,
0xB2, 0xA9, 0x43, 0xE8, 0xB2, 0xAB, 0x43, 0xE8,
0xB3, 0x81, 0x43, 0xE8, 0xB3, 0x82, 0x43, 0xE8,
@@ -751,8 +786,8 @@ var decomps = [...]byte{
0xB3, 0x93, 0x43, 0xE8, 0xB4, 0x88, 0x43, 0xE8,
0xB4, 0x9B, 0x43, 0xE8, 0xB5, 0xA4, 0x43, 0xE8,
0xB5, 0xB0, 0x43, 0xE8, 0xB5, 0xB7, 0x43, 0xE8,
- // Bytes 13c0 - 13ff
0xB6, 0xB3, 0x43, 0xE8, 0xB6, 0xBC, 0x43, 0xE8,
+ // Bytes 14c0 - 14ff
0xB7, 0x8B, 0x43, 0xE8, 0xB7, 0xAF, 0x43, 0xE8,
0xB7, 0xB0, 0x43, 0xE8, 0xBA, 0xAB, 0x43, 0xE8,
0xBB, 0x8A, 0x43, 0xE8, 0xBB, 0x94, 0x43, 0xE8,
@@ -760,8 +795,8 @@ var decomps = [...]byte{
0xBC, 0xB8, 0x43, 0xE8, 0xBC, 0xBB, 0x43, 0xE8,
0xBD, 0xA2, 0x43, 0xE8, 0xBE, 0x9B, 0x43, 0xE8,
0xBE, 0x9E, 0x43, 0xE8, 0xBE, 0xB0, 0x43, 0xE8,
- // Bytes 1400 - 143f
0xBE, 0xB5, 0x43, 0xE8, 0xBE, 0xB6, 0x43, 0xE9,
+ // Bytes 1500 - 153f
0x80, 0xA3, 0x43, 0xE9, 0x80, 0xB8, 0x43, 0xE9,
0x81, 0x8A, 0x43, 0xE9, 0x81, 0xA9, 0x43, 0xE9,
0x81, 0xB2, 0x43, 0xE9, 0x81, 0xBC, 0x43, 0xE9,
@@ -769,8 +804,8 @@ var decomps = [...]byte{
0x82, 0x94, 0x43, 0xE9, 0x83, 0x8E, 0x43, 0xE9,
0x83, 0x9E, 0x43, 0xE9, 0x83, 0xB1, 0x43, 0xE9,
0x83, 0xBD, 0x43, 0xE9, 0x84, 0x91, 0x43, 0xE9,
- // Bytes 1440 - 147f
0x84, 0x9B, 0x43, 0xE9, 0x85, 0x89, 0x43, 0xE9,
+ // Bytes 1540 - 157f
0x85, 0x8D, 0x43, 0xE9, 0x85, 0xAA, 0x43, 0xE9,
0x86, 0x99, 0x43, 0xE9, 0x86, 0xB4, 0x43, 0xE9,
0x87, 0x86, 0x43, 0xE9, 0x87, 0x8C, 0x43, 0xE9,
@@ -778,8 +813,8 @@ var decomps = [...]byte{
0x88, 0xB4, 0x43, 0xE9, 0x88, 0xB8, 0x43, 0xE9,
0x89, 0xB6, 0x43, 0xE9, 0x89, 0xBC, 0x43, 0xE9,
0x8B, 0x97, 0x43, 0xE9, 0x8B, 0x98, 0x43, 0xE9,
- // Bytes 1480 - 14bf
0x8C, 0x84, 0x43, 0xE9, 0x8D, 0x8A, 0x43, 0xE9,
+ // Bytes 1580 - 15bf
0x8F, 0xB9, 0x43, 0xE9, 0x90, 0x95, 0x43, 0xE9,
0x95, 0xB7, 0x43, 0xE9, 0x96, 0x80, 0x43, 0xE9,
0x96, 0x8B, 0x43, 0xE9, 0x96, 0xAD, 0x43, 0xE9,
@@ -787,8 +822,8 @@ var decomps = [...]byte{
0x98, 0xAE, 0x43, 0xE9, 0x99, 0x8B, 0x43, 0xE9,
0x99, 0x8D, 0x43, 0xE9, 0x99, 0xB5, 0x43, 0xE9,
0x99, 0xB8, 0x43, 0xE9, 0x99, 0xBC, 0x43, 0xE9,
- // Bytes 14c0 - 14ff
0x9A, 0x86, 0x43, 0xE9, 0x9A, 0xA3, 0x43, 0xE9,
+ // Bytes 15c0 - 15ff
0x9A, 0xB6, 0x43, 0xE9, 0x9A, 0xB7, 0x43, 0xE9,
0x9A, 0xB8, 0x43, 0xE9, 0x9A, 0xB9, 0x43, 0xE9,
0x9B, 0x83, 0x43, 0xE9, 0x9B, 0xA2, 0x43, 0xE9,
@@ -796,8 +831,8 @@ var decomps = [...]byte{
0x9B, 0xB6, 0x43, 0xE9, 0x9B, 0xB7, 0x43, 0xE9,
0x9C, 0xA3, 0x43, 0xE9, 0x9C, 0xB2, 0x43, 0xE9,
0x9D, 0x88, 0x43, 0xE9, 0x9D, 0x91, 0x43, 0xE9,
- // Bytes 1500 - 153f
0x9D, 0x96, 0x43, 0xE9, 0x9D, 0x9E, 0x43, 0xE9,
+ // Bytes 1600 - 163f
0x9D, 0xA2, 0x43, 0xE9, 0x9D, 0xA9, 0x43, 0xE9,
0x9F, 0x8B, 0x43, 0xE9, 0x9F, 0x9B, 0x43, 0xE9,
0x9F, 0xA0, 0x43, 0xE9, 0x9F, 0xAD, 0x43, 0xE9,
@@ -805,8 +840,8 @@ var decomps = [...]byte{
0xA0, 0x81, 0x43, 0xE9, 0xA0, 0x85, 0x43, 0xE9,
0xA0, 0x8B, 0x43, 0xE9, 0xA0, 0x98, 0x43, 0xE9,
0xA0, 0xA9, 0x43, 0xE9, 0xA0, 0xBB, 0x43, 0xE9,
- // Bytes 1540 - 157f
0xA1, 0x9E, 0x43, 0xE9, 0xA2, 0xA8, 0x43, 0xE9,
+ // Bytes 1640 - 167f
0xA3, 0x9B, 0x43, 0xE9, 0xA3, 0x9F, 0x43, 0xE9,
0xA3, 0xA2, 0x43, 0xE9, 0xA3, 0xAF, 0x43, 0xE9,
0xA3, 0xBC, 0x43, 0xE9, 0xA4, 0xA8, 0x43, 0xE9,
@@ -814,8 +849,8 @@ var decomps = [...]byte{
0xA6, 0x99, 0x43, 0xE9, 0xA6, 0xA7, 0x43, 0xE9,
0xA6, 0xAC, 0x43, 0xE9, 0xA7, 0x82, 0x43, 0xE9,
0xA7, 0xB1, 0x43, 0xE9, 0xA7, 0xBE, 0x43, 0xE9,
- // Bytes 1580 - 15bf
0xA9, 0xAA, 0x43, 0xE9, 0xAA, 0xA8, 0x43, 0xE9,
+ // Bytes 1680 - 16bf
0xAB, 0x98, 0x43, 0xE9, 0xAB, 0x9F, 0x43, 0xE9,
0xAC, 0x92, 0x43, 0xE9, 0xAC, 0xA5, 0x43, 0xE9,
0xAC, 0xAF, 0x43, 0xE9, 0xAC, 0xB2, 0x43, 0xE9,
@@ -823,8 +858,8 @@ var decomps = [...]byte{
0xAD, 0xAF, 0x43, 0xE9, 0xB1, 0x80, 0x43, 0xE9,
0xB1, 0x97, 0x43, 0xE9, 0xB3, 0xA5, 0x43, 0xE9,
0xB3, 0xBD, 0x43, 0xE9, 0xB5, 0xA7, 0x43, 0xE9,
- // Bytes 15c0 - 15ff
0xB6, 0xB4, 0x43, 0xE9, 0xB7, 0xBA, 0x43, 0xE9,
+ // Bytes 16c0 - 16ff
0xB8, 0x9E, 0x43, 0xE9, 0xB9, 0xB5, 0x43, 0xE9,
0xB9, 0xBF, 0x43, 0xE9, 0xBA, 0x97, 0x43, 0xE9,
0xBA, 0x9F, 0x43, 0xE9, 0xBA, 0xA5, 0x43, 0xE9,
@@ -832,925 +867,864 @@ var decomps = [...]byte{
0xBB, 0x8D, 0x43, 0xE9, 0xBB, 0x8E, 0x43, 0xE9,
0xBB, 0x91, 0x43, 0xE9, 0xBB, 0xB9, 0x43, 0xE9,
0xBB, 0xBD, 0x43, 0xE9, 0xBB, 0xBE, 0x43, 0xE9,
- // Bytes 1600 - 163f
0xBC, 0x85, 0x43, 0xE9, 0xBC, 0x8E, 0x43, 0xE9,
+ // Bytes 1700 - 173f
0xBC, 0x8F, 0x43, 0xE9, 0xBC, 0x93, 0x43, 0xE9,
0xBC, 0x96, 0x43, 0xE9, 0xBC, 0xA0, 0x43, 0xE9,
0xBC, 0xBB, 0x43, 0xE9, 0xBD, 0x83, 0x43, 0xE9,
0xBD, 0x8A, 0x43, 0xE9, 0xBD, 0x92, 0x43, 0xE9,
0xBE, 0x8D, 0x43, 0xE9, 0xBE, 0x8E, 0x43, 0xE9,
0xBE, 0x9C, 0x43, 0xE9, 0xBE, 0x9F, 0x43, 0xE9,
- 0xBE, 0xA0, 0x43, 0xEA, 0x9C, 0xA7, 0x43, 0xEA,
- // Bytes 1640 - 167f
- 0x9D, 0xAF, 0x43, 0xEA, 0xAC, 0xB7, 0x43, 0xEA,
- 0xAD, 0x92, 0x44, 0xF0, 0xA0, 0x84, 0xA2, 0x44,
- 0xF0, 0xA0, 0x94, 0x9C, 0x44, 0xF0, 0xA0, 0x94,
- 0xA5, 0x44, 0xF0, 0xA0, 0x95, 0x8B, 0x44, 0xF0,
- 0xA0, 0x98, 0xBA, 0x44, 0xF0, 0xA0, 0xA0, 0x84,
- 0x44, 0xF0, 0xA0, 0xA3, 0x9E, 0x44, 0xF0, 0xA0,
- 0xA8, 0xAC, 0x44, 0xF0, 0xA0, 0xAD, 0xA3, 0x44,
- 0xF0, 0xA1, 0x93, 0xA4, 0x44, 0xF0, 0xA1, 0x9A,
- // Bytes 1680 - 16bf
- 0xA8, 0x44, 0xF0, 0xA1, 0x9B, 0xAA, 0x44, 0xF0,
- 0xA1, 0xA7, 0x88, 0x44, 0xF0, 0xA1, 0xAC, 0x98,
- 0x44, 0xF0, 0xA1, 0xB4, 0x8B, 0x44, 0xF0, 0xA1,
- 0xB7, 0xA4, 0x44, 0xF0, 0xA1, 0xB7, 0xA6, 0x44,
- 0xF0, 0xA2, 0x86, 0x83, 0x44, 0xF0, 0xA2, 0x86,
- 0x9F, 0x44, 0xF0, 0xA2, 0x8C, 0xB1, 0x44, 0xF0,
- 0xA2, 0x9B, 0x94, 0x44, 0xF0, 0xA2, 0xA1, 0x84,
- 0x44, 0xF0, 0xA2, 0xA1, 0x8A, 0x44, 0xF0, 0xA2,
- // Bytes 16c0 - 16ff
- 0xAC, 0x8C, 0x44, 0xF0, 0xA2, 0xAF, 0xB1, 0x44,
- 0xF0, 0xA3, 0x80, 0x8A, 0x44, 0xF0, 0xA3, 0x8A,
- 0xB8, 0x44, 0xF0, 0xA3, 0x8D, 0x9F, 0x44, 0xF0,
- 0xA3, 0x8E, 0x93, 0x44, 0xF0, 0xA3, 0x8E, 0x9C,
- 0x44, 0xF0, 0xA3, 0x8F, 0x83, 0x44, 0xF0, 0xA3,
- 0x8F, 0x95, 0x44, 0xF0, 0xA3, 0x91, 0xAD, 0x44,
- 0xF0, 0xA3, 0x9A, 0xA3, 0x44, 0xF0, 0xA3, 0xA2,
- 0xA7, 0x44, 0xF0, 0xA3, 0xAA, 0x8D, 0x44, 0xF0,
- // Bytes 1700 - 173f
- 0xA3, 0xAB, 0xBA, 0x44, 0xF0, 0xA3, 0xB2, 0xBC,
- 0x44, 0xF0, 0xA3, 0xB4, 0x9E, 0x44, 0xF0, 0xA3,
- 0xBB, 0x91, 0x44, 0xF0, 0xA3, 0xBD, 0x9E, 0x44,
- 0xF0, 0xA3, 0xBE, 0x8E, 0x44, 0xF0, 0xA4, 0x89,
- 0xA3, 0x44, 0xF0, 0xA4, 0x8B, 0xAE, 0x44, 0xF0,
- 0xA4, 0x8E, 0xAB, 0x44, 0xF0, 0xA4, 0x98, 0x88,
- 0x44, 0xF0, 0xA4, 0x9C, 0xB5, 0x44, 0xF0, 0xA4,
- 0xA0, 0x94, 0x44, 0xF0, 0xA4, 0xB0, 0xB6, 0x44,
+ 0xBE, 0xA0, 0x43, 0xEA, 0x99, 0x91, 0x43, 0xEA,
+ 0x9A, 0x89, 0x43, 0xEA, 0x9C, 0xA7, 0x43, 0xEA,
// Bytes 1740 - 177f
- 0xF0, 0xA4, 0xB2, 0x92, 0x44, 0xF0, 0xA4, 0xBE,
- 0xA1, 0x44, 0xF0, 0xA4, 0xBE, 0xB8, 0x44, 0xF0,
- 0xA5, 0x81, 0x84, 0x44, 0xF0, 0xA5, 0x83, 0xB2,
- 0x44, 0xF0, 0xA5, 0x83, 0xB3, 0x44, 0xF0, 0xA5,
- 0x84, 0x99, 0x44, 0xF0, 0xA5, 0x84, 0xB3, 0x44,
- 0xF0, 0xA5, 0x89, 0x89, 0x44, 0xF0, 0xA5, 0x90,
- 0x9D, 0x44, 0xF0, 0xA5, 0x98, 0xA6, 0x44, 0xF0,
- 0xA5, 0x9A, 0x9A, 0x44, 0xF0, 0xA5, 0x9B, 0x85,
+ 0x9D, 0xAF, 0x43, 0xEA, 0x9E, 0x8E, 0x43, 0xEA,
+ 0xAC, 0xB7, 0x43, 0xEA, 0xAD, 0x92, 0x43, 0xEA,
+ 0xAD, 0xA6, 0x43, 0xEA, 0xAD, 0xA7, 0x44, 0xF0,
+ 0x9D, 0xBC, 0x84, 0x44, 0xF0, 0x9D, 0xBC, 0x85,
+ 0x44, 0xF0, 0x9D, 0xBC, 0x86, 0x44, 0xF0, 0x9D,
+ 0xBC, 0x88, 0x44, 0xF0, 0x9D, 0xBC, 0x8A, 0x44,
+ 0xF0, 0x9D, 0xBC, 0x9E, 0x44, 0xF0, 0xA0, 0x84,
+ 0xA2, 0x44, 0xF0, 0xA0, 0x94, 0x9C, 0x44, 0xF0,
// Bytes 1780 - 17bf
- 0x44, 0xF0, 0xA5, 0xA5, 0xBC, 0x44, 0xF0, 0xA5,
- 0xAA, 0xA7, 0x44, 0xF0, 0xA5, 0xAE, 0xAB, 0x44,
- 0xF0, 0xA5, 0xB2, 0x80, 0x44, 0xF0, 0xA5, 0xB3,
- 0x90, 0x44, 0xF0, 0xA5, 0xBE, 0x86, 0x44, 0xF0,
- 0xA6, 0x87, 0x9A, 0x44, 0xF0, 0xA6, 0x88, 0xA8,
- 0x44, 0xF0, 0xA6, 0x89, 0x87, 0x44, 0xF0, 0xA6,
- 0x8B, 0x99, 0x44, 0xF0, 0xA6, 0x8C, 0xBE, 0x44,
- 0xF0, 0xA6, 0x93, 0x9A, 0x44, 0xF0, 0xA6, 0x94,
+ 0xA0, 0x94, 0xA5, 0x44, 0xF0, 0xA0, 0x95, 0x8B,
+ 0x44, 0xF0, 0xA0, 0x98, 0xBA, 0x44, 0xF0, 0xA0,
+ 0xA0, 0x84, 0x44, 0xF0, 0xA0, 0xA3, 0x9E, 0x44,
+ 0xF0, 0xA0, 0xA8, 0xAC, 0x44, 0xF0, 0xA0, 0xAD,
+ 0xA3, 0x44, 0xF0, 0xA1, 0x93, 0xA4, 0x44, 0xF0,
+ 0xA1, 0x9A, 0xA8, 0x44, 0xF0, 0xA1, 0x9B, 0xAA,
+ 0x44, 0xF0, 0xA1, 0xA7, 0x88, 0x44, 0xF0, 0xA1,
+ 0xAC, 0x98, 0x44, 0xF0, 0xA1, 0xB4, 0x8B, 0x44,
// Bytes 17c0 - 17ff
- 0xA3, 0x44, 0xF0, 0xA6, 0x96, 0xA8, 0x44, 0xF0,
- 0xA6, 0x9E, 0xA7, 0x44, 0xF0, 0xA6, 0x9E, 0xB5,
- 0x44, 0xF0, 0xA6, 0xAC, 0xBC, 0x44, 0xF0, 0xA6,
- 0xB0, 0xB6, 0x44, 0xF0, 0xA6, 0xB3, 0x95, 0x44,
- 0xF0, 0xA6, 0xB5, 0xAB, 0x44, 0xF0, 0xA6, 0xBC,
- 0xAC, 0x44, 0xF0, 0xA6, 0xBE, 0xB1, 0x44, 0xF0,
- 0xA7, 0x83, 0x92, 0x44, 0xF0, 0xA7, 0x8F, 0x8A,
- 0x44, 0xF0, 0xA7, 0x99, 0xA7, 0x44, 0xF0, 0xA7,
+ 0xF0, 0xA1, 0xB7, 0xA4, 0x44, 0xF0, 0xA1, 0xB7,
+ 0xA6, 0x44, 0xF0, 0xA2, 0x86, 0x83, 0x44, 0xF0,
+ 0xA2, 0x86, 0x9F, 0x44, 0xF0, 0xA2, 0x8C, 0xB1,
+ 0x44, 0xF0, 0xA2, 0x9B, 0x94, 0x44, 0xF0, 0xA2,
+ 0xA1, 0x84, 0x44, 0xF0, 0xA2, 0xA1, 0x8A, 0x44,
+ 0xF0, 0xA2, 0xAC, 0x8C, 0x44, 0xF0, 0xA2, 0xAF,
+ 0xB1, 0x44, 0xF0, 0xA3, 0x80, 0x8A, 0x44, 0xF0,
+ 0xA3, 0x8A, 0xB8, 0x44, 0xF0, 0xA3, 0x8D, 0x9F,
// Bytes 1800 - 183f
- 0xA2, 0xAE, 0x44, 0xF0, 0xA7, 0xA5, 0xA6, 0x44,
- 0xF0, 0xA7, 0xB2, 0xA8, 0x44, 0xF0, 0xA7, 0xBB,
- 0x93, 0x44, 0xF0, 0xA7, 0xBC, 0xAF, 0x44, 0xF0,
- 0xA8, 0x97, 0x92, 0x44, 0xF0, 0xA8, 0x97, 0xAD,
- 0x44, 0xF0, 0xA8, 0x9C, 0xAE, 0x44, 0xF0, 0xA8,
- 0xAF, 0xBA, 0x44, 0xF0, 0xA8, 0xB5, 0xB7, 0x44,
- 0xF0, 0xA9, 0x85, 0x85, 0x44, 0xF0, 0xA9, 0x87,
- 0x9F, 0x44, 0xF0, 0xA9, 0x88, 0x9A, 0x44, 0xF0,
+ 0x44, 0xF0, 0xA3, 0x8E, 0x93, 0x44, 0xF0, 0xA3,
+ 0x8E, 0x9C, 0x44, 0xF0, 0xA3, 0x8F, 0x83, 0x44,
+ 0xF0, 0xA3, 0x8F, 0x95, 0x44, 0xF0, 0xA3, 0x91,
+ 0xAD, 0x44, 0xF0, 0xA3, 0x9A, 0xA3, 0x44, 0xF0,
+ 0xA3, 0xA2, 0xA7, 0x44, 0xF0, 0xA3, 0xAA, 0x8D,
+ 0x44, 0xF0, 0xA3, 0xAB, 0xBA, 0x44, 0xF0, 0xA3,
+ 0xB2, 0xBC, 0x44, 0xF0, 0xA3, 0xB4, 0x9E, 0x44,
+ 0xF0, 0xA3, 0xBB, 0x91, 0x44, 0xF0, 0xA3, 0xBD,
// Bytes 1840 - 187f
- 0xA9, 0x90, 0x8A, 0x44, 0xF0, 0xA9, 0x92, 0x96,
- 0x44, 0xF0, 0xA9, 0x96, 0xB6, 0x44, 0xF0, 0xA9,
- 0xAC, 0xB0, 0x44, 0xF0, 0xAA, 0x83, 0x8E, 0x44,
- 0xF0, 0xAA, 0x84, 0x85, 0x44, 0xF0, 0xAA, 0x88,
- 0x8E, 0x44, 0xF0, 0xAA, 0x8A, 0x91, 0x44, 0xF0,
- 0xAA, 0x8E, 0x92, 0x44, 0xF0, 0xAA, 0x98, 0x80,
- 0x42, 0x21, 0x21, 0x42, 0x21, 0x3F, 0x42, 0x2E,
- 0x2E, 0x42, 0x30, 0x2C, 0x42, 0x30, 0x2E, 0x42,
+ 0x9E, 0x44, 0xF0, 0xA3, 0xBE, 0x8E, 0x44, 0xF0,
+ 0xA4, 0x89, 0xA3, 0x44, 0xF0, 0xA4, 0x8B, 0xAE,
+ 0x44, 0xF0, 0xA4, 0x8E, 0xAB, 0x44, 0xF0, 0xA4,
+ 0x98, 0x88, 0x44, 0xF0, 0xA4, 0x9C, 0xB5, 0x44,
+ 0xF0, 0xA4, 0xA0, 0x94, 0x44, 0xF0, 0xA4, 0xB0,
+ 0xB6, 0x44, 0xF0, 0xA4, 0xB2, 0x92, 0x44, 0xF0,
+ 0xA4, 0xBE, 0xA1, 0x44, 0xF0, 0xA4, 0xBE, 0xB8,
+ 0x44, 0xF0, 0xA5, 0x81, 0x84, 0x44, 0xF0, 0xA5,
// Bytes 1880 - 18bf
- 0x31, 0x2C, 0x42, 0x31, 0x2E, 0x42, 0x31, 0x30,
- 0x42, 0x31, 0x31, 0x42, 0x31, 0x32, 0x42, 0x31,
- 0x33, 0x42, 0x31, 0x34, 0x42, 0x31, 0x35, 0x42,
- 0x31, 0x36, 0x42, 0x31, 0x37, 0x42, 0x31, 0x38,
- 0x42, 0x31, 0x39, 0x42, 0x32, 0x2C, 0x42, 0x32,
- 0x2E, 0x42, 0x32, 0x30, 0x42, 0x32, 0x31, 0x42,
- 0x32, 0x32, 0x42, 0x32, 0x33, 0x42, 0x32, 0x34,
- 0x42, 0x32, 0x35, 0x42, 0x32, 0x36, 0x42, 0x32,
+ 0x83, 0xB2, 0x44, 0xF0, 0xA5, 0x83, 0xB3, 0x44,
+ 0xF0, 0xA5, 0x84, 0x99, 0x44, 0xF0, 0xA5, 0x84,
+ 0xB3, 0x44, 0xF0, 0xA5, 0x89, 0x89, 0x44, 0xF0,
+ 0xA5, 0x90, 0x9D, 0x44, 0xF0, 0xA5, 0x98, 0xA6,
+ 0x44, 0xF0, 0xA5, 0x9A, 0x9A, 0x44, 0xF0, 0xA5,
+ 0x9B, 0x85, 0x44, 0xF0, 0xA5, 0xA5, 0xBC, 0x44,
+ 0xF0, 0xA5, 0xAA, 0xA7, 0x44, 0xF0, 0xA5, 0xAE,
+ 0xAB, 0x44, 0xF0, 0xA5, 0xB2, 0x80, 0x44, 0xF0,
// Bytes 18c0 - 18ff
- 0x37, 0x42, 0x32, 0x38, 0x42, 0x32, 0x39, 0x42,
- 0x33, 0x2C, 0x42, 0x33, 0x2E, 0x42, 0x33, 0x30,
- 0x42, 0x33, 0x31, 0x42, 0x33, 0x32, 0x42, 0x33,
- 0x33, 0x42, 0x33, 0x34, 0x42, 0x33, 0x35, 0x42,
- 0x33, 0x36, 0x42, 0x33, 0x37, 0x42, 0x33, 0x38,
- 0x42, 0x33, 0x39, 0x42, 0x34, 0x2C, 0x42, 0x34,
- 0x2E, 0x42, 0x34, 0x30, 0x42, 0x34, 0x31, 0x42,
- 0x34, 0x32, 0x42, 0x34, 0x33, 0x42, 0x34, 0x34,
+ 0xA5, 0xB3, 0x90, 0x44, 0xF0, 0xA5, 0xBE, 0x86,
+ 0x44, 0xF0, 0xA6, 0x87, 0x9A, 0x44, 0xF0, 0xA6,
+ 0x88, 0xA8, 0x44, 0xF0, 0xA6, 0x89, 0x87, 0x44,
+ 0xF0, 0xA6, 0x8B, 0x99, 0x44, 0xF0, 0xA6, 0x8C,
+ 0xBE, 0x44, 0xF0, 0xA6, 0x93, 0x9A, 0x44, 0xF0,
+ 0xA6, 0x94, 0xA3, 0x44, 0xF0, 0xA6, 0x96, 0xA8,
+ 0x44, 0xF0, 0xA6, 0x9E, 0xA7, 0x44, 0xF0, 0xA6,
+ 0x9E, 0xB5, 0x44, 0xF0, 0xA6, 0xAC, 0xBC, 0x44,
// Bytes 1900 - 193f
- 0x42, 0x34, 0x35, 0x42, 0x34, 0x36, 0x42, 0x34,
- 0x37, 0x42, 0x34, 0x38, 0x42, 0x34, 0x39, 0x42,
- 0x35, 0x2C, 0x42, 0x35, 0x2E, 0x42, 0x35, 0x30,
- 0x42, 0x36, 0x2C, 0x42, 0x36, 0x2E, 0x42, 0x37,
- 0x2C, 0x42, 0x37, 0x2E, 0x42, 0x38, 0x2C, 0x42,
- 0x38, 0x2E, 0x42, 0x39, 0x2C, 0x42, 0x39, 0x2E,
- 0x42, 0x3D, 0x3D, 0x42, 0x3F, 0x21, 0x42, 0x3F,
- 0x3F, 0x42, 0x41, 0x55, 0x42, 0x42, 0x71, 0x42,
+ 0xF0, 0xA6, 0xB0, 0xB6, 0x44, 0xF0, 0xA6, 0xB3,
+ 0x95, 0x44, 0xF0, 0xA6, 0xB5, 0xAB, 0x44, 0xF0,
+ 0xA6, 0xBC, 0xAC, 0x44, 0xF0, 0xA6, 0xBE, 0xB1,
+ 0x44, 0xF0, 0xA7, 0x83, 0x92, 0x44, 0xF0, 0xA7,
+ 0x8F, 0x8A, 0x44, 0xF0, 0xA7, 0x99, 0xA7, 0x44,
+ 0xF0, 0xA7, 0xA2, 0xAE, 0x44, 0xF0, 0xA7, 0xA5,
+ 0xA6, 0x44, 0xF0, 0xA7, 0xB2, 0xA8, 0x44, 0xF0,
+ 0xA7, 0xBB, 0x93, 0x44, 0xF0, 0xA7, 0xBC, 0xAF,
// Bytes 1940 - 197f
- 0x43, 0x44, 0x42, 0x44, 0x4A, 0x42, 0x44, 0x5A,
- 0x42, 0x44, 0x7A, 0x42, 0x47, 0x42, 0x42, 0x47,
- 0x79, 0x42, 0x48, 0x50, 0x42, 0x48, 0x56, 0x42,
- 0x48, 0x67, 0x42, 0x48, 0x7A, 0x42, 0x49, 0x49,
- 0x42, 0x49, 0x4A, 0x42, 0x49, 0x55, 0x42, 0x49,
- 0x56, 0x42, 0x49, 0x58, 0x42, 0x4B, 0x42, 0x42,
- 0x4B, 0x4B, 0x42, 0x4B, 0x4D, 0x42, 0x4C, 0x4A,
- 0x42, 0x4C, 0x6A, 0x42, 0x4D, 0x42, 0x42, 0x4D,
+ 0x44, 0xF0, 0xA8, 0x97, 0x92, 0x44, 0xF0, 0xA8,
+ 0x97, 0xAD, 0x44, 0xF0, 0xA8, 0x9C, 0xAE, 0x44,
+ 0xF0, 0xA8, 0xAF, 0xBA, 0x44, 0xF0, 0xA8, 0xB5,
+ 0xB7, 0x44, 0xF0, 0xA9, 0x85, 0x85, 0x44, 0xF0,
+ 0xA9, 0x87, 0x9F, 0x44, 0xF0, 0xA9, 0x88, 0x9A,
+ 0x44, 0xF0, 0xA9, 0x90, 0x8A, 0x44, 0xF0, 0xA9,
+ 0x92, 0x96, 0x44, 0xF0, 0xA9, 0x96, 0xB6, 0x44,
+ 0xF0, 0xA9, 0xAC, 0xB0, 0x44, 0xF0, 0xAA, 0x83,
// Bytes 1980 - 19bf
- 0x43, 0x42, 0x4D, 0x44, 0x42, 0x4D, 0x52, 0x42,
- 0x4D, 0x56, 0x42, 0x4D, 0x57, 0x42, 0x4E, 0x4A,
- 0x42, 0x4E, 0x6A, 0x42, 0x4E, 0x6F, 0x42, 0x50,
- 0x48, 0x42, 0x50, 0x52, 0x42, 0x50, 0x61, 0x42,
- 0x52, 0x73, 0x42, 0x53, 0x44, 0x42, 0x53, 0x4D,
- 0x42, 0x53, 0x53, 0x42, 0x53, 0x76, 0x42, 0x54,
- 0x4D, 0x42, 0x56, 0x49, 0x42, 0x57, 0x43, 0x42,
- 0x57, 0x5A, 0x42, 0x57, 0x62, 0x42, 0x58, 0x49,
+ 0x8E, 0x44, 0xF0, 0xAA, 0x84, 0x85, 0x44, 0xF0,
+ 0xAA, 0x88, 0x8E, 0x44, 0xF0, 0xAA, 0x8A, 0x91,
+ 0x44, 0xF0, 0xAA, 0x8E, 0x92, 0x44, 0xF0, 0xAA,
+ 0x98, 0x80, 0x42, 0x21, 0x21, 0x42, 0x21, 0x3F,
+ 0x42, 0x2E, 0x2E, 0x42, 0x30, 0x2C, 0x42, 0x30,
+ 0x2E, 0x42, 0x31, 0x2C, 0x42, 0x31, 0x2E, 0x42,
+ 0x31, 0x30, 0x42, 0x31, 0x31, 0x42, 0x31, 0x32,
+ 0x42, 0x31, 0x33, 0x42, 0x31, 0x34, 0x42, 0x31,
// Bytes 19c0 - 19ff
- 0x42, 0x63, 0x63, 0x42, 0x63, 0x64, 0x42, 0x63,
- 0x6D, 0x42, 0x64, 0x42, 0x42, 0x64, 0x61, 0x42,
- 0x64, 0x6C, 0x42, 0x64, 0x6D, 0x42, 0x64, 0x7A,
- 0x42, 0x65, 0x56, 0x42, 0x66, 0x66, 0x42, 0x66,
- 0x69, 0x42, 0x66, 0x6C, 0x42, 0x66, 0x6D, 0x42,
- 0x68, 0x61, 0x42, 0x69, 0x69, 0x42, 0x69, 0x6A,
- 0x42, 0x69, 0x6E, 0x42, 0x69, 0x76, 0x42, 0x69,
- 0x78, 0x42, 0x6B, 0x41, 0x42, 0x6B, 0x56, 0x42,
+ 0x35, 0x42, 0x31, 0x36, 0x42, 0x31, 0x37, 0x42,
+ 0x31, 0x38, 0x42, 0x31, 0x39, 0x42, 0x32, 0x2C,
+ 0x42, 0x32, 0x2E, 0x42, 0x32, 0x30, 0x42, 0x32,
+ 0x31, 0x42, 0x32, 0x32, 0x42, 0x32, 0x33, 0x42,
+ 0x32, 0x34, 0x42, 0x32, 0x35, 0x42, 0x32, 0x36,
+ 0x42, 0x32, 0x37, 0x42, 0x32, 0x38, 0x42, 0x32,
+ 0x39, 0x42, 0x33, 0x2C, 0x42, 0x33, 0x2E, 0x42,
+ 0x33, 0x30, 0x42, 0x33, 0x31, 0x42, 0x33, 0x32,
// Bytes 1a00 - 1a3f
- 0x6B, 0x57, 0x42, 0x6B, 0x67, 0x42, 0x6B, 0x6C,
- 0x42, 0x6B, 0x6D, 0x42, 0x6B, 0x74, 0x42, 0x6C,
- 0x6A, 0x42, 0x6C, 0x6D, 0x42, 0x6C, 0x6E, 0x42,
- 0x6C, 0x78, 0x42, 0x6D, 0x32, 0x42, 0x6D, 0x33,
- 0x42, 0x6D, 0x41, 0x42, 0x6D, 0x56, 0x42, 0x6D,
- 0x57, 0x42, 0x6D, 0x62, 0x42, 0x6D, 0x67, 0x42,
- 0x6D, 0x6C, 0x42, 0x6D, 0x6D, 0x42, 0x6D, 0x73,
- 0x42, 0x6E, 0x41, 0x42, 0x6E, 0x46, 0x42, 0x6E,
+ 0x42, 0x33, 0x33, 0x42, 0x33, 0x34, 0x42, 0x33,
+ 0x35, 0x42, 0x33, 0x36, 0x42, 0x33, 0x37, 0x42,
+ 0x33, 0x38, 0x42, 0x33, 0x39, 0x42, 0x34, 0x2C,
+ 0x42, 0x34, 0x2E, 0x42, 0x34, 0x30, 0x42, 0x34,
+ 0x31, 0x42, 0x34, 0x32, 0x42, 0x34, 0x33, 0x42,
+ 0x34, 0x34, 0x42, 0x34, 0x35, 0x42, 0x34, 0x36,
+ 0x42, 0x34, 0x37, 0x42, 0x34, 0x38, 0x42, 0x34,
+ 0x39, 0x42, 0x35, 0x2C, 0x42, 0x35, 0x2E, 0x42,
// Bytes 1a40 - 1a7f
- 0x56, 0x42, 0x6E, 0x57, 0x42, 0x6E, 0x6A, 0x42,
- 0x6E, 0x6D, 0x42, 0x6E, 0x73, 0x42, 0x6F, 0x56,
- 0x42, 0x70, 0x41, 0x42, 0x70, 0x46, 0x42, 0x70,
- 0x56, 0x42, 0x70, 0x57, 0x42, 0x70, 0x63, 0x42,
- 0x70, 0x73, 0x42, 0x73, 0x72, 0x42, 0x73, 0x74,
- 0x42, 0x76, 0x69, 0x42, 0x78, 0x69, 0x43, 0x28,
- 0x31, 0x29, 0x43, 0x28, 0x32, 0x29, 0x43, 0x28,
- 0x33, 0x29, 0x43, 0x28, 0x34, 0x29, 0x43, 0x28,
+ 0x35, 0x30, 0x42, 0x36, 0x2C, 0x42, 0x36, 0x2E,
+ 0x42, 0x37, 0x2C, 0x42, 0x37, 0x2E, 0x42, 0x38,
+ 0x2C, 0x42, 0x38, 0x2E, 0x42, 0x39, 0x2C, 0x42,
+ 0x39, 0x2E, 0x42, 0x3D, 0x3D, 0x42, 0x3F, 0x21,
+ 0x42, 0x3F, 0x3F, 0x42, 0x41, 0x55, 0x42, 0x42,
+ 0x71, 0x42, 0x43, 0x44, 0x42, 0x44, 0x4A, 0x42,
+ 0x44, 0x5A, 0x42, 0x44, 0x7A, 0x42, 0x47, 0x42,
+ 0x42, 0x47, 0x79, 0x42, 0x48, 0x50, 0x42, 0x48,
// Bytes 1a80 - 1abf
- 0x35, 0x29, 0x43, 0x28, 0x36, 0x29, 0x43, 0x28,
- 0x37, 0x29, 0x43, 0x28, 0x38, 0x29, 0x43, 0x28,
- 0x39, 0x29, 0x43, 0x28, 0x41, 0x29, 0x43, 0x28,
- 0x42, 0x29, 0x43, 0x28, 0x43, 0x29, 0x43, 0x28,
- 0x44, 0x29, 0x43, 0x28, 0x45, 0x29, 0x43, 0x28,
- 0x46, 0x29, 0x43, 0x28, 0x47, 0x29, 0x43, 0x28,
- 0x48, 0x29, 0x43, 0x28, 0x49, 0x29, 0x43, 0x28,
- 0x4A, 0x29, 0x43, 0x28, 0x4B, 0x29, 0x43, 0x28,
+ 0x56, 0x42, 0x48, 0x67, 0x42, 0x48, 0x7A, 0x42,
+ 0x49, 0x49, 0x42, 0x49, 0x4A, 0x42, 0x49, 0x55,
+ 0x42, 0x49, 0x56, 0x42, 0x49, 0x58, 0x42, 0x4B,
+ 0x42, 0x42, 0x4B, 0x4B, 0x42, 0x4B, 0x4D, 0x42,
+ 0x4C, 0x4A, 0x42, 0x4C, 0x6A, 0x42, 0x4D, 0x42,
+ 0x42, 0x4D, 0x43, 0x42, 0x4D, 0x44, 0x42, 0x4D,
+ 0x52, 0x42, 0x4D, 0x56, 0x42, 0x4D, 0x57, 0x42,
+ 0x4E, 0x4A, 0x42, 0x4E, 0x6A, 0x42, 0x4E, 0x6F,
// Bytes 1ac0 - 1aff
- 0x4C, 0x29, 0x43, 0x28, 0x4D, 0x29, 0x43, 0x28,
- 0x4E, 0x29, 0x43, 0x28, 0x4F, 0x29, 0x43, 0x28,
- 0x50, 0x29, 0x43, 0x28, 0x51, 0x29, 0x43, 0x28,
- 0x52, 0x29, 0x43, 0x28, 0x53, 0x29, 0x43, 0x28,
- 0x54, 0x29, 0x43, 0x28, 0x55, 0x29, 0x43, 0x28,
- 0x56, 0x29, 0x43, 0x28, 0x57, 0x29, 0x43, 0x28,
- 0x58, 0x29, 0x43, 0x28, 0x59, 0x29, 0x43, 0x28,
- 0x5A, 0x29, 0x43, 0x28, 0x61, 0x29, 0x43, 0x28,
+ 0x42, 0x50, 0x48, 0x42, 0x50, 0x52, 0x42, 0x50,
+ 0x61, 0x42, 0x52, 0x73, 0x42, 0x53, 0x44, 0x42,
+ 0x53, 0x4D, 0x42, 0x53, 0x53, 0x42, 0x53, 0x76,
+ 0x42, 0x54, 0x4D, 0x42, 0x56, 0x49, 0x42, 0x57,
+ 0x43, 0x42, 0x57, 0x5A, 0x42, 0x57, 0x62, 0x42,
+ 0x58, 0x49, 0x42, 0x63, 0x63, 0x42, 0x63, 0x64,
+ 0x42, 0x63, 0x6D, 0x42, 0x64, 0x42, 0x42, 0x64,
+ 0x61, 0x42, 0x64, 0x6C, 0x42, 0x64, 0x6D, 0x42,
// Bytes 1b00 - 1b3f
- 0x62, 0x29, 0x43, 0x28, 0x63, 0x29, 0x43, 0x28,
- 0x64, 0x29, 0x43, 0x28, 0x65, 0x29, 0x43, 0x28,
- 0x66, 0x29, 0x43, 0x28, 0x67, 0x29, 0x43, 0x28,
- 0x68, 0x29, 0x43, 0x28, 0x69, 0x29, 0x43, 0x28,
- 0x6A, 0x29, 0x43, 0x28, 0x6B, 0x29, 0x43, 0x28,
- 0x6C, 0x29, 0x43, 0x28, 0x6D, 0x29, 0x43, 0x28,
- 0x6E, 0x29, 0x43, 0x28, 0x6F, 0x29, 0x43, 0x28,
- 0x70, 0x29, 0x43, 0x28, 0x71, 0x29, 0x43, 0x28,
+ 0x64, 0x7A, 0x42, 0x65, 0x56, 0x42, 0x66, 0x66,
+ 0x42, 0x66, 0x69, 0x42, 0x66, 0x6C, 0x42, 0x66,
+ 0x6D, 0x42, 0x68, 0x61, 0x42, 0x69, 0x69, 0x42,
+ 0x69, 0x6A, 0x42, 0x69, 0x6E, 0x42, 0x69, 0x76,
+ 0x42, 0x69, 0x78, 0x42, 0x6B, 0x41, 0x42, 0x6B,
+ 0x56, 0x42, 0x6B, 0x57, 0x42, 0x6B, 0x67, 0x42,
+ 0x6B, 0x6C, 0x42, 0x6B, 0x6D, 0x42, 0x6B, 0x74,
+ 0x42, 0x6C, 0x6A, 0x42, 0x6C, 0x6D, 0x42, 0x6C,
// Bytes 1b40 - 1b7f
- 0x72, 0x29, 0x43, 0x28, 0x73, 0x29, 0x43, 0x28,
- 0x74, 0x29, 0x43, 0x28, 0x75, 0x29, 0x43, 0x28,
- 0x76, 0x29, 0x43, 0x28, 0x77, 0x29, 0x43, 0x28,
- 0x78, 0x29, 0x43, 0x28, 0x79, 0x29, 0x43, 0x28,
- 0x7A, 0x29, 0x43, 0x2E, 0x2E, 0x2E, 0x43, 0x31,
- 0x30, 0x2E, 0x43, 0x31, 0x31, 0x2E, 0x43, 0x31,
- 0x32, 0x2E, 0x43, 0x31, 0x33, 0x2E, 0x43, 0x31,
- 0x34, 0x2E, 0x43, 0x31, 0x35, 0x2E, 0x43, 0x31,
+ 0x6E, 0x42, 0x6C, 0x78, 0x42, 0x6D, 0x32, 0x42,
+ 0x6D, 0x33, 0x42, 0x6D, 0x41, 0x42, 0x6D, 0x56,
+ 0x42, 0x6D, 0x57, 0x42, 0x6D, 0x62, 0x42, 0x6D,
+ 0x67, 0x42, 0x6D, 0x6C, 0x42, 0x6D, 0x6D, 0x42,
+ 0x6D, 0x73, 0x42, 0x6E, 0x41, 0x42, 0x6E, 0x46,
+ 0x42, 0x6E, 0x56, 0x42, 0x6E, 0x57, 0x42, 0x6E,
+ 0x6A, 0x42, 0x6E, 0x6D, 0x42, 0x6E, 0x73, 0x42,
+ 0x6F, 0x56, 0x42, 0x70, 0x41, 0x42, 0x70, 0x46,
// Bytes 1b80 - 1bbf
- 0x36, 0x2E, 0x43, 0x31, 0x37, 0x2E, 0x43, 0x31,
- 0x38, 0x2E, 0x43, 0x31, 0x39, 0x2E, 0x43, 0x32,
- 0x30, 0x2E, 0x43, 0x3A, 0x3A, 0x3D, 0x43, 0x3D,
- 0x3D, 0x3D, 0x43, 0x43, 0x6F, 0x2E, 0x43, 0x46,
- 0x41, 0x58, 0x43, 0x47, 0x48, 0x7A, 0x43, 0x47,
- 0x50, 0x61, 0x43, 0x49, 0x49, 0x49, 0x43, 0x4C,
- 0x54, 0x44, 0x43, 0x4C, 0xC2, 0xB7, 0x43, 0x4D,
- 0x48, 0x7A, 0x43, 0x4D, 0x50, 0x61, 0x43, 0x4D,
+ 0x42, 0x70, 0x56, 0x42, 0x70, 0x57, 0x42, 0x70,
+ 0x63, 0x42, 0x70, 0x73, 0x42, 0x73, 0x72, 0x42,
+ 0x73, 0x74, 0x42, 0x76, 0x69, 0x42, 0x78, 0x69,
+ 0x43, 0x28, 0x31, 0x29, 0x43, 0x28, 0x32, 0x29,
+ 0x43, 0x28, 0x33, 0x29, 0x43, 0x28, 0x34, 0x29,
+ 0x43, 0x28, 0x35, 0x29, 0x43, 0x28, 0x36, 0x29,
+ 0x43, 0x28, 0x37, 0x29, 0x43, 0x28, 0x38, 0x29,
+ 0x43, 0x28, 0x39, 0x29, 0x43, 0x28, 0x41, 0x29,
// Bytes 1bc0 - 1bff
- 0xCE, 0xA9, 0x43, 0x50, 0x50, 0x4D, 0x43, 0x50,
- 0x50, 0x56, 0x43, 0x50, 0x54, 0x45, 0x43, 0x54,
- 0x45, 0x4C, 0x43, 0x54, 0x48, 0x7A, 0x43, 0x56,
- 0x49, 0x49, 0x43, 0x58, 0x49, 0x49, 0x43, 0x61,
- 0x2F, 0x63, 0x43, 0x61, 0x2F, 0x73, 0x43, 0x61,
- 0xCA, 0xBE, 0x43, 0x62, 0x61, 0x72, 0x43, 0x63,
- 0x2F, 0x6F, 0x43, 0x63, 0x2F, 0x75, 0x43, 0x63,
- 0x61, 0x6C, 0x43, 0x63, 0x6D, 0x32, 0x43, 0x63,
+ 0x43, 0x28, 0x42, 0x29, 0x43, 0x28, 0x43, 0x29,
+ 0x43, 0x28, 0x44, 0x29, 0x43, 0x28, 0x45, 0x29,
+ 0x43, 0x28, 0x46, 0x29, 0x43, 0x28, 0x47, 0x29,
+ 0x43, 0x28, 0x48, 0x29, 0x43, 0x28, 0x49, 0x29,
+ 0x43, 0x28, 0x4A, 0x29, 0x43, 0x28, 0x4B, 0x29,
+ 0x43, 0x28, 0x4C, 0x29, 0x43, 0x28, 0x4D, 0x29,
+ 0x43, 0x28, 0x4E, 0x29, 0x43, 0x28, 0x4F, 0x29,
+ 0x43, 0x28, 0x50, 0x29, 0x43, 0x28, 0x51, 0x29,
// Bytes 1c00 - 1c3f
- 0x6D, 0x33, 0x43, 0x64, 0x6D, 0x32, 0x43, 0x64,
- 0x6D, 0x33, 0x43, 0x65, 0x72, 0x67, 0x43, 0x66,
- 0x66, 0x69, 0x43, 0x66, 0x66, 0x6C, 0x43, 0x67,
- 0x61, 0x6C, 0x43, 0x68, 0x50, 0x61, 0x43, 0x69,
- 0x69, 0x69, 0x43, 0x6B, 0x48, 0x7A, 0x43, 0x6B,
- 0x50, 0x61, 0x43, 0x6B, 0x6D, 0x32, 0x43, 0x6B,
- 0x6D, 0x33, 0x43, 0x6B, 0xCE, 0xA9, 0x43, 0x6C,
- 0x6F, 0x67, 0x43, 0x6C, 0xC2, 0xB7, 0x43, 0x6D,
+ 0x43, 0x28, 0x52, 0x29, 0x43, 0x28, 0x53, 0x29,
+ 0x43, 0x28, 0x54, 0x29, 0x43, 0x28, 0x55, 0x29,
+ 0x43, 0x28, 0x56, 0x29, 0x43, 0x28, 0x57, 0x29,
+ 0x43, 0x28, 0x58, 0x29, 0x43, 0x28, 0x59, 0x29,
+ 0x43, 0x28, 0x5A, 0x29, 0x43, 0x28, 0x61, 0x29,
+ 0x43, 0x28, 0x62, 0x29, 0x43, 0x28, 0x63, 0x29,
+ 0x43, 0x28, 0x64, 0x29, 0x43, 0x28, 0x65, 0x29,
+ 0x43, 0x28, 0x66, 0x29, 0x43, 0x28, 0x67, 0x29,
// Bytes 1c40 - 1c7f
- 0x69, 0x6C, 0x43, 0x6D, 0x6D, 0x32, 0x43, 0x6D,
- 0x6D, 0x33, 0x43, 0x6D, 0x6F, 0x6C, 0x43, 0x72,
- 0x61, 0x64, 0x43, 0x76, 0x69, 0x69, 0x43, 0x78,
- 0x69, 0x69, 0x43, 0xC2, 0xB0, 0x43, 0x43, 0xC2,
- 0xB0, 0x46, 0x43, 0xCA, 0xBC, 0x6E, 0x43, 0xCE,
- 0xBC, 0x41, 0x43, 0xCE, 0xBC, 0x46, 0x43, 0xCE,
- 0xBC, 0x56, 0x43, 0xCE, 0xBC, 0x57, 0x43, 0xCE,
- 0xBC, 0x67, 0x43, 0xCE, 0xBC, 0x6C, 0x43, 0xCE,
+ 0x43, 0x28, 0x68, 0x29, 0x43, 0x28, 0x69, 0x29,
+ 0x43, 0x28, 0x6A, 0x29, 0x43, 0x28, 0x6B, 0x29,
+ 0x43, 0x28, 0x6C, 0x29, 0x43, 0x28, 0x6D, 0x29,
+ 0x43, 0x28, 0x6E, 0x29, 0x43, 0x28, 0x6F, 0x29,
+ 0x43, 0x28, 0x70, 0x29, 0x43, 0x28, 0x71, 0x29,
+ 0x43, 0x28, 0x72, 0x29, 0x43, 0x28, 0x73, 0x29,
+ 0x43, 0x28, 0x74, 0x29, 0x43, 0x28, 0x75, 0x29,
+ 0x43, 0x28, 0x76, 0x29, 0x43, 0x28, 0x77, 0x29,
// Bytes 1c80 - 1cbf
- 0xBC, 0x6D, 0x43, 0xCE, 0xBC, 0x73, 0x44, 0x28,
- 0x31, 0x30, 0x29, 0x44, 0x28, 0x31, 0x31, 0x29,
- 0x44, 0x28, 0x31, 0x32, 0x29, 0x44, 0x28, 0x31,
- 0x33, 0x29, 0x44, 0x28, 0x31, 0x34, 0x29, 0x44,
- 0x28, 0x31, 0x35, 0x29, 0x44, 0x28, 0x31, 0x36,
- 0x29, 0x44, 0x28, 0x31, 0x37, 0x29, 0x44, 0x28,
- 0x31, 0x38, 0x29, 0x44, 0x28, 0x31, 0x39, 0x29,
- 0x44, 0x28, 0x32, 0x30, 0x29, 0x44, 0x30, 0xE7,
+ 0x43, 0x28, 0x78, 0x29, 0x43, 0x28, 0x79, 0x29,
+ 0x43, 0x28, 0x7A, 0x29, 0x43, 0x2E, 0x2E, 0x2E,
+ 0x43, 0x31, 0x30, 0x2E, 0x43, 0x31, 0x31, 0x2E,
+ 0x43, 0x31, 0x32, 0x2E, 0x43, 0x31, 0x33, 0x2E,
+ 0x43, 0x31, 0x34, 0x2E, 0x43, 0x31, 0x35, 0x2E,
+ 0x43, 0x31, 0x36, 0x2E, 0x43, 0x31, 0x37, 0x2E,
+ 0x43, 0x31, 0x38, 0x2E, 0x43, 0x31, 0x39, 0x2E,
+ 0x43, 0x32, 0x30, 0x2E, 0x43, 0x3A, 0x3A, 0x3D,
// Bytes 1cc0 - 1cff
- 0x82, 0xB9, 0x44, 0x31, 0xE2, 0x81, 0x84, 0x44,
- 0x31, 0xE6, 0x97, 0xA5, 0x44, 0x31, 0xE6, 0x9C,
- 0x88, 0x44, 0x31, 0xE7, 0x82, 0xB9, 0x44, 0x32,
- 0xE6, 0x97, 0xA5, 0x44, 0x32, 0xE6, 0x9C, 0x88,
- 0x44, 0x32, 0xE7, 0x82, 0xB9, 0x44, 0x33, 0xE6,
- 0x97, 0xA5, 0x44, 0x33, 0xE6, 0x9C, 0x88, 0x44,
- 0x33, 0xE7, 0x82, 0xB9, 0x44, 0x34, 0xE6, 0x97,
- 0xA5, 0x44, 0x34, 0xE6, 0x9C, 0x88, 0x44, 0x34,
+ 0x43, 0x3D, 0x3D, 0x3D, 0x43, 0x43, 0x6F, 0x2E,
+ 0x43, 0x46, 0x41, 0x58, 0x43, 0x47, 0x48, 0x7A,
+ 0x43, 0x47, 0x50, 0x61, 0x43, 0x49, 0x49, 0x49,
+ 0x43, 0x4C, 0x54, 0x44, 0x43, 0x4C, 0xC2, 0xB7,
+ 0x43, 0x4D, 0x48, 0x7A, 0x43, 0x4D, 0x50, 0x61,
+ 0x43, 0x4D, 0xCE, 0xA9, 0x43, 0x50, 0x50, 0x4D,
+ 0x43, 0x50, 0x50, 0x56, 0x43, 0x50, 0x54, 0x45,
+ 0x43, 0x54, 0x45, 0x4C, 0x43, 0x54, 0x48, 0x7A,
// Bytes 1d00 - 1d3f
- 0xE7, 0x82, 0xB9, 0x44, 0x35, 0xE6, 0x97, 0xA5,
- 0x44, 0x35, 0xE6, 0x9C, 0x88, 0x44, 0x35, 0xE7,
- 0x82, 0xB9, 0x44, 0x36, 0xE6, 0x97, 0xA5, 0x44,
- 0x36, 0xE6, 0x9C, 0x88, 0x44, 0x36, 0xE7, 0x82,
- 0xB9, 0x44, 0x37, 0xE6, 0x97, 0xA5, 0x44, 0x37,
- 0xE6, 0x9C, 0x88, 0x44, 0x37, 0xE7, 0x82, 0xB9,
- 0x44, 0x38, 0xE6, 0x97, 0xA5, 0x44, 0x38, 0xE6,
- 0x9C, 0x88, 0x44, 0x38, 0xE7, 0x82, 0xB9, 0x44,
+ 0x43, 0x56, 0x49, 0x49, 0x43, 0x58, 0x49, 0x49,
+ 0x43, 0x61, 0x2F, 0x63, 0x43, 0x61, 0x2F, 0x73,
+ 0x43, 0x61, 0xCA, 0xBE, 0x43, 0x62, 0x61, 0x72,
+ 0x43, 0x63, 0x2F, 0x6F, 0x43, 0x63, 0x2F, 0x75,
+ 0x43, 0x63, 0x61, 0x6C, 0x43, 0x63, 0x6D, 0x32,
+ 0x43, 0x63, 0x6D, 0x33, 0x43, 0x64, 0x6D, 0x32,
+ 0x43, 0x64, 0x6D, 0x33, 0x43, 0x65, 0x72, 0x67,
+ 0x43, 0x66, 0x66, 0x69, 0x43, 0x66, 0x66, 0x6C,
// Bytes 1d40 - 1d7f
- 0x39, 0xE6, 0x97, 0xA5, 0x44, 0x39, 0xE6, 0x9C,
- 0x88, 0x44, 0x39, 0xE7, 0x82, 0xB9, 0x44, 0x56,
- 0x49, 0x49, 0x49, 0x44, 0x61, 0x2E, 0x6D, 0x2E,
- 0x44, 0x6B, 0x63, 0x61, 0x6C, 0x44, 0x70, 0x2E,
- 0x6D, 0x2E, 0x44, 0x76, 0x69, 0x69, 0x69, 0x44,
- 0xD5, 0xA5, 0xD6, 0x82, 0x44, 0xD5, 0xB4, 0xD5,
- 0xA5, 0x44, 0xD5, 0xB4, 0xD5, 0xAB, 0x44, 0xD5,
- 0xB4, 0xD5, 0xAD, 0x44, 0xD5, 0xB4, 0xD5, 0xB6,
+ 0x43, 0x67, 0x61, 0x6C, 0x43, 0x68, 0x50, 0x61,
+ 0x43, 0x69, 0x69, 0x69, 0x43, 0x6B, 0x48, 0x7A,
+ 0x43, 0x6B, 0x50, 0x61, 0x43, 0x6B, 0x6D, 0x32,
+ 0x43, 0x6B, 0x6D, 0x33, 0x43, 0x6B, 0xCE, 0xA9,
+ 0x43, 0x6C, 0x6F, 0x67, 0x43, 0x6C, 0xC2, 0xB7,
+ 0x43, 0x6D, 0x69, 0x6C, 0x43, 0x6D, 0x6D, 0x32,
+ 0x43, 0x6D, 0x6D, 0x33, 0x43, 0x6D, 0x6F, 0x6C,
+ 0x43, 0x72, 0x61, 0x64, 0x43, 0x76, 0x69, 0x69,
// Bytes 1d80 - 1dbf
- 0x44, 0xD5, 0xBE, 0xD5, 0xB6, 0x44, 0xD7, 0x90,
- 0xD7, 0x9C, 0x44, 0xD8, 0xA7, 0xD9, 0xB4, 0x44,
- 0xD8, 0xA8, 0xD8, 0xAC, 0x44, 0xD8, 0xA8, 0xD8,
- 0xAD, 0x44, 0xD8, 0xA8, 0xD8, 0xAE, 0x44, 0xD8,
- 0xA8, 0xD8, 0xB1, 0x44, 0xD8, 0xA8, 0xD8, 0xB2,
- 0x44, 0xD8, 0xA8, 0xD9, 0x85, 0x44, 0xD8, 0xA8,
- 0xD9, 0x86, 0x44, 0xD8, 0xA8, 0xD9, 0x87, 0x44,
- 0xD8, 0xA8, 0xD9, 0x89, 0x44, 0xD8, 0xA8, 0xD9,
+ 0x43, 0x78, 0x69, 0x69, 0x43, 0xC2, 0xB0, 0x43,
+ 0x43, 0xC2, 0xB0, 0x46, 0x43, 0xCA, 0xBC, 0x6E,
+ 0x43, 0xCE, 0xBC, 0x41, 0x43, 0xCE, 0xBC, 0x46,
+ 0x43, 0xCE, 0xBC, 0x56, 0x43, 0xCE, 0xBC, 0x57,
+ 0x43, 0xCE, 0xBC, 0x67, 0x43, 0xCE, 0xBC, 0x6C,
+ 0x43, 0xCE, 0xBC, 0x6D, 0x43, 0xCE, 0xBC, 0x73,
+ 0x44, 0x28, 0x31, 0x30, 0x29, 0x44, 0x28, 0x31,
+ 0x31, 0x29, 0x44, 0x28, 0x31, 0x32, 0x29, 0x44,
// Bytes 1dc0 - 1dff
- 0x8A, 0x44, 0xD8, 0xAA, 0xD8, 0xAC, 0x44, 0xD8,
- 0xAA, 0xD8, 0xAD, 0x44, 0xD8, 0xAA, 0xD8, 0xAE,
- 0x44, 0xD8, 0xAA, 0xD8, 0xB1, 0x44, 0xD8, 0xAA,
- 0xD8, 0xB2, 0x44, 0xD8, 0xAA, 0xD9, 0x85, 0x44,
- 0xD8, 0xAA, 0xD9, 0x86, 0x44, 0xD8, 0xAA, 0xD9,
- 0x87, 0x44, 0xD8, 0xAA, 0xD9, 0x89, 0x44, 0xD8,
- 0xAA, 0xD9, 0x8A, 0x44, 0xD8, 0xAB, 0xD8, 0xAC,
- 0x44, 0xD8, 0xAB, 0xD8, 0xB1, 0x44, 0xD8, 0xAB,
+ 0x28, 0x31, 0x33, 0x29, 0x44, 0x28, 0x31, 0x34,
+ 0x29, 0x44, 0x28, 0x31, 0x35, 0x29, 0x44, 0x28,
+ 0x31, 0x36, 0x29, 0x44, 0x28, 0x31, 0x37, 0x29,
+ 0x44, 0x28, 0x31, 0x38, 0x29, 0x44, 0x28, 0x31,
+ 0x39, 0x29, 0x44, 0x28, 0x32, 0x30, 0x29, 0x44,
+ 0x30, 0xE7, 0x82, 0xB9, 0x44, 0x31, 0xE2, 0x81,
+ 0x84, 0x44, 0x31, 0xE6, 0x97, 0xA5, 0x44, 0x31,
+ 0xE6, 0x9C, 0x88, 0x44, 0x31, 0xE7, 0x82, 0xB9,
// Bytes 1e00 - 1e3f
- 0xD8, 0xB2, 0x44, 0xD8, 0xAB, 0xD9, 0x85, 0x44,
- 0xD8, 0xAB, 0xD9, 0x86, 0x44, 0xD8, 0xAB, 0xD9,
- 0x87, 0x44, 0xD8, 0xAB, 0xD9, 0x89, 0x44, 0xD8,
- 0xAB, 0xD9, 0x8A, 0x44, 0xD8, 0xAC, 0xD8, 0xAD,
- 0x44, 0xD8, 0xAC, 0xD9, 0x85, 0x44, 0xD8, 0xAC,
- 0xD9, 0x89, 0x44, 0xD8, 0xAC, 0xD9, 0x8A, 0x44,
- 0xD8, 0xAD, 0xD8, 0xAC, 0x44, 0xD8, 0xAD, 0xD9,
- 0x85, 0x44, 0xD8, 0xAD, 0xD9, 0x89, 0x44, 0xD8,
+ 0x44, 0x32, 0xE6, 0x97, 0xA5, 0x44, 0x32, 0xE6,
+ 0x9C, 0x88, 0x44, 0x32, 0xE7, 0x82, 0xB9, 0x44,
+ 0x33, 0xE6, 0x97, 0xA5, 0x44, 0x33, 0xE6, 0x9C,
+ 0x88, 0x44, 0x33, 0xE7, 0x82, 0xB9, 0x44, 0x34,
+ 0xE6, 0x97, 0xA5, 0x44, 0x34, 0xE6, 0x9C, 0x88,
+ 0x44, 0x34, 0xE7, 0x82, 0xB9, 0x44, 0x35, 0xE6,
+ 0x97, 0xA5, 0x44, 0x35, 0xE6, 0x9C, 0x88, 0x44,
+ 0x35, 0xE7, 0x82, 0xB9, 0x44, 0x36, 0xE6, 0x97,
// Bytes 1e40 - 1e7f
- 0xAD, 0xD9, 0x8A, 0x44, 0xD8, 0xAE, 0xD8, 0xAC,
- 0x44, 0xD8, 0xAE, 0xD8, 0xAD, 0x44, 0xD8, 0xAE,
- 0xD9, 0x85, 0x44, 0xD8, 0xAE, 0xD9, 0x89, 0x44,
- 0xD8, 0xAE, 0xD9, 0x8A, 0x44, 0xD8, 0xB3, 0xD8,
- 0xAC, 0x44, 0xD8, 0xB3, 0xD8, 0xAD, 0x44, 0xD8,
- 0xB3, 0xD8, 0xAE, 0x44, 0xD8, 0xB3, 0xD8, 0xB1,
- 0x44, 0xD8, 0xB3, 0xD9, 0x85, 0x44, 0xD8, 0xB3,
- 0xD9, 0x87, 0x44, 0xD8, 0xB3, 0xD9, 0x89, 0x44,
+ 0xA5, 0x44, 0x36, 0xE6, 0x9C, 0x88, 0x44, 0x36,
+ 0xE7, 0x82, 0xB9, 0x44, 0x37, 0xE6, 0x97, 0xA5,
+ 0x44, 0x37, 0xE6, 0x9C, 0x88, 0x44, 0x37, 0xE7,
+ 0x82, 0xB9, 0x44, 0x38, 0xE6, 0x97, 0xA5, 0x44,
+ 0x38, 0xE6, 0x9C, 0x88, 0x44, 0x38, 0xE7, 0x82,
+ 0xB9, 0x44, 0x39, 0xE6, 0x97, 0xA5, 0x44, 0x39,
+ 0xE6, 0x9C, 0x88, 0x44, 0x39, 0xE7, 0x82, 0xB9,
+ 0x44, 0x56, 0x49, 0x49, 0x49, 0x44, 0x61, 0x2E,
// Bytes 1e80 - 1ebf
- 0xD8, 0xB3, 0xD9, 0x8A, 0x44, 0xD8, 0xB4, 0xD8,
- 0xAC, 0x44, 0xD8, 0xB4, 0xD8, 0xAD, 0x44, 0xD8,
- 0xB4, 0xD8, 0xAE, 0x44, 0xD8, 0xB4, 0xD8, 0xB1,
- 0x44, 0xD8, 0xB4, 0xD9, 0x85, 0x44, 0xD8, 0xB4,
- 0xD9, 0x87, 0x44, 0xD8, 0xB4, 0xD9, 0x89, 0x44,
- 0xD8, 0xB4, 0xD9, 0x8A, 0x44, 0xD8, 0xB5, 0xD8,
- 0xAD, 0x44, 0xD8, 0xB5, 0xD8, 0xAE, 0x44, 0xD8,
- 0xB5, 0xD8, 0xB1, 0x44, 0xD8, 0xB5, 0xD9, 0x85,
+ 0x6D, 0x2E, 0x44, 0x6B, 0x63, 0x61, 0x6C, 0x44,
+ 0x70, 0x2E, 0x6D, 0x2E, 0x44, 0x76, 0x69, 0x69,
+ 0x69, 0x44, 0xD5, 0xA5, 0xD6, 0x82, 0x44, 0xD5,
+ 0xB4, 0xD5, 0xA5, 0x44, 0xD5, 0xB4, 0xD5, 0xAB,
+ 0x44, 0xD5, 0xB4, 0xD5, 0xAD, 0x44, 0xD5, 0xB4,
+ 0xD5, 0xB6, 0x44, 0xD5, 0xBE, 0xD5, 0xB6, 0x44,
+ 0xD7, 0x90, 0xD7, 0x9C, 0x44, 0xD8, 0xA7, 0xD9,
+ 0xB4, 0x44, 0xD8, 0xA8, 0xD8, 0xAC, 0x44, 0xD8,
// Bytes 1ec0 - 1eff
- 0x44, 0xD8, 0xB5, 0xD9, 0x89, 0x44, 0xD8, 0xB5,
- 0xD9, 0x8A, 0x44, 0xD8, 0xB6, 0xD8, 0xAC, 0x44,
- 0xD8, 0xB6, 0xD8, 0xAD, 0x44, 0xD8, 0xB6, 0xD8,
- 0xAE, 0x44, 0xD8, 0xB6, 0xD8, 0xB1, 0x44, 0xD8,
- 0xB6, 0xD9, 0x85, 0x44, 0xD8, 0xB6, 0xD9, 0x89,
- 0x44, 0xD8, 0xB6, 0xD9, 0x8A, 0x44, 0xD8, 0xB7,
- 0xD8, 0xAD, 0x44, 0xD8, 0xB7, 0xD9, 0x85, 0x44,
- 0xD8, 0xB7, 0xD9, 0x89, 0x44, 0xD8, 0xB7, 0xD9,
+ 0xA8, 0xD8, 0xAD, 0x44, 0xD8, 0xA8, 0xD8, 0xAE,
+ 0x44, 0xD8, 0xA8, 0xD8, 0xB1, 0x44, 0xD8, 0xA8,
+ 0xD8, 0xB2, 0x44, 0xD8, 0xA8, 0xD9, 0x85, 0x44,
+ 0xD8, 0xA8, 0xD9, 0x86, 0x44, 0xD8, 0xA8, 0xD9,
+ 0x87, 0x44, 0xD8, 0xA8, 0xD9, 0x89, 0x44, 0xD8,
+ 0xA8, 0xD9, 0x8A, 0x44, 0xD8, 0xAA, 0xD8, 0xAC,
+ 0x44, 0xD8, 0xAA, 0xD8, 0xAD, 0x44, 0xD8, 0xAA,
+ 0xD8, 0xAE, 0x44, 0xD8, 0xAA, 0xD8, 0xB1, 0x44,
// Bytes 1f00 - 1f3f
- 0x8A, 0x44, 0xD8, 0xB8, 0xD9, 0x85, 0x44, 0xD8,
- 0xB9, 0xD8, 0xAC, 0x44, 0xD8, 0xB9, 0xD9, 0x85,
- 0x44, 0xD8, 0xB9, 0xD9, 0x89, 0x44, 0xD8, 0xB9,
- 0xD9, 0x8A, 0x44, 0xD8, 0xBA, 0xD8, 0xAC, 0x44,
- 0xD8, 0xBA, 0xD9, 0x85, 0x44, 0xD8, 0xBA, 0xD9,
- 0x89, 0x44, 0xD8, 0xBA, 0xD9, 0x8A, 0x44, 0xD9,
- 0x81, 0xD8, 0xAC, 0x44, 0xD9, 0x81, 0xD8, 0xAD,
- 0x44, 0xD9, 0x81, 0xD8, 0xAE, 0x44, 0xD9, 0x81,
+ 0xD8, 0xAA, 0xD8, 0xB2, 0x44, 0xD8, 0xAA, 0xD9,
+ 0x85, 0x44, 0xD8, 0xAA, 0xD9, 0x86, 0x44, 0xD8,
+ 0xAA, 0xD9, 0x87, 0x44, 0xD8, 0xAA, 0xD9, 0x89,
+ 0x44, 0xD8, 0xAA, 0xD9, 0x8A, 0x44, 0xD8, 0xAB,
+ 0xD8, 0xAC, 0x44, 0xD8, 0xAB, 0xD8, 0xB1, 0x44,
+ 0xD8, 0xAB, 0xD8, 0xB2, 0x44, 0xD8, 0xAB, 0xD9,
+ 0x85, 0x44, 0xD8, 0xAB, 0xD9, 0x86, 0x44, 0xD8,
+ 0xAB, 0xD9, 0x87, 0x44, 0xD8, 0xAB, 0xD9, 0x89,
// Bytes 1f40 - 1f7f
- 0xD9, 0x85, 0x44, 0xD9, 0x81, 0xD9, 0x89, 0x44,
- 0xD9, 0x81, 0xD9, 0x8A, 0x44, 0xD9, 0x82, 0xD8,
- 0xAD, 0x44, 0xD9, 0x82, 0xD9, 0x85, 0x44, 0xD9,
- 0x82, 0xD9, 0x89, 0x44, 0xD9, 0x82, 0xD9, 0x8A,
- 0x44, 0xD9, 0x83, 0xD8, 0xA7, 0x44, 0xD9, 0x83,
- 0xD8, 0xAC, 0x44, 0xD9, 0x83, 0xD8, 0xAD, 0x44,
- 0xD9, 0x83, 0xD8, 0xAE, 0x44, 0xD9, 0x83, 0xD9,
- 0x84, 0x44, 0xD9, 0x83, 0xD9, 0x85, 0x44, 0xD9,
+ 0x44, 0xD8, 0xAB, 0xD9, 0x8A, 0x44, 0xD8, 0xAC,
+ 0xD8, 0xAD, 0x44, 0xD8, 0xAC, 0xD9, 0x85, 0x44,
+ 0xD8, 0xAC, 0xD9, 0x89, 0x44, 0xD8, 0xAC, 0xD9,
+ 0x8A, 0x44, 0xD8, 0xAD, 0xD8, 0xAC, 0x44, 0xD8,
+ 0xAD, 0xD9, 0x85, 0x44, 0xD8, 0xAD, 0xD9, 0x89,
+ 0x44, 0xD8, 0xAD, 0xD9, 0x8A, 0x44, 0xD8, 0xAE,
+ 0xD8, 0xAC, 0x44, 0xD8, 0xAE, 0xD8, 0xAD, 0x44,
+ 0xD8, 0xAE, 0xD9, 0x85, 0x44, 0xD8, 0xAE, 0xD9,
// Bytes 1f80 - 1fbf
- 0x83, 0xD9, 0x89, 0x44, 0xD9, 0x83, 0xD9, 0x8A,
- 0x44, 0xD9, 0x84, 0xD8, 0xA7, 0x44, 0xD9, 0x84,
- 0xD8, 0xAC, 0x44, 0xD9, 0x84, 0xD8, 0xAD, 0x44,
- 0xD9, 0x84, 0xD8, 0xAE, 0x44, 0xD9, 0x84, 0xD9,
- 0x85, 0x44, 0xD9, 0x84, 0xD9, 0x87, 0x44, 0xD9,
- 0x84, 0xD9, 0x89, 0x44, 0xD9, 0x84, 0xD9, 0x8A,
- 0x44, 0xD9, 0x85, 0xD8, 0xA7, 0x44, 0xD9, 0x85,
- 0xD8, 0xAC, 0x44, 0xD9, 0x85, 0xD8, 0xAD, 0x44,
+ 0x89, 0x44, 0xD8, 0xAE, 0xD9, 0x8A, 0x44, 0xD8,
+ 0xB3, 0xD8, 0xAC, 0x44, 0xD8, 0xB3, 0xD8, 0xAD,
+ 0x44, 0xD8, 0xB3, 0xD8, 0xAE, 0x44, 0xD8, 0xB3,
+ 0xD8, 0xB1, 0x44, 0xD8, 0xB3, 0xD9, 0x85, 0x44,
+ 0xD8, 0xB3, 0xD9, 0x87, 0x44, 0xD8, 0xB3, 0xD9,
+ 0x89, 0x44, 0xD8, 0xB3, 0xD9, 0x8A, 0x44, 0xD8,
+ 0xB4, 0xD8, 0xAC, 0x44, 0xD8, 0xB4, 0xD8, 0xAD,
+ 0x44, 0xD8, 0xB4, 0xD8, 0xAE, 0x44, 0xD8, 0xB4,
// Bytes 1fc0 - 1fff
- 0xD9, 0x85, 0xD8, 0xAE, 0x44, 0xD9, 0x85, 0xD9,
- 0x85, 0x44, 0xD9, 0x85, 0xD9, 0x89, 0x44, 0xD9,
- 0x85, 0xD9, 0x8A, 0x44, 0xD9, 0x86, 0xD8, 0xAC,
- 0x44, 0xD9, 0x86, 0xD8, 0xAD, 0x44, 0xD9, 0x86,
- 0xD8, 0xAE, 0x44, 0xD9, 0x86, 0xD8, 0xB1, 0x44,
- 0xD9, 0x86, 0xD8, 0xB2, 0x44, 0xD9, 0x86, 0xD9,
- 0x85, 0x44, 0xD9, 0x86, 0xD9, 0x86, 0x44, 0xD9,
- 0x86, 0xD9, 0x87, 0x44, 0xD9, 0x86, 0xD9, 0x89,
+ 0xD8, 0xB1, 0x44, 0xD8, 0xB4, 0xD9, 0x85, 0x44,
+ 0xD8, 0xB4, 0xD9, 0x87, 0x44, 0xD8, 0xB4, 0xD9,
+ 0x89, 0x44, 0xD8, 0xB4, 0xD9, 0x8A, 0x44, 0xD8,
+ 0xB5, 0xD8, 0xAD, 0x44, 0xD8, 0xB5, 0xD8, 0xAE,
+ 0x44, 0xD8, 0xB5, 0xD8, 0xB1, 0x44, 0xD8, 0xB5,
+ 0xD9, 0x85, 0x44, 0xD8, 0xB5, 0xD9, 0x89, 0x44,
+ 0xD8, 0xB5, 0xD9, 0x8A, 0x44, 0xD8, 0xB6, 0xD8,
+ 0xAC, 0x44, 0xD8, 0xB6, 0xD8, 0xAD, 0x44, 0xD8,
// Bytes 2000 - 203f
- 0x44, 0xD9, 0x86, 0xD9, 0x8A, 0x44, 0xD9, 0x87,
- 0xD8, 0xAC, 0x44, 0xD9, 0x87, 0xD9, 0x85, 0x44,
- 0xD9, 0x87, 0xD9, 0x89, 0x44, 0xD9, 0x87, 0xD9,
- 0x8A, 0x44, 0xD9, 0x88, 0xD9, 0xB4, 0x44, 0xD9,
- 0x8A, 0xD8, 0xAC, 0x44, 0xD9, 0x8A, 0xD8, 0xAD,
- 0x44, 0xD9, 0x8A, 0xD8, 0xAE, 0x44, 0xD9, 0x8A,
- 0xD8, 0xB1, 0x44, 0xD9, 0x8A, 0xD8, 0xB2, 0x44,
- 0xD9, 0x8A, 0xD9, 0x85, 0x44, 0xD9, 0x8A, 0xD9,
+ 0xB6, 0xD8, 0xAE, 0x44, 0xD8, 0xB6, 0xD8, 0xB1,
+ 0x44, 0xD8, 0xB6, 0xD9, 0x85, 0x44, 0xD8, 0xB6,
+ 0xD9, 0x89, 0x44, 0xD8, 0xB6, 0xD9, 0x8A, 0x44,
+ 0xD8, 0xB7, 0xD8, 0xAD, 0x44, 0xD8, 0xB7, 0xD9,
+ 0x85, 0x44, 0xD8, 0xB7, 0xD9, 0x89, 0x44, 0xD8,
+ 0xB7, 0xD9, 0x8A, 0x44, 0xD8, 0xB8, 0xD9, 0x85,
+ 0x44, 0xD8, 0xB9, 0xD8, 0xAC, 0x44, 0xD8, 0xB9,
+ 0xD9, 0x85, 0x44, 0xD8, 0xB9, 0xD9, 0x89, 0x44,
// Bytes 2040 - 207f
- 0x86, 0x44, 0xD9, 0x8A, 0xD9, 0x87, 0x44, 0xD9,
- 0x8A, 0xD9, 0x89, 0x44, 0xD9, 0x8A, 0xD9, 0x8A,
- 0x44, 0xD9, 0x8A, 0xD9, 0xB4, 0x44, 0xDB, 0x87,
- 0xD9, 0xB4, 0x45, 0x28, 0xE1, 0x84, 0x80, 0x29,
- 0x45, 0x28, 0xE1, 0x84, 0x82, 0x29, 0x45, 0x28,
- 0xE1, 0x84, 0x83, 0x29, 0x45, 0x28, 0xE1, 0x84,
- 0x85, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x86, 0x29,
- 0x45, 0x28, 0xE1, 0x84, 0x87, 0x29, 0x45, 0x28,
+ 0xD8, 0xB9, 0xD9, 0x8A, 0x44, 0xD8, 0xBA, 0xD8,
+ 0xAC, 0x44, 0xD8, 0xBA, 0xD9, 0x85, 0x44, 0xD8,
+ 0xBA, 0xD9, 0x89, 0x44, 0xD8, 0xBA, 0xD9, 0x8A,
+ 0x44, 0xD9, 0x81, 0xD8, 0xAC, 0x44, 0xD9, 0x81,
+ 0xD8, 0xAD, 0x44, 0xD9, 0x81, 0xD8, 0xAE, 0x44,
+ 0xD9, 0x81, 0xD9, 0x85, 0x44, 0xD9, 0x81, 0xD9,
+ 0x89, 0x44, 0xD9, 0x81, 0xD9, 0x8A, 0x44, 0xD9,
+ 0x82, 0xD8, 0xAD, 0x44, 0xD9, 0x82, 0xD9, 0x85,
// Bytes 2080 - 20bf
- 0xE1, 0x84, 0x89, 0x29, 0x45, 0x28, 0xE1, 0x84,
- 0x8B, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8C, 0x29,
- 0x45, 0x28, 0xE1, 0x84, 0x8E, 0x29, 0x45, 0x28,
- 0xE1, 0x84, 0x8F, 0x29, 0x45, 0x28, 0xE1, 0x84,
- 0x90, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x91, 0x29,
- 0x45, 0x28, 0xE1, 0x84, 0x92, 0x29, 0x45, 0x28,
- 0xE4, 0xB8, 0x80, 0x29, 0x45, 0x28, 0xE4, 0xB8,
- 0x83, 0x29, 0x45, 0x28, 0xE4, 0xB8, 0x89, 0x29,
+ 0x44, 0xD9, 0x82, 0xD9, 0x89, 0x44, 0xD9, 0x82,
+ 0xD9, 0x8A, 0x44, 0xD9, 0x83, 0xD8, 0xA7, 0x44,
+ 0xD9, 0x83, 0xD8, 0xAC, 0x44, 0xD9, 0x83, 0xD8,
+ 0xAD, 0x44, 0xD9, 0x83, 0xD8, 0xAE, 0x44, 0xD9,
+ 0x83, 0xD9, 0x84, 0x44, 0xD9, 0x83, 0xD9, 0x85,
+ 0x44, 0xD9, 0x83, 0xD9, 0x89, 0x44, 0xD9, 0x83,
+ 0xD9, 0x8A, 0x44, 0xD9, 0x84, 0xD8, 0xA7, 0x44,
+ 0xD9, 0x84, 0xD8, 0xAC, 0x44, 0xD9, 0x84, 0xD8,
// Bytes 20c0 - 20ff
- 0x45, 0x28, 0xE4, 0xB9, 0x9D, 0x29, 0x45, 0x28,
- 0xE4, 0xBA, 0x8C, 0x29, 0x45, 0x28, 0xE4, 0xBA,
- 0x94, 0x29, 0x45, 0x28, 0xE4, 0xBB, 0xA3, 0x29,
- 0x45, 0x28, 0xE4, 0xBC, 0x81, 0x29, 0x45, 0x28,
- 0xE4, 0xBC, 0x91, 0x29, 0x45, 0x28, 0xE5, 0x85,
- 0xAB, 0x29, 0x45, 0x28, 0xE5, 0x85, 0xAD, 0x29,
- 0x45, 0x28, 0xE5, 0x8A, 0xB4, 0x29, 0x45, 0x28,
- 0xE5, 0x8D, 0x81, 0x29, 0x45, 0x28, 0xE5, 0x8D,
+ 0xAD, 0x44, 0xD9, 0x84, 0xD8, 0xAE, 0x44, 0xD9,
+ 0x84, 0xD9, 0x85, 0x44, 0xD9, 0x84, 0xD9, 0x87,
+ 0x44, 0xD9, 0x84, 0xD9, 0x89, 0x44, 0xD9, 0x84,
+ 0xD9, 0x8A, 0x44, 0xD9, 0x85, 0xD8, 0xA7, 0x44,
+ 0xD9, 0x85, 0xD8, 0xAC, 0x44, 0xD9, 0x85, 0xD8,
+ 0xAD, 0x44, 0xD9, 0x85, 0xD8, 0xAE, 0x44, 0xD9,
+ 0x85, 0xD9, 0x85, 0x44, 0xD9, 0x85, 0xD9, 0x89,
+ 0x44, 0xD9, 0x85, 0xD9, 0x8A, 0x44, 0xD9, 0x86,
// Bytes 2100 - 213f
- 0x94, 0x29, 0x45, 0x28, 0xE5, 0x90, 0x8D, 0x29,
- 0x45, 0x28, 0xE5, 0x91, 0xBC, 0x29, 0x45, 0x28,
- 0xE5, 0x9B, 0x9B, 0x29, 0x45, 0x28, 0xE5, 0x9C,
- 0x9F, 0x29, 0x45, 0x28, 0xE5, 0xAD, 0xA6, 0x29,
- 0x45, 0x28, 0xE6, 0x97, 0xA5, 0x29, 0x45, 0x28,
- 0xE6, 0x9C, 0x88, 0x29, 0x45, 0x28, 0xE6, 0x9C,
- 0x89, 0x29, 0x45, 0x28, 0xE6, 0x9C, 0xA8, 0x29,
- 0x45, 0x28, 0xE6, 0xA0, 0xAA, 0x29, 0x45, 0x28,
+ 0xD8, 0xAC, 0x44, 0xD9, 0x86, 0xD8, 0xAD, 0x44,
+ 0xD9, 0x86, 0xD8, 0xAE, 0x44, 0xD9, 0x86, 0xD8,
+ 0xB1, 0x44, 0xD9, 0x86, 0xD8, 0xB2, 0x44, 0xD9,
+ 0x86, 0xD9, 0x85, 0x44, 0xD9, 0x86, 0xD9, 0x86,
+ 0x44, 0xD9, 0x86, 0xD9, 0x87, 0x44, 0xD9, 0x86,
+ 0xD9, 0x89, 0x44, 0xD9, 0x86, 0xD9, 0x8A, 0x44,
+ 0xD9, 0x87, 0xD8, 0xAC, 0x44, 0xD9, 0x87, 0xD9,
+ 0x85, 0x44, 0xD9, 0x87, 0xD9, 0x89, 0x44, 0xD9,
// Bytes 2140 - 217f
- 0xE6, 0xB0, 0xB4, 0x29, 0x45, 0x28, 0xE7, 0x81,
- 0xAB, 0x29, 0x45, 0x28, 0xE7, 0x89, 0xB9, 0x29,
- 0x45, 0x28, 0xE7, 0x9B, 0xA3, 0x29, 0x45, 0x28,
- 0xE7, 0xA4, 0xBE, 0x29, 0x45, 0x28, 0xE7, 0xA5,
- 0x9D, 0x29, 0x45, 0x28, 0xE7, 0xA5, 0xAD, 0x29,
- 0x45, 0x28, 0xE8, 0x87, 0xAA, 0x29, 0x45, 0x28,
- 0xE8, 0x87, 0xB3, 0x29, 0x45, 0x28, 0xE8, 0xB2,
- 0xA1, 0x29, 0x45, 0x28, 0xE8, 0xB3, 0x87, 0x29,
+ 0x87, 0xD9, 0x8A, 0x44, 0xD9, 0x88, 0xD9, 0xB4,
+ 0x44, 0xD9, 0x8A, 0xD8, 0xAC, 0x44, 0xD9, 0x8A,
+ 0xD8, 0xAD, 0x44, 0xD9, 0x8A, 0xD8, 0xAE, 0x44,
+ 0xD9, 0x8A, 0xD8, 0xB1, 0x44, 0xD9, 0x8A, 0xD8,
+ 0xB2, 0x44, 0xD9, 0x8A, 0xD9, 0x85, 0x44, 0xD9,
+ 0x8A, 0xD9, 0x86, 0x44, 0xD9, 0x8A, 0xD9, 0x87,
+ 0x44, 0xD9, 0x8A, 0xD9, 0x89, 0x44, 0xD9, 0x8A,
+ 0xD9, 0x8A, 0x44, 0xD9, 0x8A, 0xD9, 0xB4, 0x44,
// Bytes 2180 - 21bf
- 0x45, 0x28, 0xE9, 0x87, 0x91, 0x29, 0x45, 0x30,
- 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, 0x30, 0xE6,
- 0x97, 0xA5, 0x45, 0x31, 0x30, 0xE6, 0x9C, 0x88,
- 0x45, 0x31, 0x30, 0xE7, 0x82, 0xB9, 0x45, 0x31,
- 0x31, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x31, 0xE6,
- 0x9C, 0x88, 0x45, 0x31, 0x31, 0xE7, 0x82, 0xB9,
- 0x45, 0x31, 0x32, 0xE6, 0x97, 0xA5, 0x45, 0x31,
- 0x32, 0xE6, 0x9C, 0x88, 0x45, 0x31, 0x32, 0xE7,
+ 0xDB, 0x87, 0xD9, 0xB4, 0x45, 0x28, 0xE1, 0x84,
+ 0x80, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x82, 0x29,
+ 0x45, 0x28, 0xE1, 0x84, 0x83, 0x29, 0x45, 0x28,
+ 0xE1, 0x84, 0x85, 0x29, 0x45, 0x28, 0xE1, 0x84,
+ 0x86, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x87, 0x29,
+ 0x45, 0x28, 0xE1, 0x84, 0x89, 0x29, 0x45, 0x28,
+ 0xE1, 0x84, 0x8B, 0x29, 0x45, 0x28, 0xE1, 0x84,
+ 0x8C, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8E, 0x29,
// Bytes 21c0 - 21ff
- 0x82, 0xB9, 0x45, 0x31, 0x33, 0xE6, 0x97, 0xA5,
- 0x45, 0x31, 0x33, 0xE7, 0x82, 0xB9, 0x45, 0x31,
- 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x34, 0xE7,
- 0x82, 0xB9, 0x45, 0x31, 0x35, 0xE6, 0x97, 0xA5,
- 0x45, 0x31, 0x35, 0xE7, 0x82, 0xB9, 0x45, 0x31,
- 0x36, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x36, 0xE7,
- 0x82, 0xB9, 0x45, 0x31, 0x37, 0xE6, 0x97, 0xA5,
- 0x45, 0x31, 0x37, 0xE7, 0x82, 0xB9, 0x45, 0x31,
+ 0x45, 0x28, 0xE1, 0x84, 0x8F, 0x29, 0x45, 0x28,
+ 0xE1, 0x84, 0x90, 0x29, 0x45, 0x28, 0xE1, 0x84,
+ 0x91, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x92, 0x29,
+ 0x45, 0x28, 0xE4, 0xB8, 0x80, 0x29, 0x45, 0x28,
+ 0xE4, 0xB8, 0x83, 0x29, 0x45, 0x28, 0xE4, 0xB8,
+ 0x89, 0x29, 0x45, 0x28, 0xE4, 0xB9, 0x9D, 0x29,
+ 0x45, 0x28, 0xE4, 0xBA, 0x8C, 0x29, 0x45, 0x28,
+ 0xE4, 0xBA, 0x94, 0x29, 0x45, 0x28, 0xE4, 0xBB,
// Bytes 2200 - 223f
- 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x38, 0xE7,
- 0x82, 0xB9, 0x45, 0x31, 0x39, 0xE6, 0x97, 0xA5,
- 0x45, 0x31, 0x39, 0xE7, 0x82, 0xB9, 0x45, 0x31,
- 0xE2, 0x81, 0x84, 0x32, 0x45, 0x31, 0xE2, 0x81,
- 0x84, 0x33, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x34,
- 0x45, 0x31, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x31,
- 0xE2, 0x81, 0x84, 0x36, 0x45, 0x31, 0xE2, 0x81,
- 0x84, 0x37, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x38,
+ 0xA3, 0x29, 0x45, 0x28, 0xE4, 0xBC, 0x81, 0x29,
+ 0x45, 0x28, 0xE4, 0xBC, 0x91, 0x29, 0x45, 0x28,
+ 0xE5, 0x85, 0xAB, 0x29, 0x45, 0x28, 0xE5, 0x85,
+ 0xAD, 0x29, 0x45, 0x28, 0xE5, 0x8A, 0xB4, 0x29,
+ 0x45, 0x28, 0xE5, 0x8D, 0x81, 0x29, 0x45, 0x28,
+ 0xE5, 0x8D, 0x94, 0x29, 0x45, 0x28, 0xE5, 0x90,
+ 0x8D, 0x29, 0x45, 0x28, 0xE5, 0x91, 0xBC, 0x29,
+ 0x45, 0x28, 0xE5, 0x9B, 0x9B, 0x29, 0x45, 0x28,
// Bytes 2240 - 227f
- 0x45, 0x31, 0xE2, 0x81, 0x84, 0x39, 0x45, 0x32,
- 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x30, 0xE7,
- 0x82, 0xB9, 0x45, 0x32, 0x31, 0xE6, 0x97, 0xA5,
- 0x45, 0x32, 0x31, 0xE7, 0x82, 0xB9, 0x45, 0x32,
- 0x32, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x32, 0xE7,
- 0x82, 0xB9, 0x45, 0x32, 0x33, 0xE6, 0x97, 0xA5,
- 0x45, 0x32, 0x33, 0xE7, 0x82, 0xB9, 0x45, 0x32,
- 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x34, 0xE7,
+ 0xE5, 0x9C, 0x9F, 0x29, 0x45, 0x28, 0xE5, 0xAD,
+ 0xA6, 0x29, 0x45, 0x28, 0xE6, 0x97, 0xA5, 0x29,
+ 0x45, 0x28, 0xE6, 0x9C, 0x88, 0x29, 0x45, 0x28,
+ 0xE6, 0x9C, 0x89, 0x29, 0x45, 0x28, 0xE6, 0x9C,
+ 0xA8, 0x29, 0x45, 0x28, 0xE6, 0xA0, 0xAA, 0x29,
+ 0x45, 0x28, 0xE6, 0xB0, 0xB4, 0x29, 0x45, 0x28,
+ 0xE7, 0x81, 0xAB, 0x29, 0x45, 0x28, 0xE7, 0x89,
+ 0xB9, 0x29, 0x45, 0x28, 0xE7, 0x9B, 0xA3, 0x29,
// Bytes 2280 - 22bf
- 0x82, 0xB9, 0x45, 0x32, 0x35, 0xE6, 0x97, 0xA5,
- 0x45, 0x32, 0x36, 0xE6, 0x97, 0xA5, 0x45, 0x32,
- 0x37, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x38, 0xE6,
- 0x97, 0xA5, 0x45, 0x32, 0x39, 0xE6, 0x97, 0xA5,
- 0x45, 0x32, 0xE2, 0x81, 0x84, 0x33, 0x45, 0x32,
- 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33, 0x30, 0xE6,
- 0x97, 0xA5, 0x45, 0x33, 0x31, 0xE6, 0x97, 0xA5,
- 0x45, 0x33, 0xE2, 0x81, 0x84, 0x34, 0x45, 0x33,
+ 0x45, 0x28, 0xE7, 0xA4, 0xBE, 0x29, 0x45, 0x28,
+ 0xE7, 0xA5, 0x9D, 0x29, 0x45, 0x28, 0xE7, 0xA5,
+ 0xAD, 0x29, 0x45, 0x28, 0xE8, 0x87, 0xAA, 0x29,
+ 0x45, 0x28, 0xE8, 0x87, 0xB3, 0x29, 0x45, 0x28,
+ 0xE8, 0xB2, 0xA1, 0x29, 0x45, 0x28, 0xE8, 0xB3,
+ 0x87, 0x29, 0x45, 0x28, 0xE9, 0x87, 0x91, 0x29,
+ 0x45, 0x30, 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31,
+ 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x30, 0xE6,
// Bytes 22c0 - 22ff
- 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33, 0xE2, 0x81,
- 0x84, 0x38, 0x45, 0x34, 0xE2, 0x81, 0x84, 0x35,
- 0x45, 0x35, 0xE2, 0x81, 0x84, 0x36, 0x45, 0x35,
- 0xE2, 0x81, 0x84, 0x38, 0x45, 0x37, 0xE2, 0x81,
- 0x84, 0x38, 0x45, 0x41, 0xE2, 0x88, 0x95, 0x6D,
- 0x45, 0x56, 0xE2, 0x88, 0x95, 0x6D, 0x45, 0x6D,
- 0xE2, 0x88, 0x95, 0x73, 0x46, 0x31, 0xE2, 0x81,
- 0x84, 0x31, 0x30, 0x46, 0x43, 0xE2, 0x88, 0x95,
+ 0x9C, 0x88, 0x45, 0x31, 0x30, 0xE7, 0x82, 0xB9,
+ 0x45, 0x31, 0x31, 0xE6, 0x97, 0xA5, 0x45, 0x31,
+ 0x31, 0xE6, 0x9C, 0x88, 0x45, 0x31, 0x31, 0xE7,
+ 0x82, 0xB9, 0x45, 0x31, 0x32, 0xE6, 0x97, 0xA5,
+ 0x45, 0x31, 0x32, 0xE6, 0x9C, 0x88, 0x45, 0x31,
+ 0x32, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x33, 0xE6,
+ 0x97, 0xA5, 0x45, 0x31, 0x33, 0xE7, 0x82, 0xB9,
+ 0x45, 0x31, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x31,
// Bytes 2300 - 233f
- 0x6B, 0x67, 0x46, 0x6D, 0xE2, 0x88, 0x95, 0x73,
- 0x32, 0x46, 0xD8, 0xA8, 0xD8, 0xAD, 0xD9, 0x8A,
- 0x46, 0xD8, 0xA8, 0xD8, 0xAE, 0xD9, 0x8A, 0x46,
- 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x85, 0x46, 0xD8,
- 0xAA, 0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD8, 0xAA,
- 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8, 0xAA, 0xD8,
- 0xAD, 0xD8, 0xAC, 0x46, 0xD8, 0xAA, 0xD8, 0xAD,
- 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, 0xD9,
+ 0x34, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x35, 0xE6,
+ 0x97, 0xA5, 0x45, 0x31, 0x35, 0xE7, 0x82, 0xB9,
+ 0x45, 0x31, 0x36, 0xE6, 0x97, 0xA5, 0x45, 0x31,
+ 0x36, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x37, 0xE6,
+ 0x97, 0xA5, 0x45, 0x31, 0x37, 0xE7, 0x82, 0xB9,
+ 0x45, 0x31, 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x31,
+ 0x38, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x39, 0xE6,
+ 0x97, 0xA5, 0x45, 0x31, 0x39, 0xE7, 0x82, 0xB9,
// Bytes 2340 - 237f
- 0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, 0xD9, 0x89,
- 0x46, 0xD8, 0xAA, 0xD8, 0xAE, 0xD9, 0x8A, 0x46,
- 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAC, 0x46, 0xD8,
- 0xAA, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xAA,
- 0xD9, 0x85, 0xD8, 0xAE, 0x46, 0xD8, 0xAA, 0xD9,
- 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAA, 0xD9, 0x85,
- 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD8, 0xAD, 0xD9,
- 0x89, 0x46, 0xD8, 0xAC, 0xD8, 0xAD, 0xD9, 0x8A,
+ 0x45, 0x31, 0xE2, 0x81, 0x84, 0x32, 0x45, 0x31,
+ 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, 0xE2, 0x81,
+ 0x84, 0x34, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x35,
+ 0x45, 0x31, 0xE2, 0x81, 0x84, 0x36, 0x45, 0x31,
+ 0xE2, 0x81, 0x84, 0x37, 0x45, 0x31, 0xE2, 0x81,
+ 0x84, 0x38, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x39,
+ 0x45, 0x32, 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x32,
+ 0x30, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x31, 0xE6,
// Bytes 2380 - 23bf
- 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD8, 0xAD, 0x46,
- 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8,
- 0xAC, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xAD,
- 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8, 0xAD, 0xD9,
- 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAD, 0xD9, 0x85,
- 0xD9, 0x8A, 0x46, 0xD8, 0xB3, 0xD8, 0xAC, 0xD8,
- 0xAD, 0x46, 0xD8, 0xB3, 0xD8, 0xAC, 0xD9, 0x89,
- 0x46, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8, 0xAC, 0x46,
+ 0x97, 0xA5, 0x45, 0x32, 0x31, 0xE7, 0x82, 0xB9,
+ 0x45, 0x32, 0x32, 0xE6, 0x97, 0xA5, 0x45, 0x32,
+ 0x32, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x33, 0xE6,
+ 0x97, 0xA5, 0x45, 0x32, 0x33, 0xE7, 0x82, 0xB9,
+ 0x45, 0x32, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x32,
+ 0x34, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x35, 0xE6,
+ 0x97, 0xA5, 0x45, 0x32, 0x36, 0xE6, 0x97, 0xA5,
+ 0x45, 0x32, 0x37, 0xE6, 0x97, 0xA5, 0x45, 0x32,
// Bytes 23c0 - 23ff
- 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x89, 0x46, 0xD8,
- 0xB3, 0xD8, 0xAE, 0xD9, 0x8A, 0x46, 0xD8, 0xB3,
- 0xD9, 0x85, 0xD8, 0xAC, 0x46, 0xD8, 0xB3, 0xD9,
- 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, 0xD9, 0x85,
- 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, 0xAC, 0xD9,
- 0x8A, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, 0xD9, 0x85,
- 0x46, 0xD8, 0xB4, 0xD8, 0xAD, 0xD9, 0x8A, 0x46,
- 0xD8, 0xB4, 0xD9, 0x85, 0xD8, 0xAE, 0x46, 0xD8,
+ 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x39, 0xE6,
+ 0x97, 0xA5, 0x45, 0x32, 0xE2, 0x81, 0x84, 0x33,
+ 0x45, 0x32, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33,
+ 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x33, 0x31, 0xE6,
+ 0x97, 0xA5, 0x45, 0x33, 0xE2, 0x81, 0x84, 0x34,
+ 0x45, 0x33, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33,
+ 0xE2, 0x81, 0x84, 0x38, 0x45, 0x34, 0xE2, 0x81,
+ 0x84, 0x35, 0x45, 0x35, 0xE2, 0x81, 0x84, 0x36,
// Bytes 2400 - 243f
- 0xB4, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB5,
- 0xD8, 0xAD, 0xD8, 0xAD, 0x46, 0xD8, 0xB5, 0xD8,
- 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB5, 0xD9, 0x84,
- 0xD9, 0x89, 0x46, 0xD8, 0xB5, 0xD9, 0x84, 0xDB,
- 0x92, 0x46, 0xD8, 0xB5, 0xD9, 0x85, 0xD9, 0x85,
- 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x89, 0x46,
- 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8,
- 0xB6, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD8, 0xB7,
+ 0x45, 0x35, 0xE2, 0x81, 0x84, 0x38, 0x45, 0x37,
+ 0xE2, 0x81, 0x84, 0x38, 0x45, 0x41, 0xE2, 0x88,
+ 0x95, 0x6D, 0x45, 0x56, 0xE2, 0x88, 0x95, 0x6D,
+ 0x45, 0x6D, 0xE2, 0x88, 0x95, 0x73, 0x46, 0x31,
+ 0xE2, 0x81, 0x84, 0x31, 0x30, 0x46, 0x43, 0xE2,
+ 0x88, 0x95, 0x6B, 0x67, 0x46, 0x6D, 0xE2, 0x88,
+ 0x95, 0x73, 0x32, 0x46, 0xD8, 0xA8, 0xD8, 0xAD,
+ 0xD9, 0x8A, 0x46, 0xD8, 0xA8, 0xD8, 0xAE, 0xD9,
// Bytes 2440 - 247f
- 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xB7, 0xD9,
- 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB7, 0xD9, 0x85,
- 0xD9, 0x8A, 0x46, 0xD8, 0xB9, 0xD8, 0xAC, 0xD9,
- 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x85,
- 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x89, 0x46,
- 0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8,
- 0xBA, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xBA,
- 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xBA, 0xD9,
+ 0x8A, 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x85,
+ 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x89, 0x46,
+ 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8,
+ 0xAA, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, 0xD8, 0xAA,
+ 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8,
+ 0xAE, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAE,
+ 0xD9, 0x89, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, 0xD9,
+ 0x8A, 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAC,
// Bytes 2480 - 24bf
- 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x81, 0xD8, 0xAE,
- 0xD9, 0x85, 0x46, 0xD9, 0x81, 0xD9, 0x85, 0xD9,
- 0x8A, 0x46, 0xD9, 0x82, 0xD9, 0x84, 0xDB, 0x92,
- 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD8, 0xAD, 0x46,
- 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9,
- 0x82, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x83,
- 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9, 0x83, 0xD9,
- 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x84, 0xD8, 0xAC,
+ 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAD, 0x46,
+ 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAE, 0x46, 0xD8,
+ 0xAA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAA,
+ 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD8,
+ 0xAD, 0xD9, 0x89, 0x46, 0xD8, 0xAC, 0xD8, 0xAD,
+ 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD8,
+ 0xAD, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x89,
+ 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x8A, 0x46,
// Bytes 24c0 - 24ff
- 0xD8, 0xAC, 0x46, 0xD9, 0x84, 0xD8, 0xAC, 0xD9,
- 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAC, 0xD9, 0x8A,
- 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x85, 0x46,
- 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x89, 0x46, 0xD9,
- 0x84, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x84,
- 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x84, 0xD9,
- 0x85, 0xD8, 0xAD, 0x46, 0xD9, 0x84, 0xD9, 0x85,
- 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD8,
+ 0xD8, 0xAD, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8,
+ 0xAD, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAD,
+ 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB3, 0xD8,
+ 0xAC, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, 0xD8, 0xAC,
+ 0xD9, 0x89, 0x46, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8,
+ 0xAC, 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x89,
+ 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x8A, 0x46,
+ 0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xAC, 0x46, 0xD8,
// Bytes 2500 - 253f
- 0xAD, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD8, 0xAE,
- 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x85, 0x46,
- 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9,
- 0x85, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, 0xD9, 0x85,
- 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, 0x85, 0xD8,
- 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8, 0xAE,
- 0xD8, 0xAC, 0x46, 0xD9, 0x85, 0xD8, 0xAE, 0xD9,
- 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAE, 0xD9, 0x8A,
+ 0xB3, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xB3,
+ 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8,
+ 0xAC, 0xD9, 0x8A, 0x46, 0xD8, 0xB4, 0xD8, 0xAD,
+ 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, 0xD9,
+ 0x8A, 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD8, 0xAE,
+ 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD9, 0x85, 0x46,
+ 0xD8, 0xB5, 0xD8, 0xAD, 0xD8, 0xAD, 0x46, 0xD8,
+ 0xB5, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB5,
// Bytes 2540 - 257f
- 0x46, 0xD9, 0x85, 0xD9, 0x85, 0xD9, 0x8A, 0x46,
- 0xD9, 0x86, 0xD8, 0xAC, 0xD8, 0xAD, 0x46, 0xD9,
- 0x86, 0xD8, 0xAC, 0xD9, 0x85, 0x46, 0xD9, 0x86,
- 0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD9, 0x86, 0xD8,
- 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x86, 0xD8, 0xAD,
- 0xD9, 0x85, 0x46, 0xD9, 0x86, 0xD8, 0xAD, 0xD9,
- 0x89, 0x46, 0xD9, 0x86, 0xD8, 0xAD, 0xD9, 0x8A,
- 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x89, 0x46,
+ 0xD9, 0x84, 0xD9, 0x89, 0x46, 0xD8, 0xB5, 0xD9,
+ 0x84, 0xDB, 0x92, 0x46, 0xD8, 0xB5, 0xD9, 0x85,
+ 0xD9, 0x85, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9,
+ 0x89, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x8A,
+ 0x46, 0xD8, 0xB6, 0xD8, 0xAE, 0xD9, 0x85, 0x46,
+ 0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8,
+ 0xB7, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB7,
+ 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB9, 0xD8,
// Bytes 2580 - 25bf
- 0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9,
- 0x87, 0xD9, 0x85, 0xD8, 0xAC, 0x46, 0xD9, 0x87,
- 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD8,
- 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD8, 0xAD,
- 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, 0x85, 0xD9,
- 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x85, 0xD9, 0x8A,
- 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xA7, 0x46,
- 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAC, 0x46, 0xD9,
+ 0xAC, 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85,
+ 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9,
+ 0x89, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x8A,
+ 0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x85, 0x46,
+ 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8,
+ 0xBA, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x81,
+ 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x81, 0xD9,
+ 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x82, 0xD9, 0x84,
// Bytes 25c0 - 25ff
- 0x8A, 0xD9, 0x94, 0xD8, 0xAD, 0x46, 0xD9, 0x8A,
- 0xD9, 0x94, 0xD8, 0xAE, 0x46, 0xD9, 0x8A, 0xD9,
- 0x94, 0xD8, 0xB1, 0x46, 0xD9, 0x8A, 0xD9, 0x94,
- 0xD8, 0xB2, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9,
- 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x86,
- 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x87, 0x46,
- 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x88, 0x46, 0xD9,
- 0x8A, 0xD9, 0x94, 0xD9, 0x89, 0x46, 0xD9, 0x8A,
+ 0xDB, 0x92, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD8,
+ 0xAD, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x85,
+ 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x8A, 0x46,
+ 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9,
+ 0x83, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x84,
+ 0xD8, 0xAC, 0xD8, 0xAC, 0x46, 0xD9, 0x84, 0xD8,
+ 0xAC, 0xD9, 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAC,
+ 0xD9, 0x8A, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9,
// Bytes 2600 - 263f
- 0xD9, 0x94, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9,
- 0x94, 0xDB, 0x86, 0x46, 0xD9, 0x8A, 0xD9, 0x94,
- 0xDB, 0x87, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB,
- 0x88, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x90,
- 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x95, 0x46,
- 0xE0, 0xB9, 0x8D, 0xE0, 0xB8, 0xB2, 0x46, 0xE0,
- 0xBA, 0xAB, 0xE0, 0xBA, 0x99, 0x46, 0xE0, 0xBA,
- 0xAB, 0xE0, 0xBA, 0xA1, 0x46, 0xE0, 0xBB, 0x8D,
+ 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x89,
+ 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x8A, 0x46,
+ 0xD9, 0x84, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9,
+ 0x84, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD9, 0x84,
+ 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8,
+ 0xAC, 0xD8, 0xAD, 0x46, 0xD9, 0x85, 0xD8, 0xAC,
+ 0xD8, 0xAE, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9,
+ 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x8A,
// Bytes 2640 - 267f
- 0xE0, 0xBA, 0xB2, 0x46, 0xE0, 0xBD, 0x80, 0xE0,
- 0xBE, 0xB5, 0x46, 0xE0, 0xBD, 0x82, 0xE0, 0xBE,
- 0xB7, 0x46, 0xE0, 0xBD, 0x8C, 0xE0, 0xBE, 0xB7,
- 0x46, 0xE0, 0xBD, 0x91, 0xE0, 0xBE, 0xB7, 0x46,
- 0xE0, 0xBD, 0x96, 0xE0, 0xBE, 0xB7, 0x46, 0xE0,
- 0xBD, 0x9B, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE,
- 0x90, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, 0xBE, 0x92,
- 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0x9C, 0xE0,
+ 0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xAC, 0x46,
+ 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9,
+ 0x85, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x85,
+ 0xD8, 0xAE, 0xD8, 0xAC, 0x46, 0xD9, 0x85, 0xD8,
+ 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAE,
+ 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD9, 0x85, 0xD9,
+ 0x8A, 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD8, 0xAD,
+ 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x85, 0x46,
// Bytes 2680 - 26bf
- 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA1, 0xE0, 0xBE,
- 0xB7, 0x46, 0xE0, 0xBE, 0xA6, 0xE0, 0xBE, 0xB7,
- 0x46, 0xE0, 0xBE, 0xAB, 0xE0, 0xBE, 0xB7, 0x46,
- 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0x46, 0xE2,
- 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x46, 0xE2, 0x88,
- 0xAB, 0xE2, 0x88, 0xAB, 0x46, 0xE2, 0x88, 0xAE,
- 0xE2, 0x88, 0xAE, 0x46, 0xE3, 0x81, 0xBB, 0xE3,
- 0x81, 0x8B, 0x46, 0xE3, 0x82, 0x88, 0xE3, 0x82,
+ 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD9,
+ 0x86, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x86,
+ 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, 0x86, 0xD8,
+ 0xAD, 0xD9, 0x89, 0x46, 0xD9, 0x86, 0xD8, 0xAD,
+ 0xD9, 0x8A, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9,
+ 0x89, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x8A,
+ 0x46, 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xAC, 0x46,
+ 0xD9, 0x87, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9,
// Bytes 26c0 - 26ff
- 0x8A, 0x46, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD,
- 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0xB3, 0x46,
- 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0x88, 0x46, 0xE3,
- 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x46, 0xE3, 0x83,
- 0x8A, 0xE3, 0x83, 0x8E, 0x46, 0xE3, 0x83, 0x9B,
- 0xE3, 0x83, 0xB3, 0x46, 0xE3, 0x83, 0x9F, 0xE3,
- 0x83, 0xAA, 0x46, 0xE3, 0x83, 0xAA, 0xE3, 0x83,
- 0xA9, 0x46, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xA0,
+ 0x8A, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x8A,
+ 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9,
+ 0x85, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x85,
+ 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8,
+ 0xA7, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAC,
+ 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAD, 0x46,
+ 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAE, 0x46, 0xD9,
+ 0x8A, 0xD9, 0x94, 0xD8, 0xB1, 0x46, 0xD9, 0x8A,
// Bytes 2700 - 273f
- 0x46, 0xE4, 0xBB, 0xA4, 0xE5, 0x92, 0x8C, 0x46,
- 0xE5, 0xA4, 0xA7, 0xE6, 0xAD, 0xA3, 0x46, 0xE5,
- 0xB9, 0xB3, 0xE6, 0x88, 0x90, 0x46, 0xE6, 0x98,
- 0x8E, 0xE6, 0xB2, 0xBB, 0x46, 0xE6, 0x98, 0xAD,
- 0xE5, 0x92, 0x8C, 0x47, 0x72, 0x61, 0x64, 0xE2,
- 0x88, 0x95, 0x73, 0x47, 0xE3, 0x80, 0x94, 0x53,
- 0xE3, 0x80, 0x95, 0x48, 0x28, 0xE1, 0x84, 0x80,
- 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84,
+ 0xD9, 0x94, 0xD8, 0xB2, 0x46, 0xD9, 0x8A, 0xD9,
+ 0x94, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x94,
+ 0xD9, 0x86, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9,
+ 0x87, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x88,
+ 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x89, 0x46,
+ 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x8A, 0x46, 0xD9,
+ 0x8A, 0xD9, 0x94, 0xDB, 0x86, 0x46, 0xD9, 0x8A,
+ 0xD9, 0x94, 0xDB, 0x87, 0x46, 0xD9, 0x8A, 0xD9,
// Bytes 2740 - 277f
- 0x82, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1,
- 0x84, 0x83, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28,
- 0xE1, 0x84, 0x85, 0xE1, 0x85, 0xA1, 0x29, 0x48,
- 0x28, 0xE1, 0x84, 0x86, 0xE1, 0x85, 0xA1, 0x29,
- 0x48, 0x28, 0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1,
- 0x29, 0x48, 0x28, 0xE1, 0x84, 0x89, 0xE1, 0x85,
- 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8B, 0xE1,
- 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8C,
+ 0x94, 0xDB, 0x88, 0x46, 0xD9, 0x8A, 0xD9, 0x94,
+ 0xDB, 0x90, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB,
+ 0x95, 0x46, 0xE0, 0xB9, 0x8D, 0xE0, 0xB8, 0xB2,
+ 0x46, 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0x99, 0x46,
+ 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0xA1, 0x46, 0xE0,
+ 0xBB, 0x8D, 0xE0, 0xBA, 0xB2, 0x46, 0xE0, 0xBD,
+ 0x80, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, 0xBD, 0x82,
+ 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x8C, 0xE0,
// Bytes 2780 - 27bf
- 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84,
- 0x8C, 0xE1, 0x85, 0xAE, 0x29, 0x48, 0x28, 0xE1,
- 0x84, 0x8E, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28,
- 0xE1, 0x84, 0x8F, 0xE1, 0x85, 0xA1, 0x29, 0x48,
- 0x28, 0xE1, 0x84, 0x90, 0xE1, 0x85, 0xA1, 0x29,
- 0x48, 0x28, 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1,
- 0x29, 0x48, 0x28, 0xE1, 0x84, 0x92, 0xE1, 0x85,
- 0xA1, 0x29, 0x48, 0x72, 0x61, 0x64, 0xE2, 0x88,
+ 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x91, 0xE0, 0xBE,
+ 0xB7, 0x46, 0xE0, 0xBD, 0x96, 0xE0, 0xBE, 0xB7,
+ 0x46, 0xE0, 0xBD, 0x9B, 0xE0, 0xBE, 0xB7, 0x46,
+ 0xE0, 0xBE, 0x90, 0xE0, 0xBE, 0xB5, 0x46, 0xE0,
+ 0xBE, 0x92, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE,
+ 0x9C, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA1,
+ 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA6, 0xE0,
+ 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xAB, 0xE0, 0xBE,
// Bytes 27c0 - 27ff
- 0x95, 0x73, 0x32, 0x48, 0xD8, 0xA7, 0xD9, 0x83,
- 0xD8, 0xA8, 0xD8, 0xB1, 0x48, 0xD8, 0xA7, 0xD9,
- 0x84, 0xD9, 0x84, 0xD9, 0x87, 0x48, 0xD8, 0xB1,
- 0xD8, 0xB3, 0xD9, 0x88, 0xD9, 0x84, 0x48, 0xD8,
- 0xB1, 0xDB, 0x8C, 0xD8, 0xA7, 0xD9, 0x84, 0x48,
- 0xD8, 0xB5, 0xD9, 0x84, 0xD8, 0xB9, 0xD9, 0x85,
- 0x48, 0xD8, 0xB9, 0xD9, 0x84, 0xD9, 0x8A, 0xD9,
- 0x87, 0x48, 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85,
+ 0xB7, 0x46, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,
+ 0x46, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x46,
+ 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x46, 0xE2,
+ 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x46, 0xE3, 0x81,
+ 0xBB, 0xE3, 0x81, 0x8B, 0x46, 0xE3, 0x82, 0x88,
+ 0xE3, 0x82, 0x8A, 0x46, 0xE3, 0x82, 0xAD, 0xE3,
+ 0x83, 0xAD, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x82,
+ 0xB3, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0x88,
// Bytes 2800 - 283f
- 0xD8, 0xAF, 0x48, 0xD9, 0x88, 0xD8, 0xB3, 0xD9,
- 0x84, 0xD9, 0x85, 0x49, 0xE2, 0x80, 0xB2, 0xE2,
- 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0x49, 0xE2, 0x80,
- 0xB5, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x49,
- 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88,
- 0xAB, 0x49, 0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE,
- 0xE2, 0x88, 0xAE, 0x49, 0xE3, 0x80, 0x94, 0xE4,
- 0xB8, 0x89, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80,
+ 0x46, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x46,
+ 0xE3, 0x83, 0x8A, 0xE3, 0x83, 0x8E, 0x46, 0xE3,
+ 0x83, 0x9B, 0xE3, 0x83, 0xB3, 0x46, 0xE3, 0x83,
+ 0x9F, 0xE3, 0x83, 0xAA, 0x46, 0xE3, 0x83, 0xAA,
+ 0xE3, 0x83, 0xA9, 0x46, 0xE3, 0x83, 0xAC, 0xE3,
+ 0x83, 0xA0, 0x46, 0xE4, 0xBB, 0xA4, 0xE5, 0x92,
+ 0x8C, 0x46, 0xE5, 0xA4, 0xA7, 0xE6, 0xAD, 0xA3,
+ 0x46, 0xE5, 0xB9, 0xB3, 0xE6, 0x88, 0x90, 0x46,
// Bytes 2840 - 287f
- 0x94, 0xE4, 0xBA, 0x8C, 0xE3, 0x80, 0x95, 0x49,
- 0xE3, 0x80, 0x94, 0xE5, 0x8B, 0x9D, 0xE3, 0x80,
- 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE5, 0xAE, 0x89,
- 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6,
- 0x89, 0x93, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80,
- 0x94, 0xE6, 0x95, 0x97, 0xE3, 0x80, 0x95, 0x49,
- 0xE3, 0x80, 0x94, 0xE6, 0x9C, 0xAC, 0xE3, 0x80,
- 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE7, 0x82, 0xB9,
+ 0xE6, 0x98, 0x8E, 0xE6, 0xB2, 0xBB, 0x46, 0xE6,
+ 0x98, 0xAD, 0xE5, 0x92, 0x8C, 0x47, 0x72, 0x61,
+ 0x64, 0xE2, 0x88, 0x95, 0x73, 0x47, 0xE3, 0x80,
+ 0x94, 0x53, 0xE3, 0x80, 0x95, 0x48, 0x28, 0xE1,
+ 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28,
+ 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x29, 0x48,
+ 0x28, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, 0x29,
+ 0x48, 0x28, 0xE1, 0x84, 0x85, 0xE1, 0x85, 0xA1,
// Bytes 2880 - 28bf
- 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE7,
- 0x9B, 0x97, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x82,
- 0xA2, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x49,
- 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xB3, 0xE3, 0x83,
- 0x81, 0x49, 0xE3, 0x82, 0xA6, 0xE3, 0x82, 0xA9,
- 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x82, 0xAA, 0xE3,
- 0x83, 0xB3, 0xE3, 0x82, 0xB9, 0x49, 0xE3, 0x82,
- 0xAA, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xA0, 0x49,
+ 0x29, 0x48, 0x28, 0xE1, 0x84, 0x86, 0xE1, 0x85,
+ 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x87, 0xE1,
+ 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x89,
+ 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84,
+ 0x8B, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1,
+ 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28,
+ 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xAE, 0x29, 0x48,
+ 0x28, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, 0x29,
// Bytes 28c0 - 28ff
- 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0xA4, 0xE3, 0x83,
- 0xAA, 0x49, 0xE3, 0x82, 0xB1, 0xE3, 0x83, 0xBC,
- 0xE3, 0x82, 0xB9, 0x49, 0xE3, 0x82, 0xB3, 0xE3,
- 0x83, 0xAB, 0xE3, 0x83, 0x8A, 0x49, 0xE3, 0x82,
- 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x81, 0x49,
- 0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83,
- 0x88, 0x49, 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99,
- 0xE3, 0x82, 0xB7, 0x49, 0xE3, 0x83, 0x88, 0xE3,
+ 0x48, 0x28, 0xE1, 0x84, 0x8F, 0xE1, 0x85, 0xA1,
+ 0x29, 0x48, 0x28, 0xE1, 0x84, 0x90, 0xE1, 0x85,
+ 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x91, 0xE1,
+ 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x92,
+ 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x72, 0x61, 0x64,
+ 0xE2, 0x88, 0x95, 0x73, 0x32, 0x48, 0xD8, 0xA7,
+ 0xD9, 0x83, 0xD8, 0xA8, 0xD8, 0xB1, 0x48, 0xD8,
+ 0xA7, 0xD9, 0x84, 0xD9, 0x84, 0xD9, 0x87, 0x48,
// Bytes 2900 - 293f
- 0x82, 0x99, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83,
- 0x8E, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0x49,
- 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0xA4, 0xE3, 0x83,
- 0x84, 0x49, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99,
- 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x92, 0xE3,
- 0x82, 0x9A, 0xE3, 0x82, 0xB3, 0x49, 0xE3, 0x83,
- 0x95, 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0xB3, 0x49,
- 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x82,
+ 0xD8, 0xB1, 0xD8, 0xB3, 0xD9, 0x88, 0xD9, 0x84,
+ 0x48, 0xD8, 0xB1, 0xDB, 0x8C, 0xD8, 0xA7, 0xD9,
+ 0x84, 0x48, 0xD8, 0xB5, 0xD9, 0x84, 0xD8, 0xB9,
+ 0xD9, 0x85, 0x48, 0xD8, 0xB9, 0xD9, 0x84, 0xD9,
+ 0x8A, 0xD9, 0x87, 0x48, 0xD9, 0x85, 0xD8, 0xAD,
+ 0xD9, 0x85, 0xD8, 0xAF, 0x48, 0xD9, 0x88, 0xD8,
+ 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x49, 0xE2, 0x80,
+ 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0x49,
// Bytes 2940 - 297f
- 0xBD, 0x49, 0xE3, 0x83, 0x98, 0xE3, 0x83, 0xAB,
- 0xE3, 0x83, 0x84, 0x49, 0xE3, 0x83, 0x9B, 0xE3,
- 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83,
- 0x9B, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xB3, 0x49,
- 0xE3, 0x83, 0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x83,
- 0xAB, 0x49, 0xE3, 0x83, 0x9E, 0xE3, 0x83, 0x83,
- 0xE3, 0x83, 0x8F, 0x49, 0xE3, 0x83, 0x9E, 0xE3,
- 0x83, 0xAB, 0xE3, 0x82, 0xAF, 0x49, 0xE3, 0x83,
+ 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0xE2, 0x80,
+ 0xB5, 0x49, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB,
+ 0xE2, 0x88, 0xAB, 0x49, 0xE2, 0x88, 0xAE, 0xE2,
+ 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x49, 0xE3, 0x80,
+ 0x94, 0xE4, 0xB8, 0x89, 0xE3, 0x80, 0x95, 0x49,
+ 0xE3, 0x80, 0x94, 0xE4, 0xBA, 0x8C, 0xE3, 0x80,
+ 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE5, 0x8B, 0x9D,
+ 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE5,
// Bytes 2980 - 29bf
- 0xA4, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x49,
- 0xE3, 0x83, 0xA6, 0xE3, 0x82, 0xA2, 0xE3, 0x83,
- 0xB3, 0x49, 0xE3, 0x83, 0xAF, 0xE3, 0x83, 0x83,
- 0xE3, 0x83, 0x88, 0x4C, 0xE2, 0x80, 0xB2, 0xE2,
- 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,
- 0x4C, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2,
- 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x4C, 0xE3, 0x82,
- 0xA2, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x95, 0xE3,
+ 0xAE, 0x89, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80,
+ 0x94, 0xE6, 0x89, 0x93, 0xE3, 0x80, 0x95, 0x49,
+ 0xE3, 0x80, 0x94, 0xE6, 0x95, 0x97, 0xE3, 0x80,
+ 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x9C, 0xAC,
+ 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE7,
+ 0x82, 0xB9, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80,
+ 0x94, 0xE7, 0x9B, 0x97, 0xE3, 0x80, 0x95, 0x49,
+ 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xBC, 0xE3, 0x83,
// Bytes 29c0 - 29ff
- 0x82, 0xA1, 0x4C, 0xE3, 0x82, 0xA8, 0xE3, 0x83,
- 0xBC, 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xBC, 0x4C,
- 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83,
- 0xAD, 0xE3, 0x83, 0xB3, 0x4C, 0xE3, 0x82, 0xAB,
- 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xB3, 0xE3, 0x83,
- 0x9E, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xA9,
- 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0x4C, 0xE3,
- 0x82, 0xAB, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xAA,
+ 0xAB, 0x49, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xB3,
+ 0xE3, 0x83, 0x81, 0x49, 0xE3, 0x82, 0xA6, 0xE3,
+ 0x82, 0xA9, 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x82,
+ 0xAA, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB9, 0x49,
+ 0xE3, 0x82, 0xAA, 0xE3, 0x83, 0xBC, 0xE3, 0x83,
+ 0xA0, 0x49, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0xA4,
+ 0xE3, 0x83, 0xAA, 0x49, 0xE3, 0x82, 0xB1, 0xE3,
+ 0x83, 0xBC, 0xE3, 0x82, 0xB9, 0x49, 0xE3, 0x82,
// Bytes 2a00 - 2a3f
- 0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAD, 0xE3,
- 0x82, 0x99, 0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xBC,
- 0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xA5, 0xE3,
- 0x83, 0xAA, 0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82,
- 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xA9, 0xE3,
- 0x83, 0xA0, 0x4C, 0xE3, 0x82, 0xAF, 0xE3, 0x83,
- 0xAD, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x8D, 0x4C,
- 0xE3, 0x82, 0xB5, 0xE3, 0x82, 0xA4, 0xE3, 0x82,
+ 0xB3, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x8A, 0x49,
+ 0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83,
+ 0x81, 0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3,
+ 0xE3, 0x83, 0x88, 0x49, 0xE3, 0x83, 0x86, 0xE3,
+ 0x82, 0x99, 0xE3, 0x82, 0xB7, 0x49, 0xE3, 0x83,
+ 0x88, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0x49,
+ 0xE3, 0x83, 0x8E, 0xE3, 0x83, 0x83, 0xE3, 0x83,
+ 0x88, 0x49, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0xA4,
// Bytes 2a40 - 2a7f
- 0xAF, 0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x82, 0xBF,
- 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82,
- 0xB9, 0x4C, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A,
- 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x84, 0x4C, 0xE3,
- 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xAF,
- 0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x83, 0x95, 0xE3,
- 0x82, 0xA3, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88,
- 0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x99, 0xE3,
+ 0xE3, 0x83, 0x84, 0x49, 0xE3, 0x83, 0x92, 0xE3,
+ 0x82, 0x99, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83,
+ 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xB3, 0x49,
+ 0xE3, 0x83, 0x95, 0xE3, 0x83, 0xA9, 0xE3, 0x83,
+ 0xB3, 0x49, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A,
+ 0xE3, 0x82, 0xBD, 0x49, 0xE3, 0x83, 0x98, 0xE3,
+ 0x83, 0xAB, 0xE3, 0x83, 0x84, 0x49, 0xE3, 0x83,
+ 0x9B, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x49,
// Bytes 2a80 - 2abf
- 0x83, 0xBC, 0xE3, 0x82, 0xBF, 0x4C, 0xE3, 0x83,
- 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0x8B, 0xE3,
- 0x83, 0x92, 0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82,
- 0x9A, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB9, 0x4C,
- 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x99, 0xE3, 0x83,
- 0xAB, 0xE3, 0x83, 0x88, 0x4C, 0xE3, 0x83, 0x9E,
- 0xE3, 0x82, 0xA4, 0xE3, 0x82, 0xAF, 0xE3, 0x83,
- 0xAD, 0x4C, 0xE3, 0x83, 0x9F, 0xE3, 0x82, 0xAF,
+ 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3, 0x83,
+ 0xB3, 0x49, 0xE3, 0x83, 0x9E, 0xE3, 0x82, 0xA4,
+ 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x9E, 0xE3,
+ 0x83, 0x83, 0xE3, 0x83, 0x8F, 0x49, 0xE3, 0x83,
+ 0x9E, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xAF, 0x49,
+ 0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xBC, 0xE3, 0x83,
+ 0xAB, 0x49, 0xE3, 0x83, 0xA6, 0xE3, 0x82, 0xA2,
+ 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x83, 0xAF, 0xE3,
// Bytes 2ac0 - 2aff
- 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xB3, 0x4C, 0xE3,
- 0x83, 0xA1, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88,
- 0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x83, 0xAA, 0xE3,
- 0x83, 0x83, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB,
- 0x4C, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x92, 0xE3,
- 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0x4C, 0xE6, 0xA0,
- 0xAA, 0xE5, 0xBC, 0x8F, 0xE4, 0xBC, 0x9A, 0xE7,
- 0xA4, 0xBE, 0x4E, 0x28, 0xE1, 0x84, 0x8B, 0xE1,
+ 0x83, 0x83, 0xE3, 0x83, 0x88, 0x4C, 0xE2, 0x80,
+ 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2,
+ 0x80, 0xB2, 0x4C, 0xE2, 0x88, 0xAB, 0xE2, 0x88,
+ 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x4C,
+ 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xAB, 0xE3, 0x83,
+ 0x95, 0xE3, 0x82, 0xA1, 0x4C, 0xE3, 0x82, 0xA8,
+ 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xAB, 0xE3, 0x83,
+ 0xBC, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99,
// Bytes 2b00 - 2b3f
- 0x85, 0xA9, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xAE,
- 0x29, 0x4F, 0xD8, 0xAC, 0xD9, 0x84, 0x20, 0xD8,
- 0xAC, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x84, 0xD9,
- 0x87, 0x4F, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0x8F,
- 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83,
- 0x88, 0x4F, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xB3,
- 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x82,
- 0xA2, 0x4F, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD,
+ 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xB3, 0x4C, 0xE3,
+ 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xB3,
+ 0xE3, 0x83, 0x9E, 0x4C, 0xE3, 0x82, 0xAB, 0xE3,
+ 0x83, 0xA9, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88,
+ 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xAD, 0xE3,
+ 0x83, 0xAA, 0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82,
+ 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x8B, 0xE3,
+ 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x83,
// Bytes 2b40 - 2b7f
- 0xE3, 0x83, 0xAF, 0xE3, 0x83, 0x83, 0xE3, 0x83,
- 0x88, 0x4F, 0xE3, 0x82, 0xB5, 0xE3, 0x83, 0xB3,
- 0xE3, 0x83, 0x81, 0xE3, 0x83, 0xBC, 0xE3, 0x83,
- 0xA0, 0x4F, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99,
- 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAC, 0xE3, 0x83,
- 0xAB, 0x4F, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0xAF,
- 0xE3, 0x82, 0xBF, 0xE3, 0x83, 0xBC, 0xE3, 0x83,
- 0xAB, 0x4F, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A,
+ 0xA5, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, 0x4C,
+ 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83,
+ 0xA9, 0xE3, 0x83, 0xA0, 0x4C, 0xE3, 0x82, 0xAF,
+ 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xBC, 0xE3, 0x83,
+ 0x8D, 0x4C, 0xE3, 0x82, 0xB5, 0xE3, 0x82, 0xA4,
+ 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, 0xE3,
+ 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC,
+ 0xE3, 0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x8F, 0xE3,
// Bytes 2b80 - 2bbf
- 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xB3, 0xE3, 0x83,
- 0x88, 0x4F, 0xE3, 0x83, 0x9E, 0xE3, 0x83, 0xB3,
- 0xE3, 0x82, 0xB7, 0xE3, 0x83, 0xA7, 0xE3, 0x83,
- 0xB3, 0x4F, 0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB,
- 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x88, 0xE3, 0x83,
- 0xB3, 0x4F, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0xBC,
- 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, 0xE3, 0x83,
- 0xAB, 0x51, 0x28, 0xE1, 0x84, 0x8B, 0xE1, 0x85,
+ 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x84,
+ 0x4C, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3,
+ 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x83,
+ 0x95, 0xE3, 0x82, 0xA3, 0xE3, 0x83, 0xBC, 0xE3,
+ 0x83, 0x88, 0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82,
+ 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xBF, 0x4C,
+ 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83,
+ 0x8B, 0xE3, 0x83, 0x92, 0x4C, 0xE3, 0x83, 0x98,
// Bytes 2bc0 - 2bff
- 0xA9, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA5, 0xE1,
- 0x86, 0xAB, 0x29, 0x52, 0xE3, 0x82, 0xAD, 0xE3,
- 0x82, 0x99, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xBF,
- 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0x52, 0xE3,
- 0x82, 0xAD, 0xE3, 0x83, 0xAD, 0xE3, 0x82, 0xAF,
- 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xA9, 0xE3, 0x83,
- 0xA0, 0x52, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD,
- 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xBC, 0xE3, 0x83,
+ 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xB3, 0xE3, 0x82,
+ 0xB9, 0x4C, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x99,
+ 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x88, 0x4C, 0xE3,
+ 0x83, 0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x82, 0xAF,
+ 0xE3, 0x83, 0xAD, 0x4C, 0xE3, 0x83, 0x9F, 0xE3,
+ 0x82, 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xB3,
+ 0x4C, 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xBC, 0xE3,
+ 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x83,
// Bytes 2c00 - 2c3f
- 0x88, 0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x82, 0xAF,
- 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xA9, 0xE3, 0x83,
- 0xA0, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x52,
- 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0xE3, 0x82,
- 0xBB, 0xE3, 0x82, 0x99, 0xE3, 0x82, 0xA4, 0xE3,
- 0x83, 0xAD, 0x52, 0xE3, 0x83, 0x8F, 0xE3, 0x82,
- 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xBB, 0xE3,
- 0x83, 0xB3, 0xE3, 0x83, 0x88, 0x52, 0xE3, 0x83,
+ 0xAA, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0xE3,
+ 0x83, 0xAB, 0x4C, 0xE3, 0x83, 0xAB, 0xE3, 0x83,
+ 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0x4C,
+ 0xE6, 0xA0, 0xAA, 0xE5, 0xBC, 0x8F, 0xE4, 0xBC,
+ 0x9A, 0xE7, 0xA4, 0xBE, 0x4E, 0x28, 0xE1, 0x84,
+ 0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x92, 0xE1,
+ 0x85, 0xAE, 0x29, 0x4F, 0xD8, 0xAC, 0xD9, 0x84,
+ 0x20, 0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xA7, 0xD9,
// Bytes 2c40 - 2c7f
- 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA2, 0xE3,
- 0x82, 0xB9, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB,
- 0x52, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, 0xE3,
- 0x83, 0x83, 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0xA7,
- 0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x83, 0x9F, 0xE3,
- 0x83, 0xAA, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99,
- 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0x52, 0xE3,
- 0x83, 0xAC, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88,
+ 0x84, 0xD9, 0x87, 0x4F, 0xE3, 0x82, 0xA2, 0xE3,
+ 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC,
+ 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xA2, 0xE3,
+ 0x83, 0xB3, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A,
+ 0xE3, 0x82, 0xA2, 0x4F, 0xE3, 0x82, 0xAD, 0xE3,
+ 0x83, 0xAD, 0xE3, 0x83, 0xAF, 0xE3, 0x83, 0x83,
+ 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xB5, 0xE3,
+ 0x83, 0xB3, 0xE3, 0x83, 0x81, 0xE3, 0x83, 0xBC,
// Bytes 2c80 - 2cbf
- 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99, 0xE3, 0x83,
- 0xB3, 0x61, 0xD8, 0xB5, 0xD9, 0x84, 0xD9, 0x89,
- 0x20, 0xD8, 0xA7, 0xD9, 0x84, 0xD9, 0x84, 0xD9,
- 0x87, 0x20, 0xD8, 0xB9, 0xD9, 0x84, 0xD9, 0x8A,
- 0xD9, 0x87, 0x20, 0xD9, 0x88, 0xD8, 0xB3, 0xD9,
- 0x84, 0xD9, 0x85, 0x06, 0xE0, 0xA7, 0x87, 0xE0,
- 0xA6, 0xBE, 0x01, 0x06, 0xE0, 0xA7, 0x87, 0xE0,
- 0xA7, 0x97, 0x01, 0x06, 0xE0, 0xAD, 0x87, 0xE0,
+ 0xE3, 0x83, 0xA0, 0x4F, 0xE3, 0x83, 0x8F, 0xE3,
+ 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAC,
+ 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x98, 0xE3,
+ 0x82, 0xAF, 0xE3, 0x82, 0xBF, 0xE3, 0x83, 0xBC,
+ 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x9B, 0xE3,
+ 0x82, 0x9A, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xB3,
+ 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x83, 0x9E, 0xE3,
+ 0x83, 0xB3, 0xE3, 0x82, 0xB7, 0xE3, 0x83, 0xA7,
// Bytes 2cc0 - 2cff
- 0xAC, 0xBE, 0x01, 0x06, 0xE0, 0xAD, 0x87, 0xE0,
- 0xAD, 0x96, 0x01, 0x06, 0xE0, 0xAD, 0x87, 0xE0,
- 0xAD, 0x97, 0x01, 0x06, 0xE0, 0xAE, 0x92, 0xE0,
- 0xAF, 0x97, 0x01, 0x06, 0xE0, 0xAF, 0x86, 0xE0,
- 0xAE, 0xBE, 0x01, 0x06, 0xE0, 0xAF, 0x86, 0xE0,
- 0xAF, 0x97, 0x01, 0x06, 0xE0, 0xAF, 0x87, 0xE0,
- 0xAE, 0xBE, 0x01, 0x06, 0xE0, 0xB2, 0xBF, 0xE0,
- 0xB3, 0x95, 0x01, 0x06, 0xE0, 0xB3, 0x86, 0xE0,
+ 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xA1, 0xE3,
+ 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x88,
+ 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xAB, 0xE3,
+ 0x83, 0xBC, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99,
+ 0xE3, 0x83, 0xAB, 0x51, 0x28, 0xE1, 0x84, 0x8B,
+ 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x8C, 0xE1, 0x85,
+ 0xA5, 0xE1, 0x86, 0xAB, 0x29, 0x52, 0xE3, 0x82,
+ 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0xE3,
// Bytes 2d00 - 2d3f
- 0xB3, 0x95, 0x01, 0x06, 0xE0, 0xB3, 0x86, 0xE0,
- 0xB3, 0x96, 0x01, 0x06, 0xE0, 0xB5, 0x86, 0xE0,
- 0xB4, 0xBE, 0x01, 0x06, 0xE0, 0xB5, 0x86, 0xE0,
- 0xB5, 0x97, 0x01, 0x06, 0xE0, 0xB5, 0x87, 0xE0,
- 0xB4, 0xBE, 0x01, 0x06, 0xE0, 0xB7, 0x99, 0xE0,
- 0xB7, 0x9F, 0x01, 0x06, 0xE1, 0x80, 0xA5, 0xE1,
- 0x80, 0xAE, 0x01, 0x06, 0xE1, 0xAC, 0x85, 0xE1,
- 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, 0x87, 0xE1,
+ 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC,
+ 0x52, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD, 0xE3,
+ 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xA9,
+ 0xE3, 0x83, 0xA0, 0x52, 0xE3, 0x82, 0xAD, 0xE3,
+ 0x83, 0xAD, 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xBC,
+ 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x52, 0xE3,
+ 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xA9,
+ 0xE3, 0x83, 0xA0, 0xE3, 0x83, 0x88, 0xE3, 0x83,
// Bytes 2d40 - 2d7f
- 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, 0x89, 0xE1,
- 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, 0x8B, 0xE1,
- 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, 0x8D, 0xE1,
- 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, 0x91, 0xE1,
- 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, 0xBA, 0xE1,
- 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, 0xBC, 0xE1,
- 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, 0xBE, 0xE1,
- 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAC, 0xBF, 0xE1,
+ 0xB3, 0x52, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB,
+ 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0xE3, 0x82,
+ 0xA4, 0xE3, 0x83, 0xAD, 0x52, 0xE3, 0x83, 0x8F,
+ 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x82,
+ 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, 0x52,
+ 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82,
+ 0xA2, 0xE3, 0x82, 0xB9, 0xE3, 0x83, 0x88, 0xE3,
+ 0x83, 0xAB, 0x52, 0xE3, 0x83, 0x95, 0xE3, 0x82,
// Bytes 2d80 - 2dbf
- 0xAC, 0xB5, 0x01, 0x06, 0xE1, 0xAD, 0x82, 0xE1,
- 0xAC, 0xB5, 0x01, 0x08, 0xF0, 0x91, 0x84, 0xB1,
- 0xF0, 0x91, 0x84, 0xA7, 0x01, 0x08, 0xF0, 0x91,
- 0x84, 0xB2, 0xF0, 0x91, 0x84, 0xA7, 0x01, 0x08,
- 0xF0, 0x91, 0x8D, 0x87, 0xF0, 0x91, 0x8C, 0xBE,
- 0x01, 0x08, 0xF0, 0x91, 0x8D, 0x87, 0xF0, 0x91,
- 0x8D, 0x97, 0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9,
- 0xF0, 0x91, 0x92, 0xB0, 0x01, 0x08, 0xF0, 0x91,
+ 0x99, 0xE3, 0x83, 0x83, 0xE3, 0x82, 0xB7, 0xE3,
+ 0x82, 0xA7, 0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x83,
+ 0x9F, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0x8F, 0xE3,
+ 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB,
+ 0x52, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xB3, 0xE3,
+ 0x83, 0x88, 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99,
+ 0xE3, 0x83, 0xB3, 0x5F, 0xD8, 0xB5, 0xD9, 0x84,
+ 0xD9, 0x89, 0x20, 0xD8, 0xA7, 0xD9, 0x84, 0xD9,
// Bytes 2dc0 - 2dff
- 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xBA, 0x01, 0x08,
- 0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xBD,
- 0x01, 0x08, 0xF0, 0x91, 0x96, 0xB8, 0xF0, 0x91,
- 0x96, 0xAF, 0x01, 0x08, 0xF0, 0x91, 0x96, 0xB9,
- 0xF0, 0x91, 0x96, 0xAF, 0x01, 0x08, 0xF0, 0x91,
- 0xA4, 0xB5, 0xF0, 0x91, 0xA4, 0xB0, 0x01, 0x09,
- 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0xE0, 0xB3,
- 0x95, 0x02, 0x09, 0xE0, 0xB7, 0x99, 0xE0, 0xB7,
- // Bytes 2e00 - 2e3f
- 0x8F, 0xE0, 0xB7, 0x8A, 0x16, 0x44, 0x44, 0x5A,
+ 0x84, 0xD9, 0x87, 0x20, 0xD8, 0xB9, 0xD9, 0x84,
+ 0xD9, 0x8A, 0xD9, 0x87, 0x20, 0xD9, 0x88, 0xD8,
+ 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x44, 0x44, 0x5A,
0xCC, 0x8C, 0xCD, 0x44, 0x44, 0x7A, 0xCC, 0x8C,
0xCD, 0x44, 0x64, 0x7A, 0xCC, 0x8C, 0xCD, 0x46,
0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x93, 0xCD, 0x46,
0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x94, 0xCD, 0x46,
- 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x95, 0xB9, 0x46,
- 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x01, 0x46,
- 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x01, 0x46,
- // Bytes 2e40 - 2e7f
- 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, 0x01, 0x46,
- 0xE1, 0x84, 0x85, 0xE1, 0x85, 0xA1, 0x01, 0x46,
- 0xE1, 0x84, 0x86, 0xE1, 0x85, 0xA1, 0x01, 0x46,
- 0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1, 0x01, 0x46,
- 0xE1, 0x84, 0x89, 0xE1, 0x85, 0xA1, 0x01, 0x46,
- 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x01, 0x46,
- 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xAE, 0x01, 0x46,
- 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x01, 0x46,
- // Bytes 2e80 - 2ebf
- 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, 0x01, 0x46,
- 0xE1, 0x84, 0x8F, 0xE1, 0x85, 0xA1, 0x01, 0x46,
- 0xE1, 0x84, 0x90, 0xE1, 0x85, 0xA1, 0x01, 0x46,
- 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1, 0x01, 0x46,
- 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0x01, 0x49,
+ 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x95, 0xB9, 0x49,
+ // Bytes 2e00 - 2e3f
0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB, 0xE3, 0x82,
0x99, 0x11, 0x4C, 0xE1, 0x84, 0x8C, 0xE1, 0x85,
0xAE, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xB4, 0x01,
- // Bytes 2ec0 - 2eff
0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3,
0x82, 0xAB, 0xE3, 0x82, 0x99, 0x11, 0x4C, 0xE3,
0x82, 0xB3, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x9B,
0xE3, 0x82, 0x9A, 0x11, 0x4C, 0xE3, 0x83, 0xA4,
0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x82,
+ // Bytes 2e40 - 2e7f
0x99, 0x11, 0x4F, 0xE1, 0x84, 0x8E, 0xE1, 0x85,
0xA1, 0xE1, 0x86, 0xB7, 0xE1, 0x84, 0x80, 0xE1,
0x85, 0xA9, 0x01, 0x4F, 0xE3, 0x82, 0xA4, 0xE3,
- // Bytes 2f00 - 2f3f
0x83, 0x8B, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xAF,
0xE3, 0x82, 0x99, 0x11, 0x4F, 0xE3, 0x82, 0xB7,
0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xB3, 0xE3, 0x82,
0xAF, 0xE3, 0x82, 0x99, 0x11, 0x4F, 0xE3, 0x83,
0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3,
+ // Bytes 2e80 - 2ebf
0x82, 0xB7, 0xE3, 0x82, 0x99, 0x11, 0x4F, 0xE3,
0x83, 0x9B, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xB3,
0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x11, 0x52,
- // Bytes 2f40 - 2f7f
0xE3, 0x82, 0xA8, 0xE3, 0x82, 0xB9, 0xE3, 0x82,
0xAF, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3,
0x82, 0x99, 0x11, 0x52, 0xE3, 0x83, 0x95, 0xE3,
0x82, 0xA1, 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0x83,
- 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x11, 0x86,
- 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0x01, 0x86,
- 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8F, 0x01, 0x03,
+ 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x11, 0x03,
+ // Bytes 2ec0 - 2eff
0x3C, 0xCC, 0xB8, 0x05, 0x03, 0x3D, 0xCC, 0xB8,
- // Bytes 2f80 - 2fbf
0x05, 0x03, 0x3E, 0xCC, 0xB8, 0x05, 0x03, 0x41,
0xCC, 0x80, 0xCD, 0x03, 0x41, 0xCC, 0x81, 0xCD,
0x03, 0x41, 0xCC, 0x83, 0xCD, 0x03, 0x41, 0xCC,
@@ -1758,8 +1732,8 @@ var decomps = [...]byte{
0x41, 0xCC, 0x8C, 0xCD, 0x03, 0x41, 0xCC, 0x8F,
0xCD, 0x03, 0x41, 0xCC, 0x91, 0xCD, 0x03, 0x41,
0xCC, 0xA5, 0xB9, 0x03, 0x41, 0xCC, 0xA8, 0xA9,
+ // Bytes 2f00 - 2f3f
0x03, 0x42, 0xCC, 0x87, 0xCD, 0x03, 0x42, 0xCC,
- // Bytes 2fc0 - 2fff
0xA3, 0xB9, 0x03, 0x42, 0xCC, 0xB1, 0xB9, 0x03,
0x43, 0xCC, 0x81, 0xCD, 0x03, 0x43, 0xCC, 0x82,
0xCD, 0x03, 0x43, 0xCC, 0x87, 0xCD, 0x03, 0x43,
@@ -1767,8 +1741,8 @@ var decomps = [...]byte{
0x03, 0x44, 0xCC, 0x8C, 0xCD, 0x03, 0x44, 0xCC,
0xA3, 0xB9, 0x03, 0x44, 0xCC, 0xA7, 0xA9, 0x03,
0x44, 0xCC, 0xAD, 0xB9, 0x03, 0x44, 0xCC, 0xB1,
+ // Bytes 2f40 - 2f7f
0xB9, 0x03, 0x45, 0xCC, 0x80, 0xCD, 0x03, 0x45,
- // Bytes 3000 - 303f
0xCC, 0x81, 0xCD, 0x03, 0x45, 0xCC, 0x83, 0xCD,
0x03, 0x45, 0xCC, 0x86, 0xCD, 0x03, 0x45, 0xCC,
0x87, 0xCD, 0x03, 0x45, 0xCC, 0x88, 0xCD, 0x03,
@@ -1776,8 +1750,8 @@ var decomps = [...]byte{
0xCD, 0x03, 0x45, 0xCC, 0x8F, 0xCD, 0x03, 0x45,
0xCC, 0x91, 0xCD, 0x03, 0x45, 0xCC, 0xA8, 0xA9,
0x03, 0x45, 0xCC, 0xAD, 0xB9, 0x03, 0x45, 0xCC,
+ // Bytes 2f80 - 2fbf
0xB0, 0xB9, 0x03, 0x46, 0xCC, 0x87, 0xCD, 0x03,
- // Bytes 3040 - 307f
0x47, 0xCC, 0x81, 0xCD, 0x03, 0x47, 0xCC, 0x82,
0xCD, 0x03, 0x47, 0xCC, 0x84, 0xCD, 0x03, 0x47,
0xCC, 0x86, 0xCD, 0x03, 0x47, 0xCC, 0x87, 0xCD,
@@ -1785,8 +1759,8 @@ var decomps = [...]byte{
0xA7, 0xA9, 0x03, 0x48, 0xCC, 0x82, 0xCD, 0x03,
0x48, 0xCC, 0x87, 0xCD, 0x03, 0x48, 0xCC, 0x88,
0xCD, 0x03, 0x48, 0xCC, 0x8C, 0xCD, 0x03, 0x48,
+ // Bytes 2fc0 - 2fff
0xCC, 0xA3, 0xB9, 0x03, 0x48, 0xCC, 0xA7, 0xA9,
- // Bytes 3080 - 30bf
0x03, 0x48, 0xCC, 0xAE, 0xB9, 0x03, 0x49, 0xCC,
0x80, 0xCD, 0x03, 0x49, 0xCC, 0x81, 0xCD, 0x03,
0x49, 0xCC, 0x82, 0xCD, 0x03, 0x49, 0xCC, 0x83,
@@ -1794,8 +1768,8 @@ var decomps = [...]byte{
0xCC, 0x86, 0xCD, 0x03, 0x49, 0xCC, 0x87, 0xCD,
0x03, 0x49, 0xCC, 0x89, 0xCD, 0x03, 0x49, 0xCC,
0x8C, 0xCD, 0x03, 0x49, 0xCC, 0x8F, 0xCD, 0x03,
+ // Bytes 3000 - 303f
0x49, 0xCC, 0x91, 0xCD, 0x03, 0x49, 0xCC, 0xA3,
- // Bytes 30c0 - 30ff
0xB9, 0x03, 0x49, 0xCC, 0xA8, 0xA9, 0x03, 0x49,
0xCC, 0xB0, 0xB9, 0x03, 0x4A, 0xCC, 0x82, 0xCD,
0x03, 0x4B, 0xCC, 0x81, 0xCD, 0x03, 0x4B, 0xCC,
@@ -1803,8 +1777,8 @@ var decomps = [...]byte{
0x4B, 0xCC, 0xA7, 0xA9, 0x03, 0x4B, 0xCC, 0xB1,
0xB9, 0x03, 0x4C, 0xCC, 0x81, 0xCD, 0x03, 0x4C,
0xCC, 0x8C, 0xCD, 0x03, 0x4C, 0xCC, 0xA7, 0xA9,
+ // Bytes 3040 - 307f
0x03, 0x4C, 0xCC, 0xAD, 0xB9, 0x03, 0x4C, 0xCC,
- // Bytes 3100 - 313f
0xB1, 0xB9, 0x03, 0x4D, 0xCC, 0x81, 0xCD, 0x03,
0x4D, 0xCC, 0x87, 0xCD, 0x03, 0x4D, 0xCC, 0xA3,
0xB9, 0x03, 0x4E, 0xCC, 0x80, 0xCD, 0x03, 0x4E,
@@ -1812,8 +1786,8 @@ var decomps = [...]byte{
0x03, 0x4E, 0xCC, 0x87, 0xCD, 0x03, 0x4E, 0xCC,
0x8C, 0xCD, 0x03, 0x4E, 0xCC, 0xA3, 0xB9, 0x03,
0x4E, 0xCC, 0xA7, 0xA9, 0x03, 0x4E, 0xCC, 0xAD,
+ // Bytes 3080 - 30bf
0xB9, 0x03, 0x4E, 0xCC, 0xB1, 0xB9, 0x03, 0x4F,
- // Bytes 3140 - 317f
0xCC, 0x80, 0xCD, 0x03, 0x4F, 0xCC, 0x81, 0xCD,
0x03, 0x4F, 0xCC, 0x86, 0xCD, 0x03, 0x4F, 0xCC,
0x89, 0xCD, 0x03, 0x4F, 0xCC, 0x8B, 0xCD, 0x03,
@@ -1821,8 +1795,8 @@ var decomps = [...]byte{
0xCD, 0x03, 0x4F, 0xCC, 0x91, 0xCD, 0x03, 0x50,
0xCC, 0x81, 0xCD, 0x03, 0x50, 0xCC, 0x87, 0xCD,
0x03, 0x52, 0xCC, 0x81, 0xCD, 0x03, 0x52, 0xCC,
+ // Bytes 30c0 - 30ff
0x87, 0xCD, 0x03, 0x52, 0xCC, 0x8C, 0xCD, 0x03,
- // Bytes 3180 - 31bf
0x52, 0xCC, 0x8F, 0xCD, 0x03, 0x52, 0xCC, 0x91,
0xCD, 0x03, 0x52, 0xCC, 0xA7, 0xA9, 0x03, 0x52,
0xCC, 0xB1, 0xB9, 0x03, 0x53, 0xCC, 0x82, 0xCD,
@@ -1830,8 +1804,8 @@ var decomps = [...]byte{
0xA6, 0xB9, 0x03, 0x53, 0xCC, 0xA7, 0xA9, 0x03,
0x54, 0xCC, 0x87, 0xCD, 0x03, 0x54, 0xCC, 0x8C,
0xCD, 0x03, 0x54, 0xCC, 0xA3, 0xB9, 0x03, 0x54,
+ // Bytes 3100 - 313f
0xCC, 0xA6, 0xB9, 0x03, 0x54, 0xCC, 0xA7, 0xA9,
- // Bytes 31c0 - 31ff
0x03, 0x54, 0xCC, 0xAD, 0xB9, 0x03, 0x54, 0xCC,
0xB1, 0xB9, 0x03, 0x55, 0xCC, 0x80, 0xCD, 0x03,
0x55, 0xCC, 0x81, 0xCD, 0x03, 0x55, 0xCC, 0x82,
@@ -1839,8 +1813,8 @@ var decomps = [...]byte{
0xCC, 0x89, 0xCD, 0x03, 0x55, 0xCC, 0x8A, 0xCD,
0x03, 0x55, 0xCC, 0x8B, 0xCD, 0x03, 0x55, 0xCC,
0x8C, 0xCD, 0x03, 0x55, 0xCC, 0x8F, 0xCD, 0x03,
+ // Bytes 3140 - 317f
0x55, 0xCC, 0x91, 0xCD, 0x03, 0x55, 0xCC, 0xA3,
- // Bytes 3200 - 323f
0xB9, 0x03, 0x55, 0xCC, 0xA4, 0xB9, 0x03, 0x55,
0xCC, 0xA8, 0xA9, 0x03, 0x55, 0xCC, 0xAD, 0xB9,
0x03, 0x55, 0xCC, 0xB0, 0xB9, 0x03, 0x56, 0xCC,
@@ -1848,8 +1822,8 @@ var decomps = [...]byte{
0x57, 0xCC, 0x80, 0xCD, 0x03, 0x57, 0xCC, 0x81,
0xCD, 0x03, 0x57, 0xCC, 0x82, 0xCD, 0x03, 0x57,
0xCC, 0x87, 0xCD, 0x03, 0x57, 0xCC, 0x88, 0xCD,
+ // Bytes 3180 - 31bf
0x03, 0x57, 0xCC, 0xA3, 0xB9, 0x03, 0x58, 0xCC,
- // Bytes 3240 - 327f
0x87, 0xCD, 0x03, 0x58, 0xCC, 0x88, 0xCD, 0x03,
0x59, 0xCC, 0x80, 0xCD, 0x03, 0x59, 0xCC, 0x81,
0xCD, 0x03, 0x59, 0xCC, 0x82, 0xCD, 0x03, 0x59,
@@ -1857,8 +1831,8 @@ var decomps = [...]byte{
0x03, 0x59, 0xCC, 0x87, 0xCD, 0x03, 0x59, 0xCC,
0x88, 0xCD, 0x03, 0x59, 0xCC, 0x89, 0xCD, 0x03,
0x59, 0xCC, 0xA3, 0xB9, 0x03, 0x5A, 0xCC, 0x81,
+ // Bytes 31c0 - 31ff
0xCD, 0x03, 0x5A, 0xCC, 0x82, 0xCD, 0x03, 0x5A,
- // Bytes 3280 - 32bf
0xCC, 0x87, 0xCD, 0x03, 0x5A, 0xCC, 0x8C, 0xCD,
0x03, 0x5A, 0xCC, 0xA3, 0xB9, 0x03, 0x5A, 0xCC,
0xB1, 0xB9, 0x03, 0x61, 0xCC, 0x80, 0xCD, 0x03,
@@ -1866,8 +1840,8 @@ var decomps = [...]byte{
0xCD, 0x03, 0x61, 0xCC, 0x84, 0xCD, 0x03, 0x61,
0xCC, 0x89, 0xCD, 0x03, 0x61, 0xCC, 0x8C, 0xCD,
0x03, 0x61, 0xCC, 0x8F, 0xCD, 0x03, 0x61, 0xCC,
+ // Bytes 3200 - 323f
0x91, 0xCD, 0x03, 0x61, 0xCC, 0xA5, 0xB9, 0x03,
- // Bytes 32c0 - 32ff
0x61, 0xCC, 0xA8, 0xA9, 0x03, 0x62, 0xCC, 0x87,
0xCD, 0x03, 0x62, 0xCC, 0xA3, 0xB9, 0x03, 0x62,
0xCC, 0xB1, 0xB9, 0x03, 0x63, 0xCC, 0x81, 0xCD,
@@ -1875,8 +1849,8 @@ var decomps = [...]byte{
0x87, 0xCD, 0x03, 0x63, 0xCC, 0x8C, 0xCD, 0x03,
0x64, 0xCC, 0x87, 0xCD, 0x03, 0x64, 0xCC, 0x8C,
0xCD, 0x03, 0x64, 0xCC, 0xA3, 0xB9, 0x03, 0x64,
+ // Bytes 3240 - 327f
0xCC, 0xA7, 0xA9, 0x03, 0x64, 0xCC, 0xAD, 0xB9,
- // Bytes 3300 - 333f
0x03, 0x64, 0xCC, 0xB1, 0xB9, 0x03, 0x65, 0xCC,
0x80, 0xCD, 0x03, 0x65, 0xCC, 0x81, 0xCD, 0x03,
0x65, 0xCC, 0x83, 0xCD, 0x03, 0x65, 0xCC, 0x86,
@@ -1884,8 +1858,8 @@ var decomps = [...]byte{
0xCC, 0x88, 0xCD, 0x03, 0x65, 0xCC, 0x89, 0xCD,
0x03, 0x65, 0xCC, 0x8C, 0xCD, 0x03, 0x65, 0xCC,
0x8F, 0xCD, 0x03, 0x65, 0xCC, 0x91, 0xCD, 0x03,
+ // Bytes 3280 - 32bf
0x65, 0xCC, 0xA8, 0xA9, 0x03, 0x65, 0xCC, 0xAD,
- // Bytes 3340 - 337f
0xB9, 0x03, 0x65, 0xCC, 0xB0, 0xB9, 0x03, 0x66,
0xCC, 0x87, 0xCD, 0x03, 0x67, 0xCC, 0x81, 0xCD,
0x03, 0x67, 0xCC, 0x82, 0xCD, 0x03, 0x67, 0xCC,
@@ -1893,8 +1867,8 @@ var decomps = [...]byte{
0x67, 0xCC, 0x87, 0xCD, 0x03, 0x67, 0xCC, 0x8C,
0xCD, 0x03, 0x67, 0xCC, 0xA7, 0xA9, 0x03, 0x68,
0xCC, 0x82, 0xCD, 0x03, 0x68, 0xCC, 0x87, 0xCD,
+ // Bytes 32c0 - 32ff
0x03, 0x68, 0xCC, 0x88, 0xCD, 0x03, 0x68, 0xCC,
- // Bytes 3380 - 33bf
0x8C, 0xCD, 0x03, 0x68, 0xCC, 0xA3, 0xB9, 0x03,
0x68, 0xCC, 0xA7, 0xA9, 0x03, 0x68, 0xCC, 0xAE,
0xB9, 0x03, 0x68, 0xCC, 0xB1, 0xB9, 0x03, 0x69,
@@ -1902,8 +1876,8 @@ var decomps = [...]byte{
0x03, 0x69, 0xCC, 0x82, 0xCD, 0x03, 0x69, 0xCC,
0x83, 0xCD, 0x03, 0x69, 0xCC, 0x84, 0xCD, 0x03,
0x69, 0xCC, 0x86, 0xCD, 0x03, 0x69, 0xCC, 0x89,
+ // Bytes 3300 - 333f
0xCD, 0x03, 0x69, 0xCC, 0x8C, 0xCD, 0x03, 0x69,
- // Bytes 33c0 - 33ff
0xCC, 0x8F, 0xCD, 0x03, 0x69, 0xCC, 0x91, 0xCD,
0x03, 0x69, 0xCC, 0xA3, 0xB9, 0x03, 0x69, 0xCC,
0xA8, 0xA9, 0x03, 0x69, 0xCC, 0xB0, 0xB9, 0x03,
@@ -1911,8 +1885,8 @@ var decomps = [...]byte{
0xCD, 0x03, 0x6B, 0xCC, 0x81, 0xCD, 0x03, 0x6B,
0xCC, 0x8C, 0xCD, 0x03, 0x6B, 0xCC, 0xA3, 0xB9,
0x03, 0x6B, 0xCC, 0xA7, 0xA9, 0x03, 0x6B, 0xCC,
+ // Bytes 3340 - 337f
0xB1, 0xB9, 0x03, 0x6C, 0xCC, 0x81, 0xCD, 0x03,
- // Bytes 3400 - 343f
0x6C, 0xCC, 0x8C, 0xCD, 0x03, 0x6C, 0xCC, 0xA7,
0xA9, 0x03, 0x6C, 0xCC, 0xAD, 0xB9, 0x03, 0x6C,
0xCC, 0xB1, 0xB9, 0x03, 0x6D, 0xCC, 0x81, 0xCD,
@@ -1920,8 +1894,8 @@ var decomps = [...]byte{
0xA3, 0xB9, 0x03, 0x6E, 0xCC, 0x80, 0xCD, 0x03,
0x6E, 0xCC, 0x81, 0xCD, 0x03, 0x6E, 0xCC, 0x83,
0xCD, 0x03, 0x6E, 0xCC, 0x87, 0xCD, 0x03, 0x6E,
+ // Bytes 3380 - 33bf
0xCC, 0x8C, 0xCD, 0x03, 0x6E, 0xCC, 0xA3, 0xB9,
- // Bytes 3440 - 347f
0x03, 0x6E, 0xCC, 0xA7, 0xA9, 0x03, 0x6E, 0xCC,
0xAD, 0xB9, 0x03, 0x6E, 0xCC, 0xB1, 0xB9, 0x03,
0x6F, 0xCC, 0x80, 0xCD, 0x03, 0x6F, 0xCC, 0x81,
@@ -1929,8 +1903,8 @@ var decomps = [...]byte{
0xCC, 0x89, 0xCD, 0x03, 0x6F, 0xCC, 0x8B, 0xCD,
0x03, 0x6F, 0xCC, 0x8C, 0xCD, 0x03, 0x6F, 0xCC,
0x8F, 0xCD, 0x03, 0x6F, 0xCC, 0x91, 0xCD, 0x03,
+ // Bytes 33c0 - 33ff
0x70, 0xCC, 0x81, 0xCD, 0x03, 0x70, 0xCC, 0x87,
- // Bytes 3480 - 34bf
0xCD, 0x03, 0x72, 0xCC, 0x81, 0xCD, 0x03, 0x72,
0xCC, 0x87, 0xCD, 0x03, 0x72, 0xCC, 0x8C, 0xCD,
0x03, 0x72, 0xCC, 0x8F, 0xCD, 0x03, 0x72, 0xCC,
@@ -1938,8 +1912,8 @@ var decomps = [...]byte{
0x72, 0xCC, 0xB1, 0xB9, 0x03, 0x73, 0xCC, 0x82,
0xCD, 0x03, 0x73, 0xCC, 0x87, 0xCD, 0x03, 0x73,
0xCC, 0xA6, 0xB9, 0x03, 0x73, 0xCC, 0xA7, 0xA9,
+ // Bytes 3400 - 343f
0x03, 0x74, 0xCC, 0x87, 0xCD, 0x03, 0x74, 0xCC,
- // Bytes 34c0 - 34ff
0x88, 0xCD, 0x03, 0x74, 0xCC, 0x8C, 0xCD, 0x03,
0x74, 0xCC, 0xA3, 0xB9, 0x03, 0x74, 0xCC, 0xA6,
0xB9, 0x03, 0x74, 0xCC, 0xA7, 0xA9, 0x03, 0x74,
@@ -1947,8 +1921,8 @@ var decomps = [...]byte{
0x03, 0x75, 0xCC, 0x80, 0xCD, 0x03, 0x75, 0xCC,
0x81, 0xCD, 0x03, 0x75, 0xCC, 0x82, 0xCD, 0x03,
0x75, 0xCC, 0x86, 0xCD, 0x03, 0x75, 0xCC, 0x89,
+ // Bytes 3440 - 347f
0xCD, 0x03, 0x75, 0xCC, 0x8A, 0xCD, 0x03, 0x75,
- // Bytes 3500 - 353f
0xCC, 0x8B, 0xCD, 0x03, 0x75, 0xCC, 0x8C, 0xCD,
0x03, 0x75, 0xCC, 0x8F, 0xCD, 0x03, 0x75, 0xCC,
0x91, 0xCD, 0x03, 0x75, 0xCC, 0xA3, 0xB9, 0x03,
@@ -1956,8 +1930,8 @@ var decomps = [...]byte{
0xA9, 0x03, 0x75, 0xCC, 0xAD, 0xB9, 0x03, 0x75,
0xCC, 0xB0, 0xB9, 0x03, 0x76, 0xCC, 0x83, 0xCD,
0x03, 0x76, 0xCC, 0xA3, 0xB9, 0x03, 0x77, 0xCC,
+ // Bytes 3480 - 34bf
0x80, 0xCD, 0x03, 0x77, 0xCC, 0x81, 0xCD, 0x03,
- // Bytes 3540 - 357f
0x77, 0xCC, 0x82, 0xCD, 0x03, 0x77, 0xCC, 0x87,
0xCD, 0x03, 0x77, 0xCC, 0x88, 0xCD, 0x03, 0x77,
0xCC, 0x8A, 0xCD, 0x03, 0x77, 0xCC, 0xA3, 0xB9,
@@ -1965,8 +1939,8 @@ var decomps = [...]byte{
0x88, 0xCD, 0x03, 0x79, 0xCC, 0x80, 0xCD, 0x03,
0x79, 0xCC, 0x81, 0xCD, 0x03, 0x79, 0xCC, 0x82,
0xCD, 0x03, 0x79, 0xCC, 0x83, 0xCD, 0x03, 0x79,
+ // Bytes 34c0 - 34ff
0xCC, 0x84, 0xCD, 0x03, 0x79, 0xCC, 0x87, 0xCD,
- // Bytes 3580 - 35bf
0x03, 0x79, 0xCC, 0x88, 0xCD, 0x03, 0x79, 0xCC,
0x89, 0xCD, 0x03, 0x79, 0xCC, 0x8A, 0xCD, 0x03,
0x79, 0xCC, 0xA3, 0xB9, 0x03, 0x7A, 0xCC, 0x81,
@@ -1974,8 +1948,8 @@ var decomps = [...]byte{
0xCC, 0x87, 0xCD, 0x03, 0x7A, 0xCC, 0x8C, 0xCD,
0x03, 0x7A, 0xCC, 0xA3, 0xB9, 0x03, 0x7A, 0xCC,
0xB1, 0xB9, 0x04, 0xC2, 0xA8, 0xCC, 0x80, 0xCE,
+ // Bytes 3500 - 353f
0x04, 0xC2, 0xA8, 0xCC, 0x81, 0xCE, 0x04, 0xC2,
- // Bytes 35c0 - 35ff
0xA8, 0xCD, 0x82, 0xCE, 0x04, 0xC3, 0x86, 0xCC,
0x81, 0xCD, 0x04, 0xC3, 0x86, 0xCC, 0x84, 0xCD,
0x04, 0xC3, 0x98, 0xCC, 0x81, 0xCD, 0x04, 0xC3,
@@ -1983,8 +1957,8 @@ var decomps = [...]byte{
0x84, 0xCD, 0x04, 0xC3, 0xB8, 0xCC, 0x81, 0xCD,
0x04, 0xC5, 0xBF, 0xCC, 0x87, 0xCD, 0x04, 0xC6,
0xB7, 0xCC, 0x8C, 0xCD, 0x04, 0xCA, 0x92, 0xCC,
+ // Bytes 3540 - 357f
0x8C, 0xCD, 0x04, 0xCE, 0x91, 0xCC, 0x80, 0xCD,
- // Bytes 3600 - 363f
0x04, 0xCE, 0x91, 0xCC, 0x81, 0xCD, 0x04, 0xCE,
0x91, 0xCC, 0x84, 0xCD, 0x04, 0xCE, 0x91, 0xCC,
0x86, 0xCD, 0x04, 0xCE, 0x91, 0xCD, 0x85, 0xDD,
@@ -1992,8 +1966,8 @@ var decomps = [...]byte{
0x95, 0xCC, 0x81, 0xCD, 0x04, 0xCE, 0x97, 0xCC,
0x80, 0xCD, 0x04, 0xCE, 0x97, 0xCC, 0x81, 0xCD,
0x04, 0xCE, 0x97, 0xCD, 0x85, 0xDD, 0x04, 0xCE,
+ // Bytes 3580 - 35bf
0x99, 0xCC, 0x80, 0xCD, 0x04, 0xCE, 0x99, 0xCC,
- // Bytes 3640 - 367f
0x81, 0xCD, 0x04, 0xCE, 0x99, 0xCC, 0x84, 0xCD,
0x04, 0xCE, 0x99, 0xCC, 0x86, 0xCD, 0x04, 0xCE,
0x99, 0xCC, 0x88, 0xCD, 0x04, 0xCE, 0x9F, 0xCC,
@@ -2001,8 +1975,8 @@ var decomps = [...]byte{
0x04, 0xCE, 0xA1, 0xCC, 0x94, 0xCD, 0x04, 0xCE,
0xA5, 0xCC, 0x80, 0xCD, 0x04, 0xCE, 0xA5, 0xCC,
0x81, 0xCD, 0x04, 0xCE, 0xA5, 0xCC, 0x84, 0xCD,
+ // Bytes 35c0 - 35ff
0x04, 0xCE, 0xA5, 0xCC, 0x86, 0xCD, 0x04, 0xCE,
- // Bytes 3680 - 36bf
0xA5, 0xCC, 0x88, 0xCD, 0x04, 0xCE, 0xA9, 0xCC,
0x80, 0xCD, 0x04, 0xCE, 0xA9, 0xCC, 0x81, 0xCD,
0x04, 0xCE, 0xA9, 0xCD, 0x85, 0xDD, 0x04, 0xCE,
@@ -2010,8 +1984,8 @@ var decomps = [...]byte{
0x86, 0xCD, 0x04, 0xCE, 0xB1, 0xCD, 0x85, 0xDD,
0x04, 0xCE, 0xB5, 0xCC, 0x80, 0xCD, 0x04, 0xCE,
0xB5, 0xCC, 0x81, 0xCD, 0x04, 0xCE, 0xB7, 0xCD,
+ // Bytes 3600 - 363f
0x85, 0xDD, 0x04, 0xCE, 0xB9, 0xCC, 0x80, 0xCD,
- // Bytes 36c0 - 36ff
0x04, 0xCE, 0xB9, 0xCC, 0x81, 0xCD, 0x04, 0xCE,
0xB9, 0xCC, 0x84, 0xCD, 0x04, 0xCE, 0xB9, 0xCC,
0x86, 0xCD, 0x04, 0xCE, 0xB9, 0xCD, 0x82, 0xCD,
@@ -2019,8 +1993,8 @@ var decomps = [...]byte{
0xBF, 0xCC, 0x81, 0xCD, 0x04, 0xCF, 0x81, 0xCC,
0x93, 0xCD, 0x04, 0xCF, 0x81, 0xCC, 0x94, 0xCD,
0x04, 0xCF, 0x85, 0xCC, 0x80, 0xCD, 0x04, 0xCF,
+ // Bytes 3640 - 367f
0x85, 0xCC, 0x81, 0xCD, 0x04, 0xCF, 0x85, 0xCC,
- // Bytes 3700 - 373f
0x84, 0xCD, 0x04, 0xCF, 0x85, 0xCC, 0x86, 0xCD,
0x04, 0xCF, 0x85, 0xCD, 0x82, 0xCD, 0x04, 0xCF,
0x89, 0xCD, 0x85, 0xDD, 0x04, 0xCF, 0x92, 0xCC,
@@ -2028,8 +2002,8 @@ var decomps = [...]byte{
0x04, 0xD0, 0x86, 0xCC, 0x88, 0xCD, 0x04, 0xD0,
0x90, 0xCC, 0x86, 0xCD, 0x04, 0xD0, 0x90, 0xCC,
0x88, 0xCD, 0x04, 0xD0, 0x93, 0xCC, 0x81, 0xCD,
+ // Bytes 3680 - 36bf
0x04, 0xD0, 0x95, 0xCC, 0x80, 0xCD, 0x04, 0xD0,
- // Bytes 3740 - 377f
0x95, 0xCC, 0x86, 0xCD, 0x04, 0xD0, 0x95, 0xCC,
0x88, 0xCD, 0x04, 0xD0, 0x96, 0xCC, 0x86, 0xCD,
0x04, 0xD0, 0x96, 0xCC, 0x88, 0xCD, 0x04, 0xD0,
@@ -2037,8 +2011,8 @@ var decomps = [...]byte{
0x80, 0xCD, 0x04, 0xD0, 0x98, 0xCC, 0x84, 0xCD,
0x04, 0xD0, 0x98, 0xCC, 0x86, 0xCD, 0x04, 0xD0,
0x98, 0xCC, 0x88, 0xCD, 0x04, 0xD0, 0x9A, 0xCC,
+ // Bytes 36c0 - 36ff
0x81, 0xCD, 0x04, 0xD0, 0x9E, 0xCC, 0x88, 0xCD,
- // Bytes 3780 - 37bf
0x04, 0xD0, 0xA3, 0xCC, 0x84, 0xCD, 0x04, 0xD0,
0xA3, 0xCC, 0x86, 0xCD, 0x04, 0xD0, 0xA3, 0xCC,
0x88, 0xCD, 0x04, 0xD0, 0xA3, 0xCC, 0x8B, 0xCD,
@@ -2046,8 +2020,8 @@ var decomps = [...]byte{
0xAB, 0xCC, 0x88, 0xCD, 0x04, 0xD0, 0xAD, 0xCC,
0x88, 0xCD, 0x04, 0xD0, 0xB0, 0xCC, 0x86, 0xCD,
0x04, 0xD0, 0xB0, 0xCC, 0x88, 0xCD, 0x04, 0xD0,
+ // Bytes 3700 - 373f
0xB3, 0xCC, 0x81, 0xCD, 0x04, 0xD0, 0xB5, 0xCC,
- // Bytes 37c0 - 37ff
0x80, 0xCD, 0x04, 0xD0, 0xB5, 0xCC, 0x86, 0xCD,
0x04, 0xD0, 0xB5, 0xCC, 0x88, 0xCD, 0x04, 0xD0,
0xB6, 0xCC, 0x86, 0xCD, 0x04, 0xD0, 0xB6, 0xCC,
@@ -2055,8 +2029,8 @@ var decomps = [...]byte{
0x04, 0xD0, 0xB8, 0xCC, 0x80, 0xCD, 0x04, 0xD0,
0xB8, 0xCC, 0x84, 0xCD, 0x04, 0xD0, 0xB8, 0xCC,
0x86, 0xCD, 0x04, 0xD0, 0xB8, 0xCC, 0x88, 0xCD,
+ // Bytes 3740 - 377f
0x04, 0xD0, 0xBA, 0xCC, 0x81, 0xCD, 0x04, 0xD0,
- // Bytes 3800 - 383f
0xBE, 0xCC, 0x88, 0xCD, 0x04, 0xD1, 0x83, 0xCC,
0x84, 0xCD, 0x04, 0xD1, 0x83, 0xCC, 0x86, 0xCD,
0x04, 0xD1, 0x83, 0xCC, 0x88, 0xCD, 0x04, 0xD1,
@@ -2064,8 +2038,8 @@ var decomps = [...]byte{
0x88, 0xCD, 0x04, 0xD1, 0x8B, 0xCC, 0x88, 0xCD,
0x04, 0xD1, 0x8D, 0xCC, 0x88, 0xCD, 0x04, 0xD1,
0x96, 0xCC, 0x88, 0xCD, 0x04, 0xD1, 0xB4, 0xCC,
+ // Bytes 3780 - 37bf
0x8F, 0xCD, 0x04, 0xD1, 0xB5, 0xCC, 0x8F, 0xCD,
- // Bytes 3840 - 387f
0x04, 0xD3, 0x98, 0xCC, 0x88, 0xCD, 0x04, 0xD3,
0x99, 0xCC, 0x88, 0xCD, 0x04, 0xD3, 0xA8, 0xCC,
0x88, 0xCD, 0x04, 0xD3, 0xA9, 0xCC, 0x88, 0xCD,
@@ -2073,8 +2047,8 @@ var decomps = [...]byte{
0xA7, 0xD9, 0x94, 0xCD, 0x04, 0xD8, 0xA7, 0xD9,
0x95, 0xB9, 0x04, 0xD9, 0x88, 0xD9, 0x94, 0xCD,
0x04, 0xD9, 0x8A, 0xD9, 0x94, 0xCD, 0x04, 0xDB,
+ // Bytes 37c0 - 37ff
0x81, 0xD9, 0x94, 0xCD, 0x04, 0xDB, 0x92, 0xD9,
- // Bytes 3880 - 38bf
0x94, 0xCD, 0x04, 0xDB, 0x95, 0xD9, 0x94, 0xCD,
0x05, 0x41, 0xCC, 0x82, 0xCC, 0x80, 0xCE, 0x05,
0x41, 0xCC, 0x82, 0xCC, 0x81, 0xCE, 0x05, 0x41,
@@ -2082,8 +2056,8 @@ var decomps = [...]byte{
0x82, 0xCC, 0x89, 0xCE, 0x05, 0x41, 0xCC, 0x86,
0xCC, 0x80, 0xCE, 0x05, 0x41, 0xCC, 0x86, 0xCC,
0x81, 0xCE, 0x05, 0x41, 0xCC, 0x86, 0xCC, 0x83,
+ // Bytes 3800 - 383f
0xCE, 0x05, 0x41, 0xCC, 0x86, 0xCC, 0x89, 0xCE,
- // Bytes 38c0 - 38ff
0x05, 0x41, 0xCC, 0x87, 0xCC, 0x84, 0xCE, 0x05,
0x41, 0xCC, 0x88, 0xCC, 0x84, 0xCE, 0x05, 0x41,
0xCC, 0x8A, 0xCC, 0x81, 0xCE, 0x05, 0x41, 0xCC,
@@ -2091,8 +2065,8 @@ var decomps = [...]byte{
0xCC, 0x86, 0xCE, 0x05, 0x43, 0xCC, 0xA7, 0xCC,
0x81, 0xCE, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x80,
0xCE, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x81, 0xCE,
+ // Bytes 3840 - 387f
0x05, 0x45, 0xCC, 0x82, 0xCC, 0x83, 0xCE, 0x05,
- // Bytes 3900 - 393f
0x45, 0xCC, 0x82, 0xCC, 0x89, 0xCE, 0x05, 0x45,
0xCC, 0x84, 0xCC, 0x80, 0xCE, 0x05, 0x45, 0xCC,
0x84, 0xCC, 0x81, 0xCE, 0x05, 0x45, 0xCC, 0xA3,
@@ -2100,8 +2074,8 @@ var decomps = [...]byte{
0x86, 0xCE, 0x05, 0x49, 0xCC, 0x88, 0xCC, 0x81,
0xCE, 0x05, 0x4C, 0xCC, 0xA3, 0xCC, 0x84, 0xCE,
0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x80, 0xCE, 0x05,
+ // Bytes 3880 - 38bf
0x4F, 0xCC, 0x82, 0xCC, 0x81, 0xCE, 0x05, 0x4F,
- // Bytes 3940 - 397f
0xCC, 0x82, 0xCC, 0x83, 0xCE, 0x05, 0x4F, 0xCC,
0x82, 0xCC, 0x89, 0xCE, 0x05, 0x4F, 0xCC, 0x83,
0xCC, 0x81, 0xCE, 0x05, 0x4F, 0xCC, 0x83, 0xCC,
@@ -2109,8 +2083,8 @@ var decomps = [...]byte{
0xCE, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x80, 0xCE,
0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x81, 0xCE, 0x05,
0x4F, 0xCC, 0x87, 0xCC, 0x84, 0xCE, 0x05, 0x4F,
+ // Bytes 38c0 - 38ff
0xCC, 0x88, 0xCC, 0x84, 0xCE, 0x05, 0x4F, 0xCC,
- // Bytes 3980 - 39bf
0x9B, 0xCC, 0x80, 0xCE, 0x05, 0x4F, 0xCC, 0x9B,
0xCC, 0x81, 0xCE, 0x05, 0x4F, 0xCC, 0x9B, 0xCC,
0x83, 0xCE, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0x89,
@@ -2118,8 +2092,8 @@ var decomps = [...]byte{
0x05, 0x4F, 0xCC, 0xA3, 0xCC, 0x82, 0xCE, 0x05,
0x4F, 0xCC, 0xA8, 0xCC, 0x84, 0xCE, 0x05, 0x52,
0xCC, 0xA3, 0xCC, 0x84, 0xCE, 0x05, 0x53, 0xCC,
+ // Bytes 3900 - 393f
0x81, 0xCC, 0x87, 0xCE, 0x05, 0x53, 0xCC, 0x8C,
- // Bytes 39c0 - 39ff
0xCC, 0x87, 0xCE, 0x05, 0x53, 0xCC, 0xA3, 0xCC,
0x87, 0xCE, 0x05, 0x55, 0xCC, 0x83, 0xCC, 0x81,
0xCE, 0x05, 0x55, 0xCC, 0x84, 0xCC, 0x88, 0xCE,
@@ -2127,8 +2101,8 @@ var decomps = [...]byte{
0x55, 0xCC, 0x88, 0xCC, 0x81, 0xCE, 0x05, 0x55,
0xCC, 0x88, 0xCC, 0x84, 0xCE, 0x05, 0x55, 0xCC,
0x88, 0xCC, 0x8C, 0xCE, 0x05, 0x55, 0xCC, 0x9B,
+ // Bytes 3940 - 397f
0xCC, 0x80, 0xCE, 0x05, 0x55, 0xCC, 0x9B, 0xCC,
- // Bytes 3a00 - 3a3f
0x81, 0xCE, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0x83,
0xCE, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0x89, 0xCE,
0x05, 0x55, 0xCC, 0x9B, 0xCC, 0xA3, 0xBA, 0x05,
@@ -2136,8 +2110,8 @@ var decomps = [...]byte{
0xCC, 0x82, 0xCC, 0x81, 0xCE, 0x05, 0x61, 0xCC,
0x82, 0xCC, 0x83, 0xCE, 0x05, 0x61, 0xCC, 0x82,
0xCC, 0x89, 0xCE, 0x05, 0x61, 0xCC, 0x86, 0xCC,
+ // Bytes 3980 - 39bf
0x80, 0xCE, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x81,
- // Bytes 3a40 - 3a7f
0xCE, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x83, 0xCE,
0x05, 0x61, 0xCC, 0x86, 0xCC, 0x89, 0xCE, 0x05,
0x61, 0xCC, 0x87, 0xCC, 0x84, 0xCE, 0x05, 0x61,
@@ -2145,8 +2119,8 @@ var decomps = [...]byte{
0x8A, 0xCC, 0x81, 0xCE, 0x05, 0x61, 0xCC, 0xA3,
0xCC, 0x82, 0xCE, 0x05, 0x61, 0xCC, 0xA3, 0xCC,
0x86, 0xCE, 0x05, 0x63, 0xCC, 0xA7, 0xCC, 0x81,
+ // Bytes 39c0 - 39ff
0xCE, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x80, 0xCE,
- // Bytes 3a80 - 3abf
0x05, 0x65, 0xCC, 0x82, 0xCC, 0x81, 0xCE, 0x05,
0x65, 0xCC, 0x82, 0xCC, 0x83, 0xCE, 0x05, 0x65,
0xCC, 0x82, 0xCC, 0x89, 0xCE, 0x05, 0x65, 0xCC,
@@ -2154,8 +2128,8 @@ var decomps = [...]byte{
0xCC, 0x81, 0xCE, 0x05, 0x65, 0xCC, 0xA3, 0xCC,
0x82, 0xCE, 0x05, 0x65, 0xCC, 0xA7, 0xCC, 0x86,
0xCE, 0x05, 0x69, 0xCC, 0x88, 0xCC, 0x81, 0xCE,
+ // Bytes 3a00 - 3a3f
0x05, 0x6C, 0xCC, 0xA3, 0xCC, 0x84, 0xCE, 0x05,
- // Bytes 3ac0 - 3aff
0x6F, 0xCC, 0x82, 0xCC, 0x80, 0xCE, 0x05, 0x6F,
0xCC, 0x82, 0xCC, 0x81, 0xCE, 0x05, 0x6F, 0xCC,
0x82, 0xCC, 0x83, 0xCE, 0x05, 0x6F, 0xCC, 0x82,
@@ -2163,8 +2137,8 @@ var decomps = [...]byte{
0x81, 0xCE, 0x05, 0x6F, 0xCC, 0x83, 0xCC, 0x84,
0xCE, 0x05, 0x6F, 0xCC, 0x83, 0xCC, 0x88, 0xCE,
0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x80, 0xCE, 0x05,
+ // Bytes 3a40 - 3a7f
0x6F, 0xCC, 0x84, 0xCC, 0x81, 0xCE, 0x05, 0x6F,
- // Bytes 3b00 - 3b3f
0xCC, 0x87, 0xCC, 0x84, 0xCE, 0x05, 0x6F, 0xCC,
0x88, 0xCC, 0x84, 0xCE, 0x05, 0x6F, 0xCC, 0x9B,
0xCC, 0x80, 0xCE, 0x05, 0x6F, 0xCC, 0x9B, 0xCC,
@@ -2172,8 +2146,8 @@ var decomps = [...]byte{
0xCE, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0x89, 0xCE,
0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0xA3, 0xBA, 0x05,
0x6F, 0xCC, 0xA3, 0xCC, 0x82, 0xCE, 0x05, 0x6F,
+ // Bytes 3a80 - 3abf
0xCC, 0xA8, 0xCC, 0x84, 0xCE, 0x05, 0x72, 0xCC,
- // Bytes 3b40 - 3b7f
0xA3, 0xCC, 0x84, 0xCE, 0x05, 0x73, 0xCC, 0x81,
0xCC, 0x87, 0xCE, 0x05, 0x73, 0xCC, 0x8C, 0xCC,
0x87, 0xCE, 0x05, 0x73, 0xCC, 0xA3, 0xCC, 0x87,
@@ -2181,8 +2155,8 @@ var decomps = [...]byte{
0x05, 0x75, 0xCC, 0x84, 0xCC, 0x88, 0xCE, 0x05,
0x75, 0xCC, 0x88, 0xCC, 0x80, 0xCE, 0x05, 0x75,
0xCC, 0x88, 0xCC, 0x81, 0xCE, 0x05, 0x75, 0xCC,
+ // Bytes 3ac0 - 3aff
0x88, 0xCC, 0x84, 0xCE, 0x05, 0x75, 0xCC, 0x88,
- // Bytes 3b80 - 3bbf
0xCC, 0x8C, 0xCE, 0x05, 0x75, 0xCC, 0x9B, 0xCC,
0x80, 0xCE, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x81,
0xCE, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x83, 0xCE,
@@ -2190,8 +2164,8 @@ var decomps = [...]byte{
0x75, 0xCC, 0x9B, 0xCC, 0xA3, 0xBA, 0x05, 0xE1,
0xBE, 0xBF, 0xCC, 0x80, 0xCE, 0x05, 0xE1, 0xBE,
0xBF, 0xCC, 0x81, 0xCE, 0x05, 0xE1, 0xBE, 0xBF,
+ // Bytes 3b00 - 3b3f
0xCD, 0x82, 0xCE, 0x05, 0xE1, 0xBF, 0xBE, 0xCC,
- // Bytes 3bc0 - 3bff
0x80, 0xCE, 0x05, 0xE1, 0xBF, 0xBE, 0xCC, 0x81,
0xCE, 0x05, 0xE1, 0xBF, 0xBE, 0xCD, 0x82, 0xCE,
0x05, 0xE2, 0x86, 0x90, 0xCC, 0xB8, 0x05, 0x05,
@@ -2199,8 +2173,8 @@ var decomps = [...]byte{
0x86, 0x94, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87,
0x90, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, 0x92,
0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, 0x94, 0xCC,
+ // Bytes 3b40 - 3b7f
0xB8, 0x05, 0x05, 0xE2, 0x88, 0x83, 0xCC, 0xB8,
- // Bytes 3c00 - 3c3f
0x05, 0x05, 0xE2, 0x88, 0x88, 0xCC, 0xB8, 0x05,
0x05, 0xE2, 0x88, 0x8B, 0xCC, 0xB8, 0x05, 0x05,
0xE2, 0x88, 0xA3, 0xCC, 0xB8, 0x05, 0x05, 0xE2,
@@ -2208,8 +2182,8 @@ var decomps = [...]byte{
0xBC, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x83,
0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x85, 0xCC,
0xB8, 0x05, 0x05, 0xE2, 0x89, 0x88, 0xCC, 0xB8,
+ // Bytes 3b80 - 3bbf
0x05, 0x05, 0xE2, 0x89, 0x8D, 0xCC, 0xB8, 0x05,
- // Bytes 3c40 - 3c7f
0x05, 0xE2, 0x89, 0xA1, 0xCC, 0xB8, 0x05, 0x05,
0xE2, 0x89, 0xA4, 0xCC, 0xB8, 0x05, 0x05, 0xE2,
0x89, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89,
@@ -2217,8 +2191,8 @@ var decomps = [...]byte{
0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB6, 0xCC,
0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB7, 0xCC, 0xB8,
0x05, 0x05, 0xE2, 0x89, 0xBA, 0xCC, 0xB8, 0x05,
+ // Bytes 3bc0 - 3bff
0x05, 0xE2, 0x89, 0xBB, 0xCC, 0xB8, 0x05, 0x05,
- // Bytes 3c80 - 3cbf
0xE2, 0x89, 0xBC, 0xCC, 0xB8, 0x05, 0x05, 0xE2,
0x89, 0xBD, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A,
0x82, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x83,
@@ -2226,8 +2200,8 @@ var decomps = [...]byte{
0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x87, 0xCC, 0xB8,
0x05, 0x05, 0xE2, 0x8A, 0x91, 0xCC, 0xB8, 0x05,
0x05, 0xE2, 0x8A, 0x92, 0xCC, 0xB8, 0x05, 0x05,
+ // Bytes 3c00 - 3c3f
0xE2, 0x8A, 0xA2, 0xCC, 0xB8, 0x05, 0x05, 0xE2,
- // Bytes 3cc0 - 3cff
0x8A, 0xA8, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A,
0xA9, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xAB,
0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB2, 0xCC,
@@ -2235,8 +2209,8 @@ var decomps = [...]byte{
0x05, 0x05, 0xE2, 0x8A, 0xB4, 0xCC, 0xB8, 0x05,
0x05, 0xE2, 0x8A, 0xB5, 0xCC, 0xB8, 0x05, 0x06,
0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x85, 0xDE, 0x06,
+ // Bytes 3c40 - 3c7f
0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x85, 0xDE, 0x06,
- // Bytes 3d00 - 3d3f
0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x06,
0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x06,
0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x06,
@@ -2244,8 +2218,8 @@ var decomps = [...]byte{
0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x85, 0xDE, 0x06,
0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x85, 0xDE, 0x06,
0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x06,
+ // Bytes 3c80 - 3cbf
0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x06,
- // Bytes 3d40 - 3d7f
0xCE, 0x99, 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x06,
0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x06,
0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x06,
@@ -2253,8 +2227,8 @@ var decomps = [...]byte{
0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x06,
0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x06,
0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x06,
+ // Bytes 3cc0 - 3cff
0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x06,
- // Bytes 3d80 - 3dbf
0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x06,
0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x06,
0xCE, 0xA5, 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x06,
@@ -2262,8 +2236,8 @@ var decomps = [...]byte{
0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x85, 0xDE, 0x06,
0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x85, 0xDE, 0x06,
0xCE, 0xB1, 0xCC, 0x81, 0xCD, 0x85, 0xDE, 0x06,
+ // Bytes 3d00 - 3d3f
0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x85, 0xDE, 0x06,
- // Bytes 3dc0 - 3dff
0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x85, 0xDE, 0x06,
0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x85, 0xDE, 0x06,
0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x06,
@@ -2271,8 +2245,8 @@ var decomps = [...]byte{
0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x06,
0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x06,
0xCE, 0xB7, 0xCC, 0x80, 0xCD, 0x85, 0xDE, 0x06,
+ // Bytes 3d40 - 3d7f
0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x85, 0xDE, 0x06,
- // Bytes 3e00 - 3e3f
0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x85, 0xDE, 0x06,
0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x85, 0xDE, 0x06,
0xCE, 0xB7, 0xCD, 0x82, 0xCD, 0x85, 0xDE, 0x06,
@@ -2280,8 +2254,8 @@ var decomps = [...]byte{
0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x81, 0xCE, 0x06,
0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x82, 0xCE, 0x06,
0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x06,
+ // Bytes 3d80 - 3dbf
0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x06,
- // Bytes 3e40 - 3e7f
0xCE, 0xB9, 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x06,
0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x06,
0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x06,
@@ -2289,8 +2263,8 @@ var decomps = [...]byte{
0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x06,
0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x06,
0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x06,
+ // Bytes 3dc0 - 3dff
0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x06,
- // Bytes 3e80 - 3ebf
0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x80, 0xCE, 0x06,
0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xCE, 0x06,
0xCF, 0x85, 0xCC, 0x88, 0xCD, 0x82, 0xCE, 0x06,
@@ -2298,8 +2272,8 @@ var decomps = [...]byte{
0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x06,
0xCF, 0x85, 0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x06,
0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x06,
+ // Bytes 3e00 - 3e3f
0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x06,
- // Bytes 3ec0 - 3eff
0xCF, 0x85, 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x06,
0xCF, 0x89, 0xCC, 0x80, 0xCD, 0x85, 0xDE, 0x06,
0xCF, 0x89, 0xCC, 0x81, 0xCD, 0x85, 0xDE, 0x06,
@@ -2307,81 +2281,115 @@ var decomps = [...]byte{
0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x85, 0xDE, 0x06,
0xCF, 0x89, 0xCD, 0x82, 0xCD, 0x85, 0xDE, 0x06,
0xE0, 0xA4, 0xA8, 0xE0, 0xA4, 0xBC, 0x0D, 0x06,
+ // Bytes 3e40 - 3e7f
0xE0, 0xA4, 0xB0, 0xE0, 0xA4, 0xBC, 0x0D, 0x06,
- // Bytes 3f00 - 3f3f
0xE0, 0xA4, 0xB3, 0xE0, 0xA4, 0xBC, 0x0D, 0x06,
+ 0xE0, 0xA7, 0x87, 0xE0, 0xA6, 0xBE, 0x01, 0x06,
+ 0xE0, 0xA7, 0x87, 0xE0, 0xA7, 0x97, 0x01, 0x06,
+ 0xE0, 0xAD, 0x87, 0xE0, 0xAC, 0xBE, 0x01, 0x06,
+ 0xE0, 0xAD, 0x87, 0xE0, 0xAD, 0x96, 0x01, 0x06,
+ 0xE0, 0xAD, 0x87, 0xE0, 0xAD, 0x97, 0x01, 0x06,
+ 0xE0, 0xAE, 0x92, 0xE0, 0xAF, 0x97, 0x01, 0x06,
+ // Bytes 3e80 - 3ebf
+ 0xE0, 0xAF, 0x86, 0xE0, 0xAE, 0xBE, 0x01, 0x06,
+ 0xE0, 0xAF, 0x86, 0xE0, 0xAF, 0x97, 0x01, 0x06,
+ 0xE0, 0xAF, 0x87, 0xE0, 0xAE, 0xBE, 0x01, 0x06,
0xE0, 0xB1, 0x86, 0xE0, 0xB1, 0x96, 0x89, 0x06,
+ 0xE0, 0xB2, 0xBF, 0xE0, 0xB3, 0x95, 0x01, 0x06,
+ 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x95, 0x01, 0x06,
+ 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x96, 0x01, 0x06,
+ 0xE0, 0xB5, 0x86, 0xE0, 0xB4, 0xBE, 0x01, 0x06,
+ // Bytes 3ec0 - 3eff
+ 0xE0, 0xB5, 0x86, 0xE0, 0xB5, 0x97, 0x01, 0x06,
+ 0xE0, 0xB5, 0x87, 0xE0, 0xB4, 0xBE, 0x01, 0x06,
0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8A, 0x15, 0x06,
+ 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x9F, 0x01, 0x06,
+ 0xE1, 0x80, 0xA5, 0xE1, 0x80, 0xAE, 0x01, 0x06,
+ 0xE1, 0xAC, 0x85, 0xE1, 0xAC, 0xB5, 0x01, 0x06,
+ 0xE1, 0xAC, 0x87, 0xE1, 0xAC, 0xB5, 0x01, 0x06,
+ 0xE1, 0xAC, 0x89, 0xE1, 0xAC, 0xB5, 0x01, 0x06,
+ // Bytes 3f00 - 3f3f
+ 0xE1, 0xAC, 0x8B, 0xE1, 0xAC, 0xB5, 0x01, 0x06,
+ 0xE1, 0xAC, 0x8D, 0xE1, 0xAC, 0xB5, 0x01, 0x06,
+ 0xE1, 0xAC, 0x91, 0xE1, 0xAC, 0xB5, 0x01, 0x06,
+ 0xE1, 0xAC, 0xBA, 0xE1, 0xAC, 0xB5, 0x01, 0x06,
+ 0xE1, 0xAC, 0xBC, 0xE1, 0xAC, 0xB5, 0x01, 0x06,
+ 0xE1, 0xAC, 0xBE, 0xE1, 0xAC, 0xB5, 0x01, 0x06,
+ 0xE1, 0xAC, 0xBF, 0xE1, 0xAC, 0xB5, 0x01, 0x06,
+ 0xE1, 0xAD, 0x82, 0xE1, 0xAC, 0xB5, 0x01, 0x06,
+ // Bytes 3f40 - 3f7f
0xE3, 0x81, 0x86, 0xE3, 0x82, 0x99, 0x11, 0x06,
0xE3, 0x81, 0x8B, 0xE3, 0x82, 0x99, 0x11, 0x06,
0xE3, 0x81, 0x8D, 0xE3, 0x82, 0x99, 0x11, 0x06,
0xE3, 0x81, 0x8F, 0xE3, 0x82, 0x99, 0x11, 0x06,
0xE3, 0x81, 0x91, 0xE3, 0x82, 0x99, 0x11, 0x06,
- // Bytes 3f40 - 3f7f
0xE3, 0x81, 0x93, 0xE3, 0x82, 0x99, 0x11, 0x06,
0xE3, 0x81, 0x95, 0xE3, 0x82, 0x99, 0x11, 0x06,
0xE3, 0x81, 0x97, 0xE3, 0x82, 0x99, 0x11, 0x06,
+ // Bytes 3f80 - 3fbf
0xE3, 0x81, 0x99, 0xE3, 0x82, 0x99, 0x11, 0x06,
0xE3, 0x81, 0x9B, 0xE3, 0x82, 0x99, 0x11, 0x06,
0xE3, 0x81, 0x9D, 0xE3, 0x82, 0x99, 0x11, 0x06,
0xE3, 0x81, 0x9F, 0xE3, 0x82, 0x99, 0x11, 0x06,
0xE3, 0x81, 0xA1, 0xE3, 0x82, 0x99, 0x11, 0x06,
- // Bytes 3f80 - 3fbf
0xE3, 0x81, 0xA4, 0xE3, 0x82, 0x99, 0x11, 0x06,
0xE3, 0x81, 0xA6, 0xE3, 0x82, 0x99, 0x11, 0x06,
0xE3, 0x81, 0xA8, 0xE3, 0x82, 0x99, 0x11, 0x06,
+ // Bytes 3fc0 - 3fff
0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x99, 0x11, 0x06,
0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x9A, 0x11, 0x06,
0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x99, 0x11, 0x06,
0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x9A, 0x11, 0x06,
0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x99, 0x11, 0x06,
- // Bytes 3fc0 - 3fff
0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x9A, 0x11, 0x06,
0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x99, 0x11, 0x06,
0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x9A, 0x11, 0x06,
+ // Bytes 4000 - 403f
0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x99, 0x11, 0x06,
0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x9A, 0x11, 0x06,
0xE3, 0x82, 0x9D, 0xE3, 0x82, 0x99, 0x11, 0x06,
0xE3, 0x82, 0xA6, 0xE3, 0x82, 0x99, 0x11, 0x06,
0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x11, 0x06,
- // Bytes 4000 - 403f
0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, 0x11, 0x06,
0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x11, 0x06,
0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99, 0x11, 0x06,
+ // Bytes 4040 - 407f
0xE3, 0x82, 0xB3, 0xE3, 0x82, 0x99, 0x11, 0x06,
0xE3, 0x82, 0xB5, 0xE3, 0x82, 0x99, 0x11, 0x06,
0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x11, 0x06,
0xE3, 0x82, 0xB9, 0xE3, 0x82, 0x99, 0x11, 0x06,
0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0x11, 0x06,
- // Bytes 4040 - 407f
0xE3, 0x82, 0xBD, 0xE3, 0x82, 0x99, 0x11, 0x06,
0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0x11, 0x06,
0xE3, 0x83, 0x81, 0xE3, 0x82, 0x99, 0x11, 0x06,
+ // Bytes 4080 - 40bf
0xE3, 0x83, 0x84, 0xE3, 0x82, 0x99, 0x11, 0x06,
0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0x11, 0x06,
0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x11, 0x06,
0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, 0x11, 0x06,
0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0x11, 0x06,
- // Bytes 4080 - 40bf
0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99, 0x11, 0x06,
0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0x11, 0x06,
0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, 0x11, 0x06,
+ // Bytes 40c0 - 40ff
0xE3, 0x83, 0x95, 0xE3, 0x82, 0x9A, 0x11, 0x06,
0xE3, 0x83, 0x98, 0xE3, 0x82, 0x99, 0x11, 0x06,
0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0x11, 0x06,
0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x99, 0x11, 0x06,
0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0x11, 0x06,
- // Bytes 40c0 - 40ff
0xE3, 0x83, 0xAF, 0xE3, 0x82, 0x99, 0x11, 0x06,
0xE3, 0x83, 0xB0, 0xE3, 0x82, 0x99, 0x11, 0x06,
0xE3, 0x83, 0xB1, 0xE3, 0x82, 0x99, 0x11, 0x06,
+ // Bytes 4100 - 413f
0xE3, 0x83, 0xB2, 0xE3, 0x82, 0x99, 0x11, 0x06,
- 0xE3, 0x83, 0xBD, 0xE3, 0x82, 0x99, 0x11, 0x08,
+ 0xE3, 0x83, 0xBD, 0xE3, 0x82, 0x99, 0x11, 0x06,
+ 0xF0, 0x90, 0x97, 0x92, 0xCC, 0x87, 0xCD, 0x06,
+ 0xF0, 0x90, 0x97, 0x9A, 0xCC, 0x87, 0xCD, 0x08,
0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85,
0xDF, 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x81,
0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x91, 0xCC, 0x93,
- // Bytes 4100 - 413f
0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x91,
+ // Bytes 4140 - 417f
0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08,
0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85,
0xDF, 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x82,
@@ -2389,8 +2397,8 @@ var decomps = [...]byte{
0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x97,
0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08,
0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85,
- // Bytes 4140 - 417f
0xDF, 0x08, 0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x80,
+ // Bytes 4180 - 41bf
0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x97, 0xCC, 0x94,
0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0x97,
0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08,
@@ -2398,8 +2406,8 @@ var decomps = [...]byte{
0xDF, 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x81,
0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xA9, 0xCC, 0x93,
0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xA9,
- // Bytes 4180 - 41bf
0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08,
+ // Bytes 41c0 - 41ff
0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85,
0xDF, 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x82,
0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB1, 0xCC, 0x93,
@@ -2407,8 +2415,8 @@ var decomps = [...]byte{
0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08,
0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85,
0xDF, 0x08, 0xCE, 0xB1, 0xCC, 0x94, 0xCC, 0x80,
- // Bytes 41c0 - 41ff
0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB1, 0xCC, 0x94,
+ // Bytes 4200 - 423f
0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB1,
0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08,
0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85,
@@ -2416,8 +2424,8 @@ var decomps = [...]byte{
0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB7, 0xCC, 0x93,
0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08, 0xCE, 0xB7,
0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08,
- // Bytes 4200 - 423f
0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85,
+ // Bytes 4240 - 427f
0xDF, 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x82,
0xCD, 0x85, 0xDF, 0x08, 0xCF, 0x89, 0xCC, 0x93,
0xCC, 0x80, 0xCD, 0x85, 0xDF, 0x08, 0xCF, 0x89,
@@ -2425,311 +2433,378 @@ var decomps = [...]byte{
0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85,
0xDF, 0x08, 0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x80,
0xCD, 0x85, 0xDF, 0x08, 0xCF, 0x89, 0xCC, 0x94,
- // Bytes 4240 - 427f
0xCC, 0x81, 0xCD, 0x85, 0xDF, 0x08, 0xCF, 0x89,
+ // Bytes 4280 - 42bf
0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDF, 0x08,
0xF0, 0x91, 0x82, 0x99, 0xF0, 0x91, 0x82, 0xBA,
0x0D, 0x08, 0xF0, 0x91, 0x82, 0x9B, 0xF0, 0x91,
0x82, 0xBA, 0x0D, 0x08, 0xF0, 0x91, 0x82, 0xA5,
- 0xF0, 0x91, 0x82, 0xBA, 0x0D, 0x42, 0xC2, 0xB4,
+ 0xF0, 0x91, 0x82, 0xBA, 0x0D, 0x08, 0xF0, 0x91,
+ 0x84, 0xB1, 0xF0, 0x91, 0x84, 0xA7, 0x01, 0x08,
+ 0xF0, 0x91, 0x84, 0xB2, 0xF0, 0x91, 0x84, 0xA7,
+ 0x01, 0x08, 0xF0, 0x91, 0x8D, 0x87, 0xF0, 0x91,
+ // Bytes 42c0 - 42ff
+ 0x8C, 0xBE, 0x01, 0x08, 0xF0, 0x91, 0x8D, 0x87,
+ 0xF0, 0x91, 0x8D, 0x97, 0x01, 0x08, 0xF0, 0x91,
+ 0x8E, 0x82, 0xF0, 0x91, 0x8F, 0x89, 0x01, 0x08,
+ 0xF0, 0x91, 0x8E, 0x84, 0xF0, 0x91, 0x8E, 0xBB,
+ 0x01, 0x08, 0xF0, 0x91, 0x8E, 0x8B, 0xF0, 0x91,
+ 0x8F, 0x82, 0x01, 0x08, 0xF0, 0x91, 0x8E, 0x90,
+ 0xF0, 0x91, 0x8F, 0x89, 0x01, 0x08, 0xF0, 0x91,
+ 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xB0, 0x01, 0x08,
+ // Bytes 4300 - 433f
+ 0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xBA,
+ 0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91,
+ 0x92, 0xBD, 0x01, 0x08, 0xF0, 0x91, 0x96, 0xB8,
+ 0xF0, 0x91, 0x96, 0xAF, 0x01, 0x08, 0xF0, 0x91,
+ 0x96, 0xB9, 0xF0, 0x91, 0x96, 0xAF, 0x01, 0x08,
+ 0xF0, 0x91, 0xA4, 0xB5, 0xF0, 0x91, 0xA4, 0xB0,
+ 0x01, 0x09, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82,
+ 0xE0, 0xB3, 0x95, 0x02, 0x09, 0xE0, 0xB7, 0x99,
+ // Bytes 4340 - 437f
+ 0xE0, 0xB7, 0x8F, 0xE0, 0xB7, 0x8A, 0x16, 0x0C,
+ 0xF0, 0x96, 0xB5, 0xA3, 0xF0, 0x96, 0xB5, 0xA7,
+ 0xF0, 0x96, 0xB5, 0xA7, 0x02, 0x42, 0xC2, 0xB4,
0x01, 0x43, 0x20, 0xCC, 0x81, 0xCD, 0x43, 0x20,
0xCC, 0x83, 0xCD, 0x43, 0x20, 0xCC, 0x84, 0xCD,
- // Bytes 4280 - 42bf
0x43, 0x20, 0xCC, 0x85, 0xCD, 0x43, 0x20, 0xCC,
0x86, 0xCD, 0x43, 0x20, 0xCC, 0x87, 0xCD, 0x43,
0x20, 0xCC, 0x88, 0xCD, 0x43, 0x20, 0xCC, 0x8A,
+ // Bytes 4380 - 43bf
0xCD, 0x43, 0x20, 0xCC, 0x8B, 0xCD, 0x43, 0x20,
0xCC, 0x93, 0xCD, 0x43, 0x20, 0xCC, 0x94, 0xCD,
0x43, 0x20, 0xCC, 0xA7, 0xA9, 0x43, 0x20, 0xCC,
0xA8, 0xA9, 0x43, 0x20, 0xCC, 0xB3, 0xB9, 0x43,
0x20, 0xCD, 0x82, 0xCD, 0x43, 0x20, 0xCD, 0x85,
- // Bytes 42c0 - 42ff
0xDD, 0x43, 0x20, 0xD9, 0x8B, 0x5D, 0x43, 0x20,
0xD9, 0x8C, 0x61, 0x43, 0x20, 0xD9, 0x8D, 0x65,
0x43, 0x20, 0xD9, 0x8E, 0x69, 0x43, 0x20, 0xD9,
+ // Bytes 43c0 - 43ff
0x8F, 0x6D, 0x43, 0x20, 0xD9, 0x90, 0x71, 0x43,
0x20, 0xD9, 0x91, 0x75, 0x43, 0x20, 0xD9, 0x92,
0x79, 0x43, 0x41, 0xCC, 0x8A, 0xCD, 0x43, 0x73,
0xCC, 0x87, 0xCD, 0x44, 0x20, 0xE3, 0x82, 0x99,
0x11, 0x44, 0x20, 0xE3, 0x82, 0x9A, 0x11, 0x44,
- // Bytes 4300 - 433f
0xC2, 0xA8, 0xCC, 0x81, 0xCE, 0x44, 0xCE, 0x91,
0xCC, 0x81, 0xCD, 0x44, 0xCE, 0x95, 0xCC, 0x81,
0xCD, 0x44, 0xCE, 0x97, 0xCC, 0x81, 0xCD, 0x44,
+ // Bytes 4400 - 443f
0xCE, 0x99, 0xCC, 0x81, 0xCD, 0x44, 0xCE, 0x9F,
0xCC, 0x81, 0xCD, 0x44, 0xCE, 0xA5, 0xCC, 0x81,
0xCD, 0x44, 0xCE, 0xA5, 0xCC, 0x88, 0xCD, 0x44,
0xCE, 0xA9, 0xCC, 0x81, 0xCD, 0x44, 0xCE, 0xB1,
0xCC, 0x81, 0xCD, 0x44, 0xCE, 0xB5, 0xCC, 0x81,
- // Bytes 4340 - 437f
0xCD, 0x44, 0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x44,
0xCE, 0xB9, 0xCC, 0x81, 0xCD, 0x44, 0xCE, 0xBF,
0xCC, 0x81, 0xCD, 0x44, 0xCF, 0x85, 0xCC, 0x81,
+ // Bytes 4440 - 447f
0xCD, 0x44, 0xCF, 0x89, 0xCC, 0x81, 0xCD, 0x44,
0xD7, 0x90, 0xD6, 0xB7, 0x35, 0x44, 0xD7, 0x90,
0xD6, 0xB8, 0x39, 0x44, 0xD7, 0x90, 0xD6, 0xBC,
0x45, 0x44, 0xD7, 0x91, 0xD6, 0xBC, 0x45, 0x44,
0xD7, 0x91, 0xD6, 0xBF, 0x4D, 0x44, 0xD7, 0x92,
- // Bytes 4380 - 43bf
0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x93, 0xD6, 0xBC,
0x45, 0x44, 0xD7, 0x94, 0xD6, 0xBC, 0x45, 0x44,
0xD7, 0x95, 0xD6, 0xB9, 0x3D, 0x44, 0xD7, 0x95,
+ // Bytes 4480 - 44bf
0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x96, 0xD6, 0xBC,
0x45, 0x44, 0xD7, 0x98, 0xD6, 0xBC, 0x45, 0x44,
0xD7, 0x99, 0xD6, 0xB4, 0x29, 0x44, 0xD7, 0x99,
0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x9A, 0xD6, 0xBC,
0x45, 0x44, 0xD7, 0x9B, 0xD6, 0xBC, 0x45, 0x44,
- // Bytes 43c0 - 43ff
0xD7, 0x9B, 0xD6, 0xBF, 0x4D, 0x44, 0xD7, 0x9C,
0xD6, 0xBC, 0x45, 0x44, 0xD7, 0x9E, 0xD6, 0xBC,
0x45, 0x44, 0xD7, 0xA0, 0xD6, 0xBC, 0x45, 0x44,
+ // Bytes 44c0 - 44ff
0xD7, 0xA1, 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0xA3,
0xD6, 0xBC, 0x45, 0x44, 0xD7, 0xA4, 0xD6, 0xBC,
0x45, 0x44, 0xD7, 0xA4, 0xD6, 0xBF, 0x4D, 0x44,
0xD7, 0xA6, 0xD6, 0xBC, 0x45, 0x44, 0xD7, 0xA7,
0xD6, 0xBC, 0x45, 0x44, 0xD7, 0xA8, 0xD6, 0xBC,
- // Bytes 4400 - 443f
0x45, 0x44, 0xD7, 0xA9, 0xD6, 0xBC, 0x45, 0x44,
0xD7, 0xA9, 0xD7, 0x81, 0x51, 0x44, 0xD7, 0xA9,
0xD7, 0x82, 0x55, 0x44, 0xD7, 0xAA, 0xD6, 0xBC,
+ // Bytes 4500 - 453f
0x45, 0x44, 0xD7, 0xB2, 0xD6, 0xB7, 0x35, 0x44,
0xD8, 0xA7, 0xD9, 0x8B, 0x5D, 0x44, 0xD8, 0xA7,
0xD9, 0x93, 0xCD, 0x44, 0xD8, 0xA7, 0xD9, 0x94,
0xCD, 0x44, 0xD8, 0xA7, 0xD9, 0x95, 0xB9, 0x44,
0xD8, 0xB0, 0xD9, 0xB0, 0x7D, 0x44, 0xD8, 0xB1,
- // Bytes 4440 - 447f
0xD9, 0xB0, 0x7D, 0x44, 0xD9, 0x80, 0xD9, 0x8B,
0x5D, 0x44, 0xD9, 0x80, 0xD9, 0x8E, 0x69, 0x44,
0xD9, 0x80, 0xD9, 0x8F, 0x6D, 0x44, 0xD9, 0x80,
+ // Bytes 4540 - 457f
0xD9, 0x90, 0x71, 0x44, 0xD9, 0x80, 0xD9, 0x91,
0x75, 0x44, 0xD9, 0x80, 0xD9, 0x92, 0x79, 0x44,
0xD9, 0x87, 0xD9, 0xB0, 0x7D, 0x44, 0xD9, 0x88,
0xD9, 0x94, 0xCD, 0x44, 0xD9, 0x89, 0xD9, 0xB0,
0x7D, 0x44, 0xD9, 0x8A, 0xD9, 0x94, 0xCD, 0x44,
- // Bytes 4480 - 44bf
0xDB, 0x92, 0xD9, 0x94, 0xCD, 0x44, 0xDB, 0x95,
0xD9, 0x94, 0xCD, 0x45, 0x20, 0xCC, 0x88, 0xCC,
0x80, 0xCE, 0x45, 0x20, 0xCC, 0x88, 0xCC, 0x81,
+ // Bytes 4580 - 45bf
0xCE, 0x45, 0x20, 0xCC, 0x88, 0xCD, 0x82, 0xCE,
0x45, 0x20, 0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x45,
0x20, 0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x45, 0x20,
0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x45, 0x20, 0xCC,
0x94, 0xCC, 0x80, 0xCE, 0x45, 0x20, 0xCC, 0x94,
- // Bytes 44c0 - 44ff
0xCC, 0x81, 0xCE, 0x45, 0x20, 0xCC, 0x94, 0xCD,
0x82, 0xCE, 0x45, 0x20, 0xD9, 0x8C, 0xD9, 0x91,
0x76, 0x45, 0x20, 0xD9, 0x8D, 0xD9, 0x91, 0x76,
+ // Bytes 45c0 - 45ff
0x45, 0x20, 0xD9, 0x8E, 0xD9, 0x91, 0x76, 0x45,
0x20, 0xD9, 0x8F, 0xD9, 0x91, 0x76, 0x45, 0x20,
0xD9, 0x90, 0xD9, 0x91, 0x76, 0x45, 0x20, 0xD9,
0x91, 0xD9, 0xB0, 0x7E, 0x45, 0xE2, 0xAB, 0x9D,
0xCC, 0xB8, 0x05, 0x46, 0xCE, 0xB9, 0xCC, 0x88,
- // Bytes 4500 - 453f
0xCC, 0x81, 0xCE, 0x46, 0xCF, 0x85, 0xCC, 0x88,
0xCC, 0x81, 0xCE, 0x46, 0xD7, 0xA9, 0xD6, 0xBC,
0xD7, 0x81, 0x52, 0x46, 0xD7, 0xA9, 0xD6, 0xBC,
+ // Bytes 4600 - 463f
0xD7, 0x82, 0x56, 0x46, 0xD9, 0x80, 0xD9, 0x8E,
0xD9, 0x91, 0x76, 0x46, 0xD9, 0x80, 0xD9, 0x8F,
0xD9, 0x91, 0x76, 0x46, 0xD9, 0x80, 0xD9, 0x90,
0xD9, 0x91, 0x76, 0x46, 0xE0, 0xA4, 0x95, 0xE0,
0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4, 0x96, 0xE0,
- // Bytes 4540 - 457f
0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4, 0x97, 0xE0,
0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4, 0x9C, 0xE0,
0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4, 0xA1, 0xE0,
+ // Bytes 4640 - 467f
0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4, 0xA2, 0xE0,
0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4, 0xAB, 0xE0,
0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA4, 0xAF, 0xE0,
0xA4, 0xBC, 0x0D, 0x46, 0xE0, 0xA6, 0xA1, 0xE0,
0xA6, 0xBC, 0x0D, 0x46, 0xE0, 0xA6, 0xA2, 0xE0,
- // Bytes 4580 - 45bf
0xA6, 0xBC, 0x0D, 0x46, 0xE0, 0xA6, 0xAF, 0xE0,
0xA6, 0xBC, 0x0D, 0x46, 0xE0, 0xA8, 0x96, 0xE0,
0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xA8, 0x97, 0xE0,
+ // Bytes 4680 - 46bf
0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xA8, 0x9C, 0xE0,
0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xA8, 0xAB, 0xE0,
0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xA8, 0xB2, 0xE0,
0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xA8, 0xB8, 0xE0,
0xA8, 0xBC, 0x0D, 0x46, 0xE0, 0xAC, 0xA1, 0xE0,
- // Bytes 45c0 - 45ff
0xAC, 0xBC, 0x0D, 0x46, 0xE0, 0xAC, 0xA2, 0xE0,
0xAC, 0xBC, 0x0D, 0x46, 0xE0, 0xBE, 0xB2, 0xE0,
0xBE, 0x80, 0xA1, 0x46, 0xE0, 0xBE, 0xB3, 0xE0,
- 0xBE, 0x80, 0xA1, 0x46, 0xE3, 0x83, 0x86, 0xE3,
+ // Bytes 46c0 - 46ff
+ 0xBE, 0x80, 0xA1, 0x46, 0xE1, 0x84, 0x80, 0xE1,
+ 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x82, 0xE1,
+ 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x83, 0xE1,
+ 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x85, 0xE1,
+ 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x86, 0xE1,
+ 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x87, 0xE1,
+ 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x89, 0xE1,
+ 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x8B, 0xE1,
+ // Bytes 4700 - 473f
+ 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x8B, 0xE1,
+ 0x85, 0xAE, 0x01, 0x46, 0xE1, 0x84, 0x8C, 0xE1,
+ 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x8E, 0xE1,
+ 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x8F, 0xE1,
+ 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x90, 0xE1,
+ 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x91, 0xE1,
+ 0x85, 0xA1, 0x01, 0x46, 0xE1, 0x84, 0x92, 0xE1,
+ 0x85, 0xA1, 0x01, 0x46, 0xE3, 0x83, 0x86, 0xE3,
+ // Bytes 4740 - 477f
0x82, 0x99, 0x11, 0x48, 0xF0, 0x9D, 0x85, 0x97,
0xF0, 0x9D, 0x85, 0xA5, 0xB1, 0x48, 0xF0, 0x9D,
0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xB1, 0x48,
0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5,
- // Bytes 4600 - 463f
0xB1, 0x48, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, 0x9D,
0x85, 0xA5, 0xB1, 0x49, 0xE0, 0xBE, 0xB2, 0xE0,
0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0xA2, 0x49, 0xE0,
0xBE, 0xB3, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80,
+ // Bytes 4780 - 47bf
0xA2, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D,
0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xB2, 0x4C,
0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5,
0xF0, 0x9D, 0x85, 0xAF, 0xB2, 0x4C, 0xF0, 0x9D,
- // Bytes 4640 - 467f
0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D,
0x85, 0xB0, 0xB2, 0x4C, 0xF0, 0x9D, 0x85, 0x98,
0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB1,
0xB2, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D,
+ // Bytes 47c0 - 47ff
0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB2, 0xB2, 0x4C,
0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5,
0xF0, 0x9D, 0x85, 0xAE, 0xB2, 0x4C, 0xF0, 0x9D,
0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D,
- // Bytes 4680 - 46bf
0x85, 0xAF, 0xB2, 0x4C, 0xF0, 0x9D, 0x86, 0xBA,
0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE,
0xB2, 0x4C, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, 0x9D,
0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xB2, 0x83,
+ // Bytes 4800 - 483f
0x41, 0xCC, 0x82, 0xCD, 0x83, 0x41, 0xCC, 0x86,
0xCD, 0x83, 0x41, 0xCC, 0x87, 0xCD, 0x83, 0x41,
0xCC, 0x88, 0xCD, 0x83, 0x41, 0xCC, 0x8A, 0xCD,
0x83, 0x41, 0xCC, 0xA3, 0xB9, 0x83, 0x43, 0xCC,
- // Bytes 46c0 - 46ff
0xA7, 0xA9, 0x83, 0x45, 0xCC, 0x82, 0xCD, 0x83,
0x45, 0xCC, 0x84, 0xCD, 0x83, 0x45, 0xCC, 0xA3,
0xB9, 0x83, 0x45, 0xCC, 0xA7, 0xA9, 0x83, 0x49,
0xCC, 0x88, 0xCD, 0x83, 0x4C, 0xCC, 0xA3, 0xB9,
+ // Bytes 4840 - 487f
0x83, 0x4F, 0xCC, 0x82, 0xCD, 0x83, 0x4F, 0xCC,
0x83, 0xCD, 0x83, 0x4F, 0xCC, 0x84, 0xCD, 0x83,
0x4F, 0xCC, 0x87, 0xCD, 0x83, 0x4F, 0xCC, 0x88,
0xCD, 0x83, 0x4F, 0xCC, 0x9B, 0xB1, 0x83, 0x4F,
- // Bytes 4700 - 473f
0xCC, 0xA3, 0xB9, 0x83, 0x4F, 0xCC, 0xA8, 0xA9,
0x83, 0x52, 0xCC, 0xA3, 0xB9, 0x83, 0x53, 0xCC,
0x81, 0xCD, 0x83, 0x53, 0xCC, 0x8C, 0xCD, 0x83,
0x53, 0xCC, 0xA3, 0xB9, 0x83, 0x55, 0xCC, 0x83,
+ // Bytes 4880 - 48bf
0xCD, 0x83, 0x55, 0xCC, 0x84, 0xCD, 0x83, 0x55,
0xCC, 0x88, 0xCD, 0x83, 0x55, 0xCC, 0x9B, 0xB1,
0x83, 0x61, 0xCC, 0x82, 0xCD, 0x83, 0x61, 0xCC,
0x86, 0xCD, 0x83, 0x61, 0xCC, 0x87, 0xCD, 0x83,
- // Bytes 4740 - 477f
0x61, 0xCC, 0x88, 0xCD, 0x83, 0x61, 0xCC, 0x8A,
0xCD, 0x83, 0x61, 0xCC, 0xA3, 0xB9, 0x83, 0x63,
0xCC, 0xA7, 0xA9, 0x83, 0x65, 0xCC, 0x82, 0xCD,
0x83, 0x65, 0xCC, 0x84, 0xCD, 0x83, 0x65, 0xCC,
+ // Bytes 48c0 - 48ff
0xA3, 0xB9, 0x83, 0x65, 0xCC, 0xA7, 0xA9, 0x83,
0x69, 0xCC, 0x88, 0xCD, 0x83, 0x6C, 0xCC, 0xA3,
0xB9, 0x83, 0x6F, 0xCC, 0x82, 0xCD, 0x83, 0x6F,
0xCC, 0x83, 0xCD, 0x83, 0x6F, 0xCC, 0x84, 0xCD,
- // Bytes 4780 - 47bf
0x83, 0x6F, 0xCC, 0x87, 0xCD, 0x83, 0x6F, 0xCC,
0x88, 0xCD, 0x83, 0x6F, 0xCC, 0x9B, 0xB1, 0x83,
0x6F, 0xCC, 0xA3, 0xB9, 0x83, 0x6F, 0xCC, 0xA8,
0xA9, 0x83, 0x72, 0xCC, 0xA3, 0xB9, 0x83, 0x73,
+ // Bytes 4900 - 493f
0xCC, 0x81, 0xCD, 0x83, 0x73, 0xCC, 0x8C, 0xCD,
0x83, 0x73, 0xCC, 0xA3, 0xB9, 0x83, 0x75, 0xCC,
0x83, 0xCD, 0x83, 0x75, 0xCC, 0x84, 0xCD, 0x83,
0x75, 0xCC, 0x88, 0xCD, 0x83, 0x75, 0xCC, 0x9B,
- // Bytes 47c0 - 47ff
0xB1, 0x84, 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x84,
0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x84, 0xCE, 0x95,
0xCC, 0x93, 0xCD, 0x84, 0xCE, 0x95, 0xCC, 0x94,
0xCD, 0x84, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x84,
+ // Bytes 4940 - 497f
0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x84, 0xCE, 0x99,
0xCC, 0x93, 0xCD, 0x84, 0xCE, 0x99, 0xCC, 0x94,
0xCD, 0x84, 0xCE, 0x9F, 0xCC, 0x93, 0xCD, 0x84,
0xCE, 0x9F, 0xCC, 0x94, 0xCD, 0x84, 0xCE, 0xA5,
- // Bytes 4800 - 483f
0xCC, 0x94, 0xCD, 0x84, 0xCE, 0xA9, 0xCC, 0x93,
0xCD, 0x84, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x84,
0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x84, 0xCE, 0xB1,
0xCC, 0x81, 0xCD, 0x84, 0xCE, 0xB1, 0xCC, 0x93,
+ // Bytes 4980 - 49bf
0xCD, 0x84, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x84,
0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x84, 0xCE, 0xB5,
0xCC, 0x93, 0xCD, 0x84, 0xCE, 0xB5, 0xCC, 0x94,
0xCD, 0x84, 0xCE, 0xB7, 0xCC, 0x80, 0xCD, 0x84,
- // Bytes 4840 - 487f
0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x84, 0xCE, 0xB7,
0xCC, 0x93, 0xCD, 0x84, 0xCE, 0xB7, 0xCC, 0x94,
0xCD, 0x84, 0xCE, 0xB7, 0xCD, 0x82, 0xCD, 0x84,
0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x84, 0xCE, 0xB9,
+ // Bytes 49c0 - 49ff
0xCC, 0x93, 0xCD, 0x84, 0xCE, 0xB9, 0xCC, 0x94,
0xCD, 0x84, 0xCE, 0xBF, 0xCC, 0x93, 0xCD, 0x84,
0xCE, 0xBF, 0xCC, 0x94, 0xCD, 0x84, 0xCF, 0x85,
0xCC, 0x88, 0xCD, 0x84, 0xCF, 0x85, 0xCC, 0x93,
- // Bytes 4880 - 48bf
0xCD, 0x84, 0xCF, 0x85, 0xCC, 0x94, 0xCD, 0x84,
0xCF, 0x89, 0xCC, 0x80, 0xCD, 0x84, 0xCF, 0x89,
0xCC, 0x81, 0xCD, 0x84, 0xCF, 0x89, 0xCC, 0x93,
0xCD, 0x84, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x84,
+ // Bytes 4a00 - 4a3f
0xCF, 0x89, 0xCD, 0x82, 0xCD, 0x86, 0xCE, 0x91,
0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0x91,
0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0x91,
0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86, 0xCE, 0x91,
- // Bytes 48c0 - 48ff
0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0x91,
0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0x91,
0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x86, 0xCE, 0x97,
0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0x97,
+ // Bytes 4a40 - 4a7f
0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0x97,
0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86, 0xCE, 0x97,
0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0x97,
0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0x97,
- // Bytes 4900 - 493f
0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x86, 0xCE, 0xA9,
0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0xA9,
0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0xA9,
0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86, 0xCE, 0xA9,
+ // Bytes 4a80 - 4abf
0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0xA9,
0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0xA9,
0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x86, 0xCE, 0xB1,
0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0xB1,
- // Bytes 4940 - 497f
0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0xB1,
0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86, 0xCE, 0xB1,
0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0xB1,
0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0xB1,
+ // Bytes 4ac0 - 4aff
0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x86, 0xCE, 0xB7,
0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0xB7,
0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0xB7,
0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86, 0xCE, 0xB7,
- // Bytes 4980 - 49bf
0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86, 0xCE, 0xB7,
0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86, 0xCE, 0xB7,
0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x86, 0xCF, 0x89,
0xCC, 0x93, 0xCC, 0x80, 0xCE, 0x86, 0xCF, 0x89,
+ // Bytes 4b00 - 4b3f
0xCC, 0x93, 0xCC, 0x81, 0xCE, 0x86, 0xCF, 0x89,
0xCC, 0x93, 0xCD, 0x82, 0xCE, 0x86, 0xCF, 0x89,
0xCC, 0x94, 0xCC, 0x80, 0xCE, 0x86, 0xCF, 0x89,
0xCC, 0x94, 0xCC, 0x81, 0xCE, 0x86, 0xCF, 0x89,
- // Bytes 49c0 - 49ff
- 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x42, 0xCC, 0x80,
- 0xCD, 0x33, 0x42, 0xCC, 0x81, 0xCD, 0x33, 0x42,
- 0xCC, 0x93, 0xCD, 0x33, 0x43, 0xE1, 0x85, 0xA1,
- 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA2, 0x01, 0x00,
- 0x43, 0xE1, 0x85, 0xA3, 0x01, 0x00, 0x43, 0xE1,
- 0x85, 0xA4, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA5,
- 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA6, 0x01, 0x00,
- 0x43, 0xE1, 0x85, 0xA7, 0x01, 0x00, 0x43, 0xE1,
- // Bytes 4a00 - 4a3f
- 0x85, 0xA8, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA9,
- 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAA, 0x01, 0x00,
- 0x43, 0xE1, 0x85, 0xAB, 0x01, 0x00, 0x43, 0xE1,
- 0x85, 0xAC, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAD,
- 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAE, 0x01, 0x00,
- 0x43, 0xE1, 0x85, 0xAF, 0x01, 0x00, 0x43, 0xE1,
- 0x85, 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB1,
- 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB2, 0x01, 0x00,
- // Bytes 4a40 - 4a7f
- 0x43, 0xE1, 0x85, 0xB3, 0x01, 0x00, 0x43, 0xE1,
- 0x85, 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB5,
- 0x01, 0x00, 0x43, 0xE1, 0x86, 0xAA, 0x01, 0x00,
- 0x43, 0xE1, 0x86, 0xAC, 0x01, 0x00, 0x43, 0xE1,
- 0x86, 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB0,
- 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB1, 0x01, 0x00,
- 0x43, 0xE1, 0x86, 0xB2, 0x01, 0x00, 0x43, 0xE1,
- 0x86, 0xB3, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB4,
- // Bytes 4a80 - 4abf
- 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB5, 0x01, 0x00,
- 0x44, 0xCC, 0x88, 0xCC, 0x81, 0xCE, 0x33, 0x43,
- 0xE3, 0x82, 0x99, 0x11, 0x04, 0x43, 0xE3, 0x82,
- 0x9A, 0x11, 0x04, 0x46, 0xE0, 0xBD, 0xB1, 0xE0,
- 0xBD, 0xB2, 0xA2, 0x27, 0x46, 0xE0, 0xBD, 0xB1,
- 0xE0, 0xBD, 0xB4, 0xA6, 0x27, 0x46, 0xE0, 0xBD,
- 0xB1, 0xE0, 0xBE, 0x80, 0xA2, 0x27, 0x00, 0x01,
+ 0xCC, 0x94, 0xCD, 0x82, 0xCE, 0x86, 0xE0, 0xB3,
+ 0x86, 0xE0, 0xB3, 0x82, 0x01, 0x86, 0xE0, 0xB7,
+ 0x99, 0xE0, 0xB7, 0x8F, 0x01, 0x88, 0xF0, 0x96,
+ 0xB5, 0xA3, 0xF0, 0x96, 0xB5, 0xA7, 0x01, 0x42,
+ // Bytes 4b40 - 4b7f
+ 0xCC, 0x80, 0xCD, 0x33, 0x42, 0xCC, 0x81, 0xCD,
+ 0x33, 0x42, 0xCC, 0x93, 0xCD, 0x33, 0x43, 0xE1,
+ 0x85, 0xA1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA2,
+ 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA3, 0x01, 0x00,
+ 0x43, 0xE1, 0x85, 0xA4, 0x01, 0x00, 0x43, 0xE1,
+ 0x85, 0xA5, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA6,
+ 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA7, 0x01, 0x00,
+ 0x43, 0xE1, 0x85, 0xA8, 0x01, 0x00, 0x43, 0xE1,
+ // Bytes 4b80 - 4bbf
+ 0x85, 0xA9, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAA,
+ 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAB, 0x01, 0x00,
+ 0x43, 0xE1, 0x85, 0xAC, 0x01, 0x00, 0x43, 0xE1,
+ 0x85, 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAE,
+ 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAF, 0x01, 0x00,
+ 0x43, 0xE1, 0x85, 0xB0, 0x01, 0x00, 0x43, 0xE1,
+ 0x85, 0xB1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB2,
+ 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB3, 0x01, 0x00,
+ // Bytes 4bc0 - 4bff
+ 0x43, 0xE1, 0x85, 0xB4, 0x01, 0x00, 0x43, 0xE1,
+ 0x85, 0xB5, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xAA,
+ 0x01, 0x00, 0x43, 0xE1, 0x86, 0xAC, 0x01, 0x00,
+ 0x43, 0xE1, 0x86, 0xAD, 0x01, 0x00, 0x43, 0xE1,
+ 0x86, 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB1,
+ 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB2, 0x01, 0x00,
+ 0x43, 0xE1, 0x86, 0xB3, 0x01, 0x00, 0x43, 0xE1,
+ 0x86, 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB5,
+ // Bytes 4c00 - 4c3f
+ 0x01, 0x00, 0x44, 0xCC, 0x88, 0xCC, 0x81, 0xCE,
+ 0x33, 0x68, 0xF0, 0x91, 0x8F, 0x82, 0xF0, 0x91,
+ 0x8E, 0xB8, 0x02, 0x00, 0x68, 0xF0, 0x91, 0x8F,
+ 0x82, 0xF0, 0x91, 0x8F, 0x82, 0x02, 0x00, 0x68,
+ 0xF0, 0x91, 0x8F, 0x82, 0xF0, 0x91, 0x8F, 0x89,
+ 0x02, 0x00, 0x68, 0xF0, 0x96, 0x84, 0x9E, 0xF0,
+ 0x96, 0x84, 0x9F, 0x02, 0x00, 0x68, 0xF0, 0x96,
+ 0x84, 0x9E, 0xF0, 0x96, 0x84, 0xA0, 0x02, 0x00,
+ // Bytes 4c40 - 4c7f
+ 0x68, 0xF0, 0x96, 0x84, 0xA9, 0xF0, 0x96, 0x84,
+ 0x9F, 0x02, 0x00, 0x68, 0xF0, 0x96, 0xB5, 0xA7,
+ 0xF0, 0x96, 0xB5, 0xA7, 0x02, 0x00, 0x6C, 0xF0,
+ 0x96, 0x84, 0x9E, 0xF0, 0x96, 0x84, 0x9E, 0xF0,
+ 0x96, 0x84, 0x9F, 0x03, 0x00, 0x6C, 0xF0, 0x96,
+ 0x84, 0x9E, 0xF0, 0x96, 0x84, 0x9E, 0xF0, 0x96,
+ 0x84, 0xA0, 0x03, 0x00, 0x6C, 0xF0, 0x96, 0x84,
+ 0x9E, 0xF0, 0x96, 0x84, 0xA9, 0xF0, 0x96, 0x84,
+ // Bytes 4c80 - 4cbf
+ 0x9F, 0x03, 0x00, 0xE8, 0xF0, 0x96, 0x84, 0x9E,
+ 0xF0, 0x96, 0x84, 0x9E, 0x02, 0x00, 0xE8, 0xF0,
+ 0x96, 0x84, 0x9E, 0xF0, 0x96, 0x84, 0xA9, 0x02,
+ 0x00, 0x43, 0xE3, 0x82, 0x99, 0x11, 0x04, 0x43,
+ 0xE3, 0x82, 0x9A, 0x11, 0x04, 0x46, 0xE0, 0xBD,
+ 0xB1, 0xE0, 0xBD, 0xB2, 0xA2, 0x27, 0x46, 0xE0,
+ 0xBD, 0xB1, 0xE0, 0xBD, 0xB4, 0xA6, 0x27, 0x46,
+ 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0xA2, 0x27,
+ // Bytes 4cc0 - 4cff
+ 0x00, 0x01,
}
// lookup returns the trie value for the first UTF-8 encoding in s and
@@ -2902,7 +2977,7 @@ func (t *nfcTrie) lookupStringUnsafe(s string) uint16 {
return 0
}
-// nfcTrie. Total size: 10680 bytes (10.43 KiB). Checksum: a555db76d4becdd2.
+// nfcTrie. Total size: 11042 bytes (10.78 KiB). Checksum: cd75f956cd2316a9.
type nfcTrie struct{}
func newNfcTrie(i int) *nfcTrie {
@@ -2938,63 +3013,63 @@ var nfcValues = [3072]uint16{
0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000,
// Block 0x2, offset 0x80
// Block 0x3, offset 0xc0
- 0xc0: 0x2f86, 0xc1: 0x2f8b, 0xc2: 0x469f, 0xc3: 0x2f90, 0xc4: 0x46ae, 0xc5: 0x46b3,
- 0xc6: 0xa000, 0xc7: 0x46bd, 0xc8: 0x2ff9, 0xc9: 0x2ffe, 0xca: 0x46c2, 0xcb: 0x3012,
- 0xcc: 0x3085, 0xcd: 0x308a, 0xce: 0x308f, 0xcf: 0x46d6, 0xd1: 0x311b,
- 0xd2: 0x313e, 0xd3: 0x3143, 0xd4: 0x46e0, 0xd5: 0x46e5, 0xd6: 0x46f4,
- 0xd8: 0xa000, 0xd9: 0x31ca, 0xda: 0x31cf, 0xdb: 0x31d4, 0xdc: 0x4726, 0xdd: 0x324c,
- 0xe0: 0x3292, 0xe1: 0x3297, 0xe2: 0x4730, 0xe3: 0x329c,
- 0xe4: 0x473f, 0xe5: 0x4744, 0xe6: 0xa000, 0xe7: 0x474e, 0xe8: 0x3305, 0xe9: 0x330a,
- 0xea: 0x4753, 0xeb: 0x331e, 0xec: 0x3396, 0xed: 0x339b, 0xee: 0x33a0, 0xef: 0x4767,
- 0xf1: 0x342c, 0xf2: 0x344f, 0xf3: 0x3454, 0xf4: 0x4771, 0xf5: 0x4776,
- 0xf6: 0x4785, 0xf8: 0xa000, 0xf9: 0x34e0, 0xfa: 0x34e5, 0xfb: 0x34ea,
- 0xfc: 0x47b7, 0xfd: 0x3567, 0xff: 0x3580,
+ 0xc0: 0x2ece, 0xc1: 0x2ed3, 0xc2: 0x47ff, 0xc3: 0x2ed8, 0xc4: 0x480e, 0xc5: 0x4813,
+ 0xc6: 0xa000, 0xc7: 0x481d, 0xc8: 0x2f41, 0xc9: 0x2f46, 0xca: 0x4822, 0xcb: 0x2f5a,
+ 0xcc: 0x2fcd, 0xcd: 0x2fd2, 0xce: 0x2fd7, 0xcf: 0x4836, 0xd1: 0x3063,
+ 0xd2: 0x3086, 0xd3: 0x308b, 0xd4: 0x4840, 0xd5: 0x4845, 0xd6: 0x4854,
+ 0xd8: 0xa000, 0xd9: 0x3112, 0xda: 0x3117, 0xdb: 0x311c, 0xdc: 0x4886, 0xdd: 0x3194,
+ 0xe0: 0x31da, 0xe1: 0x31df, 0xe2: 0x4890, 0xe3: 0x31e4,
+ 0xe4: 0x489f, 0xe5: 0x48a4, 0xe6: 0xa000, 0xe7: 0x48ae, 0xe8: 0x324d, 0xe9: 0x3252,
+ 0xea: 0x48b3, 0xeb: 0x3266, 0xec: 0x32de, 0xed: 0x32e3, 0xee: 0x32e8, 0xef: 0x48c7,
+ 0xf1: 0x3374, 0xf2: 0x3397, 0xf3: 0x339c, 0xf4: 0x48d1, 0xf5: 0x48d6,
+ 0xf6: 0x48e5, 0xf8: 0xa000, 0xf9: 0x3428, 0xfa: 0x342d, 0xfb: 0x3432,
+ 0xfc: 0x4917, 0xfd: 0x34af, 0xff: 0x34c8,
// Block 0x4, offset 0x100
- 0x100: 0x2f95, 0x101: 0x32a1, 0x102: 0x46a4, 0x103: 0x4735, 0x104: 0x2fb3, 0x105: 0x32bf,
- 0x106: 0x2fc7, 0x107: 0x32d3, 0x108: 0x2fcc, 0x109: 0x32d8, 0x10a: 0x2fd1, 0x10b: 0x32dd,
- 0x10c: 0x2fd6, 0x10d: 0x32e2, 0x10e: 0x2fe0, 0x10f: 0x32ec,
- 0x112: 0x46c7, 0x113: 0x4758, 0x114: 0x3008, 0x115: 0x3314, 0x116: 0x300d, 0x117: 0x3319,
- 0x118: 0x302b, 0x119: 0x3337, 0x11a: 0x301c, 0x11b: 0x3328, 0x11c: 0x3044, 0x11d: 0x3350,
- 0x11e: 0x304e, 0x11f: 0x335a, 0x120: 0x3053, 0x121: 0x335f, 0x122: 0x305d, 0x123: 0x3369,
- 0x124: 0x3062, 0x125: 0x336e, 0x128: 0x3094, 0x129: 0x33a5,
- 0x12a: 0x3099, 0x12b: 0x33aa, 0x12c: 0x309e, 0x12d: 0x33af, 0x12e: 0x30c1, 0x12f: 0x33cd,
- 0x130: 0x30a3, 0x134: 0x30cb, 0x135: 0x33d7,
- 0x136: 0x30df, 0x137: 0x33f0, 0x139: 0x30e9, 0x13a: 0x33fa, 0x13b: 0x30f3,
- 0x13c: 0x3404, 0x13d: 0x30ee, 0x13e: 0x33ff,
+ 0x100: 0x2edd, 0x101: 0x31e9, 0x102: 0x4804, 0x103: 0x4895, 0x104: 0x2efb, 0x105: 0x3207,
+ 0x106: 0x2f0f, 0x107: 0x321b, 0x108: 0x2f14, 0x109: 0x3220, 0x10a: 0x2f19, 0x10b: 0x3225,
+ 0x10c: 0x2f1e, 0x10d: 0x322a, 0x10e: 0x2f28, 0x10f: 0x3234,
+ 0x112: 0x4827, 0x113: 0x48b8, 0x114: 0x2f50, 0x115: 0x325c, 0x116: 0x2f55, 0x117: 0x3261,
+ 0x118: 0x2f73, 0x119: 0x327f, 0x11a: 0x2f64, 0x11b: 0x3270, 0x11c: 0x2f8c, 0x11d: 0x3298,
+ 0x11e: 0x2f96, 0x11f: 0x32a2, 0x120: 0x2f9b, 0x121: 0x32a7, 0x122: 0x2fa5, 0x123: 0x32b1,
+ 0x124: 0x2faa, 0x125: 0x32b6, 0x128: 0x2fdc, 0x129: 0x32ed,
+ 0x12a: 0x2fe1, 0x12b: 0x32f2, 0x12c: 0x2fe6, 0x12d: 0x32f7, 0x12e: 0x3009, 0x12f: 0x3315,
+ 0x130: 0x2feb, 0x134: 0x3013, 0x135: 0x331f,
+ 0x136: 0x3027, 0x137: 0x3338, 0x139: 0x3031, 0x13a: 0x3342, 0x13b: 0x303b,
+ 0x13c: 0x334c, 0x13d: 0x3036, 0x13e: 0x3347,
// Block 0x5, offset 0x140
- 0x143: 0x3116, 0x144: 0x3427, 0x145: 0x312f,
- 0x146: 0x3440, 0x147: 0x3125, 0x148: 0x3436,
- 0x14c: 0x46ea, 0x14d: 0x477b, 0x14e: 0x3148, 0x14f: 0x3459, 0x150: 0x3152, 0x151: 0x3463,
- 0x154: 0x3170, 0x155: 0x3481, 0x156: 0x3189, 0x157: 0x349a,
- 0x158: 0x317a, 0x159: 0x348b, 0x15a: 0x470d, 0x15b: 0x479e, 0x15c: 0x3193, 0x15d: 0x34a4,
- 0x15e: 0x31a2, 0x15f: 0x34b3, 0x160: 0x4712, 0x161: 0x47a3, 0x162: 0x31bb, 0x163: 0x34d1,
- 0x164: 0x31ac, 0x165: 0x34c2, 0x168: 0x471c, 0x169: 0x47ad,
- 0x16a: 0x4721, 0x16b: 0x47b2, 0x16c: 0x31d9, 0x16d: 0x34ef, 0x16e: 0x31e3, 0x16f: 0x34f9,
- 0x170: 0x31e8, 0x171: 0x34fe, 0x172: 0x3206, 0x173: 0x351c, 0x174: 0x3229, 0x175: 0x353f,
- 0x176: 0x3251, 0x177: 0x356c, 0x178: 0x3265, 0x179: 0x3274, 0x17a: 0x3594, 0x17b: 0x327e,
- 0x17c: 0x359e, 0x17d: 0x3283, 0x17e: 0x35a3, 0x17f: 0xa000,
+ 0x143: 0x305e, 0x144: 0x336f, 0x145: 0x3077,
+ 0x146: 0x3388, 0x147: 0x306d, 0x148: 0x337e,
+ 0x14c: 0x484a, 0x14d: 0x48db, 0x14e: 0x3090, 0x14f: 0x33a1, 0x150: 0x309a, 0x151: 0x33ab,
+ 0x154: 0x30b8, 0x155: 0x33c9, 0x156: 0x30d1, 0x157: 0x33e2,
+ 0x158: 0x30c2, 0x159: 0x33d3, 0x15a: 0x486d, 0x15b: 0x48fe, 0x15c: 0x30db, 0x15d: 0x33ec,
+ 0x15e: 0x30ea, 0x15f: 0x33fb, 0x160: 0x4872, 0x161: 0x4903, 0x162: 0x3103, 0x163: 0x3419,
+ 0x164: 0x30f4, 0x165: 0x340a, 0x168: 0x487c, 0x169: 0x490d,
+ 0x16a: 0x4881, 0x16b: 0x4912, 0x16c: 0x3121, 0x16d: 0x3437, 0x16e: 0x312b, 0x16f: 0x3441,
+ 0x170: 0x3130, 0x171: 0x3446, 0x172: 0x314e, 0x173: 0x3464, 0x174: 0x3171, 0x175: 0x3487,
+ 0x176: 0x3199, 0x177: 0x34b4, 0x178: 0x31ad, 0x179: 0x31bc, 0x17a: 0x34dc, 0x17b: 0x31c6,
+ 0x17c: 0x34e6, 0x17d: 0x31cb, 0x17e: 0x34eb, 0x17f: 0xa000,
// Block 0x6, offset 0x180
0x184: 0x8100, 0x185: 0x8100,
0x186: 0x8100,
- 0x18d: 0x2f9f, 0x18e: 0x32ab, 0x18f: 0x30ad, 0x190: 0x33b9, 0x191: 0x3157,
- 0x192: 0x3468, 0x193: 0x31ed, 0x194: 0x3503, 0x195: 0x39e6, 0x196: 0x3b75, 0x197: 0x39df,
- 0x198: 0x3b6e, 0x199: 0x39ed, 0x19a: 0x3b7c, 0x19b: 0x39d8, 0x19c: 0x3b67,
- 0x19e: 0x38c7, 0x19f: 0x3a56, 0x1a0: 0x38c0, 0x1a1: 0x3a4f, 0x1a2: 0x35ca, 0x1a3: 0x35dc,
- 0x1a6: 0x3058, 0x1a7: 0x3364, 0x1a8: 0x30d5, 0x1a9: 0x33e6,
- 0x1aa: 0x4703, 0x1ab: 0x4794, 0x1ac: 0x39a7, 0x1ad: 0x3b36, 0x1ae: 0x35ee, 0x1af: 0x35f4,
- 0x1b0: 0x33dc, 0x1b4: 0x303f, 0x1b5: 0x334b,
- 0x1b8: 0x3111, 0x1b9: 0x3422, 0x1ba: 0x38ce, 0x1bb: 0x3a5d,
- 0x1bc: 0x35c4, 0x1bd: 0x35d6, 0x1be: 0x35d0, 0x1bf: 0x35e2,
+ 0x18d: 0x2ee7, 0x18e: 0x31f3, 0x18f: 0x2ff5, 0x190: 0x3301, 0x191: 0x309f,
+ 0x192: 0x33b0, 0x193: 0x3135, 0x194: 0x344b, 0x195: 0x392e, 0x196: 0x3abd, 0x197: 0x3927,
+ 0x198: 0x3ab6, 0x199: 0x3935, 0x19a: 0x3ac4, 0x19b: 0x3920, 0x19c: 0x3aaf,
+ 0x19e: 0x380f, 0x19f: 0x399e, 0x1a0: 0x3808, 0x1a1: 0x3997, 0x1a2: 0x3512, 0x1a3: 0x3524,
+ 0x1a6: 0x2fa0, 0x1a7: 0x32ac, 0x1a8: 0x301d, 0x1a9: 0x332e,
+ 0x1aa: 0x4863, 0x1ab: 0x48f4, 0x1ac: 0x38ef, 0x1ad: 0x3a7e, 0x1ae: 0x3536, 0x1af: 0x353c,
+ 0x1b0: 0x3324, 0x1b4: 0x2f87, 0x1b5: 0x3293,
+ 0x1b8: 0x3059, 0x1b9: 0x336a, 0x1ba: 0x3816, 0x1bb: 0x39a5,
+ 0x1bc: 0x350c, 0x1bd: 0x351e, 0x1be: 0x3518, 0x1bf: 0x352a,
// Block 0x7, offset 0x1c0
- 0x1c0: 0x2fa4, 0x1c1: 0x32b0, 0x1c2: 0x2fa9, 0x1c3: 0x32b5, 0x1c4: 0x3021, 0x1c5: 0x332d,
- 0x1c6: 0x3026, 0x1c7: 0x3332, 0x1c8: 0x30b2, 0x1c9: 0x33be, 0x1ca: 0x30b7, 0x1cb: 0x33c3,
- 0x1cc: 0x315c, 0x1cd: 0x346d, 0x1ce: 0x3161, 0x1cf: 0x3472, 0x1d0: 0x317f, 0x1d1: 0x3490,
- 0x1d2: 0x3184, 0x1d3: 0x3495, 0x1d4: 0x31f2, 0x1d5: 0x3508, 0x1d6: 0x31f7, 0x1d7: 0x350d,
- 0x1d8: 0x319d, 0x1d9: 0x34ae, 0x1da: 0x31b6, 0x1db: 0x34cc,
- 0x1de: 0x3071, 0x1df: 0x337d,
- 0x1e6: 0x46a9, 0x1e7: 0x473a, 0x1e8: 0x46d1, 0x1e9: 0x4762,
- 0x1ea: 0x3976, 0x1eb: 0x3b05, 0x1ec: 0x3953, 0x1ed: 0x3ae2, 0x1ee: 0x46ef, 0x1ef: 0x4780,
- 0x1f0: 0x396f, 0x1f1: 0x3afe, 0x1f2: 0x325b, 0x1f3: 0x3576,
+ 0x1c0: 0x2eec, 0x1c1: 0x31f8, 0x1c2: 0x2ef1, 0x1c3: 0x31fd, 0x1c4: 0x2f69, 0x1c5: 0x3275,
+ 0x1c6: 0x2f6e, 0x1c7: 0x327a, 0x1c8: 0x2ffa, 0x1c9: 0x3306, 0x1ca: 0x2fff, 0x1cb: 0x330b,
+ 0x1cc: 0x30a4, 0x1cd: 0x33b5, 0x1ce: 0x30a9, 0x1cf: 0x33ba, 0x1d0: 0x30c7, 0x1d1: 0x33d8,
+ 0x1d2: 0x30cc, 0x1d3: 0x33dd, 0x1d4: 0x313a, 0x1d5: 0x3450, 0x1d6: 0x313f, 0x1d7: 0x3455,
+ 0x1d8: 0x30e5, 0x1d9: 0x33f6, 0x1da: 0x30fe, 0x1db: 0x3414,
+ 0x1de: 0x2fb9, 0x1df: 0x32c5,
+ 0x1e6: 0x4809, 0x1e7: 0x489a, 0x1e8: 0x4831, 0x1e9: 0x48c2,
+ 0x1ea: 0x38be, 0x1eb: 0x3a4d, 0x1ec: 0x389b, 0x1ed: 0x3a2a, 0x1ee: 0x484f, 0x1ef: 0x48e0,
+ 0x1f0: 0x38b7, 0x1f1: 0x3a46, 0x1f2: 0x31a3, 0x1f3: 0x34be,
// Block 0x8, offset 0x200
0x200: 0x9933, 0x201: 0x9933, 0x202: 0x9933, 0x203: 0x9933, 0x204: 0x9933, 0x205: 0x8133,
0x206: 0x9933, 0x207: 0x9933, 0x208: 0x9933, 0x209: 0x9933, 0x20a: 0x9933, 0x20b: 0x9933,
@@ -3008,7 +3083,7 @@ var nfcValues = [3072]uint16{
0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812e, 0x23a: 0x812e, 0x23b: 0x812e,
0x23c: 0x812e, 0x23d: 0x8133, 0x23e: 0x8133, 0x23f: 0x8133,
// Block 0x9, offset 0x240
- 0x240: 0x49c5, 0x241: 0x49ca, 0x242: 0x9933, 0x243: 0x49cf, 0x244: 0x4a88, 0x245: 0x9937,
+ 0x240: 0x4b3f, 0x241: 0x4b44, 0x242: 0x9933, 0x243: 0x4b49, 0x244: 0x4c02, 0x245: 0x9937,
0x246: 0x8133, 0x247: 0x812e, 0x248: 0x812e, 0x249: 0x812e, 0x24a: 0x8133, 0x24b: 0x8133,
0x24c: 0x8133, 0x24d: 0x812e, 0x24e: 0x812e, 0x250: 0x8133, 0x251: 0x8133,
0x252: 0x8133, 0x253: 0x812e, 0x254: 0x812e, 0x255: 0x812e, 0x256: 0x812e, 0x257: 0x8133,
@@ -3016,43 +3091,43 @@ var nfcValues = [3072]uint16{
0x25e: 0x8136, 0x25f: 0x8135, 0x260: 0x8136, 0x261: 0x8136, 0x262: 0x8135, 0x263: 0x8133,
0x264: 0x8133, 0x265: 0x8133, 0x266: 0x8133, 0x267: 0x8133, 0x268: 0x8133, 0x269: 0x8133,
0x26a: 0x8133, 0x26b: 0x8133, 0x26c: 0x8133, 0x26d: 0x8133, 0x26e: 0x8133, 0x26f: 0x8133,
- 0x274: 0x0173,
+ 0x274: 0x01ee,
0x27a: 0x8100,
0x27e: 0x0037,
// Block 0xa, offset 0x280
- 0x284: 0x8100, 0x285: 0x35b8,
- 0x286: 0x3600, 0x287: 0x00ce, 0x288: 0x361e, 0x289: 0x362a, 0x28a: 0x363c,
- 0x28c: 0x365a, 0x28e: 0x366c, 0x28f: 0x368a, 0x290: 0x3e1f, 0x291: 0xa000,
+ 0x284: 0x8100, 0x285: 0x3500,
+ 0x286: 0x3548, 0x287: 0x00ce, 0x288: 0x3566, 0x289: 0x3572, 0x28a: 0x3584,
+ 0x28c: 0x35a2, 0x28e: 0x35b4, 0x28f: 0x35d2, 0x290: 0x3d67, 0x291: 0xa000,
0x295: 0xa000, 0x297: 0xa000,
0x299: 0xa000,
0x29f: 0xa000, 0x2a1: 0xa000,
0x2a5: 0xa000, 0x2a9: 0xa000,
- 0x2aa: 0x364e, 0x2ab: 0x367e, 0x2ac: 0x4815, 0x2ad: 0x36ae, 0x2ae: 0x483f, 0x2af: 0x36c0,
- 0x2b0: 0x3e87, 0x2b1: 0xa000, 0x2b5: 0xa000,
+ 0x2aa: 0x3596, 0x2ab: 0x35c6, 0x2ac: 0x4975, 0x2ad: 0x35f6, 0x2ae: 0x499f, 0x2af: 0x3608,
+ 0x2b0: 0x3dcf, 0x2b1: 0xa000, 0x2b5: 0xa000,
0x2b7: 0xa000, 0x2b9: 0xa000,
0x2bf: 0xa000,
// Block 0xb, offset 0x2c0
- 0x2c0: 0x3738, 0x2c1: 0x3744, 0x2c3: 0x3732,
- 0x2c6: 0xa000, 0x2c7: 0x3720,
- 0x2cc: 0x3774, 0x2cd: 0x375c, 0x2ce: 0x3786, 0x2d0: 0xa000,
+ 0x2c0: 0x3680, 0x2c1: 0x368c, 0x2c3: 0x367a,
+ 0x2c6: 0xa000, 0x2c7: 0x3668,
+ 0x2cc: 0x36bc, 0x2cd: 0x36a4, 0x2ce: 0x36ce, 0x2d0: 0xa000,
0x2d3: 0xa000, 0x2d5: 0xa000, 0x2d6: 0xa000, 0x2d7: 0xa000,
- 0x2d8: 0xa000, 0x2d9: 0x3768, 0x2da: 0xa000,
+ 0x2d8: 0xa000, 0x2d9: 0x36b0, 0x2da: 0xa000,
0x2de: 0xa000, 0x2e3: 0xa000,
0x2e7: 0xa000,
0x2eb: 0xa000, 0x2ed: 0xa000,
0x2f0: 0xa000, 0x2f3: 0xa000, 0x2f5: 0xa000,
- 0x2f6: 0xa000, 0x2f7: 0xa000, 0x2f8: 0xa000, 0x2f9: 0x37ec, 0x2fa: 0xa000,
+ 0x2f6: 0xa000, 0x2f7: 0xa000, 0x2f8: 0xa000, 0x2f9: 0x3734, 0x2fa: 0xa000,
0x2fe: 0xa000,
// Block 0xc, offset 0x300
- 0x301: 0x374a, 0x302: 0x37ce,
- 0x310: 0x3726, 0x311: 0x37aa,
- 0x312: 0x372c, 0x313: 0x37b0, 0x316: 0x373e, 0x317: 0x37c2,
- 0x318: 0xa000, 0x319: 0xa000, 0x31a: 0x3840, 0x31b: 0x3846, 0x31c: 0x3750, 0x31d: 0x37d4,
- 0x31e: 0x3756, 0x31f: 0x37da, 0x322: 0x3762, 0x323: 0x37e6,
- 0x324: 0x376e, 0x325: 0x37f2, 0x326: 0x377a, 0x327: 0x37fe, 0x328: 0xa000, 0x329: 0xa000,
- 0x32a: 0x384c, 0x32b: 0x3852, 0x32c: 0x37a4, 0x32d: 0x3828, 0x32e: 0x3780, 0x32f: 0x3804,
- 0x330: 0x378c, 0x331: 0x3810, 0x332: 0x3792, 0x333: 0x3816, 0x334: 0x3798, 0x335: 0x381c,
- 0x338: 0x379e, 0x339: 0x3822,
+ 0x301: 0x3692, 0x302: 0x3716,
+ 0x310: 0x366e, 0x311: 0x36f2,
+ 0x312: 0x3674, 0x313: 0x36f8, 0x316: 0x3686, 0x317: 0x370a,
+ 0x318: 0xa000, 0x319: 0xa000, 0x31a: 0x3788, 0x31b: 0x378e, 0x31c: 0x3698, 0x31d: 0x371c,
+ 0x31e: 0x369e, 0x31f: 0x3722, 0x322: 0x36aa, 0x323: 0x372e,
+ 0x324: 0x36b6, 0x325: 0x373a, 0x326: 0x36c2, 0x327: 0x3746, 0x328: 0xa000, 0x329: 0xa000,
+ 0x32a: 0x3794, 0x32b: 0x379a, 0x32c: 0x36ec, 0x32d: 0x3770, 0x32e: 0x36c8, 0x32f: 0x374c,
+ 0x330: 0x36d4, 0x331: 0x3758, 0x332: 0x36da, 0x333: 0x375e, 0x334: 0x36e0, 0x335: 0x3764,
+ 0x338: 0x36e6, 0x339: 0x376a,
// Block 0xd, offset 0x340
0x351: 0x812e,
0x352: 0x8133, 0x353: 0x8133, 0x354: 0x8133, 0x355: 0x8133, 0x356: 0x812e, 0x357: 0x8133,
@@ -3071,7 +3146,9 @@ var nfcValues = [3072]uint16{
0x39e: 0x8133, 0x39f: 0x812e,
0x3b0: 0x811f,
// Block 0xf, offset 0x3c0
- 0x3d3: 0x812e, 0x3d4: 0x8133, 0x3d5: 0x8133, 0x3d6: 0x8133, 0x3d7: 0x8133,
+ 0x3ca: 0x8133, 0x3cb: 0x8133,
+ 0x3cc: 0x8133, 0x3cd: 0x8133, 0x3ce: 0x8133, 0x3cf: 0x812e, 0x3d0: 0x812e, 0x3d1: 0x812e,
+ 0x3d2: 0x812e, 0x3d3: 0x812e, 0x3d4: 0x8133, 0x3d5: 0x8133, 0x3d6: 0x8133, 0x3d7: 0x8133,
0x3d8: 0x8133, 0x3d9: 0x8133, 0x3da: 0x8133, 0x3db: 0x8133, 0x3dc: 0x8133, 0x3dd: 0x8133,
0x3de: 0x8133, 0x3df: 0x8133, 0x3e0: 0x8133, 0x3e1: 0x8133, 0x3e3: 0x812e,
0x3e4: 0x8133, 0x3e5: 0x8133, 0x3e6: 0x812e, 0x3e7: 0x8133, 0x3e8: 0x8133, 0x3e9: 0x812e,
@@ -3081,12 +3158,12 @@ var nfcValues = [3072]uint16{
0x3fc: 0x8133, 0x3fd: 0x8133, 0x3fe: 0x8133, 0x3ff: 0x8133,
// Block 0x10, offset 0x400
0x405: 0xa000,
- 0x406: 0x2d33, 0x407: 0xa000, 0x408: 0x2d3b, 0x409: 0xa000, 0x40a: 0x2d43, 0x40b: 0xa000,
- 0x40c: 0x2d4b, 0x40d: 0xa000, 0x40e: 0x2d53, 0x411: 0xa000,
- 0x412: 0x2d5b,
+ 0x406: 0x3ee7, 0x407: 0xa000, 0x408: 0x3eef, 0x409: 0xa000, 0x40a: 0x3ef7, 0x40b: 0xa000,
+ 0x40c: 0x3eff, 0x40d: 0xa000, 0x40e: 0x3f07, 0x411: 0xa000,
+ 0x412: 0x3f0f,
0x434: 0x8103, 0x435: 0x9900,
- 0x43a: 0xa000, 0x43b: 0x2d63,
- 0x43c: 0xa000, 0x43d: 0x2d6b, 0x43e: 0xa000, 0x43f: 0xa000,
+ 0x43a: 0xa000, 0x43b: 0x3f17,
+ 0x43c: 0xa000, 0x43d: 0x3f1f, 0x43e: 0xa000, 0x43f: 0xa000,
// Block 0x11, offset 0x440
0x440: 0x8133, 0x441: 0x8133, 0x442: 0x812e, 0x443: 0x8133, 0x444: 0x8133, 0x445: 0x8133,
0x446: 0x8133, 0x447: 0x8133, 0x448: 0x8133, 0x449: 0x8133, 0x44a: 0x812e, 0x44b: 0x8133,
@@ -3097,344 +3174,344 @@ var nfcValues = [3072]uint16{
0x464: 0x8133, 0x465: 0x8133, 0x466: 0x8133, 0x467: 0x8133, 0x468: 0x8133, 0x469: 0x8133,
0x46a: 0x8133, 0x46b: 0x8133, 0x46c: 0x8133, 0x46d: 0x8133, 0x46e: 0x8133, 0x46f: 0x8133,
0x470: 0x8133, 0x471: 0x8133, 0x472: 0x8133, 0x473: 0x8133, 0x474: 0x8133, 0x475: 0x8133,
- 0x476: 0x8134, 0x477: 0x8132, 0x478: 0x8132, 0x479: 0x812e, 0x47b: 0x8133,
+ 0x476: 0x8134, 0x477: 0x8132, 0x478: 0x8132, 0x479: 0x812e, 0x47a: 0x812d, 0x47b: 0x8133,
0x47c: 0x8135, 0x47d: 0x812e, 0x47e: 0x8133, 0x47f: 0x812e,
// Block 0x12, offset 0x480
- 0x480: 0x2fae, 0x481: 0x32ba, 0x482: 0x2fb8, 0x483: 0x32c4, 0x484: 0x2fbd, 0x485: 0x32c9,
- 0x486: 0x2fc2, 0x487: 0x32ce, 0x488: 0x38e3, 0x489: 0x3a72, 0x48a: 0x2fdb, 0x48b: 0x32e7,
- 0x48c: 0x2fe5, 0x48d: 0x32f1, 0x48e: 0x2ff4, 0x48f: 0x3300, 0x490: 0x2fea, 0x491: 0x32f6,
- 0x492: 0x2fef, 0x493: 0x32fb, 0x494: 0x3906, 0x495: 0x3a95, 0x496: 0x390d, 0x497: 0x3a9c,
- 0x498: 0x3030, 0x499: 0x333c, 0x49a: 0x3035, 0x49b: 0x3341, 0x49c: 0x391b, 0x49d: 0x3aaa,
- 0x49e: 0x303a, 0x49f: 0x3346, 0x4a0: 0x3049, 0x4a1: 0x3355, 0x4a2: 0x3067, 0x4a3: 0x3373,
- 0x4a4: 0x3076, 0x4a5: 0x3382, 0x4a6: 0x306c, 0x4a7: 0x3378, 0x4a8: 0x307b, 0x4a9: 0x3387,
- 0x4aa: 0x3080, 0x4ab: 0x338c, 0x4ac: 0x30c6, 0x4ad: 0x33d2, 0x4ae: 0x3922, 0x4af: 0x3ab1,
- 0x4b0: 0x30d0, 0x4b1: 0x33e1, 0x4b2: 0x30da, 0x4b3: 0x33eb, 0x4b4: 0x30e4, 0x4b5: 0x33f5,
- 0x4b6: 0x46db, 0x4b7: 0x476c, 0x4b8: 0x3929, 0x4b9: 0x3ab8, 0x4ba: 0x30fd, 0x4bb: 0x340e,
- 0x4bc: 0x30f8, 0x4bd: 0x3409, 0x4be: 0x3102, 0x4bf: 0x3413,
+ 0x480: 0x2ef6, 0x481: 0x3202, 0x482: 0x2f00, 0x483: 0x320c, 0x484: 0x2f05, 0x485: 0x3211,
+ 0x486: 0x2f0a, 0x487: 0x3216, 0x488: 0x382b, 0x489: 0x39ba, 0x48a: 0x2f23, 0x48b: 0x322f,
+ 0x48c: 0x2f2d, 0x48d: 0x3239, 0x48e: 0x2f3c, 0x48f: 0x3248, 0x490: 0x2f32, 0x491: 0x323e,
+ 0x492: 0x2f37, 0x493: 0x3243, 0x494: 0x384e, 0x495: 0x39dd, 0x496: 0x3855, 0x497: 0x39e4,
+ 0x498: 0x2f78, 0x499: 0x3284, 0x49a: 0x2f7d, 0x49b: 0x3289, 0x49c: 0x3863, 0x49d: 0x39f2,
+ 0x49e: 0x2f82, 0x49f: 0x328e, 0x4a0: 0x2f91, 0x4a1: 0x329d, 0x4a2: 0x2faf, 0x4a3: 0x32bb,
+ 0x4a4: 0x2fbe, 0x4a5: 0x32ca, 0x4a6: 0x2fb4, 0x4a7: 0x32c0, 0x4a8: 0x2fc3, 0x4a9: 0x32cf,
+ 0x4aa: 0x2fc8, 0x4ab: 0x32d4, 0x4ac: 0x300e, 0x4ad: 0x331a, 0x4ae: 0x386a, 0x4af: 0x39f9,
+ 0x4b0: 0x3018, 0x4b1: 0x3329, 0x4b2: 0x3022, 0x4b3: 0x3333, 0x4b4: 0x302c, 0x4b5: 0x333d,
+ 0x4b6: 0x483b, 0x4b7: 0x48cc, 0x4b8: 0x3871, 0x4b9: 0x3a00, 0x4ba: 0x3045, 0x4bb: 0x3356,
+ 0x4bc: 0x3040, 0x4bd: 0x3351, 0x4be: 0x304a, 0x4bf: 0x335b,
// Block 0x13, offset 0x4c0
- 0x4c0: 0x3107, 0x4c1: 0x3418, 0x4c2: 0x310c, 0x4c3: 0x341d, 0x4c4: 0x3120, 0x4c5: 0x3431,
- 0x4c6: 0x312a, 0x4c7: 0x343b, 0x4c8: 0x3139, 0x4c9: 0x344a, 0x4ca: 0x3134, 0x4cb: 0x3445,
- 0x4cc: 0x394c, 0x4cd: 0x3adb, 0x4ce: 0x395a, 0x4cf: 0x3ae9, 0x4d0: 0x3961, 0x4d1: 0x3af0,
- 0x4d2: 0x3968, 0x4d3: 0x3af7, 0x4d4: 0x3166, 0x4d5: 0x3477, 0x4d6: 0x316b, 0x4d7: 0x347c,
- 0x4d8: 0x3175, 0x4d9: 0x3486, 0x4da: 0x4708, 0x4db: 0x4799, 0x4dc: 0x39ae, 0x4dd: 0x3b3d,
- 0x4de: 0x318e, 0x4df: 0x349f, 0x4e0: 0x3198, 0x4e1: 0x34a9, 0x4e2: 0x4717, 0x4e3: 0x47a8,
- 0x4e4: 0x39b5, 0x4e5: 0x3b44, 0x4e6: 0x39bc, 0x4e7: 0x3b4b, 0x4e8: 0x39c3, 0x4e9: 0x3b52,
- 0x4ea: 0x31a7, 0x4eb: 0x34b8, 0x4ec: 0x31b1, 0x4ed: 0x34c7, 0x4ee: 0x31c5, 0x4ef: 0x34db,
- 0x4f0: 0x31c0, 0x4f1: 0x34d6, 0x4f2: 0x3201, 0x4f3: 0x3517, 0x4f4: 0x3210, 0x4f5: 0x3526,
- 0x4f6: 0x320b, 0x4f7: 0x3521, 0x4f8: 0x39ca, 0x4f9: 0x3b59, 0x4fa: 0x39d1, 0x4fb: 0x3b60,
- 0x4fc: 0x3215, 0x4fd: 0x352b, 0x4fe: 0x321a, 0x4ff: 0x3530,
+ 0x4c0: 0x304f, 0x4c1: 0x3360, 0x4c2: 0x3054, 0x4c3: 0x3365, 0x4c4: 0x3068, 0x4c5: 0x3379,
+ 0x4c6: 0x3072, 0x4c7: 0x3383, 0x4c8: 0x3081, 0x4c9: 0x3392, 0x4ca: 0x307c, 0x4cb: 0x338d,
+ 0x4cc: 0x3894, 0x4cd: 0x3a23, 0x4ce: 0x38a2, 0x4cf: 0x3a31, 0x4d0: 0x38a9, 0x4d1: 0x3a38,
+ 0x4d2: 0x38b0, 0x4d3: 0x3a3f, 0x4d4: 0x30ae, 0x4d5: 0x33bf, 0x4d6: 0x30b3, 0x4d7: 0x33c4,
+ 0x4d8: 0x30bd, 0x4d9: 0x33ce, 0x4da: 0x4868, 0x4db: 0x48f9, 0x4dc: 0x38f6, 0x4dd: 0x3a85,
+ 0x4de: 0x30d6, 0x4df: 0x33e7, 0x4e0: 0x30e0, 0x4e1: 0x33f1, 0x4e2: 0x4877, 0x4e3: 0x4908,
+ 0x4e4: 0x38fd, 0x4e5: 0x3a8c, 0x4e6: 0x3904, 0x4e7: 0x3a93, 0x4e8: 0x390b, 0x4e9: 0x3a9a,
+ 0x4ea: 0x30ef, 0x4eb: 0x3400, 0x4ec: 0x30f9, 0x4ed: 0x340f, 0x4ee: 0x310d, 0x4ef: 0x3423,
+ 0x4f0: 0x3108, 0x4f1: 0x341e, 0x4f2: 0x3149, 0x4f3: 0x345f, 0x4f4: 0x3158, 0x4f5: 0x346e,
+ 0x4f6: 0x3153, 0x4f7: 0x3469, 0x4f8: 0x3912, 0x4f9: 0x3aa1, 0x4fa: 0x3919, 0x4fb: 0x3aa8,
+ 0x4fc: 0x315d, 0x4fd: 0x3473, 0x4fe: 0x3162, 0x4ff: 0x3478,
// Block 0x14, offset 0x500
- 0x500: 0x321f, 0x501: 0x3535, 0x502: 0x3224, 0x503: 0x353a, 0x504: 0x3233, 0x505: 0x3549,
- 0x506: 0x322e, 0x507: 0x3544, 0x508: 0x3238, 0x509: 0x3553, 0x50a: 0x323d, 0x50b: 0x3558,
- 0x50c: 0x3242, 0x50d: 0x355d, 0x50e: 0x3260, 0x50f: 0x357b, 0x510: 0x3279, 0x511: 0x3599,
- 0x512: 0x3288, 0x513: 0x35a8, 0x514: 0x328d, 0x515: 0x35ad, 0x516: 0x3391, 0x517: 0x34bd,
- 0x518: 0x354e, 0x519: 0x358a, 0x51b: 0x35e8,
- 0x520: 0x46b8, 0x521: 0x4749, 0x522: 0x2f9a, 0x523: 0x32a6,
- 0x524: 0x388f, 0x525: 0x3a1e, 0x526: 0x3888, 0x527: 0x3a17, 0x528: 0x389d, 0x529: 0x3a2c,
- 0x52a: 0x3896, 0x52b: 0x3a25, 0x52c: 0x38d5, 0x52d: 0x3a64, 0x52e: 0x38ab, 0x52f: 0x3a3a,
- 0x530: 0x38a4, 0x531: 0x3a33, 0x532: 0x38b9, 0x533: 0x3a48, 0x534: 0x38b2, 0x535: 0x3a41,
- 0x536: 0x38dc, 0x537: 0x3a6b, 0x538: 0x46cc, 0x539: 0x475d, 0x53a: 0x3017, 0x53b: 0x3323,
- 0x53c: 0x3003, 0x53d: 0x330f, 0x53e: 0x38f1, 0x53f: 0x3a80,
+ 0x500: 0x3167, 0x501: 0x347d, 0x502: 0x316c, 0x503: 0x3482, 0x504: 0x317b, 0x505: 0x3491,
+ 0x506: 0x3176, 0x507: 0x348c, 0x508: 0x3180, 0x509: 0x349b, 0x50a: 0x3185, 0x50b: 0x34a0,
+ 0x50c: 0x318a, 0x50d: 0x34a5, 0x50e: 0x31a8, 0x50f: 0x34c3, 0x510: 0x31c1, 0x511: 0x34e1,
+ 0x512: 0x31d0, 0x513: 0x34f0, 0x514: 0x31d5, 0x515: 0x34f5, 0x516: 0x32d9, 0x517: 0x3405,
+ 0x518: 0x3496, 0x519: 0x34d2, 0x51b: 0x3530,
+ 0x520: 0x4818, 0x521: 0x48a9, 0x522: 0x2ee2, 0x523: 0x31ee,
+ 0x524: 0x37d7, 0x525: 0x3966, 0x526: 0x37d0, 0x527: 0x395f, 0x528: 0x37e5, 0x529: 0x3974,
+ 0x52a: 0x37de, 0x52b: 0x396d, 0x52c: 0x381d, 0x52d: 0x39ac, 0x52e: 0x37f3, 0x52f: 0x3982,
+ 0x530: 0x37ec, 0x531: 0x397b, 0x532: 0x3801, 0x533: 0x3990, 0x534: 0x37fa, 0x535: 0x3989,
+ 0x536: 0x3824, 0x537: 0x39b3, 0x538: 0x482c, 0x539: 0x48bd, 0x53a: 0x2f5f, 0x53b: 0x326b,
+ 0x53c: 0x2f4b, 0x53d: 0x3257, 0x53e: 0x3839, 0x53f: 0x39c8,
// Block 0x15, offset 0x540
- 0x540: 0x38ea, 0x541: 0x3a79, 0x542: 0x38ff, 0x543: 0x3a8e, 0x544: 0x38f8, 0x545: 0x3a87,
- 0x546: 0x3914, 0x547: 0x3aa3, 0x548: 0x30a8, 0x549: 0x33b4, 0x54a: 0x30bc, 0x54b: 0x33c8,
- 0x54c: 0x46fe, 0x54d: 0x478f, 0x54e: 0x314d, 0x54f: 0x345e, 0x550: 0x3937, 0x551: 0x3ac6,
- 0x552: 0x3930, 0x553: 0x3abf, 0x554: 0x3945, 0x555: 0x3ad4, 0x556: 0x393e, 0x557: 0x3acd,
- 0x558: 0x39a0, 0x559: 0x3b2f, 0x55a: 0x3984, 0x55b: 0x3b13, 0x55c: 0x397d, 0x55d: 0x3b0c,
- 0x55e: 0x3992, 0x55f: 0x3b21, 0x560: 0x398b, 0x561: 0x3b1a, 0x562: 0x3999, 0x563: 0x3b28,
- 0x564: 0x31fc, 0x565: 0x3512, 0x566: 0x31de, 0x567: 0x34f4, 0x568: 0x39fb, 0x569: 0x3b8a,
- 0x56a: 0x39f4, 0x56b: 0x3b83, 0x56c: 0x3a09, 0x56d: 0x3b98, 0x56e: 0x3a02, 0x56f: 0x3b91,
- 0x570: 0x3a10, 0x571: 0x3b9f, 0x572: 0x3247, 0x573: 0x3562, 0x574: 0x326f, 0x575: 0x358f,
- 0x576: 0x326a, 0x577: 0x3585, 0x578: 0x3256, 0x579: 0x3571,
+ 0x540: 0x3832, 0x541: 0x39c1, 0x542: 0x3847, 0x543: 0x39d6, 0x544: 0x3840, 0x545: 0x39cf,
+ 0x546: 0x385c, 0x547: 0x39eb, 0x548: 0x2ff0, 0x549: 0x32fc, 0x54a: 0x3004, 0x54b: 0x3310,
+ 0x54c: 0x485e, 0x54d: 0x48ef, 0x54e: 0x3095, 0x54f: 0x33a6, 0x550: 0x387f, 0x551: 0x3a0e,
+ 0x552: 0x3878, 0x553: 0x3a07, 0x554: 0x388d, 0x555: 0x3a1c, 0x556: 0x3886, 0x557: 0x3a15,
+ 0x558: 0x38e8, 0x559: 0x3a77, 0x55a: 0x38cc, 0x55b: 0x3a5b, 0x55c: 0x38c5, 0x55d: 0x3a54,
+ 0x55e: 0x38da, 0x55f: 0x3a69, 0x560: 0x38d3, 0x561: 0x3a62, 0x562: 0x38e1, 0x563: 0x3a70,
+ 0x564: 0x3144, 0x565: 0x345a, 0x566: 0x3126, 0x567: 0x343c, 0x568: 0x3943, 0x569: 0x3ad2,
+ 0x56a: 0x393c, 0x56b: 0x3acb, 0x56c: 0x3951, 0x56d: 0x3ae0, 0x56e: 0x394a, 0x56f: 0x3ad9,
+ 0x570: 0x3958, 0x571: 0x3ae7, 0x572: 0x318f, 0x573: 0x34aa, 0x574: 0x31b7, 0x575: 0x34d7,
+ 0x576: 0x31b2, 0x577: 0x34cd, 0x578: 0x319e, 0x579: 0x34b9,
// Block 0x16, offset 0x580
- 0x580: 0x481b, 0x581: 0x4821, 0x582: 0x4935, 0x583: 0x494d, 0x584: 0x493d, 0x585: 0x4955,
- 0x586: 0x4945, 0x587: 0x495d, 0x588: 0x47c1, 0x589: 0x47c7, 0x58a: 0x48a5, 0x58b: 0x48bd,
- 0x58c: 0x48ad, 0x58d: 0x48c5, 0x58e: 0x48b5, 0x58f: 0x48cd, 0x590: 0x482d, 0x591: 0x4833,
- 0x592: 0x3dcf, 0x593: 0x3ddf, 0x594: 0x3dd7, 0x595: 0x3de7,
- 0x598: 0x47cd, 0x599: 0x47d3, 0x59a: 0x3cff, 0x59b: 0x3d0f, 0x59c: 0x3d07, 0x59d: 0x3d17,
- 0x5a0: 0x4845, 0x5a1: 0x484b, 0x5a2: 0x4965, 0x5a3: 0x497d,
- 0x5a4: 0x496d, 0x5a5: 0x4985, 0x5a6: 0x4975, 0x5a7: 0x498d, 0x5a8: 0x47d9, 0x5a9: 0x47df,
- 0x5aa: 0x48d5, 0x5ab: 0x48ed, 0x5ac: 0x48dd, 0x5ad: 0x48f5, 0x5ae: 0x48e5, 0x5af: 0x48fd,
- 0x5b0: 0x485d, 0x5b1: 0x4863, 0x5b2: 0x3e2f, 0x5b3: 0x3e47, 0x5b4: 0x3e37, 0x5b5: 0x3e4f,
- 0x5b6: 0x3e3f, 0x5b7: 0x3e57, 0x5b8: 0x47e5, 0x5b9: 0x47eb, 0x5ba: 0x3d2f, 0x5bb: 0x3d47,
- 0x5bc: 0x3d37, 0x5bd: 0x3d4f, 0x5be: 0x3d3f, 0x5bf: 0x3d57,
+ 0x580: 0x497b, 0x581: 0x4981, 0x582: 0x4a95, 0x583: 0x4aad, 0x584: 0x4a9d, 0x585: 0x4ab5,
+ 0x586: 0x4aa5, 0x587: 0x4abd, 0x588: 0x4921, 0x589: 0x4927, 0x58a: 0x4a05, 0x58b: 0x4a1d,
+ 0x58c: 0x4a0d, 0x58d: 0x4a25, 0x58e: 0x4a15, 0x58f: 0x4a2d, 0x590: 0x498d, 0x591: 0x4993,
+ 0x592: 0x3d17, 0x593: 0x3d27, 0x594: 0x3d1f, 0x595: 0x3d2f,
+ 0x598: 0x492d, 0x599: 0x4933, 0x59a: 0x3c47, 0x59b: 0x3c57, 0x59c: 0x3c4f, 0x59d: 0x3c5f,
+ 0x5a0: 0x49a5, 0x5a1: 0x49ab, 0x5a2: 0x4ac5, 0x5a3: 0x4add,
+ 0x5a4: 0x4acd, 0x5a5: 0x4ae5, 0x5a6: 0x4ad5, 0x5a7: 0x4aed, 0x5a8: 0x4939, 0x5a9: 0x493f,
+ 0x5aa: 0x4a35, 0x5ab: 0x4a4d, 0x5ac: 0x4a3d, 0x5ad: 0x4a55, 0x5ae: 0x4a45, 0x5af: 0x4a5d,
+ 0x5b0: 0x49bd, 0x5b1: 0x49c3, 0x5b2: 0x3d77, 0x5b3: 0x3d8f, 0x5b4: 0x3d7f, 0x5b5: 0x3d97,
+ 0x5b6: 0x3d87, 0x5b7: 0x3d9f, 0x5b8: 0x4945, 0x5b9: 0x494b, 0x5ba: 0x3c77, 0x5bb: 0x3c8f,
+ 0x5bc: 0x3c7f, 0x5bd: 0x3c97, 0x5be: 0x3c87, 0x5bf: 0x3c9f,
// Block 0x17, offset 0x5c0
- 0x5c0: 0x4869, 0x5c1: 0x486f, 0x5c2: 0x3e5f, 0x5c3: 0x3e6f, 0x5c4: 0x3e67, 0x5c5: 0x3e77,
- 0x5c8: 0x47f1, 0x5c9: 0x47f7, 0x5ca: 0x3d5f, 0x5cb: 0x3d6f,
- 0x5cc: 0x3d67, 0x5cd: 0x3d77, 0x5d0: 0x487b, 0x5d1: 0x4881,
- 0x5d2: 0x3e97, 0x5d3: 0x3eaf, 0x5d4: 0x3e9f, 0x5d5: 0x3eb7, 0x5d6: 0x3ea7, 0x5d7: 0x3ebf,
- 0x5d9: 0x47fd, 0x5db: 0x3d7f, 0x5dd: 0x3d87,
- 0x5df: 0x3d8f, 0x5e0: 0x4893, 0x5e1: 0x4899, 0x5e2: 0x4995, 0x5e3: 0x49ad,
- 0x5e4: 0x499d, 0x5e5: 0x49b5, 0x5e6: 0x49a5, 0x5e7: 0x49bd, 0x5e8: 0x4803, 0x5e9: 0x4809,
- 0x5ea: 0x4905, 0x5eb: 0x491d, 0x5ec: 0x490d, 0x5ed: 0x4925, 0x5ee: 0x4915, 0x5ef: 0x492d,
- 0x5f0: 0x480f, 0x5f1: 0x4335, 0x5f2: 0x36a8, 0x5f3: 0x433b, 0x5f4: 0x4839, 0x5f5: 0x4341,
- 0x5f6: 0x36ba, 0x5f7: 0x4347, 0x5f8: 0x36d8, 0x5f9: 0x434d, 0x5fa: 0x36f0, 0x5fb: 0x4353,
- 0x5fc: 0x4887, 0x5fd: 0x4359,
+ 0x5c0: 0x49c9, 0x5c1: 0x49cf, 0x5c2: 0x3da7, 0x5c3: 0x3db7, 0x5c4: 0x3daf, 0x5c5: 0x3dbf,
+ 0x5c8: 0x4951, 0x5c9: 0x4957, 0x5ca: 0x3ca7, 0x5cb: 0x3cb7,
+ 0x5cc: 0x3caf, 0x5cd: 0x3cbf, 0x5d0: 0x49db, 0x5d1: 0x49e1,
+ 0x5d2: 0x3ddf, 0x5d3: 0x3df7, 0x5d4: 0x3de7, 0x5d5: 0x3dff, 0x5d6: 0x3def, 0x5d7: 0x3e07,
+ 0x5d9: 0x495d, 0x5db: 0x3cc7, 0x5dd: 0x3ccf,
+ 0x5df: 0x3cd7, 0x5e0: 0x49f3, 0x5e1: 0x49f9, 0x5e2: 0x4af5, 0x5e3: 0x4b0d,
+ 0x5e4: 0x4afd, 0x5e5: 0x4b15, 0x5e6: 0x4b05, 0x5e7: 0x4b1d, 0x5e8: 0x4963, 0x5e9: 0x4969,
+ 0x5ea: 0x4a65, 0x5eb: 0x4a7d, 0x5ec: 0x4a6d, 0x5ed: 0x4a85, 0x5ee: 0x4a75, 0x5ef: 0x4a8d,
+ 0x5f0: 0x496f, 0x5f1: 0x441d, 0x5f2: 0x35f0, 0x5f3: 0x4423, 0x5f4: 0x4999, 0x5f5: 0x4429,
+ 0x5f6: 0x3602, 0x5f7: 0x442f, 0x5f8: 0x3620, 0x5f9: 0x4435, 0x5fa: 0x3638, 0x5fb: 0x443b,
+ 0x5fc: 0x49e7, 0x5fd: 0x4441,
// Block 0x18, offset 0x600
- 0x600: 0x3db7, 0x601: 0x3dbf, 0x602: 0x419b, 0x603: 0x41b9, 0x604: 0x41a5, 0x605: 0x41c3,
- 0x606: 0x41af, 0x607: 0x41cd, 0x608: 0x3cef, 0x609: 0x3cf7, 0x60a: 0x40e7, 0x60b: 0x4105,
- 0x60c: 0x40f1, 0x60d: 0x410f, 0x60e: 0x40fb, 0x60f: 0x4119, 0x610: 0x3dff, 0x611: 0x3e07,
- 0x612: 0x41d7, 0x613: 0x41f5, 0x614: 0x41e1, 0x615: 0x41ff, 0x616: 0x41eb, 0x617: 0x4209,
- 0x618: 0x3d1f, 0x619: 0x3d27, 0x61a: 0x4123, 0x61b: 0x4141, 0x61c: 0x412d, 0x61d: 0x414b,
- 0x61e: 0x4137, 0x61f: 0x4155, 0x620: 0x3ed7, 0x621: 0x3edf, 0x622: 0x4213, 0x623: 0x4231,
- 0x624: 0x421d, 0x625: 0x423b, 0x626: 0x4227, 0x627: 0x4245, 0x628: 0x3d97, 0x629: 0x3d9f,
- 0x62a: 0x415f, 0x62b: 0x417d, 0x62c: 0x4169, 0x62d: 0x4187, 0x62e: 0x4173, 0x62f: 0x4191,
- 0x630: 0x369c, 0x631: 0x3696, 0x632: 0x3da7, 0x633: 0x36a2, 0x634: 0x3daf,
- 0x636: 0x4827, 0x637: 0x3dc7, 0x638: 0x360c, 0x639: 0x3606, 0x63a: 0x35fa, 0x63b: 0x4305,
- 0x63c: 0x3612, 0x63d: 0x8100, 0x63e: 0x01d6, 0x63f: 0xa100,
+ 0x600: 0x3cff, 0x601: 0x3d07, 0x602: 0x41d3, 0x603: 0x41f1, 0x604: 0x41dd, 0x605: 0x41fb,
+ 0x606: 0x41e7, 0x607: 0x4205, 0x608: 0x3c37, 0x609: 0x3c3f, 0x60a: 0x411f, 0x60b: 0x413d,
+ 0x60c: 0x4129, 0x60d: 0x4147, 0x60e: 0x4133, 0x60f: 0x4151, 0x610: 0x3d47, 0x611: 0x3d4f,
+ 0x612: 0x420f, 0x613: 0x422d, 0x614: 0x4219, 0x615: 0x4237, 0x616: 0x4223, 0x617: 0x4241,
+ 0x618: 0x3c67, 0x619: 0x3c6f, 0x61a: 0x415b, 0x61b: 0x4179, 0x61c: 0x4165, 0x61d: 0x4183,
+ 0x61e: 0x416f, 0x61f: 0x418d, 0x620: 0x3e1f, 0x621: 0x3e27, 0x622: 0x424b, 0x623: 0x4269,
+ 0x624: 0x4255, 0x625: 0x4273, 0x626: 0x425f, 0x627: 0x427d, 0x628: 0x3cdf, 0x629: 0x3ce7,
+ 0x62a: 0x4197, 0x62b: 0x41b5, 0x62c: 0x41a1, 0x62d: 0x41bf, 0x62e: 0x41ab, 0x62f: 0x41c9,
+ 0x630: 0x35e4, 0x631: 0x35de, 0x632: 0x3cef, 0x633: 0x35ea, 0x634: 0x3cf7,
+ 0x636: 0x4987, 0x637: 0x3d0f, 0x638: 0x3554, 0x639: 0x354e, 0x63a: 0x3542, 0x63b: 0x43ed,
+ 0x63c: 0x355a, 0x63d: 0x8100, 0x63e: 0x0257, 0x63f: 0xa100,
// Block 0x19, offset 0x640
- 0x640: 0x8100, 0x641: 0x35be, 0x642: 0x3def, 0x643: 0x36b4, 0x644: 0x3df7,
- 0x646: 0x4851, 0x647: 0x3e0f, 0x648: 0x3618, 0x649: 0x430b, 0x64a: 0x3624, 0x64b: 0x4311,
- 0x64c: 0x3630, 0x64d: 0x3ba6, 0x64e: 0x3bad, 0x64f: 0x3bb4, 0x650: 0x36cc, 0x651: 0x36c6,
- 0x652: 0x3e17, 0x653: 0x44fb, 0x656: 0x36d2, 0x657: 0x3e27,
- 0x658: 0x3648, 0x659: 0x3642, 0x65a: 0x3636, 0x65b: 0x4317, 0x65d: 0x3bbb,
- 0x65e: 0x3bc2, 0x65f: 0x3bc9, 0x660: 0x3702, 0x661: 0x36fc, 0x662: 0x3e7f, 0x663: 0x4503,
- 0x664: 0x36e4, 0x665: 0x36ea, 0x666: 0x3708, 0x667: 0x3e8f, 0x668: 0x3678, 0x669: 0x3672,
- 0x66a: 0x3666, 0x66b: 0x4323, 0x66c: 0x3660, 0x66d: 0x35b2, 0x66e: 0x42ff, 0x66f: 0x0081,
- 0x672: 0x3ec7, 0x673: 0x370e, 0x674: 0x3ecf,
- 0x676: 0x489f, 0x677: 0x3ee7, 0x678: 0x3654, 0x679: 0x431d, 0x67a: 0x3684, 0x67b: 0x432f,
- 0x67c: 0x3690, 0x67d: 0x426d, 0x67e: 0xa100,
+ 0x640: 0x8100, 0x641: 0x3506, 0x642: 0x3d37, 0x643: 0x35fc, 0x644: 0x3d3f,
+ 0x646: 0x49b1, 0x647: 0x3d57, 0x648: 0x3560, 0x649: 0x43f3, 0x64a: 0x356c, 0x64b: 0x43f9,
+ 0x64c: 0x3578, 0x64d: 0x3aee, 0x64e: 0x3af5, 0x64f: 0x3afc, 0x650: 0x3614, 0x651: 0x360e,
+ 0x652: 0x3d5f, 0x653: 0x45e3, 0x656: 0x361a, 0x657: 0x3d6f,
+ 0x658: 0x3590, 0x659: 0x358a, 0x65a: 0x357e, 0x65b: 0x43ff, 0x65d: 0x3b03,
+ 0x65e: 0x3b0a, 0x65f: 0x3b11, 0x660: 0x364a, 0x661: 0x3644, 0x662: 0x3dc7, 0x663: 0x45eb,
+ 0x664: 0x362c, 0x665: 0x3632, 0x666: 0x3650, 0x667: 0x3dd7, 0x668: 0x35c0, 0x669: 0x35ba,
+ 0x66a: 0x35ae, 0x66b: 0x440b, 0x66c: 0x35a8, 0x66d: 0x34fa, 0x66e: 0x43e7, 0x66f: 0x0081,
+ 0x672: 0x3e0f, 0x673: 0x3656, 0x674: 0x3e17,
+ 0x676: 0x49ff, 0x677: 0x3e2f, 0x678: 0x359c, 0x679: 0x4405, 0x67a: 0x35cc, 0x67b: 0x4417,
+ 0x67c: 0x35d8, 0x67d: 0x4355, 0x67e: 0xa100,
// Block 0x1a, offset 0x680
- 0x681: 0x3c1d, 0x683: 0xa000, 0x684: 0x3c24, 0x685: 0xa000,
- 0x687: 0x3c2b, 0x688: 0xa000, 0x689: 0x3c32,
+ 0x681: 0x3b65, 0x683: 0xa000, 0x684: 0x3b6c, 0x685: 0xa000,
+ 0x687: 0x3b73, 0x688: 0xa000, 0x689: 0x3b7a,
0x68d: 0xa000,
- 0x6a0: 0x2f7c, 0x6a1: 0xa000, 0x6a2: 0x3c40,
+ 0x6a0: 0x2ec4, 0x6a1: 0xa000, 0x6a2: 0x3b88,
0x6a4: 0xa000, 0x6a5: 0xa000,
- 0x6ad: 0x3c39, 0x6ae: 0x2f77, 0x6af: 0x2f81,
- 0x6b0: 0x3c47, 0x6b1: 0x3c4e, 0x6b2: 0xa000, 0x6b3: 0xa000, 0x6b4: 0x3c55, 0x6b5: 0x3c5c,
- 0x6b6: 0xa000, 0x6b7: 0xa000, 0x6b8: 0x3c63, 0x6b9: 0x3c6a, 0x6ba: 0xa000, 0x6bb: 0xa000,
+ 0x6ad: 0x3b81, 0x6ae: 0x2ebf, 0x6af: 0x2ec9,
+ 0x6b0: 0x3b8f, 0x6b1: 0x3b96, 0x6b2: 0xa000, 0x6b3: 0xa000, 0x6b4: 0x3b9d, 0x6b5: 0x3ba4,
+ 0x6b6: 0xa000, 0x6b7: 0xa000, 0x6b8: 0x3bab, 0x6b9: 0x3bb2, 0x6ba: 0xa000, 0x6bb: 0xa000,
0x6bc: 0xa000, 0x6bd: 0xa000,
// Block 0x1b, offset 0x6c0
- 0x6c0: 0x3c71, 0x6c1: 0x3c78, 0x6c2: 0xa000, 0x6c3: 0xa000, 0x6c4: 0x3c8d, 0x6c5: 0x3c94,
- 0x6c6: 0xa000, 0x6c7: 0xa000, 0x6c8: 0x3c9b, 0x6c9: 0x3ca2,
+ 0x6c0: 0x3bb9, 0x6c1: 0x3bc0, 0x6c2: 0xa000, 0x6c3: 0xa000, 0x6c4: 0x3bd5, 0x6c5: 0x3bdc,
+ 0x6c6: 0xa000, 0x6c7: 0xa000, 0x6c8: 0x3be3, 0x6c9: 0x3bea,
0x6d1: 0xa000,
0x6d2: 0xa000,
0x6e2: 0xa000,
0x6e8: 0xa000, 0x6e9: 0xa000,
- 0x6eb: 0xa000, 0x6ec: 0x3cb7, 0x6ed: 0x3cbe, 0x6ee: 0x3cc5, 0x6ef: 0x3ccc,
+ 0x6eb: 0xa000, 0x6ec: 0x3bff, 0x6ed: 0x3c06, 0x6ee: 0x3c0d, 0x6ef: 0x3c14,
0x6f2: 0xa000, 0x6f3: 0xa000, 0x6f4: 0xa000, 0x6f5: 0xa000,
// Block 0x1c, offset 0x700
0x706: 0xa000, 0x70b: 0xa000,
- 0x70c: 0x3f1f, 0x70d: 0xa000, 0x70e: 0x3f27, 0x70f: 0xa000, 0x710: 0x3f2f, 0x711: 0xa000,
- 0x712: 0x3f37, 0x713: 0xa000, 0x714: 0x3f3f, 0x715: 0xa000, 0x716: 0x3f47, 0x717: 0xa000,
- 0x718: 0x3f4f, 0x719: 0xa000, 0x71a: 0x3f57, 0x71b: 0xa000, 0x71c: 0x3f5f, 0x71d: 0xa000,
- 0x71e: 0x3f67, 0x71f: 0xa000, 0x720: 0x3f6f, 0x721: 0xa000, 0x722: 0x3f77,
- 0x724: 0xa000, 0x725: 0x3f7f, 0x726: 0xa000, 0x727: 0x3f87, 0x728: 0xa000, 0x729: 0x3f8f,
+ 0x70c: 0x3f47, 0x70d: 0xa000, 0x70e: 0x3f4f, 0x70f: 0xa000, 0x710: 0x3f57, 0x711: 0xa000,
+ 0x712: 0x3f5f, 0x713: 0xa000, 0x714: 0x3f67, 0x715: 0xa000, 0x716: 0x3f6f, 0x717: 0xa000,
+ 0x718: 0x3f77, 0x719: 0xa000, 0x71a: 0x3f7f, 0x71b: 0xa000, 0x71c: 0x3f87, 0x71d: 0xa000,
+ 0x71e: 0x3f8f, 0x71f: 0xa000, 0x720: 0x3f97, 0x721: 0xa000, 0x722: 0x3f9f,
+ 0x724: 0xa000, 0x725: 0x3fa7, 0x726: 0xa000, 0x727: 0x3faf, 0x728: 0xa000, 0x729: 0x3fb7,
0x72f: 0xa000,
- 0x730: 0x3f97, 0x731: 0x3f9f, 0x732: 0xa000, 0x733: 0x3fa7, 0x734: 0x3faf, 0x735: 0xa000,
- 0x736: 0x3fb7, 0x737: 0x3fbf, 0x738: 0xa000, 0x739: 0x3fc7, 0x73a: 0x3fcf, 0x73b: 0xa000,
- 0x73c: 0x3fd7, 0x73d: 0x3fdf,
+ 0x730: 0x3fbf, 0x731: 0x3fc7, 0x732: 0xa000, 0x733: 0x3fcf, 0x734: 0x3fd7, 0x735: 0xa000,
+ 0x736: 0x3fdf, 0x737: 0x3fe7, 0x738: 0xa000, 0x739: 0x3fef, 0x73a: 0x3ff7, 0x73b: 0xa000,
+ 0x73c: 0x3fff, 0x73d: 0x4007,
// Block 0x1d, offset 0x740
- 0x754: 0x3f17,
+ 0x754: 0x3f3f,
0x759: 0x9904, 0x75a: 0x9904, 0x75b: 0x8100, 0x75c: 0x8100, 0x75d: 0xa000,
- 0x75e: 0x3fe7,
+ 0x75e: 0x400f,
0x766: 0xa000,
- 0x76b: 0xa000, 0x76c: 0x3ff7, 0x76d: 0xa000, 0x76e: 0x3fff, 0x76f: 0xa000,
- 0x770: 0x4007, 0x771: 0xa000, 0x772: 0x400f, 0x773: 0xa000, 0x774: 0x4017, 0x775: 0xa000,
- 0x776: 0x401f, 0x777: 0xa000, 0x778: 0x4027, 0x779: 0xa000, 0x77a: 0x402f, 0x77b: 0xa000,
- 0x77c: 0x4037, 0x77d: 0xa000, 0x77e: 0x403f, 0x77f: 0xa000,
+ 0x76b: 0xa000, 0x76c: 0x401f, 0x76d: 0xa000, 0x76e: 0x4027, 0x76f: 0xa000,
+ 0x770: 0x402f, 0x771: 0xa000, 0x772: 0x4037, 0x773: 0xa000, 0x774: 0x403f, 0x775: 0xa000,
+ 0x776: 0x4047, 0x777: 0xa000, 0x778: 0x404f, 0x779: 0xa000, 0x77a: 0x4057, 0x77b: 0xa000,
+ 0x77c: 0x405f, 0x77d: 0xa000, 0x77e: 0x4067, 0x77f: 0xa000,
// Block 0x1e, offset 0x780
- 0x780: 0x4047, 0x781: 0xa000, 0x782: 0x404f, 0x784: 0xa000, 0x785: 0x4057,
- 0x786: 0xa000, 0x787: 0x405f, 0x788: 0xa000, 0x789: 0x4067,
- 0x78f: 0xa000, 0x790: 0x406f, 0x791: 0x4077,
- 0x792: 0xa000, 0x793: 0x407f, 0x794: 0x4087, 0x795: 0xa000, 0x796: 0x408f, 0x797: 0x4097,
- 0x798: 0xa000, 0x799: 0x409f, 0x79a: 0x40a7, 0x79b: 0xa000, 0x79c: 0x40af, 0x79d: 0x40b7,
+ 0x780: 0x406f, 0x781: 0xa000, 0x782: 0x4077, 0x784: 0xa000, 0x785: 0x407f,
+ 0x786: 0xa000, 0x787: 0x4087, 0x788: 0xa000, 0x789: 0x408f,
+ 0x78f: 0xa000, 0x790: 0x4097, 0x791: 0x409f,
+ 0x792: 0xa000, 0x793: 0x40a7, 0x794: 0x40af, 0x795: 0xa000, 0x796: 0x40b7, 0x797: 0x40bf,
+ 0x798: 0xa000, 0x799: 0x40c7, 0x79a: 0x40cf, 0x79b: 0xa000, 0x79c: 0x40d7, 0x79d: 0x40df,
0x7af: 0xa000,
- 0x7b0: 0xa000, 0x7b1: 0xa000, 0x7b2: 0xa000, 0x7b4: 0x3fef,
- 0x7b7: 0x40bf, 0x7b8: 0x40c7, 0x7b9: 0x40cf, 0x7ba: 0x40d7,
- 0x7bd: 0xa000, 0x7be: 0x40df,
+ 0x7b0: 0xa000, 0x7b1: 0xa000, 0x7b2: 0xa000, 0x7b4: 0x4017,
+ 0x7b7: 0x40e7, 0x7b8: 0x40ef, 0x7b9: 0x40f7, 0x7ba: 0x40ff,
+ 0x7bd: 0xa000, 0x7be: 0x4107,
// Block 0x1f, offset 0x7c0
- 0x7c0: 0x137a, 0x7c1: 0x0cfe, 0x7c2: 0x13d6, 0x7c3: 0x13a2, 0x7c4: 0x0e5a, 0x7c5: 0x06ee,
- 0x7c6: 0x08e2, 0x7c7: 0x162e, 0x7c8: 0x162e, 0x7c9: 0x0a0e, 0x7ca: 0x1462, 0x7cb: 0x0946,
- 0x7cc: 0x0a0a, 0x7cd: 0x0bf2, 0x7ce: 0x0fd2, 0x7cf: 0x1162, 0x7d0: 0x129a, 0x7d1: 0x12d6,
- 0x7d2: 0x130a, 0x7d3: 0x141e, 0x7d4: 0x0d76, 0x7d5: 0x0e02, 0x7d6: 0x0eae, 0x7d7: 0x0f46,
- 0x7d8: 0x1262, 0x7d9: 0x144a, 0x7da: 0x1576, 0x7db: 0x0712, 0x7dc: 0x08b6, 0x7dd: 0x0d8a,
- 0x7de: 0x0ed2, 0x7df: 0x1296, 0x7e0: 0x15c6, 0x7e1: 0x0ab6, 0x7e2: 0x0e7a, 0x7e3: 0x1286,
- 0x7e4: 0x131a, 0x7e5: 0x0c26, 0x7e6: 0x11be, 0x7e7: 0x12e2, 0x7e8: 0x0b22, 0x7e9: 0x0d12,
- 0x7ea: 0x0e1a, 0x7eb: 0x0f1e, 0x7ec: 0x142a, 0x7ed: 0x0752, 0x7ee: 0x07ea, 0x7ef: 0x0856,
- 0x7f0: 0x0c8e, 0x7f1: 0x0d82, 0x7f2: 0x0ece, 0x7f3: 0x0ff2, 0x7f4: 0x117a, 0x7f5: 0x128e,
- 0x7f6: 0x12a6, 0x7f7: 0x13ca, 0x7f8: 0x14f2, 0x7f9: 0x15a6, 0x7fa: 0x15c2, 0x7fb: 0x102e,
- 0x7fc: 0x106e, 0x7fd: 0x1126, 0x7fe: 0x1246, 0x7ff: 0x147e,
+ 0x7c0: 0x1472, 0x7c1: 0x0df6, 0x7c2: 0x14ce, 0x7c3: 0x149a, 0x7c4: 0x0f52, 0x7c5: 0x07e6,
+ 0x7c6: 0x09da, 0x7c7: 0x1726, 0x7c8: 0x1726, 0x7c9: 0x0b06, 0x7ca: 0x155a, 0x7cb: 0x0a3e,
+ 0x7cc: 0x0b02, 0x7cd: 0x0cea, 0x7ce: 0x10ca, 0x7cf: 0x125a, 0x7d0: 0x1392, 0x7d1: 0x13ce,
+ 0x7d2: 0x1402, 0x7d3: 0x1516, 0x7d4: 0x0e6e, 0x7d5: 0x0efa, 0x7d6: 0x0fa6, 0x7d7: 0x103e,
+ 0x7d8: 0x135a, 0x7d9: 0x1542, 0x7da: 0x166e, 0x7db: 0x080a, 0x7dc: 0x09ae, 0x7dd: 0x0e82,
+ 0x7de: 0x0fca, 0x7df: 0x138e, 0x7e0: 0x16be, 0x7e1: 0x0bae, 0x7e2: 0x0f72, 0x7e3: 0x137e,
+ 0x7e4: 0x1412, 0x7e5: 0x0d1e, 0x7e6: 0x12b6, 0x7e7: 0x13da, 0x7e8: 0x0c1a, 0x7e9: 0x0e0a,
+ 0x7ea: 0x0f12, 0x7eb: 0x1016, 0x7ec: 0x1522, 0x7ed: 0x084a, 0x7ee: 0x08e2, 0x7ef: 0x094e,
+ 0x7f0: 0x0d86, 0x7f1: 0x0e7a, 0x7f2: 0x0fc6, 0x7f3: 0x10ea, 0x7f4: 0x1272, 0x7f5: 0x1386,
+ 0x7f6: 0x139e, 0x7f7: 0x14c2, 0x7f8: 0x15ea, 0x7f9: 0x169e, 0x7fa: 0x16ba, 0x7fb: 0x1126,
+ 0x7fc: 0x1166, 0x7fd: 0x121e, 0x7fe: 0x133e, 0x7ff: 0x1576,
// Block 0x20, offset 0x800
- 0x800: 0x15ce, 0x801: 0x134e, 0x802: 0x09ca, 0x803: 0x0b3e, 0x804: 0x10de, 0x805: 0x119e,
- 0x806: 0x0f02, 0x807: 0x1036, 0x808: 0x139a, 0x809: 0x14ea, 0x80a: 0x09c6, 0x80b: 0x0a92,
- 0x80c: 0x0d7a, 0x80d: 0x0e2e, 0x80e: 0x0e62, 0x80f: 0x1116, 0x810: 0x113e, 0x811: 0x14aa,
- 0x812: 0x0852, 0x813: 0x11aa, 0x814: 0x07f6, 0x815: 0x07f2, 0x816: 0x109a, 0x817: 0x112a,
- 0x818: 0x125e, 0x819: 0x14b2, 0x81a: 0x136a, 0x81b: 0x0c2a, 0x81c: 0x0d76, 0x81d: 0x135a,
- 0x81e: 0x06fa, 0x81f: 0x0a66, 0x820: 0x0b96, 0x821: 0x0f32, 0x822: 0x0fb2, 0x823: 0x0876,
- 0x824: 0x103e, 0x825: 0x0762, 0x826: 0x0b7a, 0x827: 0x06da, 0x828: 0x0dee, 0x829: 0x0ca6,
- 0x82a: 0x1112, 0x82b: 0x08ca, 0x82c: 0x09b6, 0x82d: 0x0ffe, 0x82e: 0x1266, 0x82f: 0x133e,
- 0x830: 0x0dba, 0x831: 0x13fa, 0x832: 0x0de6, 0x833: 0x0c3a, 0x834: 0x121e, 0x835: 0x0c5a,
- 0x836: 0x0fae, 0x837: 0x072e, 0x838: 0x07aa, 0x839: 0x07ee, 0x83a: 0x0d56, 0x83b: 0x10fe,
- 0x83c: 0x11f6, 0x83d: 0x134a, 0x83e: 0x145e, 0x83f: 0x085e,
+ 0x800: 0x16c6, 0x801: 0x1446, 0x802: 0x0ac2, 0x803: 0x0c36, 0x804: 0x11d6, 0x805: 0x1296,
+ 0x806: 0x0ffa, 0x807: 0x112e, 0x808: 0x1492, 0x809: 0x15e2, 0x80a: 0x0abe, 0x80b: 0x0b8a,
+ 0x80c: 0x0e72, 0x80d: 0x0f26, 0x80e: 0x0f5a, 0x80f: 0x120e, 0x810: 0x1236, 0x811: 0x15a2,
+ 0x812: 0x094a, 0x813: 0x12a2, 0x814: 0x08ee, 0x815: 0x08ea, 0x816: 0x1192, 0x817: 0x1222,
+ 0x818: 0x1356, 0x819: 0x15aa, 0x81a: 0x1462, 0x81b: 0x0d22, 0x81c: 0x0e6e, 0x81d: 0x1452,
+ 0x81e: 0x07f2, 0x81f: 0x0b5e, 0x820: 0x0c8e, 0x821: 0x102a, 0x822: 0x10aa, 0x823: 0x096e,
+ 0x824: 0x1136, 0x825: 0x085a, 0x826: 0x0c72, 0x827: 0x07d2, 0x828: 0x0ee6, 0x829: 0x0d9e,
+ 0x82a: 0x120a, 0x82b: 0x09c2, 0x82c: 0x0aae, 0x82d: 0x10f6, 0x82e: 0x135e, 0x82f: 0x1436,
+ 0x830: 0x0eb2, 0x831: 0x14f2, 0x832: 0x0ede, 0x833: 0x0d32, 0x834: 0x1316, 0x835: 0x0d52,
+ 0x836: 0x10a6, 0x837: 0x0826, 0x838: 0x08a2, 0x839: 0x08e6, 0x83a: 0x0e4e, 0x83b: 0x11f6,
+ 0x83c: 0x12ee, 0x83d: 0x1442, 0x83e: 0x1556, 0x83f: 0x0956,
// Block 0x21, offset 0x840
- 0x840: 0x0912, 0x841: 0x0a1a, 0x842: 0x0b32, 0x843: 0x0cc2, 0x844: 0x0e7e, 0x845: 0x1042,
- 0x846: 0x149a, 0x847: 0x157e, 0x848: 0x15d2, 0x849: 0x15ea, 0x84a: 0x083a, 0x84b: 0x0cf6,
- 0x84c: 0x0da6, 0x84d: 0x13ee, 0x84e: 0x0afe, 0x84f: 0x0bda, 0x850: 0x0bf6, 0x851: 0x0c86,
- 0x852: 0x0e6e, 0x853: 0x0eba, 0x854: 0x0f6a, 0x855: 0x108e, 0x856: 0x1132, 0x857: 0x1196,
- 0x858: 0x13de, 0x859: 0x126e, 0x85a: 0x1406, 0x85b: 0x1482, 0x85c: 0x0812, 0x85d: 0x083e,
- 0x85e: 0x0926, 0x85f: 0x0eaa, 0x860: 0x12f6, 0x861: 0x133e, 0x862: 0x0b1e, 0x863: 0x0b8e,
- 0x864: 0x0c52, 0x865: 0x0db2, 0x866: 0x10da, 0x867: 0x0f26, 0x868: 0x073e, 0x869: 0x0982,
- 0x86a: 0x0a66, 0x86b: 0x0aca, 0x86c: 0x0b9a, 0x86d: 0x0f42, 0x86e: 0x0f5e, 0x86f: 0x116e,
- 0x870: 0x118e, 0x871: 0x1466, 0x872: 0x14e6, 0x873: 0x14f6, 0x874: 0x1532, 0x875: 0x0756,
- 0x876: 0x1082, 0x877: 0x1452, 0x878: 0x14ce, 0x879: 0x0bb2, 0x87a: 0x071a, 0x87b: 0x077a,
- 0x87c: 0x0a6a, 0x87d: 0x0a8a, 0x87e: 0x0cb2, 0x87f: 0x0d76,
+ 0x840: 0x0a0a, 0x841: 0x0b12, 0x842: 0x0c2a, 0x843: 0x0dba, 0x844: 0x0f76, 0x845: 0x113a,
+ 0x846: 0x1592, 0x847: 0x1676, 0x848: 0x16ca, 0x849: 0x16e2, 0x84a: 0x0932, 0x84b: 0x0dee,
+ 0x84c: 0x0e9e, 0x84d: 0x14e6, 0x84e: 0x0bf6, 0x84f: 0x0cd2, 0x850: 0x0cee, 0x851: 0x0d7e,
+ 0x852: 0x0f66, 0x853: 0x0fb2, 0x854: 0x1062, 0x855: 0x1186, 0x856: 0x122a, 0x857: 0x128e,
+ 0x858: 0x14d6, 0x859: 0x1366, 0x85a: 0x14fe, 0x85b: 0x157a, 0x85c: 0x090a, 0x85d: 0x0936,
+ 0x85e: 0x0a1e, 0x85f: 0x0fa2, 0x860: 0x13ee, 0x861: 0x1436, 0x862: 0x0c16, 0x863: 0x0c86,
+ 0x864: 0x0d4a, 0x865: 0x0eaa, 0x866: 0x11d2, 0x867: 0x101e, 0x868: 0x0836, 0x869: 0x0a7a,
+ 0x86a: 0x0b5e, 0x86b: 0x0bc2, 0x86c: 0x0c92, 0x86d: 0x103a, 0x86e: 0x1056, 0x86f: 0x1266,
+ 0x870: 0x1286, 0x871: 0x155e, 0x872: 0x15de, 0x873: 0x15ee, 0x874: 0x162a, 0x875: 0x084e,
+ 0x876: 0x117a, 0x877: 0x154a, 0x878: 0x15c6, 0x879: 0x0caa, 0x87a: 0x0812, 0x87b: 0x0872,
+ 0x87c: 0x0b62, 0x87d: 0x0b82, 0x87e: 0x0daa, 0x87f: 0x0e6e,
// Block 0x22, offset 0x880
- 0x880: 0x0ec6, 0x881: 0x0fce, 0x882: 0x127a, 0x883: 0x141a, 0x884: 0x1626, 0x885: 0x0ce6,
- 0x886: 0x14a6, 0x887: 0x0836, 0x888: 0x0d32, 0x889: 0x0d3e, 0x88a: 0x0e12, 0x88b: 0x0e4a,
- 0x88c: 0x0f4e, 0x88d: 0x0faa, 0x88e: 0x102a, 0x88f: 0x110e, 0x890: 0x153e, 0x891: 0x07b2,
- 0x892: 0x0c06, 0x893: 0x14b6, 0x894: 0x076a, 0x895: 0x0aae, 0x896: 0x0e32, 0x897: 0x13e2,
- 0x898: 0x0b6a, 0x899: 0x0bba, 0x89a: 0x0d46, 0x89b: 0x0f32, 0x89c: 0x14be, 0x89d: 0x081a,
- 0x89e: 0x0902, 0x89f: 0x0a9a, 0x8a0: 0x0cd6, 0x8a1: 0x0d22, 0x8a2: 0x0d62, 0x8a3: 0x0df6,
- 0x8a4: 0x0f4a, 0x8a5: 0x0fbe, 0x8a6: 0x115a, 0x8a7: 0x12fa, 0x8a8: 0x1306, 0x8a9: 0x145a,
- 0x8aa: 0x14da, 0x8ab: 0x0886, 0x8ac: 0x0e4e, 0x8ad: 0x0906, 0x8ae: 0x0eca, 0x8af: 0x0f6e,
- 0x8b0: 0x128a, 0x8b1: 0x14c2, 0x8b2: 0x15ae, 0x8b3: 0x15d6, 0x8b4: 0x0d3a, 0x8b5: 0x0e2a,
- 0x8b6: 0x11c6, 0x8b7: 0x10ba, 0x8b8: 0x10c6, 0x8b9: 0x10ea, 0x8ba: 0x0f1a, 0x8bb: 0x0ea2,
- 0x8bc: 0x1366, 0x8bd: 0x0736, 0x8be: 0x122e, 0x8bf: 0x081e,
+ 0x880: 0x0fbe, 0x881: 0x10c6, 0x882: 0x1372, 0x883: 0x1512, 0x884: 0x171e, 0x885: 0x0dde,
+ 0x886: 0x159e, 0x887: 0x092e, 0x888: 0x0e2a, 0x889: 0x0e36, 0x88a: 0x0f0a, 0x88b: 0x0f42,
+ 0x88c: 0x1046, 0x88d: 0x10a2, 0x88e: 0x1122, 0x88f: 0x1206, 0x890: 0x1636, 0x891: 0x08aa,
+ 0x892: 0x0cfe, 0x893: 0x15ae, 0x894: 0x0862, 0x895: 0x0ba6, 0x896: 0x0f2a, 0x897: 0x14da,
+ 0x898: 0x0c62, 0x899: 0x0cb2, 0x89a: 0x0e3e, 0x89b: 0x102a, 0x89c: 0x15b6, 0x89d: 0x0912,
+ 0x89e: 0x09fa, 0x89f: 0x0b92, 0x8a0: 0x0dce, 0x8a1: 0x0e1a, 0x8a2: 0x0e5a, 0x8a3: 0x0eee,
+ 0x8a4: 0x1042, 0x8a5: 0x10b6, 0x8a6: 0x1252, 0x8a7: 0x13f2, 0x8a8: 0x13fe, 0x8a9: 0x1552,
+ 0x8aa: 0x15d2, 0x8ab: 0x097e, 0x8ac: 0x0f46, 0x8ad: 0x09fe, 0x8ae: 0x0fc2, 0x8af: 0x1066,
+ 0x8b0: 0x1382, 0x8b1: 0x15ba, 0x8b2: 0x16a6, 0x8b3: 0x16ce, 0x8b4: 0x0e32, 0x8b5: 0x0f22,
+ 0x8b6: 0x12be, 0x8b7: 0x11b2, 0x8b8: 0x11be, 0x8b9: 0x11e2, 0x8ba: 0x1012, 0x8bb: 0x0f9a,
+ 0x8bc: 0x145e, 0x8bd: 0x082e, 0x8be: 0x1326, 0x8bf: 0x0916,
// Block 0x23, offset 0x8c0
- 0x8c0: 0x080e, 0x8c1: 0x0b0e, 0x8c2: 0x0c2e, 0x8c3: 0x10f6, 0x8c4: 0x0a56, 0x8c5: 0x0e06,
- 0x8c6: 0x0cf2, 0x8c7: 0x13ea, 0x8c8: 0x12ea, 0x8c9: 0x14ae, 0x8ca: 0x1326, 0x8cb: 0x0b2a,
- 0x8cc: 0x078a, 0x8cd: 0x095e, 0x8d0: 0x09b2,
- 0x8d2: 0x0ce2, 0x8d5: 0x07fa, 0x8d6: 0x0f22, 0x8d7: 0x0fe6,
- 0x8d8: 0x104a, 0x8d9: 0x1066, 0x8da: 0x106a, 0x8db: 0x107e, 0x8dc: 0x14fe, 0x8dd: 0x10ee,
- 0x8de: 0x1172, 0x8e0: 0x1292, 0x8e2: 0x1356,
- 0x8e5: 0x140a, 0x8e6: 0x1436,
- 0x8ea: 0x1552, 0x8eb: 0x1556, 0x8ec: 0x155a, 0x8ed: 0x15be, 0x8ee: 0x142e, 0x8ef: 0x14ca,
- 0x8f0: 0x075a, 0x8f1: 0x077e, 0x8f2: 0x0792, 0x8f3: 0x084e, 0x8f4: 0x085a, 0x8f5: 0x089a,
- 0x8f6: 0x094e, 0x8f7: 0x096a, 0x8f8: 0x0972, 0x8f9: 0x09ae, 0x8fa: 0x09ba, 0x8fb: 0x0a96,
- 0x8fc: 0x0a9e, 0x8fd: 0x0ba6, 0x8fe: 0x0bce, 0x8ff: 0x0bd6,
+ 0x8c0: 0x0906, 0x8c1: 0x0c06, 0x8c2: 0x0d26, 0x8c3: 0x11ee, 0x8c4: 0x0b4e, 0x8c5: 0x0efe,
+ 0x8c6: 0x0dea, 0x8c7: 0x14e2, 0x8c8: 0x13e2, 0x8c9: 0x15a6, 0x8ca: 0x141e, 0x8cb: 0x0c22,
+ 0x8cc: 0x0882, 0x8cd: 0x0a56, 0x8d0: 0x0aaa,
+ 0x8d2: 0x0dda, 0x8d5: 0x08f2, 0x8d6: 0x101a, 0x8d7: 0x10de,
+ 0x8d8: 0x1142, 0x8d9: 0x115e, 0x8da: 0x1162, 0x8db: 0x1176, 0x8dc: 0x15f6, 0x8dd: 0x11e6,
+ 0x8de: 0x126a, 0x8e0: 0x138a, 0x8e2: 0x144e,
+ 0x8e5: 0x1502, 0x8e6: 0x152e,
+ 0x8ea: 0x164a, 0x8eb: 0x164e, 0x8ec: 0x1652, 0x8ed: 0x16b6, 0x8ee: 0x1526, 0x8ef: 0x15c2,
+ 0x8f0: 0x0852, 0x8f1: 0x0876, 0x8f2: 0x088a, 0x8f3: 0x0946, 0x8f4: 0x0952, 0x8f5: 0x0992,
+ 0x8f6: 0x0a46, 0x8f7: 0x0a62, 0x8f8: 0x0a6a, 0x8f9: 0x0aa6, 0x8fa: 0x0ab2, 0x8fb: 0x0b8e,
+ 0x8fc: 0x0b96, 0x8fd: 0x0c9e, 0x8fe: 0x0cc6, 0x8ff: 0x0cce,
// Block 0x24, offset 0x900
- 0x900: 0x0bee, 0x901: 0x0c9a, 0x902: 0x0cca, 0x903: 0x0cea, 0x904: 0x0d5a, 0x905: 0x0e1e,
- 0x906: 0x0e3a, 0x907: 0x0e6a, 0x908: 0x0ebe, 0x909: 0x0ede, 0x90a: 0x0f52, 0x90b: 0x1032,
- 0x90c: 0x104e, 0x90d: 0x1056, 0x90e: 0x1052, 0x90f: 0x105a, 0x910: 0x105e, 0x911: 0x1062,
- 0x912: 0x1076, 0x913: 0x107a, 0x914: 0x109e, 0x915: 0x10b2, 0x916: 0x10ce, 0x917: 0x1132,
- 0x918: 0x113a, 0x919: 0x1142, 0x91a: 0x1156, 0x91b: 0x117e, 0x91c: 0x11ce, 0x91d: 0x1202,
- 0x91e: 0x1202, 0x91f: 0x126a, 0x920: 0x1312, 0x921: 0x132a, 0x922: 0x135e, 0x923: 0x1362,
- 0x924: 0x13a6, 0x925: 0x13aa, 0x926: 0x1402, 0x927: 0x140a, 0x928: 0x14de, 0x929: 0x1522,
- 0x92a: 0x153a, 0x92b: 0x0b9e, 0x92c: 0x1721, 0x92d: 0x11e6,
- 0x930: 0x06e2, 0x931: 0x07e6, 0x932: 0x07a6, 0x933: 0x074e, 0x934: 0x078e, 0x935: 0x07ba,
- 0x936: 0x084a, 0x937: 0x0866, 0x938: 0x094e, 0x939: 0x093a, 0x93a: 0x094a, 0x93b: 0x0966,
- 0x93c: 0x09b2, 0x93d: 0x09c2, 0x93e: 0x0a06, 0x93f: 0x0a12,
+ 0x900: 0x0ce6, 0x901: 0x0d92, 0x902: 0x0dc2, 0x903: 0x0de2, 0x904: 0x0e52, 0x905: 0x0f16,
+ 0x906: 0x0f32, 0x907: 0x0f62, 0x908: 0x0fb6, 0x909: 0x0fd6, 0x90a: 0x104a, 0x90b: 0x112a,
+ 0x90c: 0x1146, 0x90d: 0x114e, 0x90e: 0x114a, 0x90f: 0x1152, 0x910: 0x1156, 0x911: 0x115a,
+ 0x912: 0x116e, 0x913: 0x1172, 0x914: 0x1196, 0x915: 0x11aa, 0x916: 0x11c6, 0x917: 0x122a,
+ 0x918: 0x1232, 0x919: 0x123a, 0x91a: 0x124e, 0x91b: 0x1276, 0x91c: 0x12c6, 0x91d: 0x12fa,
+ 0x91e: 0x12fa, 0x91f: 0x1362, 0x920: 0x140a, 0x921: 0x1422, 0x922: 0x1456, 0x923: 0x145a,
+ 0x924: 0x149e, 0x925: 0x14a2, 0x926: 0x14fa, 0x927: 0x1502, 0x928: 0x15d6, 0x929: 0x161a,
+ 0x92a: 0x1632, 0x92b: 0x0c96, 0x92c: 0x184b, 0x92d: 0x12de,
+ 0x930: 0x07da, 0x931: 0x08de, 0x932: 0x089e, 0x933: 0x0846, 0x934: 0x0886, 0x935: 0x08b2,
+ 0x936: 0x0942, 0x937: 0x095e, 0x938: 0x0a46, 0x939: 0x0a32, 0x93a: 0x0a42, 0x93b: 0x0a5e,
+ 0x93c: 0x0aaa, 0x93d: 0x0aba, 0x93e: 0x0afe, 0x93f: 0x0b0a,
// Block 0x25, offset 0x940
- 0x940: 0x0a2e, 0x941: 0x0a3e, 0x942: 0x0b26, 0x943: 0x0b2e, 0x944: 0x0b5e, 0x945: 0x0b7e,
- 0x946: 0x0bae, 0x947: 0x0bc6, 0x948: 0x0bb6, 0x949: 0x0bd6, 0x94a: 0x0bca, 0x94b: 0x0bee,
- 0x94c: 0x0c0a, 0x94d: 0x0c62, 0x94e: 0x0c6e, 0x94f: 0x0c76, 0x950: 0x0c9e, 0x951: 0x0ce2,
- 0x952: 0x0d12, 0x953: 0x0d16, 0x954: 0x0d2a, 0x955: 0x0daa, 0x956: 0x0dba, 0x957: 0x0e12,
- 0x958: 0x0e5e, 0x959: 0x0e56, 0x95a: 0x0e6a, 0x95b: 0x0e86, 0x95c: 0x0ebe, 0x95d: 0x1016,
- 0x95e: 0x0ee2, 0x95f: 0x0f16, 0x960: 0x0f22, 0x961: 0x0f62, 0x962: 0x0f7e, 0x963: 0x0fa2,
- 0x964: 0x0fc6, 0x965: 0x0fca, 0x966: 0x0fe6, 0x967: 0x0fea, 0x968: 0x0ffa, 0x969: 0x100e,
- 0x96a: 0x100a, 0x96b: 0x103a, 0x96c: 0x10b6, 0x96d: 0x10ce, 0x96e: 0x10e6, 0x96f: 0x111e,
- 0x970: 0x1132, 0x971: 0x114e, 0x972: 0x117e, 0x973: 0x1232, 0x974: 0x125a, 0x975: 0x12ce,
- 0x976: 0x1316, 0x977: 0x1322, 0x978: 0x132a, 0x979: 0x1342, 0x97a: 0x1356, 0x97b: 0x1346,
- 0x97c: 0x135e, 0x97d: 0x135a, 0x97e: 0x1352, 0x97f: 0x1362,
+ 0x940: 0x0b26, 0x941: 0x0b36, 0x942: 0x0c1e, 0x943: 0x0c26, 0x944: 0x0c56, 0x945: 0x0c76,
+ 0x946: 0x0ca6, 0x947: 0x0cbe, 0x948: 0x0cae, 0x949: 0x0cce, 0x94a: 0x0cc2, 0x94b: 0x0ce6,
+ 0x94c: 0x0d02, 0x94d: 0x0d5a, 0x94e: 0x0d66, 0x94f: 0x0d6e, 0x950: 0x0d96, 0x951: 0x0dda,
+ 0x952: 0x0e0a, 0x953: 0x0e0e, 0x954: 0x0e22, 0x955: 0x0ea2, 0x956: 0x0eb2, 0x957: 0x0f0a,
+ 0x958: 0x0f56, 0x959: 0x0f4e, 0x95a: 0x0f62, 0x95b: 0x0f7e, 0x95c: 0x0fb6, 0x95d: 0x110e,
+ 0x95e: 0x0fda, 0x95f: 0x100e, 0x960: 0x101a, 0x961: 0x105a, 0x962: 0x1076, 0x963: 0x109a,
+ 0x964: 0x10be, 0x965: 0x10c2, 0x966: 0x10de, 0x967: 0x10e2, 0x968: 0x10f2, 0x969: 0x1106,
+ 0x96a: 0x1102, 0x96b: 0x1132, 0x96c: 0x11ae, 0x96d: 0x11c6, 0x96e: 0x11de, 0x96f: 0x1216,
+ 0x970: 0x122a, 0x971: 0x1246, 0x972: 0x1276, 0x973: 0x132a, 0x974: 0x1352, 0x975: 0x13c6,
+ 0x976: 0x140e, 0x977: 0x141a, 0x978: 0x1422, 0x979: 0x143a, 0x97a: 0x144e, 0x97b: 0x143e,
+ 0x97c: 0x1456, 0x97d: 0x1452, 0x97e: 0x144a, 0x97f: 0x145a,
// Block 0x26, offset 0x980
- 0x980: 0x136e, 0x981: 0x13aa, 0x982: 0x13e6, 0x983: 0x1416, 0x984: 0x144e, 0x985: 0x146e,
- 0x986: 0x14ba, 0x987: 0x14de, 0x988: 0x14fe, 0x989: 0x1512, 0x98a: 0x1522, 0x98b: 0x152e,
- 0x98c: 0x153a, 0x98d: 0x158e, 0x98e: 0x162e, 0x98f: 0x16b8, 0x990: 0x16b3, 0x991: 0x16e5,
- 0x992: 0x060a, 0x993: 0x0632, 0x994: 0x0636, 0x995: 0x1767, 0x996: 0x1794, 0x997: 0x180c,
- 0x998: 0x161a, 0x999: 0x162a,
+ 0x980: 0x1466, 0x981: 0x14a2, 0x982: 0x14de, 0x983: 0x150e, 0x984: 0x1546, 0x985: 0x1566,
+ 0x986: 0x15b2, 0x987: 0x15d6, 0x988: 0x15f6, 0x989: 0x160a, 0x98a: 0x161a, 0x98b: 0x1626,
+ 0x98c: 0x1632, 0x98d: 0x1686, 0x98e: 0x1726, 0x98f: 0x17e2, 0x990: 0x17dd, 0x991: 0x180f,
+ 0x992: 0x0702, 0x993: 0x072a, 0x994: 0x072e, 0x995: 0x1891, 0x996: 0x18be, 0x997: 0x1936,
+ 0x998: 0x1712, 0x999: 0x1722,
// Block 0x27, offset 0x9c0
- 0x9c0: 0x06fe, 0x9c1: 0x06f6, 0x9c2: 0x0706, 0x9c3: 0x164a, 0x9c4: 0x074a, 0x9c5: 0x075a,
- 0x9c6: 0x075e, 0x9c7: 0x0766, 0x9c8: 0x076e, 0x9c9: 0x0772, 0x9ca: 0x077e, 0x9cb: 0x0776,
- 0x9cc: 0x05b6, 0x9cd: 0x165e, 0x9ce: 0x0792, 0x9cf: 0x0796, 0x9d0: 0x079a, 0x9d1: 0x07b6,
- 0x9d2: 0x164f, 0x9d3: 0x05ba, 0x9d4: 0x07a2, 0x9d5: 0x07c2, 0x9d6: 0x1659, 0x9d7: 0x07d2,
- 0x9d8: 0x07da, 0x9d9: 0x073a, 0x9da: 0x07e2, 0x9db: 0x07e6, 0x9dc: 0x1834, 0x9dd: 0x0802,
- 0x9de: 0x080a, 0x9df: 0x05c2, 0x9e0: 0x0822, 0x9e1: 0x0826, 0x9e2: 0x082e, 0x9e3: 0x0832,
- 0x9e4: 0x05c6, 0x9e5: 0x084a, 0x9e6: 0x084e, 0x9e7: 0x085a, 0x9e8: 0x0866, 0x9e9: 0x086a,
- 0x9ea: 0x086e, 0x9eb: 0x0876, 0x9ec: 0x0896, 0x9ed: 0x089a, 0x9ee: 0x08a2, 0x9ef: 0x08b2,
- 0x9f0: 0x08ba, 0x9f1: 0x08be, 0x9f2: 0x08be, 0x9f3: 0x08be, 0x9f4: 0x166d, 0x9f5: 0x0e96,
- 0x9f6: 0x08d2, 0x9f7: 0x08da, 0x9f8: 0x1672, 0x9f9: 0x08e6, 0x9fa: 0x08ee, 0x9fb: 0x08f6,
- 0x9fc: 0x091e, 0x9fd: 0x090a, 0x9fe: 0x0916, 0x9ff: 0x091a,
+ 0x9c0: 0x07f6, 0x9c1: 0x07ee, 0x9c2: 0x07fe, 0x9c3: 0x1774, 0x9c4: 0x0842, 0x9c5: 0x0852,
+ 0x9c6: 0x0856, 0x9c7: 0x085e, 0x9c8: 0x0866, 0x9c9: 0x086a, 0x9ca: 0x0876, 0x9cb: 0x086e,
+ 0x9cc: 0x06ae, 0x9cd: 0x1788, 0x9ce: 0x088a, 0x9cf: 0x088e, 0x9d0: 0x0892, 0x9d1: 0x08ae,
+ 0x9d2: 0x1779, 0x9d3: 0x06b2, 0x9d4: 0x089a, 0x9d5: 0x08ba, 0x9d6: 0x1783, 0x9d7: 0x08ca,
+ 0x9d8: 0x08d2, 0x9d9: 0x0832, 0x9da: 0x08da, 0x9db: 0x08de, 0x9dc: 0x195e, 0x9dd: 0x08fa,
+ 0x9de: 0x0902, 0x9df: 0x06ba, 0x9e0: 0x091a, 0x9e1: 0x091e, 0x9e2: 0x0926, 0x9e3: 0x092a,
+ 0x9e4: 0x06be, 0x9e5: 0x0942, 0x9e6: 0x0946, 0x9e7: 0x0952, 0x9e8: 0x095e, 0x9e9: 0x0962,
+ 0x9ea: 0x0966, 0x9eb: 0x096e, 0x9ec: 0x098e, 0x9ed: 0x0992, 0x9ee: 0x099a, 0x9ef: 0x09aa,
+ 0x9f0: 0x09b2, 0x9f1: 0x09b6, 0x9f2: 0x09b6, 0x9f3: 0x09b6, 0x9f4: 0x1797, 0x9f5: 0x0f8e,
+ 0x9f6: 0x09ca, 0x9f7: 0x09d2, 0x9f8: 0x179c, 0x9f9: 0x09de, 0x9fa: 0x09e6, 0x9fb: 0x09ee,
+ 0x9fc: 0x0a16, 0x9fd: 0x0a02, 0x9fe: 0x0a0e, 0x9ff: 0x0a12,
// Block 0x28, offset 0xa00
- 0xa00: 0x0922, 0xa01: 0x092a, 0xa02: 0x092e, 0xa03: 0x0936, 0xa04: 0x093e, 0xa05: 0x0942,
- 0xa06: 0x0942, 0xa07: 0x094a, 0xa08: 0x0952, 0xa09: 0x0956, 0xa0a: 0x0962, 0xa0b: 0x0986,
- 0xa0c: 0x096a, 0xa0d: 0x098a, 0xa0e: 0x096e, 0xa0f: 0x0976, 0xa10: 0x080e, 0xa11: 0x09d2,
- 0xa12: 0x099a, 0xa13: 0x099e, 0xa14: 0x09a2, 0xa15: 0x0996, 0xa16: 0x09aa, 0xa17: 0x09a6,
- 0xa18: 0x09be, 0xa19: 0x1677, 0xa1a: 0x09da, 0xa1b: 0x09de, 0xa1c: 0x09e6, 0xa1d: 0x09f2,
- 0xa1e: 0x09fa, 0xa1f: 0x0a16, 0xa20: 0x167c, 0xa21: 0x1681, 0xa22: 0x0a22, 0xa23: 0x0a26,
- 0xa24: 0x0a2a, 0xa25: 0x0a1e, 0xa26: 0x0a32, 0xa27: 0x05ca, 0xa28: 0x05ce, 0xa29: 0x0a3a,
- 0xa2a: 0x0a42, 0xa2b: 0x0a42, 0xa2c: 0x1686, 0xa2d: 0x0a5e, 0xa2e: 0x0a62, 0xa2f: 0x0a66,
- 0xa30: 0x0a6e, 0xa31: 0x168b, 0xa32: 0x0a76, 0xa33: 0x0a7a, 0xa34: 0x0b52, 0xa35: 0x0a82,
- 0xa36: 0x05d2, 0xa37: 0x0a8e, 0xa38: 0x0a9e, 0xa39: 0x0aaa, 0xa3a: 0x0aa6, 0xa3b: 0x1695,
- 0xa3c: 0x0ab2, 0xa3d: 0x169a, 0xa3e: 0x0abe, 0xa3f: 0x0aba,
+ 0xa00: 0x0a1a, 0xa01: 0x0a22, 0xa02: 0x0a26, 0xa03: 0x0a2e, 0xa04: 0x0a36, 0xa05: 0x0a3a,
+ 0xa06: 0x0a3a, 0xa07: 0x0a42, 0xa08: 0x0a4a, 0xa09: 0x0a4e, 0xa0a: 0x0a5a, 0xa0b: 0x0a7e,
+ 0xa0c: 0x0a62, 0xa0d: 0x0a82, 0xa0e: 0x0a66, 0xa0f: 0x0a6e, 0xa10: 0x0906, 0xa11: 0x0aca,
+ 0xa12: 0x0a92, 0xa13: 0x0a96, 0xa14: 0x0a9a, 0xa15: 0x0a8e, 0xa16: 0x0aa2, 0xa17: 0x0a9e,
+ 0xa18: 0x0ab6, 0xa19: 0x17a1, 0xa1a: 0x0ad2, 0xa1b: 0x0ad6, 0xa1c: 0x0ade, 0xa1d: 0x0aea,
+ 0xa1e: 0x0af2, 0xa1f: 0x0b0e, 0xa20: 0x17a6, 0xa21: 0x17ab, 0xa22: 0x0b1a, 0xa23: 0x0b1e,
+ 0xa24: 0x0b22, 0xa25: 0x0b16, 0xa26: 0x0b2a, 0xa27: 0x06c2, 0xa28: 0x06c6, 0xa29: 0x0b32,
+ 0xa2a: 0x0b3a, 0xa2b: 0x0b3a, 0xa2c: 0x17b0, 0xa2d: 0x0b56, 0xa2e: 0x0b5a, 0xa2f: 0x0b5e,
+ 0xa30: 0x0b66, 0xa31: 0x17b5, 0xa32: 0x0b6e, 0xa33: 0x0b72, 0xa34: 0x0c4a, 0xa35: 0x0b7a,
+ 0xa36: 0x06ca, 0xa37: 0x0b86, 0xa38: 0x0b96, 0xa39: 0x0ba2, 0xa3a: 0x0b9e, 0xa3b: 0x17bf,
+ 0xa3c: 0x0baa, 0xa3d: 0x17c4, 0xa3e: 0x0bb6, 0xa3f: 0x0bb2,
// Block 0x29, offset 0xa40
- 0xa40: 0x0ac2, 0xa41: 0x0ad2, 0xa42: 0x0ad6, 0xa43: 0x05d6, 0xa44: 0x0ae6, 0xa45: 0x0aee,
- 0xa46: 0x0af2, 0xa47: 0x0af6, 0xa48: 0x05da, 0xa49: 0x169f, 0xa4a: 0x05de, 0xa4b: 0x0b12,
- 0xa4c: 0x0b16, 0xa4d: 0x0b1a, 0xa4e: 0x0b22, 0xa4f: 0x1866, 0xa50: 0x0b3a, 0xa51: 0x16a9,
- 0xa52: 0x16a9, 0xa53: 0x11da, 0xa54: 0x0b4a, 0xa55: 0x0b4a, 0xa56: 0x05e2, 0xa57: 0x16cc,
- 0xa58: 0x179e, 0xa59: 0x0b5a, 0xa5a: 0x0b62, 0xa5b: 0x05e6, 0xa5c: 0x0b76, 0xa5d: 0x0b86,
- 0xa5e: 0x0b8a, 0xa5f: 0x0b92, 0xa60: 0x0ba2, 0xa61: 0x05ee, 0xa62: 0x05ea, 0xa63: 0x0ba6,
- 0xa64: 0x16ae, 0xa65: 0x0baa, 0xa66: 0x0bbe, 0xa67: 0x0bc2, 0xa68: 0x0bc6, 0xa69: 0x0bc2,
- 0xa6a: 0x0bd2, 0xa6b: 0x0bd6, 0xa6c: 0x0be6, 0xa6d: 0x0bde, 0xa6e: 0x0be2, 0xa6f: 0x0bea,
- 0xa70: 0x0bee, 0xa71: 0x0bf2, 0xa72: 0x0bfe, 0xa73: 0x0c02, 0xa74: 0x0c1a, 0xa75: 0x0c22,
- 0xa76: 0x0c32, 0xa77: 0x0c46, 0xa78: 0x16bd, 0xa79: 0x0c42, 0xa7a: 0x0c36, 0xa7b: 0x0c4e,
- 0xa7c: 0x0c56, 0xa7d: 0x0c6a, 0xa7e: 0x16c2, 0xa7f: 0x0c72,
+ 0xa40: 0x0bba, 0xa41: 0x0bca, 0xa42: 0x0bce, 0xa43: 0x06ce, 0xa44: 0x0bde, 0xa45: 0x0be6,
+ 0xa46: 0x0bea, 0xa47: 0x0bee, 0xa48: 0x06d2, 0xa49: 0x17c9, 0xa4a: 0x06d6, 0xa4b: 0x0c0a,
+ 0xa4c: 0x0c0e, 0xa4d: 0x0c12, 0xa4e: 0x0c1a, 0xa4f: 0x1990, 0xa50: 0x0c32, 0xa51: 0x17d3,
+ 0xa52: 0x17d3, 0xa53: 0x12d2, 0xa54: 0x0c42, 0xa55: 0x0c42, 0xa56: 0x06da, 0xa57: 0x17f6,
+ 0xa58: 0x18c8, 0xa59: 0x0c52, 0xa5a: 0x0c5a, 0xa5b: 0x06de, 0xa5c: 0x0c6e, 0xa5d: 0x0c7e,
+ 0xa5e: 0x0c82, 0xa5f: 0x0c8a, 0xa60: 0x0c9a, 0xa61: 0x06e6, 0xa62: 0x06e2, 0xa63: 0x0c9e,
+ 0xa64: 0x17d8, 0xa65: 0x0ca2, 0xa66: 0x0cb6, 0xa67: 0x0cba, 0xa68: 0x0cbe, 0xa69: 0x0cba,
+ 0xa6a: 0x0cca, 0xa6b: 0x0cce, 0xa6c: 0x0cde, 0xa6d: 0x0cd6, 0xa6e: 0x0cda, 0xa6f: 0x0ce2,
+ 0xa70: 0x0ce6, 0xa71: 0x0cea, 0xa72: 0x0cf6, 0xa73: 0x0cfa, 0xa74: 0x0d12, 0xa75: 0x0d1a,
+ 0xa76: 0x0d2a, 0xa77: 0x0d3e, 0xa78: 0x17e7, 0xa79: 0x0d3a, 0xa7a: 0x0d2e, 0xa7b: 0x0d46,
+ 0xa7c: 0x0d4e, 0xa7d: 0x0d62, 0xa7e: 0x17ec, 0xa7f: 0x0d6a,
// Block 0x2a, offset 0xa80
- 0xa80: 0x0c66, 0xa81: 0x0c5e, 0xa82: 0x05f2, 0xa83: 0x0c7a, 0xa84: 0x0c82, 0xa85: 0x0c8a,
- 0xa86: 0x0c7e, 0xa87: 0x05f6, 0xa88: 0x0c9a, 0xa89: 0x0ca2, 0xa8a: 0x16c7, 0xa8b: 0x0cce,
- 0xa8c: 0x0d02, 0xa8d: 0x0cde, 0xa8e: 0x0602, 0xa8f: 0x0cea, 0xa90: 0x05fe, 0xa91: 0x05fa,
- 0xa92: 0x07c6, 0xa93: 0x07ca, 0xa94: 0x0d06, 0xa95: 0x0cee, 0xa96: 0x11ae, 0xa97: 0x0666,
- 0xa98: 0x0d12, 0xa99: 0x0d16, 0xa9a: 0x0d1a, 0xa9b: 0x0d2e, 0xa9c: 0x0d26, 0xa9d: 0x16e0,
- 0xa9e: 0x0606, 0xa9f: 0x0d42, 0xaa0: 0x0d36, 0xaa1: 0x0d52, 0xaa2: 0x0d5a, 0xaa3: 0x16ea,
- 0xaa4: 0x0d5e, 0xaa5: 0x0d4a, 0xaa6: 0x0d66, 0xaa7: 0x060a, 0xaa8: 0x0d6a, 0xaa9: 0x0d6e,
- 0xaaa: 0x0d72, 0xaab: 0x0d7e, 0xaac: 0x16ef, 0xaad: 0x0d86, 0xaae: 0x060e, 0xaaf: 0x0d92,
- 0xab0: 0x16f4, 0xab1: 0x0d96, 0xab2: 0x0612, 0xab3: 0x0da2, 0xab4: 0x0dae, 0xab5: 0x0dba,
- 0xab6: 0x0dbe, 0xab7: 0x16f9, 0xab8: 0x1690, 0xab9: 0x16fe, 0xaba: 0x0dde, 0xabb: 0x1703,
- 0xabc: 0x0dea, 0xabd: 0x0df2, 0xabe: 0x0de2, 0xabf: 0x0dfe,
+ 0xa80: 0x0d5e, 0xa81: 0x0d56, 0xa82: 0x06ea, 0xa83: 0x0d72, 0xa84: 0x0d7a, 0xa85: 0x0d82,
+ 0xa86: 0x0d76, 0xa87: 0x06ee, 0xa88: 0x0d92, 0xa89: 0x0d9a, 0xa8a: 0x17f1, 0xa8b: 0x0dc6,
+ 0xa8c: 0x0dfa, 0xa8d: 0x0dd6, 0xa8e: 0x06fa, 0xa8f: 0x0de2, 0xa90: 0x06f6, 0xa91: 0x06f2,
+ 0xa92: 0x08be, 0xa93: 0x08c2, 0xa94: 0x0dfe, 0xa95: 0x0de6, 0xa96: 0x12a6, 0xa97: 0x075e,
+ 0xa98: 0x0e0a, 0xa99: 0x0e0e, 0xa9a: 0x0e12, 0xa9b: 0x0e26, 0xa9c: 0x0e1e, 0xa9d: 0x180a,
+ 0xa9e: 0x06fe, 0xa9f: 0x0e3a, 0xaa0: 0x0e2e, 0xaa1: 0x0e4a, 0xaa2: 0x0e52, 0xaa3: 0x1814,
+ 0xaa4: 0x0e56, 0xaa5: 0x0e42, 0xaa6: 0x0e5e, 0xaa7: 0x0702, 0xaa8: 0x0e62, 0xaa9: 0x0e66,
+ 0xaaa: 0x0e6a, 0xaab: 0x0e76, 0xaac: 0x1819, 0xaad: 0x0e7e, 0xaae: 0x0706, 0xaaf: 0x0e8a,
+ 0xab0: 0x181e, 0xab1: 0x0e8e, 0xab2: 0x070a, 0xab3: 0x0e9a, 0xab4: 0x0ea6, 0xab5: 0x0eb2,
+ 0xab6: 0x0eb6, 0xab7: 0x1823, 0xab8: 0x17ba, 0xab9: 0x1828, 0xaba: 0x0ed6, 0xabb: 0x182d,
+ 0xabc: 0x0ee2, 0xabd: 0x0eea, 0xabe: 0x0eda, 0xabf: 0x0ef6,
// Block 0x2b, offset 0xac0
- 0xac0: 0x0e0e, 0xac1: 0x0e1e, 0xac2: 0x0e12, 0xac3: 0x0e16, 0xac4: 0x0e22, 0xac5: 0x0e26,
- 0xac6: 0x1708, 0xac7: 0x0e0a, 0xac8: 0x0e3e, 0xac9: 0x0e42, 0xaca: 0x0616, 0xacb: 0x0e56,
- 0xacc: 0x0e52, 0xacd: 0x170d, 0xace: 0x0e36, 0xacf: 0x0e72, 0xad0: 0x1712, 0xad1: 0x1717,
- 0xad2: 0x0e76, 0xad3: 0x0e8a, 0xad4: 0x0e86, 0xad5: 0x0e82, 0xad6: 0x061a, 0xad7: 0x0e8e,
- 0xad8: 0x0e9e, 0xad9: 0x0e9a, 0xada: 0x0ea6, 0xadb: 0x1654, 0xadc: 0x0eb6, 0xadd: 0x171c,
- 0xade: 0x0ec2, 0xadf: 0x1726, 0xae0: 0x0ed6, 0xae1: 0x0ee2, 0xae2: 0x0ef6, 0xae3: 0x172b,
- 0xae4: 0x0f0a, 0xae5: 0x0f0e, 0xae6: 0x1730, 0xae7: 0x1735, 0xae8: 0x0f2a, 0xae9: 0x0f3a,
- 0xaea: 0x061e, 0xaeb: 0x0f3e, 0xaec: 0x0622, 0xaed: 0x0622, 0xaee: 0x0f56, 0xaef: 0x0f5a,
- 0xaf0: 0x0f62, 0xaf1: 0x0f66, 0xaf2: 0x0f72, 0xaf3: 0x0626, 0xaf4: 0x0f8a, 0xaf5: 0x173a,
- 0xaf6: 0x0fa6, 0xaf7: 0x173f, 0xaf8: 0x0fb2, 0xaf9: 0x16a4, 0xafa: 0x0fc2, 0xafb: 0x1744,
- 0xafc: 0x1749, 0xafd: 0x174e, 0xafe: 0x062a, 0xaff: 0x062e,
+ 0xac0: 0x0f06, 0xac1: 0x0f16, 0xac2: 0x0f0a, 0xac3: 0x0f0e, 0xac4: 0x0f1a, 0xac5: 0x0f1e,
+ 0xac6: 0x1832, 0xac7: 0x0f02, 0xac8: 0x0f36, 0xac9: 0x0f3a, 0xaca: 0x070e, 0xacb: 0x0f4e,
+ 0xacc: 0x0f4a, 0xacd: 0x1837, 0xace: 0x0f2e, 0xacf: 0x0f6a, 0xad0: 0x183c, 0xad1: 0x1841,
+ 0xad2: 0x0f6e, 0xad3: 0x0f82, 0xad4: 0x0f7e, 0xad5: 0x0f7a, 0xad6: 0x0712, 0xad7: 0x0f86,
+ 0xad8: 0x0f96, 0xad9: 0x0f92, 0xada: 0x0f9e, 0xadb: 0x177e, 0xadc: 0x0fae, 0xadd: 0x1846,
+ 0xade: 0x0fba, 0xadf: 0x1850, 0xae0: 0x0fce, 0xae1: 0x0fda, 0xae2: 0x0fee, 0xae3: 0x1855,
+ 0xae4: 0x1002, 0xae5: 0x1006, 0xae6: 0x185a, 0xae7: 0x185f, 0xae8: 0x1022, 0xae9: 0x1032,
+ 0xaea: 0x0716, 0xaeb: 0x1036, 0xaec: 0x071a, 0xaed: 0x071a, 0xaee: 0x104e, 0xaef: 0x1052,
+ 0xaf0: 0x105a, 0xaf1: 0x105e, 0xaf2: 0x106a, 0xaf3: 0x071e, 0xaf4: 0x1082, 0xaf5: 0x1864,
+ 0xaf6: 0x109e, 0xaf7: 0x1869, 0xaf8: 0x10aa, 0xaf9: 0x17ce, 0xafa: 0x10ba, 0xafb: 0x186e,
+ 0xafc: 0x1873, 0xafd: 0x1878, 0xafe: 0x0722, 0xaff: 0x0726,
// Block 0x2c, offset 0xb00
- 0xb00: 0x0ffa, 0xb01: 0x1758, 0xb02: 0x1753, 0xb03: 0x175d, 0xb04: 0x1762, 0xb05: 0x1002,
- 0xb06: 0x1006, 0xb07: 0x1006, 0xb08: 0x100e, 0xb09: 0x0636, 0xb0a: 0x1012, 0xb0b: 0x063a,
- 0xb0c: 0x063e, 0xb0d: 0x176c, 0xb0e: 0x1026, 0xb0f: 0x102e, 0xb10: 0x103a, 0xb11: 0x0642,
- 0xb12: 0x1771, 0xb13: 0x105e, 0xb14: 0x1776, 0xb15: 0x177b, 0xb16: 0x107e, 0xb17: 0x1096,
- 0xb18: 0x0646, 0xb19: 0x109e, 0xb1a: 0x10a2, 0xb1b: 0x10a6, 0xb1c: 0x1780, 0xb1d: 0x1785,
- 0xb1e: 0x1785, 0xb1f: 0x10be, 0xb20: 0x064a, 0xb21: 0x178a, 0xb22: 0x10d2, 0xb23: 0x10d6,
- 0xb24: 0x064e, 0xb25: 0x178f, 0xb26: 0x10f2, 0xb27: 0x0652, 0xb28: 0x1102, 0xb29: 0x10fa,
- 0xb2a: 0x110a, 0xb2b: 0x1799, 0xb2c: 0x1122, 0xb2d: 0x0656, 0xb2e: 0x112e, 0xb2f: 0x1136,
- 0xb30: 0x1146, 0xb31: 0x065a, 0xb32: 0x17a3, 0xb33: 0x17a8, 0xb34: 0x065e, 0xb35: 0x17ad,
- 0xb36: 0x115e, 0xb37: 0x17b2, 0xb38: 0x116a, 0xb39: 0x1176, 0xb3a: 0x117e, 0xb3b: 0x17b7,
- 0xb3c: 0x17bc, 0xb3d: 0x1192, 0xb3e: 0x17c1, 0xb3f: 0x119a,
+ 0xb00: 0x10f2, 0xb01: 0x1882, 0xb02: 0x187d, 0xb03: 0x1887, 0xb04: 0x188c, 0xb05: 0x10fa,
+ 0xb06: 0x10fe, 0xb07: 0x10fe, 0xb08: 0x1106, 0xb09: 0x072e, 0xb0a: 0x110a, 0xb0b: 0x0732,
+ 0xb0c: 0x0736, 0xb0d: 0x1896, 0xb0e: 0x111e, 0xb0f: 0x1126, 0xb10: 0x1132, 0xb11: 0x073a,
+ 0xb12: 0x189b, 0xb13: 0x1156, 0xb14: 0x18a0, 0xb15: 0x18a5, 0xb16: 0x1176, 0xb17: 0x118e,
+ 0xb18: 0x073e, 0xb19: 0x1196, 0xb1a: 0x119a, 0xb1b: 0x119e, 0xb1c: 0x18aa, 0xb1d: 0x18af,
+ 0xb1e: 0x18af, 0xb1f: 0x11b6, 0xb20: 0x0742, 0xb21: 0x18b4, 0xb22: 0x11ca, 0xb23: 0x11ce,
+ 0xb24: 0x0746, 0xb25: 0x18b9, 0xb26: 0x11ea, 0xb27: 0x074a, 0xb28: 0x11fa, 0xb29: 0x11f2,
+ 0xb2a: 0x1202, 0xb2b: 0x18c3, 0xb2c: 0x121a, 0xb2d: 0x074e, 0xb2e: 0x1226, 0xb2f: 0x122e,
+ 0xb30: 0x123e, 0xb31: 0x0752, 0xb32: 0x18cd, 0xb33: 0x18d2, 0xb34: 0x0756, 0xb35: 0x18d7,
+ 0xb36: 0x1256, 0xb37: 0x18dc, 0xb38: 0x1262, 0xb39: 0x126e, 0xb3a: 0x1276, 0xb3b: 0x18e1,
+ 0xb3c: 0x18e6, 0xb3d: 0x128a, 0xb3e: 0x18eb, 0xb3f: 0x1292,
// Block 0x2d, offset 0xb40
- 0xb40: 0x16d1, 0xb41: 0x0662, 0xb42: 0x11b2, 0xb43: 0x11b6, 0xb44: 0x066a, 0xb45: 0x11ba,
- 0xb46: 0x0a36, 0xb47: 0x17c6, 0xb48: 0x17cb, 0xb49: 0x16d6, 0xb4a: 0x16db, 0xb4b: 0x11da,
- 0xb4c: 0x11de, 0xb4d: 0x13f6, 0xb4e: 0x066e, 0xb4f: 0x120a, 0xb50: 0x1206, 0xb51: 0x120e,
- 0xb52: 0x0842, 0xb53: 0x1212, 0xb54: 0x1216, 0xb55: 0x121a, 0xb56: 0x1222, 0xb57: 0x17d0,
- 0xb58: 0x121e, 0xb59: 0x1226, 0xb5a: 0x123a, 0xb5b: 0x123e, 0xb5c: 0x122a, 0xb5d: 0x1242,
- 0xb5e: 0x1256, 0xb5f: 0x126a, 0xb60: 0x1236, 0xb61: 0x124a, 0xb62: 0x124e, 0xb63: 0x1252,
- 0xb64: 0x17d5, 0xb65: 0x17df, 0xb66: 0x17da, 0xb67: 0x0672, 0xb68: 0x1272, 0xb69: 0x1276,
- 0xb6a: 0x127e, 0xb6b: 0x17f3, 0xb6c: 0x1282, 0xb6d: 0x17e4, 0xb6e: 0x0676, 0xb6f: 0x067a,
- 0xb70: 0x17e9, 0xb71: 0x17ee, 0xb72: 0x067e, 0xb73: 0x12a2, 0xb74: 0x12a6, 0xb75: 0x12aa,
- 0xb76: 0x12ae, 0xb77: 0x12ba, 0xb78: 0x12b6, 0xb79: 0x12c2, 0xb7a: 0x12be, 0xb7b: 0x12ce,
- 0xb7c: 0x12c6, 0xb7d: 0x12ca, 0xb7e: 0x12d2, 0xb7f: 0x0682,
+ 0xb40: 0x17fb, 0xb41: 0x075a, 0xb42: 0x12aa, 0xb43: 0x12ae, 0xb44: 0x0762, 0xb45: 0x12b2,
+ 0xb46: 0x0b2e, 0xb47: 0x18f0, 0xb48: 0x18f5, 0xb49: 0x1800, 0xb4a: 0x1805, 0xb4b: 0x12d2,
+ 0xb4c: 0x12d6, 0xb4d: 0x14ee, 0xb4e: 0x0766, 0xb4f: 0x1302, 0xb50: 0x12fe, 0xb51: 0x1306,
+ 0xb52: 0x093a, 0xb53: 0x130a, 0xb54: 0x130e, 0xb55: 0x1312, 0xb56: 0x131a, 0xb57: 0x18fa,
+ 0xb58: 0x1316, 0xb59: 0x131e, 0xb5a: 0x1332, 0xb5b: 0x1336, 0xb5c: 0x1322, 0xb5d: 0x133a,
+ 0xb5e: 0x134e, 0xb5f: 0x1362, 0xb60: 0x132e, 0xb61: 0x1342, 0xb62: 0x1346, 0xb63: 0x134a,
+ 0xb64: 0x18ff, 0xb65: 0x1909, 0xb66: 0x1904, 0xb67: 0x076a, 0xb68: 0x136a, 0xb69: 0x136e,
+ 0xb6a: 0x1376, 0xb6b: 0x191d, 0xb6c: 0x137a, 0xb6d: 0x190e, 0xb6e: 0x076e, 0xb6f: 0x0772,
+ 0xb70: 0x1913, 0xb71: 0x1918, 0xb72: 0x0776, 0xb73: 0x139a, 0xb74: 0x139e, 0xb75: 0x13a2,
+ 0xb76: 0x13a6, 0xb77: 0x13b2, 0xb78: 0x13ae, 0xb79: 0x13ba, 0xb7a: 0x13b6, 0xb7b: 0x13c6,
+ 0xb7c: 0x13be, 0xb7d: 0x13c2, 0xb7e: 0x13ca, 0xb7f: 0x077a,
// Block 0x2e, offset 0xb80
- 0xb80: 0x12da, 0xb81: 0x12de, 0xb82: 0x0686, 0xb83: 0x12ee, 0xb84: 0x12f2, 0xb85: 0x17f8,
- 0xb86: 0x12fe, 0xb87: 0x1302, 0xb88: 0x068a, 0xb89: 0x130e, 0xb8a: 0x05be, 0xb8b: 0x17fd,
- 0xb8c: 0x1802, 0xb8d: 0x068e, 0xb8e: 0x0692, 0xb8f: 0x133a, 0xb90: 0x1352, 0xb91: 0x136e,
- 0xb92: 0x137e, 0xb93: 0x1807, 0xb94: 0x1392, 0xb95: 0x1396, 0xb96: 0x13ae, 0xb97: 0x13ba,
- 0xb98: 0x1811, 0xb99: 0x1663, 0xb9a: 0x13c6, 0xb9b: 0x13c2, 0xb9c: 0x13ce, 0xb9d: 0x1668,
- 0xb9e: 0x13da, 0xb9f: 0x13e6, 0xba0: 0x1816, 0xba1: 0x181b, 0xba2: 0x1426, 0xba3: 0x1432,
- 0xba4: 0x143a, 0xba5: 0x1820, 0xba6: 0x143e, 0xba7: 0x146a, 0xba8: 0x1476, 0xba9: 0x147a,
- 0xbaa: 0x1472, 0xbab: 0x1486, 0xbac: 0x148a, 0xbad: 0x1825, 0xbae: 0x1496, 0xbaf: 0x0696,
- 0xbb0: 0x149e, 0xbb1: 0x182a, 0xbb2: 0x069a, 0xbb3: 0x14d6, 0xbb4: 0x0ac6, 0xbb5: 0x14ee,
- 0xbb6: 0x182f, 0xbb7: 0x1839, 0xbb8: 0x069e, 0xbb9: 0x06a2, 0xbba: 0x1516, 0xbbb: 0x183e,
- 0xbbc: 0x06a6, 0xbbd: 0x1843, 0xbbe: 0x152e, 0xbbf: 0x152e,
+ 0xb80: 0x13d2, 0xb81: 0x13d6, 0xb82: 0x077e, 0xb83: 0x13e6, 0xb84: 0x13ea, 0xb85: 0x1922,
+ 0xb86: 0x13f6, 0xb87: 0x13fa, 0xb88: 0x0782, 0xb89: 0x1406, 0xb8a: 0x06b6, 0xb8b: 0x1927,
+ 0xb8c: 0x192c, 0xb8d: 0x0786, 0xb8e: 0x078a, 0xb8f: 0x1432, 0xb90: 0x144a, 0xb91: 0x1466,
+ 0xb92: 0x1476, 0xb93: 0x1931, 0xb94: 0x148a, 0xb95: 0x148e, 0xb96: 0x14a6, 0xb97: 0x14b2,
+ 0xb98: 0x193b, 0xb99: 0x178d, 0xb9a: 0x14be, 0xb9b: 0x14ba, 0xb9c: 0x14c6, 0xb9d: 0x1792,
+ 0xb9e: 0x14d2, 0xb9f: 0x14de, 0xba0: 0x1940, 0xba1: 0x1945, 0xba2: 0x151e, 0xba3: 0x152a,
+ 0xba4: 0x1532, 0xba5: 0x194a, 0xba6: 0x1536, 0xba7: 0x1562, 0xba8: 0x156e, 0xba9: 0x1572,
+ 0xbaa: 0x156a, 0xbab: 0x157e, 0xbac: 0x1582, 0xbad: 0x194f, 0xbae: 0x158e, 0xbaf: 0x078e,
+ 0xbb0: 0x1596, 0xbb1: 0x1954, 0xbb2: 0x0792, 0xbb3: 0x15ce, 0xbb4: 0x0bbe, 0xbb5: 0x15e6,
+ 0xbb6: 0x1959, 0xbb7: 0x1963, 0xbb8: 0x0796, 0xbb9: 0x079a, 0xbba: 0x160e, 0xbbb: 0x1968,
+ 0xbbc: 0x079e, 0xbbd: 0x196d, 0xbbe: 0x1626, 0xbbf: 0x1626,
// Block 0x2f, offset 0xbc0
- 0xbc0: 0x1536, 0xbc1: 0x1848, 0xbc2: 0x154e, 0xbc3: 0x06aa, 0xbc4: 0x155e, 0xbc5: 0x156a,
- 0xbc6: 0x1572, 0xbc7: 0x157a, 0xbc8: 0x06ae, 0xbc9: 0x184d, 0xbca: 0x158e, 0xbcb: 0x15aa,
- 0xbcc: 0x15b6, 0xbcd: 0x06b2, 0xbce: 0x06b6, 0xbcf: 0x15ba, 0xbd0: 0x1852, 0xbd1: 0x06ba,
- 0xbd2: 0x1857, 0xbd3: 0x185c, 0xbd4: 0x1861, 0xbd5: 0x15de, 0xbd6: 0x06be, 0xbd7: 0x15f2,
- 0xbd8: 0x15fa, 0xbd9: 0x15fe, 0xbda: 0x1606, 0xbdb: 0x160e, 0xbdc: 0x1616, 0xbdd: 0x186b,
+ 0xbc0: 0x162e, 0xbc1: 0x1972, 0xbc2: 0x1646, 0xbc3: 0x07a2, 0xbc4: 0x1656, 0xbc5: 0x1662,
+ 0xbc6: 0x166a, 0xbc7: 0x1672, 0xbc8: 0x07a6, 0xbc9: 0x1977, 0xbca: 0x1686, 0xbcb: 0x16a2,
+ 0xbcc: 0x16ae, 0xbcd: 0x07aa, 0xbce: 0x07ae, 0xbcf: 0x16b2, 0xbd0: 0x197c, 0xbd1: 0x07b2,
+ 0xbd2: 0x1981, 0xbd3: 0x1986, 0xbd4: 0x198b, 0xbd5: 0x16d6, 0xbd6: 0x07b6, 0xbd7: 0x16ea,
+ 0xbd8: 0x16f2, 0xbd9: 0x16f6, 0xbda: 0x16fe, 0xbdb: 0x1706, 0xbdc: 0x170e, 0xbdd: 0x1995,
}
// nfcIndex: 22 blocks, 1408 entries, 1408 bytes
@@ -3452,88 +3529,94 @@ var nfcIndex = [1408]uint8{
0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a,
0xf0: 0x13,
// Block 0x4, offset 0x100
- 0x120: 0x3b, 0x121: 0x3c, 0x123: 0x0d, 0x124: 0x3d, 0x125: 0x3e, 0x126: 0x3f, 0x127: 0x40,
- 0x128: 0x41, 0x129: 0x42, 0x12a: 0x43, 0x12b: 0x44, 0x12c: 0x3f, 0x12d: 0x45, 0x12e: 0x46, 0x12f: 0x47,
- 0x131: 0x48, 0x132: 0x49, 0x133: 0x4a, 0x134: 0x4b, 0x135: 0x4c, 0x137: 0x4d,
- 0x138: 0x4e, 0x139: 0x4f, 0x13a: 0x50, 0x13b: 0x51, 0x13c: 0x52, 0x13d: 0x53, 0x13e: 0x54, 0x13f: 0x55,
+ 0x120: 0x3b, 0x121: 0x3c, 0x122: 0x3d, 0x123: 0x0d, 0x124: 0x3e, 0x125: 0x3f, 0x126: 0x40, 0x127: 0x41,
+ 0x128: 0x42, 0x129: 0x43, 0x12a: 0x44, 0x12b: 0x45, 0x12c: 0x40, 0x12d: 0x46, 0x12e: 0x47, 0x12f: 0x48,
+ 0x130: 0x44, 0x131: 0x49, 0x132: 0x4a, 0x133: 0x4b, 0x134: 0x4c, 0x135: 0x4d, 0x137: 0x4e,
+ 0x138: 0x4f, 0x139: 0x50, 0x13a: 0x51, 0x13b: 0x52, 0x13c: 0x53, 0x13d: 0x54, 0x13e: 0x55, 0x13f: 0x56,
// Block 0x5, offset 0x140
- 0x140: 0x56, 0x142: 0x57, 0x144: 0x58, 0x145: 0x59, 0x146: 0x5a, 0x147: 0x5b,
- 0x14d: 0x5c,
- 0x15c: 0x5d, 0x15f: 0x5e,
- 0x162: 0x5f, 0x164: 0x60,
- 0x168: 0x61, 0x169: 0x62, 0x16a: 0x63, 0x16b: 0x64, 0x16c: 0x0e, 0x16d: 0x65, 0x16e: 0x66, 0x16f: 0x67,
- 0x170: 0x68, 0x173: 0x69, 0x177: 0x0f,
+ 0x140: 0x57, 0x142: 0x58, 0x144: 0x59, 0x145: 0x5a, 0x146: 0x5b, 0x147: 0x5c,
+ 0x14d: 0x5d,
+ 0x15c: 0x5e, 0x15f: 0x5f,
+ 0x162: 0x60, 0x164: 0x61,
+ 0x168: 0x62, 0x169: 0x63, 0x16a: 0x64, 0x16b: 0x65, 0x16c: 0x0e, 0x16d: 0x66, 0x16e: 0x67, 0x16f: 0x68,
+ 0x170: 0x69, 0x173: 0x6a, 0x177: 0x0f,
0x178: 0x10, 0x179: 0x11, 0x17a: 0x12, 0x17b: 0x13, 0x17c: 0x14, 0x17d: 0x15, 0x17e: 0x16, 0x17f: 0x17,
// Block 0x6, offset 0x180
- 0x180: 0x6a, 0x183: 0x6b, 0x184: 0x6c, 0x186: 0x6d, 0x187: 0x6e,
- 0x188: 0x6f, 0x189: 0x18, 0x18a: 0x19, 0x18b: 0x70, 0x18c: 0x71,
- 0x1ab: 0x72,
- 0x1b3: 0x73, 0x1b5: 0x74, 0x1b7: 0x75,
+ 0x180: 0x6b, 0x183: 0x6c, 0x184: 0x6d, 0x186: 0x6e, 0x187: 0x6f,
+ 0x188: 0x70, 0x189: 0x18, 0x18a: 0x19, 0x18b: 0x71, 0x18c: 0x72,
+ 0x1ab: 0x73,
+ 0x1b3: 0x74, 0x1b5: 0x75, 0x1b7: 0x76,
// Block 0x7, offset 0x1c0
- 0x1c0: 0x76, 0x1c1: 0x1a, 0x1c2: 0x1b, 0x1c3: 0x1c, 0x1c4: 0x77, 0x1c5: 0x78,
- 0x1c9: 0x79, 0x1cc: 0x7a, 0x1cd: 0x7b,
+ 0x1c0: 0x77, 0x1c1: 0x1a, 0x1c2: 0x1b, 0x1c3: 0x1c, 0x1c4: 0x78, 0x1c5: 0x79,
+ 0x1c9: 0x7a, 0x1cc: 0x7b, 0x1cd: 0x7c,
// Block 0x8, offset 0x200
- 0x219: 0x7c, 0x21a: 0x7d, 0x21b: 0x7e,
- 0x220: 0x7f, 0x223: 0x80, 0x224: 0x81, 0x225: 0x82, 0x226: 0x83, 0x227: 0x84,
- 0x22a: 0x85, 0x22b: 0x86, 0x22f: 0x87,
- 0x230: 0x88, 0x231: 0x89, 0x232: 0x8a, 0x233: 0x8b, 0x234: 0x8c, 0x235: 0x8d, 0x236: 0x8e, 0x237: 0x88,
- 0x238: 0x89, 0x239: 0x8a, 0x23a: 0x8b, 0x23b: 0x8c, 0x23c: 0x8d, 0x23d: 0x8e, 0x23e: 0x88, 0x23f: 0x89,
+ 0x219: 0x7d, 0x21a: 0x7e, 0x21b: 0x7f,
+ 0x220: 0x80, 0x223: 0x81, 0x224: 0x82, 0x225: 0x83, 0x226: 0x84, 0x227: 0x85,
+ 0x22a: 0x86, 0x22b: 0x87, 0x22f: 0x88,
+ 0x230: 0x89, 0x231: 0x8a, 0x232: 0x8b, 0x233: 0x8c, 0x234: 0x8d, 0x235: 0x8e, 0x236: 0x8f, 0x237: 0x89,
+ 0x238: 0x8a, 0x239: 0x8b, 0x23a: 0x8c, 0x23b: 0x8d, 0x23c: 0x8e, 0x23d: 0x8f, 0x23e: 0x89, 0x23f: 0x8a,
// Block 0x9, offset 0x240
- 0x240: 0x8a, 0x241: 0x8b, 0x242: 0x8c, 0x243: 0x8d, 0x244: 0x8e, 0x245: 0x88, 0x246: 0x89, 0x247: 0x8a,
- 0x248: 0x8b, 0x249: 0x8c, 0x24a: 0x8d, 0x24b: 0x8e, 0x24c: 0x88, 0x24d: 0x89, 0x24e: 0x8a, 0x24f: 0x8b,
- 0x250: 0x8c, 0x251: 0x8d, 0x252: 0x8e, 0x253: 0x88, 0x254: 0x89, 0x255: 0x8a, 0x256: 0x8b, 0x257: 0x8c,
- 0x258: 0x8d, 0x259: 0x8e, 0x25a: 0x88, 0x25b: 0x89, 0x25c: 0x8a, 0x25d: 0x8b, 0x25e: 0x8c, 0x25f: 0x8d,
- 0x260: 0x8e, 0x261: 0x88, 0x262: 0x89, 0x263: 0x8a, 0x264: 0x8b, 0x265: 0x8c, 0x266: 0x8d, 0x267: 0x8e,
- 0x268: 0x88, 0x269: 0x89, 0x26a: 0x8a, 0x26b: 0x8b, 0x26c: 0x8c, 0x26d: 0x8d, 0x26e: 0x8e, 0x26f: 0x88,
- 0x270: 0x89, 0x271: 0x8a, 0x272: 0x8b, 0x273: 0x8c, 0x274: 0x8d, 0x275: 0x8e, 0x276: 0x88, 0x277: 0x89,
- 0x278: 0x8a, 0x279: 0x8b, 0x27a: 0x8c, 0x27b: 0x8d, 0x27c: 0x8e, 0x27d: 0x88, 0x27e: 0x89, 0x27f: 0x8a,
+ 0x240: 0x8b, 0x241: 0x8c, 0x242: 0x8d, 0x243: 0x8e, 0x244: 0x8f, 0x245: 0x89, 0x246: 0x8a, 0x247: 0x8b,
+ 0x248: 0x8c, 0x249: 0x8d, 0x24a: 0x8e, 0x24b: 0x8f, 0x24c: 0x89, 0x24d: 0x8a, 0x24e: 0x8b, 0x24f: 0x8c,
+ 0x250: 0x8d, 0x251: 0x8e, 0x252: 0x8f, 0x253: 0x89, 0x254: 0x8a, 0x255: 0x8b, 0x256: 0x8c, 0x257: 0x8d,
+ 0x258: 0x8e, 0x259: 0x8f, 0x25a: 0x89, 0x25b: 0x8a, 0x25c: 0x8b, 0x25d: 0x8c, 0x25e: 0x8d, 0x25f: 0x8e,
+ 0x260: 0x8f, 0x261: 0x89, 0x262: 0x8a, 0x263: 0x8b, 0x264: 0x8c, 0x265: 0x8d, 0x266: 0x8e, 0x267: 0x8f,
+ 0x268: 0x89, 0x269: 0x8a, 0x26a: 0x8b, 0x26b: 0x8c, 0x26c: 0x8d, 0x26d: 0x8e, 0x26e: 0x8f, 0x26f: 0x89,
+ 0x270: 0x8a, 0x271: 0x8b, 0x272: 0x8c, 0x273: 0x8d, 0x274: 0x8e, 0x275: 0x8f, 0x276: 0x89, 0x277: 0x8a,
+ 0x278: 0x8b, 0x279: 0x8c, 0x27a: 0x8d, 0x27b: 0x8e, 0x27c: 0x8f, 0x27d: 0x89, 0x27e: 0x8a, 0x27f: 0x8b,
// Block 0xa, offset 0x280
- 0x280: 0x8b, 0x281: 0x8c, 0x282: 0x8d, 0x283: 0x8e, 0x284: 0x88, 0x285: 0x89, 0x286: 0x8a, 0x287: 0x8b,
- 0x288: 0x8c, 0x289: 0x8d, 0x28a: 0x8e, 0x28b: 0x88, 0x28c: 0x89, 0x28d: 0x8a, 0x28e: 0x8b, 0x28f: 0x8c,
- 0x290: 0x8d, 0x291: 0x8e, 0x292: 0x88, 0x293: 0x89, 0x294: 0x8a, 0x295: 0x8b, 0x296: 0x8c, 0x297: 0x8d,
- 0x298: 0x8e, 0x299: 0x88, 0x29a: 0x89, 0x29b: 0x8a, 0x29c: 0x8b, 0x29d: 0x8c, 0x29e: 0x8d, 0x29f: 0x8e,
- 0x2a0: 0x88, 0x2a1: 0x89, 0x2a2: 0x8a, 0x2a3: 0x8b, 0x2a4: 0x8c, 0x2a5: 0x8d, 0x2a6: 0x8e, 0x2a7: 0x88,
- 0x2a8: 0x89, 0x2a9: 0x8a, 0x2aa: 0x8b, 0x2ab: 0x8c, 0x2ac: 0x8d, 0x2ad: 0x8e, 0x2ae: 0x88, 0x2af: 0x89,
- 0x2b0: 0x8a, 0x2b1: 0x8b, 0x2b2: 0x8c, 0x2b3: 0x8d, 0x2b4: 0x8e, 0x2b5: 0x88, 0x2b6: 0x89, 0x2b7: 0x8a,
- 0x2b8: 0x8b, 0x2b9: 0x8c, 0x2ba: 0x8d, 0x2bb: 0x8e, 0x2bc: 0x88, 0x2bd: 0x89, 0x2be: 0x8a, 0x2bf: 0x8b,
+ 0x280: 0x8c, 0x281: 0x8d, 0x282: 0x8e, 0x283: 0x8f, 0x284: 0x89, 0x285: 0x8a, 0x286: 0x8b, 0x287: 0x8c,
+ 0x288: 0x8d, 0x289: 0x8e, 0x28a: 0x8f, 0x28b: 0x89, 0x28c: 0x8a, 0x28d: 0x8b, 0x28e: 0x8c, 0x28f: 0x8d,
+ 0x290: 0x8e, 0x291: 0x8f, 0x292: 0x89, 0x293: 0x8a, 0x294: 0x8b, 0x295: 0x8c, 0x296: 0x8d, 0x297: 0x8e,
+ 0x298: 0x8f, 0x299: 0x89, 0x29a: 0x8a, 0x29b: 0x8b, 0x29c: 0x8c, 0x29d: 0x8d, 0x29e: 0x8e, 0x29f: 0x8f,
+ 0x2a0: 0x89, 0x2a1: 0x8a, 0x2a2: 0x8b, 0x2a3: 0x8c, 0x2a4: 0x8d, 0x2a5: 0x8e, 0x2a6: 0x8f, 0x2a7: 0x89,
+ 0x2a8: 0x8a, 0x2a9: 0x8b, 0x2aa: 0x8c, 0x2ab: 0x8d, 0x2ac: 0x8e, 0x2ad: 0x8f, 0x2ae: 0x89, 0x2af: 0x8a,
+ 0x2b0: 0x8b, 0x2b1: 0x8c, 0x2b2: 0x8d, 0x2b3: 0x8e, 0x2b4: 0x8f, 0x2b5: 0x89, 0x2b6: 0x8a, 0x2b7: 0x8b,
+ 0x2b8: 0x8c, 0x2b9: 0x8d, 0x2ba: 0x8e, 0x2bb: 0x8f, 0x2bc: 0x89, 0x2bd: 0x8a, 0x2be: 0x8b, 0x2bf: 0x8c,
// Block 0xb, offset 0x2c0
- 0x2c0: 0x8c, 0x2c1: 0x8d, 0x2c2: 0x8e, 0x2c3: 0x88, 0x2c4: 0x89, 0x2c5: 0x8a, 0x2c6: 0x8b, 0x2c7: 0x8c,
- 0x2c8: 0x8d, 0x2c9: 0x8e, 0x2ca: 0x88, 0x2cb: 0x89, 0x2cc: 0x8a, 0x2cd: 0x8b, 0x2ce: 0x8c, 0x2cf: 0x8d,
- 0x2d0: 0x8e, 0x2d1: 0x88, 0x2d2: 0x89, 0x2d3: 0x8a, 0x2d4: 0x8b, 0x2d5: 0x8c, 0x2d6: 0x8d, 0x2d7: 0x8e,
- 0x2d8: 0x88, 0x2d9: 0x89, 0x2da: 0x8a, 0x2db: 0x8b, 0x2dc: 0x8c, 0x2dd: 0x8d, 0x2de: 0x8f,
+ 0x2c0: 0x8d, 0x2c1: 0x8e, 0x2c2: 0x8f, 0x2c3: 0x89, 0x2c4: 0x8a, 0x2c5: 0x8b, 0x2c6: 0x8c, 0x2c7: 0x8d,
+ 0x2c8: 0x8e, 0x2c9: 0x8f, 0x2ca: 0x89, 0x2cb: 0x8a, 0x2cc: 0x8b, 0x2cd: 0x8c, 0x2ce: 0x8d, 0x2cf: 0x8e,
+ 0x2d0: 0x8f, 0x2d1: 0x89, 0x2d2: 0x8a, 0x2d3: 0x8b, 0x2d4: 0x8c, 0x2d5: 0x8d, 0x2d6: 0x8e, 0x2d7: 0x8f,
+ 0x2d8: 0x89, 0x2d9: 0x8a, 0x2da: 0x8b, 0x2db: 0x8c, 0x2dc: 0x8d, 0x2dd: 0x8e, 0x2de: 0x90,
// Block 0xc, offset 0x300
0x324: 0x1d, 0x325: 0x1e, 0x326: 0x1f, 0x327: 0x20,
- 0x328: 0x21, 0x329: 0x22, 0x32a: 0x23, 0x32b: 0x24, 0x32c: 0x90, 0x32d: 0x91, 0x32e: 0x92,
- 0x331: 0x93, 0x332: 0x94, 0x333: 0x95, 0x334: 0x96,
- 0x338: 0x97, 0x339: 0x98, 0x33a: 0x99, 0x33b: 0x9a, 0x33e: 0x9b, 0x33f: 0x9c,
+ 0x328: 0x21, 0x329: 0x22, 0x32a: 0x23, 0x32b: 0x24, 0x32c: 0x91, 0x32d: 0x92, 0x32e: 0x93,
+ 0x331: 0x94, 0x332: 0x95, 0x333: 0x96, 0x334: 0x97,
+ 0x338: 0x98, 0x339: 0x99, 0x33a: 0x9a, 0x33b: 0x9b, 0x33e: 0x9c, 0x33f: 0x9d,
// Block 0xd, offset 0x340
- 0x347: 0x9d,
- 0x34b: 0x9e, 0x34d: 0x9f,
- 0x368: 0xa0, 0x36b: 0xa1,
- 0x374: 0xa2,
- 0x37a: 0xa3, 0x37d: 0xa4,
+ 0x347: 0x9e,
+ 0x34b: 0x9f, 0x34d: 0xa0,
+ 0x357: 0xa1,
+ 0x368: 0xa2, 0x36b: 0xa3,
+ 0x374: 0xa4, 0x375: 0xa5,
+ 0x37a: 0xa6, 0x37b: 0xa7, 0x37d: 0xa8, 0x37e: 0xa9,
// Block 0xe, offset 0x380
- 0x381: 0xa5, 0x382: 0xa6, 0x384: 0xa7, 0x385: 0x83, 0x387: 0xa8,
- 0x388: 0xa9, 0x38b: 0xaa, 0x38c: 0xab, 0x38d: 0xac,
- 0x391: 0xad, 0x392: 0xae, 0x393: 0xaf, 0x396: 0xb0, 0x397: 0xb1,
- 0x398: 0x74, 0x39a: 0xb2, 0x39c: 0xb3,
- 0x3a0: 0xb4, 0x3a4: 0xb5, 0x3a5: 0xb6, 0x3a7: 0xb7,
- 0x3a8: 0xb8, 0x3a9: 0xb9, 0x3aa: 0xba,
- 0x3b0: 0x74, 0x3b5: 0xbb, 0x3b6: 0xbc,
+ 0x381: 0xaa, 0x382: 0xab, 0x384: 0xac, 0x385: 0x84, 0x387: 0xad,
+ 0x388: 0xae, 0x38b: 0xaf, 0x38c: 0xb0, 0x38d: 0xb1, 0x38e: 0xb2, 0x38f: 0xb3,
+ 0x391: 0xb4, 0x392: 0xb5, 0x393: 0xb6, 0x396: 0xb7, 0x397: 0xb8,
+ 0x398: 0x75, 0x39a: 0xb9, 0x39c: 0xba,
+ 0x3a0: 0xbb, 0x3a4: 0xbc, 0x3a5: 0xbd, 0x3a7: 0xbe,
+ 0x3a8: 0xbf, 0x3a9: 0xc0, 0x3aa: 0xc1,
+ 0x3b0: 0x75, 0x3b5: 0xc2, 0x3b6: 0xc3,
+ 0x3bd: 0xc4,
// Block 0xf, offset 0x3c0
- 0x3eb: 0xbd, 0x3ec: 0xbe,
- 0x3ff: 0xbf,
+ 0x3c4: 0xc5,
+ 0x3eb: 0xc6, 0x3ec: 0xc7,
+ 0x3f5: 0xc8,
+ 0x3ff: 0xc9,
// Block 0x10, offset 0x400
- 0x432: 0xc0,
+ 0x432: 0xca,
// Block 0x11, offset 0x440
- 0x445: 0xc1, 0x446: 0xc2, 0x447: 0xc3,
- 0x449: 0xc4,
+ 0x445: 0xcb, 0x446: 0xcc, 0x447: 0xcd,
+ 0x449: 0xce,
// Block 0x12, offset 0x480
- 0x480: 0xc5, 0x484: 0xbe,
- 0x48b: 0xc6,
- 0x4a3: 0xc7, 0x4a5: 0xc8,
+ 0x480: 0xcf, 0x482: 0xd0, 0x484: 0xc7,
+ 0x48a: 0xd1, 0x48b: 0xd2,
+ 0x493: 0xd3, 0x497: 0xd4,
+ 0x49b: 0xd5,
+ 0x4a3: 0xd6, 0x4a5: 0xd7,
// Block 0x13, offset 0x4c0
- 0x4c8: 0xc9,
+ 0x4c8: 0xd8,
// Block 0x14, offset 0x500
0x520: 0x25, 0x521: 0x26, 0x522: 0x27, 0x523: 0x28, 0x524: 0x29, 0x525: 0x2a, 0x526: 0x2b, 0x527: 0x2c,
0x528: 0x2d,
@@ -3543,11 +3626,11 @@ var nfcIndex = [1408]uint8{
0x56f: 0x12,
}
-// nfcSparseOffset: 156 entries, 312 bytes
-var nfcSparseOffset = []uint16{0x0, 0x5, 0x9, 0xb, 0xd, 0x18, 0x28, 0x2a, 0x2f, 0x3a, 0x49, 0x56, 0x5e, 0x63, 0x68, 0x6a, 0x72, 0x79, 0x7c, 0x84, 0x88, 0x8c, 0x8e, 0x90, 0x99, 0x9d, 0xa4, 0xa9, 0xac, 0xb6, 0xb9, 0xc0, 0xc8, 0xcb, 0xcd, 0xd0, 0xd2, 0xd7, 0xe8, 0xf4, 0xf6, 0xfc, 0xfe, 0x100, 0x102, 0x104, 0x106, 0x108, 0x10b, 0x10e, 0x110, 0x113, 0x116, 0x11a, 0x120, 0x122, 0x12b, 0x12d, 0x130, 0x132, 0x13d, 0x141, 0x14f, 0x152, 0x158, 0x15e, 0x169, 0x16d, 0x16f, 0x171, 0x173, 0x175, 0x177, 0x17d, 0x181, 0x183, 0x185, 0x18d, 0x191, 0x194, 0x196, 0x198, 0x19b, 0x19e, 0x1a0, 0x1a2, 0x1a4, 0x1a6, 0x1ac, 0x1af, 0x1b1, 0x1b8, 0x1be, 0x1c4, 0x1cc, 0x1d2, 0x1d8, 0x1de, 0x1e2, 0x1f0, 0x1f9, 0x1fc, 0x1ff, 0x201, 0x204, 0x206, 0x20a, 0x20f, 0x211, 0x213, 0x218, 0x21e, 0x220, 0x222, 0x224, 0x22a, 0x22d, 0x22f, 0x231, 0x237, 0x23a, 0x242, 0x249, 0x24c, 0x24f, 0x251, 0x254, 0x25c, 0x260, 0x267, 0x26a, 0x270, 0x272, 0x275, 0x277, 0x27a, 0x27f, 0x281, 0x283, 0x285, 0x287, 0x289, 0x28c, 0x28e, 0x290, 0x292, 0x294, 0x296, 0x2a3, 0x2ad, 0x2af, 0x2b1, 0x2b7, 0x2b9, 0x2bb, 0x2be}
+// nfcSparseOffset: 171 entries, 342 bytes
+var nfcSparseOffset = []uint16{0x0, 0x5, 0x9, 0xb, 0xd, 0x18, 0x28, 0x2a, 0x2f, 0x3a, 0x49, 0x56, 0x5e, 0x63, 0x68, 0x6a, 0x6e, 0x76, 0x7d, 0x80, 0x88, 0x8c, 0x90, 0x92, 0x94, 0x9d, 0xa1, 0xa8, 0xad, 0xb0, 0xba, 0xbd, 0xc4, 0xcc, 0xcf, 0xd1, 0xd4, 0xd6, 0xdb, 0xec, 0xf8, 0xfa, 0x100, 0x102, 0x104, 0x106, 0x108, 0x10a, 0x10c, 0x10f, 0x112, 0x114, 0x117, 0x11a, 0x11e, 0x124, 0x130, 0x139, 0x13b, 0x13e, 0x140, 0x14b, 0x14f, 0x15d, 0x160, 0x166, 0x16c, 0x177, 0x17b, 0x17d, 0x17f, 0x181, 0x183, 0x185, 0x18b, 0x18f, 0x191, 0x193, 0x19b, 0x19f, 0x1a2, 0x1a4, 0x1a6, 0x1a9, 0x1ac, 0x1ae, 0x1b0, 0x1b2, 0x1b4, 0x1ba, 0x1bd, 0x1bf, 0x1c6, 0x1cc, 0x1d2, 0x1da, 0x1e0, 0x1e6, 0x1ec, 0x1f0, 0x1fe, 0x207, 0x20a, 0x20d, 0x20f, 0x212, 0x214, 0x218, 0x21d, 0x21f, 0x221, 0x226, 0x22c, 0x22e, 0x230, 0x232, 0x237, 0x23d, 0x240, 0x242, 0x244, 0x246, 0x249, 0x24f, 0x253, 0x257, 0x25f, 0x266, 0x269, 0x26c, 0x26e, 0x271, 0x279, 0x283, 0x28a, 0x28e, 0x295, 0x298, 0x29e, 0x2a0, 0x2a3, 0x2a5, 0x2a8, 0x2ad, 0x2af, 0x2b1, 0x2b3, 0x2b5, 0x2b7, 0x2ba, 0x2bc, 0x2be, 0x2cb, 0x2cd, 0x2cf, 0x2d5, 0x2d7, 0x2d9, 0x2e6, 0x2f0, 0x2f2, 0x2f4, 0x2fa, 0x2fc, 0x2fe, 0x300, 0x304, 0x307, 0x30c, 0x30e, 0x311}
-// nfcSparseValues: 704 entries, 2816 bytes
-var nfcSparseValues = [704]valueRange{
+// nfcSparseValues: 787 entries, 3148 bytes
+var nfcSparseValues = [787]valueRange{
// Block 0x0, offset 0x0
{value: 0x0000, lo: 0x04},
{value: 0xa100, lo: 0xa8, hi: 0xa8},
@@ -3556,8 +3639,8 @@ var nfcSparseValues = [704]valueRange{
{value: 0x8100, lo: 0xb8, hi: 0xb8},
// Block 0x1, offset 0x5
{value: 0x0091, lo: 0x03},
- {value: 0x46f9, lo: 0xa0, hi: 0xa1},
- {value: 0x472b, lo: 0xaf, hi: 0xb0},
+ {value: 0x4859, lo: 0xa0, hi: 0xa1},
+ {value: 0x488b, lo: 0xaf, hi: 0xb0},
{value: 0xa000, lo: 0xb7, hi: 0xb7},
// Block 0x2, offset 0x9
{value: 0x0000, lo: 0x01},
@@ -3570,30 +3653,30 @@ var nfcSparseValues = [704]valueRange{
{value: 0xa000, lo: 0x81, hi: 0x81},
{value: 0xa000, lo: 0x85, hi: 0x85},
{value: 0xa000, lo: 0x89, hi: 0x89},
- {value: 0x4857, lo: 0x8a, hi: 0x8a},
- {value: 0x4875, lo: 0x8b, hi: 0x8b},
- {value: 0x36de, lo: 0x8c, hi: 0x8c},
- {value: 0x36f6, lo: 0x8d, hi: 0x8d},
- {value: 0x488d, lo: 0x8e, hi: 0x8e},
+ {value: 0x49b7, lo: 0x8a, hi: 0x8a},
+ {value: 0x49d5, lo: 0x8b, hi: 0x8b},
+ {value: 0x3626, lo: 0x8c, hi: 0x8c},
+ {value: 0x363e, lo: 0x8d, hi: 0x8d},
+ {value: 0x49ed, lo: 0x8e, hi: 0x8e},
{value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0x3714, lo: 0x93, hi: 0x94},
+ {value: 0x365c, lo: 0x93, hi: 0x94},
// Block 0x5, offset 0x18
{value: 0x0000, lo: 0x0f},
{value: 0xa000, lo: 0x83, hi: 0x83},
{value: 0xa000, lo: 0x87, hi: 0x87},
{value: 0xa000, lo: 0x8b, hi: 0x8b},
{value: 0xa000, lo: 0x8d, hi: 0x8d},
- {value: 0x37bc, lo: 0x90, hi: 0x90},
- {value: 0x37c8, lo: 0x91, hi: 0x91},
- {value: 0x37b6, lo: 0x93, hi: 0x93},
+ {value: 0x3704, lo: 0x90, hi: 0x90},
+ {value: 0x3710, lo: 0x91, hi: 0x91},
+ {value: 0x36fe, lo: 0x93, hi: 0x93},
{value: 0xa000, lo: 0x96, hi: 0x96},
- {value: 0x382e, lo: 0x97, hi: 0x97},
- {value: 0x37f8, lo: 0x9c, hi: 0x9c},
- {value: 0x37e0, lo: 0x9d, hi: 0x9d},
- {value: 0x380a, lo: 0x9e, hi: 0x9e},
+ {value: 0x3776, lo: 0x97, hi: 0x97},
+ {value: 0x3740, lo: 0x9c, hi: 0x9c},
+ {value: 0x3728, lo: 0x9d, hi: 0x9d},
+ {value: 0x3752, lo: 0x9e, hi: 0x9e},
{value: 0xa000, lo: 0xb4, hi: 0xb5},
- {value: 0x3834, lo: 0xb6, hi: 0xb6},
- {value: 0x383a, lo: 0xb7, hi: 0xb7},
+ {value: 0x377c, lo: 0xb6, hi: 0xb6},
+ {value: 0x3782, lo: 0xb7, hi: 0xb7},
// Block 0x6, offset 0x28
{value: 0x0000, lo: 0x01},
{value: 0x8133, lo: 0x83, hi: 0x87},
@@ -3609,19 +3692,19 @@ var nfcSparseValues = [704]valueRange{
{value: 0x811a, lo: 0x98, hi: 0x98},
{value: 0x811b, lo: 0x99, hi: 0x99},
{value: 0x811c, lo: 0x9a, hi: 0x9a},
- {value: 0x3858, lo: 0xa2, hi: 0xa2},
- {value: 0x385e, lo: 0xa3, hi: 0xa3},
- {value: 0x386a, lo: 0xa4, hi: 0xa4},
- {value: 0x3864, lo: 0xa5, hi: 0xa5},
- {value: 0x3870, lo: 0xa6, hi: 0xa6},
+ {value: 0x37a0, lo: 0xa2, hi: 0xa2},
+ {value: 0x37a6, lo: 0xa3, hi: 0xa3},
+ {value: 0x37b2, lo: 0xa4, hi: 0xa4},
+ {value: 0x37ac, lo: 0xa5, hi: 0xa5},
+ {value: 0x37b8, lo: 0xa6, hi: 0xa6},
{value: 0xa000, lo: 0xa7, hi: 0xa7},
// Block 0x9, offset 0x3a
{value: 0x0000, lo: 0x0e},
- {value: 0x3882, lo: 0x80, hi: 0x80},
+ {value: 0x37ca, lo: 0x80, hi: 0x80},
{value: 0xa000, lo: 0x81, hi: 0x81},
- {value: 0x3876, lo: 0x82, hi: 0x82},
+ {value: 0x37be, lo: 0x82, hi: 0x82},
{value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0x387c, lo: 0x93, hi: 0x93},
+ {value: 0x37c4, lo: 0x93, hi: 0x93},
{value: 0xa000, lo: 0x95, hi: 0x95},
{value: 0x8133, lo: 0x96, hi: 0x9c},
{value: 0x8133, lo: 0x9f, hi: 0xa2},
@@ -3670,250 +3753,265 @@ var nfcSparseValues = [704]valueRange{
{value: 0x0000, lo: 0x01},
{value: 0x812e, lo: 0x99, hi: 0x9b},
// Block 0xf, offset 0x6a
+ {value: 0x0000, lo: 0x03},
+ {value: 0x8133, lo: 0x97, hi: 0x98},
+ {value: 0x812e, lo: 0x99, hi: 0x9b},
+ {value: 0x8133, lo: 0x9c, hi: 0x9f},
+ // Block 0x10, offset 0x6e
{value: 0x0000, lo: 0x07},
{value: 0xa000, lo: 0xa8, hi: 0xa8},
- {value: 0x3eef, lo: 0xa9, hi: 0xa9},
+ {value: 0x3e37, lo: 0xa9, hi: 0xa9},
{value: 0xa000, lo: 0xb0, hi: 0xb0},
- {value: 0x3ef7, lo: 0xb1, hi: 0xb1},
+ {value: 0x3e3f, lo: 0xb1, hi: 0xb1},
{value: 0xa000, lo: 0xb3, hi: 0xb3},
- {value: 0x3eff, lo: 0xb4, hi: 0xb4},
+ {value: 0x3e47, lo: 0xb4, hi: 0xb4},
{value: 0x9903, lo: 0xbc, hi: 0xbc},
- // Block 0x10, offset 0x72
+ // Block 0x11, offset 0x76
{value: 0x0008, lo: 0x06},
{value: 0x8105, lo: 0x8d, hi: 0x8d},
{value: 0x8133, lo: 0x91, hi: 0x91},
{value: 0x812e, lo: 0x92, hi: 0x92},
{value: 0x8133, lo: 0x93, hi: 0x93},
{value: 0x8133, lo: 0x94, hi: 0x94},
- {value: 0x4533, lo: 0x98, hi: 0x9f},
- // Block 0x11, offset 0x79
+ {value: 0x461b, lo: 0x98, hi: 0x9f},
+ // Block 0x12, offset 0x7d
{value: 0x0000, lo: 0x02},
{value: 0x8103, lo: 0xbc, hi: 0xbc},
{value: 0x9900, lo: 0xbe, hi: 0xbe},
- // Block 0x12, offset 0x7c
+ // Block 0x13, offset 0x80
{value: 0x0008, lo: 0x07},
{value: 0xa000, lo: 0x87, hi: 0x87},
- {value: 0x2cab, lo: 0x8b, hi: 0x8c},
+ {value: 0x3e4f, lo: 0x8b, hi: 0x8c},
{value: 0x8105, lo: 0x8d, hi: 0x8d},
{value: 0x9900, lo: 0x97, hi: 0x97},
- {value: 0x4573, lo: 0x9c, hi: 0x9d},
- {value: 0x4583, lo: 0x9f, hi: 0x9f},
+ {value: 0x465b, lo: 0x9c, hi: 0x9d},
+ {value: 0x466b, lo: 0x9f, hi: 0x9f},
{value: 0x8133, lo: 0xbe, hi: 0xbe},
- // Block 0x13, offset 0x84
+ // Block 0x14, offset 0x88
{value: 0x0000, lo: 0x03},
- {value: 0x45ab, lo: 0xb3, hi: 0xb3},
- {value: 0x45b3, lo: 0xb6, hi: 0xb6},
+ {value: 0x4693, lo: 0xb3, hi: 0xb3},
+ {value: 0x469b, lo: 0xb6, hi: 0xb6},
{value: 0x8103, lo: 0xbc, hi: 0xbc},
- // Block 0x14, offset 0x88
+ // Block 0x15, offset 0x8c
{value: 0x0008, lo: 0x03},
{value: 0x8105, lo: 0x8d, hi: 0x8d},
- {value: 0x458b, lo: 0x99, hi: 0x9b},
- {value: 0x45a3, lo: 0x9e, hi: 0x9e},
- // Block 0x15, offset 0x8c
+ {value: 0x4673, lo: 0x99, hi: 0x9b},
+ {value: 0x468b, lo: 0x9e, hi: 0x9e},
+ // Block 0x16, offset 0x90
{value: 0x0000, lo: 0x01},
{value: 0x8103, lo: 0xbc, hi: 0xbc},
- // Block 0x16, offset 0x8e
+ // Block 0x17, offset 0x92
{value: 0x0000, lo: 0x01},
{value: 0x8105, lo: 0x8d, hi: 0x8d},
- // Block 0x17, offset 0x90
+ // Block 0x18, offset 0x94
{value: 0x0000, lo: 0x08},
{value: 0xa000, lo: 0x87, hi: 0x87},
- {value: 0x2cc3, lo: 0x88, hi: 0x88},
- {value: 0x2cbb, lo: 0x8b, hi: 0x8b},
- {value: 0x2ccb, lo: 0x8c, hi: 0x8c},
+ {value: 0x3e67, lo: 0x88, hi: 0x88},
+ {value: 0x3e5f, lo: 0x8b, hi: 0x8b},
+ {value: 0x3e6f, lo: 0x8c, hi: 0x8c},
{value: 0x8105, lo: 0x8d, hi: 0x8d},
{value: 0x9900, lo: 0x96, hi: 0x97},
- {value: 0x45bb, lo: 0x9c, hi: 0x9c},
- {value: 0x45c3, lo: 0x9d, hi: 0x9d},
- // Block 0x18, offset 0x99
+ {value: 0x46a3, lo: 0x9c, hi: 0x9c},
+ {value: 0x46ab, lo: 0x9d, hi: 0x9d},
+ // Block 0x19, offset 0x9d
{value: 0x0000, lo: 0x03},
{value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0x2cd3, lo: 0x94, hi: 0x94},
+ {value: 0x3e77, lo: 0x94, hi: 0x94},
{value: 0x9900, lo: 0xbe, hi: 0xbe},
- // Block 0x19, offset 0x9d
+ // Block 0x1a, offset 0xa1
{value: 0x0000, lo: 0x06},
{value: 0xa000, lo: 0x86, hi: 0x87},
- {value: 0x2cdb, lo: 0x8a, hi: 0x8a},
- {value: 0x2ceb, lo: 0x8b, hi: 0x8b},
- {value: 0x2ce3, lo: 0x8c, hi: 0x8c},
+ {value: 0x3e7f, lo: 0x8a, hi: 0x8a},
+ {value: 0x3e8f, lo: 0x8b, hi: 0x8b},
+ {value: 0x3e87, lo: 0x8c, hi: 0x8c},
{value: 0x8105, lo: 0x8d, hi: 0x8d},
{value: 0x9900, lo: 0x97, hi: 0x97},
- // Block 0x1a, offset 0xa4
+ // Block 0x1b, offset 0xa8
{value: 0x1801, lo: 0x04},
{value: 0xa000, lo: 0x86, hi: 0x86},
- {value: 0x3f07, lo: 0x88, hi: 0x88},
+ {value: 0x3e97, lo: 0x88, hi: 0x88},
{value: 0x8105, lo: 0x8d, hi: 0x8d},
{value: 0x8121, lo: 0x95, hi: 0x96},
- // Block 0x1b, offset 0xa9
+ // Block 0x1c, offset 0xad
{value: 0x0000, lo: 0x02},
{value: 0x8103, lo: 0xbc, hi: 0xbc},
{value: 0xa000, lo: 0xbf, hi: 0xbf},
- // Block 0x1c, offset 0xac
+ // Block 0x1d, offset 0xb0
{value: 0x0000, lo: 0x09},
- {value: 0x2cf3, lo: 0x80, hi: 0x80},
+ {value: 0x3e9f, lo: 0x80, hi: 0x80},
{value: 0x9900, lo: 0x82, hi: 0x82},
{value: 0xa000, lo: 0x86, hi: 0x86},
- {value: 0x2cfb, lo: 0x87, hi: 0x87},
- {value: 0x2d03, lo: 0x88, hi: 0x88},
- {value: 0x2f67, lo: 0x8a, hi: 0x8a},
- {value: 0x2def, lo: 0x8b, hi: 0x8b},
+ {value: 0x3ea7, lo: 0x87, hi: 0x87},
+ {value: 0x3eaf, lo: 0x88, hi: 0x88},
+ {value: 0x4b25, lo: 0x8a, hi: 0x8a},
+ {value: 0x4331, lo: 0x8b, hi: 0x8b},
{value: 0x8105, lo: 0x8d, hi: 0x8d},
{value: 0x9900, lo: 0x95, hi: 0x96},
- // Block 0x1d, offset 0xb6
+ // Block 0x1e, offset 0xba
{value: 0x0000, lo: 0x02},
{value: 0x8105, lo: 0xbb, hi: 0xbc},
{value: 0x9900, lo: 0xbe, hi: 0xbe},
- // Block 0x1e, offset 0xb9
+ // Block 0x1f, offset 0xbd
{value: 0x0000, lo: 0x06},
{value: 0xa000, lo: 0x86, hi: 0x87},
- {value: 0x2d0b, lo: 0x8a, hi: 0x8a},
- {value: 0x2d1b, lo: 0x8b, hi: 0x8b},
- {value: 0x2d13, lo: 0x8c, hi: 0x8c},
+ {value: 0x3eb7, lo: 0x8a, hi: 0x8a},
+ {value: 0x3ec7, lo: 0x8b, hi: 0x8b},
+ {value: 0x3ebf, lo: 0x8c, hi: 0x8c},
{value: 0x8105, lo: 0x8d, hi: 0x8d},
{value: 0x9900, lo: 0x97, hi: 0x97},
- // Block 0x1f, offset 0xc0
- {value: 0x6bdd, lo: 0x07},
+ // Block 0x20, offset 0xc4
+ {value: 0x5a29, lo: 0x07},
{value: 0x9905, lo: 0x8a, hi: 0x8a},
{value: 0x9900, lo: 0x8f, hi: 0x8f},
{value: 0xa000, lo: 0x99, hi: 0x99},
- {value: 0x3f0f, lo: 0x9a, hi: 0x9a},
- {value: 0x2f6f, lo: 0x9c, hi: 0x9c},
- {value: 0x2dfa, lo: 0x9d, hi: 0x9d},
- {value: 0x2d23, lo: 0x9e, hi: 0x9f},
- // Block 0x20, offset 0xc8
+ {value: 0x3ecf, lo: 0x9a, hi: 0x9a},
+ {value: 0x4b2d, lo: 0x9c, hi: 0x9c},
+ {value: 0x433c, lo: 0x9d, hi: 0x9d},
+ {value: 0x3ed7, lo: 0x9e, hi: 0x9f},
+ // Block 0x21, offset 0xcc
{value: 0x0000, lo: 0x02},
{value: 0x8123, lo: 0xb8, hi: 0xb9},
{value: 0x8105, lo: 0xba, hi: 0xba},
- // Block 0x21, offset 0xcb
+ // Block 0x22, offset 0xcf
{value: 0x0000, lo: 0x01},
{value: 0x8124, lo: 0x88, hi: 0x8b},
- // Block 0x22, offset 0xcd
+ // Block 0x23, offset 0xd1
{value: 0x0000, lo: 0x02},
{value: 0x8125, lo: 0xb8, hi: 0xb9},
{value: 0x8105, lo: 0xba, hi: 0xba},
- // Block 0x23, offset 0xd0
+ // Block 0x24, offset 0xd4
{value: 0x0000, lo: 0x01},
{value: 0x8126, lo: 0x88, hi: 0x8b},
- // Block 0x24, offset 0xd2
+ // Block 0x25, offset 0xd6
{value: 0x0000, lo: 0x04},
{value: 0x812e, lo: 0x98, hi: 0x99},
{value: 0x812e, lo: 0xb5, hi: 0xb5},
{value: 0x812e, lo: 0xb7, hi: 0xb7},
{value: 0x812c, lo: 0xb9, hi: 0xb9},
- // Block 0x25, offset 0xd7
+ // Block 0x26, offset 0xdb
{value: 0x0000, lo: 0x10},
- {value: 0x264a, lo: 0x83, hi: 0x83},
- {value: 0x2651, lo: 0x8d, hi: 0x8d},
- {value: 0x2658, lo: 0x92, hi: 0x92},
- {value: 0x265f, lo: 0x97, hi: 0x97},
- {value: 0x2666, lo: 0x9c, hi: 0x9c},
- {value: 0x2643, lo: 0xa9, hi: 0xa9},
+ {value: 0x2774, lo: 0x83, hi: 0x83},
+ {value: 0x277b, lo: 0x8d, hi: 0x8d},
+ {value: 0x2782, lo: 0x92, hi: 0x92},
+ {value: 0x2789, lo: 0x97, hi: 0x97},
+ {value: 0x2790, lo: 0x9c, hi: 0x9c},
+ {value: 0x276d, lo: 0xa9, hi: 0xa9},
{value: 0x8127, lo: 0xb1, hi: 0xb1},
{value: 0x8128, lo: 0xb2, hi: 0xb2},
- {value: 0x4a9b, lo: 0xb3, hi: 0xb3},
+ {value: 0x4ca5, lo: 0xb3, hi: 0xb3},
{value: 0x8129, lo: 0xb4, hi: 0xb4},
- {value: 0x4aa4, lo: 0xb5, hi: 0xb5},
- {value: 0x45cb, lo: 0xb6, hi: 0xb6},
+ {value: 0x4cae, lo: 0xb5, hi: 0xb5},
+ {value: 0x46b3, lo: 0xb6, hi: 0xb6},
{value: 0x8200, lo: 0xb7, hi: 0xb7},
- {value: 0x45d3, lo: 0xb8, hi: 0xb8},
+ {value: 0x46bb, lo: 0xb8, hi: 0xb8},
{value: 0x8200, lo: 0xb9, hi: 0xb9},
{value: 0x8128, lo: 0xba, hi: 0xbd},
- // Block 0x26, offset 0xe8
+ // Block 0x27, offset 0xec
{value: 0x0000, lo: 0x0b},
{value: 0x8128, lo: 0x80, hi: 0x80},
- {value: 0x4aad, lo: 0x81, hi: 0x81},
+ {value: 0x4cb7, lo: 0x81, hi: 0x81},
{value: 0x8133, lo: 0x82, hi: 0x83},
{value: 0x8105, lo: 0x84, hi: 0x84},
{value: 0x8133, lo: 0x86, hi: 0x87},
- {value: 0x2674, lo: 0x93, hi: 0x93},
- {value: 0x267b, lo: 0x9d, hi: 0x9d},
- {value: 0x2682, lo: 0xa2, hi: 0xa2},
- {value: 0x2689, lo: 0xa7, hi: 0xa7},
- {value: 0x2690, lo: 0xac, hi: 0xac},
- {value: 0x266d, lo: 0xb9, hi: 0xb9},
- // Block 0x27, offset 0xf4
+ {value: 0x279e, lo: 0x93, hi: 0x93},
+ {value: 0x27a5, lo: 0x9d, hi: 0x9d},
+ {value: 0x27ac, lo: 0xa2, hi: 0xa2},
+ {value: 0x27b3, lo: 0xa7, hi: 0xa7},
+ {value: 0x27ba, lo: 0xac, hi: 0xac},
+ {value: 0x2797, lo: 0xb9, hi: 0xb9},
+ // Block 0x28, offset 0xf8
{value: 0x0000, lo: 0x01},
{value: 0x812e, lo: 0x86, hi: 0x86},
- // Block 0x28, offset 0xf6
+ // Block 0x29, offset 0xfa
{value: 0x0000, lo: 0x05},
{value: 0xa000, lo: 0xa5, hi: 0xa5},
- {value: 0x2d2b, lo: 0xa6, hi: 0xa6},
+ {value: 0x3edf, lo: 0xa6, hi: 0xa6},
{value: 0x9900, lo: 0xae, hi: 0xae},
{value: 0x8103, lo: 0xb7, hi: 0xb7},
{value: 0x8105, lo: 0xb9, hi: 0xba},
- // Block 0x29, offset 0xfc
+ // Block 0x2a, offset 0x100
{value: 0x0000, lo: 0x01},
{value: 0x812e, lo: 0x8d, hi: 0x8d},
- // Block 0x2a, offset 0xfe
+ // Block 0x2b, offset 0x102
{value: 0x0000, lo: 0x01},
{value: 0xa000, lo: 0x80, hi: 0x92},
- // Block 0x2b, offset 0x100
+ // Block 0x2c, offset 0x104
{value: 0x0000, lo: 0x01},
{value: 0xb900, lo: 0xa1, hi: 0xb5},
- // Block 0x2c, offset 0x102
+ // Block 0x2d, offset 0x106
{value: 0x0000, lo: 0x01},
{value: 0x9900, lo: 0xa8, hi: 0xbf},
- // Block 0x2d, offset 0x104
+ // Block 0x2e, offset 0x108
{value: 0x0000, lo: 0x01},
{value: 0x9900, lo: 0x80, hi: 0x82},
- // Block 0x2e, offset 0x106
+ // Block 0x2f, offset 0x10a
{value: 0x0000, lo: 0x01},
{value: 0x8133, lo: 0x9d, hi: 0x9f},
- // Block 0x2f, offset 0x108
+ // Block 0x30, offset 0x10c
{value: 0x0000, lo: 0x02},
- {value: 0x8105, lo: 0x94, hi: 0x94},
+ {value: 0x8105, lo: 0x94, hi: 0x95},
{value: 0x8105, lo: 0xb4, hi: 0xb4},
- // Block 0x30, offset 0x10b
+ // Block 0x31, offset 0x10f
{value: 0x0000, lo: 0x02},
{value: 0x8105, lo: 0x92, hi: 0x92},
{value: 0x8133, lo: 0x9d, hi: 0x9d},
- // Block 0x31, offset 0x10e
+ // Block 0x32, offset 0x112
{value: 0x0000, lo: 0x01},
{value: 0x8132, lo: 0xa9, hi: 0xa9},
- // Block 0x32, offset 0x110
+ // Block 0x33, offset 0x114
{value: 0x0004, lo: 0x02},
{value: 0x812f, lo: 0xb9, hi: 0xba},
{value: 0x812e, lo: 0xbb, hi: 0xbb},
- // Block 0x33, offset 0x113
+ // Block 0x34, offset 0x117
{value: 0x0000, lo: 0x02},
{value: 0x8133, lo: 0x97, hi: 0x97},
{value: 0x812e, lo: 0x98, hi: 0x98},
- // Block 0x34, offset 0x116
+ // Block 0x35, offset 0x11a
{value: 0x0000, lo: 0x03},
{value: 0x8105, lo: 0xa0, hi: 0xa0},
{value: 0x8133, lo: 0xb5, hi: 0xbc},
{value: 0x812e, lo: 0xbf, hi: 0xbf},
- // Block 0x35, offset 0x11a
+ // Block 0x36, offset 0x11e
{value: 0x0000, lo: 0x05},
{value: 0x8133, lo: 0xb0, hi: 0xb4},
{value: 0x812e, lo: 0xb5, hi: 0xba},
{value: 0x8133, lo: 0xbb, hi: 0xbc},
{value: 0x812e, lo: 0xbd, hi: 0xbd},
{value: 0x812e, lo: 0xbf, hi: 0xbf},
- // Block 0x36, offset 0x120
- {value: 0x0000, lo: 0x01},
+ // Block 0x37, offset 0x124
+ {value: 0x0000, lo: 0x0b},
{value: 0x812e, lo: 0x80, hi: 0x80},
- // Block 0x37, offset 0x122
+ {value: 0x8133, lo: 0x81, hi: 0x82},
+ {value: 0x812e, lo: 0x83, hi: 0x84},
+ {value: 0x8133, lo: 0x85, hi: 0x89},
+ {value: 0x812e, lo: 0x8a, hi: 0x8a},
+ {value: 0x8133, lo: 0x8b, hi: 0x9c},
+ {value: 0x812e, lo: 0x9d, hi: 0x9d},
+ {value: 0x8133, lo: 0xa0, hi: 0xa5},
+ {value: 0x812e, lo: 0xa6, hi: 0xa6},
+ {value: 0x8133, lo: 0xa7, hi: 0xaa},
+ {value: 0x8136, lo: 0xab, hi: 0xab},
+ // Block 0x38, offset 0x130
{value: 0x0000, lo: 0x08},
- {value: 0x2d73, lo: 0x80, hi: 0x80},
- {value: 0x2d7b, lo: 0x81, hi: 0x81},
+ {value: 0x3f27, lo: 0x80, hi: 0x80},
+ {value: 0x3f2f, lo: 0x81, hi: 0x81},
{value: 0xa000, lo: 0x82, hi: 0x82},
- {value: 0x2d83, lo: 0x83, hi: 0x83},
+ {value: 0x3f37, lo: 0x83, hi: 0x83},
{value: 0x8105, lo: 0x84, hi: 0x84},
{value: 0x8133, lo: 0xab, hi: 0xab},
{value: 0x812e, lo: 0xac, hi: 0xac},
{value: 0x8133, lo: 0xad, hi: 0xb3},
- // Block 0x38, offset 0x12b
+ // Block 0x39, offset 0x139
{value: 0x0000, lo: 0x01},
{value: 0x8105, lo: 0xaa, hi: 0xab},
- // Block 0x39, offset 0x12d
+ // Block 0x3a, offset 0x13b
{value: 0x0000, lo: 0x02},
{value: 0x8103, lo: 0xa6, hi: 0xa6},
{value: 0x8105, lo: 0xb2, hi: 0xb3},
- // Block 0x3a, offset 0x130
+ // Block 0x3b, offset 0x13e
{value: 0x0000, lo: 0x01},
{value: 0x8103, lo: 0xb7, hi: 0xb7},
- // Block 0x3b, offset 0x132
+ // Block 0x3c, offset 0x140
{value: 0x0000, lo: 0x0a},
{value: 0x8133, lo: 0x90, hi: 0x92},
{value: 0x8101, lo: 0x94, hi: 0x94},
@@ -3925,12 +4023,12 @@ var nfcSparseValues = [704]valueRange{
{value: 0x812e, lo: 0xad, hi: 0xad},
{value: 0x8133, lo: 0xb4, hi: 0xb4},
{value: 0x8133, lo: 0xb8, hi: 0xb9},
- // Block 0x3c, offset 0x13d
+ // Block 0x3d, offset 0x14b
{value: 0x0004, lo: 0x03},
- {value: 0x0436, lo: 0x80, hi: 0x81},
+ {value: 0x052a, lo: 0x80, hi: 0x81},
{value: 0x8100, lo: 0x97, hi: 0x97},
{value: 0x8100, lo: 0xbe, hi: 0xbe},
- // Block 0x3d, offset 0x141
+ // Block 0x3e, offset 0x14f
{value: 0x0000, lo: 0x0d},
{value: 0x8133, lo: 0x90, hi: 0x91},
{value: 0x8101, lo: 0x92, hi: 0x93},
@@ -3945,75 +4043,75 @@ var nfcSparseValues = [704]valueRange{
{value: 0x8101, lo: 0xaa, hi: 0xab},
{value: 0x812e, lo: 0xac, hi: 0xaf},
{value: 0x8133, lo: 0xb0, hi: 0xb0},
- // Block 0x3e, offset 0x14f
- {value: 0x4292, lo: 0x02},
- {value: 0x01bb, lo: 0xa6, hi: 0xa6},
+ // Block 0x3f, offset 0x15d
+ {value: 0x437a, lo: 0x02},
+ {value: 0x023c, lo: 0xa6, hi: 0xa6},
{value: 0x0057, lo: 0xaa, hi: 0xab},
- // Block 0x3f, offset 0x152
+ // Block 0x40, offset 0x160
{value: 0x0007, lo: 0x05},
{value: 0xa000, lo: 0x90, hi: 0x90},
{value: 0xa000, lo: 0x92, hi: 0x92},
{value: 0xa000, lo: 0x94, hi: 0x94},
- {value: 0x3bd0, lo: 0x9a, hi: 0x9b},
- {value: 0x3bde, lo: 0xae, hi: 0xae},
- // Block 0x40, offset 0x158
+ {value: 0x3b18, lo: 0x9a, hi: 0x9b},
+ {value: 0x3b26, lo: 0xae, hi: 0xae},
+ // Block 0x41, offset 0x166
{value: 0x000e, lo: 0x05},
- {value: 0x3be5, lo: 0x8d, hi: 0x8e},
- {value: 0x3bec, lo: 0x8f, hi: 0x8f},
+ {value: 0x3b2d, lo: 0x8d, hi: 0x8e},
+ {value: 0x3b34, lo: 0x8f, hi: 0x8f},
{value: 0xa000, lo: 0x90, hi: 0x90},
{value: 0xa000, lo: 0x92, hi: 0x92},
{value: 0xa000, lo: 0x94, hi: 0x94},
- // Block 0x41, offset 0x15e
- {value: 0x63f1, lo: 0x0a},
+ // Block 0x42, offset 0x16c
+ {value: 0x64a9, lo: 0x0a},
{value: 0xa000, lo: 0x83, hi: 0x83},
- {value: 0x3bfa, lo: 0x84, hi: 0x84},
+ {value: 0x3b42, lo: 0x84, hi: 0x84},
{value: 0xa000, lo: 0x88, hi: 0x88},
- {value: 0x3c01, lo: 0x89, hi: 0x89},
+ {value: 0x3b49, lo: 0x89, hi: 0x89},
{value: 0xa000, lo: 0x8b, hi: 0x8b},
- {value: 0x3c08, lo: 0x8c, hi: 0x8c},
+ {value: 0x3b50, lo: 0x8c, hi: 0x8c},
{value: 0xa000, lo: 0xa3, hi: 0xa3},
- {value: 0x3c0f, lo: 0xa4, hi: 0xa5},
- {value: 0x3c16, lo: 0xa6, hi: 0xa6},
+ {value: 0x3b57, lo: 0xa4, hi: 0xa5},
+ {value: 0x3b5e, lo: 0xa6, hi: 0xa6},
{value: 0xa000, lo: 0xbc, hi: 0xbc},
- // Block 0x42, offset 0x169
+ // Block 0x43, offset 0x177
{value: 0x0007, lo: 0x03},
- {value: 0x3c7f, lo: 0xa0, hi: 0xa1},
- {value: 0x3ca9, lo: 0xa2, hi: 0xa3},
- {value: 0x3cd3, lo: 0xaa, hi: 0xad},
- // Block 0x43, offset 0x16d
+ {value: 0x3bc7, lo: 0xa0, hi: 0xa1},
+ {value: 0x3bf1, lo: 0xa2, hi: 0xa3},
+ {value: 0x3c1b, lo: 0xaa, hi: 0xad},
+ // Block 0x44, offset 0x17b
{value: 0x0004, lo: 0x01},
- {value: 0x048e, lo: 0xa9, hi: 0xaa},
- // Block 0x44, offset 0x16f
+ {value: 0x0586, lo: 0xa9, hi: 0xaa},
+ // Block 0x45, offset 0x17d
{value: 0x0000, lo: 0x01},
- {value: 0x44f4, lo: 0x9c, hi: 0x9c},
- // Block 0x45, offset 0x171
+ {value: 0x45dc, lo: 0x9c, hi: 0x9c},
+ // Block 0x46, offset 0x17f
{value: 0x0000, lo: 0x01},
{value: 0x8133, lo: 0xaf, hi: 0xb1},
- // Block 0x46, offset 0x173
+ // Block 0x47, offset 0x181
{value: 0x0000, lo: 0x01},
{value: 0x8105, lo: 0xbf, hi: 0xbf},
- // Block 0x47, offset 0x175
+ // Block 0x48, offset 0x183
{value: 0x0000, lo: 0x01},
{value: 0x8133, lo: 0xa0, hi: 0xbf},
- // Block 0x48, offset 0x177
+ // Block 0x49, offset 0x185
{value: 0x0000, lo: 0x05},
{value: 0x812d, lo: 0xaa, hi: 0xaa},
{value: 0x8132, lo: 0xab, hi: 0xab},
{value: 0x8134, lo: 0xac, hi: 0xac},
{value: 0x812f, lo: 0xad, hi: 0xad},
{value: 0x8130, lo: 0xae, hi: 0xaf},
- // Block 0x49, offset 0x17d
+ // Block 0x4a, offset 0x18b
{value: 0x0000, lo: 0x03},
- {value: 0x4ab6, lo: 0xb3, hi: 0xb3},
- {value: 0x4ab6, lo: 0xb5, hi: 0xb6},
- {value: 0x4ab6, lo: 0xba, hi: 0xbf},
- // Block 0x4a, offset 0x181
+ {value: 0x4cc0, lo: 0xb3, hi: 0xb3},
+ {value: 0x4cc0, lo: 0xb5, hi: 0xb6},
+ {value: 0x4cc0, lo: 0xba, hi: 0xbf},
+ // Block 0x4b, offset 0x18f
{value: 0x0000, lo: 0x01},
- {value: 0x4ab6, lo: 0x8f, hi: 0xa3},
- // Block 0x4b, offset 0x183
+ {value: 0x4cc0, lo: 0x8f, hi: 0xa3},
+ // Block 0x4c, offset 0x191
{value: 0x0000, lo: 0x01},
{value: 0x8100, lo: 0xae, hi: 0xbe},
- // Block 0x4c, offset 0x185
+ // Block 0x4d, offset 0x193
{value: 0x0000, lo: 0x07},
{value: 0x8100, lo: 0x84, hi: 0x84},
{value: 0x8100, lo: 0x87, hi: 0x87},
@@ -4022,56 +4120,56 @@ var nfcSparseValues = [704]valueRange{
{value: 0x8100, lo: 0xa1, hi: 0xa1},
{value: 0x8100, lo: 0xb2, hi: 0xb2},
{value: 0x8100, lo: 0xbb, hi: 0xbb},
- // Block 0x4d, offset 0x18d
+ // Block 0x4e, offset 0x19b
{value: 0x0000, lo: 0x03},
{value: 0x8100, lo: 0x80, hi: 0x80},
{value: 0x8100, lo: 0x8b, hi: 0x8b},
{value: 0x8100, lo: 0x8e, hi: 0x8e},
- // Block 0x4e, offset 0x191
+ // Block 0x4f, offset 0x19f
{value: 0x0000, lo: 0x02},
{value: 0x8133, lo: 0xaf, hi: 0xaf},
{value: 0x8133, lo: 0xb4, hi: 0xbd},
- // Block 0x4f, offset 0x194
+ // Block 0x50, offset 0x1a2
{value: 0x0000, lo: 0x01},
{value: 0x8133, lo: 0x9e, hi: 0x9f},
- // Block 0x50, offset 0x196
+ // Block 0x51, offset 0x1a4
{value: 0x0000, lo: 0x01},
{value: 0x8133, lo: 0xb0, hi: 0xb1},
- // Block 0x51, offset 0x198
+ // Block 0x52, offset 0x1a6
{value: 0x0000, lo: 0x02},
{value: 0x8105, lo: 0x86, hi: 0x86},
{value: 0x8105, lo: 0xac, hi: 0xac},
- // Block 0x52, offset 0x19b
+ // Block 0x53, offset 0x1a9
{value: 0x0000, lo: 0x02},
{value: 0x8105, lo: 0x84, hi: 0x84},
{value: 0x8133, lo: 0xa0, hi: 0xb1},
- // Block 0x53, offset 0x19e
+ // Block 0x54, offset 0x1ac
{value: 0x0000, lo: 0x01},
{value: 0x812e, lo: 0xab, hi: 0xad},
- // Block 0x54, offset 0x1a0
+ // Block 0x55, offset 0x1ae
{value: 0x0000, lo: 0x01},
{value: 0x8105, lo: 0x93, hi: 0x93},
- // Block 0x55, offset 0x1a2
+ // Block 0x56, offset 0x1b0
{value: 0x0000, lo: 0x01},
{value: 0x8103, lo: 0xb3, hi: 0xb3},
- // Block 0x56, offset 0x1a4
+ // Block 0x57, offset 0x1b2
{value: 0x0000, lo: 0x01},
{value: 0x8105, lo: 0x80, hi: 0x80},
- // Block 0x57, offset 0x1a6
+ // Block 0x58, offset 0x1b4
{value: 0x0000, lo: 0x05},
{value: 0x8133, lo: 0xb0, hi: 0xb0},
{value: 0x8133, lo: 0xb2, hi: 0xb3},
{value: 0x812e, lo: 0xb4, hi: 0xb4},
{value: 0x8133, lo: 0xb7, hi: 0xb8},
{value: 0x8133, lo: 0xbe, hi: 0xbf},
- // Block 0x58, offset 0x1ac
+ // Block 0x59, offset 0x1ba
{value: 0x0000, lo: 0x02},
{value: 0x8133, lo: 0x81, hi: 0x81},
{value: 0x8105, lo: 0xb6, hi: 0xb6},
- // Block 0x59, offset 0x1af
+ // Block 0x5a, offset 0x1bd
{value: 0x0000, lo: 0x01},
{value: 0x8105, lo: 0xad, hi: 0xad},
- // Block 0x5a, offset 0x1b1
+ // Block 0x5b, offset 0x1bf
{value: 0x0000, lo: 0x06},
{value: 0xe500, lo: 0x80, hi: 0x80},
{value: 0xc600, lo: 0x81, hi: 0x9b},
@@ -4079,21 +4177,21 @@ var nfcSparseValues = [704]valueRange{
{value: 0xc600, lo: 0x9d, hi: 0xb7},
{value: 0xe500, lo: 0xb8, hi: 0xb8},
{value: 0xc600, lo: 0xb9, hi: 0xbf},
- // Block 0x5b, offset 0x1b8
+ // Block 0x5c, offset 0x1c6
{value: 0x0000, lo: 0x05},
{value: 0xc600, lo: 0x80, hi: 0x93},
{value: 0xe500, lo: 0x94, hi: 0x94},
{value: 0xc600, lo: 0x95, hi: 0xaf},
{value: 0xe500, lo: 0xb0, hi: 0xb0},
{value: 0xc600, lo: 0xb1, hi: 0xbf},
- // Block 0x5c, offset 0x1be
+ // Block 0x5d, offset 0x1cc
{value: 0x0000, lo: 0x05},
{value: 0xc600, lo: 0x80, hi: 0x8b},
{value: 0xe500, lo: 0x8c, hi: 0x8c},
{value: 0xc600, lo: 0x8d, hi: 0xa7},
{value: 0xe500, lo: 0xa8, hi: 0xa8},
{value: 0xc600, lo: 0xa9, hi: 0xbf},
- // Block 0x5d, offset 0x1c4
+ // Block 0x5e, offset 0x1d2
{value: 0x0000, lo: 0x07},
{value: 0xc600, lo: 0x80, hi: 0x83},
{value: 0xe500, lo: 0x84, hi: 0x84},
@@ -4102,310 +4200,393 @@ var nfcSparseValues = [704]valueRange{
{value: 0xc600, lo: 0xa1, hi: 0xbb},
{value: 0xe500, lo: 0xbc, hi: 0xbc},
{value: 0xc600, lo: 0xbd, hi: 0xbf},
- // Block 0x5e, offset 0x1cc
+ // Block 0x5f, offset 0x1da
{value: 0x0000, lo: 0x05},
{value: 0xc600, lo: 0x80, hi: 0x97},
{value: 0xe500, lo: 0x98, hi: 0x98},
{value: 0xc600, lo: 0x99, hi: 0xb3},
{value: 0xe500, lo: 0xb4, hi: 0xb4},
{value: 0xc600, lo: 0xb5, hi: 0xbf},
- // Block 0x5f, offset 0x1d2
+ // Block 0x60, offset 0x1e0
{value: 0x0000, lo: 0x05},
{value: 0xc600, lo: 0x80, hi: 0x8f},
{value: 0xe500, lo: 0x90, hi: 0x90},
{value: 0xc600, lo: 0x91, hi: 0xab},
{value: 0xe500, lo: 0xac, hi: 0xac},
{value: 0xc600, lo: 0xad, hi: 0xbf},
- // Block 0x60, offset 0x1d8
+ // Block 0x61, offset 0x1e6
{value: 0x0000, lo: 0x05},
{value: 0xc600, lo: 0x80, hi: 0x87},
{value: 0xe500, lo: 0x88, hi: 0x88},
{value: 0xc600, lo: 0x89, hi: 0xa3},
{value: 0xe500, lo: 0xa4, hi: 0xa4},
{value: 0xc600, lo: 0xa5, hi: 0xbf},
- // Block 0x61, offset 0x1de
+ // Block 0x62, offset 0x1ec
{value: 0x0000, lo: 0x03},
{value: 0xc600, lo: 0x80, hi: 0x87},
{value: 0xe500, lo: 0x88, hi: 0x88},
{value: 0xc600, lo: 0x89, hi: 0xa3},
- // Block 0x62, offset 0x1e2
+ // Block 0x63, offset 0x1f0
{value: 0x0006, lo: 0x0d},
- {value: 0x43a7, lo: 0x9d, hi: 0x9d},
+ {value: 0x448f, lo: 0x9d, hi: 0x9d},
{value: 0x8116, lo: 0x9e, hi: 0x9e},
- {value: 0x4419, lo: 0x9f, hi: 0x9f},
- {value: 0x4407, lo: 0xaa, hi: 0xab},
- {value: 0x450b, lo: 0xac, hi: 0xac},
- {value: 0x4513, lo: 0xad, hi: 0xad},
- {value: 0x435f, lo: 0xae, hi: 0xb1},
- {value: 0x437d, lo: 0xb2, hi: 0xb4},
- {value: 0x4395, lo: 0xb5, hi: 0xb6},
- {value: 0x43a1, lo: 0xb8, hi: 0xb8},
- {value: 0x43ad, lo: 0xb9, hi: 0xbb},
- {value: 0x43c5, lo: 0xbc, hi: 0xbc},
- {value: 0x43cb, lo: 0xbe, hi: 0xbe},
- // Block 0x63, offset 0x1f0
+ {value: 0x4501, lo: 0x9f, hi: 0x9f},
+ {value: 0x44ef, lo: 0xaa, hi: 0xab},
+ {value: 0x45f3, lo: 0xac, hi: 0xac},
+ {value: 0x45fb, lo: 0xad, hi: 0xad},
+ {value: 0x4447, lo: 0xae, hi: 0xb1},
+ {value: 0x4465, lo: 0xb2, hi: 0xb4},
+ {value: 0x447d, lo: 0xb5, hi: 0xb6},
+ {value: 0x4489, lo: 0xb8, hi: 0xb8},
+ {value: 0x4495, lo: 0xb9, hi: 0xbb},
+ {value: 0x44ad, lo: 0xbc, hi: 0xbc},
+ {value: 0x44b3, lo: 0xbe, hi: 0xbe},
+ // Block 0x64, offset 0x1fe
{value: 0x0006, lo: 0x08},
- {value: 0x43d1, lo: 0x80, hi: 0x81},
- {value: 0x43dd, lo: 0x83, hi: 0x84},
- {value: 0x43ef, lo: 0x86, hi: 0x89},
- {value: 0x4413, lo: 0x8a, hi: 0x8a},
- {value: 0x438f, lo: 0x8b, hi: 0x8b},
- {value: 0x4377, lo: 0x8c, hi: 0x8c},
- {value: 0x43bf, lo: 0x8d, hi: 0x8d},
- {value: 0x43e9, lo: 0x8e, hi: 0x8e},
- // Block 0x64, offset 0x1f9
+ {value: 0x44b9, lo: 0x80, hi: 0x81},
+ {value: 0x44c5, lo: 0x83, hi: 0x84},
+ {value: 0x44d7, lo: 0x86, hi: 0x89},
+ {value: 0x44fb, lo: 0x8a, hi: 0x8a},
+ {value: 0x4477, lo: 0x8b, hi: 0x8b},
+ {value: 0x445f, lo: 0x8c, hi: 0x8c},
+ {value: 0x44a7, lo: 0x8d, hi: 0x8d},
+ {value: 0x44d1, lo: 0x8e, hi: 0x8e},
+ // Block 0x65, offset 0x207
{value: 0x0000, lo: 0x02},
{value: 0x8100, lo: 0xa4, hi: 0xa5},
{value: 0x8100, lo: 0xb0, hi: 0xb1},
- // Block 0x65, offset 0x1fc
+ // Block 0x66, offset 0x20a
{value: 0x0000, lo: 0x02},
{value: 0x8100, lo: 0x9b, hi: 0x9d},
{value: 0x8200, lo: 0x9e, hi: 0xa3},
- // Block 0x66, offset 0x1ff
+ // Block 0x67, offset 0x20d
{value: 0x0000, lo: 0x01},
{value: 0x8100, lo: 0x90, hi: 0x90},
- // Block 0x67, offset 0x201
+ // Block 0x68, offset 0x20f
{value: 0x0000, lo: 0x02},
{value: 0x8100, lo: 0x99, hi: 0x99},
{value: 0x8200, lo: 0xb2, hi: 0xb4},
- // Block 0x68, offset 0x204
+ // Block 0x69, offset 0x212
{value: 0x0000, lo: 0x01},
{value: 0x8100, lo: 0xbc, hi: 0xbd},
- // Block 0x69, offset 0x206
+ // Block 0x6a, offset 0x214
{value: 0x0000, lo: 0x03},
{value: 0x8133, lo: 0xa0, hi: 0xa6},
{value: 0x812e, lo: 0xa7, hi: 0xad},
{value: 0x8133, lo: 0xae, hi: 0xaf},
- // Block 0x6a, offset 0x20a
+ // Block 0x6b, offset 0x218
{value: 0x0000, lo: 0x04},
{value: 0x8100, lo: 0x89, hi: 0x8c},
{value: 0x8100, lo: 0xb0, hi: 0xb2},
{value: 0x8100, lo: 0xb4, hi: 0xb4},
{value: 0x8100, lo: 0xb6, hi: 0xbf},
- // Block 0x6b, offset 0x20f
+ // Block 0x6c, offset 0x21d
{value: 0x0000, lo: 0x01},
{value: 0x8100, lo: 0x81, hi: 0x8c},
- // Block 0x6c, offset 0x211
+ // Block 0x6d, offset 0x21f
{value: 0x0000, lo: 0x01},
{value: 0x8100, lo: 0xb5, hi: 0xba},
- // Block 0x6d, offset 0x213
+ // Block 0x6e, offset 0x221
{value: 0x0000, lo: 0x04},
- {value: 0x4ab6, lo: 0x9e, hi: 0x9f},
- {value: 0x4ab6, lo: 0xa3, hi: 0xa3},
- {value: 0x4ab6, lo: 0xa5, hi: 0xa6},
- {value: 0x4ab6, lo: 0xaa, hi: 0xaf},
- // Block 0x6e, offset 0x218
+ {value: 0x4cc0, lo: 0x9e, hi: 0x9f},
+ {value: 0x4cc0, lo: 0xa3, hi: 0xa3},
+ {value: 0x4cc0, lo: 0xa5, hi: 0xa6},
+ {value: 0x4cc0, lo: 0xaa, hi: 0xaf},
+ // Block 0x6f, offset 0x226
{value: 0x0000, lo: 0x05},
- {value: 0x4ab6, lo: 0x82, hi: 0x87},
- {value: 0x4ab6, lo: 0x8a, hi: 0x8f},
- {value: 0x4ab6, lo: 0x92, hi: 0x97},
- {value: 0x4ab6, lo: 0x9a, hi: 0x9c},
+ {value: 0x4cc0, lo: 0x82, hi: 0x87},
+ {value: 0x4cc0, lo: 0x8a, hi: 0x8f},
+ {value: 0x4cc0, lo: 0x92, hi: 0x97},
+ {value: 0x4cc0, lo: 0x9a, hi: 0x9c},
{value: 0x8100, lo: 0xa3, hi: 0xa3},
- // Block 0x6f, offset 0x21e
+ // Block 0x70, offset 0x22c
{value: 0x0000, lo: 0x01},
{value: 0x812e, lo: 0xbd, hi: 0xbd},
- // Block 0x70, offset 0x220
+ // Block 0x71, offset 0x22e
{value: 0x0000, lo: 0x01},
{value: 0x812e, lo: 0xa0, hi: 0xa0},
- // Block 0x71, offset 0x222
+ // Block 0x72, offset 0x230
{value: 0x0000, lo: 0x01},
{value: 0x8133, lo: 0xb6, hi: 0xba},
- // Block 0x72, offset 0x224
+ // Block 0x73, offset 0x232
+ {value: 0x0000, lo: 0x04},
+ {value: 0x410f, lo: 0x89, hi: 0x89},
+ {value: 0xa000, lo: 0x92, hi: 0x92},
+ {value: 0xa000, lo: 0x9a, hi: 0x9a},
+ {value: 0x4117, lo: 0xa4, hi: 0xa4},
+ // Block 0x74, offset 0x237
{value: 0x002d, lo: 0x05},
{value: 0x812e, lo: 0x8d, hi: 0x8d},
{value: 0x8133, lo: 0x8f, hi: 0x8f},
{value: 0x8133, lo: 0xb8, hi: 0xb8},
{value: 0x8101, lo: 0xb9, hi: 0xba},
{value: 0x8105, lo: 0xbf, hi: 0xbf},
- // Block 0x73, offset 0x22a
+ // Block 0x75, offset 0x23d
{value: 0x0000, lo: 0x02},
{value: 0x8133, lo: 0xa5, hi: 0xa5},
{value: 0x812e, lo: 0xa6, hi: 0xa6},
- // Block 0x74, offset 0x22d
+ // Block 0x76, offset 0x240
{value: 0x0000, lo: 0x01},
{value: 0x8133, lo: 0xa4, hi: 0xa7},
- // Block 0x75, offset 0x22f
+ // Block 0x77, offset 0x242
+ {value: 0x0000, lo: 0x01},
+ {value: 0x8133, lo: 0xa9, hi: 0xad},
+ // Block 0x78, offset 0x244
{value: 0x0000, lo: 0x01},
{value: 0x8133, lo: 0xab, hi: 0xac},
- // Block 0x76, offset 0x231
+ // Block 0x79, offset 0x246
+ {value: 0x0000, lo: 0x02},
+ {value: 0x812e, lo: 0xba, hi: 0xbb},
+ {value: 0x812e, lo: 0xbd, hi: 0xbf},
+ // Block 0x7a, offset 0x249
{value: 0x0000, lo: 0x05},
{value: 0x812e, lo: 0x86, hi: 0x87},
{value: 0x8133, lo: 0x88, hi: 0x8a},
{value: 0x812e, lo: 0x8b, hi: 0x8b},
{value: 0x8133, lo: 0x8c, hi: 0x8c},
{value: 0x812e, lo: 0x8d, hi: 0x90},
- // Block 0x77, offset 0x237
- {value: 0x0000, lo: 0x02},
+ // Block 0x7b, offset 0x24f
+ {value: 0x0005, lo: 0x03},
+ {value: 0x8133, lo: 0x82, hi: 0x82},
+ {value: 0x812e, lo: 0x83, hi: 0x84},
+ {value: 0x812e, lo: 0x85, hi: 0x85},
+ // Block 0x7c, offset 0x253
+ {value: 0x0000, lo: 0x03},
{value: 0x8105, lo: 0x86, hi: 0x86},
+ {value: 0x8105, lo: 0xb0, hi: 0xb0},
{value: 0x8105, lo: 0xbf, hi: 0xbf},
- // Block 0x78, offset 0x23a
+ // Block 0x7d, offset 0x257
{value: 0x17fe, lo: 0x07},
{value: 0xa000, lo: 0x99, hi: 0x99},
- {value: 0x424f, lo: 0x9a, hi: 0x9a},
+ {value: 0x4287, lo: 0x9a, hi: 0x9a},
{value: 0xa000, lo: 0x9b, hi: 0x9b},
- {value: 0x4259, lo: 0x9c, hi: 0x9c},
+ {value: 0x4291, lo: 0x9c, hi: 0x9c},
{value: 0xa000, lo: 0xa5, hi: 0xa5},
- {value: 0x4263, lo: 0xab, hi: 0xab},
+ {value: 0x429b, lo: 0xab, hi: 0xab},
{value: 0x8105, lo: 0xb9, hi: 0xba},
- // Block 0x79, offset 0x242
+ // Block 0x7e, offset 0x25f
{value: 0x0000, lo: 0x06},
{value: 0x8133, lo: 0x80, hi: 0x82},
{value: 0x9900, lo: 0xa7, hi: 0xa7},
- {value: 0x2d8b, lo: 0xae, hi: 0xae},
- {value: 0x2d95, lo: 0xaf, hi: 0xaf},
+ {value: 0x42a5, lo: 0xae, hi: 0xae},
+ {value: 0x42af, lo: 0xaf, hi: 0xaf},
{value: 0xa000, lo: 0xb1, hi: 0xb2},
{value: 0x8105, lo: 0xb3, hi: 0xb4},
- // Block 0x7a, offset 0x249
+ // Block 0x7f, offset 0x266
{value: 0x0000, lo: 0x02},
{value: 0x8105, lo: 0x80, hi: 0x80},
{value: 0x8103, lo: 0x8a, hi: 0x8a},
- // Block 0x7b, offset 0x24c
+ // Block 0x80, offset 0x269
{value: 0x0000, lo: 0x02},
{value: 0x8105, lo: 0xb5, hi: 0xb5},
{value: 0x8103, lo: 0xb6, hi: 0xb6},
- // Block 0x7c, offset 0x24f
+ // Block 0x81, offset 0x26c
{value: 0x0002, lo: 0x01},
{value: 0x8103, lo: 0xa9, hi: 0xaa},
- // Block 0x7d, offset 0x251
+ // Block 0x82, offset 0x26e
{value: 0x0000, lo: 0x02},
{value: 0x8103, lo: 0xbb, hi: 0xbc},
{value: 0x9900, lo: 0xbe, hi: 0xbe},
- // Block 0x7e, offset 0x254
+ // Block 0x83, offset 0x271
{value: 0x0000, lo: 0x07},
{value: 0xa000, lo: 0x87, hi: 0x87},
- {value: 0x2d9f, lo: 0x8b, hi: 0x8b},
- {value: 0x2da9, lo: 0x8c, hi: 0x8c},
+ {value: 0x42b9, lo: 0x8b, hi: 0x8b},
+ {value: 0x42c3, lo: 0x8c, hi: 0x8c},
{value: 0x8105, lo: 0x8d, hi: 0x8d},
{value: 0x9900, lo: 0x97, hi: 0x97},
{value: 0x8133, lo: 0xa6, hi: 0xac},
{value: 0x8133, lo: 0xb0, hi: 0xb4},
- // Block 0x7f, offset 0x25c
+ // Block 0x84, offset 0x279
+ {value: 0x5d33, lo: 0x09},
+ {value: 0xa000, lo: 0x82, hi: 0x82},
+ {value: 0x42cd, lo: 0x83, hi: 0x84},
+ {value: 0x42d7, lo: 0x85, hi: 0x85},
+ {value: 0xa000, lo: 0x8b, hi: 0x8b},
+ {value: 0x42e1, lo: 0x8e, hi: 0x8e},
+ {value: 0xa000, lo: 0x90, hi: 0x90},
+ {value: 0x42eb, lo: 0x91, hi: 0x91},
+ {value: 0x9900, lo: 0xb8, hi: 0xb8},
+ {value: 0x9900, lo: 0xbb, hi: 0xbb},
+ // Block 0x85, offset 0x283
+ {value: 0x0000, lo: 0x06},
+ {value: 0xb900, lo: 0x82, hi: 0x82},
+ {value: 0x4c14, lo: 0x85, hi: 0x85},
+ {value: 0x4c09, lo: 0x87, hi: 0x87},
+ {value: 0x4c1f, lo: 0x88, hi: 0x88},
+ {value: 0x9900, lo: 0x89, hi: 0x89},
+ {value: 0x8105, lo: 0x8e, hi: 0x90},
+ // Block 0x86, offset 0x28a
{value: 0x0000, lo: 0x03},
{value: 0x8105, lo: 0x82, hi: 0x82},
{value: 0x8103, lo: 0x86, hi: 0x86},
{value: 0x8133, lo: 0x9e, hi: 0x9e},
- // Block 0x80, offset 0x260
- {value: 0x6b4d, lo: 0x06},
+ // Block 0x87, offset 0x28e
+ {value: 0x560b, lo: 0x06},
{value: 0x9900, lo: 0xb0, hi: 0xb0},
{value: 0xa000, lo: 0xb9, hi: 0xb9},
{value: 0x9900, lo: 0xba, hi: 0xba},
- {value: 0x2dbd, lo: 0xbb, hi: 0xbb},
- {value: 0x2db3, lo: 0xbc, hi: 0xbd},
- {value: 0x2dc7, lo: 0xbe, hi: 0xbe},
- // Block 0x81, offset 0x267
+ {value: 0x42ff, lo: 0xbb, hi: 0xbb},
+ {value: 0x42f5, lo: 0xbc, hi: 0xbd},
+ {value: 0x4309, lo: 0xbe, hi: 0xbe},
+ // Block 0x88, offset 0x295
{value: 0x0000, lo: 0x02},
{value: 0x8105, lo: 0x82, hi: 0x82},
{value: 0x8103, lo: 0x83, hi: 0x83},
- // Block 0x82, offset 0x26a
+ // Block 0x89, offset 0x298
{value: 0x0000, lo: 0x05},
{value: 0x9900, lo: 0xaf, hi: 0xaf},
{value: 0xa000, lo: 0xb8, hi: 0xb9},
- {value: 0x2dd1, lo: 0xba, hi: 0xba},
- {value: 0x2ddb, lo: 0xbb, hi: 0xbb},
+ {value: 0x4313, lo: 0xba, hi: 0xba},
+ {value: 0x431d, lo: 0xbb, hi: 0xbb},
{value: 0x8105, lo: 0xbf, hi: 0xbf},
- // Block 0x83, offset 0x270
+ // Block 0x8a, offset 0x29e
{value: 0x0000, lo: 0x01},
{value: 0x8103, lo: 0x80, hi: 0x80},
- // Block 0x84, offset 0x272
+ // Block 0x8b, offset 0x2a0
{value: 0x0000, lo: 0x02},
{value: 0x8105, lo: 0xb6, hi: 0xb6},
{value: 0x8103, lo: 0xb7, hi: 0xb7},
- // Block 0x85, offset 0x275
+ // Block 0x8c, offset 0x2a3
{value: 0x0000, lo: 0x01},
{value: 0x8105, lo: 0xab, hi: 0xab},
- // Block 0x86, offset 0x277
+ // Block 0x8d, offset 0x2a5
{value: 0x0000, lo: 0x02},
{value: 0x8105, lo: 0xb9, hi: 0xb9},
{value: 0x8103, lo: 0xba, hi: 0xba},
- // Block 0x87, offset 0x27a
+ // Block 0x8e, offset 0x2a8
{value: 0x0000, lo: 0x04},
{value: 0x9900, lo: 0xb0, hi: 0xb0},
{value: 0xa000, lo: 0xb5, hi: 0xb5},
- {value: 0x2de5, lo: 0xb8, hi: 0xb8},
+ {value: 0x4327, lo: 0xb8, hi: 0xb8},
{value: 0x8105, lo: 0xbd, hi: 0xbe},
- // Block 0x88, offset 0x27f
+ // Block 0x8f, offset 0x2ad
{value: 0x0000, lo: 0x01},
{value: 0x8103, lo: 0x83, hi: 0x83},
- // Block 0x89, offset 0x281
+ // Block 0x90, offset 0x2af
{value: 0x0000, lo: 0x01},
{value: 0x8105, lo: 0xa0, hi: 0xa0},
- // Block 0x8a, offset 0x283
+ // Block 0x91, offset 0x2b1
{value: 0x0000, lo: 0x01},
{value: 0x8105, lo: 0xb4, hi: 0xb4},
- // Block 0x8b, offset 0x285
+ // Block 0x92, offset 0x2b3
{value: 0x0000, lo: 0x01},
{value: 0x8105, lo: 0x87, hi: 0x87},
- // Block 0x8c, offset 0x287
+ // Block 0x93, offset 0x2b5
{value: 0x0000, lo: 0x01},
{value: 0x8105, lo: 0x99, hi: 0x99},
- // Block 0x8d, offset 0x289
+ // Block 0x94, offset 0x2b7
{value: 0x0000, lo: 0x02},
{value: 0x8103, lo: 0x82, hi: 0x82},
{value: 0x8105, lo: 0x84, hi: 0x85},
- // Block 0x8e, offset 0x28c
+ // Block 0x95, offset 0x2ba
{value: 0x0000, lo: 0x01},
{value: 0x8105, lo: 0x97, hi: 0x97},
- // Block 0x8f, offset 0x28e
+ // Block 0x96, offset 0x2bc
+ {value: 0x0000, lo: 0x01},
+ {value: 0x8105, lo: 0x81, hi: 0x82},
+ // Block 0x97, offset 0x2be
+ {value: 0x0000, lo: 0x0c},
+ {value: 0xb900, lo: 0x9e, hi: 0x9e},
+ {value: 0x9900, lo: 0x9f, hi: 0xa0},
+ {value: 0x4c83, lo: 0xa1, hi: 0xa1},
+ {value: 0x4c8e, lo: 0xa2, hi: 0xa2},
+ {value: 0x4c2a, lo: 0xa3, hi: 0xa3},
+ {value: 0x4c40, lo: 0xa4, hi: 0xa4},
+ {value: 0x4c35, lo: 0xa5, hi: 0xa5},
+ {value: 0x4c56, lo: 0xa6, hi: 0xa6},
+ {value: 0x4c74, lo: 0xa7, hi: 0xa7},
+ {value: 0x4c65, lo: 0xa8, hi: 0xa8},
+ {value: 0xb900, lo: 0xa9, hi: 0xa9},
+ {value: 0x8105, lo: 0xaf, hi: 0xaf},
+ // Block 0x98, offset 0x2cb
{value: 0x0000, lo: 0x01},
{value: 0x8101, lo: 0xb0, hi: 0xb4},
- // Block 0x90, offset 0x290
+ // Block 0x99, offset 0x2cd
{value: 0x0000, lo: 0x01},
{value: 0x8133, lo: 0xb0, hi: 0xb6},
- // Block 0x91, offset 0x292
+ // Block 0x9a, offset 0x2cf
+ {value: 0x0000, lo: 0x05},
+ {value: 0xa000, lo: 0xa3, hi: 0xa3},
+ {value: 0xb900, lo: 0xa7, hi: 0xa7},
+ {value: 0x4c4b, lo: 0xa8, hi: 0xa8},
+ {value: 0x4b35, lo: 0xa9, hi: 0xa9},
+ {value: 0x4347, lo: 0xaa, hi: 0xaa},
+ // Block 0x9b, offset 0x2d5
{value: 0x0000, lo: 0x01},
{value: 0x8102, lo: 0xb0, hi: 0xb1},
- // Block 0x92, offset 0x294
+ // Block 0x9c, offset 0x2d7
{value: 0x0000, lo: 0x01},
{value: 0x8101, lo: 0x9e, hi: 0x9e},
- // Block 0x93, offset 0x296
+ // Block 0x9d, offset 0x2d9
{value: 0x0000, lo: 0x0c},
- {value: 0x45e3, lo: 0x9e, hi: 0x9e},
- {value: 0x45ed, lo: 0x9f, hi: 0x9f},
- {value: 0x4621, lo: 0xa0, hi: 0xa0},
- {value: 0x462f, lo: 0xa1, hi: 0xa1},
- {value: 0x463d, lo: 0xa2, hi: 0xa2},
- {value: 0x464b, lo: 0xa3, hi: 0xa3},
- {value: 0x4659, lo: 0xa4, hi: 0xa4},
+ {value: 0x4743, lo: 0x9e, hi: 0x9e},
+ {value: 0x474d, lo: 0x9f, hi: 0x9f},
+ {value: 0x4781, lo: 0xa0, hi: 0xa0},
+ {value: 0x478f, lo: 0xa1, hi: 0xa1},
+ {value: 0x479d, lo: 0xa2, hi: 0xa2},
+ {value: 0x47ab, lo: 0xa3, hi: 0xa3},
+ {value: 0x47b9, lo: 0xa4, hi: 0xa4},
{value: 0x812c, lo: 0xa5, hi: 0xa6},
{value: 0x8101, lo: 0xa7, hi: 0xa9},
{value: 0x8131, lo: 0xad, hi: 0xad},
{value: 0x812c, lo: 0xae, hi: 0xb2},
{value: 0x812e, lo: 0xbb, hi: 0xbf},
- // Block 0x94, offset 0x2a3
+ // Block 0x9e, offset 0x2e6
{value: 0x0000, lo: 0x09},
{value: 0x812e, lo: 0x80, hi: 0x82},
{value: 0x8133, lo: 0x85, hi: 0x89},
{value: 0x812e, lo: 0x8a, hi: 0x8b},
{value: 0x8133, lo: 0xaa, hi: 0xad},
- {value: 0x45f7, lo: 0xbb, hi: 0xbb},
- {value: 0x4601, lo: 0xbc, hi: 0xbc},
- {value: 0x4667, lo: 0xbd, hi: 0xbd},
- {value: 0x4683, lo: 0xbe, hi: 0xbe},
- {value: 0x4675, lo: 0xbf, hi: 0xbf},
- // Block 0x95, offset 0x2ad
+ {value: 0x4757, lo: 0xbb, hi: 0xbb},
+ {value: 0x4761, lo: 0xbc, hi: 0xbc},
+ {value: 0x47c7, lo: 0xbd, hi: 0xbd},
+ {value: 0x47e3, lo: 0xbe, hi: 0xbe},
+ {value: 0x47d5, lo: 0xbf, hi: 0xbf},
+ // Block 0x9f, offset 0x2f0
{value: 0x0000, lo: 0x01},
- {value: 0x4691, lo: 0x80, hi: 0x80},
- // Block 0x96, offset 0x2af
+ {value: 0x47f1, lo: 0x80, hi: 0x80},
+ // Block 0xa0, offset 0x2f2
{value: 0x0000, lo: 0x01},
{value: 0x8133, lo: 0x82, hi: 0x84},
- // Block 0x97, offset 0x2b1
+ // Block 0xa1, offset 0x2f4
{value: 0x0000, lo: 0x05},
{value: 0x8133, lo: 0x80, hi: 0x86},
{value: 0x8133, lo: 0x88, hi: 0x98},
{value: 0x8133, lo: 0x9b, hi: 0xa1},
{value: 0x8133, lo: 0xa3, hi: 0xa4},
{value: 0x8133, lo: 0xa6, hi: 0xaa},
- // Block 0x98, offset 0x2b7
+ // Block 0xa2, offset 0x2fa
+ {value: 0x0000, lo: 0x01},
+ {value: 0x8133, lo: 0x8f, hi: 0x8f},
+ // Block 0xa3, offset 0x2fc
+ {value: 0x0000, lo: 0x01},
+ {value: 0x8133, lo: 0xae, hi: 0xae},
+ // Block 0xa4, offset 0x2fe
{value: 0x0000, lo: 0x01},
{value: 0x8133, lo: 0xac, hi: 0xaf},
- // Block 0x99, offset 0x2b9
+ // Block 0xa5, offset 0x300
+ {value: 0x0000, lo: 0x03},
+ {value: 0x8134, lo: 0xac, hi: 0xad},
+ {value: 0x812e, lo: 0xae, hi: 0xae},
+ {value: 0x8133, lo: 0xaf, hi: 0xaf},
+ // Block 0xa6, offset 0x304
+ {value: 0x0000, lo: 0x02},
+ {value: 0x8133, lo: 0xae, hi: 0xae},
+ {value: 0x812e, lo: 0xaf, hi: 0xaf},
+ // Block 0xa7, offset 0x307
+ {value: 0x0000, lo: 0x04},
+ {value: 0x8133, lo: 0xa3, hi: 0xa3},
+ {value: 0x8133, lo: 0xa6, hi: 0xa6},
+ {value: 0x8133, lo: 0xae, hi: 0xaf},
+ {value: 0x8133, lo: 0xb5, hi: 0xb5},
+ // Block 0xa8, offset 0x30c
{value: 0x0000, lo: 0x01},
{value: 0x812e, lo: 0x90, hi: 0x96},
- // Block 0x9a, offset 0x2bb
+ // Block 0xa9, offset 0x30e
{value: 0x0000, lo: 0x02},
{value: 0x8133, lo: 0x84, hi: 0x89},
{value: 0x8103, lo: 0x8a, hi: 0x8a},
- // Block 0x9b, offset 0x2be
+ // Block 0xaa, offset 0x311
{value: 0x0000, lo: 0x01},
{value: 0x8100, lo: 0x93, hi: 0x93},
}
@@ -4580,7 +4761,7 @@ func (t *nfkcTrie) lookupStringUnsafe(s string) uint16 {
return 0
}
-// nfkcTrie. Total size: 18768 bytes (18.33 KiB). Checksum: c51186dd2412943d.
+// nfkcTrie. Total size: 19650 bytes (19.19 KiB). Checksum: 29892d851eed0531.
type nfkcTrie struct{}
func newNfkcTrie(i int) *nfkcTrie {
@@ -4590,17 +4771,17 @@ func newNfkcTrie(i int) *nfkcTrie {
// lookupValue determines the type of block n and looks up the value for b.
func (t *nfkcTrie) lookupValue(n uint32, b byte) uint16 {
switch {
- case n < 92:
+ case n < 95:
return uint16(nfkcValues[n<<6+uint32(b)])
default:
- n -= 92
+ n -= 95
return uint16(nfkcSparse.lookup(n, b))
}
}
-// nfkcValues: 94 blocks, 6016 entries, 12032 bytes
+// nfkcValues: 97 blocks, 6208 entries, 12416 bytes
// The third block is the zero block.
-var nfkcValues = [6016]uint16{
+var nfkcValues = [6208]uint16{
// Block 0x0, offset 0x0
0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000,
// Block 0x1, offset 0x40
@@ -4616,63 +4797,63 @@ var nfkcValues = [6016]uint16{
0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000,
// Block 0x2, offset 0x80
// Block 0x3, offset 0xc0
- 0xc0: 0x2f86, 0xc1: 0x2f8b, 0xc2: 0x469f, 0xc3: 0x2f90, 0xc4: 0x46ae, 0xc5: 0x46b3,
- 0xc6: 0xa000, 0xc7: 0x46bd, 0xc8: 0x2ff9, 0xc9: 0x2ffe, 0xca: 0x46c2, 0xcb: 0x3012,
- 0xcc: 0x3085, 0xcd: 0x308a, 0xce: 0x308f, 0xcf: 0x46d6, 0xd1: 0x311b,
- 0xd2: 0x313e, 0xd3: 0x3143, 0xd4: 0x46e0, 0xd5: 0x46e5, 0xd6: 0x46f4,
- 0xd8: 0xa000, 0xd9: 0x31ca, 0xda: 0x31cf, 0xdb: 0x31d4, 0xdc: 0x4726, 0xdd: 0x324c,
- 0xe0: 0x3292, 0xe1: 0x3297, 0xe2: 0x4730, 0xe3: 0x329c,
- 0xe4: 0x473f, 0xe5: 0x4744, 0xe6: 0xa000, 0xe7: 0x474e, 0xe8: 0x3305, 0xe9: 0x330a,
- 0xea: 0x4753, 0xeb: 0x331e, 0xec: 0x3396, 0xed: 0x339b, 0xee: 0x33a0, 0xef: 0x4767,
- 0xf1: 0x342c, 0xf2: 0x344f, 0xf3: 0x3454, 0xf4: 0x4771, 0xf5: 0x4776,
- 0xf6: 0x4785, 0xf8: 0xa000, 0xf9: 0x34e0, 0xfa: 0x34e5, 0xfb: 0x34ea,
- 0xfc: 0x47b7, 0xfd: 0x3567, 0xff: 0x3580,
+ 0xc0: 0x2ece, 0xc1: 0x2ed3, 0xc2: 0x47ff, 0xc3: 0x2ed8, 0xc4: 0x480e, 0xc5: 0x4813,
+ 0xc6: 0xa000, 0xc7: 0x481d, 0xc8: 0x2f41, 0xc9: 0x2f46, 0xca: 0x4822, 0xcb: 0x2f5a,
+ 0xcc: 0x2fcd, 0xcd: 0x2fd2, 0xce: 0x2fd7, 0xcf: 0x4836, 0xd1: 0x3063,
+ 0xd2: 0x3086, 0xd3: 0x308b, 0xd4: 0x4840, 0xd5: 0x4845, 0xd6: 0x4854,
+ 0xd8: 0xa000, 0xd9: 0x3112, 0xda: 0x3117, 0xdb: 0x311c, 0xdc: 0x4886, 0xdd: 0x3194,
+ 0xe0: 0x31da, 0xe1: 0x31df, 0xe2: 0x4890, 0xe3: 0x31e4,
+ 0xe4: 0x489f, 0xe5: 0x48a4, 0xe6: 0xa000, 0xe7: 0x48ae, 0xe8: 0x324d, 0xe9: 0x3252,
+ 0xea: 0x48b3, 0xeb: 0x3266, 0xec: 0x32de, 0xed: 0x32e3, 0xee: 0x32e8, 0xef: 0x48c7,
+ 0xf1: 0x3374, 0xf2: 0x3397, 0xf3: 0x339c, 0xf4: 0x48d1, 0xf5: 0x48d6,
+ 0xf6: 0x48e5, 0xf8: 0xa000, 0xf9: 0x3428, 0xfa: 0x342d, 0xfb: 0x3432,
+ 0xfc: 0x4917, 0xfd: 0x34af, 0xff: 0x34c8,
// Block 0x4, offset 0x100
- 0x100: 0x2f95, 0x101: 0x32a1, 0x102: 0x46a4, 0x103: 0x4735, 0x104: 0x2fb3, 0x105: 0x32bf,
- 0x106: 0x2fc7, 0x107: 0x32d3, 0x108: 0x2fcc, 0x109: 0x32d8, 0x10a: 0x2fd1, 0x10b: 0x32dd,
- 0x10c: 0x2fd6, 0x10d: 0x32e2, 0x10e: 0x2fe0, 0x10f: 0x32ec,
- 0x112: 0x46c7, 0x113: 0x4758, 0x114: 0x3008, 0x115: 0x3314, 0x116: 0x300d, 0x117: 0x3319,
- 0x118: 0x302b, 0x119: 0x3337, 0x11a: 0x301c, 0x11b: 0x3328, 0x11c: 0x3044, 0x11d: 0x3350,
- 0x11e: 0x304e, 0x11f: 0x335a, 0x120: 0x3053, 0x121: 0x335f, 0x122: 0x305d, 0x123: 0x3369,
- 0x124: 0x3062, 0x125: 0x336e, 0x128: 0x3094, 0x129: 0x33a5,
- 0x12a: 0x3099, 0x12b: 0x33aa, 0x12c: 0x309e, 0x12d: 0x33af, 0x12e: 0x30c1, 0x12f: 0x33cd,
- 0x130: 0x30a3, 0x132: 0x1960, 0x133: 0x19ed, 0x134: 0x30cb, 0x135: 0x33d7,
- 0x136: 0x30df, 0x137: 0x33f0, 0x139: 0x30e9, 0x13a: 0x33fa, 0x13b: 0x30f3,
- 0x13c: 0x3404, 0x13d: 0x30ee, 0x13e: 0x33ff, 0x13f: 0x1bb2,
+ 0x100: 0x2edd, 0x101: 0x31e9, 0x102: 0x4804, 0x103: 0x4895, 0x104: 0x2efb, 0x105: 0x3207,
+ 0x106: 0x2f0f, 0x107: 0x321b, 0x108: 0x2f14, 0x109: 0x3220, 0x10a: 0x2f19, 0x10b: 0x3225,
+ 0x10c: 0x2f1e, 0x10d: 0x322a, 0x10e: 0x2f28, 0x10f: 0x3234,
+ 0x112: 0x4827, 0x113: 0x48b8, 0x114: 0x2f50, 0x115: 0x325c, 0x116: 0x2f55, 0x117: 0x3261,
+ 0x118: 0x2f73, 0x119: 0x327f, 0x11a: 0x2f64, 0x11b: 0x3270, 0x11c: 0x2f8c, 0x11d: 0x3298,
+ 0x11e: 0x2f96, 0x11f: 0x32a2, 0x120: 0x2f9b, 0x121: 0x32a7, 0x122: 0x2fa5, 0x123: 0x32b1,
+ 0x124: 0x2faa, 0x125: 0x32b6, 0x128: 0x2fdc, 0x129: 0x32ed,
+ 0x12a: 0x2fe1, 0x12b: 0x32f2, 0x12c: 0x2fe6, 0x12d: 0x32f7, 0x12e: 0x3009, 0x12f: 0x3315,
+ 0x130: 0x2feb, 0x132: 0x1a8a, 0x133: 0x1b17, 0x134: 0x3013, 0x135: 0x331f,
+ 0x136: 0x3027, 0x137: 0x3338, 0x139: 0x3031, 0x13a: 0x3342, 0x13b: 0x303b,
+ 0x13c: 0x334c, 0x13d: 0x3036, 0x13e: 0x3347, 0x13f: 0x1cdc,
// Block 0x5, offset 0x140
- 0x140: 0x1c3a, 0x143: 0x3116, 0x144: 0x3427, 0x145: 0x312f,
- 0x146: 0x3440, 0x147: 0x3125, 0x148: 0x3436, 0x149: 0x1c62,
- 0x14c: 0x46ea, 0x14d: 0x477b, 0x14e: 0x3148, 0x14f: 0x3459, 0x150: 0x3152, 0x151: 0x3463,
- 0x154: 0x3170, 0x155: 0x3481, 0x156: 0x3189, 0x157: 0x349a,
- 0x158: 0x317a, 0x159: 0x348b, 0x15a: 0x470d, 0x15b: 0x479e, 0x15c: 0x3193, 0x15d: 0x34a4,
- 0x15e: 0x31a2, 0x15f: 0x34b3, 0x160: 0x4712, 0x161: 0x47a3, 0x162: 0x31bb, 0x163: 0x34d1,
- 0x164: 0x31ac, 0x165: 0x34c2, 0x168: 0x471c, 0x169: 0x47ad,
- 0x16a: 0x4721, 0x16b: 0x47b2, 0x16c: 0x31d9, 0x16d: 0x34ef, 0x16e: 0x31e3, 0x16f: 0x34f9,
- 0x170: 0x31e8, 0x171: 0x34fe, 0x172: 0x3206, 0x173: 0x351c, 0x174: 0x3229, 0x175: 0x353f,
- 0x176: 0x3251, 0x177: 0x356c, 0x178: 0x3265, 0x179: 0x3274, 0x17a: 0x3594, 0x17b: 0x327e,
- 0x17c: 0x359e, 0x17d: 0x3283, 0x17e: 0x35a3, 0x17f: 0x00a7,
+ 0x140: 0x1d64, 0x143: 0x305e, 0x144: 0x336f, 0x145: 0x3077,
+ 0x146: 0x3388, 0x147: 0x306d, 0x148: 0x337e, 0x149: 0x1d8c,
+ 0x14c: 0x484a, 0x14d: 0x48db, 0x14e: 0x3090, 0x14f: 0x33a1, 0x150: 0x309a, 0x151: 0x33ab,
+ 0x154: 0x30b8, 0x155: 0x33c9, 0x156: 0x30d1, 0x157: 0x33e2,
+ 0x158: 0x30c2, 0x159: 0x33d3, 0x15a: 0x486d, 0x15b: 0x48fe, 0x15c: 0x30db, 0x15d: 0x33ec,
+ 0x15e: 0x30ea, 0x15f: 0x33fb, 0x160: 0x4872, 0x161: 0x4903, 0x162: 0x3103, 0x163: 0x3419,
+ 0x164: 0x30f4, 0x165: 0x340a, 0x168: 0x487c, 0x169: 0x490d,
+ 0x16a: 0x4881, 0x16b: 0x4912, 0x16c: 0x3121, 0x16d: 0x3437, 0x16e: 0x312b, 0x16f: 0x3441,
+ 0x170: 0x3130, 0x171: 0x3446, 0x172: 0x314e, 0x173: 0x3464, 0x174: 0x3171, 0x175: 0x3487,
+ 0x176: 0x3199, 0x177: 0x34b4, 0x178: 0x31ad, 0x179: 0x31bc, 0x17a: 0x34dc, 0x17b: 0x31c6,
+ 0x17c: 0x34e6, 0x17d: 0x31cb, 0x17e: 0x34eb, 0x17f: 0x00a7,
// Block 0x6, offset 0x180
- 0x184: 0x2e05, 0x185: 0x2e0b,
- 0x186: 0x2e11, 0x187: 0x1975, 0x188: 0x1978, 0x189: 0x1a0e, 0x18a: 0x198d, 0x18b: 0x1990,
- 0x18c: 0x1a44, 0x18d: 0x2f9f, 0x18e: 0x32ab, 0x18f: 0x30ad, 0x190: 0x33b9, 0x191: 0x3157,
- 0x192: 0x3468, 0x193: 0x31ed, 0x194: 0x3503, 0x195: 0x39e6, 0x196: 0x3b75, 0x197: 0x39df,
- 0x198: 0x3b6e, 0x199: 0x39ed, 0x19a: 0x3b7c, 0x19b: 0x39d8, 0x19c: 0x3b67,
- 0x19e: 0x38c7, 0x19f: 0x3a56, 0x1a0: 0x38c0, 0x1a1: 0x3a4f, 0x1a2: 0x35ca, 0x1a3: 0x35dc,
- 0x1a6: 0x3058, 0x1a7: 0x3364, 0x1a8: 0x30d5, 0x1a9: 0x33e6,
- 0x1aa: 0x4703, 0x1ab: 0x4794, 0x1ac: 0x39a7, 0x1ad: 0x3b36, 0x1ae: 0x35ee, 0x1af: 0x35f4,
- 0x1b0: 0x33dc, 0x1b1: 0x1945, 0x1b2: 0x1948, 0x1b3: 0x19d5, 0x1b4: 0x303f, 0x1b5: 0x334b,
- 0x1b8: 0x3111, 0x1b9: 0x3422, 0x1ba: 0x38ce, 0x1bb: 0x3a5d,
- 0x1bc: 0x35c4, 0x1bd: 0x35d6, 0x1be: 0x35d0, 0x1bf: 0x35e2,
+ 0x184: 0x2dd5, 0x185: 0x2ddb,
+ 0x186: 0x2de1, 0x187: 0x1a9f, 0x188: 0x1aa2, 0x189: 0x1b38, 0x18a: 0x1ab7, 0x18b: 0x1aba,
+ 0x18c: 0x1b6e, 0x18d: 0x2ee7, 0x18e: 0x31f3, 0x18f: 0x2ff5, 0x190: 0x3301, 0x191: 0x309f,
+ 0x192: 0x33b0, 0x193: 0x3135, 0x194: 0x344b, 0x195: 0x392e, 0x196: 0x3abd, 0x197: 0x3927,
+ 0x198: 0x3ab6, 0x199: 0x3935, 0x19a: 0x3ac4, 0x19b: 0x3920, 0x19c: 0x3aaf,
+ 0x19e: 0x380f, 0x19f: 0x399e, 0x1a0: 0x3808, 0x1a1: 0x3997, 0x1a2: 0x3512, 0x1a3: 0x3524,
+ 0x1a6: 0x2fa0, 0x1a7: 0x32ac, 0x1a8: 0x301d, 0x1a9: 0x332e,
+ 0x1aa: 0x4863, 0x1ab: 0x48f4, 0x1ac: 0x38ef, 0x1ad: 0x3a7e, 0x1ae: 0x3536, 0x1af: 0x353c,
+ 0x1b0: 0x3324, 0x1b1: 0x1a6f, 0x1b2: 0x1a72, 0x1b3: 0x1aff, 0x1b4: 0x2f87, 0x1b5: 0x3293,
+ 0x1b8: 0x3059, 0x1b9: 0x336a, 0x1ba: 0x3816, 0x1bb: 0x39a5,
+ 0x1bc: 0x350c, 0x1bd: 0x351e, 0x1be: 0x3518, 0x1bf: 0x352a,
// Block 0x7, offset 0x1c0
- 0x1c0: 0x2fa4, 0x1c1: 0x32b0, 0x1c2: 0x2fa9, 0x1c3: 0x32b5, 0x1c4: 0x3021, 0x1c5: 0x332d,
- 0x1c6: 0x3026, 0x1c7: 0x3332, 0x1c8: 0x30b2, 0x1c9: 0x33be, 0x1ca: 0x30b7, 0x1cb: 0x33c3,
- 0x1cc: 0x315c, 0x1cd: 0x346d, 0x1ce: 0x3161, 0x1cf: 0x3472, 0x1d0: 0x317f, 0x1d1: 0x3490,
- 0x1d2: 0x3184, 0x1d3: 0x3495, 0x1d4: 0x31f2, 0x1d5: 0x3508, 0x1d6: 0x31f7, 0x1d7: 0x350d,
- 0x1d8: 0x319d, 0x1d9: 0x34ae, 0x1da: 0x31b6, 0x1db: 0x34cc,
- 0x1de: 0x3071, 0x1df: 0x337d,
- 0x1e6: 0x46a9, 0x1e7: 0x473a, 0x1e8: 0x46d1, 0x1e9: 0x4762,
- 0x1ea: 0x3976, 0x1eb: 0x3b05, 0x1ec: 0x3953, 0x1ed: 0x3ae2, 0x1ee: 0x46ef, 0x1ef: 0x4780,
- 0x1f0: 0x396f, 0x1f1: 0x3afe, 0x1f2: 0x325b, 0x1f3: 0x3576,
+ 0x1c0: 0x2eec, 0x1c1: 0x31f8, 0x1c2: 0x2ef1, 0x1c3: 0x31fd, 0x1c4: 0x2f69, 0x1c5: 0x3275,
+ 0x1c6: 0x2f6e, 0x1c7: 0x327a, 0x1c8: 0x2ffa, 0x1c9: 0x3306, 0x1ca: 0x2fff, 0x1cb: 0x330b,
+ 0x1cc: 0x30a4, 0x1cd: 0x33b5, 0x1ce: 0x30a9, 0x1cf: 0x33ba, 0x1d0: 0x30c7, 0x1d1: 0x33d8,
+ 0x1d2: 0x30cc, 0x1d3: 0x33dd, 0x1d4: 0x313a, 0x1d5: 0x3450, 0x1d6: 0x313f, 0x1d7: 0x3455,
+ 0x1d8: 0x30e5, 0x1d9: 0x33f6, 0x1da: 0x30fe, 0x1db: 0x3414,
+ 0x1de: 0x2fb9, 0x1df: 0x32c5,
+ 0x1e6: 0x4809, 0x1e7: 0x489a, 0x1e8: 0x4831, 0x1e9: 0x48c2,
+ 0x1ea: 0x38be, 0x1eb: 0x3a4d, 0x1ec: 0x389b, 0x1ed: 0x3a2a, 0x1ee: 0x484f, 0x1ef: 0x48e0,
+ 0x1f0: 0x38b7, 0x1f1: 0x3a46, 0x1f2: 0x31a3, 0x1f3: 0x34be,
// Block 0x8, offset 0x200
0x200: 0x9933, 0x201: 0x9933, 0x202: 0x9933, 0x203: 0x9933, 0x204: 0x9933, 0x205: 0x8133,
0x206: 0x9933, 0x207: 0x9933, 0x208: 0x9933, 0x209: 0x9933, 0x20a: 0x9933, 0x20b: 0x9933,
@@ -4686,7 +4867,7 @@ var nfkcValues = [6016]uint16{
0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812e, 0x23a: 0x812e, 0x23b: 0x812e,
0x23c: 0x812e, 0x23d: 0x8133, 0x23e: 0x8133, 0x23f: 0x8133,
// Block 0x9, offset 0x240
- 0x240: 0x49c5, 0x241: 0x49ca, 0x242: 0x9933, 0x243: 0x49cf, 0x244: 0x4a88, 0x245: 0x9937,
+ 0x240: 0x4b3f, 0x241: 0x4b44, 0x242: 0x9933, 0x243: 0x4b49, 0x244: 0x4c02, 0x245: 0x9937,
0x246: 0x8133, 0x247: 0x812e, 0x248: 0x812e, 0x249: 0x812e, 0x24a: 0x8133, 0x24b: 0x8133,
0x24c: 0x8133, 0x24d: 0x812e, 0x24e: 0x812e, 0x250: 0x8133, 0x251: 0x8133,
0x252: 0x8133, 0x253: 0x812e, 0x254: 0x812e, 0x255: 0x812e, 0x256: 0x812e, 0x257: 0x8133,
@@ -4694,52 +4875,52 @@ var nfkcValues = [6016]uint16{
0x25e: 0x8136, 0x25f: 0x8135, 0x260: 0x8136, 0x261: 0x8136, 0x262: 0x8135, 0x263: 0x8133,
0x264: 0x8133, 0x265: 0x8133, 0x266: 0x8133, 0x267: 0x8133, 0x268: 0x8133, 0x269: 0x8133,
0x26a: 0x8133, 0x26b: 0x8133, 0x26c: 0x8133, 0x26d: 0x8133, 0x26e: 0x8133, 0x26f: 0x8133,
- 0x274: 0x0173,
- 0x27a: 0x42bc,
+ 0x274: 0x01ee,
+ 0x27a: 0x43a4,
0x27e: 0x0037,
// Block 0xa, offset 0x280
- 0x284: 0x4271, 0x285: 0x4492,
- 0x286: 0x3600, 0x287: 0x00ce, 0x288: 0x361e, 0x289: 0x362a, 0x28a: 0x363c,
- 0x28c: 0x365a, 0x28e: 0x366c, 0x28f: 0x368a, 0x290: 0x3e1f, 0x291: 0xa000,
+ 0x284: 0x4359, 0x285: 0x457a,
+ 0x286: 0x3548, 0x287: 0x00ce, 0x288: 0x3566, 0x289: 0x3572, 0x28a: 0x3584,
+ 0x28c: 0x35a2, 0x28e: 0x35b4, 0x28f: 0x35d2, 0x290: 0x3d67, 0x291: 0xa000,
0x295: 0xa000, 0x297: 0xa000,
0x299: 0xa000,
0x29f: 0xa000, 0x2a1: 0xa000,
0x2a5: 0xa000, 0x2a9: 0xa000,
- 0x2aa: 0x364e, 0x2ab: 0x367e, 0x2ac: 0x4815, 0x2ad: 0x36ae, 0x2ae: 0x483f, 0x2af: 0x36c0,
- 0x2b0: 0x3e87, 0x2b1: 0xa000, 0x2b5: 0xa000,
+ 0x2aa: 0x3596, 0x2ab: 0x35c6, 0x2ac: 0x4975, 0x2ad: 0x35f6, 0x2ae: 0x499f, 0x2af: 0x3608,
+ 0x2b0: 0x3dcf, 0x2b1: 0xa000, 0x2b5: 0xa000,
0x2b7: 0xa000, 0x2b9: 0xa000,
0x2bf: 0xa000,
// Block 0xb, offset 0x2c0
0x2c1: 0xa000, 0x2c5: 0xa000,
- 0x2c9: 0xa000, 0x2ca: 0x4857, 0x2cb: 0x4875,
- 0x2cc: 0x36de, 0x2cd: 0x36f6, 0x2ce: 0x488d, 0x2d0: 0x01c1, 0x2d1: 0x01d3,
- 0x2d2: 0x01af, 0x2d3: 0x4323, 0x2d4: 0x4329, 0x2d5: 0x01fd, 0x2d6: 0x01eb,
- 0x2f0: 0x01d9, 0x2f1: 0x01ee, 0x2f2: 0x01f1, 0x2f4: 0x018b, 0x2f5: 0x01ca,
- 0x2f9: 0x01a9,
+ 0x2c9: 0xa000, 0x2ca: 0x49b7, 0x2cb: 0x49d5,
+ 0x2cc: 0x3626, 0x2cd: 0x363e, 0x2ce: 0x49ed, 0x2d0: 0x0242, 0x2d1: 0x0254,
+ 0x2d2: 0x0230, 0x2d3: 0x440b, 0x2d4: 0x4411, 0x2d5: 0x027e, 0x2d6: 0x026c,
+ 0x2f0: 0x025a, 0x2f1: 0x026f, 0x2f2: 0x0272, 0x2f4: 0x020c, 0x2f5: 0x024b,
+ 0x2f9: 0x022a,
// Block 0xc, offset 0x300
- 0x300: 0x3738, 0x301: 0x3744, 0x303: 0x3732,
- 0x306: 0xa000, 0x307: 0x3720,
- 0x30c: 0x3774, 0x30d: 0x375c, 0x30e: 0x3786, 0x310: 0xa000,
+ 0x300: 0x3680, 0x301: 0x368c, 0x303: 0x367a,
+ 0x306: 0xa000, 0x307: 0x3668,
+ 0x30c: 0x36bc, 0x30d: 0x36a4, 0x30e: 0x36ce, 0x310: 0xa000,
0x313: 0xa000, 0x315: 0xa000, 0x316: 0xa000, 0x317: 0xa000,
- 0x318: 0xa000, 0x319: 0x3768, 0x31a: 0xa000,
+ 0x318: 0xa000, 0x319: 0x36b0, 0x31a: 0xa000,
0x31e: 0xa000, 0x323: 0xa000,
0x327: 0xa000,
0x32b: 0xa000, 0x32d: 0xa000,
0x330: 0xa000, 0x333: 0xa000, 0x335: 0xa000,
- 0x336: 0xa000, 0x337: 0xa000, 0x338: 0xa000, 0x339: 0x37ec, 0x33a: 0xa000,
+ 0x336: 0xa000, 0x337: 0xa000, 0x338: 0xa000, 0x339: 0x3734, 0x33a: 0xa000,
0x33e: 0xa000,
// Block 0xd, offset 0x340
- 0x341: 0x374a, 0x342: 0x37ce,
- 0x350: 0x3726, 0x351: 0x37aa,
- 0x352: 0x372c, 0x353: 0x37b0, 0x356: 0x373e, 0x357: 0x37c2,
- 0x358: 0xa000, 0x359: 0xa000, 0x35a: 0x3840, 0x35b: 0x3846, 0x35c: 0x3750, 0x35d: 0x37d4,
- 0x35e: 0x3756, 0x35f: 0x37da, 0x362: 0x3762, 0x363: 0x37e6,
- 0x364: 0x376e, 0x365: 0x37f2, 0x366: 0x377a, 0x367: 0x37fe, 0x368: 0xa000, 0x369: 0xa000,
- 0x36a: 0x384c, 0x36b: 0x3852, 0x36c: 0x37a4, 0x36d: 0x3828, 0x36e: 0x3780, 0x36f: 0x3804,
- 0x370: 0x378c, 0x371: 0x3810, 0x372: 0x3792, 0x373: 0x3816, 0x374: 0x3798, 0x375: 0x381c,
- 0x378: 0x379e, 0x379: 0x3822,
+ 0x341: 0x3692, 0x342: 0x3716,
+ 0x350: 0x366e, 0x351: 0x36f2,
+ 0x352: 0x3674, 0x353: 0x36f8, 0x356: 0x3686, 0x357: 0x370a,
+ 0x358: 0xa000, 0x359: 0xa000, 0x35a: 0x3788, 0x35b: 0x378e, 0x35c: 0x3698, 0x35d: 0x371c,
+ 0x35e: 0x369e, 0x35f: 0x3722, 0x362: 0x36aa, 0x363: 0x372e,
+ 0x364: 0x36b6, 0x365: 0x373a, 0x366: 0x36c2, 0x367: 0x3746, 0x368: 0xa000, 0x369: 0xa000,
+ 0x36a: 0x3794, 0x36b: 0x379a, 0x36c: 0x36ec, 0x36d: 0x3770, 0x36e: 0x36c8, 0x36f: 0x374c,
+ 0x370: 0x36d4, 0x371: 0x3758, 0x372: 0x36da, 0x373: 0x375e, 0x374: 0x36e0, 0x375: 0x3764,
+ 0x378: 0x36e6, 0x379: 0x376a,
// Block 0xe, offset 0x380
- 0x387: 0x1d67,
+ 0x387: 0x1e91,
0x391: 0x812e,
0x392: 0x8133, 0x393: 0x8133, 0x394: 0x8133, 0x395: 0x8133, 0x396: 0x812e, 0x397: 0x8133,
0x398: 0x8133, 0x399: 0x8133, 0x39a: 0x812f, 0x39b: 0x812e, 0x39c: 0x8133, 0x39d: 0x8133,
@@ -4755,10 +4936,12 @@ var nfkcValues = [6016]uint16{
0x3d2: 0x811e, 0x3d3: 0x9933, 0x3d4: 0x9933, 0x3d5: 0x992e, 0x3d6: 0x812e, 0x3d7: 0x8133,
0x3d8: 0x8133, 0x3d9: 0x8133, 0x3da: 0x8133, 0x3db: 0x8133, 0x3dc: 0x812e, 0x3dd: 0x8133,
0x3de: 0x8133, 0x3df: 0x812e,
- 0x3f0: 0x811f, 0x3f5: 0x1d8a,
- 0x3f6: 0x2019, 0x3f7: 0x2055, 0x3f8: 0x2050,
+ 0x3f0: 0x811f, 0x3f5: 0x1eb4,
+ 0x3f6: 0x2143, 0x3f7: 0x217f, 0x3f8: 0x217a,
// Block 0x10, offset 0x400
- 0x413: 0x812e, 0x414: 0x8133, 0x415: 0x8133, 0x416: 0x8133, 0x417: 0x8133,
+ 0x40a: 0x8133, 0x40b: 0x8133,
+ 0x40c: 0x8133, 0x40d: 0x8133, 0x40e: 0x8133, 0x40f: 0x812e, 0x410: 0x812e, 0x411: 0x812e,
+ 0x412: 0x812e, 0x413: 0x812e, 0x414: 0x8133, 0x415: 0x8133, 0x416: 0x8133, 0x417: 0x8133,
0x418: 0x8133, 0x419: 0x8133, 0x41a: 0x8133, 0x41b: 0x8133, 0x41c: 0x8133, 0x41d: 0x8133,
0x41e: 0x8133, 0x41f: 0x8133, 0x420: 0x8133, 0x421: 0x8133, 0x423: 0x812e,
0x424: 0x8133, 0x425: 0x8133, 0x426: 0x812e, 0x427: 0x8133, 0x428: 0x8133, 0x429: 0x812e,
@@ -4768,30 +4951,30 @@ var nfkcValues = [6016]uint16{
0x43c: 0x8133, 0x43d: 0x8133, 0x43e: 0x8133, 0x43f: 0x8133,
// Block 0x11, offset 0x440
0x445: 0xa000,
- 0x446: 0x2d33, 0x447: 0xa000, 0x448: 0x2d3b, 0x449: 0xa000, 0x44a: 0x2d43, 0x44b: 0xa000,
- 0x44c: 0x2d4b, 0x44d: 0xa000, 0x44e: 0x2d53, 0x451: 0xa000,
- 0x452: 0x2d5b,
+ 0x446: 0x3ee7, 0x447: 0xa000, 0x448: 0x3eef, 0x449: 0xa000, 0x44a: 0x3ef7, 0x44b: 0xa000,
+ 0x44c: 0x3eff, 0x44d: 0xa000, 0x44e: 0x3f07, 0x451: 0xa000,
+ 0x452: 0x3f0f,
0x474: 0x8103, 0x475: 0x9900,
- 0x47a: 0xa000, 0x47b: 0x2d63,
- 0x47c: 0xa000, 0x47d: 0x2d6b, 0x47e: 0xa000, 0x47f: 0xa000,
+ 0x47a: 0xa000, 0x47b: 0x3f17,
+ 0x47c: 0xa000, 0x47d: 0x3f1f, 0x47e: 0xa000, 0x47f: 0xa000,
// Block 0x12, offset 0x480
- 0x480: 0x0069, 0x481: 0x006b, 0x482: 0x006f, 0x483: 0x0083, 0x484: 0x00f5, 0x485: 0x00f8,
- 0x486: 0x0416, 0x487: 0x0085, 0x488: 0x0089, 0x489: 0x008b, 0x48a: 0x0104, 0x48b: 0x0107,
- 0x48c: 0x010a, 0x48d: 0x008f, 0x48f: 0x0097, 0x490: 0x009b, 0x491: 0x00e0,
- 0x492: 0x009f, 0x493: 0x00fe, 0x494: 0x041a, 0x495: 0x041e, 0x496: 0x00a1, 0x497: 0x00a9,
- 0x498: 0x00ab, 0x499: 0x0426, 0x49a: 0x012b, 0x49b: 0x00ad, 0x49c: 0x042a, 0x49d: 0x01c1,
- 0x49e: 0x01c4, 0x49f: 0x01c7, 0x4a0: 0x01fd, 0x4a1: 0x0200, 0x4a2: 0x0093, 0x4a3: 0x00a5,
- 0x4a4: 0x00ab, 0x4a5: 0x00ad, 0x4a6: 0x01c1, 0x4a7: 0x01c4, 0x4a8: 0x01ee, 0x4a9: 0x01fd,
- 0x4aa: 0x0200,
- 0x4b8: 0x020f,
+ 0x480: 0x0069, 0x481: 0x006b, 0x482: 0x006f, 0x483: 0x0083, 0x484: 0x0104, 0x485: 0x0107,
+ 0x486: 0x0506, 0x487: 0x0085, 0x488: 0x0089, 0x489: 0x008b, 0x48a: 0x011f, 0x48b: 0x0122,
+ 0x48c: 0x0125, 0x48d: 0x008f, 0x48f: 0x0097, 0x490: 0x009b, 0x491: 0x00e6,
+ 0x492: 0x009f, 0x493: 0x0110, 0x494: 0x050a, 0x495: 0x050e, 0x496: 0x00a1, 0x497: 0x00a9,
+ 0x498: 0x00ab, 0x499: 0x0516, 0x49a: 0x015b, 0x49b: 0x00ad, 0x49c: 0x051a, 0x49d: 0x0242,
+ 0x49e: 0x0245, 0x49f: 0x0248, 0x4a0: 0x027e, 0x4a1: 0x0281, 0x4a2: 0x0093, 0x4a3: 0x00a5,
+ 0x4a4: 0x00ab, 0x4a5: 0x00ad, 0x4a6: 0x0242, 0x4a7: 0x0245, 0x4a8: 0x026f, 0x4a9: 0x027e,
+ 0x4aa: 0x0281,
+ 0x4b8: 0x02b4,
// Block 0x13, offset 0x4c0
- 0x4db: 0x00fb, 0x4dc: 0x0087, 0x4dd: 0x0101,
- 0x4de: 0x00d4, 0x4df: 0x010a, 0x4e0: 0x008d, 0x4e1: 0x010d, 0x4e2: 0x0110, 0x4e3: 0x0116,
- 0x4e4: 0x011c, 0x4e5: 0x011f, 0x4e6: 0x0122, 0x4e7: 0x042e, 0x4e8: 0x016d, 0x4e9: 0x0128,
- 0x4ea: 0x0432, 0x4eb: 0x0170, 0x4ec: 0x0131, 0x4ed: 0x012e, 0x4ee: 0x0134, 0x4ef: 0x0137,
- 0x4f0: 0x013a, 0x4f1: 0x013d, 0x4f2: 0x0140, 0x4f3: 0x014c, 0x4f4: 0x014f, 0x4f5: 0x00ec,
- 0x4f6: 0x0152, 0x4f7: 0x0155, 0x4f8: 0x0422, 0x4f9: 0x0158, 0x4fa: 0x015b, 0x4fb: 0x00b5,
- 0x4fc: 0x0161, 0x4fd: 0x0164, 0x4fe: 0x0167, 0x4ff: 0x01d3,
+ 0x4db: 0x010a, 0x4dc: 0x0087, 0x4dd: 0x0113,
+ 0x4de: 0x00d7, 0x4df: 0x0125, 0x4e0: 0x008d, 0x4e1: 0x012b, 0x4e2: 0x0131, 0x4e3: 0x013d,
+ 0x4e4: 0x0146, 0x4e5: 0x0149, 0x4e6: 0x014c, 0x4e7: 0x051e, 0x4e8: 0x01c7, 0x4e9: 0x0155,
+ 0x4ea: 0x0522, 0x4eb: 0x01ca, 0x4ec: 0x0161, 0x4ed: 0x015e, 0x4ee: 0x0164, 0x4ef: 0x0167,
+ 0x4f0: 0x016a, 0x4f1: 0x016d, 0x4f2: 0x0176, 0x4f3: 0x018e, 0x4f4: 0x0191, 0x4f5: 0x00f2,
+ 0x4f6: 0x019a, 0x4f7: 0x019d, 0x4f8: 0x0512, 0x4f9: 0x01a0, 0x4fa: 0x01a3, 0x4fb: 0x00b5,
+ 0x4fc: 0x01af, 0x4fd: 0x01b2, 0x4fe: 0x01b5, 0x4ff: 0x0254,
// Block 0x14, offset 0x500
0x500: 0x8133, 0x501: 0x8133, 0x502: 0x812e, 0x503: 0x8133, 0x504: 0x8133, 0x505: 0x8133,
0x506: 0x8133, 0x507: 0x8133, 0x508: 0x8133, 0x509: 0x8133, 0x50a: 0x812e, 0x50b: 0x8133,
@@ -4802,1033 +4985,1075 @@ var nfkcValues = [6016]uint16{
0x524: 0x8133, 0x525: 0x8133, 0x526: 0x8133, 0x527: 0x8133, 0x528: 0x8133, 0x529: 0x8133,
0x52a: 0x8133, 0x52b: 0x8133, 0x52c: 0x8133, 0x52d: 0x8133, 0x52e: 0x8133, 0x52f: 0x8133,
0x530: 0x8133, 0x531: 0x8133, 0x532: 0x8133, 0x533: 0x8133, 0x534: 0x8133, 0x535: 0x8133,
- 0x536: 0x8134, 0x537: 0x8132, 0x538: 0x8132, 0x539: 0x812e, 0x53b: 0x8133,
+ 0x536: 0x8134, 0x537: 0x8132, 0x538: 0x8132, 0x539: 0x812e, 0x53a: 0x812d, 0x53b: 0x8133,
0x53c: 0x8135, 0x53d: 0x812e, 0x53e: 0x8133, 0x53f: 0x812e,
// Block 0x15, offset 0x540
- 0x540: 0x2fae, 0x541: 0x32ba, 0x542: 0x2fb8, 0x543: 0x32c4, 0x544: 0x2fbd, 0x545: 0x32c9,
- 0x546: 0x2fc2, 0x547: 0x32ce, 0x548: 0x38e3, 0x549: 0x3a72, 0x54a: 0x2fdb, 0x54b: 0x32e7,
- 0x54c: 0x2fe5, 0x54d: 0x32f1, 0x54e: 0x2ff4, 0x54f: 0x3300, 0x550: 0x2fea, 0x551: 0x32f6,
- 0x552: 0x2fef, 0x553: 0x32fb, 0x554: 0x3906, 0x555: 0x3a95, 0x556: 0x390d, 0x557: 0x3a9c,
- 0x558: 0x3030, 0x559: 0x333c, 0x55a: 0x3035, 0x55b: 0x3341, 0x55c: 0x391b, 0x55d: 0x3aaa,
- 0x55e: 0x303a, 0x55f: 0x3346, 0x560: 0x3049, 0x561: 0x3355, 0x562: 0x3067, 0x563: 0x3373,
- 0x564: 0x3076, 0x565: 0x3382, 0x566: 0x306c, 0x567: 0x3378, 0x568: 0x307b, 0x569: 0x3387,
- 0x56a: 0x3080, 0x56b: 0x338c, 0x56c: 0x30c6, 0x56d: 0x33d2, 0x56e: 0x3922, 0x56f: 0x3ab1,
- 0x570: 0x30d0, 0x571: 0x33e1, 0x572: 0x30da, 0x573: 0x33eb, 0x574: 0x30e4, 0x575: 0x33f5,
- 0x576: 0x46db, 0x577: 0x476c, 0x578: 0x3929, 0x579: 0x3ab8, 0x57a: 0x30fd, 0x57b: 0x340e,
- 0x57c: 0x30f8, 0x57d: 0x3409, 0x57e: 0x3102, 0x57f: 0x3413,
+ 0x540: 0x2ef6, 0x541: 0x3202, 0x542: 0x2f00, 0x543: 0x320c, 0x544: 0x2f05, 0x545: 0x3211,
+ 0x546: 0x2f0a, 0x547: 0x3216, 0x548: 0x382b, 0x549: 0x39ba, 0x54a: 0x2f23, 0x54b: 0x322f,
+ 0x54c: 0x2f2d, 0x54d: 0x3239, 0x54e: 0x2f3c, 0x54f: 0x3248, 0x550: 0x2f32, 0x551: 0x323e,
+ 0x552: 0x2f37, 0x553: 0x3243, 0x554: 0x384e, 0x555: 0x39dd, 0x556: 0x3855, 0x557: 0x39e4,
+ 0x558: 0x2f78, 0x559: 0x3284, 0x55a: 0x2f7d, 0x55b: 0x3289, 0x55c: 0x3863, 0x55d: 0x39f2,
+ 0x55e: 0x2f82, 0x55f: 0x328e, 0x560: 0x2f91, 0x561: 0x329d, 0x562: 0x2faf, 0x563: 0x32bb,
+ 0x564: 0x2fbe, 0x565: 0x32ca, 0x566: 0x2fb4, 0x567: 0x32c0, 0x568: 0x2fc3, 0x569: 0x32cf,
+ 0x56a: 0x2fc8, 0x56b: 0x32d4, 0x56c: 0x300e, 0x56d: 0x331a, 0x56e: 0x386a, 0x56f: 0x39f9,
+ 0x570: 0x3018, 0x571: 0x3329, 0x572: 0x3022, 0x573: 0x3333, 0x574: 0x302c, 0x575: 0x333d,
+ 0x576: 0x483b, 0x577: 0x48cc, 0x578: 0x3871, 0x579: 0x3a00, 0x57a: 0x3045, 0x57b: 0x3356,
+ 0x57c: 0x3040, 0x57d: 0x3351, 0x57e: 0x304a, 0x57f: 0x335b,
// Block 0x16, offset 0x580
- 0x580: 0x3107, 0x581: 0x3418, 0x582: 0x310c, 0x583: 0x341d, 0x584: 0x3120, 0x585: 0x3431,
- 0x586: 0x312a, 0x587: 0x343b, 0x588: 0x3139, 0x589: 0x344a, 0x58a: 0x3134, 0x58b: 0x3445,
- 0x58c: 0x394c, 0x58d: 0x3adb, 0x58e: 0x395a, 0x58f: 0x3ae9, 0x590: 0x3961, 0x591: 0x3af0,
- 0x592: 0x3968, 0x593: 0x3af7, 0x594: 0x3166, 0x595: 0x3477, 0x596: 0x316b, 0x597: 0x347c,
- 0x598: 0x3175, 0x599: 0x3486, 0x59a: 0x4708, 0x59b: 0x4799, 0x59c: 0x39ae, 0x59d: 0x3b3d,
- 0x59e: 0x318e, 0x59f: 0x349f, 0x5a0: 0x3198, 0x5a1: 0x34a9, 0x5a2: 0x4717, 0x5a3: 0x47a8,
- 0x5a4: 0x39b5, 0x5a5: 0x3b44, 0x5a6: 0x39bc, 0x5a7: 0x3b4b, 0x5a8: 0x39c3, 0x5a9: 0x3b52,
- 0x5aa: 0x31a7, 0x5ab: 0x34b8, 0x5ac: 0x31b1, 0x5ad: 0x34c7, 0x5ae: 0x31c5, 0x5af: 0x34db,
- 0x5b0: 0x31c0, 0x5b1: 0x34d6, 0x5b2: 0x3201, 0x5b3: 0x3517, 0x5b4: 0x3210, 0x5b5: 0x3526,
- 0x5b6: 0x320b, 0x5b7: 0x3521, 0x5b8: 0x39ca, 0x5b9: 0x3b59, 0x5ba: 0x39d1, 0x5bb: 0x3b60,
- 0x5bc: 0x3215, 0x5bd: 0x352b, 0x5be: 0x321a, 0x5bf: 0x3530,
+ 0x580: 0x304f, 0x581: 0x3360, 0x582: 0x3054, 0x583: 0x3365, 0x584: 0x3068, 0x585: 0x3379,
+ 0x586: 0x3072, 0x587: 0x3383, 0x588: 0x3081, 0x589: 0x3392, 0x58a: 0x307c, 0x58b: 0x338d,
+ 0x58c: 0x3894, 0x58d: 0x3a23, 0x58e: 0x38a2, 0x58f: 0x3a31, 0x590: 0x38a9, 0x591: 0x3a38,
+ 0x592: 0x38b0, 0x593: 0x3a3f, 0x594: 0x30ae, 0x595: 0x33bf, 0x596: 0x30b3, 0x597: 0x33c4,
+ 0x598: 0x30bd, 0x599: 0x33ce, 0x59a: 0x4868, 0x59b: 0x48f9, 0x59c: 0x38f6, 0x59d: 0x3a85,
+ 0x59e: 0x30d6, 0x59f: 0x33e7, 0x5a0: 0x30e0, 0x5a1: 0x33f1, 0x5a2: 0x4877, 0x5a3: 0x4908,
+ 0x5a4: 0x38fd, 0x5a5: 0x3a8c, 0x5a6: 0x3904, 0x5a7: 0x3a93, 0x5a8: 0x390b, 0x5a9: 0x3a9a,
+ 0x5aa: 0x30ef, 0x5ab: 0x3400, 0x5ac: 0x30f9, 0x5ad: 0x340f, 0x5ae: 0x310d, 0x5af: 0x3423,
+ 0x5b0: 0x3108, 0x5b1: 0x341e, 0x5b2: 0x3149, 0x5b3: 0x345f, 0x5b4: 0x3158, 0x5b5: 0x346e,
+ 0x5b6: 0x3153, 0x5b7: 0x3469, 0x5b8: 0x3912, 0x5b9: 0x3aa1, 0x5ba: 0x3919, 0x5bb: 0x3aa8,
+ 0x5bc: 0x315d, 0x5bd: 0x3473, 0x5be: 0x3162, 0x5bf: 0x3478,
// Block 0x17, offset 0x5c0
- 0x5c0: 0x321f, 0x5c1: 0x3535, 0x5c2: 0x3224, 0x5c3: 0x353a, 0x5c4: 0x3233, 0x5c5: 0x3549,
- 0x5c6: 0x322e, 0x5c7: 0x3544, 0x5c8: 0x3238, 0x5c9: 0x3553, 0x5ca: 0x323d, 0x5cb: 0x3558,
- 0x5cc: 0x3242, 0x5cd: 0x355d, 0x5ce: 0x3260, 0x5cf: 0x357b, 0x5d0: 0x3279, 0x5d1: 0x3599,
- 0x5d2: 0x3288, 0x5d3: 0x35a8, 0x5d4: 0x328d, 0x5d5: 0x35ad, 0x5d6: 0x3391, 0x5d7: 0x34bd,
- 0x5d8: 0x354e, 0x5d9: 0x358a, 0x5da: 0x1be6, 0x5db: 0x42ee,
- 0x5e0: 0x46b8, 0x5e1: 0x4749, 0x5e2: 0x2f9a, 0x5e3: 0x32a6,
- 0x5e4: 0x388f, 0x5e5: 0x3a1e, 0x5e6: 0x3888, 0x5e7: 0x3a17, 0x5e8: 0x389d, 0x5e9: 0x3a2c,
- 0x5ea: 0x3896, 0x5eb: 0x3a25, 0x5ec: 0x38d5, 0x5ed: 0x3a64, 0x5ee: 0x38ab, 0x5ef: 0x3a3a,
- 0x5f0: 0x38a4, 0x5f1: 0x3a33, 0x5f2: 0x38b9, 0x5f3: 0x3a48, 0x5f4: 0x38b2, 0x5f5: 0x3a41,
- 0x5f6: 0x38dc, 0x5f7: 0x3a6b, 0x5f8: 0x46cc, 0x5f9: 0x475d, 0x5fa: 0x3017, 0x5fb: 0x3323,
- 0x5fc: 0x3003, 0x5fd: 0x330f, 0x5fe: 0x38f1, 0x5ff: 0x3a80,
+ 0x5c0: 0x3167, 0x5c1: 0x347d, 0x5c2: 0x316c, 0x5c3: 0x3482, 0x5c4: 0x317b, 0x5c5: 0x3491,
+ 0x5c6: 0x3176, 0x5c7: 0x348c, 0x5c8: 0x3180, 0x5c9: 0x349b, 0x5ca: 0x3185, 0x5cb: 0x34a0,
+ 0x5cc: 0x318a, 0x5cd: 0x34a5, 0x5ce: 0x31a8, 0x5cf: 0x34c3, 0x5d0: 0x31c1, 0x5d1: 0x34e1,
+ 0x5d2: 0x31d0, 0x5d3: 0x34f0, 0x5d4: 0x31d5, 0x5d5: 0x34f5, 0x5d6: 0x32d9, 0x5d7: 0x3405,
+ 0x5d8: 0x3496, 0x5d9: 0x34d2, 0x5da: 0x1d10, 0x5db: 0x43d6,
+ 0x5e0: 0x4818, 0x5e1: 0x48a9, 0x5e2: 0x2ee2, 0x5e3: 0x31ee,
+ 0x5e4: 0x37d7, 0x5e5: 0x3966, 0x5e6: 0x37d0, 0x5e7: 0x395f, 0x5e8: 0x37e5, 0x5e9: 0x3974,
+ 0x5ea: 0x37de, 0x5eb: 0x396d, 0x5ec: 0x381d, 0x5ed: 0x39ac, 0x5ee: 0x37f3, 0x5ef: 0x3982,
+ 0x5f0: 0x37ec, 0x5f1: 0x397b, 0x5f2: 0x3801, 0x5f3: 0x3990, 0x5f4: 0x37fa, 0x5f5: 0x3989,
+ 0x5f6: 0x3824, 0x5f7: 0x39b3, 0x5f8: 0x482c, 0x5f9: 0x48bd, 0x5fa: 0x2f5f, 0x5fb: 0x326b,
+ 0x5fc: 0x2f4b, 0x5fd: 0x3257, 0x5fe: 0x3839, 0x5ff: 0x39c8,
// Block 0x18, offset 0x600
- 0x600: 0x38ea, 0x601: 0x3a79, 0x602: 0x38ff, 0x603: 0x3a8e, 0x604: 0x38f8, 0x605: 0x3a87,
- 0x606: 0x3914, 0x607: 0x3aa3, 0x608: 0x30a8, 0x609: 0x33b4, 0x60a: 0x30bc, 0x60b: 0x33c8,
- 0x60c: 0x46fe, 0x60d: 0x478f, 0x60e: 0x314d, 0x60f: 0x345e, 0x610: 0x3937, 0x611: 0x3ac6,
- 0x612: 0x3930, 0x613: 0x3abf, 0x614: 0x3945, 0x615: 0x3ad4, 0x616: 0x393e, 0x617: 0x3acd,
- 0x618: 0x39a0, 0x619: 0x3b2f, 0x61a: 0x3984, 0x61b: 0x3b13, 0x61c: 0x397d, 0x61d: 0x3b0c,
- 0x61e: 0x3992, 0x61f: 0x3b21, 0x620: 0x398b, 0x621: 0x3b1a, 0x622: 0x3999, 0x623: 0x3b28,
- 0x624: 0x31fc, 0x625: 0x3512, 0x626: 0x31de, 0x627: 0x34f4, 0x628: 0x39fb, 0x629: 0x3b8a,
- 0x62a: 0x39f4, 0x62b: 0x3b83, 0x62c: 0x3a09, 0x62d: 0x3b98, 0x62e: 0x3a02, 0x62f: 0x3b91,
- 0x630: 0x3a10, 0x631: 0x3b9f, 0x632: 0x3247, 0x633: 0x3562, 0x634: 0x326f, 0x635: 0x358f,
- 0x636: 0x326a, 0x637: 0x3585, 0x638: 0x3256, 0x639: 0x3571,
+ 0x600: 0x3832, 0x601: 0x39c1, 0x602: 0x3847, 0x603: 0x39d6, 0x604: 0x3840, 0x605: 0x39cf,
+ 0x606: 0x385c, 0x607: 0x39eb, 0x608: 0x2ff0, 0x609: 0x32fc, 0x60a: 0x3004, 0x60b: 0x3310,
+ 0x60c: 0x485e, 0x60d: 0x48ef, 0x60e: 0x3095, 0x60f: 0x33a6, 0x610: 0x387f, 0x611: 0x3a0e,
+ 0x612: 0x3878, 0x613: 0x3a07, 0x614: 0x388d, 0x615: 0x3a1c, 0x616: 0x3886, 0x617: 0x3a15,
+ 0x618: 0x38e8, 0x619: 0x3a77, 0x61a: 0x38cc, 0x61b: 0x3a5b, 0x61c: 0x38c5, 0x61d: 0x3a54,
+ 0x61e: 0x38da, 0x61f: 0x3a69, 0x620: 0x38d3, 0x621: 0x3a62, 0x622: 0x38e1, 0x623: 0x3a70,
+ 0x624: 0x3144, 0x625: 0x345a, 0x626: 0x3126, 0x627: 0x343c, 0x628: 0x3943, 0x629: 0x3ad2,
+ 0x62a: 0x393c, 0x62b: 0x3acb, 0x62c: 0x3951, 0x62d: 0x3ae0, 0x62e: 0x394a, 0x62f: 0x3ad9,
+ 0x630: 0x3958, 0x631: 0x3ae7, 0x632: 0x318f, 0x633: 0x34aa, 0x634: 0x31b7, 0x635: 0x34d7,
+ 0x636: 0x31b2, 0x637: 0x34cd, 0x638: 0x319e, 0x639: 0x34b9,
// Block 0x19, offset 0x640
- 0x640: 0x481b, 0x641: 0x4821, 0x642: 0x4935, 0x643: 0x494d, 0x644: 0x493d, 0x645: 0x4955,
- 0x646: 0x4945, 0x647: 0x495d, 0x648: 0x47c1, 0x649: 0x47c7, 0x64a: 0x48a5, 0x64b: 0x48bd,
- 0x64c: 0x48ad, 0x64d: 0x48c5, 0x64e: 0x48b5, 0x64f: 0x48cd, 0x650: 0x482d, 0x651: 0x4833,
- 0x652: 0x3dcf, 0x653: 0x3ddf, 0x654: 0x3dd7, 0x655: 0x3de7,
- 0x658: 0x47cd, 0x659: 0x47d3, 0x65a: 0x3cff, 0x65b: 0x3d0f, 0x65c: 0x3d07, 0x65d: 0x3d17,
- 0x660: 0x4845, 0x661: 0x484b, 0x662: 0x4965, 0x663: 0x497d,
- 0x664: 0x496d, 0x665: 0x4985, 0x666: 0x4975, 0x667: 0x498d, 0x668: 0x47d9, 0x669: 0x47df,
- 0x66a: 0x48d5, 0x66b: 0x48ed, 0x66c: 0x48dd, 0x66d: 0x48f5, 0x66e: 0x48e5, 0x66f: 0x48fd,
- 0x670: 0x485d, 0x671: 0x4863, 0x672: 0x3e2f, 0x673: 0x3e47, 0x674: 0x3e37, 0x675: 0x3e4f,
- 0x676: 0x3e3f, 0x677: 0x3e57, 0x678: 0x47e5, 0x679: 0x47eb, 0x67a: 0x3d2f, 0x67b: 0x3d47,
- 0x67c: 0x3d37, 0x67d: 0x3d4f, 0x67e: 0x3d3f, 0x67f: 0x3d57,
+ 0x640: 0x497b, 0x641: 0x4981, 0x642: 0x4a95, 0x643: 0x4aad, 0x644: 0x4a9d, 0x645: 0x4ab5,
+ 0x646: 0x4aa5, 0x647: 0x4abd, 0x648: 0x4921, 0x649: 0x4927, 0x64a: 0x4a05, 0x64b: 0x4a1d,
+ 0x64c: 0x4a0d, 0x64d: 0x4a25, 0x64e: 0x4a15, 0x64f: 0x4a2d, 0x650: 0x498d, 0x651: 0x4993,
+ 0x652: 0x3d17, 0x653: 0x3d27, 0x654: 0x3d1f, 0x655: 0x3d2f,
+ 0x658: 0x492d, 0x659: 0x4933, 0x65a: 0x3c47, 0x65b: 0x3c57, 0x65c: 0x3c4f, 0x65d: 0x3c5f,
+ 0x660: 0x49a5, 0x661: 0x49ab, 0x662: 0x4ac5, 0x663: 0x4add,
+ 0x664: 0x4acd, 0x665: 0x4ae5, 0x666: 0x4ad5, 0x667: 0x4aed, 0x668: 0x4939, 0x669: 0x493f,
+ 0x66a: 0x4a35, 0x66b: 0x4a4d, 0x66c: 0x4a3d, 0x66d: 0x4a55, 0x66e: 0x4a45, 0x66f: 0x4a5d,
+ 0x670: 0x49bd, 0x671: 0x49c3, 0x672: 0x3d77, 0x673: 0x3d8f, 0x674: 0x3d7f, 0x675: 0x3d97,
+ 0x676: 0x3d87, 0x677: 0x3d9f, 0x678: 0x4945, 0x679: 0x494b, 0x67a: 0x3c77, 0x67b: 0x3c8f,
+ 0x67c: 0x3c7f, 0x67d: 0x3c97, 0x67e: 0x3c87, 0x67f: 0x3c9f,
// Block 0x1a, offset 0x680
- 0x680: 0x4869, 0x681: 0x486f, 0x682: 0x3e5f, 0x683: 0x3e6f, 0x684: 0x3e67, 0x685: 0x3e77,
- 0x688: 0x47f1, 0x689: 0x47f7, 0x68a: 0x3d5f, 0x68b: 0x3d6f,
- 0x68c: 0x3d67, 0x68d: 0x3d77, 0x690: 0x487b, 0x691: 0x4881,
- 0x692: 0x3e97, 0x693: 0x3eaf, 0x694: 0x3e9f, 0x695: 0x3eb7, 0x696: 0x3ea7, 0x697: 0x3ebf,
- 0x699: 0x47fd, 0x69b: 0x3d7f, 0x69d: 0x3d87,
- 0x69f: 0x3d8f, 0x6a0: 0x4893, 0x6a1: 0x4899, 0x6a2: 0x4995, 0x6a3: 0x49ad,
- 0x6a4: 0x499d, 0x6a5: 0x49b5, 0x6a6: 0x49a5, 0x6a7: 0x49bd, 0x6a8: 0x4803, 0x6a9: 0x4809,
- 0x6aa: 0x4905, 0x6ab: 0x491d, 0x6ac: 0x490d, 0x6ad: 0x4925, 0x6ae: 0x4915, 0x6af: 0x492d,
- 0x6b0: 0x480f, 0x6b1: 0x4335, 0x6b2: 0x36a8, 0x6b3: 0x433b, 0x6b4: 0x4839, 0x6b5: 0x4341,
- 0x6b6: 0x36ba, 0x6b7: 0x4347, 0x6b8: 0x36d8, 0x6b9: 0x434d, 0x6ba: 0x36f0, 0x6bb: 0x4353,
- 0x6bc: 0x4887, 0x6bd: 0x4359,
+ 0x680: 0x49c9, 0x681: 0x49cf, 0x682: 0x3da7, 0x683: 0x3db7, 0x684: 0x3daf, 0x685: 0x3dbf,
+ 0x688: 0x4951, 0x689: 0x4957, 0x68a: 0x3ca7, 0x68b: 0x3cb7,
+ 0x68c: 0x3caf, 0x68d: 0x3cbf, 0x690: 0x49db, 0x691: 0x49e1,
+ 0x692: 0x3ddf, 0x693: 0x3df7, 0x694: 0x3de7, 0x695: 0x3dff, 0x696: 0x3def, 0x697: 0x3e07,
+ 0x699: 0x495d, 0x69b: 0x3cc7, 0x69d: 0x3ccf,
+ 0x69f: 0x3cd7, 0x6a0: 0x49f3, 0x6a1: 0x49f9, 0x6a2: 0x4af5, 0x6a3: 0x4b0d,
+ 0x6a4: 0x4afd, 0x6a5: 0x4b15, 0x6a6: 0x4b05, 0x6a7: 0x4b1d, 0x6a8: 0x4963, 0x6a9: 0x4969,
+ 0x6aa: 0x4a65, 0x6ab: 0x4a7d, 0x6ac: 0x4a6d, 0x6ad: 0x4a85, 0x6ae: 0x4a75, 0x6af: 0x4a8d,
+ 0x6b0: 0x496f, 0x6b1: 0x441d, 0x6b2: 0x35f0, 0x6b3: 0x4423, 0x6b4: 0x4999, 0x6b5: 0x4429,
+ 0x6b6: 0x3602, 0x6b7: 0x442f, 0x6b8: 0x3620, 0x6b9: 0x4435, 0x6ba: 0x3638, 0x6bb: 0x443b,
+ 0x6bc: 0x49e7, 0x6bd: 0x4441,
// Block 0x1b, offset 0x6c0
- 0x6c0: 0x3db7, 0x6c1: 0x3dbf, 0x6c2: 0x419b, 0x6c3: 0x41b9, 0x6c4: 0x41a5, 0x6c5: 0x41c3,
- 0x6c6: 0x41af, 0x6c7: 0x41cd, 0x6c8: 0x3cef, 0x6c9: 0x3cf7, 0x6ca: 0x40e7, 0x6cb: 0x4105,
- 0x6cc: 0x40f1, 0x6cd: 0x410f, 0x6ce: 0x40fb, 0x6cf: 0x4119, 0x6d0: 0x3dff, 0x6d1: 0x3e07,
- 0x6d2: 0x41d7, 0x6d3: 0x41f5, 0x6d4: 0x41e1, 0x6d5: 0x41ff, 0x6d6: 0x41eb, 0x6d7: 0x4209,
- 0x6d8: 0x3d1f, 0x6d9: 0x3d27, 0x6da: 0x4123, 0x6db: 0x4141, 0x6dc: 0x412d, 0x6dd: 0x414b,
- 0x6de: 0x4137, 0x6df: 0x4155, 0x6e0: 0x3ed7, 0x6e1: 0x3edf, 0x6e2: 0x4213, 0x6e3: 0x4231,
- 0x6e4: 0x421d, 0x6e5: 0x423b, 0x6e6: 0x4227, 0x6e7: 0x4245, 0x6e8: 0x3d97, 0x6e9: 0x3d9f,
- 0x6ea: 0x415f, 0x6eb: 0x417d, 0x6ec: 0x4169, 0x6ed: 0x4187, 0x6ee: 0x4173, 0x6ef: 0x4191,
- 0x6f0: 0x369c, 0x6f1: 0x3696, 0x6f2: 0x3da7, 0x6f3: 0x36a2, 0x6f4: 0x3daf,
- 0x6f6: 0x4827, 0x6f7: 0x3dc7, 0x6f8: 0x360c, 0x6f9: 0x3606, 0x6fa: 0x35fa, 0x6fb: 0x4305,
- 0x6fc: 0x3612, 0x6fd: 0x429e, 0x6fe: 0x01d6, 0x6ff: 0x429e,
+ 0x6c0: 0x3cff, 0x6c1: 0x3d07, 0x6c2: 0x41d3, 0x6c3: 0x41f1, 0x6c4: 0x41dd, 0x6c5: 0x41fb,
+ 0x6c6: 0x41e7, 0x6c7: 0x4205, 0x6c8: 0x3c37, 0x6c9: 0x3c3f, 0x6ca: 0x411f, 0x6cb: 0x413d,
+ 0x6cc: 0x4129, 0x6cd: 0x4147, 0x6ce: 0x4133, 0x6cf: 0x4151, 0x6d0: 0x3d47, 0x6d1: 0x3d4f,
+ 0x6d2: 0x420f, 0x6d3: 0x422d, 0x6d4: 0x4219, 0x6d5: 0x4237, 0x6d6: 0x4223, 0x6d7: 0x4241,
+ 0x6d8: 0x3c67, 0x6d9: 0x3c6f, 0x6da: 0x415b, 0x6db: 0x4179, 0x6dc: 0x4165, 0x6dd: 0x4183,
+ 0x6de: 0x416f, 0x6df: 0x418d, 0x6e0: 0x3e1f, 0x6e1: 0x3e27, 0x6e2: 0x424b, 0x6e3: 0x4269,
+ 0x6e4: 0x4255, 0x6e5: 0x4273, 0x6e6: 0x425f, 0x6e7: 0x427d, 0x6e8: 0x3cdf, 0x6e9: 0x3ce7,
+ 0x6ea: 0x4197, 0x6eb: 0x41b5, 0x6ec: 0x41a1, 0x6ed: 0x41bf, 0x6ee: 0x41ab, 0x6ef: 0x41c9,
+ 0x6f0: 0x35e4, 0x6f1: 0x35de, 0x6f2: 0x3cef, 0x6f3: 0x35ea, 0x6f4: 0x3cf7,
+ 0x6f6: 0x4987, 0x6f7: 0x3d0f, 0x6f8: 0x3554, 0x6f9: 0x354e, 0x6fa: 0x3542, 0x6fb: 0x43ed,
+ 0x6fc: 0x355a, 0x6fd: 0x4386, 0x6fe: 0x0257, 0x6ff: 0x4386,
// Block 0x1c, offset 0x700
- 0x700: 0x42b7, 0x701: 0x4499, 0x702: 0x3def, 0x703: 0x36b4, 0x704: 0x3df7,
- 0x706: 0x4851, 0x707: 0x3e0f, 0x708: 0x3618, 0x709: 0x430b, 0x70a: 0x3624, 0x70b: 0x4311,
- 0x70c: 0x3630, 0x70d: 0x44a0, 0x70e: 0x44a7, 0x70f: 0x44ae, 0x710: 0x36cc, 0x711: 0x36c6,
- 0x712: 0x3e17, 0x713: 0x44fb, 0x716: 0x36d2, 0x717: 0x3e27,
- 0x718: 0x3648, 0x719: 0x3642, 0x71a: 0x3636, 0x71b: 0x4317, 0x71d: 0x44b5,
- 0x71e: 0x44bc, 0x71f: 0x44c3, 0x720: 0x3702, 0x721: 0x36fc, 0x722: 0x3e7f, 0x723: 0x4503,
- 0x724: 0x36e4, 0x725: 0x36ea, 0x726: 0x3708, 0x727: 0x3e8f, 0x728: 0x3678, 0x729: 0x3672,
- 0x72a: 0x3666, 0x72b: 0x4323, 0x72c: 0x3660, 0x72d: 0x448b, 0x72e: 0x4492, 0x72f: 0x0081,
- 0x732: 0x3ec7, 0x733: 0x370e, 0x734: 0x3ecf,
- 0x736: 0x489f, 0x737: 0x3ee7, 0x738: 0x3654, 0x739: 0x431d, 0x73a: 0x3684, 0x73b: 0x432f,
- 0x73c: 0x3690, 0x73d: 0x4271, 0x73e: 0x42a3,
+ 0x700: 0x439f, 0x701: 0x4581, 0x702: 0x3d37, 0x703: 0x35fc, 0x704: 0x3d3f,
+ 0x706: 0x49b1, 0x707: 0x3d57, 0x708: 0x3560, 0x709: 0x43f3, 0x70a: 0x356c, 0x70b: 0x43f9,
+ 0x70c: 0x3578, 0x70d: 0x4588, 0x70e: 0x458f, 0x70f: 0x4596, 0x710: 0x3614, 0x711: 0x360e,
+ 0x712: 0x3d5f, 0x713: 0x45e3, 0x716: 0x361a, 0x717: 0x3d6f,
+ 0x718: 0x3590, 0x719: 0x358a, 0x71a: 0x357e, 0x71b: 0x43ff, 0x71d: 0x459d,
+ 0x71e: 0x45a4, 0x71f: 0x45ab, 0x720: 0x364a, 0x721: 0x3644, 0x722: 0x3dc7, 0x723: 0x45eb,
+ 0x724: 0x362c, 0x725: 0x3632, 0x726: 0x3650, 0x727: 0x3dd7, 0x728: 0x35c0, 0x729: 0x35ba,
+ 0x72a: 0x35ae, 0x72b: 0x440b, 0x72c: 0x35a8, 0x72d: 0x4573, 0x72e: 0x457a, 0x72f: 0x0081,
+ 0x732: 0x3e0f, 0x733: 0x3656, 0x734: 0x3e17,
+ 0x736: 0x49ff, 0x737: 0x3e2f, 0x738: 0x359c, 0x739: 0x4405, 0x73a: 0x35cc, 0x73b: 0x4417,
+ 0x73c: 0x35d8, 0x73d: 0x4359, 0x73e: 0x438b,
// Block 0x1d, offset 0x740
- 0x740: 0x1bde, 0x741: 0x1be2, 0x742: 0x0047, 0x743: 0x1c5a, 0x745: 0x1bee,
- 0x746: 0x1bf2, 0x747: 0x00e9, 0x749: 0x1c5e, 0x74a: 0x008f, 0x74b: 0x0051,
- 0x74c: 0x0051, 0x74d: 0x0051, 0x74e: 0x0091, 0x74f: 0x00da, 0x750: 0x0053, 0x751: 0x0053,
- 0x752: 0x0059, 0x753: 0x0099, 0x755: 0x005d, 0x756: 0x1993,
+ 0x740: 0x1d08, 0x741: 0x1d0c, 0x742: 0x0047, 0x743: 0x1d84, 0x745: 0x1d18,
+ 0x746: 0x1d1c, 0x747: 0x00ef, 0x749: 0x1d88, 0x74a: 0x008f, 0x74b: 0x0051,
+ 0x74c: 0x0051, 0x74d: 0x0051, 0x74e: 0x0091, 0x74f: 0x00e0, 0x750: 0x0053, 0x751: 0x0053,
+ 0x752: 0x0059, 0x753: 0x0099, 0x755: 0x005d, 0x756: 0x1abd,
0x759: 0x0061, 0x75a: 0x0063, 0x75b: 0x0065, 0x75c: 0x0065, 0x75d: 0x0065,
- 0x760: 0x19a5, 0x761: 0x1bce, 0x762: 0x19ae,
- 0x764: 0x0075, 0x766: 0x01bb, 0x768: 0x0075,
- 0x76a: 0x0057, 0x76b: 0x42e9, 0x76c: 0x0045, 0x76d: 0x0047, 0x76f: 0x008b,
- 0x770: 0x004b, 0x771: 0x004d, 0x773: 0x005b, 0x774: 0x009f, 0x775: 0x0218,
- 0x776: 0x021b, 0x777: 0x021e, 0x778: 0x0221, 0x779: 0x0093, 0x77b: 0x1b9e,
- 0x77c: 0x01eb, 0x77d: 0x01c4, 0x77e: 0x017c, 0x77f: 0x01a3,
+ 0x760: 0x1acf, 0x761: 0x1cf8, 0x762: 0x1ad8,
+ 0x764: 0x0075, 0x766: 0x023c, 0x768: 0x0075,
+ 0x76a: 0x0057, 0x76b: 0x43d1, 0x76c: 0x0045, 0x76d: 0x0047, 0x76f: 0x008b,
+ 0x770: 0x004b, 0x771: 0x004d, 0x773: 0x005b, 0x774: 0x009f, 0x775: 0x0308,
+ 0x776: 0x030b, 0x777: 0x030e, 0x778: 0x0311, 0x779: 0x0093, 0x77b: 0x1cc8,
+ 0x77c: 0x026c, 0x77d: 0x0245, 0x77e: 0x01fd, 0x77f: 0x0224,
// Block 0x1e, offset 0x780
- 0x780: 0x0466, 0x785: 0x0049,
+ 0x780: 0x055a, 0x785: 0x0049,
0x786: 0x0089, 0x787: 0x008b, 0x788: 0x0093, 0x789: 0x0095,
- 0x790: 0x2234, 0x791: 0x2240,
- 0x792: 0x22f4, 0x793: 0x221c, 0x794: 0x22a0, 0x795: 0x2228, 0x796: 0x22a6, 0x797: 0x22be,
- 0x798: 0x22ca, 0x799: 0x222e, 0x79a: 0x22d0, 0x79b: 0x223a, 0x79c: 0x22c4, 0x79d: 0x22d6,
- 0x79e: 0x22dc, 0x79f: 0x1cc2, 0x7a0: 0x0053, 0x7a1: 0x195d, 0x7a2: 0x1baa, 0x7a3: 0x1966,
- 0x7a4: 0x006d, 0x7a5: 0x19b1, 0x7a6: 0x1bd6, 0x7a7: 0x1d4e, 0x7a8: 0x1969, 0x7a9: 0x0071,
- 0x7aa: 0x19bd, 0x7ab: 0x1bda, 0x7ac: 0x0059, 0x7ad: 0x0047, 0x7ae: 0x0049, 0x7af: 0x005b,
- 0x7b0: 0x0093, 0x7b1: 0x19ea, 0x7b2: 0x1c1e, 0x7b3: 0x19f3, 0x7b4: 0x00ad, 0x7b5: 0x1a68,
- 0x7b6: 0x1c52, 0x7b7: 0x1d62, 0x7b8: 0x19f6, 0x7b9: 0x00b1, 0x7ba: 0x1a6b, 0x7bb: 0x1c56,
+ 0x790: 0x235e, 0x791: 0x236a,
+ 0x792: 0x241e, 0x793: 0x2346, 0x794: 0x23ca, 0x795: 0x2352, 0x796: 0x23d0, 0x797: 0x23e8,
+ 0x798: 0x23f4, 0x799: 0x2358, 0x79a: 0x23fa, 0x79b: 0x2364, 0x79c: 0x23ee, 0x79d: 0x2400,
+ 0x79e: 0x2406, 0x79f: 0x1dec, 0x7a0: 0x0053, 0x7a1: 0x1a87, 0x7a2: 0x1cd4, 0x7a3: 0x1a90,
+ 0x7a4: 0x006d, 0x7a5: 0x1adb, 0x7a6: 0x1d00, 0x7a7: 0x1e78, 0x7a8: 0x1a93, 0x7a9: 0x0071,
+ 0x7aa: 0x1ae7, 0x7ab: 0x1d04, 0x7ac: 0x0059, 0x7ad: 0x0047, 0x7ae: 0x0049, 0x7af: 0x005b,
+ 0x7b0: 0x0093, 0x7b1: 0x1b14, 0x7b2: 0x1d48, 0x7b3: 0x1b1d, 0x7b4: 0x00ad, 0x7b5: 0x1b92,
+ 0x7b6: 0x1d7c, 0x7b7: 0x1e8c, 0x7b8: 0x1b20, 0x7b9: 0x00b1, 0x7ba: 0x1b95, 0x7bb: 0x1d80,
0x7bc: 0x0099, 0x7bd: 0x0087, 0x7be: 0x0089, 0x7bf: 0x009b,
// Block 0x1f, offset 0x7c0
- 0x7c1: 0x3c1d, 0x7c3: 0xa000, 0x7c4: 0x3c24, 0x7c5: 0xa000,
- 0x7c7: 0x3c2b, 0x7c8: 0xa000, 0x7c9: 0x3c32,
+ 0x7c1: 0x3b65, 0x7c3: 0xa000, 0x7c4: 0x3b6c, 0x7c5: 0xa000,
+ 0x7c7: 0x3b73, 0x7c8: 0xa000, 0x7c9: 0x3b7a,
0x7cd: 0xa000,
- 0x7e0: 0x2f7c, 0x7e1: 0xa000, 0x7e2: 0x3c40,
+ 0x7e0: 0x2ec4, 0x7e1: 0xa000, 0x7e2: 0x3b88,
0x7e4: 0xa000, 0x7e5: 0xa000,
- 0x7ed: 0x3c39, 0x7ee: 0x2f77, 0x7ef: 0x2f81,
- 0x7f0: 0x3c47, 0x7f1: 0x3c4e, 0x7f2: 0xa000, 0x7f3: 0xa000, 0x7f4: 0x3c55, 0x7f5: 0x3c5c,
- 0x7f6: 0xa000, 0x7f7: 0xa000, 0x7f8: 0x3c63, 0x7f9: 0x3c6a, 0x7fa: 0xa000, 0x7fb: 0xa000,
+ 0x7ed: 0x3b81, 0x7ee: 0x2ebf, 0x7ef: 0x2ec9,
+ 0x7f0: 0x3b8f, 0x7f1: 0x3b96, 0x7f2: 0xa000, 0x7f3: 0xa000, 0x7f4: 0x3b9d, 0x7f5: 0x3ba4,
+ 0x7f6: 0xa000, 0x7f7: 0xa000, 0x7f8: 0x3bab, 0x7f9: 0x3bb2, 0x7fa: 0xa000, 0x7fb: 0xa000,
0x7fc: 0xa000, 0x7fd: 0xa000,
// Block 0x20, offset 0x800
- 0x800: 0x3c71, 0x801: 0x3c78, 0x802: 0xa000, 0x803: 0xa000, 0x804: 0x3c8d, 0x805: 0x3c94,
- 0x806: 0xa000, 0x807: 0xa000, 0x808: 0x3c9b, 0x809: 0x3ca2,
+ 0x800: 0x3bb9, 0x801: 0x3bc0, 0x802: 0xa000, 0x803: 0xa000, 0x804: 0x3bd5, 0x805: 0x3bdc,
+ 0x806: 0xa000, 0x807: 0xa000, 0x808: 0x3be3, 0x809: 0x3bea,
0x811: 0xa000,
0x812: 0xa000,
0x822: 0xa000,
0x828: 0xa000, 0x829: 0xa000,
- 0x82b: 0xa000, 0x82c: 0x3cb7, 0x82d: 0x3cbe, 0x82e: 0x3cc5, 0x82f: 0x3ccc,
+ 0x82b: 0xa000, 0x82c: 0x3bff, 0x82d: 0x3c06, 0x82e: 0x3c0d, 0x82f: 0x3c14,
0x832: 0xa000, 0x833: 0xa000, 0x834: 0xa000, 0x835: 0xa000,
// Block 0x21, offset 0x840
0x860: 0x0023, 0x861: 0x0025, 0x862: 0x0027, 0x863: 0x0029,
- 0x864: 0x002b, 0x865: 0x002d, 0x866: 0x002f, 0x867: 0x0031, 0x868: 0x0033, 0x869: 0x1885,
- 0x86a: 0x1888, 0x86b: 0x188b, 0x86c: 0x188e, 0x86d: 0x1891, 0x86e: 0x1894, 0x86f: 0x1897,
- 0x870: 0x189a, 0x871: 0x189d, 0x872: 0x18a0, 0x873: 0x18a9, 0x874: 0x1a6e, 0x875: 0x1a72,
- 0x876: 0x1a76, 0x877: 0x1a7a, 0x878: 0x1a7e, 0x879: 0x1a82, 0x87a: 0x1a86, 0x87b: 0x1a8a,
- 0x87c: 0x1a8e, 0x87d: 0x1c86, 0x87e: 0x1c8b, 0x87f: 0x1c90,
+ 0x864: 0x002b, 0x865: 0x002d, 0x866: 0x002f, 0x867: 0x0031, 0x868: 0x0033, 0x869: 0x19af,
+ 0x86a: 0x19b2, 0x86b: 0x19b5, 0x86c: 0x19b8, 0x86d: 0x19bb, 0x86e: 0x19be, 0x86f: 0x19c1,
+ 0x870: 0x19c4, 0x871: 0x19c7, 0x872: 0x19ca, 0x873: 0x19d3, 0x874: 0x1b98, 0x875: 0x1b9c,
+ 0x876: 0x1ba0, 0x877: 0x1ba4, 0x878: 0x1ba8, 0x879: 0x1bac, 0x87a: 0x1bb0, 0x87b: 0x1bb4,
+ 0x87c: 0x1bb8, 0x87d: 0x1db0, 0x87e: 0x1db5, 0x87f: 0x1dba,
// Block 0x22, offset 0x880
- 0x880: 0x1c95, 0x881: 0x1c9a, 0x882: 0x1c9f, 0x883: 0x1ca4, 0x884: 0x1ca9, 0x885: 0x1cae,
- 0x886: 0x1cb3, 0x887: 0x1cb8, 0x888: 0x1882, 0x889: 0x18a6, 0x88a: 0x18ca, 0x88b: 0x18ee,
- 0x88c: 0x1912, 0x88d: 0x191b, 0x88e: 0x1921, 0x88f: 0x1927, 0x890: 0x192d, 0x891: 0x1b66,
- 0x892: 0x1b6a, 0x893: 0x1b6e, 0x894: 0x1b72, 0x895: 0x1b76, 0x896: 0x1b7a, 0x897: 0x1b7e,
- 0x898: 0x1b82, 0x899: 0x1b86, 0x89a: 0x1b8a, 0x89b: 0x1b8e, 0x89c: 0x1afa, 0x89d: 0x1afe,
- 0x89e: 0x1b02, 0x89f: 0x1b06, 0x8a0: 0x1b0a, 0x8a1: 0x1b0e, 0x8a2: 0x1b12, 0x8a3: 0x1b16,
- 0x8a4: 0x1b1a, 0x8a5: 0x1b1e, 0x8a6: 0x1b22, 0x8a7: 0x1b26, 0x8a8: 0x1b2a, 0x8a9: 0x1b2e,
- 0x8aa: 0x1b32, 0x8ab: 0x1b36, 0x8ac: 0x1b3a, 0x8ad: 0x1b3e, 0x8ae: 0x1b42, 0x8af: 0x1b46,
- 0x8b0: 0x1b4a, 0x8b1: 0x1b4e, 0x8b2: 0x1b52, 0x8b3: 0x1b56, 0x8b4: 0x1b5a, 0x8b5: 0x1b5e,
+ 0x880: 0x1dbf, 0x881: 0x1dc4, 0x882: 0x1dc9, 0x883: 0x1dce, 0x884: 0x1dd3, 0x885: 0x1dd8,
+ 0x886: 0x1ddd, 0x887: 0x1de2, 0x888: 0x19ac, 0x889: 0x19d0, 0x88a: 0x19f4, 0x88b: 0x1a18,
+ 0x88c: 0x1a3c, 0x88d: 0x1a45, 0x88e: 0x1a4b, 0x88f: 0x1a51, 0x890: 0x1a57, 0x891: 0x1c90,
+ 0x892: 0x1c94, 0x893: 0x1c98, 0x894: 0x1c9c, 0x895: 0x1ca0, 0x896: 0x1ca4, 0x897: 0x1ca8,
+ 0x898: 0x1cac, 0x899: 0x1cb0, 0x89a: 0x1cb4, 0x89b: 0x1cb8, 0x89c: 0x1c24, 0x89d: 0x1c28,
+ 0x89e: 0x1c2c, 0x89f: 0x1c30, 0x8a0: 0x1c34, 0x8a1: 0x1c38, 0x8a2: 0x1c3c, 0x8a3: 0x1c40,
+ 0x8a4: 0x1c44, 0x8a5: 0x1c48, 0x8a6: 0x1c4c, 0x8a7: 0x1c50, 0x8a8: 0x1c54, 0x8a9: 0x1c58,
+ 0x8aa: 0x1c5c, 0x8ab: 0x1c60, 0x8ac: 0x1c64, 0x8ad: 0x1c68, 0x8ae: 0x1c6c, 0x8af: 0x1c70,
+ 0x8b0: 0x1c74, 0x8b1: 0x1c78, 0x8b2: 0x1c7c, 0x8b3: 0x1c80, 0x8b4: 0x1c84, 0x8b5: 0x1c88,
0x8b6: 0x0043, 0x8b7: 0x0045, 0x8b8: 0x0047, 0x8b9: 0x0049, 0x8ba: 0x004b, 0x8bb: 0x004d,
0x8bc: 0x004f, 0x8bd: 0x0051, 0x8be: 0x0053, 0x8bf: 0x0055,
// Block 0x23, offset 0x8c0
- 0x8c0: 0x06c2, 0x8c1: 0x06e6, 0x8c2: 0x06f2, 0x8c3: 0x0702, 0x8c4: 0x070a, 0x8c5: 0x0716,
- 0x8c6: 0x071e, 0x8c7: 0x0726, 0x8c8: 0x0732, 0x8c9: 0x0786, 0x8ca: 0x079e, 0x8cb: 0x07ae,
- 0x8cc: 0x07be, 0x8cd: 0x07ce, 0x8ce: 0x07de, 0x8cf: 0x07fe, 0x8d0: 0x0802, 0x8d1: 0x0806,
- 0x8d2: 0x083a, 0x8d3: 0x0862, 0x8d4: 0x0872, 0x8d5: 0x087a, 0x8d6: 0x087e, 0x8d7: 0x088a,
- 0x8d8: 0x08a6, 0x8d9: 0x08aa, 0x8da: 0x08c2, 0x8db: 0x08c6, 0x8dc: 0x08ce, 0x8dd: 0x08de,
- 0x8de: 0x097a, 0x8df: 0x098e, 0x8e0: 0x09ce, 0x8e1: 0x09e2, 0x8e2: 0x09ea, 0x8e3: 0x09ee,
- 0x8e4: 0x09fe, 0x8e5: 0x0a1a, 0x8e6: 0x0a46, 0x8e7: 0x0a52, 0x8e8: 0x0a72, 0x8e9: 0x0a7e,
- 0x8ea: 0x0a82, 0x8eb: 0x0a86, 0x8ec: 0x0a9e, 0x8ed: 0x0aa2, 0x8ee: 0x0ace, 0x8ef: 0x0ada,
- 0x8f0: 0x0ae2, 0x8f1: 0x0aea, 0x8f2: 0x0afa, 0x8f3: 0x0b02, 0x8f4: 0x0b0a, 0x8f5: 0x0b36,
- 0x8f6: 0x0b3a, 0x8f7: 0x0b42, 0x8f8: 0x0b46, 0x8f9: 0x0b4e, 0x8fa: 0x0b56, 0x8fb: 0x0b66,
- 0x8fc: 0x0b82, 0x8fd: 0x0bfa, 0x8fe: 0x0c0e, 0x8ff: 0x0c12,
+ 0x8c0: 0x07ba, 0x8c1: 0x07de, 0x8c2: 0x07ea, 0x8c3: 0x07fa, 0x8c4: 0x0802, 0x8c5: 0x080e,
+ 0x8c6: 0x0816, 0x8c7: 0x081e, 0x8c8: 0x082a, 0x8c9: 0x087e, 0x8ca: 0x0896, 0x8cb: 0x08a6,
+ 0x8cc: 0x08b6, 0x8cd: 0x08c6, 0x8ce: 0x08d6, 0x8cf: 0x08f6, 0x8d0: 0x08fa, 0x8d1: 0x08fe,
+ 0x8d2: 0x0932, 0x8d3: 0x095a, 0x8d4: 0x096a, 0x8d5: 0x0972, 0x8d6: 0x0976, 0x8d7: 0x0982,
+ 0x8d8: 0x099e, 0x8d9: 0x09a2, 0x8da: 0x09ba, 0x8db: 0x09be, 0x8dc: 0x09c6, 0x8dd: 0x09d6,
+ 0x8de: 0x0a72, 0x8df: 0x0a86, 0x8e0: 0x0ac6, 0x8e1: 0x0ada, 0x8e2: 0x0ae2, 0x8e3: 0x0ae6,
+ 0x8e4: 0x0af6, 0x8e5: 0x0b12, 0x8e6: 0x0b3e, 0x8e7: 0x0b4a, 0x8e8: 0x0b6a, 0x8e9: 0x0b76,
+ 0x8ea: 0x0b7a, 0x8eb: 0x0b7e, 0x8ec: 0x0b96, 0x8ed: 0x0b9a, 0x8ee: 0x0bc6, 0x8ef: 0x0bd2,
+ 0x8f0: 0x0bda, 0x8f1: 0x0be2, 0x8f2: 0x0bf2, 0x8f3: 0x0bfa, 0x8f4: 0x0c02, 0x8f5: 0x0c2e,
+ 0x8f6: 0x0c32, 0x8f7: 0x0c3a, 0x8f8: 0x0c3e, 0x8f9: 0x0c46, 0x8fa: 0x0c4e, 0x8fb: 0x0c5e,
+ 0x8fc: 0x0c7a, 0x8fd: 0x0cf2, 0x8fe: 0x0d06, 0x8ff: 0x0d0a,
// Block 0x24, offset 0x900
- 0x900: 0x0c92, 0x901: 0x0c96, 0x902: 0x0caa, 0x903: 0x0cae, 0x904: 0x0cb6, 0x905: 0x0cbe,
- 0x906: 0x0cc6, 0x907: 0x0cd2, 0x908: 0x0cfa, 0x909: 0x0d0a, 0x90a: 0x0d1e, 0x90b: 0x0d8e,
- 0x90c: 0x0d9a, 0x90d: 0x0daa, 0x90e: 0x0db6, 0x90f: 0x0dc2, 0x910: 0x0dca, 0x911: 0x0dce,
- 0x912: 0x0dd2, 0x913: 0x0dd6, 0x914: 0x0dda, 0x915: 0x0e92, 0x916: 0x0eda, 0x917: 0x0ee6,
- 0x918: 0x0eea, 0x919: 0x0eee, 0x91a: 0x0ef2, 0x91b: 0x0efa, 0x91c: 0x0efe, 0x91d: 0x0f12,
- 0x91e: 0x0f2e, 0x91f: 0x0f36, 0x920: 0x0f76, 0x921: 0x0f7a, 0x922: 0x0f82, 0x923: 0x0f86,
- 0x924: 0x0f8e, 0x925: 0x0f92, 0x926: 0x0fb6, 0x927: 0x0fba, 0x928: 0x0fd6, 0x929: 0x0fda,
- 0x92a: 0x0fde, 0x92b: 0x0fe2, 0x92c: 0x0ff6, 0x92d: 0x101a, 0x92e: 0x101e, 0x92f: 0x1022,
- 0x930: 0x1046, 0x931: 0x1086, 0x932: 0x108a, 0x933: 0x10aa, 0x934: 0x10ba, 0x935: 0x10c2,
- 0x936: 0x10e2, 0x937: 0x1106, 0x938: 0x114a, 0x939: 0x1152, 0x93a: 0x1166, 0x93b: 0x1172,
- 0x93c: 0x117a, 0x93d: 0x1182, 0x93e: 0x1186, 0x93f: 0x118a,
+ 0x900: 0x0d8a, 0x901: 0x0d8e, 0x902: 0x0da2, 0x903: 0x0da6, 0x904: 0x0dae, 0x905: 0x0db6,
+ 0x906: 0x0dbe, 0x907: 0x0dca, 0x908: 0x0df2, 0x909: 0x0e02, 0x90a: 0x0e16, 0x90b: 0x0e86,
+ 0x90c: 0x0e92, 0x90d: 0x0ea2, 0x90e: 0x0eae, 0x90f: 0x0eba, 0x910: 0x0ec2, 0x911: 0x0ec6,
+ 0x912: 0x0eca, 0x913: 0x0ece, 0x914: 0x0ed2, 0x915: 0x0f8a, 0x916: 0x0fd2, 0x917: 0x0fde,
+ 0x918: 0x0fe2, 0x919: 0x0fe6, 0x91a: 0x0fea, 0x91b: 0x0ff2, 0x91c: 0x0ff6, 0x91d: 0x100a,
+ 0x91e: 0x1026, 0x91f: 0x102e, 0x920: 0x106e, 0x921: 0x1072, 0x922: 0x107a, 0x923: 0x107e,
+ 0x924: 0x1086, 0x925: 0x108a, 0x926: 0x10ae, 0x927: 0x10b2, 0x928: 0x10ce, 0x929: 0x10d2,
+ 0x92a: 0x10d6, 0x92b: 0x10da, 0x92c: 0x10ee, 0x92d: 0x1112, 0x92e: 0x1116, 0x92f: 0x111a,
+ 0x930: 0x113e, 0x931: 0x117e, 0x932: 0x1182, 0x933: 0x11a2, 0x934: 0x11b2, 0x935: 0x11ba,
+ 0x936: 0x11da, 0x937: 0x11fe, 0x938: 0x1242, 0x939: 0x124a, 0x93a: 0x125e, 0x93b: 0x126a,
+ 0x93c: 0x1272, 0x93d: 0x127a, 0x93e: 0x127e, 0x93f: 0x1282,
// Block 0x25, offset 0x940
- 0x940: 0x11a2, 0x941: 0x11a6, 0x942: 0x11c2, 0x943: 0x11ca, 0x944: 0x11d2, 0x945: 0x11d6,
- 0x946: 0x11e2, 0x947: 0x11ea, 0x948: 0x11ee, 0x949: 0x11f2, 0x94a: 0x11fa, 0x94b: 0x11fe,
- 0x94c: 0x129e, 0x94d: 0x12b2, 0x94e: 0x12e6, 0x94f: 0x12ea, 0x950: 0x12f2, 0x951: 0x131e,
- 0x952: 0x1326, 0x953: 0x132e, 0x954: 0x1336, 0x955: 0x1372, 0x956: 0x1376, 0x957: 0x137e,
- 0x958: 0x1382, 0x959: 0x1386, 0x95a: 0x13b2, 0x95b: 0x13b6, 0x95c: 0x13be, 0x95d: 0x13d2,
- 0x95e: 0x13d6, 0x95f: 0x13f2, 0x960: 0x13fa, 0x961: 0x13fe, 0x962: 0x1422, 0x963: 0x1442,
- 0x964: 0x1456, 0x965: 0x145a, 0x966: 0x1462, 0x967: 0x148e, 0x968: 0x1492, 0x969: 0x14a2,
- 0x96a: 0x14c6, 0x96b: 0x14d2, 0x96c: 0x14e2, 0x96d: 0x14fa, 0x96e: 0x1502, 0x96f: 0x1506,
- 0x970: 0x150a, 0x971: 0x150e, 0x972: 0x151a, 0x973: 0x151e, 0x974: 0x1526, 0x975: 0x1542,
- 0x976: 0x1546, 0x977: 0x154a, 0x978: 0x1562, 0x979: 0x1566, 0x97a: 0x156e, 0x97b: 0x1582,
- 0x97c: 0x1586, 0x97d: 0x158a, 0x97e: 0x1592, 0x97f: 0x1596,
+ 0x940: 0x129a, 0x941: 0x129e, 0x942: 0x12ba, 0x943: 0x12c2, 0x944: 0x12ca, 0x945: 0x12ce,
+ 0x946: 0x12da, 0x947: 0x12e2, 0x948: 0x12e6, 0x949: 0x12ea, 0x94a: 0x12f2, 0x94b: 0x12f6,
+ 0x94c: 0x1396, 0x94d: 0x13aa, 0x94e: 0x13de, 0x94f: 0x13e2, 0x950: 0x13ea, 0x951: 0x1416,
+ 0x952: 0x141e, 0x953: 0x1426, 0x954: 0x142e, 0x955: 0x146a, 0x956: 0x146e, 0x957: 0x1476,
+ 0x958: 0x147a, 0x959: 0x147e, 0x95a: 0x14aa, 0x95b: 0x14ae, 0x95c: 0x14b6, 0x95d: 0x14ca,
+ 0x95e: 0x14ce, 0x95f: 0x14ea, 0x960: 0x14f2, 0x961: 0x14f6, 0x962: 0x151a, 0x963: 0x153a,
+ 0x964: 0x154e, 0x965: 0x1552, 0x966: 0x155a, 0x967: 0x1586, 0x968: 0x158a, 0x969: 0x159a,
+ 0x96a: 0x15be, 0x96b: 0x15ca, 0x96c: 0x15da, 0x96d: 0x15f2, 0x96e: 0x15fa, 0x96f: 0x15fe,
+ 0x970: 0x1602, 0x971: 0x1606, 0x972: 0x1612, 0x973: 0x1616, 0x974: 0x161e, 0x975: 0x163a,
+ 0x976: 0x163e, 0x977: 0x1642, 0x978: 0x165a, 0x979: 0x165e, 0x97a: 0x1666, 0x97b: 0x167a,
+ 0x97c: 0x167e, 0x97d: 0x1682, 0x97e: 0x168a, 0x97f: 0x168e,
// Block 0x26, offset 0x980
0x986: 0xa000, 0x98b: 0xa000,
- 0x98c: 0x3f1f, 0x98d: 0xa000, 0x98e: 0x3f27, 0x98f: 0xa000, 0x990: 0x3f2f, 0x991: 0xa000,
- 0x992: 0x3f37, 0x993: 0xa000, 0x994: 0x3f3f, 0x995: 0xa000, 0x996: 0x3f47, 0x997: 0xa000,
- 0x998: 0x3f4f, 0x999: 0xa000, 0x99a: 0x3f57, 0x99b: 0xa000, 0x99c: 0x3f5f, 0x99d: 0xa000,
- 0x99e: 0x3f67, 0x99f: 0xa000, 0x9a0: 0x3f6f, 0x9a1: 0xa000, 0x9a2: 0x3f77,
- 0x9a4: 0xa000, 0x9a5: 0x3f7f, 0x9a6: 0xa000, 0x9a7: 0x3f87, 0x9a8: 0xa000, 0x9a9: 0x3f8f,
+ 0x98c: 0x3f47, 0x98d: 0xa000, 0x98e: 0x3f4f, 0x98f: 0xa000, 0x990: 0x3f57, 0x991: 0xa000,
+ 0x992: 0x3f5f, 0x993: 0xa000, 0x994: 0x3f67, 0x995: 0xa000, 0x996: 0x3f6f, 0x997: 0xa000,
+ 0x998: 0x3f77, 0x999: 0xa000, 0x99a: 0x3f7f, 0x99b: 0xa000, 0x99c: 0x3f87, 0x99d: 0xa000,
+ 0x99e: 0x3f8f, 0x99f: 0xa000, 0x9a0: 0x3f97, 0x9a1: 0xa000, 0x9a2: 0x3f9f,
+ 0x9a4: 0xa000, 0x9a5: 0x3fa7, 0x9a6: 0xa000, 0x9a7: 0x3faf, 0x9a8: 0xa000, 0x9a9: 0x3fb7,
0x9af: 0xa000,
- 0x9b0: 0x3f97, 0x9b1: 0x3f9f, 0x9b2: 0xa000, 0x9b3: 0x3fa7, 0x9b4: 0x3faf, 0x9b5: 0xa000,
- 0x9b6: 0x3fb7, 0x9b7: 0x3fbf, 0x9b8: 0xa000, 0x9b9: 0x3fc7, 0x9ba: 0x3fcf, 0x9bb: 0xa000,
- 0x9bc: 0x3fd7, 0x9bd: 0x3fdf,
+ 0x9b0: 0x3fbf, 0x9b1: 0x3fc7, 0x9b2: 0xa000, 0x9b3: 0x3fcf, 0x9b4: 0x3fd7, 0x9b5: 0xa000,
+ 0x9b6: 0x3fdf, 0x9b7: 0x3fe7, 0x9b8: 0xa000, 0x9b9: 0x3fef, 0x9ba: 0x3ff7, 0x9bb: 0xa000,
+ 0x9bc: 0x3fff, 0x9bd: 0x4007,
// Block 0x27, offset 0x9c0
- 0x9d4: 0x3f17,
- 0x9d9: 0x9904, 0x9da: 0x9904, 0x9db: 0x42f3, 0x9dc: 0x42f9, 0x9dd: 0xa000,
- 0x9de: 0x3fe7, 0x9df: 0x26ba,
+ 0x9d4: 0x3f3f,
+ 0x9d9: 0x9904, 0x9da: 0x9904, 0x9db: 0x43db, 0x9dc: 0x43e1, 0x9dd: 0xa000,
+ 0x9de: 0x400f, 0x9df: 0x27e4,
0x9e6: 0xa000,
- 0x9eb: 0xa000, 0x9ec: 0x3ff7, 0x9ed: 0xa000, 0x9ee: 0x3fff, 0x9ef: 0xa000,
- 0x9f0: 0x4007, 0x9f1: 0xa000, 0x9f2: 0x400f, 0x9f3: 0xa000, 0x9f4: 0x4017, 0x9f5: 0xa000,
- 0x9f6: 0x401f, 0x9f7: 0xa000, 0x9f8: 0x4027, 0x9f9: 0xa000, 0x9fa: 0x402f, 0x9fb: 0xa000,
- 0x9fc: 0x4037, 0x9fd: 0xa000, 0x9fe: 0x403f, 0x9ff: 0xa000,
+ 0x9eb: 0xa000, 0x9ec: 0x401f, 0x9ed: 0xa000, 0x9ee: 0x4027, 0x9ef: 0xa000,
+ 0x9f0: 0x402f, 0x9f1: 0xa000, 0x9f2: 0x4037, 0x9f3: 0xa000, 0x9f4: 0x403f, 0x9f5: 0xa000,
+ 0x9f6: 0x4047, 0x9f7: 0xa000, 0x9f8: 0x404f, 0x9f9: 0xa000, 0x9fa: 0x4057, 0x9fb: 0xa000,
+ 0x9fc: 0x405f, 0x9fd: 0xa000, 0x9fe: 0x4067, 0x9ff: 0xa000,
// Block 0x28, offset 0xa00
- 0xa00: 0x4047, 0xa01: 0xa000, 0xa02: 0x404f, 0xa04: 0xa000, 0xa05: 0x4057,
- 0xa06: 0xa000, 0xa07: 0x405f, 0xa08: 0xa000, 0xa09: 0x4067,
- 0xa0f: 0xa000, 0xa10: 0x406f, 0xa11: 0x4077,
- 0xa12: 0xa000, 0xa13: 0x407f, 0xa14: 0x4087, 0xa15: 0xa000, 0xa16: 0x408f, 0xa17: 0x4097,
- 0xa18: 0xa000, 0xa19: 0x409f, 0xa1a: 0x40a7, 0xa1b: 0xa000, 0xa1c: 0x40af, 0xa1d: 0x40b7,
+ 0xa00: 0x406f, 0xa01: 0xa000, 0xa02: 0x4077, 0xa04: 0xa000, 0xa05: 0x407f,
+ 0xa06: 0xa000, 0xa07: 0x4087, 0xa08: 0xa000, 0xa09: 0x408f,
+ 0xa0f: 0xa000, 0xa10: 0x4097, 0xa11: 0x409f,
+ 0xa12: 0xa000, 0xa13: 0x40a7, 0xa14: 0x40af, 0xa15: 0xa000, 0xa16: 0x40b7, 0xa17: 0x40bf,
+ 0xa18: 0xa000, 0xa19: 0x40c7, 0xa1a: 0x40cf, 0xa1b: 0xa000, 0xa1c: 0x40d7, 0xa1d: 0x40df,
0xa2f: 0xa000,
- 0xa30: 0xa000, 0xa31: 0xa000, 0xa32: 0xa000, 0xa34: 0x3fef,
- 0xa37: 0x40bf, 0xa38: 0x40c7, 0xa39: 0x40cf, 0xa3a: 0x40d7,
- 0xa3d: 0xa000, 0xa3e: 0x40df, 0xa3f: 0x26cf,
+ 0xa30: 0xa000, 0xa31: 0xa000, 0xa32: 0xa000, 0xa34: 0x4017,
+ 0xa37: 0x40e7, 0xa38: 0x40ef, 0xa39: 0x40f7, 0xa3a: 0x40ff,
+ 0xa3d: 0xa000, 0xa3e: 0x4107, 0xa3f: 0x27f9,
// Block 0x29, offset 0xa40
- 0xa40: 0x036a, 0xa41: 0x032e, 0xa42: 0x0332, 0xa43: 0x0336, 0xa44: 0x037e, 0xa45: 0x033a,
- 0xa46: 0x033e, 0xa47: 0x0342, 0xa48: 0x0346, 0xa49: 0x034a, 0xa4a: 0x034e, 0xa4b: 0x0352,
- 0xa4c: 0x0356, 0xa4d: 0x035a, 0xa4e: 0x035e, 0xa4f: 0x49d4, 0xa50: 0x49da, 0xa51: 0x49e0,
- 0xa52: 0x49e6, 0xa53: 0x49ec, 0xa54: 0x49f2, 0xa55: 0x49f8, 0xa56: 0x49fe, 0xa57: 0x4a04,
- 0xa58: 0x4a0a, 0xa59: 0x4a10, 0xa5a: 0x4a16, 0xa5b: 0x4a1c, 0xa5c: 0x4a22, 0xa5d: 0x4a28,
- 0xa5e: 0x4a2e, 0xa5f: 0x4a34, 0xa60: 0x4a3a, 0xa61: 0x4a40, 0xa62: 0x4a46, 0xa63: 0x4a4c,
- 0xa64: 0x03c6, 0xa65: 0x0362, 0xa66: 0x0366, 0xa67: 0x03ea, 0xa68: 0x03ee, 0xa69: 0x03f2,
- 0xa6a: 0x03f6, 0xa6b: 0x03fa, 0xa6c: 0x03fe, 0xa6d: 0x0402, 0xa6e: 0x036e, 0xa6f: 0x0406,
- 0xa70: 0x040a, 0xa71: 0x0372, 0xa72: 0x0376, 0xa73: 0x037a, 0xa74: 0x0382, 0xa75: 0x0386,
- 0xa76: 0x038a, 0xa77: 0x038e, 0xa78: 0x0392, 0xa79: 0x0396, 0xa7a: 0x039a, 0xa7b: 0x039e,
- 0xa7c: 0x03a2, 0xa7d: 0x03a6, 0xa7e: 0x03aa, 0xa7f: 0x03ae,
+ 0xa40: 0x045a, 0xa41: 0x041e, 0xa42: 0x0422, 0xa43: 0x0426, 0xa44: 0x046e, 0xa45: 0x042a,
+ 0xa46: 0x042e, 0xa47: 0x0432, 0xa48: 0x0436, 0xa49: 0x043a, 0xa4a: 0x043e, 0xa4b: 0x0442,
+ 0xa4c: 0x0446, 0xa4d: 0x044a, 0xa4e: 0x044e, 0xa4f: 0x4b4e, 0xa50: 0x4b54, 0xa51: 0x4b5a,
+ 0xa52: 0x4b60, 0xa53: 0x4b66, 0xa54: 0x4b6c, 0xa55: 0x4b72, 0xa56: 0x4b78, 0xa57: 0x4b7e,
+ 0xa58: 0x4b84, 0xa59: 0x4b8a, 0xa5a: 0x4b90, 0xa5b: 0x4b96, 0xa5c: 0x4b9c, 0xa5d: 0x4ba2,
+ 0xa5e: 0x4ba8, 0xa5f: 0x4bae, 0xa60: 0x4bb4, 0xa61: 0x4bba, 0xa62: 0x4bc0, 0xa63: 0x4bc6,
+ 0xa64: 0x04b6, 0xa65: 0x0452, 0xa66: 0x0456, 0xa67: 0x04da, 0xa68: 0x04de, 0xa69: 0x04e2,
+ 0xa6a: 0x04e6, 0xa6b: 0x04ea, 0xa6c: 0x04ee, 0xa6d: 0x04f2, 0xa6e: 0x045e, 0xa6f: 0x04f6,
+ 0xa70: 0x04fa, 0xa71: 0x0462, 0xa72: 0x0466, 0xa73: 0x046a, 0xa74: 0x0472, 0xa75: 0x0476,
+ 0xa76: 0x047a, 0xa77: 0x047e, 0xa78: 0x0482, 0xa79: 0x0486, 0xa7a: 0x048a, 0xa7b: 0x048e,
+ 0xa7c: 0x0492, 0xa7d: 0x0496, 0xa7e: 0x049a, 0xa7f: 0x049e,
// Block 0x2a, offset 0xa80
- 0xa80: 0x03b2, 0xa81: 0x03b6, 0xa82: 0x040e, 0xa83: 0x0412, 0xa84: 0x03ba, 0xa85: 0x03be,
- 0xa86: 0x03c2, 0xa87: 0x03ca, 0xa88: 0x03ce, 0xa89: 0x03d2, 0xa8a: 0x03d6, 0xa8b: 0x03da,
- 0xa8c: 0x03de, 0xa8d: 0x03e2, 0xa8e: 0x03e6,
- 0xa92: 0x06c2, 0xa93: 0x071e, 0xa94: 0x06ce, 0xa95: 0x097e, 0xa96: 0x06d2, 0xa97: 0x06ea,
- 0xa98: 0x06d6, 0xa99: 0x0f96, 0xa9a: 0x070a, 0xa9b: 0x06de, 0xa9c: 0x06c6, 0xa9d: 0x0a02,
- 0xa9e: 0x0992, 0xa9f: 0x0732,
+ 0xa80: 0x04a2, 0xa81: 0x04a6, 0xa82: 0x04fe, 0xa83: 0x0502, 0xa84: 0x04aa, 0xa85: 0x04ae,
+ 0xa86: 0x04b2, 0xa87: 0x04ba, 0xa88: 0x04be, 0xa89: 0x04c2, 0xa8a: 0x04c6, 0xa8b: 0x04ca,
+ 0xa8c: 0x04ce, 0xa8d: 0x04d2, 0xa8e: 0x04d6,
+ 0xa92: 0x07ba, 0xa93: 0x0816, 0xa94: 0x07c6, 0xa95: 0x0a76, 0xa96: 0x07ca, 0xa97: 0x07e2,
+ 0xa98: 0x07ce, 0xa99: 0x108e, 0xa9a: 0x0802, 0xa9b: 0x07d6, 0xa9c: 0x07be, 0xa9d: 0x0afa,
+ 0xa9e: 0x0a8a, 0xa9f: 0x082a,
// Block 0x2b, offset 0xac0
- 0xac0: 0x205a, 0xac1: 0x2060, 0xac2: 0x2066, 0xac3: 0x206c, 0xac4: 0x2072, 0xac5: 0x2078,
- 0xac6: 0x207e, 0xac7: 0x2084, 0xac8: 0x208a, 0xac9: 0x2090, 0xaca: 0x2096, 0xacb: 0x209c,
- 0xacc: 0x20a2, 0xacd: 0x20a8, 0xace: 0x2733, 0xacf: 0x273c, 0xad0: 0x2745, 0xad1: 0x274e,
- 0xad2: 0x2757, 0xad3: 0x2760, 0xad4: 0x2769, 0xad5: 0x2772, 0xad6: 0x277b, 0xad7: 0x278d,
- 0xad8: 0x2796, 0xad9: 0x279f, 0xada: 0x27a8, 0xadb: 0x27b1, 0xadc: 0x2784, 0xadd: 0x2bb9,
- 0xade: 0x2afa, 0xae0: 0x20ae, 0xae1: 0x20c6, 0xae2: 0x20ba, 0xae3: 0x210e,
- 0xae4: 0x20cc, 0xae5: 0x20ea, 0xae6: 0x20b4, 0xae7: 0x20e4, 0xae8: 0x20c0, 0xae9: 0x20f6,
- 0xaea: 0x2126, 0xaeb: 0x2144, 0xaec: 0x213e, 0xaed: 0x2132, 0xaee: 0x2180, 0xaef: 0x2114,
- 0xaf0: 0x2120, 0xaf1: 0x2138, 0xaf2: 0x212c, 0xaf3: 0x2156, 0xaf4: 0x2102, 0xaf5: 0x214a,
- 0xaf6: 0x2174, 0xaf7: 0x215c, 0xaf8: 0x20f0, 0xaf9: 0x20d2, 0xafa: 0x2108, 0xafb: 0x211a,
- 0xafc: 0x2150, 0xafd: 0x20d8, 0xafe: 0x217a, 0xaff: 0x20fc,
+ 0xac0: 0x2184, 0xac1: 0x218a, 0xac2: 0x2190, 0xac3: 0x2196, 0xac4: 0x219c, 0xac5: 0x21a2,
+ 0xac6: 0x21a8, 0xac7: 0x21ae, 0xac8: 0x21b4, 0xac9: 0x21ba, 0xaca: 0x21c0, 0xacb: 0x21c6,
+ 0xacc: 0x21cc, 0xacd: 0x21d2, 0xace: 0x285d, 0xacf: 0x2866, 0xad0: 0x286f, 0xad1: 0x2878,
+ 0xad2: 0x2881, 0xad3: 0x288a, 0xad4: 0x2893, 0xad5: 0x289c, 0xad6: 0x28a5, 0xad7: 0x28b7,
+ 0xad8: 0x28c0, 0xad9: 0x28c9, 0xada: 0x28d2, 0xadb: 0x28db, 0xadc: 0x28ae, 0xadd: 0x2ce3,
+ 0xade: 0x2c24, 0xae0: 0x21d8, 0xae1: 0x21f0, 0xae2: 0x21e4, 0xae3: 0x2238,
+ 0xae4: 0x21f6, 0xae5: 0x2214, 0xae6: 0x21de, 0xae7: 0x220e, 0xae8: 0x21ea, 0xae9: 0x2220,
+ 0xaea: 0x2250, 0xaeb: 0x226e, 0xaec: 0x2268, 0xaed: 0x225c, 0xaee: 0x22aa, 0xaef: 0x223e,
+ 0xaf0: 0x224a, 0xaf1: 0x2262, 0xaf2: 0x2256, 0xaf3: 0x2280, 0xaf4: 0x222c, 0xaf5: 0x2274,
+ 0xaf6: 0x229e, 0xaf7: 0x2286, 0xaf8: 0x221a, 0xaf9: 0x21fc, 0xafa: 0x2232, 0xafb: 0x2244,
+ 0xafc: 0x227a, 0xafd: 0x2202, 0xafe: 0x22a4, 0xaff: 0x2226,
// Block 0x2c, offset 0xb00
- 0xb00: 0x2162, 0xb01: 0x20de, 0xb02: 0x2168, 0xb03: 0x216e, 0xb04: 0x0932, 0xb05: 0x0b06,
- 0xb06: 0x0caa, 0xb07: 0x10ca,
- 0xb10: 0x1bca, 0xb11: 0x18ac,
- 0xb12: 0x18af, 0xb13: 0x18b2, 0xb14: 0x18b5, 0xb15: 0x18b8, 0xb16: 0x18bb, 0xb17: 0x18be,
- 0xb18: 0x18c1, 0xb19: 0x18c4, 0xb1a: 0x18cd, 0xb1b: 0x18d0, 0xb1c: 0x18d3, 0xb1d: 0x18d6,
- 0xb1e: 0x18d9, 0xb1f: 0x18dc, 0xb20: 0x0316, 0xb21: 0x031e, 0xb22: 0x0322, 0xb23: 0x032a,
- 0xb24: 0x032e, 0xb25: 0x0332, 0xb26: 0x033a, 0xb27: 0x0342, 0xb28: 0x0346, 0xb29: 0x034e,
- 0xb2a: 0x0352, 0xb2b: 0x0356, 0xb2c: 0x035a, 0xb2d: 0x035e, 0xb2e: 0x2e2f, 0xb2f: 0x2e37,
- 0xb30: 0x2e3f, 0xb31: 0x2e47, 0xb32: 0x2e4f, 0xb33: 0x2e57, 0xb34: 0x2e5f, 0xb35: 0x2e67,
- 0xb36: 0x2e77, 0xb37: 0x2e7f, 0xb38: 0x2e87, 0xb39: 0x2e8f, 0xb3a: 0x2e97, 0xb3b: 0x2e9f,
- 0xb3c: 0x2eea, 0xb3d: 0x2eb2, 0xb3e: 0x2e6f,
+ 0xb00: 0x228c, 0xb01: 0x2208, 0xb02: 0x2292, 0xb03: 0x2298, 0xb04: 0x0a2a, 0xb05: 0x0bfe,
+ 0xb06: 0x0da2, 0xb07: 0x11c2,
+ 0xb10: 0x1cf4, 0xb11: 0x19d6,
+ 0xb12: 0x19d9, 0xb13: 0x19dc, 0xb14: 0x19df, 0xb15: 0x19e2, 0xb16: 0x19e5, 0xb17: 0x19e8,
+ 0xb18: 0x19eb, 0xb19: 0x19ee, 0xb1a: 0x19f7, 0xb1b: 0x19fa, 0xb1c: 0x19fd, 0xb1d: 0x1a00,
+ 0xb1e: 0x1a03, 0xb1f: 0x1a06, 0xb20: 0x0406, 0xb21: 0x040e, 0xb22: 0x0412, 0xb23: 0x041a,
+ 0xb24: 0x041e, 0xb25: 0x0422, 0xb26: 0x042a, 0xb27: 0x0432, 0xb28: 0x0436, 0xb29: 0x043e,
+ 0xb2a: 0x0442, 0xb2b: 0x0446, 0xb2c: 0x044a, 0xb2d: 0x044e, 0xb2e: 0x46c3, 0xb2f: 0x46cb,
+ 0xb30: 0x46d3, 0xb31: 0x46db, 0xb32: 0x46e3, 0xb33: 0x46eb, 0xb34: 0x46f3, 0xb35: 0x46fb,
+ 0xb36: 0x470b, 0xb37: 0x4713, 0xb38: 0x471b, 0xb39: 0x4723, 0xb3a: 0x472b, 0xb3b: 0x4733,
+ 0xb3c: 0x2e42, 0xb3d: 0x2e0a, 0xb3e: 0x4703,
// Block 0x2d, offset 0xb40
- 0xb40: 0x06c2, 0xb41: 0x071e, 0xb42: 0x06ce, 0xb43: 0x097e, 0xb44: 0x0722, 0xb45: 0x07b2,
- 0xb46: 0x06ca, 0xb47: 0x07ae, 0xb48: 0x070e, 0xb49: 0x088a, 0xb4a: 0x0d0a, 0xb4b: 0x0e92,
- 0xb4c: 0x0dda, 0xb4d: 0x0d1e, 0xb4e: 0x1462, 0xb4f: 0x098e, 0xb50: 0x0cd2, 0xb51: 0x0d4e,
- 0xb52: 0x0d0e, 0xb53: 0x104e, 0xb54: 0x08fe, 0xb55: 0x0f06, 0xb56: 0x138a, 0xb57: 0x1062,
- 0xb58: 0x0846, 0xb59: 0x1092, 0xb5a: 0x0f9e, 0xb5b: 0x0a1a, 0xb5c: 0x1412, 0xb5d: 0x0782,
- 0xb5e: 0x08ae, 0xb5f: 0x0dfa, 0xb60: 0x152a, 0xb61: 0x0746, 0xb62: 0x07d6, 0xb63: 0x0d9e,
- 0xb64: 0x06d2, 0xb65: 0x06ea, 0xb66: 0x06d6, 0xb67: 0x0ade, 0xb68: 0x08f2, 0xb69: 0x0882,
- 0xb6a: 0x0a5a, 0xb6b: 0x0a4e, 0xb6c: 0x0fee, 0xb6d: 0x0742, 0xb6e: 0x139e, 0xb6f: 0x089e,
- 0xb70: 0x09f6, 0xb71: 0x18df, 0xb72: 0x18e2, 0xb73: 0x18e5, 0xb74: 0x18e8, 0xb75: 0x18f1,
- 0xb76: 0x18f4, 0xb77: 0x18f7, 0xb78: 0x18fa, 0xb79: 0x18fd, 0xb7a: 0x1900, 0xb7b: 0x1903,
- 0xb7c: 0x1906, 0xb7d: 0x1909, 0xb7e: 0x190c, 0xb7f: 0x1915,
+ 0xb40: 0x07ba, 0xb41: 0x0816, 0xb42: 0x07c6, 0xb43: 0x0a76, 0xb44: 0x081a, 0xb45: 0x08aa,
+ 0xb46: 0x07c2, 0xb47: 0x08a6, 0xb48: 0x0806, 0xb49: 0x0982, 0xb4a: 0x0e02, 0xb4b: 0x0f8a,
+ 0xb4c: 0x0ed2, 0xb4d: 0x0e16, 0xb4e: 0x155a, 0xb4f: 0x0a86, 0xb50: 0x0dca, 0xb51: 0x0e46,
+ 0xb52: 0x0e06, 0xb53: 0x1146, 0xb54: 0x09f6, 0xb55: 0x0ffe, 0xb56: 0x1482, 0xb57: 0x115a,
+ 0xb58: 0x093e, 0xb59: 0x118a, 0xb5a: 0x1096, 0xb5b: 0x0b12, 0xb5c: 0x150a, 0xb5d: 0x087a,
+ 0xb5e: 0x09a6, 0xb5f: 0x0ef2, 0xb60: 0x1622, 0xb61: 0x083e, 0xb62: 0x08ce, 0xb63: 0x0e96,
+ 0xb64: 0x07ca, 0xb65: 0x07e2, 0xb66: 0x07ce, 0xb67: 0x0bd6, 0xb68: 0x09ea, 0xb69: 0x097a,
+ 0xb6a: 0x0b52, 0xb6b: 0x0b46, 0xb6c: 0x10e6, 0xb6d: 0x083a, 0xb6e: 0x1496, 0xb6f: 0x0996,
+ 0xb70: 0x0aee, 0xb71: 0x1a09, 0xb72: 0x1a0c, 0xb73: 0x1a0f, 0xb74: 0x1a12, 0xb75: 0x1a1b,
+ 0xb76: 0x1a1e, 0xb77: 0x1a21, 0xb78: 0x1a24, 0xb79: 0x1a27, 0xb7a: 0x1a2a, 0xb7b: 0x1a2d,
+ 0xb7c: 0x1a30, 0xb7d: 0x1a33, 0xb7e: 0x1a36, 0xb7f: 0x1a3f,
// Block 0x2e, offset 0xb80
- 0xb80: 0x1ccc, 0xb81: 0x1cdb, 0xb82: 0x1cea, 0xb83: 0x1cf9, 0xb84: 0x1d08, 0xb85: 0x1d17,
- 0xb86: 0x1d26, 0xb87: 0x1d35, 0xb88: 0x1d44, 0xb89: 0x2192, 0xb8a: 0x21a4, 0xb8b: 0x21b6,
- 0xb8c: 0x1957, 0xb8d: 0x1c0a, 0xb8e: 0x19d8, 0xb8f: 0x1bae, 0xb90: 0x04ce, 0xb91: 0x04d6,
- 0xb92: 0x04de, 0xb93: 0x04e6, 0xb94: 0x04ee, 0xb95: 0x04f2, 0xb96: 0x04f6, 0xb97: 0x04fa,
- 0xb98: 0x04fe, 0xb99: 0x0502, 0xb9a: 0x0506, 0xb9b: 0x050a, 0xb9c: 0x050e, 0xb9d: 0x0512,
- 0xb9e: 0x0516, 0xb9f: 0x051a, 0xba0: 0x051e, 0xba1: 0x0526, 0xba2: 0x052a, 0xba3: 0x052e,
- 0xba4: 0x0532, 0xba5: 0x0536, 0xba6: 0x053a, 0xba7: 0x053e, 0xba8: 0x0542, 0xba9: 0x0546,
- 0xbaa: 0x054a, 0xbab: 0x054e, 0xbac: 0x0552, 0xbad: 0x0556, 0xbae: 0x055a, 0xbaf: 0x055e,
- 0xbb0: 0x0562, 0xbb1: 0x0566, 0xbb2: 0x056a, 0xbb3: 0x0572, 0xbb4: 0x057a, 0xbb5: 0x0582,
- 0xbb6: 0x0586, 0xbb7: 0x058a, 0xbb8: 0x058e, 0xbb9: 0x0592, 0xbba: 0x0596, 0xbbb: 0x059a,
- 0xbbc: 0x059e, 0xbbd: 0x05a2, 0xbbe: 0x05a6, 0xbbf: 0x2700,
+ 0xb80: 0x1df6, 0xb81: 0x1e05, 0xb82: 0x1e14, 0xb83: 0x1e23, 0xb84: 0x1e32, 0xb85: 0x1e41,
+ 0xb86: 0x1e50, 0xb87: 0x1e5f, 0xb88: 0x1e6e, 0xb89: 0x22bc, 0xb8a: 0x22ce, 0xb8b: 0x22e0,
+ 0xb8c: 0x1a81, 0xb8d: 0x1d34, 0xb8e: 0x1b02, 0xb8f: 0x1cd8, 0xb90: 0x05c6, 0xb91: 0x05ce,
+ 0xb92: 0x05d6, 0xb93: 0x05de, 0xb94: 0x05e6, 0xb95: 0x05ea, 0xb96: 0x05ee, 0xb97: 0x05f2,
+ 0xb98: 0x05f6, 0xb99: 0x05fa, 0xb9a: 0x05fe, 0xb9b: 0x0602, 0xb9c: 0x0606, 0xb9d: 0x060a,
+ 0xb9e: 0x060e, 0xb9f: 0x0612, 0xba0: 0x0616, 0xba1: 0x061e, 0xba2: 0x0622, 0xba3: 0x0626,
+ 0xba4: 0x062a, 0xba5: 0x062e, 0xba6: 0x0632, 0xba7: 0x0636, 0xba8: 0x063a, 0xba9: 0x063e,
+ 0xbaa: 0x0642, 0xbab: 0x0646, 0xbac: 0x064a, 0xbad: 0x064e, 0xbae: 0x0652, 0xbaf: 0x0656,
+ 0xbb0: 0x065a, 0xbb1: 0x065e, 0xbb2: 0x0662, 0xbb3: 0x066a, 0xbb4: 0x0672, 0xbb5: 0x067a,
+ 0xbb6: 0x067e, 0xbb7: 0x0682, 0xbb8: 0x0686, 0xbb9: 0x068a, 0xbba: 0x068e, 0xbbb: 0x0692,
+ 0xbbc: 0x0696, 0xbbd: 0x069a, 0xbbe: 0x069e, 0xbbf: 0x282a,
// Block 0x2f, offset 0xbc0
- 0xbc0: 0x2b19, 0xbc1: 0x29b5, 0xbc2: 0x2b29, 0xbc3: 0x288d, 0xbc4: 0x2efb, 0xbc5: 0x2897,
- 0xbc6: 0x28a1, 0xbc7: 0x2f3f, 0xbc8: 0x29c2, 0xbc9: 0x28ab, 0xbca: 0x28b5, 0xbcb: 0x28bf,
- 0xbcc: 0x29e9, 0xbcd: 0x29f6, 0xbce: 0x29cf, 0xbcf: 0x29dc, 0xbd0: 0x2ec0, 0xbd1: 0x2a03,
- 0xbd2: 0x2a10, 0xbd3: 0x2bcb, 0xbd4: 0x26c1, 0xbd5: 0x2bde, 0xbd6: 0x2bf1, 0xbd7: 0x2b39,
- 0xbd8: 0x2a1d, 0xbd9: 0x2c04, 0xbda: 0x2c17, 0xbdb: 0x2a2a, 0xbdc: 0x28c9, 0xbdd: 0x28d3,
- 0xbde: 0x2ece, 0xbdf: 0x2a37, 0xbe0: 0x2b49, 0xbe1: 0x2f0c, 0xbe2: 0x28dd, 0xbe3: 0x28e7,
- 0xbe4: 0x2a44, 0xbe5: 0x28f1, 0xbe6: 0x28fb, 0xbe7: 0x26d6, 0xbe8: 0x26dd, 0xbe9: 0x2905,
- 0xbea: 0x290f, 0xbeb: 0x2c2a, 0xbec: 0x2a51, 0xbed: 0x2b59, 0xbee: 0x2c3d, 0xbef: 0x2a5e,
- 0xbf0: 0x2923, 0xbf1: 0x2919, 0xbf2: 0x2f53, 0xbf3: 0x2a6b, 0xbf4: 0x2c50, 0xbf5: 0x292d,
- 0xbf6: 0x2b69, 0xbf7: 0x2937, 0xbf8: 0x2a85, 0xbf9: 0x2941, 0xbfa: 0x2a92, 0xbfb: 0x2f1d,
- 0xbfc: 0x2a78, 0xbfd: 0x2b79, 0xbfe: 0x2a9f, 0xbff: 0x26e4,
+ 0xbc0: 0x2c43, 0xbc1: 0x2adf, 0xbc2: 0x2c53, 0xbc3: 0x29b7, 0xbc4: 0x2e53, 0xbc5: 0x29c1,
+ 0xbc6: 0x29cb, 0xbc7: 0x2e97, 0xbc8: 0x2aec, 0xbc9: 0x29d5, 0xbca: 0x29df, 0xbcb: 0x29e9,
+ 0xbcc: 0x2b13, 0xbcd: 0x2b20, 0xbce: 0x2af9, 0xbcf: 0x2b06, 0xbd0: 0x2e18, 0xbd1: 0x2b2d,
+ 0xbd2: 0x2b3a, 0xbd3: 0x2cf5, 0xbd4: 0x27eb, 0xbd5: 0x2d08, 0xbd6: 0x2d1b, 0xbd7: 0x2c63,
+ 0xbd8: 0x2b47, 0xbd9: 0x2d2e, 0xbda: 0x2d41, 0xbdb: 0x2b54, 0xbdc: 0x29f3, 0xbdd: 0x29fd,
+ 0xbde: 0x2e26, 0xbdf: 0x2b61, 0xbe0: 0x2c73, 0xbe1: 0x2e64, 0xbe2: 0x2a07, 0xbe3: 0x2a11,
+ 0xbe4: 0x2b6e, 0xbe5: 0x2a1b, 0xbe6: 0x2a25, 0xbe7: 0x2800, 0xbe8: 0x2807, 0xbe9: 0x2a2f,
+ 0xbea: 0x2a39, 0xbeb: 0x2d54, 0xbec: 0x2b7b, 0xbed: 0x2c83, 0xbee: 0x2d67, 0xbef: 0x2b88,
+ 0xbf0: 0x2a4d, 0xbf1: 0x2a43, 0xbf2: 0x2eab, 0xbf3: 0x2b95, 0xbf4: 0x2d7a, 0xbf5: 0x2a57,
+ 0xbf6: 0x2c93, 0xbf7: 0x2a61, 0xbf8: 0x2baf, 0xbf9: 0x2a6b, 0xbfa: 0x2bbc, 0xbfb: 0x2e75,
+ 0xbfc: 0x2ba2, 0xbfd: 0x2ca3, 0xbfe: 0x2bc9, 0xbff: 0x280e,
// Block 0x30, offset 0xc00
- 0xc00: 0x2f2e, 0xc01: 0x294b, 0xc02: 0x2955, 0xc03: 0x2aac, 0xc04: 0x295f, 0xc05: 0x2969,
- 0xc06: 0x2973, 0xc07: 0x2b89, 0xc08: 0x2ab9, 0xc09: 0x26eb, 0xc0a: 0x2c63, 0xc0b: 0x2ea7,
- 0xc0c: 0x2b99, 0xc0d: 0x2ac6, 0xc0e: 0x2edc, 0xc0f: 0x297d, 0xc10: 0x2987, 0xc11: 0x2ad3,
- 0xc12: 0x26f2, 0xc13: 0x2ae0, 0xc14: 0x2ba9, 0xc15: 0x26f9, 0xc16: 0x2c76, 0xc17: 0x2991,
- 0xc18: 0x1cbd, 0xc19: 0x1cd1, 0xc1a: 0x1ce0, 0xc1b: 0x1cef, 0xc1c: 0x1cfe, 0xc1d: 0x1d0d,
- 0xc1e: 0x1d1c, 0xc1f: 0x1d2b, 0xc20: 0x1d3a, 0xc21: 0x1d49, 0xc22: 0x2198, 0xc23: 0x21aa,
- 0xc24: 0x21bc, 0xc25: 0x21c8, 0xc26: 0x21d4, 0xc27: 0x21e0, 0xc28: 0x21ec, 0xc29: 0x21f8,
- 0xc2a: 0x2204, 0xc2b: 0x2210, 0xc2c: 0x224c, 0xc2d: 0x2258, 0xc2e: 0x2264, 0xc2f: 0x2270,
- 0xc30: 0x227c, 0xc31: 0x1c1a, 0xc32: 0x19cc, 0xc33: 0x1939, 0xc34: 0x1bea, 0xc35: 0x1a4d,
- 0xc36: 0x1a5c, 0xc37: 0x19d2, 0xc38: 0x1c02, 0xc39: 0x1c06, 0xc3a: 0x1963, 0xc3b: 0x270e,
- 0xc3c: 0x271c, 0xc3d: 0x2707, 0xc3e: 0x2715, 0xc3f: 0x2aed,
+ 0xc00: 0x2e86, 0xc01: 0x2a75, 0xc02: 0x2a7f, 0xc03: 0x2bd6, 0xc04: 0x2a89, 0xc05: 0x2a93,
+ 0xc06: 0x2a9d, 0xc07: 0x2cb3, 0xc08: 0x2be3, 0xc09: 0x2815, 0xc0a: 0x2d8d, 0xc0b: 0x2dff,
+ 0xc0c: 0x2cc3, 0xc0d: 0x2bf0, 0xc0e: 0x2e34, 0xc0f: 0x2aa7, 0xc10: 0x2ab1, 0xc11: 0x2bfd,
+ 0xc12: 0x281c, 0xc13: 0x2c0a, 0xc14: 0x2cd3, 0xc15: 0x2823, 0xc16: 0x2da0, 0xc17: 0x2abb,
+ 0xc18: 0x1de7, 0xc19: 0x1dfb, 0xc1a: 0x1e0a, 0xc1b: 0x1e19, 0xc1c: 0x1e28, 0xc1d: 0x1e37,
+ 0xc1e: 0x1e46, 0xc1f: 0x1e55, 0xc20: 0x1e64, 0xc21: 0x1e73, 0xc22: 0x22c2, 0xc23: 0x22d4,
+ 0xc24: 0x22e6, 0xc25: 0x22f2, 0xc26: 0x22fe, 0xc27: 0x230a, 0xc28: 0x2316, 0xc29: 0x2322,
+ 0xc2a: 0x232e, 0xc2b: 0x233a, 0xc2c: 0x2376, 0xc2d: 0x2382, 0xc2e: 0x238e, 0xc2f: 0x239a,
+ 0xc30: 0x23a6, 0xc31: 0x1d44, 0xc32: 0x1af6, 0xc33: 0x1a63, 0xc34: 0x1d14, 0xc35: 0x1b77,
+ 0xc36: 0x1b86, 0xc37: 0x1afc, 0xc38: 0x1d2c, 0xc39: 0x1d30, 0xc3a: 0x1a8d, 0xc3b: 0x2838,
+ 0xc3c: 0x2846, 0xc3d: 0x2831, 0xc3e: 0x283f, 0xc3f: 0x2c17,
// Block 0x31, offset 0xc40
- 0xc40: 0x1a50, 0xc41: 0x1a38, 0xc42: 0x1c66, 0xc43: 0x1a20, 0xc44: 0x19f9, 0xc45: 0x196c,
- 0xc46: 0x197b, 0xc47: 0x194b, 0xc48: 0x1bf6, 0xc49: 0x1d58, 0xc4a: 0x1a53, 0xc4b: 0x1a3b,
- 0xc4c: 0x1c6a, 0xc4d: 0x1c76, 0xc4e: 0x1a2c, 0xc4f: 0x1a02, 0xc50: 0x195a, 0xc51: 0x1c22,
- 0xc52: 0x1bb6, 0xc53: 0x1ba2, 0xc54: 0x1bd2, 0xc55: 0x1c7a, 0xc56: 0x1a2f, 0xc57: 0x19cf,
- 0xc58: 0x1a05, 0xc59: 0x19e4, 0xc5a: 0x1a47, 0xc5b: 0x1c7e, 0xc5c: 0x1a32, 0xc5d: 0x19c6,
- 0xc5e: 0x1a08, 0xc5f: 0x1c42, 0xc60: 0x1bfa, 0xc61: 0x1a1a, 0xc62: 0x1c2a, 0xc63: 0x1c46,
- 0xc64: 0x1bfe, 0xc65: 0x1a1d, 0xc66: 0x1c2e, 0xc67: 0x22ee, 0xc68: 0x2302, 0xc69: 0x199c,
- 0xc6a: 0x1c26, 0xc6b: 0x1bba, 0xc6c: 0x1ba6, 0xc6d: 0x1c4e, 0xc6e: 0x2723, 0xc6f: 0x27ba,
- 0xc70: 0x1a5f, 0xc71: 0x1a4a, 0xc72: 0x1c82, 0xc73: 0x1a35, 0xc74: 0x1a56, 0xc75: 0x1a3e,
- 0xc76: 0x1c6e, 0xc77: 0x1a23, 0xc78: 0x19fc, 0xc79: 0x1987, 0xc7a: 0x1a59, 0xc7b: 0x1a41,
- 0xc7c: 0x1c72, 0xc7d: 0x1a26, 0xc7e: 0x19ff, 0xc7f: 0x198a,
+ 0xc40: 0x1b7a, 0xc41: 0x1b62, 0xc42: 0x1d90, 0xc43: 0x1b4a, 0xc44: 0x1b23, 0xc45: 0x1a96,
+ 0xc46: 0x1aa5, 0xc47: 0x1a75, 0xc48: 0x1d20, 0xc49: 0x1e82, 0xc4a: 0x1b7d, 0xc4b: 0x1b65,
+ 0xc4c: 0x1d94, 0xc4d: 0x1da0, 0xc4e: 0x1b56, 0xc4f: 0x1b2c, 0xc50: 0x1a84, 0xc51: 0x1d4c,
+ 0xc52: 0x1ce0, 0xc53: 0x1ccc, 0xc54: 0x1cfc, 0xc55: 0x1da4, 0xc56: 0x1b59, 0xc57: 0x1af9,
+ 0xc58: 0x1b2f, 0xc59: 0x1b0e, 0xc5a: 0x1b71, 0xc5b: 0x1da8, 0xc5c: 0x1b5c, 0xc5d: 0x1af0,
+ 0xc5e: 0x1b32, 0xc5f: 0x1d6c, 0xc60: 0x1d24, 0xc61: 0x1b44, 0xc62: 0x1d54, 0xc63: 0x1d70,
+ 0xc64: 0x1d28, 0xc65: 0x1b47, 0xc66: 0x1d58, 0xc67: 0x2418, 0xc68: 0x242c, 0xc69: 0x1ac6,
+ 0xc6a: 0x1d50, 0xc6b: 0x1ce4, 0xc6c: 0x1cd0, 0xc6d: 0x1d78, 0xc6e: 0x284d, 0xc6f: 0x28e4,
+ 0xc70: 0x1b89, 0xc71: 0x1b74, 0xc72: 0x1dac, 0xc73: 0x1b5f, 0xc74: 0x1b80, 0xc75: 0x1b68,
+ 0xc76: 0x1d98, 0xc77: 0x1b4d, 0xc78: 0x1b26, 0xc79: 0x1ab1, 0xc7a: 0x1b83, 0xc7b: 0x1b6b,
+ 0xc7c: 0x1d9c, 0xc7d: 0x1b50, 0xc7e: 0x1b29, 0xc7f: 0x1ab4,
// Block 0x32, offset 0xc80
- 0xc80: 0x1c32, 0xc81: 0x1bbe, 0xc82: 0x1d53, 0xc83: 0x193c, 0xc84: 0x19c0, 0xc85: 0x19c3,
- 0xc86: 0x22fb, 0xc87: 0x1b9a, 0xc88: 0x19c9, 0xc89: 0x194e, 0xc8a: 0x19e7, 0xc8b: 0x1951,
- 0xc8c: 0x19f0, 0xc8d: 0x196f, 0xc8e: 0x1972, 0xc8f: 0x1a0b, 0xc90: 0x1a11, 0xc91: 0x1a14,
- 0xc92: 0x1c36, 0xc93: 0x1a17, 0xc94: 0x1a29, 0xc95: 0x1c3e, 0xc96: 0x1c4a, 0xc97: 0x1996,
- 0xc98: 0x1d5d, 0xc99: 0x1bc2, 0xc9a: 0x1999, 0xc9b: 0x1a62, 0xc9c: 0x19ab, 0xc9d: 0x19ba,
- 0xc9e: 0x22e8, 0xc9f: 0x22e2, 0xca0: 0x1cc7, 0xca1: 0x1cd6, 0xca2: 0x1ce5, 0xca3: 0x1cf4,
- 0xca4: 0x1d03, 0xca5: 0x1d12, 0xca6: 0x1d21, 0xca7: 0x1d30, 0xca8: 0x1d3f, 0xca9: 0x218c,
- 0xcaa: 0x219e, 0xcab: 0x21b0, 0xcac: 0x21c2, 0xcad: 0x21ce, 0xcae: 0x21da, 0xcaf: 0x21e6,
- 0xcb0: 0x21f2, 0xcb1: 0x21fe, 0xcb2: 0x220a, 0xcb3: 0x2246, 0xcb4: 0x2252, 0xcb5: 0x225e,
- 0xcb6: 0x226a, 0xcb7: 0x2276, 0xcb8: 0x2282, 0xcb9: 0x2288, 0xcba: 0x228e, 0xcbb: 0x2294,
- 0xcbc: 0x229a, 0xcbd: 0x22ac, 0xcbe: 0x22b2, 0xcbf: 0x1c16,
+ 0xc80: 0x1d5c, 0xc81: 0x1ce8, 0xc82: 0x1e7d, 0xc83: 0x1a66, 0xc84: 0x1aea, 0xc85: 0x1aed,
+ 0xc86: 0x2425, 0xc87: 0x1cc4, 0xc88: 0x1af3, 0xc89: 0x1a78, 0xc8a: 0x1b11, 0xc8b: 0x1a7b,
+ 0xc8c: 0x1b1a, 0xc8d: 0x1a99, 0xc8e: 0x1a9c, 0xc8f: 0x1b35, 0xc90: 0x1b3b, 0xc91: 0x1b3e,
+ 0xc92: 0x1d60, 0xc93: 0x1b41, 0xc94: 0x1b53, 0xc95: 0x1d68, 0xc96: 0x1d74, 0xc97: 0x1ac0,
+ 0xc98: 0x1e87, 0xc99: 0x1cec, 0xc9a: 0x1ac3, 0xc9b: 0x1b8c, 0xc9c: 0x1ad5, 0xc9d: 0x1ae4,
+ 0xc9e: 0x2412, 0xc9f: 0x240c, 0xca0: 0x1df1, 0xca1: 0x1e00, 0xca2: 0x1e0f, 0xca3: 0x1e1e,
+ 0xca4: 0x1e2d, 0xca5: 0x1e3c, 0xca6: 0x1e4b, 0xca7: 0x1e5a, 0xca8: 0x1e69, 0xca9: 0x22b6,
+ 0xcaa: 0x22c8, 0xcab: 0x22da, 0xcac: 0x22ec, 0xcad: 0x22f8, 0xcae: 0x2304, 0xcaf: 0x2310,
+ 0xcb0: 0x231c, 0xcb1: 0x2328, 0xcb2: 0x2334, 0xcb3: 0x2370, 0xcb4: 0x237c, 0xcb5: 0x2388,
+ 0xcb6: 0x2394, 0xcb7: 0x23a0, 0xcb8: 0x23ac, 0xcb9: 0x23b2, 0xcba: 0x23b8, 0xcbb: 0x23be,
+ 0xcbc: 0x23c4, 0xcbd: 0x23d6, 0xcbe: 0x23dc, 0xcbf: 0x1d40,
// Block 0x33, offset 0xcc0
- 0xcc0: 0x137a, 0xcc1: 0x0cfe, 0xcc2: 0x13d6, 0xcc3: 0x13a2, 0xcc4: 0x0e5a, 0xcc5: 0x06ee,
- 0xcc6: 0x08e2, 0xcc7: 0x162e, 0xcc8: 0x162e, 0xcc9: 0x0a0e, 0xcca: 0x1462, 0xccb: 0x0946,
- 0xccc: 0x0a0a, 0xccd: 0x0bf2, 0xcce: 0x0fd2, 0xccf: 0x1162, 0xcd0: 0x129a, 0xcd1: 0x12d6,
- 0xcd2: 0x130a, 0xcd3: 0x141e, 0xcd4: 0x0d76, 0xcd5: 0x0e02, 0xcd6: 0x0eae, 0xcd7: 0x0f46,
- 0xcd8: 0x1262, 0xcd9: 0x144a, 0xcda: 0x1576, 0xcdb: 0x0712, 0xcdc: 0x08b6, 0xcdd: 0x0d8a,
- 0xcde: 0x0ed2, 0xcdf: 0x1296, 0xce0: 0x15c6, 0xce1: 0x0ab6, 0xce2: 0x0e7a, 0xce3: 0x1286,
- 0xce4: 0x131a, 0xce5: 0x0c26, 0xce6: 0x11be, 0xce7: 0x12e2, 0xce8: 0x0b22, 0xce9: 0x0d12,
- 0xcea: 0x0e1a, 0xceb: 0x0f1e, 0xcec: 0x142a, 0xced: 0x0752, 0xcee: 0x07ea, 0xcef: 0x0856,
- 0xcf0: 0x0c8e, 0xcf1: 0x0d82, 0xcf2: 0x0ece, 0xcf3: 0x0ff2, 0xcf4: 0x117a, 0xcf5: 0x128e,
- 0xcf6: 0x12a6, 0xcf7: 0x13ca, 0xcf8: 0x14f2, 0xcf9: 0x15a6, 0xcfa: 0x15c2, 0xcfb: 0x102e,
- 0xcfc: 0x106e, 0xcfd: 0x1126, 0xcfe: 0x1246, 0xcff: 0x147e,
+ 0xcc0: 0x1472, 0xcc1: 0x0df6, 0xcc2: 0x14ce, 0xcc3: 0x149a, 0xcc4: 0x0f52, 0xcc5: 0x07e6,
+ 0xcc6: 0x09da, 0xcc7: 0x1726, 0xcc8: 0x1726, 0xcc9: 0x0b06, 0xcca: 0x155a, 0xccb: 0x0a3e,
+ 0xccc: 0x0b02, 0xccd: 0x0cea, 0xcce: 0x10ca, 0xccf: 0x125a, 0xcd0: 0x1392, 0xcd1: 0x13ce,
+ 0xcd2: 0x1402, 0xcd3: 0x1516, 0xcd4: 0x0e6e, 0xcd5: 0x0efa, 0xcd6: 0x0fa6, 0xcd7: 0x103e,
+ 0xcd8: 0x135a, 0xcd9: 0x1542, 0xcda: 0x166e, 0xcdb: 0x080a, 0xcdc: 0x09ae, 0xcdd: 0x0e82,
+ 0xcde: 0x0fca, 0xcdf: 0x138e, 0xce0: 0x16be, 0xce1: 0x0bae, 0xce2: 0x0f72, 0xce3: 0x137e,
+ 0xce4: 0x1412, 0xce5: 0x0d1e, 0xce6: 0x12b6, 0xce7: 0x13da, 0xce8: 0x0c1a, 0xce9: 0x0e0a,
+ 0xcea: 0x0f12, 0xceb: 0x1016, 0xcec: 0x1522, 0xced: 0x084a, 0xcee: 0x08e2, 0xcef: 0x094e,
+ 0xcf0: 0x0d86, 0xcf1: 0x0e7a, 0xcf2: 0x0fc6, 0xcf3: 0x10ea, 0xcf4: 0x1272, 0xcf5: 0x1386,
+ 0xcf6: 0x139e, 0xcf7: 0x14c2, 0xcf8: 0x15ea, 0xcf9: 0x169e, 0xcfa: 0x16ba, 0xcfb: 0x1126,
+ 0xcfc: 0x1166, 0xcfd: 0x121e, 0xcfe: 0x133e, 0xcff: 0x1576,
// Block 0x34, offset 0xd00
- 0xd00: 0x15ce, 0xd01: 0x134e, 0xd02: 0x09ca, 0xd03: 0x0b3e, 0xd04: 0x10de, 0xd05: 0x119e,
- 0xd06: 0x0f02, 0xd07: 0x1036, 0xd08: 0x139a, 0xd09: 0x14ea, 0xd0a: 0x09c6, 0xd0b: 0x0a92,
- 0xd0c: 0x0d7a, 0xd0d: 0x0e2e, 0xd0e: 0x0e62, 0xd0f: 0x1116, 0xd10: 0x113e, 0xd11: 0x14aa,
- 0xd12: 0x0852, 0xd13: 0x11aa, 0xd14: 0x07f6, 0xd15: 0x07f2, 0xd16: 0x109a, 0xd17: 0x112a,
- 0xd18: 0x125e, 0xd19: 0x14b2, 0xd1a: 0x136a, 0xd1b: 0x0c2a, 0xd1c: 0x0d76, 0xd1d: 0x135a,
- 0xd1e: 0x06fa, 0xd1f: 0x0a66, 0xd20: 0x0b96, 0xd21: 0x0f32, 0xd22: 0x0fb2, 0xd23: 0x0876,
- 0xd24: 0x103e, 0xd25: 0x0762, 0xd26: 0x0b7a, 0xd27: 0x06da, 0xd28: 0x0dee, 0xd29: 0x0ca6,
- 0xd2a: 0x1112, 0xd2b: 0x08ca, 0xd2c: 0x09b6, 0xd2d: 0x0ffe, 0xd2e: 0x1266, 0xd2f: 0x133e,
- 0xd30: 0x0dba, 0xd31: 0x13fa, 0xd32: 0x0de6, 0xd33: 0x0c3a, 0xd34: 0x121e, 0xd35: 0x0c5a,
- 0xd36: 0x0fae, 0xd37: 0x072e, 0xd38: 0x07aa, 0xd39: 0x07ee, 0xd3a: 0x0d56, 0xd3b: 0x10fe,
- 0xd3c: 0x11f6, 0xd3d: 0x134a, 0xd3e: 0x145e, 0xd3f: 0x085e,
+ 0xd00: 0x16c6, 0xd01: 0x1446, 0xd02: 0x0ac2, 0xd03: 0x0c36, 0xd04: 0x11d6, 0xd05: 0x1296,
+ 0xd06: 0x0ffa, 0xd07: 0x112e, 0xd08: 0x1492, 0xd09: 0x15e2, 0xd0a: 0x0abe, 0xd0b: 0x0b8a,
+ 0xd0c: 0x0e72, 0xd0d: 0x0f26, 0xd0e: 0x0f5a, 0xd0f: 0x120e, 0xd10: 0x1236, 0xd11: 0x15a2,
+ 0xd12: 0x094a, 0xd13: 0x12a2, 0xd14: 0x08ee, 0xd15: 0x08ea, 0xd16: 0x1192, 0xd17: 0x1222,
+ 0xd18: 0x1356, 0xd19: 0x15aa, 0xd1a: 0x1462, 0xd1b: 0x0d22, 0xd1c: 0x0e6e, 0xd1d: 0x1452,
+ 0xd1e: 0x07f2, 0xd1f: 0x0b5e, 0xd20: 0x0c8e, 0xd21: 0x102a, 0xd22: 0x10aa, 0xd23: 0x096e,
+ 0xd24: 0x1136, 0xd25: 0x085a, 0xd26: 0x0c72, 0xd27: 0x07d2, 0xd28: 0x0ee6, 0xd29: 0x0d9e,
+ 0xd2a: 0x120a, 0xd2b: 0x09c2, 0xd2c: 0x0aae, 0xd2d: 0x10f6, 0xd2e: 0x135e, 0xd2f: 0x1436,
+ 0xd30: 0x0eb2, 0xd31: 0x14f2, 0xd32: 0x0ede, 0xd33: 0x0d32, 0xd34: 0x1316, 0xd35: 0x0d52,
+ 0xd36: 0x10a6, 0xd37: 0x0826, 0xd38: 0x08a2, 0xd39: 0x08e6, 0xd3a: 0x0e4e, 0xd3b: 0x11f6,
+ 0xd3c: 0x12ee, 0xd3d: 0x1442, 0xd3e: 0x1556, 0xd3f: 0x0956,
// Block 0x35, offset 0xd40
- 0xd40: 0x0912, 0xd41: 0x0a1a, 0xd42: 0x0b32, 0xd43: 0x0cc2, 0xd44: 0x0e7e, 0xd45: 0x1042,
- 0xd46: 0x149a, 0xd47: 0x157e, 0xd48: 0x15d2, 0xd49: 0x15ea, 0xd4a: 0x083a, 0xd4b: 0x0cf6,
- 0xd4c: 0x0da6, 0xd4d: 0x13ee, 0xd4e: 0x0afe, 0xd4f: 0x0bda, 0xd50: 0x0bf6, 0xd51: 0x0c86,
- 0xd52: 0x0e6e, 0xd53: 0x0eba, 0xd54: 0x0f6a, 0xd55: 0x108e, 0xd56: 0x1132, 0xd57: 0x1196,
- 0xd58: 0x13de, 0xd59: 0x126e, 0xd5a: 0x1406, 0xd5b: 0x1482, 0xd5c: 0x0812, 0xd5d: 0x083e,
- 0xd5e: 0x0926, 0xd5f: 0x0eaa, 0xd60: 0x12f6, 0xd61: 0x133e, 0xd62: 0x0b1e, 0xd63: 0x0b8e,
- 0xd64: 0x0c52, 0xd65: 0x0db2, 0xd66: 0x10da, 0xd67: 0x0f26, 0xd68: 0x073e, 0xd69: 0x0982,
- 0xd6a: 0x0a66, 0xd6b: 0x0aca, 0xd6c: 0x0b9a, 0xd6d: 0x0f42, 0xd6e: 0x0f5e, 0xd6f: 0x116e,
- 0xd70: 0x118e, 0xd71: 0x1466, 0xd72: 0x14e6, 0xd73: 0x14f6, 0xd74: 0x1532, 0xd75: 0x0756,
- 0xd76: 0x1082, 0xd77: 0x1452, 0xd78: 0x14ce, 0xd79: 0x0bb2, 0xd7a: 0x071a, 0xd7b: 0x077a,
- 0xd7c: 0x0a6a, 0xd7d: 0x0a8a, 0xd7e: 0x0cb2, 0xd7f: 0x0d76,
+ 0xd40: 0x0a0a, 0xd41: 0x0b12, 0xd42: 0x0c2a, 0xd43: 0x0dba, 0xd44: 0x0f76, 0xd45: 0x113a,
+ 0xd46: 0x1592, 0xd47: 0x1676, 0xd48: 0x16ca, 0xd49: 0x16e2, 0xd4a: 0x0932, 0xd4b: 0x0dee,
+ 0xd4c: 0x0e9e, 0xd4d: 0x14e6, 0xd4e: 0x0bf6, 0xd4f: 0x0cd2, 0xd50: 0x0cee, 0xd51: 0x0d7e,
+ 0xd52: 0x0f66, 0xd53: 0x0fb2, 0xd54: 0x1062, 0xd55: 0x1186, 0xd56: 0x122a, 0xd57: 0x128e,
+ 0xd58: 0x14d6, 0xd59: 0x1366, 0xd5a: 0x14fe, 0xd5b: 0x157a, 0xd5c: 0x090a, 0xd5d: 0x0936,
+ 0xd5e: 0x0a1e, 0xd5f: 0x0fa2, 0xd60: 0x13ee, 0xd61: 0x1436, 0xd62: 0x0c16, 0xd63: 0x0c86,
+ 0xd64: 0x0d4a, 0xd65: 0x0eaa, 0xd66: 0x11d2, 0xd67: 0x101e, 0xd68: 0x0836, 0xd69: 0x0a7a,
+ 0xd6a: 0x0b5e, 0xd6b: 0x0bc2, 0xd6c: 0x0c92, 0xd6d: 0x103a, 0xd6e: 0x1056, 0xd6f: 0x1266,
+ 0xd70: 0x1286, 0xd71: 0x155e, 0xd72: 0x15de, 0xd73: 0x15ee, 0xd74: 0x162a, 0xd75: 0x084e,
+ 0xd76: 0x117a, 0xd77: 0x154a, 0xd78: 0x15c6, 0xd79: 0x0caa, 0xd7a: 0x0812, 0xd7b: 0x0872,
+ 0xd7c: 0x0b62, 0xd7d: 0x0b82, 0xd7e: 0x0daa, 0xd7f: 0x0e6e,
// Block 0x36, offset 0xd80
- 0xd80: 0x0ec6, 0xd81: 0x0fce, 0xd82: 0x127a, 0xd83: 0x141a, 0xd84: 0x1626, 0xd85: 0x0ce6,
- 0xd86: 0x14a6, 0xd87: 0x0836, 0xd88: 0x0d32, 0xd89: 0x0d3e, 0xd8a: 0x0e12, 0xd8b: 0x0e4a,
- 0xd8c: 0x0f4e, 0xd8d: 0x0faa, 0xd8e: 0x102a, 0xd8f: 0x110e, 0xd90: 0x153e, 0xd91: 0x07b2,
- 0xd92: 0x0c06, 0xd93: 0x14b6, 0xd94: 0x076a, 0xd95: 0x0aae, 0xd96: 0x0e32, 0xd97: 0x13e2,
- 0xd98: 0x0b6a, 0xd99: 0x0bba, 0xd9a: 0x0d46, 0xd9b: 0x0f32, 0xd9c: 0x14be, 0xd9d: 0x081a,
- 0xd9e: 0x0902, 0xd9f: 0x0a9a, 0xda0: 0x0cd6, 0xda1: 0x0d22, 0xda2: 0x0d62, 0xda3: 0x0df6,
- 0xda4: 0x0f4a, 0xda5: 0x0fbe, 0xda6: 0x115a, 0xda7: 0x12fa, 0xda8: 0x1306, 0xda9: 0x145a,
- 0xdaa: 0x14da, 0xdab: 0x0886, 0xdac: 0x0e4e, 0xdad: 0x0906, 0xdae: 0x0eca, 0xdaf: 0x0f6e,
- 0xdb0: 0x128a, 0xdb1: 0x14c2, 0xdb2: 0x15ae, 0xdb3: 0x15d6, 0xdb4: 0x0d3a, 0xdb5: 0x0e2a,
- 0xdb6: 0x11c6, 0xdb7: 0x10ba, 0xdb8: 0x10c6, 0xdb9: 0x10ea, 0xdba: 0x0f1a, 0xdbb: 0x0ea2,
- 0xdbc: 0x1366, 0xdbd: 0x0736, 0xdbe: 0x122e, 0xdbf: 0x081e,
+ 0xd80: 0x0fbe, 0xd81: 0x10c6, 0xd82: 0x1372, 0xd83: 0x1512, 0xd84: 0x171e, 0xd85: 0x0dde,
+ 0xd86: 0x159e, 0xd87: 0x092e, 0xd88: 0x0e2a, 0xd89: 0x0e36, 0xd8a: 0x0f0a, 0xd8b: 0x0f42,
+ 0xd8c: 0x1046, 0xd8d: 0x10a2, 0xd8e: 0x1122, 0xd8f: 0x1206, 0xd90: 0x1636, 0xd91: 0x08aa,
+ 0xd92: 0x0cfe, 0xd93: 0x15ae, 0xd94: 0x0862, 0xd95: 0x0ba6, 0xd96: 0x0f2a, 0xd97: 0x14da,
+ 0xd98: 0x0c62, 0xd99: 0x0cb2, 0xd9a: 0x0e3e, 0xd9b: 0x102a, 0xd9c: 0x15b6, 0xd9d: 0x0912,
+ 0xd9e: 0x09fa, 0xd9f: 0x0b92, 0xda0: 0x0dce, 0xda1: 0x0e1a, 0xda2: 0x0e5a, 0xda3: 0x0eee,
+ 0xda4: 0x1042, 0xda5: 0x10b6, 0xda6: 0x1252, 0xda7: 0x13f2, 0xda8: 0x13fe, 0xda9: 0x1552,
+ 0xdaa: 0x15d2, 0xdab: 0x097e, 0xdac: 0x0f46, 0xdad: 0x09fe, 0xdae: 0x0fc2, 0xdaf: 0x1066,
+ 0xdb0: 0x1382, 0xdb1: 0x15ba, 0xdb2: 0x16a6, 0xdb3: 0x16ce, 0xdb4: 0x0e32, 0xdb5: 0x0f22,
+ 0xdb6: 0x12be, 0xdb7: 0x11b2, 0xdb8: 0x11be, 0xdb9: 0x11e2, 0xdba: 0x1012, 0xdbb: 0x0f9a,
+ 0xdbc: 0x145e, 0xdbd: 0x082e, 0xdbe: 0x1326, 0xdbf: 0x0916,
// Block 0x37, offset 0xdc0
- 0xdc0: 0x080e, 0xdc1: 0x0b0e, 0xdc2: 0x0c2e, 0xdc3: 0x10f6, 0xdc4: 0x0a56, 0xdc5: 0x0e06,
- 0xdc6: 0x0cf2, 0xdc7: 0x13ea, 0xdc8: 0x12ea, 0xdc9: 0x14ae, 0xdca: 0x1326, 0xdcb: 0x0b2a,
- 0xdcc: 0x078a, 0xdcd: 0x095e, 0xdd0: 0x09b2,
- 0xdd2: 0x0ce2, 0xdd5: 0x07fa, 0xdd6: 0x0f22, 0xdd7: 0x0fe6,
- 0xdd8: 0x104a, 0xdd9: 0x1066, 0xdda: 0x106a, 0xddb: 0x107e, 0xddc: 0x14fe, 0xddd: 0x10ee,
- 0xdde: 0x1172, 0xde0: 0x1292, 0xde2: 0x1356,
- 0xde5: 0x140a, 0xde6: 0x1436,
- 0xdea: 0x1552, 0xdeb: 0x1556, 0xdec: 0x155a, 0xded: 0x15be, 0xdee: 0x142e, 0xdef: 0x14ca,
- 0xdf0: 0x075a, 0xdf1: 0x077e, 0xdf2: 0x0792, 0xdf3: 0x084e, 0xdf4: 0x085a, 0xdf5: 0x089a,
- 0xdf6: 0x094e, 0xdf7: 0x096a, 0xdf8: 0x0972, 0xdf9: 0x09ae, 0xdfa: 0x09ba, 0xdfb: 0x0a96,
- 0xdfc: 0x0a9e, 0xdfd: 0x0ba6, 0xdfe: 0x0bce, 0xdff: 0x0bd6,
+ 0xdc0: 0x0906, 0xdc1: 0x0c06, 0xdc2: 0x0d26, 0xdc3: 0x11ee, 0xdc4: 0x0b4e, 0xdc5: 0x0efe,
+ 0xdc6: 0x0dea, 0xdc7: 0x14e2, 0xdc8: 0x13e2, 0xdc9: 0x15a6, 0xdca: 0x141e, 0xdcb: 0x0c22,
+ 0xdcc: 0x0882, 0xdcd: 0x0a56, 0xdd0: 0x0aaa,
+ 0xdd2: 0x0dda, 0xdd5: 0x08f2, 0xdd6: 0x101a, 0xdd7: 0x10de,
+ 0xdd8: 0x1142, 0xdd9: 0x115e, 0xdda: 0x1162, 0xddb: 0x1176, 0xddc: 0x15f6, 0xddd: 0x11e6,
+ 0xdde: 0x126a, 0xde0: 0x138a, 0xde2: 0x144e,
+ 0xde5: 0x1502, 0xde6: 0x152e,
+ 0xdea: 0x164a, 0xdeb: 0x164e, 0xdec: 0x1652, 0xded: 0x16b6, 0xdee: 0x1526, 0xdef: 0x15c2,
+ 0xdf0: 0x0852, 0xdf1: 0x0876, 0xdf2: 0x088a, 0xdf3: 0x0946, 0xdf4: 0x0952, 0xdf5: 0x0992,
+ 0xdf6: 0x0a46, 0xdf7: 0x0a62, 0xdf8: 0x0a6a, 0xdf9: 0x0aa6, 0xdfa: 0x0ab2, 0xdfb: 0x0b8e,
+ 0xdfc: 0x0b96, 0xdfd: 0x0c9e, 0xdfe: 0x0cc6, 0xdff: 0x0cce,
// Block 0x38, offset 0xe00
- 0xe00: 0x0bee, 0xe01: 0x0c9a, 0xe02: 0x0cca, 0xe03: 0x0cea, 0xe04: 0x0d5a, 0xe05: 0x0e1e,
- 0xe06: 0x0e3a, 0xe07: 0x0e6a, 0xe08: 0x0ebe, 0xe09: 0x0ede, 0xe0a: 0x0f52, 0xe0b: 0x1032,
- 0xe0c: 0x104e, 0xe0d: 0x1056, 0xe0e: 0x1052, 0xe0f: 0x105a, 0xe10: 0x105e, 0xe11: 0x1062,
- 0xe12: 0x1076, 0xe13: 0x107a, 0xe14: 0x109e, 0xe15: 0x10b2, 0xe16: 0x10ce, 0xe17: 0x1132,
- 0xe18: 0x113a, 0xe19: 0x1142, 0xe1a: 0x1156, 0xe1b: 0x117e, 0xe1c: 0x11ce, 0xe1d: 0x1202,
- 0xe1e: 0x1202, 0xe1f: 0x126a, 0xe20: 0x1312, 0xe21: 0x132a, 0xe22: 0x135e, 0xe23: 0x1362,
- 0xe24: 0x13a6, 0xe25: 0x13aa, 0xe26: 0x1402, 0xe27: 0x140a, 0xe28: 0x14de, 0xe29: 0x1522,
- 0xe2a: 0x153a, 0xe2b: 0x0b9e, 0xe2c: 0x1721, 0xe2d: 0x11e6,
- 0xe30: 0x06e2, 0xe31: 0x07e6, 0xe32: 0x07a6, 0xe33: 0x074e, 0xe34: 0x078e, 0xe35: 0x07ba,
- 0xe36: 0x084a, 0xe37: 0x0866, 0xe38: 0x094e, 0xe39: 0x093a, 0xe3a: 0x094a, 0xe3b: 0x0966,
- 0xe3c: 0x09b2, 0xe3d: 0x09c2, 0xe3e: 0x0a06, 0xe3f: 0x0a12,
+ 0xe00: 0x0ce6, 0xe01: 0x0d92, 0xe02: 0x0dc2, 0xe03: 0x0de2, 0xe04: 0x0e52, 0xe05: 0x0f16,
+ 0xe06: 0x0f32, 0xe07: 0x0f62, 0xe08: 0x0fb6, 0xe09: 0x0fd6, 0xe0a: 0x104a, 0xe0b: 0x112a,
+ 0xe0c: 0x1146, 0xe0d: 0x114e, 0xe0e: 0x114a, 0xe0f: 0x1152, 0xe10: 0x1156, 0xe11: 0x115a,
+ 0xe12: 0x116e, 0xe13: 0x1172, 0xe14: 0x1196, 0xe15: 0x11aa, 0xe16: 0x11c6, 0xe17: 0x122a,
+ 0xe18: 0x1232, 0xe19: 0x123a, 0xe1a: 0x124e, 0xe1b: 0x1276, 0xe1c: 0x12c6, 0xe1d: 0x12fa,
+ 0xe1e: 0x12fa, 0xe1f: 0x1362, 0xe20: 0x140a, 0xe21: 0x1422, 0xe22: 0x1456, 0xe23: 0x145a,
+ 0xe24: 0x149e, 0xe25: 0x14a2, 0xe26: 0x14fa, 0xe27: 0x1502, 0xe28: 0x15d6, 0xe29: 0x161a,
+ 0xe2a: 0x1632, 0xe2b: 0x0c96, 0xe2c: 0x184b, 0xe2d: 0x12de,
+ 0xe30: 0x07da, 0xe31: 0x08de, 0xe32: 0x089e, 0xe33: 0x0846, 0xe34: 0x0886, 0xe35: 0x08b2,
+ 0xe36: 0x0942, 0xe37: 0x095e, 0xe38: 0x0a46, 0xe39: 0x0a32, 0xe3a: 0x0a42, 0xe3b: 0x0a5e,
+ 0xe3c: 0x0aaa, 0xe3d: 0x0aba, 0xe3e: 0x0afe, 0xe3f: 0x0b0a,
// Block 0x39, offset 0xe40
- 0xe40: 0x0a2e, 0xe41: 0x0a3e, 0xe42: 0x0b26, 0xe43: 0x0b2e, 0xe44: 0x0b5e, 0xe45: 0x0b7e,
- 0xe46: 0x0bae, 0xe47: 0x0bc6, 0xe48: 0x0bb6, 0xe49: 0x0bd6, 0xe4a: 0x0bca, 0xe4b: 0x0bee,
- 0xe4c: 0x0c0a, 0xe4d: 0x0c62, 0xe4e: 0x0c6e, 0xe4f: 0x0c76, 0xe50: 0x0c9e, 0xe51: 0x0ce2,
- 0xe52: 0x0d12, 0xe53: 0x0d16, 0xe54: 0x0d2a, 0xe55: 0x0daa, 0xe56: 0x0dba, 0xe57: 0x0e12,
- 0xe58: 0x0e5e, 0xe59: 0x0e56, 0xe5a: 0x0e6a, 0xe5b: 0x0e86, 0xe5c: 0x0ebe, 0xe5d: 0x1016,
- 0xe5e: 0x0ee2, 0xe5f: 0x0f16, 0xe60: 0x0f22, 0xe61: 0x0f62, 0xe62: 0x0f7e, 0xe63: 0x0fa2,
- 0xe64: 0x0fc6, 0xe65: 0x0fca, 0xe66: 0x0fe6, 0xe67: 0x0fea, 0xe68: 0x0ffa, 0xe69: 0x100e,
- 0xe6a: 0x100a, 0xe6b: 0x103a, 0xe6c: 0x10b6, 0xe6d: 0x10ce, 0xe6e: 0x10e6, 0xe6f: 0x111e,
- 0xe70: 0x1132, 0xe71: 0x114e, 0xe72: 0x117e, 0xe73: 0x1232, 0xe74: 0x125a, 0xe75: 0x12ce,
- 0xe76: 0x1316, 0xe77: 0x1322, 0xe78: 0x132a, 0xe79: 0x1342, 0xe7a: 0x1356, 0xe7b: 0x1346,
- 0xe7c: 0x135e, 0xe7d: 0x135a, 0xe7e: 0x1352, 0xe7f: 0x1362,
+ 0xe40: 0x0b26, 0xe41: 0x0b36, 0xe42: 0x0c1e, 0xe43: 0x0c26, 0xe44: 0x0c56, 0xe45: 0x0c76,
+ 0xe46: 0x0ca6, 0xe47: 0x0cbe, 0xe48: 0x0cae, 0xe49: 0x0cce, 0xe4a: 0x0cc2, 0xe4b: 0x0ce6,
+ 0xe4c: 0x0d02, 0xe4d: 0x0d5a, 0xe4e: 0x0d66, 0xe4f: 0x0d6e, 0xe50: 0x0d96, 0xe51: 0x0dda,
+ 0xe52: 0x0e0a, 0xe53: 0x0e0e, 0xe54: 0x0e22, 0xe55: 0x0ea2, 0xe56: 0x0eb2, 0xe57: 0x0f0a,
+ 0xe58: 0x0f56, 0xe59: 0x0f4e, 0xe5a: 0x0f62, 0xe5b: 0x0f7e, 0xe5c: 0x0fb6, 0xe5d: 0x110e,
+ 0xe5e: 0x0fda, 0xe5f: 0x100e, 0xe60: 0x101a, 0xe61: 0x105a, 0xe62: 0x1076, 0xe63: 0x109a,
+ 0xe64: 0x10be, 0xe65: 0x10c2, 0xe66: 0x10de, 0xe67: 0x10e2, 0xe68: 0x10f2, 0xe69: 0x1106,
+ 0xe6a: 0x1102, 0xe6b: 0x1132, 0xe6c: 0x11ae, 0xe6d: 0x11c6, 0xe6e: 0x11de, 0xe6f: 0x1216,
+ 0xe70: 0x122a, 0xe71: 0x1246, 0xe72: 0x1276, 0xe73: 0x132a, 0xe74: 0x1352, 0xe75: 0x13c6,
+ 0xe76: 0x140e, 0xe77: 0x141a, 0xe78: 0x1422, 0xe79: 0x143a, 0xe7a: 0x144e, 0xe7b: 0x143e,
+ 0xe7c: 0x1456, 0xe7d: 0x1452, 0xe7e: 0x144a, 0xe7f: 0x145a,
// Block 0x3a, offset 0xe80
- 0xe80: 0x136e, 0xe81: 0x13aa, 0xe82: 0x13e6, 0xe83: 0x1416, 0xe84: 0x144e, 0xe85: 0x146e,
- 0xe86: 0x14ba, 0xe87: 0x14de, 0xe88: 0x14fe, 0xe89: 0x1512, 0xe8a: 0x1522, 0xe8b: 0x152e,
- 0xe8c: 0x153a, 0xe8d: 0x158e, 0xe8e: 0x162e, 0xe8f: 0x16b8, 0xe90: 0x16b3, 0xe91: 0x16e5,
- 0xe92: 0x060a, 0xe93: 0x0632, 0xe94: 0x0636, 0xe95: 0x1767, 0xe96: 0x1794, 0xe97: 0x180c,
- 0xe98: 0x161a, 0xe99: 0x162a,
+ 0xe80: 0x1466, 0xe81: 0x14a2, 0xe82: 0x14de, 0xe83: 0x150e, 0xe84: 0x1546, 0xe85: 0x1566,
+ 0xe86: 0x15b2, 0xe87: 0x15d6, 0xe88: 0x15f6, 0xe89: 0x160a, 0xe8a: 0x161a, 0xe8b: 0x1626,
+ 0xe8c: 0x1632, 0xe8d: 0x1686, 0xe8e: 0x1726, 0xe8f: 0x17e2, 0xe90: 0x17dd, 0xe91: 0x180f,
+ 0xe92: 0x0702, 0xe93: 0x072a, 0xe94: 0x072e, 0xe95: 0x1891, 0xe96: 0x18be, 0xe97: 0x1936,
+ 0xe98: 0x1712, 0xe99: 0x1722,
// Block 0x3b, offset 0xec0
- 0xec0: 0x19db, 0xec1: 0x19de, 0xec2: 0x19e1, 0xec3: 0x1c0e, 0xec4: 0x1c12, 0xec5: 0x1a65,
- 0xec6: 0x1a65,
- 0xed3: 0x1d7b, 0xed4: 0x1d6c, 0xed5: 0x1d71, 0xed6: 0x1d80, 0xed7: 0x1d76,
- 0xedd: 0x43a7,
- 0xede: 0x8116, 0xedf: 0x4419, 0xee0: 0x0230, 0xee1: 0x0218, 0xee2: 0x0221, 0xee3: 0x0224,
- 0xee4: 0x0227, 0xee5: 0x022a, 0xee6: 0x022d, 0xee7: 0x0233, 0xee8: 0x0236, 0xee9: 0x0017,
- 0xeea: 0x4407, 0xeeb: 0x440d, 0xeec: 0x450b, 0xeed: 0x4513, 0xeee: 0x435f, 0xeef: 0x4365,
- 0xef0: 0x436b, 0xef1: 0x4371, 0xef2: 0x437d, 0xef3: 0x4383, 0xef4: 0x4389, 0xef5: 0x4395,
- 0xef6: 0x439b, 0xef8: 0x43a1, 0xef9: 0x43ad, 0xefa: 0x43b3, 0xefb: 0x43b9,
- 0xefc: 0x43c5, 0xefe: 0x43cb,
+ 0xec0: 0x1b05, 0xec1: 0x1b08, 0xec2: 0x1b0b, 0xec3: 0x1d38, 0xec4: 0x1d3c, 0xec5: 0x1b8f,
+ 0xec6: 0x1b8f,
+ 0xed3: 0x1ea5, 0xed4: 0x1e96, 0xed5: 0x1e9b, 0xed6: 0x1eaa, 0xed7: 0x1ea0,
+ 0xedd: 0x448f,
+ 0xede: 0x8116, 0xedf: 0x4501, 0xee0: 0x0320, 0xee1: 0x0308, 0xee2: 0x0311, 0xee3: 0x0314,
+ 0xee4: 0x0317, 0xee5: 0x031a, 0xee6: 0x031d, 0xee7: 0x0323, 0xee8: 0x0326, 0xee9: 0x0017,
+ 0xeea: 0x44ef, 0xeeb: 0x44f5, 0xeec: 0x45f3, 0xeed: 0x45fb, 0xeee: 0x4447, 0xeef: 0x444d,
+ 0xef0: 0x4453, 0xef1: 0x4459, 0xef2: 0x4465, 0xef3: 0x446b, 0xef4: 0x4471, 0xef5: 0x447d,
+ 0xef6: 0x4483, 0xef8: 0x4489, 0xef9: 0x4495, 0xefa: 0x449b, 0xefb: 0x44a1,
+ 0xefc: 0x44ad, 0xefe: 0x44b3,
// Block 0x3c, offset 0xf00
- 0xf00: 0x43d1, 0xf01: 0x43d7, 0xf03: 0x43dd, 0xf04: 0x43e3,
- 0xf06: 0x43ef, 0xf07: 0x43f5, 0xf08: 0x43fb, 0xf09: 0x4401, 0xf0a: 0x4413, 0xf0b: 0x438f,
- 0xf0c: 0x4377, 0xf0d: 0x43bf, 0xf0e: 0x43e9, 0xf0f: 0x1d85, 0xf10: 0x029c, 0xf11: 0x029c,
- 0xf12: 0x02a5, 0xf13: 0x02a5, 0xf14: 0x02a5, 0xf15: 0x02a5, 0xf16: 0x02a8, 0xf17: 0x02a8,
- 0xf18: 0x02a8, 0xf19: 0x02a8, 0xf1a: 0x02ae, 0xf1b: 0x02ae, 0xf1c: 0x02ae, 0xf1d: 0x02ae,
- 0xf1e: 0x02a2, 0xf1f: 0x02a2, 0xf20: 0x02a2, 0xf21: 0x02a2, 0xf22: 0x02ab, 0xf23: 0x02ab,
- 0xf24: 0x02ab, 0xf25: 0x02ab, 0xf26: 0x029f, 0xf27: 0x029f, 0xf28: 0x029f, 0xf29: 0x029f,
- 0xf2a: 0x02d2, 0xf2b: 0x02d2, 0xf2c: 0x02d2, 0xf2d: 0x02d2, 0xf2e: 0x02d5, 0xf2f: 0x02d5,
- 0xf30: 0x02d5, 0xf31: 0x02d5, 0xf32: 0x02b4, 0xf33: 0x02b4, 0xf34: 0x02b4, 0xf35: 0x02b4,
- 0xf36: 0x02b1, 0xf37: 0x02b1, 0xf38: 0x02b1, 0xf39: 0x02b1, 0xf3a: 0x02b7, 0xf3b: 0x02b7,
- 0xf3c: 0x02b7, 0xf3d: 0x02b7, 0xf3e: 0x02ba, 0xf3f: 0x02ba,
+ 0xf00: 0x44b9, 0xf01: 0x44bf, 0xf03: 0x44c5, 0xf04: 0x44cb,
+ 0xf06: 0x44d7, 0xf07: 0x44dd, 0xf08: 0x44e3, 0xf09: 0x44e9, 0xf0a: 0x44fb, 0xf0b: 0x4477,
+ 0xf0c: 0x445f, 0xf0d: 0x44a7, 0xf0e: 0x44d1, 0xf0f: 0x1eaf, 0xf10: 0x038c, 0xf11: 0x038c,
+ 0xf12: 0x0395, 0xf13: 0x0395, 0xf14: 0x0395, 0xf15: 0x0395, 0xf16: 0x0398, 0xf17: 0x0398,
+ 0xf18: 0x0398, 0xf19: 0x0398, 0xf1a: 0x039e, 0xf1b: 0x039e, 0xf1c: 0x039e, 0xf1d: 0x039e,
+ 0xf1e: 0x0392, 0xf1f: 0x0392, 0xf20: 0x0392, 0xf21: 0x0392, 0xf22: 0x039b, 0xf23: 0x039b,
+ 0xf24: 0x039b, 0xf25: 0x039b, 0xf26: 0x038f, 0xf27: 0x038f, 0xf28: 0x038f, 0xf29: 0x038f,
+ 0xf2a: 0x03c2, 0xf2b: 0x03c2, 0xf2c: 0x03c2, 0xf2d: 0x03c2, 0xf2e: 0x03c5, 0xf2f: 0x03c5,
+ 0xf30: 0x03c5, 0xf31: 0x03c5, 0xf32: 0x03a4, 0xf33: 0x03a4, 0xf34: 0x03a4, 0xf35: 0x03a4,
+ 0xf36: 0x03a1, 0xf37: 0x03a1, 0xf38: 0x03a1, 0xf39: 0x03a1, 0xf3a: 0x03a7, 0xf3b: 0x03a7,
+ 0xf3c: 0x03a7, 0xf3d: 0x03a7, 0xf3e: 0x03aa, 0xf3f: 0x03aa,
// Block 0x3d, offset 0xf40
- 0xf40: 0x02ba, 0xf41: 0x02ba, 0xf42: 0x02c3, 0xf43: 0x02c3, 0xf44: 0x02c0, 0xf45: 0x02c0,
- 0xf46: 0x02c6, 0xf47: 0x02c6, 0xf48: 0x02bd, 0xf49: 0x02bd, 0xf4a: 0x02cc, 0xf4b: 0x02cc,
- 0xf4c: 0x02c9, 0xf4d: 0x02c9, 0xf4e: 0x02d8, 0xf4f: 0x02d8, 0xf50: 0x02d8, 0xf51: 0x02d8,
- 0xf52: 0x02de, 0xf53: 0x02de, 0xf54: 0x02de, 0xf55: 0x02de, 0xf56: 0x02e4, 0xf57: 0x02e4,
- 0xf58: 0x02e4, 0xf59: 0x02e4, 0xf5a: 0x02e1, 0xf5b: 0x02e1, 0xf5c: 0x02e1, 0xf5d: 0x02e1,
- 0xf5e: 0x02e7, 0xf5f: 0x02e7, 0xf60: 0x02ea, 0xf61: 0x02ea, 0xf62: 0x02ea, 0xf63: 0x02ea,
- 0xf64: 0x4485, 0xf65: 0x4485, 0xf66: 0x02f0, 0xf67: 0x02f0, 0xf68: 0x02f0, 0xf69: 0x02f0,
- 0xf6a: 0x02ed, 0xf6b: 0x02ed, 0xf6c: 0x02ed, 0xf6d: 0x02ed, 0xf6e: 0x030b, 0xf6f: 0x030b,
- 0xf70: 0x447f, 0xf71: 0x447f,
+ 0xf40: 0x03aa, 0xf41: 0x03aa, 0xf42: 0x03b3, 0xf43: 0x03b3, 0xf44: 0x03b0, 0xf45: 0x03b0,
+ 0xf46: 0x03b6, 0xf47: 0x03b6, 0xf48: 0x03ad, 0xf49: 0x03ad, 0xf4a: 0x03bc, 0xf4b: 0x03bc,
+ 0xf4c: 0x03b9, 0xf4d: 0x03b9, 0xf4e: 0x03c8, 0xf4f: 0x03c8, 0xf50: 0x03c8, 0xf51: 0x03c8,
+ 0xf52: 0x03ce, 0xf53: 0x03ce, 0xf54: 0x03ce, 0xf55: 0x03ce, 0xf56: 0x03d4, 0xf57: 0x03d4,
+ 0xf58: 0x03d4, 0xf59: 0x03d4, 0xf5a: 0x03d1, 0xf5b: 0x03d1, 0xf5c: 0x03d1, 0xf5d: 0x03d1,
+ 0xf5e: 0x03d7, 0xf5f: 0x03d7, 0xf60: 0x03da, 0xf61: 0x03da, 0xf62: 0x03da, 0xf63: 0x03da,
+ 0xf64: 0x456d, 0xf65: 0x456d, 0xf66: 0x03e0, 0xf67: 0x03e0, 0xf68: 0x03e0, 0xf69: 0x03e0,
+ 0xf6a: 0x03dd, 0xf6b: 0x03dd, 0xf6c: 0x03dd, 0xf6d: 0x03dd, 0xf6e: 0x03fb, 0xf6f: 0x03fb,
+ 0xf70: 0x4567, 0xf71: 0x4567,
// Block 0x3e, offset 0xf80
- 0xf93: 0x02db, 0xf94: 0x02db, 0xf95: 0x02db, 0xf96: 0x02db, 0xf97: 0x02f9,
- 0xf98: 0x02f9, 0xf99: 0x02f6, 0xf9a: 0x02f6, 0xf9b: 0x02fc, 0xf9c: 0x02fc, 0xf9d: 0x2055,
- 0xf9e: 0x0302, 0xf9f: 0x0302, 0xfa0: 0x02f3, 0xfa1: 0x02f3, 0xfa2: 0x02ff, 0xfa3: 0x02ff,
- 0xfa4: 0x0308, 0xfa5: 0x0308, 0xfa6: 0x0308, 0xfa7: 0x0308, 0xfa8: 0x0290, 0xfa9: 0x0290,
- 0xfaa: 0x25b0, 0xfab: 0x25b0, 0xfac: 0x2620, 0xfad: 0x2620, 0xfae: 0x25ef, 0xfaf: 0x25ef,
- 0xfb0: 0x260b, 0xfb1: 0x260b, 0xfb2: 0x2604, 0xfb3: 0x2604, 0xfb4: 0x2612, 0xfb5: 0x2612,
- 0xfb6: 0x2619, 0xfb7: 0x2619, 0xfb8: 0x2619, 0xfb9: 0x25f6, 0xfba: 0x25f6, 0xfbb: 0x25f6,
- 0xfbc: 0x0305, 0xfbd: 0x0305, 0xfbe: 0x0305, 0xfbf: 0x0305,
+ 0xf93: 0x03cb, 0xf94: 0x03cb, 0xf95: 0x03cb, 0xf96: 0x03cb, 0xf97: 0x03e9,
+ 0xf98: 0x03e9, 0xf99: 0x03e6, 0xf9a: 0x03e6, 0xf9b: 0x03ec, 0xf9c: 0x03ec, 0xf9d: 0x217f,
+ 0xf9e: 0x03f2, 0xf9f: 0x03f2, 0xfa0: 0x03e3, 0xfa1: 0x03e3, 0xfa2: 0x03ef, 0xfa3: 0x03ef,
+ 0xfa4: 0x03f8, 0xfa5: 0x03f8, 0xfa6: 0x03f8, 0xfa7: 0x03f8, 0xfa8: 0x0380, 0xfa9: 0x0380,
+ 0xfaa: 0x26da, 0xfab: 0x26da, 0xfac: 0x274a, 0xfad: 0x274a, 0xfae: 0x2719, 0xfaf: 0x2719,
+ 0xfb0: 0x2735, 0xfb1: 0x2735, 0xfb2: 0x272e, 0xfb3: 0x272e, 0xfb4: 0x273c, 0xfb5: 0x273c,
+ 0xfb6: 0x2743, 0xfb7: 0x2743, 0xfb8: 0x2743, 0xfb9: 0x2720, 0xfba: 0x2720, 0xfbb: 0x2720,
+ 0xfbc: 0x03f5, 0xfbd: 0x03f5, 0xfbe: 0x03f5, 0xfbf: 0x03f5,
// Block 0x3f, offset 0xfc0
- 0xfc0: 0x25b7, 0xfc1: 0x25be, 0xfc2: 0x25da, 0xfc3: 0x25f6, 0xfc4: 0x25fd, 0xfc5: 0x1d8f,
- 0xfc6: 0x1d94, 0xfc7: 0x1d99, 0xfc8: 0x1da8, 0xfc9: 0x1db7, 0xfca: 0x1dbc, 0xfcb: 0x1dc1,
- 0xfcc: 0x1dc6, 0xfcd: 0x1dcb, 0xfce: 0x1dda, 0xfcf: 0x1de9, 0xfd0: 0x1dee, 0xfd1: 0x1df3,
- 0xfd2: 0x1e02, 0xfd3: 0x1e11, 0xfd4: 0x1e16, 0xfd5: 0x1e1b, 0xfd6: 0x1e20, 0xfd7: 0x1e2f,
- 0xfd8: 0x1e34, 0xfd9: 0x1e43, 0xfda: 0x1e48, 0xfdb: 0x1e4d, 0xfdc: 0x1e5c, 0xfdd: 0x1e61,
- 0xfde: 0x1e66, 0xfdf: 0x1e70, 0xfe0: 0x1eac, 0xfe1: 0x1ebb, 0xfe2: 0x1eca, 0xfe3: 0x1ecf,
- 0xfe4: 0x1ed4, 0xfe5: 0x1ede, 0xfe6: 0x1eed, 0xfe7: 0x1ef2, 0xfe8: 0x1f01, 0xfe9: 0x1f06,
- 0xfea: 0x1f0b, 0xfeb: 0x1f1a, 0xfec: 0x1f1f, 0xfed: 0x1f2e, 0xfee: 0x1f33, 0xfef: 0x1f38,
- 0xff0: 0x1f3d, 0xff1: 0x1f42, 0xff2: 0x1f47, 0xff3: 0x1f4c, 0xff4: 0x1f51, 0xff5: 0x1f56,
- 0xff6: 0x1f5b, 0xff7: 0x1f60, 0xff8: 0x1f65, 0xff9: 0x1f6a, 0xffa: 0x1f6f, 0xffb: 0x1f74,
- 0xffc: 0x1f79, 0xffd: 0x1f7e, 0xffe: 0x1f83, 0xfff: 0x1f8d,
+ 0xfc0: 0x26e1, 0xfc1: 0x26e8, 0xfc2: 0x2704, 0xfc3: 0x2720, 0xfc4: 0x2727, 0xfc5: 0x1eb9,
+ 0xfc6: 0x1ebe, 0xfc7: 0x1ec3, 0xfc8: 0x1ed2, 0xfc9: 0x1ee1, 0xfca: 0x1ee6, 0xfcb: 0x1eeb,
+ 0xfcc: 0x1ef0, 0xfcd: 0x1ef5, 0xfce: 0x1f04, 0xfcf: 0x1f13, 0xfd0: 0x1f18, 0xfd1: 0x1f1d,
+ 0xfd2: 0x1f2c, 0xfd3: 0x1f3b, 0xfd4: 0x1f40, 0xfd5: 0x1f45, 0xfd6: 0x1f4a, 0xfd7: 0x1f59,
+ 0xfd8: 0x1f5e, 0xfd9: 0x1f6d, 0xfda: 0x1f72, 0xfdb: 0x1f77, 0xfdc: 0x1f86, 0xfdd: 0x1f8b,
+ 0xfde: 0x1f90, 0xfdf: 0x1f9a, 0xfe0: 0x1fd6, 0xfe1: 0x1fe5, 0xfe2: 0x1ff4, 0xfe3: 0x1ff9,
+ 0xfe4: 0x1ffe, 0xfe5: 0x2008, 0xfe6: 0x2017, 0xfe7: 0x201c, 0xfe8: 0x202b, 0xfe9: 0x2030,
+ 0xfea: 0x2035, 0xfeb: 0x2044, 0xfec: 0x2049, 0xfed: 0x2058, 0xfee: 0x205d, 0xfef: 0x2062,
+ 0xff0: 0x2067, 0xff1: 0x206c, 0xff2: 0x2071, 0xff3: 0x2076, 0xff4: 0x207b, 0xff5: 0x2080,
+ 0xff6: 0x2085, 0xff7: 0x208a, 0xff8: 0x208f, 0xff9: 0x2094, 0xffa: 0x2099, 0xffb: 0x209e,
+ 0xffc: 0x20a3, 0xffd: 0x20a8, 0xffe: 0x20ad, 0xfff: 0x20b7,
// Block 0x40, offset 0x1000
- 0x1000: 0x1f92, 0x1001: 0x1f97, 0x1002: 0x1f9c, 0x1003: 0x1fa6, 0x1004: 0x1fab, 0x1005: 0x1fb5,
- 0x1006: 0x1fba, 0x1007: 0x1fbf, 0x1008: 0x1fc4, 0x1009: 0x1fc9, 0x100a: 0x1fce, 0x100b: 0x1fd3,
- 0x100c: 0x1fd8, 0x100d: 0x1fdd, 0x100e: 0x1fec, 0x100f: 0x1ffb, 0x1010: 0x2000, 0x1011: 0x2005,
- 0x1012: 0x200a, 0x1013: 0x200f, 0x1014: 0x2014, 0x1015: 0x201e, 0x1016: 0x2023, 0x1017: 0x2028,
- 0x1018: 0x2037, 0x1019: 0x2046, 0x101a: 0x204b, 0x101b: 0x4437, 0x101c: 0x443d, 0x101d: 0x4473,
- 0x101e: 0x44ca, 0x101f: 0x44d1, 0x1020: 0x44d8, 0x1021: 0x44df, 0x1022: 0x44e6, 0x1023: 0x44ed,
- 0x1024: 0x25cc, 0x1025: 0x25d3, 0x1026: 0x25da, 0x1027: 0x25e1, 0x1028: 0x25f6, 0x1029: 0x25fd,
- 0x102a: 0x1d9e, 0x102b: 0x1da3, 0x102c: 0x1da8, 0x102d: 0x1dad, 0x102e: 0x1db7, 0x102f: 0x1dbc,
- 0x1030: 0x1dd0, 0x1031: 0x1dd5, 0x1032: 0x1dda, 0x1033: 0x1ddf, 0x1034: 0x1de9, 0x1035: 0x1dee,
- 0x1036: 0x1df8, 0x1037: 0x1dfd, 0x1038: 0x1e02, 0x1039: 0x1e07, 0x103a: 0x1e11, 0x103b: 0x1e16,
- 0x103c: 0x1f42, 0x103d: 0x1f47, 0x103e: 0x1f56, 0x103f: 0x1f5b,
+ 0x1000: 0x20bc, 0x1001: 0x20c1, 0x1002: 0x20c6, 0x1003: 0x20d0, 0x1004: 0x20d5, 0x1005: 0x20df,
+ 0x1006: 0x20e4, 0x1007: 0x20e9, 0x1008: 0x20ee, 0x1009: 0x20f3, 0x100a: 0x20f8, 0x100b: 0x20fd,
+ 0x100c: 0x2102, 0x100d: 0x2107, 0x100e: 0x2116, 0x100f: 0x2125, 0x1010: 0x212a, 0x1011: 0x212f,
+ 0x1012: 0x2134, 0x1013: 0x2139, 0x1014: 0x213e, 0x1015: 0x2148, 0x1016: 0x214d, 0x1017: 0x2152,
+ 0x1018: 0x2161, 0x1019: 0x2170, 0x101a: 0x2175, 0x101b: 0x451f, 0x101c: 0x4525, 0x101d: 0x455b,
+ 0x101e: 0x45b2, 0x101f: 0x45b9, 0x1020: 0x45c0, 0x1021: 0x45c7, 0x1022: 0x45ce, 0x1023: 0x45d5,
+ 0x1024: 0x26f6, 0x1025: 0x26fd, 0x1026: 0x2704, 0x1027: 0x270b, 0x1028: 0x2720, 0x1029: 0x2727,
+ 0x102a: 0x1ec8, 0x102b: 0x1ecd, 0x102c: 0x1ed2, 0x102d: 0x1ed7, 0x102e: 0x1ee1, 0x102f: 0x1ee6,
+ 0x1030: 0x1efa, 0x1031: 0x1eff, 0x1032: 0x1f04, 0x1033: 0x1f09, 0x1034: 0x1f13, 0x1035: 0x1f18,
+ 0x1036: 0x1f22, 0x1037: 0x1f27, 0x1038: 0x1f2c, 0x1039: 0x1f31, 0x103a: 0x1f3b, 0x103b: 0x1f40,
+ 0x103c: 0x206c, 0x103d: 0x2071, 0x103e: 0x2080, 0x103f: 0x2085,
// Block 0x41, offset 0x1040
- 0x1040: 0x1f60, 0x1041: 0x1f74, 0x1042: 0x1f79, 0x1043: 0x1f7e, 0x1044: 0x1f83, 0x1045: 0x1f9c,
- 0x1046: 0x1fa6, 0x1047: 0x1fab, 0x1048: 0x1fb0, 0x1049: 0x1fc4, 0x104a: 0x1fe2, 0x104b: 0x1fe7,
- 0x104c: 0x1fec, 0x104d: 0x1ff1, 0x104e: 0x1ffb, 0x104f: 0x2000, 0x1050: 0x4473, 0x1051: 0x202d,
- 0x1052: 0x2032, 0x1053: 0x2037, 0x1054: 0x203c, 0x1055: 0x2046, 0x1056: 0x204b, 0x1057: 0x25b7,
- 0x1058: 0x25be, 0x1059: 0x25c5, 0x105a: 0x25da, 0x105b: 0x25e8, 0x105c: 0x1d8f, 0x105d: 0x1d94,
- 0x105e: 0x1d99, 0x105f: 0x1da8, 0x1060: 0x1db2, 0x1061: 0x1dc1, 0x1062: 0x1dc6, 0x1063: 0x1dcb,
- 0x1064: 0x1dda, 0x1065: 0x1de4, 0x1066: 0x1e02, 0x1067: 0x1e1b, 0x1068: 0x1e20, 0x1069: 0x1e2f,
- 0x106a: 0x1e34, 0x106b: 0x1e43, 0x106c: 0x1e4d, 0x106d: 0x1e5c, 0x106e: 0x1e61, 0x106f: 0x1e66,
- 0x1070: 0x1e70, 0x1071: 0x1eac, 0x1072: 0x1eb1, 0x1073: 0x1ebb, 0x1074: 0x1eca, 0x1075: 0x1ecf,
- 0x1076: 0x1ed4, 0x1077: 0x1ede, 0x1078: 0x1eed, 0x1079: 0x1f01, 0x107a: 0x1f06, 0x107b: 0x1f0b,
- 0x107c: 0x1f1a, 0x107d: 0x1f1f, 0x107e: 0x1f2e, 0x107f: 0x1f33,
+ 0x1040: 0x208a, 0x1041: 0x209e, 0x1042: 0x20a3, 0x1043: 0x20a8, 0x1044: 0x20ad, 0x1045: 0x20c6,
+ 0x1046: 0x20d0, 0x1047: 0x20d5, 0x1048: 0x20da, 0x1049: 0x20ee, 0x104a: 0x210c, 0x104b: 0x2111,
+ 0x104c: 0x2116, 0x104d: 0x211b, 0x104e: 0x2125, 0x104f: 0x212a, 0x1050: 0x455b, 0x1051: 0x2157,
+ 0x1052: 0x215c, 0x1053: 0x2161, 0x1054: 0x2166, 0x1055: 0x2170, 0x1056: 0x2175, 0x1057: 0x26e1,
+ 0x1058: 0x26e8, 0x1059: 0x26ef, 0x105a: 0x2704, 0x105b: 0x2712, 0x105c: 0x1eb9, 0x105d: 0x1ebe,
+ 0x105e: 0x1ec3, 0x105f: 0x1ed2, 0x1060: 0x1edc, 0x1061: 0x1eeb, 0x1062: 0x1ef0, 0x1063: 0x1ef5,
+ 0x1064: 0x1f04, 0x1065: 0x1f0e, 0x1066: 0x1f2c, 0x1067: 0x1f45, 0x1068: 0x1f4a, 0x1069: 0x1f59,
+ 0x106a: 0x1f5e, 0x106b: 0x1f6d, 0x106c: 0x1f77, 0x106d: 0x1f86, 0x106e: 0x1f8b, 0x106f: 0x1f90,
+ 0x1070: 0x1f9a, 0x1071: 0x1fd6, 0x1072: 0x1fdb, 0x1073: 0x1fe5, 0x1074: 0x1ff4, 0x1075: 0x1ff9,
+ 0x1076: 0x1ffe, 0x1077: 0x2008, 0x1078: 0x2017, 0x1079: 0x202b, 0x107a: 0x2030, 0x107b: 0x2035,
+ 0x107c: 0x2044, 0x107d: 0x2049, 0x107e: 0x2058, 0x107f: 0x205d,
// Block 0x42, offset 0x1080
- 0x1080: 0x1f38, 0x1081: 0x1f3d, 0x1082: 0x1f4c, 0x1083: 0x1f51, 0x1084: 0x1f65, 0x1085: 0x1f6a,
- 0x1086: 0x1f6f, 0x1087: 0x1f74, 0x1088: 0x1f79, 0x1089: 0x1f8d, 0x108a: 0x1f92, 0x108b: 0x1f97,
- 0x108c: 0x1f9c, 0x108d: 0x1fa1, 0x108e: 0x1fb5, 0x108f: 0x1fba, 0x1090: 0x1fbf, 0x1091: 0x1fc4,
- 0x1092: 0x1fd3, 0x1093: 0x1fd8, 0x1094: 0x1fdd, 0x1095: 0x1fec, 0x1096: 0x1ff6, 0x1097: 0x2005,
- 0x1098: 0x200a, 0x1099: 0x4467, 0x109a: 0x201e, 0x109b: 0x2023, 0x109c: 0x2028, 0x109d: 0x2037,
- 0x109e: 0x2041, 0x109f: 0x25da, 0x10a0: 0x25e8, 0x10a1: 0x1da8, 0x10a2: 0x1db2, 0x10a3: 0x1dda,
- 0x10a4: 0x1de4, 0x10a5: 0x1e02, 0x10a6: 0x1e0c, 0x10a7: 0x1e70, 0x10a8: 0x1e75, 0x10a9: 0x1e98,
- 0x10aa: 0x1e9d, 0x10ab: 0x1f74, 0x10ac: 0x1f79, 0x10ad: 0x1f9c, 0x10ae: 0x1fec, 0x10af: 0x1ff6,
- 0x10b0: 0x2037, 0x10b1: 0x2041, 0x10b2: 0x451b, 0x10b3: 0x4523, 0x10b4: 0x452b, 0x10b5: 0x1ef7,
- 0x10b6: 0x1efc, 0x10b7: 0x1f10, 0x10b8: 0x1f15, 0x10b9: 0x1f24, 0x10ba: 0x1f29, 0x10bb: 0x1e7a,
- 0x10bc: 0x1e7f, 0x10bd: 0x1ea2, 0x10be: 0x1ea7, 0x10bf: 0x1e39,
+ 0x1080: 0x2062, 0x1081: 0x2067, 0x1082: 0x2076, 0x1083: 0x207b, 0x1084: 0x208f, 0x1085: 0x2094,
+ 0x1086: 0x2099, 0x1087: 0x209e, 0x1088: 0x20a3, 0x1089: 0x20b7, 0x108a: 0x20bc, 0x108b: 0x20c1,
+ 0x108c: 0x20c6, 0x108d: 0x20cb, 0x108e: 0x20df, 0x108f: 0x20e4, 0x1090: 0x20e9, 0x1091: 0x20ee,
+ 0x1092: 0x20fd, 0x1093: 0x2102, 0x1094: 0x2107, 0x1095: 0x2116, 0x1096: 0x2120, 0x1097: 0x212f,
+ 0x1098: 0x2134, 0x1099: 0x454f, 0x109a: 0x2148, 0x109b: 0x214d, 0x109c: 0x2152, 0x109d: 0x2161,
+ 0x109e: 0x216b, 0x109f: 0x2704, 0x10a0: 0x2712, 0x10a1: 0x1ed2, 0x10a2: 0x1edc, 0x10a3: 0x1f04,
+ 0x10a4: 0x1f0e, 0x10a5: 0x1f2c, 0x10a6: 0x1f36, 0x10a7: 0x1f9a, 0x10a8: 0x1f9f, 0x10a9: 0x1fc2,
+ 0x10aa: 0x1fc7, 0x10ab: 0x209e, 0x10ac: 0x20a3, 0x10ad: 0x20c6, 0x10ae: 0x2116, 0x10af: 0x2120,
+ 0x10b0: 0x2161, 0x10b1: 0x216b, 0x10b2: 0x4603, 0x10b3: 0x460b, 0x10b4: 0x4613, 0x10b5: 0x2021,
+ 0x10b6: 0x2026, 0x10b7: 0x203a, 0x10b8: 0x203f, 0x10b9: 0x204e, 0x10ba: 0x2053, 0x10bb: 0x1fa4,
+ 0x10bc: 0x1fa9, 0x10bd: 0x1fcc, 0x10be: 0x1fd1, 0x10bf: 0x1f63,
// Block 0x43, offset 0x10c0
- 0x10c0: 0x1e3e, 0x10c1: 0x1e25, 0x10c2: 0x1e2a, 0x10c3: 0x1e52, 0x10c4: 0x1e57, 0x10c5: 0x1ec0,
- 0x10c6: 0x1ec5, 0x10c7: 0x1ee3, 0x10c8: 0x1ee8, 0x10c9: 0x1e84, 0x10ca: 0x1e89, 0x10cb: 0x1e8e,
- 0x10cc: 0x1e98, 0x10cd: 0x1e93, 0x10ce: 0x1e6b, 0x10cf: 0x1eb6, 0x10d0: 0x1ed9, 0x10d1: 0x1ef7,
- 0x10d2: 0x1efc, 0x10d3: 0x1f10, 0x10d4: 0x1f15, 0x10d5: 0x1f24, 0x10d6: 0x1f29, 0x10d7: 0x1e7a,
- 0x10d8: 0x1e7f, 0x10d9: 0x1ea2, 0x10da: 0x1ea7, 0x10db: 0x1e39, 0x10dc: 0x1e3e, 0x10dd: 0x1e25,
- 0x10de: 0x1e2a, 0x10df: 0x1e52, 0x10e0: 0x1e57, 0x10e1: 0x1ec0, 0x10e2: 0x1ec5, 0x10e3: 0x1ee3,
- 0x10e4: 0x1ee8, 0x10e5: 0x1e84, 0x10e6: 0x1e89, 0x10e7: 0x1e8e, 0x10e8: 0x1e98, 0x10e9: 0x1e93,
- 0x10ea: 0x1e6b, 0x10eb: 0x1eb6, 0x10ec: 0x1ed9, 0x10ed: 0x1e84, 0x10ee: 0x1e89, 0x10ef: 0x1e8e,
- 0x10f0: 0x1e98, 0x10f1: 0x1e75, 0x10f2: 0x1e9d, 0x10f3: 0x1ef2, 0x10f4: 0x1e5c, 0x10f5: 0x1e61,
- 0x10f6: 0x1e66, 0x10f7: 0x1e84, 0x10f8: 0x1e89, 0x10f9: 0x1e8e, 0x10fa: 0x1ef2, 0x10fb: 0x1f01,
- 0x10fc: 0x441f, 0x10fd: 0x441f,
+ 0x10c0: 0x1f68, 0x10c1: 0x1f4f, 0x10c2: 0x1f54, 0x10c3: 0x1f7c, 0x10c4: 0x1f81, 0x10c5: 0x1fea,
+ 0x10c6: 0x1fef, 0x10c7: 0x200d, 0x10c8: 0x2012, 0x10c9: 0x1fae, 0x10ca: 0x1fb3, 0x10cb: 0x1fb8,
+ 0x10cc: 0x1fc2, 0x10cd: 0x1fbd, 0x10ce: 0x1f95, 0x10cf: 0x1fe0, 0x10d0: 0x2003, 0x10d1: 0x2021,
+ 0x10d2: 0x2026, 0x10d3: 0x203a, 0x10d4: 0x203f, 0x10d5: 0x204e, 0x10d6: 0x2053, 0x10d7: 0x1fa4,
+ 0x10d8: 0x1fa9, 0x10d9: 0x1fcc, 0x10da: 0x1fd1, 0x10db: 0x1f63, 0x10dc: 0x1f68, 0x10dd: 0x1f4f,
+ 0x10de: 0x1f54, 0x10df: 0x1f7c, 0x10e0: 0x1f81, 0x10e1: 0x1fea, 0x10e2: 0x1fef, 0x10e3: 0x200d,
+ 0x10e4: 0x2012, 0x10e5: 0x1fae, 0x10e6: 0x1fb3, 0x10e7: 0x1fb8, 0x10e8: 0x1fc2, 0x10e9: 0x1fbd,
+ 0x10ea: 0x1f95, 0x10eb: 0x1fe0, 0x10ec: 0x2003, 0x10ed: 0x1fae, 0x10ee: 0x1fb3, 0x10ef: 0x1fb8,
+ 0x10f0: 0x1fc2, 0x10f1: 0x1f9f, 0x10f2: 0x1fc7, 0x10f3: 0x201c, 0x10f4: 0x1f86, 0x10f5: 0x1f8b,
+ 0x10f6: 0x1f90, 0x10f7: 0x1fae, 0x10f8: 0x1fb3, 0x10f9: 0x1fb8, 0x10fa: 0x201c, 0x10fb: 0x202b,
+ 0x10fc: 0x4507, 0x10fd: 0x4507,
// Block 0x44, offset 0x1100
- 0x1110: 0x2317, 0x1111: 0x232c,
- 0x1112: 0x232c, 0x1113: 0x2333, 0x1114: 0x233a, 0x1115: 0x234f, 0x1116: 0x2356, 0x1117: 0x235d,
- 0x1118: 0x2380, 0x1119: 0x2380, 0x111a: 0x23a3, 0x111b: 0x239c, 0x111c: 0x23b8, 0x111d: 0x23aa,
- 0x111e: 0x23b1, 0x111f: 0x23d4, 0x1120: 0x23d4, 0x1121: 0x23cd, 0x1122: 0x23db, 0x1123: 0x23db,
- 0x1124: 0x2405, 0x1125: 0x2405, 0x1126: 0x2421, 0x1127: 0x23e9, 0x1128: 0x23e9, 0x1129: 0x23e2,
- 0x112a: 0x23f7, 0x112b: 0x23f7, 0x112c: 0x23fe, 0x112d: 0x23fe, 0x112e: 0x2428, 0x112f: 0x2436,
- 0x1130: 0x2436, 0x1131: 0x243d, 0x1132: 0x243d, 0x1133: 0x2444, 0x1134: 0x244b, 0x1135: 0x2452,
- 0x1136: 0x2459, 0x1137: 0x2459, 0x1138: 0x2460, 0x1139: 0x246e, 0x113a: 0x247c, 0x113b: 0x2475,
- 0x113c: 0x2483, 0x113d: 0x2483, 0x113e: 0x2498, 0x113f: 0x249f,
+ 0x1110: 0x2441, 0x1111: 0x2456,
+ 0x1112: 0x2456, 0x1113: 0x245d, 0x1114: 0x2464, 0x1115: 0x2479, 0x1116: 0x2480, 0x1117: 0x2487,
+ 0x1118: 0x24aa, 0x1119: 0x24aa, 0x111a: 0x24cd, 0x111b: 0x24c6, 0x111c: 0x24e2, 0x111d: 0x24d4,
+ 0x111e: 0x24db, 0x111f: 0x24fe, 0x1120: 0x24fe, 0x1121: 0x24f7, 0x1122: 0x2505, 0x1123: 0x2505,
+ 0x1124: 0x252f, 0x1125: 0x252f, 0x1126: 0x254b, 0x1127: 0x2513, 0x1128: 0x2513, 0x1129: 0x250c,
+ 0x112a: 0x2521, 0x112b: 0x2521, 0x112c: 0x2528, 0x112d: 0x2528, 0x112e: 0x2552, 0x112f: 0x2560,
+ 0x1130: 0x2560, 0x1131: 0x2567, 0x1132: 0x2567, 0x1133: 0x256e, 0x1134: 0x2575, 0x1135: 0x257c,
+ 0x1136: 0x2583, 0x1137: 0x2583, 0x1138: 0x258a, 0x1139: 0x2598, 0x113a: 0x25a6, 0x113b: 0x259f,
+ 0x113c: 0x25ad, 0x113d: 0x25ad, 0x113e: 0x25c2, 0x113f: 0x25c9,
// Block 0x45, offset 0x1140
- 0x1140: 0x24d0, 0x1141: 0x24de, 0x1142: 0x24d7, 0x1143: 0x24bb, 0x1144: 0x24bb, 0x1145: 0x24e5,
- 0x1146: 0x24e5, 0x1147: 0x24ec, 0x1148: 0x24ec, 0x1149: 0x2516, 0x114a: 0x251d, 0x114b: 0x2524,
- 0x114c: 0x24fa, 0x114d: 0x2508, 0x114e: 0x252b, 0x114f: 0x2532,
- 0x1152: 0x2501, 0x1153: 0x2586, 0x1154: 0x258d, 0x1155: 0x2563, 0x1156: 0x256a, 0x1157: 0x254e,
- 0x1158: 0x254e, 0x1159: 0x2555, 0x115a: 0x257f, 0x115b: 0x2578, 0x115c: 0x25a2, 0x115d: 0x25a2,
- 0x115e: 0x2310, 0x115f: 0x2325, 0x1160: 0x231e, 0x1161: 0x2348, 0x1162: 0x2341, 0x1163: 0x236b,
- 0x1164: 0x2364, 0x1165: 0x238e, 0x1166: 0x2372, 0x1167: 0x2387, 0x1168: 0x23bf, 0x1169: 0x240c,
- 0x116a: 0x23f0, 0x116b: 0x242f, 0x116c: 0x24c9, 0x116d: 0x24f3, 0x116e: 0x259b, 0x116f: 0x2594,
- 0x1170: 0x25a9, 0x1171: 0x2540, 0x1172: 0x24a6, 0x1173: 0x2571, 0x1174: 0x2498, 0x1175: 0x24d0,
- 0x1176: 0x2467, 0x1177: 0x24b4, 0x1178: 0x2547, 0x1179: 0x2539, 0x117a: 0x24c2, 0x117b: 0x24ad,
- 0x117c: 0x24c2, 0x117d: 0x2547, 0x117e: 0x2379, 0x117f: 0x2395,
+ 0x1140: 0x25fa, 0x1141: 0x2608, 0x1142: 0x2601, 0x1143: 0x25e5, 0x1144: 0x25e5, 0x1145: 0x260f,
+ 0x1146: 0x260f, 0x1147: 0x2616, 0x1148: 0x2616, 0x1149: 0x2640, 0x114a: 0x2647, 0x114b: 0x264e,
+ 0x114c: 0x2624, 0x114d: 0x2632, 0x114e: 0x2655, 0x114f: 0x265c,
+ 0x1152: 0x262b, 0x1153: 0x26b0, 0x1154: 0x26b7, 0x1155: 0x268d, 0x1156: 0x2694, 0x1157: 0x2678,
+ 0x1158: 0x2678, 0x1159: 0x267f, 0x115a: 0x26a9, 0x115b: 0x26a2, 0x115c: 0x26cc, 0x115d: 0x26cc,
+ 0x115e: 0x243a, 0x115f: 0x244f, 0x1160: 0x2448, 0x1161: 0x2472, 0x1162: 0x246b, 0x1163: 0x2495,
+ 0x1164: 0x248e, 0x1165: 0x24b8, 0x1166: 0x249c, 0x1167: 0x24b1, 0x1168: 0x24e9, 0x1169: 0x2536,
+ 0x116a: 0x251a, 0x116b: 0x2559, 0x116c: 0x25f3, 0x116d: 0x261d, 0x116e: 0x26c5, 0x116f: 0x26be,
+ 0x1170: 0x26d3, 0x1171: 0x266a, 0x1172: 0x25d0, 0x1173: 0x269b, 0x1174: 0x25c2, 0x1175: 0x25fa,
+ 0x1176: 0x2591, 0x1177: 0x25de, 0x1178: 0x2671, 0x1179: 0x2663, 0x117a: 0x25ec, 0x117b: 0x25d7,
+ 0x117c: 0x25ec, 0x117d: 0x2671, 0x117e: 0x24a3, 0x117f: 0x24bf,
// Block 0x46, offset 0x1180
- 0x1180: 0x250f, 0x1181: 0x248a, 0x1182: 0x2309, 0x1183: 0x24ad, 0x1184: 0x2452, 0x1185: 0x2421,
- 0x1186: 0x23c6, 0x1187: 0x255c,
- 0x11b0: 0x241a, 0x11b1: 0x2491, 0x11b2: 0x27cc, 0x11b3: 0x27c3, 0x11b4: 0x27f9, 0x11b5: 0x27e7,
- 0x11b6: 0x27d5, 0x11b7: 0x27f0, 0x11b8: 0x2802, 0x11b9: 0x2413, 0x11ba: 0x2c89, 0x11bb: 0x2b09,
- 0x11bc: 0x27de,
+ 0x1180: 0x2639, 0x1181: 0x25b4, 0x1182: 0x2433, 0x1183: 0x25d7, 0x1184: 0x257c, 0x1185: 0x254b,
+ 0x1186: 0x24f0, 0x1187: 0x2686,
+ 0x11b0: 0x2544, 0x11b1: 0x25bb, 0x11b2: 0x28f6, 0x11b3: 0x28ed, 0x11b4: 0x2923, 0x11b5: 0x2911,
+ 0x11b6: 0x28ff, 0x11b7: 0x291a, 0x11b8: 0x292c, 0x11b9: 0x253d, 0x11ba: 0x2db3, 0x11bb: 0x2c33,
+ 0x11bc: 0x2908,
// Block 0x47, offset 0x11c0
- 0x11d0: 0x0019, 0x11d1: 0x0486,
- 0x11d2: 0x048a, 0x11d3: 0x0035, 0x11d4: 0x0037, 0x11d5: 0x0003, 0x11d6: 0x003f, 0x11d7: 0x04c2,
- 0x11d8: 0x04c6, 0x11d9: 0x1b62,
+ 0x11d0: 0x0019, 0x11d1: 0x057e,
+ 0x11d2: 0x0582, 0x11d3: 0x0035, 0x11d4: 0x0037, 0x11d5: 0x0003, 0x11d6: 0x003f, 0x11d7: 0x05ba,
+ 0x11d8: 0x05be, 0x11d9: 0x1c8c,
0x11e0: 0x8133, 0x11e1: 0x8133, 0x11e2: 0x8133, 0x11e3: 0x8133,
0x11e4: 0x8133, 0x11e5: 0x8133, 0x11e6: 0x8133, 0x11e7: 0x812e, 0x11e8: 0x812e, 0x11e9: 0x812e,
0x11ea: 0x812e, 0x11eb: 0x812e, 0x11ec: 0x812e, 0x11ed: 0x812e, 0x11ee: 0x8133, 0x11ef: 0x8133,
- 0x11f0: 0x1876, 0x11f1: 0x0446, 0x11f2: 0x0442, 0x11f3: 0x007f, 0x11f4: 0x007f, 0x11f5: 0x0011,
- 0x11f6: 0x0013, 0x11f7: 0x00b7, 0x11f8: 0x00bb, 0x11f9: 0x04ba, 0x11fa: 0x04be, 0x11fb: 0x04ae,
- 0x11fc: 0x04b2, 0x11fd: 0x0496, 0x11fe: 0x049a, 0x11ff: 0x048e,
+ 0x11f0: 0x19a0, 0x11f1: 0x053a, 0x11f2: 0x0536, 0x11f3: 0x007f, 0x11f4: 0x007f, 0x11f5: 0x0011,
+ 0x11f6: 0x0013, 0x11f7: 0x00b7, 0x11f8: 0x00bb, 0x11f9: 0x05b2, 0x11fa: 0x05b6, 0x11fb: 0x05a6,
+ 0x11fc: 0x05aa, 0x11fd: 0x058e, 0x11fe: 0x0592, 0x11ff: 0x0586,
// Block 0x48, offset 0x1200
- 0x1200: 0x0492, 0x1201: 0x049e, 0x1202: 0x04a2, 0x1203: 0x04a6, 0x1204: 0x04aa,
- 0x1207: 0x0077, 0x1208: 0x007b, 0x1209: 0x4280, 0x120a: 0x4280, 0x120b: 0x4280,
- 0x120c: 0x4280, 0x120d: 0x007f, 0x120e: 0x007f, 0x120f: 0x007f, 0x1210: 0x0019, 0x1211: 0x0486,
+ 0x1200: 0x058a, 0x1201: 0x0596, 0x1202: 0x059a, 0x1203: 0x059e, 0x1204: 0x05a2,
+ 0x1207: 0x0077, 0x1208: 0x007b, 0x1209: 0x4368, 0x120a: 0x4368, 0x120b: 0x4368,
+ 0x120c: 0x4368, 0x120d: 0x007f, 0x120e: 0x007f, 0x120f: 0x007f, 0x1210: 0x0019, 0x1211: 0x057e,
0x1212: 0x001d, 0x1214: 0x0037, 0x1215: 0x0035, 0x1216: 0x003f, 0x1217: 0x0003,
- 0x1218: 0x0446, 0x1219: 0x0011, 0x121a: 0x0013, 0x121b: 0x00b7, 0x121c: 0x00bb, 0x121d: 0x04ba,
- 0x121e: 0x04be, 0x121f: 0x0007, 0x1220: 0x000d, 0x1221: 0x0015, 0x1222: 0x0017, 0x1223: 0x001b,
+ 0x1218: 0x053a, 0x1219: 0x0011, 0x121a: 0x0013, 0x121b: 0x00b7, 0x121c: 0x00bb, 0x121d: 0x05b2,
+ 0x121e: 0x05b6, 0x121f: 0x0007, 0x1220: 0x000d, 0x1221: 0x0015, 0x1222: 0x0017, 0x1223: 0x001b,
0x1224: 0x0039, 0x1225: 0x003d, 0x1226: 0x003b, 0x1228: 0x0079, 0x1229: 0x0009,
0x122a: 0x000b, 0x122b: 0x0041,
- 0x1230: 0x42c1, 0x1231: 0x4443, 0x1232: 0x42c6, 0x1234: 0x42cb,
- 0x1236: 0x42d0, 0x1237: 0x4449, 0x1238: 0x42d5, 0x1239: 0x444f, 0x123a: 0x42da, 0x123b: 0x4455,
- 0x123c: 0x42df, 0x123d: 0x445b, 0x123e: 0x42e4, 0x123f: 0x4461,
+ 0x1230: 0x43a9, 0x1231: 0x452b, 0x1232: 0x43ae, 0x1234: 0x43b3,
+ 0x1236: 0x43b8, 0x1237: 0x4531, 0x1238: 0x43bd, 0x1239: 0x4537, 0x123a: 0x43c2, 0x123b: 0x453d,
+ 0x123c: 0x43c7, 0x123d: 0x4543, 0x123e: 0x43cc, 0x123f: 0x4549,
// Block 0x49, offset 0x1240
- 0x1240: 0x0239, 0x1241: 0x4425, 0x1242: 0x4425, 0x1243: 0x442b, 0x1244: 0x442b, 0x1245: 0x446d,
- 0x1246: 0x446d, 0x1247: 0x4431, 0x1248: 0x4431, 0x1249: 0x4479, 0x124a: 0x4479, 0x124b: 0x4479,
- 0x124c: 0x4479, 0x124d: 0x023c, 0x124e: 0x023c, 0x124f: 0x023f, 0x1250: 0x023f, 0x1251: 0x023f,
- 0x1252: 0x023f, 0x1253: 0x0242, 0x1254: 0x0242, 0x1255: 0x0245, 0x1256: 0x0245, 0x1257: 0x0245,
- 0x1258: 0x0245, 0x1259: 0x0248, 0x125a: 0x0248, 0x125b: 0x0248, 0x125c: 0x0248, 0x125d: 0x024b,
- 0x125e: 0x024b, 0x125f: 0x024b, 0x1260: 0x024b, 0x1261: 0x024e, 0x1262: 0x024e, 0x1263: 0x024e,
- 0x1264: 0x024e, 0x1265: 0x0251, 0x1266: 0x0251, 0x1267: 0x0251, 0x1268: 0x0251, 0x1269: 0x0254,
- 0x126a: 0x0254, 0x126b: 0x0257, 0x126c: 0x0257, 0x126d: 0x025a, 0x126e: 0x025a, 0x126f: 0x025d,
- 0x1270: 0x025d, 0x1271: 0x0260, 0x1272: 0x0260, 0x1273: 0x0260, 0x1274: 0x0260, 0x1275: 0x0263,
- 0x1276: 0x0263, 0x1277: 0x0263, 0x1278: 0x0263, 0x1279: 0x0266, 0x127a: 0x0266, 0x127b: 0x0266,
- 0x127c: 0x0266, 0x127d: 0x0269, 0x127e: 0x0269, 0x127f: 0x0269,
+ 0x1240: 0x0329, 0x1241: 0x450d, 0x1242: 0x450d, 0x1243: 0x4513, 0x1244: 0x4513, 0x1245: 0x4555,
+ 0x1246: 0x4555, 0x1247: 0x4519, 0x1248: 0x4519, 0x1249: 0x4561, 0x124a: 0x4561, 0x124b: 0x4561,
+ 0x124c: 0x4561, 0x124d: 0x032c, 0x124e: 0x032c, 0x124f: 0x032f, 0x1250: 0x032f, 0x1251: 0x032f,
+ 0x1252: 0x032f, 0x1253: 0x0332, 0x1254: 0x0332, 0x1255: 0x0335, 0x1256: 0x0335, 0x1257: 0x0335,
+ 0x1258: 0x0335, 0x1259: 0x0338, 0x125a: 0x0338, 0x125b: 0x0338, 0x125c: 0x0338, 0x125d: 0x033b,
+ 0x125e: 0x033b, 0x125f: 0x033b, 0x1260: 0x033b, 0x1261: 0x033e, 0x1262: 0x033e, 0x1263: 0x033e,
+ 0x1264: 0x033e, 0x1265: 0x0341, 0x1266: 0x0341, 0x1267: 0x0341, 0x1268: 0x0341, 0x1269: 0x0344,
+ 0x126a: 0x0344, 0x126b: 0x0347, 0x126c: 0x0347, 0x126d: 0x034a, 0x126e: 0x034a, 0x126f: 0x034d,
+ 0x1270: 0x034d, 0x1271: 0x0350, 0x1272: 0x0350, 0x1273: 0x0350, 0x1274: 0x0350, 0x1275: 0x0353,
+ 0x1276: 0x0353, 0x1277: 0x0353, 0x1278: 0x0353, 0x1279: 0x0356, 0x127a: 0x0356, 0x127b: 0x0356,
+ 0x127c: 0x0356, 0x127d: 0x0359, 0x127e: 0x0359, 0x127f: 0x0359,
// Block 0x4a, offset 0x1280
- 0x1280: 0x0269, 0x1281: 0x026c, 0x1282: 0x026c, 0x1283: 0x026c, 0x1284: 0x026c, 0x1285: 0x026f,
- 0x1286: 0x026f, 0x1287: 0x026f, 0x1288: 0x026f, 0x1289: 0x0272, 0x128a: 0x0272, 0x128b: 0x0272,
- 0x128c: 0x0272, 0x128d: 0x0275, 0x128e: 0x0275, 0x128f: 0x0275, 0x1290: 0x0275, 0x1291: 0x0278,
- 0x1292: 0x0278, 0x1293: 0x0278, 0x1294: 0x0278, 0x1295: 0x027b, 0x1296: 0x027b, 0x1297: 0x027b,
- 0x1298: 0x027b, 0x1299: 0x027e, 0x129a: 0x027e, 0x129b: 0x027e, 0x129c: 0x027e, 0x129d: 0x0281,
- 0x129e: 0x0281, 0x129f: 0x0281, 0x12a0: 0x0281, 0x12a1: 0x0284, 0x12a2: 0x0284, 0x12a3: 0x0284,
- 0x12a4: 0x0284, 0x12a5: 0x0287, 0x12a6: 0x0287, 0x12a7: 0x0287, 0x12a8: 0x0287, 0x12a9: 0x028a,
- 0x12aa: 0x028a, 0x12ab: 0x028a, 0x12ac: 0x028a, 0x12ad: 0x028d, 0x12ae: 0x028d, 0x12af: 0x0290,
- 0x12b0: 0x0290, 0x12b1: 0x0293, 0x12b2: 0x0293, 0x12b3: 0x0293, 0x12b4: 0x0293, 0x12b5: 0x2e17,
- 0x12b6: 0x2e17, 0x12b7: 0x2e1f, 0x12b8: 0x2e1f, 0x12b9: 0x2e27, 0x12ba: 0x2e27, 0x12bb: 0x1f88,
- 0x12bc: 0x1f88,
+ 0x1280: 0x0359, 0x1281: 0x035c, 0x1282: 0x035c, 0x1283: 0x035c, 0x1284: 0x035c, 0x1285: 0x035f,
+ 0x1286: 0x035f, 0x1287: 0x035f, 0x1288: 0x035f, 0x1289: 0x0362, 0x128a: 0x0362, 0x128b: 0x0362,
+ 0x128c: 0x0362, 0x128d: 0x0365, 0x128e: 0x0365, 0x128f: 0x0365, 0x1290: 0x0365, 0x1291: 0x0368,
+ 0x1292: 0x0368, 0x1293: 0x0368, 0x1294: 0x0368, 0x1295: 0x036b, 0x1296: 0x036b, 0x1297: 0x036b,
+ 0x1298: 0x036b, 0x1299: 0x036e, 0x129a: 0x036e, 0x129b: 0x036e, 0x129c: 0x036e, 0x129d: 0x0371,
+ 0x129e: 0x0371, 0x129f: 0x0371, 0x12a0: 0x0371, 0x12a1: 0x0374, 0x12a2: 0x0374, 0x12a3: 0x0374,
+ 0x12a4: 0x0374, 0x12a5: 0x0377, 0x12a6: 0x0377, 0x12a7: 0x0377, 0x12a8: 0x0377, 0x12a9: 0x037a,
+ 0x12aa: 0x037a, 0x12ab: 0x037a, 0x12ac: 0x037a, 0x12ad: 0x037d, 0x12ae: 0x037d, 0x12af: 0x0380,
+ 0x12b0: 0x0380, 0x12b1: 0x0383, 0x12b2: 0x0383, 0x12b3: 0x0383, 0x12b4: 0x0383, 0x12b5: 0x2de7,
+ 0x12b6: 0x2de7, 0x12b7: 0x2def, 0x12b8: 0x2def, 0x12b9: 0x2df7, 0x12ba: 0x2df7, 0x12bb: 0x20b2,
+ 0x12bc: 0x20b2,
// Block 0x4b, offset 0x12c0
0x12c0: 0x0081, 0x12c1: 0x0083, 0x12c2: 0x0085, 0x12c3: 0x0087, 0x12c4: 0x0089, 0x12c5: 0x008b,
0x12c6: 0x008d, 0x12c7: 0x008f, 0x12c8: 0x0091, 0x12c9: 0x0093, 0x12ca: 0x0095, 0x12cb: 0x0097,
0x12cc: 0x0099, 0x12cd: 0x009b, 0x12ce: 0x009d, 0x12cf: 0x009f, 0x12d0: 0x00a1, 0x12d1: 0x00a3,
0x12d2: 0x00a5, 0x12d3: 0x00a7, 0x12d4: 0x00a9, 0x12d5: 0x00ab, 0x12d6: 0x00ad, 0x12d7: 0x00af,
0x12d8: 0x00b1, 0x12d9: 0x00b3, 0x12da: 0x00b5, 0x12db: 0x00b7, 0x12dc: 0x00b9, 0x12dd: 0x00bb,
- 0x12de: 0x00bd, 0x12df: 0x047a, 0x12e0: 0x047e, 0x12e1: 0x048a, 0x12e2: 0x049e, 0x12e3: 0x04a2,
- 0x12e4: 0x0486, 0x12e5: 0x05ae, 0x12e6: 0x05a6, 0x12e7: 0x04ca, 0x12e8: 0x04d2, 0x12e9: 0x04da,
- 0x12ea: 0x04e2, 0x12eb: 0x04ea, 0x12ec: 0x056e, 0x12ed: 0x0576, 0x12ee: 0x057e, 0x12ef: 0x0522,
- 0x12f0: 0x05b2, 0x12f1: 0x04ce, 0x12f2: 0x04d6, 0x12f3: 0x04de, 0x12f4: 0x04e6, 0x12f5: 0x04ee,
- 0x12f6: 0x04f2, 0x12f7: 0x04f6, 0x12f8: 0x04fa, 0x12f9: 0x04fe, 0x12fa: 0x0502, 0x12fb: 0x0506,
- 0x12fc: 0x050a, 0x12fd: 0x050e, 0x12fe: 0x0512, 0x12ff: 0x0516,
+ 0x12de: 0x00bd, 0x12df: 0x056e, 0x12e0: 0x0572, 0x12e1: 0x0582, 0x12e2: 0x0596, 0x12e3: 0x059a,
+ 0x12e4: 0x057e, 0x12e5: 0x06a6, 0x12e6: 0x069e, 0x12e7: 0x05c2, 0x12e8: 0x05ca, 0x12e9: 0x05d2,
+ 0x12ea: 0x05da, 0x12eb: 0x05e2, 0x12ec: 0x0666, 0x12ed: 0x066e, 0x12ee: 0x0676, 0x12ef: 0x061a,
+ 0x12f0: 0x06aa, 0x12f1: 0x05c6, 0x12f2: 0x05ce, 0x12f3: 0x05d6, 0x12f4: 0x05de, 0x12f5: 0x05e6,
+ 0x12f6: 0x05ea, 0x12f7: 0x05ee, 0x12f8: 0x05f2, 0x12f9: 0x05f6, 0x12fa: 0x05fa, 0x12fb: 0x05fe,
+ 0x12fc: 0x0602, 0x12fd: 0x0606, 0x12fe: 0x060a, 0x12ff: 0x060e,
// Block 0x4c, offset 0x1300
- 0x1300: 0x051a, 0x1301: 0x051e, 0x1302: 0x0526, 0x1303: 0x052a, 0x1304: 0x052e, 0x1305: 0x0532,
- 0x1306: 0x0536, 0x1307: 0x053a, 0x1308: 0x053e, 0x1309: 0x0542, 0x130a: 0x0546, 0x130b: 0x054a,
- 0x130c: 0x054e, 0x130d: 0x0552, 0x130e: 0x0556, 0x130f: 0x055a, 0x1310: 0x055e, 0x1311: 0x0562,
- 0x1312: 0x0566, 0x1313: 0x056a, 0x1314: 0x0572, 0x1315: 0x057a, 0x1316: 0x0582, 0x1317: 0x0586,
- 0x1318: 0x058a, 0x1319: 0x058e, 0x131a: 0x0592, 0x131b: 0x0596, 0x131c: 0x059a, 0x131d: 0x05aa,
- 0x131e: 0x4a8f, 0x131f: 0x4a95, 0x1320: 0x03c6, 0x1321: 0x0316, 0x1322: 0x031a, 0x1323: 0x4a52,
- 0x1324: 0x031e, 0x1325: 0x4a58, 0x1326: 0x4a5e, 0x1327: 0x0322, 0x1328: 0x0326, 0x1329: 0x032a,
- 0x132a: 0x4a64, 0x132b: 0x4a6a, 0x132c: 0x4a70, 0x132d: 0x4a76, 0x132e: 0x4a7c, 0x132f: 0x4a82,
- 0x1330: 0x036a, 0x1331: 0x032e, 0x1332: 0x0332, 0x1333: 0x0336, 0x1334: 0x037e, 0x1335: 0x033a,
- 0x1336: 0x033e, 0x1337: 0x0342, 0x1338: 0x0346, 0x1339: 0x034a, 0x133a: 0x034e, 0x133b: 0x0352,
- 0x133c: 0x0356, 0x133d: 0x035a, 0x133e: 0x035e,
+ 0x1300: 0x0612, 0x1301: 0x0616, 0x1302: 0x061e, 0x1303: 0x0622, 0x1304: 0x0626, 0x1305: 0x062a,
+ 0x1306: 0x062e, 0x1307: 0x0632, 0x1308: 0x0636, 0x1309: 0x063a, 0x130a: 0x063e, 0x130b: 0x0642,
+ 0x130c: 0x0646, 0x130d: 0x064a, 0x130e: 0x064e, 0x130f: 0x0652, 0x1310: 0x0656, 0x1311: 0x065a,
+ 0x1312: 0x065e, 0x1313: 0x0662, 0x1314: 0x066a, 0x1315: 0x0672, 0x1316: 0x067a, 0x1317: 0x067e,
+ 0x1318: 0x0682, 0x1319: 0x0686, 0x131a: 0x068a, 0x131b: 0x068e, 0x131c: 0x0692, 0x131d: 0x06a2,
+ 0x131e: 0x4c99, 0x131f: 0x4c9f, 0x1320: 0x04b6, 0x1321: 0x0406, 0x1322: 0x040a, 0x1323: 0x4bcc,
+ 0x1324: 0x040e, 0x1325: 0x4bd2, 0x1326: 0x4bd8, 0x1327: 0x0412, 0x1328: 0x0416, 0x1329: 0x041a,
+ 0x132a: 0x4bde, 0x132b: 0x4be4, 0x132c: 0x4bea, 0x132d: 0x4bf0, 0x132e: 0x4bf6, 0x132f: 0x4bfc,
+ 0x1330: 0x045a, 0x1331: 0x041e, 0x1332: 0x0422, 0x1333: 0x0426, 0x1334: 0x046e, 0x1335: 0x042a,
+ 0x1336: 0x042e, 0x1337: 0x0432, 0x1338: 0x0436, 0x1339: 0x043a, 0x133a: 0x043e, 0x133b: 0x0442,
+ 0x133c: 0x0446, 0x133d: 0x044a, 0x133e: 0x044e,
// Block 0x4d, offset 0x1340
- 0x1342: 0x49d4, 0x1343: 0x49da, 0x1344: 0x49e0, 0x1345: 0x49e6,
- 0x1346: 0x49ec, 0x1347: 0x49f2, 0x134a: 0x49f8, 0x134b: 0x49fe,
- 0x134c: 0x4a04, 0x134d: 0x4a0a, 0x134e: 0x4a10, 0x134f: 0x4a16,
- 0x1352: 0x4a1c, 0x1353: 0x4a22, 0x1354: 0x4a28, 0x1355: 0x4a2e, 0x1356: 0x4a34, 0x1357: 0x4a3a,
- 0x135a: 0x4a40, 0x135b: 0x4a46, 0x135c: 0x4a4c,
- 0x1360: 0x00bf, 0x1361: 0x00c2, 0x1362: 0x00cb, 0x1363: 0x427b,
- 0x1364: 0x00c8, 0x1365: 0x00c5, 0x1366: 0x044a, 0x1368: 0x046e, 0x1369: 0x044e,
- 0x136a: 0x0452, 0x136b: 0x0456, 0x136c: 0x045a, 0x136d: 0x0472, 0x136e: 0x0476,
+ 0x1342: 0x4b4e, 0x1343: 0x4b54, 0x1344: 0x4b5a, 0x1345: 0x4b60,
+ 0x1346: 0x4b66, 0x1347: 0x4b6c, 0x134a: 0x4b72, 0x134b: 0x4b78,
+ 0x134c: 0x4b7e, 0x134d: 0x4b84, 0x134e: 0x4b8a, 0x134f: 0x4b90,
+ 0x1352: 0x4b96, 0x1353: 0x4b9c, 0x1354: 0x4ba2, 0x1355: 0x4ba8, 0x1356: 0x4bae, 0x1357: 0x4bb4,
+ 0x135a: 0x4bba, 0x135b: 0x4bc0, 0x135c: 0x4bc6,
+ 0x1360: 0x00bf, 0x1361: 0x00c2, 0x1362: 0x00cb, 0x1363: 0x4363,
+ 0x1364: 0x00c8, 0x1365: 0x00c5, 0x1366: 0x053e, 0x1368: 0x0562, 0x1369: 0x0542,
+ 0x136a: 0x0546, 0x136b: 0x054a, 0x136c: 0x054e, 0x136d: 0x0566, 0x136e: 0x056a,
// Block 0x4e, offset 0x1380
- 0x1380: 0x0063, 0x1381: 0x0065, 0x1382: 0x0067, 0x1383: 0x0069, 0x1384: 0x006b, 0x1385: 0x006d,
- 0x1386: 0x006f, 0x1387: 0x0071, 0x1388: 0x0073, 0x1389: 0x0075, 0x138a: 0x0083, 0x138b: 0x0085,
- 0x138c: 0x0087, 0x138d: 0x0089, 0x138e: 0x008b, 0x138f: 0x008d, 0x1390: 0x008f, 0x1391: 0x0091,
- 0x1392: 0x0093, 0x1393: 0x0095, 0x1394: 0x0097, 0x1395: 0x0099, 0x1396: 0x009b, 0x1397: 0x009d,
- 0x1398: 0x009f, 0x1399: 0x00a1, 0x139a: 0x00a3, 0x139b: 0x00a5, 0x139c: 0x00a7, 0x139d: 0x00a9,
- 0x139e: 0x00ab, 0x139f: 0x00ad, 0x13a0: 0x00af, 0x13a1: 0x00b1, 0x13a2: 0x00b3, 0x13a3: 0x00b5,
- 0x13a4: 0x00dd, 0x13a5: 0x00f2, 0x13a8: 0x0176, 0x13a9: 0x0179,
- 0x13aa: 0x017c, 0x13ab: 0x017f, 0x13ac: 0x0182, 0x13ad: 0x0185, 0x13ae: 0x0188, 0x13af: 0x018b,
- 0x13b0: 0x018e, 0x13b1: 0x0191, 0x13b2: 0x0194, 0x13b3: 0x0197, 0x13b4: 0x019a, 0x13b5: 0x019d,
- 0x13b6: 0x01a0, 0x13b7: 0x01a3, 0x13b8: 0x01a6, 0x13b9: 0x018b, 0x13ba: 0x01a9, 0x13bb: 0x01ac,
- 0x13bc: 0x01af, 0x13bd: 0x01b2, 0x13be: 0x01b5, 0x13bf: 0x01b8,
+ 0x1381: 0x01f1, 0x1382: 0x01f4, 0x1383: 0x00d4, 0x1384: 0x01be, 0x1385: 0x010d,
+ 0x1387: 0x01d3, 0x1388: 0x174e, 0x1389: 0x01d9, 0x138a: 0x01d6, 0x138b: 0x0116,
+ 0x138c: 0x0119, 0x138d: 0x0526, 0x138e: 0x011c, 0x138f: 0x0128, 0x1390: 0x01e5, 0x1391: 0x013a,
+ 0x1392: 0x0134, 0x1393: 0x012e, 0x1394: 0x01c1, 0x1395: 0x00e0, 0x1396: 0x01c4, 0x1397: 0x0143,
+ 0x1398: 0x0194, 0x1399: 0x01e8, 0x139a: 0x01eb, 0x139b: 0x0152, 0x139c: 0x1756, 0x139d: 0x1742,
+ 0x139e: 0x0158, 0x139f: 0x175b, 0x13a0: 0x01a9, 0x13a1: 0x1760, 0x13a2: 0x00da, 0x13a3: 0x0170,
+ 0x13a4: 0x0173, 0x13a5: 0x00a3, 0x13a6: 0x017c, 0x13a7: 0x1765, 0x13a8: 0x0182, 0x13a9: 0x0185,
+ 0x13aa: 0x0188, 0x13ab: 0x01e2, 0x13ac: 0x01dc, 0x13ad: 0x1752, 0x13ae: 0x01df, 0x13af: 0x0197,
+ 0x13b0: 0x0576, 0x13b2: 0x01ac, 0x13b3: 0x01cd, 0x13b4: 0x01d0, 0x13b5: 0x01bb,
+ 0x13b6: 0x00f5, 0x13b7: 0x00f8, 0x13b8: 0x00fb, 0x13b9: 0x176a, 0x13ba: 0x176f,
// Block 0x4f, offset 0x13c0
- 0x13c0: 0x0200, 0x13c1: 0x0203, 0x13c2: 0x0206, 0x13c3: 0x045e, 0x13c4: 0x01ca, 0x13c5: 0x01d3,
- 0x13c6: 0x01d9, 0x13c7: 0x01fd, 0x13c8: 0x01ee, 0x13c9: 0x01eb, 0x13ca: 0x0209, 0x13cb: 0x020c,
- 0x13ce: 0x0021, 0x13cf: 0x0023, 0x13d0: 0x0025, 0x13d1: 0x0027,
- 0x13d2: 0x0029, 0x13d3: 0x002b, 0x13d4: 0x002d, 0x13d5: 0x002f, 0x13d6: 0x0031, 0x13d7: 0x0033,
- 0x13d8: 0x0021, 0x13d9: 0x0023, 0x13da: 0x0025, 0x13db: 0x0027, 0x13dc: 0x0029, 0x13dd: 0x002b,
- 0x13de: 0x002d, 0x13df: 0x002f, 0x13e0: 0x0031, 0x13e1: 0x0033, 0x13e2: 0x0021, 0x13e3: 0x0023,
- 0x13e4: 0x0025, 0x13e5: 0x0027, 0x13e6: 0x0029, 0x13e7: 0x002b, 0x13e8: 0x002d, 0x13e9: 0x002f,
- 0x13ea: 0x0031, 0x13eb: 0x0033, 0x13ec: 0x0021, 0x13ed: 0x0023, 0x13ee: 0x0025, 0x13ef: 0x0027,
- 0x13f0: 0x0029, 0x13f1: 0x002b, 0x13f2: 0x002d, 0x13f3: 0x002f, 0x13f4: 0x0031, 0x13f5: 0x0033,
- 0x13f6: 0x0021, 0x13f7: 0x0023, 0x13f8: 0x0025, 0x13f9: 0x0027, 0x13fa: 0x0029, 0x13fb: 0x002b,
- 0x13fc: 0x002d, 0x13fd: 0x002f, 0x13fe: 0x0031, 0x13ff: 0x0033,
+ 0x13c0: 0x0063, 0x13c1: 0x0065, 0x13c2: 0x0067, 0x13c3: 0x0069, 0x13c4: 0x006b, 0x13c5: 0x006d,
+ 0x13c6: 0x006f, 0x13c7: 0x0071, 0x13c8: 0x0073, 0x13c9: 0x0075, 0x13ca: 0x0083, 0x13cb: 0x0085,
+ 0x13cc: 0x0087, 0x13cd: 0x0089, 0x13ce: 0x008b, 0x13cf: 0x008d, 0x13d0: 0x008f, 0x13d1: 0x0091,
+ 0x13d2: 0x0093, 0x13d3: 0x0095, 0x13d4: 0x0097, 0x13d5: 0x0099, 0x13d6: 0x009b, 0x13d7: 0x009d,
+ 0x13d8: 0x009f, 0x13d9: 0x00a1, 0x13da: 0x00a3, 0x13db: 0x00a5, 0x13dc: 0x00a7, 0x13dd: 0x00a9,
+ 0x13de: 0x00ab, 0x13df: 0x00ad, 0x13e0: 0x00af, 0x13e1: 0x00b1, 0x13e2: 0x00b3, 0x13e3: 0x00b5,
+ 0x13e4: 0x00e3, 0x13e5: 0x0101, 0x13e8: 0x01f7, 0x13e9: 0x01fa,
+ 0x13ea: 0x01fd, 0x13eb: 0x0200, 0x13ec: 0x0203, 0x13ed: 0x0206, 0x13ee: 0x0209, 0x13ef: 0x020c,
+ 0x13f0: 0x020f, 0x13f1: 0x0212, 0x13f2: 0x0215, 0x13f3: 0x0218, 0x13f4: 0x021b, 0x13f5: 0x021e,
+ 0x13f6: 0x0221, 0x13f7: 0x0224, 0x13f8: 0x0227, 0x13f9: 0x020c, 0x13fa: 0x022a, 0x13fb: 0x022d,
+ 0x13fc: 0x0230, 0x13fd: 0x0233, 0x13fe: 0x0236, 0x13ff: 0x0239,
// Block 0x50, offset 0x1400
- 0x1400: 0x023c, 0x1401: 0x023f, 0x1402: 0x024b, 0x1403: 0x0254, 0x1405: 0x028d,
- 0x1406: 0x025d, 0x1407: 0x024e, 0x1408: 0x026c, 0x1409: 0x0293, 0x140a: 0x027e, 0x140b: 0x0281,
- 0x140c: 0x0284, 0x140d: 0x0287, 0x140e: 0x0260, 0x140f: 0x0272, 0x1410: 0x0278, 0x1411: 0x0266,
- 0x1412: 0x027b, 0x1413: 0x025a, 0x1414: 0x0263, 0x1415: 0x0245, 0x1416: 0x0248, 0x1417: 0x0251,
- 0x1418: 0x0257, 0x1419: 0x0269, 0x141a: 0x026f, 0x141b: 0x0275, 0x141c: 0x0296, 0x141d: 0x02e7,
- 0x141e: 0x02cf, 0x141f: 0x0299, 0x1421: 0x023f, 0x1422: 0x024b,
- 0x1424: 0x028a, 0x1427: 0x024e, 0x1429: 0x0293,
- 0x142a: 0x027e, 0x142b: 0x0281, 0x142c: 0x0284, 0x142d: 0x0287, 0x142e: 0x0260, 0x142f: 0x0272,
- 0x1430: 0x0278, 0x1431: 0x0266, 0x1432: 0x027b, 0x1434: 0x0263, 0x1435: 0x0245,
- 0x1436: 0x0248, 0x1437: 0x0251, 0x1439: 0x0269, 0x143b: 0x0275,
+ 0x1400: 0x0281, 0x1401: 0x0284, 0x1402: 0x0287, 0x1403: 0x0552, 0x1404: 0x024b, 0x1405: 0x0254,
+ 0x1406: 0x025a, 0x1407: 0x027e, 0x1408: 0x026f, 0x1409: 0x026c, 0x140a: 0x028a, 0x140b: 0x028d,
+ 0x140e: 0x0021, 0x140f: 0x0023, 0x1410: 0x0025, 0x1411: 0x0027,
+ 0x1412: 0x0029, 0x1413: 0x002b, 0x1414: 0x002d, 0x1415: 0x002f, 0x1416: 0x0031, 0x1417: 0x0033,
+ 0x1418: 0x0021, 0x1419: 0x0023, 0x141a: 0x0025, 0x141b: 0x0027, 0x141c: 0x0029, 0x141d: 0x002b,
+ 0x141e: 0x002d, 0x141f: 0x002f, 0x1420: 0x0031, 0x1421: 0x0033, 0x1422: 0x0021, 0x1423: 0x0023,
+ 0x1424: 0x0025, 0x1425: 0x0027, 0x1426: 0x0029, 0x1427: 0x002b, 0x1428: 0x002d, 0x1429: 0x002f,
+ 0x142a: 0x0031, 0x142b: 0x0033, 0x142c: 0x0021, 0x142d: 0x0023, 0x142e: 0x0025, 0x142f: 0x0027,
+ 0x1430: 0x0029, 0x1431: 0x002b, 0x1432: 0x002d, 0x1433: 0x002f, 0x1434: 0x0031, 0x1435: 0x0033,
+ 0x1436: 0x0021, 0x1437: 0x0023, 0x1438: 0x0025, 0x1439: 0x0027, 0x143a: 0x0029, 0x143b: 0x002b,
+ 0x143c: 0x002d, 0x143d: 0x002f, 0x143e: 0x0031, 0x143f: 0x0033,
// Block 0x51, offset 0x1440
- 0x1442: 0x024b,
- 0x1447: 0x024e, 0x1449: 0x0293, 0x144b: 0x0281,
- 0x144d: 0x0287, 0x144e: 0x0260, 0x144f: 0x0272, 0x1451: 0x0266,
- 0x1452: 0x027b, 0x1454: 0x0263, 0x1457: 0x0251,
- 0x1459: 0x0269, 0x145b: 0x0275, 0x145d: 0x02e7,
- 0x145f: 0x0299, 0x1461: 0x023f, 0x1462: 0x024b,
- 0x1464: 0x028a, 0x1467: 0x024e, 0x1468: 0x026c, 0x1469: 0x0293,
- 0x146a: 0x027e, 0x146c: 0x0284, 0x146d: 0x0287, 0x146e: 0x0260, 0x146f: 0x0272,
- 0x1470: 0x0278, 0x1471: 0x0266, 0x1472: 0x027b, 0x1474: 0x0263, 0x1475: 0x0245,
- 0x1476: 0x0248, 0x1477: 0x0251, 0x1479: 0x0269, 0x147a: 0x026f, 0x147b: 0x0275,
- 0x147c: 0x0296, 0x147e: 0x02cf,
+ 0x1440: 0x8133, 0x1441: 0x8133, 0x1442: 0x8133, 0x1443: 0x8133, 0x1444: 0x8133, 0x1445: 0x8133,
+ 0x1446: 0x8133, 0x1448: 0x8133, 0x1449: 0x8133, 0x144a: 0x8133, 0x144b: 0x8133,
+ 0x144c: 0x8133, 0x144d: 0x8133, 0x144e: 0x8133, 0x144f: 0x8133, 0x1450: 0x8133, 0x1451: 0x8133,
+ 0x1452: 0x8133, 0x1453: 0x8133, 0x1454: 0x8133, 0x1455: 0x8133, 0x1456: 0x8133, 0x1457: 0x8133,
+ 0x1458: 0x8133, 0x145b: 0x8133, 0x145c: 0x8133, 0x145d: 0x8133,
+ 0x145e: 0x8133, 0x145f: 0x8133, 0x1460: 0x8133, 0x1461: 0x8133, 0x1463: 0x8133,
+ 0x1464: 0x8133, 0x1466: 0x8133, 0x1467: 0x8133, 0x1468: 0x8133, 0x1469: 0x8133,
+ 0x146a: 0x8133,
+ 0x1470: 0x0290, 0x1471: 0x0293, 0x1472: 0x0296, 0x1473: 0x0299, 0x1474: 0x029c, 0x1475: 0x029f,
+ 0x1476: 0x02a2, 0x1477: 0x02a5, 0x1478: 0x02a8, 0x1479: 0x02ab, 0x147a: 0x02ae, 0x147b: 0x02b1,
+ 0x147c: 0x02b7, 0x147d: 0x02ba, 0x147e: 0x02bd, 0x147f: 0x02c0,
// Block 0x52, offset 0x1480
- 0x1480: 0x023c, 0x1481: 0x023f, 0x1482: 0x024b, 0x1483: 0x0254, 0x1484: 0x028a, 0x1485: 0x028d,
- 0x1486: 0x025d, 0x1487: 0x024e, 0x1488: 0x026c, 0x1489: 0x0293, 0x148b: 0x0281,
- 0x148c: 0x0284, 0x148d: 0x0287, 0x148e: 0x0260, 0x148f: 0x0272, 0x1490: 0x0278, 0x1491: 0x0266,
- 0x1492: 0x027b, 0x1493: 0x025a, 0x1494: 0x0263, 0x1495: 0x0245, 0x1496: 0x0248, 0x1497: 0x0251,
- 0x1498: 0x0257, 0x1499: 0x0269, 0x149a: 0x026f, 0x149b: 0x0275,
- 0x14a1: 0x023f, 0x14a2: 0x024b, 0x14a3: 0x0254,
- 0x14a5: 0x028d, 0x14a6: 0x025d, 0x14a7: 0x024e, 0x14a8: 0x026c, 0x14a9: 0x0293,
- 0x14ab: 0x0281, 0x14ac: 0x0284, 0x14ad: 0x0287, 0x14ae: 0x0260, 0x14af: 0x0272,
- 0x14b0: 0x0278, 0x14b1: 0x0266, 0x14b2: 0x027b, 0x14b3: 0x025a, 0x14b4: 0x0263, 0x14b5: 0x0245,
- 0x14b6: 0x0248, 0x14b7: 0x0251, 0x14b8: 0x0257, 0x14b9: 0x0269, 0x14ba: 0x026f, 0x14bb: 0x0275,
+ 0x1480: 0x02c3, 0x1481: 0x02c6, 0x1482: 0x02c9, 0x1483: 0x02cc, 0x1484: 0x02cf, 0x1485: 0x02d2,
+ 0x1486: 0x02d5, 0x1487: 0x02db, 0x1488: 0x02e1, 0x1489: 0x02e4, 0x148a: 0x1736, 0x148b: 0x0302,
+ 0x148c: 0x02ea, 0x148d: 0x02ed, 0x148e: 0x0305, 0x148f: 0x02f9, 0x1490: 0x02ff, 0x1491: 0x0290,
+ 0x1492: 0x0293, 0x1493: 0x0296, 0x1494: 0x0299, 0x1495: 0x029c, 0x1496: 0x029f, 0x1497: 0x02a2,
+ 0x1498: 0x02a5, 0x1499: 0x02a8, 0x149a: 0x02ab, 0x149b: 0x02ae, 0x149c: 0x02b7, 0x149d: 0x02ba,
+ 0x149e: 0x02c0, 0x149f: 0x02c6, 0x14a0: 0x02c9, 0x14a1: 0x02cc, 0x14a2: 0x02cf, 0x14a3: 0x02d2,
+ 0x14a4: 0x02d5, 0x14a5: 0x02d8, 0x14a6: 0x02db, 0x14a7: 0x02f3, 0x14a8: 0x02ea, 0x14a9: 0x02e7,
+ 0x14aa: 0x02f0, 0x14ab: 0x02f6, 0x14ac: 0x1732, 0x14ad: 0x02fc,
// Block 0x53, offset 0x14c0
- 0x14c0: 0x187c, 0x14c1: 0x1879, 0x14c2: 0x187f, 0x14c3: 0x18a3, 0x14c4: 0x18c7, 0x14c5: 0x18eb,
- 0x14c6: 0x190f, 0x14c7: 0x1918, 0x14c8: 0x191e, 0x14c9: 0x1924, 0x14ca: 0x192a,
- 0x14d0: 0x1a92, 0x14d1: 0x1a96,
- 0x14d2: 0x1a9a, 0x14d3: 0x1a9e, 0x14d4: 0x1aa2, 0x14d5: 0x1aa6, 0x14d6: 0x1aaa, 0x14d7: 0x1aae,
- 0x14d8: 0x1ab2, 0x14d9: 0x1ab6, 0x14da: 0x1aba, 0x14db: 0x1abe, 0x14dc: 0x1ac2, 0x14dd: 0x1ac6,
- 0x14de: 0x1aca, 0x14df: 0x1ace, 0x14e0: 0x1ad2, 0x14e1: 0x1ad6, 0x14e2: 0x1ada, 0x14e3: 0x1ade,
- 0x14e4: 0x1ae2, 0x14e5: 0x1ae6, 0x14e6: 0x1aea, 0x14e7: 0x1aee, 0x14e8: 0x1af2, 0x14e9: 0x1af6,
- 0x14ea: 0x272b, 0x14eb: 0x0047, 0x14ec: 0x0065, 0x14ed: 0x193f, 0x14ee: 0x19b7,
- 0x14f0: 0x0043, 0x14f1: 0x0045, 0x14f2: 0x0047, 0x14f3: 0x0049, 0x14f4: 0x004b, 0x14f5: 0x004d,
- 0x14f6: 0x004f, 0x14f7: 0x0051, 0x14f8: 0x0053, 0x14f9: 0x0055, 0x14fa: 0x0057, 0x14fb: 0x0059,
- 0x14fc: 0x005b, 0x14fd: 0x005d, 0x14fe: 0x005f, 0x14ff: 0x0061,
+ 0x14c0: 0x032c, 0x14c1: 0x032f, 0x14c2: 0x033b, 0x14c3: 0x0344, 0x14c5: 0x037d,
+ 0x14c6: 0x034d, 0x14c7: 0x033e, 0x14c8: 0x035c, 0x14c9: 0x0383, 0x14ca: 0x036e, 0x14cb: 0x0371,
+ 0x14cc: 0x0374, 0x14cd: 0x0377, 0x14ce: 0x0350, 0x14cf: 0x0362, 0x14d0: 0x0368, 0x14d1: 0x0356,
+ 0x14d2: 0x036b, 0x14d3: 0x034a, 0x14d4: 0x0353, 0x14d5: 0x0335, 0x14d6: 0x0338, 0x14d7: 0x0341,
+ 0x14d8: 0x0347, 0x14d9: 0x0359, 0x14da: 0x035f, 0x14db: 0x0365, 0x14dc: 0x0386, 0x14dd: 0x03d7,
+ 0x14de: 0x03bf, 0x14df: 0x0389, 0x14e1: 0x032f, 0x14e2: 0x033b,
+ 0x14e4: 0x037a, 0x14e7: 0x033e, 0x14e9: 0x0383,
+ 0x14ea: 0x036e, 0x14eb: 0x0371, 0x14ec: 0x0374, 0x14ed: 0x0377, 0x14ee: 0x0350, 0x14ef: 0x0362,
+ 0x14f0: 0x0368, 0x14f1: 0x0356, 0x14f2: 0x036b, 0x14f4: 0x0353, 0x14f5: 0x0335,
+ 0x14f6: 0x0338, 0x14f7: 0x0341, 0x14f9: 0x0359, 0x14fb: 0x0365,
// Block 0x54, offset 0x1500
- 0x1500: 0x26b3, 0x1501: 0x26c8, 0x1502: 0x0506,
- 0x1510: 0x0c12, 0x1511: 0x0a4a,
- 0x1512: 0x08d6, 0x1513: 0x45db, 0x1514: 0x071e, 0x1515: 0x09f2, 0x1516: 0x1332, 0x1517: 0x0a02,
- 0x1518: 0x072a, 0x1519: 0x0cda, 0x151a: 0x0eb2, 0x151b: 0x0cb2, 0x151c: 0x082a, 0x151d: 0x0b6e,
- 0x151e: 0x07c2, 0x151f: 0x0cba, 0x1520: 0x0816, 0x1521: 0x111a, 0x1522: 0x0f86, 0x1523: 0x138e,
- 0x1524: 0x09d6, 0x1525: 0x090e, 0x1526: 0x0e66, 0x1527: 0x0c1e, 0x1528: 0x0c4a, 0x1529: 0x06c2,
- 0x152a: 0x06ce, 0x152b: 0x140e, 0x152c: 0x0ade, 0x152d: 0x06ea, 0x152e: 0x08f2, 0x152f: 0x0c3e,
- 0x1530: 0x13b6, 0x1531: 0x0c16, 0x1532: 0x1072, 0x1533: 0x10ae, 0x1534: 0x08fa, 0x1535: 0x0e46,
- 0x1536: 0x0d0e, 0x1537: 0x0d0a, 0x1538: 0x0f9a, 0x1539: 0x082e, 0x153a: 0x095a, 0x153b: 0x1446,
+ 0x1502: 0x033b,
+ 0x1507: 0x033e, 0x1509: 0x0383, 0x150b: 0x0371,
+ 0x150d: 0x0377, 0x150e: 0x0350, 0x150f: 0x0362, 0x1511: 0x0356,
+ 0x1512: 0x036b, 0x1514: 0x0353, 0x1517: 0x0341,
+ 0x1519: 0x0359, 0x151b: 0x0365, 0x151d: 0x03d7,
+ 0x151f: 0x0389, 0x1521: 0x032f, 0x1522: 0x033b,
+ 0x1524: 0x037a, 0x1527: 0x033e, 0x1528: 0x035c, 0x1529: 0x0383,
+ 0x152a: 0x036e, 0x152c: 0x0374, 0x152d: 0x0377, 0x152e: 0x0350, 0x152f: 0x0362,
+ 0x1530: 0x0368, 0x1531: 0x0356, 0x1532: 0x036b, 0x1534: 0x0353, 0x1535: 0x0335,
+ 0x1536: 0x0338, 0x1537: 0x0341, 0x1539: 0x0359, 0x153a: 0x035f, 0x153b: 0x0365,
+ 0x153c: 0x0386, 0x153e: 0x03bf,
// Block 0x55, offset 0x1540
- 0x1540: 0x06fe, 0x1541: 0x06f6, 0x1542: 0x0706, 0x1543: 0x164a, 0x1544: 0x074a, 0x1545: 0x075a,
- 0x1546: 0x075e, 0x1547: 0x0766, 0x1548: 0x076e, 0x1549: 0x0772, 0x154a: 0x077e, 0x154b: 0x0776,
- 0x154c: 0x05b6, 0x154d: 0x165e, 0x154e: 0x0792, 0x154f: 0x0796, 0x1550: 0x079a, 0x1551: 0x07b6,
- 0x1552: 0x164f, 0x1553: 0x05ba, 0x1554: 0x07a2, 0x1555: 0x07c2, 0x1556: 0x1659, 0x1557: 0x07d2,
- 0x1558: 0x07da, 0x1559: 0x073a, 0x155a: 0x07e2, 0x155b: 0x07e6, 0x155c: 0x1834, 0x155d: 0x0802,
- 0x155e: 0x080a, 0x155f: 0x05c2, 0x1560: 0x0822, 0x1561: 0x0826, 0x1562: 0x082e, 0x1563: 0x0832,
- 0x1564: 0x05c6, 0x1565: 0x084a, 0x1566: 0x084e, 0x1567: 0x085a, 0x1568: 0x0866, 0x1569: 0x086a,
- 0x156a: 0x086e, 0x156b: 0x0876, 0x156c: 0x0896, 0x156d: 0x089a, 0x156e: 0x08a2, 0x156f: 0x08b2,
- 0x1570: 0x08ba, 0x1571: 0x08be, 0x1572: 0x08be, 0x1573: 0x08be, 0x1574: 0x166d, 0x1575: 0x0e96,
- 0x1576: 0x08d2, 0x1577: 0x08da, 0x1578: 0x1672, 0x1579: 0x08e6, 0x157a: 0x08ee, 0x157b: 0x08f6,
- 0x157c: 0x091e, 0x157d: 0x090a, 0x157e: 0x0916, 0x157f: 0x091a,
+ 0x1540: 0x032c, 0x1541: 0x032f, 0x1542: 0x033b, 0x1543: 0x0344, 0x1544: 0x037a, 0x1545: 0x037d,
+ 0x1546: 0x034d, 0x1547: 0x033e, 0x1548: 0x035c, 0x1549: 0x0383, 0x154b: 0x0371,
+ 0x154c: 0x0374, 0x154d: 0x0377, 0x154e: 0x0350, 0x154f: 0x0362, 0x1550: 0x0368, 0x1551: 0x0356,
+ 0x1552: 0x036b, 0x1553: 0x034a, 0x1554: 0x0353, 0x1555: 0x0335, 0x1556: 0x0338, 0x1557: 0x0341,
+ 0x1558: 0x0347, 0x1559: 0x0359, 0x155a: 0x035f, 0x155b: 0x0365,
+ 0x1561: 0x032f, 0x1562: 0x033b, 0x1563: 0x0344,
+ 0x1565: 0x037d, 0x1566: 0x034d, 0x1567: 0x033e, 0x1568: 0x035c, 0x1569: 0x0383,
+ 0x156b: 0x0371, 0x156c: 0x0374, 0x156d: 0x0377, 0x156e: 0x0350, 0x156f: 0x0362,
+ 0x1570: 0x0368, 0x1571: 0x0356, 0x1572: 0x036b, 0x1573: 0x034a, 0x1574: 0x0353, 0x1575: 0x0335,
+ 0x1576: 0x0338, 0x1577: 0x0341, 0x1578: 0x0347, 0x1579: 0x0359, 0x157a: 0x035f, 0x157b: 0x0365,
// Block 0x56, offset 0x1580
- 0x1580: 0x0922, 0x1581: 0x092a, 0x1582: 0x092e, 0x1583: 0x0936, 0x1584: 0x093e, 0x1585: 0x0942,
- 0x1586: 0x0942, 0x1587: 0x094a, 0x1588: 0x0952, 0x1589: 0x0956, 0x158a: 0x0962, 0x158b: 0x0986,
- 0x158c: 0x096a, 0x158d: 0x098a, 0x158e: 0x096e, 0x158f: 0x0976, 0x1590: 0x080e, 0x1591: 0x09d2,
- 0x1592: 0x099a, 0x1593: 0x099e, 0x1594: 0x09a2, 0x1595: 0x0996, 0x1596: 0x09aa, 0x1597: 0x09a6,
- 0x1598: 0x09be, 0x1599: 0x1677, 0x159a: 0x09da, 0x159b: 0x09de, 0x159c: 0x09e6, 0x159d: 0x09f2,
- 0x159e: 0x09fa, 0x159f: 0x0a16, 0x15a0: 0x167c, 0x15a1: 0x1681, 0x15a2: 0x0a22, 0x15a3: 0x0a26,
- 0x15a4: 0x0a2a, 0x15a5: 0x0a1e, 0x15a6: 0x0a32, 0x15a7: 0x05ca, 0x15a8: 0x05ce, 0x15a9: 0x0a3a,
- 0x15aa: 0x0a42, 0x15ab: 0x0a42, 0x15ac: 0x1686, 0x15ad: 0x0a5e, 0x15ae: 0x0a62, 0x15af: 0x0a66,
- 0x15b0: 0x0a6e, 0x15b1: 0x168b, 0x15b2: 0x0a76, 0x15b3: 0x0a7a, 0x15b4: 0x0b52, 0x15b5: 0x0a82,
- 0x15b6: 0x05d2, 0x15b7: 0x0a8e, 0x15b8: 0x0a9e, 0x15b9: 0x0aaa, 0x15ba: 0x0aa6, 0x15bb: 0x1695,
- 0x15bc: 0x0ab2, 0x15bd: 0x169a, 0x15be: 0x0abe, 0x15bf: 0x0aba,
+ 0x1580: 0x19a6, 0x1581: 0x19a3, 0x1582: 0x19a9, 0x1583: 0x19cd, 0x1584: 0x19f1, 0x1585: 0x1a15,
+ 0x1586: 0x1a39, 0x1587: 0x1a42, 0x1588: 0x1a48, 0x1589: 0x1a4e, 0x158a: 0x1a54,
+ 0x1590: 0x1bbc, 0x1591: 0x1bc0,
+ 0x1592: 0x1bc4, 0x1593: 0x1bc8, 0x1594: 0x1bcc, 0x1595: 0x1bd0, 0x1596: 0x1bd4, 0x1597: 0x1bd8,
+ 0x1598: 0x1bdc, 0x1599: 0x1be0, 0x159a: 0x1be4, 0x159b: 0x1be8, 0x159c: 0x1bec, 0x159d: 0x1bf0,
+ 0x159e: 0x1bf4, 0x159f: 0x1bf8, 0x15a0: 0x1bfc, 0x15a1: 0x1c00, 0x15a2: 0x1c04, 0x15a3: 0x1c08,
+ 0x15a4: 0x1c0c, 0x15a5: 0x1c10, 0x15a6: 0x1c14, 0x15a7: 0x1c18, 0x15a8: 0x1c1c, 0x15a9: 0x1c20,
+ 0x15aa: 0x2855, 0x15ab: 0x0047, 0x15ac: 0x0065, 0x15ad: 0x1a69, 0x15ae: 0x1ae1,
+ 0x15b0: 0x0043, 0x15b1: 0x0045, 0x15b2: 0x0047, 0x15b3: 0x0049, 0x15b4: 0x004b, 0x15b5: 0x004d,
+ 0x15b6: 0x004f, 0x15b7: 0x0051, 0x15b8: 0x0053, 0x15b9: 0x0055, 0x15ba: 0x0057, 0x15bb: 0x0059,
+ 0x15bc: 0x005b, 0x15bd: 0x005d, 0x15be: 0x005f, 0x15bf: 0x0061,
// Block 0x57, offset 0x15c0
- 0x15c0: 0x0ac2, 0x15c1: 0x0ad2, 0x15c2: 0x0ad6, 0x15c3: 0x05d6, 0x15c4: 0x0ae6, 0x15c5: 0x0aee,
- 0x15c6: 0x0af2, 0x15c7: 0x0af6, 0x15c8: 0x05da, 0x15c9: 0x169f, 0x15ca: 0x05de, 0x15cb: 0x0b12,
- 0x15cc: 0x0b16, 0x15cd: 0x0b1a, 0x15ce: 0x0b22, 0x15cf: 0x1866, 0x15d0: 0x0b3a, 0x15d1: 0x16a9,
- 0x15d2: 0x16a9, 0x15d3: 0x11da, 0x15d4: 0x0b4a, 0x15d5: 0x0b4a, 0x15d6: 0x05e2, 0x15d7: 0x16cc,
- 0x15d8: 0x179e, 0x15d9: 0x0b5a, 0x15da: 0x0b62, 0x15db: 0x05e6, 0x15dc: 0x0b76, 0x15dd: 0x0b86,
- 0x15de: 0x0b8a, 0x15df: 0x0b92, 0x15e0: 0x0ba2, 0x15e1: 0x05ee, 0x15e2: 0x05ea, 0x15e3: 0x0ba6,
- 0x15e4: 0x16ae, 0x15e5: 0x0baa, 0x15e6: 0x0bbe, 0x15e7: 0x0bc2, 0x15e8: 0x0bc6, 0x15e9: 0x0bc2,
- 0x15ea: 0x0bd2, 0x15eb: 0x0bd6, 0x15ec: 0x0be6, 0x15ed: 0x0bde, 0x15ee: 0x0be2, 0x15ef: 0x0bea,
- 0x15f0: 0x0bee, 0x15f1: 0x0bf2, 0x15f2: 0x0bfe, 0x15f3: 0x0c02, 0x15f4: 0x0c1a, 0x15f5: 0x0c22,
- 0x15f6: 0x0c32, 0x15f7: 0x0c46, 0x15f8: 0x16bd, 0x15f9: 0x0c42, 0x15fa: 0x0c36, 0x15fb: 0x0c4e,
- 0x15fc: 0x0c56, 0x15fd: 0x0c6a, 0x15fe: 0x16c2, 0x15ff: 0x0c72,
+ 0x15c0: 0x27dd, 0x15c1: 0x27f2, 0x15c2: 0x05fe,
+ 0x15d0: 0x0d0a, 0x15d1: 0x0b42,
+ 0x15d2: 0x09ce, 0x15d3: 0x473b, 0x15d4: 0x0816, 0x15d5: 0x0aea, 0x15d6: 0x142a, 0x15d7: 0x0afa,
+ 0x15d8: 0x0822, 0x15d9: 0x0dd2, 0x15da: 0x0faa, 0x15db: 0x0daa, 0x15dc: 0x0922, 0x15dd: 0x0c66,
+ 0x15de: 0x08ba, 0x15df: 0x0db2, 0x15e0: 0x090e, 0x15e1: 0x1212, 0x15e2: 0x107e, 0x15e3: 0x1486,
+ 0x15e4: 0x0ace, 0x15e5: 0x0a06, 0x15e6: 0x0f5e, 0x15e7: 0x0d16, 0x15e8: 0x0d42, 0x15e9: 0x07ba,
+ 0x15ea: 0x07c6, 0x15eb: 0x1506, 0x15ec: 0x0bd6, 0x15ed: 0x07e2, 0x15ee: 0x09ea, 0x15ef: 0x0d36,
+ 0x15f0: 0x14ae, 0x15f1: 0x0d0e, 0x15f2: 0x116a, 0x15f3: 0x11a6, 0x15f4: 0x09f2, 0x15f5: 0x0f3e,
+ 0x15f6: 0x0e06, 0x15f7: 0x0e02, 0x15f8: 0x1092, 0x15f9: 0x0926, 0x15fa: 0x0a52, 0x15fb: 0x153e,
// Block 0x58, offset 0x1600
- 0x1600: 0x0c66, 0x1601: 0x0c5e, 0x1602: 0x05f2, 0x1603: 0x0c7a, 0x1604: 0x0c82, 0x1605: 0x0c8a,
- 0x1606: 0x0c7e, 0x1607: 0x05f6, 0x1608: 0x0c9a, 0x1609: 0x0ca2, 0x160a: 0x16c7, 0x160b: 0x0cce,
- 0x160c: 0x0d02, 0x160d: 0x0cde, 0x160e: 0x0602, 0x160f: 0x0cea, 0x1610: 0x05fe, 0x1611: 0x05fa,
- 0x1612: 0x07c6, 0x1613: 0x07ca, 0x1614: 0x0d06, 0x1615: 0x0cee, 0x1616: 0x11ae, 0x1617: 0x0666,
- 0x1618: 0x0d12, 0x1619: 0x0d16, 0x161a: 0x0d1a, 0x161b: 0x0d2e, 0x161c: 0x0d26, 0x161d: 0x16e0,
- 0x161e: 0x0606, 0x161f: 0x0d42, 0x1620: 0x0d36, 0x1621: 0x0d52, 0x1622: 0x0d5a, 0x1623: 0x16ea,
- 0x1624: 0x0d5e, 0x1625: 0x0d4a, 0x1626: 0x0d66, 0x1627: 0x060a, 0x1628: 0x0d6a, 0x1629: 0x0d6e,
- 0x162a: 0x0d72, 0x162b: 0x0d7e, 0x162c: 0x16ef, 0x162d: 0x0d86, 0x162e: 0x060e, 0x162f: 0x0d92,
- 0x1630: 0x16f4, 0x1631: 0x0d96, 0x1632: 0x0612, 0x1633: 0x0da2, 0x1634: 0x0dae, 0x1635: 0x0dba,
- 0x1636: 0x0dbe, 0x1637: 0x16f9, 0x1638: 0x1690, 0x1639: 0x16fe, 0x163a: 0x0dde, 0x163b: 0x1703,
- 0x163c: 0x0dea, 0x163d: 0x0df2, 0x163e: 0x0de2, 0x163f: 0x0dfe,
+ 0x1600: 0x07f6, 0x1601: 0x07ee, 0x1602: 0x07fe, 0x1603: 0x1774, 0x1604: 0x0842, 0x1605: 0x0852,
+ 0x1606: 0x0856, 0x1607: 0x085e, 0x1608: 0x0866, 0x1609: 0x086a, 0x160a: 0x0876, 0x160b: 0x086e,
+ 0x160c: 0x06ae, 0x160d: 0x1788, 0x160e: 0x088a, 0x160f: 0x088e, 0x1610: 0x0892, 0x1611: 0x08ae,
+ 0x1612: 0x1779, 0x1613: 0x06b2, 0x1614: 0x089a, 0x1615: 0x08ba, 0x1616: 0x1783, 0x1617: 0x08ca,
+ 0x1618: 0x08d2, 0x1619: 0x0832, 0x161a: 0x08da, 0x161b: 0x08de, 0x161c: 0x195e, 0x161d: 0x08fa,
+ 0x161e: 0x0902, 0x161f: 0x06ba, 0x1620: 0x091a, 0x1621: 0x091e, 0x1622: 0x0926, 0x1623: 0x092a,
+ 0x1624: 0x06be, 0x1625: 0x0942, 0x1626: 0x0946, 0x1627: 0x0952, 0x1628: 0x095e, 0x1629: 0x0962,
+ 0x162a: 0x0966, 0x162b: 0x096e, 0x162c: 0x098e, 0x162d: 0x0992, 0x162e: 0x099a, 0x162f: 0x09aa,
+ 0x1630: 0x09b2, 0x1631: 0x09b6, 0x1632: 0x09b6, 0x1633: 0x09b6, 0x1634: 0x1797, 0x1635: 0x0f8e,
+ 0x1636: 0x09ca, 0x1637: 0x09d2, 0x1638: 0x179c, 0x1639: 0x09de, 0x163a: 0x09e6, 0x163b: 0x09ee,
+ 0x163c: 0x0a16, 0x163d: 0x0a02, 0x163e: 0x0a0e, 0x163f: 0x0a12,
// Block 0x59, offset 0x1640
- 0x1640: 0x0e0e, 0x1641: 0x0e1e, 0x1642: 0x0e12, 0x1643: 0x0e16, 0x1644: 0x0e22, 0x1645: 0x0e26,
- 0x1646: 0x1708, 0x1647: 0x0e0a, 0x1648: 0x0e3e, 0x1649: 0x0e42, 0x164a: 0x0616, 0x164b: 0x0e56,
- 0x164c: 0x0e52, 0x164d: 0x170d, 0x164e: 0x0e36, 0x164f: 0x0e72, 0x1650: 0x1712, 0x1651: 0x1717,
- 0x1652: 0x0e76, 0x1653: 0x0e8a, 0x1654: 0x0e86, 0x1655: 0x0e82, 0x1656: 0x061a, 0x1657: 0x0e8e,
- 0x1658: 0x0e9e, 0x1659: 0x0e9a, 0x165a: 0x0ea6, 0x165b: 0x1654, 0x165c: 0x0eb6, 0x165d: 0x171c,
- 0x165e: 0x0ec2, 0x165f: 0x1726, 0x1660: 0x0ed6, 0x1661: 0x0ee2, 0x1662: 0x0ef6, 0x1663: 0x172b,
- 0x1664: 0x0f0a, 0x1665: 0x0f0e, 0x1666: 0x1730, 0x1667: 0x1735, 0x1668: 0x0f2a, 0x1669: 0x0f3a,
- 0x166a: 0x061e, 0x166b: 0x0f3e, 0x166c: 0x0622, 0x166d: 0x0622, 0x166e: 0x0f56, 0x166f: 0x0f5a,
- 0x1670: 0x0f62, 0x1671: 0x0f66, 0x1672: 0x0f72, 0x1673: 0x0626, 0x1674: 0x0f8a, 0x1675: 0x173a,
- 0x1676: 0x0fa6, 0x1677: 0x173f, 0x1678: 0x0fb2, 0x1679: 0x16a4, 0x167a: 0x0fc2, 0x167b: 0x1744,
- 0x167c: 0x1749, 0x167d: 0x174e, 0x167e: 0x062a, 0x167f: 0x062e,
+ 0x1640: 0x0a1a, 0x1641: 0x0a22, 0x1642: 0x0a26, 0x1643: 0x0a2e, 0x1644: 0x0a36, 0x1645: 0x0a3a,
+ 0x1646: 0x0a3a, 0x1647: 0x0a42, 0x1648: 0x0a4a, 0x1649: 0x0a4e, 0x164a: 0x0a5a, 0x164b: 0x0a7e,
+ 0x164c: 0x0a62, 0x164d: 0x0a82, 0x164e: 0x0a66, 0x164f: 0x0a6e, 0x1650: 0x0906, 0x1651: 0x0aca,
+ 0x1652: 0x0a92, 0x1653: 0x0a96, 0x1654: 0x0a9a, 0x1655: 0x0a8e, 0x1656: 0x0aa2, 0x1657: 0x0a9e,
+ 0x1658: 0x0ab6, 0x1659: 0x17a1, 0x165a: 0x0ad2, 0x165b: 0x0ad6, 0x165c: 0x0ade, 0x165d: 0x0aea,
+ 0x165e: 0x0af2, 0x165f: 0x0b0e, 0x1660: 0x17a6, 0x1661: 0x17ab, 0x1662: 0x0b1a, 0x1663: 0x0b1e,
+ 0x1664: 0x0b22, 0x1665: 0x0b16, 0x1666: 0x0b2a, 0x1667: 0x06c2, 0x1668: 0x06c6, 0x1669: 0x0b32,
+ 0x166a: 0x0b3a, 0x166b: 0x0b3a, 0x166c: 0x17b0, 0x166d: 0x0b56, 0x166e: 0x0b5a, 0x166f: 0x0b5e,
+ 0x1670: 0x0b66, 0x1671: 0x17b5, 0x1672: 0x0b6e, 0x1673: 0x0b72, 0x1674: 0x0c4a, 0x1675: 0x0b7a,
+ 0x1676: 0x06ca, 0x1677: 0x0b86, 0x1678: 0x0b96, 0x1679: 0x0ba2, 0x167a: 0x0b9e, 0x167b: 0x17bf,
+ 0x167c: 0x0baa, 0x167d: 0x17c4, 0x167e: 0x0bb6, 0x167f: 0x0bb2,
// Block 0x5a, offset 0x1680
- 0x1680: 0x0ffa, 0x1681: 0x1758, 0x1682: 0x1753, 0x1683: 0x175d, 0x1684: 0x1762, 0x1685: 0x1002,
- 0x1686: 0x1006, 0x1687: 0x1006, 0x1688: 0x100e, 0x1689: 0x0636, 0x168a: 0x1012, 0x168b: 0x063a,
- 0x168c: 0x063e, 0x168d: 0x176c, 0x168e: 0x1026, 0x168f: 0x102e, 0x1690: 0x103a, 0x1691: 0x0642,
- 0x1692: 0x1771, 0x1693: 0x105e, 0x1694: 0x1776, 0x1695: 0x177b, 0x1696: 0x107e, 0x1697: 0x1096,
- 0x1698: 0x0646, 0x1699: 0x109e, 0x169a: 0x10a2, 0x169b: 0x10a6, 0x169c: 0x1780, 0x169d: 0x1785,
- 0x169e: 0x1785, 0x169f: 0x10be, 0x16a0: 0x064a, 0x16a1: 0x178a, 0x16a2: 0x10d2, 0x16a3: 0x10d6,
- 0x16a4: 0x064e, 0x16a5: 0x178f, 0x16a6: 0x10f2, 0x16a7: 0x0652, 0x16a8: 0x1102, 0x16a9: 0x10fa,
- 0x16aa: 0x110a, 0x16ab: 0x1799, 0x16ac: 0x1122, 0x16ad: 0x0656, 0x16ae: 0x112e, 0x16af: 0x1136,
- 0x16b0: 0x1146, 0x16b1: 0x065a, 0x16b2: 0x17a3, 0x16b3: 0x17a8, 0x16b4: 0x065e, 0x16b5: 0x17ad,
- 0x16b6: 0x115e, 0x16b7: 0x17b2, 0x16b8: 0x116a, 0x16b9: 0x1176, 0x16ba: 0x117e, 0x16bb: 0x17b7,
- 0x16bc: 0x17bc, 0x16bd: 0x1192, 0x16be: 0x17c1, 0x16bf: 0x119a,
+ 0x1680: 0x0bba, 0x1681: 0x0bca, 0x1682: 0x0bce, 0x1683: 0x06ce, 0x1684: 0x0bde, 0x1685: 0x0be6,
+ 0x1686: 0x0bea, 0x1687: 0x0bee, 0x1688: 0x06d2, 0x1689: 0x17c9, 0x168a: 0x06d6, 0x168b: 0x0c0a,
+ 0x168c: 0x0c0e, 0x168d: 0x0c12, 0x168e: 0x0c1a, 0x168f: 0x1990, 0x1690: 0x0c32, 0x1691: 0x17d3,
+ 0x1692: 0x17d3, 0x1693: 0x12d2, 0x1694: 0x0c42, 0x1695: 0x0c42, 0x1696: 0x06da, 0x1697: 0x17f6,
+ 0x1698: 0x18c8, 0x1699: 0x0c52, 0x169a: 0x0c5a, 0x169b: 0x06de, 0x169c: 0x0c6e, 0x169d: 0x0c7e,
+ 0x169e: 0x0c82, 0x169f: 0x0c8a, 0x16a0: 0x0c9a, 0x16a1: 0x06e6, 0x16a2: 0x06e2, 0x16a3: 0x0c9e,
+ 0x16a4: 0x17d8, 0x16a5: 0x0ca2, 0x16a6: 0x0cb6, 0x16a7: 0x0cba, 0x16a8: 0x0cbe, 0x16a9: 0x0cba,
+ 0x16aa: 0x0cca, 0x16ab: 0x0cce, 0x16ac: 0x0cde, 0x16ad: 0x0cd6, 0x16ae: 0x0cda, 0x16af: 0x0ce2,
+ 0x16b0: 0x0ce6, 0x16b1: 0x0cea, 0x16b2: 0x0cf6, 0x16b3: 0x0cfa, 0x16b4: 0x0d12, 0x16b5: 0x0d1a,
+ 0x16b6: 0x0d2a, 0x16b7: 0x0d3e, 0x16b8: 0x17e7, 0x16b9: 0x0d3a, 0x16ba: 0x0d2e, 0x16bb: 0x0d46,
+ 0x16bc: 0x0d4e, 0x16bd: 0x0d62, 0x16be: 0x17ec, 0x16bf: 0x0d6a,
// Block 0x5b, offset 0x16c0
- 0x16c0: 0x16d1, 0x16c1: 0x0662, 0x16c2: 0x11b2, 0x16c3: 0x11b6, 0x16c4: 0x066a, 0x16c5: 0x11ba,
- 0x16c6: 0x0a36, 0x16c7: 0x17c6, 0x16c8: 0x17cb, 0x16c9: 0x16d6, 0x16ca: 0x16db, 0x16cb: 0x11da,
- 0x16cc: 0x11de, 0x16cd: 0x13f6, 0x16ce: 0x066e, 0x16cf: 0x120a, 0x16d0: 0x1206, 0x16d1: 0x120e,
- 0x16d2: 0x0842, 0x16d3: 0x1212, 0x16d4: 0x1216, 0x16d5: 0x121a, 0x16d6: 0x1222, 0x16d7: 0x17d0,
- 0x16d8: 0x121e, 0x16d9: 0x1226, 0x16da: 0x123a, 0x16db: 0x123e, 0x16dc: 0x122a, 0x16dd: 0x1242,
- 0x16de: 0x1256, 0x16df: 0x126a, 0x16e0: 0x1236, 0x16e1: 0x124a, 0x16e2: 0x124e, 0x16e3: 0x1252,
- 0x16e4: 0x17d5, 0x16e5: 0x17df, 0x16e6: 0x17da, 0x16e7: 0x0672, 0x16e8: 0x1272, 0x16e9: 0x1276,
- 0x16ea: 0x127e, 0x16eb: 0x17f3, 0x16ec: 0x1282, 0x16ed: 0x17e4, 0x16ee: 0x0676, 0x16ef: 0x067a,
- 0x16f0: 0x17e9, 0x16f1: 0x17ee, 0x16f2: 0x067e, 0x16f3: 0x12a2, 0x16f4: 0x12a6, 0x16f5: 0x12aa,
- 0x16f6: 0x12ae, 0x16f7: 0x12ba, 0x16f8: 0x12b6, 0x16f9: 0x12c2, 0x16fa: 0x12be, 0x16fb: 0x12ce,
- 0x16fc: 0x12c6, 0x16fd: 0x12ca, 0x16fe: 0x12d2, 0x16ff: 0x0682,
+ 0x16c0: 0x0d5e, 0x16c1: 0x0d56, 0x16c2: 0x06ea, 0x16c3: 0x0d72, 0x16c4: 0x0d7a, 0x16c5: 0x0d82,
+ 0x16c6: 0x0d76, 0x16c7: 0x06ee, 0x16c8: 0x0d92, 0x16c9: 0x0d9a, 0x16ca: 0x17f1, 0x16cb: 0x0dc6,
+ 0x16cc: 0x0dfa, 0x16cd: 0x0dd6, 0x16ce: 0x06fa, 0x16cf: 0x0de2, 0x16d0: 0x06f6, 0x16d1: 0x06f2,
+ 0x16d2: 0x08be, 0x16d3: 0x08c2, 0x16d4: 0x0dfe, 0x16d5: 0x0de6, 0x16d6: 0x12a6, 0x16d7: 0x075e,
+ 0x16d8: 0x0e0a, 0x16d9: 0x0e0e, 0x16da: 0x0e12, 0x16db: 0x0e26, 0x16dc: 0x0e1e, 0x16dd: 0x180a,
+ 0x16de: 0x06fe, 0x16df: 0x0e3a, 0x16e0: 0x0e2e, 0x16e1: 0x0e4a, 0x16e2: 0x0e52, 0x16e3: 0x1814,
+ 0x16e4: 0x0e56, 0x16e5: 0x0e42, 0x16e6: 0x0e5e, 0x16e7: 0x0702, 0x16e8: 0x0e62, 0x16e9: 0x0e66,
+ 0x16ea: 0x0e6a, 0x16eb: 0x0e76, 0x16ec: 0x1819, 0x16ed: 0x0e7e, 0x16ee: 0x0706, 0x16ef: 0x0e8a,
+ 0x16f0: 0x181e, 0x16f1: 0x0e8e, 0x16f2: 0x070a, 0x16f3: 0x0e9a, 0x16f4: 0x0ea6, 0x16f5: 0x0eb2,
+ 0x16f6: 0x0eb6, 0x16f7: 0x1823, 0x16f8: 0x17ba, 0x16f9: 0x1828, 0x16fa: 0x0ed6, 0x16fb: 0x182d,
+ 0x16fc: 0x0ee2, 0x16fd: 0x0eea, 0x16fe: 0x0eda, 0x16ff: 0x0ef6,
// Block 0x5c, offset 0x1700
- 0x1700: 0x12da, 0x1701: 0x12de, 0x1702: 0x0686, 0x1703: 0x12ee, 0x1704: 0x12f2, 0x1705: 0x17f8,
- 0x1706: 0x12fe, 0x1707: 0x1302, 0x1708: 0x068a, 0x1709: 0x130e, 0x170a: 0x05be, 0x170b: 0x17fd,
- 0x170c: 0x1802, 0x170d: 0x068e, 0x170e: 0x0692, 0x170f: 0x133a, 0x1710: 0x1352, 0x1711: 0x136e,
- 0x1712: 0x137e, 0x1713: 0x1807, 0x1714: 0x1392, 0x1715: 0x1396, 0x1716: 0x13ae, 0x1717: 0x13ba,
- 0x1718: 0x1811, 0x1719: 0x1663, 0x171a: 0x13c6, 0x171b: 0x13c2, 0x171c: 0x13ce, 0x171d: 0x1668,
- 0x171e: 0x13da, 0x171f: 0x13e6, 0x1720: 0x1816, 0x1721: 0x181b, 0x1722: 0x1426, 0x1723: 0x1432,
- 0x1724: 0x143a, 0x1725: 0x1820, 0x1726: 0x143e, 0x1727: 0x146a, 0x1728: 0x1476, 0x1729: 0x147a,
- 0x172a: 0x1472, 0x172b: 0x1486, 0x172c: 0x148a, 0x172d: 0x1825, 0x172e: 0x1496, 0x172f: 0x0696,
- 0x1730: 0x149e, 0x1731: 0x182a, 0x1732: 0x069a, 0x1733: 0x14d6, 0x1734: 0x0ac6, 0x1735: 0x14ee,
- 0x1736: 0x182f, 0x1737: 0x1839, 0x1738: 0x069e, 0x1739: 0x06a2, 0x173a: 0x1516, 0x173b: 0x183e,
- 0x173c: 0x06a6, 0x173d: 0x1843, 0x173e: 0x152e, 0x173f: 0x152e,
+ 0x1700: 0x0f06, 0x1701: 0x0f16, 0x1702: 0x0f0a, 0x1703: 0x0f0e, 0x1704: 0x0f1a, 0x1705: 0x0f1e,
+ 0x1706: 0x1832, 0x1707: 0x0f02, 0x1708: 0x0f36, 0x1709: 0x0f3a, 0x170a: 0x070e, 0x170b: 0x0f4e,
+ 0x170c: 0x0f4a, 0x170d: 0x1837, 0x170e: 0x0f2e, 0x170f: 0x0f6a, 0x1710: 0x183c, 0x1711: 0x1841,
+ 0x1712: 0x0f6e, 0x1713: 0x0f82, 0x1714: 0x0f7e, 0x1715: 0x0f7a, 0x1716: 0x0712, 0x1717: 0x0f86,
+ 0x1718: 0x0f96, 0x1719: 0x0f92, 0x171a: 0x0f9e, 0x171b: 0x177e, 0x171c: 0x0fae, 0x171d: 0x1846,
+ 0x171e: 0x0fba, 0x171f: 0x1850, 0x1720: 0x0fce, 0x1721: 0x0fda, 0x1722: 0x0fee, 0x1723: 0x1855,
+ 0x1724: 0x1002, 0x1725: 0x1006, 0x1726: 0x185a, 0x1727: 0x185f, 0x1728: 0x1022, 0x1729: 0x1032,
+ 0x172a: 0x0716, 0x172b: 0x1036, 0x172c: 0x071a, 0x172d: 0x071a, 0x172e: 0x104e, 0x172f: 0x1052,
+ 0x1730: 0x105a, 0x1731: 0x105e, 0x1732: 0x106a, 0x1733: 0x071e, 0x1734: 0x1082, 0x1735: 0x1864,
+ 0x1736: 0x109e, 0x1737: 0x1869, 0x1738: 0x10aa, 0x1739: 0x17ce, 0x173a: 0x10ba, 0x173b: 0x186e,
+ 0x173c: 0x1873, 0x173d: 0x1878, 0x173e: 0x0722, 0x173f: 0x0726,
// Block 0x5d, offset 0x1740
- 0x1740: 0x1536, 0x1741: 0x1848, 0x1742: 0x154e, 0x1743: 0x06aa, 0x1744: 0x155e, 0x1745: 0x156a,
- 0x1746: 0x1572, 0x1747: 0x157a, 0x1748: 0x06ae, 0x1749: 0x184d, 0x174a: 0x158e, 0x174b: 0x15aa,
- 0x174c: 0x15b6, 0x174d: 0x06b2, 0x174e: 0x06b6, 0x174f: 0x15ba, 0x1750: 0x1852, 0x1751: 0x06ba,
- 0x1752: 0x1857, 0x1753: 0x185c, 0x1754: 0x1861, 0x1755: 0x15de, 0x1756: 0x06be, 0x1757: 0x15f2,
- 0x1758: 0x15fa, 0x1759: 0x15fe, 0x175a: 0x1606, 0x175b: 0x160e, 0x175c: 0x1616, 0x175d: 0x186b,
+ 0x1740: 0x10f2, 0x1741: 0x1882, 0x1742: 0x187d, 0x1743: 0x1887, 0x1744: 0x188c, 0x1745: 0x10fa,
+ 0x1746: 0x10fe, 0x1747: 0x10fe, 0x1748: 0x1106, 0x1749: 0x072e, 0x174a: 0x110a, 0x174b: 0x0732,
+ 0x174c: 0x0736, 0x174d: 0x1896, 0x174e: 0x111e, 0x174f: 0x1126, 0x1750: 0x1132, 0x1751: 0x073a,
+ 0x1752: 0x189b, 0x1753: 0x1156, 0x1754: 0x18a0, 0x1755: 0x18a5, 0x1756: 0x1176, 0x1757: 0x118e,
+ 0x1758: 0x073e, 0x1759: 0x1196, 0x175a: 0x119a, 0x175b: 0x119e, 0x175c: 0x18aa, 0x175d: 0x18af,
+ 0x175e: 0x18af, 0x175f: 0x11b6, 0x1760: 0x0742, 0x1761: 0x18b4, 0x1762: 0x11ca, 0x1763: 0x11ce,
+ 0x1764: 0x0746, 0x1765: 0x18b9, 0x1766: 0x11ea, 0x1767: 0x074a, 0x1768: 0x11fa, 0x1769: 0x11f2,
+ 0x176a: 0x1202, 0x176b: 0x18c3, 0x176c: 0x121a, 0x176d: 0x074e, 0x176e: 0x1226, 0x176f: 0x122e,
+ 0x1770: 0x123e, 0x1771: 0x0752, 0x1772: 0x18cd, 0x1773: 0x18d2, 0x1774: 0x0756, 0x1775: 0x18d7,
+ 0x1776: 0x1256, 0x1777: 0x18dc, 0x1778: 0x1262, 0x1779: 0x126e, 0x177a: 0x1276, 0x177b: 0x18e1,
+ 0x177c: 0x18e6, 0x177d: 0x128a, 0x177e: 0x18eb, 0x177f: 0x1292,
+ // Block 0x5e, offset 0x1780
+ 0x1780: 0x17fb, 0x1781: 0x075a, 0x1782: 0x12aa, 0x1783: 0x12ae, 0x1784: 0x0762, 0x1785: 0x12b2,
+ 0x1786: 0x0b2e, 0x1787: 0x18f0, 0x1788: 0x18f5, 0x1789: 0x1800, 0x178a: 0x1805, 0x178b: 0x12d2,
+ 0x178c: 0x12d6, 0x178d: 0x14ee, 0x178e: 0x0766, 0x178f: 0x1302, 0x1790: 0x12fe, 0x1791: 0x1306,
+ 0x1792: 0x093a, 0x1793: 0x130a, 0x1794: 0x130e, 0x1795: 0x1312, 0x1796: 0x131a, 0x1797: 0x18fa,
+ 0x1798: 0x1316, 0x1799: 0x131e, 0x179a: 0x1332, 0x179b: 0x1336, 0x179c: 0x1322, 0x179d: 0x133a,
+ 0x179e: 0x134e, 0x179f: 0x1362, 0x17a0: 0x132e, 0x17a1: 0x1342, 0x17a2: 0x1346, 0x17a3: 0x134a,
+ 0x17a4: 0x18ff, 0x17a5: 0x1909, 0x17a6: 0x1904, 0x17a7: 0x076a, 0x17a8: 0x136a, 0x17a9: 0x136e,
+ 0x17aa: 0x1376, 0x17ab: 0x191d, 0x17ac: 0x137a, 0x17ad: 0x190e, 0x17ae: 0x076e, 0x17af: 0x0772,
+ 0x17b0: 0x1913, 0x17b1: 0x1918, 0x17b2: 0x0776, 0x17b3: 0x139a, 0x17b4: 0x139e, 0x17b5: 0x13a2,
+ 0x17b6: 0x13a6, 0x17b7: 0x13b2, 0x17b8: 0x13ae, 0x17b9: 0x13ba, 0x17ba: 0x13b6, 0x17bb: 0x13c6,
+ 0x17bc: 0x13be, 0x17bd: 0x13c2, 0x17be: 0x13ca, 0x17bf: 0x077a,
+ // Block 0x5f, offset 0x17c0
+ 0x17c0: 0x13d2, 0x17c1: 0x13d6, 0x17c2: 0x077e, 0x17c3: 0x13e6, 0x17c4: 0x13ea, 0x17c5: 0x1922,
+ 0x17c6: 0x13f6, 0x17c7: 0x13fa, 0x17c8: 0x0782, 0x17c9: 0x1406, 0x17ca: 0x06b6, 0x17cb: 0x1927,
+ 0x17cc: 0x192c, 0x17cd: 0x0786, 0x17ce: 0x078a, 0x17cf: 0x1432, 0x17d0: 0x144a, 0x17d1: 0x1466,
+ 0x17d2: 0x1476, 0x17d3: 0x1931, 0x17d4: 0x148a, 0x17d5: 0x148e, 0x17d6: 0x14a6, 0x17d7: 0x14b2,
+ 0x17d8: 0x193b, 0x17d9: 0x178d, 0x17da: 0x14be, 0x17db: 0x14ba, 0x17dc: 0x14c6, 0x17dd: 0x1792,
+ 0x17de: 0x14d2, 0x17df: 0x14de, 0x17e0: 0x1940, 0x17e1: 0x1945, 0x17e2: 0x151e, 0x17e3: 0x152a,
+ 0x17e4: 0x1532, 0x17e5: 0x194a, 0x17e6: 0x1536, 0x17e7: 0x1562, 0x17e8: 0x156e, 0x17e9: 0x1572,
+ 0x17ea: 0x156a, 0x17eb: 0x157e, 0x17ec: 0x1582, 0x17ed: 0x194f, 0x17ee: 0x158e, 0x17ef: 0x078e,
+ 0x17f0: 0x1596, 0x17f1: 0x1954, 0x17f2: 0x0792, 0x17f3: 0x15ce, 0x17f4: 0x0bbe, 0x17f5: 0x15e6,
+ 0x17f6: 0x1959, 0x17f7: 0x1963, 0x17f8: 0x0796, 0x17f9: 0x079a, 0x17fa: 0x160e, 0x17fb: 0x1968,
+ 0x17fc: 0x079e, 0x17fd: 0x196d, 0x17fe: 0x1626, 0x17ff: 0x1626,
+ // Block 0x60, offset 0x1800
+ 0x1800: 0x162e, 0x1801: 0x1972, 0x1802: 0x1646, 0x1803: 0x07a2, 0x1804: 0x1656, 0x1805: 0x1662,
+ 0x1806: 0x166a, 0x1807: 0x1672, 0x1808: 0x07a6, 0x1809: 0x1977, 0x180a: 0x1686, 0x180b: 0x16a2,
+ 0x180c: 0x16ae, 0x180d: 0x07aa, 0x180e: 0x07ae, 0x180f: 0x16b2, 0x1810: 0x197c, 0x1811: 0x07b2,
+ 0x1812: 0x1981, 0x1813: 0x1986, 0x1814: 0x198b, 0x1815: 0x16d6, 0x1816: 0x07b6, 0x1817: 0x16ea,
+ 0x1818: 0x16f2, 0x1819: 0x16f6, 0x181a: 0x16fe, 0x181b: 0x1706, 0x181c: 0x170e, 0x181d: 0x1995,
}
-// nfkcIndex: 22 blocks, 1408 entries, 2816 bytes
+// nfkcIndex: 23 blocks, 1472 entries, 2944 bytes
// Block 0 is the zero block.
-var nfkcIndex = [1408]uint16{
+var nfkcIndex = [1472]uint16{
// Block 0x0, offset 0x0
// Block 0x1, offset 0x40
// Block 0x2, offset 0x80
// Block 0x3, offset 0xc0
- 0xc2: 0x5c, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x5d, 0xc7: 0x04,
- 0xc8: 0x05, 0xca: 0x5e, 0xcb: 0x5f, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x09,
- 0xd0: 0x0a, 0xd1: 0x60, 0xd2: 0x61, 0xd3: 0x0b, 0xd6: 0x0c, 0xd7: 0x62,
- 0xd8: 0x63, 0xd9: 0x0d, 0xdb: 0x64, 0xdc: 0x65, 0xdd: 0x66, 0xdf: 0x67,
+ 0xc2: 0x5f, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x60, 0xc7: 0x04,
+ 0xc8: 0x05, 0xca: 0x61, 0xcb: 0x62, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x09,
+ 0xd0: 0x0a, 0xd1: 0x63, 0xd2: 0x64, 0xd3: 0x0b, 0xd6: 0x0c, 0xd7: 0x65,
+ 0xd8: 0x66, 0xd9: 0x0d, 0xdb: 0x67, 0xdc: 0x68, 0xdd: 0x69, 0xdf: 0x6a,
0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05,
0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a,
- 0xf0: 0x13,
+ 0xf0: 0x14,
// Block 0x4, offset 0x100
- 0x120: 0x68, 0x121: 0x69, 0x123: 0x0e, 0x124: 0x6a, 0x125: 0x6b, 0x126: 0x6c, 0x127: 0x6d,
- 0x128: 0x6e, 0x129: 0x6f, 0x12a: 0x70, 0x12b: 0x71, 0x12c: 0x6c, 0x12d: 0x72, 0x12e: 0x73, 0x12f: 0x74,
- 0x131: 0x75, 0x132: 0x76, 0x133: 0x77, 0x134: 0x78, 0x135: 0x79, 0x137: 0x7a,
- 0x138: 0x7b, 0x139: 0x7c, 0x13a: 0x7d, 0x13b: 0x7e, 0x13c: 0x7f, 0x13d: 0x80, 0x13e: 0x81, 0x13f: 0x82,
+ 0x120: 0x6b, 0x121: 0x6c, 0x122: 0x6d, 0x123: 0x0e, 0x124: 0x6e, 0x125: 0x6f, 0x126: 0x70, 0x127: 0x71,
+ 0x128: 0x72, 0x129: 0x73, 0x12a: 0x74, 0x12b: 0x75, 0x12c: 0x70, 0x12d: 0x76, 0x12e: 0x77, 0x12f: 0x78,
+ 0x130: 0x74, 0x131: 0x79, 0x132: 0x7a, 0x133: 0x7b, 0x134: 0x7c, 0x135: 0x7d, 0x137: 0x7e,
+ 0x138: 0x7f, 0x139: 0x80, 0x13a: 0x81, 0x13b: 0x82, 0x13c: 0x83, 0x13d: 0x84, 0x13e: 0x85, 0x13f: 0x86,
// Block 0x5, offset 0x140
- 0x140: 0x83, 0x142: 0x84, 0x143: 0x85, 0x144: 0x86, 0x145: 0x87, 0x146: 0x88, 0x147: 0x89,
- 0x14d: 0x8a,
- 0x15c: 0x8b, 0x15f: 0x8c,
- 0x162: 0x8d, 0x164: 0x8e,
- 0x168: 0x8f, 0x169: 0x90, 0x16a: 0x91, 0x16b: 0x92, 0x16c: 0x0f, 0x16d: 0x93, 0x16e: 0x94, 0x16f: 0x95,
- 0x170: 0x96, 0x173: 0x97, 0x174: 0x98, 0x175: 0x10, 0x176: 0x11, 0x177: 0x12,
+ 0x140: 0x87, 0x142: 0x88, 0x143: 0x89, 0x144: 0x8a, 0x145: 0x8b, 0x146: 0x8c, 0x147: 0x8d,
+ 0x14d: 0x8e,
+ 0x15c: 0x8f, 0x15f: 0x90,
+ 0x162: 0x91, 0x164: 0x92,
+ 0x168: 0x93, 0x169: 0x94, 0x16a: 0x95, 0x16b: 0x96, 0x16c: 0x0f, 0x16d: 0x97, 0x16e: 0x98, 0x16f: 0x99,
+ 0x170: 0x9a, 0x173: 0x9b, 0x174: 0x9c, 0x175: 0x10, 0x176: 0x11, 0x177: 0x12,
0x178: 0x13, 0x179: 0x14, 0x17a: 0x15, 0x17b: 0x16, 0x17c: 0x17, 0x17d: 0x18, 0x17e: 0x19, 0x17f: 0x1a,
// Block 0x6, offset 0x180
- 0x180: 0x99, 0x181: 0x9a, 0x182: 0x9b, 0x183: 0x9c, 0x184: 0x1b, 0x185: 0x1c, 0x186: 0x9d, 0x187: 0x9e,
- 0x188: 0x9f, 0x189: 0x1d, 0x18a: 0x1e, 0x18b: 0xa0, 0x18c: 0xa1,
- 0x191: 0x1f, 0x192: 0x20, 0x193: 0xa2,
- 0x1a8: 0xa3, 0x1a9: 0xa4, 0x1ab: 0xa5,
- 0x1b1: 0xa6, 0x1b3: 0xa7, 0x1b5: 0xa8, 0x1b7: 0xa9,
- 0x1ba: 0xaa, 0x1bb: 0xab, 0x1bc: 0x21, 0x1bd: 0x22, 0x1be: 0x23, 0x1bf: 0xac,
+ 0x180: 0x9d, 0x181: 0x9e, 0x182: 0x9f, 0x183: 0xa0, 0x184: 0x1b, 0x185: 0x1c, 0x186: 0xa1, 0x187: 0xa2,
+ 0x188: 0xa3, 0x189: 0x1d, 0x18a: 0x1e, 0x18b: 0xa4, 0x18c: 0xa5,
+ 0x191: 0x1f, 0x192: 0x20, 0x193: 0xa6,
+ 0x1a8: 0xa7, 0x1a9: 0xa8, 0x1ab: 0xa9,
+ 0x1b1: 0xaa, 0x1b3: 0xab, 0x1b5: 0xac, 0x1b7: 0xad,
+ 0x1ba: 0xae, 0x1bb: 0xaf, 0x1bc: 0x21, 0x1bd: 0x22, 0x1be: 0x23, 0x1bf: 0xb0,
// Block 0x7, offset 0x1c0
- 0x1c0: 0xad, 0x1c1: 0x24, 0x1c2: 0x25, 0x1c3: 0x26, 0x1c4: 0xae, 0x1c5: 0x27, 0x1c6: 0x28,
+ 0x1c0: 0xb1, 0x1c1: 0x24, 0x1c2: 0x25, 0x1c3: 0x26, 0x1c4: 0xb2, 0x1c5: 0x27, 0x1c6: 0x28,
0x1c8: 0x29, 0x1c9: 0x2a, 0x1ca: 0x2b, 0x1cb: 0x2c, 0x1cc: 0x2d, 0x1cd: 0x2e, 0x1ce: 0x2f, 0x1cf: 0x30,
// Block 0x8, offset 0x200
- 0x219: 0xaf, 0x21a: 0xb0, 0x21b: 0xb1, 0x21d: 0xb2, 0x21f: 0xb3,
- 0x220: 0xb4, 0x223: 0xb5, 0x224: 0xb6, 0x225: 0xb7, 0x226: 0xb8, 0x227: 0xb9,
- 0x22a: 0xba, 0x22b: 0xbb, 0x22d: 0xbc, 0x22f: 0xbd,
- 0x230: 0xbe, 0x231: 0xbf, 0x232: 0xc0, 0x233: 0xc1, 0x234: 0xc2, 0x235: 0xc3, 0x236: 0xc4, 0x237: 0xbe,
- 0x238: 0xbf, 0x239: 0xc0, 0x23a: 0xc1, 0x23b: 0xc2, 0x23c: 0xc3, 0x23d: 0xc4, 0x23e: 0xbe, 0x23f: 0xbf,
+ 0x219: 0xb3, 0x21a: 0xb4, 0x21b: 0xb5, 0x21d: 0xb6, 0x21f: 0xb7,
+ 0x220: 0xb8, 0x223: 0xb9, 0x224: 0xba, 0x225: 0xbb, 0x226: 0xbc, 0x227: 0xbd,
+ 0x22a: 0xbe, 0x22b: 0xbf, 0x22d: 0xc0, 0x22f: 0xc1,
+ 0x230: 0xc2, 0x231: 0xc3, 0x232: 0xc4, 0x233: 0xc5, 0x234: 0xc6, 0x235: 0xc7, 0x236: 0xc8, 0x237: 0xc2,
+ 0x238: 0xc3, 0x239: 0xc4, 0x23a: 0xc5, 0x23b: 0xc6, 0x23c: 0xc7, 0x23d: 0xc8, 0x23e: 0xc2, 0x23f: 0xc3,
// Block 0x9, offset 0x240
- 0x240: 0xc0, 0x241: 0xc1, 0x242: 0xc2, 0x243: 0xc3, 0x244: 0xc4, 0x245: 0xbe, 0x246: 0xbf, 0x247: 0xc0,
- 0x248: 0xc1, 0x249: 0xc2, 0x24a: 0xc3, 0x24b: 0xc4, 0x24c: 0xbe, 0x24d: 0xbf, 0x24e: 0xc0, 0x24f: 0xc1,
- 0x250: 0xc2, 0x251: 0xc3, 0x252: 0xc4, 0x253: 0xbe, 0x254: 0xbf, 0x255: 0xc0, 0x256: 0xc1, 0x257: 0xc2,
- 0x258: 0xc3, 0x259: 0xc4, 0x25a: 0xbe, 0x25b: 0xbf, 0x25c: 0xc0, 0x25d: 0xc1, 0x25e: 0xc2, 0x25f: 0xc3,
- 0x260: 0xc4, 0x261: 0xbe, 0x262: 0xbf, 0x263: 0xc0, 0x264: 0xc1, 0x265: 0xc2, 0x266: 0xc3, 0x267: 0xc4,
- 0x268: 0xbe, 0x269: 0xbf, 0x26a: 0xc0, 0x26b: 0xc1, 0x26c: 0xc2, 0x26d: 0xc3, 0x26e: 0xc4, 0x26f: 0xbe,
- 0x270: 0xbf, 0x271: 0xc0, 0x272: 0xc1, 0x273: 0xc2, 0x274: 0xc3, 0x275: 0xc4, 0x276: 0xbe, 0x277: 0xbf,
- 0x278: 0xc0, 0x279: 0xc1, 0x27a: 0xc2, 0x27b: 0xc3, 0x27c: 0xc4, 0x27d: 0xbe, 0x27e: 0xbf, 0x27f: 0xc0,
+ 0x240: 0xc4, 0x241: 0xc5, 0x242: 0xc6, 0x243: 0xc7, 0x244: 0xc8, 0x245: 0xc2, 0x246: 0xc3, 0x247: 0xc4,
+ 0x248: 0xc5, 0x249: 0xc6, 0x24a: 0xc7, 0x24b: 0xc8, 0x24c: 0xc2, 0x24d: 0xc3, 0x24e: 0xc4, 0x24f: 0xc5,
+ 0x250: 0xc6, 0x251: 0xc7, 0x252: 0xc8, 0x253: 0xc2, 0x254: 0xc3, 0x255: 0xc4, 0x256: 0xc5, 0x257: 0xc6,
+ 0x258: 0xc7, 0x259: 0xc8, 0x25a: 0xc2, 0x25b: 0xc3, 0x25c: 0xc4, 0x25d: 0xc5, 0x25e: 0xc6, 0x25f: 0xc7,
+ 0x260: 0xc8, 0x261: 0xc2, 0x262: 0xc3, 0x263: 0xc4, 0x264: 0xc5, 0x265: 0xc6, 0x266: 0xc7, 0x267: 0xc8,
+ 0x268: 0xc2, 0x269: 0xc3, 0x26a: 0xc4, 0x26b: 0xc5, 0x26c: 0xc6, 0x26d: 0xc7, 0x26e: 0xc8, 0x26f: 0xc2,
+ 0x270: 0xc3, 0x271: 0xc4, 0x272: 0xc5, 0x273: 0xc6, 0x274: 0xc7, 0x275: 0xc8, 0x276: 0xc2, 0x277: 0xc3,
+ 0x278: 0xc4, 0x279: 0xc5, 0x27a: 0xc6, 0x27b: 0xc7, 0x27c: 0xc8, 0x27d: 0xc2, 0x27e: 0xc3, 0x27f: 0xc4,
// Block 0xa, offset 0x280
- 0x280: 0xc1, 0x281: 0xc2, 0x282: 0xc3, 0x283: 0xc4, 0x284: 0xbe, 0x285: 0xbf, 0x286: 0xc0, 0x287: 0xc1,
- 0x288: 0xc2, 0x289: 0xc3, 0x28a: 0xc4, 0x28b: 0xbe, 0x28c: 0xbf, 0x28d: 0xc0, 0x28e: 0xc1, 0x28f: 0xc2,
- 0x290: 0xc3, 0x291: 0xc4, 0x292: 0xbe, 0x293: 0xbf, 0x294: 0xc0, 0x295: 0xc1, 0x296: 0xc2, 0x297: 0xc3,
- 0x298: 0xc4, 0x299: 0xbe, 0x29a: 0xbf, 0x29b: 0xc0, 0x29c: 0xc1, 0x29d: 0xc2, 0x29e: 0xc3, 0x29f: 0xc4,
- 0x2a0: 0xbe, 0x2a1: 0xbf, 0x2a2: 0xc0, 0x2a3: 0xc1, 0x2a4: 0xc2, 0x2a5: 0xc3, 0x2a6: 0xc4, 0x2a7: 0xbe,
- 0x2a8: 0xbf, 0x2a9: 0xc0, 0x2aa: 0xc1, 0x2ab: 0xc2, 0x2ac: 0xc3, 0x2ad: 0xc4, 0x2ae: 0xbe, 0x2af: 0xbf,
- 0x2b0: 0xc0, 0x2b1: 0xc1, 0x2b2: 0xc2, 0x2b3: 0xc3, 0x2b4: 0xc4, 0x2b5: 0xbe, 0x2b6: 0xbf, 0x2b7: 0xc0,
- 0x2b8: 0xc1, 0x2b9: 0xc2, 0x2ba: 0xc3, 0x2bb: 0xc4, 0x2bc: 0xbe, 0x2bd: 0xbf, 0x2be: 0xc0, 0x2bf: 0xc1,
+ 0x280: 0xc5, 0x281: 0xc6, 0x282: 0xc7, 0x283: 0xc8, 0x284: 0xc2, 0x285: 0xc3, 0x286: 0xc4, 0x287: 0xc5,
+ 0x288: 0xc6, 0x289: 0xc7, 0x28a: 0xc8, 0x28b: 0xc2, 0x28c: 0xc3, 0x28d: 0xc4, 0x28e: 0xc5, 0x28f: 0xc6,
+ 0x290: 0xc7, 0x291: 0xc8, 0x292: 0xc2, 0x293: 0xc3, 0x294: 0xc4, 0x295: 0xc5, 0x296: 0xc6, 0x297: 0xc7,
+ 0x298: 0xc8, 0x299: 0xc2, 0x29a: 0xc3, 0x29b: 0xc4, 0x29c: 0xc5, 0x29d: 0xc6, 0x29e: 0xc7, 0x29f: 0xc8,
+ 0x2a0: 0xc2, 0x2a1: 0xc3, 0x2a2: 0xc4, 0x2a3: 0xc5, 0x2a4: 0xc6, 0x2a5: 0xc7, 0x2a6: 0xc8, 0x2a7: 0xc2,
+ 0x2a8: 0xc3, 0x2a9: 0xc4, 0x2aa: 0xc5, 0x2ab: 0xc6, 0x2ac: 0xc7, 0x2ad: 0xc8, 0x2ae: 0xc2, 0x2af: 0xc3,
+ 0x2b0: 0xc4, 0x2b1: 0xc5, 0x2b2: 0xc6, 0x2b3: 0xc7, 0x2b4: 0xc8, 0x2b5: 0xc2, 0x2b6: 0xc3, 0x2b7: 0xc4,
+ 0x2b8: 0xc5, 0x2b9: 0xc6, 0x2ba: 0xc7, 0x2bb: 0xc8, 0x2bc: 0xc2, 0x2bd: 0xc3, 0x2be: 0xc4, 0x2bf: 0xc5,
// Block 0xb, offset 0x2c0
- 0x2c0: 0xc2, 0x2c1: 0xc3, 0x2c2: 0xc4, 0x2c3: 0xbe, 0x2c4: 0xbf, 0x2c5: 0xc0, 0x2c6: 0xc1, 0x2c7: 0xc2,
- 0x2c8: 0xc3, 0x2c9: 0xc4, 0x2ca: 0xbe, 0x2cb: 0xbf, 0x2cc: 0xc0, 0x2cd: 0xc1, 0x2ce: 0xc2, 0x2cf: 0xc3,
- 0x2d0: 0xc4, 0x2d1: 0xbe, 0x2d2: 0xbf, 0x2d3: 0xc0, 0x2d4: 0xc1, 0x2d5: 0xc2, 0x2d6: 0xc3, 0x2d7: 0xc4,
- 0x2d8: 0xbe, 0x2d9: 0xbf, 0x2da: 0xc0, 0x2db: 0xc1, 0x2dc: 0xc2, 0x2dd: 0xc3, 0x2de: 0xc5,
+ 0x2c0: 0xc6, 0x2c1: 0xc7, 0x2c2: 0xc8, 0x2c3: 0xc2, 0x2c4: 0xc3, 0x2c5: 0xc4, 0x2c6: 0xc5, 0x2c7: 0xc6,
+ 0x2c8: 0xc7, 0x2c9: 0xc8, 0x2ca: 0xc2, 0x2cb: 0xc3, 0x2cc: 0xc4, 0x2cd: 0xc5, 0x2ce: 0xc6, 0x2cf: 0xc7,
+ 0x2d0: 0xc8, 0x2d1: 0xc2, 0x2d2: 0xc3, 0x2d3: 0xc4, 0x2d4: 0xc5, 0x2d5: 0xc6, 0x2d6: 0xc7, 0x2d7: 0xc8,
+ 0x2d8: 0xc2, 0x2d9: 0xc3, 0x2da: 0xc4, 0x2db: 0xc5, 0x2dc: 0xc6, 0x2dd: 0xc7, 0x2de: 0xc9,
// Block 0xc, offset 0x300
0x324: 0x31, 0x325: 0x32, 0x326: 0x33, 0x327: 0x34,
0x328: 0x35, 0x329: 0x36, 0x32a: 0x37, 0x32b: 0x38, 0x32c: 0x39, 0x32d: 0x3a, 0x32e: 0x3b, 0x32f: 0x3c,
0x330: 0x3d, 0x331: 0x3e, 0x332: 0x3f, 0x333: 0x40, 0x334: 0x41, 0x335: 0x42, 0x336: 0x43, 0x337: 0x44,
- 0x338: 0x45, 0x339: 0x46, 0x33a: 0x47, 0x33b: 0x48, 0x33c: 0xc6, 0x33d: 0x49, 0x33e: 0x4a, 0x33f: 0x4b,
+ 0x338: 0x45, 0x339: 0x46, 0x33a: 0x47, 0x33b: 0x48, 0x33c: 0xca, 0x33d: 0x49, 0x33e: 0x4a, 0x33f: 0x4b,
// Block 0xd, offset 0x340
- 0x347: 0xc7,
- 0x34b: 0xc8, 0x34d: 0xc9,
- 0x368: 0xca, 0x36b: 0xcb,
- 0x374: 0xcc,
- 0x37a: 0xcd, 0x37d: 0xce,
+ 0x347: 0xcb,
+ 0x34b: 0xcc, 0x34d: 0xcd,
+ 0x357: 0xce,
+ 0x35e: 0x4c,
+ 0x368: 0xcf, 0x36b: 0xd0,
+ 0x374: 0xd1, 0x375: 0xd2,
+ 0x37a: 0xd3, 0x37b: 0xd4, 0x37d: 0xd5, 0x37e: 0xd6,
// Block 0xe, offset 0x380
- 0x381: 0xcf, 0x382: 0xd0, 0x384: 0xd1, 0x385: 0xb8, 0x387: 0xd2,
- 0x388: 0xd3, 0x38b: 0xd4, 0x38c: 0xd5, 0x38d: 0xd6,
- 0x391: 0xd7, 0x392: 0xd8, 0x393: 0xd9, 0x396: 0xda, 0x397: 0xdb,
- 0x398: 0xdc, 0x39a: 0xdd, 0x39c: 0xde,
- 0x3a0: 0xdf, 0x3a4: 0xe0, 0x3a5: 0xe1, 0x3a7: 0xe2,
- 0x3a8: 0xe3, 0x3a9: 0xe4, 0x3aa: 0xe5,
- 0x3b0: 0xdc, 0x3b5: 0xe6, 0x3b6: 0xe7,
+ 0x381: 0xd7, 0x382: 0xd8, 0x384: 0xd9, 0x385: 0xbc, 0x387: 0xda,
+ 0x388: 0xdb, 0x38b: 0xdc, 0x38c: 0xdd, 0x38d: 0xde, 0x38e: 0xdf, 0x38f: 0xe0,
+ 0x391: 0xe1, 0x392: 0xe2, 0x393: 0xe3, 0x396: 0xe4, 0x397: 0xe5,
+ 0x398: 0xe6, 0x39a: 0xe7, 0x39c: 0xe8,
+ 0x3a0: 0xe9, 0x3a4: 0xea, 0x3a5: 0xeb, 0x3a7: 0xec,
+ 0x3a8: 0xed, 0x3a9: 0xee, 0x3aa: 0xef,
+ 0x3b0: 0xe6, 0x3b5: 0xf0, 0x3b6: 0xf1,
+ 0x3bd: 0xf2,
// Block 0xf, offset 0x3c0
- 0x3eb: 0xe8, 0x3ec: 0xe9,
- 0x3ff: 0xea,
+ 0x3c4: 0xf3,
+ 0x3eb: 0xf4, 0x3ec: 0xf5,
+ 0x3f5: 0xf6,
+ 0x3ff: 0xf7,
// Block 0x10, offset 0x400
- 0x432: 0xeb,
+ 0x432: 0xf8,
// Block 0x11, offset 0x440
- 0x445: 0xec, 0x446: 0xed, 0x447: 0xee,
- 0x449: 0xef,
- 0x450: 0xf0, 0x451: 0xf1, 0x452: 0xf2, 0x453: 0xf3, 0x454: 0xf4, 0x455: 0xf5, 0x456: 0xf6, 0x457: 0xf7,
- 0x458: 0xf8, 0x459: 0xf9, 0x45a: 0x4c, 0x45b: 0xfa, 0x45c: 0xfb, 0x45d: 0xfc, 0x45e: 0xfd, 0x45f: 0x4d,
+ 0x473: 0xf9,
// Block 0x12, offset 0x480
- 0x480: 0xfe, 0x484: 0xe9,
- 0x48b: 0xff,
- 0x4a3: 0x100, 0x4a5: 0x101,
- 0x4b8: 0x4e, 0x4b9: 0x4f, 0x4ba: 0x50,
+ 0x485: 0xfa, 0x486: 0xfb, 0x487: 0xfc,
+ 0x489: 0xfd,
+ 0x490: 0xfe, 0x491: 0xff, 0x492: 0x100, 0x493: 0x101, 0x494: 0x102, 0x495: 0x103, 0x496: 0x104, 0x497: 0x105,
+ 0x498: 0x106, 0x499: 0x107, 0x49a: 0x4d, 0x49b: 0x108, 0x49c: 0x109, 0x49d: 0x10a, 0x49e: 0x10b, 0x49f: 0x4e,
// Block 0x13, offset 0x4c0
- 0x4c4: 0x51, 0x4c5: 0x102, 0x4c6: 0x103,
- 0x4c8: 0x52, 0x4c9: 0x104,
- 0x4ef: 0x105,
+ 0x4c0: 0x4f, 0x4c1: 0x50, 0x4c2: 0x10c, 0x4c4: 0xf5,
+ 0x4ca: 0x10d, 0x4cb: 0x10e,
+ 0x4d3: 0x10f, 0x4d7: 0x110,
+ 0x4db: 0x111,
+ 0x4e3: 0x112, 0x4e5: 0x113,
+ 0x4f8: 0x51, 0x4f9: 0x52, 0x4fa: 0x53,
// Block 0x14, offset 0x500
- 0x520: 0x53, 0x521: 0x54, 0x522: 0x55, 0x523: 0x56, 0x524: 0x57, 0x525: 0x58, 0x526: 0x59, 0x527: 0x5a,
- 0x528: 0x5b,
+ 0x504: 0x54, 0x505: 0x114, 0x506: 0x115,
+ 0x508: 0x55, 0x509: 0x116,
+ 0x52f: 0x117,
// Block 0x15, offset 0x540
- 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d,
- 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,
- 0x56f: 0x12,
+ 0x560: 0x56, 0x561: 0x57, 0x562: 0x58, 0x563: 0x59, 0x564: 0x5a, 0x565: 0x5b, 0x566: 0x5c, 0x567: 0x5d,
+ 0x568: 0x5e,
+ // Block 0x16, offset 0x580
+ 0x590: 0x0b, 0x591: 0x0c, 0x596: 0x0d,
+ 0x59b: 0x0e, 0x59c: 0x0f, 0x59d: 0x10, 0x59e: 0x11, 0x59f: 0x12,
+ 0x5af: 0x13,
}
-// nfkcSparseOffset: 170 entries, 340 bytes
-var nfkcSparseOffset = []uint16{0x0, 0xe, 0x12, 0x1b, 0x25, 0x35, 0x37, 0x3c, 0x47, 0x56, 0x63, 0x6b, 0x70, 0x75, 0x77, 0x7f, 0x86, 0x89, 0x91, 0x95, 0x99, 0x9b, 0x9d, 0xa6, 0xaa, 0xb1, 0xb6, 0xb9, 0xc3, 0xc6, 0xcd, 0xd5, 0xd9, 0xdb, 0xdf, 0xe3, 0xe9, 0xfa, 0x106, 0x108, 0x10e, 0x110, 0x112, 0x114, 0x116, 0x118, 0x11a, 0x11c, 0x11f, 0x122, 0x124, 0x127, 0x12a, 0x12e, 0x134, 0x136, 0x13f, 0x141, 0x144, 0x146, 0x151, 0x15c, 0x16a, 0x178, 0x188, 0x196, 0x19d, 0x1a3, 0x1b2, 0x1b6, 0x1b8, 0x1bc, 0x1be, 0x1c1, 0x1c3, 0x1c6, 0x1c8, 0x1cb, 0x1cd, 0x1cf, 0x1d1, 0x1dd, 0x1e7, 0x1f1, 0x1f4, 0x1f8, 0x1fa, 0x1fc, 0x1fe, 0x201, 0x204, 0x206, 0x208, 0x20a, 0x20c, 0x212, 0x215, 0x21a, 0x21c, 0x223, 0x229, 0x22f, 0x237, 0x23d, 0x243, 0x249, 0x24d, 0x24f, 0x251, 0x253, 0x255, 0x25b, 0x25e, 0x260, 0x262, 0x268, 0x26b, 0x273, 0x27a, 0x27d, 0x280, 0x282, 0x285, 0x28d, 0x291, 0x298, 0x29b, 0x2a1, 0x2a3, 0x2a5, 0x2a8, 0x2aa, 0x2ad, 0x2b2, 0x2b4, 0x2b6, 0x2b8, 0x2ba, 0x2bc, 0x2bf, 0x2c1, 0x2c3, 0x2c5, 0x2c7, 0x2c9, 0x2d6, 0x2e0, 0x2e2, 0x2e4, 0x2e8, 0x2ed, 0x2f9, 0x2fe, 0x307, 0x30d, 0x312, 0x316, 0x31b, 0x31f, 0x32f, 0x33d, 0x34b, 0x359, 0x35f, 0x361, 0x363, 0x366, 0x371, 0x373, 0x37d}
+// nfkcSparseOffset: 185 entries, 370 bytes
+var nfkcSparseOffset = []uint16{0x0, 0xe, 0x12, 0x1c, 0x26, 0x36, 0x38, 0x3d, 0x48, 0x57, 0x64, 0x6c, 0x71, 0x76, 0x78, 0x7c, 0x84, 0x8b, 0x8e, 0x96, 0x9a, 0x9e, 0xa0, 0xa2, 0xab, 0xaf, 0xb6, 0xbb, 0xbe, 0xc8, 0xcb, 0xd2, 0xda, 0xde, 0xe0, 0xe4, 0xe8, 0xee, 0xff, 0x10b, 0x10d, 0x113, 0x115, 0x117, 0x119, 0x11b, 0x11d, 0x11f, 0x121, 0x124, 0x127, 0x129, 0x12c, 0x12f, 0x133, 0x139, 0x145, 0x14e, 0x150, 0x153, 0x155, 0x160, 0x16b, 0x179, 0x187, 0x197, 0x1a5, 0x1ac, 0x1b2, 0x1c1, 0x1c5, 0x1c7, 0x1cb, 0x1cd, 0x1d0, 0x1d2, 0x1d5, 0x1d7, 0x1da, 0x1dc, 0x1de, 0x1e0, 0x1ec, 0x1f6, 0x200, 0x203, 0x207, 0x209, 0x20b, 0x211, 0x214, 0x217, 0x219, 0x21b, 0x21d, 0x21f, 0x225, 0x228, 0x22d, 0x22f, 0x236, 0x23c, 0x242, 0x24a, 0x250, 0x256, 0x25c, 0x260, 0x262, 0x264, 0x266, 0x268, 0x26d, 0x273, 0x276, 0x278, 0x27a, 0x27c, 0x27f, 0x285, 0x289, 0x28d, 0x295, 0x29c, 0x29f, 0x2a2, 0x2a4, 0x2a7, 0x2af, 0x2b9, 0x2c0, 0x2c4, 0x2cb, 0x2ce, 0x2d4, 0x2d6, 0x2d8, 0x2db, 0x2dd, 0x2e0, 0x2e5, 0x2e7, 0x2e9, 0x2eb, 0x2ed, 0x2ef, 0x2f2, 0x2f4, 0x2f6, 0x303, 0x305, 0x307, 0x30d, 0x30f, 0x311, 0x314, 0x321, 0x32b, 0x32d, 0x32f, 0x333, 0x338, 0x344, 0x349, 0x352, 0x358, 0x35d, 0x361, 0x366, 0x36a, 0x37a, 0x388, 0x396, 0x3a4, 0x3a6, 0x3a8, 0x3aa, 0x3ae, 0x3b1, 0x3b6, 0x3b8, 0x3bb, 0x3c6, 0x3c8, 0x3d2}
-// nfkcSparseValues: 895 entries, 3580 bytes
-var nfkcSparseValues = [895]valueRange{
+// nfkcSparseValues: 980 entries, 3920 bytes
+var nfkcSparseValues = [980]valueRange{
// Block 0x0, offset 0x0
{value: 0x0002, lo: 0x0d},
{value: 0x0001, lo: 0xa0, hi: 0xa0},
- {value: 0x428f, lo: 0xa8, hi: 0xa8},
+ {value: 0x4377, lo: 0xa8, hi: 0xa8},
{value: 0x0083, lo: 0xaa, hi: 0xaa},
- {value: 0x427b, lo: 0xaf, hi: 0xaf},
+ {value: 0x4363, lo: 0xaf, hi: 0xaf},
{value: 0x0025, lo: 0xb2, hi: 0xb3},
- {value: 0x4271, lo: 0xb4, hi: 0xb4},
- {value: 0x01df, lo: 0xb5, hi: 0xb5},
- {value: 0x42a8, lo: 0xb8, hi: 0xb8},
+ {value: 0x4359, lo: 0xb4, hi: 0xb4},
+ {value: 0x0260, lo: 0xb5, hi: 0xb5},
+ {value: 0x4390, lo: 0xb8, hi: 0xb8},
{value: 0x0023, lo: 0xb9, hi: 0xb9},
{value: 0x009f, lo: 0xba, hi: 0xba},
- {value: 0x2222, lo: 0xbc, hi: 0xbc},
- {value: 0x2216, lo: 0xbd, hi: 0xbd},
- {value: 0x22b8, lo: 0xbe, hi: 0xbe},
+ {value: 0x234c, lo: 0xbc, hi: 0xbc},
+ {value: 0x2340, lo: 0xbd, hi: 0xbd},
+ {value: 0x23e2, lo: 0xbe, hi: 0xbe},
// Block 0x1, offset 0xe
{value: 0x0091, lo: 0x03},
- {value: 0x46f9, lo: 0xa0, hi: 0xa1},
- {value: 0x472b, lo: 0xaf, hi: 0xb0},
+ {value: 0x4859, lo: 0xa0, hi: 0xa1},
+ {value: 0x488b, lo: 0xaf, hi: 0xb0},
{value: 0xa000, lo: 0xb7, hi: 0xb7},
// Block 0x2, offset 0x12
- {value: 0x0003, lo: 0x08},
+ {value: 0x0004, lo: 0x09},
{value: 0xa000, lo: 0x92, hi: 0x92},
{value: 0x0091, lo: 0xb0, hi: 0xb0},
- {value: 0x0119, lo: 0xb1, hi: 0xb1},
+ {value: 0x0140, lo: 0xb1, hi: 0xb1},
{value: 0x0095, lo: 0xb2, hi: 0xb2},
{value: 0x00a5, lo: 0xb3, hi: 0xb3},
- {value: 0x0143, lo: 0xb4, hi: 0xb6},
- {value: 0x00af, lo: 0xb7, hi: 0xb7},
- {value: 0x00b3, lo: 0xb8, hi: 0xb8},
- // Block 0x3, offset 0x1b
+ {value: 0x0179, lo: 0xb4, hi: 0xb4},
+ {value: 0x017f, lo: 0xb5, hi: 0xb5},
+ {value: 0x018b, lo: 0xb6, hi: 0xb6},
+ {value: 0x00af, lo: 0xb7, hi: 0xb8},
+ // Block 0x3, offset 0x1c
{value: 0x000a, lo: 0x09},
- {value: 0x4285, lo: 0x98, hi: 0x98},
- {value: 0x428a, lo: 0x99, hi: 0x9a},
- {value: 0x42ad, lo: 0x9b, hi: 0x9b},
- {value: 0x4276, lo: 0x9c, hi: 0x9c},
- {value: 0x4299, lo: 0x9d, hi: 0x9d},
- {value: 0x0113, lo: 0xa0, hi: 0xa0},
+ {value: 0x436d, lo: 0x98, hi: 0x98},
+ {value: 0x4372, lo: 0x99, hi: 0x9a},
+ {value: 0x4395, lo: 0x9b, hi: 0x9b},
+ {value: 0x435e, lo: 0x9c, hi: 0x9c},
+ {value: 0x4381, lo: 0x9d, hi: 0x9d},
+ {value: 0x0137, lo: 0xa0, hi: 0xa0},
{value: 0x0099, lo: 0xa1, hi: 0xa1},
{value: 0x00a7, lo: 0xa2, hi: 0xa3},
- {value: 0x016a, lo: 0xa4, hi: 0xa4},
- // Block 0x4, offset 0x25
+ {value: 0x01b8, lo: 0xa4, hi: 0xa4},
+ // Block 0x4, offset 0x26
{value: 0x0000, lo: 0x0f},
{value: 0xa000, lo: 0x83, hi: 0x83},
{value: 0xa000, lo: 0x87, hi: 0x87},
{value: 0xa000, lo: 0x8b, hi: 0x8b},
{value: 0xa000, lo: 0x8d, hi: 0x8d},
- {value: 0x37bc, lo: 0x90, hi: 0x90},
- {value: 0x37c8, lo: 0x91, hi: 0x91},
- {value: 0x37b6, lo: 0x93, hi: 0x93},
+ {value: 0x3704, lo: 0x90, hi: 0x90},
+ {value: 0x3710, lo: 0x91, hi: 0x91},
+ {value: 0x36fe, lo: 0x93, hi: 0x93},
{value: 0xa000, lo: 0x96, hi: 0x96},
- {value: 0x382e, lo: 0x97, hi: 0x97},
- {value: 0x37f8, lo: 0x9c, hi: 0x9c},
- {value: 0x37e0, lo: 0x9d, hi: 0x9d},
- {value: 0x380a, lo: 0x9e, hi: 0x9e},
+ {value: 0x3776, lo: 0x97, hi: 0x97},
+ {value: 0x3740, lo: 0x9c, hi: 0x9c},
+ {value: 0x3728, lo: 0x9d, hi: 0x9d},
+ {value: 0x3752, lo: 0x9e, hi: 0x9e},
{value: 0xa000, lo: 0xb4, hi: 0xb5},
- {value: 0x3834, lo: 0xb6, hi: 0xb6},
- {value: 0x383a, lo: 0xb7, hi: 0xb7},
- // Block 0x5, offset 0x35
+ {value: 0x377c, lo: 0xb6, hi: 0xb6},
+ {value: 0x3782, lo: 0xb7, hi: 0xb7},
+ // Block 0x5, offset 0x36
{value: 0x0000, lo: 0x01},
{value: 0x8133, lo: 0x83, hi: 0x87},
- // Block 0x6, offset 0x37
+ // Block 0x6, offset 0x38
{value: 0x0001, lo: 0x04},
{value: 0x8114, lo: 0x81, hi: 0x82},
{value: 0x8133, lo: 0x84, hi: 0x84},
{value: 0x812e, lo: 0x85, hi: 0x85},
{value: 0x810e, lo: 0x87, hi: 0x87},
- // Block 0x7, offset 0x3c
+ // Block 0x7, offset 0x3d
{value: 0x0000, lo: 0x0a},
{value: 0x8133, lo: 0x90, hi: 0x97},
{value: 0x811a, lo: 0x98, hi: 0x98},
{value: 0x811b, lo: 0x99, hi: 0x99},
{value: 0x811c, lo: 0x9a, hi: 0x9a},
- {value: 0x3858, lo: 0xa2, hi: 0xa2},
- {value: 0x385e, lo: 0xa3, hi: 0xa3},
- {value: 0x386a, lo: 0xa4, hi: 0xa4},
- {value: 0x3864, lo: 0xa5, hi: 0xa5},
- {value: 0x3870, lo: 0xa6, hi: 0xa6},
+ {value: 0x37a0, lo: 0xa2, hi: 0xa2},
+ {value: 0x37a6, lo: 0xa3, hi: 0xa3},
+ {value: 0x37b2, lo: 0xa4, hi: 0xa4},
+ {value: 0x37ac, lo: 0xa5, hi: 0xa5},
+ {value: 0x37b8, lo: 0xa6, hi: 0xa6},
{value: 0xa000, lo: 0xa7, hi: 0xa7},
- // Block 0x8, offset 0x47
+ // Block 0x8, offset 0x48
{value: 0x0000, lo: 0x0e},
- {value: 0x3882, lo: 0x80, hi: 0x80},
+ {value: 0x37ca, lo: 0x80, hi: 0x80},
{value: 0xa000, lo: 0x81, hi: 0x81},
- {value: 0x3876, lo: 0x82, hi: 0x82},
+ {value: 0x37be, lo: 0x82, hi: 0x82},
{value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0x387c, lo: 0x93, hi: 0x93},
+ {value: 0x37c4, lo: 0x93, hi: 0x93},
{value: 0xa000, lo: 0x95, hi: 0x95},
{value: 0x8133, lo: 0x96, hi: 0x9c},
{value: 0x8133, lo: 0x9f, hi: 0xa2},
@@ -5838,7 +6063,7 @@ var nfkcSparseValues = [895]valueRange{
{value: 0x812e, lo: 0xaa, hi: 0xaa},
{value: 0x8133, lo: 0xab, hi: 0xac},
{value: 0x812e, lo: 0xad, hi: 0xad},
- // Block 0x9, offset 0x56
+ // Block 0x9, offset 0x57
{value: 0x0000, lo: 0x0c},
{value: 0x8120, lo: 0x91, hi: 0x91},
{value: 0x8133, lo: 0xb0, hi: 0xb0},
@@ -5852,7 +6077,7 @@ var nfkcSparseValues = [895]valueRange{
{value: 0x8133, lo: 0xbd, hi: 0xbd},
{value: 0x812e, lo: 0xbe, hi: 0xbe},
{value: 0x8133, lo: 0xbf, hi: 0xbf},
- // Block 0xa, offset 0x63
+ // Block 0xa, offset 0x64
{value: 0x0005, lo: 0x07},
{value: 0x8133, lo: 0x80, hi: 0x80},
{value: 0x8133, lo: 0x81, hi: 0x81},
@@ -5861,274 +6086,289 @@ var nfkcSparseValues = [895]valueRange{
{value: 0x812e, lo: 0x86, hi: 0x87},
{value: 0x812e, lo: 0x88, hi: 0x89},
{value: 0x8133, lo: 0x8a, hi: 0x8a},
- // Block 0xb, offset 0x6b
+ // Block 0xb, offset 0x6c
{value: 0x0000, lo: 0x04},
{value: 0x8133, lo: 0xab, hi: 0xb1},
{value: 0x812e, lo: 0xb2, hi: 0xb2},
{value: 0x8133, lo: 0xb3, hi: 0xb3},
{value: 0x812e, lo: 0xbd, hi: 0xbd},
- // Block 0xc, offset 0x70
+ // Block 0xc, offset 0x71
{value: 0x0000, lo: 0x04},
{value: 0x8133, lo: 0x96, hi: 0x99},
{value: 0x8133, lo: 0x9b, hi: 0xa3},
{value: 0x8133, lo: 0xa5, hi: 0xa7},
{value: 0x8133, lo: 0xa9, hi: 0xad},
- // Block 0xd, offset 0x75
+ // Block 0xd, offset 0x76
{value: 0x0000, lo: 0x01},
{value: 0x812e, lo: 0x99, hi: 0x9b},
- // Block 0xe, offset 0x77
+ // Block 0xe, offset 0x78
+ {value: 0x0000, lo: 0x03},
+ {value: 0x8133, lo: 0x97, hi: 0x98},
+ {value: 0x812e, lo: 0x99, hi: 0x9b},
+ {value: 0x8133, lo: 0x9c, hi: 0x9f},
+ // Block 0xf, offset 0x7c
{value: 0x0000, lo: 0x07},
{value: 0xa000, lo: 0xa8, hi: 0xa8},
- {value: 0x3eef, lo: 0xa9, hi: 0xa9},
+ {value: 0x3e37, lo: 0xa9, hi: 0xa9},
{value: 0xa000, lo: 0xb0, hi: 0xb0},
- {value: 0x3ef7, lo: 0xb1, hi: 0xb1},
+ {value: 0x3e3f, lo: 0xb1, hi: 0xb1},
{value: 0xa000, lo: 0xb3, hi: 0xb3},
- {value: 0x3eff, lo: 0xb4, hi: 0xb4},
+ {value: 0x3e47, lo: 0xb4, hi: 0xb4},
{value: 0x9903, lo: 0xbc, hi: 0xbc},
- // Block 0xf, offset 0x7f
+ // Block 0x10, offset 0x84
{value: 0x0008, lo: 0x06},
{value: 0x8105, lo: 0x8d, hi: 0x8d},
{value: 0x8133, lo: 0x91, hi: 0x91},
{value: 0x812e, lo: 0x92, hi: 0x92},
{value: 0x8133, lo: 0x93, hi: 0x93},
{value: 0x8133, lo: 0x94, hi: 0x94},
- {value: 0x4533, lo: 0x98, hi: 0x9f},
- // Block 0x10, offset 0x86
+ {value: 0x461b, lo: 0x98, hi: 0x9f},
+ // Block 0x11, offset 0x8b
{value: 0x0000, lo: 0x02},
{value: 0x8103, lo: 0xbc, hi: 0xbc},
{value: 0x9900, lo: 0xbe, hi: 0xbe},
- // Block 0x11, offset 0x89
+ // Block 0x12, offset 0x8e
{value: 0x0008, lo: 0x07},
{value: 0xa000, lo: 0x87, hi: 0x87},
- {value: 0x2cab, lo: 0x8b, hi: 0x8c},
+ {value: 0x3e4f, lo: 0x8b, hi: 0x8c},
{value: 0x8105, lo: 0x8d, hi: 0x8d},
{value: 0x9900, lo: 0x97, hi: 0x97},
- {value: 0x4573, lo: 0x9c, hi: 0x9d},
- {value: 0x4583, lo: 0x9f, hi: 0x9f},
+ {value: 0x465b, lo: 0x9c, hi: 0x9d},
+ {value: 0x466b, lo: 0x9f, hi: 0x9f},
{value: 0x8133, lo: 0xbe, hi: 0xbe},
- // Block 0x12, offset 0x91
+ // Block 0x13, offset 0x96
{value: 0x0000, lo: 0x03},
- {value: 0x45ab, lo: 0xb3, hi: 0xb3},
- {value: 0x45b3, lo: 0xb6, hi: 0xb6},
+ {value: 0x4693, lo: 0xb3, hi: 0xb3},
+ {value: 0x469b, lo: 0xb6, hi: 0xb6},
{value: 0x8103, lo: 0xbc, hi: 0xbc},
- // Block 0x13, offset 0x95
+ // Block 0x14, offset 0x9a
{value: 0x0008, lo: 0x03},
{value: 0x8105, lo: 0x8d, hi: 0x8d},
- {value: 0x458b, lo: 0x99, hi: 0x9b},
- {value: 0x45a3, lo: 0x9e, hi: 0x9e},
- // Block 0x14, offset 0x99
+ {value: 0x4673, lo: 0x99, hi: 0x9b},
+ {value: 0x468b, lo: 0x9e, hi: 0x9e},
+ // Block 0x15, offset 0x9e
{value: 0x0000, lo: 0x01},
{value: 0x8103, lo: 0xbc, hi: 0xbc},
- // Block 0x15, offset 0x9b
+ // Block 0x16, offset 0xa0
{value: 0x0000, lo: 0x01},
{value: 0x8105, lo: 0x8d, hi: 0x8d},
- // Block 0x16, offset 0x9d
+ // Block 0x17, offset 0xa2
{value: 0x0000, lo: 0x08},
{value: 0xa000, lo: 0x87, hi: 0x87},
- {value: 0x2cc3, lo: 0x88, hi: 0x88},
- {value: 0x2cbb, lo: 0x8b, hi: 0x8b},
- {value: 0x2ccb, lo: 0x8c, hi: 0x8c},
+ {value: 0x3e67, lo: 0x88, hi: 0x88},
+ {value: 0x3e5f, lo: 0x8b, hi: 0x8b},
+ {value: 0x3e6f, lo: 0x8c, hi: 0x8c},
{value: 0x8105, lo: 0x8d, hi: 0x8d},
{value: 0x9900, lo: 0x96, hi: 0x97},
- {value: 0x45bb, lo: 0x9c, hi: 0x9c},
- {value: 0x45c3, lo: 0x9d, hi: 0x9d},
- // Block 0x17, offset 0xa6
+ {value: 0x46a3, lo: 0x9c, hi: 0x9c},
+ {value: 0x46ab, lo: 0x9d, hi: 0x9d},
+ // Block 0x18, offset 0xab
{value: 0x0000, lo: 0x03},
{value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0x2cd3, lo: 0x94, hi: 0x94},
+ {value: 0x3e77, lo: 0x94, hi: 0x94},
{value: 0x9900, lo: 0xbe, hi: 0xbe},
- // Block 0x18, offset 0xaa
+ // Block 0x19, offset 0xaf
{value: 0x0000, lo: 0x06},
{value: 0xa000, lo: 0x86, hi: 0x87},
- {value: 0x2cdb, lo: 0x8a, hi: 0x8a},
- {value: 0x2ceb, lo: 0x8b, hi: 0x8b},
- {value: 0x2ce3, lo: 0x8c, hi: 0x8c},
+ {value: 0x3e7f, lo: 0x8a, hi: 0x8a},
+ {value: 0x3e8f, lo: 0x8b, hi: 0x8b},
+ {value: 0x3e87, lo: 0x8c, hi: 0x8c},
{value: 0x8105, lo: 0x8d, hi: 0x8d},
{value: 0x9900, lo: 0x97, hi: 0x97},
- // Block 0x19, offset 0xb1
+ // Block 0x1a, offset 0xb6
{value: 0x1801, lo: 0x04},
{value: 0xa000, lo: 0x86, hi: 0x86},
- {value: 0x3f07, lo: 0x88, hi: 0x88},
+ {value: 0x3e97, lo: 0x88, hi: 0x88},
{value: 0x8105, lo: 0x8d, hi: 0x8d},
{value: 0x8121, lo: 0x95, hi: 0x96},
- // Block 0x1a, offset 0xb6
+ // Block 0x1b, offset 0xbb
{value: 0x0000, lo: 0x02},
{value: 0x8103, lo: 0xbc, hi: 0xbc},
{value: 0xa000, lo: 0xbf, hi: 0xbf},
- // Block 0x1b, offset 0xb9
+ // Block 0x1c, offset 0xbe
{value: 0x0000, lo: 0x09},
- {value: 0x2cf3, lo: 0x80, hi: 0x80},
+ {value: 0x3e9f, lo: 0x80, hi: 0x80},
{value: 0x9900, lo: 0x82, hi: 0x82},
{value: 0xa000, lo: 0x86, hi: 0x86},
- {value: 0x2cfb, lo: 0x87, hi: 0x87},
- {value: 0x2d03, lo: 0x88, hi: 0x88},
- {value: 0x2f67, lo: 0x8a, hi: 0x8a},
- {value: 0x2def, lo: 0x8b, hi: 0x8b},
+ {value: 0x3ea7, lo: 0x87, hi: 0x87},
+ {value: 0x3eaf, lo: 0x88, hi: 0x88},
+ {value: 0x4b25, lo: 0x8a, hi: 0x8a},
+ {value: 0x4331, lo: 0x8b, hi: 0x8b},
{value: 0x8105, lo: 0x8d, hi: 0x8d},
{value: 0x9900, lo: 0x95, hi: 0x96},
- // Block 0x1c, offset 0xc3
+ // Block 0x1d, offset 0xc8
{value: 0x0000, lo: 0x02},
{value: 0x8105, lo: 0xbb, hi: 0xbc},
{value: 0x9900, lo: 0xbe, hi: 0xbe},
- // Block 0x1d, offset 0xc6
+ // Block 0x1e, offset 0xcb
{value: 0x0000, lo: 0x06},
{value: 0xa000, lo: 0x86, hi: 0x87},
- {value: 0x2d0b, lo: 0x8a, hi: 0x8a},
- {value: 0x2d1b, lo: 0x8b, hi: 0x8b},
- {value: 0x2d13, lo: 0x8c, hi: 0x8c},
+ {value: 0x3eb7, lo: 0x8a, hi: 0x8a},
+ {value: 0x3ec7, lo: 0x8b, hi: 0x8b},
+ {value: 0x3ebf, lo: 0x8c, hi: 0x8c},
{value: 0x8105, lo: 0x8d, hi: 0x8d},
{value: 0x9900, lo: 0x97, hi: 0x97},
- // Block 0x1e, offset 0xcd
- {value: 0x6bdd, lo: 0x07},
+ // Block 0x1f, offset 0xd2
+ {value: 0x5a29, lo: 0x07},
{value: 0x9905, lo: 0x8a, hi: 0x8a},
{value: 0x9900, lo: 0x8f, hi: 0x8f},
{value: 0xa000, lo: 0x99, hi: 0x99},
- {value: 0x3f0f, lo: 0x9a, hi: 0x9a},
- {value: 0x2f6f, lo: 0x9c, hi: 0x9c},
- {value: 0x2dfa, lo: 0x9d, hi: 0x9d},
- {value: 0x2d23, lo: 0x9e, hi: 0x9f},
- // Block 0x1f, offset 0xd5
+ {value: 0x3ecf, lo: 0x9a, hi: 0x9a},
+ {value: 0x4b2d, lo: 0x9c, hi: 0x9c},
+ {value: 0x433c, lo: 0x9d, hi: 0x9d},
+ {value: 0x3ed7, lo: 0x9e, hi: 0x9f},
+ // Block 0x20, offset 0xda
{value: 0x0000, lo: 0x03},
- {value: 0x2627, lo: 0xb3, hi: 0xb3},
+ {value: 0x2751, lo: 0xb3, hi: 0xb3},
{value: 0x8123, lo: 0xb8, hi: 0xb9},
{value: 0x8105, lo: 0xba, hi: 0xba},
- // Block 0x20, offset 0xd9
+ // Block 0x21, offset 0xde
{value: 0x0000, lo: 0x01},
{value: 0x8124, lo: 0x88, hi: 0x8b},
- // Block 0x21, offset 0xdb
+ // Block 0x22, offset 0xe0
{value: 0x0000, lo: 0x03},
- {value: 0x263c, lo: 0xb3, hi: 0xb3},
+ {value: 0x2766, lo: 0xb3, hi: 0xb3},
{value: 0x8125, lo: 0xb8, hi: 0xb9},
{value: 0x8105, lo: 0xba, hi: 0xba},
- // Block 0x22, offset 0xdf
+ // Block 0x23, offset 0xe4
{value: 0x0000, lo: 0x03},
{value: 0x8126, lo: 0x88, hi: 0x8b},
- {value: 0x262e, lo: 0x9c, hi: 0x9c},
- {value: 0x2635, lo: 0x9d, hi: 0x9d},
- // Block 0x23, offset 0xe3
+ {value: 0x2758, lo: 0x9c, hi: 0x9c},
+ {value: 0x275f, lo: 0x9d, hi: 0x9d},
+ // Block 0x24, offset 0xe8
{value: 0x0000, lo: 0x05},
- {value: 0x030e, lo: 0x8c, hi: 0x8c},
+ {value: 0x03fe, lo: 0x8c, hi: 0x8c},
{value: 0x812e, lo: 0x98, hi: 0x99},
{value: 0x812e, lo: 0xb5, hi: 0xb5},
{value: 0x812e, lo: 0xb7, hi: 0xb7},
{value: 0x812c, lo: 0xb9, hi: 0xb9},
- // Block 0x24, offset 0xe9
+ // Block 0x25, offset 0xee
{value: 0x0000, lo: 0x10},
- {value: 0x264a, lo: 0x83, hi: 0x83},
- {value: 0x2651, lo: 0x8d, hi: 0x8d},
- {value: 0x2658, lo: 0x92, hi: 0x92},
- {value: 0x265f, lo: 0x97, hi: 0x97},
- {value: 0x2666, lo: 0x9c, hi: 0x9c},
- {value: 0x2643, lo: 0xa9, hi: 0xa9},
+ {value: 0x2774, lo: 0x83, hi: 0x83},
+ {value: 0x277b, lo: 0x8d, hi: 0x8d},
+ {value: 0x2782, lo: 0x92, hi: 0x92},
+ {value: 0x2789, lo: 0x97, hi: 0x97},
+ {value: 0x2790, lo: 0x9c, hi: 0x9c},
+ {value: 0x276d, lo: 0xa9, hi: 0xa9},
{value: 0x8127, lo: 0xb1, hi: 0xb1},
{value: 0x8128, lo: 0xb2, hi: 0xb2},
- {value: 0x4a9b, lo: 0xb3, hi: 0xb3},
+ {value: 0x4ca5, lo: 0xb3, hi: 0xb3},
{value: 0x8129, lo: 0xb4, hi: 0xb4},
- {value: 0x4aa4, lo: 0xb5, hi: 0xb5},
- {value: 0x45cb, lo: 0xb6, hi: 0xb6},
- {value: 0x460b, lo: 0xb7, hi: 0xb7},
- {value: 0x45d3, lo: 0xb8, hi: 0xb8},
- {value: 0x4616, lo: 0xb9, hi: 0xb9},
+ {value: 0x4cae, lo: 0xb5, hi: 0xb5},
+ {value: 0x46b3, lo: 0xb6, hi: 0xb6},
+ {value: 0x476b, lo: 0xb7, hi: 0xb7},
+ {value: 0x46bb, lo: 0xb8, hi: 0xb8},
+ {value: 0x4776, lo: 0xb9, hi: 0xb9},
{value: 0x8128, lo: 0xba, hi: 0xbd},
- // Block 0x25, offset 0xfa
+ // Block 0x26, offset 0xff
{value: 0x0000, lo: 0x0b},
{value: 0x8128, lo: 0x80, hi: 0x80},
- {value: 0x4aad, lo: 0x81, hi: 0x81},
+ {value: 0x4cb7, lo: 0x81, hi: 0x81},
{value: 0x8133, lo: 0x82, hi: 0x83},
{value: 0x8105, lo: 0x84, hi: 0x84},
{value: 0x8133, lo: 0x86, hi: 0x87},
- {value: 0x2674, lo: 0x93, hi: 0x93},
- {value: 0x267b, lo: 0x9d, hi: 0x9d},
- {value: 0x2682, lo: 0xa2, hi: 0xa2},
- {value: 0x2689, lo: 0xa7, hi: 0xa7},
- {value: 0x2690, lo: 0xac, hi: 0xac},
- {value: 0x266d, lo: 0xb9, hi: 0xb9},
- // Block 0x26, offset 0x106
+ {value: 0x279e, lo: 0x93, hi: 0x93},
+ {value: 0x27a5, lo: 0x9d, hi: 0x9d},
+ {value: 0x27ac, lo: 0xa2, hi: 0xa2},
+ {value: 0x27b3, lo: 0xa7, hi: 0xa7},
+ {value: 0x27ba, lo: 0xac, hi: 0xac},
+ {value: 0x2797, lo: 0xb9, hi: 0xb9},
+ // Block 0x27, offset 0x10b
{value: 0x0000, lo: 0x01},
{value: 0x812e, lo: 0x86, hi: 0x86},
- // Block 0x27, offset 0x108
+ // Block 0x28, offset 0x10d
{value: 0x0000, lo: 0x05},
{value: 0xa000, lo: 0xa5, hi: 0xa5},
- {value: 0x2d2b, lo: 0xa6, hi: 0xa6},
+ {value: 0x3edf, lo: 0xa6, hi: 0xa6},
{value: 0x9900, lo: 0xae, hi: 0xae},
{value: 0x8103, lo: 0xb7, hi: 0xb7},
{value: 0x8105, lo: 0xb9, hi: 0xba},
- // Block 0x28, offset 0x10e
+ // Block 0x29, offset 0x113
{value: 0x0000, lo: 0x01},
{value: 0x812e, lo: 0x8d, hi: 0x8d},
- // Block 0x29, offset 0x110
+ // Block 0x2a, offset 0x115
{value: 0x0000, lo: 0x01},
- {value: 0x0312, lo: 0xbc, hi: 0xbc},
- // Block 0x2a, offset 0x112
+ {value: 0x0402, lo: 0xbc, hi: 0xbc},
+ // Block 0x2b, offset 0x117
{value: 0x0000, lo: 0x01},
{value: 0xa000, lo: 0x80, hi: 0x92},
- // Block 0x2b, offset 0x114
+ // Block 0x2c, offset 0x119
{value: 0x0000, lo: 0x01},
{value: 0xb900, lo: 0xa1, hi: 0xb5},
- // Block 0x2c, offset 0x116
+ // Block 0x2d, offset 0x11b
{value: 0x0000, lo: 0x01},
{value: 0x9900, lo: 0xa8, hi: 0xbf},
- // Block 0x2d, offset 0x118
+ // Block 0x2e, offset 0x11d
{value: 0x0000, lo: 0x01},
{value: 0x9900, lo: 0x80, hi: 0x82},
- // Block 0x2e, offset 0x11a
+ // Block 0x2f, offset 0x11f
{value: 0x0000, lo: 0x01},
{value: 0x8133, lo: 0x9d, hi: 0x9f},
- // Block 0x2f, offset 0x11c
+ // Block 0x30, offset 0x121
{value: 0x0000, lo: 0x02},
- {value: 0x8105, lo: 0x94, hi: 0x94},
+ {value: 0x8105, lo: 0x94, hi: 0x95},
{value: 0x8105, lo: 0xb4, hi: 0xb4},
- // Block 0x30, offset 0x11f
+ // Block 0x31, offset 0x124
{value: 0x0000, lo: 0x02},
{value: 0x8105, lo: 0x92, hi: 0x92},
{value: 0x8133, lo: 0x9d, hi: 0x9d},
- // Block 0x31, offset 0x122
+ // Block 0x32, offset 0x127
{value: 0x0000, lo: 0x01},
{value: 0x8132, lo: 0xa9, hi: 0xa9},
- // Block 0x32, offset 0x124
+ // Block 0x33, offset 0x129
{value: 0x0004, lo: 0x02},
{value: 0x812f, lo: 0xb9, hi: 0xba},
{value: 0x812e, lo: 0xbb, hi: 0xbb},
- // Block 0x33, offset 0x127
+ // Block 0x34, offset 0x12c
{value: 0x0000, lo: 0x02},
{value: 0x8133, lo: 0x97, hi: 0x97},
{value: 0x812e, lo: 0x98, hi: 0x98},
- // Block 0x34, offset 0x12a
+ // Block 0x35, offset 0x12f
{value: 0x0000, lo: 0x03},
{value: 0x8105, lo: 0xa0, hi: 0xa0},
{value: 0x8133, lo: 0xb5, hi: 0xbc},
{value: 0x812e, lo: 0xbf, hi: 0xbf},
- // Block 0x35, offset 0x12e
+ // Block 0x36, offset 0x133
{value: 0x0000, lo: 0x05},
{value: 0x8133, lo: 0xb0, hi: 0xb4},
{value: 0x812e, lo: 0xb5, hi: 0xba},
{value: 0x8133, lo: 0xbb, hi: 0xbc},
{value: 0x812e, lo: 0xbd, hi: 0xbd},
{value: 0x812e, lo: 0xbf, hi: 0xbf},
- // Block 0x36, offset 0x134
- {value: 0x0000, lo: 0x01},
+ // Block 0x37, offset 0x139
+ {value: 0x0000, lo: 0x0b},
{value: 0x812e, lo: 0x80, hi: 0x80},
- // Block 0x37, offset 0x136
+ {value: 0x8133, lo: 0x81, hi: 0x82},
+ {value: 0x812e, lo: 0x83, hi: 0x84},
+ {value: 0x8133, lo: 0x85, hi: 0x89},
+ {value: 0x812e, lo: 0x8a, hi: 0x8a},
+ {value: 0x8133, lo: 0x8b, hi: 0x9c},
+ {value: 0x812e, lo: 0x9d, hi: 0x9d},
+ {value: 0x8133, lo: 0xa0, hi: 0xa5},
+ {value: 0x812e, lo: 0xa6, hi: 0xa6},
+ {value: 0x8133, lo: 0xa7, hi: 0xaa},
+ {value: 0x8136, lo: 0xab, hi: 0xab},
+ // Block 0x38, offset 0x145
{value: 0x0000, lo: 0x08},
- {value: 0x2d73, lo: 0x80, hi: 0x80},
- {value: 0x2d7b, lo: 0x81, hi: 0x81},
+ {value: 0x3f27, lo: 0x80, hi: 0x80},
+ {value: 0x3f2f, lo: 0x81, hi: 0x81},
{value: 0xa000, lo: 0x82, hi: 0x82},
- {value: 0x2d83, lo: 0x83, hi: 0x83},
+ {value: 0x3f37, lo: 0x83, hi: 0x83},
{value: 0x8105, lo: 0x84, hi: 0x84},
{value: 0x8133, lo: 0xab, hi: 0xab},
{value: 0x812e, lo: 0xac, hi: 0xac},
{value: 0x8133, lo: 0xad, hi: 0xb3},
- // Block 0x38, offset 0x13f
+ // Block 0x39, offset 0x14e
{value: 0x0000, lo: 0x01},
{value: 0x8105, lo: 0xaa, hi: 0xab},
- // Block 0x39, offset 0x141
+ // Block 0x3a, offset 0x150
{value: 0x0000, lo: 0x02},
{value: 0x8103, lo: 0xa6, hi: 0xa6},
{value: 0x8105, lo: 0xb2, hi: 0xb3},
- // Block 0x3a, offset 0x144
+ // Block 0x3b, offset 0x153
{value: 0x0000, lo: 0x01},
{value: 0x8103, lo: 0xb7, hi: 0xb7},
- // Block 0x3b, offset 0x146
+ // Block 0x3c, offset 0x155
{value: 0x0000, lo: 0x0a},
{value: 0x8133, lo: 0x90, hi: 0x92},
{value: 0x8101, lo: 0x94, hi: 0x94},
@@ -6140,66 +6380,66 @@ var nfkcSparseValues = [895]valueRange{
{value: 0x812e, lo: 0xad, hi: 0xad},
{value: 0x8133, lo: 0xb4, hi: 0xb4},
{value: 0x8133, lo: 0xb8, hi: 0xb9},
- // Block 0x3c, offset 0x151
+ // Block 0x3d, offset 0x160
{value: 0x0002, lo: 0x0a},
{value: 0x0043, lo: 0xac, hi: 0xac},
{value: 0x00d1, lo: 0xad, hi: 0xad},
{value: 0x0045, lo: 0xae, hi: 0xae},
{value: 0x0049, lo: 0xb0, hi: 0xb1},
- {value: 0x00e6, lo: 0xb2, hi: 0xb2},
+ {value: 0x00ec, lo: 0xb2, hi: 0xb2},
{value: 0x004f, lo: 0xb3, hi: 0xba},
{value: 0x005f, lo: 0xbc, hi: 0xbc},
- {value: 0x00ef, lo: 0xbd, hi: 0xbd},
+ {value: 0x00fe, lo: 0xbd, hi: 0xbd},
{value: 0x0061, lo: 0xbe, hi: 0xbe},
{value: 0x0065, lo: 0xbf, hi: 0xbf},
- // Block 0x3d, offset 0x15c
+ // Block 0x3e, offset 0x16b
{value: 0x0000, lo: 0x0d},
{value: 0x0001, lo: 0x80, hi: 0x8a},
- {value: 0x043e, lo: 0x91, hi: 0x91},
- {value: 0x42b2, lo: 0x97, hi: 0x97},
+ {value: 0x0532, lo: 0x91, hi: 0x91},
+ {value: 0x439a, lo: 0x97, hi: 0x97},
{value: 0x001d, lo: 0xa4, hi: 0xa4},
- {value: 0x1876, lo: 0xa5, hi: 0xa5},
- {value: 0x1b62, lo: 0xa6, hi: 0xa6},
+ {value: 0x19a0, lo: 0xa5, hi: 0xa5},
+ {value: 0x1c8c, lo: 0xa6, hi: 0xa6},
{value: 0x0001, lo: 0xaf, hi: 0xaf},
- {value: 0x2697, lo: 0xb3, hi: 0xb3},
- {value: 0x280b, lo: 0xb4, hi: 0xb4},
- {value: 0x269e, lo: 0xb6, hi: 0xb6},
- {value: 0x2815, lo: 0xb7, hi: 0xb7},
- {value: 0x1870, lo: 0xbc, hi: 0xbc},
- {value: 0x4280, lo: 0xbe, hi: 0xbe},
- // Block 0x3e, offset 0x16a
+ {value: 0x27c1, lo: 0xb3, hi: 0xb3},
+ {value: 0x2935, lo: 0xb4, hi: 0xb4},
+ {value: 0x27c8, lo: 0xb6, hi: 0xb6},
+ {value: 0x293f, lo: 0xb7, hi: 0xb7},
+ {value: 0x199a, lo: 0xbc, hi: 0xbc},
+ {value: 0x4368, lo: 0xbe, hi: 0xbe},
+ // Block 0x3f, offset 0x179
{value: 0x0002, lo: 0x0d},
- {value: 0x1936, lo: 0x87, hi: 0x87},
- {value: 0x1933, lo: 0x88, hi: 0x88},
- {value: 0x1873, lo: 0x89, hi: 0x89},
- {value: 0x299b, lo: 0x97, hi: 0x97},
+ {value: 0x1a60, lo: 0x87, hi: 0x87},
+ {value: 0x1a5d, lo: 0x88, hi: 0x88},
+ {value: 0x199d, lo: 0x89, hi: 0x89},
+ {value: 0x2ac5, lo: 0x97, hi: 0x97},
{value: 0x0001, lo: 0x9f, hi: 0x9f},
{value: 0x0021, lo: 0xb0, hi: 0xb0},
{value: 0x0093, lo: 0xb1, hi: 0xb1},
{value: 0x0029, lo: 0xb4, hi: 0xb9},
{value: 0x0017, lo: 0xba, hi: 0xba},
- {value: 0x046a, lo: 0xbb, hi: 0xbb},
+ {value: 0x055e, lo: 0xbb, hi: 0xbb},
{value: 0x003b, lo: 0xbc, hi: 0xbc},
{value: 0x0011, lo: 0xbd, hi: 0xbe},
{value: 0x009d, lo: 0xbf, hi: 0xbf},
- // Block 0x3f, offset 0x178
+ // Block 0x40, offset 0x187
{value: 0x0002, lo: 0x0f},
{value: 0x0021, lo: 0x80, hi: 0x89},
{value: 0x0017, lo: 0x8a, hi: 0x8a},
- {value: 0x046a, lo: 0x8b, hi: 0x8b},
+ {value: 0x055e, lo: 0x8b, hi: 0x8b},
{value: 0x003b, lo: 0x8c, hi: 0x8c},
{value: 0x0011, lo: 0x8d, hi: 0x8e},
{value: 0x0083, lo: 0x90, hi: 0x90},
{value: 0x008b, lo: 0x91, hi: 0x91},
{value: 0x009f, lo: 0x92, hi: 0x92},
{value: 0x00b1, lo: 0x93, hi: 0x93},
- {value: 0x0104, lo: 0x94, hi: 0x94},
+ {value: 0x011f, lo: 0x94, hi: 0x94},
{value: 0x0091, lo: 0x95, hi: 0x95},
{value: 0x0097, lo: 0x96, hi: 0x99},
{value: 0x00a1, lo: 0x9a, hi: 0x9a},
{value: 0x00a7, lo: 0x9b, hi: 0x9c},
- {value: 0x199f, lo: 0xa8, hi: 0xa8},
- // Block 0x40, offset 0x188
+ {value: 0x1ac9, lo: 0xa8, hi: 0xa8},
+ // Block 0x41, offset 0x197
{value: 0x0000, lo: 0x0d},
{value: 0x8133, lo: 0x90, hi: 0x91},
{value: 0x8101, lo: 0x92, hi: 0x93},
@@ -6214,94 +6454,94 @@ var nfkcSparseValues = [895]valueRange{
{value: 0x8101, lo: 0xaa, hi: 0xab},
{value: 0x812e, lo: 0xac, hi: 0xaf},
{value: 0x8133, lo: 0xb0, hi: 0xb0},
- // Block 0x41, offset 0x196
+ // Block 0x42, offset 0x1a5
{value: 0x0007, lo: 0x06},
- {value: 0x2186, lo: 0x89, hi: 0x89},
+ {value: 0x22b0, lo: 0x89, hi: 0x89},
{value: 0xa000, lo: 0x90, hi: 0x90},
{value: 0xa000, lo: 0x92, hi: 0x92},
{value: 0xa000, lo: 0x94, hi: 0x94},
- {value: 0x3bd0, lo: 0x9a, hi: 0x9b},
- {value: 0x3bde, lo: 0xae, hi: 0xae},
- // Block 0x42, offset 0x19d
+ {value: 0x3b18, lo: 0x9a, hi: 0x9b},
+ {value: 0x3b26, lo: 0xae, hi: 0xae},
+ // Block 0x43, offset 0x1ac
{value: 0x000e, lo: 0x05},
- {value: 0x3be5, lo: 0x8d, hi: 0x8e},
- {value: 0x3bec, lo: 0x8f, hi: 0x8f},
+ {value: 0x3b2d, lo: 0x8d, hi: 0x8e},
+ {value: 0x3b34, lo: 0x8f, hi: 0x8f},
{value: 0xa000, lo: 0x90, hi: 0x90},
{value: 0xa000, lo: 0x92, hi: 0x92},
{value: 0xa000, lo: 0x94, hi: 0x94},
- // Block 0x43, offset 0x1a3
+ // Block 0x44, offset 0x1b2
{value: 0x017a, lo: 0x0e},
{value: 0xa000, lo: 0x83, hi: 0x83},
- {value: 0x3bfa, lo: 0x84, hi: 0x84},
+ {value: 0x3b42, lo: 0x84, hi: 0x84},
{value: 0xa000, lo: 0x88, hi: 0x88},
- {value: 0x3c01, lo: 0x89, hi: 0x89},
+ {value: 0x3b49, lo: 0x89, hi: 0x89},
{value: 0xa000, lo: 0x8b, hi: 0x8b},
- {value: 0x3c08, lo: 0x8c, hi: 0x8c},
+ {value: 0x3b50, lo: 0x8c, hi: 0x8c},
{value: 0xa000, lo: 0xa3, hi: 0xa3},
- {value: 0x3c0f, lo: 0xa4, hi: 0xa4},
+ {value: 0x3b57, lo: 0xa4, hi: 0xa4},
{value: 0xa000, lo: 0xa5, hi: 0xa5},
- {value: 0x3c16, lo: 0xa6, hi: 0xa6},
- {value: 0x26a5, lo: 0xac, hi: 0xad},
- {value: 0x26ac, lo: 0xaf, hi: 0xaf},
- {value: 0x2829, lo: 0xb0, hi: 0xb0},
+ {value: 0x3b5e, lo: 0xa6, hi: 0xa6},
+ {value: 0x27cf, lo: 0xac, hi: 0xad},
+ {value: 0x27d6, lo: 0xaf, hi: 0xaf},
+ {value: 0x2953, lo: 0xb0, hi: 0xb0},
{value: 0xa000, lo: 0xbc, hi: 0xbc},
- // Block 0x44, offset 0x1b2
+ // Block 0x45, offset 0x1c1
{value: 0x0007, lo: 0x03},
- {value: 0x3c7f, lo: 0xa0, hi: 0xa1},
- {value: 0x3ca9, lo: 0xa2, hi: 0xa3},
- {value: 0x3cd3, lo: 0xaa, hi: 0xad},
- // Block 0x45, offset 0x1b6
+ {value: 0x3bc7, lo: 0xa0, hi: 0xa1},
+ {value: 0x3bf1, lo: 0xa2, hi: 0xa3},
+ {value: 0x3c1b, lo: 0xaa, hi: 0xad},
+ // Block 0x46, offset 0x1c5
{value: 0x0004, lo: 0x01},
- {value: 0x048e, lo: 0xa9, hi: 0xaa},
- // Block 0x46, offset 0x1b8
+ {value: 0x0586, lo: 0xa9, hi: 0xaa},
+ // Block 0x47, offset 0x1c7
{value: 0x0002, lo: 0x03},
{value: 0x0057, lo: 0x80, hi: 0x8f},
{value: 0x0083, lo: 0x90, hi: 0xa9},
{value: 0x0021, lo: 0xaa, hi: 0xaa},
- // Block 0x47, offset 0x1bc
+ // Block 0x48, offset 0x1cb
{value: 0x0000, lo: 0x01},
- {value: 0x29a8, lo: 0x8c, hi: 0x8c},
- // Block 0x48, offset 0x1be
+ {value: 0x2ad2, lo: 0x8c, hi: 0x8c},
+ // Block 0x49, offset 0x1cd
{value: 0x0266, lo: 0x02},
- {value: 0x1b92, lo: 0xb4, hi: 0xb4},
- {value: 0x1930, lo: 0xb5, hi: 0xb6},
- // Block 0x49, offset 0x1c1
+ {value: 0x1cbc, lo: 0xb4, hi: 0xb4},
+ {value: 0x1a5a, lo: 0xb5, hi: 0xb6},
+ // Block 0x4a, offset 0x1d0
{value: 0x0000, lo: 0x01},
- {value: 0x44f4, lo: 0x9c, hi: 0x9c},
- // Block 0x4a, offset 0x1c3
+ {value: 0x45dc, lo: 0x9c, hi: 0x9c},
+ // Block 0x4b, offset 0x1d2
{value: 0x0000, lo: 0x02},
{value: 0x0095, lo: 0xbc, hi: 0xbc},
{value: 0x006d, lo: 0xbd, hi: 0xbd},
- // Block 0x4b, offset 0x1c6
+ // Block 0x4c, offset 0x1d5
{value: 0x0000, lo: 0x01},
{value: 0x8133, lo: 0xaf, hi: 0xb1},
- // Block 0x4c, offset 0x1c8
+ // Block 0x4d, offset 0x1d7
{value: 0x0000, lo: 0x02},
- {value: 0x0482, lo: 0xaf, hi: 0xaf},
+ {value: 0x057a, lo: 0xaf, hi: 0xaf},
{value: 0x8105, lo: 0xbf, hi: 0xbf},
- // Block 0x4d, offset 0x1cb
+ // Block 0x4e, offset 0x1da
{value: 0x0000, lo: 0x01},
{value: 0x8133, lo: 0xa0, hi: 0xbf},
- // Block 0x4e, offset 0x1cd
+ // Block 0x4f, offset 0x1dc
{value: 0x0000, lo: 0x01},
- {value: 0x0dc6, lo: 0x9f, hi: 0x9f},
- // Block 0x4f, offset 0x1cf
+ {value: 0x0ebe, lo: 0x9f, hi: 0x9f},
+ // Block 0x50, offset 0x1de
{value: 0x0000, lo: 0x01},
- {value: 0x1632, lo: 0xb3, hi: 0xb3},
- // Block 0x50, offset 0x1d1
+ {value: 0x172a, lo: 0xb3, hi: 0xb3},
+ // Block 0x51, offset 0x1e0
{value: 0x0004, lo: 0x0b},
- {value: 0x159a, lo: 0x80, hi: 0x82},
- {value: 0x15b2, lo: 0x83, hi: 0x83},
- {value: 0x15ca, lo: 0x84, hi: 0x85},
- {value: 0x15da, lo: 0x86, hi: 0x89},
- {value: 0x15ee, lo: 0x8a, hi: 0x8c},
- {value: 0x1602, lo: 0x8d, hi: 0x8d},
- {value: 0x160a, lo: 0x8e, hi: 0x8e},
- {value: 0x1612, lo: 0x8f, hi: 0x90},
- {value: 0x161e, lo: 0x91, hi: 0x93},
- {value: 0x162e, lo: 0x94, hi: 0x94},
- {value: 0x1636, lo: 0x95, hi: 0x95},
- // Block 0x51, offset 0x1dd
+ {value: 0x1692, lo: 0x80, hi: 0x82},
+ {value: 0x16aa, lo: 0x83, hi: 0x83},
+ {value: 0x16c2, lo: 0x84, hi: 0x85},
+ {value: 0x16d2, lo: 0x86, hi: 0x89},
+ {value: 0x16e6, lo: 0x8a, hi: 0x8c},
+ {value: 0x16fa, lo: 0x8d, hi: 0x8d},
+ {value: 0x1702, lo: 0x8e, hi: 0x8e},
+ {value: 0x170a, lo: 0x8f, hi: 0x90},
+ {value: 0x1716, lo: 0x91, hi: 0x93},
+ {value: 0x1726, lo: 0x94, hi: 0x94},
+ {value: 0x172e, lo: 0x95, hi: 0x95},
+ // Block 0x52, offset 0x1ec
{value: 0x0004, lo: 0x09},
{value: 0x0001, lo: 0x80, hi: 0x80},
{value: 0x812d, lo: 0xaa, hi: 0xaa},
@@ -6310,78 +6550,82 @@ var nfkcSparseValues = [895]valueRange{
{value: 0x812f, lo: 0xad, hi: 0xad},
{value: 0x8130, lo: 0xae, hi: 0xae},
{value: 0x8130, lo: 0xaf, hi: 0xaf},
- {value: 0x04b6, lo: 0xb6, hi: 0xb6},
- {value: 0x088a, lo: 0xb8, hi: 0xba},
- // Block 0x52, offset 0x1e7
+ {value: 0x05ae, lo: 0xb6, hi: 0xb6},
+ {value: 0x0982, lo: 0xb8, hi: 0xba},
+ // Block 0x53, offset 0x1f6
{value: 0x0006, lo: 0x09},
- {value: 0x0316, lo: 0xb1, hi: 0xb1},
- {value: 0x031a, lo: 0xb2, hi: 0xb2},
- {value: 0x4a52, lo: 0xb3, hi: 0xb3},
- {value: 0x031e, lo: 0xb4, hi: 0xb4},
- {value: 0x4a58, lo: 0xb5, hi: 0xb6},
- {value: 0x0322, lo: 0xb7, hi: 0xb7},
- {value: 0x0326, lo: 0xb8, hi: 0xb8},
- {value: 0x032a, lo: 0xb9, hi: 0xb9},
- {value: 0x4a64, lo: 0xba, hi: 0xbf},
- // Block 0x53, offset 0x1f1
+ {value: 0x0406, lo: 0xb1, hi: 0xb1},
+ {value: 0x040a, lo: 0xb2, hi: 0xb2},
+ {value: 0x4bcc, lo: 0xb3, hi: 0xb3},
+ {value: 0x040e, lo: 0xb4, hi: 0xb4},
+ {value: 0x4bd2, lo: 0xb5, hi: 0xb6},
+ {value: 0x0412, lo: 0xb7, hi: 0xb7},
+ {value: 0x0416, lo: 0xb8, hi: 0xb8},
+ {value: 0x041a, lo: 0xb9, hi: 0xb9},
+ {value: 0x4bde, lo: 0xba, hi: 0xbf},
+ // Block 0x54, offset 0x200
{value: 0x0000, lo: 0x02},
{value: 0x8133, lo: 0xaf, hi: 0xaf},
{value: 0x8133, lo: 0xb4, hi: 0xbd},
- // Block 0x54, offset 0x1f4
+ // Block 0x55, offset 0x203
{value: 0x0000, lo: 0x03},
- {value: 0x0212, lo: 0x9c, hi: 0x9c},
- {value: 0x0215, lo: 0x9d, hi: 0x9d},
+ {value: 0x02d8, lo: 0x9c, hi: 0x9c},
+ {value: 0x02de, lo: 0x9d, hi: 0x9d},
{value: 0x8133, lo: 0x9e, hi: 0x9f},
- // Block 0x55, offset 0x1f8
+ // Block 0x56, offset 0x207
{value: 0x0000, lo: 0x01},
{value: 0x8133, lo: 0xb0, hi: 0xb1},
- // Block 0x56, offset 0x1fa
+ // Block 0x57, offset 0x209
{value: 0x0000, lo: 0x01},
- {value: 0x163e, lo: 0xb0, hi: 0xb0},
- // Block 0x57, offset 0x1fc
- {value: 0x000c, lo: 0x01},
- {value: 0x00d7, lo: 0xb8, hi: 0xb9},
- // Block 0x58, offset 0x1fe
+ {value: 0x173e, lo: 0xb0, hi: 0xb0},
+ // Block 0x58, offset 0x20b
+ {value: 0x0006, lo: 0x05},
+ {value: 0x0067, lo: 0xb1, hi: 0xb1},
+ {value: 0x0047, lo: 0xb2, hi: 0xb3},
+ {value: 0x0063, lo: 0xb4, hi: 0xb4},
+ {value: 0x00dd, lo: 0xb8, hi: 0xb8},
+ {value: 0x00e9, lo: 0xb9, hi: 0xb9},
+ // Block 0x59, offset 0x211
{value: 0x0000, lo: 0x02},
{value: 0x8105, lo: 0x86, hi: 0x86},
{value: 0x8105, lo: 0xac, hi: 0xac},
- // Block 0x59, offset 0x201
+ // Block 0x5a, offset 0x214
{value: 0x0000, lo: 0x02},
{value: 0x8105, lo: 0x84, hi: 0x84},
{value: 0x8133, lo: 0xa0, hi: 0xb1},
- // Block 0x5a, offset 0x204
+ // Block 0x5b, offset 0x217
{value: 0x0000, lo: 0x01},
{value: 0x812e, lo: 0xab, hi: 0xad},
- // Block 0x5b, offset 0x206
+ // Block 0x5c, offset 0x219
{value: 0x0000, lo: 0x01},
{value: 0x8105, lo: 0x93, hi: 0x93},
- // Block 0x5c, offset 0x208
+ // Block 0x5d, offset 0x21b
{value: 0x0000, lo: 0x01},
{value: 0x8103, lo: 0xb3, hi: 0xb3},
- // Block 0x5d, offset 0x20a
+ // Block 0x5e, offset 0x21d
{value: 0x0000, lo: 0x01},
{value: 0x8105, lo: 0x80, hi: 0x80},
- // Block 0x5e, offset 0x20c
+ // Block 0x5f, offset 0x21f
{value: 0x0000, lo: 0x05},
{value: 0x8133, lo: 0xb0, hi: 0xb0},
{value: 0x8133, lo: 0xb2, hi: 0xb3},
{value: 0x812e, lo: 0xb4, hi: 0xb4},
{value: 0x8133, lo: 0xb7, hi: 0xb8},
{value: 0x8133, lo: 0xbe, hi: 0xbf},
- // Block 0x5f, offset 0x212
+ // Block 0x60, offset 0x225
{value: 0x0000, lo: 0x02},
{value: 0x8133, lo: 0x81, hi: 0x81},
{value: 0x8105, lo: 0xb6, hi: 0xb6},
- // Block 0x60, offset 0x215
- {value: 0x0008, lo: 0x04},
- {value: 0x163a, lo: 0x9c, hi: 0x9d},
- {value: 0x0125, lo: 0x9e, hi: 0x9e},
- {value: 0x1646, lo: 0x9f, hi: 0x9f},
- {value: 0x015e, lo: 0xa9, hi: 0xa9},
- // Block 0x61, offset 0x21a
+ // Block 0x61, offset 0x228
+ {value: 0x000c, lo: 0x04},
+ {value: 0x173a, lo: 0x9c, hi: 0x9d},
+ {value: 0x014f, lo: 0x9e, hi: 0x9e},
+ {value: 0x174a, lo: 0x9f, hi: 0x9f},
+ {value: 0x01a6, lo: 0xa9, hi: 0xa9},
+ // Block 0x62, offset 0x22d
{value: 0x0000, lo: 0x01},
{value: 0x8105, lo: 0xad, hi: 0xad},
- // Block 0x62, offset 0x21c
+ // Block 0x63, offset 0x22f
{value: 0x0000, lo: 0x06},
{value: 0xe500, lo: 0x80, hi: 0x80},
{value: 0xc600, lo: 0x81, hi: 0x9b},
@@ -6389,21 +6633,21 @@ var nfkcSparseValues = [895]valueRange{
{value: 0xc600, lo: 0x9d, hi: 0xb7},
{value: 0xe500, lo: 0xb8, hi: 0xb8},
{value: 0xc600, lo: 0xb9, hi: 0xbf},
- // Block 0x63, offset 0x223
+ // Block 0x64, offset 0x236
{value: 0x0000, lo: 0x05},
{value: 0xc600, lo: 0x80, hi: 0x93},
{value: 0xe500, lo: 0x94, hi: 0x94},
{value: 0xc600, lo: 0x95, hi: 0xaf},
{value: 0xe500, lo: 0xb0, hi: 0xb0},
{value: 0xc600, lo: 0xb1, hi: 0xbf},
- // Block 0x64, offset 0x229
+ // Block 0x65, offset 0x23c
{value: 0x0000, lo: 0x05},
{value: 0xc600, lo: 0x80, hi: 0x8b},
{value: 0xe500, lo: 0x8c, hi: 0x8c},
{value: 0xc600, lo: 0x8d, hi: 0xa7},
{value: 0xe500, lo: 0xa8, hi: 0xa8},
{value: 0xc600, lo: 0xa9, hi: 0xbf},
- // Block 0x65, offset 0x22f
+ // Block 0x66, offset 0x242
{value: 0x0000, lo: 0x07},
{value: 0xc600, lo: 0x80, hi: 0x83},
{value: 0xe500, lo: 0x84, hi: 0x84},
@@ -6412,237 +6656,303 @@ var nfkcSparseValues = [895]valueRange{
{value: 0xc600, lo: 0xa1, hi: 0xbb},
{value: 0xe500, lo: 0xbc, hi: 0xbc},
{value: 0xc600, lo: 0xbd, hi: 0xbf},
- // Block 0x66, offset 0x237
+ // Block 0x67, offset 0x24a
{value: 0x0000, lo: 0x05},
{value: 0xc600, lo: 0x80, hi: 0x97},
{value: 0xe500, lo: 0x98, hi: 0x98},
{value: 0xc600, lo: 0x99, hi: 0xb3},
{value: 0xe500, lo: 0xb4, hi: 0xb4},
{value: 0xc600, lo: 0xb5, hi: 0xbf},
- // Block 0x67, offset 0x23d
+ // Block 0x68, offset 0x250
{value: 0x0000, lo: 0x05},
{value: 0xc600, lo: 0x80, hi: 0x8f},
{value: 0xe500, lo: 0x90, hi: 0x90},
{value: 0xc600, lo: 0x91, hi: 0xab},
{value: 0xe500, lo: 0xac, hi: 0xac},
{value: 0xc600, lo: 0xad, hi: 0xbf},
- // Block 0x68, offset 0x243
+ // Block 0x69, offset 0x256
{value: 0x0000, lo: 0x05},
{value: 0xc600, lo: 0x80, hi: 0x87},
{value: 0xe500, lo: 0x88, hi: 0x88},
{value: 0xc600, lo: 0x89, hi: 0xa3},
{value: 0xe500, lo: 0xa4, hi: 0xa4},
{value: 0xc600, lo: 0xa5, hi: 0xbf},
- // Block 0x69, offset 0x249
+ // Block 0x6a, offset 0x25c
{value: 0x0000, lo: 0x03},
{value: 0xc600, lo: 0x80, hi: 0x87},
{value: 0xe500, lo: 0x88, hi: 0x88},
{value: 0xc600, lo: 0x89, hi: 0xa3},
- // Block 0x6a, offset 0x24d
+ // Block 0x6b, offset 0x260
{value: 0x0002, lo: 0x01},
{value: 0x0003, lo: 0x81, hi: 0xbf},
- // Block 0x6b, offset 0x24f
+ // Block 0x6c, offset 0x262
{value: 0x0000, lo: 0x01},
{value: 0x812e, lo: 0xbd, hi: 0xbd},
- // Block 0x6c, offset 0x251
+ // Block 0x6d, offset 0x264
{value: 0x0000, lo: 0x01},
{value: 0x812e, lo: 0xa0, hi: 0xa0},
- // Block 0x6d, offset 0x253
+ // Block 0x6e, offset 0x266
{value: 0x0000, lo: 0x01},
{value: 0x8133, lo: 0xb6, hi: 0xba},
- // Block 0x6e, offset 0x255
+ // Block 0x6f, offset 0x268
+ {value: 0x0000, lo: 0x04},
+ {value: 0x410f, lo: 0x89, hi: 0x89},
+ {value: 0xa000, lo: 0x92, hi: 0x92},
+ {value: 0xa000, lo: 0x9a, hi: 0x9a},
+ {value: 0x4117, lo: 0xa4, hi: 0xa4},
+ // Block 0x70, offset 0x26d
{value: 0x002d, lo: 0x05},
{value: 0x812e, lo: 0x8d, hi: 0x8d},
{value: 0x8133, lo: 0x8f, hi: 0x8f},
{value: 0x8133, lo: 0xb8, hi: 0xb8},
{value: 0x8101, lo: 0xb9, hi: 0xba},
{value: 0x8105, lo: 0xbf, hi: 0xbf},
- // Block 0x6f, offset 0x25b
+ // Block 0x71, offset 0x273
{value: 0x0000, lo: 0x02},
{value: 0x8133, lo: 0xa5, hi: 0xa5},
{value: 0x812e, lo: 0xa6, hi: 0xa6},
- // Block 0x70, offset 0x25e
+ // Block 0x72, offset 0x276
{value: 0x0000, lo: 0x01},
{value: 0x8133, lo: 0xa4, hi: 0xa7},
- // Block 0x71, offset 0x260
+ // Block 0x73, offset 0x278
+ {value: 0x0000, lo: 0x01},
+ {value: 0x8133, lo: 0xa9, hi: 0xad},
+ // Block 0x74, offset 0x27a
{value: 0x0000, lo: 0x01},
{value: 0x8133, lo: 0xab, hi: 0xac},
- // Block 0x72, offset 0x262
+ // Block 0x75, offset 0x27c
+ {value: 0x0000, lo: 0x02},
+ {value: 0x812e, lo: 0xba, hi: 0xbb},
+ {value: 0x812e, lo: 0xbd, hi: 0xbf},
+ // Block 0x76, offset 0x27f
{value: 0x0000, lo: 0x05},
{value: 0x812e, lo: 0x86, hi: 0x87},
{value: 0x8133, lo: 0x88, hi: 0x8a},
{value: 0x812e, lo: 0x8b, hi: 0x8b},
{value: 0x8133, lo: 0x8c, hi: 0x8c},
{value: 0x812e, lo: 0x8d, hi: 0x90},
- // Block 0x73, offset 0x268
- {value: 0x0000, lo: 0x02},
+ // Block 0x77, offset 0x285
+ {value: 0x0005, lo: 0x03},
+ {value: 0x8133, lo: 0x82, hi: 0x82},
+ {value: 0x812e, lo: 0x83, hi: 0x84},
+ {value: 0x812e, lo: 0x85, hi: 0x85},
+ // Block 0x78, offset 0x289
+ {value: 0x0000, lo: 0x03},
{value: 0x8105, lo: 0x86, hi: 0x86},
+ {value: 0x8105, lo: 0xb0, hi: 0xb0},
{value: 0x8105, lo: 0xbf, hi: 0xbf},
- // Block 0x74, offset 0x26b
+ // Block 0x79, offset 0x28d
{value: 0x17fe, lo: 0x07},
{value: 0xa000, lo: 0x99, hi: 0x99},
- {value: 0x424f, lo: 0x9a, hi: 0x9a},
+ {value: 0x4287, lo: 0x9a, hi: 0x9a},
{value: 0xa000, lo: 0x9b, hi: 0x9b},
- {value: 0x4259, lo: 0x9c, hi: 0x9c},
+ {value: 0x4291, lo: 0x9c, hi: 0x9c},
{value: 0xa000, lo: 0xa5, hi: 0xa5},
- {value: 0x4263, lo: 0xab, hi: 0xab},
+ {value: 0x429b, lo: 0xab, hi: 0xab},
{value: 0x8105, lo: 0xb9, hi: 0xba},
- // Block 0x75, offset 0x273
+ // Block 0x7a, offset 0x295
{value: 0x0000, lo: 0x06},
{value: 0x8133, lo: 0x80, hi: 0x82},
{value: 0x9900, lo: 0xa7, hi: 0xa7},
- {value: 0x2d8b, lo: 0xae, hi: 0xae},
- {value: 0x2d95, lo: 0xaf, hi: 0xaf},
+ {value: 0x42a5, lo: 0xae, hi: 0xae},
+ {value: 0x42af, lo: 0xaf, hi: 0xaf},
{value: 0xa000, lo: 0xb1, hi: 0xb2},
{value: 0x8105, lo: 0xb3, hi: 0xb4},
- // Block 0x76, offset 0x27a
+ // Block 0x7b, offset 0x29c
{value: 0x0000, lo: 0x02},
{value: 0x8105, lo: 0x80, hi: 0x80},
{value: 0x8103, lo: 0x8a, hi: 0x8a},
- // Block 0x77, offset 0x27d
+ // Block 0x7c, offset 0x29f
{value: 0x0000, lo: 0x02},
{value: 0x8105, lo: 0xb5, hi: 0xb5},
{value: 0x8103, lo: 0xb6, hi: 0xb6},
- // Block 0x78, offset 0x280
+ // Block 0x7d, offset 0x2a2
{value: 0x0002, lo: 0x01},
{value: 0x8103, lo: 0xa9, hi: 0xaa},
- // Block 0x79, offset 0x282
+ // Block 0x7e, offset 0x2a4
{value: 0x0000, lo: 0x02},
{value: 0x8103, lo: 0xbb, hi: 0xbc},
{value: 0x9900, lo: 0xbe, hi: 0xbe},
- // Block 0x7a, offset 0x285
+ // Block 0x7f, offset 0x2a7
{value: 0x0000, lo: 0x07},
{value: 0xa000, lo: 0x87, hi: 0x87},
- {value: 0x2d9f, lo: 0x8b, hi: 0x8b},
- {value: 0x2da9, lo: 0x8c, hi: 0x8c},
+ {value: 0x42b9, lo: 0x8b, hi: 0x8b},
+ {value: 0x42c3, lo: 0x8c, hi: 0x8c},
{value: 0x8105, lo: 0x8d, hi: 0x8d},
{value: 0x9900, lo: 0x97, hi: 0x97},
{value: 0x8133, lo: 0xa6, hi: 0xac},
{value: 0x8133, lo: 0xb0, hi: 0xb4},
- // Block 0x7b, offset 0x28d
+ // Block 0x80, offset 0x2af
+ {value: 0x5d33, lo: 0x09},
+ {value: 0xa000, lo: 0x82, hi: 0x82},
+ {value: 0x42cd, lo: 0x83, hi: 0x84},
+ {value: 0x42d7, lo: 0x85, hi: 0x85},
+ {value: 0xa000, lo: 0x8b, hi: 0x8b},
+ {value: 0x42e1, lo: 0x8e, hi: 0x8e},
+ {value: 0xa000, lo: 0x90, hi: 0x90},
+ {value: 0x42eb, lo: 0x91, hi: 0x91},
+ {value: 0x9900, lo: 0xb8, hi: 0xb8},
+ {value: 0x9900, lo: 0xbb, hi: 0xbb},
+ // Block 0x81, offset 0x2b9
+ {value: 0x0000, lo: 0x06},
+ {value: 0xb900, lo: 0x82, hi: 0x82},
+ {value: 0x4c14, lo: 0x85, hi: 0x85},
+ {value: 0x4c09, lo: 0x87, hi: 0x87},
+ {value: 0x4c1f, lo: 0x88, hi: 0x88},
+ {value: 0x9900, lo: 0x89, hi: 0x89},
+ {value: 0x8105, lo: 0x8e, hi: 0x90},
+ // Block 0x82, offset 0x2c0
{value: 0x0000, lo: 0x03},
{value: 0x8105, lo: 0x82, hi: 0x82},
{value: 0x8103, lo: 0x86, hi: 0x86},
{value: 0x8133, lo: 0x9e, hi: 0x9e},
- // Block 0x7c, offset 0x291
- {value: 0x6b4d, lo: 0x06},
+ // Block 0x83, offset 0x2c4
+ {value: 0x560b, lo: 0x06},
{value: 0x9900, lo: 0xb0, hi: 0xb0},
{value: 0xa000, lo: 0xb9, hi: 0xb9},
{value: 0x9900, lo: 0xba, hi: 0xba},
- {value: 0x2dbd, lo: 0xbb, hi: 0xbb},
- {value: 0x2db3, lo: 0xbc, hi: 0xbd},
- {value: 0x2dc7, lo: 0xbe, hi: 0xbe},
- // Block 0x7d, offset 0x298
+ {value: 0x42ff, lo: 0xbb, hi: 0xbb},
+ {value: 0x42f5, lo: 0xbc, hi: 0xbd},
+ {value: 0x4309, lo: 0xbe, hi: 0xbe},
+ // Block 0x84, offset 0x2cb
{value: 0x0000, lo: 0x02},
{value: 0x8105, lo: 0x82, hi: 0x82},
{value: 0x8103, lo: 0x83, hi: 0x83},
- // Block 0x7e, offset 0x29b
+ // Block 0x85, offset 0x2ce
{value: 0x0000, lo: 0x05},
{value: 0x9900, lo: 0xaf, hi: 0xaf},
{value: 0xa000, lo: 0xb8, hi: 0xb9},
- {value: 0x2dd1, lo: 0xba, hi: 0xba},
- {value: 0x2ddb, lo: 0xbb, hi: 0xbb},
+ {value: 0x4313, lo: 0xba, hi: 0xba},
+ {value: 0x431d, lo: 0xbb, hi: 0xbb},
{value: 0x8105, lo: 0xbf, hi: 0xbf},
- // Block 0x7f, offset 0x2a1
+ // Block 0x86, offset 0x2d4
{value: 0x0000, lo: 0x01},
{value: 0x8103, lo: 0x80, hi: 0x80},
- // Block 0x80, offset 0x2a3
+ // Block 0x87, offset 0x2d6
{value: 0x0000, lo: 0x01},
{value: 0x8105, lo: 0xbf, hi: 0xbf},
- // Block 0x81, offset 0x2a5
+ // Block 0x88, offset 0x2d8
{value: 0x0000, lo: 0x02},
{value: 0x8105, lo: 0xb6, hi: 0xb6},
{value: 0x8103, lo: 0xb7, hi: 0xb7},
- // Block 0x82, offset 0x2a8
+ // Block 0x89, offset 0x2db
{value: 0x0000, lo: 0x01},
{value: 0x8105, lo: 0xab, hi: 0xab},
- // Block 0x83, offset 0x2aa
+ // Block 0x8a, offset 0x2dd
{value: 0x0000, lo: 0x02},
{value: 0x8105, lo: 0xb9, hi: 0xb9},
{value: 0x8103, lo: 0xba, hi: 0xba},
- // Block 0x84, offset 0x2ad
+ // Block 0x8b, offset 0x2e0
{value: 0x0000, lo: 0x04},
{value: 0x9900, lo: 0xb0, hi: 0xb0},
{value: 0xa000, lo: 0xb5, hi: 0xb5},
- {value: 0x2de5, lo: 0xb8, hi: 0xb8},
+ {value: 0x4327, lo: 0xb8, hi: 0xb8},
{value: 0x8105, lo: 0xbd, hi: 0xbe},
- // Block 0x85, offset 0x2b2
+ // Block 0x8c, offset 0x2e5
{value: 0x0000, lo: 0x01},
{value: 0x8103, lo: 0x83, hi: 0x83},
- // Block 0x86, offset 0x2b4
+ // Block 0x8d, offset 0x2e7
{value: 0x0000, lo: 0x01},
{value: 0x8105, lo: 0xa0, hi: 0xa0},
- // Block 0x87, offset 0x2b6
+ // Block 0x8e, offset 0x2e9
{value: 0x0000, lo: 0x01},
{value: 0x8105, lo: 0xb4, hi: 0xb4},
- // Block 0x88, offset 0x2b8
+ // Block 0x8f, offset 0x2eb
{value: 0x0000, lo: 0x01},
{value: 0x8105, lo: 0x87, hi: 0x87},
- // Block 0x89, offset 0x2ba
+ // Block 0x90, offset 0x2ed
{value: 0x0000, lo: 0x01},
{value: 0x8105, lo: 0x99, hi: 0x99},
- // Block 0x8a, offset 0x2bc
+ // Block 0x91, offset 0x2ef
{value: 0x0000, lo: 0x02},
{value: 0x8103, lo: 0x82, hi: 0x82},
{value: 0x8105, lo: 0x84, hi: 0x85},
- // Block 0x8b, offset 0x2bf
+ // Block 0x92, offset 0x2f2
{value: 0x0000, lo: 0x01},
{value: 0x8105, lo: 0x97, hi: 0x97},
- // Block 0x8c, offset 0x2c1
+ // Block 0x93, offset 0x2f4
+ {value: 0x0000, lo: 0x01},
+ {value: 0x8105, lo: 0x81, hi: 0x82},
+ // Block 0x94, offset 0x2f6
+ {value: 0x0000, lo: 0x0c},
+ {value: 0xb900, lo: 0x9e, hi: 0x9e},
+ {value: 0x9900, lo: 0x9f, hi: 0xa0},
+ {value: 0x4c83, lo: 0xa1, hi: 0xa1},
+ {value: 0x4c8e, lo: 0xa2, hi: 0xa2},
+ {value: 0x4c2a, lo: 0xa3, hi: 0xa3},
+ {value: 0x4c40, lo: 0xa4, hi: 0xa4},
+ {value: 0x4c35, lo: 0xa5, hi: 0xa5},
+ {value: 0x4c56, lo: 0xa6, hi: 0xa6},
+ {value: 0x4c74, lo: 0xa7, hi: 0xa7},
+ {value: 0x4c65, lo: 0xa8, hi: 0xa8},
+ {value: 0xb900, lo: 0xa9, hi: 0xa9},
+ {value: 0x8105, lo: 0xaf, hi: 0xaf},
+ // Block 0x95, offset 0x303
{value: 0x0000, lo: 0x01},
{value: 0x8101, lo: 0xb0, hi: 0xb4},
- // Block 0x8d, offset 0x2c3
+ // Block 0x96, offset 0x305
{value: 0x0000, lo: 0x01},
{value: 0x8133, lo: 0xb0, hi: 0xb6},
- // Block 0x8e, offset 0x2c5
+ // Block 0x97, offset 0x307
+ {value: 0x0000, lo: 0x05},
+ {value: 0xa000, lo: 0xa3, hi: 0xa3},
+ {value: 0xb900, lo: 0xa7, hi: 0xa7},
+ {value: 0x4c4b, lo: 0xa8, hi: 0xa8},
+ {value: 0x4b35, lo: 0xa9, hi: 0xa9},
+ {value: 0x4347, lo: 0xaa, hi: 0xaa},
+ // Block 0x98, offset 0x30d
{value: 0x0000, lo: 0x01},
{value: 0x8102, lo: 0xb0, hi: 0xb1},
- // Block 0x8f, offset 0x2c7
+ // Block 0x99, offset 0x30f
{value: 0x0000, lo: 0x01},
{value: 0x8101, lo: 0x9e, hi: 0x9e},
- // Block 0x90, offset 0x2c9
+ // Block 0x9a, offset 0x311
+ {value: 0x0002, lo: 0x02},
+ {value: 0x0043, lo: 0x96, hi: 0xaf},
+ {value: 0x0021, lo: 0xb0, hi: 0xb9},
+ // Block 0x9b, offset 0x314
{value: 0x0000, lo: 0x0c},
- {value: 0x45e3, lo: 0x9e, hi: 0x9e},
- {value: 0x45ed, lo: 0x9f, hi: 0x9f},
- {value: 0x4621, lo: 0xa0, hi: 0xa0},
- {value: 0x462f, lo: 0xa1, hi: 0xa1},
- {value: 0x463d, lo: 0xa2, hi: 0xa2},
- {value: 0x464b, lo: 0xa3, hi: 0xa3},
- {value: 0x4659, lo: 0xa4, hi: 0xa4},
+ {value: 0x4743, lo: 0x9e, hi: 0x9e},
+ {value: 0x474d, lo: 0x9f, hi: 0x9f},
+ {value: 0x4781, lo: 0xa0, hi: 0xa0},
+ {value: 0x478f, lo: 0xa1, hi: 0xa1},
+ {value: 0x479d, lo: 0xa2, hi: 0xa2},
+ {value: 0x47ab, lo: 0xa3, hi: 0xa3},
+ {value: 0x47b9, lo: 0xa4, hi: 0xa4},
{value: 0x812c, lo: 0xa5, hi: 0xa6},
{value: 0x8101, lo: 0xa7, hi: 0xa9},
{value: 0x8131, lo: 0xad, hi: 0xad},
{value: 0x812c, lo: 0xae, hi: 0xb2},
{value: 0x812e, lo: 0xbb, hi: 0xbf},
- // Block 0x91, offset 0x2d6
+ // Block 0x9c, offset 0x321
{value: 0x0000, lo: 0x09},
{value: 0x812e, lo: 0x80, hi: 0x82},
{value: 0x8133, lo: 0x85, hi: 0x89},
{value: 0x812e, lo: 0x8a, hi: 0x8b},
{value: 0x8133, lo: 0xaa, hi: 0xad},
- {value: 0x45f7, lo: 0xbb, hi: 0xbb},
- {value: 0x4601, lo: 0xbc, hi: 0xbc},
- {value: 0x4667, lo: 0xbd, hi: 0xbd},
- {value: 0x4683, lo: 0xbe, hi: 0xbe},
- {value: 0x4675, lo: 0xbf, hi: 0xbf},
- // Block 0x92, offset 0x2e0
+ {value: 0x4757, lo: 0xbb, hi: 0xbb},
+ {value: 0x4761, lo: 0xbc, hi: 0xbc},
+ {value: 0x47c7, lo: 0xbd, hi: 0xbd},
+ {value: 0x47e3, lo: 0xbe, hi: 0xbe},
+ {value: 0x47d5, lo: 0xbf, hi: 0xbf},
+ // Block 0x9d, offset 0x32b
{value: 0x0000, lo: 0x01},
- {value: 0x4691, lo: 0x80, hi: 0x80},
- // Block 0x93, offset 0x2e2
+ {value: 0x47f1, lo: 0x80, hi: 0x80},
+ // Block 0x9e, offset 0x32d
{value: 0x0000, lo: 0x01},
{value: 0x8133, lo: 0x82, hi: 0x84},
- // Block 0x94, offset 0x2e4
+ // Block 0x9f, offset 0x32f
{value: 0x0002, lo: 0x03},
{value: 0x0043, lo: 0x80, hi: 0x99},
{value: 0x0083, lo: 0x9a, hi: 0xb3},
{value: 0x0043, lo: 0xb4, hi: 0xbf},
- // Block 0x95, offset 0x2e8
+ // Block 0xa0, offset 0x333
{value: 0x0002, lo: 0x04},
{value: 0x005b, lo: 0x80, hi: 0x8d},
{value: 0x0083, lo: 0x8e, hi: 0x94},
{value: 0x0093, lo: 0x96, hi: 0xa7},
{value: 0x0043, lo: 0xa8, hi: 0xbf},
- // Block 0x96, offset 0x2ed
+ // Block 0xa1, offset 0x338
{value: 0x0002, lo: 0x0b},
{value: 0x0073, lo: 0x80, hi: 0x81},
{value: 0x0083, lo: 0x82, hi: 0x9b},
@@ -6655,13 +6965,13 @@ var nfkcSparseValues = [895]valueRange{
{value: 0x0083, lo: 0xb6, hi: 0xb9},
{value: 0x008d, lo: 0xbb, hi: 0xbb},
{value: 0x0091, lo: 0xbd, hi: 0xbf},
- // Block 0x97, offset 0x2f9
+ // Block 0xa2, offset 0x344
{value: 0x0002, lo: 0x04},
{value: 0x0097, lo: 0x80, hi: 0x83},
{value: 0x00a1, lo: 0x85, hi: 0x8f},
{value: 0x0043, lo: 0x90, hi: 0xa9},
{value: 0x0083, lo: 0xaa, hi: 0xbf},
- // Block 0x98, offset 0x2fe
+ // Block 0xa3, offset 0x349
{value: 0x0002, lo: 0x08},
{value: 0x00af, lo: 0x80, hi: 0x83},
{value: 0x0043, lo: 0x84, hi: 0x85},
@@ -6671,146 +6981,160 @@ var nfkcSparseValues = [895]valueRange{
{value: 0x0083, lo: 0x9e, hi: 0xb7},
{value: 0x0043, lo: 0xb8, hi: 0xb9},
{value: 0x0049, lo: 0xbb, hi: 0xbe},
- // Block 0x99, offset 0x307
+ // Block 0xa4, offset 0x352
{value: 0x0002, lo: 0x05},
{value: 0x0053, lo: 0x80, hi: 0x84},
{value: 0x005f, lo: 0x86, hi: 0x86},
{value: 0x0067, lo: 0x8a, hi: 0x90},
{value: 0x0083, lo: 0x92, hi: 0xab},
{value: 0x0043, lo: 0xac, hi: 0xbf},
- // Block 0x9a, offset 0x30d
+ // Block 0xa5, offset 0x358
{value: 0x0002, lo: 0x04},
{value: 0x006b, lo: 0x80, hi: 0x85},
{value: 0x0083, lo: 0x86, hi: 0x9f},
{value: 0x0043, lo: 0xa0, hi: 0xb9},
{value: 0x0083, lo: 0xba, hi: 0xbf},
- // Block 0x9b, offset 0x312
+ // Block 0xa6, offset 0x35d
{value: 0x0002, lo: 0x03},
{value: 0x008f, lo: 0x80, hi: 0x93},
{value: 0x0043, lo: 0x94, hi: 0xad},
{value: 0x0083, lo: 0xae, hi: 0xbf},
- // Block 0x9c, offset 0x316
+ // Block 0xa7, offset 0x361
{value: 0x0002, lo: 0x04},
{value: 0x00a7, lo: 0x80, hi: 0x87},
{value: 0x0043, lo: 0x88, hi: 0xa1},
{value: 0x0083, lo: 0xa2, hi: 0xbb},
{value: 0x0043, lo: 0xbc, hi: 0xbf},
- // Block 0x9d, offset 0x31b
+ // Block 0xa8, offset 0x366
{value: 0x0002, lo: 0x03},
{value: 0x004b, lo: 0x80, hi: 0x95},
{value: 0x0083, lo: 0x96, hi: 0xaf},
{value: 0x0043, lo: 0xb0, hi: 0xbf},
- // Block 0x9e, offset 0x31f
+ // Block 0xa9, offset 0x36a
{value: 0x0003, lo: 0x0f},
- {value: 0x01bb, lo: 0x80, hi: 0x80},
- {value: 0x0462, lo: 0x81, hi: 0x81},
- {value: 0x01be, lo: 0x82, hi: 0x9a},
- {value: 0x045e, lo: 0x9b, hi: 0x9b},
- {value: 0x01ca, lo: 0x9c, hi: 0x9c},
- {value: 0x01d3, lo: 0x9d, hi: 0x9d},
- {value: 0x01d9, lo: 0x9e, hi: 0x9e},
- {value: 0x01fd, lo: 0x9f, hi: 0x9f},
- {value: 0x01ee, lo: 0xa0, hi: 0xa0},
- {value: 0x01eb, lo: 0xa1, hi: 0xa1},
- {value: 0x0176, lo: 0xa2, hi: 0xb2},
- {value: 0x018b, lo: 0xb3, hi: 0xb3},
- {value: 0x01a9, lo: 0xb4, hi: 0xba},
- {value: 0x0462, lo: 0xbb, hi: 0xbb},
- {value: 0x01be, lo: 0xbc, hi: 0xbf},
- // Block 0x9f, offset 0x32f
+ {value: 0x023c, lo: 0x80, hi: 0x80},
+ {value: 0x0556, lo: 0x81, hi: 0x81},
+ {value: 0x023f, lo: 0x82, hi: 0x9a},
+ {value: 0x0552, lo: 0x9b, hi: 0x9b},
+ {value: 0x024b, lo: 0x9c, hi: 0x9c},
+ {value: 0x0254, lo: 0x9d, hi: 0x9d},
+ {value: 0x025a, lo: 0x9e, hi: 0x9e},
+ {value: 0x027e, lo: 0x9f, hi: 0x9f},
+ {value: 0x026f, lo: 0xa0, hi: 0xa0},
+ {value: 0x026c, lo: 0xa1, hi: 0xa1},
+ {value: 0x01f7, lo: 0xa2, hi: 0xb2},
+ {value: 0x020c, lo: 0xb3, hi: 0xb3},
+ {value: 0x022a, lo: 0xb4, hi: 0xba},
+ {value: 0x0556, lo: 0xbb, hi: 0xbb},
+ {value: 0x023f, lo: 0xbc, hi: 0xbf},
+ // Block 0xaa, offset 0x37a
{value: 0x0003, lo: 0x0d},
- {value: 0x01ca, lo: 0x80, hi: 0x94},
- {value: 0x045e, lo: 0x95, hi: 0x95},
- {value: 0x01ca, lo: 0x96, hi: 0x96},
- {value: 0x01d3, lo: 0x97, hi: 0x97},
- {value: 0x01d9, lo: 0x98, hi: 0x98},
- {value: 0x01fd, lo: 0x99, hi: 0x99},
- {value: 0x01ee, lo: 0x9a, hi: 0x9a},
- {value: 0x01eb, lo: 0x9b, hi: 0x9b},
- {value: 0x0176, lo: 0x9c, hi: 0xac},
- {value: 0x018b, lo: 0xad, hi: 0xad},
- {value: 0x01a9, lo: 0xae, hi: 0xb4},
- {value: 0x0462, lo: 0xb5, hi: 0xb5},
- {value: 0x01be, lo: 0xb6, hi: 0xbf},
- // Block 0xa0, offset 0x33d
+ {value: 0x024b, lo: 0x80, hi: 0x94},
+ {value: 0x0552, lo: 0x95, hi: 0x95},
+ {value: 0x024b, lo: 0x96, hi: 0x96},
+ {value: 0x0254, lo: 0x97, hi: 0x97},
+ {value: 0x025a, lo: 0x98, hi: 0x98},
+ {value: 0x027e, lo: 0x99, hi: 0x99},
+ {value: 0x026f, lo: 0x9a, hi: 0x9a},
+ {value: 0x026c, lo: 0x9b, hi: 0x9b},
+ {value: 0x01f7, lo: 0x9c, hi: 0xac},
+ {value: 0x020c, lo: 0xad, hi: 0xad},
+ {value: 0x022a, lo: 0xae, hi: 0xb4},
+ {value: 0x0556, lo: 0xb5, hi: 0xb5},
+ {value: 0x023f, lo: 0xb6, hi: 0xbf},
+ // Block 0xab, offset 0x388
{value: 0x0003, lo: 0x0d},
- {value: 0x01dc, lo: 0x80, hi: 0x8e},
- {value: 0x045e, lo: 0x8f, hi: 0x8f},
- {value: 0x01ca, lo: 0x90, hi: 0x90},
- {value: 0x01d3, lo: 0x91, hi: 0x91},
- {value: 0x01d9, lo: 0x92, hi: 0x92},
- {value: 0x01fd, lo: 0x93, hi: 0x93},
- {value: 0x01ee, lo: 0x94, hi: 0x94},
- {value: 0x01eb, lo: 0x95, hi: 0x95},
- {value: 0x0176, lo: 0x96, hi: 0xa6},
- {value: 0x018b, lo: 0xa7, hi: 0xa7},
- {value: 0x01a9, lo: 0xa8, hi: 0xae},
- {value: 0x0462, lo: 0xaf, hi: 0xaf},
- {value: 0x01be, lo: 0xb0, hi: 0xbf},
- // Block 0xa1, offset 0x34b
+ {value: 0x025d, lo: 0x80, hi: 0x8e},
+ {value: 0x0552, lo: 0x8f, hi: 0x8f},
+ {value: 0x024b, lo: 0x90, hi: 0x90},
+ {value: 0x0254, lo: 0x91, hi: 0x91},
+ {value: 0x025a, lo: 0x92, hi: 0x92},
+ {value: 0x027e, lo: 0x93, hi: 0x93},
+ {value: 0x026f, lo: 0x94, hi: 0x94},
+ {value: 0x026c, lo: 0x95, hi: 0x95},
+ {value: 0x01f7, lo: 0x96, hi: 0xa6},
+ {value: 0x020c, lo: 0xa7, hi: 0xa7},
+ {value: 0x022a, lo: 0xa8, hi: 0xae},
+ {value: 0x0556, lo: 0xaf, hi: 0xaf},
+ {value: 0x023f, lo: 0xb0, hi: 0xbf},
+ // Block 0xac, offset 0x396
{value: 0x0003, lo: 0x0d},
- {value: 0x01ee, lo: 0x80, hi: 0x88},
- {value: 0x045e, lo: 0x89, hi: 0x89},
- {value: 0x01ca, lo: 0x8a, hi: 0x8a},
- {value: 0x01d3, lo: 0x8b, hi: 0x8b},
- {value: 0x01d9, lo: 0x8c, hi: 0x8c},
- {value: 0x01fd, lo: 0x8d, hi: 0x8d},
- {value: 0x01ee, lo: 0x8e, hi: 0x8e},
- {value: 0x01eb, lo: 0x8f, hi: 0x8f},
- {value: 0x0176, lo: 0x90, hi: 0xa0},
- {value: 0x018b, lo: 0xa1, hi: 0xa1},
- {value: 0x01a9, lo: 0xa2, hi: 0xa8},
- {value: 0x0462, lo: 0xa9, hi: 0xa9},
- {value: 0x01be, lo: 0xaa, hi: 0xbf},
- // Block 0xa2, offset 0x359
- {value: 0x0000, lo: 0x05},
- {value: 0x8133, lo: 0x80, hi: 0x86},
- {value: 0x8133, lo: 0x88, hi: 0x98},
- {value: 0x8133, lo: 0x9b, hi: 0xa1},
- {value: 0x8133, lo: 0xa3, hi: 0xa4},
- {value: 0x8133, lo: 0xa6, hi: 0xaa},
- // Block 0xa3, offset 0x35f
+ {value: 0x026f, lo: 0x80, hi: 0x88},
+ {value: 0x0552, lo: 0x89, hi: 0x89},
+ {value: 0x024b, lo: 0x8a, hi: 0x8a},
+ {value: 0x0254, lo: 0x8b, hi: 0x8b},
+ {value: 0x025a, lo: 0x8c, hi: 0x8c},
+ {value: 0x027e, lo: 0x8d, hi: 0x8d},
+ {value: 0x026f, lo: 0x8e, hi: 0x8e},
+ {value: 0x026c, lo: 0x8f, hi: 0x8f},
+ {value: 0x01f7, lo: 0x90, hi: 0xa0},
+ {value: 0x020c, lo: 0xa1, hi: 0xa1},
+ {value: 0x022a, lo: 0xa2, hi: 0xa8},
+ {value: 0x0556, lo: 0xa9, hi: 0xa9},
+ {value: 0x023f, lo: 0xaa, hi: 0xbf},
+ // Block 0xad, offset 0x3a4
+ {value: 0x0000, lo: 0x01},
+ {value: 0x8133, lo: 0x8f, hi: 0x8f},
+ // Block 0xae, offset 0x3a6
+ {value: 0x0000, lo: 0x01},
+ {value: 0x8133, lo: 0xae, hi: 0xae},
+ // Block 0xaf, offset 0x3a8
{value: 0x0000, lo: 0x01},
{value: 0x8133, lo: 0xac, hi: 0xaf},
- // Block 0xa4, offset 0x361
+ // Block 0xb0, offset 0x3aa
+ {value: 0x0000, lo: 0x03},
+ {value: 0x8134, lo: 0xac, hi: 0xad},
+ {value: 0x812e, lo: 0xae, hi: 0xae},
+ {value: 0x8133, lo: 0xaf, hi: 0xaf},
+ // Block 0xb1, offset 0x3ae
+ {value: 0x0000, lo: 0x02},
+ {value: 0x8133, lo: 0xae, hi: 0xae},
+ {value: 0x812e, lo: 0xaf, hi: 0xaf},
+ // Block 0xb2, offset 0x3b1
+ {value: 0x0000, lo: 0x04},
+ {value: 0x8133, lo: 0xa3, hi: 0xa3},
+ {value: 0x8133, lo: 0xa6, hi: 0xa6},
+ {value: 0x8133, lo: 0xae, hi: 0xaf},
+ {value: 0x8133, lo: 0xb5, hi: 0xb5},
+ // Block 0xb3, offset 0x3b6
{value: 0x0000, lo: 0x01},
{value: 0x812e, lo: 0x90, hi: 0x96},
- // Block 0xa5, offset 0x363
+ // Block 0xb4, offset 0x3b8
{value: 0x0000, lo: 0x02},
{value: 0x8133, lo: 0x84, hi: 0x89},
{value: 0x8103, lo: 0x8a, hi: 0x8a},
- // Block 0xa6, offset 0x366
+ // Block 0xb5, offset 0x3bb
{value: 0x0002, lo: 0x0a},
{value: 0x0063, lo: 0x80, hi: 0x89},
- {value: 0x1954, lo: 0x8a, hi: 0x8a},
- {value: 0x1987, lo: 0x8b, hi: 0x8b},
- {value: 0x19a2, lo: 0x8c, hi: 0x8c},
- {value: 0x19a8, lo: 0x8d, hi: 0x8d},
- {value: 0x1bc6, lo: 0x8e, hi: 0x8e},
- {value: 0x19b4, lo: 0x8f, hi: 0x8f},
- {value: 0x197e, lo: 0xaa, hi: 0xaa},
- {value: 0x1981, lo: 0xab, hi: 0xab},
- {value: 0x1984, lo: 0xac, hi: 0xac},
- // Block 0xa7, offset 0x371
+ {value: 0x1a7e, lo: 0x8a, hi: 0x8a},
+ {value: 0x1ab1, lo: 0x8b, hi: 0x8b},
+ {value: 0x1acc, lo: 0x8c, hi: 0x8c},
+ {value: 0x1ad2, lo: 0x8d, hi: 0x8d},
+ {value: 0x1cf0, lo: 0x8e, hi: 0x8e},
+ {value: 0x1ade, lo: 0x8f, hi: 0x8f},
+ {value: 0x1aa8, lo: 0xaa, hi: 0xaa},
+ {value: 0x1aab, lo: 0xab, hi: 0xab},
+ {value: 0x1aae, lo: 0xac, hi: 0xac},
+ // Block 0xb6, offset 0x3c6
{value: 0x0000, lo: 0x01},
- {value: 0x1942, lo: 0x90, hi: 0x90},
- // Block 0xa8, offset 0x373
+ {value: 0x1a6c, lo: 0x90, hi: 0x90},
+ // Block 0xb7, offset 0x3c8
{value: 0x0028, lo: 0x09},
- {value: 0x286f, lo: 0x80, hi: 0x80},
- {value: 0x2833, lo: 0x81, hi: 0x81},
- {value: 0x283d, lo: 0x82, hi: 0x82},
- {value: 0x2851, lo: 0x83, hi: 0x84},
- {value: 0x285b, lo: 0x85, hi: 0x86},
- {value: 0x2847, lo: 0x87, hi: 0x87},
- {value: 0x2865, lo: 0x88, hi: 0x88},
- {value: 0x0b72, lo: 0x90, hi: 0x90},
- {value: 0x08ea, lo: 0x91, hi: 0x91},
- // Block 0xa9, offset 0x37d
+ {value: 0x2999, lo: 0x80, hi: 0x80},
+ {value: 0x295d, lo: 0x81, hi: 0x81},
+ {value: 0x2967, lo: 0x82, hi: 0x82},
+ {value: 0x297b, lo: 0x83, hi: 0x84},
+ {value: 0x2985, lo: 0x85, hi: 0x86},
+ {value: 0x2971, lo: 0x87, hi: 0x87},
+ {value: 0x298f, lo: 0x88, hi: 0x88},
+ {value: 0x0c6a, lo: 0x90, hi: 0x90},
+ {value: 0x09e2, lo: 0x91, hi: 0x91},
+ // Block 0xb8, offset 0x3d2
{value: 0x0002, lo: 0x01},
{value: 0x0021, lo: 0xb0, hi: 0xb9},
}
-// recompMap: 7528 bytes (entries only)
+// recompMap: 7688 bytes (entries only)
var recompMap map[uint32]rune
var recompMapOnce sync.Once
@@ -7743,6 +8067,8 @@ const recompMapPacked = "" +
"0\xf10\x99\x00\x000\xf9" + // 0x30F13099: 0x000030F9
"0\xf20\x99\x00\x000\xfa" + // 0x30F23099: 0x000030FA
"0\xfd0\x99\x00\x000\xfe" + // 0x30FD3099: 0x000030FE
+ "\x05\xd2\x03\a\x00\x01\x05\xc9" + // 0x05D20307: 0x000105C9
+ "\x05\xda\x03\a\x00\x01\x05\xe4" + // 0x05DA0307: 0x000105E4
"\x10\x99\x10\xba\x00\x01\x10\x9a" + // 0x109910BA: 0x0001109A
"\x10\x9b\x10\xba\x00\x01\x10\x9c" + // 0x109B10BA: 0x0001109C
"\x10\xa5\x10\xba\x00\x01\x10\xab" + // 0x10A510BA: 0x000110AB
@@ -7750,11 +8076,29 @@ const recompMapPacked = "" +
"\x112\x11'\x00\x01\x11/" + // 0x11321127: 0x0001112F
"\x13G\x13>\x00\x01\x13K" + // 0x1347133E: 0x0001134B
"\x13G\x13W\x00\x01\x13L" + // 0x13471357: 0x0001134C
+ "\x13\x82\x13\xc9\x00\x01\x13\x83" + // 0x138213C9: 0x00011383
+ "\x13\x84\x13\xbb\x00\x01\x13\x85" + // 0x138413BB: 0x00011385
+ "\x13\x8b\x13\xc2\x00\x01\x13\x8e" + // 0x138B13C2: 0x0001138E
+ "\x13\x90\x13\xc9\x00\x01\x13\x91" + // 0x139013C9: 0x00011391
+ "\x13\xc2\x13\xc2\x00\x01\x13\xc5" + // 0x13C213C2: 0x000113C5
+ "\x13\xc2\x13\xb8\x00\x01\x13\xc7" + // 0x13C213B8: 0x000113C7
+ "\x13\xc2\x13\xc9\x00\x01\x13\xc8" + // 0x13C213C9: 0x000113C8
"\x14\xb9\x14\xba\x00\x01\x14\xbb" + // 0x14B914BA: 0x000114BB
"\x14\xb9\x14\xb0\x00\x01\x14\xbc" + // 0x14B914B0: 0x000114BC
"\x14\xb9\x14\xbd\x00\x01\x14\xbe" + // 0x14B914BD: 0x000114BE
"\x15\xb8\x15\xaf\x00\x01\x15\xba" + // 0x15B815AF: 0x000115BA
"\x15\xb9\x15\xaf\x00\x01\x15\xbb" + // 0x15B915AF: 0x000115BB
"\x195\x190\x00\x01\x198" + // 0x19351930: 0x00011938
+ "a\x1ea\x1e\x00\x01a!" + // 0x611E611E: 0x00016121
+ "a\x1ea)\x00\x01a\"" + // 0x611E6129: 0x00016122
+ "a\x1ea\x1f\x00\x01a#" + // 0x611E611F: 0x00016123
+ "a)a\x1f\x00\x01a$" + // 0x6129611F: 0x00016124
+ "a\x1ea \x00\x01a%" + // 0x611E6120: 0x00016125
+ "a!a\x1f\x00\x01a&" + // 0x6121611F: 0x00016126
+ "a\"a\x1f\x00\x01a'" + // 0x6122611F: 0x00016127
+ "a!a \x00\x01a(" + // 0x61216120: 0x00016128
+ "mgmg\x00\x01mh" + // 0x6D676D67: 0x00016D68
+ "mcmg\x00\x01mi" + // 0x6D636D67: 0x00016D69
+ "mimg\x00\x01mj" + // 0x6D696D67: 0x00016D6A
""
- // Total size of tables: 55KB (56160 bytes)
+ // Total size of tables: 57KB (58086 bytes)
diff --git a/vendor/golang.org/x/text/unicode/norm/tables9.0.0.go b/vendor/golang.org/x/text/unicode/norm/tables9.0.0.go
deleted file mode 100644
index bf65457d..00000000
--- a/vendor/golang.org/x/text/unicode/norm/tables9.0.0.go
+++ /dev/null
@@ -1,7637 +0,0 @@
-// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
-
-//go:build !go1.10
-
-package norm
-
-import "sync"
-
-const (
- // Version is the Unicode edition from which the tables are derived.
- Version = "9.0.0"
-
- // MaxTransformChunkSize indicates the maximum number of bytes that Transform
- // may need to write atomically for any Form. Making a destination buffer at
- // least this size ensures that Transform can always make progress and that
- // the user does not need to grow the buffer on an ErrShortDst.
- MaxTransformChunkSize = 35 + maxNonStarters*4
-)
-
-var ccc = [55]uint8{
- 0, 1, 7, 8, 9, 10, 11, 12,
- 13, 14, 15, 16, 17, 18, 19, 20,
- 21, 22, 23, 24, 25, 26, 27, 28,
- 29, 30, 31, 32, 33, 34, 35, 36,
- 84, 91, 103, 107, 118, 122, 129, 130,
- 132, 202, 214, 216, 218, 220, 222, 224,
- 226, 228, 230, 232, 233, 234, 240,
-}
-
-const (
- firstMulti = 0x186D
- firstCCC = 0x2C9E
- endMulti = 0x2F60
- firstLeadingCCC = 0x49AE
- firstCCCZeroExcept = 0x4A78
- firstStarterWithNLead = 0x4A9F
- lastDecomp = 0x4AA1
- maxDecomp = 0x8000
-)
-
-// decomps: 19105 bytes
-var decomps = [...]byte{
- // Bytes 0 - 3f
- 0x00, 0x41, 0x20, 0x41, 0x21, 0x41, 0x22, 0x41,
- 0x23, 0x41, 0x24, 0x41, 0x25, 0x41, 0x26, 0x41,
- 0x27, 0x41, 0x28, 0x41, 0x29, 0x41, 0x2A, 0x41,
- 0x2B, 0x41, 0x2C, 0x41, 0x2D, 0x41, 0x2E, 0x41,
- 0x2F, 0x41, 0x30, 0x41, 0x31, 0x41, 0x32, 0x41,
- 0x33, 0x41, 0x34, 0x41, 0x35, 0x41, 0x36, 0x41,
- 0x37, 0x41, 0x38, 0x41, 0x39, 0x41, 0x3A, 0x41,
- 0x3B, 0x41, 0x3C, 0x41, 0x3D, 0x41, 0x3E, 0x41,
- // Bytes 40 - 7f
- 0x3F, 0x41, 0x40, 0x41, 0x41, 0x41, 0x42, 0x41,
- 0x43, 0x41, 0x44, 0x41, 0x45, 0x41, 0x46, 0x41,
- 0x47, 0x41, 0x48, 0x41, 0x49, 0x41, 0x4A, 0x41,
- 0x4B, 0x41, 0x4C, 0x41, 0x4D, 0x41, 0x4E, 0x41,
- 0x4F, 0x41, 0x50, 0x41, 0x51, 0x41, 0x52, 0x41,
- 0x53, 0x41, 0x54, 0x41, 0x55, 0x41, 0x56, 0x41,
- 0x57, 0x41, 0x58, 0x41, 0x59, 0x41, 0x5A, 0x41,
- 0x5B, 0x41, 0x5C, 0x41, 0x5D, 0x41, 0x5E, 0x41,
- // Bytes 80 - bf
- 0x5F, 0x41, 0x60, 0x41, 0x61, 0x41, 0x62, 0x41,
- 0x63, 0x41, 0x64, 0x41, 0x65, 0x41, 0x66, 0x41,
- 0x67, 0x41, 0x68, 0x41, 0x69, 0x41, 0x6A, 0x41,
- 0x6B, 0x41, 0x6C, 0x41, 0x6D, 0x41, 0x6E, 0x41,
- 0x6F, 0x41, 0x70, 0x41, 0x71, 0x41, 0x72, 0x41,
- 0x73, 0x41, 0x74, 0x41, 0x75, 0x41, 0x76, 0x41,
- 0x77, 0x41, 0x78, 0x41, 0x79, 0x41, 0x7A, 0x41,
- 0x7B, 0x41, 0x7C, 0x41, 0x7D, 0x41, 0x7E, 0x42,
- // Bytes c0 - ff
- 0xC2, 0xA2, 0x42, 0xC2, 0xA3, 0x42, 0xC2, 0xA5,
- 0x42, 0xC2, 0xA6, 0x42, 0xC2, 0xAC, 0x42, 0xC2,
- 0xB7, 0x42, 0xC3, 0x86, 0x42, 0xC3, 0xB0, 0x42,
- 0xC4, 0xA6, 0x42, 0xC4, 0xA7, 0x42, 0xC4, 0xB1,
- 0x42, 0xC5, 0x8B, 0x42, 0xC5, 0x93, 0x42, 0xC6,
- 0x8E, 0x42, 0xC6, 0x90, 0x42, 0xC6, 0xAB, 0x42,
- 0xC8, 0xA2, 0x42, 0xC8, 0xB7, 0x42, 0xC9, 0x90,
- 0x42, 0xC9, 0x91, 0x42, 0xC9, 0x92, 0x42, 0xC9,
- // Bytes 100 - 13f
- 0x94, 0x42, 0xC9, 0x95, 0x42, 0xC9, 0x99, 0x42,
- 0xC9, 0x9B, 0x42, 0xC9, 0x9C, 0x42, 0xC9, 0x9F,
- 0x42, 0xC9, 0xA1, 0x42, 0xC9, 0xA3, 0x42, 0xC9,
- 0xA5, 0x42, 0xC9, 0xA6, 0x42, 0xC9, 0xA8, 0x42,
- 0xC9, 0xA9, 0x42, 0xC9, 0xAA, 0x42, 0xC9, 0xAB,
- 0x42, 0xC9, 0xAD, 0x42, 0xC9, 0xAF, 0x42, 0xC9,
- 0xB0, 0x42, 0xC9, 0xB1, 0x42, 0xC9, 0xB2, 0x42,
- 0xC9, 0xB3, 0x42, 0xC9, 0xB4, 0x42, 0xC9, 0xB5,
- // Bytes 140 - 17f
- 0x42, 0xC9, 0xB8, 0x42, 0xC9, 0xB9, 0x42, 0xC9,
- 0xBB, 0x42, 0xCA, 0x81, 0x42, 0xCA, 0x82, 0x42,
- 0xCA, 0x83, 0x42, 0xCA, 0x89, 0x42, 0xCA, 0x8A,
- 0x42, 0xCA, 0x8B, 0x42, 0xCA, 0x8C, 0x42, 0xCA,
- 0x90, 0x42, 0xCA, 0x91, 0x42, 0xCA, 0x92, 0x42,
- 0xCA, 0x95, 0x42, 0xCA, 0x9D, 0x42, 0xCA, 0x9F,
- 0x42, 0xCA, 0xB9, 0x42, 0xCE, 0x91, 0x42, 0xCE,
- 0x92, 0x42, 0xCE, 0x93, 0x42, 0xCE, 0x94, 0x42,
- // Bytes 180 - 1bf
- 0xCE, 0x95, 0x42, 0xCE, 0x96, 0x42, 0xCE, 0x97,
- 0x42, 0xCE, 0x98, 0x42, 0xCE, 0x99, 0x42, 0xCE,
- 0x9A, 0x42, 0xCE, 0x9B, 0x42, 0xCE, 0x9C, 0x42,
- 0xCE, 0x9D, 0x42, 0xCE, 0x9E, 0x42, 0xCE, 0x9F,
- 0x42, 0xCE, 0xA0, 0x42, 0xCE, 0xA1, 0x42, 0xCE,
- 0xA3, 0x42, 0xCE, 0xA4, 0x42, 0xCE, 0xA5, 0x42,
- 0xCE, 0xA6, 0x42, 0xCE, 0xA7, 0x42, 0xCE, 0xA8,
- 0x42, 0xCE, 0xA9, 0x42, 0xCE, 0xB1, 0x42, 0xCE,
- // Bytes 1c0 - 1ff
- 0xB2, 0x42, 0xCE, 0xB3, 0x42, 0xCE, 0xB4, 0x42,
- 0xCE, 0xB5, 0x42, 0xCE, 0xB6, 0x42, 0xCE, 0xB7,
- 0x42, 0xCE, 0xB8, 0x42, 0xCE, 0xB9, 0x42, 0xCE,
- 0xBA, 0x42, 0xCE, 0xBB, 0x42, 0xCE, 0xBC, 0x42,
- 0xCE, 0xBD, 0x42, 0xCE, 0xBE, 0x42, 0xCE, 0xBF,
- 0x42, 0xCF, 0x80, 0x42, 0xCF, 0x81, 0x42, 0xCF,
- 0x82, 0x42, 0xCF, 0x83, 0x42, 0xCF, 0x84, 0x42,
- 0xCF, 0x85, 0x42, 0xCF, 0x86, 0x42, 0xCF, 0x87,
- // Bytes 200 - 23f
- 0x42, 0xCF, 0x88, 0x42, 0xCF, 0x89, 0x42, 0xCF,
- 0x9C, 0x42, 0xCF, 0x9D, 0x42, 0xD0, 0xBD, 0x42,
- 0xD1, 0x8A, 0x42, 0xD1, 0x8C, 0x42, 0xD7, 0x90,
- 0x42, 0xD7, 0x91, 0x42, 0xD7, 0x92, 0x42, 0xD7,
- 0x93, 0x42, 0xD7, 0x94, 0x42, 0xD7, 0x9B, 0x42,
- 0xD7, 0x9C, 0x42, 0xD7, 0x9D, 0x42, 0xD7, 0xA2,
- 0x42, 0xD7, 0xA8, 0x42, 0xD7, 0xAA, 0x42, 0xD8,
- 0xA1, 0x42, 0xD8, 0xA7, 0x42, 0xD8, 0xA8, 0x42,
- // Bytes 240 - 27f
- 0xD8, 0xA9, 0x42, 0xD8, 0xAA, 0x42, 0xD8, 0xAB,
- 0x42, 0xD8, 0xAC, 0x42, 0xD8, 0xAD, 0x42, 0xD8,
- 0xAE, 0x42, 0xD8, 0xAF, 0x42, 0xD8, 0xB0, 0x42,
- 0xD8, 0xB1, 0x42, 0xD8, 0xB2, 0x42, 0xD8, 0xB3,
- 0x42, 0xD8, 0xB4, 0x42, 0xD8, 0xB5, 0x42, 0xD8,
- 0xB6, 0x42, 0xD8, 0xB7, 0x42, 0xD8, 0xB8, 0x42,
- 0xD8, 0xB9, 0x42, 0xD8, 0xBA, 0x42, 0xD9, 0x81,
- 0x42, 0xD9, 0x82, 0x42, 0xD9, 0x83, 0x42, 0xD9,
- // Bytes 280 - 2bf
- 0x84, 0x42, 0xD9, 0x85, 0x42, 0xD9, 0x86, 0x42,
- 0xD9, 0x87, 0x42, 0xD9, 0x88, 0x42, 0xD9, 0x89,
- 0x42, 0xD9, 0x8A, 0x42, 0xD9, 0xAE, 0x42, 0xD9,
- 0xAF, 0x42, 0xD9, 0xB1, 0x42, 0xD9, 0xB9, 0x42,
- 0xD9, 0xBA, 0x42, 0xD9, 0xBB, 0x42, 0xD9, 0xBE,
- 0x42, 0xD9, 0xBF, 0x42, 0xDA, 0x80, 0x42, 0xDA,
- 0x83, 0x42, 0xDA, 0x84, 0x42, 0xDA, 0x86, 0x42,
- 0xDA, 0x87, 0x42, 0xDA, 0x88, 0x42, 0xDA, 0x8C,
- // Bytes 2c0 - 2ff
- 0x42, 0xDA, 0x8D, 0x42, 0xDA, 0x8E, 0x42, 0xDA,
- 0x91, 0x42, 0xDA, 0x98, 0x42, 0xDA, 0xA1, 0x42,
- 0xDA, 0xA4, 0x42, 0xDA, 0xA6, 0x42, 0xDA, 0xA9,
- 0x42, 0xDA, 0xAD, 0x42, 0xDA, 0xAF, 0x42, 0xDA,
- 0xB1, 0x42, 0xDA, 0xB3, 0x42, 0xDA, 0xBA, 0x42,
- 0xDA, 0xBB, 0x42, 0xDA, 0xBE, 0x42, 0xDB, 0x81,
- 0x42, 0xDB, 0x85, 0x42, 0xDB, 0x86, 0x42, 0xDB,
- 0x87, 0x42, 0xDB, 0x88, 0x42, 0xDB, 0x89, 0x42,
- // Bytes 300 - 33f
- 0xDB, 0x8B, 0x42, 0xDB, 0x8C, 0x42, 0xDB, 0x90,
- 0x42, 0xDB, 0x92, 0x43, 0xE0, 0xBC, 0x8B, 0x43,
- 0xE1, 0x83, 0x9C, 0x43, 0xE1, 0x84, 0x80, 0x43,
- 0xE1, 0x84, 0x81, 0x43, 0xE1, 0x84, 0x82, 0x43,
- 0xE1, 0x84, 0x83, 0x43, 0xE1, 0x84, 0x84, 0x43,
- 0xE1, 0x84, 0x85, 0x43, 0xE1, 0x84, 0x86, 0x43,
- 0xE1, 0x84, 0x87, 0x43, 0xE1, 0x84, 0x88, 0x43,
- 0xE1, 0x84, 0x89, 0x43, 0xE1, 0x84, 0x8A, 0x43,
- // Bytes 340 - 37f
- 0xE1, 0x84, 0x8B, 0x43, 0xE1, 0x84, 0x8C, 0x43,
- 0xE1, 0x84, 0x8D, 0x43, 0xE1, 0x84, 0x8E, 0x43,
- 0xE1, 0x84, 0x8F, 0x43, 0xE1, 0x84, 0x90, 0x43,
- 0xE1, 0x84, 0x91, 0x43, 0xE1, 0x84, 0x92, 0x43,
- 0xE1, 0x84, 0x94, 0x43, 0xE1, 0x84, 0x95, 0x43,
- 0xE1, 0x84, 0x9A, 0x43, 0xE1, 0x84, 0x9C, 0x43,
- 0xE1, 0x84, 0x9D, 0x43, 0xE1, 0x84, 0x9E, 0x43,
- 0xE1, 0x84, 0xA0, 0x43, 0xE1, 0x84, 0xA1, 0x43,
- // Bytes 380 - 3bf
- 0xE1, 0x84, 0xA2, 0x43, 0xE1, 0x84, 0xA3, 0x43,
- 0xE1, 0x84, 0xA7, 0x43, 0xE1, 0x84, 0xA9, 0x43,
- 0xE1, 0x84, 0xAB, 0x43, 0xE1, 0x84, 0xAC, 0x43,
- 0xE1, 0x84, 0xAD, 0x43, 0xE1, 0x84, 0xAE, 0x43,
- 0xE1, 0x84, 0xAF, 0x43, 0xE1, 0x84, 0xB2, 0x43,
- 0xE1, 0x84, 0xB6, 0x43, 0xE1, 0x85, 0x80, 0x43,
- 0xE1, 0x85, 0x87, 0x43, 0xE1, 0x85, 0x8C, 0x43,
- 0xE1, 0x85, 0x97, 0x43, 0xE1, 0x85, 0x98, 0x43,
- // Bytes 3c0 - 3ff
- 0xE1, 0x85, 0x99, 0x43, 0xE1, 0x85, 0xA0, 0x43,
- 0xE1, 0x86, 0x84, 0x43, 0xE1, 0x86, 0x85, 0x43,
- 0xE1, 0x86, 0x88, 0x43, 0xE1, 0x86, 0x91, 0x43,
- 0xE1, 0x86, 0x92, 0x43, 0xE1, 0x86, 0x94, 0x43,
- 0xE1, 0x86, 0x9E, 0x43, 0xE1, 0x86, 0xA1, 0x43,
- 0xE1, 0x87, 0x87, 0x43, 0xE1, 0x87, 0x88, 0x43,
- 0xE1, 0x87, 0x8C, 0x43, 0xE1, 0x87, 0x8E, 0x43,
- 0xE1, 0x87, 0x93, 0x43, 0xE1, 0x87, 0x97, 0x43,
- // Bytes 400 - 43f
- 0xE1, 0x87, 0x99, 0x43, 0xE1, 0x87, 0x9D, 0x43,
- 0xE1, 0x87, 0x9F, 0x43, 0xE1, 0x87, 0xB1, 0x43,
- 0xE1, 0x87, 0xB2, 0x43, 0xE1, 0xB4, 0x82, 0x43,
- 0xE1, 0xB4, 0x96, 0x43, 0xE1, 0xB4, 0x97, 0x43,
- 0xE1, 0xB4, 0x9C, 0x43, 0xE1, 0xB4, 0x9D, 0x43,
- 0xE1, 0xB4, 0xA5, 0x43, 0xE1, 0xB5, 0xBB, 0x43,
- 0xE1, 0xB6, 0x85, 0x43, 0xE2, 0x80, 0x82, 0x43,
- 0xE2, 0x80, 0x83, 0x43, 0xE2, 0x80, 0x90, 0x43,
- // Bytes 440 - 47f
- 0xE2, 0x80, 0x93, 0x43, 0xE2, 0x80, 0x94, 0x43,
- 0xE2, 0x82, 0xA9, 0x43, 0xE2, 0x86, 0x90, 0x43,
- 0xE2, 0x86, 0x91, 0x43, 0xE2, 0x86, 0x92, 0x43,
- 0xE2, 0x86, 0x93, 0x43, 0xE2, 0x88, 0x82, 0x43,
- 0xE2, 0x88, 0x87, 0x43, 0xE2, 0x88, 0x91, 0x43,
- 0xE2, 0x88, 0x92, 0x43, 0xE2, 0x94, 0x82, 0x43,
- 0xE2, 0x96, 0xA0, 0x43, 0xE2, 0x97, 0x8B, 0x43,
- 0xE2, 0xA6, 0x85, 0x43, 0xE2, 0xA6, 0x86, 0x43,
- // Bytes 480 - 4bf
- 0xE2, 0xB5, 0xA1, 0x43, 0xE3, 0x80, 0x81, 0x43,
- 0xE3, 0x80, 0x82, 0x43, 0xE3, 0x80, 0x88, 0x43,
- 0xE3, 0x80, 0x89, 0x43, 0xE3, 0x80, 0x8A, 0x43,
- 0xE3, 0x80, 0x8B, 0x43, 0xE3, 0x80, 0x8C, 0x43,
- 0xE3, 0x80, 0x8D, 0x43, 0xE3, 0x80, 0x8E, 0x43,
- 0xE3, 0x80, 0x8F, 0x43, 0xE3, 0x80, 0x90, 0x43,
- 0xE3, 0x80, 0x91, 0x43, 0xE3, 0x80, 0x92, 0x43,
- 0xE3, 0x80, 0x94, 0x43, 0xE3, 0x80, 0x95, 0x43,
- // Bytes 4c0 - 4ff
- 0xE3, 0x80, 0x96, 0x43, 0xE3, 0x80, 0x97, 0x43,
- 0xE3, 0x82, 0xA1, 0x43, 0xE3, 0x82, 0xA2, 0x43,
- 0xE3, 0x82, 0xA3, 0x43, 0xE3, 0x82, 0xA4, 0x43,
- 0xE3, 0x82, 0xA5, 0x43, 0xE3, 0x82, 0xA6, 0x43,
- 0xE3, 0x82, 0xA7, 0x43, 0xE3, 0x82, 0xA8, 0x43,
- 0xE3, 0x82, 0xA9, 0x43, 0xE3, 0x82, 0xAA, 0x43,
- 0xE3, 0x82, 0xAB, 0x43, 0xE3, 0x82, 0xAD, 0x43,
- 0xE3, 0x82, 0xAF, 0x43, 0xE3, 0x82, 0xB1, 0x43,
- // Bytes 500 - 53f
- 0xE3, 0x82, 0xB3, 0x43, 0xE3, 0x82, 0xB5, 0x43,
- 0xE3, 0x82, 0xB7, 0x43, 0xE3, 0x82, 0xB9, 0x43,
- 0xE3, 0x82, 0xBB, 0x43, 0xE3, 0x82, 0xBD, 0x43,
- 0xE3, 0x82, 0xBF, 0x43, 0xE3, 0x83, 0x81, 0x43,
- 0xE3, 0x83, 0x83, 0x43, 0xE3, 0x83, 0x84, 0x43,
- 0xE3, 0x83, 0x86, 0x43, 0xE3, 0x83, 0x88, 0x43,
- 0xE3, 0x83, 0x8A, 0x43, 0xE3, 0x83, 0x8B, 0x43,
- 0xE3, 0x83, 0x8C, 0x43, 0xE3, 0x83, 0x8D, 0x43,
- // Bytes 540 - 57f
- 0xE3, 0x83, 0x8E, 0x43, 0xE3, 0x83, 0x8F, 0x43,
- 0xE3, 0x83, 0x92, 0x43, 0xE3, 0x83, 0x95, 0x43,
- 0xE3, 0x83, 0x98, 0x43, 0xE3, 0x83, 0x9B, 0x43,
- 0xE3, 0x83, 0x9E, 0x43, 0xE3, 0x83, 0x9F, 0x43,
- 0xE3, 0x83, 0xA0, 0x43, 0xE3, 0x83, 0xA1, 0x43,
- 0xE3, 0x83, 0xA2, 0x43, 0xE3, 0x83, 0xA3, 0x43,
- 0xE3, 0x83, 0xA4, 0x43, 0xE3, 0x83, 0xA5, 0x43,
- 0xE3, 0x83, 0xA6, 0x43, 0xE3, 0x83, 0xA7, 0x43,
- // Bytes 580 - 5bf
- 0xE3, 0x83, 0xA8, 0x43, 0xE3, 0x83, 0xA9, 0x43,
- 0xE3, 0x83, 0xAA, 0x43, 0xE3, 0x83, 0xAB, 0x43,
- 0xE3, 0x83, 0xAC, 0x43, 0xE3, 0x83, 0xAD, 0x43,
- 0xE3, 0x83, 0xAF, 0x43, 0xE3, 0x83, 0xB0, 0x43,
- 0xE3, 0x83, 0xB1, 0x43, 0xE3, 0x83, 0xB2, 0x43,
- 0xE3, 0x83, 0xB3, 0x43, 0xE3, 0x83, 0xBB, 0x43,
- 0xE3, 0x83, 0xBC, 0x43, 0xE3, 0x92, 0x9E, 0x43,
- 0xE3, 0x92, 0xB9, 0x43, 0xE3, 0x92, 0xBB, 0x43,
- // Bytes 5c0 - 5ff
- 0xE3, 0x93, 0x9F, 0x43, 0xE3, 0x94, 0x95, 0x43,
- 0xE3, 0x9B, 0xAE, 0x43, 0xE3, 0x9B, 0xBC, 0x43,
- 0xE3, 0x9E, 0x81, 0x43, 0xE3, 0xA0, 0xAF, 0x43,
- 0xE3, 0xA1, 0xA2, 0x43, 0xE3, 0xA1, 0xBC, 0x43,
- 0xE3, 0xA3, 0x87, 0x43, 0xE3, 0xA3, 0xA3, 0x43,
- 0xE3, 0xA4, 0x9C, 0x43, 0xE3, 0xA4, 0xBA, 0x43,
- 0xE3, 0xA8, 0xAE, 0x43, 0xE3, 0xA9, 0xAC, 0x43,
- 0xE3, 0xAB, 0xA4, 0x43, 0xE3, 0xAC, 0x88, 0x43,
- // Bytes 600 - 63f
- 0xE3, 0xAC, 0x99, 0x43, 0xE3, 0xAD, 0x89, 0x43,
- 0xE3, 0xAE, 0x9D, 0x43, 0xE3, 0xB0, 0x98, 0x43,
- 0xE3, 0xB1, 0x8E, 0x43, 0xE3, 0xB4, 0xB3, 0x43,
- 0xE3, 0xB6, 0x96, 0x43, 0xE3, 0xBA, 0xAC, 0x43,
- 0xE3, 0xBA, 0xB8, 0x43, 0xE3, 0xBC, 0x9B, 0x43,
- 0xE3, 0xBF, 0xBC, 0x43, 0xE4, 0x80, 0x88, 0x43,
- 0xE4, 0x80, 0x98, 0x43, 0xE4, 0x80, 0xB9, 0x43,
- 0xE4, 0x81, 0x86, 0x43, 0xE4, 0x82, 0x96, 0x43,
- // Bytes 640 - 67f
- 0xE4, 0x83, 0xA3, 0x43, 0xE4, 0x84, 0xAF, 0x43,
- 0xE4, 0x88, 0x82, 0x43, 0xE4, 0x88, 0xA7, 0x43,
- 0xE4, 0x8A, 0xA0, 0x43, 0xE4, 0x8C, 0x81, 0x43,
- 0xE4, 0x8C, 0xB4, 0x43, 0xE4, 0x8D, 0x99, 0x43,
- 0xE4, 0x8F, 0x95, 0x43, 0xE4, 0x8F, 0x99, 0x43,
- 0xE4, 0x90, 0x8B, 0x43, 0xE4, 0x91, 0xAB, 0x43,
- 0xE4, 0x94, 0xAB, 0x43, 0xE4, 0x95, 0x9D, 0x43,
- 0xE4, 0x95, 0xA1, 0x43, 0xE4, 0x95, 0xAB, 0x43,
- // Bytes 680 - 6bf
- 0xE4, 0x97, 0x97, 0x43, 0xE4, 0x97, 0xB9, 0x43,
- 0xE4, 0x98, 0xB5, 0x43, 0xE4, 0x9A, 0xBE, 0x43,
- 0xE4, 0x9B, 0x87, 0x43, 0xE4, 0xA6, 0x95, 0x43,
- 0xE4, 0xA7, 0xA6, 0x43, 0xE4, 0xA9, 0xAE, 0x43,
- 0xE4, 0xA9, 0xB6, 0x43, 0xE4, 0xAA, 0xB2, 0x43,
- 0xE4, 0xAC, 0xB3, 0x43, 0xE4, 0xAF, 0x8E, 0x43,
- 0xE4, 0xB3, 0x8E, 0x43, 0xE4, 0xB3, 0xAD, 0x43,
- 0xE4, 0xB3, 0xB8, 0x43, 0xE4, 0xB5, 0x96, 0x43,
- // Bytes 6c0 - 6ff
- 0xE4, 0xB8, 0x80, 0x43, 0xE4, 0xB8, 0x81, 0x43,
- 0xE4, 0xB8, 0x83, 0x43, 0xE4, 0xB8, 0x89, 0x43,
- 0xE4, 0xB8, 0x8A, 0x43, 0xE4, 0xB8, 0x8B, 0x43,
- 0xE4, 0xB8, 0x8D, 0x43, 0xE4, 0xB8, 0x99, 0x43,
- 0xE4, 0xB8, 0xA6, 0x43, 0xE4, 0xB8, 0xA8, 0x43,
- 0xE4, 0xB8, 0xAD, 0x43, 0xE4, 0xB8, 0xB2, 0x43,
- 0xE4, 0xB8, 0xB6, 0x43, 0xE4, 0xB8, 0xB8, 0x43,
- 0xE4, 0xB8, 0xB9, 0x43, 0xE4, 0xB8, 0xBD, 0x43,
- // Bytes 700 - 73f
- 0xE4, 0xB8, 0xBF, 0x43, 0xE4, 0xB9, 0x81, 0x43,
- 0xE4, 0xB9, 0x99, 0x43, 0xE4, 0xB9, 0x9D, 0x43,
- 0xE4, 0xBA, 0x82, 0x43, 0xE4, 0xBA, 0x85, 0x43,
- 0xE4, 0xBA, 0x86, 0x43, 0xE4, 0xBA, 0x8C, 0x43,
- 0xE4, 0xBA, 0x94, 0x43, 0xE4, 0xBA, 0xA0, 0x43,
- 0xE4, 0xBA, 0xA4, 0x43, 0xE4, 0xBA, 0xAE, 0x43,
- 0xE4, 0xBA, 0xBA, 0x43, 0xE4, 0xBB, 0x80, 0x43,
- 0xE4, 0xBB, 0x8C, 0x43, 0xE4, 0xBB, 0xA4, 0x43,
- // Bytes 740 - 77f
- 0xE4, 0xBC, 0x81, 0x43, 0xE4, 0xBC, 0x91, 0x43,
- 0xE4, 0xBD, 0xA0, 0x43, 0xE4, 0xBE, 0x80, 0x43,
- 0xE4, 0xBE, 0x86, 0x43, 0xE4, 0xBE, 0x8B, 0x43,
- 0xE4, 0xBE, 0xAE, 0x43, 0xE4, 0xBE, 0xBB, 0x43,
- 0xE4, 0xBE, 0xBF, 0x43, 0xE5, 0x80, 0x82, 0x43,
- 0xE5, 0x80, 0xAB, 0x43, 0xE5, 0x81, 0xBA, 0x43,
- 0xE5, 0x82, 0x99, 0x43, 0xE5, 0x83, 0x8F, 0x43,
- 0xE5, 0x83, 0x9A, 0x43, 0xE5, 0x83, 0xA7, 0x43,
- // Bytes 780 - 7bf
- 0xE5, 0x84, 0xAA, 0x43, 0xE5, 0x84, 0xBF, 0x43,
- 0xE5, 0x85, 0x80, 0x43, 0xE5, 0x85, 0x85, 0x43,
- 0xE5, 0x85, 0x8D, 0x43, 0xE5, 0x85, 0x94, 0x43,
- 0xE5, 0x85, 0xA4, 0x43, 0xE5, 0x85, 0xA5, 0x43,
- 0xE5, 0x85, 0xA7, 0x43, 0xE5, 0x85, 0xA8, 0x43,
- 0xE5, 0x85, 0xA9, 0x43, 0xE5, 0x85, 0xAB, 0x43,
- 0xE5, 0x85, 0xAD, 0x43, 0xE5, 0x85, 0xB7, 0x43,
- 0xE5, 0x86, 0x80, 0x43, 0xE5, 0x86, 0x82, 0x43,
- // Bytes 7c0 - 7ff
- 0xE5, 0x86, 0x8D, 0x43, 0xE5, 0x86, 0x92, 0x43,
- 0xE5, 0x86, 0x95, 0x43, 0xE5, 0x86, 0x96, 0x43,
- 0xE5, 0x86, 0x97, 0x43, 0xE5, 0x86, 0x99, 0x43,
- 0xE5, 0x86, 0xA4, 0x43, 0xE5, 0x86, 0xAB, 0x43,
- 0xE5, 0x86, 0xAC, 0x43, 0xE5, 0x86, 0xB5, 0x43,
- 0xE5, 0x86, 0xB7, 0x43, 0xE5, 0x87, 0x89, 0x43,
- 0xE5, 0x87, 0x8C, 0x43, 0xE5, 0x87, 0x9C, 0x43,
- 0xE5, 0x87, 0x9E, 0x43, 0xE5, 0x87, 0xA0, 0x43,
- // Bytes 800 - 83f
- 0xE5, 0x87, 0xB5, 0x43, 0xE5, 0x88, 0x80, 0x43,
- 0xE5, 0x88, 0x83, 0x43, 0xE5, 0x88, 0x87, 0x43,
- 0xE5, 0x88, 0x97, 0x43, 0xE5, 0x88, 0x9D, 0x43,
- 0xE5, 0x88, 0xA9, 0x43, 0xE5, 0x88, 0xBA, 0x43,
- 0xE5, 0x88, 0xBB, 0x43, 0xE5, 0x89, 0x86, 0x43,
- 0xE5, 0x89, 0x8D, 0x43, 0xE5, 0x89, 0xB2, 0x43,
- 0xE5, 0x89, 0xB7, 0x43, 0xE5, 0x8A, 0x89, 0x43,
- 0xE5, 0x8A, 0x9B, 0x43, 0xE5, 0x8A, 0xA3, 0x43,
- // Bytes 840 - 87f
- 0xE5, 0x8A, 0xB3, 0x43, 0xE5, 0x8A, 0xB4, 0x43,
- 0xE5, 0x8B, 0x87, 0x43, 0xE5, 0x8B, 0x89, 0x43,
- 0xE5, 0x8B, 0x92, 0x43, 0xE5, 0x8B, 0x9E, 0x43,
- 0xE5, 0x8B, 0xA4, 0x43, 0xE5, 0x8B, 0xB5, 0x43,
- 0xE5, 0x8B, 0xB9, 0x43, 0xE5, 0x8B, 0xBA, 0x43,
- 0xE5, 0x8C, 0x85, 0x43, 0xE5, 0x8C, 0x86, 0x43,
- 0xE5, 0x8C, 0x95, 0x43, 0xE5, 0x8C, 0x97, 0x43,
- 0xE5, 0x8C, 0x9A, 0x43, 0xE5, 0x8C, 0xB8, 0x43,
- // Bytes 880 - 8bf
- 0xE5, 0x8C, 0xBB, 0x43, 0xE5, 0x8C, 0xBF, 0x43,
- 0xE5, 0x8D, 0x81, 0x43, 0xE5, 0x8D, 0x84, 0x43,
- 0xE5, 0x8D, 0x85, 0x43, 0xE5, 0x8D, 0x89, 0x43,
- 0xE5, 0x8D, 0x91, 0x43, 0xE5, 0x8D, 0x94, 0x43,
- 0xE5, 0x8D, 0x9A, 0x43, 0xE5, 0x8D, 0x9C, 0x43,
- 0xE5, 0x8D, 0xA9, 0x43, 0xE5, 0x8D, 0xB0, 0x43,
- 0xE5, 0x8D, 0xB3, 0x43, 0xE5, 0x8D, 0xB5, 0x43,
- 0xE5, 0x8D, 0xBD, 0x43, 0xE5, 0x8D, 0xBF, 0x43,
- // Bytes 8c0 - 8ff
- 0xE5, 0x8E, 0x82, 0x43, 0xE5, 0x8E, 0xB6, 0x43,
- 0xE5, 0x8F, 0x83, 0x43, 0xE5, 0x8F, 0x88, 0x43,
- 0xE5, 0x8F, 0x8A, 0x43, 0xE5, 0x8F, 0x8C, 0x43,
- 0xE5, 0x8F, 0x9F, 0x43, 0xE5, 0x8F, 0xA3, 0x43,
- 0xE5, 0x8F, 0xA5, 0x43, 0xE5, 0x8F, 0xAB, 0x43,
- 0xE5, 0x8F, 0xAF, 0x43, 0xE5, 0x8F, 0xB1, 0x43,
- 0xE5, 0x8F, 0xB3, 0x43, 0xE5, 0x90, 0x86, 0x43,
- 0xE5, 0x90, 0x88, 0x43, 0xE5, 0x90, 0x8D, 0x43,
- // Bytes 900 - 93f
- 0xE5, 0x90, 0x8F, 0x43, 0xE5, 0x90, 0x9D, 0x43,
- 0xE5, 0x90, 0xB8, 0x43, 0xE5, 0x90, 0xB9, 0x43,
- 0xE5, 0x91, 0x82, 0x43, 0xE5, 0x91, 0x88, 0x43,
- 0xE5, 0x91, 0xA8, 0x43, 0xE5, 0x92, 0x9E, 0x43,
- 0xE5, 0x92, 0xA2, 0x43, 0xE5, 0x92, 0xBD, 0x43,
- 0xE5, 0x93, 0xB6, 0x43, 0xE5, 0x94, 0x90, 0x43,
- 0xE5, 0x95, 0x8F, 0x43, 0xE5, 0x95, 0x93, 0x43,
- 0xE5, 0x95, 0x95, 0x43, 0xE5, 0x95, 0xA3, 0x43,
- // Bytes 940 - 97f
- 0xE5, 0x96, 0x84, 0x43, 0xE5, 0x96, 0x87, 0x43,
- 0xE5, 0x96, 0x99, 0x43, 0xE5, 0x96, 0x9D, 0x43,
- 0xE5, 0x96, 0xAB, 0x43, 0xE5, 0x96, 0xB3, 0x43,
- 0xE5, 0x96, 0xB6, 0x43, 0xE5, 0x97, 0x80, 0x43,
- 0xE5, 0x97, 0x82, 0x43, 0xE5, 0x97, 0xA2, 0x43,
- 0xE5, 0x98, 0x86, 0x43, 0xE5, 0x99, 0x91, 0x43,
- 0xE5, 0x99, 0xA8, 0x43, 0xE5, 0x99, 0xB4, 0x43,
- 0xE5, 0x9B, 0x97, 0x43, 0xE5, 0x9B, 0x9B, 0x43,
- // Bytes 980 - 9bf
- 0xE5, 0x9B, 0xB9, 0x43, 0xE5, 0x9C, 0x96, 0x43,
- 0xE5, 0x9C, 0x97, 0x43, 0xE5, 0x9C, 0x9F, 0x43,
- 0xE5, 0x9C, 0xB0, 0x43, 0xE5, 0x9E, 0x8B, 0x43,
- 0xE5, 0x9F, 0x8E, 0x43, 0xE5, 0x9F, 0xB4, 0x43,
- 0xE5, 0xA0, 0x8D, 0x43, 0xE5, 0xA0, 0xB1, 0x43,
- 0xE5, 0xA0, 0xB2, 0x43, 0xE5, 0xA1, 0x80, 0x43,
- 0xE5, 0xA1, 0x9A, 0x43, 0xE5, 0xA1, 0x9E, 0x43,
- 0xE5, 0xA2, 0xA8, 0x43, 0xE5, 0xA2, 0xAC, 0x43,
- // Bytes 9c0 - 9ff
- 0xE5, 0xA2, 0xB3, 0x43, 0xE5, 0xA3, 0x98, 0x43,
- 0xE5, 0xA3, 0x9F, 0x43, 0xE5, 0xA3, 0xAB, 0x43,
- 0xE5, 0xA3, 0xAE, 0x43, 0xE5, 0xA3, 0xB0, 0x43,
- 0xE5, 0xA3, 0xB2, 0x43, 0xE5, 0xA3, 0xB7, 0x43,
- 0xE5, 0xA4, 0x82, 0x43, 0xE5, 0xA4, 0x86, 0x43,
- 0xE5, 0xA4, 0x8A, 0x43, 0xE5, 0xA4, 0x95, 0x43,
- 0xE5, 0xA4, 0x9A, 0x43, 0xE5, 0xA4, 0x9C, 0x43,
- 0xE5, 0xA4, 0xA2, 0x43, 0xE5, 0xA4, 0xA7, 0x43,
- // Bytes a00 - a3f
- 0xE5, 0xA4, 0xA9, 0x43, 0xE5, 0xA5, 0x84, 0x43,
- 0xE5, 0xA5, 0x88, 0x43, 0xE5, 0xA5, 0x91, 0x43,
- 0xE5, 0xA5, 0x94, 0x43, 0xE5, 0xA5, 0xA2, 0x43,
- 0xE5, 0xA5, 0xB3, 0x43, 0xE5, 0xA7, 0x98, 0x43,
- 0xE5, 0xA7, 0xAC, 0x43, 0xE5, 0xA8, 0x9B, 0x43,
- 0xE5, 0xA8, 0xA7, 0x43, 0xE5, 0xA9, 0xA2, 0x43,
- 0xE5, 0xA9, 0xA6, 0x43, 0xE5, 0xAA, 0xB5, 0x43,
- 0xE5, 0xAC, 0x88, 0x43, 0xE5, 0xAC, 0xA8, 0x43,
- // Bytes a40 - a7f
- 0xE5, 0xAC, 0xBE, 0x43, 0xE5, 0xAD, 0x90, 0x43,
- 0xE5, 0xAD, 0x97, 0x43, 0xE5, 0xAD, 0xA6, 0x43,
- 0xE5, 0xAE, 0x80, 0x43, 0xE5, 0xAE, 0x85, 0x43,
- 0xE5, 0xAE, 0x97, 0x43, 0xE5, 0xAF, 0x83, 0x43,
- 0xE5, 0xAF, 0x98, 0x43, 0xE5, 0xAF, 0xA7, 0x43,
- 0xE5, 0xAF, 0xAE, 0x43, 0xE5, 0xAF, 0xB3, 0x43,
- 0xE5, 0xAF, 0xB8, 0x43, 0xE5, 0xAF, 0xBF, 0x43,
- 0xE5, 0xB0, 0x86, 0x43, 0xE5, 0xB0, 0x8F, 0x43,
- // Bytes a80 - abf
- 0xE5, 0xB0, 0xA2, 0x43, 0xE5, 0xB0, 0xB8, 0x43,
- 0xE5, 0xB0, 0xBF, 0x43, 0xE5, 0xB1, 0xA0, 0x43,
- 0xE5, 0xB1, 0xA2, 0x43, 0xE5, 0xB1, 0xA4, 0x43,
- 0xE5, 0xB1, 0xA5, 0x43, 0xE5, 0xB1, 0xAE, 0x43,
- 0xE5, 0xB1, 0xB1, 0x43, 0xE5, 0xB2, 0x8D, 0x43,
- 0xE5, 0xB3, 0x80, 0x43, 0xE5, 0xB4, 0x99, 0x43,
- 0xE5, 0xB5, 0x83, 0x43, 0xE5, 0xB5, 0x90, 0x43,
- 0xE5, 0xB5, 0xAB, 0x43, 0xE5, 0xB5, 0xAE, 0x43,
- // Bytes ac0 - aff
- 0xE5, 0xB5, 0xBC, 0x43, 0xE5, 0xB6, 0xB2, 0x43,
- 0xE5, 0xB6, 0xBA, 0x43, 0xE5, 0xB7, 0x9B, 0x43,
- 0xE5, 0xB7, 0xA1, 0x43, 0xE5, 0xB7, 0xA2, 0x43,
- 0xE5, 0xB7, 0xA5, 0x43, 0xE5, 0xB7, 0xA6, 0x43,
- 0xE5, 0xB7, 0xB1, 0x43, 0xE5, 0xB7, 0xBD, 0x43,
- 0xE5, 0xB7, 0xBE, 0x43, 0xE5, 0xB8, 0xA8, 0x43,
- 0xE5, 0xB8, 0xBD, 0x43, 0xE5, 0xB9, 0xA9, 0x43,
- 0xE5, 0xB9, 0xB2, 0x43, 0xE5, 0xB9, 0xB4, 0x43,
- // Bytes b00 - b3f
- 0xE5, 0xB9, 0xBA, 0x43, 0xE5, 0xB9, 0xBC, 0x43,
- 0xE5, 0xB9, 0xBF, 0x43, 0xE5, 0xBA, 0xA6, 0x43,
- 0xE5, 0xBA, 0xB0, 0x43, 0xE5, 0xBA, 0xB3, 0x43,
- 0xE5, 0xBA, 0xB6, 0x43, 0xE5, 0xBB, 0x89, 0x43,
- 0xE5, 0xBB, 0x8A, 0x43, 0xE5, 0xBB, 0x92, 0x43,
- 0xE5, 0xBB, 0x93, 0x43, 0xE5, 0xBB, 0x99, 0x43,
- 0xE5, 0xBB, 0xAC, 0x43, 0xE5, 0xBB, 0xB4, 0x43,
- 0xE5, 0xBB, 0xBE, 0x43, 0xE5, 0xBC, 0x84, 0x43,
- // Bytes b40 - b7f
- 0xE5, 0xBC, 0x8B, 0x43, 0xE5, 0xBC, 0x93, 0x43,
- 0xE5, 0xBC, 0xA2, 0x43, 0xE5, 0xBD, 0x90, 0x43,
- 0xE5, 0xBD, 0x93, 0x43, 0xE5, 0xBD, 0xA1, 0x43,
- 0xE5, 0xBD, 0xA2, 0x43, 0xE5, 0xBD, 0xA9, 0x43,
- 0xE5, 0xBD, 0xAB, 0x43, 0xE5, 0xBD, 0xB3, 0x43,
- 0xE5, 0xBE, 0x8B, 0x43, 0xE5, 0xBE, 0x8C, 0x43,
- 0xE5, 0xBE, 0x97, 0x43, 0xE5, 0xBE, 0x9A, 0x43,
- 0xE5, 0xBE, 0xA9, 0x43, 0xE5, 0xBE, 0xAD, 0x43,
- // Bytes b80 - bbf
- 0xE5, 0xBF, 0x83, 0x43, 0xE5, 0xBF, 0x8D, 0x43,
- 0xE5, 0xBF, 0x97, 0x43, 0xE5, 0xBF, 0xB5, 0x43,
- 0xE5, 0xBF, 0xB9, 0x43, 0xE6, 0x80, 0x92, 0x43,
- 0xE6, 0x80, 0x9C, 0x43, 0xE6, 0x81, 0xB5, 0x43,
- 0xE6, 0x82, 0x81, 0x43, 0xE6, 0x82, 0x94, 0x43,
- 0xE6, 0x83, 0x87, 0x43, 0xE6, 0x83, 0x98, 0x43,
- 0xE6, 0x83, 0xA1, 0x43, 0xE6, 0x84, 0x88, 0x43,
- 0xE6, 0x85, 0x84, 0x43, 0xE6, 0x85, 0x88, 0x43,
- // Bytes bc0 - bff
- 0xE6, 0x85, 0x8C, 0x43, 0xE6, 0x85, 0x8E, 0x43,
- 0xE6, 0x85, 0xA0, 0x43, 0xE6, 0x85, 0xA8, 0x43,
- 0xE6, 0x85, 0xBA, 0x43, 0xE6, 0x86, 0x8E, 0x43,
- 0xE6, 0x86, 0x90, 0x43, 0xE6, 0x86, 0xA4, 0x43,
- 0xE6, 0x86, 0xAF, 0x43, 0xE6, 0x86, 0xB2, 0x43,
- 0xE6, 0x87, 0x9E, 0x43, 0xE6, 0x87, 0xB2, 0x43,
- 0xE6, 0x87, 0xB6, 0x43, 0xE6, 0x88, 0x80, 0x43,
- 0xE6, 0x88, 0x88, 0x43, 0xE6, 0x88, 0x90, 0x43,
- // Bytes c00 - c3f
- 0xE6, 0x88, 0x9B, 0x43, 0xE6, 0x88, 0xAE, 0x43,
- 0xE6, 0x88, 0xB4, 0x43, 0xE6, 0x88, 0xB6, 0x43,
- 0xE6, 0x89, 0x8B, 0x43, 0xE6, 0x89, 0x93, 0x43,
- 0xE6, 0x89, 0x9D, 0x43, 0xE6, 0x8A, 0x95, 0x43,
- 0xE6, 0x8A, 0xB1, 0x43, 0xE6, 0x8B, 0x89, 0x43,
- 0xE6, 0x8B, 0x8F, 0x43, 0xE6, 0x8B, 0x93, 0x43,
- 0xE6, 0x8B, 0x94, 0x43, 0xE6, 0x8B, 0xBC, 0x43,
- 0xE6, 0x8B, 0xBE, 0x43, 0xE6, 0x8C, 0x87, 0x43,
- // Bytes c40 - c7f
- 0xE6, 0x8C, 0xBD, 0x43, 0xE6, 0x8D, 0x90, 0x43,
- 0xE6, 0x8D, 0x95, 0x43, 0xE6, 0x8D, 0xA8, 0x43,
- 0xE6, 0x8D, 0xBB, 0x43, 0xE6, 0x8E, 0x83, 0x43,
- 0xE6, 0x8E, 0xA0, 0x43, 0xE6, 0x8E, 0xA9, 0x43,
- 0xE6, 0x8F, 0x84, 0x43, 0xE6, 0x8F, 0x85, 0x43,
- 0xE6, 0x8F, 0xA4, 0x43, 0xE6, 0x90, 0x9C, 0x43,
- 0xE6, 0x90, 0xA2, 0x43, 0xE6, 0x91, 0x92, 0x43,
- 0xE6, 0x91, 0xA9, 0x43, 0xE6, 0x91, 0xB7, 0x43,
- // Bytes c80 - cbf
- 0xE6, 0x91, 0xBE, 0x43, 0xE6, 0x92, 0x9A, 0x43,
- 0xE6, 0x92, 0x9D, 0x43, 0xE6, 0x93, 0x84, 0x43,
- 0xE6, 0x94, 0xAF, 0x43, 0xE6, 0x94, 0xB4, 0x43,
- 0xE6, 0x95, 0x8F, 0x43, 0xE6, 0x95, 0x96, 0x43,
- 0xE6, 0x95, 0xAC, 0x43, 0xE6, 0x95, 0xB8, 0x43,
- 0xE6, 0x96, 0x87, 0x43, 0xE6, 0x96, 0x97, 0x43,
- 0xE6, 0x96, 0x99, 0x43, 0xE6, 0x96, 0xA4, 0x43,
- 0xE6, 0x96, 0xB0, 0x43, 0xE6, 0x96, 0xB9, 0x43,
- // Bytes cc0 - cff
- 0xE6, 0x97, 0x85, 0x43, 0xE6, 0x97, 0xA0, 0x43,
- 0xE6, 0x97, 0xA2, 0x43, 0xE6, 0x97, 0xA3, 0x43,
- 0xE6, 0x97, 0xA5, 0x43, 0xE6, 0x98, 0x93, 0x43,
- 0xE6, 0x98, 0xA0, 0x43, 0xE6, 0x99, 0x89, 0x43,
- 0xE6, 0x99, 0xB4, 0x43, 0xE6, 0x9A, 0x88, 0x43,
- 0xE6, 0x9A, 0x91, 0x43, 0xE6, 0x9A, 0x9C, 0x43,
- 0xE6, 0x9A, 0xB4, 0x43, 0xE6, 0x9B, 0x86, 0x43,
- 0xE6, 0x9B, 0xB0, 0x43, 0xE6, 0x9B, 0xB4, 0x43,
- // Bytes d00 - d3f
- 0xE6, 0x9B, 0xB8, 0x43, 0xE6, 0x9C, 0x80, 0x43,
- 0xE6, 0x9C, 0x88, 0x43, 0xE6, 0x9C, 0x89, 0x43,
- 0xE6, 0x9C, 0x97, 0x43, 0xE6, 0x9C, 0x9B, 0x43,
- 0xE6, 0x9C, 0xA1, 0x43, 0xE6, 0x9C, 0xA8, 0x43,
- 0xE6, 0x9D, 0x8E, 0x43, 0xE6, 0x9D, 0x93, 0x43,
- 0xE6, 0x9D, 0x96, 0x43, 0xE6, 0x9D, 0x9E, 0x43,
- 0xE6, 0x9D, 0xBB, 0x43, 0xE6, 0x9E, 0x85, 0x43,
- 0xE6, 0x9E, 0x97, 0x43, 0xE6, 0x9F, 0xB3, 0x43,
- // Bytes d40 - d7f
- 0xE6, 0x9F, 0xBA, 0x43, 0xE6, 0xA0, 0x97, 0x43,
- 0xE6, 0xA0, 0x9F, 0x43, 0xE6, 0xA0, 0xAA, 0x43,
- 0xE6, 0xA1, 0x92, 0x43, 0xE6, 0xA2, 0x81, 0x43,
- 0xE6, 0xA2, 0x85, 0x43, 0xE6, 0xA2, 0x8E, 0x43,
- 0xE6, 0xA2, 0xA8, 0x43, 0xE6, 0xA4, 0x94, 0x43,
- 0xE6, 0xA5, 0x82, 0x43, 0xE6, 0xA6, 0xA3, 0x43,
- 0xE6, 0xA7, 0xAA, 0x43, 0xE6, 0xA8, 0x82, 0x43,
- 0xE6, 0xA8, 0x93, 0x43, 0xE6, 0xAA, 0xA8, 0x43,
- // Bytes d80 - dbf
- 0xE6, 0xAB, 0x93, 0x43, 0xE6, 0xAB, 0x9B, 0x43,
- 0xE6, 0xAC, 0x84, 0x43, 0xE6, 0xAC, 0xA0, 0x43,
- 0xE6, 0xAC, 0xA1, 0x43, 0xE6, 0xAD, 0x94, 0x43,
- 0xE6, 0xAD, 0xA2, 0x43, 0xE6, 0xAD, 0xA3, 0x43,
- 0xE6, 0xAD, 0xB2, 0x43, 0xE6, 0xAD, 0xB7, 0x43,
- 0xE6, 0xAD, 0xB9, 0x43, 0xE6, 0xAE, 0x9F, 0x43,
- 0xE6, 0xAE, 0xAE, 0x43, 0xE6, 0xAE, 0xB3, 0x43,
- 0xE6, 0xAE, 0xBA, 0x43, 0xE6, 0xAE, 0xBB, 0x43,
- // Bytes dc0 - dff
- 0xE6, 0xAF, 0x8B, 0x43, 0xE6, 0xAF, 0x8D, 0x43,
- 0xE6, 0xAF, 0x94, 0x43, 0xE6, 0xAF, 0x9B, 0x43,
- 0xE6, 0xB0, 0x8F, 0x43, 0xE6, 0xB0, 0x94, 0x43,
- 0xE6, 0xB0, 0xB4, 0x43, 0xE6, 0xB1, 0x8E, 0x43,
- 0xE6, 0xB1, 0xA7, 0x43, 0xE6, 0xB2, 0x88, 0x43,
- 0xE6, 0xB2, 0xBF, 0x43, 0xE6, 0xB3, 0x8C, 0x43,
- 0xE6, 0xB3, 0x8D, 0x43, 0xE6, 0xB3, 0xA5, 0x43,
- 0xE6, 0xB3, 0xA8, 0x43, 0xE6, 0xB4, 0x96, 0x43,
- // Bytes e00 - e3f
- 0xE6, 0xB4, 0x9B, 0x43, 0xE6, 0xB4, 0x9E, 0x43,
- 0xE6, 0xB4, 0xB4, 0x43, 0xE6, 0xB4, 0xBE, 0x43,
- 0xE6, 0xB5, 0x81, 0x43, 0xE6, 0xB5, 0xA9, 0x43,
- 0xE6, 0xB5, 0xAA, 0x43, 0xE6, 0xB5, 0xB7, 0x43,
- 0xE6, 0xB5, 0xB8, 0x43, 0xE6, 0xB6, 0x85, 0x43,
- 0xE6, 0xB7, 0x8B, 0x43, 0xE6, 0xB7, 0x9A, 0x43,
- 0xE6, 0xB7, 0xAA, 0x43, 0xE6, 0xB7, 0xB9, 0x43,
- 0xE6, 0xB8, 0x9A, 0x43, 0xE6, 0xB8, 0xAF, 0x43,
- // Bytes e40 - e7f
- 0xE6, 0xB9, 0xAE, 0x43, 0xE6, 0xBA, 0x80, 0x43,
- 0xE6, 0xBA, 0x9C, 0x43, 0xE6, 0xBA, 0xBA, 0x43,
- 0xE6, 0xBB, 0x87, 0x43, 0xE6, 0xBB, 0x8B, 0x43,
- 0xE6, 0xBB, 0x91, 0x43, 0xE6, 0xBB, 0x9B, 0x43,
- 0xE6, 0xBC, 0x8F, 0x43, 0xE6, 0xBC, 0x94, 0x43,
- 0xE6, 0xBC, 0xA2, 0x43, 0xE6, 0xBC, 0xA3, 0x43,
- 0xE6, 0xBD, 0xAE, 0x43, 0xE6, 0xBF, 0x86, 0x43,
- 0xE6, 0xBF, 0xAB, 0x43, 0xE6, 0xBF, 0xBE, 0x43,
- // Bytes e80 - ebf
- 0xE7, 0x80, 0x9B, 0x43, 0xE7, 0x80, 0x9E, 0x43,
- 0xE7, 0x80, 0xB9, 0x43, 0xE7, 0x81, 0x8A, 0x43,
- 0xE7, 0x81, 0xAB, 0x43, 0xE7, 0x81, 0xB0, 0x43,
- 0xE7, 0x81, 0xB7, 0x43, 0xE7, 0x81, 0xBD, 0x43,
- 0xE7, 0x82, 0x99, 0x43, 0xE7, 0x82, 0xAD, 0x43,
- 0xE7, 0x83, 0x88, 0x43, 0xE7, 0x83, 0x99, 0x43,
- 0xE7, 0x84, 0xA1, 0x43, 0xE7, 0x85, 0x85, 0x43,
- 0xE7, 0x85, 0x89, 0x43, 0xE7, 0x85, 0xAE, 0x43,
- // Bytes ec0 - eff
- 0xE7, 0x86, 0x9C, 0x43, 0xE7, 0x87, 0x8E, 0x43,
- 0xE7, 0x87, 0x90, 0x43, 0xE7, 0x88, 0x90, 0x43,
- 0xE7, 0x88, 0x9B, 0x43, 0xE7, 0x88, 0xA8, 0x43,
- 0xE7, 0x88, 0xAA, 0x43, 0xE7, 0x88, 0xAB, 0x43,
- 0xE7, 0x88, 0xB5, 0x43, 0xE7, 0x88, 0xB6, 0x43,
- 0xE7, 0x88, 0xBB, 0x43, 0xE7, 0x88, 0xBF, 0x43,
- 0xE7, 0x89, 0x87, 0x43, 0xE7, 0x89, 0x90, 0x43,
- 0xE7, 0x89, 0x99, 0x43, 0xE7, 0x89, 0x9B, 0x43,
- // Bytes f00 - f3f
- 0xE7, 0x89, 0xA2, 0x43, 0xE7, 0x89, 0xB9, 0x43,
- 0xE7, 0x8A, 0x80, 0x43, 0xE7, 0x8A, 0x95, 0x43,
- 0xE7, 0x8A, 0xAC, 0x43, 0xE7, 0x8A, 0xAF, 0x43,
- 0xE7, 0x8B, 0x80, 0x43, 0xE7, 0x8B, 0xBC, 0x43,
- 0xE7, 0x8C, 0xAA, 0x43, 0xE7, 0x8D, 0xB5, 0x43,
- 0xE7, 0x8D, 0xBA, 0x43, 0xE7, 0x8E, 0x84, 0x43,
- 0xE7, 0x8E, 0x87, 0x43, 0xE7, 0x8E, 0x89, 0x43,
- 0xE7, 0x8E, 0x8B, 0x43, 0xE7, 0x8E, 0xA5, 0x43,
- // Bytes f40 - f7f
- 0xE7, 0x8E, 0xB2, 0x43, 0xE7, 0x8F, 0x9E, 0x43,
- 0xE7, 0x90, 0x86, 0x43, 0xE7, 0x90, 0x89, 0x43,
- 0xE7, 0x90, 0xA2, 0x43, 0xE7, 0x91, 0x87, 0x43,
- 0xE7, 0x91, 0x9C, 0x43, 0xE7, 0x91, 0xA9, 0x43,
- 0xE7, 0x91, 0xB1, 0x43, 0xE7, 0x92, 0x85, 0x43,
- 0xE7, 0x92, 0x89, 0x43, 0xE7, 0x92, 0x98, 0x43,
- 0xE7, 0x93, 0x8A, 0x43, 0xE7, 0x93, 0x9C, 0x43,
- 0xE7, 0x93, 0xA6, 0x43, 0xE7, 0x94, 0x86, 0x43,
- // Bytes f80 - fbf
- 0xE7, 0x94, 0x98, 0x43, 0xE7, 0x94, 0x9F, 0x43,
- 0xE7, 0x94, 0xA4, 0x43, 0xE7, 0x94, 0xA8, 0x43,
- 0xE7, 0x94, 0xB0, 0x43, 0xE7, 0x94, 0xB2, 0x43,
- 0xE7, 0x94, 0xB3, 0x43, 0xE7, 0x94, 0xB7, 0x43,
- 0xE7, 0x94, 0xBB, 0x43, 0xE7, 0x94, 0xBE, 0x43,
- 0xE7, 0x95, 0x99, 0x43, 0xE7, 0x95, 0xA5, 0x43,
- 0xE7, 0x95, 0xB0, 0x43, 0xE7, 0x96, 0x8B, 0x43,
- 0xE7, 0x96, 0x92, 0x43, 0xE7, 0x97, 0xA2, 0x43,
- // Bytes fc0 - fff
- 0xE7, 0x98, 0x90, 0x43, 0xE7, 0x98, 0x9D, 0x43,
- 0xE7, 0x98, 0x9F, 0x43, 0xE7, 0x99, 0x82, 0x43,
- 0xE7, 0x99, 0xA9, 0x43, 0xE7, 0x99, 0xB6, 0x43,
- 0xE7, 0x99, 0xBD, 0x43, 0xE7, 0x9A, 0xAE, 0x43,
- 0xE7, 0x9A, 0xBF, 0x43, 0xE7, 0x9B, 0x8A, 0x43,
- 0xE7, 0x9B, 0x9B, 0x43, 0xE7, 0x9B, 0xA3, 0x43,
- 0xE7, 0x9B, 0xA7, 0x43, 0xE7, 0x9B, 0xAE, 0x43,
- 0xE7, 0x9B, 0xB4, 0x43, 0xE7, 0x9C, 0x81, 0x43,
- // Bytes 1000 - 103f
- 0xE7, 0x9C, 0x9E, 0x43, 0xE7, 0x9C, 0x9F, 0x43,
- 0xE7, 0x9D, 0x80, 0x43, 0xE7, 0x9D, 0x8A, 0x43,
- 0xE7, 0x9E, 0x8B, 0x43, 0xE7, 0x9E, 0xA7, 0x43,
- 0xE7, 0x9F, 0x9B, 0x43, 0xE7, 0x9F, 0xA2, 0x43,
- 0xE7, 0x9F, 0xB3, 0x43, 0xE7, 0xA1, 0x8E, 0x43,
- 0xE7, 0xA1, 0xAB, 0x43, 0xE7, 0xA2, 0x8C, 0x43,
- 0xE7, 0xA2, 0x91, 0x43, 0xE7, 0xA3, 0x8A, 0x43,
- 0xE7, 0xA3, 0x8C, 0x43, 0xE7, 0xA3, 0xBB, 0x43,
- // Bytes 1040 - 107f
- 0xE7, 0xA4, 0xAA, 0x43, 0xE7, 0xA4, 0xBA, 0x43,
- 0xE7, 0xA4, 0xBC, 0x43, 0xE7, 0xA4, 0xBE, 0x43,
- 0xE7, 0xA5, 0x88, 0x43, 0xE7, 0xA5, 0x89, 0x43,
- 0xE7, 0xA5, 0x90, 0x43, 0xE7, 0xA5, 0x96, 0x43,
- 0xE7, 0xA5, 0x9D, 0x43, 0xE7, 0xA5, 0x9E, 0x43,
- 0xE7, 0xA5, 0xA5, 0x43, 0xE7, 0xA5, 0xBF, 0x43,
- 0xE7, 0xA6, 0x81, 0x43, 0xE7, 0xA6, 0x8D, 0x43,
- 0xE7, 0xA6, 0x8E, 0x43, 0xE7, 0xA6, 0x8F, 0x43,
- // Bytes 1080 - 10bf
- 0xE7, 0xA6, 0xAE, 0x43, 0xE7, 0xA6, 0xB8, 0x43,
- 0xE7, 0xA6, 0xBE, 0x43, 0xE7, 0xA7, 0x8A, 0x43,
- 0xE7, 0xA7, 0x98, 0x43, 0xE7, 0xA7, 0xAB, 0x43,
- 0xE7, 0xA8, 0x9C, 0x43, 0xE7, 0xA9, 0x80, 0x43,
- 0xE7, 0xA9, 0x8A, 0x43, 0xE7, 0xA9, 0x8F, 0x43,
- 0xE7, 0xA9, 0xB4, 0x43, 0xE7, 0xA9, 0xBA, 0x43,
- 0xE7, 0xAA, 0x81, 0x43, 0xE7, 0xAA, 0xB1, 0x43,
- 0xE7, 0xAB, 0x8B, 0x43, 0xE7, 0xAB, 0xAE, 0x43,
- // Bytes 10c0 - 10ff
- 0xE7, 0xAB, 0xB9, 0x43, 0xE7, 0xAC, 0xA0, 0x43,
- 0xE7, 0xAE, 0x8F, 0x43, 0xE7, 0xAF, 0x80, 0x43,
- 0xE7, 0xAF, 0x86, 0x43, 0xE7, 0xAF, 0x89, 0x43,
- 0xE7, 0xB0, 0xBE, 0x43, 0xE7, 0xB1, 0xA0, 0x43,
- 0xE7, 0xB1, 0xB3, 0x43, 0xE7, 0xB1, 0xBB, 0x43,
- 0xE7, 0xB2, 0x92, 0x43, 0xE7, 0xB2, 0xBE, 0x43,
- 0xE7, 0xB3, 0x92, 0x43, 0xE7, 0xB3, 0x96, 0x43,
- 0xE7, 0xB3, 0xA3, 0x43, 0xE7, 0xB3, 0xA7, 0x43,
- // Bytes 1100 - 113f
- 0xE7, 0xB3, 0xA8, 0x43, 0xE7, 0xB3, 0xB8, 0x43,
- 0xE7, 0xB4, 0x80, 0x43, 0xE7, 0xB4, 0x90, 0x43,
- 0xE7, 0xB4, 0xA2, 0x43, 0xE7, 0xB4, 0xAF, 0x43,
- 0xE7, 0xB5, 0x82, 0x43, 0xE7, 0xB5, 0x9B, 0x43,
- 0xE7, 0xB5, 0xA3, 0x43, 0xE7, 0xB6, 0xA0, 0x43,
- 0xE7, 0xB6, 0xBE, 0x43, 0xE7, 0xB7, 0x87, 0x43,
- 0xE7, 0xB7, 0xB4, 0x43, 0xE7, 0xB8, 0x82, 0x43,
- 0xE7, 0xB8, 0x89, 0x43, 0xE7, 0xB8, 0xB7, 0x43,
- // Bytes 1140 - 117f
- 0xE7, 0xB9, 0x81, 0x43, 0xE7, 0xB9, 0x85, 0x43,
- 0xE7, 0xBC, 0xB6, 0x43, 0xE7, 0xBC, 0xBE, 0x43,
- 0xE7, 0xBD, 0x91, 0x43, 0xE7, 0xBD, 0xB2, 0x43,
- 0xE7, 0xBD, 0xB9, 0x43, 0xE7, 0xBD, 0xBA, 0x43,
- 0xE7, 0xBE, 0x85, 0x43, 0xE7, 0xBE, 0x8A, 0x43,
- 0xE7, 0xBE, 0x95, 0x43, 0xE7, 0xBE, 0x9A, 0x43,
- 0xE7, 0xBE, 0xBD, 0x43, 0xE7, 0xBF, 0xBA, 0x43,
- 0xE8, 0x80, 0x81, 0x43, 0xE8, 0x80, 0x85, 0x43,
- // Bytes 1180 - 11bf
- 0xE8, 0x80, 0x8C, 0x43, 0xE8, 0x80, 0x92, 0x43,
- 0xE8, 0x80, 0xB3, 0x43, 0xE8, 0x81, 0x86, 0x43,
- 0xE8, 0x81, 0xA0, 0x43, 0xE8, 0x81, 0xAF, 0x43,
- 0xE8, 0x81, 0xB0, 0x43, 0xE8, 0x81, 0xBE, 0x43,
- 0xE8, 0x81, 0xBF, 0x43, 0xE8, 0x82, 0x89, 0x43,
- 0xE8, 0x82, 0x8B, 0x43, 0xE8, 0x82, 0xAD, 0x43,
- 0xE8, 0x82, 0xB2, 0x43, 0xE8, 0x84, 0x83, 0x43,
- 0xE8, 0x84, 0xBE, 0x43, 0xE8, 0x87, 0x98, 0x43,
- // Bytes 11c0 - 11ff
- 0xE8, 0x87, 0xA3, 0x43, 0xE8, 0x87, 0xA8, 0x43,
- 0xE8, 0x87, 0xAA, 0x43, 0xE8, 0x87, 0xAD, 0x43,
- 0xE8, 0x87, 0xB3, 0x43, 0xE8, 0x87, 0xBC, 0x43,
- 0xE8, 0x88, 0x81, 0x43, 0xE8, 0x88, 0x84, 0x43,
- 0xE8, 0x88, 0x8C, 0x43, 0xE8, 0x88, 0x98, 0x43,
- 0xE8, 0x88, 0x9B, 0x43, 0xE8, 0x88, 0x9F, 0x43,
- 0xE8, 0x89, 0xAE, 0x43, 0xE8, 0x89, 0xAF, 0x43,
- 0xE8, 0x89, 0xB2, 0x43, 0xE8, 0x89, 0xB8, 0x43,
- // Bytes 1200 - 123f
- 0xE8, 0x89, 0xB9, 0x43, 0xE8, 0x8A, 0x8B, 0x43,
- 0xE8, 0x8A, 0x91, 0x43, 0xE8, 0x8A, 0x9D, 0x43,
- 0xE8, 0x8A, 0xB1, 0x43, 0xE8, 0x8A, 0xB3, 0x43,
- 0xE8, 0x8A, 0xBD, 0x43, 0xE8, 0x8B, 0xA5, 0x43,
- 0xE8, 0x8B, 0xA6, 0x43, 0xE8, 0x8C, 0x9D, 0x43,
- 0xE8, 0x8C, 0xA3, 0x43, 0xE8, 0x8C, 0xB6, 0x43,
- 0xE8, 0x8D, 0x92, 0x43, 0xE8, 0x8D, 0x93, 0x43,
- 0xE8, 0x8D, 0xA3, 0x43, 0xE8, 0x8E, 0xAD, 0x43,
- // Bytes 1240 - 127f
- 0xE8, 0x8E, 0xBD, 0x43, 0xE8, 0x8F, 0x89, 0x43,
- 0xE8, 0x8F, 0x8A, 0x43, 0xE8, 0x8F, 0x8C, 0x43,
- 0xE8, 0x8F, 0x9C, 0x43, 0xE8, 0x8F, 0xA7, 0x43,
- 0xE8, 0x8F, 0xAF, 0x43, 0xE8, 0x8F, 0xB1, 0x43,
- 0xE8, 0x90, 0xBD, 0x43, 0xE8, 0x91, 0x89, 0x43,
- 0xE8, 0x91, 0x97, 0x43, 0xE8, 0x93, 0xAE, 0x43,
- 0xE8, 0x93, 0xB1, 0x43, 0xE8, 0x93, 0xB3, 0x43,
- 0xE8, 0x93, 0xBC, 0x43, 0xE8, 0x94, 0x96, 0x43,
- // Bytes 1280 - 12bf
- 0xE8, 0x95, 0xA4, 0x43, 0xE8, 0x97, 0x8D, 0x43,
- 0xE8, 0x97, 0xBA, 0x43, 0xE8, 0x98, 0x86, 0x43,
- 0xE8, 0x98, 0x92, 0x43, 0xE8, 0x98, 0xAD, 0x43,
- 0xE8, 0x98, 0xBF, 0x43, 0xE8, 0x99, 0x8D, 0x43,
- 0xE8, 0x99, 0x90, 0x43, 0xE8, 0x99, 0x9C, 0x43,
- 0xE8, 0x99, 0xA7, 0x43, 0xE8, 0x99, 0xA9, 0x43,
- 0xE8, 0x99, 0xAB, 0x43, 0xE8, 0x9A, 0x88, 0x43,
- 0xE8, 0x9A, 0xA9, 0x43, 0xE8, 0x9B, 0xA2, 0x43,
- // Bytes 12c0 - 12ff
- 0xE8, 0x9C, 0x8E, 0x43, 0xE8, 0x9C, 0xA8, 0x43,
- 0xE8, 0x9D, 0xAB, 0x43, 0xE8, 0x9D, 0xB9, 0x43,
- 0xE8, 0x9E, 0x86, 0x43, 0xE8, 0x9E, 0xBA, 0x43,
- 0xE8, 0x9F, 0xA1, 0x43, 0xE8, 0xA0, 0x81, 0x43,
- 0xE8, 0xA0, 0x9F, 0x43, 0xE8, 0xA1, 0x80, 0x43,
- 0xE8, 0xA1, 0x8C, 0x43, 0xE8, 0xA1, 0xA0, 0x43,
- 0xE8, 0xA1, 0xA3, 0x43, 0xE8, 0xA3, 0x82, 0x43,
- 0xE8, 0xA3, 0x8F, 0x43, 0xE8, 0xA3, 0x97, 0x43,
- // Bytes 1300 - 133f
- 0xE8, 0xA3, 0x9E, 0x43, 0xE8, 0xA3, 0xA1, 0x43,
- 0xE8, 0xA3, 0xB8, 0x43, 0xE8, 0xA3, 0xBA, 0x43,
- 0xE8, 0xA4, 0x90, 0x43, 0xE8, 0xA5, 0x81, 0x43,
- 0xE8, 0xA5, 0xA4, 0x43, 0xE8, 0xA5, 0xBE, 0x43,
- 0xE8, 0xA6, 0x86, 0x43, 0xE8, 0xA6, 0x8B, 0x43,
- 0xE8, 0xA6, 0x96, 0x43, 0xE8, 0xA7, 0x92, 0x43,
- 0xE8, 0xA7, 0xA3, 0x43, 0xE8, 0xA8, 0x80, 0x43,
- 0xE8, 0xAA, 0xA0, 0x43, 0xE8, 0xAA, 0xAA, 0x43,
- // Bytes 1340 - 137f
- 0xE8, 0xAA, 0xBF, 0x43, 0xE8, 0xAB, 0x8B, 0x43,
- 0xE8, 0xAB, 0x92, 0x43, 0xE8, 0xAB, 0x96, 0x43,
- 0xE8, 0xAB, 0xAD, 0x43, 0xE8, 0xAB, 0xB8, 0x43,
- 0xE8, 0xAB, 0xBE, 0x43, 0xE8, 0xAC, 0x81, 0x43,
- 0xE8, 0xAC, 0xB9, 0x43, 0xE8, 0xAD, 0x98, 0x43,
- 0xE8, 0xAE, 0x80, 0x43, 0xE8, 0xAE, 0x8A, 0x43,
- 0xE8, 0xB0, 0xB7, 0x43, 0xE8, 0xB1, 0x86, 0x43,
- 0xE8, 0xB1, 0x88, 0x43, 0xE8, 0xB1, 0x95, 0x43,
- // Bytes 1380 - 13bf
- 0xE8, 0xB1, 0xB8, 0x43, 0xE8, 0xB2, 0x9D, 0x43,
- 0xE8, 0xB2, 0xA1, 0x43, 0xE8, 0xB2, 0xA9, 0x43,
- 0xE8, 0xB2, 0xAB, 0x43, 0xE8, 0xB3, 0x81, 0x43,
- 0xE8, 0xB3, 0x82, 0x43, 0xE8, 0xB3, 0x87, 0x43,
- 0xE8, 0xB3, 0x88, 0x43, 0xE8, 0xB3, 0x93, 0x43,
- 0xE8, 0xB4, 0x88, 0x43, 0xE8, 0xB4, 0x9B, 0x43,
- 0xE8, 0xB5, 0xA4, 0x43, 0xE8, 0xB5, 0xB0, 0x43,
- 0xE8, 0xB5, 0xB7, 0x43, 0xE8, 0xB6, 0xB3, 0x43,
- // Bytes 13c0 - 13ff
- 0xE8, 0xB6, 0xBC, 0x43, 0xE8, 0xB7, 0x8B, 0x43,
- 0xE8, 0xB7, 0xAF, 0x43, 0xE8, 0xB7, 0xB0, 0x43,
- 0xE8, 0xBA, 0xAB, 0x43, 0xE8, 0xBB, 0x8A, 0x43,
- 0xE8, 0xBB, 0x94, 0x43, 0xE8, 0xBC, 0xA6, 0x43,
- 0xE8, 0xBC, 0xAA, 0x43, 0xE8, 0xBC, 0xB8, 0x43,
- 0xE8, 0xBC, 0xBB, 0x43, 0xE8, 0xBD, 0xA2, 0x43,
- 0xE8, 0xBE, 0x9B, 0x43, 0xE8, 0xBE, 0x9E, 0x43,
- 0xE8, 0xBE, 0xB0, 0x43, 0xE8, 0xBE, 0xB5, 0x43,
- // Bytes 1400 - 143f
- 0xE8, 0xBE, 0xB6, 0x43, 0xE9, 0x80, 0xA3, 0x43,
- 0xE9, 0x80, 0xB8, 0x43, 0xE9, 0x81, 0x8A, 0x43,
- 0xE9, 0x81, 0xA9, 0x43, 0xE9, 0x81, 0xB2, 0x43,
- 0xE9, 0x81, 0xBC, 0x43, 0xE9, 0x82, 0x8F, 0x43,
- 0xE9, 0x82, 0x91, 0x43, 0xE9, 0x82, 0x94, 0x43,
- 0xE9, 0x83, 0x8E, 0x43, 0xE9, 0x83, 0x9E, 0x43,
- 0xE9, 0x83, 0xB1, 0x43, 0xE9, 0x83, 0xBD, 0x43,
- 0xE9, 0x84, 0x91, 0x43, 0xE9, 0x84, 0x9B, 0x43,
- // Bytes 1440 - 147f
- 0xE9, 0x85, 0x89, 0x43, 0xE9, 0x85, 0x8D, 0x43,
- 0xE9, 0x85, 0xAA, 0x43, 0xE9, 0x86, 0x99, 0x43,
- 0xE9, 0x86, 0xB4, 0x43, 0xE9, 0x87, 0x86, 0x43,
- 0xE9, 0x87, 0x8C, 0x43, 0xE9, 0x87, 0x8F, 0x43,
- 0xE9, 0x87, 0x91, 0x43, 0xE9, 0x88, 0xB4, 0x43,
- 0xE9, 0x88, 0xB8, 0x43, 0xE9, 0x89, 0xB6, 0x43,
- 0xE9, 0x89, 0xBC, 0x43, 0xE9, 0x8B, 0x97, 0x43,
- 0xE9, 0x8B, 0x98, 0x43, 0xE9, 0x8C, 0x84, 0x43,
- // Bytes 1480 - 14bf
- 0xE9, 0x8D, 0x8A, 0x43, 0xE9, 0x8F, 0xB9, 0x43,
- 0xE9, 0x90, 0x95, 0x43, 0xE9, 0x95, 0xB7, 0x43,
- 0xE9, 0x96, 0x80, 0x43, 0xE9, 0x96, 0x8B, 0x43,
- 0xE9, 0x96, 0xAD, 0x43, 0xE9, 0x96, 0xB7, 0x43,
- 0xE9, 0x98, 0x9C, 0x43, 0xE9, 0x98, 0xAE, 0x43,
- 0xE9, 0x99, 0x8B, 0x43, 0xE9, 0x99, 0x8D, 0x43,
- 0xE9, 0x99, 0xB5, 0x43, 0xE9, 0x99, 0xB8, 0x43,
- 0xE9, 0x99, 0xBC, 0x43, 0xE9, 0x9A, 0x86, 0x43,
- // Bytes 14c0 - 14ff
- 0xE9, 0x9A, 0xA3, 0x43, 0xE9, 0x9A, 0xB6, 0x43,
- 0xE9, 0x9A, 0xB7, 0x43, 0xE9, 0x9A, 0xB8, 0x43,
- 0xE9, 0x9A, 0xB9, 0x43, 0xE9, 0x9B, 0x83, 0x43,
- 0xE9, 0x9B, 0xA2, 0x43, 0xE9, 0x9B, 0xA3, 0x43,
- 0xE9, 0x9B, 0xA8, 0x43, 0xE9, 0x9B, 0xB6, 0x43,
- 0xE9, 0x9B, 0xB7, 0x43, 0xE9, 0x9C, 0xA3, 0x43,
- 0xE9, 0x9C, 0xB2, 0x43, 0xE9, 0x9D, 0x88, 0x43,
- 0xE9, 0x9D, 0x91, 0x43, 0xE9, 0x9D, 0x96, 0x43,
- // Bytes 1500 - 153f
- 0xE9, 0x9D, 0x9E, 0x43, 0xE9, 0x9D, 0xA2, 0x43,
- 0xE9, 0x9D, 0xA9, 0x43, 0xE9, 0x9F, 0x8B, 0x43,
- 0xE9, 0x9F, 0x9B, 0x43, 0xE9, 0x9F, 0xA0, 0x43,
- 0xE9, 0x9F, 0xAD, 0x43, 0xE9, 0x9F, 0xB3, 0x43,
- 0xE9, 0x9F, 0xBF, 0x43, 0xE9, 0xA0, 0x81, 0x43,
- 0xE9, 0xA0, 0x85, 0x43, 0xE9, 0xA0, 0x8B, 0x43,
- 0xE9, 0xA0, 0x98, 0x43, 0xE9, 0xA0, 0xA9, 0x43,
- 0xE9, 0xA0, 0xBB, 0x43, 0xE9, 0xA1, 0x9E, 0x43,
- // Bytes 1540 - 157f
- 0xE9, 0xA2, 0xA8, 0x43, 0xE9, 0xA3, 0x9B, 0x43,
- 0xE9, 0xA3, 0x9F, 0x43, 0xE9, 0xA3, 0xA2, 0x43,
- 0xE9, 0xA3, 0xAF, 0x43, 0xE9, 0xA3, 0xBC, 0x43,
- 0xE9, 0xA4, 0xA8, 0x43, 0xE9, 0xA4, 0xA9, 0x43,
- 0xE9, 0xA6, 0x96, 0x43, 0xE9, 0xA6, 0x99, 0x43,
- 0xE9, 0xA6, 0xA7, 0x43, 0xE9, 0xA6, 0xAC, 0x43,
- 0xE9, 0xA7, 0x82, 0x43, 0xE9, 0xA7, 0xB1, 0x43,
- 0xE9, 0xA7, 0xBE, 0x43, 0xE9, 0xA9, 0xAA, 0x43,
- // Bytes 1580 - 15bf
- 0xE9, 0xAA, 0xA8, 0x43, 0xE9, 0xAB, 0x98, 0x43,
- 0xE9, 0xAB, 0x9F, 0x43, 0xE9, 0xAC, 0x92, 0x43,
- 0xE9, 0xAC, 0xA5, 0x43, 0xE9, 0xAC, 0xAF, 0x43,
- 0xE9, 0xAC, 0xB2, 0x43, 0xE9, 0xAC, 0xBC, 0x43,
- 0xE9, 0xAD, 0x9A, 0x43, 0xE9, 0xAD, 0xAF, 0x43,
- 0xE9, 0xB1, 0x80, 0x43, 0xE9, 0xB1, 0x97, 0x43,
- 0xE9, 0xB3, 0xA5, 0x43, 0xE9, 0xB3, 0xBD, 0x43,
- 0xE9, 0xB5, 0xA7, 0x43, 0xE9, 0xB6, 0xB4, 0x43,
- // Bytes 15c0 - 15ff
- 0xE9, 0xB7, 0xBA, 0x43, 0xE9, 0xB8, 0x9E, 0x43,
- 0xE9, 0xB9, 0xB5, 0x43, 0xE9, 0xB9, 0xBF, 0x43,
- 0xE9, 0xBA, 0x97, 0x43, 0xE9, 0xBA, 0x9F, 0x43,
- 0xE9, 0xBA, 0xA5, 0x43, 0xE9, 0xBA, 0xBB, 0x43,
- 0xE9, 0xBB, 0x83, 0x43, 0xE9, 0xBB, 0x8D, 0x43,
- 0xE9, 0xBB, 0x8E, 0x43, 0xE9, 0xBB, 0x91, 0x43,
- 0xE9, 0xBB, 0xB9, 0x43, 0xE9, 0xBB, 0xBD, 0x43,
- 0xE9, 0xBB, 0xBE, 0x43, 0xE9, 0xBC, 0x85, 0x43,
- // Bytes 1600 - 163f
- 0xE9, 0xBC, 0x8E, 0x43, 0xE9, 0xBC, 0x8F, 0x43,
- 0xE9, 0xBC, 0x93, 0x43, 0xE9, 0xBC, 0x96, 0x43,
- 0xE9, 0xBC, 0xA0, 0x43, 0xE9, 0xBC, 0xBB, 0x43,
- 0xE9, 0xBD, 0x83, 0x43, 0xE9, 0xBD, 0x8A, 0x43,
- 0xE9, 0xBD, 0x92, 0x43, 0xE9, 0xBE, 0x8D, 0x43,
- 0xE9, 0xBE, 0x8E, 0x43, 0xE9, 0xBE, 0x9C, 0x43,
- 0xE9, 0xBE, 0x9F, 0x43, 0xE9, 0xBE, 0xA0, 0x43,
- 0xEA, 0x9C, 0xA7, 0x43, 0xEA, 0x9D, 0xAF, 0x43,
- // Bytes 1640 - 167f
- 0xEA, 0xAC, 0xB7, 0x43, 0xEA, 0xAD, 0x92, 0x44,
- 0xF0, 0xA0, 0x84, 0xA2, 0x44, 0xF0, 0xA0, 0x94,
- 0x9C, 0x44, 0xF0, 0xA0, 0x94, 0xA5, 0x44, 0xF0,
- 0xA0, 0x95, 0x8B, 0x44, 0xF0, 0xA0, 0x98, 0xBA,
- 0x44, 0xF0, 0xA0, 0xA0, 0x84, 0x44, 0xF0, 0xA0,
- 0xA3, 0x9E, 0x44, 0xF0, 0xA0, 0xA8, 0xAC, 0x44,
- 0xF0, 0xA0, 0xAD, 0xA3, 0x44, 0xF0, 0xA1, 0x93,
- 0xA4, 0x44, 0xF0, 0xA1, 0x9A, 0xA8, 0x44, 0xF0,
- // Bytes 1680 - 16bf
- 0xA1, 0x9B, 0xAA, 0x44, 0xF0, 0xA1, 0xA7, 0x88,
- 0x44, 0xF0, 0xA1, 0xAC, 0x98, 0x44, 0xF0, 0xA1,
- 0xB4, 0x8B, 0x44, 0xF0, 0xA1, 0xB7, 0xA4, 0x44,
- 0xF0, 0xA1, 0xB7, 0xA6, 0x44, 0xF0, 0xA2, 0x86,
- 0x83, 0x44, 0xF0, 0xA2, 0x86, 0x9F, 0x44, 0xF0,
- 0xA2, 0x8C, 0xB1, 0x44, 0xF0, 0xA2, 0x9B, 0x94,
- 0x44, 0xF0, 0xA2, 0xA1, 0x84, 0x44, 0xF0, 0xA2,
- 0xA1, 0x8A, 0x44, 0xF0, 0xA2, 0xAC, 0x8C, 0x44,
- // Bytes 16c0 - 16ff
- 0xF0, 0xA2, 0xAF, 0xB1, 0x44, 0xF0, 0xA3, 0x80,
- 0x8A, 0x44, 0xF0, 0xA3, 0x8A, 0xB8, 0x44, 0xF0,
- 0xA3, 0x8D, 0x9F, 0x44, 0xF0, 0xA3, 0x8E, 0x93,
- 0x44, 0xF0, 0xA3, 0x8E, 0x9C, 0x44, 0xF0, 0xA3,
- 0x8F, 0x83, 0x44, 0xF0, 0xA3, 0x8F, 0x95, 0x44,
- 0xF0, 0xA3, 0x91, 0xAD, 0x44, 0xF0, 0xA3, 0x9A,
- 0xA3, 0x44, 0xF0, 0xA3, 0xA2, 0xA7, 0x44, 0xF0,
- 0xA3, 0xAA, 0x8D, 0x44, 0xF0, 0xA3, 0xAB, 0xBA,
- // Bytes 1700 - 173f
- 0x44, 0xF0, 0xA3, 0xB2, 0xBC, 0x44, 0xF0, 0xA3,
- 0xB4, 0x9E, 0x44, 0xF0, 0xA3, 0xBB, 0x91, 0x44,
- 0xF0, 0xA3, 0xBD, 0x9E, 0x44, 0xF0, 0xA3, 0xBE,
- 0x8E, 0x44, 0xF0, 0xA4, 0x89, 0xA3, 0x44, 0xF0,
- 0xA4, 0x8B, 0xAE, 0x44, 0xF0, 0xA4, 0x8E, 0xAB,
- 0x44, 0xF0, 0xA4, 0x98, 0x88, 0x44, 0xF0, 0xA4,
- 0x9C, 0xB5, 0x44, 0xF0, 0xA4, 0xA0, 0x94, 0x44,
- 0xF0, 0xA4, 0xB0, 0xB6, 0x44, 0xF0, 0xA4, 0xB2,
- // Bytes 1740 - 177f
- 0x92, 0x44, 0xF0, 0xA4, 0xBE, 0xA1, 0x44, 0xF0,
- 0xA4, 0xBE, 0xB8, 0x44, 0xF0, 0xA5, 0x81, 0x84,
- 0x44, 0xF0, 0xA5, 0x83, 0xB2, 0x44, 0xF0, 0xA5,
- 0x83, 0xB3, 0x44, 0xF0, 0xA5, 0x84, 0x99, 0x44,
- 0xF0, 0xA5, 0x84, 0xB3, 0x44, 0xF0, 0xA5, 0x89,
- 0x89, 0x44, 0xF0, 0xA5, 0x90, 0x9D, 0x44, 0xF0,
- 0xA5, 0x98, 0xA6, 0x44, 0xF0, 0xA5, 0x9A, 0x9A,
- 0x44, 0xF0, 0xA5, 0x9B, 0x85, 0x44, 0xF0, 0xA5,
- // Bytes 1780 - 17bf
- 0xA5, 0xBC, 0x44, 0xF0, 0xA5, 0xAA, 0xA7, 0x44,
- 0xF0, 0xA5, 0xAE, 0xAB, 0x44, 0xF0, 0xA5, 0xB2,
- 0x80, 0x44, 0xF0, 0xA5, 0xB3, 0x90, 0x44, 0xF0,
- 0xA5, 0xBE, 0x86, 0x44, 0xF0, 0xA6, 0x87, 0x9A,
- 0x44, 0xF0, 0xA6, 0x88, 0xA8, 0x44, 0xF0, 0xA6,
- 0x89, 0x87, 0x44, 0xF0, 0xA6, 0x8B, 0x99, 0x44,
- 0xF0, 0xA6, 0x8C, 0xBE, 0x44, 0xF0, 0xA6, 0x93,
- 0x9A, 0x44, 0xF0, 0xA6, 0x94, 0xA3, 0x44, 0xF0,
- // Bytes 17c0 - 17ff
- 0xA6, 0x96, 0xA8, 0x44, 0xF0, 0xA6, 0x9E, 0xA7,
- 0x44, 0xF0, 0xA6, 0x9E, 0xB5, 0x44, 0xF0, 0xA6,
- 0xAC, 0xBC, 0x44, 0xF0, 0xA6, 0xB0, 0xB6, 0x44,
- 0xF0, 0xA6, 0xB3, 0x95, 0x44, 0xF0, 0xA6, 0xB5,
- 0xAB, 0x44, 0xF0, 0xA6, 0xBC, 0xAC, 0x44, 0xF0,
- 0xA6, 0xBE, 0xB1, 0x44, 0xF0, 0xA7, 0x83, 0x92,
- 0x44, 0xF0, 0xA7, 0x8F, 0x8A, 0x44, 0xF0, 0xA7,
- 0x99, 0xA7, 0x44, 0xF0, 0xA7, 0xA2, 0xAE, 0x44,
- // Bytes 1800 - 183f
- 0xF0, 0xA7, 0xA5, 0xA6, 0x44, 0xF0, 0xA7, 0xB2,
- 0xA8, 0x44, 0xF0, 0xA7, 0xBB, 0x93, 0x44, 0xF0,
- 0xA7, 0xBC, 0xAF, 0x44, 0xF0, 0xA8, 0x97, 0x92,
- 0x44, 0xF0, 0xA8, 0x97, 0xAD, 0x44, 0xF0, 0xA8,
- 0x9C, 0xAE, 0x44, 0xF0, 0xA8, 0xAF, 0xBA, 0x44,
- 0xF0, 0xA8, 0xB5, 0xB7, 0x44, 0xF0, 0xA9, 0x85,
- 0x85, 0x44, 0xF0, 0xA9, 0x87, 0x9F, 0x44, 0xF0,
- 0xA9, 0x88, 0x9A, 0x44, 0xF0, 0xA9, 0x90, 0x8A,
- // Bytes 1840 - 187f
- 0x44, 0xF0, 0xA9, 0x92, 0x96, 0x44, 0xF0, 0xA9,
- 0x96, 0xB6, 0x44, 0xF0, 0xA9, 0xAC, 0xB0, 0x44,
- 0xF0, 0xAA, 0x83, 0x8E, 0x44, 0xF0, 0xAA, 0x84,
- 0x85, 0x44, 0xF0, 0xAA, 0x88, 0x8E, 0x44, 0xF0,
- 0xAA, 0x8A, 0x91, 0x44, 0xF0, 0xAA, 0x8E, 0x92,
- 0x44, 0xF0, 0xAA, 0x98, 0x80, 0x42, 0x21, 0x21,
- 0x42, 0x21, 0x3F, 0x42, 0x2E, 0x2E, 0x42, 0x30,
- 0x2C, 0x42, 0x30, 0x2E, 0x42, 0x31, 0x2C, 0x42,
- // Bytes 1880 - 18bf
- 0x31, 0x2E, 0x42, 0x31, 0x30, 0x42, 0x31, 0x31,
- 0x42, 0x31, 0x32, 0x42, 0x31, 0x33, 0x42, 0x31,
- 0x34, 0x42, 0x31, 0x35, 0x42, 0x31, 0x36, 0x42,
- 0x31, 0x37, 0x42, 0x31, 0x38, 0x42, 0x31, 0x39,
- 0x42, 0x32, 0x2C, 0x42, 0x32, 0x2E, 0x42, 0x32,
- 0x30, 0x42, 0x32, 0x31, 0x42, 0x32, 0x32, 0x42,
- 0x32, 0x33, 0x42, 0x32, 0x34, 0x42, 0x32, 0x35,
- 0x42, 0x32, 0x36, 0x42, 0x32, 0x37, 0x42, 0x32,
- // Bytes 18c0 - 18ff
- 0x38, 0x42, 0x32, 0x39, 0x42, 0x33, 0x2C, 0x42,
- 0x33, 0x2E, 0x42, 0x33, 0x30, 0x42, 0x33, 0x31,
- 0x42, 0x33, 0x32, 0x42, 0x33, 0x33, 0x42, 0x33,
- 0x34, 0x42, 0x33, 0x35, 0x42, 0x33, 0x36, 0x42,
- 0x33, 0x37, 0x42, 0x33, 0x38, 0x42, 0x33, 0x39,
- 0x42, 0x34, 0x2C, 0x42, 0x34, 0x2E, 0x42, 0x34,
- 0x30, 0x42, 0x34, 0x31, 0x42, 0x34, 0x32, 0x42,
- 0x34, 0x33, 0x42, 0x34, 0x34, 0x42, 0x34, 0x35,
- // Bytes 1900 - 193f
- 0x42, 0x34, 0x36, 0x42, 0x34, 0x37, 0x42, 0x34,
- 0x38, 0x42, 0x34, 0x39, 0x42, 0x35, 0x2C, 0x42,
- 0x35, 0x2E, 0x42, 0x35, 0x30, 0x42, 0x36, 0x2C,
- 0x42, 0x36, 0x2E, 0x42, 0x37, 0x2C, 0x42, 0x37,
- 0x2E, 0x42, 0x38, 0x2C, 0x42, 0x38, 0x2E, 0x42,
- 0x39, 0x2C, 0x42, 0x39, 0x2E, 0x42, 0x3D, 0x3D,
- 0x42, 0x3F, 0x21, 0x42, 0x3F, 0x3F, 0x42, 0x41,
- 0x55, 0x42, 0x42, 0x71, 0x42, 0x43, 0x44, 0x42,
- // Bytes 1940 - 197f
- 0x44, 0x4A, 0x42, 0x44, 0x5A, 0x42, 0x44, 0x7A,
- 0x42, 0x47, 0x42, 0x42, 0x47, 0x79, 0x42, 0x48,
- 0x50, 0x42, 0x48, 0x56, 0x42, 0x48, 0x67, 0x42,
- 0x48, 0x7A, 0x42, 0x49, 0x49, 0x42, 0x49, 0x4A,
- 0x42, 0x49, 0x55, 0x42, 0x49, 0x56, 0x42, 0x49,
- 0x58, 0x42, 0x4B, 0x42, 0x42, 0x4B, 0x4B, 0x42,
- 0x4B, 0x4D, 0x42, 0x4C, 0x4A, 0x42, 0x4C, 0x6A,
- 0x42, 0x4D, 0x42, 0x42, 0x4D, 0x43, 0x42, 0x4D,
- // Bytes 1980 - 19bf
- 0x44, 0x42, 0x4D, 0x56, 0x42, 0x4D, 0x57, 0x42,
- 0x4E, 0x4A, 0x42, 0x4E, 0x6A, 0x42, 0x4E, 0x6F,
- 0x42, 0x50, 0x48, 0x42, 0x50, 0x52, 0x42, 0x50,
- 0x61, 0x42, 0x52, 0x73, 0x42, 0x53, 0x44, 0x42,
- 0x53, 0x4D, 0x42, 0x53, 0x53, 0x42, 0x53, 0x76,
- 0x42, 0x54, 0x4D, 0x42, 0x56, 0x49, 0x42, 0x57,
- 0x43, 0x42, 0x57, 0x5A, 0x42, 0x57, 0x62, 0x42,
- 0x58, 0x49, 0x42, 0x63, 0x63, 0x42, 0x63, 0x64,
- // Bytes 19c0 - 19ff
- 0x42, 0x63, 0x6D, 0x42, 0x64, 0x42, 0x42, 0x64,
- 0x61, 0x42, 0x64, 0x6C, 0x42, 0x64, 0x6D, 0x42,
- 0x64, 0x7A, 0x42, 0x65, 0x56, 0x42, 0x66, 0x66,
- 0x42, 0x66, 0x69, 0x42, 0x66, 0x6C, 0x42, 0x66,
- 0x6D, 0x42, 0x68, 0x61, 0x42, 0x69, 0x69, 0x42,
- 0x69, 0x6A, 0x42, 0x69, 0x6E, 0x42, 0x69, 0x76,
- 0x42, 0x69, 0x78, 0x42, 0x6B, 0x41, 0x42, 0x6B,
- 0x56, 0x42, 0x6B, 0x57, 0x42, 0x6B, 0x67, 0x42,
- // Bytes 1a00 - 1a3f
- 0x6B, 0x6C, 0x42, 0x6B, 0x6D, 0x42, 0x6B, 0x74,
- 0x42, 0x6C, 0x6A, 0x42, 0x6C, 0x6D, 0x42, 0x6C,
- 0x6E, 0x42, 0x6C, 0x78, 0x42, 0x6D, 0x32, 0x42,
- 0x6D, 0x33, 0x42, 0x6D, 0x41, 0x42, 0x6D, 0x56,
- 0x42, 0x6D, 0x57, 0x42, 0x6D, 0x62, 0x42, 0x6D,
- 0x67, 0x42, 0x6D, 0x6C, 0x42, 0x6D, 0x6D, 0x42,
- 0x6D, 0x73, 0x42, 0x6E, 0x41, 0x42, 0x6E, 0x46,
- 0x42, 0x6E, 0x56, 0x42, 0x6E, 0x57, 0x42, 0x6E,
- // Bytes 1a40 - 1a7f
- 0x6A, 0x42, 0x6E, 0x6D, 0x42, 0x6E, 0x73, 0x42,
- 0x6F, 0x56, 0x42, 0x70, 0x41, 0x42, 0x70, 0x46,
- 0x42, 0x70, 0x56, 0x42, 0x70, 0x57, 0x42, 0x70,
- 0x63, 0x42, 0x70, 0x73, 0x42, 0x73, 0x72, 0x42,
- 0x73, 0x74, 0x42, 0x76, 0x69, 0x42, 0x78, 0x69,
- 0x43, 0x28, 0x31, 0x29, 0x43, 0x28, 0x32, 0x29,
- 0x43, 0x28, 0x33, 0x29, 0x43, 0x28, 0x34, 0x29,
- 0x43, 0x28, 0x35, 0x29, 0x43, 0x28, 0x36, 0x29,
- // Bytes 1a80 - 1abf
- 0x43, 0x28, 0x37, 0x29, 0x43, 0x28, 0x38, 0x29,
- 0x43, 0x28, 0x39, 0x29, 0x43, 0x28, 0x41, 0x29,
- 0x43, 0x28, 0x42, 0x29, 0x43, 0x28, 0x43, 0x29,
- 0x43, 0x28, 0x44, 0x29, 0x43, 0x28, 0x45, 0x29,
- 0x43, 0x28, 0x46, 0x29, 0x43, 0x28, 0x47, 0x29,
- 0x43, 0x28, 0x48, 0x29, 0x43, 0x28, 0x49, 0x29,
- 0x43, 0x28, 0x4A, 0x29, 0x43, 0x28, 0x4B, 0x29,
- 0x43, 0x28, 0x4C, 0x29, 0x43, 0x28, 0x4D, 0x29,
- // Bytes 1ac0 - 1aff
- 0x43, 0x28, 0x4E, 0x29, 0x43, 0x28, 0x4F, 0x29,
- 0x43, 0x28, 0x50, 0x29, 0x43, 0x28, 0x51, 0x29,
- 0x43, 0x28, 0x52, 0x29, 0x43, 0x28, 0x53, 0x29,
- 0x43, 0x28, 0x54, 0x29, 0x43, 0x28, 0x55, 0x29,
- 0x43, 0x28, 0x56, 0x29, 0x43, 0x28, 0x57, 0x29,
- 0x43, 0x28, 0x58, 0x29, 0x43, 0x28, 0x59, 0x29,
- 0x43, 0x28, 0x5A, 0x29, 0x43, 0x28, 0x61, 0x29,
- 0x43, 0x28, 0x62, 0x29, 0x43, 0x28, 0x63, 0x29,
- // Bytes 1b00 - 1b3f
- 0x43, 0x28, 0x64, 0x29, 0x43, 0x28, 0x65, 0x29,
- 0x43, 0x28, 0x66, 0x29, 0x43, 0x28, 0x67, 0x29,
- 0x43, 0x28, 0x68, 0x29, 0x43, 0x28, 0x69, 0x29,
- 0x43, 0x28, 0x6A, 0x29, 0x43, 0x28, 0x6B, 0x29,
- 0x43, 0x28, 0x6C, 0x29, 0x43, 0x28, 0x6D, 0x29,
- 0x43, 0x28, 0x6E, 0x29, 0x43, 0x28, 0x6F, 0x29,
- 0x43, 0x28, 0x70, 0x29, 0x43, 0x28, 0x71, 0x29,
- 0x43, 0x28, 0x72, 0x29, 0x43, 0x28, 0x73, 0x29,
- // Bytes 1b40 - 1b7f
- 0x43, 0x28, 0x74, 0x29, 0x43, 0x28, 0x75, 0x29,
- 0x43, 0x28, 0x76, 0x29, 0x43, 0x28, 0x77, 0x29,
- 0x43, 0x28, 0x78, 0x29, 0x43, 0x28, 0x79, 0x29,
- 0x43, 0x28, 0x7A, 0x29, 0x43, 0x2E, 0x2E, 0x2E,
- 0x43, 0x31, 0x30, 0x2E, 0x43, 0x31, 0x31, 0x2E,
- 0x43, 0x31, 0x32, 0x2E, 0x43, 0x31, 0x33, 0x2E,
- 0x43, 0x31, 0x34, 0x2E, 0x43, 0x31, 0x35, 0x2E,
- 0x43, 0x31, 0x36, 0x2E, 0x43, 0x31, 0x37, 0x2E,
- // Bytes 1b80 - 1bbf
- 0x43, 0x31, 0x38, 0x2E, 0x43, 0x31, 0x39, 0x2E,
- 0x43, 0x32, 0x30, 0x2E, 0x43, 0x3A, 0x3A, 0x3D,
- 0x43, 0x3D, 0x3D, 0x3D, 0x43, 0x43, 0x6F, 0x2E,
- 0x43, 0x46, 0x41, 0x58, 0x43, 0x47, 0x48, 0x7A,
- 0x43, 0x47, 0x50, 0x61, 0x43, 0x49, 0x49, 0x49,
- 0x43, 0x4C, 0x54, 0x44, 0x43, 0x4C, 0xC2, 0xB7,
- 0x43, 0x4D, 0x48, 0x7A, 0x43, 0x4D, 0x50, 0x61,
- 0x43, 0x4D, 0xCE, 0xA9, 0x43, 0x50, 0x50, 0x4D,
- // Bytes 1bc0 - 1bff
- 0x43, 0x50, 0x50, 0x56, 0x43, 0x50, 0x54, 0x45,
- 0x43, 0x54, 0x45, 0x4C, 0x43, 0x54, 0x48, 0x7A,
- 0x43, 0x56, 0x49, 0x49, 0x43, 0x58, 0x49, 0x49,
- 0x43, 0x61, 0x2F, 0x63, 0x43, 0x61, 0x2F, 0x73,
- 0x43, 0x61, 0xCA, 0xBE, 0x43, 0x62, 0x61, 0x72,
- 0x43, 0x63, 0x2F, 0x6F, 0x43, 0x63, 0x2F, 0x75,
- 0x43, 0x63, 0x61, 0x6C, 0x43, 0x63, 0x6D, 0x32,
- 0x43, 0x63, 0x6D, 0x33, 0x43, 0x64, 0x6D, 0x32,
- // Bytes 1c00 - 1c3f
- 0x43, 0x64, 0x6D, 0x33, 0x43, 0x65, 0x72, 0x67,
- 0x43, 0x66, 0x66, 0x69, 0x43, 0x66, 0x66, 0x6C,
- 0x43, 0x67, 0x61, 0x6C, 0x43, 0x68, 0x50, 0x61,
- 0x43, 0x69, 0x69, 0x69, 0x43, 0x6B, 0x48, 0x7A,
- 0x43, 0x6B, 0x50, 0x61, 0x43, 0x6B, 0x6D, 0x32,
- 0x43, 0x6B, 0x6D, 0x33, 0x43, 0x6B, 0xCE, 0xA9,
- 0x43, 0x6C, 0x6F, 0x67, 0x43, 0x6C, 0xC2, 0xB7,
- 0x43, 0x6D, 0x69, 0x6C, 0x43, 0x6D, 0x6D, 0x32,
- // Bytes 1c40 - 1c7f
- 0x43, 0x6D, 0x6D, 0x33, 0x43, 0x6D, 0x6F, 0x6C,
- 0x43, 0x72, 0x61, 0x64, 0x43, 0x76, 0x69, 0x69,
- 0x43, 0x78, 0x69, 0x69, 0x43, 0xC2, 0xB0, 0x43,
- 0x43, 0xC2, 0xB0, 0x46, 0x43, 0xCA, 0xBC, 0x6E,
- 0x43, 0xCE, 0xBC, 0x41, 0x43, 0xCE, 0xBC, 0x46,
- 0x43, 0xCE, 0xBC, 0x56, 0x43, 0xCE, 0xBC, 0x57,
- 0x43, 0xCE, 0xBC, 0x67, 0x43, 0xCE, 0xBC, 0x6C,
- 0x43, 0xCE, 0xBC, 0x6D, 0x43, 0xCE, 0xBC, 0x73,
- // Bytes 1c80 - 1cbf
- 0x44, 0x28, 0x31, 0x30, 0x29, 0x44, 0x28, 0x31,
- 0x31, 0x29, 0x44, 0x28, 0x31, 0x32, 0x29, 0x44,
- 0x28, 0x31, 0x33, 0x29, 0x44, 0x28, 0x31, 0x34,
- 0x29, 0x44, 0x28, 0x31, 0x35, 0x29, 0x44, 0x28,
- 0x31, 0x36, 0x29, 0x44, 0x28, 0x31, 0x37, 0x29,
- 0x44, 0x28, 0x31, 0x38, 0x29, 0x44, 0x28, 0x31,
- 0x39, 0x29, 0x44, 0x28, 0x32, 0x30, 0x29, 0x44,
- 0x30, 0xE7, 0x82, 0xB9, 0x44, 0x31, 0xE2, 0x81,
- // Bytes 1cc0 - 1cff
- 0x84, 0x44, 0x31, 0xE6, 0x97, 0xA5, 0x44, 0x31,
- 0xE6, 0x9C, 0x88, 0x44, 0x31, 0xE7, 0x82, 0xB9,
- 0x44, 0x32, 0xE6, 0x97, 0xA5, 0x44, 0x32, 0xE6,
- 0x9C, 0x88, 0x44, 0x32, 0xE7, 0x82, 0xB9, 0x44,
- 0x33, 0xE6, 0x97, 0xA5, 0x44, 0x33, 0xE6, 0x9C,
- 0x88, 0x44, 0x33, 0xE7, 0x82, 0xB9, 0x44, 0x34,
- 0xE6, 0x97, 0xA5, 0x44, 0x34, 0xE6, 0x9C, 0x88,
- 0x44, 0x34, 0xE7, 0x82, 0xB9, 0x44, 0x35, 0xE6,
- // Bytes 1d00 - 1d3f
- 0x97, 0xA5, 0x44, 0x35, 0xE6, 0x9C, 0x88, 0x44,
- 0x35, 0xE7, 0x82, 0xB9, 0x44, 0x36, 0xE6, 0x97,
- 0xA5, 0x44, 0x36, 0xE6, 0x9C, 0x88, 0x44, 0x36,
- 0xE7, 0x82, 0xB9, 0x44, 0x37, 0xE6, 0x97, 0xA5,
- 0x44, 0x37, 0xE6, 0x9C, 0x88, 0x44, 0x37, 0xE7,
- 0x82, 0xB9, 0x44, 0x38, 0xE6, 0x97, 0xA5, 0x44,
- 0x38, 0xE6, 0x9C, 0x88, 0x44, 0x38, 0xE7, 0x82,
- 0xB9, 0x44, 0x39, 0xE6, 0x97, 0xA5, 0x44, 0x39,
- // Bytes 1d40 - 1d7f
- 0xE6, 0x9C, 0x88, 0x44, 0x39, 0xE7, 0x82, 0xB9,
- 0x44, 0x56, 0x49, 0x49, 0x49, 0x44, 0x61, 0x2E,
- 0x6D, 0x2E, 0x44, 0x6B, 0x63, 0x61, 0x6C, 0x44,
- 0x70, 0x2E, 0x6D, 0x2E, 0x44, 0x76, 0x69, 0x69,
- 0x69, 0x44, 0xD5, 0xA5, 0xD6, 0x82, 0x44, 0xD5,
- 0xB4, 0xD5, 0xA5, 0x44, 0xD5, 0xB4, 0xD5, 0xAB,
- 0x44, 0xD5, 0xB4, 0xD5, 0xAD, 0x44, 0xD5, 0xB4,
- 0xD5, 0xB6, 0x44, 0xD5, 0xBE, 0xD5, 0xB6, 0x44,
- // Bytes 1d80 - 1dbf
- 0xD7, 0x90, 0xD7, 0x9C, 0x44, 0xD8, 0xA7, 0xD9,
- 0xB4, 0x44, 0xD8, 0xA8, 0xD8, 0xAC, 0x44, 0xD8,
- 0xA8, 0xD8, 0xAD, 0x44, 0xD8, 0xA8, 0xD8, 0xAE,
- 0x44, 0xD8, 0xA8, 0xD8, 0xB1, 0x44, 0xD8, 0xA8,
- 0xD8, 0xB2, 0x44, 0xD8, 0xA8, 0xD9, 0x85, 0x44,
- 0xD8, 0xA8, 0xD9, 0x86, 0x44, 0xD8, 0xA8, 0xD9,
- 0x87, 0x44, 0xD8, 0xA8, 0xD9, 0x89, 0x44, 0xD8,
- 0xA8, 0xD9, 0x8A, 0x44, 0xD8, 0xAA, 0xD8, 0xAC,
- // Bytes 1dc0 - 1dff
- 0x44, 0xD8, 0xAA, 0xD8, 0xAD, 0x44, 0xD8, 0xAA,
- 0xD8, 0xAE, 0x44, 0xD8, 0xAA, 0xD8, 0xB1, 0x44,
- 0xD8, 0xAA, 0xD8, 0xB2, 0x44, 0xD8, 0xAA, 0xD9,
- 0x85, 0x44, 0xD8, 0xAA, 0xD9, 0x86, 0x44, 0xD8,
- 0xAA, 0xD9, 0x87, 0x44, 0xD8, 0xAA, 0xD9, 0x89,
- 0x44, 0xD8, 0xAA, 0xD9, 0x8A, 0x44, 0xD8, 0xAB,
- 0xD8, 0xAC, 0x44, 0xD8, 0xAB, 0xD8, 0xB1, 0x44,
- 0xD8, 0xAB, 0xD8, 0xB2, 0x44, 0xD8, 0xAB, 0xD9,
- // Bytes 1e00 - 1e3f
- 0x85, 0x44, 0xD8, 0xAB, 0xD9, 0x86, 0x44, 0xD8,
- 0xAB, 0xD9, 0x87, 0x44, 0xD8, 0xAB, 0xD9, 0x89,
- 0x44, 0xD8, 0xAB, 0xD9, 0x8A, 0x44, 0xD8, 0xAC,
- 0xD8, 0xAD, 0x44, 0xD8, 0xAC, 0xD9, 0x85, 0x44,
- 0xD8, 0xAC, 0xD9, 0x89, 0x44, 0xD8, 0xAC, 0xD9,
- 0x8A, 0x44, 0xD8, 0xAD, 0xD8, 0xAC, 0x44, 0xD8,
- 0xAD, 0xD9, 0x85, 0x44, 0xD8, 0xAD, 0xD9, 0x89,
- 0x44, 0xD8, 0xAD, 0xD9, 0x8A, 0x44, 0xD8, 0xAE,
- // Bytes 1e40 - 1e7f
- 0xD8, 0xAC, 0x44, 0xD8, 0xAE, 0xD8, 0xAD, 0x44,
- 0xD8, 0xAE, 0xD9, 0x85, 0x44, 0xD8, 0xAE, 0xD9,
- 0x89, 0x44, 0xD8, 0xAE, 0xD9, 0x8A, 0x44, 0xD8,
- 0xB3, 0xD8, 0xAC, 0x44, 0xD8, 0xB3, 0xD8, 0xAD,
- 0x44, 0xD8, 0xB3, 0xD8, 0xAE, 0x44, 0xD8, 0xB3,
- 0xD8, 0xB1, 0x44, 0xD8, 0xB3, 0xD9, 0x85, 0x44,
- 0xD8, 0xB3, 0xD9, 0x87, 0x44, 0xD8, 0xB3, 0xD9,
- 0x89, 0x44, 0xD8, 0xB3, 0xD9, 0x8A, 0x44, 0xD8,
- // Bytes 1e80 - 1ebf
- 0xB4, 0xD8, 0xAC, 0x44, 0xD8, 0xB4, 0xD8, 0xAD,
- 0x44, 0xD8, 0xB4, 0xD8, 0xAE, 0x44, 0xD8, 0xB4,
- 0xD8, 0xB1, 0x44, 0xD8, 0xB4, 0xD9, 0x85, 0x44,
- 0xD8, 0xB4, 0xD9, 0x87, 0x44, 0xD8, 0xB4, 0xD9,
- 0x89, 0x44, 0xD8, 0xB4, 0xD9, 0x8A, 0x44, 0xD8,
- 0xB5, 0xD8, 0xAD, 0x44, 0xD8, 0xB5, 0xD8, 0xAE,
- 0x44, 0xD8, 0xB5, 0xD8, 0xB1, 0x44, 0xD8, 0xB5,
- 0xD9, 0x85, 0x44, 0xD8, 0xB5, 0xD9, 0x89, 0x44,
- // Bytes 1ec0 - 1eff
- 0xD8, 0xB5, 0xD9, 0x8A, 0x44, 0xD8, 0xB6, 0xD8,
- 0xAC, 0x44, 0xD8, 0xB6, 0xD8, 0xAD, 0x44, 0xD8,
- 0xB6, 0xD8, 0xAE, 0x44, 0xD8, 0xB6, 0xD8, 0xB1,
- 0x44, 0xD8, 0xB6, 0xD9, 0x85, 0x44, 0xD8, 0xB6,
- 0xD9, 0x89, 0x44, 0xD8, 0xB6, 0xD9, 0x8A, 0x44,
- 0xD8, 0xB7, 0xD8, 0xAD, 0x44, 0xD8, 0xB7, 0xD9,
- 0x85, 0x44, 0xD8, 0xB7, 0xD9, 0x89, 0x44, 0xD8,
- 0xB7, 0xD9, 0x8A, 0x44, 0xD8, 0xB8, 0xD9, 0x85,
- // Bytes 1f00 - 1f3f
- 0x44, 0xD8, 0xB9, 0xD8, 0xAC, 0x44, 0xD8, 0xB9,
- 0xD9, 0x85, 0x44, 0xD8, 0xB9, 0xD9, 0x89, 0x44,
- 0xD8, 0xB9, 0xD9, 0x8A, 0x44, 0xD8, 0xBA, 0xD8,
- 0xAC, 0x44, 0xD8, 0xBA, 0xD9, 0x85, 0x44, 0xD8,
- 0xBA, 0xD9, 0x89, 0x44, 0xD8, 0xBA, 0xD9, 0x8A,
- 0x44, 0xD9, 0x81, 0xD8, 0xAC, 0x44, 0xD9, 0x81,
- 0xD8, 0xAD, 0x44, 0xD9, 0x81, 0xD8, 0xAE, 0x44,
- 0xD9, 0x81, 0xD9, 0x85, 0x44, 0xD9, 0x81, 0xD9,
- // Bytes 1f40 - 1f7f
- 0x89, 0x44, 0xD9, 0x81, 0xD9, 0x8A, 0x44, 0xD9,
- 0x82, 0xD8, 0xAD, 0x44, 0xD9, 0x82, 0xD9, 0x85,
- 0x44, 0xD9, 0x82, 0xD9, 0x89, 0x44, 0xD9, 0x82,
- 0xD9, 0x8A, 0x44, 0xD9, 0x83, 0xD8, 0xA7, 0x44,
- 0xD9, 0x83, 0xD8, 0xAC, 0x44, 0xD9, 0x83, 0xD8,
- 0xAD, 0x44, 0xD9, 0x83, 0xD8, 0xAE, 0x44, 0xD9,
- 0x83, 0xD9, 0x84, 0x44, 0xD9, 0x83, 0xD9, 0x85,
- 0x44, 0xD9, 0x83, 0xD9, 0x89, 0x44, 0xD9, 0x83,
- // Bytes 1f80 - 1fbf
- 0xD9, 0x8A, 0x44, 0xD9, 0x84, 0xD8, 0xA7, 0x44,
- 0xD9, 0x84, 0xD8, 0xAC, 0x44, 0xD9, 0x84, 0xD8,
- 0xAD, 0x44, 0xD9, 0x84, 0xD8, 0xAE, 0x44, 0xD9,
- 0x84, 0xD9, 0x85, 0x44, 0xD9, 0x84, 0xD9, 0x87,
- 0x44, 0xD9, 0x84, 0xD9, 0x89, 0x44, 0xD9, 0x84,
- 0xD9, 0x8A, 0x44, 0xD9, 0x85, 0xD8, 0xA7, 0x44,
- 0xD9, 0x85, 0xD8, 0xAC, 0x44, 0xD9, 0x85, 0xD8,
- 0xAD, 0x44, 0xD9, 0x85, 0xD8, 0xAE, 0x44, 0xD9,
- // Bytes 1fc0 - 1fff
- 0x85, 0xD9, 0x85, 0x44, 0xD9, 0x85, 0xD9, 0x89,
- 0x44, 0xD9, 0x85, 0xD9, 0x8A, 0x44, 0xD9, 0x86,
- 0xD8, 0xAC, 0x44, 0xD9, 0x86, 0xD8, 0xAD, 0x44,
- 0xD9, 0x86, 0xD8, 0xAE, 0x44, 0xD9, 0x86, 0xD8,
- 0xB1, 0x44, 0xD9, 0x86, 0xD8, 0xB2, 0x44, 0xD9,
- 0x86, 0xD9, 0x85, 0x44, 0xD9, 0x86, 0xD9, 0x86,
- 0x44, 0xD9, 0x86, 0xD9, 0x87, 0x44, 0xD9, 0x86,
- 0xD9, 0x89, 0x44, 0xD9, 0x86, 0xD9, 0x8A, 0x44,
- // Bytes 2000 - 203f
- 0xD9, 0x87, 0xD8, 0xAC, 0x44, 0xD9, 0x87, 0xD9,
- 0x85, 0x44, 0xD9, 0x87, 0xD9, 0x89, 0x44, 0xD9,
- 0x87, 0xD9, 0x8A, 0x44, 0xD9, 0x88, 0xD9, 0xB4,
- 0x44, 0xD9, 0x8A, 0xD8, 0xAC, 0x44, 0xD9, 0x8A,
- 0xD8, 0xAD, 0x44, 0xD9, 0x8A, 0xD8, 0xAE, 0x44,
- 0xD9, 0x8A, 0xD8, 0xB1, 0x44, 0xD9, 0x8A, 0xD8,
- 0xB2, 0x44, 0xD9, 0x8A, 0xD9, 0x85, 0x44, 0xD9,
- 0x8A, 0xD9, 0x86, 0x44, 0xD9, 0x8A, 0xD9, 0x87,
- // Bytes 2040 - 207f
- 0x44, 0xD9, 0x8A, 0xD9, 0x89, 0x44, 0xD9, 0x8A,
- 0xD9, 0x8A, 0x44, 0xD9, 0x8A, 0xD9, 0xB4, 0x44,
- 0xDB, 0x87, 0xD9, 0xB4, 0x45, 0x28, 0xE1, 0x84,
- 0x80, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x82, 0x29,
- 0x45, 0x28, 0xE1, 0x84, 0x83, 0x29, 0x45, 0x28,
- 0xE1, 0x84, 0x85, 0x29, 0x45, 0x28, 0xE1, 0x84,
- 0x86, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x87, 0x29,
- 0x45, 0x28, 0xE1, 0x84, 0x89, 0x29, 0x45, 0x28,
- // Bytes 2080 - 20bf
- 0xE1, 0x84, 0x8B, 0x29, 0x45, 0x28, 0xE1, 0x84,
- 0x8C, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x8E, 0x29,
- 0x45, 0x28, 0xE1, 0x84, 0x8F, 0x29, 0x45, 0x28,
- 0xE1, 0x84, 0x90, 0x29, 0x45, 0x28, 0xE1, 0x84,
- 0x91, 0x29, 0x45, 0x28, 0xE1, 0x84, 0x92, 0x29,
- 0x45, 0x28, 0xE4, 0xB8, 0x80, 0x29, 0x45, 0x28,
- 0xE4, 0xB8, 0x83, 0x29, 0x45, 0x28, 0xE4, 0xB8,
- 0x89, 0x29, 0x45, 0x28, 0xE4, 0xB9, 0x9D, 0x29,
- // Bytes 20c0 - 20ff
- 0x45, 0x28, 0xE4, 0xBA, 0x8C, 0x29, 0x45, 0x28,
- 0xE4, 0xBA, 0x94, 0x29, 0x45, 0x28, 0xE4, 0xBB,
- 0xA3, 0x29, 0x45, 0x28, 0xE4, 0xBC, 0x81, 0x29,
- 0x45, 0x28, 0xE4, 0xBC, 0x91, 0x29, 0x45, 0x28,
- 0xE5, 0x85, 0xAB, 0x29, 0x45, 0x28, 0xE5, 0x85,
- 0xAD, 0x29, 0x45, 0x28, 0xE5, 0x8A, 0xB4, 0x29,
- 0x45, 0x28, 0xE5, 0x8D, 0x81, 0x29, 0x45, 0x28,
- 0xE5, 0x8D, 0x94, 0x29, 0x45, 0x28, 0xE5, 0x90,
- // Bytes 2100 - 213f
- 0x8D, 0x29, 0x45, 0x28, 0xE5, 0x91, 0xBC, 0x29,
- 0x45, 0x28, 0xE5, 0x9B, 0x9B, 0x29, 0x45, 0x28,
- 0xE5, 0x9C, 0x9F, 0x29, 0x45, 0x28, 0xE5, 0xAD,
- 0xA6, 0x29, 0x45, 0x28, 0xE6, 0x97, 0xA5, 0x29,
- 0x45, 0x28, 0xE6, 0x9C, 0x88, 0x29, 0x45, 0x28,
- 0xE6, 0x9C, 0x89, 0x29, 0x45, 0x28, 0xE6, 0x9C,
- 0xA8, 0x29, 0x45, 0x28, 0xE6, 0xA0, 0xAA, 0x29,
- 0x45, 0x28, 0xE6, 0xB0, 0xB4, 0x29, 0x45, 0x28,
- // Bytes 2140 - 217f
- 0xE7, 0x81, 0xAB, 0x29, 0x45, 0x28, 0xE7, 0x89,
- 0xB9, 0x29, 0x45, 0x28, 0xE7, 0x9B, 0xA3, 0x29,
- 0x45, 0x28, 0xE7, 0xA4, 0xBE, 0x29, 0x45, 0x28,
- 0xE7, 0xA5, 0x9D, 0x29, 0x45, 0x28, 0xE7, 0xA5,
- 0xAD, 0x29, 0x45, 0x28, 0xE8, 0x87, 0xAA, 0x29,
- 0x45, 0x28, 0xE8, 0x87, 0xB3, 0x29, 0x45, 0x28,
- 0xE8, 0xB2, 0xA1, 0x29, 0x45, 0x28, 0xE8, 0xB3,
- 0x87, 0x29, 0x45, 0x28, 0xE9, 0x87, 0x91, 0x29,
- // Bytes 2180 - 21bf
- 0x45, 0x30, 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31,
- 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x31, 0x30, 0xE6,
- 0x9C, 0x88, 0x45, 0x31, 0x30, 0xE7, 0x82, 0xB9,
- 0x45, 0x31, 0x31, 0xE6, 0x97, 0xA5, 0x45, 0x31,
- 0x31, 0xE6, 0x9C, 0x88, 0x45, 0x31, 0x31, 0xE7,
- 0x82, 0xB9, 0x45, 0x31, 0x32, 0xE6, 0x97, 0xA5,
- 0x45, 0x31, 0x32, 0xE6, 0x9C, 0x88, 0x45, 0x31,
- 0x32, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x33, 0xE6,
- // Bytes 21c0 - 21ff
- 0x97, 0xA5, 0x45, 0x31, 0x33, 0xE7, 0x82, 0xB9,
- 0x45, 0x31, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x31,
- 0x34, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x35, 0xE6,
- 0x97, 0xA5, 0x45, 0x31, 0x35, 0xE7, 0x82, 0xB9,
- 0x45, 0x31, 0x36, 0xE6, 0x97, 0xA5, 0x45, 0x31,
- 0x36, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x37, 0xE6,
- 0x97, 0xA5, 0x45, 0x31, 0x37, 0xE7, 0x82, 0xB9,
- 0x45, 0x31, 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x31,
- // Bytes 2200 - 223f
- 0x38, 0xE7, 0x82, 0xB9, 0x45, 0x31, 0x39, 0xE6,
- 0x97, 0xA5, 0x45, 0x31, 0x39, 0xE7, 0x82, 0xB9,
- 0x45, 0x31, 0xE2, 0x81, 0x84, 0x32, 0x45, 0x31,
- 0xE2, 0x81, 0x84, 0x33, 0x45, 0x31, 0xE2, 0x81,
- 0x84, 0x34, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x35,
- 0x45, 0x31, 0xE2, 0x81, 0x84, 0x36, 0x45, 0x31,
- 0xE2, 0x81, 0x84, 0x37, 0x45, 0x31, 0xE2, 0x81,
- 0x84, 0x38, 0x45, 0x31, 0xE2, 0x81, 0x84, 0x39,
- // Bytes 2240 - 227f
- 0x45, 0x32, 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x32,
- 0x30, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x31, 0xE6,
- 0x97, 0xA5, 0x45, 0x32, 0x31, 0xE7, 0x82, 0xB9,
- 0x45, 0x32, 0x32, 0xE6, 0x97, 0xA5, 0x45, 0x32,
- 0x32, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x33, 0xE6,
- 0x97, 0xA5, 0x45, 0x32, 0x33, 0xE7, 0x82, 0xB9,
- 0x45, 0x32, 0x34, 0xE6, 0x97, 0xA5, 0x45, 0x32,
- 0x34, 0xE7, 0x82, 0xB9, 0x45, 0x32, 0x35, 0xE6,
- // Bytes 2280 - 22bf
- 0x97, 0xA5, 0x45, 0x32, 0x36, 0xE6, 0x97, 0xA5,
- 0x45, 0x32, 0x37, 0xE6, 0x97, 0xA5, 0x45, 0x32,
- 0x38, 0xE6, 0x97, 0xA5, 0x45, 0x32, 0x39, 0xE6,
- 0x97, 0xA5, 0x45, 0x32, 0xE2, 0x81, 0x84, 0x33,
- 0x45, 0x32, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33,
- 0x30, 0xE6, 0x97, 0xA5, 0x45, 0x33, 0x31, 0xE6,
- 0x97, 0xA5, 0x45, 0x33, 0xE2, 0x81, 0x84, 0x34,
- 0x45, 0x33, 0xE2, 0x81, 0x84, 0x35, 0x45, 0x33,
- // Bytes 22c0 - 22ff
- 0xE2, 0x81, 0x84, 0x38, 0x45, 0x34, 0xE2, 0x81,
- 0x84, 0x35, 0x45, 0x35, 0xE2, 0x81, 0x84, 0x36,
- 0x45, 0x35, 0xE2, 0x81, 0x84, 0x38, 0x45, 0x37,
- 0xE2, 0x81, 0x84, 0x38, 0x45, 0x41, 0xE2, 0x88,
- 0x95, 0x6D, 0x45, 0x56, 0xE2, 0x88, 0x95, 0x6D,
- 0x45, 0x6D, 0xE2, 0x88, 0x95, 0x73, 0x46, 0x31,
- 0xE2, 0x81, 0x84, 0x31, 0x30, 0x46, 0x43, 0xE2,
- 0x88, 0x95, 0x6B, 0x67, 0x46, 0x6D, 0xE2, 0x88,
- // Bytes 2300 - 233f
- 0x95, 0x73, 0x32, 0x46, 0xD8, 0xA8, 0xD8, 0xAD,
- 0xD9, 0x8A, 0x46, 0xD8, 0xA8, 0xD8, 0xAE, 0xD9,
- 0x8A, 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x85,
- 0x46, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x89, 0x46,
- 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8,
- 0xAA, 0xD8, 0xAD, 0xD8, 0xAC, 0x46, 0xD8, 0xAA,
- 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8,
- 0xAE, 0xD9, 0x85, 0x46, 0xD8, 0xAA, 0xD8, 0xAE,
- // Bytes 2340 - 237f
- 0xD9, 0x89, 0x46, 0xD8, 0xAA, 0xD8, 0xAE, 0xD9,
- 0x8A, 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAC,
- 0x46, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAD, 0x46,
- 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAE, 0x46, 0xD8,
- 0xAA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAA,
- 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD8,
- 0xAD, 0xD9, 0x89, 0x46, 0xD8, 0xAC, 0xD8, 0xAD,
- 0xD9, 0x8A, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD8,
- // Bytes 2380 - 23bf
- 0xAD, 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x89,
- 0x46, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x8A, 0x46,
- 0xD8, 0xAD, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD8,
- 0xAD, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8, 0xAD,
- 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB3, 0xD8,
- 0xAC, 0xD8, 0xAD, 0x46, 0xD8, 0xB3, 0xD8, 0xAC,
- 0xD9, 0x89, 0x46, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8,
- 0xAC, 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x89,
- // Bytes 23c0 - 23ff
- 0x46, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x8A, 0x46,
- 0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xAC, 0x46, 0xD8,
- 0xB3, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8, 0xB3,
- 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8,
- 0xAC, 0xD9, 0x8A, 0x46, 0xD8, 0xB4, 0xD8, 0xAD,
- 0xD9, 0x85, 0x46, 0xD8, 0xB4, 0xD8, 0xAD, 0xD9,
- 0x8A, 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD8, 0xAE,
- 0x46, 0xD8, 0xB4, 0xD9, 0x85, 0xD9, 0x85, 0x46,
- // Bytes 2400 - 243f
- 0xD8, 0xB5, 0xD8, 0xAD, 0xD8, 0xAD, 0x46, 0xD8,
- 0xB5, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD8, 0xB5,
- 0xD9, 0x84, 0xD9, 0x89, 0x46, 0xD8, 0xB5, 0xD9,
- 0x84, 0xDB, 0x92, 0x46, 0xD8, 0xB5, 0xD9, 0x85,
- 0xD9, 0x85, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9,
- 0x89, 0x46, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x8A,
- 0x46, 0xD8, 0xB6, 0xD8, 0xAE, 0xD9, 0x85, 0x46,
- 0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD8,
- // Bytes 2440 - 247f
- 0xB7, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD8, 0xB7,
- 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD8, 0xB9, 0xD8,
- 0xAC, 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85,
- 0xD9, 0x85, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9,
- 0x89, 0x46, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x8A,
- 0x46, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x85, 0x46,
- 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x89, 0x46, 0xD8,
- 0xBA, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x81,
- // Bytes 2480 - 24bf
- 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x81, 0xD9,
- 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x82, 0xD9, 0x84,
- 0xDB, 0x92, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD8,
- 0xAD, 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x85,
- 0x46, 0xD9, 0x82, 0xD9, 0x85, 0xD9, 0x8A, 0x46,
- 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9,
- 0x83, 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x84,
- 0xD8, 0xAC, 0xD8, 0xAC, 0x46, 0xD9, 0x84, 0xD8,
- // Bytes 24c0 - 24ff
- 0xAC, 0xD9, 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAC,
- 0xD9, 0x8A, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9,
- 0x85, 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x89,
- 0x46, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x8A, 0x46,
- 0xD9, 0x84, 0xD8, 0xAE, 0xD9, 0x85, 0x46, 0xD9,
- 0x84, 0xD9, 0x85, 0xD8, 0xAD, 0x46, 0xD9, 0x84,
- 0xD9, 0x85, 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD8,
- 0xAC, 0xD8, 0xAD, 0x46, 0xD9, 0x85, 0xD8, 0xAC,
- // Bytes 2500 - 253f
- 0xD8, 0xAE, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9,
- 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x8A,
- 0x46, 0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xAC, 0x46,
- 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9,
- 0x85, 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x85,
- 0xD8, 0xAE, 0xD8, 0xAC, 0x46, 0xD9, 0x85, 0xD8,
- 0xAE, 0xD9, 0x85, 0x46, 0xD9, 0x85, 0xD8, 0xAE,
- 0xD9, 0x8A, 0x46, 0xD9, 0x85, 0xD9, 0x85, 0xD9,
- // Bytes 2540 - 257f
- 0x8A, 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD8, 0xAD,
- 0x46, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x85, 0x46,
- 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x89, 0x46, 0xD9,
- 0x86, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x86,
- 0xD8, 0xAD, 0xD9, 0x85, 0x46, 0xD9, 0x86, 0xD8,
- 0xAD, 0xD9, 0x89, 0x46, 0xD9, 0x86, 0xD8, 0xAD,
- 0xD9, 0x8A, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9,
- 0x89, 0x46, 0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x8A,
- // Bytes 2580 - 25bf
- 0x46, 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xAC, 0x46,
- 0xD9, 0x87, 0xD9, 0x85, 0xD9, 0x85, 0x46, 0xD9,
- 0x8A, 0xD8, 0xAC, 0xD9, 0x8A, 0x46, 0xD9, 0x8A,
- 0xD8, 0xAD, 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9,
- 0x85, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x85,
- 0xD9, 0x8A, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8,
- 0xA7, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAC,
- 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAD, 0x46,
- // Bytes 25c0 - 25ff
- 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAE, 0x46, 0xD9,
- 0x8A, 0xD9, 0x94, 0xD8, 0xB1, 0x46, 0xD9, 0x8A,
- 0xD9, 0x94, 0xD8, 0xB2, 0x46, 0xD9, 0x8A, 0xD9,
- 0x94, 0xD9, 0x85, 0x46, 0xD9, 0x8A, 0xD9, 0x94,
- 0xD9, 0x86, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9,
- 0x87, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x88,
- 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x89, 0x46,
- 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x8A, 0x46, 0xD9,
- // Bytes 2600 - 263f
- 0x8A, 0xD9, 0x94, 0xDB, 0x86, 0x46, 0xD9, 0x8A,
- 0xD9, 0x94, 0xDB, 0x87, 0x46, 0xD9, 0x8A, 0xD9,
- 0x94, 0xDB, 0x88, 0x46, 0xD9, 0x8A, 0xD9, 0x94,
- 0xDB, 0x90, 0x46, 0xD9, 0x8A, 0xD9, 0x94, 0xDB,
- 0x95, 0x46, 0xE0, 0xB9, 0x8D, 0xE0, 0xB8, 0xB2,
- 0x46, 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0x99, 0x46,
- 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0xA1, 0x46, 0xE0,
- 0xBB, 0x8D, 0xE0, 0xBA, 0xB2, 0x46, 0xE0, 0xBD,
- // Bytes 2640 - 267f
- 0x80, 0xE0, 0xBE, 0xB5, 0x46, 0xE0, 0xBD, 0x82,
- 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x8C, 0xE0,
- 0xBE, 0xB7, 0x46, 0xE0, 0xBD, 0x91, 0xE0, 0xBE,
- 0xB7, 0x46, 0xE0, 0xBD, 0x96, 0xE0, 0xBE, 0xB7,
- 0x46, 0xE0, 0xBD, 0x9B, 0xE0, 0xBE, 0xB7, 0x46,
- 0xE0, 0xBE, 0x90, 0xE0, 0xBE, 0xB5, 0x46, 0xE0,
- 0xBE, 0x92, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE,
- 0x9C, 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA1,
- // Bytes 2680 - 26bf
- 0xE0, 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xA6, 0xE0,
- 0xBE, 0xB7, 0x46, 0xE0, 0xBE, 0xAB, 0xE0, 0xBE,
- 0xB7, 0x46, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,
- 0x46, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x46,
- 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x46, 0xE2,
- 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x46, 0xE3, 0x81,
- 0xBB, 0xE3, 0x81, 0x8B, 0x46, 0xE3, 0x82, 0x88,
- 0xE3, 0x82, 0x8A, 0x46, 0xE3, 0x82, 0xAD, 0xE3,
- // Bytes 26c0 - 26ff
- 0x83, 0xAD, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x82,
- 0xB3, 0x46, 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0x88,
- 0x46, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3, 0x46,
- 0xE3, 0x83, 0x8A, 0xE3, 0x83, 0x8E, 0x46, 0xE3,
- 0x83, 0x9B, 0xE3, 0x83, 0xB3, 0x46, 0xE3, 0x83,
- 0x9F, 0xE3, 0x83, 0xAA, 0x46, 0xE3, 0x83, 0xAA,
- 0xE3, 0x83, 0xA9, 0x46, 0xE3, 0x83, 0xAC, 0xE3,
- 0x83, 0xA0, 0x46, 0xE5, 0xA4, 0xA7, 0xE6, 0xAD,
- // Bytes 2700 - 273f
- 0xA3, 0x46, 0xE5, 0xB9, 0xB3, 0xE6, 0x88, 0x90,
- 0x46, 0xE6, 0x98, 0x8E, 0xE6, 0xB2, 0xBB, 0x46,
- 0xE6, 0x98, 0xAD, 0xE5, 0x92, 0x8C, 0x47, 0x72,
- 0x61, 0x64, 0xE2, 0x88, 0x95, 0x73, 0x47, 0xE3,
- 0x80, 0x94, 0x53, 0xE3, 0x80, 0x95, 0x48, 0x28,
- 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x29, 0x48,
- 0x28, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x29,
- 0x48, 0x28, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1,
- // Bytes 2740 - 277f
- 0x29, 0x48, 0x28, 0xE1, 0x84, 0x85, 0xE1, 0x85,
- 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x86, 0xE1,
- 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x87,
- 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84,
- 0x89, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1,
- 0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28,
- 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x29, 0x48,
- 0x28, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xAE, 0x29,
- // Bytes 2780 - 27bf
- 0x48, 0x28, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1,
- 0x29, 0x48, 0x28, 0xE1, 0x84, 0x8F, 0xE1, 0x85,
- 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x90, 0xE1,
- 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84, 0x91,
- 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x28, 0xE1, 0x84,
- 0x92, 0xE1, 0x85, 0xA1, 0x29, 0x48, 0x72, 0x61,
- 0x64, 0xE2, 0x88, 0x95, 0x73, 0x32, 0x48, 0xD8,
- 0xA7, 0xD9, 0x83, 0xD8, 0xA8, 0xD8, 0xB1, 0x48,
- // Bytes 27c0 - 27ff
- 0xD8, 0xA7, 0xD9, 0x84, 0xD9, 0x84, 0xD9, 0x87,
- 0x48, 0xD8, 0xB1, 0xD8, 0xB3, 0xD9, 0x88, 0xD9,
- 0x84, 0x48, 0xD8, 0xB1, 0xDB, 0x8C, 0xD8, 0xA7,
- 0xD9, 0x84, 0x48, 0xD8, 0xB5, 0xD9, 0x84, 0xD8,
- 0xB9, 0xD9, 0x85, 0x48, 0xD8, 0xB9, 0xD9, 0x84,
- 0xD9, 0x8A, 0xD9, 0x87, 0x48, 0xD9, 0x85, 0xD8,
- 0xAD, 0xD9, 0x85, 0xD8, 0xAF, 0x48, 0xD9, 0x88,
- 0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x49, 0xE2,
- // Bytes 2800 - 283f
- 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,
- 0x49, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0xE2,
- 0x80, 0xB5, 0x49, 0xE2, 0x88, 0xAB, 0xE2, 0x88,
- 0xAB, 0xE2, 0x88, 0xAB, 0x49, 0xE2, 0x88, 0xAE,
- 0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0x49, 0xE3,
- 0x80, 0x94, 0xE4, 0xB8, 0x89, 0xE3, 0x80, 0x95,
- 0x49, 0xE3, 0x80, 0x94, 0xE4, 0xBA, 0x8C, 0xE3,
- 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE5, 0x8B,
- // Bytes 2840 - 287f
- 0x9D, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94,
- 0xE5, 0xAE, 0x89, 0xE3, 0x80, 0x95, 0x49, 0xE3,
- 0x80, 0x94, 0xE6, 0x89, 0x93, 0xE3, 0x80, 0x95,
- 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x95, 0x97, 0xE3,
- 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94, 0xE6, 0x9C,
- 0xAC, 0xE3, 0x80, 0x95, 0x49, 0xE3, 0x80, 0x94,
- 0xE7, 0x82, 0xB9, 0xE3, 0x80, 0x95, 0x49, 0xE3,
- 0x80, 0x94, 0xE7, 0x9B, 0x97, 0xE3, 0x80, 0x95,
- // Bytes 2880 - 28bf
- 0x49, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xBC, 0xE3,
- 0x83, 0xAB, 0x49, 0xE3, 0x82, 0xA4, 0xE3, 0x83,
- 0xB3, 0xE3, 0x83, 0x81, 0x49, 0xE3, 0x82, 0xA6,
- 0xE3, 0x82, 0xA9, 0xE3, 0x83, 0xB3, 0x49, 0xE3,
- 0x82, 0xAA, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB9,
- 0x49, 0xE3, 0x82, 0xAA, 0xE3, 0x83, 0xBC, 0xE3,
- 0x83, 0xA0, 0x49, 0xE3, 0x82, 0xAB, 0xE3, 0x82,
- 0xA4, 0xE3, 0x83, 0xAA, 0x49, 0xE3, 0x82, 0xB1,
- // Bytes 28c0 - 28ff
- 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB9, 0x49, 0xE3,
- 0x82, 0xB3, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x8A,
- 0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3,
- 0x83, 0x81, 0x49, 0xE3, 0x82, 0xBB, 0xE3, 0x83,
- 0xB3, 0xE3, 0x83, 0x88, 0x49, 0xE3, 0x83, 0x86,
- 0xE3, 0x82, 0x99, 0xE3, 0x82, 0xB7, 0x49, 0xE3,
- 0x83, 0x88, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB,
- 0x49, 0xE3, 0x83, 0x8E, 0xE3, 0x83, 0x83, 0xE3,
- // Bytes 2900 - 293f
- 0x83, 0x88, 0x49, 0xE3, 0x83, 0x8F, 0xE3, 0x82,
- 0xA4, 0xE3, 0x83, 0x84, 0x49, 0xE3, 0x83, 0x92,
- 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0x49, 0xE3,
- 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xB3,
- 0x49, 0xE3, 0x83, 0x95, 0xE3, 0x83, 0xA9, 0xE3,
- 0x83, 0xB3, 0x49, 0xE3, 0x83, 0x98, 0xE3, 0x82,
- 0x9A, 0xE3, 0x82, 0xBD, 0x49, 0xE3, 0x83, 0x98,
- 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x84, 0x49, 0xE3,
- // Bytes 2940 - 297f
- 0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB,
- 0x49, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3,
- 0x83, 0xB3, 0x49, 0xE3, 0x83, 0x9E, 0xE3, 0x82,
- 0xA4, 0xE3, 0x83, 0xAB, 0x49, 0xE3, 0x83, 0x9E,
- 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x8F, 0x49, 0xE3,
- 0x83, 0x9E, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xAF,
- 0x49, 0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xBC, 0xE3,
- 0x83, 0xAB, 0x49, 0xE3, 0x83, 0xA6, 0xE3, 0x82,
- // Bytes 2980 - 29bf
- 0xA2, 0xE3, 0x83, 0xB3, 0x49, 0xE3, 0x83, 0xAF,
- 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0x4C, 0xE2,
- 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2,
- 0xE2, 0x80, 0xB2, 0x4C, 0xE2, 0x88, 0xAB, 0xE2,
- 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB,
- 0x4C, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xAB, 0xE3,
- 0x83, 0x95, 0xE3, 0x82, 0xA1, 0x4C, 0xE3, 0x82,
- 0xA8, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xAB, 0xE3,
- // Bytes 29c0 - 29ff
- 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x82,
- 0x99, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xB3, 0x4C,
- 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83,
- 0xB3, 0xE3, 0x83, 0x9E, 0x4C, 0xE3, 0x82, 0xAB,
- 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0x83, 0xE3, 0x83,
- 0x88, 0x4C, 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xAD,
- 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, 0x4C, 0xE3,
- 0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x8B,
- // Bytes 2a00 - 2a3f
- 0xE3, 0x83, 0xBC, 0x4C, 0xE3, 0x82, 0xAD, 0xE3,
- 0x83, 0xA5, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC,
- 0x4C, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3,
- 0x83, 0xA9, 0xE3, 0x83, 0xA0, 0x4C, 0xE3, 0x82,
- 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xBC, 0xE3,
- 0x83, 0x8D, 0x4C, 0xE3, 0x82, 0xB5, 0xE3, 0x82,
- 0xA4, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C,
- 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83,
- // Bytes 2a40 - 2a7f
- 0xBC, 0xE3, 0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x8F,
- 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83,
- 0x84, 0x4C, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A,
- 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0x4C, 0xE3,
- 0x83, 0x95, 0xE3, 0x82, 0xA3, 0xE3, 0x83, 0xBC,
- 0xE3, 0x83, 0x88, 0x4C, 0xE3, 0x83, 0x98, 0xE3,
- 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xBF,
- 0x4C, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3,
- // Bytes 2a80 - 2abf
- 0x83, 0x8B, 0xE3, 0x83, 0x92, 0x4C, 0xE3, 0x83,
- 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xB3, 0xE3,
- 0x82, 0xB9, 0x4C, 0xE3, 0x83, 0x9B, 0xE3, 0x82,
- 0x99, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x88, 0x4C,
- 0xE3, 0x83, 0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x82,
- 0xAF, 0xE3, 0x83, 0xAD, 0x4C, 0xE3, 0x83, 0x9F,
- 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83,
- 0xB3, 0x4C, 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xBC,
- // Bytes 2ac0 - 2aff
- 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x4C, 0xE3,
- 0x83, 0xAA, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88,
- 0xE3, 0x83, 0xAB, 0x4C, 0xE3, 0x83, 0xAB, 0xE3,
- 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC,
- 0x4C, 0xE6, 0xA0, 0xAA, 0xE5, 0xBC, 0x8F, 0xE4,
- 0xBC, 0x9A, 0xE7, 0xA4, 0xBE, 0x4E, 0x28, 0xE1,
- 0x84, 0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x92,
- 0xE1, 0x85, 0xAE, 0x29, 0x4F, 0xD8, 0xAC, 0xD9,
- // Bytes 2b00 - 2b3f
- 0x84, 0x20, 0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xA7,
- 0xD9, 0x84, 0xD9, 0x87, 0x4F, 0xE3, 0x82, 0xA2,
- 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83,
- 0xBC, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xA2,
- 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x98, 0xE3, 0x82,
- 0x9A, 0xE3, 0x82, 0xA2, 0x4F, 0xE3, 0x82, 0xAD,
- 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xAF, 0xE3, 0x83,
- 0x83, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x82, 0xB5,
- // Bytes 2b40 - 2b7f
- 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x81, 0xE3, 0x83,
- 0xBC, 0xE3, 0x83, 0xA0, 0x4F, 0xE3, 0x83, 0x8F,
- 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83,
- 0xAC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x98,
- 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0xBF, 0xE3, 0x83,
- 0xBC, 0xE3, 0x83, 0xAB, 0x4F, 0xE3, 0x83, 0x9B,
- 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA4, 0xE3, 0x83,
- 0xB3, 0xE3, 0x83, 0x88, 0x4F, 0xE3, 0x83, 0x9E,
- // Bytes 2b80 - 2bbf
- 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB7, 0xE3, 0x83,
- 0xA7, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xA1,
- 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83,
- 0x88, 0xE3, 0x83, 0xB3, 0x4F, 0xE3, 0x83, 0xAB,
- 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x95, 0xE3, 0x82,
- 0x99, 0xE3, 0x83, 0xAB, 0x51, 0x28, 0xE1, 0x84,
- 0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x8C, 0xE1,
- 0x85, 0xA5, 0xE1, 0x86, 0xAB, 0x29, 0x52, 0xE3,
- // Bytes 2bc0 - 2bff
- 0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB,
- 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83,
- 0xBC, 0x52, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD,
- 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83,
- 0xA9, 0xE3, 0x83, 0xA0, 0x52, 0xE3, 0x82, 0xAD,
- 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xA1, 0xE3, 0x83,
- 0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0x52,
- 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83,
- // Bytes 2c00 - 2c3f
- 0xA9, 0xE3, 0x83, 0xA0, 0xE3, 0x83, 0x88, 0xE3,
- 0x83, 0xB3, 0x52, 0xE3, 0x82, 0xAF, 0xE3, 0x83,
- 0xAB, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0xE3,
- 0x82, 0xA4, 0xE3, 0x83, 0xAD, 0x52, 0xE3, 0x83,
- 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3,
- 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88,
- 0x52, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3,
- 0x82, 0xA2, 0xE3, 0x82, 0xB9, 0xE3, 0x83, 0x88,
- // Bytes 2c40 - 2c7f
- 0xE3, 0x83, 0xAB, 0x52, 0xE3, 0x83, 0x95, 0xE3,
- 0x82, 0x99, 0xE3, 0x83, 0x83, 0xE3, 0x82, 0xB7,
- 0xE3, 0x82, 0xA7, 0xE3, 0x83, 0xAB, 0x52, 0xE3,
- 0x83, 0x9F, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0x8F,
- 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x83,
- 0xAB, 0x52, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xB3,
- 0xE3, 0x83, 0x88, 0xE3, 0x82, 0xB1, 0xE3, 0x82,
- 0x99, 0xE3, 0x83, 0xB3, 0x61, 0xD8, 0xB5, 0xD9,
- // Bytes 2c80 - 2cbf
- 0x84, 0xD9, 0x89, 0x20, 0xD8, 0xA7, 0xD9, 0x84,
- 0xD9, 0x84, 0xD9, 0x87, 0x20, 0xD8, 0xB9, 0xD9,
- 0x84, 0xD9, 0x8A, 0xD9, 0x87, 0x20, 0xD9, 0x88,
- 0xD8, 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0x06, 0xE0,
- 0xA7, 0x87, 0xE0, 0xA6, 0xBE, 0x01, 0x06, 0xE0,
- 0xA7, 0x87, 0xE0, 0xA7, 0x97, 0x01, 0x06, 0xE0,
- 0xAD, 0x87, 0xE0, 0xAC, 0xBE, 0x01, 0x06, 0xE0,
- 0xAD, 0x87, 0xE0, 0xAD, 0x96, 0x01, 0x06, 0xE0,
- // Bytes 2cc0 - 2cff
- 0xAD, 0x87, 0xE0, 0xAD, 0x97, 0x01, 0x06, 0xE0,
- 0xAE, 0x92, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0,
- 0xAF, 0x86, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0,
- 0xAF, 0x86, 0xE0, 0xAF, 0x97, 0x01, 0x06, 0xE0,
- 0xAF, 0x87, 0xE0, 0xAE, 0xBE, 0x01, 0x06, 0xE0,
- 0xB2, 0xBF, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0,
- 0xB3, 0x86, 0xE0, 0xB3, 0x95, 0x01, 0x06, 0xE0,
- 0xB3, 0x86, 0xE0, 0xB3, 0x96, 0x01, 0x06, 0xE0,
- // Bytes 2d00 - 2d3f
- 0xB5, 0x86, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0,
- 0xB5, 0x86, 0xE0, 0xB5, 0x97, 0x01, 0x06, 0xE0,
- 0xB5, 0x87, 0xE0, 0xB4, 0xBE, 0x01, 0x06, 0xE0,
- 0xB7, 0x99, 0xE0, 0xB7, 0x9F, 0x01, 0x06, 0xE1,
- 0x80, 0xA5, 0xE1, 0x80, 0xAE, 0x01, 0x06, 0xE1,
- 0xAC, 0x85, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,
- 0xAC, 0x87, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,
- 0xAC, 0x89, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,
- // Bytes 2d40 - 2d7f
- 0xAC, 0x8B, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,
- 0xAC, 0x8D, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,
- 0xAC, 0x91, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,
- 0xAC, 0xBA, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,
- 0xAC, 0xBC, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,
- 0xAC, 0xBE, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,
- 0xAC, 0xBF, 0xE1, 0xAC, 0xB5, 0x01, 0x06, 0xE1,
- 0xAD, 0x82, 0xE1, 0xAC, 0xB5, 0x01, 0x08, 0xF0,
- // Bytes 2d80 - 2dbf
- 0x91, 0x84, 0xB1, 0xF0, 0x91, 0x84, 0xA7, 0x01,
- 0x08, 0xF0, 0x91, 0x84, 0xB2, 0xF0, 0x91, 0x84,
- 0xA7, 0x01, 0x08, 0xF0, 0x91, 0x8D, 0x87, 0xF0,
- 0x91, 0x8C, 0xBE, 0x01, 0x08, 0xF0, 0x91, 0x8D,
- 0x87, 0xF0, 0x91, 0x8D, 0x97, 0x01, 0x08, 0xF0,
- 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92, 0xB0, 0x01,
- 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0, 0x91, 0x92,
- 0xBA, 0x01, 0x08, 0xF0, 0x91, 0x92, 0xB9, 0xF0,
- // Bytes 2dc0 - 2dff
- 0x91, 0x92, 0xBD, 0x01, 0x08, 0xF0, 0x91, 0x96,
- 0xB8, 0xF0, 0x91, 0x96, 0xAF, 0x01, 0x08, 0xF0,
- 0x91, 0x96, 0xB9, 0xF0, 0x91, 0x96, 0xAF, 0x01,
- 0x09, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0xE0,
- 0xB3, 0x95, 0x02, 0x09, 0xE0, 0xB7, 0x99, 0xE0,
- 0xB7, 0x8F, 0xE0, 0xB7, 0x8A, 0x12, 0x44, 0x44,
- 0x5A, 0xCC, 0x8C, 0xC9, 0x44, 0x44, 0x7A, 0xCC,
- 0x8C, 0xC9, 0x44, 0x64, 0x7A, 0xCC, 0x8C, 0xC9,
- // Bytes 2e00 - 2e3f
- 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x93, 0xC9,
- 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x94, 0xC9,
- 0x46, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x95, 0xB5,
- 0x46, 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0x01,
- 0x46, 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0x01,
- 0x46, 0xE1, 0x84, 0x83, 0xE1, 0x85, 0xA1, 0x01,
- 0x46, 0xE1, 0x84, 0x85, 0xE1, 0x85, 0xA1, 0x01,
- 0x46, 0xE1, 0x84, 0x86, 0xE1, 0x85, 0xA1, 0x01,
- // Bytes 2e40 - 2e7f
- 0x46, 0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1, 0x01,
- 0x46, 0xE1, 0x84, 0x89, 0xE1, 0x85, 0xA1, 0x01,
- 0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xA1, 0x01,
- 0x46, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xAE, 0x01,
- 0x46, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0x01,
- 0x46, 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, 0x01,
- 0x46, 0xE1, 0x84, 0x8F, 0xE1, 0x85, 0xA1, 0x01,
- 0x46, 0xE1, 0x84, 0x90, 0xE1, 0x85, 0xA1, 0x01,
- // Bytes 2e80 - 2ebf
- 0x46, 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1, 0x01,
- 0x46, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0x01,
- 0x49, 0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB, 0xE3,
- 0x82, 0x99, 0x0D, 0x4C, 0xE1, 0x84, 0x8C, 0xE1,
- 0x85, 0xAE, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xB4,
- 0x01, 0x4C, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99,
- 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D, 0x4C,
- 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0xBC, 0xE3, 0x83,
- // Bytes 2ec0 - 2eff
- 0x9B, 0xE3, 0x82, 0x9A, 0x0D, 0x4C, 0xE3, 0x83,
- 0xA4, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3,
- 0x82, 0x99, 0x0D, 0x4F, 0xE1, 0x84, 0x8E, 0xE1,
- 0x85, 0xA1, 0xE1, 0x86, 0xB7, 0xE1, 0x84, 0x80,
- 0xE1, 0x85, 0xA9, 0x01, 0x4F, 0xE3, 0x82, 0xA4,
- 0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xB3, 0xE3, 0x82,
- 0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3, 0x82,
- 0xB7, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xB3, 0xE3,
- // Bytes 2f00 - 2f3f
- 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D, 0x4F, 0xE3,
- 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC,
- 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D, 0x4F,
- 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0xE3, 0x83,
- 0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D,
- 0x52, 0xE3, 0x82, 0xA8, 0xE3, 0x82, 0xB9, 0xE3,
- 0x82, 0xAF, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88,
- 0xE3, 0x82, 0x99, 0x0D, 0x52, 0xE3, 0x83, 0x95,
- // Bytes 2f40 - 2f7f
- 0xE3, 0x82, 0xA1, 0xE3, 0x83, 0xA9, 0xE3, 0x83,
- 0x83, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D,
- 0x86, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0x01,
- 0x86, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8F, 0x01,
- 0x03, 0x3C, 0xCC, 0xB8, 0x05, 0x03, 0x3D, 0xCC,
- 0xB8, 0x05, 0x03, 0x3E, 0xCC, 0xB8, 0x05, 0x03,
- 0x41, 0xCC, 0x80, 0xC9, 0x03, 0x41, 0xCC, 0x81,
- 0xC9, 0x03, 0x41, 0xCC, 0x83, 0xC9, 0x03, 0x41,
- // Bytes 2f80 - 2fbf
- 0xCC, 0x84, 0xC9, 0x03, 0x41, 0xCC, 0x89, 0xC9,
- 0x03, 0x41, 0xCC, 0x8C, 0xC9, 0x03, 0x41, 0xCC,
- 0x8F, 0xC9, 0x03, 0x41, 0xCC, 0x91, 0xC9, 0x03,
- 0x41, 0xCC, 0xA5, 0xB5, 0x03, 0x41, 0xCC, 0xA8,
- 0xA5, 0x03, 0x42, 0xCC, 0x87, 0xC9, 0x03, 0x42,
- 0xCC, 0xA3, 0xB5, 0x03, 0x42, 0xCC, 0xB1, 0xB5,
- 0x03, 0x43, 0xCC, 0x81, 0xC9, 0x03, 0x43, 0xCC,
- 0x82, 0xC9, 0x03, 0x43, 0xCC, 0x87, 0xC9, 0x03,
- // Bytes 2fc0 - 2fff
- 0x43, 0xCC, 0x8C, 0xC9, 0x03, 0x44, 0xCC, 0x87,
- 0xC9, 0x03, 0x44, 0xCC, 0x8C, 0xC9, 0x03, 0x44,
- 0xCC, 0xA3, 0xB5, 0x03, 0x44, 0xCC, 0xA7, 0xA5,
- 0x03, 0x44, 0xCC, 0xAD, 0xB5, 0x03, 0x44, 0xCC,
- 0xB1, 0xB5, 0x03, 0x45, 0xCC, 0x80, 0xC9, 0x03,
- 0x45, 0xCC, 0x81, 0xC9, 0x03, 0x45, 0xCC, 0x83,
- 0xC9, 0x03, 0x45, 0xCC, 0x86, 0xC9, 0x03, 0x45,
- 0xCC, 0x87, 0xC9, 0x03, 0x45, 0xCC, 0x88, 0xC9,
- // Bytes 3000 - 303f
- 0x03, 0x45, 0xCC, 0x89, 0xC9, 0x03, 0x45, 0xCC,
- 0x8C, 0xC9, 0x03, 0x45, 0xCC, 0x8F, 0xC9, 0x03,
- 0x45, 0xCC, 0x91, 0xC9, 0x03, 0x45, 0xCC, 0xA8,
- 0xA5, 0x03, 0x45, 0xCC, 0xAD, 0xB5, 0x03, 0x45,
- 0xCC, 0xB0, 0xB5, 0x03, 0x46, 0xCC, 0x87, 0xC9,
- 0x03, 0x47, 0xCC, 0x81, 0xC9, 0x03, 0x47, 0xCC,
- 0x82, 0xC9, 0x03, 0x47, 0xCC, 0x84, 0xC9, 0x03,
- 0x47, 0xCC, 0x86, 0xC9, 0x03, 0x47, 0xCC, 0x87,
- // Bytes 3040 - 307f
- 0xC9, 0x03, 0x47, 0xCC, 0x8C, 0xC9, 0x03, 0x47,
- 0xCC, 0xA7, 0xA5, 0x03, 0x48, 0xCC, 0x82, 0xC9,
- 0x03, 0x48, 0xCC, 0x87, 0xC9, 0x03, 0x48, 0xCC,
- 0x88, 0xC9, 0x03, 0x48, 0xCC, 0x8C, 0xC9, 0x03,
- 0x48, 0xCC, 0xA3, 0xB5, 0x03, 0x48, 0xCC, 0xA7,
- 0xA5, 0x03, 0x48, 0xCC, 0xAE, 0xB5, 0x03, 0x49,
- 0xCC, 0x80, 0xC9, 0x03, 0x49, 0xCC, 0x81, 0xC9,
- 0x03, 0x49, 0xCC, 0x82, 0xC9, 0x03, 0x49, 0xCC,
- // Bytes 3080 - 30bf
- 0x83, 0xC9, 0x03, 0x49, 0xCC, 0x84, 0xC9, 0x03,
- 0x49, 0xCC, 0x86, 0xC9, 0x03, 0x49, 0xCC, 0x87,
- 0xC9, 0x03, 0x49, 0xCC, 0x89, 0xC9, 0x03, 0x49,
- 0xCC, 0x8C, 0xC9, 0x03, 0x49, 0xCC, 0x8F, 0xC9,
- 0x03, 0x49, 0xCC, 0x91, 0xC9, 0x03, 0x49, 0xCC,
- 0xA3, 0xB5, 0x03, 0x49, 0xCC, 0xA8, 0xA5, 0x03,
- 0x49, 0xCC, 0xB0, 0xB5, 0x03, 0x4A, 0xCC, 0x82,
- 0xC9, 0x03, 0x4B, 0xCC, 0x81, 0xC9, 0x03, 0x4B,
- // Bytes 30c0 - 30ff
- 0xCC, 0x8C, 0xC9, 0x03, 0x4B, 0xCC, 0xA3, 0xB5,
- 0x03, 0x4B, 0xCC, 0xA7, 0xA5, 0x03, 0x4B, 0xCC,
- 0xB1, 0xB5, 0x03, 0x4C, 0xCC, 0x81, 0xC9, 0x03,
- 0x4C, 0xCC, 0x8C, 0xC9, 0x03, 0x4C, 0xCC, 0xA7,
- 0xA5, 0x03, 0x4C, 0xCC, 0xAD, 0xB5, 0x03, 0x4C,
- 0xCC, 0xB1, 0xB5, 0x03, 0x4D, 0xCC, 0x81, 0xC9,
- 0x03, 0x4D, 0xCC, 0x87, 0xC9, 0x03, 0x4D, 0xCC,
- 0xA3, 0xB5, 0x03, 0x4E, 0xCC, 0x80, 0xC9, 0x03,
- // Bytes 3100 - 313f
- 0x4E, 0xCC, 0x81, 0xC9, 0x03, 0x4E, 0xCC, 0x83,
- 0xC9, 0x03, 0x4E, 0xCC, 0x87, 0xC9, 0x03, 0x4E,
- 0xCC, 0x8C, 0xC9, 0x03, 0x4E, 0xCC, 0xA3, 0xB5,
- 0x03, 0x4E, 0xCC, 0xA7, 0xA5, 0x03, 0x4E, 0xCC,
- 0xAD, 0xB5, 0x03, 0x4E, 0xCC, 0xB1, 0xB5, 0x03,
- 0x4F, 0xCC, 0x80, 0xC9, 0x03, 0x4F, 0xCC, 0x81,
- 0xC9, 0x03, 0x4F, 0xCC, 0x86, 0xC9, 0x03, 0x4F,
- 0xCC, 0x89, 0xC9, 0x03, 0x4F, 0xCC, 0x8B, 0xC9,
- // Bytes 3140 - 317f
- 0x03, 0x4F, 0xCC, 0x8C, 0xC9, 0x03, 0x4F, 0xCC,
- 0x8F, 0xC9, 0x03, 0x4F, 0xCC, 0x91, 0xC9, 0x03,
- 0x50, 0xCC, 0x81, 0xC9, 0x03, 0x50, 0xCC, 0x87,
- 0xC9, 0x03, 0x52, 0xCC, 0x81, 0xC9, 0x03, 0x52,
- 0xCC, 0x87, 0xC9, 0x03, 0x52, 0xCC, 0x8C, 0xC9,
- 0x03, 0x52, 0xCC, 0x8F, 0xC9, 0x03, 0x52, 0xCC,
- 0x91, 0xC9, 0x03, 0x52, 0xCC, 0xA7, 0xA5, 0x03,
- 0x52, 0xCC, 0xB1, 0xB5, 0x03, 0x53, 0xCC, 0x82,
- // Bytes 3180 - 31bf
- 0xC9, 0x03, 0x53, 0xCC, 0x87, 0xC9, 0x03, 0x53,
- 0xCC, 0xA6, 0xB5, 0x03, 0x53, 0xCC, 0xA7, 0xA5,
- 0x03, 0x54, 0xCC, 0x87, 0xC9, 0x03, 0x54, 0xCC,
- 0x8C, 0xC9, 0x03, 0x54, 0xCC, 0xA3, 0xB5, 0x03,
- 0x54, 0xCC, 0xA6, 0xB5, 0x03, 0x54, 0xCC, 0xA7,
- 0xA5, 0x03, 0x54, 0xCC, 0xAD, 0xB5, 0x03, 0x54,
- 0xCC, 0xB1, 0xB5, 0x03, 0x55, 0xCC, 0x80, 0xC9,
- 0x03, 0x55, 0xCC, 0x81, 0xC9, 0x03, 0x55, 0xCC,
- // Bytes 31c0 - 31ff
- 0x82, 0xC9, 0x03, 0x55, 0xCC, 0x86, 0xC9, 0x03,
- 0x55, 0xCC, 0x89, 0xC9, 0x03, 0x55, 0xCC, 0x8A,
- 0xC9, 0x03, 0x55, 0xCC, 0x8B, 0xC9, 0x03, 0x55,
- 0xCC, 0x8C, 0xC9, 0x03, 0x55, 0xCC, 0x8F, 0xC9,
- 0x03, 0x55, 0xCC, 0x91, 0xC9, 0x03, 0x55, 0xCC,
- 0xA3, 0xB5, 0x03, 0x55, 0xCC, 0xA4, 0xB5, 0x03,
- 0x55, 0xCC, 0xA8, 0xA5, 0x03, 0x55, 0xCC, 0xAD,
- 0xB5, 0x03, 0x55, 0xCC, 0xB0, 0xB5, 0x03, 0x56,
- // Bytes 3200 - 323f
- 0xCC, 0x83, 0xC9, 0x03, 0x56, 0xCC, 0xA3, 0xB5,
- 0x03, 0x57, 0xCC, 0x80, 0xC9, 0x03, 0x57, 0xCC,
- 0x81, 0xC9, 0x03, 0x57, 0xCC, 0x82, 0xC9, 0x03,
- 0x57, 0xCC, 0x87, 0xC9, 0x03, 0x57, 0xCC, 0x88,
- 0xC9, 0x03, 0x57, 0xCC, 0xA3, 0xB5, 0x03, 0x58,
- 0xCC, 0x87, 0xC9, 0x03, 0x58, 0xCC, 0x88, 0xC9,
- 0x03, 0x59, 0xCC, 0x80, 0xC9, 0x03, 0x59, 0xCC,
- 0x81, 0xC9, 0x03, 0x59, 0xCC, 0x82, 0xC9, 0x03,
- // Bytes 3240 - 327f
- 0x59, 0xCC, 0x83, 0xC9, 0x03, 0x59, 0xCC, 0x84,
- 0xC9, 0x03, 0x59, 0xCC, 0x87, 0xC9, 0x03, 0x59,
- 0xCC, 0x88, 0xC9, 0x03, 0x59, 0xCC, 0x89, 0xC9,
- 0x03, 0x59, 0xCC, 0xA3, 0xB5, 0x03, 0x5A, 0xCC,
- 0x81, 0xC9, 0x03, 0x5A, 0xCC, 0x82, 0xC9, 0x03,
- 0x5A, 0xCC, 0x87, 0xC9, 0x03, 0x5A, 0xCC, 0x8C,
- 0xC9, 0x03, 0x5A, 0xCC, 0xA3, 0xB5, 0x03, 0x5A,
- 0xCC, 0xB1, 0xB5, 0x03, 0x61, 0xCC, 0x80, 0xC9,
- // Bytes 3280 - 32bf
- 0x03, 0x61, 0xCC, 0x81, 0xC9, 0x03, 0x61, 0xCC,
- 0x83, 0xC9, 0x03, 0x61, 0xCC, 0x84, 0xC9, 0x03,
- 0x61, 0xCC, 0x89, 0xC9, 0x03, 0x61, 0xCC, 0x8C,
- 0xC9, 0x03, 0x61, 0xCC, 0x8F, 0xC9, 0x03, 0x61,
- 0xCC, 0x91, 0xC9, 0x03, 0x61, 0xCC, 0xA5, 0xB5,
- 0x03, 0x61, 0xCC, 0xA8, 0xA5, 0x03, 0x62, 0xCC,
- 0x87, 0xC9, 0x03, 0x62, 0xCC, 0xA3, 0xB5, 0x03,
- 0x62, 0xCC, 0xB1, 0xB5, 0x03, 0x63, 0xCC, 0x81,
- // Bytes 32c0 - 32ff
- 0xC9, 0x03, 0x63, 0xCC, 0x82, 0xC9, 0x03, 0x63,
- 0xCC, 0x87, 0xC9, 0x03, 0x63, 0xCC, 0x8C, 0xC9,
- 0x03, 0x64, 0xCC, 0x87, 0xC9, 0x03, 0x64, 0xCC,
- 0x8C, 0xC9, 0x03, 0x64, 0xCC, 0xA3, 0xB5, 0x03,
- 0x64, 0xCC, 0xA7, 0xA5, 0x03, 0x64, 0xCC, 0xAD,
- 0xB5, 0x03, 0x64, 0xCC, 0xB1, 0xB5, 0x03, 0x65,
- 0xCC, 0x80, 0xC9, 0x03, 0x65, 0xCC, 0x81, 0xC9,
- 0x03, 0x65, 0xCC, 0x83, 0xC9, 0x03, 0x65, 0xCC,
- // Bytes 3300 - 333f
- 0x86, 0xC9, 0x03, 0x65, 0xCC, 0x87, 0xC9, 0x03,
- 0x65, 0xCC, 0x88, 0xC9, 0x03, 0x65, 0xCC, 0x89,
- 0xC9, 0x03, 0x65, 0xCC, 0x8C, 0xC9, 0x03, 0x65,
- 0xCC, 0x8F, 0xC9, 0x03, 0x65, 0xCC, 0x91, 0xC9,
- 0x03, 0x65, 0xCC, 0xA8, 0xA5, 0x03, 0x65, 0xCC,
- 0xAD, 0xB5, 0x03, 0x65, 0xCC, 0xB0, 0xB5, 0x03,
- 0x66, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC, 0x81,
- 0xC9, 0x03, 0x67, 0xCC, 0x82, 0xC9, 0x03, 0x67,
- // Bytes 3340 - 337f
- 0xCC, 0x84, 0xC9, 0x03, 0x67, 0xCC, 0x86, 0xC9,
- 0x03, 0x67, 0xCC, 0x87, 0xC9, 0x03, 0x67, 0xCC,
- 0x8C, 0xC9, 0x03, 0x67, 0xCC, 0xA7, 0xA5, 0x03,
- 0x68, 0xCC, 0x82, 0xC9, 0x03, 0x68, 0xCC, 0x87,
- 0xC9, 0x03, 0x68, 0xCC, 0x88, 0xC9, 0x03, 0x68,
- 0xCC, 0x8C, 0xC9, 0x03, 0x68, 0xCC, 0xA3, 0xB5,
- 0x03, 0x68, 0xCC, 0xA7, 0xA5, 0x03, 0x68, 0xCC,
- 0xAE, 0xB5, 0x03, 0x68, 0xCC, 0xB1, 0xB5, 0x03,
- // Bytes 3380 - 33bf
- 0x69, 0xCC, 0x80, 0xC9, 0x03, 0x69, 0xCC, 0x81,
- 0xC9, 0x03, 0x69, 0xCC, 0x82, 0xC9, 0x03, 0x69,
- 0xCC, 0x83, 0xC9, 0x03, 0x69, 0xCC, 0x84, 0xC9,
- 0x03, 0x69, 0xCC, 0x86, 0xC9, 0x03, 0x69, 0xCC,
- 0x89, 0xC9, 0x03, 0x69, 0xCC, 0x8C, 0xC9, 0x03,
- 0x69, 0xCC, 0x8F, 0xC9, 0x03, 0x69, 0xCC, 0x91,
- 0xC9, 0x03, 0x69, 0xCC, 0xA3, 0xB5, 0x03, 0x69,
- 0xCC, 0xA8, 0xA5, 0x03, 0x69, 0xCC, 0xB0, 0xB5,
- // Bytes 33c0 - 33ff
- 0x03, 0x6A, 0xCC, 0x82, 0xC9, 0x03, 0x6A, 0xCC,
- 0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0x81, 0xC9, 0x03,
- 0x6B, 0xCC, 0x8C, 0xC9, 0x03, 0x6B, 0xCC, 0xA3,
- 0xB5, 0x03, 0x6B, 0xCC, 0xA7, 0xA5, 0x03, 0x6B,
- 0xCC, 0xB1, 0xB5, 0x03, 0x6C, 0xCC, 0x81, 0xC9,
- 0x03, 0x6C, 0xCC, 0x8C, 0xC9, 0x03, 0x6C, 0xCC,
- 0xA7, 0xA5, 0x03, 0x6C, 0xCC, 0xAD, 0xB5, 0x03,
- 0x6C, 0xCC, 0xB1, 0xB5, 0x03, 0x6D, 0xCC, 0x81,
- // Bytes 3400 - 343f
- 0xC9, 0x03, 0x6D, 0xCC, 0x87, 0xC9, 0x03, 0x6D,
- 0xCC, 0xA3, 0xB5, 0x03, 0x6E, 0xCC, 0x80, 0xC9,
- 0x03, 0x6E, 0xCC, 0x81, 0xC9, 0x03, 0x6E, 0xCC,
- 0x83, 0xC9, 0x03, 0x6E, 0xCC, 0x87, 0xC9, 0x03,
- 0x6E, 0xCC, 0x8C, 0xC9, 0x03, 0x6E, 0xCC, 0xA3,
- 0xB5, 0x03, 0x6E, 0xCC, 0xA7, 0xA5, 0x03, 0x6E,
- 0xCC, 0xAD, 0xB5, 0x03, 0x6E, 0xCC, 0xB1, 0xB5,
- 0x03, 0x6F, 0xCC, 0x80, 0xC9, 0x03, 0x6F, 0xCC,
- // Bytes 3440 - 347f
- 0x81, 0xC9, 0x03, 0x6F, 0xCC, 0x86, 0xC9, 0x03,
- 0x6F, 0xCC, 0x89, 0xC9, 0x03, 0x6F, 0xCC, 0x8B,
- 0xC9, 0x03, 0x6F, 0xCC, 0x8C, 0xC9, 0x03, 0x6F,
- 0xCC, 0x8F, 0xC9, 0x03, 0x6F, 0xCC, 0x91, 0xC9,
- 0x03, 0x70, 0xCC, 0x81, 0xC9, 0x03, 0x70, 0xCC,
- 0x87, 0xC9, 0x03, 0x72, 0xCC, 0x81, 0xC9, 0x03,
- 0x72, 0xCC, 0x87, 0xC9, 0x03, 0x72, 0xCC, 0x8C,
- 0xC9, 0x03, 0x72, 0xCC, 0x8F, 0xC9, 0x03, 0x72,
- // Bytes 3480 - 34bf
- 0xCC, 0x91, 0xC9, 0x03, 0x72, 0xCC, 0xA7, 0xA5,
- 0x03, 0x72, 0xCC, 0xB1, 0xB5, 0x03, 0x73, 0xCC,
- 0x82, 0xC9, 0x03, 0x73, 0xCC, 0x87, 0xC9, 0x03,
- 0x73, 0xCC, 0xA6, 0xB5, 0x03, 0x73, 0xCC, 0xA7,
- 0xA5, 0x03, 0x74, 0xCC, 0x87, 0xC9, 0x03, 0x74,
- 0xCC, 0x88, 0xC9, 0x03, 0x74, 0xCC, 0x8C, 0xC9,
- 0x03, 0x74, 0xCC, 0xA3, 0xB5, 0x03, 0x74, 0xCC,
- 0xA6, 0xB5, 0x03, 0x74, 0xCC, 0xA7, 0xA5, 0x03,
- // Bytes 34c0 - 34ff
- 0x74, 0xCC, 0xAD, 0xB5, 0x03, 0x74, 0xCC, 0xB1,
- 0xB5, 0x03, 0x75, 0xCC, 0x80, 0xC9, 0x03, 0x75,
- 0xCC, 0x81, 0xC9, 0x03, 0x75, 0xCC, 0x82, 0xC9,
- 0x03, 0x75, 0xCC, 0x86, 0xC9, 0x03, 0x75, 0xCC,
- 0x89, 0xC9, 0x03, 0x75, 0xCC, 0x8A, 0xC9, 0x03,
- 0x75, 0xCC, 0x8B, 0xC9, 0x03, 0x75, 0xCC, 0x8C,
- 0xC9, 0x03, 0x75, 0xCC, 0x8F, 0xC9, 0x03, 0x75,
- 0xCC, 0x91, 0xC9, 0x03, 0x75, 0xCC, 0xA3, 0xB5,
- // Bytes 3500 - 353f
- 0x03, 0x75, 0xCC, 0xA4, 0xB5, 0x03, 0x75, 0xCC,
- 0xA8, 0xA5, 0x03, 0x75, 0xCC, 0xAD, 0xB5, 0x03,
- 0x75, 0xCC, 0xB0, 0xB5, 0x03, 0x76, 0xCC, 0x83,
- 0xC9, 0x03, 0x76, 0xCC, 0xA3, 0xB5, 0x03, 0x77,
- 0xCC, 0x80, 0xC9, 0x03, 0x77, 0xCC, 0x81, 0xC9,
- 0x03, 0x77, 0xCC, 0x82, 0xC9, 0x03, 0x77, 0xCC,
- 0x87, 0xC9, 0x03, 0x77, 0xCC, 0x88, 0xC9, 0x03,
- 0x77, 0xCC, 0x8A, 0xC9, 0x03, 0x77, 0xCC, 0xA3,
- // Bytes 3540 - 357f
- 0xB5, 0x03, 0x78, 0xCC, 0x87, 0xC9, 0x03, 0x78,
- 0xCC, 0x88, 0xC9, 0x03, 0x79, 0xCC, 0x80, 0xC9,
- 0x03, 0x79, 0xCC, 0x81, 0xC9, 0x03, 0x79, 0xCC,
- 0x82, 0xC9, 0x03, 0x79, 0xCC, 0x83, 0xC9, 0x03,
- 0x79, 0xCC, 0x84, 0xC9, 0x03, 0x79, 0xCC, 0x87,
- 0xC9, 0x03, 0x79, 0xCC, 0x88, 0xC9, 0x03, 0x79,
- 0xCC, 0x89, 0xC9, 0x03, 0x79, 0xCC, 0x8A, 0xC9,
- 0x03, 0x79, 0xCC, 0xA3, 0xB5, 0x03, 0x7A, 0xCC,
- // Bytes 3580 - 35bf
- 0x81, 0xC9, 0x03, 0x7A, 0xCC, 0x82, 0xC9, 0x03,
- 0x7A, 0xCC, 0x87, 0xC9, 0x03, 0x7A, 0xCC, 0x8C,
- 0xC9, 0x03, 0x7A, 0xCC, 0xA3, 0xB5, 0x03, 0x7A,
- 0xCC, 0xB1, 0xB5, 0x04, 0xC2, 0xA8, 0xCC, 0x80,
- 0xCA, 0x04, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x04,
- 0xC2, 0xA8, 0xCD, 0x82, 0xCA, 0x04, 0xC3, 0x86,
- 0xCC, 0x81, 0xC9, 0x04, 0xC3, 0x86, 0xCC, 0x84,
- 0xC9, 0x04, 0xC3, 0x98, 0xCC, 0x81, 0xC9, 0x04,
- // Bytes 35c0 - 35ff
- 0xC3, 0xA6, 0xCC, 0x81, 0xC9, 0x04, 0xC3, 0xA6,
- 0xCC, 0x84, 0xC9, 0x04, 0xC3, 0xB8, 0xCC, 0x81,
- 0xC9, 0x04, 0xC5, 0xBF, 0xCC, 0x87, 0xC9, 0x04,
- 0xC6, 0xB7, 0xCC, 0x8C, 0xC9, 0x04, 0xCA, 0x92,
- 0xCC, 0x8C, 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x80,
- 0xC9, 0x04, 0xCE, 0x91, 0xCC, 0x81, 0xC9, 0x04,
- 0xCE, 0x91, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0x91,
- 0xCC, 0x86, 0xC9, 0x04, 0xCE, 0x91, 0xCD, 0x85,
- // Bytes 3600 - 363f
- 0xD9, 0x04, 0xCE, 0x95, 0xCC, 0x80, 0xC9, 0x04,
- 0xCE, 0x95, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x97,
- 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x97, 0xCC, 0x81,
- 0xC9, 0x04, 0xCE, 0x97, 0xCD, 0x85, 0xD9, 0x04,
- 0xCE, 0x99, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x99,
- 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x84,
- 0xC9, 0x04, 0xCE, 0x99, 0xCC, 0x86, 0xC9, 0x04,
- 0xCE, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0x9F,
- // Bytes 3640 - 367f
- 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0x9F, 0xCC, 0x81,
- 0xC9, 0x04, 0xCE, 0xA1, 0xCC, 0x94, 0xC9, 0x04,
- 0xCE, 0xA5, 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA5,
- 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x84,
- 0xC9, 0x04, 0xCE, 0xA5, 0xCC, 0x86, 0xC9, 0x04,
- 0xCE, 0xA5, 0xCC, 0x88, 0xC9, 0x04, 0xCE, 0xA9,
- 0xCC, 0x80, 0xC9, 0x04, 0xCE, 0xA9, 0xCC, 0x81,
- 0xC9, 0x04, 0xCE, 0xA9, 0xCD, 0x85, 0xD9, 0x04,
- // Bytes 3680 - 36bf
- 0xCE, 0xB1, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB1,
- 0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB1, 0xCD, 0x85,
- 0xD9, 0x04, 0xCE, 0xB5, 0xCC, 0x80, 0xC9, 0x04,
- 0xCE, 0xB5, 0xCC, 0x81, 0xC9, 0x04, 0xCE, 0xB7,
- 0xCD, 0x85, 0xD9, 0x04, 0xCE, 0xB9, 0xCC, 0x80,
- 0xC9, 0x04, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x04,
- 0xCE, 0xB9, 0xCC, 0x84, 0xC9, 0x04, 0xCE, 0xB9,
- 0xCC, 0x86, 0xC9, 0x04, 0xCE, 0xB9, 0xCD, 0x82,
- // Bytes 36c0 - 36ff
- 0xC9, 0x04, 0xCE, 0xBF, 0xCC, 0x80, 0xC9, 0x04,
- 0xCE, 0xBF, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x81,
- 0xCC, 0x93, 0xC9, 0x04, 0xCF, 0x81, 0xCC, 0x94,
- 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x80, 0xC9, 0x04,
- 0xCF, 0x85, 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x85,
- 0xCC, 0x84, 0xC9, 0x04, 0xCF, 0x85, 0xCC, 0x86,
- 0xC9, 0x04, 0xCF, 0x85, 0xCD, 0x82, 0xC9, 0x04,
- 0xCF, 0x89, 0xCD, 0x85, 0xD9, 0x04, 0xCF, 0x92,
- // Bytes 3700 - 373f
- 0xCC, 0x81, 0xC9, 0x04, 0xCF, 0x92, 0xCC, 0x88,
- 0xC9, 0x04, 0xD0, 0x86, 0xCC, 0x88, 0xC9, 0x04,
- 0xD0, 0x90, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x90,
- 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x93, 0xCC, 0x81,
- 0xC9, 0x04, 0xD0, 0x95, 0xCC, 0x80, 0xC9, 0x04,
- 0xD0, 0x95, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0x95,
- 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x86,
- 0xC9, 0x04, 0xD0, 0x96, 0xCC, 0x88, 0xC9, 0x04,
- // Bytes 3740 - 377f
- 0xD0, 0x97, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x98,
- 0xCC, 0x80, 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x84,
- 0xC9, 0x04, 0xD0, 0x98, 0xCC, 0x86, 0xC9, 0x04,
- 0xD0, 0x98, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0x9A,
- 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0x9E, 0xCC, 0x88,
- 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x84, 0xC9, 0x04,
- 0xD0, 0xA3, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xA3,
- 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xA3, 0xCC, 0x8B,
- // Bytes 3780 - 37bf
- 0xC9, 0x04, 0xD0, 0xA7, 0xCC, 0x88, 0xC9, 0x04,
- 0xD0, 0xAB, 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xAD,
- 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x86,
- 0xC9, 0x04, 0xD0, 0xB0, 0xCC, 0x88, 0xC9, 0x04,
- 0xD0, 0xB3, 0xCC, 0x81, 0xC9, 0x04, 0xD0, 0xB5,
- 0xCC, 0x80, 0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x86,
- 0xC9, 0x04, 0xD0, 0xB5, 0xCC, 0x88, 0xC9, 0x04,
- 0xD0, 0xB6, 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB6,
- // Bytes 37c0 - 37ff
- 0xCC, 0x88, 0xC9, 0x04, 0xD0, 0xB7, 0xCC, 0x88,
- 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x80, 0xC9, 0x04,
- 0xD0, 0xB8, 0xCC, 0x84, 0xC9, 0x04, 0xD0, 0xB8,
- 0xCC, 0x86, 0xC9, 0x04, 0xD0, 0xB8, 0xCC, 0x88,
- 0xC9, 0x04, 0xD0, 0xBA, 0xCC, 0x81, 0xC9, 0x04,
- 0xD0, 0xBE, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x83,
- 0xCC, 0x84, 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x86,
- 0xC9, 0x04, 0xD1, 0x83, 0xCC, 0x88, 0xC9, 0x04,
- // Bytes 3800 - 383f
- 0xD1, 0x83, 0xCC, 0x8B, 0xC9, 0x04, 0xD1, 0x87,
- 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0x8B, 0xCC, 0x88,
- 0xC9, 0x04, 0xD1, 0x8D, 0xCC, 0x88, 0xC9, 0x04,
- 0xD1, 0x96, 0xCC, 0x88, 0xC9, 0x04, 0xD1, 0xB4,
- 0xCC, 0x8F, 0xC9, 0x04, 0xD1, 0xB5, 0xCC, 0x8F,
- 0xC9, 0x04, 0xD3, 0x98, 0xCC, 0x88, 0xC9, 0x04,
- 0xD3, 0x99, 0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA8,
- 0xCC, 0x88, 0xC9, 0x04, 0xD3, 0xA9, 0xCC, 0x88,
- // Bytes 3840 - 387f
- 0xC9, 0x04, 0xD8, 0xA7, 0xD9, 0x93, 0xC9, 0x04,
- 0xD8, 0xA7, 0xD9, 0x94, 0xC9, 0x04, 0xD8, 0xA7,
- 0xD9, 0x95, 0xB5, 0x04, 0xD9, 0x88, 0xD9, 0x94,
- 0xC9, 0x04, 0xD9, 0x8A, 0xD9, 0x94, 0xC9, 0x04,
- 0xDB, 0x81, 0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x92,
- 0xD9, 0x94, 0xC9, 0x04, 0xDB, 0x95, 0xD9, 0x94,
- 0xC9, 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x80, 0xCA,
- 0x05, 0x41, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05,
- // Bytes 3880 - 38bf
- 0x41, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x41,
- 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x41, 0xCC,
- 0x86, 0xCC, 0x80, 0xCA, 0x05, 0x41, 0xCC, 0x86,
- 0xCC, 0x81, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC,
- 0x83, 0xCA, 0x05, 0x41, 0xCC, 0x86, 0xCC, 0x89,
- 0xCA, 0x05, 0x41, 0xCC, 0x87, 0xCC, 0x84, 0xCA,
- 0x05, 0x41, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05,
- 0x41, 0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x41,
- // Bytes 38c0 - 38ff
- 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x41, 0xCC,
- 0xA3, 0xCC, 0x86, 0xCA, 0x05, 0x43, 0xCC, 0xA7,
- 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC,
- 0x80, 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x81,
- 0xCA, 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x83, 0xCA,
- 0x05, 0x45, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05,
- 0x45, 0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x45,
- 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05, 0x45, 0xCC,
- // Bytes 3900 - 393f
- 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x45, 0xCC, 0xA7,
- 0xCC, 0x86, 0xCA, 0x05, 0x49, 0xCC, 0x88, 0xCC,
- 0x81, 0xCA, 0x05, 0x4C, 0xCC, 0xA3, 0xCC, 0x84,
- 0xCA, 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x80, 0xCA,
- 0x05, 0x4F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05,
- 0x4F, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x4F,
- 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x4F, 0xCC,
- 0x83, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x83,
- // Bytes 3940 - 397f
- 0xCC, 0x84, 0xCA, 0x05, 0x4F, 0xCC, 0x83, 0xCC,
- 0x88, 0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x80,
- 0xCA, 0x05, 0x4F, 0xCC, 0x84, 0xCC, 0x81, 0xCA,
- 0x05, 0x4F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05,
- 0x4F, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x4F,
- 0xCC, 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x4F, 0xCC,
- 0x9B, 0xCC, 0x81, 0xCA, 0x05, 0x4F, 0xCC, 0x9B,
- 0xCC, 0x83, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC,
- // Bytes 3980 - 39bf
- 0x89, 0xCA, 0x05, 0x4F, 0xCC, 0x9B, 0xCC, 0xA3,
- 0xB6, 0x05, 0x4F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA,
- 0x05, 0x4F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05,
- 0x52, 0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x53,
- 0xCC, 0x81, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC,
- 0x8C, 0xCC, 0x87, 0xCA, 0x05, 0x53, 0xCC, 0xA3,
- 0xCC, 0x87, 0xCA, 0x05, 0x55, 0xCC, 0x83, 0xCC,
- 0x81, 0xCA, 0x05, 0x55, 0xCC, 0x84, 0xCC, 0x88,
- // Bytes 39c0 - 39ff
- 0xCA, 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x80, 0xCA,
- 0x05, 0x55, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05,
- 0x55, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x55,
- 0xCC, 0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x55, 0xCC,
- 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x55, 0xCC, 0x9B,
- 0xCC, 0x81, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC,
- 0x83, 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0x89,
- 0xCA, 0x05, 0x55, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6,
- // Bytes 3a00 - 3a3f
- 0x05, 0x61, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05,
- 0x61, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x61,
- 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x61, 0xCC,
- 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x61, 0xCC, 0x86,
- 0xCC, 0x80, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC,
- 0x81, 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x83,
- 0xCA, 0x05, 0x61, 0xCC, 0x86, 0xCC, 0x89, 0xCA,
- 0x05, 0x61, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05,
- // Bytes 3a40 - 3a7f
- 0x61, 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x61,
- 0xCC, 0x8A, 0xCC, 0x81, 0xCA, 0x05, 0x61, 0xCC,
- 0xA3, 0xCC, 0x82, 0xCA, 0x05, 0x61, 0xCC, 0xA3,
- 0xCC, 0x86, 0xCA, 0x05, 0x63, 0xCC, 0xA7, 0xCC,
- 0x81, 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x80,
- 0xCA, 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x81, 0xCA,
- 0x05, 0x65, 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05,
- 0x65, 0xCC, 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x65,
- // Bytes 3a80 - 3abf
- 0xCC, 0x84, 0xCC, 0x80, 0xCA, 0x05, 0x65, 0xCC,
- 0x84, 0xCC, 0x81, 0xCA, 0x05, 0x65, 0xCC, 0xA3,
- 0xCC, 0x82, 0xCA, 0x05, 0x65, 0xCC, 0xA7, 0xCC,
- 0x86, 0xCA, 0x05, 0x69, 0xCC, 0x88, 0xCC, 0x81,
- 0xCA, 0x05, 0x6C, 0xCC, 0xA3, 0xCC, 0x84, 0xCA,
- 0x05, 0x6F, 0xCC, 0x82, 0xCC, 0x80, 0xCA, 0x05,
- 0x6F, 0xCC, 0x82, 0xCC, 0x81, 0xCA, 0x05, 0x6F,
- 0xCC, 0x82, 0xCC, 0x83, 0xCA, 0x05, 0x6F, 0xCC,
- // Bytes 3ac0 - 3aff
- 0x82, 0xCC, 0x89, 0xCA, 0x05, 0x6F, 0xCC, 0x83,
- 0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC,
- 0x84, 0xCA, 0x05, 0x6F, 0xCC, 0x83, 0xCC, 0x88,
- 0xCA, 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x80, 0xCA,
- 0x05, 0x6F, 0xCC, 0x84, 0xCC, 0x81, 0xCA, 0x05,
- 0x6F, 0xCC, 0x87, 0xCC, 0x84, 0xCA, 0x05, 0x6F,
- 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x6F, 0xCC,
- 0x9B, 0xCC, 0x80, 0xCA, 0x05, 0x6F, 0xCC, 0x9B,
- // Bytes 3b00 - 3b3f
- 0xCC, 0x81, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC,
- 0x83, 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0x89,
- 0xCA, 0x05, 0x6F, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6,
- 0x05, 0x6F, 0xCC, 0xA3, 0xCC, 0x82, 0xCA, 0x05,
- 0x6F, 0xCC, 0xA8, 0xCC, 0x84, 0xCA, 0x05, 0x72,
- 0xCC, 0xA3, 0xCC, 0x84, 0xCA, 0x05, 0x73, 0xCC,
- 0x81, 0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0x8C,
- 0xCC, 0x87, 0xCA, 0x05, 0x73, 0xCC, 0xA3, 0xCC,
- // Bytes 3b40 - 3b7f
- 0x87, 0xCA, 0x05, 0x75, 0xCC, 0x83, 0xCC, 0x81,
- 0xCA, 0x05, 0x75, 0xCC, 0x84, 0xCC, 0x88, 0xCA,
- 0x05, 0x75, 0xCC, 0x88, 0xCC, 0x80, 0xCA, 0x05,
- 0x75, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x05, 0x75,
- 0xCC, 0x88, 0xCC, 0x84, 0xCA, 0x05, 0x75, 0xCC,
- 0x88, 0xCC, 0x8C, 0xCA, 0x05, 0x75, 0xCC, 0x9B,
- 0xCC, 0x80, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC,
- 0x81, 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x83,
- // Bytes 3b80 - 3bbf
- 0xCA, 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0x89, 0xCA,
- 0x05, 0x75, 0xCC, 0x9B, 0xCC, 0xA3, 0xB6, 0x05,
- 0xE1, 0xBE, 0xBF, 0xCC, 0x80, 0xCA, 0x05, 0xE1,
- 0xBE, 0xBF, 0xCC, 0x81, 0xCA, 0x05, 0xE1, 0xBE,
- 0xBF, 0xCD, 0x82, 0xCA, 0x05, 0xE1, 0xBF, 0xBE,
- 0xCC, 0x80, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCC,
- 0x81, 0xCA, 0x05, 0xE1, 0xBF, 0xBE, 0xCD, 0x82,
- 0xCA, 0x05, 0xE2, 0x86, 0x90, 0xCC, 0xB8, 0x05,
- // Bytes 3bc0 - 3bff
- 0x05, 0xE2, 0x86, 0x92, 0xCC, 0xB8, 0x05, 0x05,
- 0xE2, 0x86, 0x94, 0xCC, 0xB8, 0x05, 0x05, 0xE2,
- 0x87, 0x90, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87,
- 0x92, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x87, 0x94,
- 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x83, 0xCC,
- 0xB8, 0x05, 0x05, 0xE2, 0x88, 0x88, 0xCC, 0xB8,
- 0x05, 0x05, 0xE2, 0x88, 0x8B, 0xCC, 0xB8, 0x05,
- 0x05, 0xE2, 0x88, 0xA3, 0xCC, 0xB8, 0x05, 0x05,
- // Bytes 3c00 - 3c3f
- 0xE2, 0x88, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2,
- 0x88, 0xBC, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89,
- 0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x85,
- 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x88, 0xCC,
- 0xB8, 0x05, 0x05, 0xE2, 0x89, 0x8D, 0xCC, 0xB8,
- 0x05, 0x05, 0xE2, 0x89, 0xA1, 0xCC, 0xB8, 0x05,
- 0x05, 0xE2, 0x89, 0xA4, 0xCC, 0xB8, 0x05, 0x05,
- 0xE2, 0x89, 0xA5, 0xCC, 0xB8, 0x05, 0x05, 0xE2,
- // Bytes 3c40 - 3c7f
- 0x89, 0xB2, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89,
- 0xB3, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB6,
- 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xB7, 0xCC,
- 0xB8, 0x05, 0x05, 0xE2, 0x89, 0xBA, 0xCC, 0xB8,
- 0x05, 0x05, 0xE2, 0x89, 0xBB, 0xCC, 0xB8, 0x05,
- 0x05, 0xE2, 0x89, 0xBC, 0xCC, 0xB8, 0x05, 0x05,
- 0xE2, 0x89, 0xBD, 0xCC, 0xB8, 0x05, 0x05, 0xE2,
- 0x8A, 0x82, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A,
- // Bytes 3c80 - 3cbf
- 0x83, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x86,
- 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x87, 0xCC,
- 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0x91, 0xCC, 0xB8,
- 0x05, 0x05, 0xE2, 0x8A, 0x92, 0xCC, 0xB8, 0x05,
- 0x05, 0xE2, 0x8A, 0xA2, 0xCC, 0xB8, 0x05, 0x05,
- 0xE2, 0x8A, 0xA8, 0xCC, 0xB8, 0x05, 0x05, 0xE2,
- 0x8A, 0xA9, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A,
- 0xAB, 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB2,
- // Bytes 3cc0 - 3cff
- 0xCC, 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB3, 0xCC,
- 0xB8, 0x05, 0x05, 0xE2, 0x8A, 0xB4, 0xCC, 0xB8,
- 0x05, 0x05, 0xE2, 0x8A, 0xB5, 0xCC, 0xB8, 0x05,
- 0x06, 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x85, 0xDA,
- 0x06, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x85, 0xDA,
- 0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x80, 0xCA,
- 0x06, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x81, 0xCA,
- 0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x80, 0xCA,
- // Bytes 3d00 - 3d3f
- 0x06, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x81, 0xCA,
- 0x06, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x85, 0xDA,
- 0x06, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x85, 0xDA,
- 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x80, 0xCA,
- 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x81, 0xCA,
- 0x06, 0xCE, 0x99, 0xCC, 0x93, 0xCD, 0x82, 0xCA,
- 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x80, 0xCA,
- 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x81, 0xCA,
- // Bytes 3d40 - 3d7f
- 0x06, 0xCE, 0x99, 0xCC, 0x94, 0xCD, 0x82, 0xCA,
- 0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x80, 0xCA,
- 0x06, 0xCE, 0x9F, 0xCC, 0x93, 0xCC, 0x81, 0xCA,
- 0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x80, 0xCA,
- 0x06, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, 0x81, 0xCA,
- 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x80, 0xCA,
- 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x81, 0xCA,
- 0x06, 0xCE, 0xA5, 0xCC, 0x94, 0xCD, 0x82, 0xCA,
- // Bytes 3d80 - 3dbf
- 0x06, 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x85, 0xDA,
- 0x06, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x85, 0xDA,
- 0x06, 0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x85, 0xDA,
- 0x06, 0xCE, 0xB1, 0xCC, 0x81, 0xCD, 0x85, 0xDA,
- 0x06, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x85, 0xDA,
- 0x06, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x85, 0xDA,
- 0x06, 0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x85, 0xDA,
- 0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x80, 0xCA,
- // Bytes 3dc0 - 3dff
- 0x06, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x81, 0xCA,
- 0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x80, 0xCA,
- 0x06, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x81, 0xCA,
- 0x06, 0xCE, 0xB7, 0xCC, 0x80, 0xCD, 0x85, 0xDA,
- 0x06, 0xCE, 0xB7, 0xCC, 0x81, 0xCD, 0x85, 0xDA,
- 0x06, 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x85, 0xDA,
- 0x06, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x85, 0xDA,
- 0x06, 0xCE, 0xB7, 0xCD, 0x82, 0xCD, 0x85, 0xDA,
- // Bytes 3e00 - 3e3f
- 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x80, 0xCA,
- 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCC, 0x81, 0xCA,
- 0x06, 0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x82, 0xCA,
- 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x80, 0xCA,
- 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x81, 0xCA,
- 0x06, 0xCE, 0xB9, 0xCC, 0x93, 0xCD, 0x82, 0xCA,
- 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x80, 0xCA,
- 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x81, 0xCA,
- // Bytes 3e40 - 3e7f
- 0x06, 0xCE, 0xB9, 0xCC, 0x94, 0xCD, 0x82, 0xCA,
- 0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x80, 0xCA,
- 0x06, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x81, 0xCA,
- 0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x80, 0xCA,
- 0x06, 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x81, 0xCA,
- 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x80, 0xCA,
- 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xCA,
- 0x06, 0xCF, 0x85, 0xCC, 0x88, 0xCD, 0x82, 0xCA,
- // Bytes 3e80 - 3ebf
- 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x80, 0xCA,
- 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x81, 0xCA,
- 0x06, 0xCF, 0x85, 0xCC, 0x93, 0xCD, 0x82, 0xCA,
- 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x80, 0xCA,
- 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x81, 0xCA,
- 0x06, 0xCF, 0x85, 0xCC, 0x94, 0xCD, 0x82, 0xCA,
- 0x06, 0xCF, 0x89, 0xCC, 0x80, 0xCD, 0x85, 0xDA,
- 0x06, 0xCF, 0x89, 0xCC, 0x81, 0xCD, 0x85, 0xDA,
- // Bytes 3ec0 - 3eff
- 0x06, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x85, 0xDA,
- 0x06, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x85, 0xDA,
- 0x06, 0xCF, 0x89, 0xCD, 0x82, 0xCD, 0x85, 0xDA,
- 0x06, 0xE0, 0xA4, 0xA8, 0xE0, 0xA4, 0xBC, 0x09,
- 0x06, 0xE0, 0xA4, 0xB0, 0xE0, 0xA4, 0xBC, 0x09,
- 0x06, 0xE0, 0xA4, 0xB3, 0xE0, 0xA4, 0xBC, 0x09,
- 0x06, 0xE0, 0xB1, 0x86, 0xE0, 0xB1, 0x96, 0x85,
- 0x06, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8A, 0x11,
- // Bytes 3f00 - 3f3f
- 0x06, 0xE3, 0x81, 0x86, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0x8B, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0x8D, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0x8F, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0x91, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0x93, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0x95, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0x97, 0xE3, 0x82, 0x99, 0x0D,
- // Bytes 3f40 - 3f7f
- 0x06, 0xE3, 0x81, 0x99, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0x9B, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0x9D, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0x9F, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0xA1, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0xA4, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0xA6, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0xA8, 0xE3, 0x82, 0x99, 0x0D,
- // Bytes 3f80 - 3fbf
- 0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x9A, 0x0D,
- 0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x9A, 0x0D,
- 0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0xB5, 0xE3, 0x82, 0x9A, 0x0D,
- 0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0xB8, 0xE3, 0x82, 0x9A, 0x0D,
- // Bytes 3fc0 - 3fff
- 0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x9A, 0x0D,
- 0x06, 0xE3, 0x82, 0x9D, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x82, 0xA6, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99, 0x0D,
- // Bytes 4000 - 403f
- 0x06, 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x82, 0xB5, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x82, 0xB9, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x82, 0xBD, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x83, 0x81, 0xE3, 0x82, 0x99, 0x0D,
- // Bytes 4040 - 407f
- 0x06, 0xE3, 0x83, 0x84, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0x0D,
- 0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0x0D,
- 0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, 0x0D,
- // Bytes 4080 - 40bf
- 0x06, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x9A, 0x0D,
- 0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0x0D,
- 0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0x0D,
- 0x06, 0xE3, 0x83, 0xAF, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x83, 0xB0, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x83, 0xB1, 0xE3, 0x82, 0x99, 0x0D,
- // Bytes 40c0 - 40ff
- 0x06, 0xE3, 0x83, 0xB2, 0xE3, 0x82, 0x99, 0x0D,
- 0x06, 0xE3, 0x83, 0xBD, 0xE3, 0x82, 0x99, 0x0D,
- 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCD,
- 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x93, 0xCC,
- 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC,
- 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE,
- 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB,
- 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCD,
- // Bytes 4100 - 413f
- 0x85, 0xDB, 0x08, 0xCE, 0x91, 0xCC, 0x94, 0xCD,
- 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC,
- 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE,
- 0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB,
- 0x08, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCD,
- 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC, 0x94, 0xCC,
- 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0x97, 0xCC,
- 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE,
- // Bytes 4140 - 417f
- 0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB,
- 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCD,
- 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x93, 0xCC,
- 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC,
- 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE,
- 0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB,
- 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCD,
- 0x85, 0xDB, 0x08, 0xCE, 0xA9, 0xCC, 0x94, 0xCD,
- // Bytes 4180 - 41bf
- 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC,
- 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE,
- 0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB,
- 0x08, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCD,
- 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC, 0x94, 0xCC,
- 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB1, 0xCC,
- 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE,
- 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB,
- // Bytes 41c0 - 41ff
- 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCD,
- 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x93, 0xCC,
- 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC,
- 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCE,
- 0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xDB,
- 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCD,
- 0x85, 0xDB, 0x08, 0xCE, 0xB7, 0xCC, 0x94, 0xCD,
- 0x82, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC,
- // Bytes 4200 - 423f
- 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF,
- 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xDB,
- 0x08, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCD,
- 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC, 0x94, 0xCC,
- 0x80, 0xCD, 0x85, 0xDB, 0x08, 0xCF, 0x89, 0xCC,
- 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xDB, 0x08, 0xCF,
- 0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xDB,
- 0x08, 0xF0, 0x91, 0x82, 0x99, 0xF0, 0x91, 0x82,
- // Bytes 4240 - 427f
- 0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82, 0x9B, 0xF0,
- 0x91, 0x82, 0xBA, 0x09, 0x08, 0xF0, 0x91, 0x82,
- 0xA5, 0xF0, 0x91, 0x82, 0xBA, 0x09, 0x42, 0xC2,
- 0xB4, 0x01, 0x43, 0x20, 0xCC, 0x81, 0xC9, 0x43,
- 0x20, 0xCC, 0x83, 0xC9, 0x43, 0x20, 0xCC, 0x84,
- 0xC9, 0x43, 0x20, 0xCC, 0x85, 0xC9, 0x43, 0x20,
- 0xCC, 0x86, 0xC9, 0x43, 0x20, 0xCC, 0x87, 0xC9,
- 0x43, 0x20, 0xCC, 0x88, 0xC9, 0x43, 0x20, 0xCC,
- // Bytes 4280 - 42bf
- 0x8A, 0xC9, 0x43, 0x20, 0xCC, 0x8B, 0xC9, 0x43,
- 0x20, 0xCC, 0x93, 0xC9, 0x43, 0x20, 0xCC, 0x94,
- 0xC9, 0x43, 0x20, 0xCC, 0xA7, 0xA5, 0x43, 0x20,
- 0xCC, 0xA8, 0xA5, 0x43, 0x20, 0xCC, 0xB3, 0xB5,
- 0x43, 0x20, 0xCD, 0x82, 0xC9, 0x43, 0x20, 0xCD,
- 0x85, 0xD9, 0x43, 0x20, 0xD9, 0x8B, 0x59, 0x43,
- 0x20, 0xD9, 0x8C, 0x5D, 0x43, 0x20, 0xD9, 0x8D,
- 0x61, 0x43, 0x20, 0xD9, 0x8E, 0x65, 0x43, 0x20,
- // Bytes 42c0 - 42ff
- 0xD9, 0x8F, 0x69, 0x43, 0x20, 0xD9, 0x90, 0x6D,
- 0x43, 0x20, 0xD9, 0x91, 0x71, 0x43, 0x20, 0xD9,
- 0x92, 0x75, 0x43, 0x41, 0xCC, 0x8A, 0xC9, 0x43,
- 0x73, 0xCC, 0x87, 0xC9, 0x44, 0x20, 0xE3, 0x82,
- 0x99, 0x0D, 0x44, 0x20, 0xE3, 0x82, 0x9A, 0x0D,
- 0x44, 0xC2, 0xA8, 0xCC, 0x81, 0xCA, 0x44, 0xCE,
- 0x91, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0x95, 0xCC,
- 0x81, 0xC9, 0x44, 0xCE, 0x97, 0xCC, 0x81, 0xC9,
- // Bytes 4300 - 433f
- 0x44, 0xCE, 0x99, 0xCC, 0x81, 0xC9, 0x44, 0xCE,
- 0x9F, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC,
- 0x81, 0xC9, 0x44, 0xCE, 0xA5, 0xCC, 0x88, 0xC9,
- 0x44, 0xCE, 0xA9, 0xCC, 0x81, 0xC9, 0x44, 0xCE,
- 0xB1, 0xCC, 0x81, 0xC9, 0x44, 0xCE, 0xB5, 0xCC,
- 0x81, 0xC9, 0x44, 0xCE, 0xB7, 0xCC, 0x81, 0xC9,
- 0x44, 0xCE, 0xB9, 0xCC, 0x81, 0xC9, 0x44, 0xCE,
- 0xBF, 0xCC, 0x81, 0xC9, 0x44, 0xCF, 0x85, 0xCC,
- // Bytes 4340 - 437f
- 0x81, 0xC9, 0x44, 0xCF, 0x89, 0xCC, 0x81, 0xC9,
- 0x44, 0xD7, 0x90, 0xD6, 0xB7, 0x31, 0x44, 0xD7,
- 0x90, 0xD6, 0xB8, 0x35, 0x44, 0xD7, 0x90, 0xD6,
- 0xBC, 0x41, 0x44, 0xD7, 0x91, 0xD6, 0xBC, 0x41,
- 0x44, 0xD7, 0x91, 0xD6, 0xBF, 0x49, 0x44, 0xD7,
- 0x92, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x93, 0xD6,
- 0xBC, 0x41, 0x44, 0xD7, 0x94, 0xD6, 0xBC, 0x41,
- 0x44, 0xD7, 0x95, 0xD6, 0xB9, 0x39, 0x44, 0xD7,
- // Bytes 4380 - 43bf
- 0x95, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x96, 0xD6,
- 0xBC, 0x41, 0x44, 0xD7, 0x98, 0xD6, 0xBC, 0x41,
- 0x44, 0xD7, 0x99, 0xD6, 0xB4, 0x25, 0x44, 0xD7,
- 0x99, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9A, 0xD6,
- 0xBC, 0x41, 0x44, 0xD7, 0x9B, 0xD6, 0xBC, 0x41,
- 0x44, 0xD7, 0x9B, 0xD6, 0xBF, 0x49, 0x44, 0xD7,
- 0x9C, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0x9E, 0xD6,
- 0xBC, 0x41, 0x44, 0xD7, 0xA0, 0xD6, 0xBC, 0x41,
- // Bytes 43c0 - 43ff
- 0x44, 0xD7, 0xA1, 0xD6, 0xBC, 0x41, 0x44, 0xD7,
- 0xA3, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6,
- 0xBC, 0x41, 0x44, 0xD7, 0xA4, 0xD6, 0xBF, 0x49,
- 0x44, 0xD7, 0xA6, 0xD6, 0xBC, 0x41, 0x44, 0xD7,
- 0xA7, 0xD6, 0xBC, 0x41, 0x44, 0xD7, 0xA8, 0xD6,
- 0xBC, 0x41, 0x44, 0xD7, 0xA9, 0xD6, 0xBC, 0x41,
- 0x44, 0xD7, 0xA9, 0xD7, 0x81, 0x4D, 0x44, 0xD7,
- 0xA9, 0xD7, 0x82, 0x51, 0x44, 0xD7, 0xAA, 0xD6,
- // Bytes 4400 - 443f
- 0xBC, 0x41, 0x44, 0xD7, 0xB2, 0xD6, 0xB7, 0x31,
- 0x44, 0xD8, 0xA7, 0xD9, 0x8B, 0x59, 0x44, 0xD8,
- 0xA7, 0xD9, 0x93, 0xC9, 0x44, 0xD8, 0xA7, 0xD9,
- 0x94, 0xC9, 0x44, 0xD8, 0xA7, 0xD9, 0x95, 0xB5,
- 0x44, 0xD8, 0xB0, 0xD9, 0xB0, 0x79, 0x44, 0xD8,
- 0xB1, 0xD9, 0xB0, 0x79, 0x44, 0xD9, 0x80, 0xD9,
- 0x8B, 0x59, 0x44, 0xD9, 0x80, 0xD9, 0x8E, 0x65,
- 0x44, 0xD9, 0x80, 0xD9, 0x8F, 0x69, 0x44, 0xD9,
- // Bytes 4440 - 447f
- 0x80, 0xD9, 0x90, 0x6D, 0x44, 0xD9, 0x80, 0xD9,
- 0x91, 0x71, 0x44, 0xD9, 0x80, 0xD9, 0x92, 0x75,
- 0x44, 0xD9, 0x87, 0xD9, 0xB0, 0x79, 0x44, 0xD9,
- 0x88, 0xD9, 0x94, 0xC9, 0x44, 0xD9, 0x89, 0xD9,
- 0xB0, 0x79, 0x44, 0xD9, 0x8A, 0xD9, 0x94, 0xC9,
- 0x44, 0xDB, 0x92, 0xD9, 0x94, 0xC9, 0x44, 0xDB,
- 0x95, 0xD9, 0x94, 0xC9, 0x45, 0x20, 0xCC, 0x88,
- 0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCC,
- // Bytes 4480 - 44bf
- 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x88, 0xCD, 0x82,
- 0xCA, 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x80, 0xCA,
- 0x45, 0x20, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x45,
- 0x20, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x45, 0x20,
- 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x45, 0x20, 0xCC,
- 0x94, 0xCC, 0x81, 0xCA, 0x45, 0x20, 0xCC, 0x94,
- 0xCD, 0x82, 0xCA, 0x45, 0x20, 0xD9, 0x8C, 0xD9,
- 0x91, 0x72, 0x45, 0x20, 0xD9, 0x8D, 0xD9, 0x91,
- // Bytes 44c0 - 44ff
- 0x72, 0x45, 0x20, 0xD9, 0x8E, 0xD9, 0x91, 0x72,
- 0x45, 0x20, 0xD9, 0x8F, 0xD9, 0x91, 0x72, 0x45,
- 0x20, 0xD9, 0x90, 0xD9, 0x91, 0x72, 0x45, 0x20,
- 0xD9, 0x91, 0xD9, 0xB0, 0x7A, 0x45, 0xE2, 0xAB,
- 0x9D, 0xCC, 0xB8, 0x05, 0x46, 0xCE, 0xB9, 0xCC,
- 0x88, 0xCC, 0x81, 0xCA, 0x46, 0xCF, 0x85, 0xCC,
- 0x88, 0xCC, 0x81, 0xCA, 0x46, 0xD7, 0xA9, 0xD6,
- 0xBC, 0xD7, 0x81, 0x4E, 0x46, 0xD7, 0xA9, 0xD6,
- // Bytes 4500 - 453f
- 0xBC, 0xD7, 0x82, 0x52, 0x46, 0xD9, 0x80, 0xD9,
- 0x8E, 0xD9, 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9,
- 0x8F, 0xD9, 0x91, 0x72, 0x46, 0xD9, 0x80, 0xD9,
- 0x90, 0xD9, 0x91, 0x72, 0x46, 0xE0, 0xA4, 0x95,
- 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x96,
- 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x97,
- 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0x9C,
- 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA1,
- // Bytes 4540 - 457f
- 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xA2,
- 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAB,
- 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA4, 0xAF,
- 0xE0, 0xA4, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA1,
- 0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xA2,
- 0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA6, 0xAF,
- 0xE0, 0xA6, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x96,
- 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x97,
- // Bytes 4580 - 45bf
- 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0x9C,
- 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xAB,
- 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB2,
- 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xA8, 0xB8,
- 0xE0, 0xA8, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA1,
- 0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xAC, 0xA2,
- 0xE0, 0xAC, 0xBC, 0x09, 0x46, 0xE0, 0xBE, 0xB2,
- 0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE0, 0xBE, 0xB3,
- // Bytes 45c0 - 45ff
- 0xE0, 0xBE, 0x80, 0x9D, 0x46, 0xE3, 0x83, 0x86,
- 0xE3, 0x82, 0x99, 0x0D, 0x48, 0xF0, 0x9D, 0x85,
- 0x97, 0xF0, 0x9D, 0x85, 0xA5, 0xAD, 0x48, 0xF0,
- 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xAD,
- 0x48, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85,
- 0xA5, 0xAD, 0x48, 0xF0, 0x9D, 0x86, 0xBA, 0xF0,
- 0x9D, 0x85, 0xA5, 0xAD, 0x49, 0xE0, 0xBE, 0xB2,
- 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x49,
- // Bytes 4600 - 463f
- 0xE0, 0xBE, 0xB3, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE,
- 0x80, 0x9E, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0,
- 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE,
- 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85,
- 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0,
- 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0,
- 0x9D, 0x85, 0xB0, 0xAE, 0x4C, 0xF0, 0x9D, 0x85,
- 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85,
- // Bytes 4640 - 467f
- 0xB1, 0xAE, 0x4C, 0xF0, 0x9D, 0x85, 0x98, 0xF0,
- 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB2, 0xAE,
- 0x4C, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85,
- 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xAE, 0x4C, 0xF0,
- 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5, 0xF0,
- 0x9D, 0x85, 0xAF, 0xAE, 0x4C, 0xF0, 0x9D, 0x86,
- 0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85,
- 0xAE, 0xAE, 0x4C, 0xF0, 0x9D, 0x86, 0xBA, 0xF0,
- // Bytes 4680 - 46bf
- 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0xAE,
- 0x83, 0x41, 0xCC, 0x82, 0xC9, 0x83, 0x41, 0xCC,
- 0x86, 0xC9, 0x83, 0x41, 0xCC, 0x87, 0xC9, 0x83,
- 0x41, 0xCC, 0x88, 0xC9, 0x83, 0x41, 0xCC, 0x8A,
- 0xC9, 0x83, 0x41, 0xCC, 0xA3, 0xB5, 0x83, 0x43,
- 0xCC, 0xA7, 0xA5, 0x83, 0x45, 0xCC, 0x82, 0xC9,
- 0x83, 0x45, 0xCC, 0x84, 0xC9, 0x83, 0x45, 0xCC,
- 0xA3, 0xB5, 0x83, 0x45, 0xCC, 0xA7, 0xA5, 0x83,
- // Bytes 46c0 - 46ff
- 0x49, 0xCC, 0x88, 0xC9, 0x83, 0x4C, 0xCC, 0xA3,
- 0xB5, 0x83, 0x4F, 0xCC, 0x82, 0xC9, 0x83, 0x4F,
- 0xCC, 0x83, 0xC9, 0x83, 0x4F, 0xCC, 0x84, 0xC9,
- 0x83, 0x4F, 0xCC, 0x87, 0xC9, 0x83, 0x4F, 0xCC,
- 0x88, 0xC9, 0x83, 0x4F, 0xCC, 0x9B, 0xAD, 0x83,
- 0x4F, 0xCC, 0xA3, 0xB5, 0x83, 0x4F, 0xCC, 0xA8,
- 0xA5, 0x83, 0x52, 0xCC, 0xA3, 0xB5, 0x83, 0x53,
- 0xCC, 0x81, 0xC9, 0x83, 0x53, 0xCC, 0x8C, 0xC9,
- // Bytes 4700 - 473f
- 0x83, 0x53, 0xCC, 0xA3, 0xB5, 0x83, 0x55, 0xCC,
- 0x83, 0xC9, 0x83, 0x55, 0xCC, 0x84, 0xC9, 0x83,
- 0x55, 0xCC, 0x88, 0xC9, 0x83, 0x55, 0xCC, 0x9B,
- 0xAD, 0x83, 0x61, 0xCC, 0x82, 0xC9, 0x83, 0x61,
- 0xCC, 0x86, 0xC9, 0x83, 0x61, 0xCC, 0x87, 0xC9,
- 0x83, 0x61, 0xCC, 0x88, 0xC9, 0x83, 0x61, 0xCC,
- 0x8A, 0xC9, 0x83, 0x61, 0xCC, 0xA3, 0xB5, 0x83,
- 0x63, 0xCC, 0xA7, 0xA5, 0x83, 0x65, 0xCC, 0x82,
- // Bytes 4740 - 477f
- 0xC9, 0x83, 0x65, 0xCC, 0x84, 0xC9, 0x83, 0x65,
- 0xCC, 0xA3, 0xB5, 0x83, 0x65, 0xCC, 0xA7, 0xA5,
- 0x83, 0x69, 0xCC, 0x88, 0xC9, 0x83, 0x6C, 0xCC,
- 0xA3, 0xB5, 0x83, 0x6F, 0xCC, 0x82, 0xC9, 0x83,
- 0x6F, 0xCC, 0x83, 0xC9, 0x83, 0x6F, 0xCC, 0x84,
- 0xC9, 0x83, 0x6F, 0xCC, 0x87, 0xC9, 0x83, 0x6F,
- 0xCC, 0x88, 0xC9, 0x83, 0x6F, 0xCC, 0x9B, 0xAD,
- 0x83, 0x6F, 0xCC, 0xA3, 0xB5, 0x83, 0x6F, 0xCC,
- // Bytes 4780 - 47bf
- 0xA8, 0xA5, 0x83, 0x72, 0xCC, 0xA3, 0xB5, 0x83,
- 0x73, 0xCC, 0x81, 0xC9, 0x83, 0x73, 0xCC, 0x8C,
- 0xC9, 0x83, 0x73, 0xCC, 0xA3, 0xB5, 0x83, 0x75,
- 0xCC, 0x83, 0xC9, 0x83, 0x75, 0xCC, 0x84, 0xC9,
- 0x83, 0x75, 0xCC, 0x88, 0xC9, 0x83, 0x75, 0xCC,
- 0x9B, 0xAD, 0x84, 0xCE, 0x91, 0xCC, 0x93, 0xC9,
- 0x84, 0xCE, 0x91, 0xCC, 0x94, 0xC9, 0x84, 0xCE,
- 0x95, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x95, 0xCC,
- // Bytes 47c0 - 47ff
- 0x94, 0xC9, 0x84, 0xCE, 0x97, 0xCC, 0x93, 0xC9,
- 0x84, 0xCE, 0x97, 0xCC, 0x94, 0xC9, 0x84, 0xCE,
- 0x99, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0x99, 0xCC,
- 0x94, 0xC9, 0x84, 0xCE, 0x9F, 0xCC, 0x93, 0xC9,
- 0x84, 0xCE, 0x9F, 0xCC, 0x94, 0xC9, 0x84, 0xCE,
- 0xA5, 0xCC, 0x94, 0xC9, 0x84, 0xCE, 0xA9, 0xCC,
- 0x93, 0xC9, 0x84, 0xCE, 0xA9, 0xCC, 0x94, 0xC9,
- 0x84, 0xCE, 0xB1, 0xCC, 0x80, 0xC9, 0x84, 0xCE,
- // Bytes 4800 - 483f
- 0xB1, 0xCC, 0x81, 0xC9, 0x84, 0xCE, 0xB1, 0xCC,
- 0x93, 0xC9, 0x84, 0xCE, 0xB1, 0xCC, 0x94, 0xC9,
- 0x84, 0xCE, 0xB1, 0xCD, 0x82, 0xC9, 0x84, 0xCE,
- 0xB5, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB5, 0xCC,
- 0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCC, 0x80, 0xC9,
- 0x84, 0xCE, 0xB7, 0xCC, 0x81, 0xC9, 0x84, 0xCE,
- 0xB7, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB7, 0xCC,
- 0x94, 0xC9, 0x84, 0xCE, 0xB7, 0xCD, 0x82, 0xC9,
- // Bytes 4840 - 487f
- 0x84, 0xCE, 0xB9, 0xCC, 0x88, 0xC9, 0x84, 0xCE,
- 0xB9, 0xCC, 0x93, 0xC9, 0x84, 0xCE, 0xB9, 0xCC,
- 0x94, 0xC9, 0x84, 0xCE, 0xBF, 0xCC, 0x93, 0xC9,
- 0x84, 0xCE, 0xBF, 0xCC, 0x94, 0xC9, 0x84, 0xCF,
- 0x85, 0xCC, 0x88, 0xC9, 0x84, 0xCF, 0x85, 0xCC,
- 0x93, 0xC9, 0x84, 0xCF, 0x85, 0xCC, 0x94, 0xC9,
- 0x84, 0xCF, 0x89, 0xCC, 0x80, 0xC9, 0x84, 0xCF,
- 0x89, 0xCC, 0x81, 0xC9, 0x84, 0xCF, 0x89, 0xCC,
- // Bytes 4880 - 48bf
- 0x93, 0xC9, 0x84, 0xCF, 0x89, 0xCC, 0x94, 0xC9,
- 0x84, 0xCF, 0x89, 0xCD, 0x82, 0xC9, 0x86, 0xCE,
- 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,
- 0x91, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,
- 0x91, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,
- 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,
- 0x91, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,
- 0x91, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,
- // Bytes 48c0 - 48ff
- 0x97, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,
- 0x97, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,
- 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,
- 0x97, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,
- 0x97, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,
- 0x97, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,
- 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,
- 0xA9, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,
- // Bytes 4900 - 493f
- 0xA9, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,
- 0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,
- 0xA9, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,
- 0xA9, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,
- 0xB1, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,
- 0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,
- 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,
- 0xB1, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,
- // Bytes 4940 - 497f
- 0xB1, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,
- 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCE,
- 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCE,
- 0xB7, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCE,
- 0xB7, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCE,
- 0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCE,
- 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCE,
- 0xB7, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x86, 0xCF,
- // Bytes 4980 - 49bf
- 0x89, 0xCC, 0x93, 0xCC, 0x80, 0xCA, 0x86, 0xCF,
- 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCA, 0x86, 0xCF,
- 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCA, 0x86, 0xCF,
- 0x89, 0xCC, 0x94, 0xCC, 0x80, 0xCA, 0x86, 0xCF,
- 0x89, 0xCC, 0x94, 0xCC, 0x81, 0xCA, 0x86, 0xCF,
- 0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCA, 0x42, 0xCC,
- 0x80, 0xC9, 0x32, 0x42, 0xCC, 0x81, 0xC9, 0x32,
- 0x42, 0xCC, 0x93, 0xC9, 0x32, 0x43, 0xE1, 0x85,
- // Bytes 49c0 - 49ff
- 0xA1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA2, 0x01,
- 0x00, 0x43, 0xE1, 0x85, 0xA3, 0x01, 0x00, 0x43,
- 0xE1, 0x85, 0xA4, 0x01, 0x00, 0x43, 0xE1, 0x85,
- 0xA5, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xA6, 0x01,
- 0x00, 0x43, 0xE1, 0x85, 0xA7, 0x01, 0x00, 0x43,
- 0xE1, 0x85, 0xA8, 0x01, 0x00, 0x43, 0xE1, 0x85,
- 0xA9, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAA, 0x01,
- 0x00, 0x43, 0xE1, 0x85, 0xAB, 0x01, 0x00, 0x43,
- // Bytes 4a00 - 4a3f
- 0xE1, 0x85, 0xAC, 0x01, 0x00, 0x43, 0xE1, 0x85,
- 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xAE, 0x01,
- 0x00, 0x43, 0xE1, 0x85, 0xAF, 0x01, 0x00, 0x43,
- 0xE1, 0x85, 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x85,
- 0xB1, 0x01, 0x00, 0x43, 0xE1, 0x85, 0xB2, 0x01,
- 0x00, 0x43, 0xE1, 0x85, 0xB3, 0x01, 0x00, 0x43,
- 0xE1, 0x85, 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x85,
- 0xB5, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xAA, 0x01,
- // Bytes 4a40 - 4a7f
- 0x00, 0x43, 0xE1, 0x86, 0xAC, 0x01, 0x00, 0x43,
- 0xE1, 0x86, 0xAD, 0x01, 0x00, 0x43, 0xE1, 0x86,
- 0xB0, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB1, 0x01,
- 0x00, 0x43, 0xE1, 0x86, 0xB2, 0x01, 0x00, 0x43,
- 0xE1, 0x86, 0xB3, 0x01, 0x00, 0x43, 0xE1, 0x86,
- 0xB4, 0x01, 0x00, 0x43, 0xE1, 0x86, 0xB5, 0x01,
- 0x00, 0x44, 0xCC, 0x88, 0xCC, 0x81, 0xCA, 0x32,
- 0x43, 0xE3, 0x82, 0x99, 0x0D, 0x03, 0x43, 0xE3,
- // Bytes 4a80 - 4abf
- 0x82, 0x9A, 0x0D, 0x03, 0x46, 0xE0, 0xBD, 0xB1,
- 0xE0, 0xBD, 0xB2, 0x9E, 0x26, 0x46, 0xE0, 0xBD,
- 0xB1, 0xE0, 0xBD, 0xB4, 0xA2, 0x26, 0x46, 0xE0,
- 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0x9E, 0x26, 0x00,
- 0x01,
-}
-
-// lookup returns the trie value for the first UTF-8 encoding in s and
-// the width in bytes of this encoding. The size will be 0 if s does not
-// hold enough bytes to complete the encoding. len(s) must be greater than 0.
-func (t *nfcTrie) lookup(s []byte) (v uint16, sz int) {
- c0 := s[0]
- switch {
- case c0 < 0x80: // is ASCII
- return nfcValues[c0], 1
- case c0 < 0xC2:
- return 0, 1 // Illegal UTF-8: not a starter, not ASCII.
- case c0 < 0xE0: // 2-byte UTF-8
- if len(s) < 2 {
- return 0, 0
- }
- i := nfcIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c1), 2
- case c0 < 0xF0: // 3-byte UTF-8
- if len(s) < 3 {
- return 0, 0
- }
- i := nfcIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = nfcIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c2), 3
- case c0 < 0xF8: // 4-byte UTF-8
- if len(s) < 4 {
- return 0, 0
- }
- i := nfcIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = nfcIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- o = uint32(i)<<6 + uint32(c2)
- i = nfcIndex[o]
- c3 := s[3]
- if c3 < 0x80 || 0xC0 <= c3 {
- return 0, 3 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c3), 4
- }
- // Illegal rune
- return 0, 1
-}
-
-// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.
-// s must start with a full and valid UTF-8 encoded rune.
-func (t *nfcTrie) lookupUnsafe(s []byte) uint16 {
- c0 := s[0]
- if c0 < 0x80 { // is ASCII
- return nfcValues[c0]
- }
- i := nfcIndex[c0]
- if c0 < 0xE0 { // 2-byte UTF-8
- return t.lookupValue(uint32(i), s[1])
- }
- i = nfcIndex[uint32(i)<<6+uint32(s[1])]
- if c0 < 0xF0 { // 3-byte UTF-8
- return t.lookupValue(uint32(i), s[2])
- }
- i = nfcIndex[uint32(i)<<6+uint32(s[2])]
- if c0 < 0xF8 { // 4-byte UTF-8
- return t.lookupValue(uint32(i), s[3])
- }
- return 0
-}
-
-// lookupString returns the trie value for the first UTF-8 encoding in s and
-// the width in bytes of this encoding. The size will be 0 if s does not
-// hold enough bytes to complete the encoding. len(s) must be greater than 0.
-func (t *nfcTrie) lookupString(s string) (v uint16, sz int) {
- c0 := s[0]
- switch {
- case c0 < 0x80: // is ASCII
- return nfcValues[c0], 1
- case c0 < 0xC2:
- return 0, 1 // Illegal UTF-8: not a starter, not ASCII.
- case c0 < 0xE0: // 2-byte UTF-8
- if len(s) < 2 {
- return 0, 0
- }
- i := nfcIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c1), 2
- case c0 < 0xF0: // 3-byte UTF-8
- if len(s) < 3 {
- return 0, 0
- }
- i := nfcIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = nfcIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c2), 3
- case c0 < 0xF8: // 4-byte UTF-8
- if len(s) < 4 {
- return 0, 0
- }
- i := nfcIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = nfcIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- o = uint32(i)<<6 + uint32(c2)
- i = nfcIndex[o]
- c3 := s[3]
- if c3 < 0x80 || 0xC0 <= c3 {
- return 0, 3 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c3), 4
- }
- // Illegal rune
- return 0, 1
-}
-
-// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.
-// s must start with a full and valid UTF-8 encoded rune.
-func (t *nfcTrie) lookupStringUnsafe(s string) uint16 {
- c0 := s[0]
- if c0 < 0x80 { // is ASCII
- return nfcValues[c0]
- }
- i := nfcIndex[c0]
- if c0 < 0xE0 { // 2-byte UTF-8
- return t.lookupValue(uint32(i), s[1])
- }
- i = nfcIndex[uint32(i)<<6+uint32(s[1])]
- if c0 < 0xF0 { // 3-byte UTF-8
- return t.lookupValue(uint32(i), s[2])
- }
- i = nfcIndex[uint32(i)<<6+uint32(s[2])]
- if c0 < 0xF8 { // 4-byte UTF-8
- return t.lookupValue(uint32(i), s[3])
- }
- return 0
-}
-
-// nfcTrie. Total size: 10332 bytes (10.09 KiB). Checksum: 51cc525b297fc970.
-type nfcTrie struct{}
-
-func newNfcTrie(i int) *nfcTrie {
- return &nfcTrie{}
-}
-
-// lookupValue determines the type of block n and looks up the value for b.
-func (t *nfcTrie) lookupValue(n uint32, b byte) uint16 {
- switch {
- case n < 44:
- return uint16(nfcValues[n<<6+uint32(b)])
- default:
- n -= 44
- return uint16(nfcSparse.lookup(n, b))
- }
-}
-
-// nfcValues: 46 blocks, 2944 entries, 5888 bytes
-// The third block is the zero block.
-var nfcValues = [2944]uint16{
- // Block 0x0, offset 0x0
- 0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000,
- // Block 0x1, offset 0x40
- 0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000,
- 0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000,
- 0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000,
- 0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000,
- 0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000,
- 0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000,
- 0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000,
- 0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000,
- 0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000,
- 0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000,
- // Block 0x2, offset 0x80
- // Block 0x3, offset 0xc0
- 0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c,
- 0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb,
- 0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104,
- 0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd,
- 0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235,
- 0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285,
- 0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3,
- 0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750,
- 0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f,
- 0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3,
- 0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569,
- // Block 0x4, offset 0x100
- 0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 0x104: 0x2f9c, 0x105: 0x32a8,
- 0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6,
- 0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5,
- 0x112: 0x46b0, 0x113: 0x4741, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302,
- 0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339,
- 0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352,
- 0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e,
- 0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6,
- 0x130: 0x308c, 0x134: 0x30b4, 0x135: 0x33c0,
- 0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc,
- 0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8,
- // Block 0x5, offset 0x140
- 0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118,
- 0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f,
- 0x14c: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c,
- 0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483,
- 0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d,
- 0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba,
- 0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796,
- 0x16a: 0x470a, 0x16b: 0x479b, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2,
- 0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528,
- 0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267,
- 0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0xa000,
- // Block 0x6, offset 0x180
- 0x184: 0x8100, 0x185: 0x8100,
- 0x186: 0x8100,
- 0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140,
- 0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8,
- 0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50,
- 0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5,
- 0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf,
- 0x1aa: 0x46ec, 0x1ab: 0x477d, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd,
- 0x1b0: 0x33c5, 0x1b4: 0x3028, 0x1b5: 0x3334,
- 0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46,
- 0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb,
- // Block 0x7, offset 0x1c0
- 0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316,
- 0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac,
- 0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479,
- 0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6,
- 0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5,
- 0x1de: 0x305a, 0x1df: 0x3366,
- 0x1e6: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b,
- 0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769,
- 0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f,
- // Block 0x8, offset 0x200
- 0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132,
- 0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932,
- 0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932,
- 0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d,
- 0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d,
- 0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d,
- 0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d,
- 0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d,
- 0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101,
- 0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d,
- 0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132,
- // Block 0x9, offset 0x240
- 0x240: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 0x245: 0x9936,
- 0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132,
- 0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132,
- 0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132,
- 0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135,
- 0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132,
- 0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132,
- 0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132,
- 0x274: 0x0170,
- 0x27a: 0x8100,
- 0x27e: 0x0037,
- // Block 0xa, offset 0x280
- 0x284: 0x8100, 0x285: 0x35a1,
- 0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625,
- 0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000,
- 0x295: 0xa000, 0x297: 0xa000,
- 0x299: 0xa000,
- 0x29f: 0xa000, 0x2a1: 0xa000,
- 0x2a5: 0xa000, 0x2a9: 0xa000,
- 0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 0x2af: 0x36a9,
- 0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000,
- 0x2b7: 0xa000, 0x2b9: 0xa000,
- 0x2bf: 0xa000,
- // Block 0xb, offset 0x2c0
- 0x2c0: 0x3721, 0x2c1: 0x372d, 0x2c3: 0x371b,
- 0x2c6: 0xa000, 0x2c7: 0x3709,
- 0x2cc: 0x375d, 0x2cd: 0x3745, 0x2ce: 0x376f, 0x2d0: 0xa000,
- 0x2d3: 0xa000, 0x2d5: 0xa000, 0x2d6: 0xa000, 0x2d7: 0xa000,
- 0x2d8: 0xa000, 0x2d9: 0x3751, 0x2da: 0xa000,
- 0x2de: 0xa000, 0x2e3: 0xa000,
- 0x2e7: 0xa000,
- 0x2eb: 0xa000, 0x2ed: 0xa000,
- 0x2f0: 0xa000, 0x2f3: 0xa000, 0x2f5: 0xa000,
- 0x2f6: 0xa000, 0x2f7: 0xa000, 0x2f8: 0xa000, 0x2f9: 0x37d5, 0x2fa: 0xa000,
- 0x2fe: 0xa000,
- // Block 0xc, offset 0x300
- 0x301: 0x3733, 0x302: 0x37b7,
- 0x310: 0x370f, 0x311: 0x3793,
- 0x312: 0x3715, 0x313: 0x3799, 0x316: 0x3727, 0x317: 0x37ab,
- 0x318: 0xa000, 0x319: 0xa000, 0x31a: 0x3829, 0x31b: 0x382f, 0x31c: 0x3739, 0x31d: 0x37bd,
- 0x31e: 0x373f, 0x31f: 0x37c3, 0x322: 0x374b, 0x323: 0x37cf,
- 0x324: 0x3757, 0x325: 0x37db, 0x326: 0x3763, 0x327: 0x37e7, 0x328: 0xa000, 0x329: 0xa000,
- 0x32a: 0x3835, 0x32b: 0x383b, 0x32c: 0x378d, 0x32d: 0x3811, 0x32e: 0x3769, 0x32f: 0x37ed,
- 0x330: 0x3775, 0x331: 0x37f9, 0x332: 0x377b, 0x333: 0x37ff, 0x334: 0x3781, 0x335: 0x3805,
- 0x338: 0x3787, 0x339: 0x380b,
- // Block 0xd, offset 0x340
- 0x351: 0x812d,
- 0x352: 0x8132, 0x353: 0x8132, 0x354: 0x8132, 0x355: 0x8132, 0x356: 0x812d, 0x357: 0x8132,
- 0x358: 0x8132, 0x359: 0x8132, 0x35a: 0x812e, 0x35b: 0x812d, 0x35c: 0x8132, 0x35d: 0x8132,
- 0x35e: 0x8132, 0x35f: 0x8132, 0x360: 0x8132, 0x361: 0x8132, 0x362: 0x812d, 0x363: 0x812d,
- 0x364: 0x812d, 0x365: 0x812d, 0x366: 0x812d, 0x367: 0x812d, 0x368: 0x8132, 0x369: 0x8132,
- 0x36a: 0x812d, 0x36b: 0x8132, 0x36c: 0x8132, 0x36d: 0x812e, 0x36e: 0x8131, 0x36f: 0x8132,
- 0x370: 0x8105, 0x371: 0x8106, 0x372: 0x8107, 0x373: 0x8108, 0x374: 0x8109, 0x375: 0x810a,
- 0x376: 0x810b, 0x377: 0x810c, 0x378: 0x810d, 0x379: 0x810e, 0x37a: 0x810e, 0x37b: 0x810f,
- 0x37c: 0x8110, 0x37d: 0x8111, 0x37f: 0x8112,
- // Block 0xe, offset 0x380
- 0x388: 0xa000, 0x38a: 0xa000, 0x38b: 0x8116,
- 0x38c: 0x8117, 0x38d: 0x8118, 0x38e: 0x8119, 0x38f: 0x811a, 0x390: 0x811b, 0x391: 0x811c,
- 0x392: 0x811d, 0x393: 0x9932, 0x394: 0x9932, 0x395: 0x992d, 0x396: 0x812d, 0x397: 0x8132,
- 0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x8132, 0x39b: 0x8132, 0x39c: 0x812d, 0x39d: 0x8132,
- 0x39e: 0x8132, 0x39f: 0x812d,
- 0x3b0: 0x811e,
- // Block 0xf, offset 0x3c0
- 0x3c5: 0xa000,
- 0x3c6: 0x2d26, 0x3c7: 0xa000, 0x3c8: 0x2d2e, 0x3c9: 0xa000, 0x3ca: 0x2d36, 0x3cb: 0xa000,
- 0x3cc: 0x2d3e, 0x3cd: 0xa000, 0x3ce: 0x2d46, 0x3d1: 0xa000,
- 0x3d2: 0x2d4e,
- 0x3f4: 0x8102, 0x3f5: 0x9900,
- 0x3fa: 0xa000, 0x3fb: 0x2d56,
- 0x3fc: 0xa000, 0x3fd: 0x2d5e, 0x3fe: 0xa000, 0x3ff: 0xa000,
- // Block 0x10, offset 0x400
- 0x400: 0x2f97, 0x401: 0x32a3, 0x402: 0x2fa1, 0x403: 0x32ad, 0x404: 0x2fa6, 0x405: 0x32b2,
- 0x406: 0x2fab, 0x407: 0x32b7, 0x408: 0x38cc, 0x409: 0x3a5b, 0x40a: 0x2fc4, 0x40b: 0x32d0,
- 0x40c: 0x2fce, 0x40d: 0x32da, 0x40e: 0x2fdd, 0x40f: 0x32e9, 0x410: 0x2fd3, 0x411: 0x32df,
- 0x412: 0x2fd8, 0x413: 0x32e4, 0x414: 0x38ef, 0x415: 0x3a7e, 0x416: 0x38f6, 0x417: 0x3a85,
- 0x418: 0x3019, 0x419: 0x3325, 0x41a: 0x301e, 0x41b: 0x332a, 0x41c: 0x3904, 0x41d: 0x3a93,
- 0x41e: 0x3023, 0x41f: 0x332f, 0x420: 0x3032, 0x421: 0x333e, 0x422: 0x3050, 0x423: 0x335c,
- 0x424: 0x305f, 0x425: 0x336b, 0x426: 0x3055, 0x427: 0x3361, 0x428: 0x3064, 0x429: 0x3370,
- 0x42a: 0x3069, 0x42b: 0x3375, 0x42c: 0x30af, 0x42d: 0x33bb, 0x42e: 0x390b, 0x42f: 0x3a9a,
- 0x430: 0x30b9, 0x431: 0x33ca, 0x432: 0x30c3, 0x433: 0x33d4, 0x434: 0x30cd, 0x435: 0x33de,
- 0x436: 0x46c4, 0x437: 0x4755, 0x438: 0x3912, 0x439: 0x3aa1, 0x43a: 0x30e6, 0x43b: 0x33f7,
- 0x43c: 0x30e1, 0x43d: 0x33f2, 0x43e: 0x30eb, 0x43f: 0x33fc,
- // Block 0x11, offset 0x440
- 0x440: 0x30f0, 0x441: 0x3401, 0x442: 0x30f5, 0x443: 0x3406, 0x444: 0x3109, 0x445: 0x341a,
- 0x446: 0x3113, 0x447: 0x3424, 0x448: 0x3122, 0x449: 0x3433, 0x44a: 0x311d, 0x44b: 0x342e,
- 0x44c: 0x3935, 0x44d: 0x3ac4, 0x44e: 0x3943, 0x44f: 0x3ad2, 0x450: 0x394a, 0x451: 0x3ad9,
- 0x452: 0x3951, 0x453: 0x3ae0, 0x454: 0x314f, 0x455: 0x3460, 0x456: 0x3154, 0x457: 0x3465,
- 0x458: 0x315e, 0x459: 0x346f, 0x45a: 0x46f1, 0x45b: 0x4782, 0x45c: 0x3997, 0x45d: 0x3b26,
- 0x45e: 0x3177, 0x45f: 0x3488, 0x460: 0x3181, 0x461: 0x3492, 0x462: 0x4700, 0x463: 0x4791,
- 0x464: 0x399e, 0x465: 0x3b2d, 0x466: 0x39a5, 0x467: 0x3b34, 0x468: 0x39ac, 0x469: 0x3b3b,
- 0x46a: 0x3190, 0x46b: 0x34a1, 0x46c: 0x319a, 0x46d: 0x34b0, 0x46e: 0x31ae, 0x46f: 0x34c4,
- 0x470: 0x31a9, 0x471: 0x34bf, 0x472: 0x31ea, 0x473: 0x3500, 0x474: 0x31f9, 0x475: 0x350f,
- 0x476: 0x31f4, 0x477: 0x350a, 0x478: 0x39b3, 0x479: 0x3b42, 0x47a: 0x39ba, 0x47b: 0x3b49,
- 0x47c: 0x31fe, 0x47d: 0x3514, 0x47e: 0x3203, 0x47f: 0x3519,
- // Block 0x12, offset 0x480
- 0x480: 0x3208, 0x481: 0x351e, 0x482: 0x320d, 0x483: 0x3523, 0x484: 0x321c, 0x485: 0x3532,
- 0x486: 0x3217, 0x487: 0x352d, 0x488: 0x3221, 0x489: 0x353c, 0x48a: 0x3226, 0x48b: 0x3541,
- 0x48c: 0x322b, 0x48d: 0x3546, 0x48e: 0x3249, 0x48f: 0x3564, 0x490: 0x3262, 0x491: 0x3582,
- 0x492: 0x3271, 0x493: 0x3591, 0x494: 0x3276, 0x495: 0x3596, 0x496: 0x337a, 0x497: 0x34a6,
- 0x498: 0x3537, 0x499: 0x3573, 0x49b: 0x35d1,
- 0x4a0: 0x46a1, 0x4a1: 0x4732, 0x4a2: 0x2f83, 0x4a3: 0x328f,
- 0x4a4: 0x3878, 0x4a5: 0x3a07, 0x4a6: 0x3871, 0x4a7: 0x3a00, 0x4a8: 0x3886, 0x4a9: 0x3a15,
- 0x4aa: 0x387f, 0x4ab: 0x3a0e, 0x4ac: 0x38be, 0x4ad: 0x3a4d, 0x4ae: 0x3894, 0x4af: 0x3a23,
- 0x4b0: 0x388d, 0x4b1: 0x3a1c, 0x4b2: 0x38a2, 0x4b3: 0x3a31, 0x4b4: 0x389b, 0x4b5: 0x3a2a,
- 0x4b6: 0x38c5, 0x4b7: 0x3a54, 0x4b8: 0x46b5, 0x4b9: 0x4746, 0x4ba: 0x3000, 0x4bb: 0x330c,
- 0x4bc: 0x2fec, 0x4bd: 0x32f8, 0x4be: 0x38da, 0x4bf: 0x3a69,
- // Block 0x13, offset 0x4c0
- 0x4c0: 0x38d3, 0x4c1: 0x3a62, 0x4c2: 0x38e8, 0x4c3: 0x3a77, 0x4c4: 0x38e1, 0x4c5: 0x3a70,
- 0x4c6: 0x38fd, 0x4c7: 0x3a8c, 0x4c8: 0x3091, 0x4c9: 0x339d, 0x4ca: 0x30a5, 0x4cb: 0x33b1,
- 0x4cc: 0x46e7, 0x4cd: 0x4778, 0x4ce: 0x3136, 0x4cf: 0x3447, 0x4d0: 0x3920, 0x4d1: 0x3aaf,
- 0x4d2: 0x3919, 0x4d3: 0x3aa8, 0x4d4: 0x392e, 0x4d5: 0x3abd, 0x4d6: 0x3927, 0x4d7: 0x3ab6,
- 0x4d8: 0x3989, 0x4d9: 0x3b18, 0x4da: 0x396d, 0x4db: 0x3afc, 0x4dc: 0x3966, 0x4dd: 0x3af5,
- 0x4de: 0x397b, 0x4df: 0x3b0a, 0x4e0: 0x3974, 0x4e1: 0x3b03, 0x4e2: 0x3982, 0x4e3: 0x3b11,
- 0x4e4: 0x31e5, 0x4e5: 0x34fb, 0x4e6: 0x31c7, 0x4e7: 0x34dd, 0x4e8: 0x39e4, 0x4e9: 0x3b73,
- 0x4ea: 0x39dd, 0x4eb: 0x3b6c, 0x4ec: 0x39f2, 0x4ed: 0x3b81, 0x4ee: 0x39eb, 0x4ef: 0x3b7a,
- 0x4f0: 0x39f9, 0x4f1: 0x3b88, 0x4f2: 0x3230, 0x4f3: 0x354b, 0x4f4: 0x3258, 0x4f5: 0x3578,
- 0x4f6: 0x3253, 0x4f7: 0x356e, 0x4f8: 0x323f, 0x4f9: 0x355a,
- // Block 0x14, offset 0x500
- 0x500: 0x4804, 0x501: 0x480a, 0x502: 0x491e, 0x503: 0x4936, 0x504: 0x4926, 0x505: 0x493e,
- 0x506: 0x492e, 0x507: 0x4946, 0x508: 0x47aa, 0x509: 0x47b0, 0x50a: 0x488e, 0x50b: 0x48a6,
- 0x50c: 0x4896, 0x50d: 0x48ae, 0x50e: 0x489e, 0x50f: 0x48b6, 0x510: 0x4816, 0x511: 0x481c,
- 0x512: 0x3db8, 0x513: 0x3dc8, 0x514: 0x3dc0, 0x515: 0x3dd0,
- 0x518: 0x47b6, 0x519: 0x47bc, 0x51a: 0x3ce8, 0x51b: 0x3cf8, 0x51c: 0x3cf0, 0x51d: 0x3d00,
- 0x520: 0x482e, 0x521: 0x4834, 0x522: 0x494e, 0x523: 0x4966,
- 0x524: 0x4956, 0x525: 0x496e, 0x526: 0x495e, 0x527: 0x4976, 0x528: 0x47c2, 0x529: 0x47c8,
- 0x52a: 0x48be, 0x52b: 0x48d6, 0x52c: 0x48c6, 0x52d: 0x48de, 0x52e: 0x48ce, 0x52f: 0x48e6,
- 0x530: 0x4846, 0x531: 0x484c, 0x532: 0x3e18, 0x533: 0x3e30, 0x534: 0x3e20, 0x535: 0x3e38,
- 0x536: 0x3e28, 0x537: 0x3e40, 0x538: 0x47ce, 0x539: 0x47d4, 0x53a: 0x3d18, 0x53b: 0x3d30,
- 0x53c: 0x3d20, 0x53d: 0x3d38, 0x53e: 0x3d28, 0x53f: 0x3d40,
- // Block 0x15, offset 0x540
- 0x540: 0x4852, 0x541: 0x4858, 0x542: 0x3e48, 0x543: 0x3e58, 0x544: 0x3e50, 0x545: 0x3e60,
- 0x548: 0x47da, 0x549: 0x47e0, 0x54a: 0x3d48, 0x54b: 0x3d58,
- 0x54c: 0x3d50, 0x54d: 0x3d60, 0x550: 0x4864, 0x551: 0x486a,
- 0x552: 0x3e80, 0x553: 0x3e98, 0x554: 0x3e88, 0x555: 0x3ea0, 0x556: 0x3e90, 0x557: 0x3ea8,
- 0x559: 0x47e6, 0x55b: 0x3d68, 0x55d: 0x3d70,
- 0x55f: 0x3d78, 0x560: 0x487c, 0x561: 0x4882, 0x562: 0x497e, 0x563: 0x4996,
- 0x564: 0x4986, 0x565: 0x499e, 0x566: 0x498e, 0x567: 0x49a6, 0x568: 0x47ec, 0x569: 0x47f2,
- 0x56a: 0x48ee, 0x56b: 0x4906, 0x56c: 0x48f6, 0x56d: 0x490e, 0x56e: 0x48fe, 0x56f: 0x4916,
- 0x570: 0x47f8, 0x571: 0x431e, 0x572: 0x3691, 0x573: 0x4324, 0x574: 0x4822, 0x575: 0x432a,
- 0x576: 0x36a3, 0x577: 0x4330, 0x578: 0x36c1, 0x579: 0x4336, 0x57a: 0x36d9, 0x57b: 0x433c,
- 0x57c: 0x4870, 0x57d: 0x4342,
- // Block 0x16, offset 0x580
- 0x580: 0x3da0, 0x581: 0x3da8, 0x582: 0x4184, 0x583: 0x41a2, 0x584: 0x418e, 0x585: 0x41ac,
- 0x586: 0x4198, 0x587: 0x41b6, 0x588: 0x3cd8, 0x589: 0x3ce0, 0x58a: 0x40d0, 0x58b: 0x40ee,
- 0x58c: 0x40da, 0x58d: 0x40f8, 0x58e: 0x40e4, 0x58f: 0x4102, 0x590: 0x3de8, 0x591: 0x3df0,
- 0x592: 0x41c0, 0x593: 0x41de, 0x594: 0x41ca, 0x595: 0x41e8, 0x596: 0x41d4, 0x597: 0x41f2,
- 0x598: 0x3d08, 0x599: 0x3d10, 0x59a: 0x410c, 0x59b: 0x412a, 0x59c: 0x4116, 0x59d: 0x4134,
- 0x59e: 0x4120, 0x59f: 0x413e, 0x5a0: 0x3ec0, 0x5a1: 0x3ec8, 0x5a2: 0x41fc, 0x5a3: 0x421a,
- 0x5a4: 0x4206, 0x5a5: 0x4224, 0x5a6: 0x4210, 0x5a7: 0x422e, 0x5a8: 0x3d80, 0x5a9: 0x3d88,
- 0x5aa: 0x4148, 0x5ab: 0x4166, 0x5ac: 0x4152, 0x5ad: 0x4170, 0x5ae: 0x415c, 0x5af: 0x417a,
- 0x5b0: 0x3685, 0x5b1: 0x367f, 0x5b2: 0x3d90, 0x5b3: 0x368b, 0x5b4: 0x3d98,
- 0x5b6: 0x4810, 0x5b7: 0x3db0, 0x5b8: 0x35f5, 0x5b9: 0x35ef, 0x5ba: 0x35e3, 0x5bb: 0x42ee,
- 0x5bc: 0x35fb, 0x5bd: 0x8100, 0x5be: 0x01d3, 0x5bf: 0xa100,
- // Block 0x17, offset 0x5c0
- 0x5c0: 0x8100, 0x5c1: 0x35a7, 0x5c2: 0x3dd8, 0x5c3: 0x369d, 0x5c4: 0x3de0,
- 0x5c6: 0x483a, 0x5c7: 0x3df8, 0x5c8: 0x3601, 0x5c9: 0x42f4, 0x5ca: 0x360d, 0x5cb: 0x42fa,
- 0x5cc: 0x3619, 0x5cd: 0x3b8f, 0x5ce: 0x3b96, 0x5cf: 0x3b9d, 0x5d0: 0x36b5, 0x5d1: 0x36af,
- 0x5d2: 0x3e00, 0x5d3: 0x44e4, 0x5d6: 0x36bb, 0x5d7: 0x3e10,
- 0x5d8: 0x3631, 0x5d9: 0x362b, 0x5da: 0x361f, 0x5db: 0x4300, 0x5dd: 0x3ba4,
- 0x5de: 0x3bab, 0x5df: 0x3bb2, 0x5e0: 0x36eb, 0x5e1: 0x36e5, 0x5e2: 0x3e68, 0x5e3: 0x44ec,
- 0x5e4: 0x36cd, 0x5e5: 0x36d3, 0x5e6: 0x36f1, 0x5e7: 0x3e78, 0x5e8: 0x3661, 0x5e9: 0x365b,
- 0x5ea: 0x364f, 0x5eb: 0x430c, 0x5ec: 0x3649, 0x5ed: 0x359b, 0x5ee: 0x42e8, 0x5ef: 0x0081,
- 0x5f2: 0x3eb0, 0x5f3: 0x36f7, 0x5f4: 0x3eb8,
- 0x5f6: 0x4888, 0x5f7: 0x3ed0, 0x5f8: 0x363d, 0x5f9: 0x4306, 0x5fa: 0x366d, 0x5fb: 0x4318,
- 0x5fc: 0x3679, 0x5fd: 0x4256, 0x5fe: 0xa100,
- // Block 0x18, offset 0x600
- 0x601: 0x3c06, 0x603: 0xa000, 0x604: 0x3c0d, 0x605: 0xa000,
- 0x607: 0x3c14, 0x608: 0xa000, 0x609: 0x3c1b,
- 0x60d: 0xa000,
- 0x620: 0x2f65, 0x621: 0xa000, 0x622: 0x3c29,
- 0x624: 0xa000, 0x625: 0xa000,
- 0x62d: 0x3c22, 0x62e: 0x2f60, 0x62f: 0x2f6a,
- 0x630: 0x3c30, 0x631: 0x3c37, 0x632: 0xa000, 0x633: 0xa000, 0x634: 0x3c3e, 0x635: 0x3c45,
- 0x636: 0xa000, 0x637: 0xa000, 0x638: 0x3c4c, 0x639: 0x3c53, 0x63a: 0xa000, 0x63b: 0xa000,
- 0x63c: 0xa000, 0x63d: 0xa000,
- // Block 0x19, offset 0x640
- 0x640: 0x3c5a, 0x641: 0x3c61, 0x642: 0xa000, 0x643: 0xa000, 0x644: 0x3c76, 0x645: 0x3c7d,
- 0x646: 0xa000, 0x647: 0xa000, 0x648: 0x3c84, 0x649: 0x3c8b,
- 0x651: 0xa000,
- 0x652: 0xa000,
- 0x662: 0xa000,
- 0x668: 0xa000, 0x669: 0xa000,
- 0x66b: 0xa000, 0x66c: 0x3ca0, 0x66d: 0x3ca7, 0x66e: 0x3cae, 0x66f: 0x3cb5,
- 0x672: 0xa000, 0x673: 0xa000, 0x674: 0xa000, 0x675: 0xa000,
- // Block 0x1a, offset 0x680
- 0x686: 0xa000, 0x68b: 0xa000,
- 0x68c: 0x3f08, 0x68d: 0xa000, 0x68e: 0x3f10, 0x68f: 0xa000, 0x690: 0x3f18, 0x691: 0xa000,
- 0x692: 0x3f20, 0x693: 0xa000, 0x694: 0x3f28, 0x695: 0xa000, 0x696: 0x3f30, 0x697: 0xa000,
- 0x698: 0x3f38, 0x699: 0xa000, 0x69a: 0x3f40, 0x69b: 0xa000, 0x69c: 0x3f48, 0x69d: 0xa000,
- 0x69e: 0x3f50, 0x69f: 0xa000, 0x6a0: 0x3f58, 0x6a1: 0xa000, 0x6a2: 0x3f60,
- 0x6a4: 0xa000, 0x6a5: 0x3f68, 0x6a6: 0xa000, 0x6a7: 0x3f70, 0x6a8: 0xa000, 0x6a9: 0x3f78,
- 0x6af: 0xa000,
- 0x6b0: 0x3f80, 0x6b1: 0x3f88, 0x6b2: 0xa000, 0x6b3: 0x3f90, 0x6b4: 0x3f98, 0x6b5: 0xa000,
- 0x6b6: 0x3fa0, 0x6b7: 0x3fa8, 0x6b8: 0xa000, 0x6b9: 0x3fb0, 0x6ba: 0x3fb8, 0x6bb: 0xa000,
- 0x6bc: 0x3fc0, 0x6bd: 0x3fc8,
- // Block 0x1b, offset 0x6c0
- 0x6d4: 0x3f00,
- 0x6d9: 0x9903, 0x6da: 0x9903, 0x6db: 0x8100, 0x6dc: 0x8100, 0x6dd: 0xa000,
- 0x6de: 0x3fd0,
- 0x6e6: 0xa000,
- 0x6eb: 0xa000, 0x6ec: 0x3fe0, 0x6ed: 0xa000, 0x6ee: 0x3fe8, 0x6ef: 0xa000,
- 0x6f0: 0x3ff0, 0x6f1: 0xa000, 0x6f2: 0x3ff8, 0x6f3: 0xa000, 0x6f4: 0x4000, 0x6f5: 0xa000,
- 0x6f6: 0x4008, 0x6f7: 0xa000, 0x6f8: 0x4010, 0x6f9: 0xa000, 0x6fa: 0x4018, 0x6fb: 0xa000,
- 0x6fc: 0x4020, 0x6fd: 0xa000, 0x6fe: 0x4028, 0x6ff: 0xa000,
- // Block 0x1c, offset 0x700
- 0x700: 0x4030, 0x701: 0xa000, 0x702: 0x4038, 0x704: 0xa000, 0x705: 0x4040,
- 0x706: 0xa000, 0x707: 0x4048, 0x708: 0xa000, 0x709: 0x4050,
- 0x70f: 0xa000, 0x710: 0x4058, 0x711: 0x4060,
- 0x712: 0xa000, 0x713: 0x4068, 0x714: 0x4070, 0x715: 0xa000, 0x716: 0x4078, 0x717: 0x4080,
- 0x718: 0xa000, 0x719: 0x4088, 0x71a: 0x4090, 0x71b: 0xa000, 0x71c: 0x4098, 0x71d: 0x40a0,
- 0x72f: 0xa000,
- 0x730: 0xa000, 0x731: 0xa000, 0x732: 0xa000, 0x734: 0x3fd8,
- 0x737: 0x40a8, 0x738: 0x40b0, 0x739: 0x40b8, 0x73a: 0x40c0,
- 0x73d: 0xa000, 0x73e: 0x40c8,
- // Block 0x1d, offset 0x740
- 0x740: 0x1377, 0x741: 0x0cfb, 0x742: 0x13d3, 0x743: 0x139f, 0x744: 0x0e57, 0x745: 0x06eb,
- 0x746: 0x08df, 0x747: 0x162b, 0x748: 0x162b, 0x749: 0x0a0b, 0x74a: 0x145f, 0x74b: 0x0943,
- 0x74c: 0x0a07, 0x74d: 0x0bef, 0x74e: 0x0fcf, 0x74f: 0x115f, 0x750: 0x1297, 0x751: 0x12d3,
- 0x752: 0x1307, 0x753: 0x141b, 0x754: 0x0d73, 0x755: 0x0dff, 0x756: 0x0eab, 0x757: 0x0f43,
- 0x758: 0x125f, 0x759: 0x1447, 0x75a: 0x1573, 0x75b: 0x070f, 0x75c: 0x08b3, 0x75d: 0x0d87,
- 0x75e: 0x0ecf, 0x75f: 0x1293, 0x760: 0x15c3, 0x761: 0x0ab3, 0x762: 0x0e77, 0x763: 0x1283,
- 0x764: 0x1317, 0x765: 0x0c23, 0x766: 0x11bb, 0x767: 0x12df, 0x768: 0x0b1f, 0x769: 0x0d0f,
- 0x76a: 0x0e17, 0x76b: 0x0f1b, 0x76c: 0x1427, 0x76d: 0x074f, 0x76e: 0x07e7, 0x76f: 0x0853,
- 0x770: 0x0c8b, 0x771: 0x0d7f, 0x772: 0x0ecb, 0x773: 0x0fef, 0x774: 0x1177, 0x775: 0x128b,
- 0x776: 0x12a3, 0x777: 0x13c7, 0x778: 0x14ef, 0x779: 0x15a3, 0x77a: 0x15bf, 0x77b: 0x102b,
- 0x77c: 0x106b, 0x77d: 0x1123, 0x77e: 0x1243, 0x77f: 0x147b,
- // Block 0x1e, offset 0x780
- 0x780: 0x15cb, 0x781: 0x134b, 0x782: 0x09c7, 0x783: 0x0b3b, 0x784: 0x10db, 0x785: 0x119b,
- 0x786: 0x0eff, 0x787: 0x1033, 0x788: 0x1397, 0x789: 0x14e7, 0x78a: 0x09c3, 0x78b: 0x0a8f,
- 0x78c: 0x0d77, 0x78d: 0x0e2b, 0x78e: 0x0e5f, 0x78f: 0x1113, 0x790: 0x113b, 0x791: 0x14a7,
- 0x792: 0x084f, 0x793: 0x11a7, 0x794: 0x07f3, 0x795: 0x07ef, 0x796: 0x1097, 0x797: 0x1127,
- 0x798: 0x125b, 0x799: 0x14af, 0x79a: 0x1367, 0x79b: 0x0c27, 0x79c: 0x0d73, 0x79d: 0x1357,
- 0x79e: 0x06f7, 0x79f: 0x0a63, 0x7a0: 0x0b93, 0x7a1: 0x0f2f, 0x7a2: 0x0faf, 0x7a3: 0x0873,
- 0x7a4: 0x103b, 0x7a5: 0x075f, 0x7a6: 0x0b77, 0x7a7: 0x06d7, 0x7a8: 0x0deb, 0x7a9: 0x0ca3,
- 0x7aa: 0x110f, 0x7ab: 0x08c7, 0x7ac: 0x09b3, 0x7ad: 0x0ffb, 0x7ae: 0x1263, 0x7af: 0x133b,
- 0x7b0: 0x0db7, 0x7b1: 0x13f7, 0x7b2: 0x0de3, 0x7b3: 0x0c37, 0x7b4: 0x121b, 0x7b5: 0x0c57,
- 0x7b6: 0x0fab, 0x7b7: 0x072b, 0x7b8: 0x07a7, 0x7b9: 0x07eb, 0x7ba: 0x0d53, 0x7bb: 0x10fb,
- 0x7bc: 0x11f3, 0x7bd: 0x1347, 0x7be: 0x145b, 0x7bf: 0x085b,
- // Block 0x1f, offset 0x7c0
- 0x7c0: 0x090f, 0x7c1: 0x0a17, 0x7c2: 0x0b2f, 0x7c3: 0x0cbf, 0x7c4: 0x0e7b, 0x7c5: 0x103f,
- 0x7c6: 0x1497, 0x7c7: 0x157b, 0x7c8: 0x15cf, 0x7c9: 0x15e7, 0x7ca: 0x0837, 0x7cb: 0x0cf3,
- 0x7cc: 0x0da3, 0x7cd: 0x13eb, 0x7ce: 0x0afb, 0x7cf: 0x0bd7, 0x7d0: 0x0bf3, 0x7d1: 0x0c83,
- 0x7d2: 0x0e6b, 0x7d3: 0x0eb7, 0x7d4: 0x0f67, 0x7d5: 0x108b, 0x7d6: 0x112f, 0x7d7: 0x1193,
- 0x7d8: 0x13db, 0x7d9: 0x126b, 0x7da: 0x1403, 0x7db: 0x147f, 0x7dc: 0x080f, 0x7dd: 0x083b,
- 0x7de: 0x0923, 0x7df: 0x0ea7, 0x7e0: 0x12f3, 0x7e1: 0x133b, 0x7e2: 0x0b1b, 0x7e3: 0x0b8b,
- 0x7e4: 0x0c4f, 0x7e5: 0x0daf, 0x7e6: 0x10d7, 0x7e7: 0x0f23, 0x7e8: 0x073b, 0x7e9: 0x097f,
- 0x7ea: 0x0a63, 0x7eb: 0x0ac7, 0x7ec: 0x0b97, 0x7ed: 0x0f3f, 0x7ee: 0x0f5b, 0x7ef: 0x116b,
- 0x7f0: 0x118b, 0x7f1: 0x1463, 0x7f2: 0x14e3, 0x7f3: 0x14f3, 0x7f4: 0x152f, 0x7f5: 0x0753,
- 0x7f6: 0x107f, 0x7f7: 0x144f, 0x7f8: 0x14cb, 0x7f9: 0x0baf, 0x7fa: 0x0717, 0x7fb: 0x0777,
- 0x7fc: 0x0a67, 0x7fd: 0x0a87, 0x7fe: 0x0caf, 0x7ff: 0x0d73,
- // Block 0x20, offset 0x800
- 0x800: 0x0ec3, 0x801: 0x0fcb, 0x802: 0x1277, 0x803: 0x1417, 0x804: 0x1623, 0x805: 0x0ce3,
- 0x806: 0x14a3, 0x807: 0x0833, 0x808: 0x0d2f, 0x809: 0x0d3b, 0x80a: 0x0e0f, 0x80b: 0x0e47,
- 0x80c: 0x0f4b, 0x80d: 0x0fa7, 0x80e: 0x1027, 0x80f: 0x110b, 0x810: 0x153b, 0x811: 0x07af,
- 0x812: 0x0c03, 0x813: 0x14b3, 0x814: 0x0767, 0x815: 0x0aab, 0x816: 0x0e2f, 0x817: 0x13df,
- 0x818: 0x0b67, 0x819: 0x0bb7, 0x81a: 0x0d43, 0x81b: 0x0f2f, 0x81c: 0x14bb, 0x81d: 0x0817,
- 0x81e: 0x08ff, 0x81f: 0x0a97, 0x820: 0x0cd3, 0x821: 0x0d1f, 0x822: 0x0d5f, 0x823: 0x0df3,
- 0x824: 0x0f47, 0x825: 0x0fbb, 0x826: 0x1157, 0x827: 0x12f7, 0x828: 0x1303, 0x829: 0x1457,
- 0x82a: 0x14d7, 0x82b: 0x0883, 0x82c: 0x0e4b, 0x82d: 0x0903, 0x82e: 0x0ec7, 0x82f: 0x0f6b,
- 0x830: 0x1287, 0x831: 0x14bf, 0x832: 0x15ab, 0x833: 0x15d3, 0x834: 0x0d37, 0x835: 0x0e27,
- 0x836: 0x11c3, 0x837: 0x10b7, 0x838: 0x10c3, 0x839: 0x10e7, 0x83a: 0x0f17, 0x83b: 0x0e9f,
- 0x83c: 0x1363, 0x83d: 0x0733, 0x83e: 0x122b, 0x83f: 0x081b,
- // Block 0x21, offset 0x840
- 0x840: 0x080b, 0x841: 0x0b0b, 0x842: 0x0c2b, 0x843: 0x10f3, 0x844: 0x0a53, 0x845: 0x0e03,
- 0x846: 0x0cef, 0x847: 0x13e7, 0x848: 0x12e7, 0x849: 0x14ab, 0x84a: 0x1323, 0x84b: 0x0b27,
- 0x84c: 0x0787, 0x84d: 0x095b, 0x850: 0x09af,
- 0x852: 0x0cdf, 0x855: 0x07f7, 0x856: 0x0f1f, 0x857: 0x0fe3,
- 0x858: 0x1047, 0x859: 0x1063, 0x85a: 0x1067, 0x85b: 0x107b, 0x85c: 0x14fb, 0x85d: 0x10eb,
- 0x85e: 0x116f, 0x860: 0x128f, 0x862: 0x1353,
- 0x865: 0x1407, 0x866: 0x1433,
- 0x86a: 0x154f, 0x86b: 0x1553, 0x86c: 0x1557, 0x86d: 0x15bb, 0x86e: 0x142b, 0x86f: 0x14c7,
- 0x870: 0x0757, 0x871: 0x077b, 0x872: 0x078f, 0x873: 0x084b, 0x874: 0x0857, 0x875: 0x0897,
- 0x876: 0x094b, 0x877: 0x0967, 0x878: 0x096f, 0x879: 0x09ab, 0x87a: 0x09b7, 0x87b: 0x0a93,
- 0x87c: 0x0a9b, 0x87d: 0x0ba3, 0x87e: 0x0bcb, 0x87f: 0x0bd3,
- // Block 0x22, offset 0x880
- 0x880: 0x0beb, 0x881: 0x0c97, 0x882: 0x0cc7, 0x883: 0x0ce7, 0x884: 0x0d57, 0x885: 0x0e1b,
- 0x886: 0x0e37, 0x887: 0x0e67, 0x888: 0x0ebb, 0x889: 0x0edb, 0x88a: 0x0f4f, 0x88b: 0x102f,
- 0x88c: 0x104b, 0x88d: 0x1053, 0x88e: 0x104f, 0x88f: 0x1057, 0x890: 0x105b, 0x891: 0x105f,
- 0x892: 0x1073, 0x893: 0x1077, 0x894: 0x109b, 0x895: 0x10af, 0x896: 0x10cb, 0x897: 0x112f,
- 0x898: 0x1137, 0x899: 0x113f, 0x89a: 0x1153, 0x89b: 0x117b, 0x89c: 0x11cb, 0x89d: 0x11ff,
- 0x89e: 0x11ff, 0x89f: 0x1267, 0x8a0: 0x130f, 0x8a1: 0x1327, 0x8a2: 0x135b, 0x8a3: 0x135f,
- 0x8a4: 0x13a3, 0x8a5: 0x13a7, 0x8a6: 0x13ff, 0x8a7: 0x1407, 0x8a8: 0x14db, 0x8a9: 0x151f,
- 0x8aa: 0x1537, 0x8ab: 0x0b9b, 0x8ac: 0x171e, 0x8ad: 0x11e3,
- 0x8b0: 0x06df, 0x8b1: 0x07e3, 0x8b2: 0x07a3, 0x8b3: 0x074b, 0x8b4: 0x078b, 0x8b5: 0x07b7,
- 0x8b6: 0x0847, 0x8b7: 0x0863, 0x8b8: 0x094b, 0x8b9: 0x0937, 0x8ba: 0x0947, 0x8bb: 0x0963,
- 0x8bc: 0x09af, 0x8bd: 0x09bf, 0x8be: 0x0a03, 0x8bf: 0x0a0f,
- // Block 0x23, offset 0x8c0
- 0x8c0: 0x0a2b, 0x8c1: 0x0a3b, 0x8c2: 0x0b23, 0x8c3: 0x0b2b, 0x8c4: 0x0b5b, 0x8c5: 0x0b7b,
- 0x8c6: 0x0bab, 0x8c7: 0x0bc3, 0x8c8: 0x0bb3, 0x8c9: 0x0bd3, 0x8ca: 0x0bc7, 0x8cb: 0x0beb,
- 0x8cc: 0x0c07, 0x8cd: 0x0c5f, 0x8ce: 0x0c6b, 0x8cf: 0x0c73, 0x8d0: 0x0c9b, 0x8d1: 0x0cdf,
- 0x8d2: 0x0d0f, 0x8d3: 0x0d13, 0x8d4: 0x0d27, 0x8d5: 0x0da7, 0x8d6: 0x0db7, 0x8d7: 0x0e0f,
- 0x8d8: 0x0e5b, 0x8d9: 0x0e53, 0x8da: 0x0e67, 0x8db: 0x0e83, 0x8dc: 0x0ebb, 0x8dd: 0x1013,
- 0x8de: 0x0edf, 0x8df: 0x0f13, 0x8e0: 0x0f1f, 0x8e1: 0x0f5f, 0x8e2: 0x0f7b, 0x8e3: 0x0f9f,
- 0x8e4: 0x0fc3, 0x8e5: 0x0fc7, 0x8e6: 0x0fe3, 0x8e7: 0x0fe7, 0x8e8: 0x0ff7, 0x8e9: 0x100b,
- 0x8ea: 0x1007, 0x8eb: 0x1037, 0x8ec: 0x10b3, 0x8ed: 0x10cb, 0x8ee: 0x10e3, 0x8ef: 0x111b,
- 0x8f0: 0x112f, 0x8f1: 0x114b, 0x8f2: 0x117b, 0x8f3: 0x122f, 0x8f4: 0x1257, 0x8f5: 0x12cb,
- 0x8f6: 0x1313, 0x8f7: 0x131f, 0x8f8: 0x1327, 0x8f9: 0x133f, 0x8fa: 0x1353, 0x8fb: 0x1343,
- 0x8fc: 0x135b, 0x8fd: 0x1357, 0x8fe: 0x134f, 0x8ff: 0x135f,
- // Block 0x24, offset 0x900
- 0x900: 0x136b, 0x901: 0x13a7, 0x902: 0x13e3, 0x903: 0x1413, 0x904: 0x144b, 0x905: 0x146b,
- 0x906: 0x14b7, 0x907: 0x14db, 0x908: 0x14fb, 0x909: 0x150f, 0x90a: 0x151f, 0x90b: 0x152b,
- 0x90c: 0x1537, 0x90d: 0x158b, 0x90e: 0x162b, 0x90f: 0x16b5, 0x910: 0x16b0, 0x911: 0x16e2,
- 0x912: 0x0607, 0x913: 0x062f, 0x914: 0x0633, 0x915: 0x1764, 0x916: 0x1791, 0x917: 0x1809,
- 0x918: 0x1617, 0x919: 0x1627,
- // Block 0x25, offset 0x940
- 0x940: 0x06fb, 0x941: 0x06f3, 0x942: 0x0703, 0x943: 0x1647, 0x944: 0x0747, 0x945: 0x0757,
- 0x946: 0x075b, 0x947: 0x0763, 0x948: 0x076b, 0x949: 0x076f, 0x94a: 0x077b, 0x94b: 0x0773,
- 0x94c: 0x05b3, 0x94d: 0x165b, 0x94e: 0x078f, 0x94f: 0x0793, 0x950: 0x0797, 0x951: 0x07b3,
- 0x952: 0x164c, 0x953: 0x05b7, 0x954: 0x079f, 0x955: 0x07bf, 0x956: 0x1656, 0x957: 0x07cf,
- 0x958: 0x07d7, 0x959: 0x0737, 0x95a: 0x07df, 0x95b: 0x07e3, 0x95c: 0x1831, 0x95d: 0x07ff,
- 0x95e: 0x0807, 0x95f: 0x05bf, 0x960: 0x081f, 0x961: 0x0823, 0x962: 0x082b, 0x963: 0x082f,
- 0x964: 0x05c3, 0x965: 0x0847, 0x966: 0x084b, 0x967: 0x0857, 0x968: 0x0863, 0x969: 0x0867,
- 0x96a: 0x086b, 0x96b: 0x0873, 0x96c: 0x0893, 0x96d: 0x0897, 0x96e: 0x089f, 0x96f: 0x08af,
- 0x970: 0x08b7, 0x971: 0x08bb, 0x972: 0x08bb, 0x973: 0x08bb, 0x974: 0x166a, 0x975: 0x0e93,
- 0x976: 0x08cf, 0x977: 0x08d7, 0x978: 0x166f, 0x979: 0x08e3, 0x97a: 0x08eb, 0x97b: 0x08f3,
- 0x97c: 0x091b, 0x97d: 0x0907, 0x97e: 0x0913, 0x97f: 0x0917,
- // Block 0x26, offset 0x980
- 0x980: 0x091f, 0x981: 0x0927, 0x982: 0x092b, 0x983: 0x0933, 0x984: 0x093b, 0x985: 0x093f,
- 0x986: 0x093f, 0x987: 0x0947, 0x988: 0x094f, 0x989: 0x0953, 0x98a: 0x095f, 0x98b: 0x0983,
- 0x98c: 0x0967, 0x98d: 0x0987, 0x98e: 0x096b, 0x98f: 0x0973, 0x990: 0x080b, 0x991: 0x09cf,
- 0x992: 0x0997, 0x993: 0x099b, 0x994: 0x099f, 0x995: 0x0993, 0x996: 0x09a7, 0x997: 0x09a3,
- 0x998: 0x09bb, 0x999: 0x1674, 0x99a: 0x09d7, 0x99b: 0x09db, 0x99c: 0x09e3, 0x99d: 0x09ef,
- 0x99e: 0x09f7, 0x99f: 0x0a13, 0x9a0: 0x1679, 0x9a1: 0x167e, 0x9a2: 0x0a1f, 0x9a3: 0x0a23,
- 0x9a4: 0x0a27, 0x9a5: 0x0a1b, 0x9a6: 0x0a2f, 0x9a7: 0x05c7, 0x9a8: 0x05cb, 0x9a9: 0x0a37,
- 0x9aa: 0x0a3f, 0x9ab: 0x0a3f, 0x9ac: 0x1683, 0x9ad: 0x0a5b, 0x9ae: 0x0a5f, 0x9af: 0x0a63,
- 0x9b0: 0x0a6b, 0x9b1: 0x1688, 0x9b2: 0x0a73, 0x9b3: 0x0a77, 0x9b4: 0x0b4f, 0x9b5: 0x0a7f,
- 0x9b6: 0x05cf, 0x9b7: 0x0a8b, 0x9b8: 0x0a9b, 0x9b9: 0x0aa7, 0x9ba: 0x0aa3, 0x9bb: 0x1692,
- 0x9bc: 0x0aaf, 0x9bd: 0x1697, 0x9be: 0x0abb, 0x9bf: 0x0ab7,
- // Block 0x27, offset 0x9c0
- 0x9c0: 0x0abf, 0x9c1: 0x0acf, 0x9c2: 0x0ad3, 0x9c3: 0x05d3, 0x9c4: 0x0ae3, 0x9c5: 0x0aeb,
- 0x9c6: 0x0aef, 0x9c7: 0x0af3, 0x9c8: 0x05d7, 0x9c9: 0x169c, 0x9ca: 0x05db, 0x9cb: 0x0b0f,
- 0x9cc: 0x0b13, 0x9cd: 0x0b17, 0x9ce: 0x0b1f, 0x9cf: 0x1863, 0x9d0: 0x0b37, 0x9d1: 0x16a6,
- 0x9d2: 0x16a6, 0x9d3: 0x11d7, 0x9d4: 0x0b47, 0x9d5: 0x0b47, 0x9d6: 0x05df, 0x9d7: 0x16c9,
- 0x9d8: 0x179b, 0x9d9: 0x0b57, 0x9da: 0x0b5f, 0x9db: 0x05e3, 0x9dc: 0x0b73, 0x9dd: 0x0b83,
- 0x9de: 0x0b87, 0x9df: 0x0b8f, 0x9e0: 0x0b9f, 0x9e1: 0x05eb, 0x9e2: 0x05e7, 0x9e3: 0x0ba3,
- 0x9e4: 0x16ab, 0x9e5: 0x0ba7, 0x9e6: 0x0bbb, 0x9e7: 0x0bbf, 0x9e8: 0x0bc3, 0x9e9: 0x0bbf,
- 0x9ea: 0x0bcf, 0x9eb: 0x0bd3, 0x9ec: 0x0be3, 0x9ed: 0x0bdb, 0x9ee: 0x0bdf, 0x9ef: 0x0be7,
- 0x9f0: 0x0beb, 0x9f1: 0x0bef, 0x9f2: 0x0bfb, 0x9f3: 0x0bff, 0x9f4: 0x0c17, 0x9f5: 0x0c1f,
- 0x9f6: 0x0c2f, 0x9f7: 0x0c43, 0x9f8: 0x16ba, 0x9f9: 0x0c3f, 0x9fa: 0x0c33, 0x9fb: 0x0c4b,
- 0x9fc: 0x0c53, 0x9fd: 0x0c67, 0x9fe: 0x16bf, 0x9ff: 0x0c6f,
- // Block 0x28, offset 0xa00
- 0xa00: 0x0c63, 0xa01: 0x0c5b, 0xa02: 0x05ef, 0xa03: 0x0c77, 0xa04: 0x0c7f, 0xa05: 0x0c87,
- 0xa06: 0x0c7b, 0xa07: 0x05f3, 0xa08: 0x0c97, 0xa09: 0x0c9f, 0xa0a: 0x16c4, 0xa0b: 0x0ccb,
- 0xa0c: 0x0cff, 0xa0d: 0x0cdb, 0xa0e: 0x05ff, 0xa0f: 0x0ce7, 0xa10: 0x05fb, 0xa11: 0x05f7,
- 0xa12: 0x07c3, 0xa13: 0x07c7, 0xa14: 0x0d03, 0xa15: 0x0ceb, 0xa16: 0x11ab, 0xa17: 0x0663,
- 0xa18: 0x0d0f, 0xa19: 0x0d13, 0xa1a: 0x0d17, 0xa1b: 0x0d2b, 0xa1c: 0x0d23, 0xa1d: 0x16dd,
- 0xa1e: 0x0603, 0xa1f: 0x0d3f, 0xa20: 0x0d33, 0xa21: 0x0d4f, 0xa22: 0x0d57, 0xa23: 0x16e7,
- 0xa24: 0x0d5b, 0xa25: 0x0d47, 0xa26: 0x0d63, 0xa27: 0x0607, 0xa28: 0x0d67, 0xa29: 0x0d6b,
- 0xa2a: 0x0d6f, 0xa2b: 0x0d7b, 0xa2c: 0x16ec, 0xa2d: 0x0d83, 0xa2e: 0x060b, 0xa2f: 0x0d8f,
- 0xa30: 0x16f1, 0xa31: 0x0d93, 0xa32: 0x060f, 0xa33: 0x0d9f, 0xa34: 0x0dab, 0xa35: 0x0db7,
- 0xa36: 0x0dbb, 0xa37: 0x16f6, 0xa38: 0x168d, 0xa39: 0x16fb, 0xa3a: 0x0ddb, 0xa3b: 0x1700,
- 0xa3c: 0x0de7, 0xa3d: 0x0def, 0xa3e: 0x0ddf, 0xa3f: 0x0dfb,
- // Block 0x29, offset 0xa40
- 0xa40: 0x0e0b, 0xa41: 0x0e1b, 0xa42: 0x0e0f, 0xa43: 0x0e13, 0xa44: 0x0e1f, 0xa45: 0x0e23,
- 0xa46: 0x1705, 0xa47: 0x0e07, 0xa48: 0x0e3b, 0xa49: 0x0e3f, 0xa4a: 0x0613, 0xa4b: 0x0e53,
- 0xa4c: 0x0e4f, 0xa4d: 0x170a, 0xa4e: 0x0e33, 0xa4f: 0x0e6f, 0xa50: 0x170f, 0xa51: 0x1714,
- 0xa52: 0x0e73, 0xa53: 0x0e87, 0xa54: 0x0e83, 0xa55: 0x0e7f, 0xa56: 0x0617, 0xa57: 0x0e8b,
- 0xa58: 0x0e9b, 0xa59: 0x0e97, 0xa5a: 0x0ea3, 0xa5b: 0x1651, 0xa5c: 0x0eb3, 0xa5d: 0x1719,
- 0xa5e: 0x0ebf, 0xa5f: 0x1723, 0xa60: 0x0ed3, 0xa61: 0x0edf, 0xa62: 0x0ef3, 0xa63: 0x1728,
- 0xa64: 0x0f07, 0xa65: 0x0f0b, 0xa66: 0x172d, 0xa67: 0x1732, 0xa68: 0x0f27, 0xa69: 0x0f37,
- 0xa6a: 0x061b, 0xa6b: 0x0f3b, 0xa6c: 0x061f, 0xa6d: 0x061f, 0xa6e: 0x0f53, 0xa6f: 0x0f57,
- 0xa70: 0x0f5f, 0xa71: 0x0f63, 0xa72: 0x0f6f, 0xa73: 0x0623, 0xa74: 0x0f87, 0xa75: 0x1737,
- 0xa76: 0x0fa3, 0xa77: 0x173c, 0xa78: 0x0faf, 0xa79: 0x16a1, 0xa7a: 0x0fbf, 0xa7b: 0x1741,
- 0xa7c: 0x1746, 0xa7d: 0x174b, 0xa7e: 0x0627, 0xa7f: 0x062b,
- // Block 0x2a, offset 0xa80
- 0xa80: 0x0ff7, 0xa81: 0x1755, 0xa82: 0x1750, 0xa83: 0x175a, 0xa84: 0x175f, 0xa85: 0x0fff,
- 0xa86: 0x1003, 0xa87: 0x1003, 0xa88: 0x100b, 0xa89: 0x0633, 0xa8a: 0x100f, 0xa8b: 0x0637,
- 0xa8c: 0x063b, 0xa8d: 0x1769, 0xa8e: 0x1023, 0xa8f: 0x102b, 0xa90: 0x1037, 0xa91: 0x063f,
- 0xa92: 0x176e, 0xa93: 0x105b, 0xa94: 0x1773, 0xa95: 0x1778, 0xa96: 0x107b, 0xa97: 0x1093,
- 0xa98: 0x0643, 0xa99: 0x109b, 0xa9a: 0x109f, 0xa9b: 0x10a3, 0xa9c: 0x177d, 0xa9d: 0x1782,
- 0xa9e: 0x1782, 0xa9f: 0x10bb, 0xaa0: 0x0647, 0xaa1: 0x1787, 0xaa2: 0x10cf, 0xaa3: 0x10d3,
- 0xaa4: 0x064b, 0xaa5: 0x178c, 0xaa6: 0x10ef, 0xaa7: 0x064f, 0xaa8: 0x10ff, 0xaa9: 0x10f7,
- 0xaaa: 0x1107, 0xaab: 0x1796, 0xaac: 0x111f, 0xaad: 0x0653, 0xaae: 0x112b, 0xaaf: 0x1133,
- 0xab0: 0x1143, 0xab1: 0x0657, 0xab2: 0x17a0, 0xab3: 0x17a5, 0xab4: 0x065b, 0xab5: 0x17aa,
- 0xab6: 0x115b, 0xab7: 0x17af, 0xab8: 0x1167, 0xab9: 0x1173, 0xaba: 0x117b, 0xabb: 0x17b4,
- 0xabc: 0x17b9, 0xabd: 0x118f, 0xabe: 0x17be, 0xabf: 0x1197,
- // Block 0x2b, offset 0xac0
- 0xac0: 0x16ce, 0xac1: 0x065f, 0xac2: 0x11af, 0xac3: 0x11b3, 0xac4: 0x0667, 0xac5: 0x11b7,
- 0xac6: 0x0a33, 0xac7: 0x17c3, 0xac8: 0x17c8, 0xac9: 0x16d3, 0xaca: 0x16d8, 0xacb: 0x11d7,
- 0xacc: 0x11db, 0xacd: 0x13f3, 0xace: 0x066b, 0xacf: 0x1207, 0xad0: 0x1203, 0xad1: 0x120b,
- 0xad2: 0x083f, 0xad3: 0x120f, 0xad4: 0x1213, 0xad5: 0x1217, 0xad6: 0x121f, 0xad7: 0x17cd,
- 0xad8: 0x121b, 0xad9: 0x1223, 0xada: 0x1237, 0xadb: 0x123b, 0xadc: 0x1227, 0xadd: 0x123f,
- 0xade: 0x1253, 0xadf: 0x1267, 0xae0: 0x1233, 0xae1: 0x1247, 0xae2: 0x124b, 0xae3: 0x124f,
- 0xae4: 0x17d2, 0xae5: 0x17dc, 0xae6: 0x17d7, 0xae7: 0x066f, 0xae8: 0x126f, 0xae9: 0x1273,
- 0xaea: 0x127b, 0xaeb: 0x17f0, 0xaec: 0x127f, 0xaed: 0x17e1, 0xaee: 0x0673, 0xaef: 0x0677,
- 0xaf0: 0x17e6, 0xaf1: 0x17eb, 0xaf2: 0x067b, 0xaf3: 0x129f, 0xaf4: 0x12a3, 0xaf5: 0x12a7,
- 0xaf6: 0x12ab, 0xaf7: 0x12b7, 0xaf8: 0x12b3, 0xaf9: 0x12bf, 0xafa: 0x12bb, 0xafb: 0x12cb,
- 0xafc: 0x12c3, 0xafd: 0x12c7, 0xafe: 0x12cf, 0xaff: 0x067f,
- // Block 0x2c, offset 0xb00
- 0xb00: 0x12d7, 0xb01: 0x12db, 0xb02: 0x0683, 0xb03: 0x12eb, 0xb04: 0x12ef, 0xb05: 0x17f5,
- 0xb06: 0x12fb, 0xb07: 0x12ff, 0xb08: 0x0687, 0xb09: 0x130b, 0xb0a: 0x05bb, 0xb0b: 0x17fa,
- 0xb0c: 0x17ff, 0xb0d: 0x068b, 0xb0e: 0x068f, 0xb0f: 0x1337, 0xb10: 0x134f, 0xb11: 0x136b,
- 0xb12: 0x137b, 0xb13: 0x1804, 0xb14: 0x138f, 0xb15: 0x1393, 0xb16: 0x13ab, 0xb17: 0x13b7,
- 0xb18: 0x180e, 0xb19: 0x1660, 0xb1a: 0x13c3, 0xb1b: 0x13bf, 0xb1c: 0x13cb, 0xb1d: 0x1665,
- 0xb1e: 0x13d7, 0xb1f: 0x13e3, 0xb20: 0x1813, 0xb21: 0x1818, 0xb22: 0x1423, 0xb23: 0x142f,
- 0xb24: 0x1437, 0xb25: 0x181d, 0xb26: 0x143b, 0xb27: 0x1467, 0xb28: 0x1473, 0xb29: 0x1477,
- 0xb2a: 0x146f, 0xb2b: 0x1483, 0xb2c: 0x1487, 0xb2d: 0x1822, 0xb2e: 0x1493, 0xb2f: 0x0693,
- 0xb30: 0x149b, 0xb31: 0x1827, 0xb32: 0x0697, 0xb33: 0x14d3, 0xb34: 0x0ac3, 0xb35: 0x14eb,
- 0xb36: 0x182c, 0xb37: 0x1836, 0xb38: 0x069b, 0xb39: 0x069f, 0xb3a: 0x1513, 0xb3b: 0x183b,
- 0xb3c: 0x06a3, 0xb3d: 0x1840, 0xb3e: 0x152b, 0xb3f: 0x152b,
- // Block 0x2d, offset 0xb40
- 0xb40: 0x1533, 0xb41: 0x1845, 0xb42: 0x154b, 0xb43: 0x06a7, 0xb44: 0x155b, 0xb45: 0x1567,
- 0xb46: 0x156f, 0xb47: 0x1577, 0xb48: 0x06ab, 0xb49: 0x184a, 0xb4a: 0x158b, 0xb4b: 0x15a7,
- 0xb4c: 0x15b3, 0xb4d: 0x06af, 0xb4e: 0x06b3, 0xb4f: 0x15b7, 0xb50: 0x184f, 0xb51: 0x06b7,
- 0xb52: 0x1854, 0xb53: 0x1859, 0xb54: 0x185e, 0xb55: 0x15db, 0xb56: 0x06bb, 0xb57: 0x15ef,
- 0xb58: 0x15f7, 0xb59: 0x15fb, 0xb5a: 0x1603, 0xb5b: 0x160b, 0xb5c: 0x1613, 0xb5d: 0x1868,
-}
-
-// nfcIndex: 22 blocks, 1408 entries, 1408 bytes
-// Block 0 is the zero block.
-var nfcIndex = [1408]uint8{
- // Block 0x0, offset 0x0
- // Block 0x1, offset 0x40
- // Block 0x2, offset 0x80
- // Block 0x3, offset 0xc0
- 0xc2: 0x2c, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x2d, 0xc7: 0x04,
- 0xc8: 0x05, 0xca: 0x2e, 0xcb: 0x2f, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x30,
- 0xd0: 0x09, 0xd1: 0x31, 0xd2: 0x32, 0xd3: 0x0a, 0xd6: 0x0b, 0xd7: 0x33,
- 0xd8: 0x34, 0xd9: 0x0c, 0xdb: 0x35, 0xdc: 0x36, 0xdd: 0x37, 0xdf: 0x38,
- 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05,
- 0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a,
- 0xf0: 0x13,
- // Block 0x4, offset 0x100
- 0x120: 0x39, 0x121: 0x3a, 0x123: 0x3b, 0x124: 0x3c, 0x125: 0x3d, 0x126: 0x3e, 0x127: 0x3f,
- 0x128: 0x40, 0x129: 0x41, 0x12a: 0x42, 0x12b: 0x43, 0x12c: 0x3e, 0x12d: 0x44, 0x12e: 0x45, 0x12f: 0x46,
- 0x131: 0x47, 0x132: 0x48, 0x133: 0x49, 0x134: 0x4a, 0x135: 0x4b, 0x137: 0x4c,
- 0x138: 0x4d, 0x139: 0x4e, 0x13a: 0x4f, 0x13b: 0x50, 0x13c: 0x51, 0x13d: 0x52, 0x13e: 0x53, 0x13f: 0x54,
- // Block 0x5, offset 0x140
- 0x140: 0x55, 0x142: 0x56, 0x144: 0x57, 0x145: 0x58, 0x146: 0x59, 0x147: 0x5a,
- 0x14d: 0x5b,
- 0x15c: 0x5c, 0x15f: 0x5d,
- 0x162: 0x5e, 0x164: 0x5f,
- 0x168: 0x60, 0x169: 0x61, 0x16a: 0x62, 0x16c: 0x0d, 0x16d: 0x63, 0x16e: 0x64, 0x16f: 0x65,
- 0x170: 0x66, 0x173: 0x67, 0x177: 0x68,
- 0x178: 0x0e, 0x179: 0x0f, 0x17a: 0x10, 0x17b: 0x11, 0x17c: 0x12, 0x17d: 0x13, 0x17e: 0x14, 0x17f: 0x15,
- // Block 0x6, offset 0x180
- 0x180: 0x69, 0x183: 0x6a, 0x184: 0x6b, 0x186: 0x6c, 0x187: 0x6d,
- 0x188: 0x6e, 0x189: 0x16, 0x18a: 0x17, 0x18b: 0x6f, 0x18c: 0x70,
- 0x1ab: 0x71,
- 0x1b3: 0x72, 0x1b5: 0x73, 0x1b7: 0x74,
- // Block 0x7, offset 0x1c0
- 0x1c0: 0x75, 0x1c1: 0x18, 0x1c2: 0x19, 0x1c3: 0x1a, 0x1c4: 0x76, 0x1c5: 0x77,
- 0x1c9: 0x78, 0x1cc: 0x79, 0x1cd: 0x7a,
- // Block 0x8, offset 0x200
- 0x219: 0x7b, 0x21a: 0x7c, 0x21b: 0x7d,
- 0x220: 0x7e, 0x223: 0x7f, 0x224: 0x80, 0x225: 0x81, 0x226: 0x82, 0x227: 0x83,
- 0x22a: 0x84, 0x22b: 0x85, 0x22f: 0x86,
- 0x230: 0x87, 0x231: 0x88, 0x232: 0x89, 0x233: 0x8a, 0x234: 0x8b, 0x235: 0x8c, 0x236: 0x8d, 0x237: 0x87,
- 0x238: 0x88, 0x239: 0x89, 0x23a: 0x8a, 0x23b: 0x8b, 0x23c: 0x8c, 0x23d: 0x8d, 0x23e: 0x87, 0x23f: 0x88,
- // Block 0x9, offset 0x240
- 0x240: 0x89, 0x241: 0x8a, 0x242: 0x8b, 0x243: 0x8c, 0x244: 0x8d, 0x245: 0x87, 0x246: 0x88, 0x247: 0x89,
- 0x248: 0x8a, 0x249: 0x8b, 0x24a: 0x8c, 0x24b: 0x8d, 0x24c: 0x87, 0x24d: 0x88, 0x24e: 0x89, 0x24f: 0x8a,
- 0x250: 0x8b, 0x251: 0x8c, 0x252: 0x8d, 0x253: 0x87, 0x254: 0x88, 0x255: 0x89, 0x256: 0x8a, 0x257: 0x8b,
- 0x258: 0x8c, 0x259: 0x8d, 0x25a: 0x87, 0x25b: 0x88, 0x25c: 0x89, 0x25d: 0x8a, 0x25e: 0x8b, 0x25f: 0x8c,
- 0x260: 0x8d, 0x261: 0x87, 0x262: 0x88, 0x263: 0x89, 0x264: 0x8a, 0x265: 0x8b, 0x266: 0x8c, 0x267: 0x8d,
- 0x268: 0x87, 0x269: 0x88, 0x26a: 0x89, 0x26b: 0x8a, 0x26c: 0x8b, 0x26d: 0x8c, 0x26e: 0x8d, 0x26f: 0x87,
- 0x270: 0x88, 0x271: 0x89, 0x272: 0x8a, 0x273: 0x8b, 0x274: 0x8c, 0x275: 0x8d, 0x276: 0x87, 0x277: 0x88,
- 0x278: 0x89, 0x279: 0x8a, 0x27a: 0x8b, 0x27b: 0x8c, 0x27c: 0x8d, 0x27d: 0x87, 0x27e: 0x88, 0x27f: 0x89,
- // Block 0xa, offset 0x280
- 0x280: 0x8a, 0x281: 0x8b, 0x282: 0x8c, 0x283: 0x8d, 0x284: 0x87, 0x285: 0x88, 0x286: 0x89, 0x287: 0x8a,
- 0x288: 0x8b, 0x289: 0x8c, 0x28a: 0x8d, 0x28b: 0x87, 0x28c: 0x88, 0x28d: 0x89, 0x28e: 0x8a, 0x28f: 0x8b,
- 0x290: 0x8c, 0x291: 0x8d, 0x292: 0x87, 0x293: 0x88, 0x294: 0x89, 0x295: 0x8a, 0x296: 0x8b, 0x297: 0x8c,
- 0x298: 0x8d, 0x299: 0x87, 0x29a: 0x88, 0x29b: 0x89, 0x29c: 0x8a, 0x29d: 0x8b, 0x29e: 0x8c, 0x29f: 0x8d,
- 0x2a0: 0x87, 0x2a1: 0x88, 0x2a2: 0x89, 0x2a3: 0x8a, 0x2a4: 0x8b, 0x2a5: 0x8c, 0x2a6: 0x8d, 0x2a7: 0x87,
- 0x2a8: 0x88, 0x2a9: 0x89, 0x2aa: 0x8a, 0x2ab: 0x8b, 0x2ac: 0x8c, 0x2ad: 0x8d, 0x2ae: 0x87, 0x2af: 0x88,
- 0x2b0: 0x89, 0x2b1: 0x8a, 0x2b2: 0x8b, 0x2b3: 0x8c, 0x2b4: 0x8d, 0x2b5: 0x87, 0x2b6: 0x88, 0x2b7: 0x89,
- 0x2b8: 0x8a, 0x2b9: 0x8b, 0x2ba: 0x8c, 0x2bb: 0x8d, 0x2bc: 0x87, 0x2bd: 0x88, 0x2be: 0x89, 0x2bf: 0x8a,
- // Block 0xb, offset 0x2c0
- 0x2c0: 0x8b, 0x2c1: 0x8c, 0x2c2: 0x8d, 0x2c3: 0x87, 0x2c4: 0x88, 0x2c5: 0x89, 0x2c6: 0x8a, 0x2c7: 0x8b,
- 0x2c8: 0x8c, 0x2c9: 0x8d, 0x2ca: 0x87, 0x2cb: 0x88, 0x2cc: 0x89, 0x2cd: 0x8a, 0x2ce: 0x8b, 0x2cf: 0x8c,
- 0x2d0: 0x8d, 0x2d1: 0x87, 0x2d2: 0x88, 0x2d3: 0x89, 0x2d4: 0x8a, 0x2d5: 0x8b, 0x2d6: 0x8c, 0x2d7: 0x8d,
- 0x2d8: 0x87, 0x2d9: 0x88, 0x2da: 0x89, 0x2db: 0x8a, 0x2dc: 0x8b, 0x2dd: 0x8c, 0x2de: 0x8e,
- // Block 0xc, offset 0x300
- 0x324: 0x1b, 0x325: 0x1c, 0x326: 0x1d, 0x327: 0x1e,
- 0x328: 0x1f, 0x329: 0x20, 0x32a: 0x21, 0x32b: 0x22, 0x32c: 0x8f, 0x32d: 0x90, 0x32e: 0x91,
- 0x331: 0x92, 0x332: 0x93, 0x333: 0x94, 0x334: 0x95,
- 0x338: 0x96, 0x339: 0x97, 0x33a: 0x98, 0x33b: 0x99, 0x33e: 0x9a, 0x33f: 0x9b,
- // Block 0xd, offset 0x340
- 0x347: 0x9c,
- 0x34b: 0x9d, 0x34d: 0x9e,
- 0x368: 0x9f, 0x36b: 0xa0,
- // Block 0xe, offset 0x380
- 0x381: 0xa1, 0x382: 0xa2, 0x384: 0xa3, 0x385: 0x82, 0x387: 0xa4,
- 0x388: 0xa5, 0x38b: 0xa6, 0x38c: 0x3e, 0x38d: 0xa7,
- 0x391: 0xa8, 0x392: 0xa9, 0x393: 0xaa, 0x396: 0xab, 0x397: 0xac,
- 0x398: 0x73, 0x39a: 0xad, 0x39c: 0xae,
- 0x3b0: 0x73,
- // Block 0xf, offset 0x3c0
- 0x3eb: 0xaf, 0x3ec: 0xb0,
- // Block 0x10, offset 0x400
- 0x432: 0xb1,
- // Block 0x11, offset 0x440
- 0x445: 0xb2, 0x446: 0xb3, 0x447: 0xb4,
- 0x449: 0xb5,
- // Block 0x12, offset 0x480
- 0x480: 0xb6,
- 0x4a3: 0xb7, 0x4a5: 0xb8,
- // Block 0x13, offset 0x4c0
- 0x4c8: 0xb9,
- // Block 0x14, offset 0x500
- 0x520: 0x23, 0x521: 0x24, 0x522: 0x25, 0x523: 0x26, 0x524: 0x27, 0x525: 0x28, 0x526: 0x29, 0x527: 0x2a,
- 0x528: 0x2b,
- // Block 0x15, offset 0x540
- 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d,
- 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,
- 0x56f: 0x12,
-}
-
-// nfcSparseOffset: 142 entries, 284 bytes
-var nfcSparseOffset = []uint16{0x0, 0x5, 0x9, 0xb, 0xd, 0x18, 0x28, 0x2a, 0x2f, 0x3a, 0x49, 0x56, 0x5e, 0x62, 0x67, 0x69, 0x7a, 0x82, 0x89, 0x8c, 0x93, 0x97, 0x9b, 0x9d, 0x9f, 0xa8, 0xac, 0xb3, 0xb8, 0xbb, 0xc5, 0xc7, 0xce, 0xd6, 0xd9, 0xdb, 0xdd, 0xdf, 0xe4, 0xf5, 0x101, 0x103, 0x109, 0x10b, 0x10d, 0x10f, 0x111, 0x113, 0x115, 0x118, 0x11b, 0x11d, 0x120, 0x123, 0x127, 0x12c, 0x135, 0x137, 0x13a, 0x13c, 0x147, 0x157, 0x15b, 0x169, 0x16c, 0x172, 0x178, 0x183, 0x187, 0x189, 0x18b, 0x18d, 0x18f, 0x191, 0x197, 0x19b, 0x19d, 0x19f, 0x1a7, 0x1ab, 0x1ae, 0x1b0, 0x1b2, 0x1b4, 0x1b7, 0x1b9, 0x1bb, 0x1bd, 0x1bf, 0x1c5, 0x1c8, 0x1ca, 0x1d1, 0x1d7, 0x1dd, 0x1e5, 0x1eb, 0x1f1, 0x1f7, 0x1fb, 0x209, 0x212, 0x215, 0x218, 0x21a, 0x21d, 0x21f, 0x223, 0x228, 0x22a, 0x22c, 0x231, 0x237, 0x239, 0x23b, 0x23d, 0x243, 0x246, 0x249, 0x251, 0x258, 0x25b, 0x25e, 0x260, 0x268, 0x26b, 0x272, 0x275, 0x27b, 0x27d, 0x280, 0x282, 0x284, 0x286, 0x288, 0x295, 0x29f, 0x2a1, 0x2a3, 0x2a9, 0x2ab, 0x2ae}
-
-// nfcSparseValues: 688 entries, 2752 bytes
-var nfcSparseValues = [688]valueRange{
- // Block 0x0, offset 0x0
- {value: 0x0000, lo: 0x04},
- {value: 0xa100, lo: 0xa8, hi: 0xa8},
- {value: 0x8100, lo: 0xaf, hi: 0xaf},
- {value: 0x8100, lo: 0xb4, hi: 0xb4},
- {value: 0x8100, lo: 0xb8, hi: 0xb8},
- // Block 0x1, offset 0x5
- {value: 0x0091, lo: 0x03},
- {value: 0x46e2, lo: 0xa0, hi: 0xa1},
- {value: 0x4714, lo: 0xaf, hi: 0xb0},
- {value: 0xa000, lo: 0xb7, hi: 0xb7},
- // Block 0x2, offset 0x9
- {value: 0x0000, lo: 0x01},
- {value: 0xa000, lo: 0x92, hi: 0x92},
- // Block 0x3, offset 0xb
- {value: 0x0000, lo: 0x01},
- {value: 0x8100, lo: 0x98, hi: 0x9d},
- // Block 0x4, offset 0xd
- {value: 0x0006, lo: 0x0a},
- {value: 0xa000, lo: 0x81, hi: 0x81},
- {value: 0xa000, lo: 0x85, hi: 0x85},
- {value: 0xa000, lo: 0x89, hi: 0x89},
- {value: 0x4840, lo: 0x8a, hi: 0x8a},
- {value: 0x485e, lo: 0x8b, hi: 0x8b},
- {value: 0x36c7, lo: 0x8c, hi: 0x8c},
- {value: 0x36df, lo: 0x8d, hi: 0x8d},
- {value: 0x4876, lo: 0x8e, hi: 0x8e},
- {value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0x36fd, lo: 0x93, hi: 0x94},
- // Block 0x5, offset 0x18
- {value: 0x0000, lo: 0x0f},
- {value: 0xa000, lo: 0x83, hi: 0x83},
- {value: 0xa000, lo: 0x87, hi: 0x87},
- {value: 0xa000, lo: 0x8b, hi: 0x8b},
- {value: 0xa000, lo: 0x8d, hi: 0x8d},
- {value: 0x37a5, lo: 0x90, hi: 0x90},
- {value: 0x37b1, lo: 0x91, hi: 0x91},
- {value: 0x379f, lo: 0x93, hi: 0x93},
- {value: 0xa000, lo: 0x96, hi: 0x96},
- {value: 0x3817, lo: 0x97, hi: 0x97},
- {value: 0x37e1, lo: 0x9c, hi: 0x9c},
- {value: 0x37c9, lo: 0x9d, hi: 0x9d},
- {value: 0x37f3, lo: 0x9e, hi: 0x9e},
- {value: 0xa000, lo: 0xb4, hi: 0xb5},
- {value: 0x381d, lo: 0xb6, hi: 0xb6},
- {value: 0x3823, lo: 0xb7, hi: 0xb7},
- // Block 0x6, offset 0x28
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0x83, hi: 0x87},
- // Block 0x7, offset 0x2a
- {value: 0x0001, lo: 0x04},
- {value: 0x8113, lo: 0x81, hi: 0x82},
- {value: 0x8132, lo: 0x84, hi: 0x84},
- {value: 0x812d, lo: 0x85, hi: 0x85},
- {value: 0x810d, lo: 0x87, hi: 0x87},
- // Block 0x8, offset 0x2f
- {value: 0x0000, lo: 0x0a},
- {value: 0x8132, lo: 0x90, hi: 0x97},
- {value: 0x8119, lo: 0x98, hi: 0x98},
- {value: 0x811a, lo: 0x99, hi: 0x99},
- {value: 0x811b, lo: 0x9a, hi: 0x9a},
- {value: 0x3841, lo: 0xa2, hi: 0xa2},
- {value: 0x3847, lo: 0xa3, hi: 0xa3},
- {value: 0x3853, lo: 0xa4, hi: 0xa4},
- {value: 0x384d, lo: 0xa5, hi: 0xa5},
- {value: 0x3859, lo: 0xa6, hi: 0xa6},
- {value: 0xa000, lo: 0xa7, hi: 0xa7},
- // Block 0x9, offset 0x3a
- {value: 0x0000, lo: 0x0e},
- {value: 0x386b, lo: 0x80, hi: 0x80},
- {value: 0xa000, lo: 0x81, hi: 0x81},
- {value: 0x385f, lo: 0x82, hi: 0x82},
- {value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0x3865, lo: 0x93, hi: 0x93},
- {value: 0xa000, lo: 0x95, hi: 0x95},
- {value: 0x8132, lo: 0x96, hi: 0x9c},
- {value: 0x8132, lo: 0x9f, hi: 0xa2},
- {value: 0x812d, lo: 0xa3, hi: 0xa3},
- {value: 0x8132, lo: 0xa4, hi: 0xa4},
- {value: 0x8132, lo: 0xa7, hi: 0xa8},
- {value: 0x812d, lo: 0xaa, hi: 0xaa},
- {value: 0x8132, lo: 0xab, hi: 0xac},
- {value: 0x812d, lo: 0xad, hi: 0xad},
- // Block 0xa, offset 0x49
- {value: 0x0000, lo: 0x0c},
- {value: 0x811f, lo: 0x91, hi: 0x91},
- {value: 0x8132, lo: 0xb0, hi: 0xb0},
- {value: 0x812d, lo: 0xb1, hi: 0xb1},
- {value: 0x8132, lo: 0xb2, hi: 0xb3},
- {value: 0x812d, lo: 0xb4, hi: 0xb4},
- {value: 0x8132, lo: 0xb5, hi: 0xb6},
- {value: 0x812d, lo: 0xb7, hi: 0xb9},
- {value: 0x8132, lo: 0xba, hi: 0xba},
- {value: 0x812d, lo: 0xbb, hi: 0xbc},
- {value: 0x8132, lo: 0xbd, hi: 0xbd},
- {value: 0x812d, lo: 0xbe, hi: 0xbe},
- {value: 0x8132, lo: 0xbf, hi: 0xbf},
- // Block 0xb, offset 0x56
- {value: 0x0005, lo: 0x07},
- {value: 0x8132, lo: 0x80, hi: 0x80},
- {value: 0x8132, lo: 0x81, hi: 0x81},
- {value: 0x812d, lo: 0x82, hi: 0x83},
- {value: 0x812d, lo: 0x84, hi: 0x85},
- {value: 0x812d, lo: 0x86, hi: 0x87},
- {value: 0x812d, lo: 0x88, hi: 0x89},
- {value: 0x8132, lo: 0x8a, hi: 0x8a},
- // Block 0xc, offset 0x5e
- {value: 0x0000, lo: 0x03},
- {value: 0x8132, lo: 0xab, hi: 0xb1},
- {value: 0x812d, lo: 0xb2, hi: 0xb2},
- {value: 0x8132, lo: 0xb3, hi: 0xb3},
- // Block 0xd, offset 0x62
- {value: 0x0000, lo: 0x04},
- {value: 0x8132, lo: 0x96, hi: 0x99},
- {value: 0x8132, lo: 0x9b, hi: 0xa3},
- {value: 0x8132, lo: 0xa5, hi: 0xa7},
- {value: 0x8132, lo: 0xa9, hi: 0xad},
- // Block 0xe, offset 0x67
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0x99, hi: 0x9b},
- // Block 0xf, offset 0x69
- {value: 0x0000, lo: 0x10},
- {value: 0x8132, lo: 0x94, hi: 0xa1},
- {value: 0x812d, lo: 0xa3, hi: 0xa3},
- {value: 0x8132, lo: 0xa4, hi: 0xa5},
- {value: 0x812d, lo: 0xa6, hi: 0xa6},
- {value: 0x8132, lo: 0xa7, hi: 0xa8},
- {value: 0x812d, lo: 0xa9, hi: 0xa9},
- {value: 0x8132, lo: 0xaa, hi: 0xac},
- {value: 0x812d, lo: 0xad, hi: 0xaf},
- {value: 0x8116, lo: 0xb0, hi: 0xb0},
- {value: 0x8117, lo: 0xb1, hi: 0xb1},
- {value: 0x8118, lo: 0xb2, hi: 0xb2},
- {value: 0x8132, lo: 0xb3, hi: 0xb5},
- {value: 0x812d, lo: 0xb6, hi: 0xb6},
- {value: 0x8132, lo: 0xb7, hi: 0xb8},
- {value: 0x812d, lo: 0xb9, hi: 0xba},
- {value: 0x8132, lo: 0xbb, hi: 0xbf},
- // Block 0x10, offset 0x7a
- {value: 0x0000, lo: 0x07},
- {value: 0xa000, lo: 0xa8, hi: 0xa8},
- {value: 0x3ed8, lo: 0xa9, hi: 0xa9},
- {value: 0xa000, lo: 0xb0, hi: 0xb0},
- {value: 0x3ee0, lo: 0xb1, hi: 0xb1},
- {value: 0xa000, lo: 0xb3, hi: 0xb3},
- {value: 0x3ee8, lo: 0xb4, hi: 0xb4},
- {value: 0x9902, lo: 0xbc, hi: 0xbc},
- // Block 0x11, offset 0x82
- {value: 0x0008, lo: 0x06},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x8132, lo: 0x91, hi: 0x91},
- {value: 0x812d, lo: 0x92, hi: 0x92},
- {value: 0x8132, lo: 0x93, hi: 0x93},
- {value: 0x8132, lo: 0x94, hi: 0x94},
- {value: 0x451c, lo: 0x98, hi: 0x9f},
- // Block 0x12, offset 0x89
- {value: 0x0000, lo: 0x02},
- {value: 0x8102, lo: 0xbc, hi: 0xbc},
- {value: 0x9900, lo: 0xbe, hi: 0xbe},
- // Block 0x13, offset 0x8c
- {value: 0x0008, lo: 0x06},
- {value: 0xa000, lo: 0x87, hi: 0x87},
- {value: 0x2c9e, lo: 0x8b, hi: 0x8c},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x9900, lo: 0x97, hi: 0x97},
- {value: 0x455c, lo: 0x9c, hi: 0x9d},
- {value: 0x456c, lo: 0x9f, hi: 0x9f},
- // Block 0x14, offset 0x93
- {value: 0x0000, lo: 0x03},
- {value: 0x4594, lo: 0xb3, hi: 0xb3},
- {value: 0x459c, lo: 0xb6, hi: 0xb6},
- {value: 0x8102, lo: 0xbc, hi: 0xbc},
- // Block 0x15, offset 0x97
- {value: 0x0008, lo: 0x03},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x4574, lo: 0x99, hi: 0x9b},
- {value: 0x458c, lo: 0x9e, hi: 0x9e},
- // Block 0x16, offset 0x9b
- {value: 0x0000, lo: 0x01},
- {value: 0x8102, lo: 0xbc, hi: 0xbc},
- // Block 0x17, offset 0x9d
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- // Block 0x18, offset 0x9f
- {value: 0x0000, lo: 0x08},
- {value: 0xa000, lo: 0x87, hi: 0x87},
- {value: 0x2cb6, lo: 0x88, hi: 0x88},
- {value: 0x2cae, lo: 0x8b, hi: 0x8b},
- {value: 0x2cbe, lo: 0x8c, hi: 0x8c},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x9900, lo: 0x96, hi: 0x97},
- {value: 0x45a4, lo: 0x9c, hi: 0x9c},
- {value: 0x45ac, lo: 0x9d, hi: 0x9d},
- // Block 0x19, offset 0xa8
- {value: 0x0000, lo: 0x03},
- {value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0x2cc6, lo: 0x94, hi: 0x94},
- {value: 0x9900, lo: 0xbe, hi: 0xbe},
- // Block 0x1a, offset 0xac
- {value: 0x0000, lo: 0x06},
- {value: 0xa000, lo: 0x86, hi: 0x87},
- {value: 0x2cce, lo: 0x8a, hi: 0x8a},
- {value: 0x2cde, lo: 0x8b, hi: 0x8b},
- {value: 0x2cd6, lo: 0x8c, hi: 0x8c},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x9900, lo: 0x97, hi: 0x97},
- // Block 0x1b, offset 0xb3
- {value: 0x1801, lo: 0x04},
- {value: 0xa000, lo: 0x86, hi: 0x86},
- {value: 0x3ef0, lo: 0x88, hi: 0x88},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x8120, lo: 0x95, hi: 0x96},
- // Block 0x1c, offset 0xb8
- {value: 0x0000, lo: 0x02},
- {value: 0x8102, lo: 0xbc, hi: 0xbc},
- {value: 0xa000, lo: 0xbf, hi: 0xbf},
- // Block 0x1d, offset 0xbb
- {value: 0x0000, lo: 0x09},
- {value: 0x2ce6, lo: 0x80, hi: 0x80},
- {value: 0x9900, lo: 0x82, hi: 0x82},
- {value: 0xa000, lo: 0x86, hi: 0x86},
- {value: 0x2cee, lo: 0x87, hi: 0x87},
- {value: 0x2cf6, lo: 0x88, hi: 0x88},
- {value: 0x2f50, lo: 0x8a, hi: 0x8a},
- {value: 0x2dd8, lo: 0x8b, hi: 0x8b},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x9900, lo: 0x95, hi: 0x96},
- // Block 0x1e, offset 0xc5
- {value: 0x0000, lo: 0x01},
- {value: 0x9900, lo: 0xbe, hi: 0xbe},
- // Block 0x1f, offset 0xc7
- {value: 0x0000, lo: 0x06},
- {value: 0xa000, lo: 0x86, hi: 0x87},
- {value: 0x2cfe, lo: 0x8a, hi: 0x8a},
- {value: 0x2d0e, lo: 0x8b, hi: 0x8b},
- {value: 0x2d06, lo: 0x8c, hi: 0x8c},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x9900, lo: 0x97, hi: 0x97},
- // Block 0x20, offset 0xce
- {value: 0x6bea, lo: 0x07},
- {value: 0x9904, lo: 0x8a, hi: 0x8a},
- {value: 0x9900, lo: 0x8f, hi: 0x8f},
- {value: 0xa000, lo: 0x99, hi: 0x99},
- {value: 0x3ef8, lo: 0x9a, hi: 0x9a},
- {value: 0x2f58, lo: 0x9c, hi: 0x9c},
- {value: 0x2de3, lo: 0x9d, hi: 0x9d},
- {value: 0x2d16, lo: 0x9e, hi: 0x9f},
- // Block 0x21, offset 0xd6
- {value: 0x0000, lo: 0x02},
- {value: 0x8122, lo: 0xb8, hi: 0xb9},
- {value: 0x8104, lo: 0xba, hi: 0xba},
- // Block 0x22, offset 0xd9
- {value: 0x0000, lo: 0x01},
- {value: 0x8123, lo: 0x88, hi: 0x8b},
- // Block 0x23, offset 0xdb
- {value: 0x0000, lo: 0x01},
- {value: 0x8124, lo: 0xb8, hi: 0xb9},
- // Block 0x24, offset 0xdd
- {value: 0x0000, lo: 0x01},
- {value: 0x8125, lo: 0x88, hi: 0x8b},
- // Block 0x25, offset 0xdf
- {value: 0x0000, lo: 0x04},
- {value: 0x812d, lo: 0x98, hi: 0x99},
- {value: 0x812d, lo: 0xb5, hi: 0xb5},
- {value: 0x812d, lo: 0xb7, hi: 0xb7},
- {value: 0x812b, lo: 0xb9, hi: 0xb9},
- // Block 0x26, offset 0xe4
- {value: 0x0000, lo: 0x10},
- {value: 0x2644, lo: 0x83, hi: 0x83},
- {value: 0x264b, lo: 0x8d, hi: 0x8d},
- {value: 0x2652, lo: 0x92, hi: 0x92},
- {value: 0x2659, lo: 0x97, hi: 0x97},
- {value: 0x2660, lo: 0x9c, hi: 0x9c},
- {value: 0x263d, lo: 0xa9, hi: 0xa9},
- {value: 0x8126, lo: 0xb1, hi: 0xb1},
- {value: 0x8127, lo: 0xb2, hi: 0xb2},
- {value: 0x4a84, lo: 0xb3, hi: 0xb3},
- {value: 0x8128, lo: 0xb4, hi: 0xb4},
- {value: 0x4a8d, lo: 0xb5, hi: 0xb5},
- {value: 0x45b4, lo: 0xb6, hi: 0xb6},
- {value: 0x8200, lo: 0xb7, hi: 0xb7},
- {value: 0x45bc, lo: 0xb8, hi: 0xb8},
- {value: 0x8200, lo: 0xb9, hi: 0xb9},
- {value: 0x8127, lo: 0xba, hi: 0xbd},
- // Block 0x27, offset 0xf5
- {value: 0x0000, lo: 0x0b},
- {value: 0x8127, lo: 0x80, hi: 0x80},
- {value: 0x4a96, lo: 0x81, hi: 0x81},
- {value: 0x8132, lo: 0x82, hi: 0x83},
- {value: 0x8104, lo: 0x84, hi: 0x84},
- {value: 0x8132, lo: 0x86, hi: 0x87},
- {value: 0x266e, lo: 0x93, hi: 0x93},
- {value: 0x2675, lo: 0x9d, hi: 0x9d},
- {value: 0x267c, lo: 0xa2, hi: 0xa2},
- {value: 0x2683, lo: 0xa7, hi: 0xa7},
- {value: 0x268a, lo: 0xac, hi: 0xac},
- {value: 0x2667, lo: 0xb9, hi: 0xb9},
- // Block 0x28, offset 0x101
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0x86, hi: 0x86},
- // Block 0x29, offset 0x103
- {value: 0x0000, lo: 0x05},
- {value: 0xa000, lo: 0xa5, hi: 0xa5},
- {value: 0x2d1e, lo: 0xa6, hi: 0xa6},
- {value: 0x9900, lo: 0xae, hi: 0xae},
- {value: 0x8102, lo: 0xb7, hi: 0xb7},
- {value: 0x8104, lo: 0xb9, hi: 0xba},
- // Block 0x2a, offset 0x109
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0x8d, hi: 0x8d},
- // Block 0x2b, offset 0x10b
- {value: 0x0000, lo: 0x01},
- {value: 0xa000, lo: 0x80, hi: 0x92},
- // Block 0x2c, offset 0x10d
- {value: 0x0000, lo: 0x01},
- {value: 0xb900, lo: 0xa1, hi: 0xb5},
- // Block 0x2d, offset 0x10f
- {value: 0x0000, lo: 0x01},
- {value: 0x9900, lo: 0xa8, hi: 0xbf},
- // Block 0x2e, offset 0x111
- {value: 0x0000, lo: 0x01},
- {value: 0x9900, lo: 0x80, hi: 0x82},
- // Block 0x2f, offset 0x113
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0x9d, hi: 0x9f},
- // Block 0x30, offset 0x115
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x94, hi: 0x94},
- {value: 0x8104, lo: 0xb4, hi: 0xb4},
- // Block 0x31, offset 0x118
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x92, hi: 0x92},
- {value: 0x8132, lo: 0x9d, hi: 0x9d},
- // Block 0x32, offset 0x11b
- {value: 0x0000, lo: 0x01},
- {value: 0x8131, lo: 0xa9, hi: 0xa9},
- // Block 0x33, offset 0x11d
- {value: 0x0004, lo: 0x02},
- {value: 0x812e, lo: 0xb9, hi: 0xba},
- {value: 0x812d, lo: 0xbb, hi: 0xbb},
- // Block 0x34, offset 0x120
- {value: 0x0000, lo: 0x02},
- {value: 0x8132, lo: 0x97, hi: 0x97},
- {value: 0x812d, lo: 0x98, hi: 0x98},
- // Block 0x35, offset 0x123
- {value: 0x0000, lo: 0x03},
- {value: 0x8104, lo: 0xa0, hi: 0xa0},
- {value: 0x8132, lo: 0xb5, hi: 0xbc},
- {value: 0x812d, lo: 0xbf, hi: 0xbf},
- // Block 0x36, offset 0x127
- {value: 0x0000, lo: 0x04},
- {value: 0x8132, lo: 0xb0, hi: 0xb4},
- {value: 0x812d, lo: 0xb5, hi: 0xba},
- {value: 0x8132, lo: 0xbb, hi: 0xbc},
- {value: 0x812d, lo: 0xbd, hi: 0xbd},
- // Block 0x37, offset 0x12c
- {value: 0x0000, lo: 0x08},
- {value: 0x2d66, lo: 0x80, hi: 0x80},
- {value: 0x2d6e, lo: 0x81, hi: 0x81},
- {value: 0xa000, lo: 0x82, hi: 0x82},
- {value: 0x2d76, lo: 0x83, hi: 0x83},
- {value: 0x8104, lo: 0x84, hi: 0x84},
- {value: 0x8132, lo: 0xab, hi: 0xab},
- {value: 0x812d, lo: 0xac, hi: 0xac},
- {value: 0x8132, lo: 0xad, hi: 0xb3},
- // Block 0x38, offset 0x135
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0xaa, hi: 0xab},
- // Block 0x39, offset 0x137
- {value: 0x0000, lo: 0x02},
- {value: 0x8102, lo: 0xa6, hi: 0xa6},
- {value: 0x8104, lo: 0xb2, hi: 0xb3},
- // Block 0x3a, offset 0x13a
- {value: 0x0000, lo: 0x01},
- {value: 0x8102, lo: 0xb7, hi: 0xb7},
- // Block 0x3b, offset 0x13c
- {value: 0x0000, lo: 0x0a},
- {value: 0x8132, lo: 0x90, hi: 0x92},
- {value: 0x8101, lo: 0x94, hi: 0x94},
- {value: 0x812d, lo: 0x95, hi: 0x99},
- {value: 0x8132, lo: 0x9a, hi: 0x9b},
- {value: 0x812d, lo: 0x9c, hi: 0x9f},
- {value: 0x8132, lo: 0xa0, hi: 0xa0},
- {value: 0x8101, lo: 0xa2, hi: 0xa8},
- {value: 0x812d, lo: 0xad, hi: 0xad},
- {value: 0x8132, lo: 0xb4, hi: 0xb4},
- {value: 0x8132, lo: 0xb8, hi: 0xb9},
- // Block 0x3c, offset 0x147
- {value: 0x0000, lo: 0x0f},
- {value: 0x8132, lo: 0x80, hi: 0x81},
- {value: 0x812d, lo: 0x82, hi: 0x82},
- {value: 0x8132, lo: 0x83, hi: 0x89},
- {value: 0x812d, lo: 0x8a, hi: 0x8a},
- {value: 0x8132, lo: 0x8b, hi: 0x8c},
- {value: 0x8135, lo: 0x8d, hi: 0x8d},
- {value: 0x812a, lo: 0x8e, hi: 0x8e},
- {value: 0x812d, lo: 0x8f, hi: 0x8f},
- {value: 0x8129, lo: 0x90, hi: 0x90},
- {value: 0x8132, lo: 0x91, hi: 0xb5},
- {value: 0x8132, lo: 0xbb, hi: 0xbb},
- {value: 0x8134, lo: 0xbc, hi: 0xbc},
- {value: 0x812d, lo: 0xbd, hi: 0xbd},
- {value: 0x8132, lo: 0xbe, hi: 0xbe},
- {value: 0x812d, lo: 0xbf, hi: 0xbf},
- // Block 0x3d, offset 0x157
- {value: 0x0004, lo: 0x03},
- {value: 0x0433, lo: 0x80, hi: 0x81},
- {value: 0x8100, lo: 0x97, hi: 0x97},
- {value: 0x8100, lo: 0xbe, hi: 0xbe},
- // Block 0x3e, offset 0x15b
- {value: 0x0000, lo: 0x0d},
- {value: 0x8132, lo: 0x90, hi: 0x91},
- {value: 0x8101, lo: 0x92, hi: 0x93},
- {value: 0x8132, lo: 0x94, hi: 0x97},
- {value: 0x8101, lo: 0x98, hi: 0x9a},
- {value: 0x8132, lo: 0x9b, hi: 0x9c},
- {value: 0x8132, lo: 0xa1, hi: 0xa1},
- {value: 0x8101, lo: 0xa5, hi: 0xa6},
- {value: 0x8132, lo: 0xa7, hi: 0xa7},
- {value: 0x812d, lo: 0xa8, hi: 0xa8},
- {value: 0x8132, lo: 0xa9, hi: 0xa9},
- {value: 0x8101, lo: 0xaa, hi: 0xab},
- {value: 0x812d, lo: 0xac, hi: 0xaf},
- {value: 0x8132, lo: 0xb0, hi: 0xb0},
- // Block 0x3f, offset 0x169
- {value: 0x427b, lo: 0x02},
- {value: 0x01b8, lo: 0xa6, hi: 0xa6},
- {value: 0x0057, lo: 0xaa, hi: 0xab},
- // Block 0x40, offset 0x16c
- {value: 0x0007, lo: 0x05},
- {value: 0xa000, lo: 0x90, hi: 0x90},
- {value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0xa000, lo: 0x94, hi: 0x94},
- {value: 0x3bb9, lo: 0x9a, hi: 0x9b},
- {value: 0x3bc7, lo: 0xae, hi: 0xae},
- // Block 0x41, offset 0x172
- {value: 0x000e, lo: 0x05},
- {value: 0x3bce, lo: 0x8d, hi: 0x8e},
- {value: 0x3bd5, lo: 0x8f, hi: 0x8f},
- {value: 0xa000, lo: 0x90, hi: 0x90},
- {value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0xa000, lo: 0x94, hi: 0x94},
- // Block 0x42, offset 0x178
- {value: 0x6408, lo: 0x0a},
- {value: 0xa000, lo: 0x83, hi: 0x83},
- {value: 0x3be3, lo: 0x84, hi: 0x84},
- {value: 0xa000, lo: 0x88, hi: 0x88},
- {value: 0x3bea, lo: 0x89, hi: 0x89},
- {value: 0xa000, lo: 0x8b, hi: 0x8b},
- {value: 0x3bf1, lo: 0x8c, hi: 0x8c},
- {value: 0xa000, lo: 0xa3, hi: 0xa3},
- {value: 0x3bf8, lo: 0xa4, hi: 0xa5},
- {value: 0x3bff, lo: 0xa6, hi: 0xa6},
- {value: 0xa000, lo: 0xbc, hi: 0xbc},
- // Block 0x43, offset 0x183
- {value: 0x0007, lo: 0x03},
- {value: 0x3c68, lo: 0xa0, hi: 0xa1},
- {value: 0x3c92, lo: 0xa2, hi: 0xa3},
- {value: 0x3cbc, lo: 0xaa, hi: 0xad},
- // Block 0x44, offset 0x187
- {value: 0x0004, lo: 0x01},
- {value: 0x048b, lo: 0xa9, hi: 0xaa},
- // Block 0x45, offset 0x189
- {value: 0x0000, lo: 0x01},
- {value: 0x44dd, lo: 0x9c, hi: 0x9c},
- // Block 0x46, offset 0x18b
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0xaf, hi: 0xb1},
- // Block 0x47, offset 0x18d
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0xbf, hi: 0xbf},
- // Block 0x48, offset 0x18f
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0xa0, hi: 0xbf},
- // Block 0x49, offset 0x191
- {value: 0x0000, lo: 0x05},
- {value: 0x812c, lo: 0xaa, hi: 0xaa},
- {value: 0x8131, lo: 0xab, hi: 0xab},
- {value: 0x8133, lo: 0xac, hi: 0xac},
- {value: 0x812e, lo: 0xad, hi: 0xad},
- {value: 0x812f, lo: 0xae, hi: 0xaf},
- // Block 0x4a, offset 0x197
- {value: 0x0000, lo: 0x03},
- {value: 0x4a9f, lo: 0xb3, hi: 0xb3},
- {value: 0x4a9f, lo: 0xb5, hi: 0xb6},
- {value: 0x4a9f, lo: 0xba, hi: 0xbf},
- // Block 0x4b, offset 0x19b
- {value: 0x0000, lo: 0x01},
- {value: 0x4a9f, lo: 0x8f, hi: 0xa3},
- // Block 0x4c, offset 0x19d
- {value: 0x0000, lo: 0x01},
- {value: 0x8100, lo: 0xae, hi: 0xbe},
- // Block 0x4d, offset 0x19f
- {value: 0x0000, lo: 0x07},
- {value: 0x8100, lo: 0x84, hi: 0x84},
- {value: 0x8100, lo: 0x87, hi: 0x87},
- {value: 0x8100, lo: 0x90, hi: 0x90},
- {value: 0x8100, lo: 0x9e, hi: 0x9e},
- {value: 0x8100, lo: 0xa1, hi: 0xa1},
- {value: 0x8100, lo: 0xb2, hi: 0xb2},
- {value: 0x8100, lo: 0xbb, hi: 0xbb},
- // Block 0x4e, offset 0x1a7
- {value: 0x0000, lo: 0x03},
- {value: 0x8100, lo: 0x80, hi: 0x80},
- {value: 0x8100, lo: 0x8b, hi: 0x8b},
- {value: 0x8100, lo: 0x8e, hi: 0x8e},
- // Block 0x4f, offset 0x1ab
- {value: 0x0000, lo: 0x02},
- {value: 0x8132, lo: 0xaf, hi: 0xaf},
- {value: 0x8132, lo: 0xb4, hi: 0xbd},
- // Block 0x50, offset 0x1ae
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0x9e, hi: 0x9f},
- // Block 0x51, offset 0x1b0
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0xb0, hi: 0xb1},
- // Block 0x52, offset 0x1b2
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0x86, hi: 0x86},
- // Block 0x53, offset 0x1b4
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x84, hi: 0x84},
- {value: 0x8132, lo: 0xa0, hi: 0xb1},
- // Block 0x54, offset 0x1b7
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0xab, hi: 0xad},
- // Block 0x55, offset 0x1b9
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0x93, hi: 0x93},
- // Block 0x56, offset 0x1bb
- {value: 0x0000, lo: 0x01},
- {value: 0x8102, lo: 0xb3, hi: 0xb3},
- // Block 0x57, offset 0x1bd
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0x80, hi: 0x80},
- // Block 0x58, offset 0x1bf
- {value: 0x0000, lo: 0x05},
- {value: 0x8132, lo: 0xb0, hi: 0xb0},
- {value: 0x8132, lo: 0xb2, hi: 0xb3},
- {value: 0x812d, lo: 0xb4, hi: 0xb4},
- {value: 0x8132, lo: 0xb7, hi: 0xb8},
- {value: 0x8132, lo: 0xbe, hi: 0xbf},
- // Block 0x59, offset 0x1c5
- {value: 0x0000, lo: 0x02},
- {value: 0x8132, lo: 0x81, hi: 0x81},
- {value: 0x8104, lo: 0xb6, hi: 0xb6},
- // Block 0x5a, offset 0x1c8
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0xad, hi: 0xad},
- // Block 0x5b, offset 0x1ca
- {value: 0x0000, lo: 0x06},
- {value: 0xe500, lo: 0x80, hi: 0x80},
- {value: 0xc600, lo: 0x81, hi: 0x9b},
- {value: 0xe500, lo: 0x9c, hi: 0x9c},
- {value: 0xc600, lo: 0x9d, hi: 0xb7},
- {value: 0xe500, lo: 0xb8, hi: 0xb8},
- {value: 0xc600, lo: 0xb9, hi: 0xbf},
- // Block 0x5c, offset 0x1d1
- {value: 0x0000, lo: 0x05},
- {value: 0xc600, lo: 0x80, hi: 0x93},
- {value: 0xe500, lo: 0x94, hi: 0x94},
- {value: 0xc600, lo: 0x95, hi: 0xaf},
- {value: 0xe500, lo: 0xb0, hi: 0xb0},
- {value: 0xc600, lo: 0xb1, hi: 0xbf},
- // Block 0x5d, offset 0x1d7
- {value: 0x0000, lo: 0x05},
- {value: 0xc600, lo: 0x80, hi: 0x8b},
- {value: 0xe500, lo: 0x8c, hi: 0x8c},
- {value: 0xc600, lo: 0x8d, hi: 0xa7},
- {value: 0xe500, lo: 0xa8, hi: 0xa8},
- {value: 0xc600, lo: 0xa9, hi: 0xbf},
- // Block 0x5e, offset 0x1dd
- {value: 0x0000, lo: 0x07},
- {value: 0xc600, lo: 0x80, hi: 0x83},
- {value: 0xe500, lo: 0x84, hi: 0x84},
- {value: 0xc600, lo: 0x85, hi: 0x9f},
- {value: 0xe500, lo: 0xa0, hi: 0xa0},
- {value: 0xc600, lo: 0xa1, hi: 0xbb},
- {value: 0xe500, lo: 0xbc, hi: 0xbc},
- {value: 0xc600, lo: 0xbd, hi: 0xbf},
- // Block 0x5f, offset 0x1e5
- {value: 0x0000, lo: 0x05},
- {value: 0xc600, lo: 0x80, hi: 0x97},
- {value: 0xe500, lo: 0x98, hi: 0x98},
- {value: 0xc600, lo: 0x99, hi: 0xb3},
- {value: 0xe500, lo: 0xb4, hi: 0xb4},
- {value: 0xc600, lo: 0xb5, hi: 0xbf},
- // Block 0x60, offset 0x1eb
- {value: 0x0000, lo: 0x05},
- {value: 0xc600, lo: 0x80, hi: 0x8f},
- {value: 0xe500, lo: 0x90, hi: 0x90},
- {value: 0xc600, lo: 0x91, hi: 0xab},
- {value: 0xe500, lo: 0xac, hi: 0xac},
- {value: 0xc600, lo: 0xad, hi: 0xbf},
- // Block 0x61, offset 0x1f1
- {value: 0x0000, lo: 0x05},
- {value: 0xc600, lo: 0x80, hi: 0x87},
- {value: 0xe500, lo: 0x88, hi: 0x88},
- {value: 0xc600, lo: 0x89, hi: 0xa3},
- {value: 0xe500, lo: 0xa4, hi: 0xa4},
- {value: 0xc600, lo: 0xa5, hi: 0xbf},
- // Block 0x62, offset 0x1f7
- {value: 0x0000, lo: 0x03},
- {value: 0xc600, lo: 0x80, hi: 0x87},
- {value: 0xe500, lo: 0x88, hi: 0x88},
- {value: 0xc600, lo: 0x89, hi: 0xa3},
- // Block 0x63, offset 0x1fb
- {value: 0x0006, lo: 0x0d},
- {value: 0x4390, lo: 0x9d, hi: 0x9d},
- {value: 0x8115, lo: 0x9e, hi: 0x9e},
- {value: 0x4402, lo: 0x9f, hi: 0x9f},
- {value: 0x43f0, lo: 0xaa, hi: 0xab},
- {value: 0x44f4, lo: 0xac, hi: 0xac},
- {value: 0x44fc, lo: 0xad, hi: 0xad},
- {value: 0x4348, lo: 0xae, hi: 0xb1},
- {value: 0x4366, lo: 0xb2, hi: 0xb4},
- {value: 0x437e, lo: 0xb5, hi: 0xb6},
- {value: 0x438a, lo: 0xb8, hi: 0xb8},
- {value: 0x4396, lo: 0xb9, hi: 0xbb},
- {value: 0x43ae, lo: 0xbc, hi: 0xbc},
- {value: 0x43b4, lo: 0xbe, hi: 0xbe},
- // Block 0x64, offset 0x209
- {value: 0x0006, lo: 0x08},
- {value: 0x43ba, lo: 0x80, hi: 0x81},
- {value: 0x43c6, lo: 0x83, hi: 0x84},
- {value: 0x43d8, lo: 0x86, hi: 0x89},
- {value: 0x43fc, lo: 0x8a, hi: 0x8a},
- {value: 0x4378, lo: 0x8b, hi: 0x8b},
- {value: 0x4360, lo: 0x8c, hi: 0x8c},
- {value: 0x43a8, lo: 0x8d, hi: 0x8d},
- {value: 0x43d2, lo: 0x8e, hi: 0x8e},
- // Block 0x65, offset 0x212
- {value: 0x0000, lo: 0x02},
- {value: 0x8100, lo: 0xa4, hi: 0xa5},
- {value: 0x8100, lo: 0xb0, hi: 0xb1},
- // Block 0x66, offset 0x215
- {value: 0x0000, lo: 0x02},
- {value: 0x8100, lo: 0x9b, hi: 0x9d},
- {value: 0x8200, lo: 0x9e, hi: 0xa3},
- // Block 0x67, offset 0x218
- {value: 0x0000, lo: 0x01},
- {value: 0x8100, lo: 0x90, hi: 0x90},
- // Block 0x68, offset 0x21a
- {value: 0x0000, lo: 0x02},
- {value: 0x8100, lo: 0x99, hi: 0x99},
- {value: 0x8200, lo: 0xb2, hi: 0xb4},
- // Block 0x69, offset 0x21d
- {value: 0x0000, lo: 0x01},
- {value: 0x8100, lo: 0xbc, hi: 0xbd},
- // Block 0x6a, offset 0x21f
- {value: 0x0000, lo: 0x03},
- {value: 0x8132, lo: 0xa0, hi: 0xa6},
- {value: 0x812d, lo: 0xa7, hi: 0xad},
- {value: 0x8132, lo: 0xae, hi: 0xaf},
- // Block 0x6b, offset 0x223
- {value: 0x0000, lo: 0x04},
- {value: 0x8100, lo: 0x89, hi: 0x8c},
- {value: 0x8100, lo: 0xb0, hi: 0xb2},
- {value: 0x8100, lo: 0xb4, hi: 0xb4},
- {value: 0x8100, lo: 0xb6, hi: 0xbf},
- // Block 0x6c, offset 0x228
- {value: 0x0000, lo: 0x01},
- {value: 0x8100, lo: 0x81, hi: 0x8c},
- // Block 0x6d, offset 0x22a
- {value: 0x0000, lo: 0x01},
- {value: 0x8100, lo: 0xb5, hi: 0xba},
- // Block 0x6e, offset 0x22c
- {value: 0x0000, lo: 0x04},
- {value: 0x4a9f, lo: 0x9e, hi: 0x9f},
- {value: 0x4a9f, lo: 0xa3, hi: 0xa3},
- {value: 0x4a9f, lo: 0xa5, hi: 0xa6},
- {value: 0x4a9f, lo: 0xaa, hi: 0xaf},
- // Block 0x6f, offset 0x231
- {value: 0x0000, lo: 0x05},
- {value: 0x4a9f, lo: 0x82, hi: 0x87},
- {value: 0x4a9f, lo: 0x8a, hi: 0x8f},
- {value: 0x4a9f, lo: 0x92, hi: 0x97},
- {value: 0x4a9f, lo: 0x9a, hi: 0x9c},
- {value: 0x8100, lo: 0xa3, hi: 0xa3},
- // Block 0x70, offset 0x237
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0xbd, hi: 0xbd},
- // Block 0x71, offset 0x239
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0xa0, hi: 0xa0},
- // Block 0x72, offset 0x23b
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0xb6, hi: 0xba},
- // Block 0x73, offset 0x23d
- {value: 0x002c, lo: 0x05},
- {value: 0x812d, lo: 0x8d, hi: 0x8d},
- {value: 0x8132, lo: 0x8f, hi: 0x8f},
- {value: 0x8132, lo: 0xb8, hi: 0xb8},
- {value: 0x8101, lo: 0xb9, hi: 0xba},
- {value: 0x8104, lo: 0xbf, hi: 0xbf},
- // Block 0x74, offset 0x243
- {value: 0x0000, lo: 0x02},
- {value: 0x8132, lo: 0xa5, hi: 0xa5},
- {value: 0x812d, lo: 0xa6, hi: 0xa6},
- // Block 0x75, offset 0x246
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x86, hi: 0x86},
- {value: 0x8104, lo: 0xbf, hi: 0xbf},
- // Block 0x76, offset 0x249
- {value: 0x17fe, lo: 0x07},
- {value: 0xa000, lo: 0x99, hi: 0x99},
- {value: 0x4238, lo: 0x9a, hi: 0x9a},
- {value: 0xa000, lo: 0x9b, hi: 0x9b},
- {value: 0x4242, lo: 0x9c, hi: 0x9c},
- {value: 0xa000, lo: 0xa5, hi: 0xa5},
- {value: 0x424c, lo: 0xab, hi: 0xab},
- {value: 0x8104, lo: 0xb9, hi: 0xba},
- // Block 0x77, offset 0x251
- {value: 0x0000, lo: 0x06},
- {value: 0x8132, lo: 0x80, hi: 0x82},
- {value: 0x9900, lo: 0xa7, hi: 0xa7},
- {value: 0x2d7e, lo: 0xae, hi: 0xae},
- {value: 0x2d88, lo: 0xaf, hi: 0xaf},
- {value: 0xa000, lo: 0xb1, hi: 0xb2},
- {value: 0x8104, lo: 0xb3, hi: 0xb4},
- // Block 0x78, offset 0x258
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x80, hi: 0x80},
- {value: 0x8102, lo: 0x8a, hi: 0x8a},
- // Block 0x79, offset 0x25b
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0xb5, hi: 0xb5},
- {value: 0x8102, lo: 0xb6, hi: 0xb6},
- // Block 0x7a, offset 0x25e
- {value: 0x0002, lo: 0x01},
- {value: 0x8102, lo: 0xa9, hi: 0xaa},
- // Block 0x7b, offset 0x260
- {value: 0x0000, lo: 0x07},
- {value: 0xa000, lo: 0x87, hi: 0x87},
- {value: 0x2d92, lo: 0x8b, hi: 0x8b},
- {value: 0x2d9c, lo: 0x8c, hi: 0x8c},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x9900, lo: 0x97, hi: 0x97},
- {value: 0x8132, lo: 0xa6, hi: 0xac},
- {value: 0x8132, lo: 0xb0, hi: 0xb4},
- // Block 0x7c, offset 0x268
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x82, hi: 0x82},
- {value: 0x8102, lo: 0x86, hi: 0x86},
- // Block 0x7d, offset 0x26b
- {value: 0x6b5a, lo: 0x06},
- {value: 0x9900, lo: 0xb0, hi: 0xb0},
- {value: 0xa000, lo: 0xb9, hi: 0xb9},
- {value: 0x9900, lo: 0xba, hi: 0xba},
- {value: 0x2db0, lo: 0xbb, hi: 0xbb},
- {value: 0x2da6, lo: 0xbc, hi: 0xbd},
- {value: 0x2dba, lo: 0xbe, hi: 0xbe},
- // Block 0x7e, offset 0x272
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x82, hi: 0x82},
- {value: 0x8102, lo: 0x83, hi: 0x83},
- // Block 0x7f, offset 0x275
- {value: 0x0000, lo: 0x05},
- {value: 0x9900, lo: 0xaf, hi: 0xaf},
- {value: 0xa000, lo: 0xb8, hi: 0xb9},
- {value: 0x2dc4, lo: 0xba, hi: 0xba},
- {value: 0x2dce, lo: 0xbb, hi: 0xbb},
- {value: 0x8104, lo: 0xbf, hi: 0xbf},
- // Block 0x80, offset 0x27b
- {value: 0x0000, lo: 0x01},
- {value: 0x8102, lo: 0x80, hi: 0x80},
- // Block 0x81, offset 0x27d
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0xb6, hi: 0xb6},
- {value: 0x8102, lo: 0xb7, hi: 0xb7},
- // Block 0x82, offset 0x280
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0xab, hi: 0xab},
- // Block 0x83, offset 0x282
- {value: 0x0000, lo: 0x01},
- {value: 0x8101, lo: 0xb0, hi: 0xb4},
- // Block 0x84, offset 0x284
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0xb0, hi: 0xb6},
- // Block 0x85, offset 0x286
- {value: 0x0000, lo: 0x01},
- {value: 0x8101, lo: 0x9e, hi: 0x9e},
- // Block 0x86, offset 0x288
- {value: 0x0000, lo: 0x0c},
- {value: 0x45cc, lo: 0x9e, hi: 0x9e},
- {value: 0x45d6, lo: 0x9f, hi: 0x9f},
- {value: 0x460a, lo: 0xa0, hi: 0xa0},
- {value: 0x4618, lo: 0xa1, hi: 0xa1},
- {value: 0x4626, lo: 0xa2, hi: 0xa2},
- {value: 0x4634, lo: 0xa3, hi: 0xa3},
- {value: 0x4642, lo: 0xa4, hi: 0xa4},
- {value: 0x812b, lo: 0xa5, hi: 0xa6},
- {value: 0x8101, lo: 0xa7, hi: 0xa9},
- {value: 0x8130, lo: 0xad, hi: 0xad},
- {value: 0x812b, lo: 0xae, hi: 0xb2},
- {value: 0x812d, lo: 0xbb, hi: 0xbf},
- // Block 0x87, offset 0x295
- {value: 0x0000, lo: 0x09},
- {value: 0x812d, lo: 0x80, hi: 0x82},
- {value: 0x8132, lo: 0x85, hi: 0x89},
- {value: 0x812d, lo: 0x8a, hi: 0x8b},
- {value: 0x8132, lo: 0xaa, hi: 0xad},
- {value: 0x45e0, lo: 0xbb, hi: 0xbb},
- {value: 0x45ea, lo: 0xbc, hi: 0xbc},
- {value: 0x4650, lo: 0xbd, hi: 0xbd},
- {value: 0x466c, lo: 0xbe, hi: 0xbe},
- {value: 0x465e, lo: 0xbf, hi: 0xbf},
- // Block 0x88, offset 0x29f
- {value: 0x0000, lo: 0x01},
- {value: 0x467a, lo: 0x80, hi: 0x80},
- // Block 0x89, offset 0x2a1
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0x82, hi: 0x84},
- // Block 0x8a, offset 0x2a3
- {value: 0x0000, lo: 0x05},
- {value: 0x8132, lo: 0x80, hi: 0x86},
- {value: 0x8132, lo: 0x88, hi: 0x98},
- {value: 0x8132, lo: 0x9b, hi: 0xa1},
- {value: 0x8132, lo: 0xa3, hi: 0xa4},
- {value: 0x8132, lo: 0xa6, hi: 0xaa},
- // Block 0x8b, offset 0x2a9
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0x90, hi: 0x96},
- // Block 0x8c, offset 0x2ab
- {value: 0x0000, lo: 0x02},
- {value: 0x8132, lo: 0x84, hi: 0x89},
- {value: 0x8102, lo: 0x8a, hi: 0x8a},
- // Block 0x8d, offset 0x2ae
- {value: 0x0000, lo: 0x01},
- {value: 0x8100, lo: 0x93, hi: 0x93},
-}
-
-// lookup returns the trie value for the first UTF-8 encoding in s and
-// the width in bytes of this encoding. The size will be 0 if s does not
-// hold enough bytes to complete the encoding. len(s) must be greater than 0.
-func (t *nfkcTrie) lookup(s []byte) (v uint16, sz int) {
- c0 := s[0]
- switch {
- case c0 < 0x80: // is ASCII
- return nfkcValues[c0], 1
- case c0 < 0xC2:
- return 0, 1 // Illegal UTF-8: not a starter, not ASCII.
- case c0 < 0xE0: // 2-byte UTF-8
- if len(s) < 2 {
- return 0, 0
- }
- i := nfkcIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c1), 2
- case c0 < 0xF0: // 3-byte UTF-8
- if len(s) < 3 {
- return 0, 0
- }
- i := nfkcIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = nfkcIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c2), 3
- case c0 < 0xF8: // 4-byte UTF-8
- if len(s) < 4 {
- return 0, 0
- }
- i := nfkcIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = nfkcIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- o = uint32(i)<<6 + uint32(c2)
- i = nfkcIndex[o]
- c3 := s[3]
- if c3 < 0x80 || 0xC0 <= c3 {
- return 0, 3 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c3), 4
- }
- // Illegal rune
- return 0, 1
-}
-
-// lookupUnsafe returns the trie value for the first UTF-8 encoding in s.
-// s must start with a full and valid UTF-8 encoded rune.
-func (t *nfkcTrie) lookupUnsafe(s []byte) uint16 {
- c0 := s[0]
- if c0 < 0x80 { // is ASCII
- return nfkcValues[c0]
- }
- i := nfkcIndex[c0]
- if c0 < 0xE0 { // 2-byte UTF-8
- return t.lookupValue(uint32(i), s[1])
- }
- i = nfkcIndex[uint32(i)<<6+uint32(s[1])]
- if c0 < 0xF0 { // 3-byte UTF-8
- return t.lookupValue(uint32(i), s[2])
- }
- i = nfkcIndex[uint32(i)<<6+uint32(s[2])]
- if c0 < 0xF8 { // 4-byte UTF-8
- return t.lookupValue(uint32(i), s[3])
- }
- return 0
-}
-
-// lookupString returns the trie value for the first UTF-8 encoding in s and
-// the width in bytes of this encoding. The size will be 0 if s does not
-// hold enough bytes to complete the encoding. len(s) must be greater than 0.
-func (t *nfkcTrie) lookupString(s string) (v uint16, sz int) {
- c0 := s[0]
- switch {
- case c0 < 0x80: // is ASCII
- return nfkcValues[c0], 1
- case c0 < 0xC2:
- return 0, 1 // Illegal UTF-8: not a starter, not ASCII.
- case c0 < 0xE0: // 2-byte UTF-8
- if len(s) < 2 {
- return 0, 0
- }
- i := nfkcIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c1), 2
- case c0 < 0xF0: // 3-byte UTF-8
- if len(s) < 3 {
- return 0, 0
- }
- i := nfkcIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = nfkcIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c2), 3
- case c0 < 0xF8: // 4-byte UTF-8
- if len(s) < 4 {
- return 0, 0
- }
- i := nfkcIndex[c0]
- c1 := s[1]
- if c1 < 0x80 || 0xC0 <= c1 {
- return 0, 1 // Illegal UTF-8: not a continuation byte.
- }
- o := uint32(i)<<6 + uint32(c1)
- i = nfkcIndex[o]
- c2 := s[2]
- if c2 < 0x80 || 0xC0 <= c2 {
- return 0, 2 // Illegal UTF-8: not a continuation byte.
- }
- o = uint32(i)<<6 + uint32(c2)
- i = nfkcIndex[o]
- c3 := s[3]
- if c3 < 0x80 || 0xC0 <= c3 {
- return 0, 3 // Illegal UTF-8: not a continuation byte.
- }
- return t.lookupValue(uint32(i), c3), 4
- }
- // Illegal rune
- return 0, 1
-}
-
-// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s.
-// s must start with a full and valid UTF-8 encoded rune.
-func (t *nfkcTrie) lookupStringUnsafe(s string) uint16 {
- c0 := s[0]
- if c0 < 0x80 { // is ASCII
- return nfkcValues[c0]
- }
- i := nfkcIndex[c0]
- if c0 < 0xE0 { // 2-byte UTF-8
- return t.lookupValue(uint32(i), s[1])
- }
- i = nfkcIndex[uint32(i)<<6+uint32(s[1])]
- if c0 < 0xF0 { // 3-byte UTF-8
- return t.lookupValue(uint32(i), s[2])
- }
- i = nfkcIndex[uint32(i)<<6+uint32(s[2])]
- if c0 < 0xF8 { // 4-byte UTF-8
- return t.lookupValue(uint32(i), s[3])
- }
- return 0
-}
-
-// nfkcTrie. Total size: 16994 bytes (16.60 KiB). Checksum: c3ed54ee046f3c46.
-type nfkcTrie struct{}
-
-func newNfkcTrie(i int) *nfkcTrie {
- return &nfkcTrie{}
-}
-
-// lookupValue determines the type of block n and looks up the value for b.
-func (t *nfkcTrie) lookupValue(n uint32, b byte) uint16 {
- switch {
- case n < 90:
- return uint16(nfkcValues[n<<6+uint32(b)])
- default:
- n -= 90
- return uint16(nfkcSparse.lookup(n, b))
- }
-}
-
-// nfkcValues: 92 blocks, 5888 entries, 11776 bytes
-// The third block is the zero block.
-var nfkcValues = [5888]uint16{
- // Block 0x0, offset 0x0
- 0x3c: 0xa000, 0x3d: 0xa000, 0x3e: 0xa000,
- // Block 0x1, offset 0x40
- 0x41: 0xa000, 0x42: 0xa000, 0x43: 0xa000, 0x44: 0xa000, 0x45: 0xa000,
- 0x46: 0xa000, 0x47: 0xa000, 0x48: 0xa000, 0x49: 0xa000, 0x4a: 0xa000, 0x4b: 0xa000,
- 0x4c: 0xa000, 0x4d: 0xa000, 0x4e: 0xa000, 0x4f: 0xa000, 0x50: 0xa000,
- 0x52: 0xa000, 0x53: 0xa000, 0x54: 0xa000, 0x55: 0xa000, 0x56: 0xa000, 0x57: 0xa000,
- 0x58: 0xa000, 0x59: 0xa000, 0x5a: 0xa000,
- 0x61: 0xa000, 0x62: 0xa000, 0x63: 0xa000,
- 0x64: 0xa000, 0x65: 0xa000, 0x66: 0xa000, 0x67: 0xa000, 0x68: 0xa000, 0x69: 0xa000,
- 0x6a: 0xa000, 0x6b: 0xa000, 0x6c: 0xa000, 0x6d: 0xa000, 0x6e: 0xa000, 0x6f: 0xa000,
- 0x70: 0xa000, 0x72: 0xa000, 0x73: 0xa000, 0x74: 0xa000, 0x75: 0xa000,
- 0x76: 0xa000, 0x77: 0xa000, 0x78: 0xa000, 0x79: 0xa000, 0x7a: 0xa000,
- // Block 0x2, offset 0x80
- // Block 0x3, offset 0xc0
- 0xc0: 0x2f6f, 0xc1: 0x2f74, 0xc2: 0x4688, 0xc3: 0x2f79, 0xc4: 0x4697, 0xc5: 0x469c,
- 0xc6: 0xa000, 0xc7: 0x46a6, 0xc8: 0x2fe2, 0xc9: 0x2fe7, 0xca: 0x46ab, 0xcb: 0x2ffb,
- 0xcc: 0x306e, 0xcd: 0x3073, 0xce: 0x3078, 0xcf: 0x46bf, 0xd1: 0x3104,
- 0xd2: 0x3127, 0xd3: 0x312c, 0xd4: 0x46c9, 0xd5: 0x46ce, 0xd6: 0x46dd,
- 0xd8: 0xa000, 0xd9: 0x31b3, 0xda: 0x31b8, 0xdb: 0x31bd, 0xdc: 0x470f, 0xdd: 0x3235,
- 0xe0: 0x327b, 0xe1: 0x3280, 0xe2: 0x4719, 0xe3: 0x3285,
- 0xe4: 0x4728, 0xe5: 0x472d, 0xe6: 0xa000, 0xe7: 0x4737, 0xe8: 0x32ee, 0xe9: 0x32f3,
- 0xea: 0x473c, 0xeb: 0x3307, 0xec: 0x337f, 0xed: 0x3384, 0xee: 0x3389, 0xef: 0x4750,
- 0xf1: 0x3415, 0xf2: 0x3438, 0xf3: 0x343d, 0xf4: 0x475a, 0xf5: 0x475f,
- 0xf6: 0x476e, 0xf8: 0xa000, 0xf9: 0x34c9, 0xfa: 0x34ce, 0xfb: 0x34d3,
- 0xfc: 0x47a0, 0xfd: 0x3550, 0xff: 0x3569,
- // Block 0x4, offset 0x100
- 0x100: 0x2f7e, 0x101: 0x328a, 0x102: 0x468d, 0x103: 0x471e, 0x104: 0x2f9c, 0x105: 0x32a8,
- 0x106: 0x2fb0, 0x107: 0x32bc, 0x108: 0x2fb5, 0x109: 0x32c1, 0x10a: 0x2fba, 0x10b: 0x32c6,
- 0x10c: 0x2fbf, 0x10d: 0x32cb, 0x10e: 0x2fc9, 0x10f: 0x32d5,
- 0x112: 0x46b0, 0x113: 0x4741, 0x114: 0x2ff1, 0x115: 0x32fd, 0x116: 0x2ff6, 0x117: 0x3302,
- 0x118: 0x3014, 0x119: 0x3320, 0x11a: 0x3005, 0x11b: 0x3311, 0x11c: 0x302d, 0x11d: 0x3339,
- 0x11e: 0x3037, 0x11f: 0x3343, 0x120: 0x303c, 0x121: 0x3348, 0x122: 0x3046, 0x123: 0x3352,
- 0x124: 0x304b, 0x125: 0x3357, 0x128: 0x307d, 0x129: 0x338e,
- 0x12a: 0x3082, 0x12b: 0x3393, 0x12c: 0x3087, 0x12d: 0x3398, 0x12e: 0x30aa, 0x12f: 0x33b6,
- 0x130: 0x308c, 0x132: 0x195d, 0x133: 0x19e7, 0x134: 0x30b4, 0x135: 0x33c0,
- 0x136: 0x30c8, 0x137: 0x33d9, 0x139: 0x30d2, 0x13a: 0x33e3, 0x13b: 0x30dc,
- 0x13c: 0x33ed, 0x13d: 0x30d7, 0x13e: 0x33e8, 0x13f: 0x1bac,
- // Block 0x5, offset 0x140
- 0x140: 0x1c34, 0x143: 0x30ff, 0x144: 0x3410, 0x145: 0x3118,
- 0x146: 0x3429, 0x147: 0x310e, 0x148: 0x341f, 0x149: 0x1c5c,
- 0x14c: 0x46d3, 0x14d: 0x4764, 0x14e: 0x3131, 0x14f: 0x3442, 0x150: 0x313b, 0x151: 0x344c,
- 0x154: 0x3159, 0x155: 0x346a, 0x156: 0x3172, 0x157: 0x3483,
- 0x158: 0x3163, 0x159: 0x3474, 0x15a: 0x46f6, 0x15b: 0x4787, 0x15c: 0x317c, 0x15d: 0x348d,
- 0x15e: 0x318b, 0x15f: 0x349c, 0x160: 0x46fb, 0x161: 0x478c, 0x162: 0x31a4, 0x163: 0x34ba,
- 0x164: 0x3195, 0x165: 0x34ab, 0x168: 0x4705, 0x169: 0x4796,
- 0x16a: 0x470a, 0x16b: 0x479b, 0x16c: 0x31c2, 0x16d: 0x34d8, 0x16e: 0x31cc, 0x16f: 0x34e2,
- 0x170: 0x31d1, 0x171: 0x34e7, 0x172: 0x31ef, 0x173: 0x3505, 0x174: 0x3212, 0x175: 0x3528,
- 0x176: 0x323a, 0x177: 0x3555, 0x178: 0x324e, 0x179: 0x325d, 0x17a: 0x357d, 0x17b: 0x3267,
- 0x17c: 0x3587, 0x17d: 0x326c, 0x17e: 0x358c, 0x17f: 0x00a7,
- // Block 0x6, offset 0x180
- 0x184: 0x2dee, 0x185: 0x2df4,
- 0x186: 0x2dfa, 0x187: 0x1972, 0x188: 0x1975, 0x189: 0x1a08, 0x18a: 0x1987, 0x18b: 0x198a,
- 0x18c: 0x1a3e, 0x18d: 0x2f88, 0x18e: 0x3294, 0x18f: 0x3096, 0x190: 0x33a2, 0x191: 0x3140,
- 0x192: 0x3451, 0x193: 0x31d6, 0x194: 0x34ec, 0x195: 0x39cf, 0x196: 0x3b5e, 0x197: 0x39c8,
- 0x198: 0x3b57, 0x199: 0x39d6, 0x19a: 0x3b65, 0x19b: 0x39c1, 0x19c: 0x3b50,
- 0x19e: 0x38b0, 0x19f: 0x3a3f, 0x1a0: 0x38a9, 0x1a1: 0x3a38, 0x1a2: 0x35b3, 0x1a3: 0x35c5,
- 0x1a6: 0x3041, 0x1a7: 0x334d, 0x1a8: 0x30be, 0x1a9: 0x33cf,
- 0x1aa: 0x46ec, 0x1ab: 0x477d, 0x1ac: 0x3990, 0x1ad: 0x3b1f, 0x1ae: 0x35d7, 0x1af: 0x35dd,
- 0x1b0: 0x33c5, 0x1b1: 0x1942, 0x1b2: 0x1945, 0x1b3: 0x19cf, 0x1b4: 0x3028, 0x1b5: 0x3334,
- 0x1b8: 0x30fa, 0x1b9: 0x340b, 0x1ba: 0x38b7, 0x1bb: 0x3a46,
- 0x1bc: 0x35ad, 0x1bd: 0x35bf, 0x1be: 0x35b9, 0x1bf: 0x35cb,
- // Block 0x7, offset 0x1c0
- 0x1c0: 0x2f8d, 0x1c1: 0x3299, 0x1c2: 0x2f92, 0x1c3: 0x329e, 0x1c4: 0x300a, 0x1c5: 0x3316,
- 0x1c6: 0x300f, 0x1c7: 0x331b, 0x1c8: 0x309b, 0x1c9: 0x33a7, 0x1ca: 0x30a0, 0x1cb: 0x33ac,
- 0x1cc: 0x3145, 0x1cd: 0x3456, 0x1ce: 0x314a, 0x1cf: 0x345b, 0x1d0: 0x3168, 0x1d1: 0x3479,
- 0x1d2: 0x316d, 0x1d3: 0x347e, 0x1d4: 0x31db, 0x1d5: 0x34f1, 0x1d6: 0x31e0, 0x1d7: 0x34f6,
- 0x1d8: 0x3186, 0x1d9: 0x3497, 0x1da: 0x319f, 0x1db: 0x34b5,
- 0x1de: 0x305a, 0x1df: 0x3366,
- 0x1e6: 0x4692, 0x1e7: 0x4723, 0x1e8: 0x46ba, 0x1e9: 0x474b,
- 0x1ea: 0x395f, 0x1eb: 0x3aee, 0x1ec: 0x393c, 0x1ed: 0x3acb, 0x1ee: 0x46d8, 0x1ef: 0x4769,
- 0x1f0: 0x3958, 0x1f1: 0x3ae7, 0x1f2: 0x3244, 0x1f3: 0x355f,
- // Block 0x8, offset 0x200
- 0x200: 0x9932, 0x201: 0x9932, 0x202: 0x9932, 0x203: 0x9932, 0x204: 0x9932, 0x205: 0x8132,
- 0x206: 0x9932, 0x207: 0x9932, 0x208: 0x9932, 0x209: 0x9932, 0x20a: 0x9932, 0x20b: 0x9932,
- 0x20c: 0x9932, 0x20d: 0x8132, 0x20e: 0x8132, 0x20f: 0x9932, 0x210: 0x8132, 0x211: 0x9932,
- 0x212: 0x8132, 0x213: 0x9932, 0x214: 0x9932, 0x215: 0x8133, 0x216: 0x812d, 0x217: 0x812d,
- 0x218: 0x812d, 0x219: 0x812d, 0x21a: 0x8133, 0x21b: 0x992b, 0x21c: 0x812d, 0x21d: 0x812d,
- 0x21e: 0x812d, 0x21f: 0x812d, 0x220: 0x812d, 0x221: 0x8129, 0x222: 0x8129, 0x223: 0x992d,
- 0x224: 0x992d, 0x225: 0x992d, 0x226: 0x992d, 0x227: 0x9929, 0x228: 0x9929, 0x229: 0x812d,
- 0x22a: 0x812d, 0x22b: 0x812d, 0x22c: 0x812d, 0x22d: 0x992d, 0x22e: 0x992d, 0x22f: 0x812d,
- 0x230: 0x992d, 0x231: 0x992d, 0x232: 0x812d, 0x233: 0x812d, 0x234: 0x8101, 0x235: 0x8101,
- 0x236: 0x8101, 0x237: 0x8101, 0x238: 0x9901, 0x239: 0x812d, 0x23a: 0x812d, 0x23b: 0x812d,
- 0x23c: 0x812d, 0x23d: 0x8132, 0x23e: 0x8132, 0x23f: 0x8132,
- // Block 0x9, offset 0x240
- 0x240: 0x49ae, 0x241: 0x49b3, 0x242: 0x9932, 0x243: 0x49b8, 0x244: 0x4a71, 0x245: 0x9936,
- 0x246: 0x8132, 0x247: 0x812d, 0x248: 0x812d, 0x249: 0x812d, 0x24a: 0x8132, 0x24b: 0x8132,
- 0x24c: 0x8132, 0x24d: 0x812d, 0x24e: 0x812d, 0x250: 0x8132, 0x251: 0x8132,
- 0x252: 0x8132, 0x253: 0x812d, 0x254: 0x812d, 0x255: 0x812d, 0x256: 0x812d, 0x257: 0x8132,
- 0x258: 0x8133, 0x259: 0x812d, 0x25a: 0x812d, 0x25b: 0x8132, 0x25c: 0x8134, 0x25d: 0x8135,
- 0x25e: 0x8135, 0x25f: 0x8134, 0x260: 0x8135, 0x261: 0x8135, 0x262: 0x8134, 0x263: 0x8132,
- 0x264: 0x8132, 0x265: 0x8132, 0x266: 0x8132, 0x267: 0x8132, 0x268: 0x8132, 0x269: 0x8132,
- 0x26a: 0x8132, 0x26b: 0x8132, 0x26c: 0x8132, 0x26d: 0x8132, 0x26e: 0x8132, 0x26f: 0x8132,
- 0x274: 0x0170,
- 0x27a: 0x42a5,
- 0x27e: 0x0037,
- // Block 0xa, offset 0x280
- 0x284: 0x425a, 0x285: 0x447b,
- 0x286: 0x35e9, 0x287: 0x00ce, 0x288: 0x3607, 0x289: 0x3613, 0x28a: 0x3625,
- 0x28c: 0x3643, 0x28e: 0x3655, 0x28f: 0x3673, 0x290: 0x3e08, 0x291: 0xa000,
- 0x295: 0xa000, 0x297: 0xa000,
- 0x299: 0xa000,
- 0x29f: 0xa000, 0x2a1: 0xa000,
- 0x2a5: 0xa000, 0x2a9: 0xa000,
- 0x2aa: 0x3637, 0x2ab: 0x3667, 0x2ac: 0x47fe, 0x2ad: 0x3697, 0x2ae: 0x4828, 0x2af: 0x36a9,
- 0x2b0: 0x3e70, 0x2b1: 0xa000, 0x2b5: 0xa000,
- 0x2b7: 0xa000, 0x2b9: 0xa000,
- 0x2bf: 0xa000,
- // Block 0xb, offset 0x2c0
- 0x2c1: 0xa000, 0x2c5: 0xa000,
- 0x2c9: 0xa000, 0x2ca: 0x4840, 0x2cb: 0x485e,
- 0x2cc: 0x36c7, 0x2cd: 0x36df, 0x2ce: 0x4876, 0x2d0: 0x01be, 0x2d1: 0x01d0,
- 0x2d2: 0x01ac, 0x2d3: 0x430c, 0x2d4: 0x4312, 0x2d5: 0x01fa, 0x2d6: 0x01e8,
- 0x2f0: 0x01d6, 0x2f1: 0x01eb, 0x2f2: 0x01ee, 0x2f4: 0x0188, 0x2f5: 0x01c7,
- 0x2f9: 0x01a6,
- // Block 0xc, offset 0x300
- 0x300: 0x3721, 0x301: 0x372d, 0x303: 0x371b,
- 0x306: 0xa000, 0x307: 0x3709,
- 0x30c: 0x375d, 0x30d: 0x3745, 0x30e: 0x376f, 0x310: 0xa000,
- 0x313: 0xa000, 0x315: 0xa000, 0x316: 0xa000, 0x317: 0xa000,
- 0x318: 0xa000, 0x319: 0x3751, 0x31a: 0xa000,
- 0x31e: 0xa000, 0x323: 0xa000,
- 0x327: 0xa000,
- 0x32b: 0xa000, 0x32d: 0xa000,
- 0x330: 0xa000, 0x333: 0xa000, 0x335: 0xa000,
- 0x336: 0xa000, 0x337: 0xa000, 0x338: 0xa000, 0x339: 0x37d5, 0x33a: 0xa000,
- 0x33e: 0xa000,
- // Block 0xd, offset 0x340
- 0x341: 0x3733, 0x342: 0x37b7,
- 0x350: 0x370f, 0x351: 0x3793,
- 0x352: 0x3715, 0x353: 0x3799, 0x356: 0x3727, 0x357: 0x37ab,
- 0x358: 0xa000, 0x359: 0xa000, 0x35a: 0x3829, 0x35b: 0x382f, 0x35c: 0x3739, 0x35d: 0x37bd,
- 0x35e: 0x373f, 0x35f: 0x37c3, 0x362: 0x374b, 0x363: 0x37cf,
- 0x364: 0x3757, 0x365: 0x37db, 0x366: 0x3763, 0x367: 0x37e7, 0x368: 0xa000, 0x369: 0xa000,
- 0x36a: 0x3835, 0x36b: 0x383b, 0x36c: 0x378d, 0x36d: 0x3811, 0x36e: 0x3769, 0x36f: 0x37ed,
- 0x370: 0x3775, 0x371: 0x37f9, 0x372: 0x377b, 0x373: 0x37ff, 0x374: 0x3781, 0x375: 0x3805,
- 0x378: 0x3787, 0x379: 0x380b,
- // Block 0xe, offset 0x380
- 0x387: 0x1d61,
- 0x391: 0x812d,
- 0x392: 0x8132, 0x393: 0x8132, 0x394: 0x8132, 0x395: 0x8132, 0x396: 0x812d, 0x397: 0x8132,
- 0x398: 0x8132, 0x399: 0x8132, 0x39a: 0x812e, 0x39b: 0x812d, 0x39c: 0x8132, 0x39d: 0x8132,
- 0x39e: 0x8132, 0x39f: 0x8132, 0x3a0: 0x8132, 0x3a1: 0x8132, 0x3a2: 0x812d, 0x3a3: 0x812d,
- 0x3a4: 0x812d, 0x3a5: 0x812d, 0x3a6: 0x812d, 0x3a7: 0x812d, 0x3a8: 0x8132, 0x3a9: 0x8132,
- 0x3aa: 0x812d, 0x3ab: 0x8132, 0x3ac: 0x8132, 0x3ad: 0x812e, 0x3ae: 0x8131, 0x3af: 0x8132,
- 0x3b0: 0x8105, 0x3b1: 0x8106, 0x3b2: 0x8107, 0x3b3: 0x8108, 0x3b4: 0x8109, 0x3b5: 0x810a,
- 0x3b6: 0x810b, 0x3b7: 0x810c, 0x3b8: 0x810d, 0x3b9: 0x810e, 0x3ba: 0x810e, 0x3bb: 0x810f,
- 0x3bc: 0x8110, 0x3bd: 0x8111, 0x3bf: 0x8112,
- // Block 0xf, offset 0x3c0
- 0x3c8: 0xa000, 0x3ca: 0xa000, 0x3cb: 0x8116,
- 0x3cc: 0x8117, 0x3cd: 0x8118, 0x3ce: 0x8119, 0x3cf: 0x811a, 0x3d0: 0x811b, 0x3d1: 0x811c,
- 0x3d2: 0x811d, 0x3d3: 0x9932, 0x3d4: 0x9932, 0x3d5: 0x992d, 0x3d6: 0x812d, 0x3d7: 0x8132,
- 0x3d8: 0x8132, 0x3d9: 0x8132, 0x3da: 0x8132, 0x3db: 0x8132, 0x3dc: 0x812d, 0x3dd: 0x8132,
- 0x3de: 0x8132, 0x3df: 0x812d,
- 0x3f0: 0x811e, 0x3f5: 0x1d84,
- 0x3f6: 0x2013, 0x3f7: 0x204f, 0x3f8: 0x204a,
- // Block 0x10, offset 0x400
- 0x405: 0xa000,
- 0x406: 0x2d26, 0x407: 0xa000, 0x408: 0x2d2e, 0x409: 0xa000, 0x40a: 0x2d36, 0x40b: 0xa000,
- 0x40c: 0x2d3e, 0x40d: 0xa000, 0x40e: 0x2d46, 0x411: 0xa000,
- 0x412: 0x2d4e,
- 0x434: 0x8102, 0x435: 0x9900,
- 0x43a: 0xa000, 0x43b: 0x2d56,
- 0x43c: 0xa000, 0x43d: 0x2d5e, 0x43e: 0xa000, 0x43f: 0xa000,
- // Block 0x11, offset 0x440
- 0x440: 0x0069, 0x441: 0x006b, 0x442: 0x006f, 0x443: 0x0083, 0x444: 0x00f5, 0x445: 0x00f8,
- 0x446: 0x0413, 0x447: 0x0085, 0x448: 0x0089, 0x449: 0x008b, 0x44a: 0x0104, 0x44b: 0x0107,
- 0x44c: 0x010a, 0x44d: 0x008f, 0x44f: 0x0097, 0x450: 0x009b, 0x451: 0x00e0,
- 0x452: 0x009f, 0x453: 0x00fe, 0x454: 0x0417, 0x455: 0x041b, 0x456: 0x00a1, 0x457: 0x00a9,
- 0x458: 0x00ab, 0x459: 0x0423, 0x45a: 0x012b, 0x45b: 0x00ad, 0x45c: 0x0427, 0x45d: 0x01be,
- 0x45e: 0x01c1, 0x45f: 0x01c4, 0x460: 0x01fa, 0x461: 0x01fd, 0x462: 0x0093, 0x463: 0x00a5,
- 0x464: 0x00ab, 0x465: 0x00ad, 0x466: 0x01be, 0x467: 0x01c1, 0x468: 0x01eb, 0x469: 0x01fa,
- 0x46a: 0x01fd,
- 0x478: 0x020c,
- // Block 0x12, offset 0x480
- 0x49b: 0x00fb, 0x49c: 0x0087, 0x49d: 0x0101,
- 0x49e: 0x00d4, 0x49f: 0x010a, 0x4a0: 0x008d, 0x4a1: 0x010d, 0x4a2: 0x0110, 0x4a3: 0x0116,
- 0x4a4: 0x011c, 0x4a5: 0x011f, 0x4a6: 0x0122, 0x4a7: 0x042b, 0x4a8: 0x016a, 0x4a9: 0x0128,
- 0x4aa: 0x042f, 0x4ab: 0x016d, 0x4ac: 0x0131, 0x4ad: 0x012e, 0x4ae: 0x0134, 0x4af: 0x0137,
- 0x4b0: 0x013a, 0x4b1: 0x013d, 0x4b2: 0x0140, 0x4b3: 0x014c, 0x4b4: 0x014f, 0x4b5: 0x00ec,
- 0x4b6: 0x0152, 0x4b7: 0x0155, 0x4b8: 0x041f, 0x4b9: 0x0158, 0x4ba: 0x015b, 0x4bb: 0x00b5,
- 0x4bc: 0x015e, 0x4bd: 0x0161, 0x4be: 0x0164, 0x4bf: 0x01d0,
- // Block 0x13, offset 0x4c0
- 0x4c0: 0x2f97, 0x4c1: 0x32a3, 0x4c2: 0x2fa1, 0x4c3: 0x32ad, 0x4c4: 0x2fa6, 0x4c5: 0x32b2,
- 0x4c6: 0x2fab, 0x4c7: 0x32b7, 0x4c8: 0x38cc, 0x4c9: 0x3a5b, 0x4ca: 0x2fc4, 0x4cb: 0x32d0,
- 0x4cc: 0x2fce, 0x4cd: 0x32da, 0x4ce: 0x2fdd, 0x4cf: 0x32e9, 0x4d0: 0x2fd3, 0x4d1: 0x32df,
- 0x4d2: 0x2fd8, 0x4d3: 0x32e4, 0x4d4: 0x38ef, 0x4d5: 0x3a7e, 0x4d6: 0x38f6, 0x4d7: 0x3a85,
- 0x4d8: 0x3019, 0x4d9: 0x3325, 0x4da: 0x301e, 0x4db: 0x332a, 0x4dc: 0x3904, 0x4dd: 0x3a93,
- 0x4de: 0x3023, 0x4df: 0x332f, 0x4e0: 0x3032, 0x4e1: 0x333e, 0x4e2: 0x3050, 0x4e3: 0x335c,
- 0x4e4: 0x305f, 0x4e5: 0x336b, 0x4e6: 0x3055, 0x4e7: 0x3361, 0x4e8: 0x3064, 0x4e9: 0x3370,
- 0x4ea: 0x3069, 0x4eb: 0x3375, 0x4ec: 0x30af, 0x4ed: 0x33bb, 0x4ee: 0x390b, 0x4ef: 0x3a9a,
- 0x4f0: 0x30b9, 0x4f1: 0x33ca, 0x4f2: 0x30c3, 0x4f3: 0x33d4, 0x4f4: 0x30cd, 0x4f5: 0x33de,
- 0x4f6: 0x46c4, 0x4f7: 0x4755, 0x4f8: 0x3912, 0x4f9: 0x3aa1, 0x4fa: 0x30e6, 0x4fb: 0x33f7,
- 0x4fc: 0x30e1, 0x4fd: 0x33f2, 0x4fe: 0x30eb, 0x4ff: 0x33fc,
- // Block 0x14, offset 0x500
- 0x500: 0x30f0, 0x501: 0x3401, 0x502: 0x30f5, 0x503: 0x3406, 0x504: 0x3109, 0x505: 0x341a,
- 0x506: 0x3113, 0x507: 0x3424, 0x508: 0x3122, 0x509: 0x3433, 0x50a: 0x311d, 0x50b: 0x342e,
- 0x50c: 0x3935, 0x50d: 0x3ac4, 0x50e: 0x3943, 0x50f: 0x3ad2, 0x510: 0x394a, 0x511: 0x3ad9,
- 0x512: 0x3951, 0x513: 0x3ae0, 0x514: 0x314f, 0x515: 0x3460, 0x516: 0x3154, 0x517: 0x3465,
- 0x518: 0x315e, 0x519: 0x346f, 0x51a: 0x46f1, 0x51b: 0x4782, 0x51c: 0x3997, 0x51d: 0x3b26,
- 0x51e: 0x3177, 0x51f: 0x3488, 0x520: 0x3181, 0x521: 0x3492, 0x522: 0x4700, 0x523: 0x4791,
- 0x524: 0x399e, 0x525: 0x3b2d, 0x526: 0x39a5, 0x527: 0x3b34, 0x528: 0x39ac, 0x529: 0x3b3b,
- 0x52a: 0x3190, 0x52b: 0x34a1, 0x52c: 0x319a, 0x52d: 0x34b0, 0x52e: 0x31ae, 0x52f: 0x34c4,
- 0x530: 0x31a9, 0x531: 0x34bf, 0x532: 0x31ea, 0x533: 0x3500, 0x534: 0x31f9, 0x535: 0x350f,
- 0x536: 0x31f4, 0x537: 0x350a, 0x538: 0x39b3, 0x539: 0x3b42, 0x53a: 0x39ba, 0x53b: 0x3b49,
- 0x53c: 0x31fe, 0x53d: 0x3514, 0x53e: 0x3203, 0x53f: 0x3519,
- // Block 0x15, offset 0x540
- 0x540: 0x3208, 0x541: 0x351e, 0x542: 0x320d, 0x543: 0x3523, 0x544: 0x321c, 0x545: 0x3532,
- 0x546: 0x3217, 0x547: 0x352d, 0x548: 0x3221, 0x549: 0x353c, 0x54a: 0x3226, 0x54b: 0x3541,
- 0x54c: 0x322b, 0x54d: 0x3546, 0x54e: 0x3249, 0x54f: 0x3564, 0x550: 0x3262, 0x551: 0x3582,
- 0x552: 0x3271, 0x553: 0x3591, 0x554: 0x3276, 0x555: 0x3596, 0x556: 0x337a, 0x557: 0x34a6,
- 0x558: 0x3537, 0x559: 0x3573, 0x55a: 0x1be0, 0x55b: 0x42d7,
- 0x560: 0x46a1, 0x561: 0x4732, 0x562: 0x2f83, 0x563: 0x328f,
- 0x564: 0x3878, 0x565: 0x3a07, 0x566: 0x3871, 0x567: 0x3a00, 0x568: 0x3886, 0x569: 0x3a15,
- 0x56a: 0x387f, 0x56b: 0x3a0e, 0x56c: 0x38be, 0x56d: 0x3a4d, 0x56e: 0x3894, 0x56f: 0x3a23,
- 0x570: 0x388d, 0x571: 0x3a1c, 0x572: 0x38a2, 0x573: 0x3a31, 0x574: 0x389b, 0x575: 0x3a2a,
- 0x576: 0x38c5, 0x577: 0x3a54, 0x578: 0x46b5, 0x579: 0x4746, 0x57a: 0x3000, 0x57b: 0x330c,
- 0x57c: 0x2fec, 0x57d: 0x32f8, 0x57e: 0x38da, 0x57f: 0x3a69,
- // Block 0x16, offset 0x580
- 0x580: 0x38d3, 0x581: 0x3a62, 0x582: 0x38e8, 0x583: 0x3a77, 0x584: 0x38e1, 0x585: 0x3a70,
- 0x586: 0x38fd, 0x587: 0x3a8c, 0x588: 0x3091, 0x589: 0x339d, 0x58a: 0x30a5, 0x58b: 0x33b1,
- 0x58c: 0x46e7, 0x58d: 0x4778, 0x58e: 0x3136, 0x58f: 0x3447, 0x590: 0x3920, 0x591: 0x3aaf,
- 0x592: 0x3919, 0x593: 0x3aa8, 0x594: 0x392e, 0x595: 0x3abd, 0x596: 0x3927, 0x597: 0x3ab6,
- 0x598: 0x3989, 0x599: 0x3b18, 0x59a: 0x396d, 0x59b: 0x3afc, 0x59c: 0x3966, 0x59d: 0x3af5,
- 0x59e: 0x397b, 0x59f: 0x3b0a, 0x5a0: 0x3974, 0x5a1: 0x3b03, 0x5a2: 0x3982, 0x5a3: 0x3b11,
- 0x5a4: 0x31e5, 0x5a5: 0x34fb, 0x5a6: 0x31c7, 0x5a7: 0x34dd, 0x5a8: 0x39e4, 0x5a9: 0x3b73,
- 0x5aa: 0x39dd, 0x5ab: 0x3b6c, 0x5ac: 0x39f2, 0x5ad: 0x3b81, 0x5ae: 0x39eb, 0x5af: 0x3b7a,
- 0x5b0: 0x39f9, 0x5b1: 0x3b88, 0x5b2: 0x3230, 0x5b3: 0x354b, 0x5b4: 0x3258, 0x5b5: 0x3578,
- 0x5b6: 0x3253, 0x5b7: 0x356e, 0x5b8: 0x323f, 0x5b9: 0x355a,
- // Block 0x17, offset 0x5c0
- 0x5c0: 0x4804, 0x5c1: 0x480a, 0x5c2: 0x491e, 0x5c3: 0x4936, 0x5c4: 0x4926, 0x5c5: 0x493e,
- 0x5c6: 0x492e, 0x5c7: 0x4946, 0x5c8: 0x47aa, 0x5c9: 0x47b0, 0x5ca: 0x488e, 0x5cb: 0x48a6,
- 0x5cc: 0x4896, 0x5cd: 0x48ae, 0x5ce: 0x489e, 0x5cf: 0x48b6, 0x5d0: 0x4816, 0x5d1: 0x481c,
- 0x5d2: 0x3db8, 0x5d3: 0x3dc8, 0x5d4: 0x3dc0, 0x5d5: 0x3dd0,
- 0x5d8: 0x47b6, 0x5d9: 0x47bc, 0x5da: 0x3ce8, 0x5db: 0x3cf8, 0x5dc: 0x3cf0, 0x5dd: 0x3d00,
- 0x5e0: 0x482e, 0x5e1: 0x4834, 0x5e2: 0x494e, 0x5e3: 0x4966,
- 0x5e4: 0x4956, 0x5e5: 0x496e, 0x5e6: 0x495e, 0x5e7: 0x4976, 0x5e8: 0x47c2, 0x5e9: 0x47c8,
- 0x5ea: 0x48be, 0x5eb: 0x48d6, 0x5ec: 0x48c6, 0x5ed: 0x48de, 0x5ee: 0x48ce, 0x5ef: 0x48e6,
- 0x5f0: 0x4846, 0x5f1: 0x484c, 0x5f2: 0x3e18, 0x5f3: 0x3e30, 0x5f4: 0x3e20, 0x5f5: 0x3e38,
- 0x5f6: 0x3e28, 0x5f7: 0x3e40, 0x5f8: 0x47ce, 0x5f9: 0x47d4, 0x5fa: 0x3d18, 0x5fb: 0x3d30,
- 0x5fc: 0x3d20, 0x5fd: 0x3d38, 0x5fe: 0x3d28, 0x5ff: 0x3d40,
- // Block 0x18, offset 0x600
- 0x600: 0x4852, 0x601: 0x4858, 0x602: 0x3e48, 0x603: 0x3e58, 0x604: 0x3e50, 0x605: 0x3e60,
- 0x608: 0x47da, 0x609: 0x47e0, 0x60a: 0x3d48, 0x60b: 0x3d58,
- 0x60c: 0x3d50, 0x60d: 0x3d60, 0x610: 0x4864, 0x611: 0x486a,
- 0x612: 0x3e80, 0x613: 0x3e98, 0x614: 0x3e88, 0x615: 0x3ea0, 0x616: 0x3e90, 0x617: 0x3ea8,
- 0x619: 0x47e6, 0x61b: 0x3d68, 0x61d: 0x3d70,
- 0x61f: 0x3d78, 0x620: 0x487c, 0x621: 0x4882, 0x622: 0x497e, 0x623: 0x4996,
- 0x624: 0x4986, 0x625: 0x499e, 0x626: 0x498e, 0x627: 0x49a6, 0x628: 0x47ec, 0x629: 0x47f2,
- 0x62a: 0x48ee, 0x62b: 0x4906, 0x62c: 0x48f6, 0x62d: 0x490e, 0x62e: 0x48fe, 0x62f: 0x4916,
- 0x630: 0x47f8, 0x631: 0x431e, 0x632: 0x3691, 0x633: 0x4324, 0x634: 0x4822, 0x635: 0x432a,
- 0x636: 0x36a3, 0x637: 0x4330, 0x638: 0x36c1, 0x639: 0x4336, 0x63a: 0x36d9, 0x63b: 0x433c,
- 0x63c: 0x4870, 0x63d: 0x4342,
- // Block 0x19, offset 0x640
- 0x640: 0x3da0, 0x641: 0x3da8, 0x642: 0x4184, 0x643: 0x41a2, 0x644: 0x418e, 0x645: 0x41ac,
- 0x646: 0x4198, 0x647: 0x41b6, 0x648: 0x3cd8, 0x649: 0x3ce0, 0x64a: 0x40d0, 0x64b: 0x40ee,
- 0x64c: 0x40da, 0x64d: 0x40f8, 0x64e: 0x40e4, 0x64f: 0x4102, 0x650: 0x3de8, 0x651: 0x3df0,
- 0x652: 0x41c0, 0x653: 0x41de, 0x654: 0x41ca, 0x655: 0x41e8, 0x656: 0x41d4, 0x657: 0x41f2,
- 0x658: 0x3d08, 0x659: 0x3d10, 0x65a: 0x410c, 0x65b: 0x412a, 0x65c: 0x4116, 0x65d: 0x4134,
- 0x65e: 0x4120, 0x65f: 0x413e, 0x660: 0x3ec0, 0x661: 0x3ec8, 0x662: 0x41fc, 0x663: 0x421a,
- 0x664: 0x4206, 0x665: 0x4224, 0x666: 0x4210, 0x667: 0x422e, 0x668: 0x3d80, 0x669: 0x3d88,
- 0x66a: 0x4148, 0x66b: 0x4166, 0x66c: 0x4152, 0x66d: 0x4170, 0x66e: 0x415c, 0x66f: 0x417a,
- 0x670: 0x3685, 0x671: 0x367f, 0x672: 0x3d90, 0x673: 0x368b, 0x674: 0x3d98,
- 0x676: 0x4810, 0x677: 0x3db0, 0x678: 0x35f5, 0x679: 0x35ef, 0x67a: 0x35e3, 0x67b: 0x42ee,
- 0x67c: 0x35fb, 0x67d: 0x4287, 0x67e: 0x01d3, 0x67f: 0x4287,
- // Block 0x1a, offset 0x680
- 0x680: 0x42a0, 0x681: 0x4482, 0x682: 0x3dd8, 0x683: 0x369d, 0x684: 0x3de0,
- 0x686: 0x483a, 0x687: 0x3df8, 0x688: 0x3601, 0x689: 0x42f4, 0x68a: 0x360d, 0x68b: 0x42fa,
- 0x68c: 0x3619, 0x68d: 0x4489, 0x68e: 0x4490, 0x68f: 0x4497, 0x690: 0x36b5, 0x691: 0x36af,
- 0x692: 0x3e00, 0x693: 0x44e4, 0x696: 0x36bb, 0x697: 0x3e10,
- 0x698: 0x3631, 0x699: 0x362b, 0x69a: 0x361f, 0x69b: 0x4300, 0x69d: 0x449e,
- 0x69e: 0x44a5, 0x69f: 0x44ac, 0x6a0: 0x36eb, 0x6a1: 0x36e5, 0x6a2: 0x3e68, 0x6a3: 0x44ec,
- 0x6a4: 0x36cd, 0x6a5: 0x36d3, 0x6a6: 0x36f1, 0x6a7: 0x3e78, 0x6a8: 0x3661, 0x6a9: 0x365b,
- 0x6aa: 0x364f, 0x6ab: 0x430c, 0x6ac: 0x3649, 0x6ad: 0x4474, 0x6ae: 0x447b, 0x6af: 0x0081,
- 0x6b2: 0x3eb0, 0x6b3: 0x36f7, 0x6b4: 0x3eb8,
- 0x6b6: 0x4888, 0x6b7: 0x3ed0, 0x6b8: 0x363d, 0x6b9: 0x4306, 0x6ba: 0x366d, 0x6bb: 0x4318,
- 0x6bc: 0x3679, 0x6bd: 0x425a, 0x6be: 0x428c,
- // Block 0x1b, offset 0x6c0
- 0x6c0: 0x1bd8, 0x6c1: 0x1bdc, 0x6c2: 0x0047, 0x6c3: 0x1c54, 0x6c5: 0x1be8,
- 0x6c6: 0x1bec, 0x6c7: 0x00e9, 0x6c9: 0x1c58, 0x6ca: 0x008f, 0x6cb: 0x0051,
- 0x6cc: 0x0051, 0x6cd: 0x0051, 0x6ce: 0x0091, 0x6cf: 0x00da, 0x6d0: 0x0053, 0x6d1: 0x0053,
- 0x6d2: 0x0059, 0x6d3: 0x0099, 0x6d5: 0x005d, 0x6d6: 0x198d,
- 0x6d9: 0x0061, 0x6da: 0x0063, 0x6db: 0x0065, 0x6dc: 0x0065, 0x6dd: 0x0065,
- 0x6e0: 0x199f, 0x6e1: 0x1bc8, 0x6e2: 0x19a8,
- 0x6e4: 0x0075, 0x6e6: 0x01b8, 0x6e8: 0x0075,
- 0x6ea: 0x0057, 0x6eb: 0x42d2, 0x6ec: 0x0045, 0x6ed: 0x0047, 0x6ef: 0x008b,
- 0x6f0: 0x004b, 0x6f1: 0x004d, 0x6f3: 0x005b, 0x6f4: 0x009f, 0x6f5: 0x0215,
- 0x6f6: 0x0218, 0x6f7: 0x021b, 0x6f8: 0x021e, 0x6f9: 0x0093, 0x6fb: 0x1b98,
- 0x6fc: 0x01e8, 0x6fd: 0x01c1, 0x6fe: 0x0179, 0x6ff: 0x01a0,
- // Block 0x1c, offset 0x700
- 0x700: 0x0463, 0x705: 0x0049,
- 0x706: 0x0089, 0x707: 0x008b, 0x708: 0x0093, 0x709: 0x0095,
- 0x710: 0x222e, 0x711: 0x223a,
- 0x712: 0x22ee, 0x713: 0x2216, 0x714: 0x229a, 0x715: 0x2222, 0x716: 0x22a0, 0x717: 0x22b8,
- 0x718: 0x22c4, 0x719: 0x2228, 0x71a: 0x22ca, 0x71b: 0x2234, 0x71c: 0x22be, 0x71d: 0x22d0,
- 0x71e: 0x22d6, 0x71f: 0x1cbc, 0x720: 0x0053, 0x721: 0x195a, 0x722: 0x1ba4, 0x723: 0x1963,
- 0x724: 0x006d, 0x725: 0x19ab, 0x726: 0x1bd0, 0x727: 0x1d48, 0x728: 0x1966, 0x729: 0x0071,
- 0x72a: 0x19b7, 0x72b: 0x1bd4, 0x72c: 0x0059, 0x72d: 0x0047, 0x72e: 0x0049, 0x72f: 0x005b,
- 0x730: 0x0093, 0x731: 0x19e4, 0x732: 0x1c18, 0x733: 0x19ed, 0x734: 0x00ad, 0x735: 0x1a62,
- 0x736: 0x1c4c, 0x737: 0x1d5c, 0x738: 0x19f0, 0x739: 0x00b1, 0x73a: 0x1a65, 0x73b: 0x1c50,
- 0x73c: 0x0099, 0x73d: 0x0087, 0x73e: 0x0089, 0x73f: 0x009b,
- // Block 0x1d, offset 0x740
- 0x741: 0x3c06, 0x743: 0xa000, 0x744: 0x3c0d, 0x745: 0xa000,
- 0x747: 0x3c14, 0x748: 0xa000, 0x749: 0x3c1b,
- 0x74d: 0xa000,
- 0x760: 0x2f65, 0x761: 0xa000, 0x762: 0x3c29,
- 0x764: 0xa000, 0x765: 0xa000,
- 0x76d: 0x3c22, 0x76e: 0x2f60, 0x76f: 0x2f6a,
- 0x770: 0x3c30, 0x771: 0x3c37, 0x772: 0xa000, 0x773: 0xa000, 0x774: 0x3c3e, 0x775: 0x3c45,
- 0x776: 0xa000, 0x777: 0xa000, 0x778: 0x3c4c, 0x779: 0x3c53, 0x77a: 0xa000, 0x77b: 0xa000,
- 0x77c: 0xa000, 0x77d: 0xa000,
- // Block 0x1e, offset 0x780
- 0x780: 0x3c5a, 0x781: 0x3c61, 0x782: 0xa000, 0x783: 0xa000, 0x784: 0x3c76, 0x785: 0x3c7d,
- 0x786: 0xa000, 0x787: 0xa000, 0x788: 0x3c84, 0x789: 0x3c8b,
- 0x791: 0xa000,
- 0x792: 0xa000,
- 0x7a2: 0xa000,
- 0x7a8: 0xa000, 0x7a9: 0xa000,
- 0x7ab: 0xa000, 0x7ac: 0x3ca0, 0x7ad: 0x3ca7, 0x7ae: 0x3cae, 0x7af: 0x3cb5,
- 0x7b2: 0xa000, 0x7b3: 0xa000, 0x7b4: 0xa000, 0x7b5: 0xa000,
- // Block 0x1f, offset 0x7c0
- 0x7e0: 0x0023, 0x7e1: 0x0025, 0x7e2: 0x0027, 0x7e3: 0x0029,
- 0x7e4: 0x002b, 0x7e5: 0x002d, 0x7e6: 0x002f, 0x7e7: 0x0031, 0x7e8: 0x0033, 0x7e9: 0x1882,
- 0x7ea: 0x1885, 0x7eb: 0x1888, 0x7ec: 0x188b, 0x7ed: 0x188e, 0x7ee: 0x1891, 0x7ef: 0x1894,
- 0x7f0: 0x1897, 0x7f1: 0x189a, 0x7f2: 0x189d, 0x7f3: 0x18a6, 0x7f4: 0x1a68, 0x7f5: 0x1a6c,
- 0x7f6: 0x1a70, 0x7f7: 0x1a74, 0x7f8: 0x1a78, 0x7f9: 0x1a7c, 0x7fa: 0x1a80, 0x7fb: 0x1a84,
- 0x7fc: 0x1a88, 0x7fd: 0x1c80, 0x7fe: 0x1c85, 0x7ff: 0x1c8a,
- // Block 0x20, offset 0x800
- 0x800: 0x1c8f, 0x801: 0x1c94, 0x802: 0x1c99, 0x803: 0x1c9e, 0x804: 0x1ca3, 0x805: 0x1ca8,
- 0x806: 0x1cad, 0x807: 0x1cb2, 0x808: 0x187f, 0x809: 0x18a3, 0x80a: 0x18c7, 0x80b: 0x18eb,
- 0x80c: 0x190f, 0x80d: 0x1918, 0x80e: 0x191e, 0x80f: 0x1924, 0x810: 0x192a, 0x811: 0x1b60,
- 0x812: 0x1b64, 0x813: 0x1b68, 0x814: 0x1b6c, 0x815: 0x1b70, 0x816: 0x1b74, 0x817: 0x1b78,
- 0x818: 0x1b7c, 0x819: 0x1b80, 0x81a: 0x1b84, 0x81b: 0x1b88, 0x81c: 0x1af4, 0x81d: 0x1af8,
- 0x81e: 0x1afc, 0x81f: 0x1b00, 0x820: 0x1b04, 0x821: 0x1b08, 0x822: 0x1b0c, 0x823: 0x1b10,
- 0x824: 0x1b14, 0x825: 0x1b18, 0x826: 0x1b1c, 0x827: 0x1b20, 0x828: 0x1b24, 0x829: 0x1b28,
- 0x82a: 0x1b2c, 0x82b: 0x1b30, 0x82c: 0x1b34, 0x82d: 0x1b38, 0x82e: 0x1b3c, 0x82f: 0x1b40,
- 0x830: 0x1b44, 0x831: 0x1b48, 0x832: 0x1b4c, 0x833: 0x1b50, 0x834: 0x1b54, 0x835: 0x1b58,
- 0x836: 0x0043, 0x837: 0x0045, 0x838: 0x0047, 0x839: 0x0049, 0x83a: 0x004b, 0x83b: 0x004d,
- 0x83c: 0x004f, 0x83d: 0x0051, 0x83e: 0x0053, 0x83f: 0x0055,
- // Block 0x21, offset 0x840
- 0x840: 0x06bf, 0x841: 0x06e3, 0x842: 0x06ef, 0x843: 0x06ff, 0x844: 0x0707, 0x845: 0x0713,
- 0x846: 0x071b, 0x847: 0x0723, 0x848: 0x072f, 0x849: 0x0783, 0x84a: 0x079b, 0x84b: 0x07ab,
- 0x84c: 0x07bb, 0x84d: 0x07cb, 0x84e: 0x07db, 0x84f: 0x07fb, 0x850: 0x07ff, 0x851: 0x0803,
- 0x852: 0x0837, 0x853: 0x085f, 0x854: 0x086f, 0x855: 0x0877, 0x856: 0x087b, 0x857: 0x0887,
- 0x858: 0x08a3, 0x859: 0x08a7, 0x85a: 0x08bf, 0x85b: 0x08c3, 0x85c: 0x08cb, 0x85d: 0x08db,
- 0x85e: 0x0977, 0x85f: 0x098b, 0x860: 0x09cb, 0x861: 0x09df, 0x862: 0x09e7, 0x863: 0x09eb,
- 0x864: 0x09fb, 0x865: 0x0a17, 0x866: 0x0a43, 0x867: 0x0a4f, 0x868: 0x0a6f, 0x869: 0x0a7b,
- 0x86a: 0x0a7f, 0x86b: 0x0a83, 0x86c: 0x0a9b, 0x86d: 0x0a9f, 0x86e: 0x0acb, 0x86f: 0x0ad7,
- 0x870: 0x0adf, 0x871: 0x0ae7, 0x872: 0x0af7, 0x873: 0x0aff, 0x874: 0x0b07, 0x875: 0x0b33,
- 0x876: 0x0b37, 0x877: 0x0b3f, 0x878: 0x0b43, 0x879: 0x0b4b, 0x87a: 0x0b53, 0x87b: 0x0b63,
- 0x87c: 0x0b7f, 0x87d: 0x0bf7, 0x87e: 0x0c0b, 0x87f: 0x0c0f,
- // Block 0x22, offset 0x880
- 0x880: 0x0c8f, 0x881: 0x0c93, 0x882: 0x0ca7, 0x883: 0x0cab, 0x884: 0x0cb3, 0x885: 0x0cbb,
- 0x886: 0x0cc3, 0x887: 0x0ccf, 0x888: 0x0cf7, 0x889: 0x0d07, 0x88a: 0x0d1b, 0x88b: 0x0d8b,
- 0x88c: 0x0d97, 0x88d: 0x0da7, 0x88e: 0x0db3, 0x88f: 0x0dbf, 0x890: 0x0dc7, 0x891: 0x0dcb,
- 0x892: 0x0dcf, 0x893: 0x0dd3, 0x894: 0x0dd7, 0x895: 0x0e8f, 0x896: 0x0ed7, 0x897: 0x0ee3,
- 0x898: 0x0ee7, 0x899: 0x0eeb, 0x89a: 0x0eef, 0x89b: 0x0ef7, 0x89c: 0x0efb, 0x89d: 0x0f0f,
- 0x89e: 0x0f2b, 0x89f: 0x0f33, 0x8a0: 0x0f73, 0x8a1: 0x0f77, 0x8a2: 0x0f7f, 0x8a3: 0x0f83,
- 0x8a4: 0x0f8b, 0x8a5: 0x0f8f, 0x8a6: 0x0fb3, 0x8a7: 0x0fb7, 0x8a8: 0x0fd3, 0x8a9: 0x0fd7,
- 0x8aa: 0x0fdb, 0x8ab: 0x0fdf, 0x8ac: 0x0ff3, 0x8ad: 0x1017, 0x8ae: 0x101b, 0x8af: 0x101f,
- 0x8b0: 0x1043, 0x8b1: 0x1083, 0x8b2: 0x1087, 0x8b3: 0x10a7, 0x8b4: 0x10b7, 0x8b5: 0x10bf,
- 0x8b6: 0x10df, 0x8b7: 0x1103, 0x8b8: 0x1147, 0x8b9: 0x114f, 0x8ba: 0x1163, 0x8bb: 0x116f,
- 0x8bc: 0x1177, 0x8bd: 0x117f, 0x8be: 0x1183, 0x8bf: 0x1187,
- // Block 0x23, offset 0x8c0
- 0x8c0: 0x119f, 0x8c1: 0x11a3, 0x8c2: 0x11bf, 0x8c3: 0x11c7, 0x8c4: 0x11cf, 0x8c5: 0x11d3,
- 0x8c6: 0x11df, 0x8c7: 0x11e7, 0x8c8: 0x11eb, 0x8c9: 0x11ef, 0x8ca: 0x11f7, 0x8cb: 0x11fb,
- 0x8cc: 0x129b, 0x8cd: 0x12af, 0x8ce: 0x12e3, 0x8cf: 0x12e7, 0x8d0: 0x12ef, 0x8d1: 0x131b,
- 0x8d2: 0x1323, 0x8d3: 0x132b, 0x8d4: 0x1333, 0x8d5: 0x136f, 0x8d6: 0x1373, 0x8d7: 0x137b,
- 0x8d8: 0x137f, 0x8d9: 0x1383, 0x8da: 0x13af, 0x8db: 0x13b3, 0x8dc: 0x13bb, 0x8dd: 0x13cf,
- 0x8de: 0x13d3, 0x8df: 0x13ef, 0x8e0: 0x13f7, 0x8e1: 0x13fb, 0x8e2: 0x141f, 0x8e3: 0x143f,
- 0x8e4: 0x1453, 0x8e5: 0x1457, 0x8e6: 0x145f, 0x8e7: 0x148b, 0x8e8: 0x148f, 0x8e9: 0x149f,
- 0x8ea: 0x14c3, 0x8eb: 0x14cf, 0x8ec: 0x14df, 0x8ed: 0x14f7, 0x8ee: 0x14ff, 0x8ef: 0x1503,
- 0x8f0: 0x1507, 0x8f1: 0x150b, 0x8f2: 0x1517, 0x8f3: 0x151b, 0x8f4: 0x1523, 0x8f5: 0x153f,
- 0x8f6: 0x1543, 0x8f7: 0x1547, 0x8f8: 0x155f, 0x8f9: 0x1563, 0x8fa: 0x156b, 0x8fb: 0x157f,
- 0x8fc: 0x1583, 0x8fd: 0x1587, 0x8fe: 0x158f, 0x8ff: 0x1593,
- // Block 0x24, offset 0x900
- 0x906: 0xa000, 0x90b: 0xa000,
- 0x90c: 0x3f08, 0x90d: 0xa000, 0x90e: 0x3f10, 0x90f: 0xa000, 0x910: 0x3f18, 0x911: 0xa000,
- 0x912: 0x3f20, 0x913: 0xa000, 0x914: 0x3f28, 0x915: 0xa000, 0x916: 0x3f30, 0x917: 0xa000,
- 0x918: 0x3f38, 0x919: 0xa000, 0x91a: 0x3f40, 0x91b: 0xa000, 0x91c: 0x3f48, 0x91d: 0xa000,
- 0x91e: 0x3f50, 0x91f: 0xa000, 0x920: 0x3f58, 0x921: 0xa000, 0x922: 0x3f60,
- 0x924: 0xa000, 0x925: 0x3f68, 0x926: 0xa000, 0x927: 0x3f70, 0x928: 0xa000, 0x929: 0x3f78,
- 0x92f: 0xa000,
- 0x930: 0x3f80, 0x931: 0x3f88, 0x932: 0xa000, 0x933: 0x3f90, 0x934: 0x3f98, 0x935: 0xa000,
- 0x936: 0x3fa0, 0x937: 0x3fa8, 0x938: 0xa000, 0x939: 0x3fb0, 0x93a: 0x3fb8, 0x93b: 0xa000,
- 0x93c: 0x3fc0, 0x93d: 0x3fc8,
- // Block 0x25, offset 0x940
- 0x954: 0x3f00,
- 0x959: 0x9903, 0x95a: 0x9903, 0x95b: 0x42dc, 0x95c: 0x42e2, 0x95d: 0xa000,
- 0x95e: 0x3fd0, 0x95f: 0x26b4,
- 0x966: 0xa000,
- 0x96b: 0xa000, 0x96c: 0x3fe0, 0x96d: 0xa000, 0x96e: 0x3fe8, 0x96f: 0xa000,
- 0x970: 0x3ff0, 0x971: 0xa000, 0x972: 0x3ff8, 0x973: 0xa000, 0x974: 0x4000, 0x975: 0xa000,
- 0x976: 0x4008, 0x977: 0xa000, 0x978: 0x4010, 0x979: 0xa000, 0x97a: 0x4018, 0x97b: 0xa000,
- 0x97c: 0x4020, 0x97d: 0xa000, 0x97e: 0x4028, 0x97f: 0xa000,
- // Block 0x26, offset 0x980
- 0x980: 0x4030, 0x981: 0xa000, 0x982: 0x4038, 0x984: 0xa000, 0x985: 0x4040,
- 0x986: 0xa000, 0x987: 0x4048, 0x988: 0xa000, 0x989: 0x4050,
- 0x98f: 0xa000, 0x990: 0x4058, 0x991: 0x4060,
- 0x992: 0xa000, 0x993: 0x4068, 0x994: 0x4070, 0x995: 0xa000, 0x996: 0x4078, 0x997: 0x4080,
- 0x998: 0xa000, 0x999: 0x4088, 0x99a: 0x4090, 0x99b: 0xa000, 0x99c: 0x4098, 0x99d: 0x40a0,
- 0x9af: 0xa000,
- 0x9b0: 0xa000, 0x9b1: 0xa000, 0x9b2: 0xa000, 0x9b4: 0x3fd8,
- 0x9b7: 0x40a8, 0x9b8: 0x40b0, 0x9b9: 0x40b8, 0x9ba: 0x40c0,
- 0x9bd: 0xa000, 0x9be: 0x40c8, 0x9bf: 0x26c9,
- // Block 0x27, offset 0x9c0
- 0x9c0: 0x0367, 0x9c1: 0x032b, 0x9c2: 0x032f, 0x9c3: 0x0333, 0x9c4: 0x037b, 0x9c5: 0x0337,
- 0x9c6: 0x033b, 0x9c7: 0x033f, 0x9c8: 0x0343, 0x9c9: 0x0347, 0x9ca: 0x034b, 0x9cb: 0x034f,
- 0x9cc: 0x0353, 0x9cd: 0x0357, 0x9ce: 0x035b, 0x9cf: 0x49bd, 0x9d0: 0x49c3, 0x9d1: 0x49c9,
- 0x9d2: 0x49cf, 0x9d3: 0x49d5, 0x9d4: 0x49db, 0x9d5: 0x49e1, 0x9d6: 0x49e7, 0x9d7: 0x49ed,
- 0x9d8: 0x49f3, 0x9d9: 0x49f9, 0x9da: 0x49ff, 0x9db: 0x4a05, 0x9dc: 0x4a0b, 0x9dd: 0x4a11,
- 0x9de: 0x4a17, 0x9df: 0x4a1d, 0x9e0: 0x4a23, 0x9e1: 0x4a29, 0x9e2: 0x4a2f, 0x9e3: 0x4a35,
- 0x9e4: 0x03c3, 0x9e5: 0x035f, 0x9e6: 0x0363, 0x9e7: 0x03e7, 0x9e8: 0x03eb, 0x9e9: 0x03ef,
- 0x9ea: 0x03f3, 0x9eb: 0x03f7, 0x9ec: 0x03fb, 0x9ed: 0x03ff, 0x9ee: 0x036b, 0x9ef: 0x0403,
- 0x9f0: 0x0407, 0x9f1: 0x036f, 0x9f2: 0x0373, 0x9f3: 0x0377, 0x9f4: 0x037f, 0x9f5: 0x0383,
- 0x9f6: 0x0387, 0x9f7: 0x038b, 0x9f8: 0x038f, 0x9f9: 0x0393, 0x9fa: 0x0397, 0x9fb: 0x039b,
- 0x9fc: 0x039f, 0x9fd: 0x03a3, 0x9fe: 0x03a7, 0x9ff: 0x03ab,
- // Block 0x28, offset 0xa00
- 0xa00: 0x03af, 0xa01: 0x03b3, 0xa02: 0x040b, 0xa03: 0x040f, 0xa04: 0x03b7, 0xa05: 0x03bb,
- 0xa06: 0x03bf, 0xa07: 0x03c7, 0xa08: 0x03cb, 0xa09: 0x03cf, 0xa0a: 0x03d3, 0xa0b: 0x03d7,
- 0xa0c: 0x03db, 0xa0d: 0x03df, 0xa0e: 0x03e3,
- 0xa12: 0x06bf, 0xa13: 0x071b, 0xa14: 0x06cb, 0xa15: 0x097b, 0xa16: 0x06cf, 0xa17: 0x06e7,
- 0xa18: 0x06d3, 0xa19: 0x0f93, 0xa1a: 0x0707, 0xa1b: 0x06db, 0xa1c: 0x06c3, 0xa1d: 0x09ff,
- 0xa1e: 0x098f, 0xa1f: 0x072f,
- // Block 0x29, offset 0xa40
- 0xa40: 0x2054, 0xa41: 0x205a, 0xa42: 0x2060, 0xa43: 0x2066, 0xa44: 0x206c, 0xa45: 0x2072,
- 0xa46: 0x2078, 0xa47: 0x207e, 0xa48: 0x2084, 0xa49: 0x208a, 0xa4a: 0x2090, 0xa4b: 0x2096,
- 0xa4c: 0x209c, 0xa4d: 0x20a2, 0xa4e: 0x2726, 0xa4f: 0x272f, 0xa50: 0x2738, 0xa51: 0x2741,
- 0xa52: 0x274a, 0xa53: 0x2753, 0xa54: 0x275c, 0xa55: 0x2765, 0xa56: 0x276e, 0xa57: 0x2780,
- 0xa58: 0x2789, 0xa59: 0x2792, 0xa5a: 0x279b, 0xa5b: 0x27a4, 0xa5c: 0x2777, 0xa5d: 0x2bac,
- 0xa5e: 0x2aed, 0xa60: 0x20a8, 0xa61: 0x20c0, 0xa62: 0x20b4, 0xa63: 0x2108,
- 0xa64: 0x20c6, 0xa65: 0x20e4, 0xa66: 0x20ae, 0xa67: 0x20de, 0xa68: 0x20ba, 0xa69: 0x20f0,
- 0xa6a: 0x2120, 0xa6b: 0x213e, 0xa6c: 0x2138, 0xa6d: 0x212c, 0xa6e: 0x217a, 0xa6f: 0x210e,
- 0xa70: 0x211a, 0xa71: 0x2132, 0xa72: 0x2126, 0xa73: 0x2150, 0xa74: 0x20fc, 0xa75: 0x2144,
- 0xa76: 0x216e, 0xa77: 0x2156, 0xa78: 0x20ea, 0xa79: 0x20cc, 0xa7a: 0x2102, 0xa7b: 0x2114,
- 0xa7c: 0x214a, 0xa7d: 0x20d2, 0xa7e: 0x2174, 0xa7f: 0x20f6,
- // Block 0x2a, offset 0xa80
- 0xa80: 0x215c, 0xa81: 0x20d8, 0xa82: 0x2162, 0xa83: 0x2168, 0xa84: 0x092f, 0xa85: 0x0b03,
- 0xa86: 0x0ca7, 0xa87: 0x10c7,
- 0xa90: 0x1bc4, 0xa91: 0x18a9,
- 0xa92: 0x18ac, 0xa93: 0x18af, 0xa94: 0x18b2, 0xa95: 0x18b5, 0xa96: 0x18b8, 0xa97: 0x18bb,
- 0xa98: 0x18be, 0xa99: 0x18c1, 0xa9a: 0x18ca, 0xa9b: 0x18cd, 0xa9c: 0x18d0, 0xa9d: 0x18d3,
- 0xa9e: 0x18d6, 0xa9f: 0x18d9, 0xaa0: 0x0313, 0xaa1: 0x031b, 0xaa2: 0x031f, 0xaa3: 0x0327,
- 0xaa4: 0x032b, 0xaa5: 0x032f, 0xaa6: 0x0337, 0xaa7: 0x033f, 0xaa8: 0x0343, 0xaa9: 0x034b,
- 0xaaa: 0x034f, 0xaab: 0x0353, 0xaac: 0x0357, 0xaad: 0x035b, 0xaae: 0x2e18, 0xaaf: 0x2e20,
- 0xab0: 0x2e28, 0xab1: 0x2e30, 0xab2: 0x2e38, 0xab3: 0x2e40, 0xab4: 0x2e48, 0xab5: 0x2e50,
- 0xab6: 0x2e60, 0xab7: 0x2e68, 0xab8: 0x2e70, 0xab9: 0x2e78, 0xaba: 0x2e80, 0xabb: 0x2e88,
- 0xabc: 0x2ed3, 0xabd: 0x2e9b, 0xabe: 0x2e58,
- // Block 0x2b, offset 0xac0
- 0xac0: 0x06bf, 0xac1: 0x071b, 0xac2: 0x06cb, 0xac3: 0x097b, 0xac4: 0x071f, 0xac5: 0x07af,
- 0xac6: 0x06c7, 0xac7: 0x07ab, 0xac8: 0x070b, 0xac9: 0x0887, 0xaca: 0x0d07, 0xacb: 0x0e8f,
- 0xacc: 0x0dd7, 0xacd: 0x0d1b, 0xace: 0x145f, 0xacf: 0x098b, 0xad0: 0x0ccf, 0xad1: 0x0d4b,
- 0xad2: 0x0d0b, 0xad3: 0x104b, 0xad4: 0x08fb, 0xad5: 0x0f03, 0xad6: 0x1387, 0xad7: 0x105f,
- 0xad8: 0x0843, 0xad9: 0x108f, 0xada: 0x0f9b, 0xadb: 0x0a17, 0xadc: 0x140f, 0xadd: 0x077f,
- 0xade: 0x08ab, 0xadf: 0x0df7, 0xae0: 0x1527, 0xae1: 0x0743, 0xae2: 0x07d3, 0xae3: 0x0d9b,
- 0xae4: 0x06cf, 0xae5: 0x06e7, 0xae6: 0x06d3, 0xae7: 0x0adb, 0xae8: 0x08ef, 0xae9: 0x087f,
- 0xaea: 0x0a57, 0xaeb: 0x0a4b, 0xaec: 0x0feb, 0xaed: 0x073f, 0xaee: 0x139b, 0xaef: 0x089b,
- 0xaf0: 0x09f3, 0xaf1: 0x18dc, 0xaf2: 0x18df, 0xaf3: 0x18e2, 0xaf4: 0x18e5, 0xaf5: 0x18ee,
- 0xaf6: 0x18f1, 0xaf7: 0x18f4, 0xaf8: 0x18f7, 0xaf9: 0x18fa, 0xafa: 0x18fd, 0xafb: 0x1900,
- 0xafc: 0x1903, 0xafd: 0x1906, 0xafe: 0x1909, 0xaff: 0x1912,
- // Block 0x2c, offset 0xb00
- 0xb00: 0x1cc6, 0xb01: 0x1cd5, 0xb02: 0x1ce4, 0xb03: 0x1cf3, 0xb04: 0x1d02, 0xb05: 0x1d11,
- 0xb06: 0x1d20, 0xb07: 0x1d2f, 0xb08: 0x1d3e, 0xb09: 0x218c, 0xb0a: 0x219e, 0xb0b: 0x21b0,
- 0xb0c: 0x1954, 0xb0d: 0x1c04, 0xb0e: 0x19d2, 0xb0f: 0x1ba8, 0xb10: 0x04cb, 0xb11: 0x04d3,
- 0xb12: 0x04db, 0xb13: 0x04e3, 0xb14: 0x04eb, 0xb15: 0x04ef, 0xb16: 0x04f3, 0xb17: 0x04f7,
- 0xb18: 0x04fb, 0xb19: 0x04ff, 0xb1a: 0x0503, 0xb1b: 0x0507, 0xb1c: 0x050b, 0xb1d: 0x050f,
- 0xb1e: 0x0513, 0xb1f: 0x0517, 0xb20: 0x051b, 0xb21: 0x0523, 0xb22: 0x0527, 0xb23: 0x052b,
- 0xb24: 0x052f, 0xb25: 0x0533, 0xb26: 0x0537, 0xb27: 0x053b, 0xb28: 0x053f, 0xb29: 0x0543,
- 0xb2a: 0x0547, 0xb2b: 0x054b, 0xb2c: 0x054f, 0xb2d: 0x0553, 0xb2e: 0x0557, 0xb2f: 0x055b,
- 0xb30: 0x055f, 0xb31: 0x0563, 0xb32: 0x0567, 0xb33: 0x056f, 0xb34: 0x0577, 0xb35: 0x057f,
- 0xb36: 0x0583, 0xb37: 0x0587, 0xb38: 0x058b, 0xb39: 0x058f, 0xb3a: 0x0593, 0xb3b: 0x0597,
- 0xb3c: 0x059b, 0xb3d: 0x059f, 0xb3e: 0x05a3,
- // Block 0x2d, offset 0xb40
- 0xb40: 0x2b0c, 0xb41: 0x29a8, 0xb42: 0x2b1c, 0xb43: 0x2880, 0xb44: 0x2ee4, 0xb45: 0x288a,
- 0xb46: 0x2894, 0xb47: 0x2f28, 0xb48: 0x29b5, 0xb49: 0x289e, 0xb4a: 0x28a8, 0xb4b: 0x28b2,
- 0xb4c: 0x29dc, 0xb4d: 0x29e9, 0xb4e: 0x29c2, 0xb4f: 0x29cf, 0xb50: 0x2ea9, 0xb51: 0x29f6,
- 0xb52: 0x2a03, 0xb53: 0x2bbe, 0xb54: 0x26bb, 0xb55: 0x2bd1, 0xb56: 0x2be4, 0xb57: 0x2b2c,
- 0xb58: 0x2a10, 0xb59: 0x2bf7, 0xb5a: 0x2c0a, 0xb5b: 0x2a1d, 0xb5c: 0x28bc, 0xb5d: 0x28c6,
- 0xb5e: 0x2eb7, 0xb5f: 0x2a2a, 0xb60: 0x2b3c, 0xb61: 0x2ef5, 0xb62: 0x28d0, 0xb63: 0x28da,
- 0xb64: 0x2a37, 0xb65: 0x28e4, 0xb66: 0x28ee, 0xb67: 0x26d0, 0xb68: 0x26d7, 0xb69: 0x28f8,
- 0xb6a: 0x2902, 0xb6b: 0x2c1d, 0xb6c: 0x2a44, 0xb6d: 0x2b4c, 0xb6e: 0x2c30, 0xb6f: 0x2a51,
- 0xb70: 0x2916, 0xb71: 0x290c, 0xb72: 0x2f3c, 0xb73: 0x2a5e, 0xb74: 0x2c43, 0xb75: 0x2920,
- 0xb76: 0x2b5c, 0xb77: 0x292a, 0xb78: 0x2a78, 0xb79: 0x2934, 0xb7a: 0x2a85, 0xb7b: 0x2f06,
- 0xb7c: 0x2a6b, 0xb7d: 0x2b6c, 0xb7e: 0x2a92, 0xb7f: 0x26de,
- // Block 0x2e, offset 0xb80
- 0xb80: 0x2f17, 0xb81: 0x293e, 0xb82: 0x2948, 0xb83: 0x2a9f, 0xb84: 0x2952, 0xb85: 0x295c,
- 0xb86: 0x2966, 0xb87: 0x2b7c, 0xb88: 0x2aac, 0xb89: 0x26e5, 0xb8a: 0x2c56, 0xb8b: 0x2e90,
- 0xb8c: 0x2b8c, 0xb8d: 0x2ab9, 0xb8e: 0x2ec5, 0xb8f: 0x2970, 0xb90: 0x297a, 0xb91: 0x2ac6,
- 0xb92: 0x26ec, 0xb93: 0x2ad3, 0xb94: 0x2b9c, 0xb95: 0x26f3, 0xb96: 0x2c69, 0xb97: 0x2984,
- 0xb98: 0x1cb7, 0xb99: 0x1ccb, 0xb9a: 0x1cda, 0xb9b: 0x1ce9, 0xb9c: 0x1cf8, 0xb9d: 0x1d07,
- 0xb9e: 0x1d16, 0xb9f: 0x1d25, 0xba0: 0x1d34, 0xba1: 0x1d43, 0xba2: 0x2192, 0xba3: 0x21a4,
- 0xba4: 0x21b6, 0xba5: 0x21c2, 0xba6: 0x21ce, 0xba7: 0x21da, 0xba8: 0x21e6, 0xba9: 0x21f2,
- 0xbaa: 0x21fe, 0xbab: 0x220a, 0xbac: 0x2246, 0xbad: 0x2252, 0xbae: 0x225e, 0xbaf: 0x226a,
- 0xbb0: 0x2276, 0xbb1: 0x1c14, 0xbb2: 0x19c6, 0xbb3: 0x1936, 0xbb4: 0x1be4, 0xbb5: 0x1a47,
- 0xbb6: 0x1a56, 0xbb7: 0x19cc, 0xbb8: 0x1bfc, 0xbb9: 0x1c00, 0xbba: 0x1960, 0xbbb: 0x2701,
- 0xbbc: 0x270f, 0xbbd: 0x26fa, 0xbbe: 0x2708, 0xbbf: 0x2ae0,
- // Block 0x2f, offset 0xbc0
- 0xbc0: 0x1a4a, 0xbc1: 0x1a32, 0xbc2: 0x1c60, 0xbc3: 0x1a1a, 0xbc4: 0x19f3, 0xbc5: 0x1969,
- 0xbc6: 0x1978, 0xbc7: 0x1948, 0xbc8: 0x1bf0, 0xbc9: 0x1d52, 0xbca: 0x1a4d, 0xbcb: 0x1a35,
- 0xbcc: 0x1c64, 0xbcd: 0x1c70, 0xbce: 0x1a26, 0xbcf: 0x19fc, 0xbd0: 0x1957, 0xbd1: 0x1c1c,
- 0xbd2: 0x1bb0, 0xbd3: 0x1b9c, 0xbd4: 0x1bcc, 0xbd5: 0x1c74, 0xbd6: 0x1a29, 0xbd7: 0x19c9,
- 0xbd8: 0x19ff, 0xbd9: 0x19de, 0xbda: 0x1a41, 0xbdb: 0x1c78, 0xbdc: 0x1a2c, 0xbdd: 0x19c0,
- 0xbde: 0x1a02, 0xbdf: 0x1c3c, 0xbe0: 0x1bf4, 0xbe1: 0x1a14, 0xbe2: 0x1c24, 0xbe3: 0x1c40,
- 0xbe4: 0x1bf8, 0xbe5: 0x1a17, 0xbe6: 0x1c28, 0xbe7: 0x22e8, 0xbe8: 0x22fc, 0xbe9: 0x1996,
- 0xbea: 0x1c20, 0xbeb: 0x1bb4, 0xbec: 0x1ba0, 0xbed: 0x1c48, 0xbee: 0x2716, 0xbef: 0x27ad,
- 0xbf0: 0x1a59, 0xbf1: 0x1a44, 0xbf2: 0x1c7c, 0xbf3: 0x1a2f, 0xbf4: 0x1a50, 0xbf5: 0x1a38,
- 0xbf6: 0x1c68, 0xbf7: 0x1a1d, 0xbf8: 0x19f6, 0xbf9: 0x1981, 0xbfa: 0x1a53, 0xbfb: 0x1a3b,
- 0xbfc: 0x1c6c, 0xbfd: 0x1a20, 0xbfe: 0x19f9, 0xbff: 0x1984,
- // Block 0x30, offset 0xc00
- 0xc00: 0x1c2c, 0xc01: 0x1bb8, 0xc02: 0x1d4d, 0xc03: 0x1939, 0xc04: 0x19ba, 0xc05: 0x19bd,
- 0xc06: 0x22f5, 0xc07: 0x1b94, 0xc08: 0x19c3, 0xc09: 0x194b, 0xc0a: 0x19e1, 0xc0b: 0x194e,
- 0xc0c: 0x19ea, 0xc0d: 0x196c, 0xc0e: 0x196f, 0xc0f: 0x1a05, 0xc10: 0x1a0b, 0xc11: 0x1a0e,
- 0xc12: 0x1c30, 0xc13: 0x1a11, 0xc14: 0x1a23, 0xc15: 0x1c38, 0xc16: 0x1c44, 0xc17: 0x1990,
- 0xc18: 0x1d57, 0xc19: 0x1bbc, 0xc1a: 0x1993, 0xc1b: 0x1a5c, 0xc1c: 0x19a5, 0xc1d: 0x19b4,
- 0xc1e: 0x22e2, 0xc1f: 0x22dc, 0xc20: 0x1cc1, 0xc21: 0x1cd0, 0xc22: 0x1cdf, 0xc23: 0x1cee,
- 0xc24: 0x1cfd, 0xc25: 0x1d0c, 0xc26: 0x1d1b, 0xc27: 0x1d2a, 0xc28: 0x1d39, 0xc29: 0x2186,
- 0xc2a: 0x2198, 0xc2b: 0x21aa, 0xc2c: 0x21bc, 0xc2d: 0x21c8, 0xc2e: 0x21d4, 0xc2f: 0x21e0,
- 0xc30: 0x21ec, 0xc31: 0x21f8, 0xc32: 0x2204, 0xc33: 0x2240, 0xc34: 0x224c, 0xc35: 0x2258,
- 0xc36: 0x2264, 0xc37: 0x2270, 0xc38: 0x227c, 0xc39: 0x2282, 0xc3a: 0x2288, 0xc3b: 0x228e,
- 0xc3c: 0x2294, 0xc3d: 0x22a6, 0xc3e: 0x22ac, 0xc3f: 0x1c10,
- // Block 0x31, offset 0xc40
- 0xc40: 0x1377, 0xc41: 0x0cfb, 0xc42: 0x13d3, 0xc43: 0x139f, 0xc44: 0x0e57, 0xc45: 0x06eb,
- 0xc46: 0x08df, 0xc47: 0x162b, 0xc48: 0x162b, 0xc49: 0x0a0b, 0xc4a: 0x145f, 0xc4b: 0x0943,
- 0xc4c: 0x0a07, 0xc4d: 0x0bef, 0xc4e: 0x0fcf, 0xc4f: 0x115f, 0xc50: 0x1297, 0xc51: 0x12d3,
- 0xc52: 0x1307, 0xc53: 0x141b, 0xc54: 0x0d73, 0xc55: 0x0dff, 0xc56: 0x0eab, 0xc57: 0x0f43,
- 0xc58: 0x125f, 0xc59: 0x1447, 0xc5a: 0x1573, 0xc5b: 0x070f, 0xc5c: 0x08b3, 0xc5d: 0x0d87,
- 0xc5e: 0x0ecf, 0xc5f: 0x1293, 0xc60: 0x15c3, 0xc61: 0x0ab3, 0xc62: 0x0e77, 0xc63: 0x1283,
- 0xc64: 0x1317, 0xc65: 0x0c23, 0xc66: 0x11bb, 0xc67: 0x12df, 0xc68: 0x0b1f, 0xc69: 0x0d0f,
- 0xc6a: 0x0e17, 0xc6b: 0x0f1b, 0xc6c: 0x1427, 0xc6d: 0x074f, 0xc6e: 0x07e7, 0xc6f: 0x0853,
- 0xc70: 0x0c8b, 0xc71: 0x0d7f, 0xc72: 0x0ecb, 0xc73: 0x0fef, 0xc74: 0x1177, 0xc75: 0x128b,
- 0xc76: 0x12a3, 0xc77: 0x13c7, 0xc78: 0x14ef, 0xc79: 0x15a3, 0xc7a: 0x15bf, 0xc7b: 0x102b,
- 0xc7c: 0x106b, 0xc7d: 0x1123, 0xc7e: 0x1243, 0xc7f: 0x147b,
- // Block 0x32, offset 0xc80
- 0xc80: 0x15cb, 0xc81: 0x134b, 0xc82: 0x09c7, 0xc83: 0x0b3b, 0xc84: 0x10db, 0xc85: 0x119b,
- 0xc86: 0x0eff, 0xc87: 0x1033, 0xc88: 0x1397, 0xc89: 0x14e7, 0xc8a: 0x09c3, 0xc8b: 0x0a8f,
- 0xc8c: 0x0d77, 0xc8d: 0x0e2b, 0xc8e: 0x0e5f, 0xc8f: 0x1113, 0xc90: 0x113b, 0xc91: 0x14a7,
- 0xc92: 0x084f, 0xc93: 0x11a7, 0xc94: 0x07f3, 0xc95: 0x07ef, 0xc96: 0x1097, 0xc97: 0x1127,
- 0xc98: 0x125b, 0xc99: 0x14af, 0xc9a: 0x1367, 0xc9b: 0x0c27, 0xc9c: 0x0d73, 0xc9d: 0x1357,
- 0xc9e: 0x06f7, 0xc9f: 0x0a63, 0xca0: 0x0b93, 0xca1: 0x0f2f, 0xca2: 0x0faf, 0xca3: 0x0873,
- 0xca4: 0x103b, 0xca5: 0x075f, 0xca6: 0x0b77, 0xca7: 0x06d7, 0xca8: 0x0deb, 0xca9: 0x0ca3,
- 0xcaa: 0x110f, 0xcab: 0x08c7, 0xcac: 0x09b3, 0xcad: 0x0ffb, 0xcae: 0x1263, 0xcaf: 0x133b,
- 0xcb0: 0x0db7, 0xcb1: 0x13f7, 0xcb2: 0x0de3, 0xcb3: 0x0c37, 0xcb4: 0x121b, 0xcb5: 0x0c57,
- 0xcb6: 0x0fab, 0xcb7: 0x072b, 0xcb8: 0x07a7, 0xcb9: 0x07eb, 0xcba: 0x0d53, 0xcbb: 0x10fb,
- 0xcbc: 0x11f3, 0xcbd: 0x1347, 0xcbe: 0x145b, 0xcbf: 0x085b,
- // Block 0x33, offset 0xcc0
- 0xcc0: 0x090f, 0xcc1: 0x0a17, 0xcc2: 0x0b2f, 0xcc3: 0x0cbf, 0xcc4: 0x0e7b, 0xcc5: 0x103f,
- 0xcc6: 0x1497, 0xcc7: 0x157b, 0xcc8: 0x15cf, 0xcc9: 0x15e7, 0xcca: 0x0837, 0xccb: 0x0cf3,
- 0xccc: 0x0da3, 0xccd: 0x13eb, 0xcce: 0x0afb, 0xccf: 0x0bd7, 0xcd0: 0x0bf3, 0xcd1: 0x0c83,
- 0xcd2: 0x0e6b, 0xcd3: 0x0eb7, 0xcd4: 0x0f67, 0xcd5: 0x108b, 0xcd6: 0x112f, 0xcd7: 0x1193,
- 0xcd8: 0x13db, 0xcd9: 0x126b, 0xcda: 0x1403, 0xcdb: 0x147f, 0xcdc: 0x080f, 0xcdd: 0x083b,
- 0xcde: 0x0923, 0xcdf: 0x0ea7, 0xce0: 0x12f3, 0xce1: 0x133b, 0xce2: 0x0b1b, 0xce3: 0x0b8b,
- 0xce4: 0x0c4f, 0xce5: 0x0daf, 0xce6: 0x10d7, 0xce7: 0x0f23, 0xce8: 0x073b, 0xce9: 0x097f,
- 0xcea: 0x0a63, 0xceb: 0x0ac7, 0xcec: 0x0b97, 0xced: 0x0f3f, 0xcee: 0x0f5b, 0xcef: 0x116b,
- 0xcf0: 0x118b, 0xcf1: 0x1463, 0xcf2: 0x14e3, 0xcf3: 0x14f3, 0xcf4: 0x152f, 0xcf5: 0x0753,
- 0xcf6: 0x107f, 0xcf7: 0x144f, 0xcf8: 0x14cb, 0xcf9: 0x0baf, 0xcfa: 0x0717, 0xcfb: 0x0777,
- 0xcfc: 0x0a67, 0xcfd: 0x0a87, 0xcfe: 0x0caf, 0xcff: 0x0d73,
- // Block 0x34, offset 0xd00
- 0xd00: 0x0ec3, 0xd01: 0x0fcb, 0xd02: 0x1277, 0xd03: 0x1417, 0xd04: 0x1623, 0xd05: 0x0ce3,
- 0xd06: 0x14a3, 0xd07: 0x0833, 0xd08: 0x0d2f, 0xd09: 0x0d3b, 0xd0a: 0x0e0f, 0xd0b: 0x0e47,
- 0xd0c: 0x0f4b, 0xd0d: 0x0fa7, 0xd0e: 0x1027, 0xd0f: 0x110b, 0xd10: 0x153b, 0xd11: 0x07af,
- 0xd12: 0x0c03, 0xd13: 0x14b3, 0xd14: 0x0767, 0xd15: 0x0aab, 0xd16: 0x0e2f, 0xd17: 0x13df,
- 0xd18: 0x0b67, 0xd19: 0x0bb7, 0xd1a: 0x0d43, 0xd1b: 0x0f2f, 0xd1c: 0x14bb, 0xd1d: 0x0817,
- 0xd1e: 0x08ff, 0xd1f: 0x0a97, 0xd20: 0x0cd3, 0xd21: 0x0d1f, 0xd22: 0x0d5f, 0xd23: 0x0df3,
- 0xd24: 0x0f47, 0xd25: 0x0fbb, 0xd26: 0x1157, 0xd27: 0x12f7, 0xd28: 0x1303, 0xd29: 0x1457,
- 0xd2a: 0x14d7, 0xd2b: 0x0883, 0xd2c: 0x0e4b, 0xd2d: 0x0903, 0xd2e: 0x0ec7, 0xd2f: 0x0f6b,
- 0xd30: 0x1287, 0xd31: 0x14bf, 0xd32: 0x15ab, 0xd33: 0x15d3, 0xd34: 0x0d37, 0xd35: 0x0e27,
- 0xd36: 0x11c3, 0xd37: 0x10b7, 0xd38: 0x10c3, 0xd39: 0x10e7, 0xd3a: 0x0f17, 0xd3b: 0x0e9f,
- 0xd3c: 0x1363, 0xd3d: 0x0733, 0xd3e: 0x122b, 0xd3f: 0x081b,
- // Block 0x35, offset 0xd40
- 0xd40: 0x080b, 0xd41: 0x0b0b, 0xd42: 0x0c2b, 0xd43: 0x10f3, 0xd44: 0x0a53, 0xd45: 0x0e03,
- 0xd46: 0x0cef, 0xd47: 0x13e7, 0xd48: 0x12e7, 0xd49: 0x14ab, 0xd4a: 0x1323, 0xd4b: 0x0b27,
- 0xd4c: 0x0787, 0xd4d: 0x095b, 0xd50: 0x09af,
- 0xd52: 0x0cdf, 0xd55: 0x07f7, 0xd56: 0x0f1f, 0xd57: 0x0fe3,
- 0xd58: 0x1047, 0xd59: 0x1063, 0xd5a: 0x1067, 0xd5b: 0x107b, 0xd5c: 0x14fb, 0xd5d: 0x10eb,
- 0xd5e: 0x116f, 0xd60: 0x128f, 0xd62: 0x1353,
- 0xd65: 0x1407, 0xd66: 0x1433,
- 0xd6a: 0x154f, 0xd6b: 0x1553, 0xd6c: 0x1557, 0xd6d: 0x15bb, 0xd6e: 0x142b, 0xd6f: 0x14c7,
- 0xd70: 0x0757, 0xd71: 0x077b, 0xd72: 0x078f, 0xd73: 0x084b, 0xd74: 0x0857, 0xd75: 0x0897,
- 0xd76: 0x094b, 0xd77: 0x0967, 0xd78: 0x096f, 0xd79: 0x09ab, 0xd7a: 0x09b7, 0xd7b: 0x0a93,
- 0xd7c: 0x0a9b, 0xd7d: 0x0ba3, 0xd7e: 0x0bcb, 0xd7f: 0x0bd3,
- // Block 0x36, offset 0xd80
- 0xd80: 0x0beb, 0xd81: 0x0c97, 0xd82: 0x0cc7, 0xd83: 0x0ce7, 0xd84: 0x0d57, 0xd85: 0x0e1b,
- 0xd86: 0x0e37, 0xd87: 0x0e67, 0xd88: 0x0ebb, 0xd89: 0x0edb, 0xd8a: 0x0f4f, 0xd8b: 0x102f,
- 0xd8c: 0x104b, 0xd8d: 0x1053, 0xd8e: 0x104f, 0xd8f: 0x1057, 0xd90: 0x105b, 0xd91: 0x105f,
- 0xd92: 0x1073, 0xd93: 0x1077, 0xd94: 0x109b, 0xd95: 0x10af, 0xd96: 0x10cb, 0xd97: 0x112f,
- 0xd98: 0x1137, 0xd99: 0x113f, 0xd9a: 0x1153, 0xd9b: 0x117b, 0xd9c: 0x11cb, 0xd9d: 0x11ff,
- 0xd9e: 0x11ff, 0xd9f: 0x1267, 0xda0: 0x130f, 0xda1: 0x1327, 0xda2: 0x135b, 0xda3: 0x135f,
- 0xda4: 0x13a3, 0xda5: 0x13a7, 0xda6: 0x13ff, 0xda7: 0x1407, 0xda8: 0x14db, 0xda9: 0x151f,
- 0xdaa: 0x1537, 0xdab: 0x0b9b, 0xdac: 0x171e, 0xdad: 0x11e3,
- 0xdb0: 0x06df, 0xdb1: 0x07e3, 0xdb2: 0x07a3, 0xdb3: 0x074b, 0xdb4: 0x078b, 0xdb5: 0x07b7,
- 0xdb6: 0x0847, 0xdb7: 0x0863, 0xdb8: 0x094b, 0xdb9: 0x0937, 0xdba: 0x0947, 0xdbb: 0x0963,
- 0xdbc: 0x09af, 0xdbd: 0x09bf, 0xdbe: 0x0a03, 0xdbf: 0x0a0f,
- // Block 0x37, offset 0xdc0
- 0xdc0: 0x0a2b, 0xdc1: 0x0a3b, 0xdc2: 0x0b23, 0xdc3: 0x0b2b, 0xdc4: 0x0b5b, 0xdc5: 0x0b7b,
- 0xdc6: 0x0bab, 0xdc7: 0x0bc3, 0xdc8: 0x0bb3, 0xdc9: 0x0bd3, 0xdca: 0x0bc7, 0xdcb: 0x0beb,
- 0xdcc: 0x0c07, 0xdcd: 0x0c5f, 0xdce: 0x0c6b, 0xdcf: 0x0c73, 0xdd0: 0x0c9b, 0xdd1: 0x0cdf,
- 0xdd2: 0x0d0f, 0xdd3: 0x0d13, 0xdd4: 0x0d27, 0xdd5: 0x0da7, 0xdd6: 0x0db7, 0xdd7: 0x0e0f,
- 0xdd8: 0x0e5b, 0xdd9: 0x0e53, 0xdda: 0x0e67, 0xddb: 0x0e83, 0xddc: 0x0ebb, 0xddd: 0x1013,
- 0xdde: 0x0edf, 0xddf: 0x0f13, 0xde0: 0x0f1f, 0xde1: 0x0f5f, 0xde2: 0x0f7b, 0xde3: 0x0f9f,
- 0xde4: 0x0fc3, 0xde5: 0x0fc7, 0xde6: 0x0fe3, 0xde7: 0x0fe7, 0xde8: 0x0ff7, 0xde9: 0x100b,
- 0xdea: 0x1007, 0xdeb: 0x1037, 0xdec: 0x10b3, 0xded: 0x10cb, 0xdee: 0x10e3, 0xdef: 0x111b,
- 0xdf0: 0x112f, 0xdf1: 0x114b, 0xdf2: 0x117b, 0xdf3: 0x122f, 0xdf4: 0x1257, 0xdf5: 0x12cb,
- 0xdf6: 0x1313, 0xdf7: 0x131f, 0xdf8: 0x1327, 0xdf9: 0x133f, 0xdfa: 0x1353, 0xdfb: 0x1343,
- 0xdfc: 0x135b, 0xdfd: 0x1357, 0xdfe: 0x134f, 0xdff: 0x135f,
- // Block 0x38, offset 0xe00
- 0xe00: 0x136b, 0xe01: 0x13a7, 0xe02: 0x13e3, 0xe03: 0x1413, 0xe04: 0x144b, 0xe05: 0x146b,
- 0xe06: 0x14b7, 0xe07: 0x14db, 0xe08: 0x14fb, 0xe09: 0x150f, 0xe0a: 0x151f, 0xe0b: 0x152b,
- 0xe0c: 0x1537, 0xe0d: 0x158b, 0xe0e: 0x162b, 0xe0f: 0x16b5, 0xe10: 0x16b0, 0xe11: 0x16e2,
- 0xe12: 0x0607, 0xe13: 0x062f, 0xe14: 0x0633, 0xe15: 0x1764, 0xe16: 0x1791, 0xe17: 0x1809,
- 0xe18: 0x1617, 0xe19: 0x1627,
- // Block 0x39, offset 0xe40
- 0xe40: 0x19d5, 0xe41: 0x19d8, 0xe42: 0x19db, 0xe43: 0x1c08, 0xe44: 0x1c0c, 0xe45: 0x1a5f,
- 0xe46: 0x1a5f,
- 0xe53: 0x1d75, 0xe54: 0x1d66, 0xe55: 0x1d6b, 0xe56: 0x1d7a, 0xe57: 0x1d70,
- 0xe5d: 0x4390,
- 0xe5e: 0x8115, 0xe5f: 0x4402, 0xe60: 0x022d, 0xe61: 0x0215, 0xe62: 0x021e, 0xe63: 0x0221,
- 0xe64: 0x0224, 0xe65: 0x0227, 0xe66: 0x022a, 0xe67: 0x0230, 0xe68: 0x0233, 0xe69: 0x0017,
- 0xe6a: 0x43f0, 0xe6b: 0x43f6, 0xe6c: 0x44f4, 0xe6d: 0x44fc, 0xe6e: 0x4348, 0xe6f: 0x434e,
- 0xe70: 0x4354, 0xe71: 0x435a, 0xe72: 0x4366, 0xe73: 0x436c, 0xe74: 0x4372, 0xe75: 0x437e,
- 0xe76: 0x4384, 0xe78: 0x438a, 0xe79: 0x4396, 0xe7a: 0x439c, 0xe7b: 0x43a2,
- 0xe7c: 0x43ae, 0xe7e: 0x43b4,
- // Block 0x3a, offset 0xe80
- 0xe80: 0x43ba, 0xe81: 0x43c0, 0xe83: 0x43c6, 0xe84: 0x43cc,
- 0xe86: 0x43d8, 0xe87: 0x43de, 0xe88: 0x43e4, 0xe89: 0x43ea, 0xe8a: 0x43fc, 0xe8b: 0x4378,
- 0xe8c: 0x4360, 0xe8d: 0x43a8, 0xe8e: 0x43d2, 0xe8f: 0x1d7f, 0xe90: 0x0299, 0xe91: 0x0299,
- 0xe92: 0x02a2, 0xe93: 0x02a2, 0xe94: 0x02a2, 0xe95: 0x02a2, 0xe96: 0x02a5, 0xe97: 0x02a5,
- 0xe98: 0x02a5, 0xe99: 0x02a5, 0xe9a: 0x02ab, 0xe9b: 0x02ab, 0xe9c: 0x02ab, 0xe9d: 0x02ab,
- 0xe9e: 0x029f, 0xe9f: 0x029f, 0xea0: 0x029f, 0xea1: 0x029f, 0xea2: 0x02a8, 0xea3: 0x02a8,
- 0xea4: 0x02a8, 0xea5: 0x02a8, 0xea6: 0x029c, 0xea7: 0x029c, 0xea8: 0x029c, 0xea9: 0x029c,
- 0xeaa: 0x02cf, 0xeab: 0x02cf, 0xeac: 0x02cf, 0xead: 0x02cf, 0xeae: 0x02d2, 0xeaf: 0x02d2,
- 0xeb0: 0x02d2, 0xeb1: 0x02d2, 0xeb2: 0x02b1, 0xeb3: 0x02b1, 0xeb4: 0x02b1, 0xeb5: 0x02b1,
- 0xeb6: 0x02ae, 0xeb7: 0x02ae, 0xeb8: 0x02ae, 0xeb9: 0x02ae, 0xeba: 0x02b4, 0xebb: 0x02b4,
- 0xebc: 0x02b4, 0xebd: 0x02b4, 0xebe: 0x02b7, 0xebf: 0x02b7,
- // Block 0x3b, offset 0xec0
- 0xec0: 0x02b7, 0xec1: 0x02b7, 0xec2: 0x02c0, 0xec3: 0x02c0, 0xec4: 0x02bd, 0xec5: 0x02bd,
- 0xec6: 0x02c3, 0xec7: 0x02c3, 0xec8: 0x02ba, 0xec9: 0x02ba, 0xeca: 0x02c9, 0xecb: 0x02c9,
- 0xecc: 0x02c6, 0xecd: 0x02c6, 0xece: 0x02d5, 0xecf: 0x02d5, 0xed0: 0x02d5, 0xed1: 0x02d5,
- 0xed2: 0x02db, 0xed3: 0x02db, 0xed4: 0x02db, 0xed5: 0x02db, 0xed6: 0x02e1, 0xed7: 0x02e1,
- 0xed8: 0x02e1, 0xed9: 0x02e1, 0xeda: 0x02de, 0xedb: 0x02de, 0xedc: 0x02de, 0xedd: 0x02de,
- 0xede: 0x02e4, 0xedf: 0x02e4, 0xee0: 0x02e7, 0xee1: 0x02e7, 0xee2: 0x02e7, 0xee3: 0x02e7,
- 0xee4: 0x446e, 0xee5: 0x446e, 0xee6: 0x02ed, 0xee7: 0x02ed, 0xee8: 0x02ed, 0xee9: 0x02ed,
- 0xeea: 0x02ea, 0xeeb: 0x02ea, 0xeec: 0x02ea, 0xeed: 0x02ea, 0xeee: 0x0308, 0xeef: 0x0308,
- 0xef0: 0x4468, 0xef1: 0x4468,
- // Block 0x3c, offset 0xf00
- 0xf13: 0x02d8, 0xf14: 0x02d8, 0xf15: 0x02d8, 0xf16: 0x02d8, 0xf17: 0x02f6,
- 0xf18: 0x02f6, 0xf19: 0x02f3, 0xf1a: 0x02f3, 0xf1b: 0x02f9, 0xf1c: 0x02f9, 0xf1d: 0x204f,
- 0xf1e: 0x02ff, 0xf1f: 0x02ff, 0xf20: 0x02f0, 0xf21: 0x02f0, 0xf22: 0x02fc, 0xf23: 0x02fc,
- 0xf24: 0x0305, 0xf25: 0x0305, 0xf26: 0x0305, 0xf27: 0x0305, 0xf28: 0x028d, 0xf29: 0x028d,
- 0xf2a: 0x25aa, 0xf2b: 0x25aa, 0xf2c: 0x261a, 0xf2d: 0x261a, 0xf2e: 0x25e9, 0xf2f: 0x25e9,
- 0xf30: 0x2605, 0xf31: 0x2605, 0xf32: 0x25fe, 0xf33: 0x25fe, 0xf34: 0x260c, 0xf35: 0x260c,
- 0xf36: 0x2613, 0xf37: 0x2613, 0xf38: 0x2613, 0xf39: 0x25f0, 0xf3a: 0x25f0, 0xf3b: 0x25f0,
- 0xf3c: 0x0302, 0xf3d: 0x0302, 0xf3e: 0x0302, 0xf3f: 0x0302,
- // Block 0x3d, offset 0xf40
- 0xf40: 0x25b1, 0xf41: 0x25b8, 0xf42: 0x25d4, 0xf43: 0x25f0, 0xf44: 0x25f7, 0xf45: 0x1d89,
- 0xf46: 0x1d8e, 0xf47: 0x1d93, 0xf48: 0x1da2, 0xf49: 0x1db1, 0xf4a: 0x1db6, 0xf4b: 0x1dbb,
- 0xf4c: 0x1dc0, 0xf4d: 0x1dc5, 0xf4e: 0x1dd4, 0xf4f: 0x1de3, 0xf50: 0x1de8, 0xf51: 0x1ded,
- 0xf52: 0x1dfc, 0xf53: 0x1e0b, 0xf54: 0x1e10, 0xf55: 0x1e15, 0xf56: 0x1e1a, 0xf57: 0x1e29,
- 0xf58: 0x1e2e, 0xf59: 0x1e3d, 0xf5a: 0x1e42, 0xf5b: 0x1e47, 0xf5c: 0x1e56, 0xf5d: 0x1e5b,
- 0xf5e: 0x1e60, 0xf5f: 0x1e6a, 0xf60: 0x1ea6, 0xf61: 0x1eb5, 0xf62: 0x1ec4, 0xf63: 0x1ec9,
- 0xf64: 0x1ece, 0xf65: 0x1ed8, 0xf66: 0x1ee7, 0xf67: 0x1eec, 0xf68: 0x1efb, 0xf69: 0x1f00,
- 0xf6a: 0x1f05, 0xf6b: 0x1f14, 0xf6c: 0x1f19, 0xf6d: 0x1f28, 0xf6e: 0x1f2d, 0xf6f: 0x1f32,
- 0xf70: 0x1f37, 0xf71: 0x1f3c, 0xf72: 0x1f41, 0xf73: 0x1f46, 0xf74: 0x1f4b, 0xf75: 0x1f50,
- 0xf76: 0x1f55, 0xf77: 0x1f5a, 0xf78: 0x1f5f, 0xf79: 0x1f64, 0xf7a: 0x1f69, 0xf7b: 0x1f6e,
- 0xf7c: 0x1f73, 0xf7d: 0x1f78, 0xf7e: 0x1f7d, 0xf7f: 0x1f87,
- // Block 0x3e, offset 0xf80
- 0xf80: 0x1f8c, 0xf81: 0x1f91, 0xf82: 0x1f96, 0xf83: 0x1fa0, 0xf84: 0x1fa5, 0xf85: 0x1faf,
- 0xf86: 0x1fb4, 0xf87: 0x1fb9, 0xf88: 0x1fbe, 0xf89: 0x1fc3, 0xf8a: 0x1fc8, 0xf8b: 0x1fcd,
- 0xf8c: 0x1fd2, 0xf8d: 0x1fd7, 0xf8e: 0x1fe6, 0xf8f: 0x1ff5, 0xf90: 0x1ffa, 0xf91: 0x1fff,
- 0xf92: 0x2004, 0xf93: 0x2009, 0xf94: 0x200e, 0xf95: 0x2018, 0xf96: 0x201d, 0xf97: 0x2022,
- 0xf98: 0x2031, 0xf99: 0x2040, 0xf9a: 0x2045, 0xf9b: 0x4420, 0xf9c: 0x4426, 0xf9d: 0x445c,
- 0xf9e: 0x44b3, 0xf9f: 0x44ba, 0xfa0: 0x44c1, 0xfa1: 0x44c8, 0xfa2: 0x44cf, 0xfa3: 0x44d6,
- 0xfa4: 0x25c6, 0xfa5: 0x25cd, 0xfa6: 0x25d4, 0xfa7: 0x25db, 0xfa8: 0x25f0, 0xfa9: 0x25f7,
- 0xfaa: 0x1d98, 0xfab: 0x1d9d, 0xfac: 0x1da2, 0xfad: 0x1da7, 0xfae: 0x1db1, 0xfaf: 0x1db6,
- 0xfb0: 0x1dca, 0xfb1: 0x1dcf, 0xfb2: 0x1dd4, 0xfb3: 0x1dd9, 0xfb4: 0x1de3, 0xfb5: 0x1de8,
- 0xfb6: 0x1df2, 0xfb7: 0x1df7, 0xfb8: 0x1dfc, 0xfb9: 0x1e01, 0xfba: 0x1e0b, 0xfbb: 0x1e10,
- 0xfbc: 0x1f3c, 0xfbd: 0x1f41, 0xfbe: 0x1f50, 0xfbf: 0x1f55,
- // Block 0x3f, offset 0xfc0
- 0xfc0: 0x1f5a, 0xfc1: 0x1f6e, 0xfc2: 0x1f73, 0xfc3: 0x1f78, 0xfc4: 0x1f7d, 0xfc5: 0x1f96,
- 0xfc6: 0x1fa0, 0xfc7: 0x1fa5, 0xfc8: 0x1faa, 0xfc9: 0x1fbe, 0xfca: 0x1fdc, 0xfcb: 0x1fe1,
- 0xfcc: 0x1fe6, 0xfcd: 0x1feb, 0xfce: 0x1ff5, 0xfcf: 0x1ffa, 0xfd0: 0x445c, 0xfd1: 0x2027,
- 0xfd2: 0x202c, 0xfd3: 0x2031, 0xfd4: 0x2036, 0xfd5: 0x2040, 0xfd6: 0x2045, 0xfd7: 0x25b1,
- 0xfd8: 0x25b8, 0xfd9: 0x25bf, 0xfda: 0x25d4, 0xfdb: 0x25e2, 0xfdc: 0x1d89, 0xfdd: 0x1d8e,
- 0xfde: 0x1d93, 0xfdf: 0x1da2, 0xfe0: 0x1dac, 0xfe1: 0x1dbb, 0xfe2: 0x1dc0, 0xfe3: 0x1dc5,
- 0xfe4: 0x1dd4, 0xfe5: 0x1dde, 0xfe6: 0x1dfc, 0xfe7: 0x1e15, 0xfe8: 0x1e1a, 0xfe9: 0x1e29,
- 0xfea: 0x1e2e, 0xfeb: 0x1e3d, 0xfec: 0x1e47, 0xfed: 0x1e56, 0xfee: 0x1e5b, 0xfef: 0x1e60,
- 0xff0: 0x1e6a, 0xff1: 0x1ea6, 0xff2: 0x1eab, 0xff3: 0x1eb5, 0xff4: 0x1ec4, 0xff5: 0x1ec9,
- 0xff6: 0x1ece, 0xff7: 0x1ed8, 0xff8: 0x1ee7, 0xff9: 0x1efb, 0xffa: 0x1f00, 0xffb: 0x1f05,
- 0xffc: 0x1f14, 0xffd: 0x1f19, 0xffe: 0x1f28, 0xfff: 0x1f2d,
- // Block 0x40, offset 0x1000
- 0x1000: 0x1f32, 0x1001: 0x1f37, 0x1002: 0x1f46, 0x1003: 0x1f4b, 0x1004: 0x1f5f, 0x1005: 0x1f64,
- 0x1006: 0x1f69, 0x1007: 0x1f6e, 0x1008: 0x1f73, 0x1009: 0x1f87, 0x100a: 0x1f8c, 0x100b: 0x1f91,
- 0x100c: 0x1f96, 0x100d: 0x1f9b, 0x100e: 0x1faf, 0x100f: 0x1fb4, 0x1010: 0x1fb9, 0x1011: 0x1fbe,
- 0x1012: 0x1fcd, 0x1013: 0x1fd2, 0x1014: 0x1fd7, 0x1015: 0x1fe6, 0x1016: 0x1ff0, 0x1017: 0x1fff,
- 0x1018: 0x2004, 0x1019: 0x4450, 0x101a: 0x2018, 0x101b: 0x201d, 0x101c: 0x2022, 0x101d: 0x2031,
- 0x101e: 0x203b, 0x101f: 0x25d4, 0x1020: 0x25e2, 0x1021: 0x1da2, 0x1022: 0x1dac, 0x1023: 0x1dd4,
- 0x1024: 0x1dde, 0x1025: 0x1dfc, 0x1026: 0x1e06, 0x1027: 0x1e6a, 0x1028: 0x1e6f, 0x1029: 0x1e92,
- 0x102a: 0x1e97, 0x102b: 0x1f6e, 0x102c: 0x1f73, 0x102d: 0x1f96, 0x102e: 0x1fe6, 0x102f: 0x1ff0,
- 0x1030: 0x2031, 0x1031: 0x203b, 0x1032: 0x4504, 0x1033: 0x450c, 0x1034: 0x4514, 0x1035: 0x1ef1,
- 0x1036: 0x1ef6, 0x1037: 0x1f0a, 0x1038: 0x1f0f, 0x1039: 0x1f1e, 0x103a: 0x1f23, 0x103b: 0x1e74,
- 0x103c: 0x1e79, 0x103d: 0x1e9c, 0x103e: 0x1ea1, 0x103f: 0x1e33,
- // Block 0x41, offset 0x1040
- 0x1040: 0x1e38, 0x1041: 0x1e1f, 0x1042: 0x1e24, 0x1043: 0x1e4c, 0x1044: 0x1e51, 0x1045: 0x1eba,
- 0x1046: 0x1ebf, 0x1047: 0x1edd, 0x1048: 0x1ee2, 0x1049: 0x1e7e, 0x104a: 0x1e83, 0x104b: 0x1e88,
- 0x104c: 0x1e92, 0x104d: 0x1e8d, 0x104e: 0x1e65, 0x104f: 0x1eb0, 0x1050: 0x1ed3, 0x1051: 0x1ef1,
- 0x1052: 0x1ef6, 0x1053: 0x1f0a, 0x1054: 0x1f0f, 0x1055: 0x1f1e, 0x1056: 0x1f23, 0x1057: 0x1e74,
- 0x1058: 0x1e79, 0x1059: 0x1e9c, 0x105a: 0x1ea1, 0x105b: 0x1e33, 0x105c: 0x1e38, 0x105d: 0x1e1f,
- 0x105e: 0x1e24, 0x105f: 0x1e4c, 0x1060: 0x1e51, 0x1061: 0x1eba, 0x1062: 0x1ebf, 0x1063: 0x1edd,
- 0x1064: 0x1ee2, 0x1065: 0x1e7e, 0x1066: 0x1e83, 0x1067: 0x1e88, 0x1068: 0x1e92, 0x1069: 0x1e8d,
- 0x106a: 0x1e65, 0x106b: 0x1eb0, 0x106c: 0x1ed3, 0x106d: 0x1e7e, 0x106e: 0x1e83, 0x106f: 0x1e88,
- 0x1070: 0x1e92, 0x1071: 0x1e6f, 0x1072: 0x1e97, 0x1073: 0x1eec, 0x1074: 0x1e56, 0x1075: 0x1e5b,
- 0x1076: 0x1e60, 0x1077: 0x1e7e, 0x1078: 0x1e83, 0x1079: 0x1e88, 0x107a: 0x1eec, 0x107b: 0x1efb,
- 0x107c: 0x4408, 0x107d: 0x4408,
- // Block 0x42, offset 0x1080
- 0x1090: 0x2311, 0x1091: 0x2326,
- 0x1092: 0x2326, 0x1093: 0x232d, 0x1094: 0x2334, 0x1095: 0x2349, 0x1096: 0x2350, 0x1097: 0x2357,
- 0x1098: 0x237a, 0x1099: 0x237a, 0x109a: 0x239d, 0x109b: 0x2396, 0x109c: 0x23b2, 0x109d: 0x23a4,
- 0x109e: 0x23ab, 0x109f: 0x23ce, 0x10a0: 0x23ce, 0x10a1: 0x23c7, 0x10a2: 0x23d5, 0x10a3: 0x23d5,
- 0x10a4: 0x23ff, 0x10a5: 0x23ff, 0x10a6: 0x241b, 0x10a7: 0x23e3, 0x10a8: 0x23e3, 0x10a9: 0x23dc,
- 0x10aa: 0x23f1, 0x10ab: 0x23f1, 0x10ac: 0x23f8, 0x10ad: 0x23f8, 0x10ae: 0x2422, 0x10af: 0x2430,
- 0x10b0: 0x2430, 0x10b1: 0x2437, 0x10b2: 0x2437, 0x10b3: 0x243e, 0x10b4: 0x2445, 0x10b5: 0x244c,
- 0x10b6: 0x2453, 0x10b7: 0x2453, 0x10b8: 0x245a, 0x10b9: 0x2468, 0x10ba: 0x2476, 0x10bb: 0x246f,
- 0x10bc: 0x247d, 0x10bd: 0x247d, 0x10be: 0x2492, 0x10bf: 0x2499,
- // Block 0x43, offset 0x10c0
- 0x10c0: 0x24ca, 0x10c1: 0x24d8, 0x10c2: 0x24d1, 0x10c3: 0x24b5, 0x10c4: 0x24b5, 0x10c5: 0x24df,
- 0x10c6: 0x24df, 0x10c7: 0x24e6, 0x10c8: 0x24e6, 0x10c9: 0x2510, 0x10ca: 0x2517, 0x10cb: 0x251e,
- 0x10cc: 0x24f4, 0x10cd: 0x2502, 0x10ce: 0x2525, 0x10cf: 0x252c,
- 0x10d2: 0x24fb, 0x10d3: 0x2580, 0x10d4: 0x2587, 0x10d5: 0x255d, 0x10d6: 0x2564, 0x10d7: 0x2548,
- 0x10d8: 0x2548, 0x10d9: 0x254f, 0x10da: 0x2579, 0x10db: 0x2572, 0x10dc: 0x259c, 0x10dd: 0x259c,
- 0x10de: 0x230a, 0x10df: 0x231f, 0x10e0: 0x2318, 0x10e1: 0x2342, 0x10e2: 0x233b, 0x10e3: 0x2365,
- 0x10e4: 0x235e, 0x10e5: 0x2388, 0x10e6: 0x236c, 0x10e7: 0x2381, 0x10e8: 0x23b9, 0x10e9: 0x2406,
- 0x10ea: 0x23ea, 0x10eb: 0x2429, 0x10ec: 0x24c3, 0x10ed: 0x24ed, 0x10ee: 0x2595, 0x10ef: 0x258e,
- 0x10f0: 0x25a3, 0x10f1: 0x253a, 0x10f2: 0x24a0, 0x10f3: 0x256b, 0x10f4: 0x2492, 0x10f5: 0x24ca,
- 0x10f6: 0x2461, 0x10f7: 0x24ae, 0x10f8: 0x2541, 0x10f9: 0x2533, 0x10fa: 0x24bc, 0x10fb: 0x24a7,
- 0x10fc: 0x24bc, 0x10fd: 0x2541, 0x10fe: 0x2373, 0x10ff: 0x238f,
- // Block 0x44, offset 0x1100
- 0x1100: 0x2509, 0x1101: 0x2484, 0x1102: 0x2303, 0x1103: 0x24a7, 0x1104: 0x244c, 0x1105: 0x241b,
- 0x1106: 0x23c0, 0x1107: 0x2556,
- 0x1130: 0x2414, 0x1131: 0x248b, 0x1132: 0x27bf, 0x1133: 0x27b6, 0x1134: 0x27ec, 0x1135: 0x27da,
- 0x1136: 0x27c8, 0x1137: 0x27e3, 0x1138: 0x27f5, 0x1139: 0x240d, 0x113a: 0x2c7c, 0x113b: 0x2afc,
- 0x113c: 0x27d1,
- // Block 0x45, offset 0x1140
- 0x1150: 0x0019, 0x1151: 0x0483,
- 0x1152: 0x0487, 0x1153: 0x0035, 0x1154: 0x0037, 0x1155: 0x0003, 0x1156: 0x003f, 0x1157: 0x04bf,
- 0x1158: 0x04c3, 0x1159: 0x1b5c,
- 0x1160: 0x8132, 0x1161: 0x8132, 0x1162: 0x8132, 0x1163: 0x8132,
- 0x1164: 0x8132, 0x1165: 0x8132, 0x1166: 0x8132, 0x1167: 0x812d, 0x1168: 0x812d, 0x1169: 0x812d,
- 0x116a: 0x812d, 0x116b: 0x812d, 0x116c: 0x812d, 0x116d: 0x812d, 0x116e: 0x8132, 0x116f: 0x8132,
- 0x1170: 0x1873, 0x1171: 0x0443, 0x1172: 0x043f, 0x1173: 0x007f, 0x1174: 0x007f, 0x1175: 0x0011,
- 0x1176: 0x0013, 0x1177: 0x00b7, 0x1178: 0x00bb, 0x1179: 0x04b7, 0x117a: 0x04bb, 0x117b: 0x04ab,
- 0x117c: 0x04af, 0x117d: 0x0493, 0x117e: 0x0497, 0x117f: 0x048b,
- // Block 0x46, offset 0x1180
- 0x1180: 0x048f, 0x1181: 0x049b, 0x1182: 0x049f, 0x1183: 0x04a3, 0x1184: 0x04a7,
- 0x1187: 0x0077, 0x1188: 0x007b, 0x1189: 0x4269, 0x118a: 0x4269, 0x118b: 0x4269,
- 0x118c: 0x4269, 0x118d: 0x007f, 0x118e: 0x007f, 0x118f: 0x007f, 0x1190: 0x0019, 0x1191: 0x0483,
- 0x1192: 0x001d, 0x1194: 0x0037, 0x1195: 0x0035, 0x1196: 0x003f, 0x1197: 0x0003,
- 0x1198: 0x0443, 0x1199: 0x0011, 0x119a: 0x0013, 0x119b: 0x00b7, 0x119c: 0x00bb, 0x119d: 0x04b7,
- 0x119e: 0x04bb, 0x119f: 0x0007, 0x11a0: 0x000d, 0x11a1: 0x0015, 0x11a2: 0x0017, 0x11a3: 0x001b,
- 0x11a4: 0x0039, 0x11a5: 0x003d, 0x11a6: 0x003b, 0x11a8: 0x0079, 0x11a9: 0x0009,
- 0x11aa: 0x000b, 0x11ab: 0x0041,
- 0x11b0: 0x42aa, 0x11b1: 0x442c, 0x11b2: 0x42af, 0x11b4: 0x42b4,
- 0x11b6: 0x42b9, 0x11b7: 0x4432, 0x11b8: 0x42be, 0x11b9: 0x4438, 0x11ba: 0x42c3, 0x11bb: 0x443e,
- 0x11bc: 0x42c8, 0x11bd: 0x4444, 0x11be: 0x42cd, 0x11bf: 0x444a,
- // Block 0x47, offset 0x11c0
- 0x11c0: 0x0236, 0x11c1: 0x440e, 0x11c2: 0x440e, 0x11c3: 0x4414, 0x11c4: 0x4414, 0x11c5: 0x4456,
- 0x11c6: 0x4456, 0x11c7: 0x441a, 0x11c8: 0x441a, 0x11c9: 0x4462, 0x11ca: 0x4462, 0x11cb: 0x4462,
- 0x11cc: 0x4462, 0x11cd: 0x0239, 0x11ce: 0x0239, 0x11cf: 0x023c, 0x11d0: 0x023c, 0x11d1: 0x023c,
- 0x11d2: 0x023c, 0x11d3: 0x023f, 0x11d4: 0x023f, 0x11d5: 0x0242, 0x11d6: 0x0242, 0x11d7: 0x0242,
- 0x11d8: 0x0242, 0x11d9: 0x0245, 0x11da: 0x0245, 0x11db: 0x0245, 0x11dc: 0x0245, 0x11dd: 0x0248,
- 0x11de: 0x0248, 0x11df: 0x0248, 0x11e0: 0x0248, 0x11e1: 0x024b, 0x11e2: 0x024b, 0x11e3: 0x024b,
- 0x11e4: 0x024b, 0x11e5: 0x024e, 0x11e6: 0x024e, 0x11e7: 0x024e, 0x11e8: 0x024e, 0x11e9: 0x0251,
- 0x11ea: 0x0251, 0x11eb: 0x0254, 0x11ec: 0x0254, 0x11ed: 0x0257, 0x11ee: 0x0257, 0x11ef: 0x025a,
- 0x11f0: 0x025a, 0x11f1: 0x025d, 0x11f2: 0x025d, 0x11f3: 0x025d, 0x11f4: 0x025d, 0x11f5: 0x0260,
- 0x11f6: 0x0260, 0x11f7: 0x0260, 0x11f8: 0x0260, 0x11f9: 0x0263, 0x11fa: 0x0263, 0x11fb: 0x0263,
- 0x11fc: 0x0263, 0x11fd: 0x0266, 0x11fe: 0x0266, 0x11ff: 0x0266,
- // Block 0x48, offset 0x1200
- 0x1200: 0x0266, 0x1201: 0x0269, 0x1202: 0x0269, 0x1203: 0x0269, 0x1204: 0x0269, 0x1205: 0x026c,
- 0x1206: 0x026c, 0x1207: 0x026c, 0x1208: 0x026c, 0x1209: 0x026f, 0x120a: 0x026f, 0x120b: 0x026f,
- 0x120c: 0x026f, 0x120d: 0x0272, 0x120e: 0x0272, 0x120f: 0x0272, 0x1210: 0x0272, 0x1211: 0x0275,
- 0x1212: 0x0275, 0x1213: 0x0275, 0x1214: 0x0275, 0x1215: 0x0278, 0x1216: 0x0278, 0x1217: 0x0278,
- 0x1218: 0x0278, 0x1219: 0x027b, 0x121a: 0x027b, 0x121b: 0x027b, 0x121c: 0x027b, 0x121d: 0x027e,
- 0x121e: 0x027e, 0x121f: 0x027e, 0x1220: 0x027e, 0x1221: 0x0281, 0x1222: 0x0281, 0x1223: 0x0281,
- 0x1224: 0x0281, 0x1225: 0x0284, 0x1226: 0x0284, 0x1227: 0x0284, 0x1228: 0x0284, 0x1229: 0x0287,
- 0x122a: 0x0287, 0x122b: 0x0287, 0x122c: 0x0287, 0x122d: 0x028a, 0x122e: 0x028a, 0x122f: 0x028d,
- 0x1230: 0x028d, 0x1231: 0x0290, 0x1232: 0x0290, 0x1233: 0x0290, 0x1234: 0x0290, 0x1235: 0x2e00,
- 0x1236: 0x2e00, 0x1237: 0x2e08, 0x1238: 0x2e08, 0x1239: 0x2e10, 0x123a: 0x2e10, 0x123b: 0x1f82,
- 0x123c: 0x1f82,
- // Block 0x49, offset 0x1240
- 0x1240: 0x0081, 0x1241: 0x0083, 0x1242: 0x0085, 0x1243: 0x0087, 0x1244: 0x0089, 0x1245: 0x008b,
- 0x1246: 0x008d, 0x1247: 0x008f, 0x1248: 0x0091, 0x1249: 0x0093, 0x124a: 0x0095, 0x124b: 0x0097,
- 0x124c: 0x0099, 0x124d: 0x009b, 0x124e: 0x009d, 0x124f: 0x009f, 0x1250: 0x00a1, 0x1251: 0x00a3,
- 0x1252: 0x00a5, 0x1253: 0x00a7, 0x1254: 0x00a9, 0x1255: 0x00ab, 0x1256: 0x00ad, 0x1257: 0x00af,
- 0x1258: 0x00b1, 0x1259: 0x00b3, 0x125a: 0x00b5, 0x125b: 0x00b7, 0x125c: 0x00b9, 0x125d: 0x00bb,
- 0x125e: 0x00bd, 0x125f: 0x0477, 0x1260: 0x047b, 0x1261: 0x0487, 0x1262: 0x049b, 0x1263: 0x049f,
- 0x1264: 0x0483, 0x1265: 0x05ab, 0x1266: 0x05a3, 0x1267: 0x04c7, 0x1268: 0x04cf, 0x1269: 0x04d7,
- 0x126a: 0x04df, 0x126b: 0x04e7, 0x126c: 0x056b, 0x126d: 0x0573, 0x126e: 0x057b, 0x126f: 0x051f,
- 0x1270: 0x05af, 0x1271: 0x04cb, 0x1272: 0x04d3, 0x1273: 0x04db, 0x1274: 0x04e3, 0x1275: 0x04eb,
- 0x1276: 0x04ef, 0x1277: 0x04f3, 0x1278: 0x04f7, 0x1279: 0x04fb, 0x127a: 0x04ff, 0x127b: 0x0503,
- 0x127c: 0x0507, 0x127d: 0x050b, 0x127e: 0x050f, 0x127f: 0x0513,
- // Block 0x4a, offset 0x1280
- 0x1280: 0x0517, 0x1281: 0x051b, 0x1282: 0x0523, 0x1283: 0x0527, 0x1284: 0x052b, 0x1285: 0x052f,
- 0x1286: 0x0533, 0x1287: 0x0537, 0x1288: 0x053b, 0x1289: 0x053f, 0x128a: 0x0543, 0x128b: 0x0547,
- 0x128c: 0x054b, 0x128d: 0x054f, 0x128e: 0x0553, 0x128f: 0x0557, 0x1290: 0x055b, 0x1291: 0x055f,
- 0x1292: 0x0563, 0x1293: 0x0567, 0x1294: 0x056f, 0x1295: 0x0577, 0x1296: 0x057f, 0x1297: 0x0583,
- 0x1298: 0x0587, 0x1299: 0x058b, 0x129a: 0x058f, 0x129b: 0x0593, 0x129c: 0x0597, 0x129d: 0x05a7,
- 0x129e: 0x4a78, 0x129f: 0x4a7e, 0x12a0: 0x03c3, 0x12a1: 0x0313, 0x12a2: 0x0317, 0x12a3: 0x4a3b,
- 0x12a4: 0x031b, 0x12a5: 0x4a41, 0x12a6: 0x4a47, 0x12a7: 0x031f, 0x12a8: 0x0323, 0x12a9: 0x0327,
- 0x12aa: 0x4a4d, 0x12ab: 0x4a53, 0x12ac: 0x4a59, 0x12ad: 0x4a5f, 0x12ae: 0x4a65, 0x12af: 0x4a6b,
- 0x12b0: 0x0367, 0x12b1: 0x032b, 0x12b2: 0x032f, 0x12b3: 0x0333, 0x12b4: 0x037b, 0x12b5: 0x0337,
- 0x12b6: 0x033b, 0x12b7: 0x033f, 0x12b8: 0x0343, 0x12b9: 0x0347, 0x12ba: 0x034b, 0x12bb: 0x034f,
- 0x12bc: 0x0353, 0x12bd: 0x0357, 0x12be: 0x035b,
- // Block 0x4b, offset 0x12c0
- 0x12c2: 0x49bd, 0x12c3: 0x49c3, 0x12c4: 0x49c9, 0x12c5: 0x49cf,
- 0x12c6: 0x49d5, 0x12c7: 0x49db, 0x12ca: 0x49e1, 0x12cb: 0x49e7,
- 0x12cc: 0x49ed, 0x12cd: 0x49f3, 0x12ce: 0x49f9, 0x12cf: 0x49ff,
- 0x12d2: 0x4a05, 0x12d3: 0x4a0b, 0x12d4: 0x4a11, 0x12d5: 0x4a17, 0x12d6: 0x4a1d, 0x12d7: 0x4a23,
- 0x12da: 0x4a29, 0x12db: 0x4a2f, 0x12dc: 0x4a35,
- 0x12e0: 0x00bf, 0x12e1: 0x00c2, 0x12e2: 0x00cb, 0x12e3: 0x4264,
- 0x12e4: 0x00c8, 0x12e5: 0x00c5, 0x12e6: 0x0447, 0x12e8: 0x046b, 0x12e9: 0x044b,
- 0x12ea: 0x044f, 0x12eb: 0x0453, 0x12ec: 0x0457, 0x12ed: 0x046f, 0x12ee: 0x0473,
- // Block 0x4c, offset 0x1300
- 0x1300: 0x0063, 0x1301: 0x0065, 0x1302: 0x0067, 0x1303: 0x0069, 0x1304: 0x006b, 0x1305: 0x006d,
- 0x1306: 0x006f, 0x1307: 0x0071, 0x1308: 0x0073, 0x1309: 0x0075, 0x130a: 0x0083, 0x130b: 0x0085,
- 0x130c: 0x0087, 0x130d: 0x0089, 0x130e: 0x008b, 0x130f: 0x008d, 0x1310: 0x008f, 0x1311: 0x0091,
- 0x1312: 0x0093, 0x1313: 0x0095, 0x1314: 0x0097, 0x1315: 0x0099, 0x1316: 0x009b, 0x1317: 0x009d,
- 0x1318: 0x009f, 0x1319: 0x00a1, 0x131a: 0x00a3, 0x131b: 0x00a5, 0x131c: 0x00a7, 0x131d: 0x00a9,
- 0x131e: 0x00ab, 0x131f: 0x00ad, 0x1320: 0x00af, 0x1321: 0x00b1, 0x1322: 0x00b3, 0x1323: 0x00b5,
- 0x1324: 0x00dd, 0x1325: 0x00f2, 0x1328: 0x0173, 0x1329: 0x0176,
- 0x132a: 0x0179, 0x132b: 0x017c, 0x132c: 0x017f, 0x132d: 0x0182, 0x132e: 0x0185, 0x132f: 0x0188,
- 0x1330: 0x018b, 0x1331: 0x018e, 0x1332: 0x0191, 0x1333: 0x0194, 0x1334: 0x0197, 0x1335: 0x019a,
- 0x1336: 0x019d, 0x1337: 0x01a0, 0x1338: 0x01a3, 0x1339: 0x0188, 0x133a: 0x01a6, 0x133b: 0x01a9,
- 0x133c: 0x01ac, 0x133d: 0x01af, 0x133e: 0x01b2, 0x133f: 0x01b5,
- // Block 0x4d, offset 0x1340
- 0x1340: 0x01fd, 0x1341: 0x0200, 0x1342: 0x0203, 0x1343: 0x045b, 0x1344: 0x01c7, 0x1345: 0x01d0,
- 0x1346: 0x01d6, 0x1347: 0x01fa, 0x1348: 0x01eb, 0x1349: 0x01e8, 0x134a: 0x0206, 0x134b: 0x0209,
- 0x134e: 0x0021, 0x134f: 0x0023, 0x1350: 0x0025, 0x1351: 0x0027,
- 0x1352: 0x0029, 0x1353: 0x002b, 0x1354: 0x002d, 0x1355: 0x002f, 0x1356: 0x0031, 0x1357: 0x0033,
- 0x1358: 0x0021, 0x1359: 0x0023, 0x135a: 0x0025, 0x135b: 0x0027, 0x135c: 0x0029, 0x135d: 0x002b,
- 0x135e: 0x002d, 0x135f: 0x002f, 0x1360: 0x0031, 0x1361: 0x0033, 0x1362: 0x0021, 0x1363: 0x0023,
- 0x1364: 0x0025, 0x1365: 0x0027, 0x1366: 0x0029, 0x1367: 0x002b, 0x1368: 0x002d, 0x1369: 0x002f,
- 0x136a: 0x0031, 0x136b: 0x0033, 0x136c: 0x0021, 0x136d: 0x0023, 0x136e: 0x0025, 0x136f: 0x0027,
- 0x1370: 0x0029, 0x1371: 0x002b, 0x1372: 0x002d, 0x1373: 0x002f, 0x1374: 0x0031, 0x1375: 0x0033,
- 0x1376: 0x0021, 0x1377: 0x0023, 0x1378: 0x0025, 0x1379: 0x0027, 0x137a: 0x0029, 0x137b: 0x002b,
- 0x137c: 0x002d, 0x137d: 0x002f, 0x137e: 0x0031, 0x137f: 0x0033,
- // Block 0x4e, offset 0x1380
- 0x1380: 0x0239, 0x1381: 0x023c, 0x1382: 0x0248, 0x1383: 0x0251, 0x1385: 0x028a,
- 0x1386: 0x025a, 0x1387: 0x024b, 0x1388: 0x0269, 0x1389: 0x0290, 0x138a: 0x027b, 0x138b: 0x027e,
- 0x138c: 0x0281, 0x138d: 0x0284, 0x138e: 0x025d, 0x138f: 0x026f, 0x1390: 0x0275, 0x1391: 0x0263,
- 0x1392: 0x0278, 0x1393: 0x0257, 0x1394: 0x0260, 0x1395: 0x0242, 0x1396: 0x0245, 0x1397: 0x024e,
- 0x1398: 0x0254, 0x1399: 0x0266, 0x139a: 0x026c, 0x139b: 0x0272, 0x139c: 0x0293, 0x139d: 0x02e4,
- 0x139e: 0x02cc, 0x139f: 0x0296, 0x13a1: 0x023c, 0x13a2: 0x0248,
- 0x13a4: 0x0287, 0x13a7: 0x024b, 0x13a9: 0x0290,
- 0x13aa: 0x027b, 0x13ab: 0x027e, 0x13ac: 0x0281, 0x13ad: 0x0284, 0x13ae: 0x025d, 0x13af: 0x026f,
- 0x13b0: 0x0275, 0x13b1: 0x0263, 0x13b2: 0x0278, 0x13b4: 0x0260, 0x13b5: 0x0242,
- 0x13b6: 0x0245, 0x13b7: 0x024e, 0x13b9: 0x0266, 0x13bb: 0x0272,
- // Block 0x4f, offset 0x13c0
- 0x13c2: 0x0248,
- 0x13c7: 0x024b, 0x13c9: 0x0290, 0x13cb: 0x027e,
- 0x13cd: 0x0284, 0x13ce: 0x025d, 0x13cf: 0x026f, 0x13d1: 0x0263,
- 0x13d2: 0x0278, 0x13d4: 0x0260, 0x13d7: 0x024e,
- 0x13d9: 0x0266, 0x13db: 0x0272, 0x13dd: 0x02e4,
- 0x13df: 0x0296, 0x13e1: 0x023c, 0x13e2: 0x0248,
- 0x13e4: 0x0287, 0x13e7: 0x024b, 0x13e8: 0x0269, 0x13e9: 0x0290,
- 0x13ea: 0x027b, 0x13ec: 0x0281, 0x13ed: 0x0284, 0x13ee: 0x025d, 0x13ef: 0x026f,
- 0x13f0: 0x0275, 0x13f1: 0x0263, 0x13f2: 0x0278, 0x13f4: 0x0260, 0x13f5: 0x0242,
- 0x13f6: 0x0245, 0x13f7: 0x024e, 0x13f9: 0x0266, 0x13fa: 0x026c, 0x13fb: 0x0272,
- 0x13fc: 0x0293, 0x13fe: 0x02cc,
- // Block 0x50, offset 0x1400
- 0x1400: 0x0239, 0x1401: 0x023c, 0x1402: 0x0248, 0x1403: 0x0251, 0x1404: 0x0287, 0x1405: 0x028a,
- 0x1406: 0x025a, 0x1407: 0x024b, 0x1408: 0x0269, 0x1409: 0x0290, 0x140b: 0x027e,
- 0x140c: 0x0281, 0x140d: 0x0284, 0x140e: 0x025d, 0x140f: 0x026f, 0x1410: 0x0275, 0x1411: 0x0263,
- 0x1412: 0x0278, 0x1413: 0x0257, 0x1414: 0x0260, 0x1415: 0x0242, 0x1416: 0x0245, 0x1417: 0x024e,
- 0x1418: 0x0254, 0x1419: 0x0266, 0x141a: 0x026c, 0x141b: 0x0272,
- 0x1421: 0x023c, 0x1422: 0x0248, 0x1423: 0x0251,
- 0x1425: 0x028a, 0x1426: 0x025a, 0x1427: 0x024b, 0x1428: 0x0269, 0x1429: 0x0290,
- 0x142b: 0x027e, 0x142c: 0x0281, 0x142d: 0x0284, 0x142e: 0x025d, 0x142f: 0x026f,
- 0x1430: 0x0275, 0x1431: 0x0263, 0x1432: 0x0278, 0x1433: 0x0257, 0x1434: 0x0260, 0x1435: 0x0242,
- 0x1436: 0x0245, 0x1437: 0x024e, 0x1438: 0x0254, 0x1439: 0x0266, 0x143a: 0x026c, 0x143b: 0x0272,
- // Block 0x51, offset 0x1440
- 0x1440: 0x1879, 0x1441: 0x1876, 0x1442: 0x187c, 0x1443: 0x18a0, 0x1444: 0x18c4, 0x1445: 0x18e8,
- 0x1446: 0x190c, 0x1447: 0x1915, 0x1448: 0x191b, 0x1449: 0x1921, 0x144a: 0x1927,
- 0x1450: 0x1a8c, 0x1451: 0x1a90,
- 0x1452: 0x1a94, 0x1453: 0x1a98, 0x1454: 0x1a9c, 0x1455: 0x1aa0, 0x1456: 0x1aa4, 0x1457: 0x1aa8,
- 0x1458: 0x1aac, 0x1459: 0x1ab0, 0x145a: 0x1ab4, 0x145b: 0x1ab8, 0x145c: 0x1abc, 0x145d: 0x1ac0,
- 0x145e: 0x1ac4, 0x145f: 0x1ac8, 0x1460: 0x1acc, 0x1461: 0x1ad0, 0x1462: 0x1ad4, 0x1463: 0x1ad8,
- 0x1464: 0x1adc, 0x1465: 0x1ae0, 0x1466: 0x1ae4, 0x1467: 0x1ae8, 0x1468: 0x1aec, 0x1469: 0x1af0,
- 0x146a: 0x271e, 0x146b: 0x0047, 0x146c: 0x0065, 0x146d: 0x193c, 0x146e: 0x19b1,
- 0x1470: 0x0043, 0x1471: 0x0045, 0x1472: 0x0047, 0x1473: 0x0049, 0x1474: 0x004b, 0x1475: 0x004d,
- 0x1476: 0x004f, 0x1477: 0x0051, 0x1478: 0x0053, 0x1479: 0x0055, 0x147a: 0x0057, 0x147b: 0x0059,
- 0x147c: 0x005b, 0x147d: 0x005d, 0x147e: 0x005f, 0x147f: 0x0061,
- // Block 0x52, offset 0x1480
- 0x1480: 0x26ad, 0x1481: 0x26c2, 0x1482: 0x0503,
- 0x1490: 0x0c0f, 0x1491: 0x0a47,
- 0x1492: 0x08d3, 0x1493: 0x45c4, 0x1494: 0x071b, 0x1495: 0x09ef, 0x1496: 0x132f, 0x1497: 0x09ff,
- 0x1498: 0x0727, 0x1499: 0x0cd7, 0x149a: 0x0eaf, 0x149b: 0x0caf, 0x149c: 0x0827, 0x149d: 0x0b6b,
- 0x149e: 0x07bf, 0x149f: 0x0cb7, 0x14a0: 0x0813, 0x14a1: 0x1117, 0x14a2: 0x0f83, 0x14a3: 0x138b,
- 0x14a4: 0x09d3, 0x14a5: 0x090b, 0x14a6: 0x0e63, 0x14a7: 0x0c1b, 0x14a8: 0x0c47, 0x14a9: 0x06bf,
- 0x14aa: 0x06cb, 0x14ab: 0x140b, 0x14ac: 0x0adb, 0x14ad: 0x06e7, 0x14ae: 0x08ef, 0x14af: 0x0c3b,
- 0x14b0: 0x13b3, 0x14b1: 0x0c13, 0x14b2: 0x106f, 0x14b3: 0x10ab, 0x14b4: 0x08f7, 0x14b5: 0x0e43,
- 0x14b6: 0x0d0b, 0x14b7: 0x0d07, 0x14b8: 0x0f97, 0x14b9: 0x082b, 0x14ba: 0x0957, 0x14bb: 0x1443,
- // Block 0x53, offset 0x14c0
- 0x14c0: 0x06fb, 0x14c1: 0x06f3, 0x14c2: 0x0703, 0x14c3: 0x1647, 0x14c4: 0x0747, 0x14c5: 0x0757,
- 0x14c6: 0x075b, 0x14c7: 0x0763, 0x14c8: 0x076b, 0x14c9: 0x076f, 0x14ca: 0x077b, 0x14cb: 0x0773,
- 0x14cc: 0x05b3, 0x14cd: 0x165b, 0x14ce: 0x078f, 0x14cf: 0x0793, 0x14d0: 0x0797, 0x14d1: 0x07b3,
- 0x14d2: 0x164c, 0x14d3: 0x05b7, 0x14d4: 0x079f, 0x14d5: 0x07bf, 0x14d6: 0x1656, 0x14d7: 0x07cf,
- 0x14d8: 0x07d7, 0x14d9: 0x0737, 0x14da: 0x07df, 0x14db: 0x07e3, 0x14dc: 0x1831, 0x14dd: 0x07ff,
- 0x14de: 0x0807, 0x14df: 0x05bf, 0x14e0: 0x081f, 0x14e1: 0x0823, 0x14e2: 0x082b, 0x14e3: 0x082f,
- 0x14e4: 0x05c3, 0x14e5: 0x0847, 0x14e6: 0x084b, 0x14e7: 0x0857, 0x14e8: 0x0863, 0x14e9: 0x0867,
- 0x14ea: 0x086b, 0x14eb: 0x0873, 0x14ec: 0x0893, 0x14ed: 0x0897, 0x14ee: 0x089f, 0x14ef: 0x08af,
- 0x14f0: 0x08b7, 0x14f1: 0x08bb, 0x14f2: 0x08bb, 0x14f3: 0x08bb, 0x14f4: 0x166a, 0x14f5: 0x0e93,
- 0x14f6: 0x08cf, 0x14f7: 0x08d7, 0x14f8: 0x166f, 0x14f9: 0x08e3, 0x14fa: 0x08eb, 0x14fb: 0x08f3,
- 0x14fc: 0x091b, 0x14fd: 0x0907, 0x14fe: 0x0913, 0x14ff: 0x0917,
- // Block 0x54, offset 0x1500
- 0x1500: 0x091f, 0x1501: 0x0927, 0x1502: 0x092b, 0x1503: 0x0933, 0x1504: 0x093b, 0x1505: 0x093f,
- 0x1506: 0x093f, 0x1507: 0x0947, 0x1508: 0x094f, 0x1509: 0x0953, 0x150a: 0x095f, 0x150b: 0x0983,
- 0x150c: 0x0967, 0x150d: 0x0987, 0x150e: 0x096b, 0x150f: 0x0973, 0x1510: 0x080b, 0x1511: 0x09cf,
- 0x1512: 0x0997, 0x1513: 0x099b, 0x1514: 0x099f, 0x1515: 0x0993, 0x1516: 0x09a7, 0x1517: 0x09a3,
- 0x1518: 0x09bb, 0x1519: 0x1674, 0x151a: 0x09d7, 0x151b: 0x09db, 0x151c: 0x09e3, 0x151d: 0x09ef,
- 0x151e: 0x09f7, 0x151f: 0x0a13, 0x1520: 0x1679, 0x1521: 0x167e, 0x1522: 0x0a1f, 0x1523: 0x0a23,
- 0x1524: 0x0a27, 0x1525: 0x0a1b, 0x1526: 0x0a2f, 0x1527: 0x05c7, 0x1528: 0x05cb, 0x1529: 0x0a37,
- 0x152a: 0x0a3f, 0x152b: 0x0a3f, 0x152c: 0x1683, 0x152d: 0x0a5b, 0x152e: 0x0a5f, 0x152f: 0x0a63,
- 0x1530: 0x0a6b, 0x1531: 0x1688, 0x1532: 0x0a73, 0x1533: 0x0a77, 0x1534: 0x0b4f, 0x1535: 0x0a7f,
- 0x1536: 0x05cf, 0x1537: 0x0a8b, 0x1538: 0x0a9b, 0x1539: 0x0aa7, 0x153a: 0x0aa3, 0x153b: 0x1692,
- 0x153c: 0x0aaf, 0x153d: 0x1697, 0x153e: 0x0abb, 0x153f: 0x0ab7,
- // Block 0x55, offset 0x1540
- 0x1540: 0x0abf, 0x1541: 0x0acf, 0x1542: 0x0ad3, 0x1543: 0x05d3, 0x1544: 0x0ae3, 0x1545: 0x0aeb,
- 0x1546: 0x0aef, 0x1547: 0x0af3, 0x1548: 0x05d7, 0x1549: 0x169c, 0x154a: 0x05db, 0x154b: 0x0b0f,
- 0x154c: 0x0b13, 0x154d: 0x0b17, 0x154e: 0x0b1f, 0x154f: 0x1863, 0x1550: 0x0b37, 0x1551: 0x16a6,
- 0x1552: 0x16a6, 0x1553: 0x11d7, 0x1554: 0x0b47, 0x1555: 0x0b47, 0x1556: 0x05df, 0x1557: 0x16c9,
- 0x1558: 0x179b, 0x1559: 0x0b57, 0x155a: 0x0b5f, 0x155b: 0x05e3, 0x155c: 0x0b73, 0x155d: 0x0b83,
- 0x155e: 0x0b87, 0x155f: 0x0b8f, 0x1560: 0x0b9f, 0x1561: 0x05eb, 0x1562: 0x05e7, 0x1563: 0x0ba3,
- 0x1564: 0x16ab, 0x1565: 0x0ba7, 0x1566: 0x0bbb, 0x1567: 0x0bbf, 0x1568: 0x0bc3, 0x1569: 0x0bbf,
- 0x156a: 0x0bcf, 0x156b: 0x0bd3, 0x156c: 0x0be3, 0x156d: 0x0bdb, 0x156e: 0x0bdf, 0x156f: 0x0be7,
- 0x1570: 0x0beb, 0x1571: 0x0bef, 0x1572: 0x0bfb, 0x1573: 0x0bff, 0x1574: 0x0c17, 0x1575: 0x0c1f,
- 0x1576: 0x0c2f, 0x1577: 0x0c43, 0x1578: 0x16ba, 0x1579: 0x0c3f, 0x157a: 0x0c33, 0x157b: 0x0c4b,
- 0x157c: 0x0c53, 0x157d: 0x0c67, 0x157e: 0x16bf, 0x157f: 0x0c6f,
- // Block 0x56, offset 0x1580
- 0x1580: 0x0c63, 0x1581: 0x0c5b, 0x1582: 0x05ef, 0x1583: 0x0c77, 0x1584: 0x0c7f, 0x1585: 0x0c87,
- 0x1586: 0x0c7b, 0x1587: 0x05f3, 0x1588: 0x0c97, 0x1589: 0x0c9f, 0x158a: 0x16c4, 0x158b: 0x0ccb,
- 0x158c: 0x0cff, 0x158d: 0x0cdb, 0x158e: 0x05ff, 0x158f: 0x0ce7, 0x1590: 0x05fb, 0x1591: 0x05f7,
- 0x1592: 0x07c3, 0x1593: 0x07c7, 0x1594: 0x0d03, 0x1595: 0x0ceb, 0x1596: 0x11ab, 0x1597: 0x0663,
- 0x1598: 0x0d0f, 0x1599: 0x0d13, 0x159a: 0x0d17, 0x159b: 0x0d2b, 0x159c: 0x0d23, 0x159d: 0x16dd,
- 0x159e: 0x0603, 0x159f: 0x0d3f, 0x15a0: 0x0d33, 0x15a1: 0x0d4f, 0x15a2: 0x0d57, 0x15a3: 0x16e7,
- 0x15a4: 0x0d5b, 0x15a5: 0x0d47, 0x15a6: 0x0d63, 0x15a7: 0x0607, 0x15a8: 0x0d67, 0x15a9: 0x0d6b,
- 0x15aa: 0x0d6f, 0x15ab: 0x0d7b, 0x15ac: 0x16ec, 0x15ad: 0x0d83, 0x15ae: 0x060b, 0x15af: 0x0d8f,
- 0x15b0: 0x16f1, 0x15b1: 0x0d93, 0x15b2: 0x060f, 0x15b3: 0x0d9f, 0x15b4: 0x0dab, 0x15b5: 0x0db7,
- 0x15b6: 0x0dbb, 0x15b7: 0x16f6, 0x15b8: 0x168d, 0x15b9: 0x16fb, 0x15ba: 0x0ddb, 0x15bb: 0x1700,
- 0x15bc: 0x0de7, 0x15bd: 0x0def, 0x15be: 0x0ddf, 0x15bf: 0x0dfb,
- // Block 0x57, offset 0x15c0
- 0x15c0: 0x0e0b, 0x15c1: 0x0e1b, 0x15c2: 0x0e0f, 0x15c3: 0x0e13, 0x15c4: 0x0e1f, 0x15c5: 0x0e23,
- 0x15c6: 0x1705, 0x15c7: 0x0e07, 0x15c8: 0x0e3b, 0x15c9: 0x0e3f, 0x15ca: 0x0613, 0x15cb: 0x0e53,
- 0x15cc: 0x0e4f, 0x15cd: 0x170a, 0x15ce: 0x0e33, 0x15cf: 0x0e6f, 0x15d0: 0x170f, 0x15d1: 0x1714,
- 0x15d2: 0x0e73, 0x15d3: 0x0e87, 0x15d4: 0x0e83, 0x15d5: 0x0e7f, 0x15d6: 0x0617, 0x15d7: 0x0e8b,
- 0x15d8: 0x0e9b, 0x15d9: 0x0e97, 0x15da: 0x0ea3, 0x15db: 0x1651, 0x15dc: 0x0eb3, 0x15dd: 0x1719,
- 0x15de: 0x0ebf, 0x15df: 0x1723, 0x15e0: 0x0ed3, 0x15e1: 0x0edf, 0x15e2: 0x0ef3, 0x15e3: 0x1728,
- 0x15e4: 0x0f07, 0x15e5: 0x0f0b, 0x15e6: 0x172d, 0x15e7: 0x1732, 0x15e8: 0x0f27, 0x15e9: 0x0f37,
- 0x15ea: 0x061b, 0x15eb: 0x0f3b, 0x15ec: 0x061f, 0x15ed: 0x061f, 0x15ee: 0x0f53, 0x15ef: 0x0f57,
- 0x15f0: 0x0f5f, 0x15f1: 0x0f63, 0x15f2: 0x0f6f, 0x15f3: 0x0623, 0x15f4: 0x0f87, 0x15f5: 0x1737,
- 0x15f6: 0x0fa3, 0x15f7: 0x173c, 0x15f8: 0x0faf, 0x15f9: 0x16a1, 0x15fa: 0x0fbf, 0x15fb: 0x1741,
- 0x15fc: 0x1746, 0x15fd: 0x174b, 0x15fe: 0x0627, 0x15ff: 0x062b,
- // Block 0x58, offset 0x1600
- 0x1600: 0x0ff7, 0x1601: 0x1755, 0x1602: 0x1750, 0x1603: 0x175a, 0x1604: 0x175f, 0x1605: 0x0fff,
- 0x1606: 0x1003, 0x1607: 0x1003, 0x1608: 0x100b, 0x1609: 0x0633, 0x160a: 0x100f, 0x160b: 0x0637,
- 0x160c: 0x063b, 0x160d: 0x1769, 0x160e: 0x1023, 0x160f: 0x102b, 0x1610: 0x1037, 0x1611: 0x063f,
- 0x1612: 0x176e, 0x1613: 0x105b, 0x1614: 0x1773, 0x1615: 0x1778, 0x1616: 0x107b, 0x1617: 0x1093,
- 0x1618: 0x0643, 0x1619: 0x109b, 0x161a: 0x109f, 0x161b: 0x10a3, 0x161c: 0x177d, 0x161d: 0x1782,
- 0x161e: 0x1782, 0x161f: 0x10bb, 0x1620: 0x0647, 0x1621: 0x1787, 0x1622: 0x10cf, 0x1623: 0x10d3,
- 0x1624: 0x064b, 0x1625: 0x178c, 0x1626: 0x10ef, 0x1627: 0x064f, 0x1628: 0x10ff, 0x1629: 0x10f7,
- 0x162a: 0x1107, 0x162b: 0x1796, 0x162c: 0x111f, 0x162d: 0x0653, 0x162e: 0x112b, 0x162f: 0x1133,
- 0x1630: 0x1143, 0x1631: 0x0657, 0x1632: 0x17a0, 0x1633: 0x17a5, 0x1634: 0x065b, 0x1635: 0x17aa,
- 0x1636: 0x115b, 0x1637: 0x17af, 0x1638: 0x1167, 0x1639: 0x1173, 0x163a: 0x117b, 0x163b: 0x17b4,
- 0x163c: 0x17b9, 0x163d: 0x118f, 0x163e: 0x17be, 0x163f: 0x1197,
- // Block 0x59, offset 0x1640
- 0x1640: 0x16ce, 0x1641: 0x065f, 0x1642: 0x11af, 0x1643: 0x11b3, 0x1644: 0x0667, 0x1645: 0x11b7,
- 0x1646: 0x0a33, 0x1647: 0x17c3, 0x1648: 0x17c8, 0x1649: 0x16d3, 0x164a: 0x16d8, 0x164b: 0x11d7,
- 0x164c: 0x11db, 0x164d: 0x13f3, 0x164e: 0x066b, 0x164f: 0x1207, 0x1650: 0x1203, 0x1651: 0x120b,
- 0x1652: 0x083f, 0x1653: 0x120f, 0x1654: 0x1213, 0x1655: 0x1217, 0x1656: 0x121f, 0x1657: 0x17cd,
- 0x1658: 0x121b, 0x1659: 0x1223, 0x165a: 0x1237, 0x165b: 0x123b, 0x165c: 0x1227, 0x165d: 0x123f,
- 0x165e: 0x1253, 0x165f: 0x1267, 0x1660: 0x1233, 0x1661: 0x1247, 0x1662: 0x124b, 0x1663: 0x124f,
- 0x1664: 0x17d2, 0x1665: 0x17dc, 0x1666: 0x17d7, 0x1667: 0x066f, 0x1668: 0x126f, 0x1669: 0x1273,
- 0x166a: 0x127b, 0x166b: 0x17f0, 0x166c: 0x127f, 0x166d: 0x17e1, 0x166e: 0x0673, 0x166f: 0x0677,
- 0x1670: 0x17e6, 0x1671: 0x17eb, 0x1672: 0x067b, 0x1673: 0x129f, 0x1674: 0x12a3, 0x1675: 0x12a7,
- 0x1676: 0x12ab, 0x1677: 0x12b7, 0x1678: 0x12b3, 0x1679: 0x12bf, 0x167a: 0x12bb, 0x167b: 0x12cb,
- 0x167c: 0x12c3, 0x167d: 0x12c7, 0x167e: 0x12cf, 0x167f: 0x067f,
- // Block 0x5a, offset 0x1680
- 0x1680: 0x12d7, 0x1681: 0x12db, 0x1682: 0x0683, 0x1683: 0x12eb, 0x1684: 0x12ef, 0x1685: 0x17f5,
- 0x1686: 0x12fb, 0x1687: 0x12ff, 0x1688: 0x0687, 0x1689: 0x130b, 0x168a: 0x05bb, 0x168b: 0x17fa,
- 0x168c: 0x17ff, 0x168d: 0x068b, 0x168e: 0x068f, 0x168f: 0x1337, 0x1690: 0x134f, 0x1691: 0x136b,
- 0x1692: 0x137b, 0x1693: 0x1804, 0x1694: 0x138f, 0x1695: 0x1393, 0x1696: 0x13ab, 0x1697: 0x13b7,
- 0x1698: 0x180e, 0x1699: 0x1660, 0x169a: 0x13c3, 0x169b: 0x13bf, 0x169c: 0x13cb, 0x169d: 0x1665,
- 0x169e: 0x13d7, 0x169f: 0x13e3, 0x16a0: 0x1813, 0x16a1: 0x1818, 0x16a2: 0x1423, 0x16a3: 0x142f,
- 0x16a4: 0x1437, 0x16a5: 0x181d, 0x16a6: 0x143b, 0x16a7: 0x1467, 0x16a8: 0x1473, 0x16a9: 0x1477,
- 0x16aa: 0x146f, 0x16ab: 0x1483, 0x16ac: 0x1487, 0x16ad: 0x1822, 0x16ae: 0x1493, 0x16af: 0x0693,
- 0x16b0: 0x149b, 0x16b1: 0x1827, 0x16b2: 0x0697, 0x16b3: 0x14d3, 0x16b4: 0x0ac3, 0x16b5: 0x14eb,
- 0x16b6: 0x182c, 0x16b7: 0x1836, 0x16b8: 0x069b, 0x16b9: 0x069f, 0x16ba: 0x1513, 0x16bb: 0x183b,
- 0x16bc: 0x06a3, 0x16bd: 0x1840, 0x16be: 0x152b, 0x16bf: 0x152b,
- // Block 0x5b, offset 0x16c0
- 0x16c0: 0x1533, 0x16c1: 0x1845, 0x16c2: 0x154b, 0x16c3: 0x06a7, 0x16c4: 0x155b, 0x16c5: 0x1567,
- 0x16c6: 0x156f, 0x16c7: 0x1577, 0x16c8: 0x06ab, 0x16c9: 0x184a, 0x16ca: 0x158b, 0x16cb: 0x15a7,
- 0x16cc: 0x15b3, 0x16cd: 0x06af, 0x16ce: 0x06b3, 0x16cf: 0x15b7, 0x16d0: 0x184f, 0x16d1: 0x06b7,
- 0x16d2: 0x1854, 0x16d3: 0x1859, 0x16d4: 0x185e, 0x16d5: 0x15db, 0x16d6: 0x06bb, 0x16d7: 0x15ef,
- 0x16d8: 0x15f7, 0x16d9: 0x15fb, 0x16da: 0x1603, 0x16db: 0x160b, 0x16dc: 0x1613, 0x16dd: 0x1868,
-}
-
-// nfkcIndex: 22 blocks, 1408 entries, 1408 bytes
-// Block 0 is the zero block.
-var nfkcIndex = [1408]uint8{
- // Block 0x0, offset 0x0
- // Block 0x1, offset 0x40
- // Block 0x2, offset 0x80
- // Block 0x3, offset 0xc0
- 0xc2: 0x5a, 0xc3: 0x01, 0xc4: 0x02, 0xc5: 0x03, 0xc6: 0x5b, 0xc7: 0x04,
- 0xc8: 0x05, 0xca: 0x5c, 0xcb: 0x5d, 0xcc: 0x06, 0xcd: 0x07, 0xce: 0x08, 0xcf: 0x09,
- 0xd0: 0x0a, 0xd1: 0x5e, 0xd2: 0x5f, 0xd3: 0x0b, 0xd6: 0x0c, 0xd7: 0x60,
- 0xd8: 0x61, 0xd9: 0x0d, 0xdb: 0x62, 0xdc: 0x63, 0xdd: 0x64, 0xdf: 0x65,
- 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05,
- 0xea: 0x06, 0xeb: 0x07, 0xec: 0x08, 0xed: 0x09, 0xef: 0x0a,
- 0xf0: 0x13,
- // Block 0x4, offset 0x100
- 0x120: 0x66, 0x121: 0x67, 0x123: 0x68, 0x124: 0x69, 0x125: 0x6a, 0x126: 0x6b, 0x127: 0x6c,
- 0x128: 0x6d, 0x129: 0x6e, 0x12a: 0x6f, 0x12b: 0x70, 0x12c: 0x6b, 0x12d: 0x71, 0x12e: 0x72, 0x12f: 0x73,
- 0x131: 0x74, 0x132: 0x75, 0x133: 0x76, 0x134: 0x77, 0x135: 0x78, 0x137: 0x79,
- 0x138: 0x7a, 0x139: 0x7b, 0x13a: 0x7c, 0x13b: 0x7d, 0x13c: 0x7e, 0x13d: 0x7f, 0x13e: 0x80, 0x13f: 0x81,
- // Block 0x5, offset 0x140
- 0x140: 0x82, 0x142: 0x83, 0x143: 0x84, 0x144: 0x85, 0x145: 0x86, 0x146: 0x87, 0x147: 0x88,
- 0x14d: 0x89,
- 0x15c: 0x8a, 0x15f: 0x8b,
- 0x162: 0x8c, 0x164: 0x8d,
- 0x168: 0x8e, 0x169: 0x8f, 0x16a: 0x90, 0x16c: 0x0e, 0x16d: 0x91, 0x16e: 0x92, 0x16f: 0x93,
- 0x170: 0x94, 0x173: 0x95, 0x174: 0x96, 0x175: 0x0f, 0x176: 0x10, 0x177: 0x97,
- 0x178: 0x11, 0x179: 0x12, 0x17a: 0x13, 0x17b: 0x14, 0x17c: 0x15, 0x17d: 0x16, 0x17e: 0x17, 0x17f: 0x18,
- // Block 0x6, offset 0x180
- 0x180: 0x98, 0x181: 0x99, 0x182: 0x9a, 0x183: 0x9b, 0x184: 0x19, 0x185: 0x1a, 0x186: 0x9c, 0x187: 0x9d,
- 0x188: 0x9e, 0x189: 0x1b, 0x18a: 0x1c, 0x18b: 0x9f, 0x18c: 0xa0,
- 0x191: 0x1d, 0x192: 0x1e, 0x193: 0xa1,
- 0x1a8: 0xa2, 0x1a9: 0xa3, 0x1ab: 0xa4,
- 0x1b1: 0xa5, 0x1b3: 0xa6, 0x1b5: 0xa7, 0x1b7: 0xa8,
- 0x1ba: 0xa9, 0x1bb: 0xaa, 0x1bc: 0x1f, 0x1bd: 0x20, 0x1be: 0x21, 0x1bf: 0xab,
- // Block 0x7, offset 0x1c0
- 0x1c0: 0xac, 0x1c1: 0x22, 0x1c2: 0x23, 0x1c3: 0x24, 0x1c4: 0xad, 0x1c5: 0x25, 0x1c6: 0x26,
- 0x1c8: 0x27, 0x1c9: 0x28, 0x1ca: 0x29, 0x1cb: 0x2a, 0x1cc: 0x2b, 0x1cd: 0x2c, 0x1ce: 0x2d, 0x1cf: 0x2e,
- // Block 0x8, offset 0x200
- 0x219: 0xae, 0x21a: 0xaf, 0x21b: 0xb0, 0x21d: 0xb1, 0x21f: 0xb2,
- 0x220: 0xb3, 0x223: 0xb4, 0x224: 0xb5, 0x225: 0xb6, 0x226: 0xb7, 0x227: 0xb8,
- 0x22a: 0xb9, 0x22b: 0xba, 0x22d: 0xbb, 0x22f: 0xbc,
- 0x230: 0xbd, 0x231: 0xbe, 0x232: 0xbf, 0x233: 0xc0, 0x234: 0xc1, 0x235: 0xc2, 0x236: 0xc3, 0x237: 0xbd,
- 0x238: 0xbe, 0x239: 0xbf, 0x23a: 0xc0, 0x23b: 0xc1, 0x23c: 0xc2, 0x23d: 0xc3, 0x23e: 0xbd, 0x23f: 0xbe,
- // Block 0x9, offset 0x240
- 0x240: 0xbf, 0x241: 0xc0, 0x242: 0xc1, 0x243: 0xc2, 0x244: 0xc3, 0x245: 0xbd, 0x246: 0xbe, 0x247: 0xbf,
- 0x248: 0xc0, 0x249: 0xc1, 0x24a: 0xc2, 0x24b: 0xc3, 0x24c: 0xbd, 0x24d: 0xbe, 0x24e: 0xbf, 0x24f: 0xc0,
- 0x250: 0xc1, 0x251: 0xc2, 0x252: 0xc3, 0x253: 0xbd, 0x254: 0xbe, 0x255: 0xbf, 0x256: 0xc0, 0x257: 0xc1,
- 0x258: 0xc2, 0x259: 0xc3, 0x25a: 0xbd, 0x25b: 0xbe, 0x25c: 0xbf, 0x25d: 0xc0, 0x25e: 0xc1, 0x25f: 0xc2,
- 0x260: 0xc3, 0x261: 0xbd, 0x262: 0xbe, 0x263: 0xbf, 0x264: 0xc0, 0x265: 0xc1, 0x266: 0xc2, 0x267: 0xc3,
- 0x268: 0xbd, 0x269: 0xbe, 0x26a: 0xbf, 0x26b: 0xc0, 0x26c: 0xc1, 0x26d: 0xc2, 0x26e: 0xc3, 0x26f: 0xbd,
- 0x270: 0xbe, 0x271: 0xbf, 0x272: 0xc0, 0x273: 0xc1, 0x274: 0xc2, 0x275: 0xc3, 0x276: 0xbd, 0x277: 0xbe,
- 0x278: 0xbf, 0x279: 0xc0, 0x27a: 0xc1, 0x27b: 0xc2, 0x27c: 0xc3, 0x27d: 0xbd, 0x27e: 0xbe, 0x27f: 0xbf,
- // Block 0xa, offset 0x280
- 0x280: 0xc0, 0x281: 0xc1, 0x282: 0xc2, 0x283: 0xc3, 0x284: 0xbd, 0x285: 0xbe, 0x286: 0xbf, 0x287: 0xc0,
- 0x288: 0xc1, 0x289: 0xc2, 0x28a: 0xc3, 0x28b: 0xbd, 0x28c: 0xbe, 0x28d: 0xbf, 0x28e: 0xc0, 0x28f: 0xc1,
- 0x290: 0xc2, 0x291: 0xc3, 0x292: 0xbd, 0x293: 0xbe, 0x294: 0xbf, 0x295: 0xc0, 0x296: 0xc1, 0x297: 0xc2,
- 0x298: 0xc3, 0x299: 0xbd, 0x29a: 0xbe, 0x29b: 0xbf, 0x29c: 0xc0, 0x29d: 0xc1, 0x29e: 0xc2, 0x29f: 0xc3,
- 0x2a0: 0xbd, 0x2a1: 0xbe, 0x2a2: 0xbf, 0x2a3: 0xc0, 0x2a4: 0xc1, 0x2a5: 0xc2, 0x2a6: 0xc3, 0x2a7: 0xbd,
- 0x2a8: 0xbe, 0x2a9: 0xbf, 0x2aa: 0xc0, 0x2ab: 0xc1, 0x2ac: 0xc2, 0x2ad: 0xc3, 0x2ae: 0xbd, 0x2af: 0xbe,
- 0x2b0: 0xbf, 0x2b1: 0xc0, 0x2b2: 0xc1, 0x2b3: 0xc2, 0x2b4: 0xc3, 0x2b5: 0xbd, 0x2b6: 0xbe, 0x2b7: 0xbf,
- 0x2b8: 0xc0, 0x2b9: 0xc1, 0x2ba: 0xc2, 0x2bb: 0xc3, 0x2bc: 0xbd, 0x2bd: 0xbe, 0x2be: 0xbf, 0x2bf: 0xc0,
- // Block 0xb, offset 0x2c0
- 0x2c0: 0xc1, 0x2c1: 0xc2, 0x2c2: 0xc3, 0x2c3: 0xbd, 0x2c4: 0xbe, 0x2c5: 0xbf, 0x2c6: 0xc0, 0x2c7: 0xc1,
- 0x2c8: 0xc2, 0x2c9: 0xc3, 0x2ca: 0xbd, 0x2cb: 0xbe, 0x2cc: 0xbf, 0x2cd: 0xc0, 0x2ce: 0xc1, 0x2cf: 0xc2,
- 0x2d0: 0xc3, 0x2d1: 0xbd, 0x2d2: 0xbe, 0x2d3: 0xbf, 0x2d4: 0xc0, 0x2d5: 0xc1, 0x2d6: 0xc2, 0x2d7: 0xc3,
- 0x2d8: 0xbd, 0x2d9: 0xbe, 0x2da: 0xbf, 0x2db: 0xc0, 0x2dc: 0xc1, 0x2dd: 0xc2, 0x2de: 0xc4,
- // Block 0xc, offset 0x300
- 0x324: 0x2f, 0x325: 0x30, 0x326: 0x31, 0x327: 0x32,
- 0x328: 0x33, 0x329: 0x34, 0x32a: 0x35, 0x32b: 0x36, 0x32c: 0x37, 0x32d: 0x38, 0x32e: 0x39, 0x32f: 0x3a,
- 0x330: 0x3b, 0x331: 0x3c, 0x332: 0x3d, 0x333: 0x3e, 0x334: 0x3f, 0x335: 0x40, 0x336: 0x41, 0x337: 0x42,
- 0x338: 0x43, 0x339: 0x44, 0x33a: 0x45, 0x33b: 0x46, 0x33c: 0xc5, 0x33d: 0x47, 0x33e: 0x48, 0x33f: 0x49,
- // Block 0xd, offset 0x340
- 0x347: 0xc6,
- 0x34b: 0xc7, 0x34d: 0xc8,
- 0x368: 0xc9, 0x36b: 0xca,
- // Block 0xe, offset 0x380
- 0x381: 0xcb, 0x382: 0xcc, 0x384: 0xcd, 0x385: 0xb7, 0x387: 0xce,
- 0x388: 0xcf, 0x38b: 0xd0, 0x38c: 0x6b, 0x38d: 0xd1,
- 0x391: 0xd2, 0x392: 0xd3, 0x393: 0xd4, 0x396: 0xd5, 0x397: 0xd6,
- 0x398: 0xd7, 0x39a: 0xd8, 0x39c: 0xd9,
- 0x3b0: 0xd7,
- // Block 0xf, offset 0x3c0
- 0x3eb: 0xda, 0x3ec: 0xdb,
- // Block 0x10, offset 0x400
- 0x432: 0xdc,
- // Block 0x11, offset 0x440
- 0x445: 0xdd, 0x446: 0xde, 0x447: 0xdf,
- 0x449: 0xe0,
- 0x450: 0xe1, 0x451: 0xe2, 0x452: 0xe3, 0x453: 0xe4, 0x454: 0xe5, 0x455: 0xe6, 0x456: 0xe7, 0x457: 0xe8,
- 0x458: 0xe9, 0x459: 0xea, 0x45a: 0x4a, 0x45b: 0xeb, 0x45c: 0xec, 0x45d: 0xed, 0x45e: 0xee, 0x45f: 0x4b,
- // Block 0x12, offset 0x480
- 0x480: 0xef,
- 0x4a3: 0xf0, 0x4a5: 0xf1,
- 0x4b8: 0x4c, 0x4b9: 0x4d, 0x4ba: 0x4e,
- // Block 0x13, offset 0x4c0
- 0x4c4: 0x4f, 0x4c5: 0xf2, 0x4c6: 0xf3,
- 0x4c8: 0x50, 0x4c9: 0xf4,
- // Block 0x14, offset 0x500
- 0x520: 0x51, 0x521: 0x52, 0x522: 0x53, 0x523: 0x54, 0x524: 0x55, 0x525: 0x56, 0x526: 0x57, 0x527: 0x58,
- 0x528: 0x59,
- // Block 0x15, offset 0x540
- 0x550: 0x0b, 0x551: 0x0c, 0x556: 0x0d,
- 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11,
- 0x56f: 0x12,
-}
-
-// nfkcSparseOffset: 155 entries, 310 bytes
-var nfkcSparseOffset = []uint16{0x0, 0xe, 0x12, 0x1b, 0x25, 0x35, 0x37, 0x3c, 0x47, 0x56, 0x63, 0x6b, 0x6f, 0x74, 0x76, 0x87, 0x8f, 0x96, 0x99, 0xa0, 0xa4, 0xa8, 0xaa, 0xac, 0xb5, 0xb9, 0xc0, 0xc5, 0xc8, 0xd2, 0xd4, 0xdb, 0xe3, 0xe7, 0xe9, 0xec, 0xf0, 0xf6, 0x107, 0x113, 0x115, 0x11b, 0x11d, 0x11f, 0x121, 0x123, 0x125, 0x127, 0x129, 0x12c, 0x12f, 0x131, 0x134, 0x137, 0x13b, 0x140, 0x149, 0x14b, 0x14e, 0x150, 0x15b, 0x166, 0x176, 0x184, 0x192, 0x1a2, 0x1b0, 0x1b7, 0x1bd, 0x1cc, 0x1d0, 0x1d2, 0x1d6, 0x1d8, 0x1db, 0x1dd, 0x1e0, 0x1e2, 0x1e5, 0x1e7, 0x1e9, 0x1eb, 0x1f7, 0x201, 0x20b, 0x20e, 0x212, 0x214, 0x216, 0x218, 0x21a, 0x21d, 0x21f, 0x221, 0x223, 0x225, 0x22b, 0x22e, 0x232, 0x234, 0x23b, 0x241, 0x247, 0x24f, 0x255, 0x25b, 0x261, 0x265, 0x267, 0x269, 0x26b, 0x26d, 0x273, 0x276, 0x279, 0x281, 0x288, 0x28b, 0x28e, 0x290, 0x298, 0x29b, 0x2a2, 0x2a5, 0x2ab, 0x2ad, 0x2af, 0x2b2, 0x2b4, 0x2b6, 0x2b8, 0x2ba, 0x2c7, 0x2d1, 0x2d3, 0x2d5, 0x2d9, 0x2de, 0x2ea, 0x2ef, 0x2f8, 0x2fe, 0x303, 0x307, 0x30c, 0x310, 0x320, 0x32e, 0x33c, 0x34a, 0x350, 0x352, 0x355, 0x35f, 0x361}
-
-// nfkcSparseValues: 875 entries, 3500 bytes
-var nfkcSparseValues = [875]valueRange{
- // Block 0x0, offset 0x0
- {value: 0x0002, lo: 0x0d},
- {value: 0x0001, lo: 0xa0, hi: 0xa0},
- {value: 0x4278, lo: 0xa8, hi: 0xa8},
- {value: 0x0083, lo: 0xaa, hi: 0xaa},
- {value: 0x4264, lo: 0xaf, hi: 0xaf},
- {value: 0x0025, lo: 0xb2, hi: 0xb3},
- {value: 0x425a, lo: 0xb4, hi: 0xb4},
- {value: 0x01dc, lo: 0xb5, hi: 0xb5},
- {value: 0x4291, lo: 0xb8, hi: 0xb8},
- {value: 0x0023, lo: 0xb9, hi: 0xb9},
- {value: 0x009f, lo: 0xba, hi: 0xba},
- {value: 0x221c, lo: 0xbc, hi: 0xbc},
- {value: 0x2210, lo: 0xbd, hi: 0xbd},
- {value: 0x22b2, lo: 0xbe, hi: 0xbe},
- // Block 0x1, offset 0xe
- {value: 0x0091, lo: 0x03},
- {value: 0x46e2, lo: 0xa0, hi: 0xa1},
- {value: 0x4714, lo: 0xaf, hi: 0xb0},
- {value: 0xa000, lo: 0xb7, hi: 0xb7},
- // Block 0x2, offset 0x12
- {value: 0x0003, lo: 0x08},
- {value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0x0091, lo: 0xb0, hi: 0xb0},
- {value: 0x0119, lo: 0xb1, hi: 0xb1},
- {value: 0x0095, lo: 0xb2, hi: 0xb2},
- {value: 0x00a5, lo: 0xb3, hi: 0xb3},
- {value: 0x0143, lo: 0xb4, hi: 0xb6},
- {value: 0x00af, lo: 0xb7, hi: 0xb7},
- {value: 0x00b3, lo: 0xb8, hi: 0xb8},
- // Block 0x3, offset 0x1b
- {value: 0x000a, lo: 0x09},
- {value: 0x426e, lo: 0x98, hi: 0x98},
- {value: 0x4273, lo: 0x99, hi: 0x9a},
- {value: 0x4296, lo: 0x9b, hi: 0x9b},
- {value: 0x425f, lo: 0x9c, hi: 0x9c},
- {value: 0x4282, lo: 0x9d, hi: 0x9d},
- {value: 0x0113, lo: 0xa0, hi: 0xa0},
- {value: 0x0099, lo: 0xa1, hi: 0xa1},
- {value: 0x00a7, lo: 0xa2, hi: 0xa3},
- {value: 0x0167, lo: 0xa4, hi: 0xa4},
- // Block 0x4, offset 0x25
- {value: 0x0000, lo: 0x0f},
- {value: 0xa000, lo: 0x83, hi: 0x83},
- {value: 0xa000, lo: 0x87, hi: 0x87},
- {value: 0xa000, lo: 0x8b, hi: 0x8b},
- {value: 0xa000, lo: 0x8d, hi: 0x8d},
- {value: 0x37a5, lo: 0x90, hi: 0x90},
- {value: 0x37b1, lo: 0x91, hi: 0x91},
- {value: 0x379f, lo: 0x93, hi: 0x93},
- {value: 0xa000, lo: 0x96, hi: 0x96},
- {value: 0x3817, lo: 0x97, hi: 0x97},
- {value: 0x37e1, lo: 0x9c, hi: 0x9c},
- {value: 0x37c9, lo: 0x9d, hi: 0x9d},
- {value: 0x37f3, lo: 0x9e, hi: 0x9e},
- {value: 0xa000, lo: 0xb4, hi: 0xb5},
- {value: 0x381d, lo: 0xb6, hi: 0xb6},
- {value: 0x3823, lo: 0xb7, hi: 0xb7},
- // Block 0x5, offset 0x35
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0x83, hi: 0x87},
- // Block 0x6, offset 0x37
- {value: 0x0001, lo: 0x04},
- {value: 0x8113, lo: 0x81, hi: 0x82},
- {value: 0x8132, lo: 0x84, hi: 0x84},
- {value: 0x812d, lo: 0x85, hi: 0x85},
- {value: 0x810d, lo: 0x87, hi: 0x87},
- // Block 0x7, offset 0x3c
- {value: 0x0000, lo: 0x0a},
- {value: 0x8132, lo: 0x90, hi: 0x97},
- {value: 0x8119, lo: 0x98, hi: 0x98},
- {value: 0x811a, lo: 0x99, hi: 0x99},
- {value: 0x811b, lo: 0x9a, hi: 0x9a},
- {value: 0x3841, lo: 0xa2, hi: 0xa2},
- {value: 0x3847, lo: 0xa3, hi: 0xa3},
- {value: 0x3853, lo: 0xa4, hi: 0xa4},
- {value: 0x384d, lo: 0xa5, hi: 0xa5},
- {value: 0x3859, lo: 0xa6, hi: 0xa6},
- {value: 0xa000, lo: 0xa7, hi: 0xa7},
- // Block 0x8, offset 0x47
- {value: 0x0000, lo: 0x0e},
- {value: 0x386b, lo: 0x80, hi: 0x80},
- {value: 0xa000, lo: 0x81, hi: 0x81},
- {value: 0x385f, lo: 0x82, hi: 0x82},
- {value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0x3865, lo: 0x93, hi: 0x93},
- {value: 0xa000, lo: 0x95, hi: 0x95},
- {value: 0x8132, lo: 0x96, hi: 0x9c},
- {value: 0x8132, lo: 0x9f, hi: 0xa2},
- {value: 0x812d, lo: 0xa3, hi: 0xa3},
- {value: 0x8132, lo: 0xa4, hi: 0xa4},
- {value: 0x8132, lo: 0xa7, hi: 0xa8},
- {value: 0x812d, lo: 0xaa, hi: 0xaa},
- {value: 0x8132, lo: 0xab, hi: 0xac},
- {value: 0x812d, lo: 0xad, hi: 0xad},
- // Block 0x9, offset 0x56
- {value: 0x0000, lo: 0x0c},
- {value: 0x811f, lo: 0x91, hi: 0x91},
- {value: 0x8132, lo: 0xb0, hi: 0xb0},
- {value: 0x812d, lo: 0xb1, hi: 0xb1},
- {value: 0x8132, lo: 0xb2, hi: 0xb3},
- {value: 0x812d, lo: 0xb4, hi: 0xb4},
- {value: 0x8132, lo: 0xb5, hi: 0xb6},
- {value: 0x812d, lo: 0xb7, hi: 0xb9},
- {value: 0x8132, lo: 0xba, hi: 0xba},
- {value: 0x812d, lo: 0xbb, hi: 0xbc},
- {value: 0x8132, lo: 0xbd, hi: 0xbd},
- {value: 0x812d, lo: 0xbe, hi: 0xbe},
- {value: 0x8132, lo: 0xbf, hi: 0xbf},
- // Block 0xa, offset 0x63
- {value: 0x0005, lo: 0x07},
- {value: 0x8132, lo: 0x80, hi: 0x80},
- {value: 0x8132, lo: 0x81, hi: 0x81},
- {value: 0x812d, lo: 0x82, hi: 0x83},
- {value: 0x812d, lo: 0x84, hi: 0x85},
- {value: 0x812d, lo: 0x86, hi: 0x87},
- {value: 0x812d, lo: 0x88, hi: 0x89},
- {value: 0x8132, lo: 0x8a, hi: 0x8a},
- // Block 0xb, offset 0x6b
- {value: 0x0000, lo: 0x03},
- {value: 0x8132, lo: 0xab, hi: 0xb1},
- {value: 0x812d, lo: 0xb2, hi: 0xb2},
- {value: 0x8132, lo: 0xb3, hi: 0xb3},
- // Block 0xc, offset 0x6f
- {value: 0x0000, lo: 0x04},
- {value: 0x8132, lo: 0x96, hi: 0x99},
- {value: 0x8132, lo: 0x9b, hi: 0xa3},
- {value: 0x8132, lo: 0xa5, hi: 0xa7},
- {value: 0x8132, lo: 0xa9, hi: 0xad},
- // Block 0xd, offset 0x74
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0x99, hi: 0x9b},
- // Block 0xe, offset 0x76
- {value: 0x0000, lo: 0x10},
- {value: 0x8132, lo: 0x94, hi: 0xa1},
- {value: 0x812d, lo: 0xa3, hi: 0xa3},
- {value: 0x8132, lo: 0xa4, hi: 0xa5},
- {value: 0x812d, lo: 0xa6, hi: 0xa6},
- {value: 0x8132, lo: 0xa7, hi: 0xa8},
- {value: 0x812d, lo: 0xa9, hi: 0xa9},
- {value: 0x8132, lo: 0xaa, hi: 0xac},
- {value: 0x812d, lo: 0xad, hi: 0xaf},
- {value: 0x8116, lo: 0xb0, hi: 0xb0},
- {value: 0x8117, lo: 0xb1, hi: 0xb1},
- {value: 0x8118, lo: 0xb2, hi: 0xb2},
- {value: 0x8132, lo: 0xb3, hi: 0xb5},
- {value: 0x812d, lo: 0xb6, hi: 0xb6},
- {value: 0x8132, lo: 0xb7, hi: 0xb8},
- {value: 0x812d, lo: 0xb9, hi: 0xba},
- {value: 0x8132, lo: 0xbb, hi: 0xbf},
- // Block 0xf, offset 0x87
- {value: 0x0000, lo: 0x07},
- {value: 0xa000, lo: 0xa8, hi: 0xa8},
- {value: 0x3ed8, lo: 0xa9, hi: 0xa9},
- {value: 0xa000, lo: 0xb0, hi: 0xb0},
- {value: 0x3ee0, lo: 0xb1, hi: 0xb1},
- {value: 0xa000, lo: 0xb3, hi: 0xb3},
- {value: 0x3ee8, lo: 0xb4, hi: 0xb4},
- {value: 0x9902, lo: 0xbc, hi: 0xbc},
- // Block 0x10, offset 0x8f
- {value: 0x0008, lo: 0x06},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x8132, lo: 0x91, hi: 0x91},
- {value: 0x812d, lo: 0x92, hi: 0x92},
- {value: 0x8132, lo: 0x93, hi: 0x93},
- {value: 0x8132, lo: 0x94, hi: 0x94},
- {value: 0x451c, lo: 0x98, hi: 0x9f},
- // Block 0x11, offset 0x96
- {value: 0x0000, lo: 0x02},
- {value: 0x8102, lo: 0xbc, hi: 0xbc},
- {value: 0x9900, lo: 0xbe, hi: 0xbe},
- // Block 0x12, offset 0x99
- {value: 0x0008, lo: 0x06},
- {value: 0xa000, lo: 0x87, hi: 0x87},
- {value: 0x2c9e, lo: 0x8b, hi: 0x8c},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x9900, lo: 0x97, hi: 0x97},
- {value: 0x455c, lo: 0x9c, hi: 0x9d},
- {value: 0x456c, lo: 0x9f, hi: 0x9f},
- // Block 0x13, offset 0xa0
- {value: 0x0000, lo: 0x03},
- {value: 0x4594, lo: 0xb3, hi: 0xb3},
- {value: 0x459c, lo: 0xb6, hi: 0xb6},
- {value: 0x8102, lo: 0xbc, hi: 0xbc},
- // Block 0x14, offset 0xa4
- {value: 0x0008, lo: 0x03},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x4574, lo: 0x99, hi: 0x9b},
- {value: 0x458c, lo: 0x9e, hi: 0x9e},
- // Block 0x15, offset 0xa8
- {value: 0x0000, lo: 0x01},
- {value: 0x8102, lo: 0xbc, hi: 0xbc},
- // Block 0x16, offset 0xaa
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- // Block 0x17, offset 0xac
- {value: 0x0000, lo: 0x08},
- {value: 0xa000, lo: 0x87, hi: 0x87},
- {value: 0x2cb6, lo: 0x88, hi: 0x88},
- {value: 0x2cae, lo: 0x8b, hi: 0x8b},
- {value: 0x2cbe, lo: 0x8c, hi: 0x8c},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x9900, lo: 0x96, hi: 0x97},
- {value: 0x45a4, lo: 0x9c, hi: 0x9c},
- {value: 0x45ac, lo: 0x9d, hi: 0x9d},
- // Block 0x18, offset 0xb5
- {value: 0x0000, lo: 0x03},
- {value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0x2cc6, lo: 0x94, hi: 0x94},
- {value: 0x9900, lo: 0xbe, hi: 0xbe},
- // Block 0x19, offset 0xb9
- {value: 0x0000, lo: 0x06},
- {value: 0xa000, lo: 0x86, hi: 0x87},
- {value: 0x2cce, lo: 0x8a, hi: 0x8a},
- {value: 0x2cde, lo: 0x8b, hi: 0x8b},
- {value: 0x2cd6, lo: 0x8c, hi: 0x8c},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x9900, lo: 0x97, hi: 0x97},
- // Block 0x1a, offset 0xc0
- {value: 0x1801, lo: 0x04},
- {value: 0xa000, lo: 0x86, hi: 0x86},
- {value: 0x3ef0, lo: 0x88, hi: 0x88},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x8120, lo: 0x95, hi: 0x96},
- // Block 0x1b, offset 0xc5
- {value: 0x0000, lo: 0x02},
- {value: 0x8102, lo: 0xbc, hi: 0xbc},
- {value: 0xa000, lo: 0xbf, hi: 0xbf},
- // Block 0x1c, offset 0xc8
- {value: 0x0000, lo: 0x09},
- {value: 0x2ce6, lo: 0x80, hi: 0x80},
- {value: 0x9900, lo: 0x82, hi: 0x82},
- {value: 0xa000, lo: 0x86, hi: 0x86},
- {value: 0x2cee, lo: 0x87, hi: 0x87},
- {value: 0x2cf6, lo: 0x88, hi: 0x88},
- {value: 0x2f50, lo: 0x8a, hi: 0x8a},
- {value: 0x2dd8, lo: 0x8b, hi: 0x8b},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x9900, lo: 0x95, hi: 0x96},
- // Block 0x1d, offset 0xd2
- {value: 0x0000, lo: 0x01},
- {value: 0x9900, lo: 0xbe, hi: 0xbe},
- // Block 0x1e, offset 0xd4
- {value: 0x0000, lo: 0x06},
- {value: 0xa000, lo: 0x86, hi: 0x87},
- {value: 0x2cfe, lo: 0x8a, hi: 0x8a},
- {value: 0x2d0e, lo: 0x8b, hi: 0x8b},
- {value: 0x2d06, lo: 0x8c, hi: 0x8c},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x9900, lo: 0x97, hi: 0x97},
- // Block 0x1f, offset 0xdb
- {value: 0x6bea, lo: 0x07},
- {value: 0x9904, lo: 0x8a, hi: 0x8a},
- {value: 0x9900, lo: 0x8f, hi: 0x8f},
- {value: 0xa000, lo: 0x99, hi: 0x99},
- {value: 0x3ef8, lo: 0x9a, hi: 0x9a},
- {value: 0x2f58, lo: 0x9c, hi: 0x9c},
- {value: 0x2de3, lo: 0x9d, hi: 0x9d},
- {value: 0x2d16, lo: 0x9e, hi: 0x9f},
- // Block 0x20, offset 0xe3
- {value: 0x0000, lo: 0x03},
- {value: 0x2621, lo: 0xb3, hi: 0xb3},
- {value: 0x8122, lo: 0xb8, hi: 0xb9},
- {value: 0x8104, lo: 0xba, hi: 0xba},
- // Block 0x21, offset 0xe7
- {value: 0x0000, lo: 0x01},
- {value: 0x8123, lo: 0x88, hi: 0x8b},
- // Block 0x22, offset 0xe9
- {value: 0x0000, lo: 0x02},
- {value: 0x2636, lo: 0xb3, hi: 0xb3},
- {value: 0x8124, lo: 0xb8, hi: 0xb9},
- // Block 0x23, offset 0xec
- {value: 0x0000, lo: 0x03},
- {value: 0x8125, lo: 0x88, hi: 0x8b},
- {value: 0x2628, lo: 0x9c, hi: 0x9c},
- {value: 0x262f, lo: 0x9d, hi: 0x9d},
- // Block 0x24, offset 0xf0
- {value: 0x0000, lo: 0x05},
- {value: 0x030b, lo: 0x8c, hi: 0x8c},
- {value: 0x812d, lo: 0x98, hi: 0x99},
- {value: 0x812d, lo: 0xb5, hi: 0xb5},
- {value: 0x812d, lo: 0xb7, hi: 0xb7},
- {value: 0x812b, lo: 0xb9, hi: 0xb9},
- // Block 0x25, offset 0xf6
- {value: 0x0000, lo: 0x10},
- {value: 0x2644, lo: 0x83, hi: 0x83},
- {value: 0x264b, lo: 0x8d, hi: 0x8d},
- {value: 0x2652, lo: 0x92, hi: 0x92},
- {value: 0x2659, lo: 0x97, hi: 0x97},
- {value: 0x2660, lo: 0x9c, hi: 0x9c},
- {value: 0x263d, lo: 0xa9, hi: 0xa9},
- {value: 0x8126, lo: 0xb1, hi: 0xb1},
- {value: 0x8127, lo: 0xb2, hi: 0xb2},
- {value: 0x4a84, lo: 0xb3, hi: 0xb3},
- {value: 0x8128, lo: 0xb4, hi: 0xb4},
- {value: 0x4a8d, lo: 0xb5, hi: 0xb5},
- {value: 0x45b4, lo: 0xb6, hi: 0xb6},
- {value: 0x45f4, lo: 0xb7, hi: 0xb7},
- {value: 0x45bc, lo: 0xb8, hi: 0xb8},
- {value: 0x45ff, lo: 0xb9, hi: 0xb9},
- {value: 0x8127, lo: 0xba, hi: 0xbd},
- // Block 0x26, offset 0x107
- {value: 0x0000, lo: 0x0b},
- {value: 0x8127, lo: 0x80, hi: 0x80},
- {value: 0x4a96, lo: 0x81, hi: 0x81},
- {value: 0x8132, lo: 0x82, hi: 0x83},
- {value: 0x8104, lo: 0x84, hi: 0x84},
- {value: 0x8132, lo: 0x86, hi: 0x87},
- {value: 0x266e, lo: 0x93, hi: 0x93},
- {value: 0x2675, lo: 0x9d, hi: 0x9d},
- {value: 0x267c, lo: 0xa2, hi: 0xa2},
- {value: 0x2683, lo: 0xa7, hi: 0xa7},
- {value: 0x268a, lo: 0xac, hi: 0xac},
- {value: 0x2667, lo: 0xb9, hi: 0xb9},
- // Block 0x27, offset 0x113
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0x86, hi: 0x86},
- // Block 0x28, offset 0x115
- {value: 0x0000, lo: 0x05},
- {value: 0xa000, lo: 0xa5, hi: 0xa5},
- {value: 0x2d1e, lo: 0xa6, hi: 0xa6},
- {value: 0x9900, lo: 0xae, hi: 0xae},
- {value: 0x8102, lo: 0xb7, hi: 0xb7},
- {value: 0x8104, lo: 0xb9, hi: 0xba},
- // Block 0x29, offset 0x11b
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0x8d, hi: 0x8d},
- // Block 0x2a, offset 0x11d
- {value: 0x0000, lo: 0x01},
- {value: 0x030f, lo: 0xbc, hi: 0xbc},
- // Block 0x2b, offset 0x11f
- {value: 0x0000, lo: 0x01},
- {value: 0xa000, lo: 0x80, hi: 0x92},
- // Block 0x2c, offset 0x121
- {value: 0x0000, lo: 0x01},
- {value: 0xb900, lo: 0xa1, hi: 0xb5},
- // Block 0x2d, offset 0x123
- {value: 0x0000, lo: 0x01},
- {value: 0x9900, lo: 0xa8, hi: 0xbf},
- // Block 0x2e, offset 0x125
- {value: 0x0000, lo: 0x01},
- {value: 0x9900, lo: 0x80, hi: 0x82},
- // Block 0x2f, offset 0x127
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0x9d, hi: 0x9f},
- // Block 0x30, offset 0x129
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x94, hi: 0x94},
- {value: 0x8104, lo: 0xb4, hi: 0xb4},
- // Block 0x31, offset 0x12c
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x92, hi: 0x92},
- {value: 0x8132, lo: 0x9d, hi: 0x9d},
- // Block 0x32, offset 0x12f
- {value: 0x0000, lo: 0x01},
- {value: 0x8131, lo: 0xa9, hi: 0xa9},
- // Block 0x33, offset 0x131
- {value: 0x0004, lo: 0x02},
- {value: 0x812e, lo: 0xb9, hi: 0xba},
- {value: 0x812d, lo: 0xbb, hi: 0xbb},
- // Block 0x34, offset 0x134
- {value: 0x0000, lo: 0x02},
- {value: 0x8132, lo: 0x97, hi: 0x97},
- {value: 0x812d, lo: 0x98, hi: 0x98},
- // Block 0x35, offset 0x137
- {value: 0x0000, lo: 0x03},
- {value: 0x8104, lo: 0xa0, hi: 0xa0},
- {value: 0x8132, lo: 0xb5, hi: 0xbc},
- {value: 0x812d, lo: 0xbf, hi: 0xbf},
- // Block 0x36, offset 0x13b
- {value: 0x0000, lo: 0x04},
- {value: 0x8132, lo: 0xb0, hi: 0xb4},
- {value: 0x812d, lo: 0xb5, hi: 0xba},
- {value: 0x8132, lo: 0xbb, hi: 0xbc},
- {value: 0x812d, lo: 0xbd, hi: 0xbd},
- // Block 0x37, offset 0x140
- {value: 0x0000, lo: 0x08},
- {value: 0x2d66, lo: 0x80, hi: 0x80},
- {value: 0x2d6e, lo: 0x81, hi: 0x81},
- {value: 0xa000, lo: 0x82, hi: 0x82},
- {value: 0x2d76, lo: 0x83, hi: 0x83},
- {value: 0x8104, lo: 0x84, hi: 0x84},
- {value: 0x8132, lo: 0xab, hi: 0xab},
- {value: 0x812d, lo: 0xac, hi: 0xac},
- {value: 0x8132, lo: 0xad, hi: 0xb3},
- // Block 0x38, offset 0x149
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0xaa, hi: 0xab},
- // Block 0x39, offset 0x14b
- {value: 0x0000, lo: 0x02},
- {value: 0x8102, lo: 0xa6, hi: 0xa6},
- {value: 0x8104, lo: 0xb2, hi: 0xb3},
- // Block 0x3a, offset 0x14e
- {value: 0x0000, lo: 0x01},
- {value: 0x8102, lo: 0xb7, hi: 0xb7},
- // Block 0x3b, offset 0x150
- {value: 0x0000, lo: 0x0a},
- {value: 0x8132, lo: 0x90, hi: 0x92},
- {value: 0x8101, lo: 0x94, hi: 0x94},
- {value: 0x812d, lo: 0x95, hi: 0x99},
- {value: 0x8132, lo: 0x9a, hi: 0x9b},
- {value: 0x812d, lo: 0x9c, hi: 0x9f},
- {value: 0x8132, lo: 0xa0, hi: 0xa0},
- {value: 0x8101, lo: 0xa2, hi: 0xa8},
- {value: 0x812d, lo: 0xad, hi: 0xad},
- {value: 0x8132, lo: 0xb4, hi: 0xb4},
- {value: 0x8132, lo: 0xb8, hi: 0xb9},
- // Block 0x3c, offset 0x15b
- {value: 0x0002, lo: 0x0a},
- {value: 0x0043, lo: 0xac, hi: 0xac},
- {value: 0x00d1, lo: 0xad, hi: 0xad},
- {value: 0x0045, lo: 0xae, hi: 0xae},
- {value: 0x0049, lo: 0xb0, hi: 0xb1},
- {value: 0x00e6, lo: 0xb2, hi: 0xb2},
- {value: 0x004f, lo: 0xb3, hi: 0xba},
- {value: 0x005f, lo: 0xbc, hi: 0xbc},
- {value: 0x00ef, lo: 0xbd, hi: 0xbd},
- {value: 0x0061, lo: 0xbe, hi: 0xbe},
- {value: 0x0065, lo: 0xbf, hi: 0xbf},
- // Block 0x3d, offset 0x166
- {value: 0x0000, lo: 0x0f},
- {value: 0x8132, lo: 0x80, hi: 0x81},
- {value: 0x812d, lo: 0x82, hi: 0x82},
- {value: 0x8132, lo: 0x83, hi: 0x89},
- {value: 0x812d, lo: 0x8a, hi: 0x8a},
- {value: 0x8132, lo: 0x8b, hi: 0x8c},
- {value: 0x8135, lo: 0x8d, hi: 0x8d},
- {value: 0x812a, lo: 0x8e, hi: 0x8e},
- {value: 0x812d, lo: 0x8f, hi: 0x8f},
- {value: 0x8129, lo: 0x90, hi: 0x90},
- {value: 0x8132, lo: 0x91, hi: 0xb5},
- {value: 0x8132, lo: 0xbb, hi: 0xbb},
- {value: 0x8134, lo: 0xbc, hi: 0xbc},
- {value: 0x812d, lo: 0xbd, hi: 0xbd},
- {value: 0x8132, lo: 0xbe, hi: 0xbe},
- {value: 0x812d, lo: 0xbf, hi: 0xbf},
- // Block 0x3e, offset 0x176
- {value: 0x0000, lo: 0x0d},
- {value: 0x0001, lo: 0x80, hi: 0x8a},
- {value: 0x043b, lo: 0x91, hi: 0x91},
- {value: 0x429b, lo: 0x97, hi: 0x97},
- {value: 0x001d, lo: 0xa4, hi: 0xa4},
- {value: 0x1873, lo: 0xa5, hi: 0xa5},
- {value: 0x1b5c, lo: 0xa6, hi: 0xa6},
- {value: 0x0001, lo: 0xaf, hi: 0xaf},
- {value: 0x2691, lo: 0xb3, hi: 0xb3},
- {value: 0x27fe, lo: 0xb4, hi: 0xb4},
- {value: 0x2698, lo: 0xb6, hi: 0xb6},
- {value: 0x2808, lo: 0xb7, hi: 0xb7},
- {value: 0x186d, lo: 0xbc, hi: 0xbc},
- {value: 0x4269, lo: 0xbe, hi: 0xbe},
- // Block 0x3f, offset 0x184
- {value: 0x0002, lo: 0x0d},
- {value: 0x1933, lo: 0x87, hi: 0x87},
- {value: 0x1930, lo: 0x88, hi: 0x88},
- {value: 0x1870, lo: 0x89, hi: 0x89},
- {value: 0x298e, lo: 0x97, hi: 0x97},
- {value: 0x0001, lo: 0x9f, hi: 0x9f},
- {value: 0x0021, lo: 0xb0, hi: 0xb0},
- {value: 0x0093, lo: 0xb1, hi: 0xb1},
- {value: 0x0029, lo: 0xb4, hi: 0xb9},
- {value: 0x0017, lo: 0xba, hi: 0xba},
- {value: 0x0467, lo: 0xbb, hi: 0xbb},
- {value: 0x003b, lo: 0xbc, hi: 0xbc},
- {value: 0x0011, lo: 0xbd, hi: 0xbe},
- {value: 0x009d, lo: 0xbf, hi: 0xbf},
- // Block 0x40, offset 0x192
- {value: 0x0002, lo: 0x0f},
- {value: 0x0021, lo: 0x80, hi: 0x89},
- {value: 0x0017, lo: 0x8a, hi: 0x8a},
- {value: 0x0467, lo: 0x8b, hi: 0x8b},
- {value: 0x003b, lo: 0x8c, hi: 0x8c},
- {value: 0x0011, lo: 0x8d, hi: 0x8e},
- {value: 0x0083, lo: 0x90, hi: 0x90},
- {value: 0x008b, lo: 0x91, hi: 0x91},
- {value: 0x009f, lo: 0x92, hi: 0x92},
- {value: 0x00b1, lo: 0x93, hi: 0x93},
- {value: 0x0104, lo: 0x94, hi: 0x94},
- {value: 0x0091, lo: 0x95, hi: 0x95},
- {value: 0x0097, lo: 0x96, hi: 0x99},
- {value: 0x00a1, lo: 0x9a, hi: 0x9a},
- {value: 0x00a7, lo: 0x9b, hi: 0x9c},
- {value: 0x1999, lo: 0xa8, hi: 0xa8},
- // Block 0x41, offset 0x1a2
- {value: 0x0000, lo: 0x0d},
- {value: 0x8132, lo: 0x90, hi: 0x91},
- {value: 0x8101, lo: 0x92, hi: 0x93},
- {value: 0x8132, lo: 0x94, hi: 0x97},
- {value: 0x8101, lo: 0x98, hi: 0x9a},
- {value: 0x8132, lo: 0x9b, hi: 0x9c},
- {value: 0x8132, lo: 0xa1, hi: 0xa1},
- {value: 0x8101, lo: 0xa5, hi: 0xa6},
- {value: 0x8132, lo: 0xa7, hi: 0xa7},
- {value: 0x812d, lo: 0xa8, hi: 0xa8},
- {value: 0x8132, lo: 0xa9, hi: 0xa9},
- {value: 0x8101, lo: 0xaa, hi: 0xab},
- {value: 0x812d, lo: 0xac, hi: 0xaf},
- {value: 0x8132, lo: 0xb0, hi: 0xb0},
- // Block 0x42, offset 0x1b0
- {value: 0x0007, lo: 0x06},
- {value: 0x2180, lo: 0x89, hi: 0x89},
- {value: 0xa000, lo: 0x90, hi: 0x90},
- {value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0xa000, lo: 0x94, hi: 0x94},
- {value: 0x3bb9, lo: 0x9a, hi: 0x9b},
- {value: 0x3bc7, lo: 0xae, hi: 0xae},
- // Block 0x43, offset 0x1b7
- {value: 0x000e, lo: 0x05},
- {value: 0x3bce, lo: 0x8d, hi: 0x8e},
- {value: 0x3bd5, lo: 0x8f, hi: 0x8f},
- {value: 0xa000, lo: 0x90, hi: 0x90},
- {value: 0xa000, lo: 0x92, hi: 0x92},
- {value: 0xa000, lo: 0x94, hi: 0x94},
- // Block 0x44, offset 0x1bd
- {value: 0x0173, lo: 0x0e},
- {value: 0xa000, lo: 0x83, hi: 0x83},
- {value: 0x3be3, lo: 0x84, hi: 0x84},
- {value: 0xa000, lo: 0x88, hi: 0x88},
- {value: 0x3bea, lo: 0x89, hi: 0x89},
- {value: 0xa000, lo: 0x8b, hi: 0x8b},
- {value: 0x3bf1, lo: 0x8c, hi: 0x8c},
- {value: 0xa000, lo: 0xa3, hi: 0xa3},
- {value: 0x3bf8, lo: 0xa4, hi: 0xa4},
- {value: 0xa000, lo: 0xa5, hi: 0xa5},
- {value: 0x3bff, lo: 0xa6, hi: 0xa6},
- {value: 0x269f, lo: 0xac, hi: 0xad},
- {value: 0x26a6, lo: 0xaf, hi: 0xaf},
- {value: 0x281c, lo: 0xb0, hi: 0xb0},
- {value: 0xa000, lo: 0xbc, hi: 0xbc},
- // Block 0x45, offset 0x1cc
- {value: 0x0007, lo: 0x03},
- {value: 0x3c68, lo: 0xa0, hi: 0xa1},
- {value: 0x3c92, lo: 0xa2, hi: 0xa3},
- {value: 0x3cbc, lo: 0xaa, hi: 0xad},
- // Block 0x46, offset 0x1d0
- {value: 0x0004, lo: 0x01},
- {value: 0x048b, lo: 0xa9, hi: 0xaa},
- // Block 0x47, offset 0x1d2
- {value: 0x0002, lo: 0x03},
- {value: 0x0057, lo: 0x80, hi: 0x8f},
- {value: 0x0083, lo: 0x90, hi: 0xa9},
- {value: 0x0021, lo: 0xaa, hi: 0xaa},
- // Block 0x48, offset 0x1d6
- {value: 0x0000, lo: 0x01},
- {value: 0x299b, lo: 0x8c, hi: 0x8c},
- // Block 0x49, offset 0x1d8
- {value: 0x0263, lo: 0x02},
- {value: 0x1b8c, lo: 0xb4, hi: 0xb4},
- {value: 0x192d, lo: 0xb5, hi: 0xb6},
- // Block 0x4a, offset 0x1db
- {value: 0x0000, lo: 0x01},
- {value: 0x44dd, lo: 0x9c, hi: 0x9c},
- // Block 0x4b, offset 0x1dd
- {value: 0x0000, lo: 0x02},
- {value: 0x0095, lo: 0xbc, hi: 0xbc},
- {value: 0x006d, lo: 0xbd, hi: 0xbd},
- // Block 0x4c, offset 0x1e0
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0xaf, hi: 0xb1},
- // Block 0x4d, offset 0x1e2
- {value: 0x0000, lo: 0x02},
- {value: 0x047f, lo: 0xaf, hi: 0xaf},
- {value: 0x8104, lo: 0xbf, hi: 0xbf},
- // Block 0x4e, offset 0x1e5
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0xa0, hi: 0xbf},
- // Block 0x4f, offset 0x1e7
- {value: 0x0000, lo: 0x01},
- {value: 0x0dc3, lo: 0x9f, hi: 0x9f},
- // Block 0x50, offset 0x1e9
- {value: 0x0000, lo: 0x01},
- {value: 0x162f, lo: 0xb3, hi: 0xb3},
- // Block 0x51, offset 0x1eb
- {value: 0x0004, lo: 0x0b},
- {value: 0x1597, lo: 0x80, hi: 0x82},
- {value: 0x15af, lo: 0x83, hi: 0x83},
- {value: 0x15c7, lo: 0x84, hi: 0x85},
- {value: 0x15d7, lo: 0x86, hi: 0x89},
- {value: 0x15eb, lo: 0x8a, hi: 0x8c},
- {value: 0x15ff, lo: 0x8d, hi: 0x8d},
- {value: 0x1607, lo: 0x8e, hi: 0x8e},
- {value: 0x160f, lo: 0x8f, hi: 0x90},
- {value: 0x161b, lo: 0x91, hi: 0x93},
- {value: 0x162b, lo: 0x94, hi: 0x94},
- {value: 0x1633, lo: 0x95, hi: 0x95},
- // Block 0x52, offset 0x1f7
- {value: 0x0004, lo: 0x09},
- {value: 0x0001, lo: 0x80, hi: 0x80},
- {value: 0x812c, lo: 0xaa, hi: 0xaa},
- {value: 0x8131, lo: 0xab, hi: 0xab},
- {value: 0x8133, lo: 0xac, hi: 0xac},
- {value: 0x812e, lo: 0xad, hi: 0xad},
- {value: 0x812f, lo: 0xae, hi: 0xae},
- {value: 0x812f, lo: 0xaf, hi: 0xaf},
- {value: 0x04b3, lo: 0xb6, hi: 0xb6},
- {value: 0x0887, lo: 0xb8, hi: 0xba},
- // Block 0x53, offset 0x201
- {value: 0x0006, lo: 0x09},
- {value: 0x0313, lo: 0xb1, hi: 0xb1},
- {value: 0x0317, lo: 0xb2, hi: 0xb2},
- {value: 0x4a3b, lo: 0xb3, hi: 0xb3},
- {value: 0x031b, lo: 0xb4, hi: 0xb4},
- {value: 0x4a41, lo: 0xb5, hi: 0xb6},
- {value: 0x031f, lo: 0xb7, hi: 0xb7},
- {value: 0x0323, lo: 0xb8, hi: 0xb8},
- {value: 0x0327, lo: 0xb9, hi: 0xb9},
- {value: 0x4a4d, lo: 0xba, hi: 0xbf},
- // Block 0x54, offset 0x20b
- {value: 0x0000, lo: 0x02},
- {value: 0x8132, lo: 0xaf, hi: 0xaf},
- {value: 0x8132, lo: 0xb4, hi: 0xbd},
- // Block 0x55, offset 0x20e
- {value: 0x0000, lo: 0x03},
- {value: 0x020f, lo: 0x9c, hi: 0x9c},
- {value: 0x0212, lo: 0x9d, hi: 0x9d},
- {value: 0x8132, lo: 0x9e, hi: 0x9f},
- // Block 0x56, offset 0x212
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0xb0, hi: 0xb1},
- // Block 0x57, offset 0x214
- {value: 0x0000, lo: 0x01},
- {value: 0x163b, lo: 0xb0, hi: 0xb0},
- // Block 0x58, offset 0x216
- {value: 0x000c, lo: 0x01},
- {value: 0x00d7, lo: 0xb8, hi: 0xb9},
- // Block 0x59, offset 0x218
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0x86, hi: 0x86},
- // Block 0x5a, offset 0x21a
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x84, hi: 0x84},
- {value: 0x8132, lo: 0xa0, hi: 0xb1},
- // Block 0x5b, offset 0x21d
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0xab, hi: 0xad},
- // Block 0x5c, offset 0x21f
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0x93, hi: 0x93},
- // Block 0x5d, offset 0x221
- {value: 0x0000, lo: 0x01},
- {value: 0x8102, lo: 0xb3, hi: 0xb3},
- // Block 0x5e, offset 0x223
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0x80, hi: 0x80},
- // Block 0x5f, offset 0x225
- {value: 0x0000, lo: 0x05},
- {value: 0x8132, lo: 0xb0, hi: 0xb0},
- {value: 0x8132, lo: 0xb2, hi: 0xb3},
- {value: 0x812d, lo: 0xb4, hi: 0xb4},
- {value: 0x8132, lo: 0xb7, hi: 0xb8},
- {value: 0x8132, lo: 0xbe, hi: 0xbf},
- // Block 0x60, offset 0x22b
- {value: 0x0000, lo: 0x02},
- {value: 0x8132, lo: 0x81, hi: 0x81},
- {value: 0x8104, lo: 0xb6, hi: 0xb6},
- // Block 0x61, offset 0x22e
- {value: 0x0008, lo: 0x03},
- {value: 0x1637, lo: 0x9c, hi: 0x9d},
- {value: 0x0125, lo: 0x9e, hi: 0x9e},
- {value: 0x1643, lo: 0x9f, hi: 0x9f},
- // Block 0x62, offset 0x232
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0xad, hi: 0xad},
- // Block 0x63, offset 0x234
- {value: 0x0000, lo: 0x06},
- {value: 0xe500, lo: 0x80, hi: 0x80},
- {value: 0xc600, lo: 0x81, hi: 0x9b},
- {value: 0xe500, lo: 0x9c, hi: 0x9c},
- {value: 0xc600, lo: 0x9d, hi: 0xb7},
- {value: 0xe500, lo: 0xb8, hi: 0xb8},
- {value: 0xc600, lo: 0xb9, hi: 0xbf},
- // Block 0x64, offset 0x23b
- {value: 0x0000, lo: 0x05},
- {value: 0xc600, lo: 0x80, hi: 0x93},
- {value: 0xe500, lo: 0x94, hi: 0x94},
- {value: 0xc600, lo: 0x95, hi: 0xaf},
- {value: 0xe500, lo: 0xb0, hi: 0xb0},
- {value: 0xc600, lo: 0xb1, hi: 0xbf},
- // Block 0x65, offset 0x241
- {value: 0x0000, lo: 0x05},
- {value: 0xc600, lo: 0x80, hi: 0x8b},
- {value: 0xe500, lo: 0x8c, hi: 0x8c},
- {value: 0xc600, lo: 0x8d, hi: 0xa7},
- {value: 0xe500, lo: 0xa8, hi: 0xa8},
- {value: 0xc600, lo: 0xa9, hi: 0xbf},
- // Block 0x66, offset 0x247
- {value: 0x0000, lo: 0x07},
- {value: 0xc600, lo: 0x80, hi: 0x83},
- {value: 0xe500, lo: 0x84, hi: 0x84},
- {value: 0xc600, lo: 0x85, hi: 0x9f},
- {value: 0xe500, lo: 0xa0, hi: 0xa0},
- {value: 0xc600, lo: 0xa1, hi: 0xbb},
- {value: 0xe500, lo: 0xbc, hi: 0xbc},
- {value: 0xc600, lo: 0xbd, hi: 0xbf},
- // Block 0x67, offset 0x24f
- {value: 0x0000, lo: 0x05},
- {value: 0xc600, lo: 0x80, hi: 0x97},
- {value: 0xe500, lo: 0x98, hi: 0x98},
- {value: 0xc600, lo: 0x99, hi: 0xb3},
- {value: 0xe500, lo: 0xb4, hi: 0xb4},
- {value: 0xc600, lo: 0xb5, hi: 0xbf},
- // Block 0x68, offset 0x255
- {value: 0x0000, lo: 0x05},
- {value: 0xc600, lo: 0x80, hi: 0x8f},
- {value: 0xe500, lo: 0x90, hi: 0x90},
- {value: 0xc600, lo: 0x91, hi: 0xab},
- {value: 0xe500, lo: 0xac, hi: 0xac},
- {value: 0xc600, lo: 0xad, hi: 0xbf},
- // Block 0x69, offset 0x25b
- {value: 0x0000, lo: 0x05},
- {value: 0xc600, lo: 0x80, hi: 0x87},
- {value: 0xe500, lo: 0x88, hi: 0x88},
- {value: 0xc600, lo: 0x89, hi: 0xa3},
- {value: 0xe500, lo: 0xa4, hi: 0xa4},
- {value: 0xc600, lo: 0xa5, hi: 0xbf},
- // Block 0x6a, offset 0x261
- {value: 0x0000, lo: 0x03},
- {value: 0xc600, lo: 0x80, hi: 0x87},
- {value: 0xe500, lo: 0x88, hi: 0x88},
- {value: 0xc600, lo: 0x89, hi: 0xa3},
- // Block 0x6b, offset 0x265
- {value: 0x0002, lo: 0x01},
- {value: 0x0003, lo: 0x81, hi: 0xbf},
- // Block 0x6c, offset 0x267
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0xbd, hi: 0xbd},
- // Block 0x6d, offset 0x269
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0xa0, hi: 0xa0},
- // Block 0x6e, offset 0x26b
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0xb6, hi: 0xba},
- // Block 0x6f, offset 0x26d
- {value: 0x002c, lo: 0x05},
- {value: 0x812d, lo: 0x8d, hi: 0x8d},
- {value: 0x8132, lo: 0x8f, hi: 0x8f},
- {value: 0x8132, lo: 0xb8, hi: 0xb8},
- {value: 0x8101, lo: 0xb9, hi: 0xba},
- {value: 0x8104, lo: 0xbf, hi: 0xbf},
- // Block 0x70, offset 0x273
- {value: 0x0000, lo: 0x02},
- {value: 0x8132, lo: 0xa5, hi: 0xa5},
- {value: 0x812d, lo: 0xa6, hi: 0xa6},
- // Block 0x71, offset 0x276
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x86, hi: 0x86},
- {value: 0x8104, lo: 0xbf, hi: 0xbf},
- // Block 0x72, offset 0x279
- {value: 0x17fe, lo: 0x07},
- {value: 0xa000, lo: 0x99, hi: 0x99},
- {value: 0x4238, lo: 0x9a, hi: 0x9a},
- {value: 0xa000, lo: 0x9b, hi: 0x9b},
- {value: 0x4242, lo: 0x9c, hi: 0x9c},
- {value: 0xa000, lo: 0xa5, hi: 0xa5},
- {value: 0x424c, lo: 0xab, hi: 0xab},
- {value: 0x8104, lo: 0xb9, hi: 0xba},
- // Block 0x73, offset 0x281
- {value: 0x0000, lo: 0x06},
- {value: 0x8132, lo: 0x80, hi: 0x82},
- {value: 0x9900, lo: 0xa7, hi: 0xa7},
- {value: 0x2d7e, lo: 0xae, hi: 0xae},
- {value: 0x2d88, lo: 0xaf, hi: 0xaf},
- {value: 0xa000, lo: 0xb1, hi: 0xb2},
- {value: 0x8104, lo: 0xb3, hi: 0xb4},
- // Block 0x74, offset 0x288
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x80, hi: 0x80},
- {value: 0x8102, lo: 0x8a, hi: 0x8a},
- // Block 0x75, offset 0x28b
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0xb5, hi: 0xb5},
- {value: 0x8102, lo: 0xb6, hi: 0xb6},
- // Block 0x76, offset 0x28e
- {value: 0x0002, lo: 0x01},
- {value: 0x8102, lo: 0xa9, hi: 0xaa},
- // Block 0x77, offset 0x290
- {value: 0x0000, lo: 0x07},
- {value: 0xa000, lo: 0x87, hi: 0x87},
- {value: 0x2d92, lo: 0x8b, hi: 0x8b},
- {value: 0x2d9c, lo: 0x8c, hi: 0x8c},
- {value: 0x8104, lo: 0x8d, hi: 0x8d},
- {value: 0x9900, lo: 0x97, hi: 0x97},
- {value: 0x8132, lo: 0xa6, hi: 0xac},
- {value: 0x8132, lo: 0xb0, hi: 0xb4},
- // Block 0x78, offset 0x298
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x82, hi: 0x82},
- {value: 0x8102, lo: 0x86, hi: 0x86},
- // Block 0x79, offset 0x29b
- {value: 0x6b5a, lo: 0x06},
- {value: 0x9900, lo: 0xb0, hi: 0xb0},
- {value: 0xa000, lo: 0xb9, hi: 0xb9},
- {value: 0x9900, lo: 0xba, hi: 0xba},
- {value: 0x2db0, lo: 0xbb, hi: 0xbb},
- {value: 0x2da6, lo: 0xbc, hi: 0xbd},
- {value: 0x2dba, lo: 0xbe, hi: 0xbe},
- // Block 0x7a, offset 0x2a2
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0x82, hi: 0x82},
- {value: 0x8102, lo: 0x83, hi: 0x83},
- // Block 0x7b, offset 0x2a5
- {value: 0x0000, lo: 0x05},
- {value: 0x9900, lo: 0xaf, hi: 0xaf},
- {value: 0xa000, lo: 0xb8, hi: 0xb9},
- {value: 0x2dc4, lo: 0xba, hi: 0xba},
- {value: 0x2dce, lo: 0xbb, hi: 0xbb},
- {value: 0x8104, lo: 0xbf, hi: 0xbf},
- // Block 0x7c, offset 0x2ab
- {value: 0x0000, lo: 0x01},
- {value: 0x8102, lo: 0x80, hi: 0x80},
- // Block 0x7d, offset 0x2ad
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0xbf, hi: 0xbf},
- // Block 0x7e, offset 0x2af
- {value: 0x0000, lo: 0x02},
- {value: 0x8104, lo: 0xb6, hi: 0xb6},
- {value: 0x8102, lo: 0xb7, hi: 0xb7},
- // Block 0x7f, offset 0x2b2
- {value: 0x0000, lo: 0x01},
- {value: 0x8104, lo: 0xab, hi: 0xab},
- // Block 0x80, offset 0x2b4
- {value: 0x0000, lo: 0x01},
- {value: 0x8101, lo: 0xb0, hi: 0xb4},
- // Block 0x81, offset 0x2b6
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0xb0, hi: 0xb6},
- // Block 0x82, offset 0x2b8
- {value: 0x0000, lo: 0x01},
- {value: 0x8101, lo: 0x9e, hi: 0x9e},
- // Block 0x83, offset 0x2ba
- {value: 0x0000, lo: 0x0c},
- {value: 0x45cc, lo: 0x9e, hi: 0x9e},
- {value: 0x45d6, lo: 0x9f, hi: 0x9f},
- {value: 0x460a, lo: 0xa0, hi: 0xa0},
- {value: 0x4618, lo: 0xa1, hi: 0xa1},
- {value: 0x4626, lo: 0xa2, hi: 0xa2},
- {value: 0x4634, lo: 0xa3, hi: 0xa3},
- {value: 0x4642, lo: 0xa4, hi: 0xa4},
- {value: 0x812b, lo: 0xa5, hi: 0xa6},
- {value: 0x8101, lo: 0xa7, hi: 0xa9},
- {value: 0x8130, lo: 0xad, hi: 0xad},
- {value: 0x812b, lo: 0xae, hi: 0xb2},
- {value: 0x812d, lo: 0xbb, hi: 0xbf},
- // Block 0x84, offset 0x2c7
- {value: 0x0000, lo: 0x09},
- {value: 0x812d, lo: 0x80, hi: 0x82},
- {value: 0x8132, lo: 0x85, hi: 0x89},
- {value: 0x812d, lo: 0x8a, hi: 0x8b},
- {value: 0x8132, lo: 0xaa, hi: 0xad},
- {value: 0x45e0, lo: 0xbb, hi: 0xbb},
- {value: 0x45ea, lo: 0xbc, hi: 0xbc},
- {value: 0x4650, lo: 0xbd, hi: 0xbd},
- {value: 0x466c, lo: 0xbe, hi: 0xbe},
- {value: 0x465e, lo: 0xbf, hi: 0xbf},
- // Block 0x85, offset 0x2d1
- {value: 0x0000, lo: 0x01},
- {value: 0x467a, lo: 0x80, hi: 0x80},
- // Block 0x86, offset 0x2d3
- {value: 0x0000, lo: 0x01},
- {value: 0x8132, lo: 0x82, hi: 0x84},
- // Block 0x87, offset 0x2d5
- {value: 0x0002, lo: 0x03},
- {value: 0x0043, lo: 0x80, hi: 0x99},
- {value: 0x0083, lo: 0x9a, hi: 0xb3},
- {value: 0x0043, lo: 0xb4, hi: 0xbf},
- // Block 0x88, offset 0x2d9
- {value: 0x0002, lo: 0x04},
- {value: 0x005b, lo: 0x80, hi: 0x8d},
- {value: 0x0083, lo: 0x8e, hi: 0x94},
- {value: 0x0093, lo: 0x96, hi: 0xa7},
- {value: 0x0043, lo: 0xa8, hi: 0xbf},
- // Block 0x89, offset 0x2de
- {value: 0x0002, lo: 0x0b},
- {value: 0x0073, lo: 0x80, hi: 0x81},
- {value: 0x0083, lo: 0x82, hi: 0x9b},
- {value: 0x0043, lo: 0x9c, hi: 0x9c},
- {value: 0x0047, lo: 0x9e, hi: 0x9f},
- {value: 0x004f, lo: 0xa2, hi: 0xa2},
- {value: 0x0055, lo: 0xa5, hi: 0xa6},
- {value: 0x005d, lo: 0xa9, hi: 0xac},
- {value: 0x0067, lo: 0xae, hi: 0xb5},
- {value: 0x0083, lo: 0xb6, hi: 0xb9},
- {value: 0x008d, lo: 0xbb, hi: 0xbb},
- {value: 0x0091, lo: 0xbd, hi: 0xbf},
- // Block 0x8a, offset 0x2ea
- {value: 0x0002, lo: 0x04},
- {value: 0x0097, lo: 0x80, hi: 0x83},
- {value: 0x00a1, lo: 0x85, hi: 0x8f},
- {value: 0x0043, lo: 0x90, hi: 0xa9},
- {value: 0x0083, lo: 0xaa, hi: 0xbf},
- // Block 0x8b, offset 0x2ef
- {value: 0x0002, lo: 0x08},
- {value: 0x00af, lo: 0x80, hi: 0x83},
- {value: 0x0043, lo: 0x84, hi: 0x85},
- {value: 0x0049, lo: 0x87, hi: 0x8a},
- {value: 0x0055, lo: 0x8d, hi: 0x94},
- {value: 0x0067, lo: 0x96, hi: 0x9c},
- {value: 0x0083, lo: 0x9e, hi: 0xb7},
- {value: 0x0043, lo: 0xb8, hi: 0xb9},
- {value: 0x0049, lo: 0xbb, hi: 0xbe},
- // Block 0x8c, offset 0x2f8
- {value: 0x0002, lo: 0x05},
- {value: 0x0053, lo: 0x80, hi: 0x84},
- {value: 0x005f, lo: 0x86, hi: 0x86},
- {value: 0x0067, lo: 0x8a, hi: 0x90},
- {value: 0x0083, lo: 0x92, hi: 0xab},
- {value: 0x0043, lo: 0xac, hi: 0xbf},
- // Block 0x8d, offset 0x2fe
- {value: 0x0002, lo: 0x04},
- {value: 0x006b, lo: 0x80, hi: 0x85},
- {value: 0x0083, lo: 0x86, hi: 0x9f},
- {value: 0x0043, lo: 0xa0, hi: 0xb9},
- {value: 0x0083, lo: 0xba, hi: 0xbf},
- // Block 0x8e, offset 0x303
- {value: 0x0002, lo: 0x03},
- {value: 0x008f, lo: 0x80, hi: 0x93},
- {value: 0x0043, lo: 0x94, hi: 0xad},
- {value: 0x0083, lo: 0xae, hi: 0xbf},
- // Block 0x8f, offset 0x307
- {value: 0x0002, lo: 0x04},
- {value: 0x00a7, lo: 0x80, hi: 0x87},
- {value: 0x0043, lo: 0x88, hi: 0xa1},
- {value: 0x0083, lo: 0xa2, hi: 0xbb},
- {value: 0x0043, lo: 0xbc, hi: 0xbf},
- // Block 0x90, offset 0x30c
- {value: 0x0002, lo: 0x03},
- {value: 0x004b, lo: 0x80, hi: 0x95},
- {value: 0x0083, lo: 0x96, hi: 0xaf},
- {value: 0x0043, lo: 0xb0, hi: 0xbf},
- // Block 0x91, offset 0x310
- {value: 0x0003, lo: 0x0f},
- {value: 0x01b8, lo: 0x80, hi: 0x80},
- {value: 0x045f, lo: 0x81, hi: 0x81},
- {value: 0x01bb, lo: 0x82, hi: 0x9a},
- {value: 0x045b, lo: 0x9b, hi: 0x9b},
- {value: 0x01c7, lo: 0x9c, hi: 0x9c},
- {value: 0x01d0, lo: 0x9d, hi: 0x9d},
- {value: 0x01d6, lo: 0x9e, hi: 0x9e},
- {value: 0x01fa, lo: 0x9f, hi: 0x9f},
- {value: 0x01eb, lo: 0xa0, hi: 0xa0},
- {value: 0x01e8, lo: 0xa1, hi: 0xa1},
- {value: 0x0173, lo: 0xa2, hi: 0xb2},
- {value: 0x0188, lo: 0xb3, hi: 0xb3},
- {value: 0x01a6, lo: 0xb4, hi: 0xba},
- {value: 0x045f, lo: 0xbb, hi: 0xbb},
- {value: 0x01bb, lo: 0xbc, hi: 0xbf},
- // Block 0x92, offset 0x320
- {value: 0x0003, lo: 0x0d},
- {value: 0x01c7, lo: 0x80, hi: 0x94},
- {value: 0x045b, lo: 0x95, hi: 0x95},
- {value: 0x01c7, lo: 0x96, hi: 0x96},
- {value: 0x01d0, lo: 0x97, hi: 0x97},
- {value: 0x01d6, lo: 0x98, hi: 0x98},
- {value: 0x01fa, lo: 0x99, hi: 0x99},
- {value: 0x01eb, lo: 0x9a, hi: 0x9a},
- {value: 0x01e8, lo: 0x9b, hi: 0x9b},
- {value: 0x0173, lo: 0x9c, hi: 0xac},
- {value: 0x0188, lo: 0xad, hi: 0xad},
- {value: 0x01a6, lo: 0xae, hi: 0xb4},
- {value: 0x045f, lo: 0xb5, hi: 0xb5},
- {value: 0x01bb, lo: 0xb6, hi: 0xbf},
- // Block 0x93, offset 0x32e
- {value: 0x0003, lo: 0x0d},
- {value: 0x01d9, lo: 0x80, hi: 0x8e},
- {value: 0x045b, lo: 0x8f, hi: 0x8f},
- {value: 0x01c7, lo: 0x90, hi: 0x90},
- {value: 0x01d0, lo: 0x91, hi: 0x91},
- {value: 0x01d6, lo: 0x92, hi: 0x92},
- {value: 0x01fa, lo: 0x93, hi: 0x93},
- {value: 0x01eb, lo: 0x94, hi: 0x94},
- {value: 0x01e8, lo: 0x95, hi: 0x95},
- {value: 0x0173, lo: 0x96, hi: 0xa6},
- {value: 0x0188, lo: 0xa7, hi: 0xa7},
- {value: 0x01a6, lo: 0xa8, hi: 0xae},
- {value: 0x045f, lo: 0xaf, hi: 0xaf},
- {value: 0x01bb, lo: 0xb0, hi: 0xbf},
- // Block 0x94, offset 0x33c
- {value: 0x0003, lo: 0x0d},
- {value: 0x01eb, lo: 0x80, hi: 0x88},
- {value: 0x045b, lo: 0x89, hi: 0x89},
- {value: 0x01c7, lo: 0x8a, hi: 0x8a},
- {value: 0x01d0, lo: 0x8b, hi: 0x8b},
- {value: 0x01d6, lo: 0x8c, hi: 0x8c},
- {value: 0x01fa, lo: 0x8d, hi: 0x8d},
- {value: 0x01eb, lo: 0x8e, hi: 0x8e},
- {value: 0x01e8, lo: 0x8f, hi: 0x8f},
- {value: 0x0173, lo: 0x90, hi: 0xa0},
- {value: 0x0188, lo: 0xa1, hi: 0xa1},
- {value: 0x01a6, lo: 0xa2, hi: 0xa8},
- {value: 0x045f, lo: 0xa9, hi: 0xa9},
- {value: 0x01bb, lo: 0xaa, hi: 0xbf},
- // Block 0x95, offset 0x34a
- {value: 0x0000, lo: 0x05},
- {value: 0x8132, lo: 0x80, hi: 0x86},
- {value: 0x8132, lo: 0x88, hi: 0x98},
- {value: 0x8132, lo: 0x9b, hi: 0xa1},
- {value: 0x8132, lo: 0xa3, hi: 0xa4},
- {value: 0x8132, lo: 0xa6, hi: 0xaa},
- // Block 0x96, offset 0x350
- {value: 0x0000, lo: 0x01},
- {value: 0x812d, lo: 0x90, hi: 0x96},
- // Block 0x97, offset 0x352
- {value: 0x0000, lo: 0x02},
- {value: 0x8132, lo: 0x84, hi: 0x89},
- {value: 0x8102, lo: 0x8a, hi: 0x8a},
- // Block 0x98, offset 0x355
- {value: 0x0002, lo: 0x09},
- {value: 0x0063, lo: 0x80, hi: 0x89},
- {value: 0x1951, lo: 0x8a, hi: 0x8a},
- {value: 0x1981, lo: 0x8b, hi: 0x8b},
- {value: 0x199c, lo: 0x8c, hi: 0x8c},
- {value: 0x19a2, lo: 0x8d, hi: 0x8d},
- {value: 0x1bc0, lo: 0x8e, hi: 0x8e},
- {value: 0x19ae, lo: 0x8f, hi: 0x8f},
- {value: 0x197b, lo: 0xaa, hi: 0xaa},
- {value: 0x197e, lo: 0xab, hi: 0xab},
- // Block 0x99, offset 0x35f
- {value: 0x0000, lo: 0x01},
- {value: 0x193f, lo: 0x90, hi: 0x90},
- // Block 0x9a, offset 0x361
- {value: 0x0028, lo: 0x09},
- {value: 0x2862, lo: 0x80, hi: 0x80},
- {value: 0x2826, lo: 0x81, hi: 0x81},
- {value: 0x2830, lo: 0x82, hi: 0x82},
- {value: 0x2844, lo: 0x83, hi: 0x84},
- {value: 0x284e, lo: 0x85, hi: 0x86},
- {value: 0x283a, lo: 0x87, hi: 0x87},
- {value: 0x2858, lo: 0x88, hi: 0x88},
- {value: 0x0b6f, lo: 0x90, hi: 0x90},
- {value: 0x08e7, lo: 0x91, hi: 0x91},
-}
-
-// recompMap: 7520 bytes (entries only)
-var recompMap map[uint32]rune
-var recompMapOnce sync.Once
-
-const recompMapPacked = "" +
- "\x00A\x03\x00\x00\x00\x00\xc0" + // 0x00410300: 0x000000C0
- "\x00A\x03\x01\x00\x00\x00\xc1" + // 0x00410301: 0x000000C1
- "\x00A\x03\x02\x00\x00\x00\xc2" + // 0x00410302: 0x000000C2
- "\x00A\x03\x03\x00\x00\x00\xc3" + // 0x00410303: 0x000000C3
- "\x00A\x03\b\x00\x00\x00\xc4" + // 0x00410308: 0x000000C4
- "\x00A\x03\n\x00\x00\x00\xc5" + // 0x0041030A: 0x000000C5
- "\x00C\x03'\x00\x00\x00\xc7" + // 0x00430327: 0x000000C7
- "\x00E\x03\x00\x00\x00\x00\xc8" + // 0x00450300: 0x000000C8
- "\x00E\x03\x01\x00\x00\x00\xc9" + // 0x00450301: 0x000000C9
- "\x00E\x03\x02\x00\x00\x00\xca" + // 0x00450302: 0x000000CA
- "\x00E\x03\b\x00\x00\x00\xcb" + // 0x00450308: 0x000000CB
- "\x00I\x03\x00\x00\x00\x00\xcc" + // 0x00490300: 0x000000CC
- "\x00I\x03\x01\x00\x00\x00\xcd" + // 0x00490301: 0x000000CD
- "\x00I\x03\x02\x00\x00\x00\xce" + // 0x00490302: 0x000000CE
- "\x00I\x03\b\x00\x00\x00\xcf" + // 0x00490308: 0x000000CF
- "\x00N\x03\x03\x00\x00\x00\xd1" + // 0x004E0303: 0x000000D1
- "\x00O\x03\x00\x00\x00\x00\xd2" + // 0x004F0300: 0x000000D2
- "\x00O\x03\x01\x00\x00\x00\xd3" + // 0x004F0301: 0x000000D3
- "\x00O\x03\x02\x00\x00\x00\xd4" + // 0x004F0302: 0x000000D4
- "\x00O\x03\x03\x00\x00\x00\xd5" + // 0x004F0303: 0x000000D5
- "\x00O\x03\b\x00\x00\x00\xd6" + // 0x004F0308: 0x000000D6
- "\x00U\x03\x00\x00\x00\x00\xd9" + // 0x00550300: 0x000000D9
- "\x00U\x03\x01\x00\x00\x00\xda" + // 0x00550301: 0x000000DA
- "\x00U\x03\x02\x00\x00\x00\xdb" + // 0x00550302: 0x000000DB
- "\x00U\x03\b\x00\x00\x00\xdc" + // 0x00550308: 0x000000DC
- "\x00Y\x03\x01\x00\x00\x00\xdd" + // 0x00590301: 0x000000DD
- "\x00a\x03\x00\x00\x00\x00\xe0" + // 0x00610300: 0x000000E0
- "\x00a\x03\x01\x00\x00\x00\xe1" + // 0x00610301: 0x000000E1
- "\x00a\x03\x02\x00\x00\x00\xe2" + // 0x00610302: 0x000000E2
- "\x00a\x03\x03\x00\x00\x00\xe3" + // 0x00610303: 0x000000E3
- "\x00a\x03\b\x00\x00\x00\xe4" + // 0x00610308: 0x000000E4
- "\x00a\x03\n\x00\x00\x00\xe5" + // 0x0061030A: 0x000000E5
- "\x00c\x03'\x00\x00\x00\xe7" + // 0x00630327: 0x000000E7
- "\x00e\x03\x00\x00\x00\x00\xe8" + // 0x00650300: 0x000000E8
- "\x00e\x03\x01\x00\x00\x00\xe9" + // 0x00650301: 0x000000E9
- "\x00e\x03\x02\x00\x00\x00\xea" + // 0x00650302: 0x000000EA
- "\x00e\x03\b\x00\x00\x00\xeb" + // 0x00650308: 0x000000EB
- "\x00i\x03\x00\x00\x00\x00\xec" + // 0x00690300: 0x000000EC
- "\x00i\x03\x01\x00\x00\x00\xed" + // 0x00690301: 0x000000ED
- "\x00i\x03\x02\x00\x00\x00\xee" + // 0x00690302: 0x000000EE
- "\x00i\x03\b\x00\x00\x00\xef" + // 0x00690308: 0x000000EF
- "\x00n\x03\x03\x00\x00\x00\xf1" + // 0x006E0303: 0x000000F1
- "\x00o\x03\x00\x00\x00\x00\xf2" + // 0x006F0300: 0x000000F2
- "\x00o\x03\x01\x00\x00\x00\xf3" + // 0x006F0301: 0x000000F3
- "\x00o\x03\x02\x00\x00\x00\xf4" + // 0x006F0302: 0x000000F4
- "\x00o\x03\x03\x00\x00\x00\xf5" + // 0x006F0303: 0x000000F5
- "\x00o\x03\b\x00\x00\x00\xf6" + // 0x006F0308: 0x000000F6
- "\x00u\x03\x00\x00\x00\x00\xf9" + // 0x00750300: 0x000000F9
- "\x00u\x03\x01\x00\x00\x00\xfa" + // 0x00750301: 0x000000FA
- "\x00u\x03\x02\x00\x00\x00\xfb" + // 0x00750302: 0x000000FB
- "\x00u\x03\b\x00\x00\x00\xfc" + // 0x00750308: 0x000000FC
- "\x00y\x03\x01\x00\x00\x00\xfd" + // 0x00790301: 0x000000FD
- "\x00y\x03\b\x00\x00\x00\xff" + // 0x00790308: 0x000000FF
- "\x00A\x03\x04\x00\x00\x01\x00" + // 0x00410304: 0x00000100
- "\x00a\x03\x04\x00\x00\x01\x01" + // 0x00610304: 0x00000101
- "\x00A\x03\x06\x00\x00\x01\x02" + // 0x00410306: 0x00000102
- "\x00a\x03\x06\x00\x00\x01\x03" + // 0x00610306: 0x00000103
- "\x00A\x03(\x00\x00\x01\x04" + // 0x00410328: 0x00000104
- "\x00a\x03(\x00\x00\x01\x05" + // 0x00610328: 0x00000105
- "\x00C\x03\x01\x00\x00\x01\x06" + // 0x00430301: 0x00000106
- "\x00c\x03\x01\x00\x00\x01\a" + // 0x00630301: 0x00000107
- "\x00C\x03\x02\x00\x00\x01\b" + // 0x00430302: 0x00000108
- "\x00c\x03\x02\x00\x00\x01\t" + // 0x00630302: 0x00000109
- "\x00C\x03\a\x00\x00\x01\n" + // 0x00430307: 0x0000010A
- "\x00c\x03\a\x00\x00\x01\v" + // 0x00630307: 0x0000010B
- "\x00C\x03\f\x00\x00\x01\f" + // 0x0043030C: 0x0000010C
- "\x00c\x03\f\x00\x00\x01\r" + // 0x0063030C: 0x0000010D
- "\x00D\x03\f\x00\x00\x01\x0e" + // 0x0044030C: 0x0000010E
- "\x00d\x03\f\x00\x00\x01\x0f" + // 0x0064030C: 0x0000010F
- "\x00E\x03\x04\x00\x00\x01\x12" + // 0x00450304: 0x00000112
- "\x00e\x03\x04\x00\x00\x01\x13" + // 0x00650304: 0x00000113
- "\x00E\x03\x06\x00\x00\x01\x14" + // 0x00450306: 0x00000114
- "\x00e\x03\x06\x00\x00\x01\x15" + // 0x00650306: 0x00000115
- "\x00E\x03\a\x00\x00\x01\x16" + // 0x00450307: 0x00000116
- "\x00e\x03\a\x00\x00\x01\x17" + // 0x00650307: 0x00000117
- "\x00E\x03(\x00\x00\x01\x18" + // 0x00450328: 0x00000118
- "\x00e\x03(\x00\x00\x01\x19" + // 0x00650328: 0x00000119
- "\x00E\x03\f\x00\x00\x01\x1a" + // 0x0045030C: 0x0000011A
- "\x00e\x03\f\x00\x00\x01\x1b" + // 0x0065030C: 0x0000011B
- "\x00G\x03\x02\x00\x00\x01\x1c" + // 0x00470302: 0x0000011C
- "\x00g\x03\x02\x00\x00\x01\x1d" + // 0x00670302: 0x0000011D
- "\x00G\x03\x06\x00\x00\x01\x1e" + // 0x00470306: 0x0000011E
- "\x00g\x03\x06\x00\x00\x01\x1f" + // 0x00670306: 0x0000011F
- "\x00G\x03\a\x00\x00\x01 " + // 0x00470307: 0x00000120
- "\x00g\x03\a\x00\x00\x01!" + // 0x00670307: 0x00000121
- "\x00G\x03'\x00\x00\x01\"" + // 0x00470327: 0x00000122
- "\x00g\x03'\x00\x00\x01#" + // 0x00670327: 0x00000123
- "\x00H\x03\x02\x00\x00\x01$" + // 0x00480302: 0x00000124
- "\x00h\x03\x02\x00\x00\x01%" + // 0x00680302: 0x00000125
- "\x00I\x03\x03\x00\x00\x01(" + // 0x00490303: 0x00000128
- "\x00i\x03\x03\x00\x00\x01)" + // 0x00690303: 0x00000129
- "\x00I\x03\x04\x00\x00\x01*" + // 0x00490304: 0x0000012A
- "\x00i\x03\x04\x00\x00\x01+" + // 0x00690304: 0x0000012B
- "\x00I\x03\x06\x00\x00\x01," + // 0x00490306: 0x0000012C
- "\x00i\x03\x06\x00\x00\x01-" + // 0x00690306: 0x0000012D
- "\x00I\x03(\x00\x00\x01." + // 0x00490328: 0x0000012E
- "\x00i\x03(\x00\x00\x01/" + // 0x00690328: 0x0000012F
- "\x00I\x03\a\x00\x00\x010" + // 0x00490307: 0x00000130
- "\x00J\x03\x02\x00\x00\x014" + // 0x004A0302: 0x00000134
- "\x00j\x03\x02\x00\x00\x015" + // 0x006A0302: 0x00000135
- "\x00K\x03'\x00\x00\x016" + // 0x004B0327: 0x00000136
- "\x00k\x03'\x00\x00\x017" + // 0x006B0327: 0x00000137
- "\x00L\x03\x01\x00\x00\x019" + // 0x004C0301: 0x00000139
- "\x00l\x03\x01\x00\x00\x01:" + // 0x006C0301: 0x0000013A
- "\x00L\x03'\x00\x00\x01;" + // 0x004C0327: 0x0000013B
- "\x00l\x03'\x00\x00\x01<" + // 0x006C0327: 0x0000013C
- "\x00L\x03\f\x00\x00\x01=" + // 0x004C030C: 0x0000013D
- "\x00l\x03\f\x00\x00\x01>" + // 0x006C030C: 0x0000013E
- "\x00N\x03\x01\x00\x00\x01C" + // 0x004E0301: 0x00000143
- "\x00n\x03\x01\x00\x00\x01D" + // 0x006E0301: 0x00000144
- "\x00N\x03'\x00\x00\x01E" + // 0x004E0327: 0x00000145
- "\x00n\x03'\x00\x00\x01F" + // 0x006E0327: 0x00000146
- "\x00N\x03\f\x00\x00\x01G" + // 0x004E030C: 0x00000147
- "\x00n\x03\f\x00\x00\x01H" + // 0x006E030C: 0x00000148
- "\x00O\x03\x04\x00\x00\x01L" + // 0x004F0304: 0x0000014C
- "\x00o\x03\x04\x00\x00\x01M" + // 0x006F0304: 0x0000014D
- "\x00O\x03\x06\x00\x00\x01N" + // 0x004F0306: 0x0000014E
- "\x00o\x03\x06\x00\x00\x01O" + // 0x006F0306: 0x0000014F
- "\x00O\x03\v\x00\x00\x01P" + // 0x004F030B: 0x00000150
- "\x00o\x03\v\x00\x00\x01Q" + // 0x006F030B: 0x00000151
- "\x00R\x03\x01\x00\x00\x01T" + // 0x00520301: 0x00000154
- "\x00r\x03\x01\x00\x00\x01U" + // 0x00720301: 0x00000155
- "\x00R\x03'\x00\x00\x01V" + // 0x00520327: 0x00000156
- "\x00r\x03'\x00\x00\x01W" + // 0x00720327: 0x00000157
- "\x00R\x03\f\x00\x00\x01X" + // 0x0052030C: 0x00000158
- "\x00r\x03\f\x00\x00\x01Y" + // 0x0072030C: 0x00000159
- "\x00S\x03\x01\x00\x00\x01Z" + // 0x00530301: 0x0000015A
- "\x00s\x03\x01\x00\x00\x01[" + // 0x00730301: 0x0000015B
- "\x00S\x03\x02\x00\x00\x01\\" + // 0x00530302: 0x0000015C
- "\x00s\x03\x02\x00\x00\x01]" + // 0x00730302: 0x0000015D
- "\x00S\x03'\x00\x00\x01^" + // 0x00530327: 0x0000015E
- "\x00s\x03'\x00\x00\x01_" + // 0x00730327: 0x0000015F
- "\x00S\x03\f\x00\x00\x01`" + // 0x0053030C: 0x00000160
- "\x00s\x03\f\x00\x00\x01a" + // 0x0073030C: 0x00000161
- "\x00T\x03'\x00\x00\x01b" + // 0x00540327: 0x00000162
- "\x00t\x03'\x00\x00\x01c" + // 0x00740327: 0x00000163
- "\x00T\x03\f\x00\x00\x01d" + // 0x0054030C: 0x00000164
- "\x00t\x03\f\x00\x00\x01e" + // 0x0074030C: 0x00000165
- "\x00U\x03\x03\x00\x00\x01h" + // 0x00550303: 0x00000168
- "\x00u\x03\x03\x00\x00\x01i" + // 0x00750303: 0x00000169
- "\x00U\x03\x04\x00\x00\x01j" + // 0x00550304: 0x0000016A
- "\x00u\x03\x04\x00\x00\x01k" + // 0x00750304: 0x0000016B
- "\x00U\x03\x06\x00\x00\x01l" + // 0x00550306: 0x0000016C
- "\x00u\x03\x06\x00\x00\x01m" + // 0x00750306: 0x0000016D
- "\x00U\x03\n\x00\x00\x01n" + // 0x0055030A: 0x0000016E
- "\x00u\x03\n\x00\x00\x01o" + // 0x0075030A: 0x0000016F
- "\x00U\x03\v\x00\x00\x01p" + // 0x0055030B: 0x00000170
- "\x00u\x03\v\x00\x00\x01q" + // 0x0075030B: 0x00000171
- "\x00U\x03(\x00\x00\x01r" + // 0x00550328: 0x00000172
- "\x00u\x03(\x00\x00\x01s" + // 0x00750328: 0x00000173
- "\x00W\x03\x02\x00\x00\x01t" + // 0x00570302: 0x00000174
- "\x00w\x03\x02\x00\x00\x01u" + // 0x00770302: 0x00000175
- "\x00Y\x03\x02\x00\x00\x01v" + // 0x00590302: 0x00000176
- "\x00y\x03\x02\x00\x00\x01w" + // 0x00790302: 0x00000177
- "\x00Y\x03\b\x00\x00\x01x" + // 0x00590308: 0x00000178
- "\x00Z\x03\x01\x00\x00\x01y" + // 0x005A0301: 0x00000179
- "\x00z\x03\x01\x00\x00\x01z" + // 0x007A0301: 0x0000017A
- "\x00Z\x03\a\x00\x00\x01{" + // 0x005A0307: 0x0000017B
- "\x00z\x03\a\x00\x00\x01|" + // 0x007A0307: 0x0000017C
- "\x00Z\x03\f\x00\x00\x01}" + // 0x005A030C: 0x0000017D
- "\x00z\x03\f\x00\x00\x01~" + // 0x007A030C: 0x0000017E
- "\x00O\x03\x1b\x00\x00\x01\xa0" + // 0x004F031B: 0x000001A0
- "\x00o\x03\x1b\x00\x00\x01\xa1" + // 0x006F031B: 0x000001A1
- "\x00U\x03\x1b\x00\x00\x01\xaf" + // 0x0055031B: 0x000001AF
- "\x00u\x03\x1b\x00\x00\x01\xb0" + // 0x0075031B: 0x000001B0
- "\x00A\x03\f\x00\x00\x01\xcd" + // 0x0041030C: 0x000001CD
- "\x00a\x03\f\x00\x00\x01\xce" + // 0x0061030C: 0x000001CE
- "\x00I\x03\f\x00\x00\x01\xcf" + // 0x0049030C: 0x000001CF
- "\x00i\x03\f\x00\x00\x01\xd0" + // 0x0069030C: 0x000001D0
- "\x00O\x03\f\x00\x00\x01\xd1" + // 0x004F030C: 0x000001D1
- "\x00o\x03\f\x00\x00\x01\xd2" + // 0x006F030C: 0x000001D2
- "\x00U\x03\f\x00\x00\x01\xd3" + // 0x0055030C: 0x000001D3
- "\x00u\x03\f\x00\x00\x01\xd4" + // 0x0075030C: 0x000001D4
- "\x00\xdc\x03\x04\x00\x00\x01\xd5" + // 0x00DC0304: 0x000001D5
- "\x00\xfc\x03\x04\x00\x00\x01\xd6" + // 0x00FC0304: 0x000001D6
- "\x00\xdc\x03\x01\x00\x00\x01\xd7" + // 0x00DC0301: 0x000001D7
- "\x00\xfc\x03\x01\x00\x00\x01\xd8" + // 0x00FC0301: 0x000001D8
- "\x00\xdc\x03\f\x00\x00\x01\xd9" + // 0x00DC030C: 0x000001D9
- "\x00\xfc\x03\f\x00\x00\x01\xda" + // 0x00FC030C: 0x000001DA
- "\x00\xdc\x03\x00\x00\x00\x01\xdb" + // 0x00DC0300: 0x000001DB
- "\x00\xfc\x03\x00\x00\x00\x01\xdc" + // 0x00FC0300: 0x000001DC
- "\x00\xc4\x03\x04\x00\x00\x01\xde" + // 0x00C40304: 0x000001DE
- "\x00\xe4\x03\x04\x00\x00\x01\xdf" + // 0x00E40304: 0x000001DF
- "\x02&\x03\x04\x00\x00\x01\xe0" + // 0x02260304: 0x000001E0
- "\x02'\x03\x04\x00\x00\x01\xe1" + // 0x02270304: 0x000001E1
- "\x00\xc6\x03\x04\x00\x00\x01\xe2" + // 0x00C60304: 0x000001E2
- "\x00\xe6\x03\x04\x00\x00\x01\xe3" + // 0x00E60304: 0x000001E3
- "\x00G\x03\f\x00\x00\x01\xe6" + // 0x0047030C: 0x000001E6
- "\x00g\x03\f\x00\x00\x01\xe7" + // 0x0067030C: 0x000001E7
- "\x00K\x03\f\x00\x00\x01\xe8" + // 0x004B030C: 0x000001E8
- "\x00k\x03\f\x00\x00\x01\xe9" + // 0x006B030C: 0x000001E9
- "\x00O\x03(\x00\x00\x01\xea" + // 0x004F0328: 0x000001EA
- "\x00o\x03(\x00\x00\x01\xeb" + // 0x006F0328: 0x000001EB
- "\x01\xea\x03\x04\x00\x00\x01\xec" + // 0x01EA0304: 0x000001EC
- "\x01\xeb\x03\x04\x00\x00\x01\xed" + // 0x01EB0304: 0x000001ED
- "\x01\xb7\x03\f\x00\x00\x01\xee" + // 0x01B7030C: 0x000001EE
- "\x02\x92\x03\f\x00\x00\x01\xef" + // 0x0292030C: 0x000001EF
- "\x00j\x03\f\x00\x00\x01\xf0" + // 0x006A030C: 0x000001F0
- "\x00G\x03\x01\x00\x00\x01\xf4" + // 0x00470301: 0x000001F4
- "\x00g\x03\x01\x00\x00\x01\xf5" + // 0x00670301: 0x000001F5
- "\x00N\x03\x00\x00\x00\x01\xf8" + // 0x004E0300: 0x000001F8
- "\x00n\x03\x00\x00\x00\x01\xf9" + // 0x006E0300: 0x000001F9
- "\x00\xc5\x03\x01\x00\x00\x01\xfa" + // 0x00C50301: 0x000001FA
- "\x00\xe5\x03\x01\x00\x00\x01\xfb" + // 0x00E50301: 0x000001FB
- "\x00\xc6\x03\x01\x00\x00\x01\xfc" + // 0x00C60301: 0x000001FC
- "\x00\xe6\x03\x01\x00\x00\x01\xfd" + // 0x00E60301: 0x000001FD
- "\x00\xd8\x03\x01\x00\x00\x01\xfe" + // 0x00D80301: 0x000001FE
- "\x00\xf8\x03\x01\x00\x00\x01\xff" + // 0x00F80301: 0x000001FF
- "\x00A\x03\x0f\x00\x00\x02\x00" + // 0x0041030F: 0x00000200
- "\x00a\x03\x0f\x00\x00\x02\x01" + // 0x0061030F: 0x00000201
- "\x00A\x03\x11\x00\x00\x02\x02" + // 0x00410311: 0x00000202
- "\x00a\x03\x11\x00\x00\x02\x03" + // 0x00610311: 0x00000203
- "\x00E\x03\x0f\x00\x00\x02\x04" + // 0x0045030F: 0x00000204
- "\x00e\x03\x0f\x00\x00\x02\x05" + // 0x0065030F: 0x00000205
- "\x00E\x03\x11\x00\x00\x02\x06" + // 0x00450311: 0x00000206
- "\x00e\x03\x11\x00\x00\x02\a" + // 0x00650311: 0x00000207
- "\x00I\x03\x0f\x00\x00\x02\b" + // 0x0049030F: 0x00000208
- "\x00i\x03\x0f\x00\x00\x02\t" + // 0x0069030F: 0x00000209
- "\x00I\x03\x11\x00\x00\x02\n" + // 0x00490311: 0x0000020A
- "\x00i\x03\x11\x00\x00\x02\v" + // 0x00690311: 0x0000020B
- "\x00O\x03\x0f\x00\x00\x02\f" + // 0x004F030F: 0x0000020C
- "\x00o\x03\x0f\x00\x00\x02\r" + // 0x006F030F: 0x0000020D
- "\x00O\x03\x11\x00\x00\x02\x0e" + // 0x004F0311: 0x0000020E
- "\x00o\x03\x11\x00\x00\x02\x0f" + // 0x006F0311: 0x0000020F
- "\x00R\x03\x0f\x00\x00\x02\x10" + // 0x0052030F: 0x00000210
- "\x00r\x03\x0f\x00\x00\x02\x11" + // 0x0072030F: 0x00000211
- "\x00R\x03\x11\x00\x00\x02\x12" + // 0x00520311: 0x00000212
- "\x00r\x03\x11\x00\x00\x02\x13" + // 0x00720311: 0x00000213
- "\x00U\x03\x0f\x00\x00\x02\x14" + // 0x0055030F: 0x00000214
- "\x00u\x03\x0f\x00\x00\x02\x15" + // 0x0075030F: 0x00000215
- "\x00U\x03\x11\x00\x00\x02\x16" + // 0x00550311: 0x00000216
- "\x00u\x03\x11\x00\x00\x02\x17" + // 0x00750311: 0x00000217
- "\x00S\x03&\x00\x00\x02\x18" + // 0x00530326: 0x00000218
- "\x00s\x03&\x00\x00\x02\x19" + // 0x00730326: 0x00000219
- "\x00T\x03&\x00\x00\x02\x1a" + // 0x00540326: 0x0000021A
- "\x00t\x03&\x00\x00\x02\x1b" + // 0x00740326: 0x0000021B
- "\x00H\x03\f\x00\x00\x02\x1e" + // 0x0048030C: 0x0000021E
- "\x00h\x03\f\x00\x00\x02\x1f" + // 0x0068030C: 0x0000021F
- "\x00A\x03\a\x00\x00\x02&" + // 0x00410307: 0x00000226
- "\x00a\x03\a\x00\x00\x02'" + // 0x00610307: 0x00000227
- "\x00E\x03'\x00\x00\x02(" + // 0x00450327: 0x00000228
- "\x00e\x03'\x00\x00\x02)" + // 0x00650327: 0x00000229
- "\x00\xd6\x03\x04\x00\x00\x02*" + // 0x00D60304: 0x0000022A
- "\x00\xf6\x03\x04\x00\x00\x02+" + // 0x00F60304: 0x0000022B
- "\x00\xd5\x03\x04\x00\x00\x02," + // 0x00D50304: 0x0000022C
- "\x00\xf5\x03\x04\x00\x00\x02-" + // 0x00F50304: 0x0000022D
- "\x00O\x03\a\x00\x00\x02." + // 0x004F0307: 0x0000022E
- "\x00o\x03\a\x00\x00\x02/" + // 0x006F0307: 0x0000022F
- "\x02.\x03\x04\x00\x00\x020" + // 0x022E0304: 0x00000230
- "\x02/\x03\x04\x00\x00\x021" + // 0x022F0304: 0x00000231
- "\x00Y\x03\x04\x00\x00\x022" + // 0x00590304: 0x00000232
- "\x00y\x03\x04\x00\x00\x023" + // 0x00790304: 0x00000233
- "\x00\xa8\x03\x01\x00\x00\x03\x85" + // 0x00A80301: 0x00000385
- "\x03\x91\x03\x01\x00\x00\x03\x86" + // 0x03910301: 0x00000386
- "\x03\x95\x03\x01\x00\x00\x03\x88" + // 0x03950301: 0x00000388
- "\x03\x97\x03\x01\x00\x00\x03\x89" + // 0x03970301: 0x00000389
- "\x03\x99\x03\x01\x00\x00\x03\x8a" + // 0x03990301: 0x0000038A
- "\x03\x9f\x03\x01\x00\x00\x03\x8c" + // 0x039F0301: 0x0000038C
- "\x03\xa5\x03\x01\x00\x00\x03\x8e" + // 0x03A50301: 0x0000038E
- "\x03\xa9\x03\x01\x00\x00\x03\x8f" + // 0x03A90301: 0x0000038F
- "\x03\xca\x03\x01\x00\x00\x03\x90" + // 0x03CA0301: 0x00000390
- "\x03\x99\x03\b\x00\x00\x03\xaa" + // 0x03990308: 0x000003AA
- "\x03\xa5\x03\b\x00\x00\x03\xab" + // 0x03A50308: 0x000003AB
- "\x03\xb1\x03\x01\x00\x00\x03\xac" + // 0x03B10301: 0x000003AC
- "\x03\xb5\x03\x01\x00\x00\x03\xad" + // 0x03B50301: 0x000003AD
- "\x03\xb7\x03\x01\x00\x00\x03\xae" + // 0x03B70301: 0x000003AE
- "\x03\xb9\x03\x01\x00\x00\x03\xaf" + // 0x03B90301: 0x000003AF
- "\x03\xcb\x03\x01\x00\x00\x03\xb0" + // 0x03CB0301: 0x000003B0
- "\x03\xb9\x03\b\x00\x00\x03\xca" + // 0x03B90308: 0x000003CA
- "\x03\xc5\x03\b\x00\x00\x03\xcb" + // 0x03C50308: 0x000003CB
- "\x03\xbf\x03\x01\x00\x00\x03\xcc" + // 0x03BF0301: 0x000003CC
- "\x03\xc5\x03\x01\x00\x00\x03\xcd" + // 0x03C50301: 0x000003CD
- "\x03\xc9\x03\x01\x00\x00\x03\xce" + // 0x03C90301: 0x000003CE
- "\x03\xd2\x03\x01\x00\x00\x03\xd3" + // 0x03D20301: 0x000003D3
- "\x03\xd2\x03\b\x00\x00\x03\xd4" + // 0x03D20308: 0x000003D4
- "\x04\x15\x03\x00\x00\x00\x04\x00" + // 0x04150300: 0x00000400
- "\x04\x15\x03\b\x00\x00\x04\x01" + // 0x04150308: 0x00000401
- "\x04\x13\x03\x01\x00\x00\x04\x03" + // 0x04130301: 0x00000403
- "\x04\x06\x03\b\x00\x00\x04\a" + // 0x04060308: 0x00000407
- "\x04\x1a\x03\x01\x00\x00\x04\f" + // 0x041A0301: 0x0000040C
- "\x04\x18\x03\x00\x00\x00\x04\r" + // 0x04180300: 0x0000040D
- "\x04#\x03\x06\x00\x00\x04\x0e" + // 0x04230306: 0x0000040E
- "\x04\x18\x03\x06\x00\x00\x04\x19" + // 0x04180306: 0x00000419
- "\x048\x03\x06\x00\x00\x049" + // 0x04380306: 0x00000439
- "\x045\x03\x00\x00\x00\x04P" + // 0x04350300: 0x00000450
- "\x045\x03\b\x00\x00\x04Q" + // 0x04350308: 0x00000451
- "\x043\x03\x01\x00\x00\x04S" + // 0x04330301: 0x00000453
- "\x04V\x03\b\x00\x00\x04W" + // 0x04560308: 0x00000457
- "\x04:\x03\x01\x00\x00\x04\\" + // 0x043A0301: 0x0000045C
- "\x048\x03\x00\x00\x00\x04]" + // 0x04380300: 0x0000045D
- "\x04C\x03\x06\x00\x00\x04^" + // 0x04430306: 0x0000045E
- "\x04t\x03\x0f\x00\x00\x04v" + // 0x0474030F: 0x00000476
- "\x04u\x03\x0f\x00\x00\x04w" + // 0x0475030F: 0x00000477
- "\x04\x16\x03\x06\x00\x00\x04\xc1" + // 0x04160306: 0x000004C1
- "\x046\x03\x06\x00\x00\x04\xc2" + // 0x04360306: 0x000004C2
- "\x04\x10\x03\x06\x00\x00\x04\xd0" + // 0x04100306: 0x000004D0
- "\x040\x03\x06\x00\x00\x04\xd1" + // 0x04300306: 0x000004D1
- "\x04\x10\x03\b\x00\x00\x04\xd2" + // 0x04100308: 0x000004D2
- "\x040\x03\b\x00\x00\x04\xd3" + // 0x04300308: 0x000004D3
- "\x04\x15\x03\x06\x00\x00\x04\xd6" + // 0x04150306: 0x000004D6
- "\x045\x03\x06\x00\x00\x04\xd7" + // 0x04350306: 0x000004D7
- "\x04\xd8\x03\b\x00\x00\x04\xda" + // 0x04D80308: 0x000004DA
- "\x04\xd9\x03\b\x00\x00\x04\xdb" + // 0x04D90308: 0x000004DB
- "\x04\x16\x03\b\x00\x00\x04\xdc" + // 0x04160308: 0x000004DC
- "\x046\x03\b\x00\x00\x04\xdd" + // 0x04360308: 0x000004DD
- "\x04\x17\x03\b\x00\x00\x04\xde" + // 0x04170308: 0x000004DE
- "\x047\x03\b\x00\x00\x04\xdf" + // 0x04370308: 0x000004DF
- "\x04\x18\x03\x04\x00\x00\x04\xe2" + // 0x04180304: 0x000004E2
- "\x048\x03\x04\x00\x00\x04\xe3" + // 0x04380304: 0x000004E3
- "\x04\x18\x03\b\x00\x00\x04\xe4" + // 0x04180308: 0x000004E4
- "\x048\x03\b\x00\x00\x04\xe5" + // 0x04380308: 0x000004E5
- "\x04\x1e\x03\b\x00\x00\x04\xe6" + // 0x041E0308: 0x000004E6
- "\x04>\x03\b\x00\x00\x04\xe7" + // 0x043E0308: 0x000004E7
- "\x04\xe8\x03\b\x00\x00\x04\xea" + // 0x04E80308: 0x000004EA
- "\x04\xe9\x03\b\x00\x00\x04\xeb" + // 0x04E90308: 0x000004EB
- "\x04-\x03\b\x00\x00\x04\xec" + // 0x042D0308: 0x000004EC
- "\x04M\x03\b\x00\x00\x04\xed" + // 0x044D0308: 0x000004ED
- "\x04#\x03\x04\x00\x00\x04\xee" + // 0x04230304: 0x000004EE
- "\x04C\x03\x04\x00\x00\x04\xef" + // 0x04430304: 0x000004EF
- "\x04#\x03\b\x00\x00\x04\xf0" + // 0x04230308: 0x000004F0
- "\x04C\x03\b\x00\x00\x04\xf1" + // 0x04430308: 0x000004F1
- "\x04#\x03\v\x00\x00\x04\xf2" + // 0x0423030B: 0x000004F2
- "\x04C\x03\v\x00\x00\x04\xf3" + // 0x0443030B: 0x000004F3
- "\x04'\x03\b\x00\x00\x04\xf4" + // 0x04270308: 0x000004F4
- "\x04G\x03\b\x00\x00\x04\xf5" + // 0x04470308: 0x000004F5
- "\x04+\x03\b\x00\x00\x04\xf8" + // 0x042B0308: 0x000004F8
- "\x04K\x03\b\x00\x00\x04\xf9" + // 0x044B0308: 0x000004F9
- "\x06'\x06S\x00\x00\x06\"" + // 0x06270653: 0x00000622
- "\x06'\x06T\x00\x00\x06#" + // 0x06270654: 0x00000623
- "\x06H\x06T\x00\x00\x06$" + // 0x06480654: 0x00000624
- "\x06'\x06U\x00\x00\x06%" + // 0x06270655: 0x00000625
- "\x06J\x06T\x00\x00\x06&" + // 0x064A0654: 0x00000626
- "\x06\xd5\x06T\x00\x00\x06\xc0" + // 0x06D50654: 0x000006C0
- "\x06\xc1\x06T\x00\x00\x06\xc2" + // 0x06C10654: 0x000006C2
- "\x06\xd2\x06T\x00\x00\x06\xd3" + // 0x06D20654: 0x000006D3
- "\t(\t<\x00\x00\t)" + // 0x0928093C: 0x00000929
- "\t0\t<\x00\x00\t1" + // 0x0930093C: 0x00000931
- "\t3\t<\x00\x00\t4" + // 0x0933093C: 0x00000934
- "\t\xc7\t\xbe\x00\x00\t\xcb" + // 0x09C709BE: 0x000009CB
- "\t\xc7\t\xd7\x00\x00\t\xcc" + // 0x09C709D7: 0x000009CC
- "\vG\vV\x00\x00\vH" + // 0x0B470B56: 0x00000B48
- "\vG\v>\x00\x00\vK" + // 0x0B470B3E: 0x00000B4B
- "\vG\vW\x00\x00\vL" + // 0x0B470B57: 0x00000B4C
- "\v\x92\v\xd7\x00\x00\v\x94" + // 0x0B920BD7: 0x00000B94
- "\v\xc6\v\xbe\x00\x00\v\xca" + // 0x0BC60BBE: 0x00000BCA
- "\v\xc7\v\xbe\x00\x00\v\xcb" + // 0x0BC70BBE: 0x00000BCB
- "\v\xc6\v\xd7\x00\x00\v\xcc" + // 0x0BC60BD7: 0x00000BCC
- "\fF\fV\x00\x00\fH" + // 0x0C460C56: 0x00000C48
- "\f\xbf\f\xd5\x00\x00\f\xc0" + // 0x0CBF0CD5: 0x00000CC0
- "\f\xc6\f\xd5\x00\x00\f\xc7" + // 0x0CC60CD5: 0x00000CC7
- "\f\xc6\f\xd6\x00\x00\f\xc8" + // 0x0CC60CD6: 0x00000CC8
- "\f\xc6\f\xc2\x00\x00\f\xca" + // 0x0CC60CC2: 0x00000CCA
- "\f\xca\f\xd5\x00\x00\f\xcb" + // 0x0CCA0CD5: 0x00000CCB
- "\rF\r>\x00\x00\rJ" + // 0x0D460D3E: 0x00000D4A
- "\rG\r>\x00\x00\rK" + // 0x0D470D3E: 0x00000D4B
- "\rF\rW\x00\x00\rL" + // 0x0D460D57: 0x00000D4C
- "\r\xd9\r\xca\x00\x00\r\xda" + // 0x0DD90DCA: 0x00000DDA
- "\r\xd9\r\xcf\x00\x00\r\xdc" + // 0x0DD90DCF: 0x00000DDC
- "\r\xdc\r\xca\x00\x00\r\xdd" + // 0x0DDC0DCA: 0x00000DDD
- "\r\xd9\r\xdf\x00\x00\r\xde" + // 0x0DD90DDF: 0x00000DDE
- "\x10%\x10.\x00\x00\x10&" + // 0x1025102E: 0x00001026
- "\x1b\x05\x1b5\x00\x00\x1b\x06" + // 0x1B051B35: 0x00001B06
- "\x1b\a\x1b5\x00\x00\x1b\b" + // 0x1B071B35: 0x00001B08
- "\x1b\t\x1b5\x00\x00\x1b\n" + // 0x1B091B35: 0x00001B0A
- "\x1b\v\x1b5\x00\x00\x1b\f" + // 0x1B0B1B35: 0x00001B0C
- "\x1b\r\x1b5\x00\x00\x1b\x0e" + // 0x1B0D1B35: 0x00001B0E
- "\x1b\x11\x1b5\x00\x00\x1b\x12" + // 0x1B111B35: 0x00001B12
- "\x1b:\x1b5\x00\x00\x1b;" + // 0x1B3A1B35: 0x00001B3B
- "\x1b<\x1b5\x00\x00\x1b=" + // 0x1B3C1B35: 0x00001B3D
- "\x1b>\x1b5\x00\x00\x1b@" + // 0x1B3E1B35: 0x00001B40
- "\x1b?\x1b5\x00\x00\x1bA" + // 0x1B3F1B35: 0x00001B41
- "\x1bB\x1b5\x00\x00\x1bC" + // 0x1B421B35: 0x00001B43
- "\x00A\x03%\x00\x00\x1e\x00" + // 0x00410325: 0x00001E00
- "\x00a\x03%\x00\x00\x1e\x01" + // 0x00610325: 0x00001E01
- "\x00B\x03\a\x00\x00\x1e\x02" + // 0x00420307: 0x00001E02
- "\x00b\x03\a\x00\x00\x1e\x03" + // 0x00620307: 0x00001E03
- "\x00B\x03#\x00\x00\x1e\x04" + // 0x00420323: 0x00001E04
- "\x00b\x03#\x00\x00\x1e\x05" + // 0x00620323: 0x00001E05
- "\x00B\x031\x00\x00\x1e\x06" + // 0x00420331: 0x00001E06
- "\x00b\x031\x00\x00\x1e\a" + // 0x00620331: 0x00001E07
- "\x00\xc7\x03\x01\x00\x00\x1e\b" + // 0x00C70301: 0x00001E08
- "\x00\xe7\x03\x01\x00\x00\x1e\t" + // 0x00E70301: 0x00001E09
- "\x00D\x03\a\x00\x00\x1e\n" + // 0x00440307: 0x00001E0A
- "\x00d\x03\a\x00\x00\x1e\v" + // 0x00640307: 0x00001E0B
- "\x00D\x03#\x00\x00\x1e\f" + // 0x00440323: 0x00001E0C
- "\x00d\x03#\x00\x00\x1e\r" + // 0x00640323: 0x00001E0D
- "\x00D\x031\x00\x00\x1e\x0e" + // 0x00440331: 0x00001E0E
- "\x00d\x031\x00\x00\x1e\x0f" + // 0x00640331: 0x00001E0F
- "\x00D\x03'\x00\x00\x1e\x10" + // 0x00440327: 0x00001E10
- "\x00d\x03'\x00\x00\x1e\x11" + // 0x00640327: 0x00001E11
- "\x00D\x03-\x00\x00\x1e\x12" + // 0x0044032D: 0x00001E12
- "\x00d\x03-\x00\x00\x1e\x13" + // 0x0064032D: 0x00001E13
- "\x01\x12\x03\x00\x00\x00\x1e\x14" + // 0x01120300: 0x00001E14
- "\x01\x13\x03\x00\x00\x00\x1e\x15" + // 0x01130300: 0x00001E15
- "\x01\x12\x03\x01\x00\x00\x1e\x16" + // 0x01120301: 0x00001E16
- "\x01\x13\x03\x01\x00\x00\x1e\x17" + // 0x01130301: 0x00001E17
- "\x00E\x03-\x00\x00\x1e\x18" + // 0x0045032D: 0x00001E18
- "\x00e\x03-\x00\x00\x1e\x19" + // 0x0065032D: 0x00001E19
- "\x00E\x030\x00\x00\x1e\x1a" + // 0x00450330: 0x00001E1A
- "\x00e\x030\x00\x00\x1e\x1b" + // 0x00650330: 0x00001E1B
- "\x02(\x03\x06\x00\x00\x1e\x1c" + // 0x02280306: 0x00001E1C
- "\x02)\x03\x06\x00\x00\x1e\x1d" + // 0x02290306: 0x00001E1D
- "\x00F\x03\a\x00\x00\x1e\x1e" + // 0x00460307: 0x00001E1E
- "\x00f\x03\a\x00\x00\x1e\x1f" + // 0x00660307: 0x00001E1F
- "\x00G\x03\x04\x00\x00\x1e " + // 0x00470304: 0x00001E20
- "\x00g\x03\x04\x00\x00\x1e!" + // 0x00670304: 0x00001E21
- "\x00H\x03\a\x00\x00\x1e\"" + // 0x00480307: 0x00001E22
- "\x00h\x03\a\x00\x00\x1e#" + // 0x00680307: 0x00001E23
- "\x00H\x03#\x00\x00\x1e$" + // 0x00480323: 0x00001E24
- "\x00h\x03#\x00\x00\x1e%" + // 0x00680323: 0x00001E25
- "\x00H\x03\b\x00\x00\x1e&" + // 0x00480308: 0x00001E26
- "\x00h\x03\b\x00\x00\x1e'" + // 0x00680308: 0x00001E27
- "\x00H\x03'\x00\x00\x1e(" + // 0x00480327: 0x00001E28
- "\x00h\x03'\x00\x00\x1e)" + // 0x00680327: 0x00001E29
- "\x00H\x03.\x00\x00\x1e*" + // 0x0048032E: 0x00001E2A
- "\x00h\x03.\x00\x00\x1e+" + // 0x0068032E: 0x00001E2B
- "\x00I\x030\x00\x00\x1e," + // 0x00490330: 0x00001E2C
- "\x00i\x030\x00\x00\x1e-" + // 0x00690330: 0x00001E2D
- "\x00\xcf\x03\x01\x00\x00\x1e." + // 0x00CF0301: 0x00001E2E
- "\x00\xef\x03\x01\x00\x00\x1e/" + // 0x00EF0301: 0x00001E2F
- "\x00K\x03\x01\x00\x00\x1e0" + // 0x004B0301: 0x00001E30
- "\x00k\x03\x01\x00\x00\x1e1" + // 0x006B0301: 0x00001E31
- "\x00K\x03#\x00\x00\x1e2" + // 0x004B0323: 0x00001E32
- "\x00k\x03#\x00\x00\x1e3" + // 0x006B0323: 0x00001E33
- "\x00K\x031\x00\x00\x1e4" + // 0x004B0331: 0x00001E34
- "\x00k\x031\x00\x00\x1e5" + // 0x006B0331: 0x00001E35
- "\x00L\x03#\x00\x00\x1e6" + // 0x004C0323: 0x00001E36
- "\x00l\x03#\x00\x00\x1e7" + // 0x006C0323: 0x00001E37
- "\x1e6\x03\x04\x00\x00\x1e8" + // 0x1E360304: 0x00001E38
- "\x1e7\x03\x04\x00\x00\x1e9" + // 0x1E370304: 0x00001E39
- "\x00L\x031\x00\x00\x1e:" + // 0x004C0331: 0x00001E3A
- "\x00l\x031\x00\x00\x1e;" + // 0x006C0331: 0x00001E3B
- "\x00L\x03-\x00\x00\x1e<" + // 0x004C032D: 0x00001E3C
- "\x00l\x03-\x00\x00\x1e=" + // 0x006C032D: 0x00001E3D
- "\x00M\x03\x01\x00\x00\x1e>" + // 0x004D0301: 0x00001E3E
- "\x00m\x03\x01\x00\x00\x1e?" + // 0x006D0301: 0x00001E3F
- "\x00M\x03\a\x00\x00\x1e@" + // 0x004D0307: 0x00001E40
- "\x00m\x03\a\x00\x00\x1eA" + // 0x006D0307: 0x00001E41
- "\x00M\x03#\x00\x00\x1eB" + // 0x004D0323: 0x00001E42
- "\x00m\x03#\x00\x00\x1eC" + // 0x006D0323: 0x00001E43
- "\x00N\x03\a\x00\x00\x1eD" + // 0x004E0307: 0x00001E44
- "\x00n\x03\a\x00\x00\x1eE" + // 0x006E0307: 0x00001E45
- "\x00N\x03#\x00\x00\x1eF" + // 0x004E0323: 0x00001E46
- "\x00n\x03#\x00\x00\x1eG" + // 0x006E0323: 0x00001E47
- "\x00N\x031\x00\x00\x1eH" + // 0x004E0331: 0x00001E48
- "\x00n\x031\x00\x00\x1eI" + // 0x006E0331: 0x00001E49
- "\x00N\x03-\x00\x00\x1eJ" + // 0x004E032D: 0x00001E4A
- "\x00n\x03-\x00\x00\x1eK" + // 0x006E032D: 0x00001E4B
- "\x00\xd5\x03\x01\x00\x00\x1eL" + // 0x00D50301: 0x00001E4C
- "\x00\xf5\x03\x01\x00\x00\x1eM" + // 0x00F50301: 0x00001E4D
- "\x00\xd5\x03\b\x00\x00\x1eN" + // 0x00D50308: 0x00001E4E
- "\x00\xf5\x03\b\x00\x00\x1eO" + // 0x00F50308: 0x00001E4F
- "\x01L\x03\x00\x00\x00\x1eP" + // 0x014C0300: 0x00001E50
- "\x01M\x03\x00\x00\x00\x1eQ" + // 0x014D0300: 0x00001E51
- "\x01L\x03\x01\x00\x00\x1eR" + // 0x014C0301: 0x00001E52
- "\x01M\x03\x01\x00\x00\x1eS" + // 0x014D0301: 0x00001E53
- "\x00P\x03\x01\x00\x00\x1eT" + // 0x00500301: 0x00001E54
- "\x00p\x03\x01\x00\x00\x1eU" + // 0x00700301: 0x00001E55
- "\x00P\x03\a\x00\x00\x1eV" + // 0x00500307: 0x00001E56
- "\x00p\x03\a\x00\x00\x1eW" + // 0x00700307: 0x00001E57
- "\x00R\x03\a\x00\x00\x1eX" + // 0x00520307: 0x00001E58
- "\x00r\x03\a\x00\x00\x1eY" + // 0x00720307: 0x00001E59
- "\x00R\x03#\x00\x00\x1eZ" + // 0x00520323: 0x00001E5A
- "\x00r\x03#\x00\x00\x1e[" + // 0x00720323: 0x00001E5B
- "\x1eZ\x03\x04\x00\x00\x1e\\" + // 0x1E5A0304: 0x00001E5C
- "\x1e[\x03\x04\x00\x00\x1e]" + // 0x1E5B0304: 0x00001E5D
- "\x00R\x031\x00\x00\x1e^" + // 0x00520331: 0x00001E5E
- "\x00r\x031\x00\x00\x1e_" + // 0x00720331: 0x00001E5F
- "\x00S\x03\a\x00\x00\x1e`" + // 0x00530307: 0x00001E60
- "\x00s\x03\a\x00\x00\x1ea" + // 0x00730307: 0x00001E61
- "\x00S\x03#\x00\x00\x1eb" + // 0x00530323: 0x00001E62
- "\x00s\x03#\x00\x00\x1ec" + // 0x00730323: 0x00001E63
- "\x01Z\x03\a\x00\x00\x1ed" + // 0x015A0307: 0x00001E64
- "\x01[\x03\a\x00\x00\x1ee" + // 0x015B0307: 0x00001E65
- "\x01`\x03\a\x00\x00\x1ef" + // 0x01600307: 0x00001E66
- "\x01a\x03\a\x00\x00\x1eg" + // 0x01610307: 0x00001E67
- "\x1eb\x03\a\x00\x00\x1eh" + // 0x1E620307: 0x00001E68
- "\x1ec\x03\a\x00\x00\x1ei" + // 0x1E630307: 0x00001E69
- "\x00T\x03\a\x00\x00\x1ej" + // 0x00540307: 0x00001E6A
- "\x00t\x03\a\x00\x00\x1ek" + // 0x00740307: 0x00001E6B
- "\x00T\x03#\x00\x00\x1el" + // 0x00540323: 0x00001E6C
- "\x00t\x03#\x00\x00\x1em" + // 0x00740323: 0x00001E6D
- "\x00T\x031\x00\x00\x1en" + // 0x00540331: 0x00001E6E
- "\x00t\x031\x00\x00\x1eo" + // 0x00740331: 0x00001E6F
- "\x00T\x03-\x00\x00\x1ep" + // 0x0054032D: 0x00001E70
- "\x00t\x03-\x00\x00\x1eq" + // 0x0074032D: 0x00001E71
- "\x00U\x03$\x00\x00\x1er" + // 0x00550324: 0x00001E72
- "\x00u\x03$\x00\x00\x1es" + // 0x00750324: 0x00001E73
- "\x00U\x030\x00\x00\x1et" + // 0x00550330: 0x00001E74
- "\x00u\x030\x00\x00\x1eu" + // 0x00750330: 0x00001E75
- "\x00U\x03-\x00\x00\x1ev" + // 0x0055032D: 0x00001E76
- "\x00u\x03-\x00\x00\x1ew" + // 0x0075032D: 0x00001E77
- "\x01h\x03\x01\x00\x00\x1ex" + // 0x01680301: 0x00001E78
- "\x01i\x03\x01\x00\x00\x1ey" + // 0x01690301: 0x00001E79
- "\x01j\x03\b\x00\x00\x1ez" + // 0x016A0308: 0x00001E7A
- "\x01k\x03\b\x00\x00\x1e{" + // 0x016B0308: 0x00001E7B
- "\x00V\x03\x03\x00\x00\x1e|" + // 0x00560303: 0x00001E7C
- "\x00v\x03\x03\x00\x00\x1e}" + // 0x00760303: 0x00001E7D
- "\x00V\x03#\x00\x00\x1e~" + // 0x00560323: 0x00001E7E
- "\x00v\x03#\x00\x00\x1e\u007f" + // 0x00760323: 0x00001E7F
- "\x00W\x03\x00\x00\x00\x1e\x80" + // 0x00570300: 0x00001E80
- "\x00w\x03\x00\x00\x00\x1e\x81" + // 0x00770300: 0x00001E81
- "\x00W\x03\x01\x00\x00\x1e\x82" + // 0x00570301: 0x00001E82
- "\x00w\x03\x01\x00\x00\x1e\x83" + // 0x00770301: 0x00001E83
- "\x00W\x03\b\x00\x00\x1e\x84" + // 0x00570308: 0x00001E84
- "\x00w\x03\b\x00\x00\x1e\x85" + // 0x00770308: 0x00001E85
- "\x00W\x03\a\x00\x00\x1e\x86" + // 0x00570307: 0x00001E86
- "\x00w\x03\a\x00\x00\x1e\x87" + // 0x00770307: 0x00001E87
- "\x00W\x03#\x00\x00\x1e\x88" + // 0x00570323: 0x00001E88
- "\x00w\x03#\x00\x00\x1e\x89" + // 0x00770323: 0x00001E89
- "\x00X\x03\a\x00\x00\x1e\x8a" + // 0x00580307: 0x00001E8A
- "\x00x\x03\a\x00\x00\x1e\x8b" + // 0x00780307: 0x00001E8B
- "\x00X\x03\b\x00\x00\x1e\x8c" + // 0x00580308: 0x00001E8C
- "\x00x\x03\b\x00\x00\x1e\x8d" + // 0x00780308: 0x00001E8D
- "\x00Y\x03\a\x00\x00\x1e\x8e" + // 0x00590307: 0x00001E8E
- "\x00y\x03\a\x00\x00\x1e\x8f" + // 0x00790307: 0x00001E8F
- "\x00Z\x03\x02\x00\x00\x1e\x90" + // 0x005A0302: 0x00001E90
- "\x00z\x03\x02\x00\x00\x1e\x91" + // 0x007A0302: 0x00001E91
- "\x00Z\x03#\x00\x00\x1e\x92" + // 0x005A0323: 0x00001E92
- "\x00z\x03#\x00\x00\x1e\x93" + // 0x007A0323: 0x00001E93
- "\x00Z\x031\x00\x00\x1e\x94" + // 0x005A0331: 0x00001E94
- "\x00z\x031\x00\x00\x1e\x95" + // 0x007A0331: 0x00001E95
- "\x00h\x031\x00\x00\x1e\x96" + // 0x00680331: 0x00001E96
- "\x00t\x03\b\x00\x00\x1e\x97" + // 0x00740308: 0x00001E97
- "\x00w\x03\n\x00\x00\x1e\x98" + // 0x0077030A: 0x00001E98
- "\x00y\x03\n\x00\x00\x1e\x99" + // 0x0079030A: 0x00001E99
- "\x01\u007f\x03\a\x00\x00\x1e\x9b" + // 0x017F0307: 0x00001E9B
- "\x00A\x03#\x00\x00\x1e\xa0" + // 0x00410323: 0x00001EA0
- "\x00a\x03#\x00\x00\x1e\xa1" + // 0x00610323: 0x00001EA1
- "\x00A\x03\t\x00\x00\x1e\xa2" + // 0x00410309: 0x00001EA2
- "\x00a\x03\t\x00\x00\x1e\xa3" + // 0x00610309: 0x00001EA3
- "\x00\xc2\x03\x01\x00\x00\x1e\xa4" + // 0x00C20301: 0x00001EA4
- "\x00\xe2\x03\x01\x00\x00\x1e\xa5" + // 0x00E20301: 0x00001EA5
- "\x00\xc2\x03\x00\x00\x00\x1e\xa6" + // 0x00C20300: 0x00001EA6
- "\x00\xe2\x03\x00\x00\x00\x1e\xa7" + // 0x00E20300: 0x00001EA7
- "\x00\xc2\x03\t\x00\x00\x1e\xa8" + // 0x00C20309: 0x00001EA8
- "\x00\xe2\x03\t\x00\x00\x1e\xa9" + // 0x00E20309: 0x00001EA9
- "\x00\xc2\x03\x03\x00\x00\x1e\xaa" + // 0x00C20303: 0x00001EAA
- "\x00\xe2\x03\x03\x00\x00\x1e\xab" + // 0x00E20303: 0x00001EAB
- "\x1e\xa0\x03\x02\x00\x00\x1e\xac" + // 0x1EA00302: 0x00001EAC
- "\x1e\xa1\x03\x02\x00\x00\x1e\xad" + // 0x1EA10302: 0x00001EAD
- "\x01\x02\x03\x01\x00\x00\x1e\xae" + // 0x01020301: 0x00001EAE
- "\x01\x03\x03\x01\x00\x00\x1e\xaf" + // 0x01030301: 0x00001EAF
- "\x01\x02\x03\x00\x00\x00\x1e\xb0" + // 0x01020300: 0x00001EB0
- "\x01\x03\x03\x00\x00\x00\x1e\xb1" + // 0x01030300: 0x00001EB1
- "\x01\x02\x03\t\x00\x00\x1e\xb2" + // 0x01020309: 0x00001EB2
- "\x01\x03\x03\t\x00\x00\x1e\xb3" + // 0x01030309: 0x00001EB3
- "\x01\x02\x03\x03\x00\x00\x1e\xb4" + // 0x01020303: 0x00001EB4
- "\x01\x03\x03\x03\x00\x00\x1e\xb5" + // 0x01030303: 0x00001EB5
- "\x1e\xa0\x03\x06\x00\x00\x1e\xb6" + // 0x1EA00306: 0x00001EB6
- "\x1e\xa1\x03\x06\x00\x00\x1e\xb7" + // 0x1EA10306: 0x00001EB7
- "\x00E\x03#\x00\x00\x1e\xb8" + // 0x00450323: 0x00001EB8
- "\x00e\x03#\x00\x00\x1e\xb9" + // 0x00650323: 0x00001EB9
- "\x00E\x03\t\x00\x00\x1e\xba" + // 0x00450309: 0x00001EBA
- "\x00e\x03\t\x00\x00\x1e\xbb" + // 0x00650309: 0x00001EBB
- "\x00E\x03\x03\x00\x00\x1e\xbc" + // 0x00450303: 0x00001EBC
- "\x00e\x03\x03\x00\x00\x1e\xbd" + // 0x00650303: 0x00001EBD
- "\x00\xca\x03\x01\x00\x00\x1e\xbe" + // 0x00CA0301: 0x00001EBE
- "\x00\xea\x03\x01\x00\x00\x1e\xbf" + // 0x00EA0301: 0x00001EBF
- "\x00\xca\x03\x00\x00\x00\x1e\xc0" + // 0x00CA0300: 0x00001EC0
- "\x00\xea\x03\x00\x00\x00\x1e\xc1" + // 0x00EA0300: 0x00001EC1
- "\x00\xca\x03\t\x00\x00\x1e\xc2" + // 0x00CA0309: 0x00001EC2
- "\x00\xea\x03\t\x00\x00\x1e\xc3" + // 0x00EA0309: 0x00001EC3
- "\x00\xca\x03\x03\x00\x00\x1e\xc4" + // 0x00CA0303: 0x00001EC4
- "\x00\xea\x03\x03\x00\x00\x1e\xc5" + // 0x00EA0303: 0x00001EC5
- "\x1e\xb8\x03\x02\x00\x00\x1e\xc6" + // 0x1EB80302: 0x00001EC6
- "\x1e\xb9\x03\x02\x00\x00\x1e\xc7" + // 0x1EB90302: 0x00001EC7
- "\x00I\x03\t\x00\x00\x1e\xc8" + // 0x00490309: 0x00001EC8
- "\x00i\x03\t\x00\x00\x1e\xc9" + // 0x00690309: 0x00001EC9
- "\x00I\x03#\x00\x00\x1e\xca" + // 0x00490323: 0x00001ECA
- "\x00i\x03#\x00\x00\x1e\xcb" + // 0x00690323: 0x00001ECB
- "\x00O\x03#\x00\x00\x1e\xcc" + // 0x004F0323: 0x00001ECC
- "\x00o\x03#\x00\x00\x1e\xcd" + // 0x006F0323: 0x00001ECD
- "\x00O\x03\t\x00\x00\x1e\xce" + // 0x004F0309: 0x00001ECE
- "\x00o\x03\t\x00\x00\x1e\xcf" + // 0x006F0309: 0x00001ECF
- "\x00\xd4\x03\x01\x00\x00\x1e\xd0" + // 0x00D40301: 0x00001ED0
- "\x00\xf4\x03\x01\x00\x00\x1e\xd1" + // 0x00F40301: 0x00001ED1
- "\x00\xd4\x03\x00\x00\x00\x1e\xd2" + // 0x00D40300: 0x00001ED2
- "\x00\xf4\x03\x00\x00\x00\x1e\xd3" + // 0x00F40300: 0x00001ED3
- "\x00\xd4\x03\t\x00\x00\x1e\xd4" + // 0x00D40309: 0x00001ED4
- "\x00\xf4\x03\t\x00\x00\x1e\xd5" + // 0x00F40309: 0x00001ED5
- "\x00\xd4\x03\x03\x00\x00\x1e\xd6" + // 0x00D40303: 0x00001ED6
- "\x00\xf4\x03\x03\x00\x00\x1e\xd7" + // 0x00F40303: 0x00001ED7
- "\x1e\xcc\x03\x02\x00\x00\x1e\xd8" + // 0x1ECC0302: 0x00001ED8
- "\x1e\xcd\x03\x02\x00\x00\x1e\xd9" + // 0x1ECD0302: 0x00001ED9
- "\x01\xa0\x03\x01\x00\x00\x1e\xda" + // 0x01A00301: 0x00001EDA
- "\x01\xa1\x03\x01\x00\x00\x1e\xdb" + // 0x01A10301: 0x00001EDB
- "\x01\xa0\x03\x00\x00\x00\x1e\xdc" + // 0x01A00300: 0x00001EDC
- "\x01\xa1\x03\x00\x00\x00\x1e\xdd" + // 0x01A10300: 0x00001EDD
- "\x01\xa0\x03\t\x00\x00\x1e\xde" + // 0x01A00309: 0x00001EDE
- "\x01\xa1\x03\t\x00\x00\x1e\xdf" + // 0x01A10309: 0x00001EDF
- "\x01\xa0\x03\x03\x00\x00\x1e\xe0" + // 0x01A00303: 0x00001EE0
- "\x01\xa1\x03\x03\x00\x00\x1e\xe1" + // 0x01A10303: 0x00001EE1
- "\x01\xa0\x03#\x00\x00\x1e\xe2" + // 0x01A00323: 0x00001EE2
- "\x01\xa1\x03#\x00\x00\x1e\xe3" + // 0x01A10323: 0x00001EE3
- "\x00U\x03#\x00\x00\x1e\xe4" + // 0x00550323: 0x00001EE4
- "\x00u\x03#\x00\x00\x1e\xe5" + // 0x00750323: 0x00001EE5
- "\x00U\x03\t\x00\x00\x1e\xe6" + // 0x00550309: 0x00001EE6
- "\x00u\x03\t\x00\x00\x1e\xe7" + // 0x00750309: 0x00001EE7
- "\x01\xaf\x03\x01\x00\x00\x1e\xe8" + // 0x01AF0301: 0x00001EE8
- "\x01\xb0\x03\x01\x00\x00\x1e\xe9" + // 0x01B00301: 0x00001EE9
- "\x01\xaf\x03\x00\x00\x00\x1e\xea" + // 0x01AF0300: 0x00001EEA
- "\x01\xb0\x03\x00\x00\x00\x1e\xeb" + // 0x01B00300: 0x00001EEB
- "\x01\xaf\x03\t\x00\x00\x1e\xec" + // 0x01AF0309: 0x00001EEC
- "\x01\xb0\x03\t\x00\x00\x1e\xed" + // 0x01B00309: 0x00001EED
- "\x01\xaf\x03\x03\x00\x00\x1e\xee" + // 0x01AF0303: 0x00001EEE
- "\x01\xb0\x03\x03\x00\x00\x1e\xef" + // 0x01B00303: 0x00001EEF
- "\x01\xaf\x03#\x00\x00\x1e\xf0" + // 0x01AF0323: 0x00001EF0
- "\x01\xb0\x03#\x00\x00\x1e\xf1" + // 0x01B00323: 0x00001EF1
- "\x00Y\x03\x00\x00\x00\x1e\xf2" + // 0x00590300: 0x00001EF2
- "\x00y\x03\x00\x00\x00\x1e\xf3" + // 0x00790300: 0x00001EF3
- "\x00Y\x03#\x00\x00\x1e\xf4" + // 0x00590323: 0x00001EF4
- "\x00y\x03#\x00\x00\x1e\xf5" + // 0x00790323: 0x00001EF5
- "\x00Y\x03\t\x00\x00\x1e\xf6" + // 0x00590309: 0x00001EF6
- "\x00y\x03\t\x00\x00\x1e\xf7" + // 0x00790309: 0x00001EF7
- "\x00Y\x03\x03\x00\x00\x1e\xf8" + // 0x00590303: 0x00001EF8
- "\x00y\x03\x03\x00\x00\x1e\xf9" + // 0x00790303: 0x00001EF9
- "\x03\xb1\x03\x13\x00\x00\x1f\x00" + // 0x03B10313: 0x00001F00
- "\x03\xb1\x03\x14\x00\x00\x1f\x01" + // 0x03B10314: 0x00001F01
- "\x1f\x00\x03\x00\x00\x00\x1f\x02" + // 0x1F000300: 0x00001F02
- "\x1f\x01\x03\x00\x00\x00\x1f\x03" + // 0x1F010300: 0x00001F03
- "\x1f\x00\x03\x01\x00\x00\x1f\x04" + // 0x1F000301: 0x00001F04
- "\x1f\x01\x03\x01\x00\x00\x1f\x05" + // 0x1F010301: 0x00001F05
- "\x1f\x00\x03B\x00\x00\x1f\x06" + // 0x1F000342: 0x00001F06
- "\x1f\x01\x03B\x00\x00\x1f\a" + // 0x1F010342: 0x00001F07
- "\x03\x91\x03\x13\x00\x00\x1f\b" + // 0x03910313: 0x00001F08
- "\x03\x91\x03\x14\x00\x00\x1f\t" + // 0x03910314: 0x00001F09
- "\x1f\b\x03\x00\x00\x00\x1f\n" + // 0x1F080300: 0x00001F0A
- "\x1f\t\x03\x00\x00\x00\x1f\v" + // 0x1F090300: 0x00001F0B
- "\x1f\b\x03\x01\x00\x00\x1f\f" + // 0x1F080301: 0x00001F0C
- "\x1f\t\x03\x01\x00\x00\x1f\r" + // 0x1F090301: 0x00001F0D
- "\x1f\b\x03B\x00\x00\x1f\x0e" + // 0x1F080342: 0x00001F0E
- "\x1f\t\x03B\x00\x00\x1f\x0f" + // 0x1F090342: 0x00001F0F
- "\x03\xb5\x03\x13\x00\x00\x1f\x10" + // 0x03B50313: 0x00001F10
- "\x03\xb5\x03\x14\x00\x00\x1f\x11" + // 0x03B50314: 0x00001F11
- "\x1f\x10\x03\x00\x00\x00\x1f\x12" + // 0x1F100300: 0x00001F12
- "\x1f\x11\x03\x00\x00\x00\x1f\x13" + // 0x1F110300: 0x00001F13
- "\x1f\x10\x03\x01\x00\x00\x1f\x14" + // 0x1F100301: 0x00001F14
- "\x1f\x11\x03\x01\x00\x00\x1f\x15" + // 0x1F110301: 0x00001F15
- "\x03\x95\x03\x13\x00\x00\x1f\x18" + // 0x03950313: 0x00001F18
- "\x03\x95\x03\x14\x00\x00\x1f\x19" + // 0x03950314: 0x00001F19
- "\x1f\x18\x03\x00\x00\x00\x1f\x1a" + // 0x1F180300: 0x00001F1A
- "\x1f\x19\x03\x00\x00\x00\x1f\x1b" + // 0x1F190300: 0x00001F1B
- "\x1f\x18\x03\x01\x00\x00\x1f\x1c" + // 0x1F180301: 0x00001F1C
- "\x1f\x19\x03\x01\x00\x00\x1f\x1d" + // 0x1F190301: 0x00001F1D
- "\x03\xb7\x03\x13\x00\x00\x1f " + // 0x03B70313: 0x00001F20
- "\x03\xb7\x03\x14\x00\x00\x1f!" + // 0x03B70314: 0x00001F21
- "\x1f \x03\x00\x00\x00\x1f\"" + // 0x1F200300: 0x00001F22
- "\x1f!\x03\x00\x00\x00\x1f#" + // 0x1F210300: 0x00001F23
- "\x1f \x03\x01\x00\x00\x1f$" + // 0x1F200301: 0x00001F24
- "\x1f!\x03\x01\x00\x00\x1f%" + // 0x1F210301: 0x00001F25
- "\x1f \x03B\x00\x00\x1f&" + // 0x1F200342: 0x00001F26
- "\x1f!\x03B\x00\x00\x1f'" + // 0x1F210342: 0x00001F27
- "\x03\x97\x03\x13\x00\x00\x1f(" + // 0x03970313: 0x00001F28
- "\x03\x97\x03\x14\x00\x00\x1f)" + // 0x03970314: 0x00001F29
- "\x1f(\x03\x00\x00\x00\x1f*" + // 0x1F280300: 0x00001F2A
- "\x1f)\x03\x00\x00\x00\x1f+" + // 0x1F290300: 0x00001F2B
- "\x1f(\x03\x01\x00\x00\x1f," + // 0x1F280301: 0x00001F2C
- "\x1f)\x03\x01\x00\x00\x1f-" + // 0x1F290301: 0x00001F2D
- "\x1f(\x03B\x00\x00\x1f." + // 0x1F280342: 0x00001F2E
- "\x1f)\x03B\x00\x00\x1f/" + // 0x1F290342: 0x00001F2F
- "\x03\xb9\x03\x13\x00\x00\x1f0" + // 0x03B90313: 0x00001F30
- "\x03\xb9\x03\x14\x00\x00\x1f1" + // 0x03B90314: 0x00001F31
- "\x1f0\x03\x00\x00\x00\x1f2" + // 0x1F300300: 0x00001F32
- "\x1f1\x03\x00\x00\x00\x1f3" + // 0x1F310300: 0x00001F33
- "\x1f0\x03\x01\x00\x00\x1f4" + // 0x1F300301: 0x00001F34
- "\x1f1\x03\x01\x00\x00\x1f5" + // 0x1F310301: 0x00001F35
- "\x1f0\x03B\x00\x00\x1f6" + // 0x1F300342: 0x00001F36
- "\x1f1\x03B\x00\x00\x1f7" + // 0x1F310342: 0x00001F37
- "\x03\x99\x03\x13\x00\x00\x1f8" + // 0x03990313: 0x00001F38
- "\x03\x99\x03\x14\x00\x00\x1f9" + // 0x03990314: 0x00001F39
- "\x1f8\x03\x00\x00\x00\x1f:" + // 0x1F380300: 0x00001F3A
- "\x1f9\x03\x00\x00\x00\x1f;" + // 0x1F390300: 0x00001F3B
- "\x1f8\x03\x01\x00\x00\x1f<" + // 0x1F380301: 0x00001F3C
- "\x1f9\x03\x01\x00\x00\x1f=" + // 0x1F390301: 0x00001F3D
- "\x1f8\x03B\x00\x00\x1f>" + // 0x1F380342: 0x00001F3E
- "\x1f9\x03B\x00\x00\x1f?" + // 0x1F390342: 0x00001F3F
- "\x03\xbf\x03\x13\x00\x00\x1f@" + // 0x03BF0313: 0x00001F40
- "\x03\xbf\x03\x14\x00\x00\x1fA" + // 0x03BF0314: 0x00001F41
- "\x1f@\x03\x00\x00\x00\x1fB" + // 0x1F400300: 0x00001F42
- "\x1fA\x03\x00\x00\x00\x1fC" + // 0x1F410300: 0x00001F43
- "\x1f@\x03\x01\x00\x00\x1fD" + // 0x1F400301: 0x00001F44
- "\x1fA\x03\x01\x00\x00\x1fE" + // 0x1F410301: 0x00001F45
- "\x03\x9f\x03\x13\x00\x00\x1fH" + // 0x039F0313: 0x00001F48
- "\x03\x9f\x03\x14\x00\x00\x1fI" + // 0x039F0314: 0x00001F49
- "\x1fH\x03\x00\x00\x00\x1fJ" + // 0x1F480300: 0x00001F4A
- "\x1fI\x03\x00\x00\x00\x1fK" + // 0x1F490300: 0x00001F4B
- "\x1fH\x03\x01\x00\x00\x1fL" + // 0x1F480301: 0x00001F4C
- "\x1fI\x03\x01\x00\x00\x1fM" + // 0x1F490301: 0x00001F4D
- "\x03\xc5\x03\x13\x00\x00\x1fP" + // 0x03C50313: 0x00001F50
- "\x03\xc5\x03\x14\x00\x00\x1fQ" + // 0x03C50314: 0x00001F51
- "\x1fP\x03\x00\x00\x00\x1fR" + // 0x1F500300: 0x00001F52
- "\x1fQ\x03\x00\x00\x00\x1fS" + // 0x1F510300: 0x00001F53
- "\x1fP\x03\x01\x00\x00\x1fT" + // 0x1F500301: 0x00001F54
- "\x1fQ\x03\x01\x00\x00\x1fU" + // 0x1F510301: 0x00001F55
- "\x1fP\x03B\x00\x00\x1fV" + // 0x1F500342: 0x00001F56
- "\x1fQ\x03B\x00\x00\x1fW" + // 0x1F510342: 0x00001F57
- "\x03\xa5\x03\x14\x00\x00\x1fY" + // 0x03A50314: 0x00001F59
- "\x1fY\x03\x00\x00\x00\x1f[" + // 0x1F590300: 0x00001F5B
- "\x1fY\x03\x01\x00\x00\x1f]" + // 0x1F590301: 0x00001F5D
- "\x1fY\x03B\x00\x00\x1f_" + // 0x1F590342: 0x00001F5F
- "\x03\xc9\x03\x13\x00\x00\x1f`" + // 0x03C90313: 0x00001F60
- "\x03\xc9\x03\x14\x00\x00\x1fa" + // 0x03C90314: 0x00001F61
- "\x1f`\x03\x00\x00\x00\x1fb" + // 0x1F600300: 0x00001F62
- "\x1fa\x03\x00\x00\x00\x1fc" + // 0x1F610300: 0x00001F63
- "\x1f`\x03\x01\x00\x00\x1fd" + // 0x1F600301: 0x00001F64
- "\x1fa\x03\x01\x00\x00\x1fe" + // 0x1F610301: 0x00001F65
- "\x1f`\x03B\x00\x00\x1ff" + // 0x1F600342: 0x00001F66
- "\x1fa\x03B\x00\x00\x1fg" + // 0x1F610342: 0x00001F67
- "\x03\xa9\x03\x13\x00\x00\x1fh" + // 0x03A90313: 0x00001F68
- "\x03\xa9\x03\x14\x00\x00\x1fi" + // 0x03A90314: 0x00001F69
- "\x1fh\x03\x00\x00\x00\x1fj" + // 0x1F680300: 0x00001F6A
- "\x1fi\x03\x00\x00\x00\x1fk" + // 0x1F690300: 0x00001F6B
- "\x1fh\x03\x01\x00\x00\x1fl" + // 0x1F680301: 0x00001F6C
- "\x1fi\x03\x01\x00\x00\x1fm" + // 0x1F690301: 0x00001F6D
- "\x1fh\x03B\x00\x00\x1fn" + // 0x1F680342: 0x00001F6E
- "\x1fi\x03B\x00\x00\x1fo" + // 0x1F690342: 0x00001F6F
- "\x03\xb1\x03\x00\x00\x00\x1fp" + // 0x03B10300: 0x00001F70
- "\x03\xb5\x03\x00\x00\x00\x1fr" + // 0x03B50300: 0x00001F72
- "\x03\xb7\x03\x00\x00\x00\x1ft" + // 0x03B70300: 0x00001F74
- "\x03\xb9\x03\x00\x00\x00\x1fv" + // 0x03B90300: 0x00001F76
- "\x03\xbf\x03\x00\x00\x00\x1fx" + // 0x03BF0300: 0x00001F78
- "\x03\xc5\x03\x00\x00\x00\x1fz" + // 0x03C50300: 0x00001F7A
- "\x03\xc9\x03\x00\x00\x00\x1f|" + // 0x03C90300: 0x00001F7C
- "\x1f\x00\x03E\x00\x00\x1f\x80" + // 0x1F000345: 0x00001F80
- "\x1f\x01\x03E\x00\x00\x1f\x81" + // 0x1F010345: 0x00001F81
- "\x1f\x02\x03E\x00\x00\x1f\x82" + // 0x1F020345: 0x00001F82
- "\x1f\x03\x03E\x00\x00\x1f\x83" + // 0x1F030345: 0x00001F83
- "\x1f\x04\x03E\x00\x00\x1f\x84" + // 0x1F040345: 0x00001F84
- "\x1f\x05\x03E\x00\x00\x1f\x85" + // 0x1F050345: 0x00001F85
- "\x1f\x06\x03E\x00\x00\x1f\x86" + // 0x1F060345: 0x00001F86
- "\x1f\a\x03E\x00\x00\x1f\x87" + // 0x1F070345: 0x00001F87
- "\x1f\b\x03E\x00\x00\x1f\x88" + // 0x1F080345: 0x00001F88
- "\x1f\t\x03E\x00\x00\x1f\x89" + // 0x1F090345: 0x00001F89
- "\x1f\n\x03E\x00\x00\x1f\x8a" + // 0x1F0A0345: 0x00001F8A
- "\x1f\v\x03E\x00\x00\x1f\x8b" + // 0x1F0B0345: 0x00001F8B
- "\x1f\f\x03E\x00\x00\x1f\x8c" + // 0x1F0C0345: 0x00001F8C
- "\x1f\r\x03E\x00\x00\x1f\x8d" + // 0x1F0D0345: 0x00001F8D
- "\x1f\x0e\x03E\x00\x00\x1f\x8e" + // 0x1F0E0345: 0x00001F8E
- "\x1f\x0f\x03E\x00\x00\x1f\x8f" + // 0x1F0F0345: 0x00001F8F
- "\x1f \x03E\x00\x00\x1f\x90" + // 0x1F200345: 0x00001F90
- "\x1f!\x03E\x00\x00\x1f\x91" + // 0x1F210345: 0x00001F91
- "\x1f\"\x03E\x00\x00\x1f\x92" + // 0x1F220345: 0x00001F92
- "\x1f#\x03E\x00\x00\x1f\x93" + // 0x1F230345: 0x00001F93
- "\x1f$\x03E\x00\x00\x1f\x94" + // 0x1F240345: 0x00001F94
- "\x1f%\x03E\x00\x00\x1f\x95" + // 0x1F250345: 0x00001F95
- "\x1f&\x03E\x00\x00\x1f\x96" + // 0x1F260345: 0x00001F96
- "\x1f'\x03E\x00\x00\x1f\x97" + // 0x1F270345: 0x00001F97
- "\x1f(\x03E\x00\x00\x1f\x98" + // 0x1F280345: 0x00001F98
- "\x1f)\x03E\x00\x00\x1f\x99" + // 0x1F290345: 0x00001F99
- "\x1f*\x03E\x00\x00\x1f\x9a" + // 0x1F2A0345: 0x00001F9A
- "\x1f+\x03E\x00\x00\x1f\x9b" + // 0x1F2B0345: 0x00001F9B
- "\x1f,\x03E\x00\x00\x1f\x9c" + // 0x1F2C0345: 0x00001F9C
- "\x1f-\x03E\x00\x00\x1f\x9d" + // 0x1F2D0345: 0x00001F9D
- "\x1f.\x03E\x00\x00\x1f\x9e" + // 0x1F2E0345: 0x00001F9E
- "\x1f/\x03E\x00\x00\x1f\x9f" + // 0x1F2F0345: 0x00001F9F
- "\x1f`\x03E\x00\x00\x1f\xa0" + // 0x1F600345: 0x00001FA0
- "\x1fa\x03E\x00\x00\x1f\xa1" + // 0x1F610345: 0x00001FA1
- "\x1fb\x03E\x00\x00\x1f\xa2" + // 0x1F620345: 0x00001FA2
- "\x1fc\x03E\x00\x00\x1f\xa3" + // 0x1F630345: 0x00001FA3
- "\x1fd\x03E\x00\x00\x1f\xa4" + // 0x1F640345: 0x00001FA4
- "\x1fe\x03E\x00\x00\x1f\xa5" + // 0x1F650345: 0x00001FA5
- "\x1ff\x03E\x00\x00\x1f\xa6" + // 0x1F660345: 0x00001FA6
- "\x1fg\x03E\x00\x00\x1f\xa7" + // 0x1F670345: 0x00001FA7
- "\x1fh\x03E\x00\x00\x1f\xa8" + // 0x1F680345: 0x00001FA8
- "\x1fi\x03E\x00\x00\x1f\xa9" + // 0x1F690345: 0x00001FA9
- "\x1fj\x03E\x00\x00\x1f\xaa" + // 0x1F6A0345: 0x00001FAA
- "\x1fk\x03E\x00\x00\x1f\xab" + // 0x1F6B0345: 0x00001FAB
- "\x1fl\x03E\x00\x00\x1f\xac" + // 0x1F6C0345: 0x00001FAC
- "\x1fm\x03E\x00\x00\x1f\xad" + // 0x1F6D0345: 0x00001FAD
- "\x1fn\x03E\x00\x00\x1f\xae" + // 0x1F6E0345: 0x00001FAE
- "\x1fo\x03E\x00\x00\x1f\xaf" + // 0x1F6F0345: 0x00001FAF
- "\x03\xb1\x03\x06\x00\x00\x1f\xb0" + // 0x03B10306: 0x00001FB0
- "\x03\xb1\x03\x04\x00\x00\x1f\xb1" + // 0x03B10304: 0x00001FB1
- "\x1fp\x03E\x00\x00\x1f\xb2" + // 0x1F700345: 0x00001FB2
- "\x03\xb1\x03E\x00\x00\x1f\xb3" + // 0x03B10345: 0x00001FB3
- "\x03\xac\x03E\x00\x00\x1f\xb4" + // 0x03AC0345: 0x00001FB4
- "\x03\xb1\x03B\x00\x00\x1f\xb6" + // 0x03B10342: 0x00001FB6
- "\x1f\xb6\x03E\x00\x00\x1f\xb7" + // 0x1FB60345: 0x00001FB7
- "\x03\x91\x03\x06\x00\x00\x1f\xb8" + // 0x03910306: 0x00001FB8
- "\x03\x91\x03\x04\x00\x00\x1f\xb9" + // 0x03910304: 0x00001FB9
- "\x03\x91\x03\x00\x00\x00\x1f\xba" + // 0x03910300: 0x00001FBA
- "\x03\x91\x03E\x00\x00\x1f\xbc" + // 0x03910345: 0x00001FBC
- "\x00\xa8\x03B\x00\x00\x1f\xc1" + // 0x00A80342: 0x00001FC1
- "\x1ft\x03E\x00\x00\x1f\xc2" + // 0x1F740345: 0x00001FC2
- "\x03\xb7\x03E\x00\x00\x1f\xc3" + // 0x03B70345: 0x00001FC3
- "\x03\xae\x03E\x00\x00\x1f\xc4" + // 0x03AE0345: 0x00001FC4
- "\x03\xb7\x03B\x00\x00\x1f\xc6" + // 0x03B70342: 0x00001FC6
- "\x1f\xc6\x03E\x00\x00\x1f\xc7" + // 0x1FC60345: 0x00001FC7
- "\x03\x95\x03\x00\x00\x00\x1f\xc8" + // 0x03950300: 0x00001FC8
- "\x03\x97\x03\x00\x00\x00\x1f\xca" + // 0x03970300: 0x00001FCA
- "\x03\x97\x03E\x00\x00\x1f\xcc" + // 0x03970345: 0x00001FCC
- "\x1f\xbf\x03\x00\x00\x00\x1f\xcd" + // 0x1FBF0300: 0x00001FCD
- "\x1f\xbf\x03\x01\x00\x00\x1f\xce" + // 0x1FBF0301: 0x00001FCE
- "\x1f\xbf\x03B\x00\x00\x1f\xcf" + // 0x1FBF0342: 0x00001FCF
- "\x03\xb9\x03\x06\x00\x00\x1f\xd0" + // 0x03B90306: 0x00001FD0
- "\x03\xb9\x03\x04\x00\x00\x1f\xd1" + // 0x03B90304: 0x00001FD1
- "\x03\xca\x03\x00\x00\x00\x1f\xd2" + // 0x03CA0300: 0x00001FD2
- "\x03\xb9\x03B\x00\x00\x1f\xd6" + // 0x03B90342: 0x00001FD6
- "\x03\xca\x03B\x00\x00\x1f\xd7" + // 0x03CA0342: 0x00001FD7
- "\x03\x99\x03\x06\x00\x00\x1f\xd8" + // 0x03990306: 0x00001FD8
- "\x03\x99\x03\x04\x00\x00\x1f\xd9" + // 0x03990304: 0x00001FD9
- "\x03\x99\x03\x00\x00\x00\x1f\xda" + // 0x03990300: 0x00001FDA
- "\x1f\xfe\x03\x00\x00\x00\x1f\xdd" + // 0x1FFE0300: 0x00001FDD
- "\x1f\xfe\x03\x01\x00\x00\x1f\xde" + // 0x1FFE0301: 0x00001FDE
- "\x1f\xfe\x03B\x00\x00\x1f\xdf" + // 0x1FFE0342: 0x00001FDF
- "\x03\xc5\x03\x06\x00\x00\x1f\xe0" + // 0x03C50306: 0x00001FE0
- "\x03\xc5\x03\x04\x00\x00\x1f\xe1" + // 0x03C50304: 0x00001FE1
- "\x03\xcb\x03\x00\x00\x00\x1f\xe2" + // 0x03CB0300: 0x00001FE2
- "\x03\xc1\x03\x13\x00\x00\x1f\xe4" + // 0x03C10313: 0x00001FE4
- "\x03\xc1\x03\x14\x00\x00\x1f\xe5" + // 0x03C10314: 0x00001FE5
- "\x03\xc5\x03B\x00\x00\x1f\xe6" + // 0x03C50342: 0x00001FE6
- "\x03\xcb\x03B\x00\x00\x1f\xe7" + // 0x03CB0342: 0x00001FE7
- "\x03\xa5\x03\x06\x00\x00\x1f\xe8" + // 0x03A50306: 0x00001FE8
- "\x03\xa5\x03\x04\x00\x00\x1f\xe9" + // 0x03A50304: 0x00001FE9
- "\x03\xa5\x03\x00\x00\x00\x1f\xea" + // 0x03A50300: 0x00001FEA
- "\x03\xa1\x03\x14\x00\x00\x1f\xec" + // 0x03A10314: 0x00001FEC
- "\x00\xa8\x03\x00\x00\x00\x1f\xed" + // 0x00A80300: 0x00001FED
- "\x1f|\x03E\x00\x00\x1f\xf2" + // 0x1F7C0345: 0x00001FF2
- "\x03\xc9\x03E\x00\x00\x1f\xf3" + // 0x03C90345: 0x00001FF3
- "\x03\xce\x03E\x00\x00\x1f\xf4" + // 0x03CE0345: 0x00001FF4
- "\x03\xc9\x03B\x00\x00\x1f\xf6" + // 0x03C90342: 0x00001FF6
- "\x1f\xf6\x03E\x00\x00\x1f\xf7" + // 0x1FF60345: 0x00001FF7
- "\x03\x9f\x03\x00\x00\x00\x1f\xf8" + // 0x039F0300: 0x00001FF8
- "\x03\xa9\x03\x00\x00\x00\x1f\xfa" + // 0x03A90300: 0x00001FFA
- "\x03\xa9\x03E\x00\x00\x1f\xfc" + // 0x03A90345: 0x00001FFC
- "!\x90\x038\x00\x00!\x9a" + // 0x21900338: 0x0000219A
- "!\x92\x038\x00\x00!\x9b" + // 0x21920338: 0x0000219B
- "!\x94\x038\x00\x00!\xae" + // 0x21940338: 0x000021AE
- "!\xd0\x038\x00\x00!\xcd" + // 0x21D00338: 0x000021CD
- "!\xd4\x038\x00\x00!\xce" + // 0x21D40338: 0x000021CE
- "!\xd2\x038\x00\x00!\xcf" + // 0x21D20338: 0x000021CF
- "\"\x03\x038\x00\x00\"\x04" + // 0x22030338: 0x00002204
- "\"\b\x038\x00\x00\"\t" + // 0x22080338: 0x00002209
- "\"\v\x038\x00\x00\"\f" + // 0x220B0338: 0x0000220C
- "\"#\x038\x00\x00\"$" + // 0x22230338: 0x00002224
- "\"%\x038\x00\x00\"&" + // 0x22250338: 0x00002226
- "\"<\x038\x00\x00\"A" + // 0x223C0338: 0x00002241
- "\"C\x038\x00\x00\"D" + // 0x22430338: 0x00002244
- "\"E\x038\x00\x00\"G" + // 0x22450338: 0x00002247
- "\"H\x038\x00\x00\"I" + // 0x22480338: 0x00002249
- "\x00=\x038\x00\x00\"`" + // 0x003D0338: 0x00002260
- "\"a\x038\x00\x00\"b" + // 0x22610338: 0x00002262
- "\"M\x038\x00\x00\"m" + // 0x224D0338: 0x0000226D
- "\x00<\x038\x00\x00\"n" + // 0x003C0338: 0x0000226E
- "\x00>\x038\x00\x00\"o" + // 0x003E0338: 0x0000226F
- "\"d\x038\x00\x00\"p" + // 0x22640338: 0x00002270
- "\"e\x038\x00\x00\"q" + // 0x22650338: 0x00002271
- "\"r\x038\x00\x00\"t" + // 0x22720338: 0x00002274
- "\"s\x038\x00\x00\"u" + // 0x22730338: 0x00002275
- "\"v\x038\x00\x00\"x" + // 0x22760338: 0x00002278
- "\"w\x038\x00\x00\"y" + // 0x22770338: 0x00002279
- "\"z\x038\x00\x00\"\x80" + // 0x227A0338: 0x00002280
- "\"{\x038\x00\x00\"\x81" + // 0x227B0338: 0x00002281
- "\"\x82\x038\x00\x00\"\x84" + // 0x22820338: 0x00002284
- "\"\x83\x038\x00\x00\"\x85" + // 0x22830338: 0x00002285
- "\"\x86\x038\x00\x00\"\x88" + // 0x22860338: 0x00002288
- "\"\x87\x038\x00\x00\"\x89" + // 0x22870338: 0x00002289
- "\"\xa2\x038\x00\x00\"\xac" + // 0x22A20338: 0x000022AC
- "\"\xa8\x038\x00\x00\"\xad" + // 0x22A80338: 0x000022AD
- "\"\xa9\x038\x00\x00\"\xae" + // 0x22A90338: 0x000022AE
- "\"\xab\x038\x00\x00\"\xaf" + // 0x22AB0338: 0x000022AF
- "\"|\x038\x00\x00\"\xe0" + // 0x227C0338: 0x000022E0
- "\"}\x038\x00\x00\"\xe1" + // 0x227D0338: 0x000022E1
- "\"\x91\x038\x00\x00\"\xe2" + // 0x22910338: 0x000022E2
- "\"\x92\x038\x00\x00\"\xe3" + // 0x22920338: 0x000022E3
- "\"\xb2\x038\x00\x00\"\xea" + // 0x22B20338: 0x000022EA
- "\"\xb3\x038\x00\x00\"\xeb" + // 0x22B30338: 0x000022EB
- "\"\xb4\x038\x00\x00\"\xec" + // 0x22B40338: 0x000022EC
- "\"\xb5\x038\x00\x00\"\xed" + // 0x22B50338: 0x000022ED
- "0K0\x99\x00\x000L" + // 0x304B3099: 0x0000304C
- "0M0\x99\x00\x000N" + // 0x304D3099: 0x0000304E
- "0O0\x99\x00\x000P" + // 0x304F3099: 0x00003050
- "0Q0\x99\x00\x000R" + // 0x30513099: 0x00003052
- "0S0\x99\x00\x000T" + // 0x30533099: 0x00003054
- "0U0\x99\x00\x000V" + // 0x30553099: 0x00003056
- "0W0\x99\x00\x000X" + // 0x30573099: 0x00003058
- "0Y0\x99\x00\x000Z" + // 0x30593099: 0x0000305A
- "0[0\x99\x00\x000\\" + // 0x305B3099: 0x0000305C
- "0]0\x99\x00\x000^" + // 0x305D3099: 0x0000305E
- "0_0\x99\x00\x000`" + // 0x305F3099: 0x00003060
- "0a0\x99\x00\x000b" + // 0x30613099: 0x00003062
- "0d0\x99\x00\x000e" + // 0x30643099: 0x00003065
- "0f0\x99\x00\x000g" + // 0x30663099: 0x00003067
- "0h0\x99\x00\x000i" + // 0x30683099: 0x00003069
- "0o0\x99\x00\x000p" + // 0x306F3099: 0x00003070
- "0o0\x9a\x00\x000q" + // 0x306F309A: 0x00003071
- "0r0\x99\x00\x000s" + // 0x30723099: 0x00003073
- "0r0\x9a\x00\x000t" + // 0x3072309A: 0x00003074
- "0u0\x99\x00\x000v" + // 0x30753099: 0x00003076
- "0u0\x9a\x00\x000w" + // 0x3075309A: 0x00003077
- "0x0\x99\x00\x000y" + // 0x30783099: 0x00003079
- "0x0\x9a\x00\x000z" + // 0x3078309A: 0x0000307A
- "0{0\x99\x00\x000|" + // 0x307B3099: 0x0000307C
- "0{0\x9a\x00\x000}" + // 0x307B309A: 0x0000307D
- "0F0\x99\x00\x000\x94" + // 0x30463099: 0x00003094
- "0\x9d0\x99\x00\x000\x9e" + // 0x309D3099: 0x0000309E
- "0\xab0\x99\x00\x000\xac" + // 0x30AB3099: 0x000030AC
- "0\xad0\x99\x00\x000\xae" + // 0x30AD3099: 0x000030AE
- "0\xaf0\x99\x00\x000\xb0" + // 0x30AF3099: 0x000030B0
- "0\xb10\x99\x00\x000\xb2" + // 0x30B13099: 0x000030B2
- "0\xb30\x99\x00\x000\xb4" + // 0x30B33099: 0x000030B4
- "0\xb50\x99\x00\x000\xb6" + // 0x30B53099: 0x000030B6
- "0\xb70\x99\x00\x000\xb8" + // 0x30B73099: 0x000030B8
- "0\xb90\x99\x00\x000\xba" + // 0x30B93099: 0x000030BA
- "0\xbb0\x99\x00\x000\xbc" + // 0x30BB3099: 0x000030BC
- "0\xbd0\x99\x00\x000\xbe" + // 0x30BD3099: 0x000030BE
- "0\xbf0\x99\x00\x000\xc0" + // 0x30BF3099: 0x000030C0
- "0\xc10\x99\x00\x000\xc2" + // 0x30C13099: 0x000030C2
- "0\xc40\x99\x00\x000\xc5" + // 0x30C43099: 0x000030C5
- "0\xc60\x99\x00\x000\xc7" + // 0x30C63099: 0x000030C7
- "0\xc80\x99\x00\x000\xc9" + // 0x30C83099: 0x000030C9
- "0\xcf0\x99\x00\x000\xd0" + // 0x30CF3099: 0x000030D0
- "0\xcf0\x9a\x00\x000\xd1" + // 0x30CF309A: 0x000030D1
- "0\xd20\x99\x00\x000\xd3" + // 0x30D23099: 0x000030D3
- "0\xd20\x9a\x00\x000\xd4" + // 0x30D2309A: 0x000030D4
- "0\xd50\x99\x00\x000\xd6" + // 0x30D53099: 0x000030D6
- "0\xd50\x9a\x00\x000\xd7" + // 0x30D5309A: 0x000030D7
- "0\xd80\x99\x00\x000\xd9" + // 0x30D83099: 0x000030D9
- "0\xd80\x9a\x00\x000\xda" + // 0x30D8309A: 0x000030DA
- "0\xdb0\x99\x00\x000\xdc" + // 0x30DB3099: 0x000030DC
- "0\xdb0\x9a\x00\x000\xdd" + // 0x30DB309A: 0x000030DD
- "0\xa60\x99\x00\x000\xf4" + // 0x30A63099: 0x000030F4
- "0\xef0\x99\x00\x000\xf7" + // 0x30EF3099: 0x000030F7
- "0\xf00\x99\x00\x000\xf8" + // 0x30F03099: 0x000030F8
- "0\xf10\x99\x00\x000\xf9" + // 0x30F13099: 0x000030F9
- "0\xf20\x99\x00\x000\xfa" + // 0x30F23099: 0x000030FA
- "0\xfd0\x99\x00\x000\xfe" + // 0x30FD3099: 0x000030FE
- "\x10\x99\x10\xba\x00\x01\x10\x9a" + // 0x109910BA: 0x0001109A
- "\x10\x9b\x10\xba\x00\x01\x10\x9c" + // 0x109B10BA: 0x0001109C
- "\x10\xa5\x10\xba\x00\x01\x10\xab" + // 0x10A510BA: 0x000110AB
- "\x111\x11'\x00\x01\x11." + // 0x11311127: 0x0001112E
- "\x112\x11'\x00\x01\x11/" + // 0x11321127: 0x0001112F
- "\x13G\x13>\x00\x01\x13K" + // 0x1347133E: 0x0001134B
- "\x13G\x13W\x00\x01\x13L" + // 0x13471357: 0x0001134C
- "\x14\xb9\x14\xba\x00\x01\x14\xbb" + // 0x14B914BA: 0x000114BB
- "\x14\xb9\x14\xb0\x00\x01\x14\xbc" + // 0x14B914B0: 0x000114BC
- "\x14\xb9\x14\xbd\x00\x01\x14\xbe" + // 0x14B914BD: 0x000114BE
- "\x15\xb8\x15\xaf\x00\x01\x15\xba" + // 0x15B815AF: 0x000115BA
- "\x15\xb9\x15\xaf\x00\x01\x15\xbb" + // 0x15B915AF: 0x000115BB
- ""
- // Total size of tables: 53KB (54006 bytes)
diff --git a/vendor/golang.org/x/time/rate/rate.go b/vendor/golang.org/x/time/rate/rate.go
index 794b2e32..563270c1 100644
--- a/vendor/golang.org/x/time/rate/rate.go
+++ b/vendor/golang.org/x/time/rate/rate.go
@@ -195,7 +195,7 @@ func (r *Reservation) CancelAt(t time.Time) {
// update state
r.lim.last = t
r.lim.tokens = tokens
- if r.timeToAct == r.lim.lastEvent {
+ if r.timeToAct.Equal(r.lim.lastEvent) {
prevEvent := r.timeToAct.Add(r.limit.durationFromTokens(float64(-r.tokens)))
if !prevEvent.Before(t) {
r.lim.lastEvent = prevEvent
diff --git a/vendor/golang.org/x/time/rate/sometimes.go b/vendor/golang.org/x/time/rate/sometimes.go
index 6ba99ddb..9b839326 100644
--- a/vendor/golang.org/x/time/rate/sometimes.go
+++ b/vendor/golang.org/x/time/rate/sometimes.go
@@ -61,7 +61,9 @@ func (s *Sometimes) Do(f func()) {
(s.Every > 0 && s.count%s.Every == 0) ||
(s.Interval > 0 && time.Since(s.last) >= s.Interval) {
f()
- s.last = time.Now()
+ if s.Interval > 0 {
+ s.last = time.Now()
+ }
}
s.count++
}
diff --git a/vendor/google.golang.org/protobuf/encoding/protowire/wire.go b/vendor/google.golang.org/protobuf/encoding/protowire/wire.go
index e942bc98..743bfb81 100644
--- a/vendor/google.golang.org/protobuf/encoding/protowire/wire.go
+++ b/vendor/google.golang.org/protobuf/encoding/protowire/wire.go
@@ -371,7 +371,31 @@ func ConsumeVarint(b []byte) (v uint64, n int) {
func SizeVarint(v uint64) int {
// This computes 1 + (bits.Len64(v)-1)/7.
// 9/64 is a good enough approximation of 1/7
- return int(9*uint32(bits.Len64(v))+64) / 64
+ //
+ // The Go compiler can translate the bits.LeadingZeros64 call into the LZCNT
+ // instruction, which is very fast on CPUs from the last few years. The
+ // specific way of expressing the calculation matches C++ Protobuf, see
+ // https://godbolt.org/z/4P3h53oM4 for the C++ code and how gcc/clang
+ // optimize that function for GOAMD64=v1 and GOAMD64=v3 (-march=haswell).
+
+ // By OR'ing v with 1, we guarantee that v is never 0, without changing the
+ // result of SizeVarint. LZCNT is not defined for 0, meaning the compiler
+ // needs to add extra instructions to handle that case.
+ //
+ // The Go compiler currently (go1.24.4) does not make use of this knowledge.
+ // This opportunity (removing the XOR instruction, which handles the 0 case)
+ // results in a small (1%) performance win across CPU architectures.
+ //
+ // Independently of avoiding the 0 case, we need the v |= 1 line because
+ // it allows the Go compiler to eliminate an extra XCHGL barrier.
+ v |= 1
+
+ // It would be clearer to write log2value := 63 - uint32(...), but
+ // writing uint32(...) ^ 63 is much more efficient (-14% ARM, -20% Intel).
+ // Proof of identity for our value range [0..63]:
+ // https://go.dev/play/p/Pdn9hEWYakX
+ log2value := uint32(bits.LeadingZeros64(v)) ^ 63
+ return int((log2value*9 + (64 + 9)) / 64)
}
// AppendFixed32 appends v to b as a little-endian uint32.
diff --git a/vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb b/vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb
index 323829da..04696351 100644
Binary files a/vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb and b/vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb differ
diff --git a/vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go b/vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go
index 669133d0..c96e4483 100644
--- a/vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go
+++ b/vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go
@@ -32,7 +32,7 @@ var byteType = reflect.TypeOf(byte(0))
func Unmarshal(tag string, goType reflect.Type, evs protoreflect.EnumValueDescriptors) protoreflect.FieldDescriptor {
f := new(filedesc.Field)
f.L0.ParentFile = filedesc.SurrogateProto2
- f.L1.EditionFeatures = f.L0.ParentFile.L1.EditionFeatures
+ packed := false
for len(tag) > 0 {
i := strings.IndexByte(tag, ',')
if i < 0 {
@@ -108,7 +108,7 @@ func Unmarshal(tag string, goType reflect.Type, evs protoreflect.EnumValueDescri
f.L1.StringName.InitJSON(jsonName)
}
case s == "packed":
- f.L1.EditionFeatures.IsPacked = true
+ packed = true
case strings.HasPrefix(s, "def="):
// The default tag is special in that everything afterwards is the
// default regardless of the presence of commas.
@@ -121,6 +121,13 @@ func Unmarshal(tag string, goType reflect.Type, evs protoreflect.EnumValueDescri
tag = strings.TrimPrefix(tag[i:], ",")
}
+ // Update EditionFeatures after the loop and after we know whether this is
+ // a proto2 or proto3 field.
+ f.L1.EditionFeatures = f.L0.ParentFile.L1.EditionFeatures
+ if packed {
+ f.L1.EditionFeatures.IsPacked = true
+ }
+
// The generator uses the group message name instead of the field name.
// We obtain the real field name by lowercasing the group name.
if f.L1.Kind == protoreflect.GroupKind {
diff --git a/vendor/google.golang.org/protobuf/internal/encoding/text/decode.go b/vendor/google.golang.org/protobuf/internal/encoding/text/decode.go
index 099b2bf4..9aa7a9bb 100644
--- a/vendor/google.golang.org/protobuf/internal/encoding/text/decode.go
+++ b/vendor/google.golang.org/protobuf/internal/encoding/text/decode.go
@@ -424,27 +424,34 @@ func (d *Decoder) parseFieldName() (tok Token, err error) {
return Token{}, d.newSyntaxError("invalid field name: %s", errId(d.in))
}
-// parseTypeName parses Any type URL or extension field name. The name is
-// enclosed in [ and ] characters. The C++ parser does not handle many legal URL
-// strings. This implementation is more liberal and allows for the pattern
-// ^[-_a-zA-Z0-9]+([./][-_a-zA-Z0-9]+)*`). Whitespaces and comments are allowed
-// in between [ ], '.', '/' and the sub names.
+// parseTypeName parses an Any type URL or an extension field name. The name is
+// enclosed in [ and ] characters. We allow almost arbitrary type URL prefixes,
+// closely following the text-format spec [1,2]. We implement "ExtensionName |
+// AnyName" as follows (with some exceptions for backwards compatibility):
+//
+// char = [-_a-zA-Z0-9]
+// url_char = char | [.~!$&'()*+,;=] | "%", hex, hex
+//
+// Ident = char, { char }
+// TypeName = Ident, { ".", Ident } ;
+// UrlPrefix = url_char, { url_char | "/" } ;
+// ExtensionName = "[", TypeName, "]" ;
+// AnyName = "[", UrlPrefix, "/", TypeName, "]" ;
+//
+// Additionally, we allow arbitrary whitespace and comments between [ and ].
+//
+// [1] https://protobuf.dev/reference/protobuf/textformat-spec/#characters
+// [2] https://protobuf.dev/reference/protobuf/textformat-spec/#field-names
func (d *Decoder) parseTypeName() (Token, error) {
- startPos := len(d.orig) - len(d.in)
// Use alias s to advance first in order to use d.in for error handling.
- // Caller already checks for [ as first character.
+ // Caller already checks for [ as first character (d.in[0] == '[').
s := consume(d.in[1:], 0)
if len(s) == 0 {
return Token{}, ErrUnexpectedEOF
}
+ // Collect everything between [ and ] in name.
var name []byte
- for len(s) > 0 && isTypeNameChar(s[0]) {
- name = append(name, s[0])
- s = s[1:]
- }
- s = consume(s, 0)
-
var closed bool
for len(s) > 0 && !closed {
switch {
@@ -452,23 +459,20 @@ func (d *Decoder) parseTypeName() (Token, error) {
s = s[1:]
closed = true
- case s[0] == '/', s[0] == '.':
- if len(name) > 0 && (name[len(name)-1] == '/' || name[len(name)-1] == '.') {
- return Token{}, d.newSyntaxError("invalid type URL/extension field name: %s",
- d.orig[startPos:len(d.orig)-len(s)+1])
- }
+ case s[0] == '/' || isTypeNameChar(s[0]) || isUrlExtraChar(s[0]):
name = append(name, s[0])
- s = s[1:]
- s = consume(s, 0)
- for len(s) > 0 && isTypeNameChar(s[0]) {
- name = append(name, s[0])
- s = s[1:]
+ s = consume(s[1:], 0)
+
+ // URL percent-encoded chars
+ case s[0] == '%':
+ if len(s) < 3 || !isHexChar(s[1]) || !isHexChar(s[2]) {
+ return Token{}, d.parseTypeNameError(s, 3)
}
- s = consume(s, 0)
+ name = append(name, s[0], s[1], s[2])
+ s = consume(s[3:], 0)
default:
- return Token{}, d.newSyntaxError(
- "invalid type URL/extension field name: %s", d.orig[startPos:len(d.orig)-len(s)+1])
+ return Token{}, d.parseTypeNameError(s, 1)
}
}
@@ -476,15 +480,38 @@ func (d *Decoder) parseTypeName() (Token, error) {
return Token{}, ErrUnexpectedEOF
}
- // First character cannot be '.'. Last character cannot be '.' or '/'.
- size := len(name)
- if size == 0 || name[0] == '.' || name[size-1] == '.' || name[size-1] == '/' {
- return Token{}, d.newSyntaxError("invalid type URL/extension field name: %s",
- d.orig[startPos:len(d.orig)-len(s)])
+ // Split collected name on last '/' into urlPrefix and typeName (if '/' is
+ // present).
+ typeName := name
+ if i := bytes.LastIndexByte(name, '/'); i != -1 {
+ urlPrefix := name[:i]
+ typeName = name[i+1:]
+
+ // urlPrefix may be empty (for backwards compatibility).
+ // If non-empty, it must not start with '/'.
+ if len(urlPrefix) > 0 && urlPrefix[0] == '/' {
+ return Token{}, d.parseTypeNameError(s, 0)
+ }
}
+ // typeName must not be empty (note: "" splits to [""]) and all identifier
+ // parts must not be empty.
+ for _, ident := range bytes.Split(typeName, []byte{'.'}) {
+ if len(ident) == 0 {
+ return Token{}, d.parseTypeNameError(s, 0)
+ }
+ }
+
+ // typeName must not contain any percent-encoded or special URL chars.
+ for _, b := range typeName {
+ if b == '%' || (b != '.' && isUrlExtraChar(b)) {
+ return Token{}, d.parseTypeNameError(s, 0)
+ }
+ }
+
+ startPos := len(d.orig) - len(d.in)
+ endPos := len(d.orig) - len(s)
d.in = s
- endPos := len(d.orig) - len(d.in)
d.consume(0)
return Token{
@@ -496,16 +523,32 @@ func (d *Decoder) parseTypeName() (Token, error) {
}, nil
}
+func (d *Decoder) parseTypeNameError(s []byte, numUnconsumedChars int) error {
+ return d.newSyntaxError(
+ "invalid type URL/extension field name: %s",
+ d.in[:len(d.in)-len(s)+min(numUnconsumedChars, len(s))],
+ )
+}
+
+func isHexChar(b byte) bool {
+ return ('0' <= b && b <= '9') ||
+ ('a' <= b && b <= 'f') ||
+ ('A' <= b && b <= 'F')
+}
+
func isTypeNameChar(b byte) bool {
- return (b == '-' || b == '_' ||
+ return b == '-' || b == '_' ||
('0' <= b && b <= '9') ||
('a' <= b && b <= 'z') ||
- ('A' <= b && b <= 'Z'))
+ ('A' <= b && b <= 'Z')
}
-func isWhiteSpace(b byte) bool {
+// isUrlExtraChar complements isTypeNameChar with extra characters that we allow
+// in URLs but not in type names. Note that '/' is not included so that it can
+// be treated specially.
+func isUrlExtraChar(b byte) bool {
switch b {
- case ' ', '\n', '\r', '\t':
+ case '.', '~', '!', '$', '&', '(', ')', '*', '+', ',', ';', '=':
return true
default:
return false
diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/desc.go b/vendor/google.golang.org/protobuf/internal/filedesc/desc.go
index 688aabe4..c775e583 100644
--- a/vendor/google.golang.org/protobuf/internal/filedesc/desc.go
+++ b/vendor/google.golang.org/protobuf/internal/filedesc/desc.go
@@ -32,6 +32,7 @@ const (
EditionProto3 Edition = 999
Edition2023 Edition = 1000
Edition2024 Edition = 1001
+ EditionUnstable Edition = 9999
EditionUnsupported Edition = 100000
)
@@ -72,9 +73,10 @@ type (
EditionFeatures EditionFeatures
}
FileL2 struct {
- Options func() protoreflect.ProtoMessage
- Imports FileImports
- Locations SourceLocations
+ Options func() protoreflect.ProtoMessage
+ Imports FileImports
+ OptionImports func() protoreflect.FileImports
+ Locations SourceLocations
}
// EditionFeatures is a frequently-instantiated struct, so please take care
@@ -126,12 +128,9 @@ func (fd *File) ParentFile() protoreflect.FileDescriptor { return fd }
func (fd *File) Parent() protoreflect.Descriptor { return nil }
func (fd *File) Index() int { return 0 }
func (fd *File) Syntax() protoreflect.Syntax { return fd.L1.Syntax }
-
-// Not exported and just used to reconstruct the original FileDescriptor proto
-func (fd *File) Edition() int32 { return int32(fd.L1.Edition) }
-func (fd *File) Name() protoreflect.Name { return fd.L1.Package.Name() }
-func (fd *File) FullName() protoreflect.FullName { return fd.L1.Package }
-func (fd *File) IsPlaceholder() bool { return false }
+func (fd *File) Name() protoreflect.Name { return fd.L1.Package.Name() }
+func (fd *File) FullName() protoreflect.FullName { return fd.L1.Package }
+func (fd *File) IsPlaceholder() bool { return false }
func (fd *File) Options() protoreflect.ProtoMessage {
if f := fd.lazyInit().Options; f != nil {
return f()
@@ -150,6 +149,16 @@ func (fd *File) Format(s fmt.State, r rune) { descfmt.FormatD
func (fd *File) ProtoType(protoreflect.FileDescriptor) {}
func (fd *File) ProtoInternal(pragma.DoNotImplement) {}
+// The next two are not part of the FileDescriptor interface. They are just used to reconstruct
+// the original FileDescriptor proto.
+func (fd *File) Edition() int32 { return int32(fd.L1.Edition) }
+func (fd *File) OptionImports() protoreflect.FileImports {
+ if f := fd.lazyInit().OptionImports; f != nil {
+ return f()
+ }
+ return emptyFiles
+}
+
func (fd *File) lazyInit() *FileL2 {
if atomic.LoadUint32(&fd.once) == 0 {
fd.lazyInitOnce()
@@ -182,9 +191,9 @@ type (
L2 *EnumL2 // protected by fileDesc.once
}
EnumL1 struct {
- eagerValues bool // controls whether EnumL2.Values is already populated
-
EditionFeatures EditionFeatures
+ Visibility int32
+ eagerValues bool // controls whether EnumL2.Values is already populated
}
EnumL2 struct {
Options func() protoreflect.ProtoMessage
@@ -219,6 +228,11 @@ func (ed *Enum) ReservedNames() protoreflect.Names { return &ed.lazyInit()
func (ed *Enum) ReservedRanges() protoreflect.EnumRanges { return &ed.lazyInit().ReservedRanges }
func (ed *Enum) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, ed) }
func (ed *Enum) ProtoType(protoreflect.EnumDescriptor) {}
+
+// This is not part of the EnumDescriptor interface. It is just used to reconstruct
+// the original FileDescriptor proto.
+func (ed *Enum) Visibility() int32 { return ed.L1.Visibility }
+
func (ed *Enum) lazyInit() *EnumL2 {
ed.L0.ParentFile.lazyInit() // implicitly initializes L2
return ed.L2
@@ -244,13 +258,13 @@ type (
L2 *MessageL2 // protected by fileDesc.once
}
MessageL1 struct {
- Enums Enums
- Messages Messages
- Extensions Extensions
- IsMapEntry bool // promoted from google.protobuf.MessageOptions
- IsMessageSet bool // promoted from google.protobuf.MessageOptions
-
+ Enums Enums
+ Messages Messages
+ Extensions Extensions
EditionFeatures EditionFeatures
+ Visibility int32
+ IsMapEntry bool // promoted from google.protobuf.MessageOptions
+ IsMessageSet bool // promoted from google.protobuf.MessageOptions
}
MessageL2 struct {
Options func() protoreflect.ProtoMessage
@@ -319,6 +333,11 @@ func (md *Message) Messages() protoreflect.MessageDescriptors { return &md.L
func (md *Message) Extensions() protoreflect.ExtensionDescriptors { return &md.L1.Extensions }
func (md *Message) ProtoType(protoreflect.MessageDescriptor) {}
func (md *Message) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, md) }
+
+// This is not part of the MessageDescriptor interface. It is just used to reconstruct
+// the original FileDescriptor proto.
+func (md *Message) Visibility() int32 { return md.L1.Visibility }
+
func (md *Message) lazyInit() *MessageL2 {
md.L0.ParentFile.lazyInit() // implicitly initializes L2
return md.L2
diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go b/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go
index d2f54949..e91860f5 100644
--- a/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go
+++ b/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go
@@ -284,6 +284,13 @@ func (ed *Enum) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd protorefl
case genid.EnumDescriptorProto_Value_field_number:
numValues++
}
+ case protowire.VarintType:
+ v, m := protowire.ConsumeVarint(b)
+ b = b[m:]
+ switch num {
+ case genid.EnumDescriptorProto_Visibility_field_number:
+ ed.L1.Visibility = int32(v)
+ }
default:
m := protowire.ConsumeFieldValue(num, typ, b)
b = b[m:]
@@ -365,6 +372,13 @@ func (md *Message) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd protor
md.unmarshalSeedOptions(v)
}
prevField = num
+ case protowire.VarintType:
+ v, m := protowire.ConsumeVarint(b)
+ b = b[m:]
+ switch num {
+ case genid.DescriptorProto_Visibility_field_number:
+ md.L1.Visibility = int32(v)
+ }
default:
m := protowire.ConsumeFieldValue(num, typ, b)
b = b[m:]
diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go b/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go
index d4c94458..78f02b1b 100644
--- a/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go
+++ b/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go
@@ -134,6 +134,7 @@ func (fd *File) unmarshalFull(b []byte) {
var enumIdx, messageIdx, extensionIdx, serviceIdx int
var rawOptions []byte
+ var optionImports []string
fd.L2 = new(FileL2)
for len(b) > 0 {
num, typ, n := protowire.ConsumeTag(b)
@@ -157,6 +158,8 @@ func (fd *File) unmarshalFull(b []byte) {
imp = PlaceholderFile(path)
}
fd.L2.Imports = append(fd.L2.Imports, protoreflect.FileImport{FileDescriptor: imp})
+ case genid.FileDescriptorProto_OptionDependency_field_number:
+ optionImports = append(optionImports, sb.MakeString(v))
case genid.FileDescriptorProto_EnumType_field_number:
fd.L1.Enums.List[enumIdx].unmarshalFull(v, sb)
enumIdx++
@@ -178,6 +181,23 @@ func (fd *File) unmarshalFull(b []byte) {
}
}
fd.L2.Options = fd.builder.optionsUnmarshaler(&descopts.File, rawOptions)
+ if len(optionImports) > 0 {
+ var imps FileImports
+ var once sync.Once
+ fd.L2.OptionImports = func() protoreflect.FileImports {
+ once.Do(func() {
+ imps = make(FileImports, len(optionImports))
+ for i, path := range optionImports {
+ imp, _ := fd.builder.FileRegistry.FindFileByPath(path)
+ if imp == nil {
+ imp = PlaceholderFile(path)
+ }
+ imps[i] = protoreflect.FileImport{FileDescriptor: imp}
+ }
+ })
+ return &imps
+ }
+ }
}
func (ed *Enum) unmarshalFull(b []byte, sb *strs.Builder) {
@@ -310,7 +330,6 @@ func (md *Message) unmarshalFull(b []byte, sb *strs.Builder) {
md.L1.Extensions.List[extensionIdx].unmarshalFull(v, sb)
extensionIdx++
case genid.DescriptorProto_Options_field_number:
- md.unmarshalOptions(v)
rawOptions = appendOptions(rawOptions, v)
}
default:
@@ -336,27 +355,6 @@ func (md *Message) unmarshalFull(b []byte, sb *strs.Builder) {
md.L2.Options = md.L0.ParentFile.builder.optionsUnmarshaler(&descopts.Message, rawOptions)
}
-func (md *Message) unmarshalOptions(b []byte) {
- for len(b) > 0 {
- num, typ, n := protowire.ConsumeTag(b)
- b = b[n:]
- switch typ {
- case protowire.VarintType:
- v, m := protowire.ConsumeVarint(b)
- b = b[m:]
- switch num {
- case genid.MessageOptions_MapEntry_field_number:
- md.L1.IsMapEntry = protowire.DecodeBool(v)
- case genid.MessageOptions_MessageSetWireFormat_field_number:
- md.L1.IsMessageSet = protowire.DecodeBool(v)
- }
- default:
- m := protowire.ConsumeFieldValue(num, typ, b)
- b = b[m:]
- }
- }
-}
-
func unmarshalMessageReservedRange(b []byte) (r [2]protoreflect.FieldNumber) {
for len(b) > 0 {
num, typ, n := protowire.ConsumeTag(b)
diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/editions.go b/vendor/google.golang.org/protobuf/internal/filedesc/editions.go
index b08b7183..66ba9068 100644
--- a/vendor/google.golang.org/protobuf/internal/filedesc/editions.go
+++ b/vendor/google.golang.org/protobuf/internal/filedesc/editions.go
@@ -13,8 +13,10 @@ import (
"google.golang.org/protobuf/reflect/protoreflect"
)
-var defaultsCache = make(map[Edition]EditionFeatures)
-var defaultsKeys = []Edition{}
+var (
+ defaultsCache = make(map[Edition]EditionFeatures)
+ defaultsKeys = []Edition{}
+)
func init() {
unmarshalEditionDefaults(editiondefaults.Defaults)
@@ -41,7 +43,7 @@ func unmarshalGoFeature(b []byte, parent EditionFeatures) EditionFeatures {
b = b[m:]
parent.StripEnumPrefix = int(v)
default:
- panic(fmt.Sprintf("unkown field number %d while unmarshalling GoFeatures", num))
+ panic(fmt.Sprintf("unknown field number %d while unmarshalling GoFeatures", num))
}
}
return parent
@@ -72,8 +74,11 @@ func unmarshalFeatureSet(b []byte, parent EditionFeatures) EditionFeatures {
case genid.FeatureSet_EnforceNamingStyle_field_number:
// EnforceNamingStyle is enforced in protoc, languages other than C++
// are not supposed to do anything with this feature.
+ case genid.FeatureSet_DefaultSymbolVisibility_field_number:
+ // DefaultSymbolVisibility is enforced in protoc, runtimes should not
+ // inspect this value.
default:
- panic(fmt.Sprintf("unkown field number %d while unmarshalling FeatureSet", num))
+ panic(fmt.Sprintf("unknown field number %d while unmarshalling FeatureSet", num))
}
case protowire.BytesType:
v, m := protowire.ConsumeBytes(b)
@@ -147,7 +152,7 @@ func unmarshalEditionDefaults(b []byte) {
_, m := protowire.ConsumeVarint(b)
b = b[m:]
default:
- panic(fmt.Sprintf("unkown field number %d while unmarshalling EditionDefault", num))
+ panic(fmt.Sprintf("unknown field number %d while unmarshalling EditionDefault", num))
}
}
}
diff --git a/vendor/google.golang.org/protobuf/internal/filedesc/presence.go b/vendor/google.golang.org/protobuf/internal/filedesc/presence.go
new file mode 100644
index 00000000..a12ec979
--- /dev/null
+++ b/vendor/google.golang.org/protobuf/internal/filedesc/presence.go
@@ -0,0 +1,33 @@
+// Copyright 2025 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 filedesc
+
+import "google.golang.org/protobuf/reflect/protoreflect"
+
+// UsePresenceForField reports whether the presence bitmap should be used for
+// the specified field.
+func UsePresenceForField(fd protoreflect.FieldDescriptor) (usePresence, canBeLazy bool) {
+ switch {
+ case fd.ContainingOneof() != nil && !fd.ContainingOneof().IsSynthetic():
+ // Oneof fields never use the presence bitmap.
+ //
+ // Synthetic oneofs are an exception: Those are used to implement proto3
+ // optional fields and hence should follow non-oneof field semantics.
+ return false, false
+
+ case fd.IsMap():
+ // Map-typed fields never use the presence bitmap.
+ return false, false
+
+ case fd.Kind() == protoreflect.MessageKind || fd.Kind() == protoreflect.GroupKind:
+ // Lazy fields always use the presence bitmap (only messages can be lazy).
+ isLazy := fd.(interface{ IsLazy() bool }).IsLazy()
+ return isLazy, isLazy
+
+ default:
+ // If the field has presence, use the presence bitmap.
+ return fd.HasPresence(), false
+ }
+}
diff --git a/vendor/google.golang.org/protobuf/internal/genid/api_gen.go b/vendor/google.golang.org/protobuf/internal/genid/api_gen.go
index df8f9185..3ceb6fa7 100644
--- a/vendor/google.golang.org/protobuf/internal/genid/api_gen.go
+++ b/vendor/google.golang.org/protobuf/internal/genid/api_gen.go
@@ -27,6 +27,7 @@ const (
Api_SourceContext_field_name protoreflect.Name = "source_context"
Api_Mixins_field_name protoreflect.Name = "mixins"
Api_Syntax_field_name protoreflect.Name = "syntax"
+ Api_Edition_field_name protoreflect.Name = "edition"
Api_Name_field_fullname protoreflect.FullName = "google.protobuf.Api.name"
Api_Methods_field_fullname protoreflect.FullName = "google.protobuf.Api.methods"
@@ -35,6 +36,7 @@ const (
Api_SourceContext_field_fullname protoreflect.FullName = "google.protobuf.Api.source_context"
Api_Mixins_field_fullname protoreflect.FullName = "google.protobuf.Api.mixins"
Api_Syntax_field_fullname protoreflect.FullName = "google.protobuf.Api.syntax"
+ Api_Edition_field_fullname protoreflect.FullName = "google.protobuf.Api.edition"
)
// Field numbers for google.protobuf.Api.
@@ -46,6 +48,7 @@ const (
Api_SourceContext_field_number protoreflect.FieldNumber = 5
Api_Mixins_field_number protoreflect.FieldNumber = 6
Api_Syntax_field_number protoreflect.FieldNumber = 7
+ Api_Edition_field_number protoreflect.FieldNumber = 8
)
// Names for google.protobuf.Method.
@@ -63,6 +66,7 @@ const (
Method_ResponseStreaming_field_name protoreflect.Name = "response_streaming"
Method_Options_field_name protoreflect.Name = "options"
Method_Syntax_field_name protoreflect.Name = "syntax"
+ Method_Edition_field_name protoreflect.Name = "edition"
Method_Name_field_fullname protoreflect.FullName = "google.protobuf.Method.name"
Method_RequestTypeUrl_field_fullname protoreflect.FullName = "google.protobuf.Method.request_type_url"
@@ -71,6 +75,7 @@ const (
Method_ResponseStreaming_field_fullname protoreflect.FullName = "google.protobuf.Method.response_streaming"
Method_Options_field_fullname protoreflect.FullName = "google.protobuf.Method.options"
Method_Syntax_field_fullname protoreflect.FullName = "google.protobuf.Method.syntax"
+ Method_Edition_field_fullname protoreflect.FullName = "google.protobuf.Method.edition"
)
// Field numbers for google.protobuf.Method.
@@ -82,6 +87,7 @@ const (
Method_ResponseStreaming_field_number protoreflect.FieldNumber = 5
Method_Options_field_number protoreflect.FieldNumber = 6
Method_Syntax_field_number protoreflect.FieldNumber = 7
+ Method_Edition_field_number protoreflect.FieldNumber = 8
)
// Names for google.protobuf.Mixin.
diff --git a/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go b/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go
index 39524782..65aaf4d2 100644
--- a/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go
+++ b/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go
@@ -26,6 +26,7 @@ const (
Edition_EDITION_PROTO3_enum_value = 999
Edition_EDITION_2023_enum_value = 1000
Edition_EDITION_2024_enum_value = 1001
+ Edition_EDITION_UNSTABLE_enum_value = 9999
Edition_EDITION_1_TEST_ONLY_enum_value = 1
Edition_EDITION_2_TEST_ONLY_enum_value = 2
Edition_EDITION_99997_TEST_ONLY_enum_value = 99997
@@ -34,6 +35,19 @@ const (
Edition_EDITION_MAX_enum_value = 2147483647
)
+// Full and short names for google.protobuf.SymbolVisibility.
+const (
+ SymbolVisibility_enum_fullname = "google.protobuf.SymbolVisibility"
+ SymbolVisibility_enum_name = "SymbolVisibility"
+)
+
+// Enum values for google.protobuf.SymbolVisibility.
+const (
+ SymbolVisibility_VISIBILITY_UNSET_enum_value = 0
+ SymbolVisibility_VISIBILITY_LOCAL_enum_value = 1
+ SymbolVisibility_VISIBILITY_EXPORT_enum_value = 2
+)
+
// Names for google.protobuf.FileDescriptorSet.
const (
FileDescriptorSet_message_name protoreflect.Name = "FileDescriptorSet"
@@ -65,6 +79,7 @@ const (
FileDescriptorProto_Dependency_field_name protoreflect.Name = "dependency"
FileDescriptorProto_PublicDependency_field_name protoreflect.Name = "public_dependency"
FileDescriptorProto_WeakDependency_field_name protoreflect.Name = "weak_dependency"
+ FileDescriptorProto_OptionDependency_field_name protoreflect.Name = "option_dependency"
FileDescriptorProto_MessageType_field_name protoreflect.Name = "message_type"
FileDescriptorProto_EnumType_field_name protoreflect.Name = "enum_type"
FileDescriptorProto_Service_field_name protoreflect.Name = "service"
@@ -79,6 +94,7 @@ const (
FileDescriptorProto_Dependency_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.dependency"
FileDescriptorProto_PublicDependency_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.public_dependency"
FileDescriptorProto_WeakDependency_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.weak_dependency"
+ FileDescriptorProto_OptionDependency_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.option_dependency"
FileDescriptorProto_MessageType_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.message_type"
FileDescriptorProto_EnumType_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.enum_type"
FileDescriptorProto_Service_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.service"
@@ -96,6 +112,7 @@ const (
FileDescriptorProto_Dependency_field_number protoreflect.FieldNumber = 3
FileDescriptorProto_PublicDependency_field_number protoreflect.FieldNumber = 10
FileDescriptorProto_WeakDependency_field_number protoreflect.FieldNumber = 11
+ FileDescriptorProto_OptionDependency_field_number protoreflect.FieldNumber = 15
FileDescriptorProto_MessageType_field_number protoreflect.FieldNumber = 4
FileDescriptorProto_EnumType_field_number protoreflect.FieldNumber = 5
FileDescriptorProto_Service_field_number protoreflect.FieldNumber = 6
@@ -124,6 +141,7 @@ const (
DescriptorProto_Options_field_name protoreflect.Name = "options"
DescriptorProto_ReservedRange_field_name protoreflect.Name = "reserved_range"
DescriptorProto_ReservedName_field_name protoreflect.Name = "reserved_name"
+ DescriptorProto_Visibility_field_name protoreflect.Name = "visibility"
DescriptorProto_Name_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.name"
DescriptorProto_Field_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.field"
@@ -135,6 +153,7 @@ const (
DescriptorProto_Options_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.options"
DescriptorProto_ReservedRange_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.reserved_range"
DescriptorProto_ReservedName_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.reserved_name"
+ DescriptorProto_Visibility_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.visibility"
)
// Field numbers for google.protobuf.DescriptorProto.
@@ -149,6 +168,7 @@ const (
DescriptorProto_Options_field_number protoreflect.FieldNumber = 7
DescriptorProto_ReservedRange_field_number protoreflect.FieldNumber = 9
DescriptorProto_ReservedName_field_number protoreflect.FieldNumber = 10
+ DescriptorProto_Visibility_field_number protoreflect.FieldNumber = 11
)
// Names for google.protobuf.DescriptorProto.ExtensionRange.
@@ -388,12 +408,14 @@ const (
EnumDescriptorProto_Options_field_name protoreflect.Name = "options"
EnumDescriptorProto_ReservedRange_field_name protoreflect.Name = "reserved_range"
EnumDescriptorProto_ReservedName_field_name protoreflect.Name = "reserved_name"
+ EnumDescriptorProto_Visibility_field_name protoreflect.Name = "visibility"
EnumDescriptorProto_Name_field_fullname protoreflect.FullName = "google.protobuf.EnumDescriptorProto.name"
EnumDescriptorProto_Value_field_fullname protoreflect.FullName = "google.protobuf.EnumDescriptorProto.value"
EnumDescriptorProto_Options_field_fullname protoreflect.FullName = "google.protobuf.EnumDescriptorProto.options"
EnumDescriptorProto_ReservedRange_field_fullname protoreflect.FullName = "google.protobuf.EnumDescriptorProto.reserved_range"
EnumDescriptorProto_ReservedName_field_fullname protoreflect.FullName = "google.protobuf.EnumDescriptorProto.reserved_name"
+ EnumDescriptorProto_Visibility_field_fullname protoreflect.FullName = "google.protobuf.EnumDescriptorProto.visibility"
)
// Field numbers for google.protobuf.EnumDescriptorProto.
@@ -403,6 +425,7 @@ const (
EnumDescriptorProto_Options_field_number protoreflect.FieldNumber = 3
EnumDescriptorProto_ReservedRange_field_number protoreflect.FieldNumber = 4
EnumDescriptorProto_ReservedName_field_number protoreflect.FieldNumber = 5
+ EnumDescriptorProto_Visibility_field_number protoreflect.FieldNumber = 6
)
// Names for google.protobuf.EnumDescriptorProto.EnumReservedRange.
@@ -1008,32 +1031,35 @@ const (
// Field names for google.protobuf.FeatureSet.
const (
- FeatureSet_FieldPresence_field_name protoreflect.Name = "field_presence"
- FeatureSet_EnumType_field_name protoreflect.Name = "enum_type"
- FeatureSet_RepeatedFieldEncoding_field_name protoreflect.Name = "repeated_field_encoding"
- FeatureSet_Utf8Validation_field_name protoreflect.Name = "utf8_validation"
- FeatureSet_MessageEncoding_field_name protoreflect.Name = "message_encoding"
- FeatureSet_JsonFormat_field_name protoreflect.Name = "json_format"
- FeatureSet_EnforceNamingStyle_field_name protoreflect.Name = "enforce_naming_style"
-
- FeatureSet_FieldPresence_field_fullname protoreflect.FullName = "google.protobuf.FeatureSet.field_presence"
- FeatureSet_EnumType_field_fullname protoreflect.FullName = "google.protobuf.FeatureSet.enum_type"
- FeatureSet_RepeatedFieldEncoding_field_fullname protoreflect.FullName = "google.protobuf.FeatureSet.repeated_field_encoding"
- FeatureSet_Utf8Validation_field_fullname protoreflect.FullName = "google.protobuf.FeatureSet.utf8_validation"
- FeatureSet_MessageEncoding_field_fullname protoreflect.FullName = "google.protobuf.FeatureSet.message_encoding"
- FeatureSet_JsonFormat_field_fullname protoreflect.FullName = "google.protobuf.FeatureSet.json_format"
- FeatureSet_EnforceNamingStyle_field_fullname protoreflect.FullName = "google.protobuf.FeatureSet.enforce_naming_style"
+ FeatureSet_FieldPresence_field_name protoreflect.Name = "field_presence"
+ FeatureSet_EnumType_field_name protoreflect.Name = "enum_type"
+ FeatureSet_RepeatedFieldEncoding_field_name protoreflect.Name = "repeated_field_encoding"
+ FeatureSet_Utf8Validation_field_name protoreflect.Name = "utf8_validation"
+ FeatureSet_MessageEncoding_field_name protoreflect.Name = "message_encoding"
+ FeatureSet_JsonFormat_field_name protoreflect.Name = "json_format"
+ FeatureSet_EnforceNamingStyle_field_name protoreflect.Name = "enforce_naming_style"
+ FeatureSet_DefaultSymbolVisibility_field_name protoreflect.Name = "default_symbol_visibility"
+
+ FeatureSet_FieldPresence_field_fullname protoreflect.FullName = "google.protobuf.FeatureSet.field_presence"
+ FeatureSet_EnumType_field_fullname protoreflect.FullName = "google.protobuf.FeatureSet.enum_type"
+ FeatureSet_RepeatedFieldEncoding_field_fullname protoreflect.FullName = "google.protobuf.FeatureSet.repeated_field_encoding"
+ FeatureSet_Utf8Validation_field_fullname protoreflect.FullName = "google.protobuf.FeatureSet.utf8_validation"
+ FeatureSet_MessageEncoding_field_fullname protoreflect.FullName = "google.protobuf.FeatureSet.message_encoding"
+ FeatureSet_JsonFormat_field_fullname protoreflect.FullName = "google.protobuf.FeatureSet.json_format"
+ FeatureSet_EnforceNamingStyle_field_fullname protoreflect.FullName = "google.protobuf.FeatureSet.enforce_naming_style"
+ FeatureSet_DefaultSymbolVisibility_field_fullname protoreflect.FullName = "google.protobuf.FeatureSet.default_symbol_visibility"
)
// Field numbers for google.protobuf.FeatureSet.
const (
- FeatureSet_FieldPresence_field_number protoreflect.FieldNumber = 1
- FeatureSet_EnumType_field_number protoreflect.FieldNumber = 2
- FeatureSet_RepeatedFieldEncoding_field_number protoreflect.FieldNumber = 3
- FeatureSet_Utf8Validation_field_number protoreflect.FieldNumber = 4
- FeatureSet_MessageEncoding_field_number protoreflect.FieldNumber = 5
- FeatureSet_JsonFormat_field_number protoreflect.FieldNumber = 6
- FeatureSet_EnforceNamingStyle_field_number protoreflect.FieldNumber = 7
+ FeatureSet_FieldPresence_field_number protoreflect.FieldNumber = 1
+ FeatureSet_EnumType_field_number protoreflect.FieldNumber = 2
+ FeatureSet_RepeatedFieldEncoding_field_number protoreflect.FieldNumber = 3
+ FeatureSet_Utf8Validation_field_number protoreflect.FieldNumber = 4
+ FeatureSet_MessageEncoding_field_number protoreflect.FieldNumber = 5
+ FeatureSet_JsonFormat_field_number protoreflect.FieldNumber = 6
+ FeatureSet_EnforceNamingStyle_field_number protoreflect.FieldNumber = 7
+ FeatureSet_DefaultSymbolVisibility_field_number protoreflect.FieldNumber = 8
)
// Full and short names for google.protobuf.FeatureSet.FieldPresence.
@@ -1128,6 +1154,27 @@ const (
FeatureSet_STYLE_LEGACY_enum_value = 2
)
+// Names for google.protobuf.FeatureSet.VisibilityFeature.
+const (
+ FeatureSet_VisibilityFeature_message_name protoreflect.Name = "VisibilityFeature"
+ FeatureSet_VisibilityFeature_message_fullname protoreflect.FullName = "google.protobuf.FeatureSet.VisibilityFeature"
+)
+
+// Full and short names for google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility.
+const (
+ FeatureSet_VisibilityFeature_DefaultSymbolVisibility_enum_fullname = "google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility"
+ FeatureSet_VisibilityFeature_DefaultSymbolVisibility_enum_name = "DefaultSymbolVisibility"
+)
+
+// Enum values for google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility.
+const (
+ FeatureSet_VisibilityFeature_DEFAULT_SYMBOL_VISIBILITY_UNKNOWN_enum_value = 0
+ FeatureSet_VisibilityFeature_EXPORT_ALL_enum_value = 1
+ FeatureSet_VisibilityFeature_EXPORT_TOP_LEVEL_enum_value = 2
+ FeatureSet_VisibilityFeature_LOCAL_ALL_enum_value = 3
+ FeatureSet_VisibilityFeature_STRICT_enum_value = 4
+)
+
// Names for google.protobuf.FeatureSetDefaults.
const (
FeatureSetDefaults_message_name protoreflect.Name = "FeatureSetDefaults"
diff --git a/vendor/google.golang.org/protobuf/internal/impl/codec_map.go b/vendor/google.golang.org/protobuf/internal/impl/codec_map.go
index 229c6980..4a3bf393 100644
--- a/vendor/google.golang.org/protobuf/internal/impl/codec_map.go
+++ b/vendor/google.golang.org/protobuf/internal/impl/codec_map.go
@@ -113,6 +113,9 @@ func sizeMap(mapv reflect.Value, mapi *mapInfo, f *coderFieldInfo, opts marshalO
}
func consumeMap(b []byte, mapv reflect.Value, wtyp protowire.Type, mapi *mapInfo, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {
+ if opts.depth--; opts.depth < 0 {
+ return out, errRecursionDepth
+ }
if wtyp != protowire.BytesType {
return out, errUnknown
}
@@ -170,6 +173,9 @@ func consumeMap(b []byte, mapv reflect.Value, wtyp protowire.Type, mapi *mapInfo
}
func consumeMapOfMessage(b []byte, mapv reflect.Value, wtyp protowire.Type, mapi *mapInfo, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) {
+ if opts.depth--; opts.depth < 0 {
+ return out, errRecursionDepth
+ }
if wtyp != protowire.BytesType {
return out, errUnknown
}
diff --git a/vendor/google.golang.org/protobuf/internal/impl/codec_message_opaque.go b/vendor/google.golang.org/protobuf/internal/impl/codec_message_opaque.go
index 41c1f74e..bdad12a9 100644
--- a/vendor/google.golang.org/protobuf/internal/impl/codec_message_opaque.go
+++ b/vendor/google.golang.org/protobuf/internal/impl/codec_message_opaque.go
@@ -11,6 +11,7 @@ import (
"google.golang.org/protobuf/encoding/protowire"
"google.golang.org/protobuf/internal/encoding/messageset"
+ "google.golang.org/protobuf/internal/filedesc"
"google.golang.org/protobuf/internal/order"
"google.golang.org/protobuf/reflect/protoreflect"
piface "google.golang.org/protobuf/runtime/protoiface"
@@ -80,7 +81,7 @@ func (mi *MessageInfo) makeOpaqueCoderMethods(t reflect.Type, si opaqueStructInf
// permit us to skip over definitely-unset fields at marshal time.
var hasPresence bool
- hasPresence, cf.isLazy = usePresenceForField(si, fd)
+ hasPresence, cf.isLazy = filedesc.UsePresenceForField(fd)
if hasPresence {
cf.presenceIndex, mi.presenceSize = presenceIndex(mi.Desc, fd)
diff --git a/vendor/google.golang.org/protobuf/internal/impl/decode.go b/vendor/google.golang.org/protobuf/internal/impl/decode.go
index e0dd21fa..1228b5c8 100644
--- a/vendor/google.golang.org/protobuf/internal/impl/decode.go
+++ b/vendor/google.golang.org/protobuf/internal/impl/decode.go
@@ -102,8 +102,7 @@ var errUnknown = errors.New("unknown")
func (mi *MessageInfo) unmarshalPointer(b []byte, p pointer, groupTag protowire.Number, opts unmarshalOptions) (out unmarshalOutput, err error) {
mi.init()
- opts.depth--
- if opts.depth < 0 {
+ if opts.depth--; opts.depth < 0 {
return out, errRecursionDepth
}
if flags.ProtoLegacy && mi.isMessageSet {
diff --git a/vendor/google.golang.org/protobuf/internal/impl/message_opaque.go b/vendor/google.golang.org/protobuf/internal/impl/message_opaque.go
index dd55e8e0..5a439daa 100644
--- a/vendor/google.golang.org/protobuf/internal/impl/message_opaque.go
+++ b/vendor/google.golang.org/protobuf/internal/impl/message_opaque.go
@@ -11,6 +11,7 @@ import (
"strings"
"sync/atomic"
+ "google.golang.org/protobuf/internal/filedesc"
"google.golang.org/protobuf/reflect/protoreflect"
)
@@ -53,7 +54,7 @@ func opaqueInitHook(mi *MessageInfo) bool {
fd := fds.Get(i)
fs := si.fieldsByNumber[fd.Number()]
var fi fieldInfo
- usePresence, _ := usePresenceForField(si, fd)
+ usePresence, _ := filedesc.UsePresenceForField(fd)
switch {
case fd.ContainingOneof() != nil && !fd.ContainingOneof().IsSynthetic():
@@ -343,17 +344,15 @@ func (mi *MessageInfo) fieldInfoForMessageListOpaqueNoPresence(si opaqueStructIn
if p.IsNil() {
return false
}
- sp := p.Apply(fieldOffset).AtomicGetPointer()
- if sp.IsNil() {
+ rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()
+ if rv.IsNil() {
return false
}
- rv := sp.AsValueOf(fs.Type.Elem())
return rv.Elem().Len() > 0
},
clear: func(p pointer) {
- sp := p.Apply(fieldOffset).AtomicGetPointer()
- if !sp.IsNil() {
- rv := sp.AsValueOf(fs.Type.Elem())
+ rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()
+ if !rv.IsNil() {
rv.Elem().Set(reflect.Zero(rv.Type().Elem()))
}
},
@@ -361,11 +360,10 @@ func (mi *MessageInfo) fieldInfoForMessageListOpaqueNoPresence(si opaqueStructIn
if p.IsNil() {
return conv.Zero()
}
- sp := p.Apply(fieldOffset).AtomicGetPointer()
- if sp.IsNil() {
+ rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()
+ if rv.IsNil() {
return conv.Zero()
}
- rv := sp.AsValueOf(fs.Type.Elem())
if rv.Elem().Len() == 0 {
return conv.Zero()
}
@@ -598,30 +596,3 @@ func (mi *MessageInfo) clearPresent(p pointer, index uint32) {
func (mi *MessageInfo) present(p pointer, index uint32) bool {
return p.Apply(mi.presenceOffset).PresenceInfo().Present(index)
}
-
-// usePresenceForField implements the somewhat intricate logic of when
-// the presence bitmap is used for a field. The main logic is that a
-// field that is optional or that can be lazy will use the presence
-// bit, but for proto2, also maps have a presence bit. It also records
-// if the field can ever be lazy, which is true if we have a
-// lazyOffset and the field is a message or a slice of messages. A
-// field that is lazy will always need a presence bit. Oneofs are not
-// lazy and do not use presence, unless they are a synthetic oneof,
-// which is a proto3 optional field. For proto3 optionals, we use the
-// presence and they can also be lazy when applicable (a message).
-func usePresenceForField(si opaqueStructInfo, fd protoreflect.FieldDescriptor) (usePresence, canBeLazy bool) {
- hasLazyField := fd.(interface{ IsLazy() bool }).IsLazy()
-
- // Non-oneof scalar fields with explicit field presence use the presence array.
- usesPresenceArray := fd.HasPresence() && fd.Message() == nil && (fd.ContainingOneof() == nil || fd.ContainingOneof().IsSynthetic())
- switch {
- case fd.ContainingOneof() != nil && !fd.ContainingOneof().IsSynthetic():
- return false, false
- case fd.IsMap():
- return false, false
- case fd.Kind() == protoreflect.MessageKind || fd.Kind() == protoreflect.GroupKind:
- return hasLazyField, hasLazyField
- default:
- return usesPresenceArray || (hasLazyField && fd.HasPresence()), false
- }
-}
diff --git a/vendor/google.golang.org/protobuf/internal/impl/presence.go b/vendor/google.golang.org/protobuf/internal/impl/presence.go
index 914cb1de..443afe81 100644
--- a/vendor/google.golang.org/protobuf/internal/impl/presence.go
+++ b/vendor/google.golang.org/protobuf/internal/impl/presence.go
@@ -32,9 +32,6 @@ func (p presence) toElem(num uint32) (ret *uint32) {
// Present checks for the presence of a specific field number in a presence set.
func (p presence) Present(num uint32) bool {
- if p.P == nil {
- return false
- }
return Export{}.Present(p.toElem(num), num)
}
diff --git a/vendor/google.golang.org/protobuf/internal/impl/validate.go b/vendor/google.golang.org/protobuf/internal/impl/validate.go
index 7b2995dd..99a1eb95 100644
--- a/vendor/google.golang.org/protobuf/internal/impl/validate.go
+++ b/vendor/google.golang.org/protobuf/internal/impl/validate.go
@@ -68,9 +68,13 @@ func Validate(mt protoreflect.MessageType, in protoiface.UnmarshalInput) (out pr
if in.Resolver == nil {
in.Resolver = protoregistry.GlobalTypes
}
+ if in.Depth == 0 {
+ in.Depth = protowire.DefaultRecursionLimit
+ }
o, st := mi.validate(in.Buf, 0, unmarshalOptions{
flags: in.Flags,
resolver: in.Resolver,
+ depth: in.Depth,
})
if o.initialized {
out.Flags |= protoiface.UnmarshalInitialized
@@ -257,6 +261,9 @@ func (mi *MessageInfo) validate(b []byte, groupTag protowire.Number, opts unmars
states[0].typ = validationTypeGroup
states[0].endGroup = groupTag
}
+ if opts.depth--; opts.depth < 0 {
+ return out, ValidationInvalid
+ }
initialized := true
start := len(b)
State:
@@ -451,6 +458,13 @@ State:
mi: vi.mi,
tail: b,
})
+ if vi.typ == validationTypeMessage ||
+ vi.typ == validationTypeGroup ||
+ vi.typ == validationTypeMap {
+ if opts.depth--; opts.depth < 0 {
+ return out, ValidationInvalid
+ }
+ }
b = v
continue State
case validationTypeRepeatedVarint:
@@ -499,6 +513,9 @@ State:
mi: vi.mi,
endGroup: num,
})
+ if opts.depth--; opts.depth < 0 {
+ return out, ValidationInvalid
+ }
continue State
case flags.ProtoLegacy && vi.typ == validationTypeMessageSetItem:
typeid, v, n, err := messageset.ConsumeFieldValue(b, false)
@@ -521,6 +538,13 @@ State:
mi: xvi.mi,
tail: b[n:],
})
+ if xvi.typ == validationTypeMessage ||
+ xvi.typ == validationTypeGroup ||
+ xvi.typ == validationTypeMap {
+ if opts.depth--; opts.depth < 0 {
+ return out, ValidationInvalid
+ }
+ }
b = v
continue State
}
@@ -547,12 +571,14 @@ State:
switch st.typ {
case validationTypeMessage, validationTypeGroup:
numRequiredFields = int(st.mi.numRequiredFields)
+ opts.depth++
case validationTypeMap:
// If this is a map field with a message value that contains
// required fields, require that the value be present.
if st.mi != nil && st.mi.numRequiredFields > 0 {
numRequiredFields = 1
}
+ opts.depth++
}
// If there are more than 64 required fields, this check will
// always fail and we will report that the message is potentially
diff --git a/vendor/google.golang.org/protobuf/internal/version/version.go b/vendor/google.golang.org/protobuf/internal/version/version.go
index aac1cb18..763fd828 100644
--- a/vendor/google.golang.org/protobuf/internal/version/version.go
+++ b/vendor/google.golang.org/protobuf/internal/version/version.go
@@ -52,7 +52,7 @@ import (
const (
Major = 1
Minor = 36
- Patch = 6
+ Patch = 11
PreRelease = ""
)
diff --git a/vendor/google.golang.org/protobuf/proto/decode.go b/vendor/google.golang.org/protobuf/proto/decode.go
index 4cbf1aea..889d8511 100644
--- a/vendor/google.golang.org/protobuf/proto/decode.go
+++ b/vendor/google.golang.org/protobuf/proto/decode.go
@@ -121,9 +121,8 @@ func (o UnmarshalOptions) unmarshal(b []byte, m protoreflect.Message) (out proto
out, err = methods.Unmarshal(in)
} else {
- o.RecursionLimit--
- if o.RecursionLimit < 0 {
- return out, errors.New("exceeded max recursion depth")
+ if o.RecursionLimit--; o.RecursionLimit < 0 {
+ return out, errRecursionDepth
}
err = o.unmarshalMessageSlow(b, m)
}
@@ -220,6 +219,9 @@ func (o UnmarshalOptions) unmarshalSingular(b []byte, wtyp protowire.Type, m pro
}
func (o UnmarshalOptions) unmarshalMap(b []byte, wtyp protowire.Type, mapv protoreflect.Map, fd protoreflect.FieldDescriptor) (n int, err error) {
+ if o.RecursionLimit--; o.RecursionLimit < 0 {
+ return 0, errRecursionDepth
+ }
if wtyp != protowire.BytesType {
return 0, errUnknown
}
@@ -305,3 +307,5 @@ func (o UnmarshalOptions) unmarshalMap(b []byte, wtyp protowire.Type, mapv proto
var errUnknown = errors.New("BUG: internal error (unknown)")
var errDecode = errors.New("cannot parse invalid wire-format data")
+
+var errRecursionDepth = errors.New("exceeded maximum recursion depth")
diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go
index a4a0a297..730331e6 100644
--- a/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go
+++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go
@@ -21,6 +21,8 @@ func (p *SourcePath) appendFileDescriptorProto(b []byte) []byte {
b = p.appendRepeatedField(b, "public_dependency", nil)
case 11:
b = p.appendRepeatedField(b, "weak_dependency", nil)
+ case 15:
+ b = p.appendRepeatedField(b, "option_dependency", nil)
case 4:
b = p.appendRepeatedField(b, "message_type", (*SourcePath).appendDescriptorProto)
case 5:
@@ -66,6 +68,8 @@ func (p *SourcePath) appendDescriptorProto(b []byte) []byte {
b = p.appendRepeatedField(b, "reserved_range", (*SourcePath).appendDescriptorProto_ReservedRange)
case 10:
b = p.appendRepeatedField(b, "reserved_name", nil)
+ case 11:
+ b = p.appendSingularField(b, "visibility", nil)
}
return b
}
@@ -85,6 +89,8 @@ func (p *SourcePath) appendEnumDescriptorProto(b []byte) []byte {
b = p.appendRepeatedField(b, "reserved_range", (*SourcePath).appendEnumDescriptorProto_EnumReservedRange)
case 5:
b = p.appendRepeatedField(b, "reserved_name", nil)
+ case 6:
+ b = p.appendSingularField(b, "visibility", nil)
}
return b
}
@@ -400,6 +406,8 @@ func (p *SourcePath) appendFeatureSet(b []byte) []byte {
b = p.appendSingularField(b, "json_format", nil)
case 7:
b = p.appendSingularField(b, "enforce_naming_style", nil)
+ case 8:
+ b = p.appendSingularField(b, "default_symbol_visibility", nil)
}
return b
}
diff --git a/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go b/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go
index 7fe280f1..0b23faa9 100644
--- a/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go
+++ b/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go
@@ -69,6 +69,8 @@ const (
// comparison.
Edition_EDITION_2023 Edition = 1000
Edition_EDITION_2024 Edition = 1001
+ // A placeholder edition for developing and testing unscheduled features.
+ Edition_EDITION_UNSTABLE Edition = 9999
// Placeholder editions for testing feature resolution. These should not be
// used or relied on outside of tests.
Edition_EDITION_1_TEST_ONLY Edition = 1
@@ -91,6 +93,7 @@ var (
999: "EDITION_PROTO3",
1000: "EDITION_2023",
1001: "EDITION_2024",
+ 9999: "EDITION_UNSTABLE",
1: "EDITION_1_TEST_ONLY",
2: "EDITION_2_TEST_ONLY",
99997: "EDITION_99997_TEST_ONLY",
@@ -105,6 +108,7 @@ var (
"EDITION_PROTO3": 999,
"EDITION_2023": 1000,
"EDITION_2024": 1001,
+ "EDITION_UNSTABLE": 9999,
"EDITION_1_TEST_ONLY": 1,
"EDITION_2_TEST_ONLY": 2,
"EDITION_99997_TEST_ONLY": 99997,
@@ -151,6 +155,70 @@ func (Edition) EnumDescriptor() ([]byte, []int) {
return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{0}
}
+// Describes the 'visibility' of a symbol with respect to the proto import
+// system. Symbols can only be imported when the visibility rules do not prevent
+// it (ex: local symbols cannot be imported). Visibility modifiers can only set
+// on `message` and `enum` as they are the only types available to be referenced
+// from other files.
+type SymbolVisibility int32
+
+const (
+ SymbolVisibility_VISIBILITY_UNSET SymbolVisibility = 0
+ SymbolVisibility_VISIBILITY_LOCAL SymbolVisibility = 1
+ SymbolVisibility_VISIBILITY_EXPORT SymbolVisibility = 2
+)
+
+// Enum value maps for SymbolVisibility.
+var (
+ SymbolVisibility_name = map[int32]string{
+ 0: "VISIBILITY_UNSET",
+ 1: "VISIBILITY_LOCAL",
+ 2: "VISIBILITY_EXPORT",
+ }
+ SymbolVisibility_value = map[string]int32{
+ "VISIBILITY_UNSET": 0,
+ "VISIBILITY_LOCAL": 1,
+ "VISIBILITY_EXPORT": 2,
+ }
+)
+
+func (x SymbolVisibility) Enum() *SymbolVisibility {
+ p := new(SymbolVisibility)
+ *p = x
+ return p
+}
+
+func (x SymbolVisibility) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (SymbolVisibility) Descriptor() protoreflect.EnumDescriptor {
+ return file_google_protobuf_descriptor_proto_enumTypes[1].Descriptor()
+}
+
+func (SymbolVisibility) Type() protoreflect.EnumType {
+ return &file_google_protobuf_descriptor_proto_enumTypes[1]
+}
+
+func (x SymbolVisibility) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Do not use.
+func (x *SymbolVisibility) UnmarshalJSON(b []byte) error {
+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
+ if err != nil {
+ return err
+ }
+ *x = SymbolVisibility(num)
+ return nil
+}
+
+// Deprecated: Use SymbolVisibility.Descriptor instead.
+func (SymbolVisibility) EnumDescriptor() ([]byte, []int) {
+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{1}
+}
+
// The verification state of the extension range.
type ExtensionRangeOptions_VerificationState int32
@@ -183,11 +251,11 @@ func (x ExtensionRangeOptions_VerificationState) String() string {
}
func (ExtensionRangeOptions_VerificationState) Descriptor() protoreflect.EnumDescriptor {
- return file_google_protobuf_descriptor_proto_enumTypes[1].Descriptor()
+ return file_google_protobuf_descriptor_proto_enumTypes[2].Descriptor()
}
func (ExtensionRangeOptions_VerificationState) Type() protoreflect.EnumType {
- return &file_google_protobuf_descriptor_proto_enumTypes[1]
+ return &file_google_protobuf_descriptor_proto_enumTypes[2]
}
func (x ExtensionRangeOptions_VerificationState) Number() protoreflect.EnumNumber {
@@ -299,11 +367,11 @@ func (x FieldDescriptorProto_Type) String() string {
}
func (FieldDescriptorProto_Type) Descriptor() protoreflect.EnumDescriptor {
- return file_google_protobuf_descriptor_proto_enumTypes[2].Descriptor()
+ return file_google_protobuf_descriptor_proto_enumTypes[3].Descriptor()
}
func (FieldDescriptorProto_Type) Type() protoreflect.EnumType {
- return &file_google_protobuf_descriptor_proto_enumTypes[2]
+ return &file_google_protobuf_descriptor_proto_enumTypes[3]
}
func (x FieldDescriptorProto_Type) Number() protoreflect.EnumNumber {
@@ -362,11 +430,11 @@ func (x FieldDescriptorProto_Label) String() string {
}
func (FieldDescriptorProto_Label) Descriptor() protoreflect.EnumDescriptor {
- return file_google_protobuf_descriptor_proto_enumTypes[3].Descriptor()
+ return file_google_protobuf_descriptor_proto_enumTypes[4].Descriptor()
}
func (FieldDescriptorProto_Label) Type() protoreflect.EnumType {
- return &file_google_protobuf_descriptor_proto_enumTypes[3]
+ return &file_google_protobuf_descriptor_proto_enumTypes[4]
}
func (x FieldDescriptorProto_Label) Number() protoreflect.EnumNumber {
@@ -423,11 +491,11 @@ func (x FileOptions_OptimizeMode) String() string {
}
func (FileOptions_OptimizeMode) Descriptor() protoreflect.EnumDescriptor {
- return file_google_protobuf_descriptor_proto_enumTypes[4].Descriptor()
+ return file_google_protobuf_descriptor_proto_enumTypes[5].Descriptor()
}
func (FileOptions_OptimizeMode) Type() protoreflect.EnumType {
- return &file_google_protobuf_descriptor_proto_enumTypes[4]
+ return &file_google_protobuf_descriptor_proto_enumTypes[5]
}
func (x FileOptions_OptimizeMode) Number() protoreflect.EnumNumber {
@@ -489,11 +557,11 @@ func (x FieldOptions_CType) String() string {
}
func (FieldOptions_CType) Descriptor() protoreflect.EnumDescriptor {
- return file_google_protobuf_descriptor_proto_enumTypes[5].Descriptor()
+ return file_google_protobuf_descriptor_proto_enumTypes[6].Descriptor()
}
func (FieldOptions_CType) Type() protoreflect.EnumType {
- return &file_google_protobuf_descriptor_proto_enumTypes[5]
+ return &file_google_protobuf_descriptor_proto_enumTypes[6]
}
func (x FieldOptions_CType) Number() protoreflect.EnumNumber {
@@ -551,11 +619,11 @@ func (x FieldOptions_JSType) String() string {
}
func (FieldOptions_JSType) Descriptor() protoreflect.EnumDescriptor {
- return file_google_protobuf_descriptor_proto_enumTypes[6].Descriptor()
+ return file_google_protobuf_descriptor_proto_enumTypes[7].Descriptor()
}
func (FieldOptions_JSType) Type() protoreflect.EnumType {
- return &file_google_protobuf_descriptor_proto_enumTypes[6]
+ return &file_google_protobuf_descriptor_proto_enumTypes[7]
}
func (x FieldOptions_JSType) Number() protoreflect.EnumNumber {
@@ -611,11 +679,11 @@ func (x FieldOptions_OptionRetention) String() string {
}
func (FieldOptions_OptionRetention) Descriptor() protoreflect.EnumDescriptor {
- return file_google_protobuf_descriptor_proto_enumTypes[7].Descriptor()
+ return file_google_protobuf_descriptor_proto_enumTypes[8].Descriptor()
}
func (FieldOptions_OptionRetention) Type() protoreflect.EnumType {
- return &file_google_protobuf_descriptor_proto_enumTypes[7]
+ return &file_google_protobuf_descriptor_proto_enumTypes[8]
}
func (x FieldOptions_OptionRetention) Number() protoreflect.EnumNumber {
@@ -694,11 +762,11 @@ func (x FieldOptions_OptionTargetType) String() string {
}
func (FieldOptions_OptionTargetType) Descriptor() protoreflect.EnumDescriptor {
- return file_google_protobuf_descriptor_proto_enumTypes[8].Descriptor()
+ return file_google_protobuf_descriptor_proto_enumTypes[9].Descriptor()
}
func (FieldOptions_OptionTargetType) Type() protoreflect.EnumType {
- return &file_google_protobuf_descriptor_proto_enumTypes[8]
+ return &file_google_protobuf_descriptor_proto_enumTypes[9]
}
func (x FieldOptions_OptionTargetType) Number() protoreflect.EnumNumber {
@@ -756,11 +824,11 @@ func (x MethodOptions_IdempotencyLevel) String() string {
}
func (MethodOptions_IdempotencyLevel) Descriptor() protoreflect.EnumDescriptor {
- return file_google_protobuf_descriptor_proto_enumTypes[9].Descriptor()
+ return file_google_protobuf_descriptor_proto_enumTypes[10].Descriptor()
}
func (MethodOptions_IdempotencyLevel) Type() protoreflect.EnumType {
- return &file_google_protobuf_descriptor_proto_enumTypes[9]
+ return &file_google_protobuf_descriptor_proto_enumTypes[10]
}
func (x MethodOptions_IdempotencyLevel) Number() protoreflect.EnumNumber {
@@ -818,11 +886,11 @@ func (x FeatureSet_FieldPresence) String() string {
}
func (FeatureSet_FieldPresence) Descriptor() protoreflect.EnumDescriptor {
- return file_google_protobuf_descriptor_proto_enumTypes[10].Descriptor()
+ return file_google_protobuf_descriptor_proto_enumTypes[11].Descriptor()
}
func (FeatureSet_FieldPresence) Type() protoreflect.EnumType {
- return &file_google_protobuf_descriptor_proto_enumTypes[10]
+ return &file_google_protobuf_descriptor_proto_enumTypes[11]
}
func (x FeatureSet_FieldPresence) Number() protoreflect.EnumNumber {
@@ -877,11 +945,11 @@ func (x FeatureSet_EnumType) String() string {
}
func (FeatureSet_EnumType) Descriptor() protoreflect.EnumDescriptor {
- return file_google_protobuf_descriptor_proto_enumTypes[11].Descriptor()
+ return file_google_protobuf_descriptor_proto_enumTypes[12].Descriptor()
}
func (FeatureSet_EnumType) Type() protoreflect.EnumType {
- return &file_google_protobuf_descriptor_proto_enumTypes[11]
+ return &file_google_protobuf_descriptor_proto_enumTypes[12]
}
func (x FeatureSet_EnumType) Number() protoreflect.EnumNumber {
@@ -936,11 +1004,11 @@ func (x FeatureSet_RepeatedFieldEncoding) String() string {
}
func (FeatureSet_RepeatedFieldEncoding) Descriptor() protoreflect.EnumDescriptor {
- return file_google_protobuf_descriptor_proto_enumTypes[12].Descriptor()
+ return file_google_protobuf_descriptor_proto_enumTypes[13].Descriptor()
}
func (FeatureSet_RepeatedFieldEncoding) Type() protoreflect.EnumType {
- return &file_google_protobuf_descriptor_proto_enumTypes[12]
+ return &file_google_protobuf_descriptor_proto_enumTypes[13]
}
func (x FeatureSet_RepeatedFieldEncoding) Number() protoreflect.EnumNumber {
@@ -995,11 +1063,11 @@ func (x FeatureSet_Utf8Validation) String() string {
}
func (FeatureSet_Utf8Validation) Descriptor() protoreflect.EnumDescriptor {
- return file_google_protobuf_descriptor_proto_enumTypes[13].Descriptor()
+ return file_google_protobuf_descriptor_proto_enumTypes[14].Descriptor()
}
func (FeatureSet_Utf8Validation) Type() protoreflect.EnumType {
- return &file_google_protobuf_descriptor_proto_enumTypes[13]
+ return &file_google_protobuf_descriptor_proto_enumTypes[14]
}
func (x FeatureSet_Utf8Validation) Number() protoreflect.EnumNumber {
@@ -1054,11 +1122,11 @@ func (x FeatureSet_MessageEncoding) String() string {
}
func (FeatureSet_MessageEncoding) Descriptor() protoreflect.EnumDescriptor {
- return file_google_protobuf_descriptor_proto_enumTypes[14].Descriptor()
+ return file_google_protobuf_descriptor_proto_enumTypes[15].Descriptor()
}
func (FeatureSet_MessageEncoding) Type() protoreflect.EnumType {
- return &file_google_protobuf_descriptor_proto_enumTypes[14]
+ return &file_google_protobuf_descriptor_proto_enumTypes[15]
}
func (x FeatureSet_MessageEncoding) Number() protoreflect.EnumNumber {
@@ -1113,11 +1181,11 @@ func (x FeatureSet_JsonFormat) String() string {
}
func (FeatureSet_JsonFormat) Descriptor() protoreflect.EnumDescriptor {
- return file_google_protobuf_descriptor_proto_enumTypes[15].Descriptor()
+ return file_google_protobuf_descriptor_proto_enumTypes[16].Descriptor()
}
func (FeatureSet_JsonFormat) Type() protoreflect.EnumType {
- return &file_google_protobuf_descriptor_proto_enumTypes[15]
+ return &file_google_protobuf_descriptor_proto_enumTypes[16]
}
func (x FeatureSet_JsonFormat) Number() protoreflect.EnumNumber {
@@ -1172,11 +1240,11 @@ func (x FeatureSet_EnforceNamingStyle) String() string {
}
func (FeatureSet_EnforceNamingStyle) Descriptor() protoreflect.EnumDescriptor {
- return file_google_protobuf_descriptor_proto_enumTypes[16].Descriptor()
+ return file_google_protobuf_descriptor_proto_enumTypes[17].Descriptor()
}
func (FeatureSet_EnforceNamingStyle) Type() protoreflect.EnumType {
- return &file_google_protobuf_descriptor_proto_enumTypes[16]
+ return &file_google_protobuf_descriptor_proto_enumTypes[17]
}
func (x FeatureSet_EnforceNamingStyle) Number() protoreflect.EnumNumber {
@@ -1198,6 +1266,77 @@ func (FeatureSet_EnforceNamingStyle) EnumDescriptor() ([]byte, []int) {
return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 6}
}
+type FeatureSet_VisibilityFeature_DefaultSymbolVisibility int32
+
+const (
+ FeatureSet_VisibilityFeature_DEFAULT_SYMBOL_VISIBILITY_UNKNOWN FeatureSet_VisibilityFeature_DefaultSymbolVisibility = 0
+ // Default pre-EDITION_2024, all UNSET visibility are export.
+ FeatureSet_VisibilityFeature_EXPORT_ALL FeatureSet_VisibilityFeature_DefaultSymbolVisibility = 1
+ // All top-level symbols default to export, nested default to local.
+ FeatureSet_VisibilityFeature_EXPORT_TOP_LEVEL FeatureSet_VisibilityFeature_DefaultSymbolVisibility = 2
+ // All symbols default to local.
+ FeatureSet_VisibilityFeature_LOCAL_ALL FeatureSet_VisibilityFeature_DefaultSymbolVisibility = 3
+ // All symbols local by default. Nested types cannot be exported.
+ // With special case caveat for message { enum {} reserved 1 to max; }
+ // This is the recommended setting for new protos.
+ FeatureSet_VisibilityFeature_STRICT FeatureSet_VisibilityFeature_DefaultSymbolVisibility = 4
+)
+
+// Enum value maps for FeatureSet_VisibilityFeature_DefaultSymbolVisibility.
+var (
+ FeatureSet_VisibilityFeature_DefaultSymbolVisibility_name = map[int32]string{
+ 0: "DEFAULT_SYMBOL_VISIBILITY_UNKNOWN",
+ 1: "EXPORT_ALL",
+ 2: "EXPORT_TOP_LEVEL",
+ 3: "LOCAL_ALL",
+ 4: "STRICT",
+ }
+ FeatureSet_VisibilityFeature_DefaultSymbolVisibility_value = map[string]int32{
+ "DEFAULT_SYMBOL_VISIBILITY_UNKNOWN": 0,
+ "EXPORT_ALL": 1,
+ "EXPORT_TOP_LEVEL": 2,
+ "LOCAL_ALL": 3,
+ "STRICT": 4,
+ }
+)
+
+func (x FeatureSet_VisibilityFeature_DefaultSymbolVisibility) Enum() *FeatureSet_VisibilityFeature_DefaultSymbolVisibility {
+ p := new(FeatureSet_VisibilityFeature_DefaultSymbolVisibility)
+ *p = x
+ return p
+}
+
+func (x FeatureSet_VisibilityFeature_DefaultSymbolVisibility) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (FeatureSet_VisibilityFeature_DefaultSymbolVisibility) Descriptor() protoreflect.EnumDescriptor {
+ return file_google_protobuf_descriptor_proto_enumTypes[18].Descriptor()
+}
+
+func (FeatureSet_VisibilityFeature_DefaultSymbolVisibility) Type() protoreflect.EnumType {
+ return &file_google_protobuf_descriptor_proto_enumTypes[18]
+}
+
+func (x FeatureSet_VisibilityFeature_DefaultSymbolVisibility) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Do not use.
+func (x *FeatureSet_VisibilityFeature_DefaultSymbolVisibility) UnmarshalJSON(b []byte) error {
+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
+ if err != nil {
+ return err
+ }
+ *x = FeatureSet_VisibilityFeature_DefaultSymbolVisibility(num)
+ return nil
+}
+
+// Deprecated: Use FeatureSet_VisibilityFeature_DefaultSymbolVisibility.Descriptor instead.
+func (FeatureSet_VisibilityFeature_DefaultSymbolVisibility) EnumDescriptor() ([]byte, []int) {
+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 0, 0}
+}
+
// Represents the identified object's effect on the element in the original
// .proto file.
type GeneratedCodeInfo_Annotation_Semantic int32
@@ -1236,11 +1375,11 @@ func (x GeneratedCodeInfo_Annotation_Semantic) String() string {
}
func (GeneratedCodeInfo_Annotation_Semantic) Descriptor() protoreflect.EnumDescriptor {
- return file_google_protobuf_descriptor_proto_enumTypes[17].Descriptor()
+ return file_google_protobuf_descriptor_proto_enumTypes[19].Descriptor()
}
func (GeneratedCodeInfo_Annotation_Semantic) Type() protoreflect.EnumType {
- return &file_google_protobuf_descriptor_proto_enumTypes[17]
+ return &file_google_protobuf_descriptor_proto_enumTypes[19]
}
func (x GeneratedCodeInfo_Annotation_Semantic) Number() protoreflect.EnumNumber {
@@ -1321,6 +1460,9 @@ type FileDescriptorProto struct {
// Indexes of the weak imported files in the dependency list.
// For Google-internal migration only. Do not use.
WeakDependency []int32 `protobuf:"varint,11,rep,name=weak_dependency,json=weakDependency" json:"weak_dependency,omitempty"`
+ // Names of files imported by this file purely for the purpose of providing
+ // option extensions. These are excluded from the dependency list above.
+ OptionDependency []string `protobuf:"bytes,15,rep,name=option_dependency,json=optionDependency" json:"option_dependency,omitempty"`
// All top-level definitions in this file.
MessageType []*DescriptorProto `protobuf:"bytes,4,rep,name=message_type,json=messageType" json:"message_type,omitempty"`
EnumType []*EnumDescriptorProto `protobuf:"bytes,5,rep,name=enum_type,json=enumType" json:"enum_type,omitempty"`
@@ -1414,6 +1556,13 @@ func (x *FileDescriptorProto) GetWeakDependency() []int32 {
return nil
}
+func (x *FileDescriptorProto) GetOptionDependency() []string {
+ if x != nil {
+ return x.OptionDependency
+ }
+ return nil
+}
+
func (x *FileDescriptorProto) GetMessageType() []*DescriptorProto {
if x != nil {
return x.MessageType
@@ -1484,7 +1633,9 @@ type DescriptorProto struct {
ReservedRange []*DescriptorProto_ReservedRange `protobuf:"bytes,9,rep,name=reserved_range,json=reservedRange" json:"reserved_range,omitempty"`
// Reserved field names, which may not be used by fields in the same message.
// A given name may only be reserved once.
- ReservedName []string `protobuf:"bytes,10,rep,name=reserved_name,json=reservedName" json:"reserved_name,omitempty"`
+ ReservedName []string `protobuf:"bytes,10,rep,name=reserved_name,json=reservedName" json:"reserved_name,omitempty"`
+ // Support for `export` and `local` keywords on enums.
+ Visibility *SymbolVisibility `protobuf:"varint,11,opt,name=visibility,enum=google.protobuf.SymbolVisibility" json:"visibility,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
@@ -1589,6 +1740,13 @@ func (x *DescriptorProto) GetReservedName() []string {
return nil
}
+func (x *DescriptorProto) GetVisibility() SymbolVisibility {
+ if x != nil && x.Visibility != nil {
+ return *x.Visibility
+ }
+ return SymbolVisibility_VISIBILITY_UNSET
+}
+
type ExtensionRangeOptions struct {
state protoimpl.MessageState `protogen:"open.v1"`
// The parser stores options it doesn't recognize here. See above.
@@ -1901,7 +2059,9 @@ type EnumDescriptorProto struct {
ReservedRange []*EnumDescriptorProto_EnumReservedRange `protobuf:"bytes,4,rep,name=reserved_range,json=reservedRange" json:"reserved_range,omitempty"`
// Reserved enum value names, which may not be reused. A given name may only
// be reserved once.
- ReservedName []string `protobuf:"bytes,5,rep,name=reserved_name,json=reservedName" json:"reserved_name,omitempty"`
+ ReservedName []string `protobuf:"bytes,5,rep,name=reserved_name,json=reservedName" json:"reserved_name,omitempty"`
+ // Support for `export` and `local` keywords on enums.
+ Visibility *SymbolVisibility `protobuf:"varint,6,opt,name=visibility,enum=google.protobuf.SymbolVisibility" json:"visibility,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
@@ -1971,6 +2131,13 @@ func (x *EnumDescriptorProto) GetReservedName() []string {
return nil
}
+func (x *EnumDescriptorProto) GetVisibility() SymbolVisibility {
+ if x != nil && x.Visibility != nil {
+ return *x.Visibility
+ }
+ return SymbolVisibility_VISIBILITY_UNSET
+}
+
// Describes a value within an enum.
type EnumValueDescriptorProto struct {
state protoimpl.MessageState `protogen:"open.v1"`
@@ -2710,7 +2877,10 @@ type FieldOptions struct {
// for accessors, or it will be completely ignored; in the very least, this
// is a formalization for deprecating fields.
Deprecated *bool `protobuf:"varint,3,opt,name=deprecated,def=0" json:"deprecated,omitempty"`
+ // DEPRECATED. DO NOT USE!
// For Google-internal migration only. Do not use.
+ //
+ // Deprecated: Marked as deprecated in google/protobuf/descriptor.proto.
Weak *bool `protobuf:"varint,10,opt,name=weak,def=0" json:"weak,omitempty"`
// Indicate that the field value should not be printed out when using debug
// formats, e.g. when the field contains sensitive credentials.
@@ -2814,6 +2984,7 @@ func (x *FieldOptions) GetDeprecated() bool {
return Default_FieldOptions_Deprecated
}
+// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto.
func (x *FieldOptions) GetWeak() bool {
if x != nil && x.Weak != nil {
return *x.Weak
@@ -3392,17 +3563,18 @@ func (x *UninterpretedOption) GetAggregateValue() string {
// be designed and implemented to handle this, hopefully before we ever hit a
// conflict here.
type FeatureSet struct {
- state protoimpl.MessageState `protogen:"open.v1"`
- FieldPresence *FeatureSet_FieldPresence `protobuf:"varint,1,opt,name=field_presence,json=fieldPresence,enum=google.protobuf.FeatureSet_FieldPresence" json:"field_presence,omitempty"`
- EnumType *FeatureSet_EnumType `protobuf:"varint,2,opt,name=enum_type,json=enumType,enum=google.protobuf.FeatureSet_EnumType" json:"enum_type,omitempty"`
- RepeatedFieldEncoding *FeatureSet_RepeatedFieldEncoding `protobuf:"varint,3,opt,name=repeated_field_encoding,json=repeatedFieldEncoding,enum=google.protobuf.FeatureSet_RepeatedFieldEncoding" json:"repeated_field_encoding,omitempty"`
- Utf8Validation *FeatureSet_Utf8Validation `protobuf:"varint,4,opt,name=utf8_validation,json=utf8Validation,enum=google.protobuf.FeatureSet_Utf8Validation" json:"utf8_validation,omitempty"`
- MessageEncoding *FeatureSet_MessageEncoding `protobuf:"varint,5,opt,name=message_encoding,json=messageEncoding,enum=google.protobuf.FeatureSet_MessageEncoding" json:"message_encoding,omitempty"`
- JsonFormat *FeatureSet_JsonFormat `protobuf:"varint,6,opt,name=json_format,json=jsonFormat,enum=google.protobuf.FeatureSet_JsonFormat" json:"json_format,omitempty"`
- EnforceNamingStyle *FeatureSet_EnforceNamingStyle `protobuf:"varint,7,opt,name=enforce_naming_style,json=enforceNamingStyle,enum=google.protobuf.FeatureSet_EnforceNamingStyle" json:"enforce_naming_style,omitempty"`
- extensionFields protoimpl.ExtensionFields
- unknownFields protoimpl.UnknownFields
- sizeCache protoimpl.SizeCache
+ state protoimpl.MessageState `protogen:"open.v1"`
+ FieldPresence *FeatureSet_FieldPresence `protobuf:"varint,1,opt,name=field_presence,json=fieldPresence,enum=google.protobuf.FeatureSet_FieldPresence" json:"field_presence,omitempty"`
+ EnumType *FeatureSet_EnumType `protobuf:"varint,2,opt,name=enum_type,json=enumType,enum=google.protobuf.FeatureSet_EnumType" json:"enum_type,omitempty"`
+ RepeatedFieldEncoding *FeatureSet_RepeatedFieldEncoding `protobuf:"varint,3,opt,name=repeated_field_encoding,json=repeatedFieldEncoding,enum=google.protobuf.FeatureSet_RepeatedFieldEncoding" json:"repeated_field_encoding,omitempty"`
+ Utf8Validation *FeatureSet_Utf8Validation `protobuf:"varint,4,opt,name=utf8_validation,json=utf8Validation,enum=google.protobuf.FeatureSet_Utf8Validation" json:"utf8_validation,omitempty"`
+ MessageEncoding *FeatureSet_MessageEncoding `protobuf:"varint,5,opt,name=message_encoding,json=messageEncoding,enum=google.protobuf.FeatureSet_MessageEncoding" json:"message_encoding,omitempty"`
+ JsonFormat *FeatureSet_JsonFormat `protobuf:"varint,6,opt,name=json_format,json=jsonFormat,enum=google.protobuf.FeatureSet_JsonFormat" json:"json_format,omitempty"`
+ EnforceNamingStyle *FeatureSet_EnforceNamingStyle `protobuf:"varint,7,opt,name=enforce_naming_style,json=enforceNamingStyle,enum=google.protobuf.FeatureSet_EnforceNamingStyle" json:"enforce_naming_style,omitempty"`
+ DefaultSymbolVisibility *FeatureSet_VisibilityFeature_DefaultSymbolVisibility `protobuf:"varint,8,opt,name=default_symbol_visibility,json=defaultSymbolVisibility,enum=google.protobuf.FeatureSet_VisibilityFeature_DefaultSymbolVisibility" json:"default_symbol_visibility,omitempty"`
+ extensionFields protoimpl.ExtensionFields
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
}
func (x *FeatureSet) Reset() {
@@ -3484,6 +3656,13 @@ func (x *FeatureSet) GetEnforceNamingStyle() FeatureSet_EnforceNamingStyle {
return FeatureSet_ENFORCE_NAMING_STYLE_UNKNOWN
}
+func (x *FeatureSet) GetDefaultSymbolVisibility() FeatureSet_VisibilityFeature_DefaultSymbolVisibility {
+ if x != nil && x.DefaultSymbolVisibility != nil {
+ return *x.DefaultSymbolVisibility
+ }
+ return FeatureSet_VisibilityFeature_DEFAULT_SYMBOL_VISIBILITY_UNKNOWN
+}
+
// A compiled specification for the defaults of a set of features. These
// messages are generated from FeatureSet extensions and can be used to seed
// feature resolution. The resolution with this object becomes a simple search
@@ -4144,6 +4323,42 @@ func (x *UninterpretedOption_NamePart) GetIsExtension() bool {
return false
}
+type FeatureSet_VisibilityFeature struct {
+ state protoimpl.MessageState `protogen:"open.v1"`
+ unknownFields protoimpl.UnknownFields
+ sizeCache protoimpl.SizeCache
+}
+
+func (x *FeatureSet_VisibilityFeature) Reset() {
+ *x = FeatureSet_VisibilityFeature{}
+ mi := &file_google_protobuf_descriptor_proto_msgTypes[30]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+}
+
+func (x *FeatureSet_VisibilityFeature) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*FeatureSet_VisibilityFeature) ProtoMessage() {}
+
+func (x *FeatureSet_VisibilityFeature) ProtoReflect() protoreflect.Message {
+ mi := &file_google_protobuf_descriptor_proto_msgTypes[30]
+ if x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use FeatureSet_VisibilityFeature.ProtoReflect.Descriptor instead.
+func (*FeatureSet_VisibilityFeature) Descriptor() ([]byte, []int) {
+ return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 0}
+}
+
// A map from every known edition with a unique set of defaults to its
// defaults. Not all editions may be contained here. For a given edition,
// the defaults at the closest matching edition ordered at or before it should
@@ -4161,7 +4376,7 @@ type FeatureSetDefaults_FeatureSetEditionDefault struct {
func (x *FeatureSetDefaults_FeatureSetEditionDefault) Reset() {
*x = FeatureSetDefaults_FeatureSetEditionDefault{}
- mi := &file_google_protobuf_descriptor_proto_msgTypes[30]
+ mi := &file_google_protobuf_descriptor_proto_msgTypes[31]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4173,7 +4388,7 @@ func (x *FeatureSetDefaults_FeatureSetEditionDefault) String() string {
func (*FeatureSetDefaults_FeatureSetEditionDefault) ProtoMessage() {}
func (x *FeatureSetDefaults_FeatureSetEditionDefault) ProtoReflect() protoreflect.Message {
- mi := &file_google_protobuf_descriptor_proto_msgTypes[30]
+ mi := &file_google_protobuf_descriptor_proto_msgTypes[31]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4309,7 +4524,7 @@ type SourceCodeInfo_Location struct {
func (x *SourceCodeInfo_Location) Reset() {
*x = SourceCodeInfo_Location{}
- mi := &file_google_protobuf_descriptor_proto_msgTypes[31]
+ mi := &file_google_protobuf_descriptor_proto_msgTypes[32]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4321,7 +4536,7 @@ func (x *SourceCodeInfo_Location) String() string {
func (*SourceCodeInfo_Location) ProtoMessage() {}
func (x *SourceCodeInfo_Location) ProtoReflect() protoreflect.Message {
- mi := &file_google_protobuf_descriptor_proto_msgTypes[31]
+ mi := &file_google_protobuf_descriptor_proto_msgTypes[32]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4393,7 +4608,7 @@ type GeneratedCodeInfo_Annotation struct {
func (x *GeneratedCodeInfo_Annotation) Reset() {
*x = GeneratedCodeInfo_Annotation{}
- mi := &file_google_protobuf_descriptor_proto_msgTypes[32]
+ mi := &file_google_protobuf_descriptor_proto_msgTypes[33]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -4405,7 +4620,7 @@ func (x *GeneratedCodeInfo_Annotation) String() string {
func (*GeneratedCodeInfo_Annotation) ProtoMessage() {}
func (x *GeneratedCodeInfo_Annotation) ProtoReflect() protoreflect.Message {
- mi := &file_google_protobuf_descriptor_proto_msgTypes[32]
+ mi := &file_google_protobuf_descriptor_proto_msgTypes[33]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -4462,7 +4677,7 @@ const file_google_protobuf_descriptor_proto_rawDesc = "" +
"\n" +
" google/protobuf/descriptor.proto\x12\x0fgoogle.protobuf\"[\n" +
"\x11FileDescriptorSet\x128\n" +
- "\x04file\x18\x01 \x03(\v2$.google.protobuf.FileDescriptorProtoR\x04file*\f\b\x80\xec\xca\xff\x01\x10\x81\xec\xca\xff\x01\"\x98\x05\n" +
+ "\x04file\x18\x01 \x03(\v2$.google.protobuf.FileDescriptorProtoR\x04file*\f\b\x80\xec\xca\xff\x01\x10\x81\xec\xca\xff\x01\"\xc5\x05\n" +
"\x13FileDescriptorProto\x12\x12\n" +
"\x04name\x18\x01 \x01(\tR\x04name\x12\x18\n" +
"\apackage\x18\x02 \x01(\tR\apackage\x12\x1e\n" +
@@ -4471,7 +4686,8 @@ const file_google_protobuf_descriptor_proto_rawDesc = "" +
"dependency\x12+\n" +
"\x11public_dependency\x18\n" +
" \x03(\x05R\x10publicDependency\x12'\n" +
- "\x0fweak_dependency\x18\v \x03(\x05R\x0eweakDependency\x12C\n" +
+ "\x0fweak_dependency\x18\v \x03(\x05R\x0eweakDependency\x12+\n" +
+ "\x11option_dependency\x18\x0f \x03(\tR\x10optionDependency\x12C\n" +
"\fmessage_type\x18\x04 \x03(\v2 .google.protobuf.DescriptorProtoR\vmessageType\x12A\n" +
"\tenum_type\x18\x05 \x03(\v2$.google.protobuf.EnumDescriptorProtoR\benumType\x12A\n" +
"\aservice\x18\x06 \x03(\v2'.google.protobuf.ServiceDescriptorProtoR\aservice\x12C\n" +
@@ -4479,7 +4695,7 @@ const file_google_protobuf_descriptor_proto_rawDesc = "" +
"\aoptions\x18\b \x01(\v2\x1c.google.protobuf.FileOptionsR\aoptions\x12I\n" +
"\x10source_code_info\x18\t \x01(\v2\x1f.google.protobuf.SourceCodeInfoR\x0esourceCodeInfo\x12\x16\n" +
"\x06syntax\x18\f \x01(\tR\x06syntax\x122\n" +
- "\aedition\x18\x0e \x01(\x0e2\x18.google.protobuf.EditionR\aedition\"\xb9\x06\n" +
+ "\aedition\x18\x0e \x01(\x0e2\x18.google.protobuf.EditionR\aedition\"\xfc\x06\n" +
"\x0fDescriptorProto\x12\x12\n" +
"\x04name\x18\x01 \x01(\tR\x04name\x12;\n" +
"\x05field\x18\x02 \x03(\v2%.google.protobuf.FieldDescriptorProtoR\x05field\x12C\n" +
@@ -4493,7 +4709,10 @@ const file_google_protobuf_descriptor_proto_rawDesc = "" +
"\aoptions\x18\a \x01(\v2\x1f.google.protobuf.MessageOptionsR\aoptions\x12U\n" +
"\x0ereserved_range\x18\t \x03(\v2..google.protobuf.DescriptorProto.ReservedRangeR\rreservedRange\x12#\n" +
"\rreserved_name\x18\n" +
- " \x03(\tR\freservedName\x1az\n" +
+ " \x03(\tR\freservedName\x12A\n" +
+ "\n" +
+ "visibility\x18\v \x01(\x0e2!.google.protobuf.SymbolVisibilityR\n" +
+ "visibility\x1az\n" +
"\x0eExtensionRange\x12\x14\n" +
"\x05start\x18\x01 \x01(\x05R\x05start\x12\x10\n" +
"\x03end\x18\x02 \x01(\x05R\x03end\x12@\n" +
@@ -4562,24 +4781,27 @@ const file_google_protobuf_descriptor_proto_rawDesc = "" +
"\x0eLABEL_REQUIRED\x10\x02\"c\n" +
"\x14OneofDescriptorProto\x12\x12\n" +
"\x04name\x18\x01 \x01(\tR\x04name\x127\n" +
- "\aoptions\x18\x02 \x01(\v2\x1d.google.protobuf.OneofOptionsR\aoptions\"\xe3\x02\n" +
+ "\aoptions\x18\x02 \x01(\v2\x1d.google.protobuf.OneofOptionsR\aoptions\"\xa6\x03\n" +
"\x13EnumDescriptorProto\x12\x12\n" +
"\x04name\x18\x01 \x01(\tR\x04name\x12?\n" +
"\x05value\x18\x02 \x03(\v2).google.protobuf.EnumValueDescriptorProtoR\x05value\x126\n" +
"\aoptions\x18\x03 \x01(\v2\x1c.google.protobuf.EnumOptionsR\aoptions\x12]\n" +
"\x0ereserved_range\x18\x04 \x03(\v26.google.protobuf.EnumDescriptorProto.EnumReservedRangeR\rreservedRange\x12#\n" +
- "\rreserved_name\x18\x05 \x03(\tR\freservedName\x1a;\n" +
+ "\rreserved_name\x18\x05 \x03(\tR\freservedName\x12A\n" +
+ "\n" +
+ "visibility\x18\x06 \x01(\x0e2!.google.protobuf.SymbolVisibilityR\n" +
+ "visibility\x1a;\n" +
"\x11EnumReservedRange\x12\x14\n" +
"\x05start\x18\x01 \x01(\x05R\x05start\x12\x10\n" +
"\x03end\x18\x02 \x01(\x05R\x03end\"\x83\x01\n" +
"\x18EnumValueDescriptorProto\x12\x12\n" +
"\x04name\x18\x01 \x01(\tR\x04name\x12\x16\n" +
"\x06number\x18\x02 \x01(\x05R\x06number\x12;\n" +
- "\aoptions\x18\x03 \x01(\v2!.google.protobuf.EnumValueOptionsR\aoptions\"\xa7\x01\n" +
+ "\aoptions\x18\x03 \x01(\v2!.google.protobuf.EnumValueOptionsR\aoptions\"\xb5\x01\n" +
"\x16ServiceDescriptorProto\x12\x12\n" +
"\x04name\x18\x01 \x01(\tR\x04name\x12>\n" +
"\x06method\x18\x02 \x03(\v2&.google.protobuf.MethodDescriptorProtoR\x06method\x129\n" +
- "\aoptions\x18\x03 \x01(\v2\x1f.google.protobuf.ServiceOptionsR\aoptions\"\x89\x02\n" +
+ "\aoptions\x18\x03 \x01(\v2\x1f.google.protobuf.ServiceOptionsR\aoptionsJ\x04\b\x04\x10\x05R\x06stream\"\x89\x02\n" +
"\x15MethodDescriptorProto\x12\x12\n" +
"\x04name\x18\x01 \x01(\tR\x04name\x12\x1d\n" +
"\n" +
@@ -4629,7 +4851,7 @@ const file_google_protobuf_descriptor_proto_rawDesc = "" +
"&deprecated_legacy_json_field_conflicts\x18\v \x01(\bB\x02\x18\x01R\"deprecatedLegacyJsonFieldConflicts\x127\n" +
"\bfeatures\x18\f \x01(\v2\x1b.google.protobuf.FeatureSetR\bfeatures\x12X\n" +
"\x14uninterpreted_option\x18\xe7\a \x03(\v2$.google.protobuf.UninterpretedOptionR\x13uninterpretedOption*\t\b\xe8\a\x10\x80\x80\x80\x80\x02J\x04\b\x04\x10\x05J\x04\b\x05\x10\x06J\x04\b\x06\x10\aJ\x04\b\b\x10\tJ\x04\b\t\x10\n" +
- "\"\x9d\r\n" +
+ "\"\xa1\r\n" +
"\fFieldOptions\x12A\n" +
"\x05ctype\x18\x01 \x01(\x0e2#.google.protobuf.FieldOptions.CType:\x06STRINGR\x05ctype\x12\x16\n" +
"\x06packed\x18\x02 \x01(\bR\x06packed\x12G\n" +
@@ -4638,9 +4860,9 @@ const file_google_protobuf_descriptor_proto_rawDesc = "" +
"\x0funverified_lazy\x18\x0f \x01(\b:\x05falseR\x0eunverifiedLazy\x12%\n" +
"\n" +
"deprecated\x18\x03 \x01(\b:\x05falseR\n" +
- "deprecated\x12\x19\n" +
+ "deprecated\x12\x1d\n" +
"\x04weak\x18\n" +
- " \x01(\b:\x05falseR\x04weak\x12(\n" +
+ " \x01(\b:\x05falseB\x02\x18\x01R\x04weak\x12(\n" +
"\fdebug_redact\x18\x10 \x01(\b:\x05falseR\vdebugRedact\x12K\n" +
"\tretention\x18\x11 \x01(\x0e2-.google.protobuf.FieldOptions.OptionRetentionR\tretention\x12H\n" +
"\atargets\x18\x13 \x03(\x0e2..google.protobuf.FieldOptions.OptionTargetTypeR\atargets\x12W\n" +
@@ -4728,7 +4950,7 @@ const file_google_protobuf_descriptor_proto_rawDesc = "" +
"\x0faggregate_value\x18\b \x01(\tR\x0eaggregateValue\x1aJ\n" +
"\bNamePart\x12\x1b\n" +
"\tname_part\x18\x01 \x02(\tR\bnamePart\x12!\n" +
- "\fis_extension\x18\x02 \x02(\bR\visExtension\"\xae\f\n" +
+ "\fis_extension\x18\x02 \x02(\bR\visExtension\"\x8e\x0f\n" +
"\n" +
"FeatureSet\x12\x91\x01\n" +
"\x0efield_presence\x18\x01 \x01(\x0e2).google.protobuf.FeatureSet.FieldPresenceB?\x88\x01\x01\x98\x01\x04\x98\x01\x01\xa2\x01\r\x12\bEXPLICIT\x18\x84\a\xa2\x01\r\x12\bIMPLICIT\x18\xe7\a\xa2\x01\r\x12\bEXPLICIT\x18\xe8\a\xb2\x01\x03\b\xe8\aR\rfieldPresence\x12l\n" +
@@ -4739,7 +4961,18 @@ const file_google_protobuf_descriptor_proto_rawDesc = "" +
"\vjson_format\x18\x06 \x01(\x0e2&.google.protobuf.FeatureSet.JsonFormatB9\x88\x01\x01\x98\x01\x03\x98\x01\x06\x98\x01\x01\xa2\x01\x17\x12\x12LEGACY_BEST_EFFORT\x18\x84\a\xa2\x01\n" +
"\x12\x05ALLOW\x18\xe7\a\xb2\x01\x03\b\xe8\aR\n" +
"jsonFormat\x12\xab\x01\n" +
- "\x14enforce_naming_style\x18\a \x01(\x0e2..google.protobuf.FeatureSet.EnforceNamingStyleBI\x88\x01\x02\x98\x01\x01\x98\x01\x02\x98\x01\x03\x98\x01\x04\x98\x01\x05\x98\x01\x06\x98\x01\a\x98\x01\b\x98\x01\t\xa2\x01\x11\x12\fSTYLE_LEGACY\x18\x84\a\xa2\x01\x0e\x12\tSTYLE2024\x18\xe9\a\xb2\x01\x03\b\xe9\aR\x12enforceNamingStyle\"\\\n" +
+ "\x14enforce_naming_style\x18\a \x01(\x0e2..google.protobuf.FeatureSet.EnforceNamingStyleBI\x88\x01\x02\x98\x01\x01\x98\x01\x02\x98\x01\x03\x98\x01\x04\x98\x01\x05\x98\x01\x06\x98\x01\a\x98\x01\b\x98\x01\t\xa2\x01\x11\x12\fSTYLE_LEGACY\x18\x84\a\xa2\x01\x0e\x12\tSTYLE2024\x18\xe9\a\xb2\x01\x03\b\xe9\aR\x12enforceNamingStyle\x12\xb9\x01\n" +
+ "\x19default_symbol_visibility\x18\b \x01(\x0e2E.google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibilityB6\x88\x01\x02\x98\x01\x01\xa2\x01\x0f\x12\n" +
+ "EXPORT_ALL\x18\x84\a\xa2\x01\x15\x12\x10EXPORT_TOP_LEVEL\x18\xe9\a\xb2\x01\x03\b\xe9\aR\x17defaultSymbolVisibility\x1a\xa1\x01\n" +
+ "\x11VisibilityFeature\"\x81\x01\n" +
+ "\x17DefaultSymbolVisibility\x12%\n" +
+ "!DEFAULT_SYMBOL_VISIBILITY_UNKNOWN\x10\x00\x12\x0e\n" +
+ "\n" +
+ "EXPORT_ALL\x10\x01\x12\x14\n" +
+ "\x10EXPORT_TOP_LEVEL\x10\x02\x12\r\n" +
+ "\tLOCAL_ALL\x10\x03\x12\n" +
+ "\n" +
+ "\x06STRICT\x10\x04J\b\b\x01\x10\x80\x80\x80\x80\x02\"\\\n" +
"\rFieldPresence\x12\x1a\n" +
"\x16FIELD_PRESENCE_UNKNOWN\x10\x00\x12\f\n" +
"\bEXPLICIT\x10\x01\x12\f\n" +
@@ -4804,20 +5037,25 @@ const file_google_protobuf_descriptor_proto_rawDesc = "" +
"\bSemantic\x12\b\n" +
"\x04NONE\x10\x00\x12\a\n" +
"\x03SET\x10\x01\x12\t\n" +
- "\x05ALIAS\x10\x02*\xa7\x02\n" +
+ "\x05ALIAS\x10\x02*\xbe\x02\n" +
"\aEdition\x12\x13\n" +
"\x0fEDITION_UNKNOWN\x10\x00\x12\x13\n" +
"\x0eEDITION_LEGACY\x10\x84\a\x12\x13\n" +
"\x0eEDITION_PROTO2\x10\xe6\a\x12\x13\n" +
"\x0eEDITION_PROTO3\x10\xe7\a\x12\x11\n" +
"\fEDITION_2023\x10\xe8\a\x12\x11\n" +
- "\fEDITION_2024\x10\xe9\a\x12\x17\n" +
+ "\fEDITION_2024\x10\xe9\a\x12\x15\n" +
+ "\x10EDITION_UNSTABLE\x10\x8fN\x12\x17\n" +
"\x13EDITION_1_TEST_ONLY\x10\x01\x12\x17\n" +
"\x13EDITION_2_TEST_ONLY\x10\x02\x12\x1d\n" +
"\x17EDITION_99997_TEST_ONLY\x10\x9d\x8d\x06\x12\x1d\n" +
"\x17EDITION_99998_TEST_ONLY\x10\x9e\x8d\x06\x12\x1d\n" +
"\x17EDITION_99999_TEST_ONLY\x10\x9f\x8d\x06\x12\x13\n" +
- "\vEDITION_MAX\x10\xff\xff\xff\xff\aB~\n" +
+ "\vEDITION_MAX\x10\xff\xff\xff\xff\a*U\n" +
+ "\x10SymbolVisibility\x12\x14\n" +
+ "\x10VISIBILITY_UNSET\x10\x00\x12\x14\n" +
+ "\x10VISIBILITY_LOCAL\x10\x01\x12\x15\n" +
+ "\x11VISIBILITY_EXPORT\x10\x02B~\n" +
"\x13com.google.protobufB\x10DescriptorProtosH\x01Z-google.golang.org/protobuf/types/descriptorpb\xf8\x01\x01\xa2\x02\x03GPB\xaa\x02\x1aGoogle.Protobuf.Reflection"
var (
@@ -4832,145 +5070,151 @@ func file_google_protobuf_descriptor_proto_rawDescGZIP() []byte {
return file_google_protobuf_descriptor_proto_rawDescData
}
-var file_google_protobuf_descriptor_proto_enumTypes = make([]protoimpl.EnumInfo, 18)
-var file_google_protobuf_descriptor_proto_msgTypes = make([]protoimpl.MessageInfo, 33)
+var file_google_protobuf_descriptor_proto_enumTypes = make([]protoimpl.EnumInfo, 20)
+var file_google_protobuf_descriptor_proto_msgTypes = make([]protoimpl.MessageInfo, 34)
var file_google_protobuf_descriptor_proto_goTypes = []any{
- (Edition)(0), // 0: google.protobuf.Edition
- (ExtensionRangeOptions_VerificationState)(0), // 1: google.protobuf.ExtensionRangeOptions.VerificationState
- (FieldDescriptorProto_Type)(0), // 2: google.protobuf.FieldDescriptorProto.Type
- (FieldDescriptorProto_Label)(0), // 3: google.protobuf.FieldDescriptorProto.Label
- (FileOptions_OptimizeMode)(0), // 4: google.protobuf.FileOptions.OptimizeMode
- (FieldOptions_CType)(0), // 5: google.protobuf.FieldOptions.CType
- (FieldOptions_JSType)(0), // 6: google.protobuf.FieldOptions.JSType
- (FieldOptions_OptionRetention)(0), // 7: google.protobuf.FieldOptions.OptionRetention
- (FieldOptions_OptionTargetType)(0), // 8: google.protobuf.FieldOptions.OptionTargetType
- (MethodOptions_IdempotencyLevel)(0), // 9: google.protobuf.MethodOptions.IdempotencyLevel
- (FeatureSet_FieldPresence)(0), // 10: google.protobuf.FeatureSet.FieldPresence
- (FeatureSet_EnumType)(0), // 11: google.protobuf.FeatureSet.EnumType
- (FeatureSet_RepeatedFieldEncoding)(0), // 12: google.protobuf.FeatureSet.RepeatedFieldEncoding
- (FeatureSet_Utf8Validation)(0), // 13: google.protobuf.FeatureSet.Utf8Validation
- (FeatureSet_MessageEncoding)(0), // 14: google.protobuf.FeatureSet.MessageEncoding
- (FeatureSet_JsonFormat)(0), // 15: google.protobuf.FeatureSet.JsonFormat
- (FeatureSet_EnforceNamingStyle)(0), // 16: google.protobuf.FeatureSet.EnforceNamingStyle
- (GeneratedCodeInfo_Annotation_Semantic)(0), // 17: google.protobuf.GeneratedCodeInfo.Annotation.Semantic
- (*FileDescriptorSet)(nil), // 18: google.protobuf.FileDescriptorSet
- (*FileDescriptorProto)(nil), // 19: google.protobuf.FileDescriptorProto
- (*DescriptorProto)(nil), // 20: google.protobuf.DescriptorProto
- (*ExtensionRangeOptions)(nil), // 21: google.protobuf.ExtensionRangeOptions
- (*FieldDescriptorProto)(nil), // 22: google.protobuf.FieldDescriptorProto
- (*OneofDescriptorProto)(nil), // 23: google.protobuf.OneofDescriptorProto
- (*EnumDescriptorProto)(nil), // 24: google.protobuf.EnumDescriptorProto
- (*EnumValueDescriptorProto)(nil), // 25: google.protobuf.EnumValueDescriptorProto
- (*ServiceDescriptorProto)(nil), // 26: google.protobuf.ServiceDescriptorProto
- (*MethodDescriptorProto)(nil), // 27: google.protobuf.MethodDescriptorProto
- (*FileOptions)(nil), // 28: google.protobuf.FileOptions
- (*MessageOptions)(nil), // 29: google.protobuf.MessageOptions
- (*FieldOptions)(nil), // 30: google.protobuf.FieldOptions
- (*OneofOptions)(nil), // 31: google.protobuf.OneofOptions
- (*EnumOptions)(nil), // 32: google.protobuf.EnumOptions
- (*EnumValueOptions)(nil), // 33: google.protobuf.EnumValueOptions
- (*ServiceOptions)(nil), // 34: google.protobuf.ServiceOptions
- (*MethodOptions)(nil), // 35: google.protobuf.MethodOptions
- (*UninterpretedOption)(nil), // 36: google.protobuf.UninterpretedOption
- (*FeatureSet)(nil), // 37: google.protobuf.FeatureSet
- (*FeatureSetDefaults)(nil), // 38: google.protobuf.FeatureSetDefaults
- (*SourceCodeInfo)(nil), // 39: google.protobuf.SourceCodeInfo
- (*GeneratedCodeInfo)(nil), // 40: google.protobuf.GeneratedCodeInfo
- (*DescriptorProto_ExtensionRange)(nil), // 41: google.protobuf.DescriptorProto.ExtensionRange
- (*DescriptorProto_ReservedRange)(nil), // 42: google.protobuf.DescriptorProto.ReservedRange
- (*ExtensionRangeOptions_Declaration)(nil), // 43: google.protobuf.ExtensionRangeOptions.Declaration
- (*EnumDescriptorProto_EnumReservedRange)(nil), // 44: google.protobuf.EnumDescriptorProto.EnumReservedRange
- (*FieldOptions_EditionDefault)(nil), // 45: google.protobuf.FieldOptions.EditionDefault
- (*FieldOptions_FeatureSupport)(nil), // 46: google.protobuf.FieldOptions.FeatureSupport
- (*UninterpretedOption_NamePart)(nil), // 47: google.protobuf.UninterpretedOption.NamePart
- (*FeatureSetDefaults_FeatureSetEditionDefault)(nil), // 48: google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault
- (*SourceCodeInfo_Location)(nil), // 49: google.protobuf.SourceCodeInfo.Location
- (*GeneratedCodeInfo_Annotation)(nil), // 50: google.protobuf.GeneratedCodeInfo.Annotation
+ (Edition)(0), // 0: google.protobuf.Edition
+ (SymbolVisibility)(0), // 1: google.protobuf.SymbolVisibility
+ (ExtensionRangeOptions_VerificationState)(0), // 2: google.protobuf.ExtensionRangeOptions.VerificationState
+ (FieldDescriptorProto_Type)(0), // 3: google.protobuf.FieldDescriptorProto.Type
+ (FieldDescriptorProto_Label)(0), // 4: google.protobuf.FieldDescriptorProto.Label
+ (FileOptions_OptimizeMode)(0), // 5: google.protobuf.FileOptions.OptimizeMode
+ (FieldOptions_CType)(0), // 6: google.protobuf.FieldOptions.CType
+ (FieldOptions_JSType)(0), // 7: google.protobuf.FieldOptions.JSType
+ (FieldOptions_OptionRetention)(0), // 8: google.protobuf.FieldOptions.OptionRetention
+ (FieldOptions_OptionTargetType)(0), // 9: google.protobuf.FieldOptions.OptionTargetType
+ (MethodOptions_IdempotencyLevel)(0), // 10: google.protobuf.MethodOptions.IdempotencyLevel
+ (FeatureSet_FieldPresence)(0), // 11: google.protobuf.FeatureSet.FieldPresence
+ (FeatureSet_EnumType)(0), // 12: google.protobuf.FeatureSet.EnumType
+ (FeatureSet_RepeatedFieldEncoding)(0), // 13: google.protobuf.FeatureSet.RepeatedFieldEncoding
+ (FeatureSet_Utf8Validation)(0), // 14: google.protobuf.FeatureSet.Utf8Validation
+ (FeatureSet_MessageEncoding)(0), // 15: google.protobuf.FeatureSet.MessageEncoding
+ (FeatureSet_JsonFormat)(0), // 16: google.protobuf.FeatureSet.JsonFormat
+ (FeatureSet_EnforceNamingStyle)(0), // 17: google.protobuf.FeatureSet.EnforceNamingStyle
+ (FeatureSet_VisibilityFeature_DefaultSymbolVisibility)(0), // 18: google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility
+ (GeneratedCodeInfo_Annotation_Semantic)(0), // 19: google.protobuf.GeneratedCodeInfo.Annotation.Semantic
+ (*FileDescriptorSet)(nil), // 20: google.protobuf.FileDescriptorSet
+ (*FileDescriptorProto)(nil), // 21: google.protobuf.FileDescriptorProto
+ (*DescriptorProto)(nil), // 22: google.protobuf.DescriptorProto
+ (*ExtensionRangeOptions)(nil), // 23: google.protobuf.ExtensionRangeOptions
+ (*FieldDescriptorProto)(nil), // 24: google.protobuf.FieldDescriptorProto
+ (*OneofDescriptorProto)(nil), // 25: google.protobuf.OneofDescriptorProto
+ (*EnumDescriptorProto)(nil), // 26: google.protobuf.EnumDescriptorProto
+ (*EnumValueDescriptorProto)(nil), // 27: google.protobuf.EnumValueDescriptorProto
+ (*ServiceDescriptorProto)(nil), // 28: google.protobuf.ServiceDescriptorProto
+ (*MethodDescriptorProto)(nil), // 29: google.protobuf.MethodDescriptorProto
+ (*FileOptions)(nil), // 30: google.protobuf.FileOptions
+ (*MessageOptions)(nil), // 31: google.protobuf.MessageOptions
+ (*FieldOptions)(nil), // 32: google.protobuf.FieldOptions
+ (*OneofOptions)(nil), // 33: google.protobuf.OneofOptions
+ (*EnumOptions)(nil), // 34: google.protobuf.EnumOptions
+ (*EnumValueOptions)(nil), // 35: google.protobuf.EnumValueOptions
+ (*ServiceOptions)(nil), // 36: google.protobuf.ServiceOptions
+ (*MethodOptions)(nil), // 37: google.protobuf.MethodOptions
+ (*UninterpretedOption)(nil), // 38: google.protobuf.UninterpretedOption
+ (*FeatureSet)(nil), // 39: google.protobuf.FeatureSet
+ (*FeatureSetDefaults)(nil), // 40: google.protobuf.FeatureSetDefaults
+ (*SourceCodeInfo)(nil), // 41: google.protobuf.SourceCodeInfo
+ (*GeneratedCodeInfo)(nil), // 42: google.protobuf.GeneratedCodeInfo
+ (*DescriptorProto_ExtensionRange)(nil), // 43: google.protobuf.DescriptorProto.ExtensionRange
+ (*DescriptorProto_ReservedRange)(nil), // 44: google.protobuf.DescriptorProto.ReservedRange
+ (*ExtensionRangeOptions_Declaration)(nil), // 45: google.protobuf.ExtensionRangeOptions.Declaration
+ (*EnumDescriptorProto_EnumReservedRange)(nil), // 46: google.protobuf.EnumDescriptorProto.EnumReservedRange
+ (*FieldOptions_EditionDefault)(nil), // 47: google.protobuf.FieldOptions.EditionDefault
+ (*FieldOptions_FeatureSupport)(nil), // 48: google.protobuf.FieldOptions.FeatureSupport
+ (*UninterpretedOption_NamePart)(nil), // 49: google.protobuf.UninterpretedOption.NamePart
+ (*FeatureSet_VisibilityFeature)(nil), // 50: google.protobuf.FeatureSet.VisibilityFeature
+ (*FeatureSetDefaults_FeatureSetEditionDefault)(nil), // 51: google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault
+ (*SourceCodeInfo_Location)(nil), // 52: google.protobuf.SourceCodeInfo.Location
+ (*GeneratedCodeInfo_Annotation)(nil), // 53: google.protobuf.GeneratedCodeInfo.Annotation
}
var file_google_protobuf_descriptor_proto_depIdxs = []int32{
- 19, // 0: google.protobuf.FileDescriptorSet.file:type_name -> google.protobuf.FileDescriptorProto
- 20, // 1: google.protobuf.FileDescriptorProto.message_type:type_name -> google.protobuf.DescriptorProto
- 24, // 2: google.protobuf.FileDescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto
- 26, // 3: google.protobuf.FileDescriptorProto.service:type_name -> google.protobuf.ServiceDescriptorProto
- 22, // 4: google.protobuf.FileDescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto
- 28, // 5: google.protobuf.FileDescriptorProto.options:type_name -> google.protobuf.FileOptions
- 39, // 6: google.protobuf.FileDescriptorProto.source_code_info:type_name -> google.protobuf.SourceCodeInfo
+ 21, // 0: google.protobuf.FileDescriptorSet.file:type_name -> google.protobuf.FileDescriptorProto
+ 22, // 1: google.protobuf.FileDescriptorProto.message_type:type_name -> google.protobuf.DescriptorProto
+ 26, // 2: google.protobuf.FileDescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto
+ 28, // 3: google.protobuf.FileDescriptorProto.service:type_name -> google.protobuf.ServiceDescriptorProto
+ 24, // 4: google.protobuf.FileDescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto
+ 30, // 5: google.protobuf.FileDescriptorProto.options:type_name -> google.protobuf.FileOptions
+ 41, // 6: google.protobuf.FileDescriptorProto.source_code_info:type_name -> google.protobuf.SourceCodeInfo
0, // 7: google.protobuf.FileDescriptorProto.edition:type_name -> google.protobuf.Edition
- 22, // 8: google.protobuf.DescriptorProto.field:type_name -> google.protobuf.FieldDescriptorProto
- 22, // 9: google.protobuf.DescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto
- 20, // 10: google.protobuf.DescriptorProto.nested_type:type_name -> google.protobuf.DescriptorProto
- 24, // 11: google.protobuf.DescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto
- 41, // 12: google.protobuf.DescriptorProto.extension_range:type_name -> google.protobuf.DescriptorProto.ExtensionRange
- 23, // 13: google.protobuf.DescriptorProto.oneof_decl:type_name -> google.protobuf.OneofDescriptorProto
- 29, // 14: google.protobuf.DescriptorProto.options:type_name -> google.protobuf.MessageOptions
- 42, // 15: google.protobuf.DescriptorProto.reserved_range:type_name -> google.protobuf.DescriptorProto.ReservedRange
- 36, // 16: google.protobuf.ExtensionRangeOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption
- 43, // 17: google.protobuf.ExtensionRangeOptions.declaration:type_name -> google.protobuf.ExtensionRangeOptions.Declaration
- 37, // 18: google.protobuf.ExtensionRangeOptions.features:type_name -> google.protobuf.FeatureSet
- 1, // 19: google.protobuf.ExtensionRangeOptions.verification:type_name -> google.protobuf.ExtensionRangeOptions.VerificationState
- 3, // 20: google.protobuf.FieldDescriptorProto.label:type_name -> google.protobuf.FieldDescriptorProto.Label
- 2, // 21: google.protobuf.FieldDescriptorProto.type:type_name -> google.protobuf.FieldDescriptorProto.Type
- 30, // 22: google.protobuf.FieldDescriptorProto.options:type_name -> google.protobuf.FieldOptions
- 31, // 23: google.protobuf.OneofDescriptorProto.options:type_name -> google.protobuf.OneofOptions
- 25, // 24: google.protobuf.EnumDescriptorProto.value:type_name -> google.protobuf.EnumValueDescriptorProto
- 32, // 25: google.protobuf.EnumDescriptorProto.options:type_name -> google.protobuf.EnumOptions
- 44, // 26: google.protobuf.EnumDescriptorProto.reserved_range:type_name -> google.protobuf.EnumDescriptorProto.EnumReservedRange
- 33, // 27: google.protobuf.EnumValueDescriptorProto.options:type_name -> google.protobuf.EnumValueOptions
- 27, // 28: google.protobuf.ServiceDescriptorProto.method:type_name -> google.protobuf.MethodDescriptorProto
- 34, // 29: google.protobuf.ServiceDescriptorProto.options:type_name -> google.protobuf.ServiceOptions
- 35, // 30: google.protobuf.MethodDescriptorProto.options:type_name -> google.protobuf.MethodOptions
- 4, // 31: google.protobuf.FileOptions.optimize_for:type_name -> google.protobuf.FileOptions.OptimizeMode
- 37, // 32: google.protobuf.FileOptions.features:type_name -> google.protobuf.FeatureSet
- 36, // 33: google.protobuf.FileOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption
- 37, // 34: google.protobuf.MessageOptions.features:type_name -> google.protobuf.FeatureSet
- 36, // 35: google.protobuf.MessageOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption
- 5, // 36: google.protobuf.FieldOptions.ctype:type_name -> google.protobuf.FieldOptions.CType
- 6, // 37: google.protobuf.FieldOptions.jstype:type_name -> google.protobuf.FieldOptions.JSType
- 7, // 38: google.protobuf.FieldOptions.retention:type_name -> google.protobuf.FieldOptions.OptionRetention
- 8, // 39: google.protobuf.FieldOptions.targets:type_name -> google.protobuf.FieldOptions.OptionTargetType
- 45, // 40: google.protobuf.FieldOptions.edition_defaults:type_name -> google.protobuf.FieldOptions.EditionDefault
- 37, // 41: google.protobuf.FieldOptions.features:type_name -> google.protobuf.FeatureSet
- 46, // 42: google.protobuf.FieldOptions.feature_support:type_name -> google.protobuf.FieldOptions.FeatureSupport
- 36, // 43: google.protobuf.FieldOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption
- 37, // 44: google.protobuf.OneofOptions.features:type_name -> google.protobuf.FeatureSet
- 36, // 45: google.protobuf.OneofOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption
- 37, // 46: google.protobuf.EnumOptions.features:type_name -> google.protobuf.FeatureSet
- 36, // 47: google.protobuf.EnumOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption
- 37, // 48: google.protobuf.EnumValueOptions.features:type_name -> google.protobuf.FeatureSet
- 46, // 49: google.protobuf.EnumValueOptions.feature_support:type_name -> google.protobuf.FieldOptions.FeatureSupport
- 36, // 50: google.protobuf.EnumValueOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption
- 37, // 51: google.protobuf.ServiceOptions.features:type_name -> google.protobuf.FeatureSet
- 36, // 52: google.protobuf.ServiceOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption
- 9, // 53: google.protobuf.MethodOptions.idempotency_level:type_name -> google.protobuf.MethodOptions.IdempotencyLevel
- 37, // 54: google.protobuf.MethodOptions.features:type_name -> google.protobuf.FeatureSet
- 36, // 55: google.protobuf.MethodOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption
- 47, // 56: google.protobuf.UninterpretedOption.name:type_name -> google.protobuf.UninterpretedOption.NamePart
- 10, // 57: google.protobuf.FeatureSet.field_presence:type_name -> google.protobuf.FeatureSet.FieldPresence
- 11, // 58: google.protobuf.FeatureSet.enum_type:type_name -> google.protobuf.FeatureSet.EnumType
- 12, // 59: google.protobuf.FeatureSet.repeated_field_encoding:type_name -> google.protobuf.FeatureSet.RepeatedFieldEncoding
- 13, // 60: google.protobuf.FeatureSet.utf8_validation:type_name -> google.protobuf.FeatureSet.Utf8Validation
- 14, // 61: google.protobuf.FeatureSet.message_encoding:type_name -> google.protobuf.FeatureSet.MessageEncoding
- 15, // 62: google.protobuf.FeatureSet.json_format:type_name -> google.protobuf.FeatureSet.JsonFormat
- 16, // 63: google.protobuf.FeatureSet.enforce_naming_style:type_name -> google.protobuf.FeatureSet.EnforceNamingStyle
- 48, // 64: google.protobuf.FeatureSetDefaults.defaults:type_name -> google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault
- 0, // 65: google.protobuf.FeatureSetDefaults.minimum_edition:type_name -> google.protobuf.Edition
- 0, // 66: google.protobuf.FeatureSetDefaults.maximum_edition:type_name -> google.protobuf.Edition
- 49, // 67: google.protobuf.SourceCodeInfo.location:type_name -> google.protobuf.SourceCodeInfo.Location
- 50, // 68: google.protobuf.GeneratedCodeInfo.annotation:type_name -> google.protobuf.GeneratedCodeInfo.Annotation
- 21, // 69: google.protobuf.DescriptorProto.ExtensionRange.options:type_name -> google.protobuf.ExtensionRangeOptions
- 0, // 70: google.protobuf.FieldOptions.EditionDefault.edition:type_name -> google.protobuf.Edition
- 0, // 71: google.protobuf.FieldOptions.FeatureSupport.edition_introduced:type_name -> google.protobuf.Edition
- 0, // 72: google.protobuf.FieldOptions.FeatureSupport.edition_deprecated:type_name -> google.protobuf.Edition
- 0, // 73: google.protobuf.FieldOptions.FeatureSupport.edition_removed:type_name -> google.protobuf.Edition
- 0, // 74: google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.edition:type_name -> google.protobuf.Edition
- 37, // 75: google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.overridable_features:type_name -> google.protobuf.FeatureSet
- 37, // 76: google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.fixed_features:type_name -> google.protobuf.FeatureSet
- 17, // 77: google.protobuf.GeneratedCodeInfo.Annotation.semantic:type_name -> google.protobuf.GeneratedCodeInfo.Annotation.Semantic
- 78, // [78:78] is the sub-list for method output_type
- 78, // [78:78] is the sub-list for method input_type
- 78, // [78:78] is the sub-list for extension type_name
- 78, // [78:78] is the sub-list for extension extendee
- 0, // [0:78] is the sub-list for field type_name
+ 24, // 8: google.protobuf.DescriptorProto.field:type_name -> google.protobuf.FieldDescriptorProto
+ 24, // 9: google.protobuf.DescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto
+ 22, // 10: google.protobuf.DescriptorProto.nested_type:type_name -> google.protobuf.DescriptorProto
+ 26, // 11: google.protobuf.DescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto
+ 43, // 12: google.protobuf.DescriptorProto.extension_range:type_name -> google.protobuf.DescriptorProto.ExtensionRange
+ 25, // 13: google.protobuf.DescriptorProto.oneof_decl:type_name -> google.protobuf.OneofDescriptorProto
+ 31, // 14: google.protobuf.DescriptorProto.options:type_name -> google.protobuf.MessageOptions
+ 44, // 15: google.protobuf.DescriptorProto.reserved_range:type_name -> google.protobuf.DescriptorProto.ReservedRange
+ 1, // 16: google.protobuf.DescriptorProto.visibility:type_name -> google.protobuf.SymbolVisibility
+ 38, // 17: google.protobuf.ExtensionRangeOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption
+ 45, // 18: google.protobuf.ExtensionRangeOptions.declaration:type_name -> google.protobuf.ExtensionRangeOptions.Declaration
+ 39, // 19: google.protobuf.ExtensionRangeOptions.features:type_name -> google.protobuf.FeatureSet
+ 2, // 20: google.protobuf.ExtensionRangeOptions.verification:type_name -> google.protobuf.ExtensionRangeOptions.VerificationState
+ 4, // 21: google.protobuf.FieldDescriptorProto.label:type_name -> google.protobuf.FieldDescriptorProto.Label
+ 3, // 22: google.protobuf.FieldDescriptorProto.type:type_name -> google.protobuf.FieldDescriptorProto.Type
+ 32, // 23: google.protobuf.FieldDescriptorProto.options:type_name -> google.protobuf.FieldOptions
+ 33, // 24: google.protobuf.OneofDescriptorProto.options:type_name -> google.protobuf.OneofOptions
+ 27, // 25: google.protobuf.EnumDescriptorProto.value:type_name -> google.protobuf.EnumValueDescriptorProto
+ 34, // 26: google.protobuf.EnumDescriptorProto.options:type_name -> google.protobuf.EnumOptions
+ 46, // 27: google.protobuf.EnumDescriptorProto.reserved_range:type_name -> google.protobuf.EnumDescriptorProto.EnumReservedRange
+ 1, // 28: google.protobuf.EnumDescriptorProto.visibility:type_name -> google.protobuf.SymbolVisibility
+ 35, // 29: google.protobuf.EnumValueDescriptorProto.options:type_name -> google.protobuf.EnumValueOptions
+ 29, // 30: google.protobuf.ServiceDescriptorProto.method:type_name -> google.protobuf.MethodDescriptorProto
+ 36, // 31: google.protobuf.ServiceDescriptorProto.options:type_name -> google.protobuf.ServiceOptions
+ 37, // 32: google.protobuf.MethodDescriptorProto.options:type_name -> google.protobuf.MethodOptions
+ 5, // 33: google.protobuf.FileOptions.optimize_for:type_name -> google.protobuf.FileOptions.OptimizeMode
+ 39, // 34: google.protobuf.FileOptions.features:type_name -> google.protobuf.FeatureSet
+ 38, // 35: google.protobuf.FileOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption
+ 39, // 36: google.protobuf.MessageOptions.features:type_name -> google.protobuf.FeatureSet
+ 38, // 37: google.protobuf.MessageOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption
+ 6, // 38: google.protobuf.FieldOptions.ctype:type_name -> google.protobuf.FieldOptions.CType
+ 7, // 39: google.protobuf.FieldOptions.jstype:type_name -> google.protobuf.FieldOptions.JSType
+ 8, // 40: google.protobuf.FieldOptions.retention:type_name -> google.protobuf.FieldOptions.OptionRetention
+ 9, // 41: google.protobuf.FieldOptions.targets:type_name -> google.protobuf.FieldOptions.OptionTargetType
+ 47, // 42: google.protobuf.FieldOptions.edition_defaults:type_name -> google.protobuf.FieldOptions.EditionDefault
+ 39, // 43: google.protobuf.FieldOptions.features:type_name -> google.protobuf.FeatureSet
+ 48, // 44: google.protobuf.FieldOptions.feature_support:type_name -> google.protobuf.FieldOptions.FeatureSupport
+ 38, // 45: google.protobuf.FieldOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption
+ 39, // 46: google.protobuf.OneofOptions.features:type_name -> google.protobuf.FeatureSet
+ 38, // 47: google.protobuf.OneofOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption
+ 39, // 48: google.protobuf.EnumOptions.features:type_name -> google.protobuf.FeatureSet
+ 38, // 49: google.protobuf.EnumOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption
+ 39, // 50: google.protobuf.EnumValueOptions.features:type_name -> google.protobuf.FeatureSet
+ 48, // 51: google.protobuf.EnumValueOptions.feature_support:type_name -> google.protobuf.FieldOptions.FeatureSupport
+ 38, // 52: google.protobuf.EnumValueOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption
+ 39, // 53: google.protobuf.ServiceOptions.features:type_name -> google.protobuf.FeatureSet
+ 38, // 54: google.protobuf.ServiceOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption
+ 10, // 55: google.protobuf.MethodOptions.idempotency_level:type_name -> google.protobuf.MethodOptions.IdempotencyLevel
+ 39, // 56: google.protobuf.MethodOptions.features:type_name -> google.protobuf.FeatureSet
+ 38, // 57: google.protobuf.MethodOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption
+ 49, // 58: google.protobuf.UninterpretedOption.name:type_name -> google.protobuf.UninterpretedOption.NamePart
+ 11, // 59: google.protobuf.FeatureSet.field_presence:type_name -> google.protobuf.FeatureSet.FieldPresence
+ 12, // 60: google.protobuf.FeatureSet.enum_type:type_name -> google.protobuf.FeatureSet.EnumType
+ 13, // 61: google.protobuf.FeatureSet.repeated_field_encoding:type_name -> google.protobuf.FeatureSet.RepeatedFieldEncoding
+ 14, // 62: google.protobuf.FeatureSet.utf8_validation:type_name -> google.protobuf.FeatureSet.Utf8Validation
+ 15, // 63: google.protobuf.FeatureSet.message_encoding:type_name -> google.protobuf.FeatureSet.MessageEncoding
+ 16, // 64: google.protobuf.FeatureSet.json_format:type_name -> google.protobuf.FeatureSet.JsonFormat
+ 17, // 65: google.protobuf.FeatureSet.enforce_naming_style:type_name -> google.protobuf.FeatureSet.EnforceNamingStyle
+ 18, // 66: google.protobuf.FeatureSet.default_symbol_visibility:type_name -> google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility
+ 51, // 67: google.protobuf.FeatureSetDefaults.defaults:type_name -> google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault
+ 0, // 68: google.protobuf.FeatureSetDefaults.minimum_edition:type_name -> google.protobuf.Edition
+ 0, // 69: google.protobuf.FeatureSetDefaults.maximum_edition:type_name -> google.protobuf.Edition
+ 52, // 70: google.protobuf.SourceCodeInfo.location:type_name -> google.protobuf.SourceCodeInfo.Location
+ 53, // 71: google.protobuf.GeneratedCodeInfo.annotation:type_name -> google.protobuf.GeneratedCodeInfo.Annotation
+ 23, // 72: google.protobuf.DescriptorProto.ExtensionRange.options:type_name -> google.protobuf.ExtensionRangeOptions
+ 0, // 73: google.protobuf.FieldOptions.EditionDefault.edition:type_name -> google.protobuf.Edition
+ 0, // 74: google.protobuf.FieldOptions.FeatureSupport.edition_introduced:type_name -> google.protobuf.Edition
+ 0, // 75: google.protobuf.FieldOptions.FeatureSupport.edition_deprecated:type_name -> google.protobuf.Edition
+ 0, // 76: google.protobuf.FieldOptions.FeatureSupport.edition_removed:type_name -> google.protobuf.Edition
+ 0, // 77: google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.edition:type_name -> google.protobuf.Edition
+ 39, // 78: google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.overridable_features:type_name -> google.protobuf.FeatureSet
+ 39, // 79: google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault.fixed_features:type_name -> google.protobuf.FeatureSet
+ 19, // 80: google.protobuf.GeneratedCodeInfo.Annotation.semantic:type_name -> google.protobuf.GeneratedCodeInfo.Annotation.Semantic
+ 81, // [81:81] is the sub-list for method output_type
+ 81, // [81:81] is the sub-list for method input_type
+ 81, // [81:81] is the sub-list for extension type_name
+ 81, // [81:81] is the sub-list for extension extendee
+ 0, // [0:81] is the sub-list for field type_name
}
func init() { file_google_protobuf_descriptor_proto_init() }
@@ -4983,8 +5227,8 @@ func file_google_protobuf_descriptor_proto_init() {
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: unsafe.Slice(unsafe.StringData(file_google_protobuf_descriptor_proto_rawDesc), len(file_google_protobuf_descriptor_proto_rawDesc)),
- NumEnums: 18,
- NumMessages: 33,
+ NumEnums: 20,
+ NumMessages: 34,
NumExtensions: 0,
NumServices: 0,
},
diff --git a/vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go b/vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go
index 06d584c1..484c21fd 100644
--- a/vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go
+++ b/vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go
@@ -172,13 +172,14 @@ import (
// ) to obtain a formatter capable of generating timestamps in this format.
type Timestamp struct {
state protoimpl.MessageState `protogen:"open.v1"`
- // Represents seconds of UTC time since Unix epoch
- // 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to
- // 9999-12-31T23:59:59Z inclusive.
+ // Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must
+ // be between -315576000000 and 315576000000 inclusive (which corresponds to
+ // 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z).
Seconds int64 `protobuf:"varint,1,opt,name=seconds,proto3" json:"seconds,omitempty"`
- // Non-negative fractions of a second at nanosecond resolution. Negative
- // second values with fractions must still have non-negative nanos values
- // that count forward in time. Must be from 0 to 999,999,999
+ // Non-negative fractions of a second at nanosecond resolution. This field is
+ // the nanosecond portion of the duration, not an alternative to seconds.
+ // Negative second values with fractions must still have non-negative nanos
+ // values that count forward in time. Must be between 0 and 999,999,999
// inclusive.
Nanos int32 `protobuf:"varint,2,opt,name=nanos,proto3" json:"nanos,omitempty"`
unknownFields protoimpl.UnknownFields
diff --git a/vendor/gopkg.in/evanphx/json-patch.v4/README.md b/vendor/gopkg.in/evanphx/json-patch.v4/README.md
index 28e35169..86fefd5b 100644
--- a/vendor/gopkg.in/evanphx/json-patch.v4/README.md
+++ b/vendor/gopkg.in/evanphx/json-patch.v4/README.md
@@ -4,7 +4,7 @@
well as for calculating & applying [RFC7396 JSON merge patches](https://tools.ietf.org/html/rfc7396).
[](http://godoc.org/github.com/evanphx/json-patch)
-[](https://travis-ci.org/evanphx/json-patch)
+[](https://github.com/evanphx/json-patch/actions/workflows/go.yml)
[](https://goreportcard.com/report/github.com/evanphx/json-patch)
# Get It!
@@ -14,9 +14,7 @@ well as for calculating & applying [RFC7396 JSON merge patches](https://tools.ie
go get -u github.com/evanphx/json-patch/v5
```
-**Stable Versions**:
-* Version 5: `go get -u gopkg.in/evanphx/json-patch.v5`
-* Version 4: `go get -u gopkg.in/evanphx/json-patch.v4`
+If you need version 4, use `go get -u gopkg.in/evanphx/json-patch.v4`
(previous versions below `v3` are unavailable)
@@ -314,4 +312,4 @@ go test -cover ./...
```
Builds for pull requests are tested automatically
-using [TravisCI](https://travis-ci.org/evanphx/json-patch).
+using [GitHub Actions](https://github.com/evanphx/json-patch/actions/workflows/go.yml).
diff --git a/vendor/gopkg.in/evanphx/json-patch.v4/patch.go b/vendor/gopkg.in/evanphx/json-patch.v4/patch.go
index dc2b7e51..95136681 100644
--- a/vendor/gopkg.in/evanphx/json-patch.v4/patch.go
+++ b/vendor/gopkg.in/evanphx/json-patch.v4/patch.go
@@ -3,11 +3,10 @@ package jsonpatch
import (
"bytes"
"encoding/json"
+ "errors"
"fmt"
"strconv"
"strings"
-
- "github.com/pkg/errors"
)
const (
@@ -277,7 +276,7 @@ func (o Operation) Path() (string, error) {
return op, nil
}
- return "unknown", errors.Wrapf(ErrMissing, "operation missing path field")
+ return "unknown", fmt.Errorf("operation missing path field: %w", ErrMissing)
}
// From reads the "from" field of the Operation.
@@ -294,7 +293,7 @@ func (o Operation) From() (string, error) {
return op, nil
}
- return "unknown", errors.Wrapf(ErrMissing, "operation, missing from field")
+ return "unknown", fmt.Errorf("operation, missing from field: %w", ErrMissing)
}
func (o Operation) value() *lazyNode {
@@ -319,7 +318,7 @@ func (o Operation) ValueInterface() (interface{}, error) {
return v, nil
}
- return nil, errors.Wrapf(ErrMissing, "operation, missing value field")
+ return nil, fmt.Errorf("operation, missing value field: %w", ErrMissing)
}
func isArray(buf []byte) bool {
@@ -359,7 +358,7 @@ func findObject(pd *container, path string) (container, string) {
next, ok := doc.get(decodePatchKey(part))
- if next == nil || ok != nil {
+ if next == nil || ok != nil || next.raw == nil {
return nil, ""
}
@@ -398,7 +397,7 @@ func (d *partialDoc) get(key string) (*lazyNode, error) {
func (d *partialDoc) remove(key string) error {
_, ok := (*d)[key]
if !ok {
- return errors.Wrapf(ErrMissing, "Unable to remove nonexistent key: %s", key)
+ return fmt.Errorf("Unable to remove nonexistent key: %s: %w", key, ErrMissing)
}
delete(*d, key)
@@ -415,10 +414,10 @@ func (d *partialArray) set(key string, val *lazyNode) error {
if idx < 0 {
if !SupportNegativeIndices {
- return errors.Wrapf(ErrInvalidIndex, "Unable to access invalid index: %d", idx)
+ return fmt.Errorf("Unable to access invalid index: %d: %w", idx, ErrInvalidIndex)
}
if idx < -len(*d) {
- return errors.Wrapf(ErrInvalidIndex, "Unable to access invalid index: %d", idx)
+ return fmt.Errorf("Unable to access invalid index: %d: %w", idx, ErrInvalidIndex)
}
idx += len(*d)
}
@@ -435,7 +434,7 @@ func (d *partialArray) add(key string, val *lazyNode) error {
idx, err := strconv.Atoi(key)
if err != nil {
- return errors.Wrapf(err, "value was not a proper array index: '%s'", key)
+ return fmt.Errorf("value was not a proper array index: '%s': %w", key, err)
}
sz := len(*d) + 1
@@ -445,15 +444,15 @@ func (d *partialArray) add(key string, val *lazyNode) error {
cur := *d
if idx >= len(ary) {
- return errors.Wrapf(ErrInvalidIndex, "Unable to access invalid index: %d", idx)
+ return fmt.Errorf("Unable to access invalid index: %d: %w", idx, ErrInvalidIndex)
}
if idx < 0 {
if !SupportNegativeIndices {
- return errors.Wrapf(ErrInvalidIndex, "Unable to access invalid index: %d", idx)
+ return fmt.Errorf("Unable to access invalid index: %d: %w", idx, ErrInvalidIndex)
}
if idx < -len(ary) {
- return errors.Wrapf(ErrInvalidIndex, "Unable to access invalid index: %d", idx)
+ return fmt.Errorf("Unable to access invalid index: %d: %w", idx, ErrInvalidIndex)
}
idx += len(ary)
}
@@ -475,16 +474,16 @@ func (d *partialArray) get(key string) (*lazyNode, error) {
if idx < 0 {
if !SupportNegativeIndices {
- return nil, errors.Wrapf(ErrInvalidIndex, "Unable to access invalid index: %d", idx)
+ return nil, fmt.Errorf("Unable to access invalid index: %d: %w", idx, ErrInvalidIndex)
}
if idx < -len(*d) {
- return nil, errors.Wrapf(ErrInvalidIndex, "Unable to access invalid index: %d", idx)
+ return nil, fmt.Errorf("Unable to access invalid index: %d: %w", idx, ErrInvalidIndex)
}
idx += len(*d)
}
if idx >= len(*d) {
- return nil, errors.Wrapf(ErrInvalidIndex, "Unable to access invalid index: %d", idx)
+ return nil, fmt.Errorf("Unable to access invalid index: %d: %w", idx, ErrInvalidIndex)
}
return (*d)[idx], nil
@@ -499,15 +498,15 @@ func (d *partialArray) remove(key string) error {
cur := *d
if idx >= len(cur) {
- return errors.Wrapf(ErrInvalidIndex, "Unable to access invalid index: %d", idx)
+ return fmt.Errorf("Unable to access invalid index: %d: %w", idx, ErrInvalidIndex)
}
if idx < 0 {
if !SupportNegativeIndices {
- return errors.Wrapf(ErrInvalidIndex, "Unable to access invalid index: %d", idx)
+ return fmt.Errorf("Unable to access invalid index: %d: %w", idx, ErrInvalidIndex)
}
if idx < -len(cur) {
- return errors.Wrapf(ErrInvalidIndex, "Unable to access invalid index: %d", idx)
+ return fmt.Errorf("Unable to access invalid index: %d: %w", idx, ErrInvalidIndex)
}
idx += len(cur)
}
@@ -525,18 +524,18 @@ func (d *partialArray) remove(key string) error {
func (p Patch) add(doc *container, op Operation) error {
path, err := op.Path()
if err != nil {
- return errors.Wrapf(ErrMissing, "add operation failed to decode path")
+ return fmt.Errorf("add operation failed to decode path: %w", ErrMissing)
}
con, key := findObject(doc, path)
if con == nil {
- return errors.Wrapf(ErrMissing, "add operation does not apply: doc is missing path: \"%s\"", path)
+ return fmt.Errorf("add operation does not apply: doc is missing path: \"%s\": %w", path, ErrMissing)
}
err = con.add(key, op.value())
if err != nil {
- return errors.Wrapf(err, "error in add for path: '%s'", path)
+ return fmt.Errorf("error in add for path: '%s': %w", path, err)
}
return nil
@@ -545,18 +544,18 @@ func (p Patch) add(doc *container, op Operation) error {
func (p Patch) remove(doc *container, op Operation) error {
path, err := op.Path()
if err != nil {
- return errors.Wrapf(ErrMissing, "remove operation failed to decode path")
+ return fmt.Errorf("remove operation failed to decode path: %w", ErrMissing)
}
con, key := findObject(doc, path)
if con == nil {
- return errors.Wrapf(ErrMissing, "remove operation does not apply: doc is missing path: \"%s\"", path)
+ return fmt.Errorf("remove operation does not apply: doc is missing path: \"%s\": %w", path, ErrMissing)
}
err = con.remove(key)
if err != nil {
- return errors.Wrapf(err, "error in remove for path: '%s'", path)
+ return fmt.Errorf("error in remove for path: '%s': %w", path, err)
}
return nil
@@ -565,7 +564,7 @@ func (p Patch) remove(doc *container, op Operation) error {
func (p Patch) replace(doc *container, op Operation) error {
path, err := op.Path()
if err != nil {
- return errors.Wrapf(err, "replace operation failed to decode path")
+ return fmt.Errorf("replace operation failed to decode path: %w", err)
}
if path == "" {
@@ -574,7 +573,7 @@ func (p Patch) replace(doc *container, op Operation) error {
if val.which == eRaw {
if !val.tryDoc() {
if !val.tryAry() {
- return errors.Wrapf(err, "replace operation value must be object or array")
+ return fmt.Errorf("replace operation value must be object or array: %w", err)
}
}
}
@@ -585,7 +584,7 @@ func (p Patch) replace(doc *container, op Operation) error {
case eDoc:
*doc = &val.doc
case eRaw:
- return errors.Wrapf(err, "replace operation hit impossible case")
+ return fmt.Errorf("replace operation hit impossible case: %w", err)
}
return nil
@@ -594,17 +593,17 @@ func (p Patch) replace(doc *container, op Operation) error {
con, key := findObject(doc, path)
if con == nil {
- return errors.Wrapf(ErrMissing, "replace operation does not apply: doc is missing path: %s", path)
+ return fmt.Errorf("replace operation does not apply: doc is missing path: %s: %w", path, ErrMissing)
}
_, ok := con.get(key)
if ok != nil {
- return errors.Wrapf(ErrMissing, "replace operation does not apply: doc is missing key: %s", path)
+ return fmt.Errorf("replace operation does not apply: doc is missing key: %s: %w", path, ErrMissing)
}
err = con.set(key, op.value())
if err != nil {
- return errors.Wrapf(err, "error in remove for path: '%s'", path)
+ return fmt.Errorf("error in remove for path: '%s': %w", path, err)
}
return nil
@@ -613,39 +612,39 @@ func (p Patch) replace(doc *container, op Operation) error {
func (p Patch) move(doc *container, op Operation) error {
from, err := op.From()
if err != nil {
- return errors.Wrapf(err, "move operation failed to decode from")
+ return fmt.Errorf("move operation failed to decode from: %w", err)
}
con, key := findObject(doc, from)
if con == nil {
- return errors.Wrapf(ErrMissing, "move operation does not apply: doc is missing from path: %s", from)
+ return fmt.Errorf("move operation does not apply: doc is missing from path: %s: %w", from, ErrMissing)
}
val, err := con.get(key)
if err != nil {
- return errors.Wrapf(err, "error in move for path: '%s'", key)
+ return fmt.Errorf("error in move for path: '%s': %w", key, err)
}
err = con.remove(key)
if err != nil {
- return errors.Wrapf(err, "error in move for path: '%s'", key)
+ return fmt.Errorf("error in move for path: '%s': %w", key, err)
}
path, err := op.Path()
if err != nil {
- return errors.Wrapf(err, "move operation failed to decode path")
+ return fmt.Errorf("move operation failed to decode path: %w", err)
}
con, key = findObject(doc, path)
if con == nil {
- return errors.Wrapf(ErrMissing, "move operation does not apply: doc is missing destination path: %s", path)
+ return fmt.Errorf("move operation does not apply: doc is missing destination path: %s: %w", path, ErrMissing)
}
err = con.add(key, val)
if err != nil {
- return errors.Wrapf(err, "error in move for path: '%s'", path)
+ return fmt.Errorf("error in move for path: '%s': %w", path, err)
}
return nil
@@ -654,7 +653,7 @@ func (p Patch) move(doc *container, op Operation) error {
func (p Patch) test(doc *container, op Operation) error {
path, err := op.Path()
if err != nil {
- return errors.Wrapf(err, "test operation failed to decode path")
+ return fmt.Errorf("test operation failed to decode path: %w", err)
}
if path == "" {
@@ -673,67 +672,67 @@ func (p Patch) test(doc *container, op Operation) error {
return nil
}
- return errors.Wrapf(ErrTestFailed, "testing value %s failed", path)
+ return fmt.Errorf("testing value %s failed: %w", path, ErrTestFailed)
}
con, key := findObject(doc, path)
if con == nil {
- return errors.Wrapf(ErrMissing, "test operation does not apply: is missing path: %s", path)
+ return fmt.Errorf("test operation does not apply: is missing path: %s: %w", path, ErrMissing)
}
val, err := con.get(key)
if err != nil {
- return errors.Wrapf(err, "error in test for path: '%s'", path)
+ return fmt.Errorf("error in test for path: '%s': %w", path, err)
}
if val == nil {
- if op.value().raw == nil {
+ if op.value() == nil || op.value().raw == nil {
return nil
}
- return errors.Wrapf(ErrTestFailed, "testing value %s failed", path)
+ return fmt.Errorf("testing value %s failed: %w", path, ErrTestFailed)
} else if op.value() == nil {
- return errors.Wrapf(ErrTestFailed, "testing value %s failed", path)
+ return fmt.Errorf("testing value %s failed: %w", path, ErrTestFailed)
}
if val.equal(op.value()) {
return nil
}
- return errors.Wrapf(ErrTestFailed, "testing value %s failed", path)
+ return fmt.Errorf("testing value %s failed: %w", path, ErrTestFailed)
}
func (p Patch) copy(doc *container, op Operation, accumulatedCopySize *int64) error {
from, err := op.From()
if err != nil {
- return errors.Wrapf(err, "copy operation failed to decode from")
+ return fmt.Errorf("copy operation failed to decode from: %w", err)
}
con, key := findObject(doc, from)
if con == nil {
- return errors.Wrapf(ErrMissing, "copy operation does not apply: doc is missing from path: %s", from)
+ return fmt.Errorf("copy operation does not apply: doc is missing from path: %s: %w", from, ErrMissing)
}
val, err := con.get(key)
if err != nil {
- return errors.Wrapf(err, "error in copy for from: '%s'", from)
+ return fmt.Errorf("error in copy for from: '%s': %w", from, err)
}
path, err := op.Path()
if err != nil {
- return errors.Wrapf(ErrMissing, "copy operation failed to decode path")
+ return fmt.Errorf("copy operation failed to decode path: %w", ErrMissing)
}
con, key = findObject(doc, path)
if con == nil {
- return errors.Wrapf(ErrMissing, "copy operation does not apply: doc is missing destination path: %s", path)
+ return fmt.Errorf("copy operation does not apply: doc is missing destination path: %s: %w", path, ErrMissing)
}
valCopy, sz, err := deepCopy(val)
if err != nil {
- return errors.Wrapf(err, "error while performing deep copy")
+ return fmt.Errorf("error while performing deep copy: %w", err)
}
(*accumulatedCopySize) += int64(sz)
@@ -743,7 +742,7 @@ func (p Patch) copy(doc *container, op Operation, accumulatedCopySize *int64) er
err = con.add(key, valCopy)
if err != nil {
- return errors.Wrapf(err, "error while adding value during copy")
+ return fmt.Errorf("error while adding value during copy: %w", err)
}
return nil
diff --git a/vendor/gopkg.in/yaml.v2/.travis.yml b/vendor/gopkg.in/yaml.v2/.travis.yml
new file mode 100644
index 00000000..7348c50c
--- /dev/null
+++ b/vendor/gopkg.in/yaml.v2/.travis.yml
@@ -0,0 +1,17 @@
+language: go
+
+go:
+ - "1.4.x"
+ - "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"
+ - "tip"
+
+go_import_path: gopkg.in/yaml.v2
diff --git a/vendor/gopkg.in/yaml.v2/LICENSE b/vendor/gopkg.in/yaml.v2/LICENSE
new file mode 100644
index 00000000..8dada3ed
--- /dev/null
+++ b/vendor/gopkg.in/yaml.v2/LICENSE
@@ -0,0 +1,201 @@
+ 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/gopkg.in/yaml.v3/LICENSE b/vendor/gopkg.in/yaml.v2/LICENSE.libyaml
similarity index 51%
rename from vendor/gopkg.in/yaml.v3/LICENSE
rename to vendor/gopkg.in/yaml.v2/LICENSE.libyaml
index 2683e4bb..8da58fbf 100644
--- a/vendor/gopkg.in/yaml.v3/LICENSE
+++ b/vendor/gopkg.in/yaml.v2/LICENSE.libyaml
@@ -1,17 +1,16 @@
-
-This project is covered by two different licenses: MIT and Apache.
-
-#### MIT License ####
-
The following files were ported to Go from C files of libyaml, and thus
-are still covered by their original MIT license, with the additional
-copyright staring in 2011 when the project was ported over:
+are still covered by their original copyright and license:
- apic.go emitterc.go parserc.go readerc.go scannerc.go
- writerc.go yamlh.go yamlprivateh.go
+ apic.go
+ emitterc.go
+ parserc.go
+ readerc.go
+ scannerc.go
+ writerc.go
+ yamlh.go
+ yamlprivateh.go
-Copyright (c) 2006-2010 Kirill Simonov
-Copyright (c) 2006-2011 Kirill Simonov
+Copyright (c) 2006 Kirill Simonov
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
@@ -30,21 +29,3 @@ 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.
-
-### Apache License ###
-
-All the remaining project files are covered by the Apache license:
-
-Copyright (c) 2011-2019 Canonical Ltd
-
-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/gopkg.in/yaml.v3/NOTICE b/vendor/gopkg.in/yaml.v2/NOTICE
similarity index 100%
rename from vendor/gopkg.in/yaml.v3/NOTICE
rename to vendor/gopkg.in/yaml.v2/NOTICE
diff --git a/vendor/gopkg.in/yaml.v3/README.md b/vendor/gopkg.in/yaml.v2/README.md
similarity index 66%
rename from vendor/gopkg.in/yaml.v3/README.md
rename to vendor/gopkg.in/yaml.v2/README.md
index 08eb1bab..b50c6e87 100644
--- a/vendor/gopkg.in/yaml.v3/README.md
+++ b/vendor/gopkg.in/yaml.v2/README.md
@@ -12,23 +12,7 @@ C library to parse and generate YAML data quickly and reliably.
Compatibility
-------------
-The yaml package supports most of YAML 1.2, but preserves some behavior
-from 1.1 for backwards compatibility.
-
-Specifically, as of v3 of the yaml package:
-
- - YAML 1.1 bools (_yes/no, on/off_) are supported as long as they are being
- decoded into a typed bool value. Otherwise they behave as a string. Booleans
- in YAML 1.2 are _true/false_ only.
- - Octals encode and decode as _0777_ per YAML 1.1, rather than _0o777_
- as specified in YAML 1.2, because most parsers still use the old format.
- Octals in the _0o777_ format are supported though, so new files work.
- - Does not support base-60 floats. These are gone from YAML 1.2, and were
- actually never supported by this package as it's clearly a poor choice.
-
-and offers backwards
-compatibility with YAML 1.1 in some cases.
-1.2, including support for
+The yaml package supports most of YAML 1.1 and 1.2, including support for
anchors, tags, map merging, etc. Multi-document unmarshalling is not yet
implemented, and base-60 floats from YAML 1.1 are purposefully not
supported since they're a poor design and are gone in YAML 1.2.
@@ -36,30 +20,29 @@ supported since they're a poor design and are gone in YAML 1.2.
Installation and usage
----------------------
-The import path for the package is *gopkg.in/yaml.v3*.
+The import path for the package is *gopkg.in/yaml.v2*.
To install it, run:
- go get gopkg.in/yaml.v3
+ go get gopkg.in/yaml.v2
API documentation
-----------------
If opened in a browser, the import path itself leads to the API documentation:
- - [https://gopkg.in/yaml.v3](https://gopkg.in/yaml.v3)
+ * [https://gopkg.in/yaml.v2](https://gopkg.in/yaml.v2)
API stability
-------------
-The package API for yaml v3 will remain stable as described in [gopkg.in](https://gopkg.in).
+The package API for yaml v2 will remain stable as described in [gopkg.in](https://gopkg.in).
License
-------
-The yaml package is licensed under the MIT and Apache License 2.0 licenses.
-Please see the LICENSE file for details.
+The yaml package is licensed under the Apache License 2.0. Please see the LICENSE file for details.
Example
@@ -72,7 +55,7 @@ import (
"fmt"
"log"
- "gopkg.in/yaml.v3"
+ "gopkg.in/yaml.v2"
)
var data = `
diff --git a/vendor/gopkg.in/yaml.v3/apic.go b/vendor/gopkg.in/yaml.v2/apic.go
similarity index 93%
rename from vendor/gopkg.in/yaml.v3/apic.go
rename to vendor/gopkg.in/yaml.v2/apic.go
index ae7d049f..acf71402 100644
--- a/vendor/gopkg.in/yaml.v3/apic.go
+++ b/vendor/gopkg.in/yaml.v2/apic.go
@@ -1,25 +1,3 @@
-//
-// Copyright (c) 2011-2019 Canonical Ltd
-// Copyright (c) 2006-2010 Kirill Simonov
-//
-// 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.
-
package yaml
import (
@@ -101,6 +79,8 @@ func yaml_parser_set_encoding(parser *yaml_parser_t, encoding yaml_encoding_t) {
parser.encoding = encoding
}
+var disableLineWrapping = false
+
// Create a new emitter object.
func yaml_emitter_initialize(emitter *yaml_emitter_t) {
*emitter = yaml_emitter_t{
@@ -108,7 +88,9 @@ func yaml_emitter_initialize(emitter *yaml_emitter_t) {
raw_buffer: make([]byte, 0, output_raw_buffer_size),
states: make([]yaml_emitter_state_t, 0, initial_stack_size),
events: make([]yaml_event_t, 0, initial_queue_size),
- best_width: -1,
+ }
+ if disableLineWrapping {
+ emitter.best_width = -1
}
}
@@ -161,7 +143,7 @@ func yaml_emitter_set_canonical(emitter *yaml_emitter_t, canonical bool) {
emitter.canonical = canonical
}
-// Set the indentation increment.
+//// Set the indentation increment.
func yaml_emitter_set_indent(emitter *yaml_emitter_t, indent int) {
if indent < 2 || indent > 9 {
indent = 2
@@ -311,14 +293,29 @@ func yaml_document_end_event_initialize(event *yaml_event_t, implicit bool) {
}
}
-// Create ALIAS.
-func yaml_alias_event_initialize(event *yaml_event_t, anchor []byte) bool {
- *event = yaml_event_t{
- typ: yaml_ALIAS_EVENT,
- anchor: anchor,
- }
- return true
-}
+///*
+// * Create ALIAS.
+// */
+//
+//YAML_DECLARE(int)
+//yaml_alias_event_initialize(event *yaml_event_t, anchor *yaml_char_t)
+//{
+// mark yaml_mark_t = { 0, 0, 0 }
+// anchor_copy *yaml_char_t = NULL
+//
+// assert(event) // Non-NULL event object is expected.
+// assert(anchor) // Non-NULL anchor is expected.
+//
+// if (!yaml_check_utf8(anchor, strlen((char *)anchor))) return 0
+//
+// anchor_copy = yaml_strdup(anchor)
+// if (!anchor_copy)
+// return 0
+//
+// ALIAS_EVENT_INIT(*event, anchor_copy, mark, mark)
+//
+// return 1
+//}
// Create SCALAR.
func yaml_scalar_event_initialize(event *yaml_event_t, anchor, tag, value []byte, plain_implicit, quoted_implicit bool, style yaml_scalar_style_t) bool {
diff --git a/vendor/gopkg.in/yaml.v3/decode.go b/vendor/gopkg.in/yaml.v2/decode.go
similarity index 51%
rename from vendor/gopkg.in/yaml.v3/decode.go
rename to vendor/gopkg.in/yaml.v2/decode.go
index 0173b698..129bc2a9 100644
--- a/vendor/gopkg.in/yaml.v3/decode.go
+++ b/vendor/gopkg.in/yaml.v2/decode.go
@@ -1,18 +1,3 @@
-//
-// Copyright (c) 2011-2019 Canonical Ltd
-//
-// 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.
-
package yaml
import (
@@ -26,16 +11,34 @@ import (
"time"
)
+const (
+ documentNode = 1 << iota
+ mappingNode
+ sequenceNode
+ scalarNode
+ aliasNode
+)
+
+type node struct {
+ kind int
+ line, column int
+ tag string
+ // For an alias node, alias holds the resolved alias.
+ alias *node
+ value string
+ implicit bool
+ children []*node
+ anchors map[string]*node
+}
+
// ----------------------------------------------------------------------------
// Parser, produces a node tree out of a libyaml event stream.
type parser struct {
parser yaml_parser_t
event yaml_event_t
- doc *Node
- anchors map[string]*Node
+ doc *node
doneInit bool
- textless bool
}
func newParser(b []byte) *parser {
@@ -63,7 +66,6 @@ func (p *parser) init() {
if p.doneInit {
return
}
- p.anchors = make(map[string]*Node)
p.expect(yaml_STREAM_START_EVENT)
p.doneInit = true
}
@@ -100,10 +102,7 @@ func (p *parser) peek() yaml_event_type_t {
if p.event.typ != yaml_NO_EVENT {
return p.event.typ
}
- // It's curious choice from the underlying API to generally return a
- // positive result on success, but on this case return true in an error
- // scenario. This was the source of bugs in the past (issue #666).
- if !yaml_parser_parse(&p.parser, &p.event) || p.parser.error != yaml_NO_ERROR {
+ if !yaml_parser_parse(&p.parser, &p.event) {
p.fail()
}
return p.event.typ
@@ -112,18 +111,14 @@ func (p *parser) peek() yaml_event_type_t {
func (p *parser) fail() {
var where string
var line int
- if p.parser.context_mark.line != 0 {
- line = p.parser.context_mark.line
- // Scanner errors don't iterate line before returning error
- if p.parser.error == yaml_SCANNER_ERROR {
- line++
- }
- } else if p.parser.problem_mark.line != 0 {
+ if p.parser.problem_mark.line != 0 {
line = p.parser.problem_mark.line
// Scanner errors don't iterate line before returning error
if p.parser.error == yaml_SCANNER_ERROR {
line++
}
+ } else if p.parser.context_mark.line != 0 {
+ line = p.parser.context_mark.line
}
if line != 0 {
where = "line " + strconv.Itoa(line) + ": "
@@ -137,14 +132,13 @@ func (p *parser) fail() {
failf("%s%s", where, msg)
}
-func (p *parser) anchor(n *Node, anchor []byte) {
+func (p *parser) anchor(n *node, anchor []byte) {
if anchor != nil {
- n.Anchor = string(anchor)
- p.anchors[n.Anchor] = n
+ p.doc.anchors[string(anchor)] = n
}
}
-func (p *parser) parse() *Node {
+func (p *parser) parse() *node {
p.init()
switch p.peek() {
case yaml_SCALAR_EVENT:
@@ -160,148 +154,67 @@ func (p *parser) parse() *Node {
case yaml_STREAM_END_EVENT:
// Happens when attempting to decode an empty buffer.
return nil
- case yaml_TAIL_COMMENT_EVENT:
- panic("internal error: unexpected tail comment event (please report)")
default:
- panic("internal error: attempted to parse unknown event (please report): " + p.event.typ.String())
+ panic("attempted to parse unknown event: " + p.event.typ.String())
}
}
-func (p *parser) node(kind Kind, defaultTag, tag, value string) *Node {
- var style Style
- if tag != "" && tag != "!" {
- tag = shortTag(tag)
- style = TaggedStyle
- } else if defaultTag != "" {
- tag = defaultTag
- } else if kind == ScalarNode {
- tag, _ = resolve("", value)
+func (p *parser) node(kind int) *node {
+ return &node{
+ kind: kind,
+ line: p.event.start_mark.line,
+ column: p.event.start_mark.column,
}
- n := &Node{
- Kind: kind,
- Tag: tag,
- Value: value,
- Style: style,
- }
- if !p.textless {
- n.Line = p.event.start_mark.line + 1
- n.Column = p.event.start_mark.column + 1
- n.HeadComment = string(p.event.head_comment)
- n.LineComment = string(p.event.line_comment)
- n.FootComment = string(p.event.foot_comment)
- }
- return n
-}
-
-func (p *parser) parseChild(parent *Node) *Node {
- child := p.parse()
- parent.Content = append(parent.Content, child)
- return child
}
-func (p *parser) document() *Node {
- n := p.node(DocumentNode, "", "", "")
+func (p *parser) document() *node {
+ n := p.node(documentNode)
+ n.anchors = make(map[string]*node)
p.doc = n
p.expect(yaml_DOCUMENT_START_EVENT)
- p.parseChild(n)
- if p.peek() == yaml_DOCUMENT_END_EVENT {
- n.FootComment = string(p.event.foot_comment)
- }
+ n.children = append(n.children, p.parse())
p.expect(yaml_DOCUMENT_END_EVENT)
return n
}
-func (p *parser) alias() *Node {
- n := p.node(AliasNode, "", "", string(p.event.anchor))
- n.Alias = p.anchors[n.Value]
- if n.Alias == nil {
- failf("unknown anchor '%s' referenced", n.Value)
+func (p *parser) alias() *node {
+ n := p.node(aliasNode)
+ n.value = string(p.event.anchor)
+ n.alias = p.doc.anchors[n.value]
+ if n.alias == nil {
+ failf("unknown anchor '%s' referenced", n.value)
}
p.expect(yaml_ALIAS_EVENT)
return n
}
-func (p *parser) scalar() *Node {
- var parsedStyle = p.event.scalar_style()
- var nodeStyle Style
- switch {
- case parsedStyle&yaml_DOUBLE_QUOTED_SCALAR_STYLE != 0:
- nodeStyle = DoubleQuotedStyle
- case parsedStyle&yaml_SINGLE_QUOTED_SCALAR_STYLE != 0:
- nodeStyle = SingleQuotedStyle
- case parsedStyle&yaml_LITERAL_SCALAR_STYLE != 0:
- nodeStyle = LiteralStyle
- case parsedStyle&yaml_FOLDED_SCALAR_STYLE != 0:
- nodeStyle = FoldedStyle
- }
- var nodeValue = string(p.event.value)
- var nodeTag = string(p.event.tag)
- var defaultTag string
- if nodeStyle == 0 {
- if nodeValue == "<<" {
- defaultTag = mergeTag
- }
- } else {
- defaultTag = strTag
- }
- n := p.node(ScalarNode, defaultTag, nodeTag, nodeValue)
- n.Style |= nodeStyle
+func (p *parser) scalar() *node {
+ n := p.node(scalarNode)
+ n.value = string(p.event.value)
+ n.tag = string(p.event.tag)
+ n.implicit = p.event.implicit
p.anchor(n, p.event.anchor)
p.expect(yaml_SCALAR_EVENT)
return n
}
-func (p *parser) sequence() *Node {
- n := p.node(SequenceNode, seqTag, string(p.event.tag), "")
- if p.event.sequence_style()&yaml_FLOW_SEQUENCE_STYLE != 0 {
- n.Style |= FlowStyle
- }
+func (p *parser) sequence() *node {
+ n := p.node(sequenceNode)
p.anchor(n, p.event.anchor)
p.expect(yaml_SEQUENCE_START_EVENT)
for p.peek() != yaml_SEQUENCE_END_EVENT {
- p.parseChild(n)
+ n.children = append(n.children, p.parse())
}
- n.LineComment = string(p.event.line_comment)
- n.FootComment = string(p.event.foot_comment)
p.expect(yaml_SEQUENCE_END_EVENT)
return n
}
-func (p *parser) mapping() *Node {
- n := p.node(MappingNode, mapTag, string(p.event.tag), "")
- block := true
- if p.event.mapping_style()&yaml_FLOW_MAPPING_STYLE != 0 {
- block = false
- n.Style |= FlowStyle
- }
+func (p *parser) mapping() *node {
+ n := p.node(mappingNode)
p.anchor(n, p.event.anchor)
p.expect(yaml_MAPPING_START_EVENT)
for p.peek() != yaml_MAPPING_END_EVENT {
- k := p.parseChild(n)
- if block && k.FootComment != "" {
- // Must be a foot comment for the prior value when being dedented.
- if len(n.Content) > 2 {
- n.Content[len(n.Content)-3].FootComment = k.FootComment
- k.FootComment = ""
- }
- }
- v := p.parseChild(n)
- if k.FootComment == "" && v.FootComment != "" {
- k.FootComment = v.FootComment
- v.FootComment = ""
- }
- if p.peek() == yaml_TAIL_COMMENT_EVENT {
- if k.FootComment == "" {
- k.FootComment = string(p.event.foot_comment)
- }
- p.expect(yaml_TAIL_COMMENT_EVENT)
- }
- }
- n.LineComment = string(p.event.line_comment)
- n.FootComment = string(p.event.foot_comment)
- if n.Style&FlowStyle == 0 && n.FootComment != "" && len(n.Content) > 1 {
- n.Content[len(n.Content)-2].FootComment = n.FootComment
- n.FootComment = ""
+ n.children = append(n.children, p.parse(), p.parse())
}
p.expect(yaml_MAPPING_END_EVENT)
return n
@@ -311,70 +224,48 @@ func (p *parser) mapping() *Node {
// Decoder, unmarshals a node into a provided value.
type decoder struct {
- doc *Node
- aliases map[*Node]bool
+ doc *node
+ aliases map[*node]bool
+ mapType reflect.Type
terrors []string
+ strict bool
- stringMapType reflect.Type
- generalMapType reflect.Type
-
- knownFields bool
- uniqueKeys bool
decodeCount int
aliasCount int
aliasDepth int
-
- mergedFields map[interface{}]bool
}
var (
- nodeType = reflect.TypeOf(Node{})
+ mapItemType = reflect.TypeOf(MapItem{})
durationType = reflect.TypeOf(time.Duration(0))
- stringMapType = reflect.TypeOf(map[string]interface{}{})
- generalMapType = reflect.TypeOf(map[interface{}]interface{}{})
- ifaceType = generalMapType.Elem()
+ defaultMapType = reflect.TypeOf(map[interface{}]interface{}{})
+ ifaceType = defaultMapType.Elem()
timeType = reflect.TypeOf(time.Time{})
ptrTimeType = reflect.TypeOf(&time.Time{})
)
-func newDecoder() *decoder {
- d := &decoder{
- stringMapType: stringMapType,
- generalMapType: generalMapType,
- uniqueKeys: true,
- }
- d.aliases = make(map[*Node]bool)
+func newDecoder(strict bool) *decoder {
+ d := &decoder{mapType: defaultMapType, strict: strict}
+ d.aliases = make(map[*node]bool)
return d
}
-func (d *decoder) terror(n *Node, tag string, out reflect.Value) {
- if n.Tag != "" {
- tag = n.Tag
+func (d *decoder) terror(n *node, tag string, out reflect.Value) {
+ if n.tag != "" {
+ tag = n.tag
}
- value := n.Value
- if tag != seqTag && tag != mapTag {
+ value := n.value
+ if tag != yaml_SEQ_TAG && tag != yaml_MAP_TAG {
if len(value) > 10 {
value = " `" + value[:7] + "...`"
} else {
value = " `" + value + "`"
}
}
- d.terrors = append(d.terrors, fmt.Sprintf("line %d: cannot unmarshal %s%s into %s", n.Line, shortTag(tag), value, out.Type()))
-}
-
-func (d *decoder) callUnmarshaler(n *Node, u Unmarshaler) (good bool) {
- err := u.UnmarshalYAML(n)
- if e, ok := err.(*TypeError); ok {
- d.terrors = append(d.terrors, e.Errors...)
- return false
- }
- if err != nil {
- fail(err)
- }
- return true
+ d.terrors = append(d.terrors, fmt.Sprintf("line %d: cannot unmarshal %s%s into %s", n.line+1, shortTag(tag), value, out.Type()))
}
-func (d *decoder) callObsoleteUnmarshaler(n *Node, u obsoleteUnmarshaler) (good bool) {
+func (d *decoder) callUnmarshaler(n *node, u Unmarshaler) (good bool) {
terrlen := len(d.terrors)
err := u.UnmarshalYAML(func(v interface{}) (err error) {
defer handleErr(&err)
@@ -403,8 +294,8 @@ func (d *decoder) callObsoleteUnmarshaler(n *Node, u obsoleteUnmarshaler) (good
// its types unmarshalled appropriately.
//
// If n holds a null value, prepare returns before doing anything.
-func (d *decoder) prepare(n *Node, out reflect.Value) (newout reflect.Value, unmarshaled, good bool) {
- if n.ShortTag() == nullTag {
+func (d *decoder) prepare(n *node, out reflect.Value) (newout reflect.Value, unmarshaled, good bool) {
+ if n.tag == yaml_NULL_TAG || n.kind == scalarNode && n.tag == "" && (n.value == "null" || n.value == "~" || n.value == "" && n.implicit) {
return out, false, false
}
again := true
@@ -418,40 +309,15 @@ func (d *decoder) prepare(n *Node, out reflect.Value) (newout reflect.Value, unm
again = true
}
if out.CanAddr() {
- outi := out.Addr().Interface()
- if u, ok := outi.(Unmarshaler); ok {
+ if u, ok := out.Addr().Interface().(Unmarshaler); ok {
good = d.callUnmarshaler(n, u)
return out, true, good
}
- if u, ok := outi.(obsoleteUnmarshaler); ok {
- good = d.callObsoleteUnmarshaler(n, u)
- return out, true, good
- }
}
}
return out, false, false
}
-func (d *decoder) fieldByIndex(n *Node, v reflect.Value, index []int) (field reflect.Value) {
- if n.ShortTag() == nullTag {
- return reflect.Value{}
- }
- for _, num := range index {
- for {
- if v.Kind() == reflect.Ptr {
- if v.IsNil() {
- v.Set(reflect.New(v.Type().Elem()))
- }
- v = v.Elem()
- continue
- }
- break
- }
- v = v.Field(num)
- }
- return v
-}
-
const (
// 400,000 decode operations is ~500kb of dense object declarations, or
// ~5kb of dense object declarations with 10000% alias expansion
@@ -481,7 +347,7 @@ func allowedAliasRatio(decodeCount int) float64 {
}
}
-func (d *decoder) unmarshal(n *Node, out reflect.Value) (good bool) {
+func (d *decoder) unmarshal(n *node, out reflect.Value) (good bool) {
d.decodeCount++
if d.aliasDepth > 0 {
d.aliasCount++
@@ -489,55 +355,46 @@ func (d *decoder) unmarshal(n *Node, out reflect.Value) (good bool) {
if d.aliasCount > 100 && d.decodeCount > 1000 && float64(d.aliasCount)/float64(d.decodeCount) > allowedAliasRatio(d.decodeCount) {
failf("document contains excessive aliasing")
}
- if out.Type() == nodeType {
- out.Set(reflect.ValueOf(n).Elem())
- return true
- }
- switch n.Kind {
- case DocumentNode:
+ switch n.kind {
+ case documentNode:
return d.document(n, out)
- case AliasNode:
+ case aliasNode:
return d.alias(n, out)
}
out, unmarshaled, good := d.prepare(n, out)
if unmarshaled {
return good
}
- switch n.Kind {
- case ScalarNode:
+ switch n.kind {
+ case scalarNode:
good = d.scalar(n, out)
- case MappingNode:
+ case mappingNode:
good = d.mapping(n, out)
- case SequenceNode:
+ case sequenceNode:
good = d.sequence(n, out)
- case 0:
- if n.IsZero() {
- return d.null(out)
- }
- fallthrough
default:
- failf("cannot decode node with unknown kind %d", n.Kind)
+ panic("internal error: unknown node kind: " + strconv.Itoa(n.kind))
}
return good
}
-func (d *decoder) document(n *Node, out reflect.Value) (good bool) {
- if len(n.Content) == 1 {
+func (d *decoder) document(n *node, out reflect.Value) (good bool) {
+ if len(n.children) == 1 {
d.doc = n
- d.unmarshal(n.Content[0], out)
+ d.unmarshal(n.children[0], out)
return true
}
return false
}
-func (d *decoder) alias(n *Node, out reflect.Value) (good bool) {
+func (d *decoder) alias(n *node, out reflect.Value) (good bool) {
if d.aliases[n] {
// TODO this could actually be allowed in some circumstances.
- failf("anchor '%s' value contains itself", n.Value)
+ failf("anchor '%s' value contains itself", n.value)
}
d.aliases[n] = true
d.aliasDepth++
- good = d.unmarshal(n.Alias, out)
+ good = d.unmarshal(n.alias, out)
d.aliasDepth--
delete(d.aliases, n)
return good
@@ -551,26 +408,15 @@ func resetMap(out reflect.Value) {
}
}
-func (d *decoder) null(out reflect.Value) bool {
- if out.CanAddr() {
- switch out.Kind() {
- case reflect.Interface, reflect.Ptr, reflect.Map, reflect.Slice:
- out.Set(reflect.Zero(out.Type()))
- return true
- }
- }
- return false
-}
-
-func (d *decoder) scalar(n *Node, out reflect.Value) bool {
+func (d *decoder) scalar(n *node, out reflect.Value) bool {
var tag string
var resolved interface{}
- if n.indicatedString() {
- tag = strTag
- resolved = n.Value
+ if n.tag == "" && !n.implicit {
+ tag = yaml_STR_TAG
+ resolved = n.value
} else {
- tag, resolved = resolve(n.Tag, n.Value)
- if tag == binaryTag {
+ tag, resolved = resolve(n.tag, n.value)
+ if tag == yaml_BINARY_TAG {
data, err := base64.StdEncoding.DecodeString(resolved.(string))
if err != nil {
failf("!!binary value contains invalid base64 data")
@@ -579,7 +425,12 @@ func (d *decoder) scalar(n *Node, out reflect.Value) bool {
}
}
if resolved == nil {
- return d.null(out)
+ if out.Kind() == reflect.Map && !out.CanAddr() {
+ resetMap(out)
+ } else {
+ out.Set(reflect.Zero(out.Type()))
+ }
+ return true
}
if resolvedv := reflect.ValueOf(resolved); out.Type() == resolvedv.Type() {
// We've resolved to exactly the type we want, so use that.
@@ -592,13 +443,13 @@ func (d *decoder) scalar(n *Node, out reflect.Value) bool {
u, ok := out.Addr().Interface().(encoding.TextUnmarshaler)
if ok {
var text []byte
- if tag == binaryTag {
+ if tag == yaml_BINARY_TAG {
text = []byte(resolved.(string))
} else {
// We let any value be unmarshaled into TextUnmarshaler.
// That might be more lax than we'd like, but the
// TextUnmarshaler itself should bowl out any dubious values.
- text = []byte(n.Value)
+ text = []byte(n.value)
}
err := u.UnmarshalText(text)
if err != nil {
@@ -609,37 +460,47 @@ func (d *decoder) scalar(n *Node, out reflect.Value) bool {
}
switch out.Kind() {
case reflect.String:
- if tag == binaryTag {
+ if tag == yaml_BINARY_TAG {
out.SetString(resolved.(string))
return true
}
- out.SetString(n.Value)
- return true
+ if resolved != nil {
+ out.SetString(n.value)
+ return true
+ }
case reflect.Interface:
- out.Set(reflect.ValueOf(resolved))
+ if resolved == nil {
+ out.Set(reflect.Zero(out.Type()))
+ } else if tag == yaml_TIMESTAMP_TAG {
+ // It looks like a timestamp but for backward compatibility
+ // reasons we set it as a string, so that code that unmarshals
+ // timestamp-like values into interface{} will continue to
+ // see a string and not a time.Time.
+ // TODO(v3) Drop this.
+ out.Set(reflect.ValueOf(n.value))
+ } else {
+ out.Set(reflect.ValueOf(resolved))
+ }
return true
case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
- // This used to work in v2, but it's very unfriendly.
- isDuration := out.Type() == durationType
-
switch resolved := resolved.(type) {
case int:
- if !isDuration && !out.OverflowInt(int64(resolved)) {
+ if !out.OverflowInt(int64(resolved)) {
out.SetInt(int64(resolved))
return true
}
case int64:
- if !isDuration && !out.OverflowInt(resolved) {
+ if !out.OverflowInt(resolved) {
out.SetInt(resolved)
return true
}
case uint64:
- if !isDuration && resolved <= math.MaxInt64 && !out.OverflowInt(int64(resolved)) {
+ if resolved <= math.MaxInt64 && !out.OverflowInt(int64(resolved)) {
out.SetInt(int64(resolved))
return true
}
case float64:
- if !isDuration && resolved <= math.MaxInt64 && !out.OverflowInt(int64(resolved)) {
+ if resolved <= math.MaxInt64 && !out.OverflowInt(int64(resolved)) {
out.SetInt(int64(resolved))
return true
}
@@ -680,17 +541,6 @@ func (d *decoder) scalar(n *Node, out reflect.Value) bool {
case bool:
out.SetBool(resolved)
return true
- case string:
- // This offers some compatibility with the 1.1 spec (https://yaml.org/type/bool.html).
- // It only works if explicitly attempting to unmarshal into a typed bool value.
- switch resolved {
- case "y", "Y", "yes", "Yes", "YES", "on", "On", "ON":
- out.SetBool(true)
- return true
- case "n", "N", "no", "No", "NO", "off", "Off", "OFF":
- out.SetBool(false)
- return true
- }
}
case reflect.Float32, reflect.Float64:
switch resolved := resolved.(type) {
@@ -713,7 +563,13 @@ func (d *decoder) scalar(n *Node, out reflect.Value) bool {
return true
}
case reflect.Ptr:
- panic("yaml internal error: please report the issue")
+ if out.Type().Elem() == reflect.TypeOf(resolved) {
+ // TODO DOes this make sense? When is out a Ptr except when decoding a nil value?
+ elem := reflect.New(out.Type().Elem())
+ elem.Elem().Set(reflect.ValueOf(resolved))
+ out.Set(elem)
+ return true
+ }
}
d.terror(n, tag, out)
return false
@@ -726,8 +582,8 @@ func settableValueOf(i interface{}) reflect.Value {
return sv
}
-func (d *decoder) sequence(n *Node, out reflect.Value) (good bool) {
- l := len(n.Content)
+func (d *decoder) sequence(n *node, out reflect.Value) (good bool) {
+ l := len(n.children)
var iface reflect.Value
switch out.Kind() {
@@ -742,7 +598,7 @@ func (d *decoder) sequence(n *Node, out reflect.Value) (good bool) {
iface = out
out = settableValueOf(make([]interface{}, l))
default:
- d.terror(n, seqTag, out)
+ d.terror(n, yaml_SEQ_TAG, out)
return false
}
et := out.Type().Elem()
@@ -750,7 +606,7 @@ func (d *decoder) sequence(n *Node, out reflect.Value) (good bool) {
j := 0
for i := 0; i < l; i++ {
e := reflect.New(et).Elem()
- if ok := d.unmarshal(n.Content[i], e); ok {
+ if ok := d.unmarshal(n.children[i], e); ok {
out.Index(j).Set(e)
j++
}
@@ -764,79 +620,51 @@ func (d *decoder) sequence(n *Node, out reflect.Value) (good bool) {
return true
}
-func (d *decoder) mapping(n *Node, out reflect.Value) (good bool) {
- l := len(n.Content)
- if d.uniqueKeys {
- nerrs := len(d.terrors)
- for i := 0; i < l; i += 2 {
- ni := n.Content[i]
- for j := i + 2; j < l; j += 2 {
- nj := n.Content[j]
- if ni.Kind == nj.Kind && ni.Value == nj.Value {
- d.terrors = append(d.terrors, fmt.Sprintf("line %d: mapping key %#v already defined at line %d", nj.Line, nj.Value, ni.Line))
- }
- }
- }
- if len(d.terrors) > nerrs {
- return false
- }
- }
+func (d *decoder) mapping(n *node, out reflect.Value) (good bool) {
switch out.Kind() {
case reflect.Struct:
return d.mappingStruct(n, out)
+ case reflect.Slice:
+ return d.mappingSlice(n, out)
case reflect.Map:
// okay
case reflect.Interface:
- iface := out
- if isStringMap(n) {
- out = reflect.MakeMap(d.stringMapType)
+ if d.mapType.Kind() == reflect.Map {
+ iface := out
+ out = reflect.MakeMap(d.mapType)
+ iface.Set(out)
} else {
- out = reflect.MakeMap(d.generalMapType)
+ slicev := reflect.New(d.mapType).Elem()
+ if !d.mappingSlice(n, slicev) {
+ return false
+ }
+ out.Set(slicev)
+ return true
}
- iface.Set(out)
default:
- d.terror(n, mapTag, out)
+ d.terror(n, yaml_MAP_TAG, out)
return false
}
-
outt := out.Type()
kt := outt.Key()
et := outt.Elem()
- stringMapType := d.stringMapType
- generalMapType := d.generalMapType
- if outt.Elem() == ifaceType {
- if outt.Key().Kind() == reflect.String {
- d.stringMapType = outt
- } else if outt.Key() == ifaceType {
- d.generalMapType = outt
- }
+ mapType := d.mapType
+ if outt.Key() == ifaceType && outt.Elem() == ifaceType {
+ d.mapType = outt
}
- mergedFields := d.mergedFields
- d.mergedFields = nil
-
- var mergeNode *Node
-
- mapIsNew := false
if out.IsNil() {
out.Set(reflect.MakeMap(outt))
- mapIsNew = true
}
+ l := len(n.children)
for i := 0; i < l; i += 2 {
- if isMerge(n.Content[i]) {
- mergeNode = n.Content[i+1]
+ if isMerge(n.children[i]) {
+ d.merge(n.children[i+1], out)
continue
}
k := reflect.New(kt).Elem()
- if d.unmarshal(n.Content[i], k) {
- if mergedFields != nil {
- ki := k.Interface()
- if mergedFields[ki] {
- continue
- }
- mergedFields[ki] = true
- }
+ if d.unmarshal(n.children[i], k) {
kkind := k.Kind()
if kkind == reflect.Interface {
kkind = k.Elem().Kind()
@@ -845,83 +673,87 @@ func (d *decoder) mapping(n *Node, out reflect.Value) (good bool) {
failf("invalid map key: %#v", k.Interface())
}
e := reflect.New(et).Elem()
- if d.unmarshal(n.Content[i+1], e) || n.Content[i+1].ShortTag() == nullTag && (mapIsNew || !out.MapIndex(k).IsValid()) {
- out.SetMapIndex(k, e)
+ if d.unmarshal(n.children[i+1], e) {
+ d.setMapIndex(n.children[i+1], out, k, e)
}
}
}
+ d.mapType = mapType
+ return true
+}
- d.mergedFields = mergedFields
- if mergeNode != nil {
- d.merge(n, mergeNode, out)
+func (d *decoder) setMapIndex(n *node, out, k, v reflect.Value) {
+ if d.strict && out.MapIndex(k) != zeroValue {
+ d.terrors = append(d.terrors, fmt.Sprintf("line %d: key %#v already set in map", n.line+1, k.Interface()))
+ return
}
-
- d.stringMapType = stringMapType
- d.generalMapType = generalMapType
- return true
+ out.SetMapIndex(k, v)
}
-func isStringMap(n *Node) bool {
- if n.Kind != MappingNode {
+func (d *decoder) mappingSlice(n *node, out reflect.Value) (good bool) {
+ outt := out.Type()
+ if outt.Elem() != mapItemType {
+ d.terror(n, yaml_MAP_TAG, out)
return false
}
- l := len(n.Content)
+
+ mapType := d.mapType
+ d.mapType = outt
+
+ var slice []MapItem
+ var l = len(n.children)
for i := 0; i < l; i += 2 {
- shortTag := n.Content[i].ShortTag()
- if shortTag != strTag && shortTag != mergeTag {
- return false
+ if isMerge(n.children[i]) {
+ d.merge(n.children[i+1], out)
+ continue
+ }
+ item := MapItem{}
+ k := reflect.ValueOf(&item.Key).Elem()
+ if d.unmarshal(n.children[i], k) {
+ v := reflect.ValueOf(&item.Value).Elem()
+ if d.unmarshal(n.children[i+1], v) {
+ slice = append(slice, item)
+ }
}
}
+ out.Set(reflect.ValueOf(slice))
+ d.mapType = mapType
return true
}
-func (d *decoder) mappingStruct(n *Node, out reflect.Value) (good bool) {
+func (d *decoder) mappingStruct(n *node, out reflect.Value) (good bool) {
sinfo, err := getStructInfo(out.Type())
if err != nil {
panic(err)
}
+ name := settableValueOf("")
+ l := len(n.children)
var inlineMap reflect.Value
var elemType reflect.Type
if sinfo.InlineMap != -1 {
inlineMap = out.Field(sinfo.InlineMap)
+ inlineMap.Set(reflect.New(inlineMap.Type()).Elem())
elemType = inlineMap.Type().Elem()
}
- for _, index := range sinfo.InlineUnmarshalers {
- field := d.fieldByIndex(n, out, index)
- d.prepare(n, field)
- }
-
- mergedFields := d.mergedFields
- d.mergedFields = nil
- var mergeNode *Node
var doneFields []bool
- if d.uniqueKeys {
+ if d.strict {
doneFields = make([]bool, len(sinfo.FieldsList))
}
- name := settableValueOf("")
- l := len(n.Content)
for i := 0; i < l; i += 2 {
- ni := n.Content[i]
+ ni := n.children[i]
if isMerge(ni) {
- mergeNode = n.Content[i+1]
+ d.merge(n.children[i+1], out)
continue
}
if !d.unmarshal(ni, name) {
continue
}
- sname := name.String()
- if mergedFields != nil {
- if mergedFields[sname] {
- continue
- }
- mergedFields[sname] = true
- }
- if info, ok := sinfo.FieldsMap[sname]; ok {
- if d.uniqueKeys {
+ if info, ok := sinfo.FieldsMap[name.String()]; ok {
+ if d.strict {
if doneFields[info.Id] {
- d.terrors = append(d.terrors, fmt.Sprintf("line %d: field %s already set in type %s", ni.Line, name.String(), out.Type()))
+ d.terrors = append(d.terrors, fmt.Sprintf("line %d: field %s already set in type %s", ni.line+1, name.String(), out.Type()))
continue
}
doneFields[info.Id] = true
@@ -930,25 +762,20 @@ func (d *decoder) mappingStruct(n *Node, out reflect.Value) (good bool) {
if info.Inline == nil {
field = out.Field(info.Num)
} else {
- field = d.fieldByIndex(n, out, info.Inline)
+ field = out.FieldByIndex(info.Inline)
}
- d.unmarshal(n.Content[i+1], field)
+ d.unmarshal(n.children[i+1], field)
} else if sinfo.InlineMap != -1 {
if inlineMap.IsNil() {
inlineMap.Set(reflect.MakeMap(inlineMap.Type()))
}
value := reflect.New(elemType).Elem()
- d.unmarshal(n.Content[i+1], value)
- inlineMap.SetMapIndex(name, value)
- } else if d.knownFields {
- d.terrors = append(d.terrors, fmt.Sprintf("line %d: field %s not found in type %s", ni.Line, name.String(), out.Type()))
+ d.unmarshal(n.children[i+1], value)
+ d.setMapIndex(n.children[i+1], inlineMap, name, value)
+ } else if d.strict {
+ d.terrors = append(d.terrors, fmt.Sprintf("line %d: field %s not found in type %s", ni.line+1, name.String(), out.Type()))
}
}
-
- d.mergedFields = mergedFields
- if mergeNode != nil {
- d.merge(n, mergeNode, out)
- }
return true
}
@@ -956,34 +783,24 @@ func failWantMap() {
failf("map merge requires map or sequence of maps as the value")
}
-func (d *decoder) merge(parent *Node, merge *Node, out reflect.Value) {
- mergedFields := d.mergedFields
- if mergedFields == nil {
- d.mergedFields = make(map[interface{}]bool)
- for i := 0; i < len(parent.Content); i += 2 {
- k := reflect.New(ifaceType).Elem()
- if d.unmarshal(parent.Content[i], k) {
- d.mergedFields[k.Interface()] = true
- }
- }
- }
-
- switch merge.Kind {
- case MappingNode:
- d.unmarshal(merge, out)
- case AliasNode:
- if merge.Alias != nil && merge.Alias.Kind != MappingNode {
+func (d *decoder) merge(n *node, out reflect.Value) {
+ switch n.kind {
+ case mappingNode:
+ d.unmarshal(n, out)
+ case aliasNode:
+ if n.alias != nil && n.alias.kind != mappingNode {
failWantMap()
}
- d.unmarshal(merge, out)
- case SequenceNode:
- for i := 0; i < len(merge.Content); i++ {
- ni := merge.Content[i]
- if ni.Kind == AliasNode {
- if ni.Alias != nil && ni.Alias.Kind != MappingNode {
+ d.unmarshal(n, out)
+ case sequenceNode:
+ // Step backwards as earlier nodes take precedence.
+ for i := len(n.children) - 1; i >= 0; i-- {
+ ni := n.children[i]
+ if ni.kind == aliasNode {
+ if ni.alias != nil && ni.alias.kind != mappingNode {
failWantMap()
}
- } else if ni.Kind != MappingNode {
+ } else if ni.kind != mappingNode {
failWantMap()
}
d.unmarshal(ni, out)
@@ -991,10 +808,8 @@ func (d *decoder) merge(parent *Node, merge *Node, out reflect.Value) {
default:
failWantMap()
}
-
- d.mergedFields = mergedFields
}
-func isMerge(n *Node) bool {
- return n.Kind == ScalarNode && n.Value == "<<" && (n.Tag == "" || n.Tag == "!" || shortTag(n.Tag) == mergeTag)
+func isMerge(n *node) bool {
+ return n.kind == scalarNode && n.value == "<<" && (n.implicit == true || n.tag == yaml_MERGE_TAG)
}
diff --git a/vendor/gopkg.in/yaml.v3/emitterc.go b/vendor/gopkg.in/yaml.v2/emitterc.go
similarity index 80%
rename from vendor/gopkg.in/yaml.v3/emitterc.go
rename to vendor/gopkg.in/yaml.v2/emitterc.go
index 0f47c9ca..a1c2cc52 100644
--- a/vendor/gopkg.in/yaml.v3/emitterc.go
+++ b/vendor/gopkg.in/yaml.v2/emitterc.go
@@ -1,25 +1,3 @@
-//
-// Copyright (c) 2011-2019 Canonical Ltd
-// Copyright (c) 2006-2010 Kirill Simonov
-//
-// 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.
-
package yaml
import (
@@ -65,13 +43,8 @@ func put_break(emitter *yaml_emitter_t) bool {
default:
panic("unknown line break setting")
}
- if emitter.column == 0 {
- emitter.space_above = true
- }
emitter.column = 0
emitter.line++
- // [Go] Do this here and below and drop from everywhere else (see commented lines).
- emitter.indention = true
return true
}
@@ -124,13 +97,8 @@ func write_break(emitter *yaml_emitter_t, s []byte, i *int) bool {
if !write(emitter, s, i) {
return false
}
- if emitter.column == 0 {
- emitter.space_above = true
- }
emitter.column = 0
emitter.line++
- // [Go] Do this here and above and drop from everywhere else (see commented lines).
- emitter.indention = true
}
return true
}
@@ -235,14 +203,7 @@ func yaml_emitter_increase_indent(emitter *yaml_emitter_t, flow, indentless bool
emitter.indent = 0
}
} else if !indentless {
- // [Go] This was changed so that indentations are more regular.
- if emitter.states[len(emitter.states)-1] == yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE {
- // The first indent inside a sequence will just skip the "- " indicator.
- emitter.indent += 2
- } else {
- // Everything else aligns to the chosen indentation.
- emitter.indent = emitter.best_indent*((emitter.indent+emitter.best_indent)/emitter.best_indent)
- }
+ emitter.indent += emitter.best_indent
}
return true
}
@@ -267,22 +228,16 @@ func yaml_emitter_state_machine(emitter *yaml_emitter_t, event *yaml_event_t) bo
return yaml_emitter_emit_document_end(emitter, event)
case yaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE:
- return yaml_emitter_emit_flow_sequence_item(emitter, event, true, false)
-
- case yaml_EMIT_FLOW_SEQUENCE_TRAIL_ITEM_STATE:
- return yaml_emitter_emit_flow_sequence_item(emitter, event, false, true)
+ return yaml_emitter_emit_flow_sequence_item(emitter, event, true)
case yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE:
- return yaml_emitter_emit_flow_sequence_item(emitter, event, false, false)
+ return yaml_emitter_emit_flow_sequence_item(emitter, event, false)
case yaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE:
- return yaml_emitter_emit_flow_mapping_key(emitter, event, true, false)
-
- case yaml_EMIT_FLOW_MAPPING_TRAIL_KEY_STATE:
- return yaml_emitter_emit_flow_mapping_key(emitter, event, false, true)
+ return yaml_emitter_emit_flow_mapping_key(emitter, event, true)
case yaml_EMIT_FLOW_MAPPING_KEY_STATE:
- return yaml_emitter_emit_flow_mapping_key(emitter, event, false, false)
+ return yaml_emitter_emit_flow_mapping_key(emitter, event, false)
case yaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE:
return yaml_emitter_emit_flow_mapping_value(emitter, event, true)
@@ -343,8 +298,6 @@ func yaml_emitter_emit_stream_start(emitter *yaml_emitter_t, event *yaml_event_t
emitter.column = 0
emitter.whitespace = true
emitter.indention = true
- emitter.space_above = true
- emitter.foot_indent = -1
if emitter.encoding != yaml_UTF8_ENCODING {
if !yaml_emitter_write_bom(emitter) {
@@ -439,22 +392,13 @@ func yaml_emitter_emit_document_start(emitter *yaml_emitter_t, event *yaml_event
if !yaml_emitter_write_indicator(emitter, []byte("---"), true, false, false) {
return false
}
- if emitter.canonical || true {
+ if emitter.canonical {
if !yaml_emitter_write_indent(emitter) {
return false
}
}
}
- if len(emitter.head_comment) > 0 {
- if !yaml_emitter_process_head_comment(emitter) {
- return false
- }
- if !put_break(emitter) {
- return false
- }
- }
-
emitter.state = yaml_EMIT_DOCUMENT_CONTENT_STATE
return true
}
@@ -481,20 +425,7 @@ func yaml_emitter_emit_document_start(emitter *yaml_emitter_t, event *yaml_event
// Expect the root node.
func yaml_emitter_emit_document_content(emitter *yaml_emitter_t, event *yaml_event_t) bool {
emitter.states = append(emitter.states, yaml_EMIT_DOCUMENT_END_STATE)
-
- if !yaml_emitter_process_head_comment(emitter) {
- return false
- }
- if !yaml_emitter_emit_node(emitter, event, true, false, false, false) {
- return false
- }
- if !yaml_emitter_process_line_comment(emitter) {
- return false
- }
- if !yaml_emitter_process_foot_comment(emitter) {
- return false
- }
- return true
+ return yaml_emitter_emit_node(emitter, event, true, false, false, false)
}
// Expect DOCUMENT-END.
@@ -502,12 +433,6 @@ func yaml_emitter_emit_document_end(emitter *yaml_emitter_t, event *yaml_event_t
if event.typ != yaml_DOCUMENT_END_EVENT {
return yaml_emitter_set_emitter_error(emitter, "expected DOCUMENT-END")
}
- // [Go] Force document foot separation.
- emitter.foot_indent = 0
- if !yaml_emitter_process_foot_comment(emitter) {
- return false
- }
- emitter.foot_indent = -1
if !yaml_emitter_write_indent(emitter) {
return false
}
@@ -529,7 +454,7 @@ func yaml_emitter_emit_document_end(emitter *yaml_emitter_t, event *yaml_event_t
}
// Expect a flow item node.
-func yaml_emitter_emit_flow_sequence_item(emitter *yaml_emitter_t, event *yaml_event_t, first, trail bool) bool {
+func yaml_emitter_emit_flow_sequence_item(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool {
if first {
if !yaml_emitter_write_indicator(emitter, []byte{'['}, true, true, false) {
return false
@@ -541,15 +466,13 @@ func yaml_emitter_emit_flow_sequence_item(emitter *yaml_emitter_t, event *yaml_e
}
if event.typ == yaml_SEQUENCE_END_EVENT {
- if emitter.canonical && !first && !trail {
- if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {
- return false
- }
- }
emitter.flow_level--
emitter.indent = emitter.indents[len(emitter.indents)-1]
emitter.indents = emitter.indents[:len(emitter.indents)-1]
- if emitter.column == 0 || emitter.canonical && !first {
+ if emitter.canonical && !first {
+ if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {
+ return false
+ }
if !yaml_emitter_write_indent(emitter) {
return false
}
@@ -557,62 +480,29 @@ func yaml_emitter_emit_flow_sequence_item(emitter *yaml_emitter_t, event *yaml_e
if !yaml_emitter_write_indicator(emitter, []byte{']'}, false, false, false) {
return false
}
- if !yaml_emitter_process_line_comment(emitter) {
- return false
- }
- if !yaml_emitter_process_foot_comment(emitter) {
- return false
- }
emitter.state = emitter.states[len(emitter.states)-1]
emitter.states = emitter.states[:len(emitter.states)-1]
return true
}
- if !first && !trail {
+ if !first {
if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {
return false
}
}
- if !yaml_emitter_process_head_comment(emitter) {
- return false
- }
- if emitter.column == 0 {
- if !yaml_emitter_write_indent(emitter) {
- return false
- }
- }
-
if emitter.canonical || emitter.column > emitter.best_width {
if !yaml_emitter_write_indent(emitter) {
return false
}
}
- if len(emitter.line_comment)+len(emitter.foot_comment)+len(emitter.tail_comment) > 0 {
- emitter.states = append(emitter.states, yaml_EMIT_FLOW_SEQUENCE_TRAIL_ITEM_STATE)
- } else {
- emitter.states = append(emitter.states, yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE)
- }
- if !yaml_emitter_emit_node(emitter, event, false, true, false, false) {
- return false
- }
- if len(emitter.line_comment)+len(emitter.foot_comment)+len(emitter.tail_comment) > 0 {
- if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {
- return false
- }
- }
- if !yaml_emitter_process_line_comment(emitter) {
- return false
- }
- if !yaml_emitter_process_foot_comment(emitter) {
- return false
- }
- return true
+ emitter.states = append(emitter.states, yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE)
+ return yaml_emitter_emit_node(emitter, event, false, true, false, false)
}
// Expect a flow key node.
-func yaml_emitter_emit_flow_mapping_key(emitter *yaml_emitter_t, event *yaml_event_t, first, trail bool) bool {
+func yaml_emitter_emit_flow_mapping_key(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool {
if first {
if !yaml_emitter_write_indicator(emitter, []byte{'{'}, true, true, false) {
return false
@@ -624,18 +514,13 @@ func yaml_emitter_emit_flow_mapping_key(emitter *yaml_emitter_t, event *yaml_eve
}
if event.typ == yaml_MAPPING_END_EVENT {
- if (emitter.canonical || len(emitter.head_comment)+len(emitter.foot_comment)+len(emitter.tail_comment) > 0) && !first && !trail {
- if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {
- return false
- }
- }
- if !yaml_emitter_process_head_comment(emitter) {
- return false
- }
emitter.flow_level--
emitter.indent = emitter.indents[len(emitter.indents)-1]
emitter.indents = emitter.indents[:len(emitter.indents)-1]
if emitter.canonical && !first {
+ if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {
+ return false
+ }
if !yaml_emitter_write_indent(emitter) {
return false
}
@@ -643,33 +528,16 @@ func yaml_emitter_emit_flow_mapping_key(emitter *yaml_emitter_t, event *yaml_eve
if !yaml_emitter_write_indicator(emitter, []byte{'}'}, false, false, false) {
return false
}
- if !yaml_emitter_process_line_comment(emitter) {
- return false
- }
- if !yaml_emitter_process_foot_comment(emitter) {
- return false
- }
emitter.state = emitter.states[len(emitter.states)-1]
emitter.states = emitter.states[:len(emitter.states)-1]
return true
}
- if !first && !trail {
+ if !first {
if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {
return false
}
}
-
- if !yaml_emitter_process_head_comment(emitter) {
- return false
- }
-
- if emitter.column == 0 {
- if !yaml_emitter_write_indent(emitter) {
- return false
- }
- }
-
if emitter.canonical || emitter.column > emitter.best_width {
if !yaml_emitter_write_indent(emitter) {
return false
@@ -703,32 +571,14 @@ func yaml_emitter_emit_flow_mapping_value(emitter *yaml_emitter_t, event *yaml_e
return false
}
}
- if len(emitter.line_comment)+len(emitter.foot_comment)+len(emitter.tail_comment) > 0 {
- emitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_TRAIL_KEY_STATE)
- } else {
- emitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_KEY_STATE)
- }
- if !yaml_emitter_emit_node(emitter, event, false, false, true, false) {
- return false
- }
- if len(emitter.line_comment)+len(emitter.foot_comment)+len(emitter.tail_comment) > 0 {
- if !yaml_emitter_write_indicator(emitter, []byte{','}, false, false, false) {
- return false
- }
- }
- if !yaml_emitter_process_line_comment(emitter) {
- return false
- }
- if !yaml_emitter_process_foot_comment(emitter) {
- return false
- }
- return true
+ emitter.states = append(emitter.states, yaml_EMIT_FLOW_MAPPING_KEY_STATE)
+ return yaml_emitter_emit_node(emitter, event, false, false, true, false)
}
// Expect a block item node.
func yaml_emitter_emit_block_sequence_item(emitter *yaml_emitter_t, event *yaml_event_t, first bool) bool {
if first {
- if !yaml_emitter_increase_indent(emitter, false, false) {
+ if !yaml_emitter_increase_indent(emitter, false, emitter.mapping_context && !emitter.indention) {
return false
}
}
@@ -739,9 +589,6 @@ func yaml_emitter_emit_block_sequence_item(emitter *yaml_emitter_t, event *yaml_
emitter.states = emitter.states[:len(emitter.states)-1]
return true
}
- if !yaml_emitter_process_head_comment(emitter) {
- return false
- }
if !yaml_emitter_write_indent(emitter) {
return false
}
@@ -749,16 +596,7 @@ func yaml_emitter_emit_block_sequence_item(emitter *yaml_emitter_t, event *yaml_
return false
}
emitter.states = append(emitter.states, yaml_EMIT_BLOCK_SEQUENCE_ITEM_STATE)
- if !yaml_emitter_emit_node(emitter, event, false, true, false, false) {
- return false
- }
- if !yaml_emitter_process_line_comment(emitter) {
- return false
- }
- if !yaml_emitter_process_foot_comment(emitter) {
- return false
- }
- return true
+ return yaml_emitter_emit_node(emitter, event, false, true, false, false)
}
// Expect a block key node.
@@ -768,9 +606,6 @@ func yaml_emitter_emit_block_mapping_key(emitter *yaml_emitter_t, event *yaml_ev
return false
}
}
- if !yaml_emitter_process_head_comment(emitter) {
- return false
- }
if event.typ == yaml_MAPPING_END_EVENT {
emitter.indent = emitter.indents[len(emitter.indents)-1]
emitter.indents = emitter.indents[:len(emitter.indents)-1]
@@ -781,13 +616,6 @@ func yaml_emitter_emit_block_mapping_key(emitter *yaml_emitter_t, event *yaml_ev
if !yaml_emitter_write_indent(emitter) {
return false
}
- if len(emitter.line_comment) > 0 {
- // [Go] A line comment was provided for the key. That's unusual as the
- // scanner associates line comments with the value. Either way,
- // save the line comment and render it appropriately later.
- emitter.key_line_comment = emitter.line_comment
- emitter.line_comment = nil
- }
if yaml_emitter_check_simple_key(emitter) {
emitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE)
return yaml_emitter_emit_node(emitter, event, false, false, true, true)
@@ -813,42 +641,8 @@ func yaml_emitter_emit_block_mapping_value(emitter *yaml_emitter_t, event *yaml_
return false
}
}
- if len(emitter.key_line_comment) > 0 {
- // [Go] Line comments are generally associated with the value, but when there's
- // no value on the same line as a mapping key they end up attached to the
- // key itself.
- if event.typ == yaml_SCALAR_EVENT {
- if len(emitter.line_comment) == 0 {
- // A scalar is coming and it has no line comments by itself yet,
- // so just let it handle the line comment as usual. If it has a
- // line comment, we can't have both so the one from the key is lost.
- emitter.line_comment = emitter.key_line_comment
- emitter.key_line_comment = nil
- }
- } else if event.sequence_style() != yaml_FLOW_SEQUENCE_STYLE && (event.typ == yaml_MAPPING_START_EVENT || event.typ == yaml_SEQUENCE_START_EVENT) {
- // An indented block follows, so write the comment right now.
- emitter.line_comment, emitter.key_line_comment = emitter.key_line_comment, emitter.line_comment
- if !yaml_emitter_process_line_comment(emitter) {
- return false
- }
- emitter.line_comment, emitter.key_line_comment = emitter.key_line_comment, emitter.line_comment
- }
- }
emitter.states = append(emitter.states, yaml_EMIT_BLOCK_MAPPING_KEY_STATE)
- if !yaml_emitter_emit_node(emitter, event, false, false, true, false) {
- return false
- }
- if !yaml_emitter_process_line_comment(emitter) {
- return false
- }
- if !yaml_emitter_process_foot_comment(emitter) {
- return false
- }
- return true
-}
-
-func yaml_emitter_silent_nil_event(emitter *yaml_emitter_t, event *yaml_event_t) bool {
- return event.typ == yaml_SCALAR_EVENT && event.implicit && !emitter.canonical && len(emitter.scalar_data.value) == 0
+ return yaml_emitter_emit_node(emitter, event, false, false, true, false)
}
// Expect a node.
@@ -1114,71 +908,6 @@ func yaml_emitter_process_scalar(emitter *yaml_emitter_t) bool {
panic("unknown scalar style")
}
-// Write a head comment.
-func yaml_emitter_process_head_comment(emitter *yaml_emitter_t) bool {
- if len(emitter.tail_comment) > 0 {
- if !yaml_emitter_write_indent(emitter) {
- return false
- }
- if !yaml_emitter_write_comment(emitter, emitter.tail_comment) {
- return false
- }
- emitter.tail_comment = emitter.tail_comment[:0]
- emitter.foot_indent = emitter.indent
- if emitter.foot_indent < 0 {
- emitter.foot_indent = 0
- }
- }
-
- if len(emitter.head_comment) == 0 {
- return true
- }
- if !yaml_emitter_write_indent(emitter) {
- return false
- }
- if !yaml_emitter_write_comment(emitter, emitter.head_comment) {
- return false
- }
- emitter.head_comment = emitter.head_comment[:0]
- return true
-}
-
-// Write an line comment.
-func yaml_emitter_process_line_comment(emitter *yaml_emitter_t) bool {
- if len(emitter.line_comment) == 0 {
- return true
- }
- if !emitter.whitespace {
- if !put(emitter, ' ') {
- return false
- }
- }
- if !yaml_emitter_write_comment(emitter, emitter.line_comment) {
- return false
- }
- emitter.line_comment = emitter.line_comment[:0]
- return true
-}
-
-// Write a foot comment.
-func yaml_emitter_process_foot_comment(emitter *yaml_emitter_t) bool {
- if len(emitter.foot_comment) == 0 {
- return true
- }
- if !yaml_emitter_write_indent(emitter) {
- return false
- }
- if !yaml_emitter_write_comment(emitter, emitter.foot_comment) {
- return false
- }
- emitter.foot_comment = emitter.foot_comment[:0]
- emitter.foot_indent = emitter.indent
- if emitter.foot_indent < 0 {
- emitter.foot_indent = 0
- }
- return true
-}
-
// Check if a %YAML directive is valid.
func yaml_emitter_analyze_version_directive(emitter *yaml_emitter_t, version_directive *yaml_version_directive_t) bool {
if version_directive.major != 1 || version_directive.minor != 1 {
@@ -1258,7 +987,6 @@ func yaml_emitter_analyze_scalar(emitter *yaml_emitter_t, value []byte) bool {
flow_indicators = false
line_breaks = false
special_characters = false
- tab_characters = false
leading_space = false
leading_break = false
@@ -1327,9 +1055,7 @@ func yaml_emitter_analyze_scalar(emitter *yaml_emitter_t, value []byte) bool {
}
}
- if value[i] == '\t' {
- tab_characters = true
- } else if !is_printable(value, i) || !is_ascii(value, i) && !emitter.unicode {
+ if !is_printable(value, i) || !is_ascii(value, i) && !emitter.unicode {
special_characters = true
}
if is_space(value, i) {
@@ -1384,12 +1110,10 @@ func yaml_emitter_analyze_scalar(emitter *yaml_emitter_t, value []byte) bool {
emitter.scalar_data.block_plain_allowed = false
emitter.scalar_data.single_quoted_allowed = false
}
- if space_break || tab_characters || special_characters {
+ if space_break || special_characters {
emitter.scalar_data.flow_plain_allowed = false
emitter.scalar_data.block_plain_allowed = false
emitter.scalar_data.single_quoted_allowed = false
- }
- if space_break || special_characters {
emitter.scalar_data.block_allowed = false
}
if line_breaks {
@@ -1413,19 +1137,6 @@ func yaml_emitter_analyze_event(emitter *yaml_emitter_t, event *yaml_event_t) bo
emitter.tag_data.suffix = nil
emitter.scalar_data.value = nil
- if len(event.head_comment) > 0 {
- emitter.head_comment = event.head_comment
- }
- if len(event.line_comment) > 0 {
- emitter.line_comment = event.line_comment
- }
- if len(event.foot_comment) > 0 {
- emitter.foot_comment = event.foot_comment
- }
- if len(event.tail_comment) > 0 {
- emitter.tail_comment = event.tail_comment
- }
-
switch event.typ {
case yaml_ALIAS_EVENT:
if !yaml_emitter_analyze_anchor(emitter, event.anchor, true) {
@@ -1497,20 +1208,13 @@ func yaml_emitter_write_indent(emitter *yaml_emitter_t) bool {
return false
}
}
- if emitter.foot_indent == indent {
- if !put_break(emitter) {
- return false
- }
- }
for emitter.column < indent {
if !put(emitter, ' ') {
return false
}
}
emitter.whitespace = true
- //emitter.indention = true
- emitter.space_above = false
- emitter.foot_indent = -1
+ emitter.indention = true
return true
}
@@ -1607,7 +1311,7 @@ func yaml_emitter_write_tag_content(emitter *yaml_emitter_t, value []byte, need_
}
func yaml_emitter_write_plain_scalar(emitter *yaml_emitter_t, value []byte, allow_breaks bool) bool {
- if len(value) > 0 && !emitter.whitespace {
+ if !emitter.whitespace {
if !put(emitter, ' ') {
return false
}
@@ -1637,7 +1341,7 @@ func yaml_emitter_write_plain_scalar(emitter *yaml_emitter_t, value []byte, allo
if !write_break(emitter, value, &i) {
return false
}
- //emitter.indention = true
+ emitter.indention = true
breaks = true
} else {
if breaks {
@@ -1654,9 +1358,7 @@ func yaml_emitter_write_plain_scalar(emitter *yaml_emitter_t, value []byte, allo
}
}
- if len(value) > 0 {
- emitter.whitespace = false
- }
+ emitter.whitespace = false
emitter.indention = false
if emitter.root_context {
emitter.open_ended = true
@@ -1695,7 +1397,7 @@ func yaml_emitter_write_single_quoted_scalar(emitter *yaml_emitter_t, value []by
if !write_break(emitter, value, &i) {
return false
}
- //emitter.indention = true
+ emitter.indention = true
breaks = true
} else {
if breaks {
@@ -1894,10 +1596,10 @@ func yaml_emitter_write_literal_scalar(emitter *yaml_emitter_t, value []byte) bo
if !yaml_emitter_write_block_scalar_hints(emitter, value) {
return false
}
- if !yaml_emitter_process_line_comment(emitter) {
+ if !put_break(emitter) {
return false
}
- //emitter.indention = true
+ emitter.indention = true
emitter.whitespace = true
breaks := true
for i := 0; i < len(value); {
@@ -1905,7 +1607,7 @@ func yaml_emitter_write_literal_scalar(emitter *yaml_emitter_t, value []byte) bo
if !write_break(emitter, value, &i) {
return false
}
- //emitter.indention = true
+ emitter.indention = true
breaks = true
} else {
if breaks {
@@ -1931,11 +1633,11 @@ func yaml_emitter_write_folded_scalar(emitter *yaml_emitter_t, value []byte) boo
if !yaml_emitter_write_block_scalar_hints(emitter, value) {
return false
}
- if !yaml_emitter_process_line_comment(emitter) {
+
+ if !put_break(emitter) {
return false
}
-
- //emitter.indention = true
+ emitter.indention = true
emitter.whitespace = true
breaks := true
@@ -1956,7 +1658,7 @@ func yaml_emitter_write_folded_scalar(emitter *yaml_emitter_t, value []byte) boo
if !write_break(emitter, value, &i) {
return false
}
- //emitter.indention = true
+ emitter.indention = true
breaks = true
} else {
if breaks {
@@ -1981,40 +1683,3 @@ func yaml_emitter_write_folded_scalar(emitter *yaml_emitter_t, value []byte) boo
}
return true
}
-
-func yaml_emitter_write_comment(emitter *yaml_emitter_t, comment []byte) bool {
- breaks := false
- pound := false
- for i := 0; i < len(comment); {
- if is_break(comment, i) {
- if !write_break(emitter, comment, &i) {
- return false
- }
- //emitter.indention = true
- breaks = true
- pound = false
- } else {
- if breaks && !yaml_emitter_write_indent(emitter) {
- return false
- }
- if !pound {
- if comment[i] != '#' && (!put(emitter, '#') || !put(emitter, ' ')) {
- return false
- }
- pound = true
- }
- if !write(emitter, comment, &i) {
- return false
- }
- emitter.indention = false
- breaks = false
- }
- }
- if !breaks && !put_break(emitter) {
- return false
- }
-
- emitter.whitespace = true
- //emitter.indention = true
- return true
-}
diff --git a/vendor/gopkg.in/yaml.v2/encode.go b/vendor/gopkg.in/yaml.v2/encode.go
new file mode 100644
index 00000000..0ee738e1
--- /dev/null
+++ b/vendor/gopkg.in/yaml.v2/encode.go
@@ -0,0 +1,390 @@
+package yaml
+
+import (
+ "encoding"
+ "fmt"
+ "io"
+ "reflect"
+ "regexp"
+ "sort"
+ "strconv"
+ "strings"
+ "time"
+ "unicode/utf8"
+)
+
+// jsonNumber is the interface of the encoding/json.Number datatype.
+// Repeating the interface here avoids a dependency on encoding/json, and also
+// supports other libraries like jsoniter, which use a similar datatype with
+// the same interface. Detecting this interface is useful when dealing with
+// structures containing json.Number, which is a string under the hood. The
+// encoder should prefer the use of Int64(), Float64() and string(), in that
+// order, when encoding this type.
+type jsonNumber interface {
+ Float64() (float64, error)
+ Int64() (int64, error)
+ String() string
+}
+
+type encoder struct {
+ emitter yaml_emitter_t
+ event yaml_event_t
+ out []byte
+ flow bool
+ // doneInit holds whether the initial stream_start_event has been
+ // emitted.
+ doneInit bool
+}
+
+func newEncoder() *encoder {
+ e := &encoder{}
+ yaml_emitter_initialize(&e.emitter)
+ yaml_emitter_set_output_string(&e.emitter, &e.out)
+ yaml_emitter_set_unicode(&e.emitter, true)
+ return e
+}
+
+func newEncoderWithWriter(w io.Writer) *encoder {
+ e := &encoder{}
+ yaml_emitter_initialize(&e.emitter)
+ yaml_emitter_set_output_writer(&e.emitter, w)
+ yaml_emitter_set_unicode(&e.emitter, true)
+ return e
+}
+
+func (e *encoder) init() {
+ if e.doneInit {
+ return
+ }
+ yaml_stream_start_event_initialize(&e.event, yaml_UTF8_ENCODING)
+ e.emit()
+ e.doneInit = true
+}
+
+func (e *encoder) finish() {
+ e.emitter.open_ended = false
+ yaml_stream_end_event_initialize(&e.event)
+ e.emit()
+}
+
+func (e *encoder) destroy() {
+ yaml_emitter_delete(&e.emitter)
+}
+
+func (e *encoder) emit() {
+ // This will internally delete the e.event value.
+ e.must(yaml_emitter_emit(&e.emitter, &e.event))
+}
+
+func (e *encoder) must(ok bool) {
+ if !ok {
+ msg := e.emitter.problem
+ if msg == "" {
+ msg = "unknown problem generating YAML content"
+ }
+ failf("%s", msg)
+ }
+}
+
+func (e *encoder) marshalDoc(tag string, in reflect.Value) {
+ e.init()
+ yaml_document_start_event_initialize(&e.event, nil, nil, true)
+ e.emit()
+ e.marshal(tag, in)
+ yaml_document_end_event_initialize(&e.event, true)
+ e.emit()
+}
+
+func (e *encoder) marshal(tag string, in reflect.Value) {
+ if !in.IsValid() || in.Kind() == reflect.Ptr && in.IsNil() {
+ e.nilv()
+ return
+ }
+ iface := in.Interface()
+ switch m := iface.(type) {
+ case jsonNumber:
+ integer, err := m.Int64()
+ if err == nil {
+ // In this case the json.Number is a valid int64
+ in = reflect.ValueOf(integer)
+ break
+ }
+ float, err := m.Float64()
+ if err == nil {
+ // In this case the json.Number is a valid float64
+ in = reflect.ValueOf(float)
+ break
+ }
+ // fallback case - no number could be obtained
+ in = reflect.ValueOf(m.String())
+ case time.Time, *time.Time:
+ // Although time.Time implements TextMarshaler,
+ // we don't want to treat it as a string for YAML
+ // purposes because YAML has special support for
+ // timestamps.
+ case Marshaler:
+ v, err := m.MarshalYAML()
+ if err != nil {
+ fail(err)
+ }
+ if v == nil {
+ e.nilv()
+ return
+ }
+ in = reflect.ValueOf(v)
+ case encoding.TextMarshaler:
+ text, err := m.MarshalText()
+ if err != nil {
+ fail(err)
+ }
+ in = reflect.ValueOf(string(text))
+ case nil:
+ e.nilv()
+ return
+ }
+ switch in.Kind() {
+ case reflect.Interface:
+ e.marshal(tag, in.Elem())
+ case reflect.Map:
+ e.mapv(tag, in)
+ case reflect.Ptr:
+ if in.Type() == ptrTimeType {
+ e.timev(tag, in.Elem())
+ } else {
+ e.marshal(tag, in.Elem())
+ }
+ case reflect.Struct:
+ if in.Type() == timeType {
+ e.timev(tag, in)
+ } else {
+ e.structv(tag, in)
+ }
+ case reflect.Slice, reflect.Array:
+ if in.Type().Elem() == mapItemType {
+ e.itemsv(tag, in)
+ } else {
+ e.slicev(tag, in)
+ }
+ case reflect.String:
+ e.stringv(tag, in)
+ case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
+ if in.Type() == durationType {
+ e.stringv(tag, reflect.ValueOf(iface.(time.Duration).String()))
+ } else {
+ e.intv(tag, in)
+ }
+ case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
+ e.uintv(tag, in)
+ case reflect.Float32, reflect.Float64:
+ e.floatv(tag, in)
+ case reflect.Bool:
+ e.boolv(tag, in)
+ default:
+ panic("cannot marshal type: " + in.Type().String())
+ }
+}
+
+func (e *encoder) mapv(tag string, in reflect.Value) {
+ e.mappingv(tag, func() {
+ keys := keyList(in.MapKeys())
+ sort.Sort(keys)
+ for _, k := range keys {
+ e.marshal("", k)
+ e.marshal("", in.MapIndex(k))
+ }
+ })
+}
+
+func (e *encoder) itemsv(tag string, in reflect.Value) {
+ e.mappingv(tag, func() {
+ slice := in.Convert(reflect.TypeOf([]MapItem{})).Interface().([]MapItem)
+ for _, item := range slice {
+ e.marshal("", reflect.ValueOf(item.Key))
+ e.marshal("", reflect.ValueOf(item.Value))
+ }
+ })
+}
+
+func (e *encoder) structv(tag string, in reflect.Value) {
+ sinfo, err := getStructInfo(in.Type())
+ if err != nil {
+ panic(err)
+ }
+ e.mappingv(tag, func() {
+ for _, info := range sinfo.FieldsList {
+ var value reflect.Value
+ if info.Inline == nil {
+ value = in.Field(info.Num)
+ } else {
+ value = in.FieldByIndex(info.Inline)
+ }
+ if info.OmitEmpty && isZero(value) {
+ continue
+ }
+ e.marshal("", reflect.ValueOf(info.Key))
+ e.flow = info.Flow
+ e.marshal("", value)
+ }
+ if sinfo.InlineMap >= 0 {
+ m := in.Field(sinfo.InlineMap)
+ if m.Len() > 0 {
+ e.flow = false
+ keys := keyList(m.MapKeys())
+ sort.Sort(keys)
+ for _, k := range keys {
+ if _, found := sinfo.FieldsMap[k.String()]; found {
+ panic(fmt.Sprintf("Can't have key %q in inlined map; conflicts with struct field", k.String()))
+ }
+ e.marshal("", k)
+ e.flow = false
+ e.marshal("", m.MapIndex(k))
+ }
+ }
+ }
+ })
+}
+
+func (e *encoder) mappingv(tag string, f func()) {
+ implicit := tag == ""
+ style := yaml_BLOCK_MAPPING_STYLE
+ if e.flow {
+ e.flow = false
+ style = yaml_FLOW_MAPPING_STYLE
+ }
+ yaml_mapping_start_event_initialize(&e.event, nil, []byte(tag), implicit, style)
+ e.emit()
+ f()
+ yaml_mapping_end_event_initialize(&e.event)
+ e.emit()
+}
+
+func (e *encoder) slicev(tag string, in reflect.Value) {
+ implicit := tag == ""
+ style := yaml_BLOCK_SEQUENCE_STYLE
+ if e.flow {
+ e.flow = false
+ style = yaml_FLOW_SEQUENCE_STYLE
+ }
+ e.must(yaml_sequence_start_event_initialize(&e.event, nil, []byte(tag), implicit, style))
+ e.emit()
+ n := in.Len()
+ for i := 0; i < n; i++ {
+ e.marshal("", in.Index(i))
+ }
+ e.must(yaml_sequence_end_event_initialize(&e.event))
+ e.emit()
+}
+
+// isBase60 returns whether s is in base 60 notation as defined in YAML 1.1.
+//
+// The base 60 float notation in YAML 1.1 is a terrible idea and is unsupported
+// in YAML 1.2 and by this package, but these should be marshalled quoted for
+// the time being for compatibility with other parsers.
+func isBase60Float(s string) (result bool) {
+ // Fast path.
+ if s == "" {
+ return false
+ }
+ c := s[0]
+ if !(c == '+' || c == '-' || c >= '0' && c <= '9') || strings.IndexByte(s, ':') < 0 {
+ return false
+ }
+ // Do the full match.
+ return base60float.MatchString(s)
+}
+
+// From http://yaml.org/type/float.html, except the regular expression there
+// is bogus. In practice parsers do not enforce the "\.[0-9_]*" suffix.
+var base60float = regexp.MustCompile(`^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+(?:\.[0-9_]*)?$`)
+
+func (e *encoder) stringv(tag string, in reflect.Value) {
+ var style yaml_scalar_style_t
+ s := in.String()
+ canUsePlain := true
+ switch {
+ case !utf8.ValidString(s):
+ if tag == yaml_BINARY_TAG {
+ failf("explicitly tagged !!binary data must be base64-encoded")
+ }
+ if tag != "" {
+ failf("cannot marshal invalid UTF-8 data as %s", shortTag(tag))
+ }
+ // It can't be encoded directly as YAML so use a binary tag
+ // and encode it as base64.
+ tag = yaml_BINARY_TAG
+ s = encodeBase64(s)
+ case tag == "":
+ // Check to see if it would resolve to a specific
+ // tag when encoded unquoted. If it doesn't,
+ // there's no need to quote it.
+ rtag, _ := resolve("", s)
+ canUsePlain = rtag == yaml_STR_TAG && !isBase60Float(s)
+ }
+ // Note: it's possible for user code to emit invalid YAML
+ // if they explicitly specify a tag and a string containing
+ // text that's incompatible with that tag.
+ switch {
+ case strings.Contains(s, "\n"):
+ style = yaml_LITERAL_SCALAR_STYLE
+ case canUsePlain:
+ style = yaml_PLAIN_SCALAR_STYLE
+ default:
+ style = yaml_DOUBLE_QUOTED_SCALAR_STYLE
+ }
+ e.emitScalar(s, "", tag, style)
+}
+
+func (e *encoder) boolv(tag string, in reflect.Value) {
+ var s string
+ if in.Bool() {
+ s = "true"
+ } else {
+ s = "false"
+ }
+ e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE)
+}
+
+func (e *encoder) intv(tag string, in reflect.Value) {
+ s := strconv.FormatInt(in.Int(), 10)
+ e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE)
+}
+
+func (e *encoder) uintv(tag string, in reflect.Value) {
+ s := strconv.FormatUint(in.Uint(), 10)
+ e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE)
+}
+
+func (e *encoder) timev(tag string, in reflect.Value) {
+ t := in.Interface().(time.Time)
+ s := t.Format(time.RFC3339Nano)
+ e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE)
+}
+
+func (e *encoder) floatv(tag string, in reflect.Value) {
+ // Issue #352: When formatting, use the precision of the underlying value
+ precision := 64
+ if in.Kind() == reflect.Float32 {
+ precision = 32
+ }
+
+ s := strconv.FormatFloat(in.Float(), 'g', -1, precision)
+ switch s {
+ case "+Inf":
+ s = ".inf"
+ case "-Inf":
+ s = "-.inf"
+ case "NaN":
+ s = ".nan"
+ }
+ e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE)
+}
+
+func (e *encoder) nilv() {
+ e.emitScalar("null", "", "", yaml_PLAIN_SCALAR_STYLE)
+}
+
+func (e *encoder) emitScalar(value, anchor, tag string, style yaml_scalar_style_t) {
+ implicit := tag == ""
+ e.must(yaml_scalar_event_initialize(&e.event, []byte(anchor), []byte(tag), []byte(value), implicit, implicit, style))
+ e.emit()
+}
diff --git a/vendor/gopkg.in/yaml.v3/parserc.go b/vendor/gopkg.in/yaml.v2/parserc.go
similarity index 85%
rename from vendor/gopkg.in/yaml.v3/parserc.go
rename to vendor/gopkg.in/yaml.v2/parserc.go
index 268558a0..81d05dfe 100644
--- a/vendor/gopkg.in/yaml.v3/parserc.go
+++ b/vendor/gopkg.in/yaml.v2/parserc.go
@@ -1,25 +1,3 @@
-//
-// Copyright (c) 2011-2019 Canonical Ltd
-// Copyright (c) 2006-2010 Kirill Simonov
-//
-// 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.
-
package yaml
import (
@@ -67,46 +45,11 @@ import (
// Peek the next token in the token queue.
func peek_token(parser *yaml_parser_t) *yaml_token_t {
if parser.token_available || yaml_parser_fetch_more_tokens(parser) {
- token := &parser.tokens[parser.tokens_head]
- yaml_parser_unfold_comments(parser, token)
- return token
+ return &parser.tokens[parser.tokens_head]
}
return nil
}
-// yaml_parser_unfold_comments walks through the comments queue and joins all
-// comments behind the position of the provided token into the respective
-// top-level comment slices in the parser.
-func yaml_parser_unfold_comments(parser *yaml_parser_t, token *yaml_token_t) {
- for parser.comments_head < len(parser.comments) && token.start_mark.index >= parser.comments[parser.comments_head].token_mark.index {
- comment := &parser.comments[parser.comments_head]
- if len(comment.head) > 0 {
- if token.typ == yaml_BLOCK_END_TOKEN {
- // No heads on ends, so keep comment.head for a follow up token.
- break
- }
- if len(parser.head_comment) > 0 {
- parser.head_comment = append(parser.head_comment, '\n')
- }
- parser.head_comment = append(parser.head_comment, comment.head...)
- }
- if len(comment.foot) > 0 {
- if len(parser.foot_comment) > 0 {
- parser.foot_comment = append(parser.foot_comment, '\n')
- }
- parser.foot_comment = append(parser.foot_comment, comment.foot...)
- }
- if len(comment.line) > 0 {
- if len(parser.line_comment) > 0 {
- parser.line_comment = append(parser.line_comment, '\n')
- }
- parser.line_comment = append(parser.line_comment, comment.line...)
- }
- *comment = yaml_comment_t{}
- parser.comments_head++
- }
-}
-
// Remove the next token from the queue (must be called after peek_token).
func skip_token(parser *yaml_parser_t) {
parser.token_available = false
@@ -281,32 +224,10 @@ func yaml_parser_parse_document_start(parser *yaml_parser_t, event *yaml_event_t
parser.states = append(parser.states, yaml_PARSE_DOCUMENT_END_STATE)
parser.state = yaml_PARSE_BLOCK_NODE_STATE
- var head_comment []byte
- if len(parser.head_comment) > 0 {
- // [Go] Scan the header comment backwards, and if an empty line is found, break
- // the header so the part before the last empty line goes into the
- // document header, while the bottom of it goes into a follow up event.
- for i := len(parser.head_comment) - 1; i > 0; i-- {
- if parser.head_comment[i] == '\n' {
- if i == len(parser.head_comment)-1 {
- head_comment = parser.head_comment[:i]
- parser.head_comment = parser.head_comment[i+1:]
- break
- } else if parser.head_comment[i-1] == '\n' {
- head_comment = parser.head_comment[:i-1]
- parser.head_comment = parser.head_comment[i+1:]
- break
- }
- }
- }
- }
-
*event = yaml_event_t{
typ: yaml_DOCUMENT_START_EVENT,
start_mark: token.start_mark,
end_mark: token.end_mark,
-
- head_comment: head_comment,
}
} else if token.typ != yaml_STREAM_END_TOKEN {
@@ -363,7 +284,6 @@ func yaml_parser_parse_document_content(parser *yaml_parser_t, event *yaml_event
if token == nil {
return false
}
-
if token.typ == yaml_VERSION_DIRECTIVE_TOKEN ||
token.typ == yaml_TAG_DIRECTIVE_TOKEN ||
token.typ == yaml_DOCUMENT_START_TOKEN ||
@@ -407,25 +327,9 @@ func yaml_parser_parse_document_end(parser *yaml_parser_t, event *yaml_event_t)
end_mark: end_mark,
implicit: implicit,
}
- yaml_parser_set_event_comments(parser, event)
- if len(event.head_comment) > 0 && len(event.foot_comment) == 0 {
- event.foot_comment = event.head_comment
- event.head_comment = nil
- }
return true
}
-func yaml_parser_set_event_comments(parser *yaml_parser_t, event *yaml_event_t) {
- event.head_comment = parser.head_comment
- event.line_comment = parser.line_comment
- event.foot_comment = parser.foot_comment
- parser.head_comment = nil
- parser.line_comment = nil
- parser.foot_comment = nil
- parser.tail_comment = nil
- parser.stem_comment = nil
-}
-
// Parse the productions:
// block_node_or_indentless_sequence ::=
// ALIAS
@@ -469,7 +373,6 @@ func yaml_parser_parse_node(parser *yaml_parser_t, event *yaml_event_t, block, i
end_mark: token.end_mark,
anchor: token.value,
}
- yaml_parser_set_event_comments(parser, event)
skip_token(parser)
return true
}
@@ -583,7 +486,6 @@ func yaml_parser_parse_node(parser *yaml_parser_t, event *yaml_event_t, block, i
quoted_implicit: quoted_implicit,
style: yaml_style_t(token.style),
}
- yaml_parser_set_event_comments(parser, event)
skip_token(parser)
return true
}
@@ -600,7 +502,6 @@ func yaml_parser_parse_node(parser *yaml_parser_t, event *yaml_event_t, block, i
implicit: implicit,
style: yaml_style_t(yaml_FLOW_SEQUENCE_STYLE),
}
- yaml_parser_set_event_comments(parser, event)
return true
}
if token.typ == yaml_FLOW_MAPPING_START_TOKEN {
@@ -615,7 +516,6 @@ func yaml_parser_parse_node(parser *yaml_parser_t, event *yaml_event_t, block, i
implicit: implicit,
style: yaml_style_t(yaml_FLOW_MAPPING_STYLE),
}
- yaml_parser_set_event_comments(parser, event)
return true
}
if block && token.typ == yaml_BLOCK_SEQUENCE_START_TOKEN {
@@ -630,10 +530,6 @@ func yaml_parser_parse_node(parser *yaml_parser_t, event *yaml_event_t, block, i
implicit: implicit,
style: yaml_style_t(yaml_BLOCK_SEQUENCE_STYLE),
}
- if parser.stem_comment != nil {
- event.head_comment = parser.stem_comment
- parser.stem_comment = nil
- }
return true
}
if block && token.typ == yaml_BLOCK_MAPPING_START_TOKEN {
@@ -648,10 +544,6 @@ func yaml_parser_parse_node(parser *yaml_parser_t, event *yaml_event_t, block, i
implicit: implicit,
style: yaml_style_t(yaml_BLOCK_MAPPING_STYLE),
}
- if parser.stem_comment != nil {
- event.head_comment = parser.stem_comment
- parser.stem_comment = nil
- }
return true
}
if len(anchor) > 0 || len(tag) > 0 {
@@ -687,9 +579,6 @@ func yaml_parser_parse_node(parser *yaml_parser_t, event *yaml_event_t, block, i
func yaml_parser_parse_block_sequence_entry(parser *yaml_parser_t, event *yaml_event_t, first bool) bool {
if first {
token := peek_token(parser)
- if token == nil {
- return false
- }
parser.marks = append(parser.marks, token.start_mark)
skip_token(parser)
}
@@ -701,9 +590,7 @@ func yaml_parser_parse_block_sequence_entry(parser *yaml_parser_t, event *yaml_e
if token.typ == yaml_BLOCK_ENTRY_TOKEN {
mark := token.end_mark
- prior_head_len := len(parser.head_comment)
skip_token(parser)
- yaml_parser_split_stem_comment(parser, prior_head_len)
token = peek_token(parser)
if token == nil {
return false
@@ -749,9 +636,7 @@ func yaml_parser_parse_indentless_sequence_entry(parser *yaml_parser_t, event *y
if token.typ == yaml_BLOCK_ENTRY_TOKEN {
mark := token.end_mark
- prior_head_len := len(parser.head_comment)
skip_token(parser)
- yaml_parser_split_stem_comment(parser, prior_head_len)
token = peek_token(parser)
if token == nil {
return false
@@ -777,32 +662,6 @@ func yaml_parser_parse_indentless_sequence_entry(parser *yaml_parser_t, event *y
return true
}
-// Split stem comment from head comment.
-//
-// When a sequence or map is found under a sequence entry, the former head comment
-// is assigned to the underlying sequence or map as a whole, not the individual
-// sequence or map entry as would be expected otherwise. To handle this case the
-// previous head comment is moved aside as the stem comment.
-func yaml_parser_split_stem_comment(parser *yaml_parser_t, stem_len int) {
- if stem_len == 0 {
- return
- }
-
- token := peek_token(parser)
- if token == nil || token.typ != yaml_BLOCK_SEQUENCE_START_TOKEN && token.typ != yaml_BLOCK_MAPPING_START_TOKEN {
- return
- }
-
- parser.stem_comment = parser.head_comment[:stem_len]
- if len(parser.head_comment) == stem_len {
- parser.head_comment = nil
- } else {
- // Copy suffix to prevent very strange bugs if someone ever appends
- // further bytes to the prefix in the stem_comment slice above.
- parser.head_comment = append([]byte(nil), parser.head_comment[stem_len+1:]...)
- }
-}
-
// Parse the productions:
// block_mapping ::= BLOCK-MAPPING_START
// *******************
@@ -816,9 +675,6 @@ func yaml_parser_split_stem_comment(parser *yaml_parser_t, stem_len int) {
func yaml_parser_parse_block_mapping_key(parser *yaml_parser_t, event *yaml_event_t, first bool) bool {
if first {
token := peek_token(parser)
- if token == nil {
- return false
- }
parser.marks = append(parser.marks, token.start_mark)
skip_token(parser)
}
@@ -828,19 +684,6 @@ func yaml_parser_parse_block_mapping_key(parser *yaml_parser_t, event *yaml_even
return false
}
- // [Go] A tail comment was left from the prior mapping value processed. Emit an event
- // as it needs to be processed with that value and not the following key.
- if len(parser.tail_comment) > 0 {
- *event = yaml_event_t{
- typ: yaml_TAIL_COMMENT_EVENT,
- start_mark: token.start_mark,
- end_mark: token.end_mark,
- foot_comment: parser.tail_comment,
- }
- parser.tail_comment = nil
- return true
- }
-
if token.typ == yaml_KEY_TOKEN {
mark := token.end_mark
skip_token(parser)
@@ -866,7 +709,6 @@ func yaml_parser_parse_block_mapping_key(parser *yaml_parser_t, event *yaml_even
start_mark: token.start_mark,
end_mark: token.end_mark,
}
- yaml_parser_set_event_comments(parser, event)
skip_token(parser)
return true
}
@@ -928,9 +770,6 @@ func yaml_parser_parse_block_mapping_value(parser *yaml_parser_t, event *yaml_ev
func yaml_parser_parse_flow_sequence_entry(parser *yaml_parser_t, event *yaml_event_t, first bool) bool {
if first {
token := peek_token(parser)
- if token == nil {
- return false
- }
parser.marks = append(parser.marks, token.start_mark)
skip_token(parser)
}
@@ -981,7 +820,6 @@ func yaml_parser_parse_flow_sequence_entry(parser *yaml_parser_t, event *yaml_ev
start_mark: token.start_mark,
end_mark: token.end_mark,
}
- yaml_parser_set_event_comments(parser, event)
skip_token(parser)
return true
@@ -1121,7 +959,6 @@ func yaml_parser_parse_flow_mapping_key(parser *yaml_parser_t, event *yaml_event
start_mark: token.start_mark,
end_mark: token.end_mark,
}
- yaml_parser_set_event_comments(parser, event)
skip_token(parser)
return true
}
diff --git a/vendor/gopkg.in/yaml.v3/readerc.go b/vendor/gopkg.in/yaml.v2/readerc.go
similarity index 91%
rename from vendor/gopkg.in/yaml.v3/readerc.go
rename to vendor/gopkg.in/yaml.v2/readerc.go
index b7de0a89..7c1f5fac 100644
--- a/vendor/gopkg.in/yaml.v3/readerc.go
+++ b/vendor/gopkg.in/yaml.v2/readerc.go
@@ -1,25 +1,3 @@
-//
-// Copyright (c) 2011-2019 Canonical Ltd
-// Copyright (c) 2006-2010 Kirill Simonov
-//
-// 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.
-
package yaml
import (
@@ -117,7 +95,7 @@ func yaml_parser_update_buffer(parser *yaml_parser_t, length int) bool {
// [Go] This function was changed to guarantee the requested length size at EOF.
// The fact we need to do this is pretty awful, but the description above implies
- // for that to be the case, and there are tests
+ // for that to be the case, and there are tests
// If the EOF flag is set and the raw buffer is empty, do nothing.
if parser.eof && parser.raw_buffer_pos == len(parser.raw_buffer) {
diff --git a/vendor/gopkg.in/yaml.v3/resolve.go b/vendor/gopkg.in/yaml.v2/resolve.go
similarity index 60%
rename from vendor/gopkg.in/yaml.v3/resolve.go
rename to vendor/gopkg.in/yaml.v2/resolve.go
index 64ae8880..4120e0c9 100644
--- a/vendor/gopkg.in/yaml.v3/resolve.go
+++ b/vendor/gopkg.in/yaml.v2/resolve.go
@@ -1,18 +1,3 @@
-//
-// Copyright (c) 2011-2019 Canonical Ltd
-//
-// 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.
-
package yaml
import (
@@ -49,14 +34,18 @@ func init() {
tag string
l []string
}{
- {true, boolTag, []string{"true", "True", "TRUE"}},
- {false, boolTag, []string{"false", "False", "FALSE"}},
- {nil, nullTag, []string{"", "~", "null", "Null", "NULL"}},
- {math.NaN(), floatTag, []string{".nan", ".NaN", ".NAN"}},
- {math.Inf(+1), floatTag, []string{".inf", ".Inf", ".INF"}},
- {math.Inf(+1), floatTag, []string{"+.inf", "+.Inf", "+.INF"}},
- {math.Inf(-1), floatTag, []string{"-.inf", "-.Inf", "-.INF"}},
- {"<<", mergeTag, []string{"<<"}},
+ {true, yaml_BOOL_TAG, []string{"y", "Y", "yes", "Yes", "YES"}},
+ {true, yaml_BOOL_TAG, []string{"true", "True", "TRUE"}},
+ {true, yaml_BOOL_TAG, []string{"on", "On", "ON"}},
+ {false, yaml_BOOL_TAG, []string{"n", "N", "no", "No", "NO"}},
+ {false, yaml_BOOL_TAG, []string{"false", "False", "FALSE"}},
+ {false, yaml_BOOL_TAG, []string{"off", "Off", "OFF"}},
+ {nil, yaml_NULL_TAG, []string{"", "~", "null", "Null", "NULL"}},
+ {math.NaN(), yaml_FLOAT_TAG, []string{".nan", ".NaN", ".NAN"}},
+ {math.Inf(+1), yaml_FLOAT_TAG, []string{".inf", ".Inf", ".INF"}},
+ {math.Inf(+1), yaml_FLOAT_TAG, []string{"+.inf", "+.Inf", "+.INF"}},
+ {math.Inf(-1), yaml_FLOAT_TAG, []string{"-.inf", "-.Inf", "-.INF"}},
+ {"<<", yaml_MERGE_TAG, []string{"<<"}},
}
m := resolveMap
@@ -67,37 +56,11 @@ func init() {
}
}
-const (
- nullTag = "!!null"
- boolTag = "!!bool"
- strTag = "!!str"
- intTag = "!!int"
- floatTag = "!!float"
- timestampTag = "!!timestamp"
- seqTag = "!!seq"
- mapTag = "!!map"
- binaryTag = "!!binary"
- mergeTag = "!!merge"
-)
-
-var longTags = make(map[string]string)
-var shortTags = make(map[string]string)
-
-func init() {
- for _, stag := range []string{nullTag, boolTag, strTag, intTag, floatTag, timestampTag, seqTag, mapTag, binaryTag, mergeTag} {
- ltag := longTag(stag)
- longTags[stag] = ltag
- shortTags[ltag] = stag
- }
-}
-
const longTagPrefix = "tag:yaml.org,2002:"
func shortTag(tag string) string {
+ // TODO This can easily be made faster and produce less garbage.
if strings.HasPrefix(tag, longTagPrefix) {
- if stag, ok := shortTags[tag]; ok {
- return stag
- }
return "!!" + tag[len(longTagPrefix):]
}
return tag
@@ -105,9 +68,6 @@ func shortTag(tag string) string {
func longTag(tag string) string {
if strings.HasPrefix(tag, "!!") {
- if ltag, ok := longTags[tag]; ok {
- return ltag
- }
return longTagPrefix + tag[2:]
}
return tag
@@ -115,7 +75,7 @@ func longTag(tag string) string {
func resolvableTag(tag string) bool {
switch tag {
- case "", strTag, boolTag, intTag, floatTag, nullTag, timestampTag:
+ case "", yaml_STR_TAG, yaml_BOOL_TAG, yaml_INT_TAG, yaml_FLOAT_TAG, yaml_NULL_TAG, yaml_TIMESTAMP_TAG:
return true
}
return false
@@ -124,24 +84,23 @@ func resolvableTag(tag string) bool {
var yamlStyleFloat = regexp.MustCompile(`^[-+]?(\.[0-9]+|[0-9]+(\.[0-9]*)?)([eE][-+]?[0-9]+)?$`)
func resolve(tag string, in string) (rtag string, out interface{}) {
- tag = shortTag(tag)
if !resolvableTag(tag) {
return tag, in
}
defer func() {
switch tag {
- case "", rtag, strTag, binaryTag:
+ case "", rtag, yaml_STR_TAG, yaml_BINARY_TAG:
return
- case floatTag:
- if rtag == intTag {
+ case yaml_FLOAT_TAG:
+ if rtag == yaml_INT_TAG {
switch v := out.(type) {
case int64:
- rtag = floatTag
+ rtag = yaml_FLOAT_TAG
out = float64(v)
return
case int:
- rtag = floatTag
+ rtag = yaml_FLOAT_TAG
out = float64(v)
return
}
@@ -156,7 +115,7 @@ func resolve(tag string, in string) (rtag string, out interface{}) {
if in != "" {
hint = resolveTable[in[0]]
}
- if hint != 0 && tag != strTag && tag != binaryTag {
+ if hint != 0 && tag != yaml_STR_TAG && tag != yaml_BINARY_TAG {
// Handle things we can lookup in a map.
if item, ok := resolveMap[in]; ok {
return item.tag, item.value
@@ -174,17 +133,17 @@ func resolve(tag string, in string) (rtag string, out interface{}) {
// Not in the map, so maybe a normal float.
floatv, err := strconv.ParseFloat(in, 64)
if err == nil {
- return floatTag, floatv
+ return yaml_FLOAT_TAG, floatv
}
case 'D', 'S':
// Int, float, or timestamp.
// Only try values as a timestamp if the value is unquoted or there's an explicit
// !!timestamp tag.
- if tag == "" || tag == timestampTag {
+ if tag == "" || tag == yaml_TIMESTAMP_TAG {
t, ok := parseTimestamp(in)
if ok {
- return timestampTag, t
+ return yaml_TIMESTAMP_TAG, t
}
}
@@ -192,76 +151,49 @@ func resolve(tag string, in string) (rtag string, out interface{}) {
intv, err := strconv.ParseInt(plain, 0, 64)
if err == nil {
if intv == int64(int(intv)) {
- return intTag, int(intv)
+ return yaml_INT_TAG, int(intv)
} else {
- return intTag, intv
+ return yaml_INT_TAG, intv
}
}
uintv, err := strconv.ParseUint(plain, 0, 64)
if err == nil {
- return intTag, uintv
+ return yaml_INT_TAG, uintv
}
if yamlStyleFloat.MatchString(plain) {
floatv, err := strconv.ParseFloat(plain, 64)
if err == nil {
- return floatTag, floatv
+ return yaml_FLOAT_TAG, floatv
}
}
if strings.HasPrefix(plain, "0b") {
intv, err := strconv.ParseInt(plain[2:], 2, 64)
if err == nil {
if intv == int64(int(intv)) {
- return intTag, int(intv)
+ return yaml_INT_TAG, int(intv)
} else {
- return intTag, intv
+ return yaml_INT_TAG, intv
}
}
uintv, err := strconv.ParseUint(plain[2:], 2, 64)
if err == nil {
- return intTag, uintv
+ return yaml_INT_TAG, uintv
}
} else if strings.HasPrefix(plain, "-0b") {
- intv, err := strconv.ParseInt("-"+plain[3:], 2, 64)
- if err == nil {
- if true || intv == int64(int(intv)) {
- return intTag, int(intv)
- } else {
- return intTag, intv
- }
- }
- }
- // Octals as introduced in version 1.2 of the spec.
- // Octals from the 1.1 spec, spelled as 0777, are still
- // decoded by default in v3 as well for compatibility.
- // May be dropped in v4 depending on how usage evolves.
- if strings.HasPrefix(plain, "0o") {
- intv, err := strconv.ParseInt(plain[2:], 8, 64)
- if err == nil {
- if intv == int64(int(intv)) {
- return intTag, int(intv)
- } else {
- return intTag, intv
- }
- }
- uintv, err := strconv.ParseUint(plain[2:], 8, 64)
- if err == nil {
- return intTag, uintv
- }
- } else if strings.HasPrefix(plain, "-0o") {
- intv, err := strconv.ParseInt("-"+plain[3:], 8, 64)
+ intv, err := strconv.ParseInt("-" + plain[3:], 2, 64)
if err == nil {
if true || intv == int64(int(intv)) {
- return intTag, int(intv)
+ return yaml_INT_TAG, int(intv)
} else {
- return intTag, intv
+ return yaml_INT_TAG, intv
}
}
}
default:
- panic("internal error: missing handler for resolver table: " + string(rune(hint)) + " (with " + in + ")")
+ panic("resolveTable item not yet handled: " + string(rune(hint)) + " (with " + in + ")")
}
}
- return strTag, in
+ return yaml_STR_TAG, in
}
// encodeBase64 encodes s as base64 that is broken up into multiple lines
diff --git a/vendor/gopkg.in/yaml.v3/scannerc.go b/vendor/gopkg.in/yaml.v2/scannerc.go
similarity index 87%
rename from vendor/gopkg.in/yaml.v3/scannerc.go
rename to vendor/gopkg.in/yaml.v2/scannerc.go
index ca007010..0b9bb603 100644
--- a/vendor/gopkg.in/yaml.v3/scannerc.go
+++ b/vendor/gopkg.in/yaml.v2/scannerc.go
@@ -1,25 +1,3 @@
-//
-// Copyright (c) 2011-2019 Canonical Ltd
-// Copyright (c) 2006-2010 Kirill Simonov
-//
-// 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.
-
package yaml
import (
@@ -511,9 +489,6 @@ func cache(parser *yaml_parser_t, length int) bool {
// Advance the buffer pointer.
func skip(parser *yaml_parser_t) {
- if !is_blank(parser.buffer, parser.buffer_pos) {
- parser.newlines = 0
- }
parser.mark.index++
parser.mark.column++
parser.unread--
@@ -527,22 +502,17 @@ func skip_line(parser *yaml_parser_t) {
parser.mark.line++
parser.unread -= 2
parser.buffer_pos += 2
- parser.newlines++
} else if is_break(parser.buffer, parser.buffer_pos) {
parser.mark.index++
parser.mark.column = 0
parser.mark.line++
parser.unread--
parser.buffer_pos += width(parser.buffer[parser.buffer_pos])
- parser.newlines++
}
}
// Copy a character to a string buffer and advance pointers.
func read(parser *yaml_parser_t, s []byte) []byte {
- if !is_blank(parser.buffer, parser.buffer_pos) {
- parser.newlines = 0
- }
w := width(parser.buffer[parser.buffer_pos])
if w == 0 {
panic("invalid character sequence")
@@ -594,7 +564,6 @@ func read_line(parser *yaml_parser_t, s []byte) []byte {
parser.mark.column = 0
parser.mark.line++
parser.unread--
- parser.newlines++
return s
}
@@ -657,13 +626,9 @@ func trace(args ...interface{}) func() {
func yaml_parser_fetch_more_tokens(parser *yaml_parser_t) bool {
// While we need more tokens to fetch, do it.
for {
- // [Go] The comment parsing logic requires a lookahead of two tokens
- // so that foot comments may be parsed in time of associating them
- // with the tokens that are parsed before them, and also for line
- // comments to be transformed into head comments in some edge cases.
- if parser.tokens_head < len(parser.tokens)-2 {
- // If a potential simple key is at the head position, we need to fetch
- // the next token to disambiguate it.
+ if parser.tokens_head != len(parser.tokens) {
+ // If queue is non-empty, check if any potential simple key may
+ // occupy the head position.
head_tok_idx, ok := parser.simple_keys_by_tok[parser.tokens_parsed]
if !ok {
break
@@ -684,7 +649,7 @@ func yaml_parser_fetch_more_tokens(parser *yaml_parser_t) bool {
}
// The dispatcher for token fetchers.
-func yaml_parser_fetch_next_token(parser *yaml_parser_t) (ok bool) {
+func yaml_parser_fetch_next_token(parser *yaml_parser_t) bool {
// Ensure that the buffer is initialized.
if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {
return false
@@ -695,19 +660,13 @@ func yaml_parser_fetch_next_token(parser *yaml_parser_t) (ok bool) {
return yaml_parser_fetch_stream_start(parser)
}
- scan_mark := parser.mark
-
// Eat whitespaces and comments until we reach the next token.
if !yaml_parser_scan_to_next_token(parser) {
return false
}
- // [Go] While unrolling indents, transform the head comments of prior
- // indentation levels observed after scan_start into foot comments at
- // the respective indexes.
-
// Check the indentation level against the current column.
- if !yaml_parser_unroll_indent(parser, parser.mark.column, scan_mark) {
+ if !yaml_parser_unroll_indent(parser, parser.mark.column) {
return false
}
@@ -740,26 +699,6 @@ func yaml_parser_fetch_next_token(parser *yaml_parser_t) (ok bool) {
return yaml_parser_fetch_document_indicator(parser, yaml_DOCUMENT_END_TOKEN)
}
- comment_mark := parser.mark
- if len(parser.tokens) > 0 && (parser.flow_level == 0 && buf[pos] == ':' || parser.flow_level > 0 && buf[pos] == ',') {
- // Associate any following comments with the prior token.
- comment_mark = parser.tokens[len(parser.tokens)-1].start_mark
- }
- defer func() {
- if !ok {
- return
- }
- if len(parser.tokens) > 0 && parser.tokens[len(parser.tokens)-1].typ == yaml_BLOCK_ENTRY_TOKEN {
- // Sequence indicators alone have no line comments. It becomes
- // a head comment for whatever follows.
- return
- }
- if !yaml_parser_scan_line_comment(parser, comment_mark) {
- ok = false
- return
- }
- }()
-
// Is it the flow sequence start indicator?
if buf[pos] == '[' {
return yaml_parser_fetch_flow_collection_start(parser, yaml_FLOW_SEQUENCE_START_TOKEN)
@@ -853,7 +792,7 @@ func yaml_parser_fetch_next_token(parser *yaml_parser_t) (ok bool) {
// if it is followed by a non-space character.
//
// The last rule is more restrictive than the specification requires.
- // [Go] TODO Make this logic more reasonable.
+ // [Go] Make this logic more reasonable.
//switch parser.buffer[parser.buffer_pos] {
//case '-', '?', ':', ',', '?', '-', ',', ':', ']', '[', '}', '{', '&', '#', '!', '*', '>', '|', '"', '\'', '@', '%', '-', '`':
//}
@@ -1026,49 +965,19 @@ func yaml_parser_roll_indent(parser *yaml_parser_t, column, number int, typ yaml
// Pop indentation levels from the indents stack until the current level
// becomes less or equal to the column. For each indentation level, append
// the BLOCK-END token.
-func yaml_parser_unroll_indent(parser *yaml_parser_t, column int, scan_mark yaml_mark_t) bool {
+func yaml_parser_unroll_indent(parser *yaml_parser_t, column int) bool {
// In the flow context, do nothing.
if parser.flow_level > 0 {
return true
}
- block_mark := scan_mark
- block_mark.index--
-
// Loop through the indentation levels in the stack.
for parser.indent > column {
-
- // [Go] Reposition the end token before potential following
- // foot comments of parent blocks. For that, search
- // backwards for recent comments that were at the same
- // indent as the block that is ending now.
- stop_index := block_mark.index
- for i := len(parser.comments) - 1; i >= 0; i-- {
- comment := &parser.comments[i]
-
- if comment.end_mark.index < stop_index {
- // Don't go back beyond the start of the comment/whitespace scan, unless column < 0.
- // If requested indent column is < 0, then the document is over and everything else
- // is a foot anyway.
- break
- }
- if comment.start_mark.column == parser.indent+1 {
- // This is a good match. But maybe there's a former comment
- // at that same indent level, so keep searching.
- block_mark = comment.start_mark
- }
-
- // While the end of the former comment matches with
- // the start of the following one, we know there's
- // nothing in between and scanning is still safe.
- stop_index = comment.scan_mark.index
- }
-
// Create a token and append it to the queue.
token := yaml_token_t{
typ: yaml_BLOCK_END_TOKEN,
- start_mark: block_mark,
- end_mark: block_mark,
+ start_mark: parser.mark,
+ end_mark: parser.mark,
}
yaml_insert_token(parser, -1, &token)
@@ -1117,7 +1026,7 @@ func yaml_parser_fetch_stream_end(parser *yaml_parser_t) bool {
}
// Reset the indentation level.
- if !yaml_parser_unroll_indent(parser, -1, parser.mark) {
+ if !yaml_parser_unroll_indent(parser, -1) {
return false
}
@@ -1141,7 +1050,7 @@ func yaml_parser_fetch_stream_end(parser *yaml_parser_t) bool {
// Produce a VERSION-DIRECTIVE or TAG-DIRECTIVE token.
func yaml_parser_fetch_directive(parser *yaml_parser_t) bool {
// Reset the indentation level.
- if !yaml_parser_unroll_indent(parser, -1, parser.mark) {
+ if !yaml_parser_unroll_indent(parser, -1) {
return false
}
@@ -1165,7 +1074,7 @@ func yaml_parser_fetch_directive(parser *yaml_parser_t) bool {
// Produce the DOCUMENT-START or DOCUMENT-END token.
func yaml_parser_fetch_document_indicator(parser *yaml_parser_t, typ yaml_token_type_t) bool {
// Reset the indentation level.
- if !yaml_parser_unroll_indent(parser, -1, parser.mark) {
+ if !yaml_parser_unroll_indent(parser, -1) {
return false
}
@@ -1198,7 +1107,6 @@ func yaml_parser_fetch_document_indicator(parser *yaml_parser_t, typ yaml_token_
// Produce the FLOW-SEQUENCE-START or FLOW-MAPPING-START token.
func yaml_parser_fetch_flow_collection_start(parser *yaml_parser_t, typ yaml_token_type_t) bool {
-
// The indicators '[' and '{' may start a simple key.
if !yaml_parser_save_simple_key(parser) {
return false
@@ -1534,8 +1442,6 @@ func yaml_parser_fetch_plain_scalar(parser *yaml_parser_t) bool {
// Eat whitespaces and comments until the next token is found.
func yaml_parser_scan_to_next_token(parser *yaml_parser_t) bool {
- scan_mark := parser.mark
-
// Until the next token is not found.
for {
// Allow the BOM mark to start a line.
@@ -1562,33 +1468,13 @@ func yaml_parser_scan_to_next_token(parser *yaml_parser_t) bool {
}
}
- // Check if we just had a line comment under a sequence entry that
- // looks more like a header to the following content. Similar to this:
- //
- // - # The comment
- // - Some data
- //
- // If so, transform the line comment to a head comment and reposition.
- if len(parser.comments) > 0 && len(parser.tokens) > 1 {
- tokenA := parser.tokens[len(parser.tokens)-2]
- tokenB := parser.tokens[len(parser.tokens)-1]
- comment := &parser.comments[len(parser.comments)-1]
- if tokenA.typ == yaml_BLOCK_SEQUENCE_START_TOKEN && tokenB.typ == yaml_BLOCK_ENTRY_TOKEN && len(comment.line) > 0 && !is_break(parser.buffer, parser.buffer_pos) {
- // If it was in the prior line, reposition so it becomes a
- // header of the follow up token. Otherwise, keep it in place
- // so it becomes a header of the former.
- comment.head = comment.line
- comment.line = nil
- if comment.start_mark.line == parser.mark.line-1 {
- comment.token_mark = parser.mark
- }
- }
- }
-
// Eat a comment until a line break.
if parser.buffer[parser.buffer_pos] == '#' {
- if !yaml_parser_scan_comments(parser, scan_mark) {
- return false
+ for !is_breakz(parser.buffer, parser.buffer_pos) {
+ skip(parser)
+ if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {
+ return false
+ }
}
}
@@ -1686,10 +1572,6 @@ func yaml_parser_scan_directive(parser *yaml_parser_t, token *yaml_token_t) bool
}
if parser.buffer[parser.buffer_pos] == '#' {
- // [Go] Discard this inline comment for the time being.
- //if !yaml_parser_scan_line_comment(parser, start_mark) {
- // return false
- //}
for !is_breakz(parser.buffer, parser.buffer_pos) {
skip(parser)
if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {
@@ -2105,7 +1987,7 @@ func yaml_parser_scan_tag_uri(parser *yaml_parser_t, directive bool, head []byte
// '0'-'9', 'A'-'Z', 'a'-'z', '_', '-', ';', '/', '?', ':', '@', '&',
// '=', '+', '$', ',', '.', '!', '~', '*', '\'', '(', ')', '[', ']',
// '%'.
- // [Go] TODO Convert this into more reasonable logic.
+ // [Go] Convert this into more reasonable logic.
for is_alpha(parser.buffer, parser.buffer_pos) || parser.buffer[parser.buffer_pos] == ';' ||
parser.buffer[parser.buffer_pos] == '/' || parser.buffer[parser.buffer_pos] == '?' ||
parser.buffer[parser.buffer_pos] == ':' || parser.buffer[parser.buffer_pos] == '@' ||
@@ -2260,9 +2142,6 @@ func yaml_parser_scan_block_scalar(parser *yaml_parser_t, token *yaml_token_t, l
}
}
if parser.buffer[parser.buffer_pos] == '#' {
- if !yaml_parser_scan_line_comment(parser, start_mark) {
- return false
- }
for !is_breakz(parser.buffer, parser.buffer_pos) {
skip(parser)
if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {
@@ -2830,209 +2709,3 @@ func yaml_parser_scan_plain_scalar(parser *yaml_parser_t, token *yaml_token_t) b
}
return true
}
-
-func yaml_parser_scan_line_comment(parser *yaml_parser_t, token_mark yaml_mark_t) bool {
- if parser.newlines > 0 {
- return true
- }
-
- var start_mark yaml_mark_t
- var text []byte
-
- for peek := 0; peek < 512; peek++ {
- if parser.unread < peek+1 && !yaml_parser_update_buffer(parser, peek+1) {
- break
- }
- if is_blank(parser.buffer, parser.buffer_pos+peek) {
- continue
- }
- if parser.buffer[parser.buffer_pos+peek] == '#' {
- seen := parser.mark.index+peek
- for {
- if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {
- return false
- }
- if is_breakz(parser.buffer, parser.buffer_pos) {
- if parser.mark.index >= seen {
- break
- }
- if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {
- return false
- }
- skip_line(parser)
- } else if parser.mark.index >= seen {
- if len(text) == 0 {
- start_mark = parser.mark
- }
- text = read(parser, text)
- } else {
- skip(parser)
- }
- }
- }
- break
- }
- if len(text) > 0 {
- parser.comments = append(parser.comments, yaml_comment_t{
- token_mark: token_mark,
- start_mark: start_mark,
- line: text,
- })
- }
- return true
-}
-
-func yaml_parser_scan_comments(parser *yaml_parser_t, scan_mark yaml_mark_t) bool {
- token := parser.tokens[len(parser.tokens)-1]
-
- if token.typ == yaml_FLOW_ENTRY_TOKEN && len(parser.tokens) > 1 {
- token = parser.tokens[len(parser.tokens)-2]
- }
-
- var token_mark = token.start_mark
- var start_mark yaml_mark_t
- var next_indent = parser.indent
- if next_indent < 0 {
- next_indent = 0
- }
-
- var recent_empty = false
- var first_empty = parser.newlines <= 1
-
- var line = parser.mark.line
- var column = parser.mark.column
-
- var text []byte
-
- // The foot line is the place where a comment must start to
- // still be considered as a foot of the prior content.
- // If there's some content in the currently parsed line, then
- // the foot is the line below it.
- var foot_line = -1
- if scan_mark.line > 0 {
- foot_line = parser.mark.line-parser.newlines+1
- if parser.newlines == 0 && parser.mark.column > 1 {
- foot_line++
- }
- }
-
- var peek = 0
- for ; peek < 512; peek++ {
- if parser.unread < peek+1 && !yaml_parser_update_buffer(parser, peek+1) {
- break
- }
- column++
- if is_blank(parser.buffer, parser.buffer_pos+peek) {
- continue
- }
- c := parser.buffer[parser.buffer_pos+peek]
- var close_flow = parser.flow_level > 0 && (c == ']' || c == '}')
- if close_flow || is_breakz(parser.buffer, parser.buffer_pos+peek) {
- // Got line break or terminator.
- if close_flow || !recent_empty {
- if close_flow || first_empty && (start_mark.line == foot_line && token.typ != yaml_VALUE_TOKEN || start_mark.column-1 < next_indent) {
- // This is the first empty line and there were no empty lines before,
- // so this initial part of the comment is a foot of the prior token
- // instead of being a head for the following one. Split it up.
- // Alternatively, this might also be the last comment inside a flow
- // scope, so it must be a footer.
- if len(text) > 0 {
- if start_mark.column-1 < next_indent {
- // If dedented it's unrelated to the prior token.
- token_mark = start_mark
- }
- parser.comments = append(parser.comments, yaml_comment_t{
- scan_mark: scan_mark,
- token_mark: token_mark,
- start_mark: start_mark,
- end_mark: yaml_mark_t{parser.mark.index + peek, line, column},
- foot: text,
- })
- scan_mark = yaml_mark_t{parser.mark.index + peek, line, column}
- token_mark = scan_mark
- text = nil
- }
- } else {
- if len(text) > 0 && parser.buffer[parser.buffer_pos+peek] != 0 {
- text = append(text, '\n')
- }
- }
- }
- if !is_break(parser.buffer, parser.buffer_pos+peek) {
- break
- }
- first_empty = false
- recent_empty = true
- column = 0
- line++
- continue
- }
-
- if len(text) > 0 && (close_flow || column-1 < next_indent && column != start_mark.column) {
- // The comment at the different indentation is a foot of the
- // preceding data rather than a head of the upcoming one.
- parser.comments = append(parser.comments, yaml_comment_t{
- scan_mark: scan_mark,
- token_mark: token_mark,
- start_mark: start_mark,
- end_mark: yaml_mark_t{parser.mark.index + peek, line, column},
- foot: text,
- })
- scan_mark = yaml_mark_t{parser.mark.index + peek, line, column}
- token_mark = scan_mark
- text = nil
- }
-
- if parser.buffer[parser.buffer_pos+peek] != '#' {
- break
- }
-
- if len(text) == 0 {
- start_mark = yaml_mark_t{parser.mark.index + peek, line, column}
- } else {
- text = append(text, '\n')
- }
-
- recent_empty = false
-
- // Consume until after the consumed comment line.
- seen := parser.mark.index+peek
- for {
- if parser.unread < 1 && !yaml_parser_update_buffer(parser, 1) {
- return false
- }
- if is_breakz(parser.buffer, parser.buffer_pos) {
- if parser.mark.index >= seen {
- break
- }
- if parser.unread < 2 && !yaml_parser_update_buffer(parser, 2) {
- return false
- }
- skip_line(parser)
- } else if parser.mark.index >= seen {
- text = read(parser, text)
- } else {
- skip(parser)
- }
- }
-
- peek = 0
- column = 0
- line = parser.mark.line
- next_indent = parser.indent
- if next_indent < 0 {
- next_indent = 0
- }
- }
-
- if len(text) > 0 {
- parser.comments = append(parser.comments, yaml_comment_t{
- scan_mark: scan_mark,
- token_mark: start_mark,
- start_mark: start_mark,
- end_mark: yaml_mark_t{parser.mark.index + peek - 1, line, column},
- head: text,
- })
- }
- return true
-}
diff --git a/vendor/gopkg.in/yaml.v3/sorter.go b/vendor/gopkg.in/yaml.v2/sorter.go
similarity index 76%
rename from vendor/gopkg.in/yaml.v3/sorter.go
rename to vendor/gopkg.in/yaml.v2/sorter.go
index 9210ece7..4c45e660 100644
--- a/vendor/gopkg.in/yaml.v3/sorter.go
+++ b/vendor/gopkg.in/yaml.v2/sorter.go
@@ -1,18 +1,3 @@
-//
-// Copyright (c) 2011-2019 Canonical Ltd
-//
-// 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.
-
package yaml
import (
@@ -52,10 +37,8 @@ func (l keyList) Less(i, j int) bool {
return ak < bk
}
ar, br := []rune(a.String()), []rune(b.String())
- digits := false
for i := 0; i < len(ar) && i < len(br); i++ {
if ar[i] == br[i] {
- digits = unicode.IsDigit(ar[i])
continue
}
al := unicode.IsLetter(ar[i])
@@ -64,16 +47,12 @@ func (l keyList) Less(i, j int) bool {
return ar[i] < br[i]
}
if al || bl {
- if digits {
- return al
- } else {
- return bl
- }
+ return bl
}
var ai, bi int
var an, bn int64
if ar[i] == '0' || br[i] == '0' {
- for j := i - 1; j >= 0 && unicode.IsDigit(ar[j]); j-- {
+ for j := i-1; j >= 0 && unicode.IsDigit(ar[j]); j-- {
if ar[j] != '0' {
an = 1
bn = 1
diff --git a/vendor/gopkg.in/yaml.v2/writerc.go b/vendor/gopkg.in/yaml.v2/writerc.go
new file mode 100644
index 00000000..a2dde608
--- /dev/null
+++ b/vendor/gopkg.in/yaml.v2/writerc.go
@@ -0,0 +1,26 @@
+package yaml
+
+// Set the writer error and return false.
+func yaml_emitter_set_writer_error(emitter *yaml_emitter_t, problem string) bool {
+ emitter.error = yaml_WRITER_ERROR
+ emitter.problem = problem
+ return false
+}
+
+// Flush the output buffer.
+func yaml_emitter_flush(emitter *yaml_emitter_t) bool {
+ if emitter.write_handler == nil {
+ panic("write handler not set")
+ }
+
+ // Check if the buffer is empty.
+ if emitter.buffer_pos == 0 {
+ return true
+ }
+
+ if err := emitter.write_handler(emitter, emitter.buffer[:emitter.buffer_pos]); err != nil {
+ return yaml_emitter_set_writer_error(emitter, "write error: "+err.Error())
+ }
+ emitter.buffer_pos = 0
+ return true
+}
diff --git a/vendor/gopkg.in/yaml.v3/yaml.go b/vendor/gopkg.in/yaml.v2/yaml.go
similarity index 55%
rename from vendor/gopkg.in/yaml.v3/yaml.go
rename to vendor/gopkg.in/yaml.v2/yaml.go
index 8cec6da4..30813884 100644
--- a/vendor/gopkg.in/yaml.v3/yaml.go
+++ b/vendor/gopkg.in/yaml.v2/yaml.go
@@ -1,18 +1,3 @@
-//
-// Copyright (c) 2011-2019 Canonical Ltd
-//
-// 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.
-
// Package yaml implements YAML support for the Go language.
//
// Source code and other details for the project are available at GitHub:
@@ -28,16 +13,23 @@ import (
"reflect"
"strings"
"sync"
- "unicode/utf8"
)
-// The Unmarshaler interface may be implemented by types to customize their
-// behavior when being unmarshaled from a YAML document.
-type Unmarshaler interface {
- UnmarshalYAML(value *Node) error
+// MapSlice encodes and decodes as a YAML map.
+// The order of keys is preserved when encoding and decoding.
+type MapSlice []MapItem
+
+// MapItem is an item in a MapSlice.
+type MapItem struct {
+ Key, Value interface{}
}
-type obsoleteUnmarshaler interface {
+// The Unmarshaler interface may be implemented by types to customize their
+// behavior when being unmarshaled from a YAML document. The UnmarshalYAML
+// method receives a function that may be called to unmarshal the original
+// YAML value into a field or variable. It is safe to call the unmarshal
+// function parameter more than once if necessary.
+type Unmarshaler interface {
UnmarshalYAML(unmarshal func(interface{}) error) error
}
@@ -89,10 +81,18 @@ func Unmarshal(in []byte, out interface{}) (err error) {
return unmarshal(in, out, false)
}
+// UnmarshalStrict is like Unmarshal except that any fields that are found
+// in the data that do not have corresponding struct members, or mapping
+// keys that are duplicates, will result in
+// an error.
+func UnmarshalStrict(in []byte, out interface{}) (err error) {
+ return unmarshal(in, out, true)
+}
+
// A Decoder reads and decodes YAML values from an input stream.
type Decoder struct {
- parser *parser
- knownFields bool
+ strict bool
+ parser *parser
}
// NewDecoder returns a new decoder that reads from r.
@@ -105,10 +105,10 @@ func NewDecoder(r io.Reader) *Decoder {
}
}
-// KnownFields ensures that the keys in decoded mappings to
-// exist as fields in the struct being decoded into.
-func (dec *Decoder) KnownFields(enable bool) {
- dec.knownFields = enable
+// SetStrict sets whether strict decoding behaviour is enabled when
+// decoding items in the data (see UnmarshalStrict). By default, decoding is not strict.
+func (dec *Decoder) SetStrict(strict bool) {
+ dec.strict = strict
}
// Decode reads the next YAML-encoded value from its input
@@ -117,8 +117,7 @@ func (dec *Decoder) KnownFields(enable bool) {
// See the documentation for Unmarshal for details about the
// conversion of YAML into a Go value.
func (dec *Decoder) Decode(v interface{}) (err error) {
- d := newDecoder()
- d.knownFields = dec.knownFields
+ d := newDecoder(dec.strict)
defer handleErr(&err)
node := dec.parser.parse()
if node == nil {
@@ -135,27 +134,9 @@ func (dec *Decoder) Decode(v interface{}) (err error) {
return nil
}
-// Decode decodes the node and stores its data into the value pointed to by v.
-//
-// See the documentation for Unmarshal for details about the
-// conversion of YAML into a Go value.
-func (n *Node) Decode(v interface{}) (err error) {
- d := newDecoder()
- defer handleErr(&err)
- out := reflect.ValueOf(v)
- if out.Kind() == reflect.Ptr && !out.IsNil() {
- out = out.Elem()
- }
- d.unmarshal(n, out)
- if len(d.terrors) > 0 {
- return &TypeError{d.terrors}
- }
- return nil
-}
-
func unmarshal(in []byte, out interface{}, strict bool) (err error) {
defer handleErr(&err)
- d := newDecoder()
+ d := newDecoder(strict)
p := newParser(in)
defer p.destroy()
node := p.parse()
@@ -252,32 +233,6 @@ func (e *Encoder) Encode(v interface{}) (err error) {
return nil
}
-// Encode encodes value v and stores its representation in n.
-//
-// See the documentation for Marshal for details about the
-// conversion of Go values into YAML.
-func (n *Node) Encode(v interface{}) (err error) {
- defer handleErr(&err)
- e := newEncoder()
- defer e.destroy()
- e.marshalDoc("", reflect.ValueOf(v))
- e.finish()
- p := newParser(e.out)
- p.textless = true
- defer p.destroy()
- doc := p.parse()
- *n = *doc.Content[0]
- return nil
-}
-
-// SetIndent changes the used indentation used when encoding.
-func (e *Encoder) SetIndent(spaces int) {
- if spaces < 0 {
- panic("yaml: cannot indent to a negative number of spaces")
- }
- e.encoder.indent = spaces
-}
-
// Close closes the encoder by writing any remaining data.
// It does not write a stream terminating string "...".
func (e *Encoder) Close() (err error) {
@@ -320,168 +275,6 @@ func (e *TypeError) Error() string {
return fmt.Sprintf("yaml: unmarshal errors:\n %s", strings.Join(e.Errors, "\n "))
}
-type Kind uint32
-
-const (
- DocumentNode Kind = 1 << iota
- SequenceNode
- MappingNode
- ScalarNode
- AliasNode
-)
-
-type Style uint32
-
-const (
- TaggedStyle Style = 1 << iota
- DoubleQuotedStyle
- SingleQuotedStyle
- LiteralStyle
- FoldedStyle
- FlowStyle
-)
-
-// Node represents an element in the YAML document hierarchy. While documents
-// are typically encoded and decoded into higher level types, such as structs
-// and maps, Node is an intermediate representation that allows detailed
-// control over the content being decoded or encoded.
-//
-// It's worth noting that although Node offers access into details such as
-// line numbers, colums, and comments, the content when re-encoded will not
-// have its original textual representation preserved. An effort is made to
-// render the data plesantly, and to preserve comments near the data they
-// describe, though.
-//
-// Values that make use of the Node type interact with the yaml package in the
-// same way any other type would do, by encoding and decoding yaml data
-// directly or indirectly into them.
-//
-// For example:
-//
-// var person struct {
-// Name string
-// Address yaml.Node
-// }
-// err := yaml.Unmarshal(data, &person)
-//
-// Or by itself:
-//
-// var person Node
-// err := yaml.Unmarshal(data, &person)
-//
-type Node struct {
- // Kind defines whether the node is a document, a mapping, a sequence,
- // a scalar value, or an alias to another node. The specific data type of
- // scalar nodes may be obtained via the ShortTag and LongTag methods.
- Kind Kind
-
- // Style allows customizing the apperance of the node in the tree.
- Style Style
-
- // Tag holds the YAML tag defining the data type for the value.
- // When decoding, this field will always be set to the resolved tag,
- // even when it wasn't explicitly provided in the YAML content.
- // When encoding, if this field is unset the value type will be
- // implied from the node properties, and if it is set, it will only
- // be serialized into the representation if TaggedStyle is used or
- // the implicit tag diverges from the provided one.
- Tag string
-
- // Value holds the unescaped and unquoted represenation of the value.
- Value string
-
- // Anchor holds the anchor name for this node, which allows aliases to point to it.
- Anchor string
-
- // Alias holds the node that this alias points to. Only valid when Kind is AliasNode.
- Alias *Node
-
- // Content holds contained nodes for documents, mappings, and sequences.
- Content []*Node
-
- // HeadComment holds any comments in the lines preceding the node and
- // not separated by an empty line.
- HeadComment string
-
- // LineComment holds any comments at the end of the line where the node is in.
- LineComment string
-
- // FootComment holds any comments following the node and before empty lines.
- FootComment string
-
- // Line and Column hold the node position in the decoded YAML text.
- // These fields are not respected when encoding the node.
- Line int
- Column int
-}
-
-// IsZero returns whether the node has all of its fields unset.
-func (n *Node) IsZero() bool {
- return n.Kind == 0 && n.Style == 0 && n.Tag == "" && n.Value == "" && n.Anchor == "" && n.Alias == nil && n.Content == nil &&
- n.HeadComment == "" && n.LineComment == "" && n.FootComment == "" && n.Line == 0 && n.Column == 0
-}
-
-
-// LongTag returns the long form of the tag that indicates the data type for
-// the node. If the Tag field isn't explicitly defined, one will be computed
-// based on the node properties.
-func (n *Node) LongTag() string {
- return longTag(n.ShortTag())
-}
-
-// ShortTag returns the short form of the YAML tag that indicates data type for
-// the node. If the Tag field isn't explicitly defined, one will be computed
-// based on the node properties.
-func (n *Node) ShortTag() string {
- if n.indicatedString() {
- return strTag
- }
- if n.Tag == "" || n.Tag == "!" {
- switch n.Kind {
- case MappingNode:
- return mapTag
- case SequenceNode:
- return seqTag
- case AliasNode:
- if n.Alias != nil {
- return n.Alias.ShortTag()
- }
- case ScalarNode:
- tag, _ := resolve("", n.Value)
- return tag
- case 0:
- // Special case to make the zero value convenient.
- if n.IsZero() {
- return nullTag
- }
- }
- return ""
- }
- return shortTag(n.Tag)
-}
-
-func (n *Node) indicatedString() bool {
- return n.Kind == ScalarNode &&
- (shortTag(n.Tag) == strTag ||
- (n.Tag == "" || n.Tag == "!") && n.Style&(SingleQuotedStyle|DoubleQuotedStyle|LiteralStyle|FoldedStyle) != 0)
-}
-
-// SetString is a convenience function that sets the node to a string value
-// and defines its style in a pleasant way depending on its content.
-func (n *Node) SetString(s string) {
- n.Kind = ScalarNode
- if utf8.ValidString(s) {
- n.Value = s
- n.Tag = strTag
- } else {
- n.Value = encodeBase64(s)
- n.Tag = binaryTag
- }
- if strings.Contains(n.Value, "\n") {
- n.Style = LiteralStyle
- }
-}
-
// --------------------------------------------------------------------------
// Maintain a mapping of keys to structure field indexes
@@ -496,10 +289,6 @@ type structInfo struct {
// InlineMap is the number of the field in the struct that
// contains an ,inline map, or -1 if there's none.
InlineMap int
-
- // InlineUnmarshalers holds indexes to inlined fields that
- // contain unmarshaler values.
- InlineUnmarshalers [][]int
}
type fieldInfo struct {
@@ -517,12 +306,6 @@ type fieldInfo struct {
var structMap = make(map[reflect.Type]*structInfo)
var fieldMapMutex sync.RWMutex
-var unmarshalerType reflect.Type
-
-func init() {
- var v Unmarshaler
- unmarshalerType = reflect.ValueOf(&v).Elem().Type()
-}
func getStructInfo(st reflect.Type) (*structInfo, error) {
fieldMapMutex.RLock()
@@ -536,7 +319,6 @@ func getStructInfo(st reflect.Type) (*structInfo, error) {
fieldsMap := make(map[string]fieldInfo)
fieldsList := make([]fieldInfo, 0, n)
inlineMap := -1
- inlineUnmarshalers := [][]int(nil)
for i := 0; i != n; i++ {
field := st.Field(i)
if field.PkgPath != "" && !field.Anonymous {
@@ -565,7 +347,7 @@ func getStructInfo(st reflect.Type) (*structInfo, error) {
case "inline":
inline = true
default:
- return nil, errors.New(fmt.Sprintf("unsupported flag %q in tag %q of type %s", flag, tag, st))
+ return nil, errors.New(fmt.Sprintf("Unsupported flag %q in tag %q of type %s", flag, tag, st))
}
}
tag = fields[0]
@@ -575,47 +357,34 @@ func getStructInfo(st reflect.Type) (*structInfo, error) {
switch field.Type.Kind() {
case reflect.Map:
if inlineMap >= 0 {
- return nil, errors.New("multiple ,inline maps in struct " + st.String())
+ return nil, errors.New("Multiple ,inline maps in struct " + st.String())
}
if field.Type.Key() != reflect.TypeOf("") {
- return nil, errors.New("option ,inline needs a map with string keys in struct " + st.String())
+ return nil, errors.New("Option ,inline needs a map with string keys in struct " + st.String())
}
inlineMap = info.Num
- case reflect.Struct, reflect.Ptr:
- ftype := field.Type
- for ftype.Kind() == reflect.Ptr {
- ftype = ftype.Elem()
+ case reflect.Struct:
+ sinfo, err := getStructInfo(field.Type)
+ if err != nil {
+ return nil, err
}
- if ftype.Kind() != reflect.Struct {
- return nil, errors.New("option ,inline may only be used on a struct or map field")
- }
- if reflect.PtrTo(ftype).Implements(unmarshalerType) {
- inlineUnmarshalers = append(inlineUnmarshalers, []int{i})
- } else {
- sinfo, err := getStructInfo(ftype)
- if err != nil {
- return nil, err
- }
- for _, index := range sinfo.InlineUnmarshalers {
- inlineUnmarshalers = append(inlineUnmarshalers, append([]int{i}, index...))
+ for _, finfo := range sinfo.FieldsList {
+ if _, found := fieldsMap[finfo.Key]; found {
+ msg := "Duplicated key '" + finfo.Key + "' in struct " + st.String()
+ return nil, errors.New(msg)
}
- for _, finfo := range sinfo.FieldsList {
- if _, found := fieldsMap[finfo.Key]; found {
- msg := "duplicated key '" + finfo.Key + "' in struct " + st.String()
- return nil, errors.New(msg)
- }
- if finfo.Inline == nil {
- finfo.Inline = []int{i, finfo.Num}
- } else {
- finfo.Inline = append([]int{i}, finfo.Inline...)
- }
- finfo.Id = len(fieldsList)
- fieldsMap[finfo.Key] = finfo
- fieldsList = append(fieldsList, finfo)
+ if finfo.Inline == nil {
+ finfo.Inline = []int{i, finfo.Num}
+ } else {
+ finfo.Inline = append([]int{i}, finfo.Inline...)
}
+ finfo.Id = len(fieldsList)
+ fieldsMap[finfo.Key] = finfo
+ fieldsList = append(fieldsList, finfo)
}
default:
- return nil, errors.New("option ,inline may only be used on a struct or map field")
+ //return nil, errors.New("Option ,inline needs a struct value or map field")
+ return nil, errors.New("Option ,inline needs a struct value field")
}
continue
}
@@ -627,7 +396,7 @@ func getStructInfo(st reflect.Type) (*structInfo, error) {
}
if _, found = fieldsMap[info.Key]; found {
- msg := "duplicated key '" + info.Key + "' in struct " + st.String()
+ msg := "Duplicated key '" + info.Key + "' in struct " + st.String()
return nil, errors.New(msg)
}
@@ -637,10 +406,9 @@ func getStructInfo(st reflect.Type) (*structInfo, error) {
}
sinfo = &structInfo{
- FieldsMap: fieldsMap,
- FieldsList: fieldsList,
- InlineMap: inlineMap,
- InlineUnmarshalers: inlineUnmarshalers,
+ FieldsMap: fieldsMap,
+ FieldsList: fieldsList,
+ InlineMap: inlineMap,
}
fieldMapMutex.Lock()
@@ -696,3 +464,15 @@ func isZero(v reflect.Value) bool {
}
return false
}
+
+// FutureLineWrap globally disables line wrapping when encoding long strings.
+// This is a temporary and thus deprecated method introduced to faciliate
+// migration towards v3, which offers more control of line lengths on
+// individual encodings, and has a default matching the behavior introduced
+// by this function.
+//
+// The default formatting of v2 was erroneously changed in v2.3.0 and reverted
+// in v2.4.0, at which point this function was introduced to help migration.
+func FutureLineWrap() {
+ disableLineWrapping = true
+}
diff --git a/vendor/gopkg.in/yaml.v3/yamlh.go b/vendor/gopkg.in/yaml.v2/yamlh.go
similarity index 88%
rename from vendor/gopkg.in/yaml.v3/yamlh.go
rename to vendor/gopkg.in/yaml.v2/yamlh.go
index 7c6d0077..f6a9c8e3 100644
--- a/vendor/gopkg.in/yaml.v3/yamlh.go
+++ b/vendor/gopkg.in/yaml.v2/yamlh.go
@@ -1,25 +1,3 @@
-//
-// Copyright (c) 2011-2019 Canonical Ltd
-// Copyright (c) 2006-2010 Kirill Simonov
-//
-// 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.
-
package yaml
import (
@@ -95,13 +73,13 @@ type yaml_scalar_style_t yaml_style_t
// Scalar styles.
const (
// Let the emitter choose the style.
- yaml_ANY_SCALAR_STYLE yaml_scalar_style_t = 0
+ yaml_ANY_SCALAR_STYLE yaml_scalar_style_t = iota
- yaml_PLAIN_SCALAR_STYLE yaml_scalar_style_t = 1 << iota // The plain scalar style.
- yaml_SINGLE_QUOTED_SCALAR_STYLE // The single-quoted scalar style.
- yaml_DOUBLE_QUOTED_SCALAR_STYLE // The double-quoted scalar style.
- yaml_LITERAL_SCALAR_STYLE // The literal scalar style.
- yaml_FOLDED_SCALAR_STYLE // The folded scalar style.
+ yaml_PLAIN_SCALAR_STYLE // The plain scalar style.
+ yaml_SINGLE_QUOTED_SCALAR_STYLE // The single-quoted scalar style.
+ yaml_DOUBLE_QUOTED_SCALAR_STYLE // The double-quoted scalar style.
+ yaml_LITERAL_SCALAR_STYLE // The literal scalar style.
+ yaml_FOLDED_SCALAR_STYLE // The folded scalar style.
)
type yaml_sequence_style_t yaml_style_t
@@ -260,7 +238,6 @@ const (
yaml_SEQUENCE_END_EVENT // A SEQUENCE-END event.
yaml_MAPPING_START_EVENT // A MAPPING-START event.
yaml_MAPPING_END_EVENT // A MAPPING-END event.
- yaml_TAIL_COMMENT_EVENT
)
var eventStrings = []string{
@@ -275,7 +252,6 @@ var eventStrings = []string{
yaml_SEQUENCE_END_EVENT: "sequence end",
yaml_MAPPING_START_EVENT: "mapping start",
yaml_MAPPING_END_EVENT: "mapping end",
- yaml_TAIL_COMMENT_EVENT: "tail comment",
}
func (e yaml_event_type_t) String() string {
@@ -303,12 +279,6 @@ type yaml_event_t struct {
// The list of tag directives (for yaml_DOCUMENT_START_EVENT).
tag_directives []yaml_tag_directive_t
- // The comments
- head_comment []byte
- line_comment []byte
- foot_comment []byte
- tail_comment []byte
-
// The anchor (for yaml_SCALAR_EVENT, yaml_SEQUENCE_START_EVENT, yaml_MAPPING_START_EVENT, yaml_ALIAS_EVENT).
anchor []byte
@@ -584,8 +554,6 @@ type yaml_parser_t struct {
unread int // The number of unread characters in the buffer.
- newlines int // The number of line breaks since last non-break/non-blank character
-
raw_buffer []byte // The raw buffer.
raw_buffer_pos int // The current position of the buffer.
@@ -594,17 +562,6 @@ type yaml_parser_t struct {
offset int // The offset of the current position (in bytes).
mark yaml_mark_t // The mark of the current position.
- // Comments
-
- head_comment []byte // The current head comments
- line_comment []byte // The current line comments
- foot_comment []byte // The current foot comments
- tail_comment []byte // Foot comment that happens at the end of a block.
- stem_comment []byte // Comment in item preceding a nested structure (list inside list item, etc)
-
- comments []yaml_comment_t // The folded comments for all parsed tokens
- comments_head int
-
// Scanner stuff
stream_start_produced bool // Have we started to scan the input stream?
@@ -638,18 +595,6 @@ type yaml_parser_t struct {
document *yaml_document_t // The currently parsed document.
}
-type yaml_comment_t struct {
-
- scan_mark yaml_mark_t // Position where scanning for comments started
- token_mark yaml_mark_t // Position after which tokens will be associated with this comment
- start_mark yaml_mark_t // Position of '#' comment mark
- end_mark yaml_mark_t // Position where comment terminated
-
- head []byte
- line []byte
- foot []byte
-}
-
// Emitter Definitions
// The prototype of a write handler.
@@ -680,10 +625,8 @@ const (
yaml_EMIT_DOCUMENT_CONTENT_STATE // Expect the content of a document.
yaml_EMIT_DOCUMENT_END_STATE // Expect DOCUMENT-END.
yaml_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE // Expect the first item of a flow sequence.
- yaml_EMIT_FLOW_SEQUENCE_TRAIL_ITEM_STATE // Expect the next item of a flow sequence, with the comma already written out
yaml_EMIT_FLOW_SEQUENCE_ITEM_STATE // Expect an item of a flow sequence.
yaml_EMIT_FLOW_MAPPING_FIRST_KEY_STATE // Expect the first key of a flow mapping.
- yaml_EMIT_FLOW_MAPPING_TRAIL_KEY_STATE // Expect the next key of a flow mapping, with the comma already written out
yaml_EMIT_FLOW_MAPPING_KEY_STATE // Expect a key of a flow mapping.
yaml_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE // Expect a value for a simple key of a flow mapping.
yaml_EMIT_FLOW_MAPPING_VALUE_STATE // Expect a value of a flow mapping.
@@ -755,9 +698,6 @@ type yaml_emitter_t struct {
indention bool // If the last character was an indentation character (' ', '-', '?', ':')?
open_ended bool // If an explicit document end is required?
- space_above bool // Is there's an empty line above?
- foot_indent int // The indent used to write the foot comment above, or -1 if none.
-
// Anchor analysis.
anchor_data struct {
anchor []byte // The anchor value.
@@ -781,14 +721,6 @@ type yaml_emitter_t struct {
style yaml_scalar_style_t // The output style.
}
- // Comments
- head_comment []byte
- line_comment []byte
- foot_comment []byte
- tail_comment []byte
-
- key_line_comment []byte
-
// Dumper stuff
opened bool // If the stream was already opened?
diff --git a/vendor/gopkg.in/yaml.v3/yamlprivateh.go b/vendor/gopkg.in/yaml.v2/yamlprivateh.go
similarity index 78%
rename from vendor/gopkg.in/yaml.v3/yamlprivateh.go
rename to vendor/gopkg.in/yaml.v2/yamlprivateh.go
index e88f9c54..8110ce3c 100644
--- a/vendor/gopkg.in/yaml.v3/yamlprivateh.go
+++ b/vendor/gopkg.in/yaml.v2/yamlprivateh.go
@@ -1,25 +1,3 @@
-//
-// Copyright (c) 2011-2019 Canonical Ltd
-// Copyright (c) 2006-2010 Kirill Simonov
-//
-// 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.
-
package yaml
const (
@@ -136,9 +114,8 @@ func is_crlf(b []byte, i int) bool {
// Check if the character is a line break or NUL.
func is_breakz(b []byte, i int) bool {
//return is_break(b, i) || is_z(b, i)
- return (
- // is_break:
- b[i] == '\r' || // CR (#xD)
+ return ( // is_break:
+ b[i] == '\r' || // CR (#xD)
b[i] == '\n' || // LF (#xA)
b[i] == 0xC2 && b[i+1] == 0x85 || // NEL (#x85)
b[i] == 0xE2 && b[i+1] == 0x80 && b[i+2] == 0xA8 || // LS (#x2028)
@@ -150,9 +127,8 @@ func is_breakz(b []byte, i int) bool {
// Check if the character is a line break, space, or NUL.
func is_spacez(b []byte, i int) bool {
//return is_space(b, i) || is_breakz(b, i)
- return (
- // is_space:
- b[i] == ' ' ||
+ return ( // is_space:
+ b[i] == ' ' ||
// is_breakz:
b[i] == '\r' || // CR (#xD)
b[i] == '\n' || // LF (#xA)
@@ -165,9 +141,8 @@ func is_spacez(b []byte, i int) bool {
// Check if the character is a line break, space, tab, or NUL.
func is_blankz(b []byte, i int) bool {
//return is_blank(b, i) || is_breakz(b, i)
- return (
- // is_blank:
- b[i] == ' ' || b[i] == '\t' ||
+ return ( // is_blank:
+ b[i] == ' ' || b[i] == '\t' ||
// is_breakz:
b[i] == '\r' || // CR (#xD)
b[i] == '\n' || // LF (#xA)
diff --git a/vendor/gopkg.in/yaml.v3/encode.go b/vendor/gopkg.in/yaml.v3/encode.go
deleted file mode 100644
index de9e72a3..00000000
--- a/vendor/gopkg.in/yaml.v3/encode.go
+++ /dev/null
@@ -1,577 +0,0 @@
-//
-// Copyright (c) 2011-2019 Canonical Ltd
-//
-// 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.
-
-package yaml
-
-import (
- "encoding"
- "fmt"
- "io"
- "reflect"
- "regexp"
- "sort"
- "strconv"
- "strings"
- "time"
- "unicode/utf8"
-)
-
-type encoder struct {
- emitter yaml_emitter_t
- event yaml_event_t
- out []byte
- flow bool
- indent int
- doneInit bool
-}
-
-func newEncoder() *encoder {
- e := &encoder{}
- yaml_emitter_initialize(&e.emitter)
- yaml_emitter_set_output_string(&e.emitter, &e.out)
- yaml_emitter_set_unicode(&e.emitter, true)
- return e
-}
-
-func newEncoderWithWriter(w io.Writer) *encoder {
- e := &encoder{}
- yaml_emitter_initialize(&e.emitter)
- yaml_emitter_set_output_writer(&e.emitter, w)
- yaml_emitter_set_unicode(&e.emitter, true)
- return e
-}
-
-func (e *encoder) init() {
- if e.doneInit {
- return
- }
- if e.indent == 0 {
- e.indent = 4
- }
- e.emitter.best_indent = e.indent
- yaml_stream_start_event_initialize(&e.event, yaml_UTF8_ENCODING)
- e.emit()
- e.doneInit = true
-}
-
-func (e *encoder) finish() {
- e.emitter.open_ended = false
- yaml_stream_end_event_initialize(&e.event)
- e.emit()
-}
-
-func (e *encoder) destroy() {
- yaml_emitter_delete(&e.emitter)
-}
-
-func (e *encoder) emit() {
- // This will internally delete the e.event value.
- e.must(yaml_emitter_emit(&e.emitter, &e.event))
-}
-
-func (e *encoder) must(ok bool) {
- if !ok {
- msg := e.emitter.problem
- if msg == "" {
- msg = "unknown problem generating YAML content"
- }
- failf("%s", msg)
- }
-}
-
-func (e *encoder) marshalDoc(tag string, in reflect.Value) {
- e.init()
- var node *Node
- if in.IsValid() {
- node, _ = in.Interface().(*Node)
- }
- if node != nil && node.Kind == DocumentNode {
- e.nodev(in)
- } else {
- yaml_document_start_event_initialize(&e.event, nil, nil, true)
- e.emit()
- e.marshal(tag, in)
- yaml_document_end_event_initialize(&e.event, true)
- e.emit()
- }
-}
-
-func (e *encoder) marshal(tag string, in reflect.Value) {
- tag = shortTag(tag)
- if !in.IsValid() || in.Kind() == reflect.Ptr && in.IsNil() {
- e.nilv()
- return
- }
- iface := in.Interface()
- switch value := iface.(type) {
- case *Node:
- e.nodev(in)
- return
- case Node:
- if !in.CanAddr() {
- var n = reflect.New(in.Type()).Elem()
- n.Set(in)
- in = n
- }
- e.nodev(in.Addr())
- return
- case time.Time:
- e.timev(tag, in)
- return
- case *time.Time:
- e.timev(tag, in.Elem())
- return
- case time.Duration:
- e.stringv(tag, reflect.ValueOf(value.String()))
- return
- case Marshaler:
- v, err := value.MarshalYAML()
- if err != nil {
- fail(err)
- }
- if v == nil {
- e.nilv()
- return
- }
- e.marshal(tag, reflect.ValueOf(v))
- return
- case encoding.TextMarshaler:
- text, err := value.MarshalText()
- if err != nil {
- fail(err)
- }
- in = reflect.ValueOf(string(text))
- case nil:
- e.nilv()
- return
- }
- switch in.Kind() {
- case reflect.Interface:
- e.marshal(tag, in.Elem())
- case reflect.Map:
- e.mapv(tag, in)
- case reflect.Ptr:
- e.marshal(tag, in.Elem())
- case reflect.Struct:
- e.structv(tag, in)
- case reflect.Slice, reflect.Array:
- e.slicev(tag, in)
- case reflect.String:
- e.stringv(tag, in)
- case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
- e.intv(tag, in)
- case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
- e.uintv(tag, in)
- case reflect.Float32, reflect.Float64:
- e.floatv(tag, in)
- case reflect.Bool:
- e.boolv(tag, in)
- default:
- panic("cannot marshal type: " + in.Type().String())
- }
-}
-
-func (e *encoder) mapv(tag string, in reflect.Value) {
- e.mappingv(tag, func() {
- keys := keyList(in.MapKeys())
- sort.Sort(keys)
- for _, k := range keys {
- e.marshal("", k)
- e.marshal("", in.MapIndex(k))
- }
- })
-}
-
-func (e *encoder) fieldByIndex(v reflect.Value, index []int) (field reflect.Value) {
- for _, num := range index {
- for {
- if v.Kind() == reflect.Ptr {
- if v.IsNil() {
- return reflect.Value{}
- }
- v = v.Elem()
- continue
- }
- break
- }
- v = v.Field(num)
- }
- return v
-}
-
-func (e *encoder) structv(tag string, in reflect.Value) {
- sinfo, err := getStructInfo(in.Type())
- if err != nil {
- panic(err)
- }
- e.mappingv(tag, func() {
- for _, info := range sinfo.FieldsList {
- var value reflect.Value
- if info.Inline == nil {
- value = in.Field(info.Num)
- } else {
- value = e.fieldByIndex(in, info.Inline)
- if !value.IsValid() {
- continue
- }
- }
- if info.OmitEmpty && isZero(value) {
- continue
- }
- e.marshal("", reflect.ValueOf(info.Key))
- e.flow = info.Flow
- e.marshal("", value)
- }
- if sinfo.InlineMap >= 0 {
- m := in.Field(sinfo.InlineMap)
- if m.Len() > 0 {
- e.flow = false
- keys := keyList(m.MapKeys())
- sort.Sort(keys)
- for _, k := range keys {
- if _, found := sinfo.FieldsMap[k.String()]; found {
- panic(fmt.Sprintf("cannot have key %q in inlined map: conflicts with struct field", k.String()))
- }
- e.marshal("", k)
- e.flow = false
- e.marshal("", m.MapIndex(k))
- }
- }
- }
- })
-}
-
-func (e *encoder) mappingv(tag string, f func()) {
- implicit := tag == ""
- style := yaml_BLOCK_MAPPING_STYLE
- if e.flow {
- e.flow = false
- style = yaml_FLOW_MAPPING_STYLE
- }
- yaml_mapping_start_event_initialize(&e.event, nil, []byte(tag), implicit, style)
- e.emit()
- f()
- yaml_mapping_end_event_initialize(&e.event)
- e.emit()
-}
-
-func (e *encoder) slicev(tag string, in reflect.Value) {
- implicit := tag == ""
- style := yaml_BLOCK_SEQUENCE_STYLE
- if e.flow {
- e.flow = false
- style = yaml_FLOW_SEQUENCE_STYLE
- }
- e.must(yaml_sequence_start_event_initialize(&e.event, nil, []byte(tag), implicit, style))
- e.emit()
- n := in.Len()
- for i := 0; i < n; i++ {
- e.marshal("", in.Index(i))
- }
- e.must(yaml_sequence_end_event_initialize(&e.event))
- e.emit()
-}
-
-// isBase60 returns whether s is in base 60 notation as defined in YAML 1.1.
-//
-// The base 60 float notation in YAML 1.1 is a terrible idea and is unsupported
-// in YAML 1.2 and by this package, but these should be marshalled quoted for
-// the time being for compatibility with other parsers.
-func isBase60Float(s string) (result bool) {
- // Fast path.
- if s == "" {
- return false
- }
- c := s[0]
- if !(c == '+' || c == '-' || c >= '0' && c <= '9') || strings.IndexByte(s, ':') < 0 {
- return false
- }
- // Do the full match.
- return base60float.MatchString(s)
-}
-
-// From http://yaml.org/type/float.html, except the regular expression there
-// is bogus. In practice parsers do not enforce the "\.[0-9_]*" suffix.
-var base60float = regexp.MustCompile(`^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+(?:\.[0-9_]*)?$`)
-
-// isOldBool returns whether s is bool notation as defined in YAML 1.1.
-//
-// We continue to force strings that YAML 1.1 would interpret as booleans to be
-// rendered as quotes strings so that the marshalled output valid for YAML 1.1
-// parsing.
-func isOldBool(s string) (result bool) {
- switch s {
- case "y", "Y", "yes", "Yes", "YES", "on", "On", "ON",
- "n", "N", "no", "No", "NO", "off", "Off", "OFF":
- return true
- default:
- return false
- }
-}
-
-func (e *encoder) stringv(tag string, in reflect.Value) {
- var style yaml_scalar_style_t
- s := in.String()
- canUsePlain := true
- switch {
- case !utf8.ValidString(s):
- if tag == binaryTag {
- failf("explicitly tagged !!binary data must be base64-encoded")
- }
- if tag != "" {
- failf("cannot marshal invalid UTF-8 data as %s", shortTag(tag))
- }
- // It can't be encoded directly as YAML so use a binary tag
- // and encode it as base64.
- tag = binaryTag
- s = encodeBase64(s)
- case tag == "":
- // Check to see if it would resolve to a specific
- // tag when encoded unquoted. If it doesn't,
- // there's no need to quote it.
- rtag, _ := resolve("", s)
- canUsePlain = rtag == strTag && !(isBase60Float(s) || isOldBool(s))
- }
- // Note: it's possible for user code to emit invalid YAML
- // if they explicitly specify a tag and a string containing
- // text that's incompatible with that tag.
- switch {
- case strings.Contains(s, "\n"):
- if e.flow {
- style = yaml_DOUBLE_QUOTED_SCALAR_STYLE
- } else {
- style = yaml_LITERAL_SCALAR_STYLE
- }
- case canUsePlain:
- style = yaml_PLAIN_SCALAR_STYLE
- default:
- style = yaml_DOUBLE_QUOTED_SCALAR_STYLE
- }
- e.emitScalar(s, "", tag, style, nil, nil, nil, nil)
-}
-
-func (e *encoder) boolv(tag string, in reflect.Value) {
- var s string
- if in.Bool() {
- s = "true"
- } else {
- s = "false"
- }
- e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil)
-}
-
-func (e *encoder) intv(tag string, in reflect.Value) {
- s := strconv.FormatInt(in.Int(), 10)
- e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil)
-}
-
-func (e *encoder) uintv(tag string, in reflect.Value) {
- s := strconv.FormatUint(in.Uint(), 10)
- e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil)
-}
-
-func (e *encoder) timev(tag string, in reflect.Value) {
- t := in.Interface().(time.Time)
- s := t.Format(time.RFC3339Nano)
- e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil)
-}
-
-func (e *encoder) floatv(tag string, in reflect.Value) {
- // Issue #352: When formatting, use the precision of the underlying value
- precision := 64
- if in.Kind() == reflect.Float32 {
- precision = 32
- }
-
- s := strconv.FormatFloat(in.Float(), 'g', -1, precision)
- switch s {
- case "+Inf":
- s = ".inf"
- case "-Inf":
- s = "-.inf"
- case "NaN":
- s = ".nan"
- }
- e.emitScalar(s, "", tag, yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil)
-}
-
-func (e *encoder) nilv() {
- e.emitScalar("null", "", "", yaml_PLAIN_SCALAR_STYLE, nil, nil, nil, nil)
-}
-
-func (e *encoder) emitScalar(value, anchor, tag string, style yaml_scalar_style_t, head, line, foot, tail []byte) {
- // TODO Kill this function. Replace all initialize calls by their underlining Go literals.
- implicit := tag == ""
- if !implicit {
- tag = longTag(tag)
- }
- e.must(yaml_scalar_event_initialize(&e.event, []byte(anchor), []byte(tag), []byte(value), implicit, implicit, style))
- e.event.head_comment = head
- e.event.line_comment = line
- e.event.foot_comment = foot
- e.event.tail_comment = tail
- e.emit()
-}
-
-func (e *encoder) nodev(in reflect.Value) {
- e.node(in.Interface().(*Node), "")
-}
-
-func (e *encoder) node(node *Node, tail string) {
- // Zero nodes behave as nil.
- if node.Kind == 0 && node.IsZero() {
- e.nilv()
- return
- }
-
- // If the tag was not explicitly requested, and dropping it won't change the
- // implicit tag of the value, don't include it in the presentation.
- var tag = node.Tag
- var stag = shortTag(tag)
- var forceQuoting bool
- if tag != "" && node.Style&TaggedStyle == 0 {
- if node.Kind == ScalarNode {
- if stag == strTag && node.Style&(SingleQuotedStyle|DoubleQuotedStyle|LiteralStyle|FoldedStyle) != 0 {
- tag = ""
- } else {
- rtag, _ := resolve("", node.Value)
- if rtag == stag {
- tag = ""
- } else if stag == strTag {
- tag = ""
- forceQuoting = true
- }
- }
- } else {
- var rtag string
- switch node.Kind {
- case MappingNode:
- rtag = mapTag
- case SequenceNode:
- rtag = seqTag
- }
- if rtag == stag {
- tag = ""
- }
- }
- }
-
- switch node.Kind {
- case DocumentNode:
- yaml_document_start_event_initialize(&e.event, nil, nil, true)
- e.event.head_comment = []byte(node.HeadComment)
- e.emit()
- for _, node := range node.Content {
- e.node(node, "")
- }
- yaml_document_end_event_initialize(&e.event, true)
- e.event.foot_comment = []byte(node.FootComment)
- e.emit()
-
- case SequenceNode:
- style := yaml_BLOCK_SEQUENCE_STYLE
- if node.Style&FlowStyle != 0 {
- style = yaml_FLOW_SEQUENCE_STYLE
- }
- e.must(yaml_sequence_start_event_initialize(&e.event, []byte(node.Anchor), []byte(longTag(tag)), tag == "", style))
- e.event.head_comment = []byte(node.HeadComment)
- e.emit()
- for _, node := range node.Content {
- e.node(node, "")
- }
- e.must(yaml_sequence_end_event_initialize(&e.event))
- e.event.line_comment = []byte(node.LineComment)
- e.event.foot_comment = []byte(node.FootComment)
- e.emit()
-
- case MappingNode:
- style := yaml_BLOCK_MAPPING_STYLE
- if node.Style&FlowStyle != 0 {
- style = yaml_FLOW_MAPPING_STYLE
- }
- yaml_mapping_start_event_initialize(&e.event, []byte(node.Anchor), []byte(longTag(tag)), tag == "", style)
- e.event.tail_comment = []byte(tail)
- e.event.head_comment = []byte(node.HeadComment)
- e.emit()
-
- // The tail logic below moves the foot comment of prior keys to the following key,
- // since the value for each key may be a nested structure and the foot needs to be
- // processed only the entirety of the value is streamed. The last tail is processed
- // with the mapping end event.
- var tail string
- for i := 0; i+1 < len(node.Content); i += 2 {
- k := node.Content[i]
- foot := k.FootComment
- if foot != "" {
- kopy := *k
- kopy.FootComment = ""
- k = &kopy
- }
- e.node(k, tail)
- tail = foot
-
- v := node.Content[i+1]
- e.node(v, "")
- }
-
- yaml_mapping_end_event_initialize(&e.event)
- e.event.tail_comment = []byte(tail)
- e.event.line_comment = []byte(node.LineComment)
- e.event.foot_comment = []byte(node.FootComment)
- e.emit()
-
- case AliasNode:
- yaml_alias_event_initialize(&e.event, []byte(node.Value))
- e.event.head_comment = []byte(node.HeadComment)
- e.event.line_comment = []byte(node.LineComment)
- e.event.foot_comment = []byte(node.FootComment)
- e.emit()
-
- case ScalarNode:
- value := node.Value
- if !utf8.ValidString(value) {
- if stag == binaryTag {
- failf("explicitly tagged !!binary data must be base64-encoded")
- }
- if stag != "" {
- failf("cannot marshal invalid UTF-8 data as %s", stag)
- }
- // It can't be encoded directly as YAML so use a binary tag
- // and encode it as base64.
- tag = binaryTag
- value = encodeBase64(value)
- }
-
- style := yaml_PLAIN_SCALAR_STYLE
- switch {
- case node.Style&DoubleQuotedStyle != 0:
- style = yaml_DOUBLE_QUOTED_SCALAR_STYLE
- case node.Style&SingleQuotedStyle != 0:
- style = yaml_SINGLE_QUOTED_SCALAR_STYLE
- case node.Style&LiteralStyle != 0:
- style = yaml_LITERAL_SCALAR_STYLE
- case node.Style&FoldedStyle != 0:
- style = yaml_FOLDED_SCALAR_STYLE
- case strings.Contains(value, "\n"):
- style = yaml_LITERAL_SCALAR_STYLE
- case forceQuoting:
- style = yaml_DOUBLE_QUOTED_SCALAR_STYLE
- }
-
- e.emitScalar(value, node.Anchor, tag, style, []byte(node.HeadComment), []byte(node.LineComment), []byte(node.FootComment), []byte(tail))
- default:
- failf("cannot encode node with unknown kind %d", node.Kind)
- }
-}
diff --git a/vendor/gopkg.in/yaml.v3/writerc.go b/vendor/gopkg.in/yaml.v3/writerc.go
deleted file mode 100644
index b8a116bf..00000000
--- a/vendor/gopkg.in/yaml.v3/writerc.go
+++ /dev/null
@@ -1,48 +0,0 @@
-//
-// Copyright (c) 2011-2019 Canonical Ltd
-// Copyright (c) 2006-2010 Kirill Simonov
-//
-// 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.
-
-package yaml
-
-// Set the writer error and return false.
-func yaml_emitter_set_writer_error(emitter *yaml_emitter_t, problem string) bool {
- emitter.error = yaml_WRITER_ERROR
- emitter.problem = problem
- return false
-}
-
-// Flush the output buffer.
-func yaml_emitter_flush(emitter *yaml_emitter_t) bool {
- if emitter.write_handler == nil {
- panic("write handler not set")
- }
-
- // Check if the buffer is empty.
- if emitter.buffer_pos == 0 {
- return true
- }
-
- if err := emitter.write_handler(emitter, emitter.buffer[:emitter.buffer_pos]); err != nil {
- return yaml_emitter_set_writer_error(emitter, "write error: "+err.Error())
- }
- emitter.buffer_pos = 0
- return true
-}
diff --git a/vendor/kmodules.xyz/resource-metadata/apis/ui/constants.go b/vendor/kmodules.xyz/resource-metadata/apis/ui/constants.go
new file mode 100644
index 00000000..d42050f5
--- /dev/null
+++ b/vendor/kmodules.xyz/resource-metadata/apis/ui/constants.go
@@ -0,0 +1,21 @@
+/*
+Copyright AppsCode Inc. and Contributors
+
+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.
+*/
+
+package ui
+
+const (
+ LabelFeatureSet = "app.kubernetes.io/part-of"
+)
diff --git a/vendor/kmodules.xyz/resource-metadata/apis/ui/doc.go b/vendor/kmodules.xyz/resource-metadata/apis/ui/doc.go
new file mode 100644
index 00000000..8f06b37f
--- /dev/null
+++ b/vendor/kmodules.xyz/resource-metadata/apis/ui/doc.go
@@ -0,0 +1,21 @@
+/*
+Copyright AppsCode Inc. and Contributors
+
+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.
+*/
+
+package ui
+
+const (
+ GroupName = "ui.k8s.appscode.com"
+)
diff --git a/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/clusterprofile_types.go b/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/clusterprofile_types.go
new file mode 100644
index 00000000..a687c7b8
--- /dev/null
+++ b/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/clusterprofile_types.go
@@ -0,0 +1,66 @@
+/*
+Copyright AppsCode Inc. and Contributors
+
+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.
+*/
+
+package v1alpha1
+
+import (
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+)
+
+const (
+ ResourceKindClusterProfile = "ClusterProfile"
+ ResourceClusterProfile = "clusterprofile"
+ ResourceClusterProfiles = "clusterprofiles"
+)
+
+// ClusterProfileSpec defines the desired state of ClusterProfile
+type ClusterProfileSpec struct {
+ Title string `json:"title"`
+ Description string `json:"description"`
+ Provider string `json:"provider,omitempty"`
+ RequiredFeatureSets map[string]Features `json:"requiredFeatureSets,omitempty"`
+}
+
+type Features []string
+
+// ClusterProfile is the Schema for the clusterprofiles API
+
+// +genclient
+// +genclient:nonNamespaced
+// +genclient:skipVerbs=updateStatus
+// +k8s:openapi-gen=true
+// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
+// +kubebuilder:object:root=true
+// +kubebuilder:subresource:status
+// +kubebuilder:resource:scope=Cluster
+// +kubebuilder:printcolumn:name="Status",type="string",JSONPath=".status.phase"
+// +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp"
+type ClusterProfile struct {
+ metav1.TypeMeta `json:",inline"`
+ metav1.ObjectMeta `json:"metadata,omitempty"`
+
+ Spec ClusterProfileSpec `json:"spec,omitempty"`
+}
+
+// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
+// +kubebuilder:object:root=true
+
+// ClusterProfileList contains a list of ClusterProfile
+type ClusterProfileList struct {
+ metav1.TypeMeta `json:",inline"`
+ metav1.ListMeta `json:"metadata,omitempty"`
+ Items []ClusterProfile `json:"items"`
+}
diff --git a/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/doc.go b/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/doc.go
new file mode 100644
index 00000000..8e7cf1df
--- /dev/null
+++ b/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/doc.go
@@ -0,0 +1,23 @@
+/*
+Copyright AppsCode Inc. and Contributors
+
+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.
+*/
+
+// Package v1alpha1 is the v1alpha1 version of the API.
+
+// +k8s:deepcopy-gen=package,register
+// +k8s:openapi-gen=true
+// +k8s:defaulter-gen=TypeMeta
+// +groupName=ui.k8s.appscode.com
+package v1alpha1
diff --git a/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/feature_helpers.go b/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/feature_helpers.go
new file mode 100644
index 00000000..953abfc3
--- /dev/null
+++ b/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/feature_helpers.go
@@ -0,0 +1,35 @@
+/*
+Copyright AppsCode Inc. and Contributors
+
+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.
+*/
+
+package v1alpha1
+
+import (
+ "kmodules.xyz/client-go/apiextensions"
+ "kmodules.xyz/resource-metadata/apis/ui"
+ "kmodules.xyz/resource-metadata/crds"
+
+ "k8s.io/apimachinery/pkg/labels"
+)
+
+func (v Feature) CustomResourceDefinition() *apiextensions.CustomResourceDefinition {
+ return crds.MustCustomResourceDefinition(SchemeGroupVersion.WithResource(ResourceFeatures))
+}
+
+func (Feature) FormatLabels(featureSet string) labels.Selector {
+ return labels.SelectorFromSet(map[string]string{
+ ui.LabelFeatureSet: featureSet,
+ })
+}
diff --git a/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/feature_types.go b/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/feature_types.go
new file mode 100644
index 00000000..bd862449
--- /dev/null
+++ b/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/feature_types.go
@@ -0,0 +1,197 @@
+/*
+Copyright AppsCode Inc. and Contributors
+
+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.
+*/
+
+package v1alpha1
+
+import (
+ v1 "kmodules.xyz/client-go/api/v1"
+
+ apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ helmshared "x-helm.dev/apimachinery/apis/shared"
+)
+
+const (
+ ResourceKindFeature = "Feature"
+ ResourceFeature = "feature"
+ ResourceFeatures = "features"
+)
+
+// +genclient
+// +genclient:nonNamespaced
+// +k8s:openapi-gen=true
+// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
+
+// +kubebuilder:object:root=true
+// +kubebuilder:resource:path=features,singular=feature,scope=Cluster
+// +kubebuilder:subresource:status
+// +kubebuilder:printcolumn:name="Enabled",type="boolean",JSONPath=".status.enabled"
+// +kubebuilder:printcolumn:name="Managed",type="boolean",JSONPath=".status.managed"
+// +kubebuilder:printcolumn:name="Ready",type="boolean",JSONPath=".status.ready"
+// +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp"
+type Feature struct {
+ metav1.TypeMeta `json:",inline"`
+ // +optional
+ metav1.ObjectMeta `json:"metadata,omitempty"`
+ Spec FeatureSpec `json:"spec,omitempty"`
+ Status FeatureStatus `json:"status,omitempty"`
+}
+
+type FeatureSpec struct {
+ // Title specifies the title of this feature.
+ Title string `json:"title"`
+ // Description specifies a short description of the service this feature provides.
+ Description string `json:"description"`
+ // Icons is an optional list of icons for an application. Icon information includes the source, size,
+ // and mime type. These icons will be used in UI.
+ Icons []helmshared.ImageSpec `json:"icons,omitempty"`
+ // FeatureSet specifies the name of the FeatureSet where this feature belong to.
+ FeatureSet string `json:"featureSet"`
+ // FeatureBlock specifies the ui block name of this feature.
+ // +optional
+ FeatureBlock string `json:"featureBlock,omitempty"`
+ // FeatureExclusionGroup specifies the name of the exclusion group for features
+ // Only one feature in a feature exclusion group can be installed
+ // +optional
+ FeatureExclusionGroup string `json:"featureExclusionGroup,omitempty"`
+ // Required specifies whether this feature is mandatory or not for enabling the respecting FeatureSet.
+ // +optional
+ Recommended bool `json:"recommended,omitempty"`
+ // Disabled specify whether this feature set is disabled.
+ // +optional
+ Disabled bool `json:"disabled,omitempty"`
+ // Requirements specifies the requirements to enable this feature.
+ // +optional
+ Requirements Requirements `json:"requirements,omitempty"`
+ // ReadinessChecks specifies the conditions for this feature to be considered enabled.
+ // +optional
+ ReadinessChecks ReadinessChecks `json:"readinessChecks,omitempty"`
+ // Chart specifies the chart information that will be used by the FluxCD to install the respective feature
+ // +optional
+ Chart ChartInfo `json:"chart,omitempty"`
+ // ValuesFrom holds references to resources containing Helm values for this HelmRelease,
+ // and information about how they should be merged.
+ ValuesFrom []ValuesReference `json:"valuesFrom,omitempty"`
+ // Values holds the values for this Helm release.
+ // +optional
+ Values *apiextensionsv1.JSON `json:"values,omitempty"`
+}
+
+type Requirements struct {
+ // Features specifies a list of Feature names that must be enabled for using this feature.
+ // +optional
+ Features []string `json:"features,omitempty"`
+}
+
+type ReadinessChecks struct {
+ // Resources specifies the resources that should be registered to consider this feature as enabled.
+ // +optional
+ Resources []metav1.GroupVersionKind `json:"resources,omitempty"`
+ // Workloads specifies the workloads that should exist to consider this feature as enabled.
+ // +optional
+ Workloads []WorkloadInfo `json:"workloads,omitempty"`
+}
+
+type WorkloadInfo struct {
+ metav1.GroupVersionKind `json:",inline"`
+ // Selector specifies label selector that should be used to select this workload
+ Selector map[string]string `json:"selector"`
+ Optional string `json:"optional,omitempty"`
+}
+
+type ChartInfo struct {
+ // Name specifies the name of the chart
+ Name string `json:"name"`
+ // Namespace where the respective feature resources will be deployed.
+ // +optional
+ Namespace string `json:"namespace,omitempty"`
+ // +optional
+ CreateNamespace bool `json:"createNamespace,omitempty"`
+ // Version specifies the version of the chart.
+ // +optional
+ Version string `json:"version,omitempty"`
+ // SourceRef specifies the source of the chart
+ SourceRef v1.TypedObjectReference `json:"sourceRef"`
+ // Alternative list of values files to use as the chart values (values.yaml
+ // is not included by default), expected to be a relative path in the SourceRef.
+ // Values files are merged in the order of this list with the last file overriding
+ // the first. Ignored when omitted.
+ // +optional
+ ValuesFiles []string `json:"valuesFiles,omitempty"`
+}
+
+// copied from: https://github.com/fluxcd/helm-controller/blob/v0.37.4/api/v2beta2/reference_types.go#L45-L80
+// ValuesReference contains a reference to a resource containing Helm values,
+// and optionally the key they can be found at.
+type ValuesReference struct {
+ // Kind of the values referent, valid values are ('Secret', 'ConfigMap').
+ // +kubebuilder:validation:Enum=Secret;ConfigMap
+ // +required
+ Kind string `json:"kind"`
+
+ // Name of the values referent. Should reside in the same namespace as the
+ // referring resource.
+ // +kubebuilder:validation:MinLength=1
+ // +kubebuilder:validation:MaxLength=253
+ // +required
+ Name string `json:"name"`
+
+ // ValuesKey is the data key where the values.yaml or a specific value can be
+ // found at. Defaults to 'values.yaml'.
+ // +kubebuilder:validation:MaxLength=253
+ // +kubebuilder:validation:Pattern=`^[\-._a-zA-Z0-9]+$`
+ // +optional
+ ValuesKey string `json:"valuesKey,omitempty"`
+
+ // TargetPath is the YAML dot notation path the value should be merged at. When
+ // set, the ValuesKey is expected to be a single flat value. Defaults to 'None',
+ // which results in the values getting merged at the root.
+ // +kubebuilder:validation:MaxLength=250
+ // +kubebuilder:validation:Pattern=`^([a-zA-Z0-9_\-.\\\/]|\[[0-9]{1,5}\])+$`
+ // +optional
+ TargetPath string `json:"targetPath,omitempty"`
+
+ // Optional marks this ValuesReference as optional. When set, a not found error
+ // for the values reference is ignored, but any ValuesKey, TargetPath or
+ // transient error will still result in a reconciliation failure.
+ // +optional
+ Optional bool `json:"optional,omitempty"`
+}
+
+type FeatureStatus struct {
+ // Enabled specifies whether this feature is enabled or not.
+ // +optional
+ Enabled *bool `json:"enabled,omitempty"`
+ // Managed specifies whether this feature is managed by AppsCode Inc. or not.
+ // +optional
+ Managed *bool `json:"managed,omitempty"`
+ // Ready specifies whether this feature is ready to user or not. This field will be present only for the
+ // features that are managed by AppsCode Inc.
+ // +optional
+ Ready *bool `json:"ready,omitempty"`
+ // Note specifies the respective reason if the feature does not meet the requirements or is not ready.
+ // +optional
+ Note string `json:"note,omitempty"`
+}
+
+// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
+// +kubebuilder:object:root=true
+
+type FeatureList struct {
+ metav1.TypeMeta `json:",inline"`
+ metav1.ListMeta `json:"metadata,omitempty"`
+ Items []Feature `json:"items,omitempty"`
+}
diff --git a/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/featureset_helpers.go b/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/featureset_helpers.go
new file mode 100644
index 00000000..ab402656
--- /dev/null
+++ b/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/featureset_helpers.go
@@ -0,0 +1,30 @@
+/*
+Copyright AppsCode Inc. and Contributors
+
+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.
+*/
+
+package v1alpha1
+
+import (
+ "kmodules.xyz/client-go/apiextensions"
+ "kmodules.xyz/resource-metadata/crds"
+)
+
+const (
+ UIServerCleanupFinalizer = "ui-server.kubeops.dev/cleanup"
+)
+
+func (v FeatureSet) CustomResourceDefinition() *apiextensions.CustomResourceDefinition {
+ return crds.MustCustomResourceDefinition(SchemeGroupVersion.WithResource(ResourceFeatureSets))
+}
diff --git a/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/featureset_types.go b/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/featureset_types.go
new file mode 100644
index 00000000..737a59d3
--- /dev/null
+++ b/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/featureset_types.go
@@ -0,0 +1,124 @@
+/*
+Copyright AppsCode Inc. and Contributors
+
+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.
+*/
+
+package v1alpha1
+
+import (
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ releasesapi "x-helm.dev/apimachinery/apis/releases/v1alpha1"
+ helmshared "x-helm.dev/apimachinery/apis/shared"
+)
+
+const (
+ ResourceKindFeatureSet = "FeatureSet"
+ ResourceFeatureSet = "featureset"
+ ResourceFeatureSets = "featuresets"
+)
+
+// +genclient
+// +genclient:nonNamespaced
+// +k8s:openapi-gen=true
+// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
+
+// +kubebuilder:object:root=true
+// +kubebuilder:resource:path=featuresets,singular=featureset,scope=Cluster
+// +kubebuilder:subresource:status
+// +kubebuilder:printcolumn:name="Required",type="boolean",JSONPath=".spec.required"
+// +kubebuilder:printcolumn:name="Enabled",type="boolean",JSONPath=".status.enabled"
+// +kubebuilder:printcolumn:name="Ready",type="boolean",JSONPath=".status.ready"
+// +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp"
+type FeatureSet struct {
+ metav1.TypeMeta `json:",inline"`
+ // +optional
+ metav1.ObjectMeta `json:"metadata,omitempty"`
+ Spec FeatureSetSpec `json:"spec,omitempty"`
+ Status FeatureSetStatus `json:"status,omitempty"`
+}
+
+type FeatureSetSpec struct {
+ // Title specify the title of this feature set.
+ Title string `json:"title"`
+ // Description specifies a short description of the services this feature set provides.
+ Description string `json:"description"`
+ // Icons is an optional list of icons for an application. Icon information includes the source, size,
+ // and mime type. These icons will be used in UI.
+ Icons []helmshared.ImageSpec `json:"icons,omitempty"`
+ // Required specify whether this feature set is mandatory or not for using the UI.
+ // +optional
+ Recommended bool `json:"recommended,omitempty"`
+ // Disabled specify whether this feature set is disabled.
+ // +optional
+ Disabled bool `json:"disabled,omitempty"`
+ // RequiredFeatures specifies list of features that are necessary to consider this feature set as ready.
+ // +optional
+ RequiredFeatures []string `json:"requiredFeatures,omitempty"`
+ // Chart specifies the chart that contains the respective resources for component features and the UI wizard.
+ Chart releasesapi.ChartSourceRef `json:"chart"`
+}
+
+type FeatureSetStatus struct {
+ // Enabled specifies whether this feature set is enabled or not.
+ // +optional
+ Enabled *bool `json:"enabled,omitempty"`
+ // Ready specifies whether this feature set is ready not.
+ // +optional
+ Ready *bool `json:"ready,omitempty"`
+ // Features specifies the status of the component features that belong to this feature set.
+ // +optional
+ Features []ComponentStatus `json:"features,omitempty"`
+ // Dependents specifies the feature sets which depend on this FeatureSet
+ // +optional
+ Dependents Dependents `json:"dependents,omitempty"`
+ // Note specifies the respective reason if the feature set is considered as disabled.
+ // +optional
+ Note string `json:"note,omitempty"`
+}
+
+type ComponentStatus struct {
+ // Name specify the name of the component feature.
+ Name string `json:"name"`
+ // Enabled specifies whether the component feature has been enabled or not.
+ // +optional
+ Enabled *bool `json:"enabled,omitempty"`
+ // Ready specifies whether the component feature is ready or not.
+ // +optional
+ Ready *bool `json:"ready,omitempty"`
+ // Managed specifies whether the component is managed by platform or not.
+ // +optional
+ Managed *bool `json:"managed,omitempty"`
+}
+
+type Dependents struct {
+ // FeatureSets specifies a list of FeatureSet names that depend on this FeatureSet
+ // +optional
+ FeatureSets []DependentFeatureSet `json:"featureSets,omitempty"`
+}
+
+type DependentFeatureSet struct {
+ // Name specifies the name of the dependent FeatureSet
+ Name string `json:"name,omitempty"`
+ // Features specifies the Feature names of the dependent FeatureSet
+ Features []string `json:"features,omitempty"`
+}
+
+// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
+// +kubebuilder:object:root=true
+
+type FeatureSetList struct {
+ metav1.TypeMeta `json:",inline"`
+ metav1.ListMeta `json:"metadata,omitempty"`
+ Items []FeatureSet `json:"items,omitempty"`
+}
diff --git a/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/openapi_generated.go b/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/openapi_generated.go
new file mode 100644
index 00000000..119fc62d
--- /dev/null
+++ b/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/openapi_generated.go
@@ -0,0 +1,22399 @@
+//go:build !ignore_autogenerated
+// +build !ignore_autogenerated
+
+/*
+Copyright AppsCode Inc. and Contributors
+
+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.
+*/
+
+// Code generated by openapi-gen. DO NOT EDIT.
+
+// This file was autogenerated by openapi-gen. Do not edit it manually!
+
+package v1alpha1
+
+import (
+ apiv1 "kmodules.xyz/client-go/api/v1"
+
+ v1 "k8s.io/api/core/v1"
+ resource "k8s.io/apimachinery/pkg/api/resource"
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ intstr "k8s.io/apimachinery/pkg/util/intstr"
+ common "k8s.io/kube-openapi/pkg/common"
+ spec "k8s.io/kube-openapi/pkg/validation/spec"
+)
+
+func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition {
+ return map[string]common.OpenAPIDefinition{
+ "k8s.io/api/core/v1.AWSElasticBlockStoreVolumeSource": schema_k8sio_api_core_v1_AWSElasticBlockStoreVolumeSource(ref),
+ "k8s.io/api/core/v1.Affinity": schema_k8sio_api_core_v1_Affinity(ref),
+ "k8s.io/api/core/v1.AppArmorProfile": schema_k8sio_api_core_v1_AppArmorProfile(ref),
+ "k8s.io/api/core/v1.AttachedVolume": schema_k8sio_api_core_v1_AttachedVolume(ref),
+ "k8s.io/api/core/v1.AvoidPods": schema_k8sio_api_core_v1_AvoidPods(ref),
+ "k8s.io/api/core/v1.AzureDiskVolumeSource": schema_k8sio_api_core_v1_AzureDiskVolumeSource(ref),
+ "k8s.io/api/core/v1.AzureFilePersistentVolumeSource": schema_k8sio_api_core_v1_AzureFilePersistentVolumeSource(ref),
+ "k8s.io/api/core/v1.AzureFileVolumeSource": schema_k8sio_api_core_v1_AzureFileVolumeSource(ref),
+ "k8s.io/api/core/v1.Binding": schema_k8sio_api_core_v1_Binding(ref),
+ "k8s.io/api/core/v1.CSIPersistentVolumeSource": schema_k8sio_api_core_v1_CSIPersistentVolumeSource(ref),
+ "k8s.io/api/core/v1.CSIVolumeSource": schema_k8sio_api_core_v1_CSIVolumeSource(ref),
+ "k8s.io/api/core/v1.Capabilities": schema_k8sio_api_core_v1_Capabilities(ref),
+ "k8s.io/api/core/v1.CephFSPersistentVolumeSource": schema_k8sio_api_core_v1_CephFSPersistentVolumeSource(ref),
+ "k8s.io/api/core/v1.CephFSVolumeSource": schema_k8sio_api_core_v1_CephFSVolumeSource(ref),
+ "k8s.io/api/core/v1.CinderPersistentVolumeSource": schema_k8sio_api_core_v1_CinderPersistentVolumeSource(ref),
+ "k8s.io/api/core/v1.CinderVolumeSource": schema_k8sio_api_core_v1_CinderVolumeSource(ref),
+ "k8s.io/api/core/v1.ClientIPConfig": schema_k8sio_api_core_v1_ClientIPConfig(ref),
+ "k8s.io/api/core/v1.ClusterTrustBundleProjection": schema_k8sio_api_core_v1_ClusterTrustBundleProjection(ref),
+ "k8s.io/api/core/v1.ComponentCondition": schema_k8sio_api_core_v1_ComponentCondition(ref),
+ "k8s.io/api/core/v1.ComponentStatus": schema_k8sio_api_core_v1_ComponentStatus(ref),
+ "k8s.io/api/core/v1.ComponentStatusList": schema_k8sio_api_core_v1_ComponentStatusList(ref),
+ "k8s.io/api/core/v1.ConfigMap": schema_k8sio_api_core_v1_ConfigMap(ref),
+ "k8s.io/api/core/v1.ConfigMapEnvSource": schema_k8sio_api_core_v1_ConfigMapEnvSource(ref),
+ "k8s.io/api/core/v1.ConfigMapKeySelector": schema_k8sio_api_core_v1_ConfigMapKeySelector(ref),
+ "k8s.io/api/core/v1.ConfigMapList": schema_k8sio_api_core_v1_ConfigMapList(ref),
+ "k8s.io/api/core/v1.ConfigMapNodeConfigSource": schema_k8sio_api_core_v1_ConfigMapNodeConfigSource(ref),
+ "k8s.io/api/core/v1.ConfigMapProjection": schema_k8sio_api_core_v1_ConfigMapProjection(ref),
+ "k8s.io/api/core/v1.ConfigMapVolumeSource": schema_k8sio_api_core_v1_ConfigMapVolumeSource(ref),
+ "k8s.io/api/core/v1.Container": schema_k8sio_api_core_v1_Container(ref),
+ "k8s.io/api/core/v1.ContainerExtendedResourceRequest": schema_k8sio_api_core_v1_ContainerExtendedResourceRequest(ref),
+ "k8s.io/api/core/v1.ContainerImage": schema_k8sio_api_core_v1_ContainerImage(ref),
+ "k8s.io/api/core/v1.ContainerPort": schema_k8sio_api_core_v1_ContainerPort(ref),
+ "k8s.io/api/core/v1.ContainerResizePolicy": schema_k8sio_api_core_v1_ContainerResizePolicy(ref),
+ "k8s.io/api/core/v1.ContainerRestartRule": schema_k8sio_api_core_v1_ContainerRestartRule(ref),
+ "k8s.io/api/core/v1.ContainerRestartRuleOnExitCodes": schema_k8sio_api_core_v1_ContainerRestartRuleOnExitCodes(ref),
+ "k8s.io/api/core/v1.ContainerState": schema_k8sio_api_core_v1_ContainerState(ref),
+ "k8s.io/api/core/v1.ContainerStateRunning": schema_k8sio_api_core_v1_ContainerStateRunning(ref),
+ "k8s.io/api/core/v1.ContainerStateTerminated": schema_k8sio_api_core_v1_ContainerStateTerminated(ref),
+ "k8s.io/api/core/v1.ContainerStateWaiting": schema_k8sio_api_core_v1_ContainerStateWaiting(ref),
+ "k8s.io/api/core/v1.ContainerStatus": schema_k8sio_api_core_v1_ContainerStatus(ref),
+ "k8s.io/api/core/v1.ContainerUser": schema_k8sio_api_core_v1_ContainerUser(ref),
+ "k8s.io/api/core/v1.DaemonEndpoint": schema_k8sio_api_core_v1_DaemonEndpoint(ref),
+ "k8s.io/api/core/v1.DownwardAPIProjection": schema_k8sio_api_core_v1_DownwardAPIProjection(ref),
+ "k8s.io/api/core/v1.DownwardAPIVolumeFile": schema_k8sio_api_core_v1_DownwardAPIVolumeFile(ref),
+ "k8s.io/api/core/v1.DownwardAPIVolumeSource": schema_k8sio_api_core_v1_DownwardAPIVolumeSource(ref),
+ "k8s.io/api/core/v1.EmptyDirVolumeSource": schema_k8sio_api_core_v1_EmptyDirVolumeSource(ref),
+ "k8s.io/api/core/v1.EndpointAddress": schema_k8sio_api_core_v1_EndpointAddress(ref),
+ "k8s.io/api/core/v1.EndpointPort": schema_k8sio_api_core_v1_EndpointPort(ref),
+ "k8s.io/api/core/v1.EndpointSubset": schema_k8sio_api_core_v1_EndpointSubset(ref),
+ "k8s.io/api/core/v1.Endpoints": schema_k8sio_api_core_v1_Endpoints(ref),
+ "k8s.io/api/core/v1.EndpointsList": schema_k8sio_api_core_v1_EndpointsList(ref),
+ "k8s.io/api/core/v1.EnvFromSource": schema_k8sio_api_core_v1_EnvFromSource(ref),
+ "k8s.io/api/core/v1.EnvVar": schema_k8sio_api_core_v1_EnvVar(ref),
+ "k8s.io/api/core/v1.EnvVarSource": schema_k8sio_api_core_v1_EnvVarSource(ref),
+ "k8s.io/api/core/v1.EphemeralContainer": schema_k8sio_api_core_v1_EphemeralContainer(ref),
+ "k8s.io/api/core/v1.EphemeralContainerCommon": schema_k8sio_api_core_v1_EphemeralContainerCommon(ref),
+ "k8s.io/api/core/v1.EphemeralVolumeSource": schema_k8sio_api_core_v1_EphemeralVolumeSource(ref),
+ "k8s.io/api/core/v1.Event": schema_k8sio_api_core_v1_Event(ref),
+ "k8s.io/api/core/v1.EventList": schema_k8sio_api_core_v1_EventList(ref),
+ "k8s.io/api/core/v1.EventSeries": schema_k8sio_api_core_v1_EventSeries(ref),
+ "k8s.io/api/core/v1.EventSource": schema_k8sio_api_core_v1_EventSource(ref),
+ "k8s.io/api/core/v1.ExecAction": schema_k8sio_api_core_v1_ExecAction(ref),
+ "k8s.io/api/core/v1.FCVolumeSource": schema_k8sio_api_core_v1_FCVolumeSource(ref),
+ "k8s.io/api/core/v1.FileKeySelector": schema_k8sio_api_core_v1_FileKeySelector(ref),
+ "k8s.io/api/core/v1.FlexPersistentVolumeSource": schema_k8sio_api_core_v1_FlexPersistentVolumeSource(ref),
+ "k8s.io/api/core/v1.FlexVolumeSource": schema_k8sio_api_core_v1_FlexVolumeSource(ref),
+ "k8s.io/api/core/v1.FlockerVolumeSource": schema_k8sio_api_core_v1_FlockerVolumeSource(ref),
+ "k8s.io/api/core/v1.GCEPersistentDiskVolumeSource": schema_k8sio_api_core_v1_GCEPersistentDiskVolumeSource(ref),
+ "k8s.io/api/core/v1.GRPCAction": schema_k8sio_api_core_v1_GRPCAction(ref),
+ "k8s.io/api/core/v1.GitRepoVolumeSource": schema_k8sio_api_core_v1_GitRepoVolumeSource(ref),
+ "k8s.io/api/core/v1.GlusterfsPersistentVolumeSource": schema_k8sio_api_core_v1_GlusterfsPersistentVolumeSource(ref),
+ "k8s.io/api/core/v1.GlusterfsVolumeSource": schema_k8sio_api_core_v1_GlusterfsVolumeSource(ref),
+ "k8s.io/api/core/v1.HTTPGetAction": schema_k8sio_api_core_v1_HTTPGetAction(ref),
+ "k8s.io/api/core/v1.HTTPHeader": schema_k8sio_api_core_v1_HTTPHeader(ref),
+ "k8s.io/api/core/v1.HostAlias": schema_k8sio_api_core_v1_HostAlias(ref),
+ "k8s.io/api/core/v1.HostIP": schema_k8sio_api_core_v1_HostIP(ref),
+ "k8s.io/api/core/v1.HostPathVolumeSource": schema_k8sio_api_core_v1_HostPathVolumeSource(ref),
+ "k8s.io/api/core/v1.ISCSIPersistentVolumeSource": schema_k8sio_api_core_v1_ISCSIPersistentVolumeSource(ref),
+ "k8s.io/api/core/v1.ISCSIVolumeSource": schema_k8sio_api_core_v1_ISCSIVolumeSource(ref),
+ "k8s.io/api/core/v1.ImageVolumeSource": schema_k8sio_api_core_v1_ImageVolumeSource(ref),
+ "k8s.io/api/core/v1.KeyToPath": schema_k8sio_api_core_v1_KeyToPath(ref),
+ "k8s.io/api/core/v1.Lifecycle": schema_k8sio_api_core_v1_Lifecycle(ref),
+ "k8s.io/api/core/v1.LifecycleHandler": schema_k8sio_api_core_v1_LifecycleHandler(ref),
+ "k8s.io/api/core/v1.LimitRange": schema_k8sio_api_core_v1_LimitRange(ref),
+ "k8s.io/api/core/v1.LimitRangeItem": schema_k8sio_api_core_v1_LimitRangeItem(ref),
+ "k8s.io/api/core/v1.LimitRangeList": schema_k8sio_api_core_v1_LimitRangeList(ref),
+ "k8s.io/api/core/v1.LimitRangeSpec": schema_k8sio_api_core_v1_LimitRangeSpec(ref),
+ "k8s.io/api/core/v1.LinuxContainerUser": schema_k8sio_api_core_v1_LinuxContainerUser(ref),
+ "k8s.io/api/core/v1.List": schema_k8sio_api_core_v1_List(ref),
+ "k8s.io/api/core/v1.LoadBalancerIngress": schema_k8sio_api_core_v1_LoadBalancerIngress(ref),
+ "k8s.io/api/core/v1.LoadBalancerStatus": schema_k8sio_api_core_v1_LoadBalancerStatus(ref),
+ "k8s.io/api/core/v1.LocalObjectReference": schema_k8sio_api_core_v1_LocalObjectReference(ref),
+ "k8s.io/api/core/v1.LocalVolumeSource": schema_k8sio_api_core_v1_LocalVolumeSource(ref),
+ "k8s.io/api/core/v1.ModifyVolumeStatus": schema_k8sio_api_core_v1_ModifyVolumeStatus(ref),
+ "k8s.io/api/core/v1.NFSVolumeSource": schema_k8sio_api_core_v1_NFSVolumeSource(ref),
+ "k8s.io/api/core/v1.Namespace": schema_k8sio_api_core_v1_Namespace(ref),
+ "k8s.io/api/core/v1.NamespaceCondition": schema_k8sio_api_core_v1_NamespaceCondition(ref),
+ "k8s.io/api/core/v1.NamespaceList": schema_k8sio_api_core_v1_NamespaceList(ref),
+ "k8s.io/api/core/v1.NamespaceSpec": schema_k8sio_api_core_v1_NamespaceSpec(ref),
+ "k8s.io/api/core/v1.NamespaceStatus": schema_k8sio_api_core_v1_NamespaceStatus(ref),
+ "k8s.io/api/core/v1.Node": schema_k8sio_api_core_v1_Node(ref),
+ "k8s.io/api/core/v1.NodeAddress": schema_k8sio_api_core_v1_NodeAddress(ref),
+ "k8s.io/api/core/v1.NodeAffinity": schema_k8sio_api_core_v1_NodeAffinity(ref),
+ "k8s.io/api/core/v1.NodeCondition": schema_k8sio_api_core_v1_NodeCondition(ref),
+ "k8s.io/api/core/v1.NodeConfigSource": schema_k8sio_api_core_v1_NodeConfigSource(ref),
+ "k8s.io/api/core/v1.NodeConfigStatus": schema_k8sio_api_core_v1_NodeConfigStatus(ref),
+ "k8s.io/api/core/v1.NodeDaemonEndpoints": schema_k8sio_api_core_v1_NodeDaemonEndpoints(ref),
+ "k8s.io/api/core/v1.NodeFeatures": schema_k8sio_api_core_v1_NodeFeatures(ref),
+ "k8s.io/api/core/v1.NodeList": schema_k8sio_api_core_v1_NodeList(ref),
+ "k8s.io/api/core/v1.NodeProxyOptions": schema_k8sio_api_core_v1_NodeProxyOptions(ref),
+ "k8s.io/api/core/v1.NodeRuntimeHandler": schema_k8sio_api_core_v1_NodeRuntimeHandler(ref),
+ "k8s.io/api/core/v1.NodeRuntimeHandlerFeatures": schema_k8sio_api_core_v1_NodeRuntimeHandlerFeatures(ref),
+ "k8s.io/api/core/v1.NodeSelector": schema_k8sio_api_core_v1_NodeSelector(ref),
+ "k8s.io/api/core/v1.NodeSelectorRequirement": schema_k8sio_api_core_v1_NodeSelectorRequirement(ref),
+ "k8s.io/api/core/v1.NodeSelectorTerm": schema_k8sio_api_core_v1_NodeSelectorTerm(ref),
+ "k8s.io/api/core/v1.NodeSpec": schema_k8sio_api_core_v1_NodeSpec(ref),
+ "k8s.io/api/core/v1.NodeStatus": schema_k8sio_api_core_v1_NodeStatus(ref),
+ "k8s.io/api/core/v1.NodeSwapStatus": schema_k8sio_api_core_v1_NodeSwapStatus(ref),
+ "k8s.io/api/core/v1.NodeSystemInfo": schema_k8sio_api_core_v1_NodeSystemInfo(ref),
+ "k8s.io/api/core/v1.ObjectFieldSelector": schema_k8sio_api_core_v1_ObjectFieldSelector(ref),
+ "k8s.io/api/core/v1.ObjectReference": schema_k8sio_api_core_v1_ObjectReference(ref),
+ "k8s.io/api/core/v1.PersistentVolume": schema_k8sio_api_core_v1_PersistentVolume(ref),
+ "k8s.io/api/core/v1.PersistentVolumeClaim": schema_k8sio_api_core_v1_PersistentVolumeClaim(ref),
+ "k8s.io/api/core/v1.PersistentVolumeClaimCondition": schema_k8sio_api_core_v1_PersistentVolumeClaimCondition(ref),
+ "k8s.io/api/core/v1.PersistentVolumeClaimList": schema_k8sio_api_core_v1_PersistentVolumeClaimList(ref),
+ "k8s.io/api/core/v1.PersistentVolumeClaimSpec": schema_k8sio_api_core_v1_PersistentVolumeClaimSpec(ref),
+ "k8s.io/api/core/v1.PersistentVolumeClaimStatus": schema_k8sio_api_core_v1_PersistentVolumeClaimStatus(ref),
+ "k8s.io/api/core/v1.PersistentVolumeClaimTemplate": schema_k8sio_api_core_v1_PersistentVolumeClaimTemplate(ref),
+ "k8s.io/api/core/v1.PersistentVolumeClaimVolumeSource": schema_k8sio_api_core_v1_PersistentVolumeClaimVolumeSource(ref),
+ "k8s.io/api/core/v1.PersistentVolumeList": schema_k8sio_api_core_v1_PersistentVolumeList(ref),
+ "k8s.io/api/core/v1.PersistentVolumeSource": schema_k8sio_api_core_v1_PersistentVolumeSource(ref),
+ "k8s.io/api/core/v1.PersistentVolumeSpec": schema_k8sio_api_core_v1_PersistentVolumeSpec(ref),
+ "k8s.io/api/core/v1.PersistentVolumeStatus": schema_k8sio_api_core_v1_PersistentVolumeStatus(ref),
+ "k8s.io/api/core/v1.PhotonPersistentDiskVolumeSource": schema_k8sio_api_core_v1_PhotonPersistentDiskVolumeSource(ref),
+ "k8s.io/api/core/v1.Pod": schema_k8sio_api_core_v1_Pod(ref),
+ "k8s.io/api/core/v1.PodAffinity": schema_k8sio_api_core_v1_PodAffinity(ref),
+ "k8s.io/api/core/v1.PodAffinityTerm": schema_k8sio_api_core_v1_PodAffinityTerm(ref),
+ "k8s.io/api/core/v1.PodAntiAffinity": schema_k8sio_api_core_v1_PodAntiAffinity(ref),
+ "k8s.io/api/core/v1.PodAttachOptions": schema_k8sio_api_core_v1_PodAttachOptions(ref),
+ "k8s.io/api/core/v1.PodCertificateProjection": schema_k8sio_api_core_v1_PodCertificateProjection(ref),
+ "k8s.io/api/core/v1.PodCondition": schema_k8sio_api_core_v1_PodCondition(ref),
+ "k8s.io/api/core/v1.PodDNSConfig": schema_k8sio_api_core_v1_PodDNSConfig(ref),
+ "k8s.io/api/core/v1.PodDNSConfigOption": schema_k8sio_api_core_v1_PodDNSConfigOption(ref),
+ "k8s.io/api/core/v1.PodExecOptions": schema_k8sio_api_core_v1_PodExecOptions(ref),
+ "k8s.io/api/core/v1.PodExtendedResourceClaimStatus": schema_k8sio_api_core_v1_PodExtendedResourceClaimStatus(ref),
+ "k8s.io/api/core/v1.PodIP": schema_k8sio_api_core_v1_PodIP(ref),
+ "k8s.io/api/core/v1.PodList": schema_k8sio_api_core_v1_PodList(ref),
+ "k8s.io/api/core/v1.PodLogOptions": schema_k8sio_api_core_v1_PodLogOptions(ref),
+ "k8s.io/api/core/v1.PodOS": schema_k8sio_api_core_v1_PodOS(ref),
+ "k8s.io/api/core/v1.PodPortForwardOptions": schema_k8sio_api_core_v1_PodPortForwardOptions(ref),
+ "k8s.io/api/core/v1.PodProxyOptions": schema_k8sio_api_core_v1_PodProxyOptions(ref),
+ "k8s.io/api/core/v1.PodReadinessGate": schema_k8sio_api_core_v1_PodReadinessGate(ref),
+ "k8s.io/api/core/v1.PodResourceClaim": schema_k8sio_api_core_v1_PodResourceClaim(ref),
+ "k8s.io/api/core/v1.PodResourceClaimStatus": schema_k8sio_api_core_v1_PodResourceClaimStatus(ref),
+ "k8s.io/api/core/v1.PodSchedulingGate": schema_k8sio_api_core_v1_PodSchedulingGate(ref),
+ "k8s.io/api/core/v1.PodSecurityContext": schema_k8sio_api_core_v1_PodSecurityContext(ref),
+ "k8s.io/api/core/v1.PodSignature": schema_k8sio_api_core_v1_PodSignature(ref),
+ "k8s.io/api/core/v1.PodSpec": schema_k8sio_api_core_v1_PodSpec(ref),
+ "k8s.io/api/core/v1.PodStatus": schema_k8sio_api_core_v1_PodStatus(ref),
+ "k8s.io/api/core/v1.PodStatusResult": schema_k8sio_api_core_v1_PodStatusResult(ref),
+ "k8s.io/api/core/v1.PodTemplate": schema_k8sio_api_core_v1_PodTemplate(ref),
+ "k8s.io/api/core/v1.PodTemplateList": schema_k8sio_api_core_v1_PodTemplateList(ref),
+ "k8s.io/api/core/v1.PodTemplateSpec": schema_k8sio_api_core_v1_PodTemplateSpec(ref),
+ "k8s.io/api/core/v1.PortStatus": schema_k8sio_api_core_v1_PortStatus(ref),
+ "k8s.io/api/core/v1.PortworxVolumeSource": schema_k8sio_api_core_v1_PortworxVolumeSource(ref),
+ "k8s.io/api/core/v1.PreferAvoidPodsEntry": schema_k8sio_api_core_v1_PreferAvoidPodsEntry(ref),
+ "k8s.io/api/core/v1.PreferredSchedulingTerm": schema_k8sio_api_core_v1_PreferredSchedulingTerm(ref),
+ "k8s.io/api/core/v1.Probe": schema_k8sio_api_core_v1_Probe(ref),
+ "k8s.io/api/core/v1.ProbeHandler": schema_k8sio_api_core_v1_ProbeHandler(ref),
+ "k8s.io/api/core/v1.ProjectedVolumeSource": schema_k8sio_api_core_v1_ProjectedVolumeSource(ref),
+ "k8s.io/api/core/v1.QuobyteVolumeSource": schema_k8sio_api_core_v1_QuobyteVolumeSource(ref),
+ "k8s.io/api/core/v1.RBDPersistentVolumeSource": schema_k8sio_api_core_v1_RBDPersistentVolumeSource(ref),
+ "k8s.io/api/core/v1.RBDVolumeSource": schema_k8sio_api_core_v1_RBDVolumeSource(ref),
+ "k8s.io/api/core/v1.RangeAllocation": schema_k8sio_api_core_v1_RangeAllocation(ref),
+ "k8s.io/api/core/v1.ReplicationController": schema_k8sio_api_core_v1_ReplicationController(ref),
+ "k8s.io/api/core/v1.ReplicationControllerCondition": schema_k8sio_api_core_v1_ReplicationControllerCondition(ref),
+ "k8s.io/api/core/v1.ReplicationControllerList": schema_k8sio_api_core_v1_ReplicationControllerList(ref),
+ "k8s.io/api/core/v1.ReplicationControllerSpec": schema_k8sio_api_core_v1_ReplicationControllerSpec(ref),
+ "k8s.io/api/core/v1.ReplicationControllerStatus": schema_k8sio_api_core_v1_ReplicationControllerStatus(ref),
+ "k8s.io/api/core/v1.ResourceClaim": schema_k8sio_api_core_v1_ResourceClaim(ref),
+ "k8s.io/api/core/v1.ResourceFieldSelector": schema_k8sio_api_core_v1_ResourceFieldSelector(ref),
+ "k8s.io/api/core/v1.ResourceHealth": schema_k8sio_api_core_v1_ResourceHealth(ref),
+ "k8s.io/api/core/v1.ResourceQuota": schema_k8sio_api_core_v1_ResourceQuota(ref),
+ "k8s.io/api/core/v1.ResourceQuotaList": schema_k8sio_api_core_v1_ResourceQuotaList(ref),
+ "k8s.io/api/core/v1.ResourceQuotaSpec": schema_k8sio_api_core_v1_ResourceQuotaSpec(ref),
+ "k8s.io/api/core/v1.ResourceQuotaStatus": schema_k8sio_api_core_v1_ResourceQuotaStatus(ref),
+ "k8s.io/api/core/v1.ResourceRequirements": schema_k8sio_api_core_v1_ResourceRequirements(ref),
+ "k8s.io/api/core/v1.ResourceStatus": schema_k8sio_api_core_v1_ResourceStatus(ref),
+ "k8s.io/api/core/v1.SELinuxOptions": schema_k8sio_api_core_v1_SELinuxOptions(ref),
+ "k8s.io/api/core/v1.ScaleIOPersistentVolumeSource": schema_k8sio_api_core_v1_ScaleIOPersistentVolumeSource(ref),
+ "k8s.io/api/core/v1.ScaleIOVolumeSource": schema_k8sio_api_core_v1_ScaleIOVolumeSource(ref),
+ "k8s.io/api/core/v1.ScopeSelector": schema_k8sio_api_core_v1_ScopeSelector(ref),
+ "k8s.io/api/core/v1.ScopedResourceSelectorRequirement": schema_k8sio_api_core_v1_ScopedResourceSelectorRequirement(ref),
+ "k8s.io/api/core/v1.SeccompProfile": schema_k8sio_api_core_v1_SeccompProfile(ref),
+ "k8s.io/api/core/v1.Secret": schema_k8sio_api_core_v1_Secret(ref),
+ "k8s.io/api/core/v1.SecretEnvSource": schema_k8sio_api_core_v1_SecretEnvSource(ref),
+ "k8s.io/api/core/v1.SecretKeySelector": schema_k8sio_api_core_v1_SecretKeySelector(ref),
+ "k8s.io/api/core/v1.SecretList": schema_k8sio_api_core_v1_SecretList(ref),
+ "k8s.io/api/core/v1.SecretProjection": schema_k8sio_api_core_v1_SecretProjection(ref),
+ "k8s.io/api/core/v1.SecretReference": schema_k8sio_api_core_v1_SecretReference(ref),
+ "k8s.io/api/core/v1.SecretVolumeSource": schema_k8sio_api_core_v1_SecretVolumeSource(ref),
+ "k8s.io/api/core/v1.SecurityContext": schema_k8sio_api_core_v1_SecurityContext(ref),
+ "k8s.io/api/core/v1.SerializedReference": schema_k8sio_api_core_v1_SerializedReference(ref),
+ "k8s.io/api/core/v1.Service": schema_k8sio_api_core_v1_Service(ref),
+ "k8s.io/api/core/v1.ServiceAccount": schema_k8sio_api_core_v1_ServiceAccount(ref),
+ "k8s.io/api/core/v1.ServiceAccountList": schema_k8sio_api_core_v1_ServiceAccountList(ref),
+ "k8s.io/api/core/v1.ServiceAccountTokenProjection": schema_k8sio_api_core_v1_ServiceAccountTokenProjection(ref),
+ "k8s.io/api/core/v1.ServiceList": schema_k8sio_api_core_v1_ServiceList(ref),
+ "k8s.io/api/core/v1.ServicePort": schema_k8sio_api_core_v1_ServicePort(ref),
+ "k8s.io/api/core/v1.ServiceProxyOptions": schema_k8sio_api_core_v1_ServiceProxyOptions(ref),
+ "k8s.io/api/core/v1.ServiceSpec": schema_k8sio_api_core_v1_ServiceSpec(ref),
+ "k8s.io/api/core/v1.ServiceStatus": schema_k8sio_api_core_v1_ServiceStatus(ref),
+ "k8s.io/api/core/v1.SessionAffinityConfig": schema_k8sio_api_core_v1_SessionAffinityConfig(ref),
+ "k8s.io/api/core/v1.SleepAction": schema_k8sio_api_core_v1_SleepAction(ref),
+ "k8s.io/api/core/v1.StorageOSPersistentVolumeSource": schema_k8sio_api_core_v1_StorageOSPersistentVolumeSource(ref),
+ "k8s.io/api/core/v1.StorageOSVolumeSource": schema_k8sio_api_core_v1_StorageOSVolumeSource(ref),
+ "k8s.io/api/core/v1.Sysctl": schema_k8sio_api_core_v1_Sysctl(ref),
+ "k8s.io/api/core/v1.TCPSocketAction": schema_k8sio_api_core_v1_TCPSocketAction(ref),
+ "k8s.io/api/core/v1.Taint": schema_k8sio_api_core_v1_Taint(ref),
+ "k8s.io/api/core/v1.Toleration": schema_k8sio_api_core_v1_Toleration(ref),
+ "k8s.io/api/core/v1.TopologySelectorLabelRequirement": schema_k8sio_api_core_v1_TopologySelectorLabelRequirement(ref),
+ "k8s.io/api/core/v1.TopologySelectorTerm": schema_k8sio_api_core_v1_TopologySelectorTerm(ref),
+ "k8s.io/api/core/v1.TopologySpreadConstraint": schema_k8sio_api_core_v1_TopologySpreadConstraint(ref),
+ "k8s.io/api/core/v1.TypedLocalObjectReference": schema_k8sio_api_core_v1_TypedLocalObjectReference(ref),
+ "k8s.io/api/core/v1.TypedObjectReference": schema_k8sio_api_core_v1_TypedObjectReference(ref),
+ "k8s.io/api/core/v1.Volume": schema_k8sio_api_core_v1_Volume(ref),
+ "k8s.io/api/core/v1.VolumeDevice": schema_k8sio_api_core_v1_VolumeDevice(ref),
+ "k8s.io/api/core/v1.VolumeMount": schema_k8sio_api_core_v1_VolumeMount(ref),
+ "k8s.io/api/core/v1.VolumeMountStatus": schema_k8sio_api_core_v1_VolumeMountStatus(ref),
+ "k8s.io/api/core/v1.VolumeNodeAffinity": schema_k8sio_api_core_v1_VolumeNodeAffinity(ref),
+ "k8s.io/api/core/v1.VolumeProjection": schema_k8sio_api_core_v1_VolumeProjection(ref),
+ "k8s.io/api/core/v1.VolumeResourceRequirements": schema_k8sio_api_core_v1_VolumeResourceRequirements(ref),
+ "k8s.io/api/core/v1.VolumeSource": schema_k8sio_api_core_v1_VolumeSource(ref),
+ "k8s.io/api/core/v1.VsphereVirtualDiskVolumeSource": schema_k8sio_api_core_v1_VsphereVirtualDiskVolumeSource(ref),
+ "k8s.io/api/core/v1.WeightedPodAffinityTerm": schema_k8sio_api_core_v1_WeightedPodAffinityTerm(ref),
+ "k8s.io/api/core/v1.WindowsSecurityContextOptions": schema_k8sio_api_core_v1_WindowsSecurityContextOptions(ref),
+ "k8s.io/apimachinery/pkg/api/resource.Quantity": schema_apimachinery_pkg_api_resource_Quantity(ref),
+ "k8s.io/apimachinery/pkg/api/resource.int64Amount": schema_apimachinery_pkg_api_resource_int64Amount(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.APIGroup": schema_pkg_apis_meta_v1_APIGroup(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.APIGroupList": schema_pkg_apis_meta_v1_APIGroupList(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.APIResource": schema_pkg_apis_meta_v1_APIResource(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.APIResourceList": schema_pkg_apis_meta_v1_APIResourceList(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.APIVersions": schema_pkg_apis_meta_v1_APIVersions(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.ApplyOptions": schema_pkg_apis_meta_v1_ApplyOptions(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.Condition": schema_pkg_apis_meta_v1_Condition(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.CreateOptions": schema_pkg_apis_meta_v1_CreateOptions(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.DeleteOptions": schema_pkg_apis_meta_v1_DeleteOptions(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.Duration": schema_pkg_apis_meta_v1_Duration(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.FieldSelectorRequirement": schema_pkg_apis_meta_v1_FieldSelectorRequirement(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.FieldsV1": schema_pkg_apis_meta_v1_FieldsV1(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.GetOptions": schema_pkg_apis_meta_v1_GetOptions(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.GroupKind": schema_pkg_apis_meta_v1_GroupKind(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.GroupResource": schema_pkg_apis_meta_v1_GroupResource(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.GroupVersion": schema_pkg_apis_meta_v1_GroupVersion(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.GroupVersionForDiscovery": schema_pkg_apis_meta_v1_GroupVersionForDiscovery(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.GroupVersionKind": schema_pkg_apis_meta_v1_GroupVersionKind(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.GroupVersionResource": schema_pkg_apis_meta_v1_GroupVersionResource(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.InternalEvent": schema_pkg_apis_meta_v1_InternalEvent(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector": schema_pkg_apis_meta_v1_LabelSelector(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelectorRequirement": schema_pkg_apis_meta_v1_LabelSelectorRequirement(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.List": schema_pkg_apis_meta_v1_List(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta": schema_pkg_apis_meta_v1_ListMeta(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.ListOptions": schema_pkg_apis_meta_v1_ListOptions(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.ManagedFieldsEntry": schema_pkg_apis_meta_v1_ManagedFieldsEntry(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.MicroTime": schema_pkg_apis_meta_v1_MicroTime(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta": schema_pkg_apis_meta_v1_ObjectMeta(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.OwnerReference": schema_pkg_apis_meta_v1_OwnerReference(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.PartialObjectMetadata": schema_pkg_apis_meta_v1_PartialObjectMetadata(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.PartialObjectMetadataList": schema_pkg_apis_meta_v1_PartialObjectMetadataList(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.Patch": schema_pkg_apis_meta_v1_Patch(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.PatchOptions": schema_pkg_apis_meta_v1_PatchOptions(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.Preconditions": schema_pkg_apis_meta_v1_Preconditions(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.RootPaths": schema_pkg_apis_meta_v1_RootPaths(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.ServerAddressByClientCIDR": schema_pkg_apis_meta_v1_ServerAddressByClientCIDR(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.Status": schema_pkg_apis_meta_v1_Status(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.StatusCause": schema_pkg_apis_meta_v1_StatusCause(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.StatusDetails": schema_pkg_apis_meta_v1_StatusDetails(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.Table": schema_pkg_apis_meta_v1_Table(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.TableColumnDefinition": schema_pkg_apis_meta_v1_TableColumnDefinition(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.TableOptions": schema_pkg_apis_meta_v1_TableOptions(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.TableRow": schema_pkg_apis_meta_v1_TableRow(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.TableRowCondition": schema_pkg_apis_meta_v1_TableRowCondition(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.Time": schema_pkg_apis_meta_v1_Time(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.Timestamp": schema_pkg_apis_meta_v1_Timestamp(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.TypeMeta": schema_pkg_apis_meta_v1_TypeMeta(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.UpdateOptions": schema_pkg_apis_meta_v1_UpdateOptions(ref),
+ "k8s.io/apimachinery/pkg/apis/meta/v1.WatchEvent": schema_pkg_apis_meta_v1_WatchEvent(ref),
+ "k8s.io/apimachinery/pkg/runtime.RawExtension": schema_k8sio_apimachinery_pkg_runtime_RawExtension(ref),
+ "k8s.io/apimachinery/pkg/runtime.TypeMeta": schema_k8sio_apimachinery_pkg_runtime_TypeMeta(ref),
+ "k8s.io/apimachinery/pkg/runtime.Unknown": schema_k8sio_apimachinery_pkg_runtime_Unknown(ref),
+ "k8s.io/apimachinery/pkg/util/intstr.IntOrString": schema_apimachinery_pkg_util_intstr_IntOrString(ref),
+ "k8s.io/apimachinery/pkg/version.Info": schema_k8sio_apimachinery_pkg_version_Info(ref),
+ "kmodules.xyz/client-go/api/v1.CAPIClusterInfo": schema_kmodulesxyz_client_go_api_v1_CAPIClusterInfo(ref),
+ "kmodules.xyz/client-go/api/v1.CertificatePrivateKey": schema_kmodulesxyz_client_go_api_v1_CertificatePrivateKey(ref),
+ "kmodules.xyz/client-go/api/v1.CertificateSpec": schema_kmodulesxyz_client_go_api_v1_CertificateSpec(ref),
+ "kmodules.xyz/client-go/api/v1.ClusterClaimFeatures": schema_kmodulesxyz_client_go_api_v1_ClusterClaimFeatures(ref),
+ "kmodules.xyz/client-go/api/v1.ClusterClaimInfo": schema_kmodulesxyz_client_go_api_v1_ClusterClaimInfo(ref),
+ "kmodules.xyz/client-go/api/v1.ClusterInfo": schema_kmodulesxyz_client_go_api_v1_ClusterInfo(ref),
+ "kmodules.xyz/client-go/api/v1.ClusterMetadata": schema_kmodulesxyz_client_go_api_v1_ClusterMetadata(ref),
+ "kmodules.xyz/client-go/api/v1.Condition": schema_kmodulesxyz_client_go_api_v1_Condition(ref),
+ "kmodules.xyz/client-go/api/v1.HealthCheckSpec": schema_kmodulesxyz_client_go_api_v1_HealthCheckSpec(ref),
+ "kmodules.xyz/client-go/api/v1.ImageInfo": schema_kmodulesxyz_client_go_api_v1_ImageInfo(ref),
+ "kmodules.xyz/client-go/api/v1.Lineage": schema_kmodulesxyz_client_go_api_v1_Lineage(ref),
+ "kmodules.xyz/client-go/api/v1.ObjectID": schema_kmodulesxyz_client_go_api_v1_ObjectID(ref),
+ "kmodules.xyz/client-go/api/v1.ObjectInfo": schema_kmodulesxyz_client_go_api_v1_ObjectInfo(ref),
+ "kmodules.xyz/client-go/api/v1.ObjectReference": schema_kmodulesxyz_client_go_api_v1_ObjectReference(ref),
+ "kmodules.xyz/client-go/api/v1.PullCredentials": schema_kmodulesxyz_client_go_api_v1_PullCredentials(ref),
+ "kmodules.xyz/client-go/api/v1.ReadonlyHealthCheckSpec": schema_kmodulesxyz_client_go_api_v1_ReadonlyHealthCheckSpec(ref),
+ "kmodules.xyz/client-go/api/v1.ResourceID": schema_kmodulesxyz_client_go_api_v1_ResourceID(ref),
+ "kmodules.xyz/client-go/api/v1.TLSConfig": schema_kmodulesxyz_client_go_api_v1_TLSConfig(ref),
+ "kmodules.xyz/client-go/api/v1.TimeOfDay": schema_kmodulesxyz_client_go_api_v1_TimeOfDay(ref),
+ "kmodules.xyz/client-go/api/v1.TypeReference": schema_kmodulesxyz_client_go_api_v1_TypeReference(ref),
+ "kmodules.xyz/client-go/api/v1.TypedObjectReference": schema_kmodulesxyz_client_go_api_v1_TypedObjectReference(ref),
+ "kmodules.xyz/client-go/api/v1.X509Subject": schema_kmodulesxyz_client_go_api_v1_X509Subject(ref),
+ "kmodules.xyz/client-go/api/v1.stringSetMerger": schema_kmodulesxyz_client_go_api_v1_stringSetMerger(ref),
+ "kmodules.xyz/offshoot-api/api/v1.ContainerRuntimeSettings": schema_kmodulesxyz_offshoot_api_api_v1_ContainerRuntimeSettings(ref),
+ "kmodules.xyz/offshoot-api/api/v1.EphemeralVolumeSource": schema_kmodulesxyz_offshoot_api_api_v1_EphemeralVolumeSource(ref),
+ "kmodules.xyz/offshoot-api/api/v1.Gateway": schema_kmodulesxyz_offshoot_api_api_v1_Gateway(ref),
+ "kmodules.xyz/offshoot-api/api/v1.GatewayPort": schema_kmodulesxyz_offshoot_api_api_v1_GatewayPort(ref),
+ "kmodules.xyz/offshoot-api/api/v1.IONiceSettings": schema_kmodulesxyz_offshoot_api_api_v1_IONiceSettings(ref),
+ "kmodules.xyz/offshoot-api/api/v1.NamedServiceStatus": schema_kmodulesxyz_offshoot_api_api_v1_NamedServiceStatus(ref),
+ "kmodules.xyz/offshoot-api/api/v1.NamedURL": schema_kmodulesxyz_offshoot_api_api_v1_NamedURL(ref),
+ "kmodules.xyz/offshoot-api/api/v1.NiceSettings": schema_kmodulesxyz_offshoot_api_api_v1_NiceSettings(ref),
+ "kmodules.xyz/offshoot-api/api/v1.ObjectMeta": schema_kmodulesxyz_offshoot_api_api_v1_ObjectMeta(ref),
+ "kmodules.xyz/offshoot-api/api/v1.PartialObjectMeta": schema_kmodulesxyz_offshoot_api_api_v1_PartialObjectMeta(ref),
+ "kmodules.xyz/offshoot-api/api/v1.PersistentVolumeClaim": schema_kmodulesxyz_offshoot_api_api_v1_PersistentVolumeClaim(ref),
+ "kmodules.xyz/offshoot-api/api/v1.PersistentVolumeClaimTemplate": schema_kmodulesxyz_offshoot_api_api_v1_PersistentVolumeClaimTemplate(ref),
+ "kmodules.xyz/offshoot-api/api/v1.PodRuntimeSettings": schema_kmodulesxyz_offshoot_api_api_v1_PodRuntimeSettings(ref),
+ "kmodules.xyz/offshoot-api/api/v1.PodSpec": schema_kmodulesxyz_offshoot_api_api_v1_PodSpec(ref),
+ "kmodules.xyz/offshoot-api/api/v1.PodTemplateSpec": schema_kmodulesxyz_offshoot_api_api_v1_PodTemplateSpec(ref),
+ "kmodules.xyz/offshoot-api/api/v1.RuntimeSettings": schema_kmodulesxyz_offshoot_api_api_v1_RuntimeSettings(ref),
+ "kmodules.xyz/offshoot-api/api/v1.ServicePort": schema_kmodulesxyz_offshoot_api_api_v1_ServicePort(ref),
+ "kmodules.xyz/offshoot-api/api/v1.ServiceSpec": schema_kmodulesxyz_offshoot_api_api_v1_ServiceSpec(ref),
+ "kmodules.xyz/offshoot-api/api/v1.ServiceTemplateSpec": schema_kmodulesxyz_offshoot_api_api_v1_ServiceTemplateSpec(ref),
+ "kmodules.xyz/offshoot-api/api/v1.Volume": schema_kmodulesxyz_offshoot_api_api_v1_Volume(ref),
+ "kmodules.xyz/offshoot-api/api/v1.VolumeSource": schema_kmodulesxyz_offshoot_api_api_v1_VolumeSource(ref),
+ "kmodules.xyz/resource-metadata/apis/shared.Action": schema_kmodulesxyz_resource_metadata_apis_shared_Action(ref),
+ "kmodules.xyz/resource-metadata/apis/shared.ActionGroup": schema_kmodulesxyz_resource_metadata_apis_shared_ActionGroup(ref),
+ "kmodules.xyz/resource-metadata/apis/shared.ActionInfo": schema_kmodulesxyz_resource_metadata_apis_shared_ActionInfo(ref),
+ "kmodules.xyz/resource-metadata/apis/shared.ActionTemplate": schema_kmodulesxyz_resource_metadata_apis_shared_ActionTemplate(ref),
+ "kmodules.xyz/resource-metadata/apis/shared.ActionTemplateGroup": schema_kmodulesxyz_resource_metadata_apis_shared_ActionTemplateGroup(ref),
+ "kmodules.xyz/resource-metadata/apis/shared.BootstrapPresets": schema_kmodulesxyz_resource_metadata_apis_shared_BootstrapPresets(ref),
+ "kmodules.xyz/resource-metadata/apis/shared.Dashboard": schema_kmodulesxyz_resource_metadata_apis_shared_Dashboard(ref),
+ "kmodules.xyz/resource-metadata/apis/shared.DashboardVar": schema_kmodulesxyz_resource_metadata_apis_shared_DashboardVar(ref),
+ "kmodules.xyz/resource-metadata/apis/shared.DeploymentParameters": schema_kmodulesxyz_resource_metadata_apis_shared_DeploymentParameters(ref),
+ "kmodules.xyz/resource-metadata/apis/shared.DistroSpec": schema_kmodulesxyz_resource_metadata_apis_shared_DistroSpec(ref),
+ "kmodules.xyz/resource-metadata/apis/shared.HelmInfo": schema_kmodulesxyz_resource_metadata_apis_shared_HelmInfo(ref),
+ "kmodules.xyz/resource-metadata/apis/shared.HelmRelease": schema_kmodulesxyz_resource_metadata_apis_shared_HelmRelease(ref),
+ "kmodules.xyz/resource-metadata/apis/shared.HelmRepository": schema_kmodulesxyz_resource_metadata_apis_shared_HelmRepository(ref),
+ "kmodules.xyz/resource-metadata/apis/shared.If": schema_kmodulesxyz_resource_metadata_apis_shared_If(ref),
+ "kmodules.xyz/resource-metadata/apis/shared.ImageRegistrySpec": schema_kmodulesxyz_resource_metadata_apis_shared_ImageRegistrySpec(ref),
+ "kmodules.xyz/resource-metadata/apis/shared.RegistryInfo": schema_kmodulesxyz_resource_metadata_apis_shared_RegistryInfo(ref),
+ "kmodules.xyz/resource-metadata/apis/shared.RegistryProxies": schema_kmodulesxyz_resource_metadata_apis_shared_RegistryProxies(ref),
+ "kmodules.xyz/resource-metadata/apis/shared.ResourceLocator": schema_kmodulesxyz_resource_metadata_apis_shared_ResourceLocator(ref),
+ "kmodules.xyz/resource-metadata/apis/shared.ResourceQuery": schema_kmodulesxyz_resource_metadata_apis_shared_ResourceQuery(ref),
+ "kmodules.xyz/resource-metadata/apis/shared.SourceLocator": schema_kmodulesxyz_resource_metadata_apis_shared_SourceLocator(ref),
+ "kmodules.xyz/resource-metadata/apis/shared.UIParameterTemplate": schema_kmodulesxyz_resource_metadata_apis_shared_UIParameterTemplate(ref),
+ "kmodules.xyz/resource-metadata/apis/shared.UIParameters": schema_kmodulesxyz_resource_metadata_apis_shared_UIParameters(ref),
+ "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.ActionTemplateGroupFilter": schema_resource_metadata_apis_ui_v1alpha1_ActionTemplateGroupFilter(ref),
+ "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.ChartInfo": schema_resource_metadata_apis_ui_v1alpha1_ChartInfo(ref),
+ "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.ClusterProfile": schema_resource_metadata_apis_ui_v1alpha1_ClusterProfile(ref),
+ "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.ClusterProfileList": schema_resource_metadata_apis_ui_v1alpha1_ClusterProfileList(ref),
+ "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.ClusterProfileSpec": schema_resource_metadata_apis_ui_v1alpha1_ClusterProfileSpec(ref),
+ "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.ComponentStatus": schema_resource_metadata_apis_ui_v1alpha1_ComponentStatus(ref),
+ "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.Dashboard": schema_resource_metadata_apis_ui_v1alpha1_Dashboard(ref),
+ "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.DependentFeatureSet": schema_resource_metadata_apis_ui_v1alpha1_DependentFeatureSet(ref),
+ "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.Dependents": schema_resource_metadata_apis_ui_v1alpha1_Dependents(ref),
+ "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.Feature": schema_resource_metadata_apis_ui_v1alpha1_Feature(ref),
+ "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.FeatureList": schema_resource_metadata_apis_ui_v1alpha1_FeatureList(ref),
+ "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.FeatureSet": schema_resource_metadata_apis_ui_v1alpha1_FeatureSet(ref),
+ "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.FeatureSetList": schema_resource_metadata_apis_ui_v1alpha1_FeatureSetList(ref),
+ "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.FeatureSetSpec": schema_resource_metadata_apis_ui_v1alpha1_FeatureSetSpec(ref),
+ "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.FeatureSetStatus": schema_resource_metadata_apis_ui_v1alpha1_FeatureSetStatus(ref),
+ "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.FeatureSpec": schema_resource_metadata_apis_ui_v1alpha1_FeatureSpec(ref),
+ "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.FeatureStatus": schema_resource_metadata_apis_ui_v1alpha1_FeatureStatus(ref),
+ "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.PanelLinkRequest": schema_resource_metadata_apis_ui_v1alpha1_PanelLinkRequest(ref),
+ "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.ReadinessChecks": schema_resource_metadata_apis_ui_v1alpha1_ReadinessChecks(ref),
+ "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.Requirements": schema_resource_metadata_apis_ui_v1alpha1_Requirements(ref),
+ "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.ResourceDashboard": schema_resource_metadata_apis_ui_v1alpha1_ResourceDashboard(ref),
+ "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.ResourceDashboardList": schema_resource_metadata_apis_ui_v1alpha1_ResourceDashboardList(ref),
+ "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.ResourceDashboardSpec": schema_resource_metadata_apis_ui_v1alpha1_ResourceDashboardSpec(ref),
+ "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.ResourceEditor": schema_resource_metadata_apis_ui_v1alpha1_ResourceEditor(ref),
+ "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.ResourceEditorList": schema_resource_metadata_apis_ui_v1alpha1_ResourceEditorList(ref),
+ "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.ResourceEditorSpec": schema_resource_metadata_apis_ui_v1alpha1_ResourceEditorSpec(ref),
+ "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.ResourceOutlineFilter": schema_resource_metadata_apis_ui_v1alpha1_ResourceOutlineFilter(ref),
+ "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.ResourceOutlineFilterList": schema_resource_metadata_apis_ui_v1alpha1_ResourceOutlineFilterList(ref),
+ "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.ResourceOutlineFilterSpec": schema_resource_metadata_apis_ui_v1alpha1_ResourceOutlineFilterSpec(ref),
+ "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.ResourcePageOutlineFilter": schema_resource_metadata_apis_ui_v1alpha1_ResourcePageOutlineFilter(ref),
+ "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.SectionOutlineFilter": schema_resource_metadata_apis_ui_v1alpha1_SectionOutlineFilter(ref),
+ "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.UIParameters": schema_resource_metadata_apis_ui_v1alpha1_UIParameters(ref),
+ "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.ValuesReference": schema_resource_metadata_apis_ui_v1alpha1_ValuesReference(ref),
+ "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.VariantRef": schema_resource_metadata_apis_ui_v1alpha1_VariantRef(ref),
+ "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.WorkloadInfo": schema_resource_metadata_apis_ui_v1alpha1_WorkloadInfo(ref),
+ }
+}
+
+func schema_k8sio_api_core_v1_AWSElasticBlockStoreVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a Persistent Disk resource in AWS.\n\nAn AWS EBS disk must exist before mounting to a container. The disk must also be in the same AWS zone as the kubelet. An AWS EBS disk can only be mounted as read/write once. AWS EBS volumes support ownership management and SELinux relabeling.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "volumeID": {
+ SchemaProps: spec.SchemaProps{
+ Description: "volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fsType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "partition": {
+ SchemaProps: spec.SchemaProps{
+ Description: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty).",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"volumeID"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_Affinity(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Affinity is a group of affinity scheduling rules.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "nodeAffinity": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Describes node affinity scheduling rules for the pod.",
+ Ref: ref("k8s.io/api/core/v1.NodeAffinity"),
+ },
+ },
+ "podAffinity": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).",
+ Ref: ref("k8s.io/api/core/v1.PodAffinity"),
+ },
+ },
+ "podAntiAffinity": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).",
+ Ref: ref("k8s.io/api/core/v1.PodAntiAffinity"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.NodeAffinity", "k8s.io/api/core/v1.PodAffinity", "k8s.io/api/core/v1.PodAntiAffinity"},
+ }
+}
+
+func schema_k8sio_api_core_v1_AppArmorProfile(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "AppArmorProfile defines a pod or container's AppArmor settings.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Description: "type indicates which kind of AppArmor profile will be applied. Valid options are:\n Localhost - a profile pre-loaded on the node.\n RuntimeDefault - the container runtime's default profile.\n Unconfined - no AppArmor enforcement.\n\nPossible enum values:\n - `\"Localhost\"` indicates that a profile pre-loaded on the node should be used.\n - `\"RuntimeDefault\"` indicates that the container runtime's default AppArmor profile should be used.\n - `\"Unconfined\"` indicates that no AppArmor profile should be enforced.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Localhost", "RuntimeDefault", "Unconfined"},
+ },
+ },
+ "localhostProfile": {
+ SchemaProps: spec.SchemaProps{
+ Description: "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is \"Localhost\".",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"type"},
+ },
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-unions": []interface{}{
+ map[string]interface{}{
+ "discriminator": "type",
+ "fields-to-discriminateBy": map[string]interface{}{
+ "localhostProfile": "LocalhostProfile",
+ },
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_AttachedVolume(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "AttachedVolume describes a volume attached to a node",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of the attached volume",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "devicePath": {
+ SchemaProps: spec.SchemaProps{
+ Description: "DevicePath represents the device path where the volume should be available",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"name", "devicePath"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_AvoidPods(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "AvoidPods describes pods that should avoid this node. This is the value for a Node annotation with key scheduler.alpha.kubernetes.io/preferAvoidPods and will eventually become a field of NodeStatus.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "preferAvoidPods": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Bounded-sized list of signatures of pods that should avoid this node, sorted in timestamp order from oldest to newest. Size of the slice is unspecified.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PreferAvoidPodsEntry"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.PreferAvoidPodsEntry"},
+ }
+}
+
+func schema_k8sio_api_core_v1_AzureDiskVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "diskName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "diskName is the Name of the data disk in the blob storage",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "diskURI": {
+ SchemaProps: spec.SchemaProps{
+ Description: "diskURI is the URI of data disk in the blob storage",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "cachingMode": {
+ SchemaProps: spec.SchemaProps{
+ Description: "cachingMode is the Host Caching mode: None, Read Only, Read Write.\n\nPossible enum values:\n - `\"None\"`\n - `\"ReadOnly\"`\n - `\"ReadWrite\"`",
+ Default: v1.AzureDataDiskCachingReadWrite,
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"None", "ReadOnly", "ReadWrite"},
+ },
+ },
+ "fsType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.",
+ Default: "ext4",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.",
+ Default: false,
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared\n\nPossible enum values:\n - `\"Dedicated\"`\n - `\"Managed\"`\n - `\"Shared\"`",
+ Default: v1.AzureSharedBlobDisk,
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Dedicated", "Managed", "Shared"},
+ },
+ },
+ },
+ Required: []string{"diskName", "diskURI"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_AzureFilePersistentVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "secretName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "secretName is the name of secret that contains Azure Storage Account Name and Key",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "shareName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "shareName is the azure Share Name",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "secretNamespace": {
+ SchemaProps: spec.SchemaProps{
+ Description: "secretNamespace is the namespace of the secret that contains Azure Storage Account Name and Key default is the same as the Pod",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"secretName", "shareName"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_AzureFileVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "secretName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "secretName is the name of secret that contains Azure Storage Account Name and Key",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "shareName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "shareName is the azure share Name",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"secretName", "shareName"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_Binding(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Binding ties one object to another; for example, a pod is bound to a node by a scheduler.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "target": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The target object that you want to bind to the standard object.",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ObjectReference"),
+ },
+ },
+ },
+ Required: []string{"target"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ObjectReference", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_CSIPersistentVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents storage that is managed by an external CSI volume driver",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "driver": {
+ SchemaProps: spec.SchemaProps{
+ Description: "driver is the name of the driver to use for this volume. Required.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "volumeHandle": {
+ SchemaProps: spec.SchemaProps{
+ Description: "volumeHandle is the unique volume name returned by the CSI volume plugin’s CreateVolume to refer to the volume on all subsequent calls. Required.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly value to pass to ControllerPublishVolumeRequest. Defaults to false (read/write).",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "fsType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fsType to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\".",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "volumeAttributes": {
+ SchemaProps: spec.SchemaProps{
+ Description: "volumeAttributes of the volume to publish.",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "controllerPublishSecretRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "controllerPublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI ControllerPublishVolume and ControllerUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed.",
+ Ref: ref("k8s.io/api/core/v1.SecretReference"),
+ },
+ },
+ "nodeStageSecretRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "nodeStageSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodeStageVolume and NodeStageVolume and NodeUnstageVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed.",
+ Ref: ref("k8s.io/api/core/v1.SecretReference"),
+ },
+ },
+ "nodePublishSecretRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed.",
+ Ref: ref("k8s.io/api/core/v1.SecretReference"),
+ },
+ },
+ "controllerExpandSecretRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "controllerExpandSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI ControllerExpandVolume call. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secrets are passed.",
+ Ref: ref("k8s.io/api/core/v1.SecretReference"),
+ },
+ },
+ "nodeExpandSecretRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "nodeExpandSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodeExpandVolume call. This field is optional, may be omitted if no secret is required. If the secret object contains more than one secret, all secrets are passed.",
+ Ref: ref("k8s.io/api/core/v1.SecretReference"),
+ },
+ },
+ },
+ Required: []string{"driver", "volumeHandle"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.SecretReference"},
+ }
+}
+
+func schema_k8sio_api_core_v1_CSIVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a source location of a volume to mount, managed by an external CSI driver",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "driver": {
+ SchemaProps: spec.SchemaProps{
+ Description: "driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly specifies a read-only configuration for the volume. Defaults to false (read/write).",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "fsType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fsType to mount. Ex. \"ext4\", \"xfs\", \"ntfs\". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "volumeAttributes": {
+ SchemaProps: spec.SchemaProps{
+ Description: "volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values.",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "nodePublishSecretRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed.",
+ Ref: ref("k8s.io/api/core/v1.LocalObjectReference"),
+ },
+ },
+ },
+ Required: []string{"driver"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.LocalObjectReference"},
+ }
+}
+
+func schema_k8sio_api_core_v1_Capabilities(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Adds and removes POSIX capabilities from running containers.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "add": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Added capabilities",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "drop": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Removed capabilities",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_CephFSPersistentVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "monitors": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "path": {
+ SchemaProps: spec.SchemaProps{
+ Description: "path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "user": {
+ SchemaProps: spec.SchemaProps{
+ Description: "user is Optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "secretFile": {
+ SchemaProps: spec.SchemaProps{
+ Description: "secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "secretRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it",
+ Ref: ref("k8s.io/api/core/v1.SecretReference"),
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"monitors"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.SecretReference"},
+ }
+}
+
+func schema_k8sio_api_core_v1_CephFSVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "monitors": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "path": {
+ SchemaProps: spec.SchemaProps{
+ Description: "path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "user": {
+ SchemaProps: spec.SchemaProps{
+ Description: "user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "secretFile": {
+ SchemaProps: spec.SchemaProps{
+ Description: "secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "secretRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it",
+ Ref: ref("k8s.io/api/core/v1.LocalObjectReference"),
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"monitors"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.LocalObjectReference"},
+ }
+}
+
+func schema_k8sio_api_core_v1_CinderPersistentVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "volumeID": {
+ SchemaProps: spec.SchemaProps{
+ Description: "volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fsType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fsType Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "secretRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "secretRef is Optional: points to a secret object containing parameters used to connect to OpenStack.",
+ Ref: ref("k8s.io/api/core/v1.SecretReference"),
+ },
+ },
+ },
+ Required: []string{"volumeID"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.SecretReference"},
+ }
+}
+
+func schema_k8sio_api_core_v1_CinderVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "volumeID": {
+ SchemaProps: spec.SchemaProps{
+ Description: "volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fsType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "secretRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.",
+ Ref: ref("k8s.io/api/core/v1.LocalObjectReference"),
+ },
+ },
+ },
+ Required: []string{"volumeID"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.LocalObjectReference"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ClientIPConfig(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ClientIPConfig represents the configurations of Client IP based session affinity.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "timeoutSeconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "timeoutSeconds specifies the seconds of ClientIP type session sticky time. The value must be >0 && <=86400(for 1 day) if ServiceAffinity == \"ClientIP\". Default value is 10800(for 3 hours).",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_ClusterTrustBundleProjection(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ClusterTrustBundleProjection describes how to select a set of ClusterTrustBundle objects and project their contents into the pod filesystem.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Select a single ClusterTrustBundle by object name. Mutually-exclusive with signerName and labelSelector.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "signerName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Select all ClusterTrustBundles that match this signer name. Mutually-exclusive with name. The contents of all selected ClusterTrustBundles will be unified and deduplicated.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "labelSelector": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Select all ClusterTrustBundles that match this label selector. Only has effect if signerName is set. Mutually-exclusive with name. If unset, interpreted as \"match nothing\". If set but empty, interpreted as \"match everything\".",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"),
+ },
+ },
+ "optional": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If true, don't block pod startup if the referenced ClusterTrustBundle(s) aren't available. If using name, then the named ClusterTrustBundle is allowed not to exist. If using signerName, then the combination of signerName and labelSelector is allowed to match zero ClusterTrustBundles.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "path": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Relative path from the volume root to write the bundle.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"path"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ComponentCondition(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Information about the condition of a component.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Type of condition for a component. Valid value: \"Healthy\"",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Status of the condition for a component. Valid values for \"Healthy\": \"True\", \"False\", or \"Unknown\".",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "message": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Message about the condition for a component. For example, information about a health check.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "error": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Condition error code for a component. For example, a health check error code.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"type", "status"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_ComponentStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ComponentStatus (and ComponentStatusList) holds the cluster validation info. Deprecated: This API is deprecated in v1.19+",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "conditions": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "type",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "type",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "List of component conditions observed",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ComponentCondition"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ComponentCondition", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ComponentStatusList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Status of all the conditions for the component as a list of ComponentStatus objects. Deprecated: This API is deprecated in v1.19+",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Description: "List of ComponentStatus objects.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ComponentStatus"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"items"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ComponentStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ConfigMap(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ConfigMap holds configuration data for pods to consume.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "immutable": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Immutable, if set to true, ensures that data stored in the ConfigMap cannot be updated (only object metadata can be modified). If not set to true, the field can be modified at any time. Defaulted to nil.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "data": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Data contains the configuration data. Each key must consist of alphanumeric characters, '-', '_' or '.'. Values with non-UTF-8 byte sequences must use the BinaryData field. The keys stored in Data must not overlap with the keys in the BinaryData field, this is enforced during validation process.",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "binaryData": {
+ SchemaProps: spec.SchemaProps{
+ Description: "BinaryData contains the binary data. Each key must consist of alphanumeric characters, '-', '_' or '.'. BinaryData can contain byte sequences that are not in the UTF-8 range. The keys stored in BinaryData must not overlap with the ones in the Data field, this is enforced during validation process. Using this field will require 1.10+ apiserver and kubelet.",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "byte",
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ConfigMapEnvSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ConfigMapEnvSource selects a ConfigMap to populate the environment variables with.\n\nThe contents of the target ConfigMap's Data field will represent the key-value pairs as environment variables.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "optional": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Specify whether the ConfigMap must be defined",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_ConfigMapKeySelector(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Selects a key from a ConfigMap.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "key": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The key to select.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "optional": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Specify whether the ConfigMap or its key must be defined",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"key"},
+ },
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-map-type": "atomic",
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_ConfigMapList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ConfigMapList is a resource containing a list of ConfigMap objects.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Items is the list of ConfigMaps.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ConfigMap"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"items"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ConfigMap", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ConfigMapNodeConfigSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ConfigMapNodeConfigSource contains the information to reference a ConfigMap as a config source for the Node. This API is deprecated since 1.22: https://git.k8s.io/enhancements/keps/sig-node/281-dynamic-kubelet-configuration",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "namespace": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Namespace is the metadata.namespace of the referenced ConfigMap. This field is required in all cases.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name is the metadata.name of the referenced ConfigMap. This field is required in all cases.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "uid": {
+ SchemaProps: spec.SchemaProps{
+ Description: "UID is the metadata.UID of the referenced ConfigMap. This field is forbidden in Node.Spec, and required in Node.Status.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "resourceVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ResourceVersion is the metadata.ResourceVersion of the referenced ConfigMap. This field is forbidden in Node.Spec, and required in Node.Status.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "kubeletConfigKey": {
+ SchemaProps: spec.SchemaProps{
+ Description: "KubeletConfigKey declares which key of the referenced ConfigMap corresponds to the KubeletConfiguration structure This field is required in all cases.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"namespace", "name", "kubeletConfigKey"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_ConfigMapProjection(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Adapts a ConfigMap into a projected volume.\n\nThe contents of the target ConfigMap's Data field will be presented in a projected volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. Note that this is identical to a configmap volume source without the default mode.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "items": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.KeyToPath"),
+ },
+ },
+ },
+ },
+ },
+ "optional": {
+ SchemaProps: spec.SchemaProps{
+ Description: "optional specify whether the ConfigMap or its keys must be defined",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.KeyToPath"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ConfigMapVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Adapts a ConfigMap into a volume.\n\nThe contents of the target ConfigMap's Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. ConfigMap volumes support ownership management and SELinux relabeling.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "items": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.KeyToPath"),
+ },
+ },
+ },
+ },
+ },
+ "defaultMode": {
+ SchemaProps: spec.SchemaProps{
+ Description: "defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "optional": {
+ SchemaProps: spec.SchemaProps{
+ Description: "optional specify whether the ConfigMap or its keys must be defined",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.KeyToPath"},
+ }
+}
+
+func schema_k8sio_api_core_v1_Container(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "A single application container that you want to run within a pod.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "image": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Container image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "command": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Entrypoint array. Not executed within a shell. The container image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "args": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Arguments to the entrypoint. The container image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "workingDir": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "ports": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "containerPort",
+ "protocol",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "containerPort",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "List of ports to expose from the container. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default \"0.0.0.0\" address inside a container will be accessible from the network. Modifying this array with strategic merge patch may corrupt the data. For more information See https://github.com/kubernetes/kubernetes/issues/108255. Cannot be updated.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ContainerPort"),
+ },
+ },
+ },
+ },
+ },
+ "envFrom": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "List of sources to populate environment variables in the container. The keys defined within a source may consist of any printable ASCII characters except '='. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.EnvFromSource"),
+ },
+ },
+ },
+ },
+ },
+ "env": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "name",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "List of environment variables to set in the container. Cannot be updated.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.EnvVar"),
+ },
+ },
+ },
+ },
+ },
+ "resources": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ResourceRequirements"),
+ },
+ },
+ "resizePolicy": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Resources resize policy for the container.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ContainerResizePolicy"),
+ },
+ },
+ },
+ },
+ },
+ "restartPolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "RestartPolicy defines the restart behavior of individual containers in a pod. This overrides the pod-level restart policy. When this field is not specified, the restart behavior is defined by the Pod's restart policy and the container type. Additionally, setting the RestartPolicy as \"Always\" for the init container will have the following effect: this init container will be continually restarted on exit until all regular containers have terminated. Once all regular containers have completed, all init containers with restartPolicy \"Always\" will be shut down. This lifecycle differs from normal init containers and is often referred to as a \"sidecar\" container. Although this init container still starts in the init container sequence, it does not wait for the container to complete before proceeding to the next init container. Instead, the next init container starts immediately after this init container is started, or after any startupProbe has successfully completed.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "restartPolicyRules": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a list of rules to be checked to determine if the container should be restarted on exit. The rules are evaluated in order. Once a rule matches a container exit condition, the remaining rules are ignored. If no rule matches the container exit condition, the Container-level restart policy determines the whether the container is restarted or not. Constraints on the rules: - At most 20 rules are allowed. - Rules can have the same action. - Identical rules are not forbidden in validations. When rules are specified, container MUST set RestartPolicy explicitly even it if matches the Pod's RestartPolicy.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ContainerRestartRule"),
+ },
+ },
+ },
+ },
+ },
+ "volumeMounts": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "mountPath",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "mountPath",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Pod volumes to mount into the container's filesystem. Cannot be updated.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.VolumeMount"),
+ },
+ },
+ },
+ },
+ },
+ "volumeDevices": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "devicePath",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "devicePath",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "volumeDevices is the list of block devices to be used by the container.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.VolumeDevice"),
+ },
+ },
+ },
+ },
+ },
+ "livenessProbe": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
+ Ref: ref("k8s.io/api/core/v1.Probe"),
+ },
+ },
+ "readinessProbe": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
+ Ref: ref("k8s.io/api/core/v1.Probe"),
+ },
+ },
+ "startupProbe": {
+ SchemaProps: spec.SchemaProps{
+ Description: "StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
+ Ref: ref("k8s.io/api/core/v1.Probe"),
+ },
+ },
+ "lifecycle": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Actions that the management system should take in response to container lifecycle events. Cannot be updated.",
+ Ref: ref("k8s.io/api/core/v1.Lifecycle"),
+ },
+ },
+ "terminationMessagePath": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "terminationMessagePolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.\n\nPossible enum values:\n - `\"FallbackToLogsOnError\"` will read the most recent contents of the container logs for the container status message when the container exits with an error and the terminationMessagePath has no contents.\n - `\"File\"` is the default behavior and will set the container status message to the contents of the container's terminationMessagePath when the container exits.",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"FallbackToLogsOnError", "File"},
+ },
+ },
+ "imagePullPolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images\n\nPossible enum values:\n - `\"Always\"` means that kubelet always attempts to pull the latest image. Container will fail If the pull fails.\n - `\"IfNotPresent\"` means that kubelet pulls if the image isn't present on disk. Container will fail if the image isn't present and the pull fails.\n - `\"Never\"` means that kubelet never pulls an image, but only uses a local image. Container will fail if the image isn't present",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Always", "IfNotPresent", "Never"},
+ },
+ },
+ "securityContext": {
+ SchemaProps: spec.SchemaProps{
+ Description: "SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/",
+ Ref: ref("k8s.io/api/core/v1.SecurityContext"),
+ },
+ },
+ "stdin": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "stdinOnce": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "tty": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"name"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ContainerPort", "k8s.io/api/core/v1.ContainerResizePolicy", "k8s.io/api/core/v1.ContainerRestartRule", "k8s.io/api/core/v1.EnvFromSource", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.VolumeDevice", "k8s.io/api/core/v1.VolumeMount"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ContainerExtendedResourceRequest(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ContainerExtendedResourceRequest has the mapping of container name, extended resource name to the device request name.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "containerName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The name of the container requesting resources.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "resourceName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The name of the extended resource in that container which gets backed by DRA.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "requestName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The name of the request in the special ResourceClaim which corresponds to the extended resource.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"containerName", "resourceName", "requestName"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_ContainerImage(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Describe a container image",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "names": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Names by which this image is known. e.g. [\"kubernetes.example/hyperkube:v1.0.7\", \"cloud-vendor.registry.example/cloud-vendor/hyperkube:v1.0.7\"]",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "sizeBytes": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The size of the image in bytes.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_ContainerPort(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ContainerPort represents a network port in a single container.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "hostPort": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Number of port to expose on the host. If specified, this must be a valid port number, 0 < x < 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "containerPort": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Number of port to expose on the pod's IP address. This must be a valid port number, 0 < x < 65536.",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "protocol": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Protocol for port. Must be UDP, TCP, or SCTP. Defaults to \"TCP\".\n\nPossible enum values:\n - `\"SCTP\"` is the SCTP protocol.\n - `\"TCP\"` is the TCP protocol.\n - `\"UDP\"` is the UDP protocol.",
+ Default: "TCP",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"SCTP", "TCP", "UDP"},
+ },
+ },
+ "hostIP": {
+ SchemaProps: spec.SchemaProps{
+ Description: "What host IP to bind the external port to.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"containerPort"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_ContainerResizePolicy(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ContainerResizePolicy represents resource resize policy for the container.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "resourceName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of the resource to which this resource resize policy applies. Supported values: cpu, memory.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "restartPolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Restart policy to apply when specified resource is resized. If not specified, it defaults to NotRequired.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"resourceName", "restartPolicy"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_ContainerRestartRule(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ContainerRestartRule describes how a container exit is handled.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "action": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Specifies the action taken on a container exit if the requirements are satisfied. The only possible value is \"Restart\" to restart the container.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "exitCodes": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents the exit codes to check on container exits.",
+ Ref: ref("k8s.io/api/core/v1.ContainerRestartRuleOnExitCodes"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ContainerRestartRuleOnExitCodes"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ContainerRestartRuleOnExitCodes(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ContainerRestartRuleOnExitCodes describes the condition for handling an exited container based on its exit codes.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "operator": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents the relationship between the container exit code(s) and the specified values. Possible values are: - In: the requirement is satisfied if the container exit code is in the\n set of specified values.\n- NotIn: the requirement is satisfied if the container exit code is\n not in the set of specified values.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "values": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "set",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Specifies the set of values to check for container exit codes. At most 255 elements are allowed.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_ContainerState(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ContainerState holds a possible state of container. Only one of its members may be specified. If none of them is specified, the default one is ContainerStateWaiting.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "waiting": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Details about a waiting container",
+ Ref: ref("k8s.io/api/core/v1.ContainerStateWaiting"),
+ },
+ },
+ "running": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Details about a running container",
+ Ref: ref("k8s.io/api/core/v1.ContainerStateRunning"),
+ },
+ },
+ "terminated": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Details about a terminated container",
+ Ref: ref("k8s.io/api/core/v1.ContainerStateTerminated"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ContainerStateRunning", "k8s.io/api/core/v1.ContainerStateTerminated", "k8s.io/api/core/v1.ContainerStateWaiting"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ContainerStateRunning(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ContainerStateRunning is a running state of a container.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "startedAt": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Time at which the container was last (re-)started",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.Time"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ContainerStateTerminated(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ContainerStateTerminated is a terminated state of a container.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "exitCode": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Exit status from the last termination of the container",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "signal": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Signal from the last termination of the container",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "reason": {
+ SchemaProps: spec.SchemaProps{
+ Description: "(brief) reason from the last termination of the container",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "message": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Message regarding the last termination of the container",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "startedAt": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Time at which previous execution of the container started",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ "finishedAt": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Time at which the container last terminated",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ "containerID": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Container's ID in the format '://'",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"exitCode"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.Time"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ContainerStateWaiting(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ContainerStateWaiting is a waiting state of a container.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "reason": {
+ SchemaProps: spec.SchemaProps{
+ Description: "(brief) reason the container is not yet running.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "message": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Message regarding why the container is not yet running.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_ContainerStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ContainerStatus contains details for the current status of this container.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name is a DNS_LABEL representing the unique name of the container. Each container in a pod must have a unique name across all container types. Cannot be updated.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "state": {
+ SchemaProps: spec.SchemaProps{
+ Description: "State holds details about the container's current condition.",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ContainerState"),
+ },
+ },
+ "lastState": {
+ SchemaProps: spec.SchemaProps{
+ Description: "LastTerminationState holds the last termination state of the container to help debug container crashes and restarts. This field is not populated if the container is still running and RestartCount is 0.",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ContainerState"),
+ },
+ },
+ "ready": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Ready specifies whether the container is currently passing its readiness check. The value will change as readiness probes keep executing. If no readiness probes are specified, this field defaults to true once the container is fully started (see Started field).\n\nThe value is typically used to determine whether a container is ready to accept traffic.",
+ Default: false,
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "restartCount": {
+ SchemaProps: spec.SchemaProps{
+ Description: "RestartCount holds the number of times the container has been restarted. Kubelet makes an effort to always increment the value, but there are cases when the state may be lost due to node restarts and then the value may be reset to 0. The value is never negative.",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "image": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Image is the name of container image that the container is running. The container image may not match the image used in the PodSpec, as it may have been resolved by the runtime. More info: https://kubernetes.io/docs/concepts/containers/images.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "imageID": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ImageID is the image ID of the container's image. The image ID may not match the image ID of the image used in the PodSpec, as it may have been resolved by the runtime.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "containerID": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ContainerID is the ID of the container in the format '://'. Where type is a container runtime identifier, returned from Version call of CRI API (for example \"containerd\").",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "started": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Started indicates whether the container has finished its postStart lifecycle hook and passed its startup probe. Initialized as false, becomes true after startupProbe is considered successful. Resets to false when the container is restarted, or if kubelet loses state temporarily. In both cases, startup probes will run again. Is always true when no startupProbe is defined and container is running and has passed the postStart lifecycle hook. The null value must be treated the same as false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "allocatedResources": {
+ SchemaProps: spec.SchemaProps{
+ Description: "AllocatedResources represents the compute resources allocated for this container by the node. Kubelet sets this value to Container.Resources.Requests upon successful pod admission and after successfully admitting desired pod resize.",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
+ },
+ },
+ },
+ },
+ },
+ "resources": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Resources represents the compute resource requests and limits that have been successfully enacted on the running container after it has been started or has been successfully resized.",
+ Ref: ref("k8s.io/api/core/v1.ResourceRequirements"),
+ },
+ },
+ "volumeMounts": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "mountPath",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "mountPath",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Status of volume mounts.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.VolumeMountStatus"),
+ },
+ },
+ },
+ },
+ },
+ "user": {
+ SchemaProps: spec.SchemaProps{
+ Description: "User represents user identity information initially attached to the first process of the container",
+ Ref: ref("k8s.io/api/core/v1.ContainerUser"),
+ },
+ },
+ "allocatedResourcesStatus": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "name",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "AllocatedResourcesStatus represents the status of various resources allocated for this Pod.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ResourceStatus"),
+ },
+ },
+ },
+ },
+ },
+ "stopSignal": {
+ SchemaProps: spec.SchemaProps{
+ Description: "StopSignal reports the effective stop signal for this container\n\nPossible enum values:\n - `\"SIGABRT\"`\n - `\"SIGALRM\"`\n - `\"SIGBUS\"`\n - `\"SIGCHLD\"`\n - `\"SIGCLD\"`\n - `\"SIGCONT\"`\n - `\"SIGFPE\"`\n - `\"SIGHUP\"`\n - `\"SIGILL\"`\n - `\"SIGINT\"`\n - `\"SIGIO\"`\n - `\"SIGIOT\"`\n - `\"SIGKILL\"`\n - `\"SIGPIPE\"`\n - `\"SIGPOLL\"`\n - `\"SIGPROF\"`\n - `\"SIGPWR\"`\n - `\"SIGQUIT\"`\n - `\"SIGRTMAX\"`\n - `\"SIGRTMAX-1\"`\n - `\"SIGRTMAX-10\"`\n - `\"SIGRTMAX-11\"`\n - `\"SIGRTMAX-12\"`\n - `\"SIGRTMAX-13\"`\n - `\"SIGRTMAX-14\"`\n - `\"SIGRTMAX-2\"`\n - `\"SIGRTMAX-3\"`\n - `\"SIGRTMAX-4\"`\n - `\"SIGRTMAX-5\"`\n - `\"SIGRTMAX-6\"`\n - `\"SIGRTMAX-7\"`\n - `\"SIGRTMAX-8\"`\n - `\"SIGRTMAX-9\"`\n - `\"SIGRTMIN\"`\n - `\"SIGRTMIN+1\"`\n - `\"SIGRTMIN+10\"`\n - `\"SIGRTMIN+11\"`\n - `\"SIGRTMIN+12\"`\n - `\"SIGRTMIN+13\"`\n - `\"SIGRTMIN+14\"`\n - `\"SIGRTMIN+15\"`\n - `\"SIGRTMIN+2\"`\n - `\"SIGRTMIN+3\"`\n - `\"SIGRTMIN+4\"`\n - `\"SIGRTMIN+5\"`\n - `\"SIGRTMIN+6\"`\n - `\"SIGRTMIN+7\"`\n - `\"SIGRTMIN+8\"`\n - `\"SIGRTMIN+9\"`\n - `\"SIGSEGV\"`\n - `\"SIGSTKFLT\"`\n - `\"SIGSTOP\"`\n - `\"SIGSYS\"`\n - `\"SIGTERM\"`\n - `\"SIGTRAP\"`\n - `\"SIGTSTP\"`\n - `\"SIGTTIN\"`\n - `\"SIGTTOU\"`\n - `\"SIGURG\"`\n - `\"SIGUSR1\"`\n - `\"SIGUSR2\"`\n - `\"SIGVTALRM\"`\n - `\"SIGWINCH\"`\n - `\"SIGXCPU\"`\n - `\"SIGXFSZ\"`",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"SIGABRT", "SIGALRM", "SIGBUS", "SIGCHLD", "SIGCLD", "SIGCONT", "SIGFPE", "SIGHUP", "SIGILL", "SIGINT", "SIGIO", "SIGIOT", "SIGKILL", "SIGPIPE", "SIGPOLL", "SIGPROF", "SIGPWR", "SIGQUIT", "SIGRTMAX", "SIGRTMAX-1", "SIGRTMAX-10", "SIGRTMAX-11", "SIGRTMAX-12", "SIGRTMAX-13", "SIGRTMAX-14", "SIGRTMAX-2", "SIGRTMAX-3", "SIGRTMAX-4", "SIGRTMAX-5", "SIGRTMAX-6", "SIGRTMAX-7", "SIGRTMAX-8", "SIGRTMAX-9", "SIGRTMIN", "SIGRTMIN+1", "SIGRTMIN+10", "SIGRTMIN+11", "SIGRTMIN+12", "SIGRTMIN+13", "SIGRTMIN+14", "SIGRTMIN+15", "SIGRTMIN+2", "SIGRTMIN+3", "SIGRTMIN+4", "SIGRTMIN+5", "SIGRTMIN+6", "SIGRTMIN+7", "SIGRTMIN+8", "SIGRTMIN+9", "SIGSEGV", "SIGSTKFLT", "SIGSTOP", "SIGSYS", "SIGTERM", "SIGTRAP", "SIGTSTP", "SIGTTIN", "SIGTTOU", "SIGURG", "SIGUSR1", "SIGUSR2", "SIGVTALRM", "SIGWINCH", "SIGXCPU", "SIGXFSZ"},
+ },
+ },
+ },
+ Required: []string{"name", "ready", "restartCount", "image", "imageID"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ContainerState", "k8s.io/api/core/v1.ContainerUser", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.ResourceStatus", "k8s.io/api/core/v1.VolumeMountStatus", "k8s.io/apimachinery/pkg/api/resource.Quantity"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ContainerUser(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ContainerUser represents user identity information",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "linux": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Linux holds user identity information initially attached to the first process of the containers in Linux. Note that the actual running identity can be changed if the process has enough privilege to do so.",
+ Ref: ref("k8s.io/api/core/v1.LinuxContainerUser"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.LinuxContainerUser"},
+ }
+}
+
+func schema_k8sio_api_core_v1_DaemonEndpoint(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "DaemonEndpoint contains information about a single Daemon endpoint.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "Port": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Port number of the given endpoint.",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ },
+ Required: []string{"Port"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_DownwardAPIProjection(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents downward API info for projecting into a projected volume. Note that this is identical to a downwardAPI volume source without the default mode.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "items": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Items is a list of DownwardAPIVolume file",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.DownwardAPIVolumeFile"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.DownwardAPIVolumeFile"},
+ }
+}
+
+func schema_k8sio_api_core_v1_DownwardAPIVolumeFile(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "DownwardAPIVolumeFile represents information to create the file containing the pod field",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "path": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fieldRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported.",
+ Ref: ref("k8s.io/api/core/v1.ObjectFieldSelector"),
+ },
+ },
+ "resourceFieldRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.",
+ Ref: ref("k8s.io/api/core/v1.ResourceFieldSelector"),
+ },
+ },
+ "mode": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ },
+ Required: []string{"path"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ObjectFieldSelector", "k8s.io/api/core/v1.ResourceFieldSelector"},
+ }
+}
+
+func schema_k8sio_api_core_v1_DownwardAPIVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "DownwardAPIVolumeSource represents a volume containing downward API info. Downward API volumes support ownership management and SELinux relabeling.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "items": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Items is a list of downward API volume file",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.DownwardAPIVolumeFile"),
+ },
+ },
+ },
+ },
+ },
+ "defaultMode": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.DownwardAPIVolumeFile"},
+ }
+}
+
+func schema_k8sio_api_core_v1_EmptyDirVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "medium": {
+ SchemaProps: spec.SchemaProps{
+ Description: "medium represents what type of storage medium should back this directory. The default is \"\" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "sizeLimit": {
+ SchemaProps: spec.SchemaProps{
+ Description: "sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir",
+ Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/api/resource.Quantity"},
+ }
+}
+
+func schema_k8sio_api_core_v1_EndpointAddress(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "EndpointAddress is a tuple that describes single IP address. Deprecated: This API is deprecated in v1.33+.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "ip": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The IP of this endpoint. May not be loopback (127.0.0.0/8 or ::1), link-local (169.254.0.0/16 or fe80::/10), or link-local multicast (224.0.0.0/24 or ff02::/16).",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "hostname": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The Hostname of this endpoint",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "nodeName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "targetRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Reference to object providing the endpoint.",
+ Ref: ref("k8s.io/api/core/v1.ObjectReference"),
+ },
+ },
+ },
+ Required: []string{"ip"},
+ },
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-map-type": "atomic",
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ObjectReference"},
+ }
+}
+
+func schema_k8sio_api_core_v1_EndpointPort(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "EndpointPort is a tuple that describes a single port. Deprecated: This API is deprecated in v1.33+.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The name of this port. This must match the 'name' field in the corresponding ServicePort. Must be a DNS_LABEL. Optional only if one port is defined.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "port": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The port number of the endpoint.",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "protocol": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The IP protocol for this port. Must be UDP, TCP, or SCTP. Default is TCP.\n\nPossible enum values:\n - `\"SCTP\"` is the SCTP protocol.\n - `\"TCP\"` is the TCP protocol.\n - `\"UDP\"` is the UDP protocol.",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"SCTP", "TCP", "UDP"},
+ },
+ },
+ "appProtocol": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The application protocol for this port. This is used as a hint for implementations to offer richer behavior for protocols that they understand. This field follows standard Kubernetes label syntax. Valid values are either:\n\n* Un-prefixed protocol names - reserved for IANA standard service names (as per RFC-6335 and https://www.iana.org/assignments/service-names).\n\n* Kubernetes-defined prefixed names:\n * 'kubernetes.io/h2c' - HTTP/2 prior knowledge over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior-\n * 'kubernetes.io/ws' - WebSocket over cleartext as described in https://www.rfc-editor.org/rfc/rfc6455\n * 'kubernetes.io/wss' - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455\n\n* Other protocols should use implementation-defined prefixed names such as mycompany.com/my-custom-protocol.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"port"},
+ },
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-map-type": "atomic",
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_EndpointSubset(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "EndpointSubset is a group of addresses with a common set of ports. The expanded set of endpoints is the Cartesian product of Addresses x Ports. For example, given:\n\n\t{\n\t Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}],\n\t Ports: [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}]\n\t}\n\nThe resulting set of endpoints can be viewed as:\n\n\ta: [ 10.10.1.1:8675, 10.10.2.2:8675 ],\n\tb: [ 10.10.1.1:309, 10.10.2.2:309 ]\n\nDeprecated: This API is deprecated in v1.33+.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "addresses": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "IP addresses which offer the related ports that are marked as ready. These endpoints should be considered safe for load balancers and clients to utilize.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.EndpointAddress"),
+ },
+ },
+ },
+ },
+ },
+ "notReadyAddresses": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "IP addresses which offer the related ports but are not currently marked as ready because they have not yet finished starting, have recently failed a readiness check, or have recently failed a liveness check.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.EndpointAddress"),
+ },
+ },
+ },
+ },
+ },
+ "ports": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Port numbers available on the related IP addresses.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.EndpointPort"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.EndpointAddress", "k8s.io/api/core/v1.EndpointPort"},
+ }
+}
+
+func schema_k8sio_api_core_v1_Endpoints(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Endpoints is a collection of endpoints that implement the actual service. Example:\n\n\t Name: \"mysvc\",\n\t Subsets: [\n\t {\n\t Addresses: [{\"ip\": \"10.10.1.1\"}, {\"ip\": \"10.10.2.2\"}],\n\t Ports: [{\"name\": \"a\", \"port\": 8675}, {\"name\": \"b\", \"port\": 309}]\n\t },\n\t {\n\t Addresses: [{\"ip\": \"10.10.3.3\"}],\n\t Ports: [{\"name\": \"a\", \"port\": 93}, {\"name\": \"b\", \"port\": 76}]\n\t },\n\t]\n\nEndpoints is a legacy API and does not contain information about all Service features. Use discoveryv1.EndpointSlice for complete information about Service endpoints.\n\nDeprecated: This API is deprecated in v1.33+. Use discoveryv1.EndpointSlice.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "subsets": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "The set of all endpoints is the union of all subsets. Addresses are placed into subsets according to the IPs they share. A single address with multiple ports, some of which are ready and some of which are not (because they come from different containers) will result in the address being displayed in different subsets for the different ports. No address will appear in both Addresses and NotReadyAddresses in the same subset. Sets of addresses and ports that comprise a service.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.EndpointSubset"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.EndpointSubset", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_EndpointsList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "EndpointsList is a list of endpoints. Deprecated: This API is deprecated in v1.33+.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Description: "List of endpoints.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.Endpoints"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"items"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.Endpoints", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_EnvFromSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "EnvFromSource represents the source of a set of ConfigMaps or Secrets",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "prefix": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Optional text to prepend to the name of each environment variable. May consist of any printable ASCII characters except '='.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "configMapRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The ConfigMap to select from",
+ Ref: ref("k8s.io/api/core/v1.ConfigMapEnvSource"),
+ },
+ },
+ "secretRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The Secret to select from",
+ Ref: ref("k8s.io/api/core/v1.SecretEnvSource"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ConfigMapEnvSource", "k8s.io/api/core/v1.SecretEnvSource"},
+ }
+}
+
+func schema_k8sio_api_core_v1_EnvVar(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "EnvVar represents an environment variable present in a Container.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of the environment variable. May consist of any printable ASCII characters except '='.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "value": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to \"\".",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "valueFrom": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Source for the environment variable's value. Cannot be used if value is not empty.",
+ Ref: ref("k8s.io/api/core/v1.EnvVarSource"),
+ },
+ },
+ },
+ Required: []string{"name"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.EnvVarSource"},
+ }
+}
+
+func schema_k8sio_api_core_v1_EnvVarSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "EnvVarSource represents a source for the value of an EnvVar.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "fieldRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.",
+ Ref: ref("k8s.io/api/core/v1.ObjectFieldSelector"),
+ },
+ },
+ "resourceFieldRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.",
+ Ref: ref("k8s.io/api/core/v1.ResourceFieldSelector"),
+ },
+ },
+ "configMapKeyRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Selects a key of a ConfigMap.",
+ Ref: ref("k8s.io/api/core/v1.ConfigMapKeySelector"),
+ },
+ },
+ "secretKeyRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Selects a key of a secret in the pod's namespace",
+ Ref: ref("k8s.io/api/core/v1.SecretKeySelector"),
+ },
+ },
+ "fileKeyRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "FileKeyRef selects a key of the env file. Requires the EnvFiles feature gate to be enabled.",
+ Ref: ref("k8s.io/api/core/v1.FileKeySelector"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ConfigMapKeySelector", "k8s.io/api/core/v1.FileKeySelector", "k8s.io/api/core/v1.ObjectFieldSelector", "k8s.io/api/core/v1.ResourceFieldSelector", "k8s.io/api/core/v1.SecretKeySelector"},
+ }
+}
+
+func schema_k8sio_api_core_v1_EphemeralContainer(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "An EphemeralContainer is a temporary container that you may add to an existing Pod for user-initiated activities such as debugging. Ephemeral containers have no resource or scheduling guarantees, and they will not be restarted when they exit or when a Pod is removed or restarted. The kubelet may evict a Pod if an ephemeral container causes the Pod to exceed its resource allocation.\n\nTo add an ephemeral container, use the ephemeralcontainers subresource of an existing Pod. Ephemeral containers may not be removed or restarted.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of the ephemeral container specified as a DNS_LABEL. This name must be unique among all containers, init containers and ephemeral containers.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "image": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Container image name. More info: https://kubernetes.io/docs/concepts/containers/images",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "command": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Entrypoint array. Not executed within a shell. The image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "args": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Arguments to the entrypoint. The image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "workingDir": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "ports": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "containerPort",
+ "protocol",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "containerPort",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Ports are not allowed for ephemeral containers.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ContainerPort"),
+ },
+ },
+ },
+ },
+ },
+ "envFrom": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "List of sources to populate environment variables in the container. The keys defined within a source may consist of any printable ASCII characters except '='. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.EnvFromSource"),
+ },
+ },
+ },
+ },
+ },
+ "env": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "name",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "List of environment variables to set in the container. Cannot be updated.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.EnvVar"),
+ },
+ },
+ },
+ },
+ },
+ "resources": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod.",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ResourceRequirements"),
+ },
+ },
+ "resizePolicy": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Resources resize policy for the container.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ContainerResizePolicy"),
+ },
+ },
+ },
+ },
+ },
+ "restartPolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Restart policy for the container to manage the restart behavior of each container within a pod. You cannot set this field on ephemeral containers.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "restartPolicyRules": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a list of rules to be checked to determine if the container should be restarted on exit. You cannot set this field on ephemeral containers.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ContainerRestartRule"),
+ },
+ },
+ },
+ },
+ },
+ "volumeMounts": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "mountPath",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "mountPath",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Pod volumes to mount into the container's filesystem. Subpath mounts are not allowed for ephemeral containers. Cannot be updated.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.VolumeMount"),
+ },
+ },
+ },
+ },
+ },
+ "volumeDevices": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "devicePath",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "devicePath",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "volumeDevices is the list of block devices to be used by the container.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.VolumeDevice"),
+ },
+ },
+ },
+ },
+ },
+ "livenessProbe": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Probes are not allowed for ephemeral containers.",
+ Ref: ref("k8s.io/api/core/v1.Probe"),
+ },
+ },
+ "readinessProbe": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Probes are not allowed for ephemeral containers.",
+ Ref: ref("k8s.io/api/core/v1.Probe"),
+ },
+ },
+ "startupProbe": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Probes are not allowed for ephemeral containers.",
+ Ref: ref("k8s.io/api/core/v1.Probe"),
+ },
+ },
+ "lifecycle": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Lifecycle is not allowed for ephemeral containers.",
+ Ref: ref("k8s.io/api/core/v1.Lifecycle"),
+ },
+ },
+ "terminationMessagePath": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "terminationMessagePolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.\n\nPossible enum values:\n - `\"FallbackToLogsOnError\"` will read the most recent contents of the container logs for the container status message when the container exits with an error and the terminationMessagePath has no contents.\n - `\"File\"` is the default behavior and will set the container status message to the contents of the container's terminationMessagePath when the container exits.",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"FallbackToLogsOnError", "File"},
+ },
+ },
+ "imagePullPolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images\n\nPossible enum values:\n - `\"Always\"` means that kubelet always attempts to pull the latest image. Container will fail If the pull fails.\n - `\"IfNotPresent\"` means that kubelet pulls if the image isn't present on disk. Container will fail if the image isn't present and the pull fails.\n - `\"Never\"` means that kubelet never pulls an image, but only uses a local image. Container will fail if the image isn't present",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Always", "IfNotPresent", "Never"},
+ },
+ },
+ "securityContext": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Optional: SecurityContext defines the security options the ephemeral container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.",
+ Ref: ref("k8s.io/api/core/v1.SecurityContext"),
+ },
+ },
+ "stdin": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "stdinOnce": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "tty": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "targetContainerName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If set, the name of the container from PodSpec that this ephemeral container targets. The ephemeral container will be run in the namespaces (IPC, PID, etc) of this container. If not set then the ephemeral container uses the namespaces configured in the Pod spec.\n\nThe container runtime must implement support for this feature. If the runtime does not support namespace targeting then the result of setting this field is undefined.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"name"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ContainerPort", "k8s.io/api/core/v1.ContainerResizePolicy", "k8s.io/api/core/v1.ContainerRestartRule", "k8s.io/api/core/v1.EnvFromSource", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.VolumeDevice", "k8s.io/api/core/v1.VolumeMount"},
+ }
+}
+
+func schema_k8sio_api_core_v1_EphemeralContainerCommon(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "EphemeralContainerCommon is a copy of all fields in Container to be inlined in EphemeralContainer. This separate type allows easy conversion from EphemeralContainer to Container and allows separate documentation for the fields of EphemeralContainer. When a new field is added to Container it must be added here as well.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of the ephemeral container specified as a DNS_LABEL. This name must be unique among all containers, init containers and ephemeral containers.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "image": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Container image name. More info: https://kubernetes.io/docs/concepts/containers/images",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "command": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Entrypoint array. Not executed within a shell. The image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "args": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Arguments to the entrypoint. The image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "workingDir": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Container's working directory. If not specified, the container runtime's default will be used, which might be configured in the container image. Cannot be updated.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "ports": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "containerPort",
+ "protocol",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "containerPort",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Ports are not allowed for ephemeral containers.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ContainerPort"),
+ },
+ },
+ },
+ },
+ },
+ "envFrom": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "List of sources to populate environment variables in the container. The keys defined within a source may consist of any printable ASCII characters except '='. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.EnvFromSource"),
+ },
+ },
+ },
+ },
+ },
+ "env": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "name",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "List of environment variables to set in the container. Cannot be updated.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.EnvVar"),
+ },
+ },
+ },
+ },
+ },
+ "resources": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod.",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ResourceRequirements"),
+ },
+ },
+ "resizePolicy": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Resources resize policy for the container.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ContainerResizePolicy"),
+ },
+ },
+ },
+ },
+ },
+ "restartPolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Restart policy for the container to manage the restart behavior of each container within a pod. You cannot set this field on ephemeral containers.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "restartPolicyRules": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a list of rules to be checked to determine if the container should be restarted on exit. You cannot set this field on ephemeral containers.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ContainerRestartRule"),
+ },
+ },
+ },
+ },
+ },
+ "volumeMounts": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "mountPath",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "mountPath",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Pod volumes to mount into the container's filesystem. Subpath mounts are not allowed for ephemeral containers. Cannot be updated.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.VolumeMount"),
+ },
+ },
+ },
+ },
+ },
+ "volumeDevices": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "devicePath",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "devicePath",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "volumeDevices is the list of block devices to be used by the container.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.VolumeDevice"),
+ },
+ },
+ },
+ },
+ },
+ "livenessProbe": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Probes are not allowed for ephemeral containers.",
+ Ref: ref("k8s.io/api/core/v1.Probe"),
+ },
+ },
+ "readinessProbe": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Probes are not allowed for ephemeral containers.",
+ Ref: ref("k8s.io/api/core/v1.Probe"),
+ },
+ },
+ "startupProbe": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Probes are not allowed for ephemeral containers.",
+ Ref: ref("k8s.io/api/core/v1.Probe"),
+ },
+ },
+ "lifecycle": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Lifecycle is not allowed for ephemeral containers.",
+ Ref: ref("k8s.io/api/core/v1.Lifecycle"),
+ },
+ },
+ "terminationMessagePath": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Optional: Path at which the file to which the container's termination message will be written is mounted into the container's filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "terminationMessagePolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.\n\nPossible enum values:\n - `\"FallbackToLogsOnError\"` will read the most recent contents of the container logs for the container status message when the container exits with an error and the terminationMessagePath has no contents.\n - `\"File\"` is the default behavior and will set the container status message to the contents of the container's terminationMessagePath when the container exits.",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"FallbackToLogsOnError", "File"},
+ },
+ },
+ "imagePullPolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images\n\nPossible enum values:\n - `\"Always\"` means that kubelet always attempts to pull the latest image. Container will fail If the pull fails.\n - `\"IfNotPresent\"` means that kubelet pulls if the image isn't present on disk. Container will fail if the image isn't present and the pull fails.\n - `\"Never\"` means that kubelet never pulls an image, but only uses a local image. Container will fail if the image isn't present",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Always", "IfNotPresent", "Never"},
+ },
+ },
+ "securityContext": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Optional: SecurityContext defines the security options the ephemeral container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.",
+ Ref: ref("k8s.io/api/core/v1.SecurityContext"),
+ },
+ },
+ "stdin": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "stdinOnce": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "tty": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. Default is false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"name"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ContainerPort", "k8s.io/api/core/v1.ContainerResizePolicy", "k8s.io/api/core/v1.ContainerRestartRule", "k8s.io/api/core/v1.EnvFromSource", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.VolumeDevice", "k8s.io/api/core/v1.VolumeMount"},
+ }
+}
+
+func schema_k8sio_api_core_v1_EphemeralVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents an ephemeral volume that is handled by a normal storage driver.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "volumeClaimTemplate": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be `-` where `` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long).\n\nAn existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster.\n\nThis field is read-only and no changes will be made by Kubernetes to the PVC after it has been created.\n\nRequired, must not be nil.",
+ Ref: ref("k8s.io/api/core/v1.PersistentVolumeClaimTemplate"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.PersistentVolumeClaimTemplate"},
+ }
+}
+
+func schema_k8sio_api_core_v1_Event(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Event is a report of an event somewhere in the cluster. Events have a limited retention time and triggers and messages may evolve with time. Event consumers should not rely on the timing of an event with a given Reason reflecting a consistent underlying trigger, or the continued existence of events with that Reason. Events should be treated as informative, best-effort, supplemental data.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "involvedObject": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The object that this event is about.",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ObjectReference"),
+ },
+ },
+ "reason": {
+ SchemaProps: spec.SchemaProps{
+ Description: "This should be a short, machine understandable string that gives the reason for the transition into the object's current status.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "message": {
+ SchemaProps: spec.SchemaProps{
+ Description: "A human-readable description of the status of this operation.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "source": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The component reporting this event. Should be a short machine understandable string.",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.EventSource"),
+ },
+ },
+ "firstTimestamp": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ "lastTimestamp": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The time at which the most recent occurrence of this event was recorded.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ "count": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The number of times this event has occurred.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Type of this event (Normal, Warning), new types could be added in the future",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "eventTime": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Time when this Event was first observed.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.MicroTime"),
+ },
+ },
+ "series": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Data about the Event series this event represents or nil if it's a singleton Event.",
+ Ref: ref("k8s.io/api/core/v1.EventSeries"),
+ },
+ },
+ "action": {
+ SchemaProps: spec.SchemaProps{
+ Description: "What action was taken/failed regarding to the Regarding object.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "related": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Optional secondary object for more complex actions.",
+ Ref: ref("k8s.io/api/core/v1.ObjectReference"),
+ },
+ },
+ "reportingComponent": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "reportingInstance": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ID of the controller instance, e.g. `kubelet-xyzf`.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"metadata", "involvedObject"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.EventSeries", "k8s.io/api/core/v1.EventSource", "k8s.io/api/core/v1.ObjectReference", "k8s.io/apimachinery/pkg/apis/meta/v1.MicroTime", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"},
+ }
+}
+
+func schema_k8sio_api_core_v1_EventList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "EventList is a list of events.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Description: "List of events",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.Event"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"items"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.Event", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_EventSeries(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "EventSeries contain information on series of events, i.e. thing that was/is happening continuously for some time.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "count": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Number of occurrences in this series up to the last heartbeat time",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "lastObservedTime": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Time of the last occurrence observed",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.MicroTime"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.MicroTime"},
+ }
+}
+
+func schema_k8sio_api_core_v1_EventSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "EventSource contains information for an event.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "component": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Component from which the event is generated.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "host": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Node name on which the event is generated.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_ExecAction(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ExecAction describes a \"run in container\" action.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "command": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_FCVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted as read/write once. Fibre Channel volumes support ownership management and SELinux relabeling.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "targetWWNs": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "targetWWNs is Optional: FC target worldwide names (WWNs)",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "lun": {
+ SchemaProps: spec.SchemaProps{
+ Description: "lun is Optional: FC target lun number",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "fsType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "wwids": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_FileKeySelector(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "FileKeySelector selects a key of the env file.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "volumeName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The name of the volume mount containing the env file.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "path": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The path within the volume from which to select the file. Must be relative and may not contain the '..' path or start with '..'.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "key": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The key within the env file. An invalid key will prevent the pod from starting. The keys defined within a source may consist of any printable ASCII characters except '='. During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "optional": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Specify whether the file or its key must be defined. If the file or key does not exist, then the env var is not published. If optional is set to true and the specified key does not exist, the environment variable will not be set in the Pod's containers.\n\nIf optional is set to false and the specified key does not exist, an error will be returned during Pod creation.",
+ Default: false,
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"volumeName", "path", "key"},
+ },
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-map-type": "atomic",
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_FlexPersistentVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "FlexPersistentVolumeSource represents a generic persistent volume resource that is provisioned/attached using an exec based plugin.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "driver": {
+ SchemaProps: spec.SchemaProps{
+ Description: "driver is the name of the driver to use for this volume.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fsType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fsType is the Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "secretRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "secretRef is Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.",
+ Ref: ref("k8s.io/api/core/v1.SecretReference"),
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "options": {
+ SchemaProps: spec.SchemaProps{
+ Description: "options is Optional: this field holds extra command options if any.",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"driver"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.SecretReference"},
+ }
+}
+
+func schema_k8sio_api_core_v1_FlexVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "driver": {
+ SchemaProps: spec.SchemaProps{
+ Description: "driver is the name of the driver to use for this volume.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fsType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "secretRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.",
+ Ref: ref("k8s.io/api/core/v1.LocalObjectReference"),
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "options": {
+ SchemaProps: spec.SchemaProps{
+ Description: "options is Optional: this field holds extra command options if any.",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"driver"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.LocalObjectReference"},
+ }
+}
+
+func schema_k8sio_api_core_v1_FlockerVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a Flocker volume mounted by the Flocker agent. One and only one of datasetName and datasetUUID should be set. Flocker volumes do not support ownership management or SELinux relabeling.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "datasetName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "datasetUUID": {
+ SchemaProps: spec.SchemaProps{
+ Description: "datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_GCEPersistentDiskVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a Persistent Disk resource in Google Compute Engine.\n\nA GCE PD must exist before mounting to a container. The disk must also be in the same GCE project and zone as the kubelet. A GCE PD can only be mounted as read/write once or read-only many times. GCE PDs support ownership management and SELinux relabeling.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "pdName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fsType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "partition": {
+ SchemaProps: spec.SchemaProps{
+ Description: "partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as \"1\". Similarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"pdName"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_GRPCAction(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "GRPCAction specifies an action involving a GRPC service.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "port": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Port number of the gRPC service. Number must be in the range 1 to 65535.",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "service": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Service is the name of the service to place in the gRPC HealthCheckRequest (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).\n\nIf this is not specified, the default behavior is defined by gRPC.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"port"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_GitRepoVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling.\n\nDEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "repository": {
+ SchemaProps: spec.SchemaProps{
+ Description: "repository is the URL",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "revision": {
+ SchemaProps: spec.SchemaProps{
+ Description: "revision is the commit hash for the specified revision.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "directory": {
+ SchemaProps: spec.SchemaProps{
+ Description: "directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"repository"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_GlusterfsPersistentVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "endpoints": {
+ SchemaProps: spec.SchemaProps{
+ Description: "endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "path": {
+ SchemaProps: spec.SchemaProps{
+ Description: "path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "endpointsNamespace": {
+ SchemaProps: spec.SchemaProps{
+ Description: "endpointsNamespace is the namespace that contains Glusterfs endpoint. If this field is empty, the EndpointNamespace defaults to the same namespace as the bound PVC. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"endpoints", "path"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_GlusterfsVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "endpoints": {
+ SchemaProps: spec.SchemaProps{
+ Description: "endpoints is the endpoint name that details Glusterfs topology.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "path": {
+ SchemaProps: spec.SchemaProps{
+ Description: "path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"endpoints", "path"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_HTTPGetAction(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "HTTPGetAction describes an action based on HTTP Get requests.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "path": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Path to access on the HTTP server.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "port": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.",
+ Ref: ref("k8s.io/apimachinery/pkg/util/intstr.IntOrString"),
+ },
+ },
+ "host": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Host name to connect to, defaults to the pod IP. You probably want to set \"Host\" in httpHeaders instead.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "scheme": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Scheme to use for connecting to the host. Defaults to HTTP.\n\nPossible enum values:\n - `\"HTTP\"` means that the scheme used will be http://\n - `\"HTTPS\"` means that the scheme used will be https://",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"HTTP", "HTTPS"},
+ },
+ },
+ "httpHeaders": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Custom headers to set in the request. HTTP allows repeated headers.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.HTTPHeader"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"port"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.HTTPHeader", "k8s.io/apimachinery/pkg/util/intstr.IntOrString"},
+ }
+}
+
+func schema_k8sio_api_core_v1_HTTPHeader(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "HTTPHeader describes a custom header to be used in HTTP probes",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The header field name. This will be canonicalized upon output, so case-variant names will be understood as the same header.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "value": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The header field value",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"name", "value"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_HostAlias(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod's hosts file.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "ip": {
+ SchemaProps: spec.SchemaProps{
+ Description: "IP address of the host file entry.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "hostnames": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Hostnames for the above IP address.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"ip"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_HostIP(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "HostIP represents a single IP address allocated to the host.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "ip": {
+ SchemaProps: spec.SchemaProps{
+ Description: "IP is the IP address assigned to the host",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"ip"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_HostPathVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a host path mapped into a pod. Host path volumes do not support ownership management or SELinux relabeling.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "path": {
+ SchemaProps: spec.SchemaProps{
+ Description: "path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Description: "type for HostPath Volume Defaults to \"\" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\n\nPossible enum values:\n - `\"\"` For backwards compatible, leave it empty if unset\n - `\"BlockDevice\"` A block device must exist at the given path\n - `\"CharDevice\"` A character device must exist at the given path\n - `\"Directory\"` A directory must exist at the given path\n - `\"DirectoryOrCreate\"` If nothing exists at the given path, an empty directory will be created there as needed with file mode 0755, having the same group and ownership with Kubelet.\n - `\"File\"` A file must exist at the given path\n - `\"FileOrCreate\"` If nothing exists at the given path, an empty file will be created there as needed with file mode 0644, having the same group and ownership with Kubelet.\n - `\"Socket\"` A UNIX socket must exist at the given path",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"", "BlockDevice", "CharDevice", "Directory", "DirectoryOrCreate", "File", "FileOrCreate", "Socket"},
+ },
+ },
+ },
+ Required: []string{"path"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_ISCSIPersistentVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ISCSIPersistentVolumeSource represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "targetPortal": {
+ SchemaProps: spec.SchemaProps{
+ Description: "targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "iqn": {
+ SchemaProps: spec.SchemaProps{
+ Description: "iqn is Target iSCSI Qualified Name.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "lun": {
+ SchemaProps: spec.SchemaProps{
+ Description: "lun is iSCSI Target Lun number.",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "iscsiInterface": {
+ SchemaProps: spec.SchemaProps{
+ Description: "iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).",
+ Default: "default",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fsType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "portals": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "portals is the iSCSI Target Portal List. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "chapAuthDiscovery": {
+ SchemaProps: spec.SchemaProps{
+ Description: "chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "chapAuthSession": {
+ SchemaProps: spec.SchemaProps{
+ Description: "chapAuthSession defines whether support iSCSI Session CHAP authentication",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "secretRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "secretRef is the CHAP Secret for iSCSI target and initiator authentication",
+ Ref: ref("k8s.io/api/core/v1.SecretReference"),
+ },
+ },
+ "initiatorName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"targetPortal", "iqn", "lun"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.SecretReference"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ISCSIVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "targetPortal": {
+ SchemaProps: spec.SchemaProps{
+ Description: "targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "iqn": {
+ SchemaProps: spec.SchemaProps{
+ Description: "iqn is the target iSCSI Qualified Name.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "lun": {
+ SchemaProps: spec.SchemaProps{
+ Description: "lun represents iSCSI Target Lun number.",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "iscsiInterface": {
+ SchemaProps: spec.SchemaProps{
+ Description: "iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp).",
+ Default: "default",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fsType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "portals": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "chapAuthDiscovery": {
+ SchemaProps: spec.SchemaProps{
+ Description: "chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "chapAuthSession": {
+ SchemaProps: spec.SchemaProps{
+ Description: "chapAuthSession defines whether support iSCSI Session CHAP authentication",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "secretRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "secretRef is the CHAP Secret for iSCSI target and initiator authentication",
+ Ref: ref("k8s.io/api/core/v1.LocalObjectReference"),
+ },
+ },
+ "initiatorName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface : will be created for the connection.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"targetPortal", "iqn", "lun"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.LocalObjectReference"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ImageVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ImageVolumeSource represents a image volume resource.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "reference": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Required: Image or artifact reference to be used. Behaves in the same way as pod.spec.containers[*].image. Pull secrets will be assembled in the same way as for the container image by looking up node credentials, SA image pull secrets, and pod spec image pull secrets. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "pullPolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Policy for pulling OCI objects. Possible values are: Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.\n\nPossible enum values:\n - `\"Always\"` means that kubelet always attempts to pull the latest image. Container will fail If the pull fails.\n - `\"IfNotPresent\"` means that kubelet pulls if the image isn't present on disk. Container will fail if the image isn't present and the pull fails.\n - `\"Never\"` means that kubelet never pulls an image, but only uses a local image. Container will fail if the image isn't present",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Always", "IfNotPresent", "Never"},
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_KeyToPath(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Maps a string key to a path within a volume.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "key": {
+ SchemaProps: spec.SchemaProps{
+ Description: "key is the key to project.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "path": {
+ SchemaProps: spec.SchemaProps{
+ Description: "path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "mode": {
+ SchemaProps: spec.SchemaProps{
+ Description: "mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ },
+ Required: []string{"key", "path"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_Lifecycle(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Lifecycle describes actions that the management system should take in response to container lifecycle events. For the PostStart and PreStop lifecycle handlers, management of the container blocks until the action is complete, unless the container process fails, in which case the handler is aborted.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "postStart": {
+ SchemaProps: spec.SchemaProps{
+ Description: "PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks",
+ Ref: ref("k8s.io/api/core/v1.LifecycleHandler"),
+ },
+ },
+ "preStop": {
+ SchemaProps: spec.SchemaProps{
+ Description: "PreStop is called immediately before a container is terminated due to an API request or management event such as liveness/startup probe failure, preemption, resource contention, etc. The handler is not called if the container crashes or exits. The Pod's termination grace period countdown begins before the PreStop hook is executed. Regardless of the outcome of the handler, the container will eventually terminate within the Pod's termination grace period (unless delayed by finalizers). Other management of the container blocks until the hook completes or until the termination grace period is reached. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks",
+ Ref: ref("k8s.io/api/core/v1.LifecycleHandler"),
+ },
+ },
+ "stopSignal": {
+ SchemaProps: spec.SchemaProps{
+ Description: "StopSignal defines which signal will be sent to a container when it is being stopped. If not specified, the default is defined by the container runtime in use. StopSignal can only be set for Pods with a non-empty .spec.os.name\n\nPossible enum values:\n - `\"SIGABRT\"`\n - `\"SIGALRM\"`\n - `\"SIGBUS\"`\n - `\"SIGCHLD\"`\n - `\"SIGCLD\"`\n - `\"SIGCONT\"`\n - `\"SIGFPE\"`\n - `\"SIGHUP\"`\n - `\"SIGILL\"`\n - `\"SIGINT\"`\n - `\"SIGIO\"`\n - `\"SIGIOT\"`\n - `\"SIGKILL\"`\n - `\"SIGPIPE\"`\n - `\"SIGPOLL\"`\n - `\"SIGPROF\"`\n - `\"SIGPWR\"`\n - `\"SIGQUIT\"`\n - `\"SIGRTMAX\"`\n - `\"SIGRTMAX-1\"`\n - `\"SIGRTMAX-10\"`\n - `\"SIGRTMAX-11\"`\n - `\"SIGRTMAX-12\"`\n - `\"SIGRTMAX-13\"`\n - `\"SIGRTMAX-14\"`\n - `\"SIGRTMAX-2\"`\n - `\"SIGRTMAX-3\"`\n - `\"SIGRTMAX-4\"`\n - `\"SIGRTMAX-5\"`\n - `\"SIGRTMAX-6\"`\n - `\"SIGRTMAX-7\"`\n - `\"SIGRTMAX-8\"`\n - `\"SIGRTMAX-9\"`\n - `\"SIGRTMIN\"`\n - `\"SIGRTMIN+1\"`\n - `\"SIGRTMIN+10\"`\n - `\"SIGRTMIN+11\"`\n - `\"SIGRTMIN+12\"`\n - `\"SIGRTMIN+13\"`\n - `\"SIGRTMIN+14\"`\n - `\"SIGRTMIN+15\"`\n - `\"SIGRTMIN+2\"`\n - `\"SIGRTMIN+3\"`\n - `\"SIGRTMIN+4\"`\n - `\"SIGRTMIN+5\"`\n - `\"SIGRTMIN+6\"`\n - `\"SIGRTMIN+7\"`\n - `\"SIGRTMIN+8\"`\n - `\"SIGRTMIN+9\"`\n - `\"SIGSEGV\"`\n - `\"SIGSTKFLT\"`\n - `\"SIGSTOP\"`\n - `\"SIGSYS\"`\n - `\"SIGTERM\"`\n - `\"SIGTRAP\"`\n - `\"SIGTSTP\"`\n - `\"SIGTTIN\"`\n - `\"SIGTTOU\"`\n - `\"SIGURG\"`\n - `\"SIGUSR1\"`\n - `\"SIGUSR2\"`\n - `\"SIGVTALRM\"`\n - `\"SIGWINCH\"`\n - `\"SIGXCPU\"`\n - `\"SIGXFSZ\"`",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"SIGABRT", "SIGALRM", "SIGBUS", "SIGCHLD", "SIGCLD", "SIGCONT", "SIGFPE", "SIGHUP", "SIGILL", "SIGINT", "SIGIO", "SIGIOT", "SIGKILL", "SIGPIPE", "SIGPOLL", "SIGPROF", "SIGPWR", "SIGQUIT", "SIGRTMAX", "SIGRTMAX-1", "SIGRTMAX-10", "SIGRTMAX-11", "SIGRTMAX-12", "SIGRTMAX-13", "SIGRTMAX-14", "SIGRTMAX-2", "SIGRTMAX-3", "SIGRTMAX-4", "SIGRTMAX-5", "SIGRTMAX-6", "SIGRTMAX-7", "SIGRTMAX-8", "SIGRTMAX-9", "SIGRTMIN", "SIGRTMIN+1", "SIGRTMIN+10", "SIGRTMIN+11", "SIGRTMIN+12", "SIGRTMIN+13", "SIGRTMIN+14", "SIGRTMIN+15", "SIGRTMIN+2", "SIGRTMIN+3", "SIGRTMIN+4", "SIGRTMIN+5", "SIGRTMIN+6", "SIGRTMIN+7", "SIGRTMIN+8", "SIGRTMIN+9", "SIGSEGV", "SIGSTKFLT", "SIGSTOP", "SIGSYS", "SIGTERM", "SIGTRAP", "SIGTSTP", "SIGTTIN", "SIGTTOU", "SIGURG", "SIGUSR1", "SIGUSR2", "SIGVTALRM", "SIGWINCH", "SIGXCPU", "SIGXFSZ"},
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.LifecycleHandler"},
+ }
+}
+
+func schema_k8sio_api_core_v1_LifecycleHandler(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "LifecycleHandler defines a specific action that should be taken in a lifecycle hook. One and only one of the fields, except TCPSocket must be specified.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "exec": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Exec specifies a command to execute in the container.",
+ Ref: ref("k8s.io/api/core/v1.ExecAction"),
+ },
+ },
+ "httpGet": {
+ SchemaProps: spec.SchemaProps{
+ Description: "HTTPGet specifies an HTTP GET request to perform.",
+ Ref: ref("k8s.io/api/core/v1.HTTPGetAction"),
+ },
+ },
+ "tcpSocket": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept for backward compatibility. There is no validation of this field and lifecycle hooks will fail at runtime when it is specified.",
+ Ref: ref("k8s.io/api/core/v1.TCPSocketAction"),
+ },
+ },
+ "sleep": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Sleep represents a duration that the container should sleep.",
+ Ref: ref("k8s.io/api/core/v1.SleepAction"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ExecAction", "k8s.io/api/core/v1.HTTPGetAction", "k8s.io/api/core/v1.SleepAction", "k8s.io/api/core/v1.TCPSocketAction"},
+ }
+}
+
+func schema_k8sio_api_core_v1_LimitRange(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "LimitRange sets resource usage limits for each kind of resource in a Namespace.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "spec": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Spec defines the limits enforced. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.LimitRangeSpec"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.LimitRangeSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_LimitRangeItem(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "LimitRangeItem defines a min/max usage limit for any resource that matches on kind.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Type of resource that this limit applies to.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "max": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Max usage constraints on this kind by resource name.",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
+ },
+ },
+ },
+ },
+ },
+ "min": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Min usage constraints on this kind by resource name.",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
+ },
+ },
+ },
+ },
+ },
+ "default": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Default resource requirement limit value by resource name if resource limit is omitted.",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
+ },
+ },
+ },
+ },
+ },
+ "defaultRequest": {
+ SchemaProps: spec.SchemaProps{
+ Description: "DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
+ },
+ },
+ },
+ },
+ },
+ "maxLimitRequestRatio": {
+ SchemaProps: spec.SchemaProps{
+ Description: "MaxLimitRequestRatio if specified, the named resource must have a request and limit that are both non-zero where limit divided by request is less than or equal to the enumerated value; this represents the max burst for the named resource.",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"type"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/api/resource.Quantity"},
+ }
+}
+
+func schema_k8sio_api_core_v1_LimitRangeList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "LimitRangeList is a list of LimitRange items.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Items is a list of LimitRange objects. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.LimitRange"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"items"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.LimitRange", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_LimitRangeSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "LimitRangeSpec defines a min/max usage limit for resources that match on kind.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "limits": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Limits is the list of LimitRangeItem objects that are enforced.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.LimitRangeItem"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"limits"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.LimitRangeItem"},
+ }
+}
+
+func schema_k8sio_api_core_v1_LinuxContainerUser(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "LinuxContainerUser represents user identity information in Linux containers",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "uid": {
+ SchemaProps: spec.SchemaProps{
+ Description: "UID is the primary uid initially attached to the first process in the container",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "gid": {
+ SchemaProps: spec.SchemaProps{
+ Description: "GID is the primary gid initially attached to the first process in the container",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "supplementalGroups": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "SupplementalGroups are the supplemental groups initially attached to the first process in the container",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"uid", "gid"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_List(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "List holds a list of objects, which may not be known by the server.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Description: "List of objects",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("k8s.io/apimachinery/pkg/runtime.RawExtension"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"items"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta", "k8s.io/apimachinery/pkg/runtime.RawExtension"},
+ }
+}
+
+func schema_k8sio_api_core_v1_LoadBalancerIngress(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "LoadBalancerIngress represents the status of a load-balancer ingress point: traffic intended for the service should be sent to an ingress point.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "ip": {
+ SchemaProps: spec.SchemaProps{
+ Description: "IP is set for load-balancer ingress points that are IP based (typically GCE or OpenStack load-balancers)",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "hostname": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Hostname is set for load-balancer ingress points that are DNS based (typically AWS load-balancers)",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "ipMode": {
+ SchemaProps: spec.SchemaProps{
+ Description: "IPMode specifies how the load-balancer IP behaves, and may only be specified when the ip field is specified. Setting this to \"VIP\" indicates that traffic is delivered to the node with the destination set to the load-balancer's IP and port. Setting this to \"Proxy\" indicates that traffic is delivered to the node or pod with the destination set to the node's IP and node port or the pod's IP and port. Service implementations may use this information to adjust traffic routing.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "ports": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Ports is a list of records of service ports If used, every port defined in the service should have an entry in it",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PortStatus"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.PortStatus"},
+ }
+}
+
+func schema_k8sio_api_core_v1_LoadBalancerStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "LoadBalancerStatus represents the status of a load-balancer.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "ingress": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Ingress is a list containing ingress points for the load-balancer. Traffic intended for the service should be sent to these ingress points.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.LoadBalancerIngress"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.LoadBalancerIngress"},
+ }
+}
+
+func schema_k8sio_api_core_v1_LocalObjectReference(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-map-type": "atomic",
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_LocalVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Local represents directly-attached storage with node affinity",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "path": {
+ SchemaProps: spec.SchemaProps{
+ Description: "path of the full path to the volume on the node. It can be either a directory or block device (disk, partition, ...).",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fsType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fsType is the filesystem type to mount. It applies only when the Path is a block device. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". The default value is to auto-select a filesystem if unspecified.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"path"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_ModifyVolumeStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ModifyVolumeStatus represents the status object of ControllerModifyVolume operation",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "targetVolumeAttributesClassName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "targetVolumeAttributesClassName is the name of the VolumeAttributesClass the PVC currently being reconciled",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "status is the status of the ControllerModifyVolume operation. It can be in any of following states:\n - Pending\n Pending indicates that the PersistentVolumeClaim cannot be modified due to unmet requirements, such as\n the specified VolumeAttributesClass not existing.\n - InProgress\n InProgress indicates that the volume is being modified.\n - Infeasible\n Infeasible indicates that the request has been rejected as invalid by the CSI driver. To\n\t resolve the error, a valid VolumeAttributesClass needs to be specified.\nNote: New statuses can be added in the future. Consumers should check for unknown statuses and fail appropriately.\n\nPossible enum values:\n - `\"InProgress\"` InProgress indicates that the volume is being modified\n - `\"Infeasible\"` Infeasible indicates that the request has been rejected as invalid by the CSI driver. To resolve the error, a valid VolumeAttributesClass needs to be specified\n - `\"Pending\"` Pending indicates that the PersistentVolumeClaim cannot be modified due to unmet requirements, such as the specified VolumeAttributesClass not existing",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"InProgress", "Infeasible", "Pending"},
+ },
+ },
+ },
+ Required: []string{"status"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_NFSVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "server": {
+ SchemaProps: spec.SchemaProps{
+ Description: "server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "path": {
+ SchemaProps: spec.SchemaProps{
+ Description: "path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"server", "path"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_Namespace(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Namespace provides a scope for Names. Use of multiple namespaces is optional.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "spec": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Spec defines the behavior of the Namespace. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.NamespaceSpec"),
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Status describes the current status of a Namespace. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.NamespaceStatus"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.NamespaceSpec", "k8s.io/api/core/v1.NamespaceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_NamespaceCondition(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "NamespaceCondition contains details about state of namespace.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Type of namespace controller condition.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Status of the condition, one of True, False, Unknown.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "lastTransitionTime": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Last time the condition transitioned from one status to another.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ "reason": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Unique, one-word, CamelCase reason for the condition's last transition.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "message": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Human-readable message indicating details about last transition.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"type", "status"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.Time"},
+ }
+}
+
+func schema_k8sio_api_core_v1_NamespaceList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "NamespaceList is a list of Namespaces.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Items is the list of Namespace objects in the list. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.Namespace"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"items"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.Namespace", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_NamespaceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "NamespaceSpec describes the attributes on a Namespace.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "finalizers": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Finalizers is an opaque list of values that must be empty to permanently remove object from storage. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_NamespaceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "NamespaceStatus is information about the current status of a Namespace.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "phase": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Phase is the current lifecycle phase of the namespace. More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/\n\nPossible enum values:\n - `\"Active\"` means the namespace is available for use in the system\n - `\"Terminating\"` means the namespace is undergoing graceful termination",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Active", "Terminating"},
+ },
+ },
+ "conditions": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "type",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "type",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents the latest available observations of a namespace's current state.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.NamespaceCondition"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.NamespaceCondition"},
+ }
+}
+
+func schema_k8sio_api_core_v1_Node(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Node is a worker node in Kubernetes. Each node will have a unique identifier in the cache (i.e. in etcd).",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "spec": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Spec defines the behavior of a node. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.NodeSpec"),
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Most recently observed status of the node. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.NodeStatus"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.NodeSpec", "k8s.io/api/core/v1.NodeStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_NodeAddress(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "NodeAddress contains information for the node's address.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Node address type, one of Hostname, ExternalIP or InternalIP.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "address": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The node address.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"type", "address"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_NodeAffinity(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Node affinity is a group of node affinity scheduling rules.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "requiredDuringSchedulingIgnoredDuringExecution": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.",
+ Ref: ref("k8s.io/api/core/v1.NodeSelector"),
+ },
+ },
+ "preferredDuringSchedulingIgnoredDuringExecution": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PreferredSchedulingTerm"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.NodeSelector", "k8s.io/api/core/v1.PreferredSchedulingTerm"},
+ }
+}
+
+func schema_k8sio_api_core_v1_NodeCondition(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "NodeCondition contains condition information for a node.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Type of node condition.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Status of the condition, one of True, False, Unknown.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "lastHeartbeatTime": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Last time we got an update on a given condition.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ "lastTransitionTime": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Last time the condition transit from one status to another.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ "reason": {
+ SchemaProps: spec.SchemaProps{
+ Description: "(brief) reason for the condition's last transition.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "message": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Human readable message indicating details about last transition.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"type", "status"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.Time"},
+ }
+}
+
+func schema_k8sio_api_core_v1_NodeConfigSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "NodeConfigSource specifies a source of node configuration. Exactly one subfield (excluding metadata) must be non-nil. This API is deprecated since 1.22",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "configMap": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ConfigMap is a reference to a Node's ConfigMap",
+ Ref: ref("k8s.io/api/core/v1.ConfigMapNodeConfigSource"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ConfigMapNodeConfigSource"},
+ }
+}
+
+func schema_k8sio_api_core_v1_NodeConfigStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "NodeConfigStatus describes the status of the config assigned by Node.Spec.ConfigSource.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "assigned": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Assigned reports the checkpointed config the node will try to use. When Node.Spec.ConfigSource is updated, the node checkpoints the associated config payload to local disk, along with a record indicating intended config. The node refers to this record to choose its config checkpoint, and reports this record in Assigned. Assigned only updates in the status after the record has been checkpointed to disk. When the Kubelet is restarted, it tries to make the Assigned config the Active config by loading and validating the checkpointed payload identified by Assigned.",
+ Ref: ref("k8s.io/api/core/v1.NodeConfigSource"),
+ },
+ },
+ "active": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Active reports the checkpointed config the node is actively using. Active will represent either the current version of the Assigned config, or the current LastKnownGood config, depending on whether attempting to use the Assigned config results in an error.",
+ Ref: ref("k8s.io/api/core/v1.NodeConfigSource"),
+ },
+ },
+ "lastKnownGood": {
+ SchemaProps: spec.SchemaProps{
+ Description: "LastKnownGood reports the checkpointed config the node will fall back to when it encounters an error attempting to use the Assigned config. The Assigned config becomes the LastKnownGood config when the node determines that the Assigned config is stable and correct. This is currently implemented as a 10-minute soak period starting when the local record of Assigned config is updated. If the Assigned config is Active at the end of this period, it becomes the LastKnownGood. Note that if Spec.ConfigSource is reset to nil (use local defaults), the LastKnownGood is also immediately reset to nil, because the local default config is always assumed good. You should not make assumptions about the node's method of determining config stability and correctness, as this may change or become configurable in the future.",
+ Ref: ref("k8s.io/api/core/v1.NodeConfigSource"),
+ },
+ },
+ "error": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Error describes any problems reconciling the Spec.ConfigSource to the Active config. Errors may occur, for example, attempting to checkpoint Spec.ConfigSource to the local Assigned record, attempting to checkpoint the payload associated with Spec.ConfigSource, attempting to load or validate the Assigned config, etc. Errors may occur at different points while syncing config. Earlier errors (e.g. download or checkpointing errors) will not result in a rollback to LastKnownGood, and may resolve across Kubelet retries. Later errors (e.g. loading or validating a checkpointed config) will result in a rollback to LastKnownGood. In the latter case, it is usually possible to resolve the error by fixing the config assigned in Spec.ConfigSource. You can find additional information for debugging by searching the error message in the Kubelet log. Error is a human-readable description of the error state; machines can check whether or not Error is empty, but should not rely on the stability of the Error text across Kubelet versions.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.NodeConfigSource"},
+ }
+}
+
+func schema_k8sio_api_core_v1_NodeDaemonEndpoints(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "NodeDaemonEndpoints lists ports opened by daemons running on the Node.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kubeletEndpoint": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Endpoint on which Kubelet is listening.",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.DaemonEndpoint"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.DaemonEndpoint"},
+ }
+}
+
+func schema_k8sio_api_core_v1_NodeFeatures(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "NodeFeatures describes the set of features implemented by the CRI implementation. The features contained in the NodeFeatures should depend only on the cri implementation independent of runtime handlers.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "supplementalGroupsPolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "SupplementalGroupsPolicy is set to true if the runtime supports SupplementalGroupsPolicy and ContainerUser.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_NodeList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "NodeList is the whole list of all Nodes which have been registered with master.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Description: "List of nodes",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.Node"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"items"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.Node", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_NodeProxyOptions(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "NodeProxyOptions is the query options to a Node's proxy call.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "path": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Path is the URL path to use for the current proxy request to node.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_NodeRuntimeHandler(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "NodeRuntimeHandler is a set of runtime handler information.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Runtime handler name. Empty for the default runtime handler.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "features": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Supported features.",
+ Ref: ref("k8s.io/api/core/v1.NodeRuntimeHandlerFeatures"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.NodeRuntimeHandlerFeatures"},
+ }
+}
+
+func schema_k8sio_api_core_v1_NodeRuntimeHandlerFeatures(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "NodeRuntimeHandlerFeatures is a set of features implemented by the runtime handler.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "recursiveReadOnlyMounts": {
+ SchemaProps: spec.SchemaProps{
+ Description: "RecursiveReadOnlyMounts is set to true if the runtime handler supports RecursiveReadOnlyMounts.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "userNamespaces": {
+ SchemaProps: spec.SchemaProps{
+ Description: "UserNamespaces is set to true if the runtime handler supports UserNamespaces, including for volumes.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_NodeSelector(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "nodeSelectorTerms": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Required. A list of node selector terms. The terms are ORed.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.NodeSelectorTerm"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"nodeSelectorTerms"},
+ },
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-map-type": "atomic",
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.NodeSelectorTerm"},
+ }
+}
+
+func schema_k8sio_api_core_v1_NodeSelectorRequirement(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "key": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The label key that the selector applies to.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "operator": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.\n\nPossible enum values:\n - `\"DoesNotExist\"`\n - `\"Exists\"`\n - `\"Gt\"`\n - `\"In\"`\n - `\"Lt\"`\n - `\"NotIn\"`",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"DoesNotExist", "Exists", "Gt", "In", "Lt", "NotIn"},
+ },
+ },
+ "values": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"key", "operator"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_NodeSelectorTerm(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "matchExpressions": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "A list of node selector requirements by node's labels.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.NodeSelectorRequirement"),
+ },
+ },
+ },
+ },
+ },
+ "matchFields": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "A list of node selector requirements by node's fields.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.NodeSelectorRequirement"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-map-type": "atomic",
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.NodeSelectorRequirement"},
+ }
+}
+
+func schema_k8sio_api_core_v1_NodeSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "NodeSpec describes the attributes that a node is created with.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "podCIDR": {
+ SchemaProps: spec.SchemaProps{
+ Description: "PodCIDR represents the pod IP range assigned to the node.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "podCIDRs": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "set",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "podCIDRs represents the IP ranges assigned to the node for usage by Pods on that node. If this field is specified, the 0th entry must match the podCIDR field. It may contain at most 1 value for each of IPv4 and IPv6.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "providerID": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ID of the node assigned by the cloud provider in the format: ://",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "unschedulable": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Unschedulable controls node schedulability of new pods. By default, node is schedulable. More info: https://kubernetes.io/docs/concepts/nodes/node/#manual-node-administration",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "taints": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "If specified, the node's taints.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.Taint"),
+ },
+ },
+ },
+ },
+ },
+ "configSource": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Deprecated: Previously used to specify the source of the node's configuration for the DynamicKubeletConfig feature. This feature is removed.",
+ Ref: ref("k8s.io/api/core/v1.NodeConfigSource"),
+ },
+ },
+ "externalID": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Deprecated. Not all kubelets will set this field. Remove field after 1.13. see: https://issues.k8s.io/61966",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.NodeConfigSource", "k8s.io/api/core/v1.Taint"},
+ }
+}
+
+func schema_k8sio_api_core_v1_NodeStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "NodeStatus is information about the current status of a node.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "capacity": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Capacity represents the total resources of a node. More info: https://kubernetes.io/docs/reference/node/node-status/#capacity",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
+ },
+ },
+ },
+ },
+ },
+ "allocatable": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Allocatable represents the resources of a node that are available for scheduling. Defaults to Capacity.",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
+ },
+ },
+ },
+ },
+ },
+ "phase": {
+ SchemaProps: spec.SchemaProps{
+ Description: "NodePhase is the recently observed lifecycle phase of the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#phase The field is never populated, and now is deprecated.\n\nPossible enum values:\n - `\"Pending\"` means the node has been created/added by the system, but not configured.\n - `\"Running\"` means the node has been configured and has Kubernetes components running.\n - `\"Terminated\"` means the node has been removed from the cluster.",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Pending", "Running", "Terminated"},
+ },
+ },
+ "conditions": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "type",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "type",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Conditions is an array of current observed node conditions. More info: https://kubernetes.io/docs/reference/node/node-status/#condition",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.NodeCondition"),
+ },
+ },
+ },
+ },
+ },
+ "addresses": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "type",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "type",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "List of addresses reachable to the node. Queried from cloud provider, if available. More info: https://kubernetes.io/docs/reference/node/node-status/#addresses Note: This field is declared as mergeable, but the merge key is not sufficiently unique, which can cause data corruption when it is merged. Callers should instead use a full-replacement patch. See https://pr.k8s.io/79391 for an example. Consumers should assume that addresses can change during the lifetime of a Node. However, there are some exceptions where this may not be possible, such as Pods that inherit a Node's address in its own status or consumers of the downward API (status.hostIP).",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.NodeAddress"),
+ },
+ },
+ },
+ },
+ },
+ "daemonEndpoints": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Endpoints of daemons running on the Node.",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.NodeDaemonEndpoints"),
+ },
+ },
+ "nodeInfo": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Set of ids/uuids to uniquely identify the node. More info: https://kubernetes.io/docs/reference/node/node-status/#info",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.NodeSystemInfo"),
+ },
+ },
+ "images": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "List of container images on this node",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ContainerImage"),
+ },
+ },
+ },
+ },
+ },
+ "volumesInUse": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "List of attachable volumes in use (mounted) by the node.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "volumesAttached": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "List of volumes that are attached to the node.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.AttachedVolume"),
+ },
+ },
+ },
+ },
+ },
+ "config": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Status of the config assigned to the node via the dynamic Kubelet config feature.",
+ Ref: ref("k8s.io/api/core/v1.NodeConfigStatus"),
+ },
+ },
+ "runtimeHandlers": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "The available runtime handlers.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.NodeRuntimeHandler"),
+ },
+ },
+ },
+ },
+ },
+ "features": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Features describes the set of features implemented by the CRI implementation.",
+ Ref: ref("k8s.io/api/core/v1.NodeFeatures"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.AttachedVolume", "k8s.io/api/core/v1.ContainerImage", "k8s.io/api/core/v1.NodeAddress", "k8s.io/api/core/v1.NodeCondition", "k8s.io/api/core/v1.NodeConfigStatus", "k8s.io/api/core/v1.NodeDaemonEndpoints", "k8s.io/api/core/v1.NodeFeatures", "k8s.io/api/core/v1.NodeRuntimeHandler", "k8s.io/api/core/v1.NodeSystemInfo", "k8s.io/apimachinery/pkg/api/resource.Quantity"},
+ }
+}
+
+func schema_k8sio_api_core_v1_NodeSwapStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "NodeSwapStatus represents swap memory information.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "capacity": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Total amount of swap memory in bytes.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_NodeSystemInfo(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "NodeSystemInfo is a set of ids/uuids to uniquely identify the node.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "machineID": {
+ SchemaProps: spec.SchemaProps{
+ Description: "MachineID reported by the node. For unique machine identification in the cluster this field is preferred. Learn more from man(5) machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "systemUUID": {
+ SchemaProps: spec.SchemaProps{
+ Description: "SystemUUID reported by the node. For unique machine identification MachineID is preferred. This field is specific to Red Hat hosts https://access.redhat.com/documentation/en-us/red_hat_subscription_management/1/html/rhsm/uuid",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "bootID": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Boot ID reported by the node.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "kernelVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kernel Version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64).",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "osImage": {
+ SchemaProps: spec.SchemaProps{
+ Description: "OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy)).",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "containerRuntimeVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ContainerRuntime Version reported by the node through runtime remote API (e.g. containerd://1.4.2).",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "kubeletVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kubelet Version reported by the node.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "kubeProxyVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Deprecated: KubeProxy Version reported by the node.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "operatingSystem": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The Operating System reported by the node",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "architecture": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The Architecture reported by the node",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "swap": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Swap Info reported by the node.",
+ Ref: ref("k8s.io/api/core/v1.NodeSwapStatus"),
+ },
+ },
+ },
+ Required: []string{"machineID", "systemUUID", "bootID", "kernelVersion", "osImage", "containerRuntimeVersion", "kubeletVersion", "kubeProxyVersion", "operatingSystem", "architecture"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.NodeSwapStatus"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ObjectFieldSelector(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ObjectFieldSelector selects an APIVersioned field of an object.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Version of the schema the FieldPath is written in terms of, defaults to \"v1\".",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fieldPath": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Path of the field to select in the specified API version.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"fieldPath"},
+ },
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-map-type": "atomic",
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_ObjectReference(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ObjectReference contains enough information to let you inspect or modify the referred object.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "namespace": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "uid": {
+ SchemaProps: spec.SchemaProps{
+ Description: "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "API version of the referent.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "resourceVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fieldPath": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: \"spec.containers{name}\" (where \"name\" refers to the name of the container that triggered the event) or if no container name is specified \"spec.containers[2]\" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-map-type": "atomic",
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_PersistentVolume(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PersistentVolume (PV) is a storage resource provisioned by an administrator. It is analogous to a node. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "spec": {
+ SchemaProps: spec.SchemaProps{
+ Description: "spec defines a specification of a persistent volume owned by the cluster. Provisioned by an administrator. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PersistentVolumeSpec"),
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "status represents the current information/status for the persistent volume. Populated by the system. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PersistentVolumeStatus"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.PersistentVolumeSpec", "k8s.io/api/core/v1.PersistentVolumeStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PersistentVolumeClaim(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PersistentVolumeClaim is a user's request for and claim to a persistent volume",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "spec": {
+ SchemaProps: spec.SchemaProps{
+ Description: "spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PersistentVolumeClaimSpec"),
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "status represents the current information/status of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PersistentVolumeClaimStatus"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.PersistentVolumeClaimSpec", "k8s.io/api/core/v1.PersistentVolumeClaimStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PersistentVolumeClaimCondition(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PersistentVolumeClaimCondition contains details about state of pvc",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Type is the type of the condition. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=set%20to%20%27ResizeStarted%27.-,PersistentVolumeClaimCondition,-contains%20details%20about",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/#:~:text=state%20of%20pvc-,conditions.status,-(string)%2C%20required",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "lastProbeTime": {
+ SchemaProps: spec.SchemaProps{
+ Description: "lastProbeTime is the time we probed the condition.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ "lastTransitionTime": {
+ SchemaProps: spec.SchemaProps{
+ Description: "lastTransitionTime is the time the condition transitioned from one status to another.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ "reason": {
+ SchemaProps: spec.SchemaProps{
+ Description: "reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports \"Resizing\" that means the underlying persistent volume is being resized.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "message": {
+ SchemaProps: spec.SchemaProps{
+ Description: "message is the human-readable message indicating details about last transition.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"type", "status"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.Time"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PersistentVolumeClaimList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PersistentVolumeClaimList is a list of PersistentVolumeClaim items.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Description: "items is a list of persistent volume claims. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PersistentVolumeClaim"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"items"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.PersistentVolumeClaim", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PersistentVolumeClaimSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PersistentVolumeClaimSpec describes the common attributes of storage devices and allows a Source for provider-specific attributes",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "accessModes": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "selector": {
+ SchemaProps: spec.SchemaProps{
+ Description: "selector is a label query over volumes to consider for binding.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"),
+ },
+ },
+ "resources": {
+ SchemaProps: spec.SchemaProps{
+ Description: "resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.VolumeResourceRequirements"),
+ },
+ },
+ "volumeName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "volumeName is the binding reference to the PersistentVolume backing this claim.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "storageClassName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "volumeMode": {
+ SchemaProps: spec.SchemaProps{
+ Description: "volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec.\n\nPossible enum values:\n - `\"Block\"` means the volume will not be formatted with a filesystem and will remain a raw block device.\n - `\"Filesystem\"` means the volume will be or is formatted with a filesystem.",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Block", "Filesystem"},
+ },
+ },
+ "dataSource": {
+ SchemaProps: spec.SchemaProps{
+ Description: "dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.",
+ Ref: ref("k8s.io/api/core/v1.TypedLocalObjectReference"),
+ },
+ },
+ "dataSourceRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn't specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn't set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef\n allows any non-core object, as well as PersistentVolumeClaim objects.\n* While dataSource ignores disallowed values (dropping them), dataSourceRef\n preserves all values, and generates an error if a disallowed value is\n specified.\n* While dataSource only allows local objects, dataSourceRef allows objects\n in any namespaces.\n(Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.",
+ Ref: ref("k8s.io/api/core/v1.TypedObjectReference"),
+ },
+ },
+ "volumeAttributesClassName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string or nil value indicates that no VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state, this field can be reset to its previous value (including nil) to cancel the modification. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.TypedLocalObjectReference", "k8s.io/api/core/v1.TypedObjectReference", "k8s.io/api/core/v1.VolumeResourceRequirements", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PersistentVolumeClaimStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PersistentVolumeClaimStatus is the current status of a persistent volume claim.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "phase": {
+ SchemaProps: spec.SchemaProps{
+ Description: "phase represents the current phase of PersistentVolumeClaim.\n\nPossible enum values:\n - `\"Bound\"` used for PersistentVolumeClaims that are bound\n - `\"Lost\"` used for PersistentVolumeClaims that lost their underlying PersistentVolume. The claim was bound to a PersistentVolume and this volume does not exist any longer and all data on it was lost.\n - `\"Pending\"` used for PersistentVolumeClaims that are not yet bound",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Bound", "Lost", "Pending"},
+ },
+ },
+ "accessModes": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "accessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "capacity": {
+ SchemaProps: spec.SchemaProps{
+ Description: "capacity represents the actual resources of the underlying volume.",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
+ },
+ },
+ },
+ },
+ },
+ "conditions": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "type",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "type",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'Resizing'.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PersistentVolumeClaimCondition"),
+ },
+ },
+ },
+ },
+ },
+ "allocatedResources": {
+ SchemaProps: spec.SchemaProps{
+ Description: "allocatedResources tracks the resources allocated to a PVC including its capacity. Key names follow standard Kubernetes label syntax. Valid values are either:\n\t* Un-prefixed keys:\n\t\t- storage - the capacity of the volume.\n\t* Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\"\nApart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used.\n\nCapacity reported here may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity.\n\nA controller that receives PVC update with previously unknown resourceName should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC.\n\nThis is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
+ },
+ },
+ },
+ },
+ },
+ "allocatedResourceStatuses": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-map-type": "granular",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "allocatedResourceStatuses stores status of resource being resized for the given PVC. Key names follow standard Kubernetes label syntax. Valid values are either:\n\t* Un-prefixed keys:\n\t\t- storage - the capacity of the volume.\n\t* Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\"\nApart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used.\n\nClaimResourceStatus can be in any of following states:\n\t- ControllerResizeInProgress:\n\t\tState set when resize controller starts resizing the volume in control-plane.\n\t- ControllerResizeFailed:\n\t\tState set when resize has failed in resize controller with a terminal error.\n\t- NodeResizePending:\n\t\tState set when resize controller has finished resizing the volume but further resizing of\n\t\tvolume is needed on the node.\n\t- NodeResizeInProgress:\n\t\tState set when kubelet starts resizing the volume.\n\t- NodeResizeFailed:\n\t\tState set when resizing has failed in kubelet with a terminal error. Transient errors don't set\n\t\tNodeResizeFailed.\nFor example: if expanding a PVC for more capacity - this field can be one of the following states:\n\t- pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeInProgress\"\n - pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeFailed\"\n - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizePending\"\n - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeInProgress\"\n - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeFailed\"\nWhen this field is not set, it means that no resize operation is in progress for the given PVC.\n\nA controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC.\n\nThis is an alpha field and requires enabling RecoverVolumeExpansionFailure feature.",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "currentVolumeAttributesClassName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using. When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "modifyVolumeStatus": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ModifyVolumeStatus represents the status object of ControllerModifyVolume operation. When this is unset, there is no ModifyVolume operation being attempted.",
+ Ref: ref("k8s.io/api/core/v1.ModifyVolumeStatus"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ModifyVolumeStatus", "k8s.io/api/core/v1.PersistentVolumeClaimCondition", "k8s.io/apimachinery/pkg/api/resource.Quantity"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PersistentVolumeClaimTemplate(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PersistentVolumeClaimTemplate is used to produce PersistentVolumeClaim objects as part of an EphemeralVolumeSource.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "spec": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PersistentVolumeClaimSpec"),
+ },
+ },
+ },
+ Required: []string{"spec"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.PersistentVolumeClaimSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PersistentVolumeClaimVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace. This volume finds the bound PV and mounts that volume for the pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another type of volume that is owned by someone else (the system).",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "claimName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly Will force the ReadOnly setting in VolumeMounts. Default false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"claimName"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_PersistentVolumeList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PersistentVolumeList is a list of PersistentVolume items.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Description: "items is a list of persistent volumes. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PersistentVolume"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"items"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.PersistentVolume", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PersistentVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PersistentVolumeSource is similar to VolumeSource but meant for the administrator who creates PVs. Exactly one of its members must be set.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "gcePersistentDisk": {
+ SchemaProps: spec.SchemaProps{
+ Description: "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk",
+ Ref: ref("k8s.io/api/core/v1.GCEPersistentDiskVolumeSource"),
+ },
+ },
+ "awsElasticBlockStore": {
+ SchemaProps: spec.SchemaProps{
+ Description: "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore",
+ Ref: ref("k8s.io/api/core/v1.AWSElasticBlockStoreVolumeSource"),
+ },
+ },
+ "hostPath": {
+ SchemaProps: spec.SchemaProps{
+ Description: "hostPath represents a directory on the host. Provisioned by a developer or tester. This is useful for single-node development and testing only! On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath",
+ Ref: ref("k8s.io/api/core/v1.HostPathVolumeSource"),
+ },
+ },
+ "glusterfs": {
+ SchemaProps: spec.SchemaProps{
+ Description: "glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md",
+ Ref: ref("k8s.io/api/core/v1.GlusterfsPersistentVolumeSource"),
+ },
+ },
+ "nfs": {
+ SchemaProps: spec.SchemaProps{
+ Description: "nfs represents an NFS mount on the host. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs",
+ Ref: ref("k8s.io/api/core/v1.NFSVolumeSource"),
+ },
+ },
+ "rbd": {
+ SchemaProps: spec.SchemaProps{
+ Description: "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md",
+ Ref: ref("k8s.io/api/core/v1.RBDPersistentVolumeSource"),
+ },
+ },
+ "iscsi": {
+ SchemaProps: spec.SchemaProps{
+ Description: "iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin.",
+ Ref: ref("k8s.io/api/core/v1.ISCSIPersistentVolumeSource"),
+ },
+ },
+ "cinder": {
+ SchemaProps: spec.SchemaProps{
+ Description: "cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md",
+ Ref: ref("k8s.io/api/core/v1.CinderPersistentVolumeSource"),
+ },
+ },
+ "cephfs": {
+ SchemaProps: spec.SchemaProps{
+ Description: "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.CephFSPersistentVolumeSource"),
+ },
+ },
+ "fc": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.",
+ Ref: ref("k8s.io/api/core/v1.FCVolumeSource"),
+ },
+ },
+ "flocker": {
+ SchemaProps: spec.SchemaProps{
+ Description: "flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.FlockerVolumeSource"),
+ },
+ },
+ "flexVolume": {
+ SchemaProps: spec.SchemaProps{
+ Description: "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.",
+ Ref: ref("k8s.io/api/core/v1.FlexPersistentVolumeSource"),
+ },
+ },
+ "azureFile": {
+ SchemaProps: spec.SchemaProps{
+ Description: "azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver.",
+ Ref: ref("k8s.io/api/core/v1.AzureFilePersistentVolumeSource"),
+ },
+ },
+ "vsphereVolume": {
+ SchemaProps: spec.SchemaProps{
+ Description: "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver.",
+ Ref: ref("k8s.io/api/core/v1.VsphereVirtualDiskVolumeSource"),
+ },
+ },
+ "quobyte": {
+ SchemaProps: spec.SchemaProps{
+ Description: "quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.QuobyteVolumeSource"),
+ },
+ },
+ "azureDisk": {
+ SchemaProps: spec.SchemaProps{
+ Description: "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver.",
+ Ref: ref("k8s.io/api/core/v1.AzureDiskVolumeSource"),
+ },
+ },
+ "photonPersistentDisk": {
+ SchemaProps: spec.SchemaProps{
+ Description: "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.PhotonPersistentDiskVolumeSource"),
+ },
+ },
+ "portworxVolume": {
+ SchemaProps: spec.SchemaProps{
+ Description: "portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on.",
+ Ref: ref("k8s.io/api/core/v1.PortworxVolumeSource"),
+ },
+ },
+ "scaleIO": {
+ SchemaProps: spec.SchemaProps{
+ Description: "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.ScaleIOPersistentVolumeSource"),
+ },
+ },
+ "local": {
+ SchemaProps: spec.SchemaProps{
+ Description: "local represents directly-attached storage with node affinity",
+ Ref: ref("k8s.io/api/core/v1.LocalVolumeSource"),
+ },
+ },
+ "storageos": {
+ SchemaProps: spec.SchemaProps{
+ Description: "storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md",
+ Ref: ref("k8s.io/api/core/v1.StorageOSPersistentVolumeSource"),
+ },
+ },
+ "csi": {
+ SchemaProps: spec.SchemaProps{
+ Description: "csi represents storage that is handled by an external CSI driver.",
+ Ref: ref("k8s.io/api/core/v1.CSIPersistentVolumeSource"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.AWSElasticBlockStoreVolumeSource", "k8s.io/api/core/v1.AzureDiskVolumeSource", "k8s.io/api/core/v1.AzureFilePersistentVolumeSource", "k8s.io/api/core/v1.CSIPersistentVolumeSource", "k8s.io/api/core/v1.CephFSPersistentVolumeSource", "k8s.io/api/core/v1.CinderPersistentVolumeSource", "k8s.io/api/core/v1.FCVolumeSource", "k8s.io/api/core/v1.FlexPersistentVolumeSource", "k8s.io/api/core/v1.FlockerVolumeSource", "k8s.io/api/core/v1.GCEPersistentDiskVolumeSource", "k8s.io/api/core/v1.GlusterfsPersistentVolumeSource", "k8s.io/api/core/v1.HostPathVolumeSource", "k8s.io/api/core/v1.ISCSIPersistentVolumeSource", "k8s.io/api/core/v1.LocalVolumeSource", "k8s.io/api/core/v1.NFSVolumeSource", "k8s.io/api/core/v1.PhotonPersistentDiskVolumeSource", "k8s.io/api/core/v1.PortworxVolumeSource", "k8s.io/api/core/v1.QuobyteVolumeSource", "k8s.io/api/core/v1.RBDPersistentVolumeSource", "k8s.io/api/core/v1.ScaleIOPersistentVolumeSource", "k8s.io/api/core/v1.StorageOSPersistentVolumeSource", "k8s.io/api/core/v1.VsphereVirtualDiskVolumeSource"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PersistentVolumeSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PersistentVolumeSpec is the specification of a persistent volume.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "capacity": {
+ SchemaProps: spec.SchemaProps{
+ Description: "capacity is the description of the persistent volume's resources and capacity. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
+ },
+ },
+ },
+ },
+ },
+ "gcePersistentDisk": {
+ SchemaProps: spec.SchemaProps{
+ Description: "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk",
+ Ref: ref("k8s.io/api/core/v1.GCEPersistentDiskVolumeSource"),
+ },
+ },
+ "awsElasticBlockStore": {
+ SchemaProps: spec.SchemaProps{
+ Description: "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore",
+ Ref: ref("k8s.io/api/core/v1.AWSElasticBlockStoreVolumeSource"),
+ },
+ },
+ "hostPath": {
+ SchemaProps: spec.SchemaProps{
+ Description: "hostPath represents a directory on the host. Provisioned by a developer or tester. This is useful for single-node development and testing only! On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath",
+ Ref: ref("k8s.io/api/core/v1.HostPathVolumeSource"),
+ },
+ },
+ "glusterfs": {
+ SchemaProps: spec.SchemaProps{
+ Description: "glusterfs represents a Glusterfs volume that is attached to a host and exposed to the pod. Provisioned by an admin. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md",
+ Ref: ref("k8s.io/api/core/v1.GlusterfsPersistentVolumeSource"),
+ },
+ },
+ "nfs": {
+ SchemaProps: spec.SchemaProps{
+ Description: "nfs represents an NFS mount on the host. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs",
+ Ref: ref("k8s.io/api/core/v1.NFSVolumeSource"),
+ },
+ },
+ "rbd": {
+ SchemaProps: spec.SchemaProps{
+ Description: "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md",
+ Ref: ref("k8s.io/api/core/v1.RBDPersistentVolumeSource"),
+ },
+ },
+ "iscsi": {
+ SchemaProps: spec.SchemaProps{
+ Description: "iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Provisioned by an admin.",
+ Ref: ref("k8s.io/api/core/v1.ISCSIPersistentVolumeSource"),
+ },
+ },
+ "cinder": {
+ SchemaProps: spec.SchemaProps{
+ Description: "cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md",
+ Ref: ref("k8s.io/api/core/v1.CinderPersistentVolumeSource"),
+ },
+ },
+ "cephfs": {
+ SchemaProps: spec.SchemaProps{
+ Description: "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.CephFSPersistentVolumeSource"),
+ },
+ },
+ "fc": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.",
+ Ref: ref("k8s.io/api/core/v1.FCVolumeSource"),
+ },
+ },
+ "flocker": {
+ SchemaProps: spec.SchemaProps{
+ Description: "flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.FlockerVolumeSource"),
+ },
+ },
+ "flexVolume": {
+ SchemaProps: spec.SchemaProps{
+ Description: "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.",
+ Ref: ref("k8s.io/api/core/v1.FlexPersistentVolumeSource"),
+ },
+ },
+ "azureFile": {
+ SchemaProps: spec.SchemaProps{
+ Description: "azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver.",
+ Ref: ref("k8s.io/api/core/v1.AzureFilePersistentVolumeSource"),
+ },
+ },
+ "vsphereVolume": {
+ SchemaProps: spec.SchemaProps{
+ Description: "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver.",
+ Ref: ref("k8s.io/api/core/v1.VsphereVirtualDiskVolumeSource"),
+ },
+ },
+ "quobyte": {
+ SchemaProps: spec.SchemaProps{
+ Description: "quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.QuobyteVolumeSource"),
+ },
+ },
+ "azureDisk": {
+ SchemaProps: spec.SchemaProps{
+ Description: "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver.",
+ Ref: ref("k8s.io/api/core/v1.AzureDiskVolumeSource"),
+ },
+ },
+ "photonPersistentDisk": {
+ SchemaProps: spec.SchemaProps{
+ Description: "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.PhotonPersistentDiskVolumeSource"),
+ },
+ },
+ "portworxVolume": {
+ SchemaProps: spec.SchemaProps{
+ Description: "portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on.",
+ Ref: ref("k8s.io/api/core/v1.PortworxVolumeSource"),
+ },
+ },
+ "scaleIO": {
+ SchemaProps: spec.SchemaProps{
+ Description: "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.ScaleIOPersistentVolumeSource"),
+ },
+ },
+ "local": {
+ SchemaProps: spec.SchemaProps{
+ Description: "local represents directly-attached storage with node affinity",
+ Ref: ref("k8s.io/api/core/v1.LocalVolumeSource"),
+ },
+ },
+ "storageos": {
+ SchemaProps: spec.SchemaProps{
+ Description: "storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md",
+ Ref: ref("k8s.io/api/core/v1.StorageOSPersistentVolumeSource"),
+ },
+ },
+ "csi": {
+ SchemaProps: spec.SchemaProps{
+ Description: "csi represents storage that is handled by an external CSI driver.",
+ Ref: ref("k8s.io/api/core/v1.CSIPersistentVolumeSource"),
+ },
+ },
+ "accessModes": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "accessModes contains all ways the volume can be mounted. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "claimRef": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-map-type": "granular",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "claimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim. Expected to be non-nil when bound. claim.VolumeName is the authoritative bind between PV and PVC. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding",
+ Ref: ref("k8s.io/api/core/v1.ObjectReference"),
+ },
+ },
+ "persistentVolumeReclaimPolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "persistentVolumeReclaimPolicy defines what happens to a persistent volume when released from its claim. Valid options are Retain (default for manually created PersistentVolumes), Delete (default for dynamically provisioned PersistentVolumes), and Recycle (deprecated). Recycle must be supported by the volume plugin underlying this PersistentVolume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming\n\nPossible enum values:\n - `\"Delete\"` means the volume will be deleted from Kubernetes on release from its claim. The volume plugin must support Deletion.\n - `\"Recycle\"` means the volume will be recycled back into the pool of unbound persistent volumes on release from its claim. The volume plugin must support Recycling.\n - `\"Retain\"` means the volume will be left in its current phase (Released) for manual reclamation by the administrator. The default policy is Retain.",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Delete", "Recycle", "Retain"},
+ },
+ },
+ "storageClassName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "storageClassName is the name of StorageClass to which this persistent volume belongs. Empty value means that this volume does not belong to any StorageClass.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "mountOptions": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "mountOptions is the list of mount options, e.g. [\"ro\", \"soft\"]. Not validated - mount will simply fail if one is invalid. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#mount-options",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "volumeMode": {
+ SchemaProps: spec.SchemaProps{
+ Description: "volumeMode defines if a volume is intended to be used with a formatted filesystem or to remain in raw block state. Value of Filesystem is implied when not included in spec.\n\nPossible enum values:\n - `\"Block\"` means the volume will not be formatted with a filesystem and will remain a raw block device.\n - `\"Filesystem\"` means the volume will be or is formatted with a filesystem.",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Block", "Filesystem"},
+ },
+ },
+ "nodeAffinity": {
+ SchemaProps: spec.SchemaProps{
+ Description: "nodeAffinity defines constraints that limit what nodes this volume can be accessed from. This field influences the scheduling of pods that use this volume.",
+ Ref: ref("k8s.io/api/core/v1.VolumeNodeAffinity"),
+ },
+ },
+ "volumeAttributesClassName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of VolumeAttributesClass to which this persistent volume belongs. Empty value is not allowed. When this field is not set, it indicates that this volume does not belong to any VolumeAttributesClass. This field is mutable and can be changed by the CSI driver after a volume has been updated successfully to a new class. For an unbound PersistentVolume, the volumeAttributesClassName will be matched with unbound PersistentVolumeClaims during the binding process.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.AWSElasticBlockStoreVolumeSource", "k8s.io/api/core/v1.AzureDiskVolumeSource", "k8s.io/api/core/v1.AzureFilePersistentVolumeSource", "k8s.io/api/core/v1.CSIPersistentVolumeSource", "k8s.io/api/core/v1.CephFSPersistentVolumeSource", "k8s.io/api/core/v1.CinderPersistentVolumeSource", "k8s.io/api/core/v1.FCVolumeSource", "k8s.io/api/core/v1.FlexPersistentVolumeSource", "k8s.io/api/core/v1.FlockerVolumeSource", "k8s.io/api/core/v1.GCEPersistentDiskVolumeSource", "k8s.io/api/core/v1.GlusterfsPersistentVolumeSource", "k8s.io/api/core/v1.HostPathVolumeSource", "k8s.io/api/core/v1.ISCSIPersistentVolumeSource", "k8s.io/api/core/v1.LocalVolumeSource", "k8s.io/api/core/v1.NFSVolumeSource", "k8s.io/api/core/v1.ObjectReference", "k8s.io/api/core/v1.PhotonPersistentDiskVolumeSource", "k8s.io/api/core/v1.PortworxVolumeSource", "k8s.io/api/core/v1.QuobyteVolumeSource", "k8s.io/api/core/v1.RBDPersistentVolumeSource", "k8s.io/api/core/v1.ScaleIOPersistentVolumeSource", "k8s.io/api/core/v1.StorageOSPersistentVolumeSource", "k8s.io/api/core/v1.VolumeNodeAffinity", "k8s.io/api/core/v1.VsphereVirtualDiskVolumeSource", "k8s.io/apimachinery/pkg/api/resource.Quantity"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PersistentVolumeStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PersistentVolumeStatus is the current status of a persistent volume.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "phase": {
+ SchemaProps: spec.SchemaProps{
+ Description: "phase indicates if a volume is available, bound to a claim, or released by a claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#phase\n\nPossible enum values:\n - `\"Available\"` used for PersistentVolumes that are not yet bound Available volumes are held by the binder and matched to PersistentVolumeClaims\n - `\"Bound\"` used for PersistentVolumes that are bound\n - `\"Failed\"` used for PersistentVolumes that failed to be correctly recycled or deleted after being released from a claim\n - `\"Pending\"` used for PersistentVolumes that are not available\n - `\"Released\"` used for PersistentVolumes where the bound PersistentVolumeClaim was deleted released volumes must be recycled before becoming available again this phase is used by the persistent volume claim binder to signal to another process to reclaim the resource",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Available", "Bound", "Failed", "Pending", "Released"},
+ },
+ },
+ "message": {
+ SchemaProps: spec.SchemaProps{
+ Description: "message is a human-readable message indicating details about why the volume is in this state.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "reason": {
+ SchemaProps: spec.SchemaProps{
+ Description: "reason is a brief CamelCase string that describes any failure and is meant for machine parsing and tidy display in the CLI.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "lastPhaseTransitionTime": {
+ SchemaProps: spec.SchemaProps{
+ Description: "lastPhaseTransitionTime is the time the phase transitioned from one to another and automatically resets to current time everytime a volume phase transitions.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.Time"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PhotonPersistentDiskVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a Photon Controller persistent disk resource.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "pdID": {
+ SchemaProps: spec.SchemaProps{
+ Description: "pdID is the ID that identifies Photon Controller persistent disk",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fsType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"pdID"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_Pod(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Pod is a collection of containers that can run on a host. This resource is created by clients and scheduled onto hosts.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "spec": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodSpec"),
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Most recently observed status of the pod. This data may not be up to date. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodStatus"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.PodSpec", "k8s.io/api/core/v1.PodStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PodAffinity(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Pod affinity is a group of inter pod affinity scheduling rules.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "requiredDuringSchedulingIgnoredDuringExecution": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodAffinityTerm"),
+ },
+ },
+ },
+ },
+ },
+ "preferredDuringSchedulingIgnoredDuringExecution": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.WeightedPodAffinityTerm"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.PodAffinityTerm", "k8s.io/api/core/v1.WeightedPodAffinityTerm"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PodAffinityTerm(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key matches that of any node on which a pod of the set of pods is running",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "labelSelector": {
+ SchemaProps: spec.SchemaProps{
+ Description: "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"),
+ },
+ },
+ "namespaces": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \"this pod's namespace\".",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "topologyKey": {
+ SchemaProps: spec.SchemaProps{
+ Description: "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "namespaceSelector": {
+ SchemaProps: spec.SchemaProps{
+ Description: "A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means \"this pod's namespace\". An empty selector ({}) matches all namespaces.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"),
+ },
+ },
+ "matchLabelKeys": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "mismatchLabelKeys": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"topologyKey"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PodAntiAffinity(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Pod anti affinity is a group of inter pod anti affinity scheduling rules.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "requiredDuringSchedulingIgnoredDuringExecution": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodAffinityTerm"),
+ },
+ },
+ },
+ },
+ },
+ "preferredDuringSchedulingIgnoredDuringExecution": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and subtracting \"weight\" from the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.WeightedPodAffinityTerm"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.PodAffinityTerm", "k8s.io/api/core/v1.WeightedPodAffinityTerm"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PodAttachOptions(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodAttachOptions is the query options to a Pod's remote attach call.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "stdin": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Stdin if true, redirects the standard input stream of the pod for this call. Defaults to false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "stdout": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Stdout if true indicates that stdout is to be redirected for the attach call. Defaults to true.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "stderr": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Stderr if true indicates that stderr is to be redirected for the attach call. Defaults to true.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "tty": {
+ SchemaProps: spec.SchemaProps{
+ Description: "TTY if true indicates that a tty will be allocated for the attach call. This is passed through the container runtime so the tty is allocated on the worker node by the container runtime. Defaults to false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "container": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The container in which to execute the command. Defaults to only container if there is only one container in the pod.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_PodCertificateProjection(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodCertificateProjection provides a private key and X.509 certificate in the pod filesystem.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "signerName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kubelet's generated CSRs will be addressed to this signer.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "keyType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The type of keypair Kubelet will generate for the pod.\n\nValid values are \"RSA3072\", \"RSA4096\", \"ECDSAP256\", \"ECDSAP384\", \"ECDSAP521\", and \"ED25519\".",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "maxExpirationSeconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "maxExpirationSeconds is the maximum lifetime permitted for the certificate.\n\nKubelet copies this value verbatim into the PodCertificateRequests it generates for this projection.\n\nIf omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver will reject values shorter than 3600 (1 hour). The maximum allowable value is 7862400 (91 days).\n\nThe signer implementation is then free to issue a certificate with any lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 seconds (1 hour). This constraint is enforced by kube-apiserver. `kubernetes.io` signers will never issue certificates with a lifetime longer than 24 hours.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "credentialBundlePath": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Write the credential bundle at this path in the projected volume.\n\nThe credential bundle is a single file that contains multiple PEM blocks. The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private key.\n\nThe remaining blocks are CERTIFICATE blocks, containing the issued certificate chain from the signer (leaf and any intermediates).\n\nUsing credentialBundlePath lets your Pod's application code make a single atomic read that retrieves a consistent key and certificate chain. If you project them to separate files, your application code will need to additionally check that the leaf certificate was issued to the key.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "keyPath": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Write the key at this path in the projected volume.\n\nMost applications should use credentialBundlePath. When using keyPath and certificateChainPath, your application needs to check that the key and leaf certificate are consistent, because it is possible to read the files mid-rotation.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "certificateChainPath": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Write the certificate chain at this path in the projected volume.\n\nMost applications should use credentialBundlePath. When using keyPath and certificateChainPath, your application needs to check that the key and leaf certificate are consistent, because it is possible to read the files mid-rotation.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_PodCondition(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodCondition contains details for the current condition of this pod.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Type is the type of the condition. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "observedGeneration": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If set, this represents the .metadata.generation that the pod condition was set based upon. This is an alpha field. Enable PodObservedGenerationTracking to be able to use this field.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Status is the status of the condition. Can be True, False, Unknown. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "lastProbeTime": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Last time we probed the condition.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ "lastTransitionTime": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Last time the condition transitioned from one status to another.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ "reason": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Unique, one-word, CamelCase reason for the condition's last transition.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "message": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Human-readable message indicating details about last transition.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"type", "status"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.Time"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PodDNSConfig(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodDNSConfig defines the DNS parameters of a pod in addition to those generated from DNSPolicy.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "nameservers": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "A list of DNS name server IP addresses. This will be appended to the base nameservers generated from DNSPolicy. Duplicated nameservers will be removed.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "searches": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "A list of DNS search domains for host-name lookup. This will be appended to the base search paths generated from DNSPolicy. Duplicated search paths will be removed.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "options": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "A list of DNS resolver options. This will be merged with the base options generated from DNSPolicy. Duplicated entries will be removed. Resolution options given in Options will override those that appear in the base DNSPolicy.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodDNSConfigOption"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.PodDNSConfigOption"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PodDNSConfigOption(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodDNSConfigOption defines DNS resolver options of a pod.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name is this DNS resolver option's name. Required.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "value": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Value is this DNS resolver option's value.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_PodExecOptions(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodExecOptions is the query options to a Pod's remote exec call.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "stdin": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Redirect the standard input stream of the pod for this call. Defaults to false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "stdout": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Redirect the standard output stream of the pod for this call.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "stderr": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Redirect the standard error stream of the pod for this call.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "tty": {
+ SchemaProps: spec.SchemaProps{
+ Description: "TTY if true indicates that a tty will be allocated for the exec call. Defaults to false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "container": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Container in which to execute the command. Defaults to only container if there is only one container in the pod.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "command": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Command is the remote command to execute. argv array. Not executed within a shell.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"command"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_PodExtendedResourceClaimStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodExtendedResourceClaimStatus is stored in the PodStatus for the extended resource requests backed by DRA. It stores the generated name for the corresponding special ResourceClaim created by the scheduler.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "requestMappings": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "RequestMappings identifies the mapping of to device request in the generated ResourceClaim.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ContainerExtendedResourceRequest"),
+ },
+ },
+ },
+ },
+ },
+ "resourceClaimName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ResourceClaimName is the name of the ResourceClaim that was generated for the Pod in the namespace of the Pod.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"requestMappings", "resourceClaimName"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ContainerExtendedResourceRequest"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PodIP(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodIP represents a single IP address allocated to the pod.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "ip": {
+ SchemaProps: spec.SchemaProps{
+ Description: "IP is the IP address assigned to the pod",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"ip"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_PodList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodList is a list of Pods.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Description: "List of pods. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.Pod"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"items"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.Pod", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PodLogOptions(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodLogOptions is the query options for a Pod's logs REST call.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "container": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The container for which to stream logs. Defaults to only container if there is one container in the pod.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "follow": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Follow the log stream of the pod. Defaults to false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "previous": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Return previous terminated container logs. Defaults to false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "sinceSeconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "A relative time in seconds before the current time from which to show logs. If this value precedes the time a pod was started, only logs since the pod start will be returned. If this value is in the future, no logs will be returned. Only one of sinceSeconds or sinceTime may be specified.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "sinceTime": {
+ SchemaProps: spec.SchemaProps{
+ Description: "An RFC3339 timestamp from which to show logs. If this value precedes the time a pod was started, only logs since the pod start will be returned. If this value is in the future, no logs will be returned. Only one of sinceSeconds or sinceTime may be specified.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ "timestamps": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line of log output. Defaults to false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "tailLines": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If set, the number of lines from the end of the logs to show. If not specified, logs are shown from the creation of the container or sinceSeconds or sinceTime. Note that when \"TailLines\" is specified, \"Stream\" can only be set to nil or \"All\".",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "limitBytes": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If set, the number of bytes to read from the server before terminating the log output. This may not display a complete final line of logging, and may return slightly more or slightly less than the specified limit.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "insecureSkipTLSVerifyBackend": {
+ SchemaProps: spec.SchemaProps{
+ Description: "insecureSkipTLSVerifyBackend indicates that the apiserver should not confirm the validity of the serving certificate of the backend it is connecting to. This will make the HTTPS connection between the apiserver and the backend insecure. This means the apiserver cannot verify the log data it is receiving came from the real kubelet. If the kubelet is configured to verify the apiserver's TLS credentials, it does not mean the connection to the real kubelet is vulnerable to a man in the middle attack (e.g. an attacker could not intercept the actual log data coming from the real kubelet).",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "stream": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Specify which container log stream to return to the client. Acceptable values are \"All\", \"Stdout\" and \"Stderr\". If not specified, \"All\" is used, and both stdout and stderr are returned interleaved. Note that when \"TailLines\" is specified, \"Stream\" can only be set to nil or \"All\".",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.Time"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PodOS(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodOS defines the OS parameters of a pod.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name is the name of the operating system. The currently supported values are linux and windows. Additional value may be defined in future and can be one of: https://github.com/opencontainers/runtime-spec/blob/master/config.md#platform-specific-configuration Clients should expect to handle additional values and treat unrecognized values in this field as os: null",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"name"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_PodPortForwardOptions(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodPortForwardOptions is the query options to a Pod's port forward call when using WebSockets. The `port` query parameter must specify the port or ports (comma separated) to forward over. Port forwarding over SPDY does not use these options. It requires the port to be passed in the `port` header as part of request.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "ports": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "List of ports to forward Required when using WebSockets",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_PodProxyOptions(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodProxyOptions is the query options to a Pod's proxy call.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "path": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Path is the URL path to use for the current proxy request to pod.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_PodReadinessGate(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodReadinessGate contains the reference to a pod condition",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "conditionType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ConditionType refers to a condition in the pod's condition list with matching type.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"conditionType"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_PodResourceClaim(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodResourceClaim references exactly one ResourceClaim, either directly or by naming a ResourceClaimTemplate which is then turned into a ResourceClaim for the pod.\n\nIt adds a name to it that uniquely identifies the ResourceClaim inside the Pod. Containers that need access to the ResourceClaim reference it with this name.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name uniquely identifies this resource claim inside the pod. This must be a DNS_LABEL.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "resourceClaimName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ResourceClaimName is the name of a ResourceClaim object in the same namespace as this pod.\n\nExactly one of ResourceClaimName and ResourceClaimTemplateName must be set.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "resourceClaimTemplateName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ResourceClaimTemplateName is the name of a ResourceClaimTemplate object in the same namespace as this pod.\n\nThe template will be used to create a new ResourceClaim, which will be bound to this pod. When this pod is deleted, the ResourceClaim will also be deleted. The pod name and resource name, along with a generated component, will be used to form a unique name for the ResourceClaim, which will be recorded in pod.status.resourceClaimStatuses.\n\nThis field is immutable and no changes will be made to the corresponding ResourceClaim by the control plane after creating the ResourceClaim.\n\nExactly one of ResourceClaimName and ResourceClaimTemplateName must be set.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"name"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_PodResourceClaimStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodResourceClaimStatus is stored in the PodStatus for each PodResourceClaim which references a ResourceClaimTemplate. It stores the generated name for the corresponding ResourceClaim.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name uniquely identifies this resource claim inside the pod. This must match the name of an entry in pod.spec.resourceClaims, which implies that the string must be a DNS_LABEL.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "resourceClaimName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ResourceClaimName is the name of the ResourceClaim that was generated for the Pod in the namespace of the Pod. If this is unset, then generating a ResourceClaim was not necessary. The pod.spec.resourceClaims entry can be ignored in this case.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"name"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_PodSchedulingGate(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodSchedulingGate is associated to a Pod to guard its scheduling.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of the scheduling gate. Each scheduling gate must have a unique name field.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"name"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_PodSecurityContext(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodSecurityContext holds pod-level security attributes and common container settings. Some fields are also present in container.securityContext. Field values of container.securityContext take precedence over field values of PodSecurityContext.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "seLinuxOptions": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.",
+ Ref: ref("k8s.io/api/core/v1.SELinuxOptions"),
+ },
+ },
+ "windowsOptions": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The Windows specific settings applied to all containers. If unspecified, the options within a container's SecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.",
+ Ref: ref("k8s.io/api/core/v1.WindowsSecurityContextOptions"),
+ },
+ },
+ "runAsUser": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "runAsGroup": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "runAsNonRoot": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "supplementalGroups": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "A list of groups applied to the first process run in each container, in addition to the container's primary GID and fsGroup (if specified). If the SupplementalGroupsPolicy feature is enabled, the supplementalGroupsPolicy field determines whether these are in addition to or instead of any group memberships defined in the container image. If unspecified, no additional groups are added, though group memberships defined in the container image may still be used, depending on the supplementalGroupsPolicy field. Note that this field cannot be set when spec.os.name is windows.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ },
+ },
+ },
+ "supplementalGroupsPolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Defines how supplemental groups of the first container processes are calculated. Valid values are \"Merge\" and \"Strict\". If not specified, \"Merge\" is used. (Alpha) Using the field requires the SupplementalGroupsPolicy feature gate to be enabled and the container runtime must implement support for this feature. Note that this field cannot be set when spec.os.name is windows.\n\nPossible enum values:\n - `\"Merge\"` means that the container's provided SupplementalGroups and FsGroup (specified in SecurityContext) will be merged with the primary user's groups as defined in the container image (in /etc/group).\n - `\"Strict\"` means that the container's provided SupplementalGroups and FsGroup (specified in SecurityContext) will be used instead of any groups defined in the container image.",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Merge", "Strict"},
+ },
+ },
+ "fsGroup": {
+ SchemaProps: spec.SchemaProps{
+ Description: "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod:\n\n1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw----\n\nIf unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "sysctls": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.Sysctl"),
+ },
+ },
+ },
+ },
+ },
+ "fsGroupChangePolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are \"OnRootMismatch\" and \"Always\". If not specified, \"Always\" is used. Note that this field cannot be set when spec.os.name is windows.\n\nPossible enum values:\n - `\"Always\"` indicates that volume's ownership and permissions should always be changed whenever volume is mounted inside a Pod. This the default behavior.\n - `\"OnRootMismatch\"` indicates that volume's ownership and permissions will be changed only when permission and ownership of root directory does not match with expected permissions on the volume. This can help shorten the time it takes to change ownership and permissions of a volume.",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Always", "OnRootMismatch"},
+ },
+ },
+ "seccompProfile": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The seccomp options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.",
+ Ref: ref("k8s.io/api/core/v1.SeccompProfile"),
+ },
+ },
+ "appArmorProfile": {
+ SchemaProps: spec.SchemaProps{
+ Description: "appArmorProfile is the AppArmor options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows.",
+ Ref: ref("k8s.io/api/core/v1.AppArmorProfile"),
+ },
+ },
+ "seLinuxChangePolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "seLinuxChangePolicy defines how the container's SELinux label is applied to all volumes used by the Pod. It has no effect on nodes that do not support SELinux or to volumes does not support SELinux. Valid values are \"MountOption\" and \"Recursive\".\n\n\"Recursive\" means relabeling of all files on all Pod volumes by the container runtime. This may be slow for large volumes, but allows mixing privileged and unprivileged Pods sharing the same volume on the same node.\n\n\"MountOption\" mounts all eligible Pod volumes with `-o context` mount option. This requires all Pods that share the same volume to use the same SELinux label. It is not possible to share the same volume among privileged and unprivileged Pods. Eligible volumes are in-tree FibreChannel and iSCSI volumes, and all CSI volumes whose CSI driver announces SELinux support by setting spec.seLinuxMount: true in their CSIDriver instance. Other volumes are always re-labelled recursively. \"MountOption\" value is allowed only when SELinuxMount feature gate is enabled.\n\nIf not specified and SELinuxMount feature gate is enabled, \"MountOption\" is used. If not specified and SELinuxMount feature gate is disabled, \"MountOption\" is used for ReadWriteOncePod volumes and \"Recursive\" for all other volumes.\n\nThis field affects only Pods that have SELinux label set, either in PodSecurityContext or in SecurityContext of all containers.\n\nAll Pods that use the same volume should use the same seLinuxChangePolicy, otherwise some pods can get stuck in ContainerCreating state. Note that this field cannot be set when spec.os.name is windows.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.AppArmorProfile", "k8s.io/api/core/v1.SELinuxOptions", "k8s.io/api/core/v1.SeccompProfile", "k8s.io/api/core/v1.Sysctl", "k8s.io/api/core/v1.WindowsSecurityContextOptions"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PodSignature(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Describes the class of pods that should avoid this node. Exactly one field should be set.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "podController": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Reference to controller whose pods should avoid this node.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.OwnerReference"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.OwnerReference"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PodSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodSpec is a description of a pod.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "volumes": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "name",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge,retainKeys",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.Volume"),
+ },
+ },
+ },
+ },
+ },
+ "initContainers": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "name",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.Container"),
+ },
+ },
+ },
+ },
+ },
+ "containers": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "name",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.Container"),
+ },
+ },
+ },
+ },
+ },
+ "ephemeralContainers": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "name",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing pod to perform user-initiated actions such as debugging. This list cannot be specified when creating a pod, and it cannot be modified by updating the pod spec. In order to add an ephemeral container to an existing pod, use the pod's ephemeralcontainers subresource.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.EphemeralContainer"),
+ },
+ },
+ },
+ },
+ },
+ "restartPolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Restart policy for all containers within the pod. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy\n\nPossible enum values:\n - `\"Always\"`\n - `\"Never\"`\n - `\"OnFailure\"`",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Always", "Never", "OnFailure"},
+ },
+ },
+ "terminationGracePeriodSeconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 30 seconds.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "activeDeadlineSeconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Optional duration in seconds the pod may be active on the node relative to StartTime before the system will actively try to mark it failed and kill associated containers. Value must be a positive integer.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "dnsPolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Set DNS policy for the pod. Defaults to \"ClusterFirst\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.\n\nPossible enum values:\n - `\"ClusterFirst\"` indicates that the pod should use cluster DNS first unless hostNetwork is true, if it is available, then fall back on the default (as determined by kubelet) DNS settings.\n - `\"ClusterFirstWithHostNet\"` indicates that the pod should use cluster DNS first, if it is available, then fall back on the default (as determined by kubelet) DNS settings.\n - `\"Default\"` indicates that the pod should use the default (as determined by kubelet) DNS settings.\n - `\"None\"` indicates that the pod should use empty DNS settings. DNS parameters such as nameservers and search paths should be defined via DNSConfig.",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"ClusterFirst", "ClusterFirstWithHostNet", "Default", "None"},
+ },
+ },
+ "nodeSelector": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-map-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "serviceAccountName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "serviceAccount": {
+ SchemaProps: spec.SchemaProps{
+ Description: "DeprecatedServiceAccount is a deprecated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "automountServiceAccountToken": {
+ SchemaProps: spec.SchemaProps{
+ Description: "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "nodeName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "NodeName indicates in which node this pod is scheduled. If empty, this pod is a candidate for scheduling by the scheduler defined in schedulerName. Once this field is set, the kubelet for this node becomes responsible for the lifecycle of this pod. This field should not be used to express a desire for the pod to be scheduled on a specific node. https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodename",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "hostNetwork": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Host networking requested for this pod. Use the host's network namespace. When using HostNetwork you should specify ports so the scheduler is aware. When `hostNetwork` is true, specified `hostPort` fields in port definitions must match `containerPort`, and unspecified `hostPort` fields in port definitions are defaulted to match `containerPort`. Default to false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "hostPID": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Use the host's pid namespace. Optional: Default to false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "hostIPC": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Use the host's ipc namespace. Optional: Default to false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "shareProcessNamespace": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Share a single process namespace between all of the containers in a pod. When this is set containers will be able to view and signal processes from other containers in the same pod, and the first process in each container will not be assigned PID 1. HostPID and ShareProcessNamespace cannot both be set. Optional: Default to false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "securityContext": {
+ SchemaProps: spec.SchemaProps{
+ Description: "SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field.",
+ Ref: ref("k8s.io/api/core/v1.PodSecurityContext"),
+ },
+ },
+ "imagePullSecrets": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "name",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.LocalObjectReference"),
+ },
+ },
+ },
+ },
+ },
+ "hostname": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "subdomain": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If specified, the fully qualified Pod hostname will be \"...svc.\". If not specified, the pod will not have a domainname at all.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "affinity": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If specified, the pod's scheduling constraints",
+ Ref: ref("k8s.io/api/core/v1.Affinity"),
+ },
+ },
+ "schedulerName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "tolerations": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "If specified, the pod's tolerations.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.Toleration"),
+ },
+ },
+ },
+ },
+ },
+ "hostAliases": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "ip",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "ip",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts file if specified.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.HostAlias"),
+ },
+ },
+ },
+ },
+ },
+ "priorityClassName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If specified, indicates the pod's priority. \"system-node-critical\" and \"system-cluster-critical\" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "priority": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "dnsConfig": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.",
+ Ref: ref("k8s.io/api/core/v1.PodDNSConfig"),
+ },
+ },
+ "readinessGates": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "If specified, all readiness gates will be evaluated for pod readiness. A pod is ready when all its containers are ready AND all conditions specified in the readiness gates have status equal to \"True\" More info: https://git.k8s.io/enhancements/keps/sig-network/580-pod-readiness-gates",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodReadinessGate"),
+ },
+ },
+ },
+ },
+ },
+ "runtimeClassName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "enableServiceLinks": {
+ SchemaProps: spec.SchemaProps{
+ Description: "EnableServiceLinks indicates whether information about services should be injected into pod's environment variables, matching the syntax of Docker links. Optional: Defaults to true.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "preemptionPolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "PreemptionPolicy is the Policy for preempting pods with lower priority. One of Never, PreemptLowerPriority. Defaults to PreemptLowerPriority if unset.\n\nPossible enum values:\n - `\"Never\"` means that pod never preempts other pods with lower priority.\n - `\"PreemptLowerPriority\"` means that pod can preempt other pods with lower priority.",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Never", "PreemptLowerPriority"},
+ },
+ },
+ "overhead": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Overhead represents the resource overhead associated with running a pod for a given RuntimeClass. This field will be autopopulated at admission time by the RuntimeClass admission controller. If the RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests. The RuntimeClass admission controller will reject Pod create requests which have the overhead already set. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value defined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero. More info: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
+ },
+ },
+ },
+ },
+ },
+ "topologySpreadConstraints": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "topologyKey",
+ "whenUnsatisfiable",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "topologyKey",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "TopologySpreadConstraints describes how a group of pods ought to spread across topology domains. Scheduler will schedule pods in a way which abides by the constraints. All topologySpreadConstraints are ANDed.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.TopologySpreadConstraint"),
+ },
+ },
+ },
+ },
+ },
+ "setHostnameAsFQDN": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "os": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Specifies the OS of the containers in the pod. Some pod and container fields are restricted if this is set.\n\nIf the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions\n\nIf the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.hostUsers - spec.resources - spec.securityContext.appArmorProfile - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.securityContext.supplementalGroupsPolicy - spec.containers[*].securityContext.appArmorProfile - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup",
+ Ref: ref("k8s.io/api/core/v1.PodOS"),
+ },
+ },
+ "hostUsers": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Use the host's user namespace. Optional: Default to true. If set to true or not present, the pod will be run in the host user namespace, useful for when the pod needs a feature only available to the host user namespace, such as loading a kernel module with CAP_SYS_MODULE. When set to false, a new userns is created for the pod. Setting false is useful for mitigating container breakout vulnerabilities even allowing users to run their containers as root without actually having root privileges on the host. This field is alpha-level and is only honored by servers that enable the UserNamespacesSupport feature.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "schedulingGates": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "name",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "SchedulingGates is an opaque list of values that if specified will block scheduling the pod. If schedulingGates is not empty, the pod will stay in the SchedulingGated state and the scheduler will not attempt to schedule the pod.\n\nSchedulingGates can only be set at pod creation time, and be removed only afterwards.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodSchedulingGate"),
+ },
+ },
+ },
+ },
+ },
+ "resourceClaims": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "name",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge,retainKeys",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.\n\nThis is an alpha field and requires enabling the DynamicResourceAllocation feature gate.\n\nThis field is immutable.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodResourceClaim"),
+ },
+ },
+ },
+ },
+ },
+ "resources": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for \"cpu\", \"memory\" and \"hugepages-\" resource names only. ResourceClaims are not supported.\n\nThis field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod.\n\nThis is an alpha field and requires enabling the PodLevelResources feature gate.",
+ Ref: ref("k8s.io/api/core/v1.ResourceRequirements"),
+ },
+ },
+ "hostnameOverride": {
+ SchemaProps: spec.SchemaProps{
+ Description: "HostnameOverride specifies an explicit override for the pod's hostname as perceived by the pod. This field only specifies the pod's hostname and does not affect its DNS records. When this field is set to a non-empty string: - It takes precedence over the values set in `hostname` and `subdomain`. - The Pod's hostname will be set to this value. - `setHostnameAsFQDN` must be nil or set to false. - `hostNetwork` must be set to false.\n\nThis field must be a valid DNS subdomain as defined in RFC 1123 and contain at most 64 characters. Requires the HostnameOverride feature gate to be enabled.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"containers"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.EphemeralContainer", "k8s.io/api/core/v1.HostAlias", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodOS", "k8s.io/api/core/v1.PodReadinessGate", "k8s.io/api/core/v1.PodResourceClaim", "k8s.io/api/core/v1.PodSchedulingGate", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.TopologySpreadConstraint", "k8s.io/api/core/v1.Volume", "k8s.io/apimachinery/pkg/api/resource.Quantity"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PodStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodStatus represents information about the status of a pod. Status may trail the actual state of a system, especially if the node that hosts the pod cannot contact the control plane.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "observedGeneration": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If set, this represents the .metadata.generation that the pod status was set based upon. This is an alpha field. Enable PodObservedGenerationTracking to be able to use this field.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "phase": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle. The conditions array, the reason and message fields, and the individual container status arrays contain more detail about the pod's status. There are five possible phase values:\n\nPending: The pod has been accepted by the Kubernetes system, but one or more of the container images has not been created. This includes time before being scheduled as well as time spent downloading images over the network, which could take a while. Running: The pod has been bound to a node, and all of the containers have been created. At least one container is still running, or is in the process of starting or restarting. Succeeded: All containers in the pod have terminated in success, and will not be restarted. Failed: All containers in the pod have terminated, and at least one container has terminated in failure. The container either exited with non-zero status or was terminated by the system. Unknown: For some reason the state of the pod could not be obtained, typically due to an error in communicating with the host of the pod.\n\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase\n\nPossible enum values:\n - `\"Failed\"` means that all containers in the pod have terminated, and at least one container has terminated in a failure (exited with a non-zero exit code or was stopped by the system).\n - `\"Pending\"` means the pod has been accepted by the system, but one or more of the containers has not been started. This includes time before being bound to a node, as well as time spent pulling images onto the host.\n - `\"Running\"` means the pod has been bound to a node and all of the containers have been started. At least one container is still running or is in the process of being restarted.\n - `\"Succeeded\"` means that all containers in the pod have voluntarily terminated with a container exit code of 0, and the system is not going to restart any of these containers.\n - `\"Unknown\"` means that for some reason the state of the pod could not be obtained, typically due to an error in communicating with the host of the pod. Deprecated: It isn't being set since 2015 (74da3b14b0c0f658b3bb8d2def5094686d0e9095)",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Failed", "Pending", "Running", "Succeeded", "Unknown"},
+ },
+ },
+ "conditions": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "type",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "type",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Current service state of pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodCondition"),
+ },
+ },
+ },
+ },
+ },
+ "message": {
+ SchemaProps: spec.SchemaProps{
+ Description: "A human readable message indicating details about why the pod is in this condition.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "reason": {
+ SchemaProps: spec.SchemaProps{
+ Description: "A brief CamelCase message indicating details about why the pod is in this state. e.g. 'Evicted'",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "nominatedNodeName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "nominatedNodeName is set only when this pod preempts other pods on the node, but it cannot be scheduled right away as preemption victims receive their graceful termination periods. This field does not guarantee that the pod will be scheduled on this node. Scheduler may decide to place the pod elsewhere if other nodes become available sooner. Scheduler may also decide to give the resources on this node to a higher priority pod that is created after preemption. As a result, this field may be different than PodSpec.nodeName when the pod is scheduled.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "hostIP": {
+ SchemaProps: spec.SchemaProps{
+ Description: "hostIP holds the IP address of the host to which the pod is assigned. Empty if the pod has not started yet. A pod can be assigned to a node that has a problem in kubelet which in turns mean that HostIP will not be updated even if there is a node is assigned to pod",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "hostIPs": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ "x-kubernetes-patch-merge-key": "ip",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "hostIPs holds the IP addresses allocated to the host. If this field is specified, the first entry must match the hostIP field. This list is empty if the pod has not started yet. A pod can be assigned to a node that has a problem in kubelet which in turns means that HostIPs will not be updated even if there is a node is assigned to this pod.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.HostIP"),
+ },
+ },
+ },
+ },
+ },
+ "podIP": {
+ SchemaProps: spec.SchemaProps{
+ Description: "podIP address allocated to the pod. Routable at least within the cluster. Empty if not yet allocated.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "podIPs": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "ip",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "ip",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "podIPs holds the IP addresses allocated to the pod. If this field is specified, the 0th entry must match the podIP field. Pods may be allocated at most 1 value for each of IPv4 and IPv6. This list is empty if no IPs have been allocated yet.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodIP"),
+ },
+ },
+ },
+ },
+ },
+ "startTime": {
+ SchemaProps: spec.SchemaProps{
+ Description: "RFC 3339 date and time at which the object was acknowledged by the Kubelet. This is before the Kubelet pulled the container image(s) for the pod.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ "initContainerStatuses": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Statuses of init containers in this pod. The most recent successful non-restartable init container will have ready = true, the most recently started container will have startTime set. Each init container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-and-container-status",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ContainerStatus"),
+ },
+ },
+ },
+ },
+ },
+ "containerStatuses": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Statuses of containers in this pod. Each container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ContainerStatus"),
+ },
+ },
+ },
+ },
+ },
+ "qosClass": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The Quality of Service (QOS) classification assigned to the pod based on resource requirements See PodQOSClass type for available QOS classes More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-qos/#quality-of-service-classes\n\nPossible enum values:\n - `\"BestEffort\"` is the BestEffort qos class.\n - `\"Burstable\"` is the Burstable qos class.\n - `\"Guaranteed\"` is the Guaranteed qos class.",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"BestEffort", "Burstable", "Guaranteed"},
+ },
+ },
+ "ephemeralContainerStatuses": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Statuses for any ephemeral containers that have run in this pod. Each ephemeral container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ContainerStatus"),
+ },
+ },
+ },
+ },
+ },
+ "resize": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Status of resources resize desired for pod's containers. It is empty if no resources resize is pending. Any changes to container resources will automatically set this to \"Proposed\" Deprecated: Resize status is moved to two pod conditions PodResizePending and PodResizeInProgress. PodResizePending will track states where the spec has been resized, but the Kubelet has not yet allocated the resources. PodResizeInProgress will track in-progress resizes, and should be present whenever allocated resources != acknowledged resources.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "resourceClaimStatuses": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "name",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge,retainKeys",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Status of resource claims.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodResourceClaimStatus"),
+ },
+ },
+ },
+ },
+ },
+ "extendedResourceClaimStatus": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Status of extended resource claim backed by DRA.",
+ Ref: ref("k8s.io/api/core/v1.PodExtendedResourceClaimStatus"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ContainerStatus", "k8s.io/api/core/v1.HostIP", "k8s.io/api/core/v1.PodCondition", "k8s.io/api/core/v1.PodExtendedResourceClaimStatus", "k8s.io/api/core/v1.PodIP", "k8s.io/api/core/v1.PodResourceClaimStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PodStatusResult(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodStatusResult is a wrapper for PodStatus returned by kubelet that can be encode/decoded",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Most recently observed status of the pod. This data may not be up to date. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodStatus"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.PodStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PodTemplate(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodTemplate describes a template for creating copies of a predefined pod.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "template": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Template defines the pods that will be created from this pod template. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodTemplateSpec"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.PodTemplateSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PodTemplateList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodTemplateList is a list of PodTemplates.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Description: "List of pod templates",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodTemplate"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"items"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.PodTemplate", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PodTemplateSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodTemplateSpec describes the data a pod should have when created from a template",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "spec": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodSpec"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.PodSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PortStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PortStatus represents the error condition of a service port",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "port": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Port is the port number of the service port of which status is recorded here",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "protocol": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Protocol is the protocol of the service port of which status is recorded here The supported values are: \"TCP\", \"UDP\", \"SCTP\"\n\nPossible enum values:\n - `\"SCTP\"` is the SCTP protocol.\n - `\"TCP\"` is the TCP protocol.\n - `\"UDP\"` is the UDP protocol.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"SCTP", "TCP", "UDP"},
+ },
+ },
+ "error": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Error is to record the problem with the service port The format of the error shall comply with the following rules: - built-in error values shall be specified in this file and those shall use\n CamelCase names\n- cloud provider specific error values must have names that comply with the\n format foo.example.com/CamelCase.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"port", "protocol"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_PortworxVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PortworxVolumeSource represents a Portworx volume resource.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "volumeID": {
+ SchemaProps: spec.SchemaProps{
+ Description: "volumeID uniquely identifies a Portworx volume",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fsType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\". Implicitly inferred to be \"ext4\" if unspecified.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"volumeID"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_PreferAvoidPodsEntry(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Describes a class of pods that should avoid this node.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "podSignature": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The class of pods.",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodSignature"),
+ },
+ },
+ "evictionTime": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Time at which this entry was added to the list.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ "reason": {
+ SchemaProps: spec.SchemaProps{
+ Description: "(brief) reason why this entry was added to the list.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "message": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Human readable message indicating why this entry was added to the list.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"podSignature"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.PodSignature", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"},
+ }
+}
+
+func schema_k8sio_api_core_v1_PreferredSchedulingTerm(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "weight": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "preference": {
+ SchemaProps: spec.SchemaProps{
+ Description: "A node selector term, associated with the corresponding weight.",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.NodeSelectorTerm"),
+ },
+ },
+ },
+ Required: []string{"weight", "preference"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.NodeSelectorTerm"},
+ }
+}
+
+func schema_k8sio_api_core_v1_Probe(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "exec": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Exec specifies a command to execute in the container.",
+ Ref: ref("k8s.io/api/core/v1.ExecAction"),
+ },
+ },
+ "httpGet": {
+ SchemaProps: spec.SchemaProps{
+ Description: "HTTPGet specifies an HTTP GET request to perform.",
+ Ref: ref("k8s.io/api/core/v1.HTTPGetAction"),
+ },
+ },
+ "tcpSocket": {
+ SchemaProps: spec.SchemaProps{
+ Description: "TCPSocket specifies a connection to a TCP port.",
+ Ref: ref("k8s.io/api/core/v1.TCPSocketAction"),
+ },
+ },
+ "grpc": {
+ SchemaProps: spec.SchemaProps{
+ Description: "GRPC specifies a GRPC HealthCheckRequest.",
+ Ref: ref("k8s.io/api/core/v1.GRPCAction"),
+ },
+ },
+ "initialDelaySeconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "timeoutSeconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "periodSeconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "successThreshold": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "failureThreshold": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "terminationGracePeriodSeconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ExecAction", "k8s.io/api/core/v1.GRPCAction", "k8s.io/api/core/v1.HTTPGetAction", "k8s.io/api/core/v1.TCPSocketAction"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ProbeHandler(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ProbeHandler defines a specific action that should be taken in a probe. One and only one of the fields must be specified.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "exec": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Exec specifies a command to execute in the container.",
+ Ref: ref("k8s.io/api/core/v1.ExecAction"),
+ },
+ },
+ "httpGet": {
+ SchemaProps: spec.SchemaProps{
+ Description: "HTTPGet specifies an HTTP GET request to perform.",
+ Ref: ref("k8s.io/api/core/v1.HTTPGetAction"),
+ },
+ },
+ "tcpSocket": {
+ SchemaProps: spec.SchemaProps{
+ Description: "TCPSocket specifies a connection to a TCP port.",
+ Ref: ref("k8s.io/api/core/v1.TCPSocketAction"),
+ },
+ },
+ "grpc": {
+ SchemaProps: spec.SchemaProps{
+ Description: "GRPC specifies a GRPC HealthCheckRequest.",
+ Ref: ref("k8s.io/api/core/v1.GRPCAction"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ExecAction", "k8s.io/api/core/v1.GRPCAction", "k8s.io/api/core/v1.HTTPGetAction", "k8s.io/api/core/v1.TCPSocketAction"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ProjectedVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a projected volume source",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "sources": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "sources is the list of volume projections. Each entry in this list handles one source.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.VolumeProjection"),
+ },
+ },
+ },
+ },
+ },
+ "defaultMode": {
+ SchemaProps: spec.SchemaProps{
+ Description: "defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.VolumeProjection"},
+ }
+}
+
+func schema_k8sio_api_core_v1_QuobyteVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a Quobyte mount that lasts the lifetime of a pod. Quobyte volumes do not support ownership management or SELinux relabeling.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "registry": {
+ SchemaProps: spec.SchemaProps{
+ Description: "registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "volume": {
+ SchemaProps: spec.SchemaProps{
+ Description: "volume is a string that references an already created Quobyte volume by name.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "user": {
+ SchemaProps: spec.SchemaProps{
+ Description: "user to map volume access to Defaults to serivceaccount user",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "group": {
+ SchemaProps: spec.SchemaProps{
+ Description: "group to map volume access to Default is no group",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "tenant": {
+ SchemaProps: spec.SchemaProps{
+ Description: "tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"registry", "volume"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_RBDPersistentVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "monitors": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "image": {
+ SchemaProps: spec.SchemaProps{
+ Description: "image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fsType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "pool": {
+ SchemaProps: spec.SchemaProps{
+ Description: "pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it",
+ Default: "rbd",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "user": {
+ SchemaProps: spec.SchemaProps{
+ Description: "user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it",
+ Default: "admin",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "keyring": {
+ SchemaProps: spec.SchemaProps{
+ Description: "keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it",
+ Default: "/etc/ceph/keyring",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "secretRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it",
+ Ref: ref("k8s.io/api/core/v1.SecretReference"),
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"monitors", "image"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.SecretReference"},
+ }
+}
+
+func schema_k8sio_api_core_v1_RBDVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "monitors": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "image": {
+ SchemaProps: spec.SchemaProps{
+ Description: "image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fsType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "pool": {
+ SchemaProps: spec.SchemaProps{
+ Description: "pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it",
+ Default: "rbd",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "user": {
+ SchemaProps: spec.SchemaProps{
+ Description: "user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it",
+ Default: "admin",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "keyring": {
+ SchemaProps: spec.SchemaProps{
+ Description: "keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it",
+ Default: "/etc/ceph/keyring",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "secretRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it",
+ Ref: ref("k8s.io/api/core/v1.LocalObjectReference"),
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"monitors", "image"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.LocalObjectReference"},
+ }
+}
+
+func schema_k8sio_api_core_v1_RangeAllocation(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "RangeAllocation is not a public type.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "range": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Range is string that identifies the range represented by 'data'.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "data": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Data is a bit array containing all allocated addresses in the previous segment.",
+ Type: []string{"string"},
+ Format: "byte",
+ },
+ },
+ },
+ Required: []string{"range", "data"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ReplicationController(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ReplicationController represents the configuration of a replication controller.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If the Labels of a ReplicationController are empty, they are defaulted to be the same as the Pod(s) that the replication controller manages. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "spec": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Spec defines the specification of the desired behavior of the replication controller. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ReplicationControllerSpec"),
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Status is the most recently observed status of the replication controller. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ReplicationControllerStatus"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ReplicationControllerSpec", "k8s.io/api/core/v1.ReplicationControllerStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ReplicationControllerCondition(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ReplicationControllerCondition describes the state of a replication controller at a certain point.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Type of replication controller condition.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Status of the condition, one of True, False, Unknown.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "lastTransitionTime": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The last time the condition transitioned from one status to another.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ "reason": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The reason for the condition's last transition.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "message": {
+ SchemaProps: spec.SchemaProps{
+ Description: "A human readable message indicating details about the transition.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"type", "status"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.Time"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ReplicationControllerList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ReplicationControllerList is a collection of replication controllers.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Description: "List of replication controllers. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ReplicationController"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"items"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ReplicationController", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ReplicationControllerSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ReplicationControllerSpec is the specification of a replication controller.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "replicas": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller",
+ Default: 1,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "minReadySeconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "selector": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-map-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Selector is a label query over pods that should match the Replicas count. If Selector is empty, it is defaulted to the labels present on the Pod template. Label keys and values that must match in order to be controlled by this replication controller, if empty defaulted to labels on Pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "template": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Template is the object that describes the pod that will be created if insufficient replicas are detected. This takes precedence over a TemplateRef. The only allowed template.spec.restartPolicy value is \"Always\". More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template",
+ Ref: ref("k8s.io/api/core/v1.PodTemplateSpec"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.PodTemplateSpec"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ReplicationControllerStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ReplicationControllerStatus represents the current status of a replication controller.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "replicas": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Replicas is the most recently observed number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "fullyLabeledReplicas": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The number of pods that have labels matching the labels of the pod template of the replication controller.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "readyReplicas": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The number of ready replicas for this replication controller.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "availableReplicas": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The number of available replicas (ready for at least minReadySeconds) for this replication controller.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "observedGeneration": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ObservedGeneration reflects the generation of the most recently observed replication controller.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "conditions": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "type",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "type",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents the latest available observations of a replication controller's current state.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ReplicationControllerCondition"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"replicas"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ReplicationControllerCondition"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ResourceClaim(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ResourceClaim references one entry in PodSpec.ResourceClaims.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "request": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Request is the name chosen for a request in the referenced claim. If empty, everything from the claim is made available, otherwise only the result of this request.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"name"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_ResourceFieldSelector(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ResourceFieldSelector represents container resources (cpu, memory) and their output format",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "containerName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Container name: required for volumes, optional for env vars",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "resource": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Required: resource to select",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "divisor": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Specifies the output format of the exposed resources, defaults to \"1\"",
+ Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
+ },
+ },
+ },
+ Required: []string{"resource"},
+ },
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-map-type": "atomic",
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/api/resource.Quantity"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ResourceHealth(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ResourceHealth represents the health of a resource. It has the latest device health information. This is a part of KEP https://kep.k8s.io/4680.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "resourceID": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ResourceID is the unique identifier of the resource. See the ResourceID type for more information.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "health": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Health of the resource. can be one of:\n - Healthy: operates as normal\n - Unhealthy: reported unhealthy. We consider this a temporary health issue\n since we do not have a mechanism today to distinguish\n temporary and permanent issues.\n - Unknown: The status cannot be determined.\n For example, Device Plugin got unregistered and hasn't been re-registered since.\n\nIn future we may want to introduce the PermanentlyUnhealthy Status.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"resourceID"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_ResourceQuota(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ResourceQuota sets aggregate quota restrictions enforced per namespace",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "spec": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Spec defines the desired quota. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ResourceQuotaSpec"),
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Status defines the actual enforced quota and its current usage. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ResourceQuotaStatus"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ResourceQuotaSpec", "k8s.io/api/core/v1.ResourceQuotaStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ResourceQuotaList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ResourceQuotaList is a list of ResourceQuota items.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Items is a list of ResourceQuota objects. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ResourceQuota"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"items"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ResourceQuota", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ResourceQuotaSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ResourceQuotaSpec defines the desired hard limits to enforce for Quota.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "hard": {
+ SchemaProps: spec.SchemaProps{
+ Description: "hard is the set of desired hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
+ },
+ },
+ },
+ },
+ },
+ "scopes": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "A collection of filters that must match each object tracked by a quota. If not specified, the quota matches all objects.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "scopeSelector": {
+ SchemaProps: spec.SchemaProps{
+ Description: "scopeSelector is also a collection of filters like scopes that must match each object tracked by a quota but expressed using ScopeSelectorOperator in combination with possible values. For a resource to match, both scopes AND scopeSelector (if specified in spec), must be matched.",
+ Ref: ref("k8s.io/api/core/v1.ScopeSelector"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ScopeSelector", "k8s.io/apimachinery/pkg/api/resource.Quantity"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ResourceQuotaStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ResourceQuotaStatus defines the enforced hard limits and observed use.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "hard": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Hard is the set of enforced hard limits for each named resource. More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
+ },
+ },
+ },
+ },
+ },
+ "used": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Used is the current observed total usage of the resource in the namespace.",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/api/resource.Quantity"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ResourceRequirements(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ResourceRequirements describes the compute resource requirements.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "limits": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
+ },
+ },
+ },
+ },
+ },
+ "requests": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
+ },
+ },
+ },
+ },
+ },
+ "claims": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "name",
+ },
+ "x-kubernetes-list-type": "map",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container.\n\nThis field depends on the DynamicResourceAllocation feature gate.\n\nThis field is immutable. It can only be set for containers.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ResourceClaim"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ResourceClaim", "k8s.io/apimachinery/pkg/api/resource.Quantity"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ResourceStatus represents the status of a single resource allocated to a Pod.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of the resource. Must be unique within the pod and in case of non-DRA resource, match one of the resources from the pod spec. For DRA resources, the value must be \"claim:/\". When this status is reported about a container, the \"claim_name\" and \"request\" must match one of the claims of this container.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "resources": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "resourceID",
+ },
+ "x-kubernetes-list-type": "map",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "List of unique resources health. Each element in the list contains an unique resource ID and its health. At a minimum, for the lifetime of a Pod, resource ID must uniquely identify the resource allocated to the Pod on the Node. If other Pod on the same Node reports the status with the same resource ID, it must be the same resource they share. See ResourceID type definition for a specific format it has in various use cases.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ResourceHealth"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"name"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ResourceHealth"},
+ }
+}
+
+func schema_k8sio_api_core_v1_SELinuxOptions(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "SELinuxOptions are the labels to be applied to the container",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "user": {
+ SchemaProps: spec.SchemaProps{
+ Description: "User is a SELinux user label that applies to the container.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "role": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Role is a SELinux role label that applies to the container.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Type is a SELinux type label that applies to the container.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "level": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Level is SELinux level label that applies to the container.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_ScaleIOPersistentVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ScaleIOPersistentVolumeSource represents a persistent ScaleIO volume",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "gateway": {
+ SchemaProps: spec.SchemaProps{
+ Description: "gateway is the host address of the ScaleIO API Gateway.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "system": {
+ SchemaProps: spec.SchemaProps{
+ Description: "system is the name of the storage system as configured in ScaleIO.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "secretRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.",
+ Ref: ref("k8s.io/api/core/v1.SecretReference"),
+ },
+ },
+ "sslEnabled": {
+ SchemaProps: spec.SchemaProps{
+ Description: "sslEnabled is the flag to enable/disable SSL communication with Gateway, default false",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "protectionDomain": {
+ SchemaProps: spec.SchemaProps{
+ Description: "protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "storagePool": {
+ SchemaProps: spec.SchemaProps{
+ Description: "storagePool is the ScaleIO Storage Pool associated with the protection domain.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "storageMode": {
+ SchemaProps: spec.SchemaProps{
+ Description: "storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.",
+ Default: "ThinProvisioned",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "volumeName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fsType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Default is \"xfs\"",
+ Default: "xfs",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"gateway", "system", "secretRef"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.SecretReference"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ScaleIOVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ScaleIOVolumeSource represents a persistent ScaleIO volume",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "gateway": {
+ SchemaProps: spec.SchemaProps{
+ Description: "gateway is the host address of the ScaleIO API Gateway.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "system": {
+ SchemaProps: spec.SchemaProps{
+ Description: "system is the name of the storage system as configured in ScaleIO.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "secretRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.",
+ Ref: ref("k8s.io/api/core/v1.LocalObjectReference"),
+ },
+ },
+ "sslEnabled": {
+ SchemaProps: spec.SchemaProps{
+ Description: "sslEnabled Flag enable/disable SSL communication with Gateway, default false",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "protectionDomain": {
+ SchemaProps: spec.SchemaProps{
+ Description: "protectionDomain is the name of the ScaleIO Protection Domain for the configured storage.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "storagePool": {
+ SchemaProps: spec.SchemaProps{
+ Description: "storagePool is the ScaleIO Storage Pool associated with the protection domain.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "storageMode": {
+ SchemaProps: spec.SchemaProps{
+ Description: "storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned.",
+ Default: "ThinProvisioned",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "volumeName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fsType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Default is \"xfs\".",
+ Default: "xfs",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"gateway", "system", "secretRef"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.LocalObjectReference"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ScopeSelector(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "A scope selector represents the AND of the selectors represented by the scoped-resource selector requirements.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "matchExpressions": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "A list of scope selector requirements by scope of the resources.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ScopedResourceSelectorRequirement"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-map-type": "atomic",
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ScopedResourceSelectorRequirement"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ScopedResourceSelectorRequirement(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "A scoped-resource selector requirement is a selector that contains values, a scope name, and an operator that relates the scope name and values.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "scopeName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The name of the scope that the selector applies to.\n\nPossible enum values:\n - `\"BestEffort\"` Match all pod objects that have best effort quality of service\n - `\"CrossNamespacePodAffinity\"` Match all pod objects that have cross-namespace pod (anti)affinity mentioned.\n - `\"NotBestEffort\"` Match all pod objects that do not have best effort quality of service\n - `\"NotTerminating\"` Match all pod objects where spec.activeDeadlineSeconds is nil\n - `\"PriorityClass\"` Match all pod objects that have priority class mentioned\n - `\"Terminating\"` Match all pod objects where spec.activeDeadlineSeconds >=0\n - `\"VolumeAttributesClass\"` Match all pvc objects that have volume attributes class mentioned.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"BestEffort", "CrossNamespacePodAffinity", "NotBestEffort", "NotTerminating", "PriorityClass", "Terminating", "VolumeAttributesClass"},
+ },
+ },
+ "operator": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a scope's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist.\n\nPossible enum values:\n - `\"DoesNotExist\"`\n - `\"Exists\"`\n - `\"In\"`\n - `\"NotIn\"`",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"DoesNotExist", "Exists", "In", "NotIn"},
+ },
+ },
+ "values": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"scopeName", "operator"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_SeccompProfile(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "SeccompProfile defines a pod/container's seccomp profile settings. Only one profile source may be set.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Description: "type indicates which kind of seccomp profile will be applied. Valid options are:\n\nLocalhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied.\n\nPossible enum values:\n - `\"Localhost\"` indicates a profile defined in a file on the node should be used. The file's location relative to /seccomp.\n - `\"RuntimeDefault\"` represents the default container runtime seccomp profile.\n - `\"Unconfined\"` indicates no seccomp profile is applied (A.K.A. unconfined).",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Localhost", "RuntimeDefault", "Unconfined"},
+ },
+ },
+ "localhostProfile": {
+ SchemaProps: spec.SchemaProps{
+ Description: "localhostProfile indicates a profile defined in a file on the node should be used. The profile must be preconfigured on the node to work. Must be a descending path, relative to the kubelet's configured seccomp profile location. Must be set if type is \"Localhost\". Must NOT be set for any other type.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"type"},
+ },
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-unions": []interface{}{
+ map[string]interface{}{
+ "discriminator": "type",
+ "fields-to-discriminateBy": map[string]interface{}{
+ "localhostProfile": "LocalhostProfile",
+ },
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_Secret(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Secret holds secret data of a certain type. The total bytes of the values in the Data field must be less than MaxSecretSize bytes.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "immutable": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Immutable, if set to true, ensures that data stored in the Secret cannot be updated (only object metadata can be modified). If not set to true, the field can be modified at any time. Defaulted to nil.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "data": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Data contains the secret data. Each key must consist of alphanumeric characters, '-', '_' or '.'. The serialized form of the secret data is a base64 encoded string, representing the arbitrary (possibly non-string) data value here. Described in https://tools.ietf.org/html/rfc4648#section-4",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "byte",
+ },
+ },
+ },
+ },
+ },
+ "stringData": {
+ SchemaProps: spec.SchemaProps{
+ Description: "stringData allows specifying non-binary secret data in string form. It is provided as a write-only input field for convenience. All keys and values are merged into the data field on write, overwriting any existing values. The stringData field is never output when reading from the API.",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Used to facilitate programmatic handling of secret data. More info: https://kubernetes.io/docs/concepts/configuration/secret/#secret-types",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_SecretEnvSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "SecretEnvSource selects a Secret to populate the environment variables with.\n\nThe contents of the target Secret's Data field will represent the key-value pairs as environment variables.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "optional": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Specify whether the Secret must be defined",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_SecretKeySelector(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "SecretKeySelector selects a key of a Secret.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "key": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The key of the secret to select from. Must be a valid secret key.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "optional": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Specify whether the Secret or its key must be defined",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"key"},
+ },
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-map-type": "atomic",
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_SecretList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "SecretList is a list of Secret.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Items is a list of secret objects. More info: https://kubernetes.io/docs/concepts/configuration/secret",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.Secret"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"items"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.Secret", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_SecretProjection(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Adapts a secret into a projected volume.\n\nThe contents of the target Secret's Data field will be presented in a projected volume as files using the keys in the Data field as the file names. Note that this is identical to a secret volume source without the default mode.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "items": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.KeyToPath"),
+ },
+ },
+ },
+ },
+ },
+ "optional": {
+ SchemaProps: spec.SchemaProps{
+ Description: "optional field specify whether the Secret or its key must be defined",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.KeyToPath"},
+ }
+}
+
+func schema_k8sio_api_core_v1_SecretReference(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "SecretReference represents a Secret Reference. It has enough information to retrieve secret in any namespace",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "name is unique within a namespace to reference a secret resource.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "namespace": {
+ SchemaProps: spec.SchemaProps{
+ Description: "namespace defines the space within which the secret name must be unique.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-map-type": "atomic",
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_SecretVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Adapts a Secret into a volume.\n\nThe contents of the target Secret's Data field will be presented in a volume as files using the keys in the Data field as the file names. Secret volumes support ownership management and SELinux relabeling.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "secretName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "secretName is the name of the secret in the pod's namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "items": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.KeyToPath"),
+ },
+ },
+ },
+ },
+ },
+ "defaultMode": {
+ SchemaProps: spec.SchemaProps{
+ Description: "defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "optional": {
+ SchemaProps: spec.SchemaProps{
+ Description: "optional field specify whether the Secret or its keys must be defined",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.KeyToPath"},
+ }
+}
+
+func schema_k8sio_api_core_v1_SecurityContext(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "capabilities": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows.",
+ Ref: ref("k8s.io/api/core/v1.Capabilities"),
+ },
+ },
+ "privileged": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "seLinuxOptions": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.",
+ Ref: ref("k8s.io/api/core/v1.SELinuxOptions"),
+ },
+ },
+ "windowsOptions": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The Windows specific settings applied to all containers. If unspecified, the options from the PodSecurityContext will be used. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is linux.",
+ Ref: ref("k8s.io/api/core/v1.WindowsSecurityContextOptions"),
+ },
+ },
+ "runAsUser": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "runAsGroup": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. Note that this field cannot be set when spec.os.name is windows.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "runAsNonRoot": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "readOnlyRootFilesystem": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Whether this container has a read-only root filesystem. Default is false. Note that this field cannot be set when spec.os.name is windows.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "allowPrivilegeEscalation": {
+ SchemaProps: spec.SchemaProps{
+ Description: "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "procMount": {
+ SchemaProps: spec.SchemaProps{
+ Description: "procMount denotes the type of proc mount to use for the containers. The default value is Default which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows.\n\nPossible enum values:\n - `\"Default\"` uses the container runtime defaults for readonly and masked paths for /proc. Most container runtimes mask certain paths in /proc to avoid accidental security exposure of special devices or information.\n - `\"Unmasked\"` bypasses the default masking behavior of the container runtime and ensures the newly created /proc the container stays in tact with no modifications.",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Default", "Unmasked"},
+ },
+ },
+ "seccompProfile": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The seccomp options to use by this container. If seccomp options are provided at both the pod & container level, the container options override the pod options. Note that this field cannot be set when spec.os.name is windows.",
+ Ref: ref("k8s.io/api/core/v1.SeccompProfile"),
+ },
+ },
+ "appArmorProfile": {
+ SchemaProps: spec.SchemaProps{
+ Description: "appArmorProfile is the AppArmor options to use by this container. If set, this profile overrides the pod's appArmorProfile. Note that this field cannot be set when spec.os.name is windows.",
+ Ref: ref("k8s.io/api/core/v1.AppArmorProfile"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.AppArmorProfile", "k8s.io/api/core/v1.Capabilities", "k8s.io/api/core/v1.SELinuxOptions", "k8s.io/api/core/v1.SeccompProfile", "k8s.io/api/core/v1.WindowsSecurityContextOptions"},
+ }
+}
+
+func schema_k8sio_api_core_v1_SerializedReference(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "SerializedReference is a reference to serialized object.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "reference": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The reference to an object in the system.",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ObjectReference"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ObjectReference"},
+ }
+}
+
+func schema_k8sio_api_core_v1_Service(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Service is a named abstraction of software service (for example, mysql) consisting of local port (for example 3306) that the proxy listens on, and the selector that determines which pods will answer requests sent through the proxy.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "spec": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Spec defines the behavior of a service. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ServiceSpec"),
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Most recently observed status of the service. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ServiceStatus"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ServiceSpec", "k8s.io/api/core/v1.ServiceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ServiceAccount(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ServiceAccount binds together: * a name, understood by users, and perhaps by peripheral systems, for an identity * a principal that can be authenticated and authorized * a set of secrets",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "secrets": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "name",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Secrets is a list of the secrets in the same namespace that pods running using this ServiceAccount are allowed to use. Pods are only limited to this list if this service account has a \"kubernetes.io/enforce-mountable-secrets\" annotation set to \"true\". The \"kubernetes.io/enforce-mountable-secrets\" annotation is deprecated since v1.32. Prefer separate namespaces to isolate access to mounted secrets. This field should not be used to find auto-generated service account token secrets for use outside of pods. Instead, tokens can be requested directly using the TokenRequest API, or service account token secrets can be manually created. More info: https://kubernetes.io/docs/concepts/configuration/secret",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ObjectReference"),
+ },
+ },
+ },
+ },
+ },
+ "imagePullSecrets": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet. More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.LocalObjectReference"),
+ },
+ },
+ },
+ },
+ },
+ "automountServiceAccountToken": {
+ SchemaProps: spec.SchemaProps{
+ Description: "AutomountServiceAccountToken indicates whether pods running as this service account should have an API token automatically mounted. Can be overridden at the pod level.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.ObjectReference", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ServiceAccountList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ServiceAccountList is a list of ServiceAccount objects",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Description: "List of ServiceAccounts. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ServiceAccount"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"items"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ServiceAccount", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ServiceAccountTokenProjection(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ServiceAccountTokenProjection represents a projected service account token volume. This projection can be used to insert a service account token into the pods runtime filesystem for use against APIs (Kubernetes API Server or otherwise).",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "audience": {
+ SchemaProps: spec.SchemaProps{
+ Description: "audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "expirationSeconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "path": {
+ SchemaProps: spec.SchemaProps{
+ Description: "path is the path relative to the mount point of the file to project the token into.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"path"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_ServiceList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ServiceList holds a list of services.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Description: "List of services",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.Service"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"items"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.Service", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ServicePort(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ServicePort contains information on service's port.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The name of this port within the service. This must be a DNS_LABEL. All ports within a ServiceSpec must have unique names. When considering the endpoints for a Service, this must match the 'name' field in the EndpointPort. Optional if only one ServicePort is defined on this service.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "protocol": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The IP protocol for this port. Supports \"TCP\", \"UDP\", and \"SCTP\". Default is TCP.\n\nPossible enum values:\n - `\"SCTP\"` is the SCTP protocol.\n - `\"TCP\"` is the TCP protocol.\n - `\"UDP\"` is the UDP protocol.",
+ Default: "TCP",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"SCTP", "TCP", "UDP"},
+ },
+ },
+ "appProtocol": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The application protocol for this port. This is used as a hint for implementations to offer richer behavior for protocols that they understand. This field follows standard Kubernetes label syntax. Valid values are either:\n\n* Un-prefixed protocol names - reserved for IANA standard service names (as per RFC-6335 and https://www.iana.org/assignments/service-names).\n\n* Kubernetes-defined prefixed names:\n * 'kubernetes.io/h2c' - HTTP/2 prior knowledge over cleartext as described in https://www.rfc-editor.org/rfc/rfc9113.html#name-starting-http-2-with-prior-\n * 'kubernetes.io/ws' - WebSocket over cleartext as described in https://www.rfc-editor.org/rfc/rfc6455\n * 'kubernetes.io/wss' - WebSocket over TLS as described in https://www.rfc-editor.org/rfc/rfc6455\n\n* Other protocols should use implementation-defined prefixed names such as mycompany.com/my-custom-protocol.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "port": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The port that will be exposed by this service.",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "targetPort": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Number or name of the port to access on the pods targeted by the service. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. If this is a string, it will be looked up as a named port in the target Pod's container ports. If this is not specified, the value of the 'port' field is used (an identity map). This field is ignored for services with clusterIP=None, and should be omitted or set equal to the 'port' field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service",
+ Ref: ref("k8s.io/apimachinery/pkg/util/intstr.IntOrString"),
+ },
+ },
+ "nodePort": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The port on each node on which this service is exposed when type is NodePort or LoadBalancer. Usually assigned by the system. If a value is specified, in-range, and not in use it will be used, otherwise the operation will fail. If not specified, a port will be allocated if this Service requires one. If this field is specified when creating a Service which does not need it, creation will fail. This field will be wiped when updating a Service to no longer need it (e.g. changing type from NodePort to ClusterIP). More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ },
+ Required: []string{"port"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/util/intstr.IntOrString"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ServiceProxyOptions(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ServiceProxyOptions is the query options to a Service's proxy call.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "path": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Path is the part of URLs that include service endpoints, suffixes, and parameters to use for the current proxy request to service. For example, the whole request URL is http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy. Path is _search?q=user:kimchy.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_ServiceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ServiceSpec describes the attributes that a user creates on a service.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "ports": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "port",
+ "protocol",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "port",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "The list of ports that are exposed by this service. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ServicePort"),
+ },
+ },
+ },
+ },
+ },
+ "selector": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-map-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Route service traffic to pods with label keys and values matching this selector. If empty or not present, the service is assumed to have an external process managing its endpoints, which Kubernetes will not modify. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "clusterIP": {
+ SchemaProps: spec.SchemaProps{
+ Description: "clusterIP is the IP address of the service and is usually assigned randomly. If an address is specified manually, is in-range (as per system configuration), and is not in use, it will be allocated to the service; otherwise creation of the service will fail. This field may not be changed through updates unless the type field is also being changed to ExternalName (which requires this field to be blank) or the type field is being changed from ExternalName (in which case this field may optionally be specified, as describe above). Valid values are \"None\", empty string (\"\"), or a valid IP address. Setting this to \"None\" makes a \"headless service\" (no virtual IP), which is useful when direct endpoint connections are preferred and proxying is not required. Only applies to types ClusterIP, NodePort, and LoadBalancer. If this field is specified when creating a Service of type ExternalName, creation will fail. This field will be wiped when updating a Service to type ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "clusterIPs": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "ClusterIPs is a list of IP addresses assigned to this service, and are usually assigned randomly. If an address is specified manually, is in-range (as per system configuration), and is not in use, it will be allocated to the service; otherwise creation of the service will fail. This field may not be changed through updates unless the type field is also being changed to ExternalName (which requires this field to be empty) or the type field is being changed from ExternalName (in which case this field may optionally be specified, as describe above). Valid values are \"None\", empty string (\"\"), or a valid IP address. Setting this to \"None\" makes a \"headless service\" (no virtual IP), which is useful when direct endpoint connections are preferred and proxying is not required. Only applies to types ClusterIP, NodePort, and LoadBalancer. If this field is specified when creating a Service of type ExternalName, creation will fail. This field will be wiped when updating a Service to type ExternalName. If this field is not specified, it will be initialized from the clusterIP field. If this field is specified, clients must ensure that clusterIPs[0] and clusterIP have the same value.\n\nThis field may hold a maximum of two entries (dual-stack IPs, in either order). These IPs must correspond to the values of the ipFamilies field. Both clusterIPs and ipFamilies are governed by the ipFamilyPolicy field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Description: "type determines how the Service is exposed. Defaults to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. \"ClusterIP\" allocates a cluster-internal IP address for load-balancing to endpoints. Endpoints are determined by the selector or if that is not specified, by manual construction of an Endpoints object or EndpointSlice objects. If clusterIP is \"None\", no virtual IP is allocated and the endpoints are published as a set of endpoints rather than a virtual IP. \"NodePort\" builds on ClusterIP and allocates a port on every node which routes to the same endpoints as the clusterIP. \"LoadBalancer\" builds on NodePort and creates an external load-balancer (if supported in the current cloud) which routes to the same endpoints as the clusterIP. \"ExternalName\" aliases this service to the specified externalName. Several other fields do not apply to ExternalName services. More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types\n\nPossible enum values:\n - `\"ClusterIP\"` means a service will only be accessible inside the cluster, via the cluster IP.\n - `\"ExternalName\"` means a service consists of only a reference to an external name that kubedns or equivalent will return as a CNAME record, with no exposing or proxying of any pods involved.\n - `\"LoadBalancer\"` means a service will be exposed via an external load balancer (if the cloud provider supports it), in addition to 'NodePort' type.\n - `\"NodePort\"` means a service will be exposed on one port of every node, in addition to 'ClusterIP' type.",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"ClusterIP", "ExternalName", "LoadBalancer", "NodePort"},
+ },
+ },
+ "externalIPs": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "externalIPs is a list of IP addresses for which nodes in the cluster will also accept traffic for this service. These IPs are not managed by Kubernetes. The user is responsible for ensuring that traffic arrives at a node with this IP. A common example is external load-balancers that are not part of the Kubernetes system.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "sessionAffinity": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Supports \"ClientIP\" and \"None\". Used to maintain session affinity. Enable client IP based session affinity. Must be ClientIP or None. Defaults to None. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies\n\nPossible enum values:\n - `\"ClientIP\"` is the Client IP based.\n - `\"None\"` - no session affinity.",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"ClientIP", "None"},
+ },
+ },
+ "loadBalancerIP": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Only applies to Service Type: LoadBalancer. This feature depends on whether the underlying cloud-provider supports specifying the loadBalancerIP when a load balancer is created. This field will be ignored if the cloud-provider does not support the feature. Deprecated: This field was under-specified and its meaning varies across implementations. Using it is non-portable and it may not support dual-stack. Users are encouraged to use implementation-specific annotations when available.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "loadBalancerSourceRanges": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "If specified and supported by the platform, this will restrict traffic through the cloud-provider load-balancer will be restricted to the specified client IPs. This field will be ignored if the cloud-provider does not support the feature.\" More info: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "externalName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "externalName is the external reference that discovery mechanisms will return as an alias for this service (e.g. a DNS CNAME record). No proxying will be involved. Must be a lowercase RFC-1123 hostname (https://tools.ietf.org/html/rfc1123) and requires `type` to be \"ExternalName\".",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "externalTrafficPolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "externalTrafficPolicy describes how nodes distribute service traffic they receive on one of the Service's \"externally-facing\" addresses (NodePorts, ExternalIPs, and LoadBalancer IPs). If set to \"Local\", the proxy will configure the service in a way that assumes that external load balancers will take care of balancing the service traffic between nodes, and so each node will deliver traffic only to the node-local endpoints of the service, without masquerading the client source IP. (Traffic mistakenly sent to a node with no endpoints will be dropped.) The default value, \"Cluster\", uses the standard behavior of routing to all endpoints evenly (possibly modified by topology and other features). Note that traffic sent to an External IP or LoadBalancer IP from within the cluster will always get \"Cluster\" semantics, but clients sending to a NodePort from within the cluster may need to take traffic policy into account when picking a node.\n\nPossible enum values:\n - `\"Cluster\"`\n - `\"Cluster\"` routes traffic to all endpoints.\n - `\"Local\"`\n - `\"Local\"` preserves the source IP of the traffic by routing only to endpoints on the same node as the traffic was received on (dropping the traffic if there are no local endpoints).",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Cluster", "Cluster", "Local", "Local"},
+ },
+ },
+ "healthCheckNodePort": {
+ SchemaProps: spec.SchemaProps{
+ Description: "healthCheckNodePort specifies the healthcheck nodePort for the service. This only applies when type is set to LoadBalancer and externalTrafficPolicy is set to Local. If a value is specified, is in-range, and is not in use, it will be used. If not specified, a value will be automatically allocated. External systems (e.g. load-balancers) can use this port to determine if a given node holds endpoints for this service or not. If this field is specified when creating a Service which does not need it, creation will fail. This field will be wiped when updating a Service to no longer need it (e.g. changing type). This field cannot be updated once set.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "publishNotReadyAddresses": {
+ SchemaProps: spec.SchemaProps{
+ Description: "publishNotReadyAddresses indicates that any agent which deals with endpoints for this Service should disregard any indications of ready/not-ready. The primary use case for setting this field is for a StatefulSet's Headless Service to propagate SRV DNS records for its Pods for the purpose of peer discovery. The Kubernetes controllers that generate Endpoints and EndpointSlice resources for Services interpret this to mean that all endpoints are considered \"ready\" even if the Pods themselves are not. Agents which consume only Kubernetes generated endpoints through the Endpoints or EndpointSlice resources can safely assume this behavior.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "sessionAffinityConfig": {
+ SchemaProps: spec.SchemaProps{
+ Description: "sessionAffinityConfig contains the configurations of session affinity.",
+ Ref: ref("k8s.io/api/core/v1.SessionAffinityConfig"),
+ },
+ },
+ "ipFamilies": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this service. This field is usually assigned automatically based on cluster configuration and the ipFamilyPolicy field. If this field is specified manually, the requested family is available in the cluster, and ipFamilyPolicy allows it, it will be used; otherwise creation of the service will fail. This field is conditionally mutable: it allows for adding or removing a secondary IP family, but it does not allow changing the primary IP family of the Service. Valid values are \"IPv4\" and \"IPv6\". This field only applies to Services of types ClusterIP, NodePort, and LoadBalancer, and does apply to \"headless\" services. This field will be wiped when updating a Service to type ExternalName.\n\nThis field may hold a maximum of two entries (dual-stack families, in either order). These families must correspond to the values of the clusterIPs field, if specified. Both clusterIPs and ipFamilies are governed by the ipFamilyPolicy field.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "ipFamilyPolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "IPFamilyPolicy represents the dual-stack-ness requested or required by this Service. If there is no value provided, then this field will be set to SingleStack. Services can be \"SingleStack\" (a single IP family), \"PreferDualStack\" (two IP families on dual-stack configured clusters or a single IP family on single-stack clusters), or \"RequireDualStack\" (two IP families on dual-stack configured clusters, otherwise fail). The ipFamilies and clusterIPs fields depend on the value of this field. This field will be wiped when updating a service to type ExternalName.\n\nPossible enum values:\n - `\"PreferDualStack\"` indicates that this service prefers dual-stack when the cluster is configured for dual-stack. If the cluster is not configured for dual-stack the service will be assigned a single IPFamily. If the IPFamily is not set in service.spec.ipFamilies then the service will be assigned the default IPFamily configured on the cluster\n - `\"RequireDualStack\"` indicates that this service requires dual-stack. Using IPFamilyPolicyRequireDualStack on a single stack cluster will result in validation errors. The IPFamilies (and their order) assigned to this service is based on service.spec.ipFamilies. If service.spec.ipFamilies was not provided then it will be assigned according to how they are configured on the cluster. If service.spec.ipFamilies has only one entry then the alternative IPFamily will be added by apiserver\n - `\"SingleStack\"` indicates that this service is required to have a single IPFamily. The IPFamily assigned is based on the default IPFamily used by the cluster or as identified by service.spec.ipFamilies field",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"PreferDualStack", "RequireDualStack", "SingleStack"},
+ },
+ },
+ "allocateLoadBalancerNodePorts": {
+ SchemaProps: spec.SchemaProps{
+ Description: "allocateLoadBalancerNodePorts defines if NodePorts will be automatically allocated for services with type LoadBalancer. Default is \"true\". It may be set to \"false\" if the cluster load-balancer does not rely on NodePorts. If the caller requests specific NodePorts (by specifying a value), those requests will be respected, regardless of this field. This field may only be set for services with type LoadBalancer and will be cleared if the type is changed to any other type.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "loadBalancerClass": {
+ SchemaProps: spec.SchemaProps{
+ Description: "loadBalancerClass is the class of the load balancer implementation this Service belongs to. If specified, the value of this field must be a label-style identifier, with an optional prefix, e.g. \"internal-vip\" or \"example.com/internal-vip\". Unprefixed names are reserved for end-users. This field can only be set when the Service type is 'LoadBalancer'. If not set, the default load balancer implementation is used, today this is typically done through the cloud provider integration, but should apply for any default implementation. If set, it is assumed that a load balancer implementation is watching for Services with a matching class. Any default load balancer implementation (e.g. cloud providers) should ignore Services that set this field. This field can only be set when creating or updating a Service to type 'LoadBalancer'. Once set, it can not be changed. This field will be wiped when a service is updated to a non 'LoadBalancer' type.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "internalTrafficPolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "InternalTrafficPolicy describes how nodes distribute service traffic they receive on the ClusterIP. If set to \"Local\", the proxy will assume that pods only want to talk to endpoints of the service on the same node as the pod, dropping the traffic if there are no local endpoints. The default value, \"Cluster\", uses the standard behavior of routing to all endpoints evenly (possibly modified by topology and other features).\n\nPossible enum values:\n - `\"Cluster\"` routes traffic to all endpoints.\n - `\"Local\"` routes traffic only to endpoints on the same node as the client pod (dropping the traffic if there are no local endpoints).",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Cluster", "Local"},
+ },
+ },
+ "trafficDistribution": {
+ SchemaProps: spec.SchemaProps{
+ Description: "TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to \"PreferClose\", implementations should prioritize endpoints that are in the same zone.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ServicePort", "k8s.io/api/core/v1.SessionAffinityConfig"},
+ }
+}
+
+func schema_k8sio_api_core_v1_ServiceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ServiceStatus represents the current status of a service.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "loadBalancer": {
+ SchemaProps: spec.SchemaProps{
+ Description: "LoadBalancer contains the current status of the load-balancer, if one is present.",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.LoadBalancerStatus"),
+ },
+ },
+ "conditions": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "type",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "type",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Current service state",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Condition"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.LoadBalancerStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"},
+ }
+}
+
+func schema_k8sio_api_core_v1_SessionAffinityConfig(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "SessionAffinityConfig represents the configurations of session affinity.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "clientIP": {
+ SchemaProps: spec.SchemaProps{
+ Description: "clientIP contains the configurations of Client IP based session affinity.",
+ Ref: ref("k8s.io/api/core/v1.ClientIPConfig"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ClientIPConfig"},
+ }
+}
+
+func schema_k8sio_api_core_v1_SleepAction(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "SleepAction describes a \"sleep\" action.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "seconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Seconds is the number of seconds to sleep.",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ },
+ Required: []string{"seconds"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_StorageOSPersistentVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a StorageOS persistent volume resource.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "volumeName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "volumeNamespace": {
+ SchemaProps: spec.SchemaProps{
+ Description: "volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \"default\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fsType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "secretRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.",
+ Ref: ref("k8s.io/api/core/v1.ObjectReference"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ObjectReference"},
+ }
+}
+
+func schema_k8sio_api_core_v1_StorageOSVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a StorageOS persistent volume resource.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "volumeName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "volumeNamespace": {
+ SchemaProps: spec.SchemaProps{
+ Description: "volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to \"default\" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fsType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "secretRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.",
+ Ref: ref("k8s.io/api/core/v1.LocalObjectReference"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.LocalObjectReference"},
+ }
+}
+
+func schema_k8sio_api_core_v1_Sysctl(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Sysctl defines a kernel parameter to be set",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of a property to set",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "value": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Value of a property to set",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"name", "value"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_TCPSocketAction(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "TCPSocketAction describes an action based on opening a socket",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "port": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.",
+ Ref: ref("k8s.io/apimachinery/pkg/util/intstr.IntOrString"),
+ },
+ },
+ "host": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Optional: Host name to connect to, defaults to the pod IP.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"port"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/util/intstr.IntOrString"},
+ }
+}
+
+func schema_k8sio_api_core_v1_Taint(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "The node this Taint is attached to has the \"effect\" on any pod that does not tolerate the Taint.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "key": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Required. The taint key to be applied to a node.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "value": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The taint value corresponding to the taint key.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "effect": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Required. The effect of the taint on pods that do not tolerate the taint. Valid effects are NoSchedule, PreferNoSchedule and NoExecute.\n\nPossible enum values:\n - `\"NoExecute\"` Evict any already-running pods that do not tolerate the taint. Currently enforced by NodeController.\n - `\"NoSchedule\"` Do not allow new pods to schedule onto the node unless they tolerate the taint, but allow all pods submitted to Kubelet without going through the scheduler to start, and allow all already-running pods to continue running. Enforced by the scheduler.\n - `\"PreferNoSchedule\"` Like TaintEffectNoSchedule, but the scheduler tries not to schedule new pods onto the node, rather than prohibiting new pods from scheduling onto the node entirely. Enforced by the scheduler.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"NoExecute", "NoSchedule", "PreferNoSchedule"},
+ },
+ },
+ "timeAdded": {
+ SchemaProps: spec.SchemaProps{
+ Description: "TimeAdded represents the time at which the taint was added.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ },
+ Required: []string{"key", "effect"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.Time"},
+ }
+}
+
+func schema_k8sio_api_core_v1_Toleration(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "The pod this Toleration is attached to tolerates any taint that matches the triple using the matching operator .",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "key": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "operator": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.\n\nPossible enum values:\n - `\"Equal\"`\n - `\"Exists\"`",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Equal", "Exists"},
+ },
+ },
+ "value": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "effect": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.\n\nPossible enum values:\n - `\"NoExecute\"` Evict any already-running pods that do not tolerate the taint. Currently enforced by NodeController.\n - `\"NoSchedule\"` Do not allow new pods to schedule onto the node unless they tolerate the taint, but allow all pods submitted to Kubelet without going through the scheduler to start, and allow all already-running pods to continue running. Enforced by the scheduler.\n - `\"PreferNoSchedule\"` Like TaintEffectNoSchedule, but the scheduler tries not to schedule new pods onto the node, rather than prohibiting new pods from scheduling onto the node entirely. Enforced by the scheduler.",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"NoExecute", "NoSchedule", "PreferNoSchedule"},
+ },
+ },
+ "tolerationSeconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_TopologySelectorLabelRequirement(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "A topology selector requirement is a selector that matches given label. This is an alpha feature and may change in the future.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "key": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The label key that the selector applies to.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "values": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "An array of string values. One value must match the label to be selected. Each entry in Values is ORed.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"key", "values"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_TopologySelectorTerm(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "A topology selector term represents the result of label queries. A null or empty topology selector term matches no objects. The requirements of them are ANDed. It provides a subset of functionality as NodeSelectorTerm. This is an alpha feature and may change in the future.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "matchLabelExpressions": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "A list of topology selector requirements by labels.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.TopologySelectorLabelRequirement"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-map-type": "atomic",
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.TopologySelectorLabelRequirement"},
+ }
+}
+
+func schema_k8sio_api_core_v1_TopologySpreadConstraint(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "TopologySpreadConstraint specifies how to spread matching pods among the given topology.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "maxSkew": {
+ SchemaProps: spec.SchemaProps{
+ Description: "MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence to topologies that satisfy it. It's a required field. Default value is 1 and 0 is not allowed.",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "topologyKey": {
+ SchemaProps: spec.SchemaProps{
+ Description: "TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each as a \"bucket\", and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is \"kubernetes.io/hostname\", each Node is a domain of that topology. And, if TopologyKey is \"topology.kubernetes.io/zone\", each zone is a domain of that topology. It's a required field.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "whenUnsatisfiable": {
+ SchemaProps: spec.SchemaProps{
+ Description: "WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location,\n but giving higher precedence to topologies that would help reduce the\n skew.\nA constraint is considered \"Unsatisfiable\" for an incoming pod if and only if every possible node assignment for that pod would violate \"MaxSkew\" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: | zone1 | zone2 | zone3 | | P P P | P | P | If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won't make it *more* imbalanced. It's a required field.\n\nPossible enum values:\n - `\"DoNotSchedule\"` instructs the scheduler not to schedule the pod when constraints are not satisfied.\n - `\"ScheduleAnyway\"` instructs the scheduler to schedule the pod even if constraints are not satisfied.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"DoNotSchedule", "ScheduleAnyway"},
+ },
+ },
+ "labelSelector": {
+ SchemaProps: spec.SchemaProps{
+ Description: "LabelSelector is used to find matching pods. Pods that match this label selector are counted to determine the number of pods in their corresponding topology domain.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"),
+ },
+ },
+ "minDomains": {
+ SchemaProps: spec.SchemaProps{
+ Description: "MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule.\n\nFor example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "nodeAffinityPolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations.\n\nIf this value is nil, the behavior is equivalent to the Honor policy.\n\nPossible enum values:\n - `\"Honor\"` means use this scheduling directive when calculating pod topology spread skew.\n - `\"Ignore\"` means ignore this scheduling directive when calculating pod topology spread skew.",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Honor", "Ignore"},
+ },
+ },
+ "nodeTaintsPolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included.\n\nIf this value is nil, the behavior is equivalent to the Ignore policy.\n\nPossible enum values:\n - `\"Honor\"` means use this scheduling directive when calculating pod topology spread skew.\n - `\"Ignore\"` means ignore this scheduling directive when calculating pod topology spread skew.",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Honor", "Ignore"},
+ },
+ },
+ "matchLabelKeys": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot be set when LabelSelector isn't set. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector.\n\nThis is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default).",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"maxSkew", "topologyKey", "whenUnsatisfiable"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"},
+ }
+}
+
+func schema_k8sio_api_core_v1_TypedLocalObjectReference(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "TypedLocalObjectReference contains enough information to let you locate the typed referenced object inside the same namespace.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "apiGroup": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is the type of resource being referenced",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name is the name of resource being referenced",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"kind", "name"},
+ },
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-map-type": "atomic",
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_TypedObjectReference(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "TypedObjectReference contains enough information to let you locate the typed referenced object",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "apiGroup": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is the type of resource being referenced",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name is the name of resource being referenced",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "namespace": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"kind", "name"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_Volume(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Volume represents a named volume in a pod that may be accessed by any container in the pod.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "hostPath": {
+ SchemaProps: spec.SchemaProps{
+ Description: "hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath",
+ Ref: ref("k8s.io/api/core/v1.HostPathVolumeSource"),
+ },
+ },
+ "emptyDir": {
+ SchemaProps: spec.SchemaProps{
+ Description: "emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir",
+ Ref: ref("k8s.io/api/core/v1.EmptyDirVolumeSource"),
+ },
+ },
+ "gcePersistentDisk": {
+ SchemaProps: spec.SchemaProps{
+ Description: "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk",
+ Ref: ref("k8s.io/api/core/v1.GCEPersistentDiskVolumeSource"),
+ },
+ },
+ "awsElasticBlockStore": {
+ SchemaProps: spec.SchemaProps{
+ Description: "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore",
+ Ref: ref("k8s.io/api/core/v1.AWSElasticBlockStoreVolumeSource"),
+ },
+ },
+ "gitRepo": {
+ SchemaProps: spec.SchemaProps{
+ Description: "gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.",
+ Ref: ref("k8s.io/api/core/v1.GitRepoVolumeSource"),
+ },
+ },
+ "secret": {
+ SchemaProps: spec.SchemaProps{
+ Description: "secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret",
+ Ref: ref("k8s.io/api/core/v1.SecretVolumeSource"),
+ },
+ },
+ "nfs": {
+ SchemaProps: spec.SchemaProps{
+ Description: "nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs",
+ Ref: ref("k8s.io/api/core/v1.NFSVolumeSource"),
+ },
+ },
+ "iscsi": {
+ SchemaProps: spec.SchemaProps{
+ Description: "iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi",
+ Ref: ref("k8s.io/api/core/v1.ISCSIVolumeSource"),
+ },
+ },
+ "glusterfs": {
+ SchemaProps: spec.SchemaProps{
+ Description: "glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.GlusterfsVolumeSource"),
+ },
+ },
+ "persistentVolumeClaim": {
+ SchemaProps: spec.SchemaProps{
+ Description: "persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims",
+ Ref: ref("k8s.io/api/core/v1.PersistentVolumeClaimVolumeSource"),
+ },
+ },
+ "rbd": {
+ SchemaProps: spec.SchemaProps{
+ Description: "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.RBDVolumeSource"),
+ },
+ },
+ "flexVolume": {
+ SchemaProps: spec.SchemaProps{
+ Description: "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.",
+ Ref: ref("k8s.io/api/core/v1.FlexVolumeSource"),
+ },
+ },
+ "cinder": {
+ SchemaProps: spec.SchemaProps{
+ Description: "cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md",
+ Ref: ref("k8s.io/api/core/v1.CinderVolumeSource"),
+ },
+ },
+ "cephfs": {
+ SchemaProps: spec.SchemaProps{
+ Description: "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.CephFSVolumeSource"),
+ },
+ },
+ "flocker": {
+ SchemaProps: spec.SchemaProps{
+ Description: "flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.FlockerVolumeSource"),
+ },
+ },
+ "downwardAPI": {
+ SchemaProps: spec.SchemaProps{
+ Description: "downwardAPI represents downward API about the pod that should populate this volume",
+ Ref: ref("k8s.io/api/core/v1.DownwardAPIVolumeSource"),
+ },
+ },
+ "fc": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.",
+ Ref: ref("k8s.io/api/core/v1.FCVolumeSource"),
+ },
+ },
+ "azureFile": {
+ SchemaProps: spec.SchemaProps{
+ Description: "azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver.",
+ Ref: ref("k8s.io/api/core/v1.AzureFileVolumeSource"),
+ },
+ },
+ "configMap": {
+ SchemaProps: spec.SchemaProps{
+ Description: "configMap represents a configMap that should populate this volume",
+ Ref: ref("k8s.io/api/core/v1.ConfigMapVolumeSource"),
+ },
+ },
+ "vsphereVolume": {
+ SchemaProps: spec.SchemaProps{
+ Description: "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver.",
+ Ref: ref("k8s.io/api/core/v1.VsphereVirtualDiskVolumeSource"),
+ },
+ },
+ "quobyte": {
+ SchemaProps: spec.SchemaProps{
+ Description: "quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.QuobyteVolumeSource"),
+ },
+ },
+ "azureDisk": {
+ SchemaProps: spec.SchemaProps{
+ Description: "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver.",
+ Ref: ref("k8s.io/api/core/v1.AzureDiskVolumeSource"),
+ },
+ },
+ "photonPersistentDisk": {
+ SchemaProps: spec.SchemaProps{
+ Description: "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.PhotonPersistentDiskVolumeSource"),
+ },
+ },
+ "projected": {
+ SchemaProps: spec.SchemaProps{
+ Description: "projected items for all in one resources secrets, configmaps, and downward API",
+ Ref: ref("k8s.io/api/core/v1.ProjectedVolumeSource"),
+ },
+ },
+ "portworxVolume": {
+ SchemaProps: spec.SchemaProps{
+ Description: "portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on.",
+ Ref: ref("k8s.io/api/core/v1.PortworxVolumeSource"),
+ },
+ },
+ "scaleIO": {
+ SchemaProps: spec.SchemaProps{
+ Description: "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.ScaleIOVolumeSource"),
+ },
+ },
+ "storageos": {
+ SchemaProps: spec.SchemaProps{
+ Description: "storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.StorageOSVolumeSource"),
+ },
+ },
+ "csi": {
+ SchemaProps: spec.SchemaProps{
+ Description: "csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers.",
+ Ref: ref("k8s.io/api/core/v1.CSIVolumeSource"),
+ },
+ },
+ "ephemeral": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed.\n\nUse this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity\n tracking are needed,\nc) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through\n a PersistentVolumeClaim (see EphemeralVolumeSource for more\n information on the connection between this volume type\n and PersistentVolumeClaim).\n\nUse PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod.\n\nUse CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information.\n\nA pod can use both types of ephemeral volumes and persistent volumes at the same time.",
+ Ref: ref("k8s.io/api/core/v1.EphemeralVolumeSource"),
+ },
+ },
+ "image": {
+ SchemaProps: spec.SchemaProps{
+ Description: "image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. The volume is resolved at pod startup depending on which PullPolicy value is provided:\n\n- Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.\n\nThe volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation. A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. The volume will be mounted read-only (ro) and non-executable files (noexec). Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath) before 1.33. The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.",
+ Ref: ref("k8s.io/api/core/v1.ImageVolumeSource"),
+ },
+ },
+ },
+ Required: []string{"name"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.AWSElasticBlockStoreVolumeSource", "k8s.io/api/core/v1.AzureDiskVolumeSource", "k8s.io/api/core/v1.AzureFileVolumeSource", "k8s.io/api/core/v1.CSIVolumeSource", "k8s.io/api/core/v1.CephFSVolumeSource", "k8s.io/api/core/v1.CinderVolumeSource", "k8s.io/api/core/v1.ConfigMapVolumeSource", "k8s.io/api/core/v1.DownwardAPIVolumeSource", "k8s.io/api/core/v1.EmptyDirVolumeSource", "k8s.io/api/core/v1.EphemeralVolumeSource", "k8s.io/api/core/v1.FCVolumeSource", "k8s.io/api/core/v1.FlexVolumeSource", "k8s.io/api/core/v1.FlockerVolumeSource", "k8s.io/api/core/v1.GCEPersistentDiskVolumeSource", "k8s.io/api/core/v1.GitRepoVolumeSource", "k8s.io/api/core/v1.GlusterfsVolumeSource", "k8s.io/api/core/v1.HostPathVolumeSource", "k8s.io/api/core/v1.ISCSIVolumeSource", "k8s.io/api/core/v1.ImageVolumeSource", "k8s.io/api/core/v1.NFSVolumeSource", "k8s.io/api/core/v1.PersistentVolumeClaimVolumeSource", "k8s.io/api/core/v1.PhotonPersistentDiskVolumeSource", "k8s.io/api/core/v1.PortworxVolumeSource", "k8s.io/api/core/v1.ProjectedVolumeSource", "k8s.io/api/core/v1.QuobyteVolumeSource", "k8s.io/api/core/v1.RBDVolumeSource", "k8s.io/api/core/v1.ScaleIOVolumeSource", "k8s.io/api/core/v1.SecretVolumeSource", "k8s.io/api/core/v1.StorageOSVolumeSource", "k8s.io/api/core/v1.VsphereVirtualDiskVolumeSource"},
+ }
+}
+
+func schema_k8sio_api_core_v1_VolumeDevice(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "volumeDevice describes a mapping of a raw block device within a container.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "name must match the name of a persistentVolumeClaim in the pod",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "devicePath": {
+ SchemaProps: spec.SchemaProps{
+ Description: "devicePath is the path inside of the container that the device will be mapped to.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"name", "devicePath"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_VolumeMount(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "VolumeMount describes a mounting of a Volume within a container.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "This must match the Name of a Volume.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "recursiveReadOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "RecursiveReadOnly specifies whether read-only mounts should be handled recursively.\n\nIf ReadOnly is false, this field has no meaning and must be unspecified.\n\nIf ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason.\n\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None).\n\nIf this field is not specified, it is treated as an equivalent of Disabled.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "mountPath": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Path within the container at which the volume should be mounted. Must not contain ':'.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "subPath": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Path within the volume from which the container's volume should be mounted. Defaults to \"\" (volume's root).",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "mountPropagation": {
+ SchemaProps: spec.SchemaProps{
+ Description: "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).\n\nPossible enum values:\n - `\"Bidirectional\"` means that the volume in a container will receive new mounts from the host or other containers, and its own mounts will be propagated from the container to the host or other containers. Note that this mode is recursively applied to all mounts in the volume (\"rshared\" in Linux terminology).\n - `\"HostToContainer\"` means that the volume in a container will receive new mounts from the host or other containers, but filesystems mounted inside the container won't be propagated to the host or other containers. Note that this mode is recursively applied to all mounts in the volume (\"rslave\" in Linux terminology).\n - `\"None\"` means that the volume in a container will not receive new mounts from the host or other containers, and filesystems mounted inside the container won't be propagated to the host or other containers. Note that this mode corresponds to \"private\" in Linux terminology.",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Bidirectional", "HostToContainer", "None"},
+ },
+ },
+ "subPathExpr": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to \"\" (volume's root). SubPathExpr and SubPath are mutually exclusive.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"name", "mountPath"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_VolumeMountStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "VolumeMountStatus shows status of volume mounts.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name corresponds to the name of the original VolumeMount.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "mountPath": {
+ SchemaProps: spec.SchemaProps{
+ Description: "MountPath corresponds to the original VolumeMount.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "readOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ReadOnly corresponds to the original VolumeMount.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "recursiveReadOnly": {
+ SchemaProps: spec.SchemaProps{
+ Description: "RecursiveReadOnly must be set to Disabled, Enabled, or unspecified (for non-readonly mounts). An IfPossible value in the original VolumeMount must be translated to Disabled or Enabled, depending on the mount result.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"name", "mountPath"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_VolumeNodeAffinity(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "VolumeNodeAffinity defines constraints that limit what nodes this volume can be accessed from.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "required": {
+ SchemaProps: spec.SchemaProps{
+ Description: "required specifies hard node constraints that must be met.",
+ Ref: ref("k8s.io/api/core/v1.NodeSelector"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.NodeSelector"},
+ }
+}
+
+func schema_k8sio_api_core_v1_VolumeProjection(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Projection that may be projected along with other supported volume types. Exactly one of these fields must be set.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "secret": {
+ SchemaProps: spec.SchemaProps{
+ Description: "secret information about the secret data to project",
+ Ref: ref("k8s.io/api/core/v1.SecretProjection"),
+ },
+ },
+ "downwardAPI": {
+ SchemaProps: spec.SchemaProps{
+ Description: "downwardAPI information about the downwardAPI data to project",
+ Ref: ref("k8s.io/api/core/v1.DownwardAPIProjection"),
+ },
+ },
+ "configMap": {
+ SchemaProps: spec.SchemaProps{
+ Description: "configMap information about the configMap data to project",
+ Ref: ref("k8s.io/api/core/v1.ConfigMapProjection"),
+ },
+ },
+ "serviceAccountToken": {
+ SchemaProps: spec.SchemaProps{
+ Description: "serviceAccountToken is information about the serviceAccountToken data to project",
+ Ref: ref("k8s.io/api/core/v1.ServiceAccountTokenProjection"),
+ },
+ },
+ "clusterTrustBundle": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field of ClusterTrustBundle objects in an auto-updating file.\n\nAlpha, gated by the ClusterTrustBundleProjection feature gate.\n\nClusterTrustBundle objects can either be selected by name, or by the combination of signer name and a label selector.\n\nKubelet performs aggressive normalization of the PEM contents written into the pod filesystem. Esoteric PEM features such as inter-block comments and block headers are stripped. Certificates are deduplicated. The ordering of certificates within the file is arbitrary, and Kubelet may change the order over time.",
+ Ref: ref("k8s.io/api/core/v1.ClusterTrustBundleProjection"),
+ },
+ },
+ "podCertificate": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Projects an auto-rotating credential bundle (private key and certificate chain) that the pod can use either as a TLS client or server.\n\nKubelet generates a private key and uses it to send a PodCertificateRequest to the named signer. Once the signer approves the request and issues a certificate chain, Kubelet writes the key and certificate chain to the pod filesystem. The pod does not start until certificates have been issued for each podCertificate projected volume source in its spec.\n\nKubelet will begin trying to rotate the certificate at the time indicated by the signer using the PodCertificateRequest.Status.BeginRefreshAt timestamp.\n\nKubelet can write a single file, indicated by the credentialBundlePath field, or separate files, indicated by the keyPath and certificateChainPath fields.\n\nThe credential bundle is a single file in PEM format. The first PEM entry is the private key (in PKCS#8 format), and the remaining PEM entries are the certificate chain issued by the signer (typically, signers will return their certificate chain in leaf-to-root order).\n\nPrefer using the credential bundle format, since your application code can read it atomically. If you use keyPath and certificateChainPath, your application must make two separate file reads. If these coincide with a certificate rotation, it is possible that the private key and leaf certificate you read may not correspond to each other. Your application will need to check for this condition, and re-read until they are consistent.\n\nThe named signer controls chooses the format of the certificate it issues; consult the signer implementation's documentation to learn how to use the certificates it issues.",
+ Ref: ref("k8s.io/api/core/v1.PodCertificateProjection"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.ClusterTrustBundleProjection", "k8s.io/api/core/v1.ConfigMapProjection", "k8s.io/api/core/v1.DownwardAPIProjection", "k8s.io/api/core/v1.PodCertificateProjection", "k8s.io/api/core/v1.SecretProjection", "k8s.io/api/core/v1.ServiceAccountTokenProjection"},
+ }
+}
+
+func schema_k8sio_api_core_v1_VolumeResourceRequirements(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "VolumeResourceRequirements describes the storage resource requirements for a volume.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "limits": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
+ },
+ },
+ },
+ },
+ },
+ "requests": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/api/resource.Quantity"},
+ }
+}
+
+func schema_k8sio_api_core_v1_VolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents the source of a volume to mount. Only one of its members may be specified.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "hostPath": {
+ SchemaProps: spec.SchemaProps{
+ Description: "hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath",
+ Ref: ref("k8s.io/api/core/v1.HostPathVolumeSource"),
+ },
+ },
+ "emptyDir": {
+ SchemaProps: spec.SchemaProps{
+ Description: "emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir",
+ Ref: ref("k8s.io/api/core/v1.EmptyDirVolumeSource"),
+ },
+ },
+ "gcePersistentDisk": {
+ SchemaProps: spec.SchemaProps{
+ Description: "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: GCEPersistentDisk is deprecated. All operations for the in-tree gcePersistentDisk type are redirected to the pd.csi.storage.gke.io CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk",
+ Ref: ref("k8s.io/api/core/v1.GCEPersistentDiskVolumeSource"),
+ },
+ },
+ "awsElasticBlockStore": {
+ SchemaProps: spec.SchemaProps{
+ Description: "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. Deprecated: AWSElasticBlockStore is deprecated. All operations for the in-tree awsElasticBlockStore type are redirected to the ebs.csi.aws.com CSI driver. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore",
+ Ref: ref("k8s.io/api/core/v1.AWSElasticBlockStoreVolumeSource"),
+ },
+ },
+ "gitRepo": {
+ SchemaProps: spec.SchemaProps{
+ Description: "gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container.",
+ Ref: ref("k8s.io/api/core/v1.GitRepoVolumeSource"),
+ },
+ },
+ "secret": {
+ SchemaProps: spec.SchemaProps{
+ Description: "secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret",
+ Ref: ref("k8s.io/api/core/v1.SecretVolumeSource"),
+ },
+ },
+ "nfs": {
+ SchemaProps: spec.SchemaProps{
+ Description: "nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs",
+ Ref: ref("k8s.io/api/core/v1.NFSVolumeSource"),
+ },
+ },
+ "iscsi": {
+ SchemaProps: spec.SchemaProps{
+ Description: "iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi",
+ Ref: ref("k8s.io/api/core/v1.ISCSIVolumeSource"),
+ },
+ },
+ "glusterfs": {
+ SchemaProps: spec.SchemaProps{
+ Description: "glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.GlusterfsVolumeSource"),
+ },
+ },
+ "persistentVolumeClaim": {
+ SchemaProps: spec.SchemaProps{
+ Description: "persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims",
+ Ref: ref("k8s.io/api/core/v1.PersistentVolumeClaimVolumeSource"),
+ },
+ },
+ "rbd": {
+ SchemaProps: spec.SchemaProps{
+ Description: "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.RBDVolumeSource"),
+ },
+ },
+ "flexVolume": {
+ SchemaProps: spec.SchemaProps{
+ Description: "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. Deprecated: FlexVolume is deprecated. Consider using a CSIDriver instead.",
+ Ref: ref("k8s.io/api/core/v1.FlexVolumeSource"),
+ },
+ },
+ "cinder": {
+ SchemaProps: spec.SchemaProps{
+ Description: "cinder represents a cinder volume attached and mounted on kubelets host machine. Deprecated: Cinder is deprecated. All operations for the in-tree cinder type are redirected to the cinder.csi.openstack.org CSI driver. More info: https://examples.k8s.io/mysql-cinder-pd/README.md",
+ Ref: ref("k8s.io/api/core/v1.CinderVolumeSource"),
+ },
+ },
+ "cephfs": {
+ SchemaProps: spec.SchemaProps{
+ Description: "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime. Deprecated: CephFS is deprecated and the in-tree cephfs type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.CephFSVolumeSource"),
+ },
+ },
+ "flocker": {
+ SchemaProps: spec.SchemaProps{
+ Description: "flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running. Deprecated: Flocker is deprecated and the in-tree flocker type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.FlockerVolumeSource"),
+ },
+ },
+ "downwardAPI": {
+ SchemaProps: spec.SchemaProps{
+ Description: "downwardAPI represents downward API about the pod that should populate this volume",
+ Ref: ref("k8s.io/api/core/v1.DownwardAPIVolumeSource"),
+ },
+ },
+ "fc": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.",
+ Ref: ref("k8s.io/api/core/v1.FCVolumeSource"),
+ },
+ },
+ "azureFile": {
+ SchemaProps: spec.SchemaProps{
+ Description: "azureFile represents an Azure File Service mount on the host and bind mount to the pod. Deprecated: AzureFile is deprecated. All operations for the in-tree azureFile type are redirected to the file.csi.azure.com CSI driver.",
+ Ref: ref("k8s.io/api/core/v1.AzureFileVolumeSource"),
+ },
+ },
+ "configMap": {
+ SchemaProps: spec.SchemaProps{
+ Description: "configMap represents a configMap that should populate this volume",
+ Ref: ref("k8s.io/api/core/v1.ConfigMapVolumeSource"),
+ },
+ },
+ "vsphereVolume": {
+ SchemaProps: spec.SchemaProps{
+ Description: "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine. Deprecated: VsphereVolume is deprecated. All operations for the in-tree vsphereVolume type are redirected to the csi.vsphere.vmware.com CSI driver.",
+ Ref: ref("k8s.io/api/core/v1.VsphereVirtualDiskVolumeSource"),
+ },
+ },
+ "quobyte": {
+ SchemaProps: spec.SchemaProps{
+ Description: "quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.QuobyteVolumeSource"),
+ },
+ },
+ "azureDisk": {
+ SchemaProps: spec.SchemaProps{
+ Description: "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. Deprecated: AzureDisk is deprecated. All operations for the in-tree azureDisk type are redirected to the disk.csi.azure.com CSI driver.",
+ Ref: ref("k8s.io/api/core/v1.AzureDiskVolumeSource"),
+ },
+ },
+ "photonPersistentDisk": {
+ SchemaProps: spec.SchemaProps{
+ Description: "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine. Deprecated: PhotonPersistentDisk is deprecated and the in-tree photonPersistentDisk type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.PhotonPersistentDiskVolumeSource"),
+ },
+ },
+ "projected": {
+ SchemaProps: spec.SchemaProps{
+ Description: "projected items for all in one resources secrets, configmaps, and downward API",
+ Ref: ref("k8s.io/api/core/v1.ProjectedVolumeSource"),
+ },
+ },
+ "portworxVolume": {
+ SchemaProps: spec.SchemaProps{
+ Description: "portworxVolume represents a portworx volume attached and mounted on kubelets host machine. Deprecated: PortworxVolume is deprecated. All operations for the in-tree portworxVolume type are redirected to the pxd.portworx.com CSI driver when the CSIMigrationPortworx feature-gate is on.",
+ Ref: ref("k8s.io/api/core/v1.PortworxVolumeSource"),
+ },
+ },
+ "scaleIO": {
+ SchemaProps: spec.SchemaProps{
+ Description: "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.ScaleIOVolumeSource"),
+ },
+ },
+ "storageos": {
+ SchemaProps: spec.SchemaProps{
+ Description: "storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported.",
+ Ref: ref("k8s.io/api/core/v1.StorageOSVolumeSource"),
+ },
+ },
+ "csi": {
+ SchemaProps: spec.SchemaProps{
+ Description: "csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers.",
+ Ref: ref("k8s.io/api/core/v1.CSIVolumeSource"),
+ },
+ },
+ "ephemeral": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed.\n\nUse this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity\n tracking are needed,\nc) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through\n a PersistentVolumeClaim (see EphemeralVolumeSource for more\n information on the connection between this volume type\n and PersistentVolumeClaim).\n\nUse PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod.\n\nUse CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information.\n\nA pod can use both types of ephemeral volumes and persistent volumes at the same time.",
+ Ref: ref("k8s.io/api/core/v1.EphemeralVolumeSource"),
+ },
+ },
+ "image": {
+ SchemaProps: spec.SchemaProps{
+ Description: "image represents an OCI object (a container image or artifact) pulled and mounted on the kubelet's host machine. The volume is resolved at pod startup depending on which PullPolicy value is provided:\n\n- Always: the kubelet always attempts to pull the reference. Container creation will fail If the pull fails. - Never: the kubelet never pulls the reference and only uses a local image or artifact. Container creation will fail if the reference isn't present. - IfNotPresent: the kubelet pulls if the reference isn't already present on disk. Container creation will fail if the reference isn't present and the pull fails.\n\nThe volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation. A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. The volume will be mounted read-only (ro) and non-executable files (noexec). Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath) before 1.33. The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type.",
+ Ref: ref("k8s.io/api/core/v1.ImageVolumeSource"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.AWSElasticBlockStoreVolumeSource", "k8s.io/api/core/v1.AzureDiskVolumeSource", "k8s.io/api/core/v1.AzureFileVolumeSource", "k8s.io/api/core/v1.CSIVolumeSource", "k8s.io/api/core/v1.CephFSVolumeSource", "k8s.io/api/core/v1.CinderVolumeSource", "k8s.io/api/core/v1.ConfigMapVolumeSource", "k8s.io/api/core/v1.DownwardAPIVolumeSource", "k8s.io/api/core/v1.EmptyDirVolumeSource", "k8s.io/api/core/v1.EphemeralVolumeSource", "k8s.io/api/core/v1.FCVolumeSource", "k8s.io/api/core/v1.FlexVolumeSource", "k8s.io/api/core/v1.FlockerVolumeSource", "k8s.io/api/core/v1.GCEPersistentDiskVolumeSource", "k8s.io/api/core/v1.GitRepoVolumeSource", "k8s.io/api/core/v1.GlusterfsVolumeSource", "k8s.io/api/core/v1.HostPathVolumeSource", "k8s.io/api/core/v1.ISCSIVolumeSource", "k8s.io/api/core/v1.ImageVolumeSource", "k8s.io/api/core/v1.NFSVolumeSource", "k8s.io/api/core/v1.PersistentVolumeClaimVolumeSource", "k8s.io/api/core/v1.PhotonPersistentDiskVolumeSource", "k8s.io/api/core/v1.PortworxVolumeSource", "k8s.io/api/core/v1.ProjectedVolumeSource", "k8s.io/api/core/v1.QuobyteVolumeSource", "k8s.io/api/core/v1.RBDVolumeSource", "k8s.io/api/core/v1.ScaleIOVolumeSource", "k8s.io/api/core/v1.SecretVolumeSource", "k8s.io/api/core/v1.StorageOSVolumeSource", "k8s.io/api/core/v1.VsphereVirtualDiskVolumeSource"},
+ }
+}
+
+func schema_k8sio_api_core_v1_VsphereVirtualDiskVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents a vSphere volume resource.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "volumePath": {
+ SchemaProps: spec.SchemaProps{
+ Description: "volumePath is the path that identifies vSphere volume vmdk",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fsType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "storagePolicyName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "storagePolicyName is the storage Policy Based Management (SPBM) profile name.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "storagePolicyID": {
+ SchemaProps: spec.SchemaProps{
+ Description: "storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"volumePath"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_api_core_v1_WeightedPodAffinityTerm(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "weight": {
+ SchemaProps: spec.SchemaProps{
+ Description: "weight associated with matching the corresponding podAffinityTerm, in the range 1-100.",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "podAffinityTerm": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Required. A pod affinity term, associated with the corresponding weight.",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodAffinityTerm"),
+ },
+ },
+ },
+ Required: []string{"weight", "podAffinityTerm"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.PodAffinityTerm"},
+ }
+}
+
+func schema_k8sio_api_core_v1_WindowsSecurityContextOptions(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "WindowsSecurityContextOptions contain Windows-specific options and credentials.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "gmsaCredentialSpecName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "GMSACredentialSpecName is the name of the GMSA credential spec to use.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "gmsaCredentialSpec": {
+ SchemaProps: spec.SchemaProps{
+ Description: "GMSACredentialSpec is where the GMSA admission webhook (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the GMSA credential spec named by the GMSACredentialSpecName field.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "runAsUserName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The UserName in Windows to run the entrypoint of the container process. Defaults to the user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "hostProcess": {
+ SchemaProps: spec.SchemaProps{
+ Description: "HostProcess determines if a container should be run as a 'Host Process' container. All of a Pod's containers must have the same effective HostProcess value (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). In addition, if HostProcess is true then HostNetwork must also be set to true.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_apimachinery_pkg_api_resource_Quantity(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.EmbedOpenAPIDefinitionIntoV2Extension(common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Quantity is a fixed-point representation of a number. It provides convenient marshaling/unmarshaling in JSON and YAML, in addition to String() and AsInt64() accessors.\n\nThe serialization format is:\n\n``` ::= \n\n\t(Note that may be empty, from the \"\" case in .)\n\n ::= 0 | 1 | ... | 9 ::= | ::= | . | . | . ::= \"+\" | \"-\" ::= | ::= | | ::= Ki | Mi | Gi | Ti | Pi | Ei\n\n\t(International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)\n\n ::= m | \"\" | k | M | G | T | P | E\n\n\t(Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)\n\n ::= \"e\" | \"E\" ```\n\nNo matter which of the three exponent forms is used, no quantity may represent a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal places. Numbers larger or more precise will be capped or rounded up. (E.g.: 0.1m will rounded up to 1m.) This may be extended in the future if we require larger or smaller quantities.\n\nWhen a Quantity is parsed from a string, it will remember the type of suffix it had, and will use the same type again when it is serialized.\n\nBefore serializing, Quantity will be put in \"canonical form\". This means that Exponent/suffix will be adjusted up or down (with a corresponding increase or decrease in Mantissa) such that:\n\n- No precision is lost - No fractional digits will be emitted - The exponent (or suffix) is as large as possible.\n\nThe sign will be omitted unless the number is negative.\n\nExamples:\n\n- 1.5 will be serialized as \"1500m\" - 1.5Gi will be serialized as \"1536Mi\"\n\nNote that the quantity will NEVER be internally represented by a floating point number. That is the whole point of this exercise.\n\nNon-canonical values will still parse as long as they are well formed, but will be re-emitted in their canonical form. (So always use canonical form, or don't diff.)\n\nThis format is intended to make it difficult to use these numbers without writing some sort of special handling code in the hopes that that will cause implementors to also use a fixed point implementation.",
+ OneOf: common.GenerateOpenAPIV3OneOfSchema(resource.Quantity{}.OpenAPIV3OneOfTypes()),
+ Format: resource.Quantity{}.OpenAPISchemaFormat(),
+ },
+ },
+ }, common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Quantity is a fixed-point representation of a number. It provides convenient marshaling/unmarshaling in JSON and YAML, in addition to String() and AsInt64() accessors.\n\nThe serialization format is:\n\n``` ::= \n\n\t(Note that may be empty, from the \"\" case in .)\n\n ::= 0 | 1 | ... | 9 ::= | ::= | . | . | . ::= \"+\" | \"-\" ::= | ::= | | ::= Ki | Mi | Gi | Ti | Pi | Ei\n\n\t(International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)\n\n ::= m | \"\" | k | M | G | T | P | E\n\n\t(Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)\n\n ::= \"e\" | \"E\" ```\n\nNo matter which of the three exponent forms is used, no quantity may represent a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal places. Numbers larger or more precise will be capped or rounded up. (E.g.: 0.1m will rounded up to 1m.) This may be extended in the future if we require larger or smaller quantities.\n\nWhen a Quantity is parsed from a string, it will remember the type of suffix it had, and will use the same type again when it is serialized.\n\nBefore serializing, Quantity will be put in \"canonical form\". This means that Exponent/suffix will be adjusted up or down (with a corresponding increase or decrease in Mantissa) such that:\n\n- No precision is lost - No fractional digits will be emitted - The exponent (or suffix) is as large as possible.\n\nThe sign will be omitted unless the number is negative.\n\nExamples:\n\n- 1.5 will be serialized as \"1500m\" - 1.5Gi will be serialized as \"1536Mi\"\n\nNote that the quantity will NEVER be internally represented by a floating point number. That is the whole point of this exercise.\n\nNon-canonical values will still parse as long as they are well formed, but will be re-emitted in their canonical form. (So always use canonical form, or don't diff.)\n\nThis format is intended to make it difficult to use these numbers without writing some sort of special handling code in the hopes that that will cause implementors to also use a fixed point implementation.",
+ Type: resource.Quantity{}.OpenAPISchemaType(),
+ Format: resource.Quantity{}.OpenAPISchemaFormat(),
+ },
+ },
+ })
+}
+
+func schema_apimachinery_pkg_api_resource_int64Amount(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "int64Amount represents a fixed precision numerator and arbitrary scale exponent. It is faster than operations on inf.Dec for values that can be represented as int64.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "value": {
+ SchemaProps: spec.SchemaProps{
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "scale": {
+ SchemaProps: spec.SchemaProps{
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ },
+ Required: []string{"value", "scale"},
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_APIGroup(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "APIGroup contains the name, the supported versions, and the preferred version of a group.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "name is the name of the group.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "versions": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "versions are the versions supported in this group.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.GroupVersionForDiscovery"),
+ },
+ },
+ },
+ },
+ },
+ "preferredVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "preferredVersion is the version preferred by the API server, which probably is the storage version.",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.GroupVersionForDiscovery"),
+ },
+ },
+ "serverAddressByClientCIDRs": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ServerAddressByClientCIDR"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"name", "versions"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.GroupVersionForDiscovery", "k8s.io/apimachinery/pkg/apis/meta/v1.ServerAddressByClientCIDR"},
+ }
+}
+
+func schema_pkg_apis_meta_v1_APIGroupList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "APIGroupList is a list of APIGroup, to allow clients to discover the API at /apis.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "groups": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "groups is a list of APIGroup.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.APIGroup"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"groups"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.APIGroup"},
+ }
+}
+
+func schema_pkg_apis_meta_v1_APIResource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "APIResource specifies the name of a resource and whether it is namespaced.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "name is the plural name of the resource.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "singularName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "singularName is the singular name of the resource. This allows clients to handle plural and singular opaquely. The singularName is more correct for reporting status on a single item and both singular and plural are allowed from the kubectl CLI interface.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "namespaced": {
+ SchemaProps: spec.SchemaProps{
+ Description: "namespaced indicates if a resource is namespaced or not.",
+ Default: false,
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "group": {
+ SchemaProps: spec.SchemaProps{
+ Description: "group is the preferred group of the resource. Empty implies the group of the containing resource list. For subresources, this may have a different value, for example: Scale\".",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "version": {
+ SchemaProps: spec.SchemaProps{
+ Description: "version is the preferred version of the resource. Empty implies the version of the containing resource list For subresources, this may have a different value, for example: v1 (while inside a v1beta1 version of the core resource's group)\".",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "verbs": {
+ SchemaProps: spec.SchemaProps{
+ Description: "verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "shortNames": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "shortNames is a list of suggested short names of the resource.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "categories": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "categories is a list of the grouped resources this resource belongs to (e.g. 'all')",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "storageVersionHash": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The hash value of the storage version, the version this resource is converted to when written to the data store. Value must be treated as opaque by clients. Only equality comparison on the value is valid. This is an alpha feature and may change or be removed in the future. The field is populated by the apiserver only if the StorageVersionHash feature gate is enabled. This field will remain optional even if it graduates.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"name", "singularName", "namespaced", "kind", "verbs"},
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_APIResourceList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "groupVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "groupVersion is the group and version this APIResourceList is for.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "resources": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "resources contains the name of the resources and if they are namespaced.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.APIResource"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"groupVersion", "resources"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.APIResource"},
+ }
+}
+
+func schema_pkg_apis_meta_v1_APIVersions(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersions lists the versions that are available, to allow clients to discover the API at /api, which is the root path of the legacy v1 API.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "versions": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "versions are the api versions that are available.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "serverAddressByClientCIDRs": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ServerAddressByClientCIDR"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"versions", "serverAddressByClientCIDRs"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.ServerAddressByClientCIDR"},
+ }
+}
+
+func schema_pkg_apis_meta_v1_ApplyOptions(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ApplyOptions may be provided when applying an API object. FieldManager is required for apply requests. ApplyOptions is equivalent to PatchOptions. It is provided as a convenience with documentation that speaks specifically to how the options fields relate to apply.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "dryRun": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "force": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people.",
+ Default: false,
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "fieldManager": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"force", "fieldManager"},
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_Condition(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Condition contains details for one aspect of the current state of this API Resource.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Description: "type of condition in CamelCase or in foo.example.com/CamelCase.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "status of the condition, one of True, False, Unknown.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "observedGeneration": {
+ SchemaProps: spec.SchemaProps{
+ Description: "observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "lastTransitionTime": {
+ SchemaProps: spec.SchemaProps{
+ Description: "lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ "reason": {
+ SchemaProps: spec.SchemaProps{
+ Description: "reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "message": {
+ SchemaProps: spec.SchemaProps{
+ Description: "message is a human readable message indicating details about the transition. This may be an empty string.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"type", "status", "lastTransitionTime", "reason", "message"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.Time"},
+ }
+}
+
+func schema_pkg_apis_meta_v1_CreateOptions(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "CreateOptions may be provided when creating an API object.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "dryRun": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "fieldManager": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fieldValidation": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_DeleteOptions(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "DeleteOptions may be provided when deleting an API object.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "gracePeriodSeconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "preconditions": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Preconditions"),
+ },
+ },
+ "orphanDependents": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "propagationPolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "dryRun": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "ignoreStoreReadErrorWithClusterBreakingPotential": {
+ SchemaProps: spec.SchemaProps{
+ Description: "if set to true, it will trigger an unsafe deletion of the resource in case the normal deletion flow fails with a corrupt object error. A resource is considered corrupt if it can not be retrieved from the underlying storage successfully because of a) its data can not be transformed e.g. decryption failure, or b) it fails to decode into an object. NOTE: unsafe deletion ignores finalizer constraints, skips precondition checks, and removes the object from the storage. WARNING: This may potentially break the cluster if the workload associated with the resource being unsafe-deleted relies on normal deletion flow. Use only if you REALLY know what you are doing. The default value is false, and the user must opt in to enable it",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.Preconditions"},
+ }
+}
+
+func schema_pkg_apis_meta_v1_Duration(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Duration is a wrapper around time.Duration which supports correct marshaling to YAML and JSON. In particular, it marshals into strings, which can be used as map keys in json.",
+ Type: metav1.Duration{}.OpenAPISchemaType(),
+ Format: metav1.Duration{}.OpenAPISchemaFormat(),
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_FieldSelectorRequirement(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "FieldSelectorRequirement is a selector that contains values, a key, and an operator that relates the key and values.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "key": {
+ SchemaProps: spec.SchemaProps{
+ Description: "key is the field selector key that the requirement applies to.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "operator": {
+ SchemaProps: spec.SchemaProps{
+ Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. The list of operators may grow in the future.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "values": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"key", "operator"},
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_FieldsV1(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format.\n\nEach key is either a '.' representing the field itself, and will always map to an empty set, or a string representing a sub-field or item. The string will follow one of these four formats: 'f:', where is the name of a field in a struct, or key in a map 'v:', where is the exact json formatted value of a list item 'i:', where is position of a item in a list 'k:', where is a map of a list item's key fields to their unique values If a key maps to an empty Fields value, the field that key represents is part of the set.\n\nThe exact format is defined in sigs.k8s.io/structured-merge-diff",
+ Type: []string{"object"},
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_GetOptions(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "GetOptions is the standard query options to the standard REST get call.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "resourceVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_GroupKind(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "GroupKind specifies a Group and a Kind, but does not force a version. This is useful for identifying concepts during lookup stages without having partially valid types",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "group": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"group", "kind"},
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_GroupResource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "GroupResource specifies a Group and a Resource, but does not force a version. This is useful for identifying concepts during lookup stages without having partially valid types",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "group": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "resource": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"group", "resource"},
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_GroupVersion(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "GroupVersion contains the \"group\" and the \"version\", which uniquely identifies the API.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "group": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "version": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"group", "version"},
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_GroupVersionForDiscovery(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "GroupVersion contains the \"group/version\" and \"version\" string of a version. It is made a struct to keep extensibility.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "groupVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "groupVersion specifies the API group and version in the form \"group/version\"",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "version": {
+ SchemaProps: spec.SchemaProps{
+ Description: "version specifies the version in the form of \"version\". This is to save the clients the trouble of splitting the GroupVersion.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"groupVersion", "version"},
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_GroupVersionKind(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "GroupVersionKind unambiguously identifies a kind. It doesn't anonymously include GroupVersion to avoid automatic coercion. It doesn't use a GroupVersion to avoid custom marshalling",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "group": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "version": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"group", "version", "kind"},
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_GroupVersionResource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "GroupVersionResource unambiguously identifies a resource. It doesn't anonymously include GroupVersion to avoid automatic coercion. It doesn't use a GroupVersion to avoid custom marshalling",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "group": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "version": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "resource": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"group", "version", "resource"},
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_InternalEvent(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "InternalEvent makes watch.Event versioned",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "Type": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "Object": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Object is:\n * If Type is Added or Modified: the new state of the object.\n * If Type is Deleted: the state of the object immediately before deletion.\n * If Type is Bookmark: the object (instance of a type being watched) where\n only ResourceVersion field is set. On successful restart of watch from a\n bookmark resourceVersion, client is guaranteed to not get repeat event\n nor miss any events.\n * If Type is Error: *api.Status is recommended; other types may make sense\n depending on context.",
+ Ref: ref("k8s.io/apimachinery/pkg/runtime.Object"),
+ },
+ },
+ },
+ Required: []string{"Type", "Object"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/runtime.Object"},
+ }
+}
+
+func schema_pkg_apis_meta_v1_LabelSelector(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "matchLabels": {
+ SchemaProps: spec.SchemaProps{
+ Description: "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \"key\", the operator is \"In\", and the values array contains only \"value\". The requirements are ANDed.",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "matchExpressions": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "matchExpressions is a list of label selector requirements. The requirements are ANDed.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelectorRequirement"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-map-type": "atomic",
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelectorRequirement"},
+ }
+}
+
+func schema_pkg_apis_meta_v1_LabelSelectorRequirement(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "key": {
+ SchemaProps: spec.SchemaProps{
+ Description: "key is the label key that the selector applies to.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "operator": {
+ SchemaProps: spec.SchemaProps{
+ Description: "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "values": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"key", "operator"},
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_List(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "List holds a list of objects, which may not be known by the server.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Description: "List of objects",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("k8s.io/apimachinery/pkg/runtime.RawExtension"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"items"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta", "k8s.io/apimachinery/pkg/runtime.RawExtension"},
+ }
+}
+
+func schema_pkg_apis_meta_v1_ListMeta(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "selfLink": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "resourceVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "continue": {
+ SchemaProps: spec.SchemaProps{
+ Description: "continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a consistent list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response, unless you have received this token from an error message.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "remainingItemCount": {
+ SchemaProps: spec.SchemaProps{
+ Description: "remainingItemCount is the number of subsequent items in the list which are not included in this list response. If the list request contained label or field selectors, then the number of remaining items is unknown and the field will be left unset and omitted during serialization. If the list is complete (either because it is not chunking or because this is the last chunk), then there are no more remaining items and this field will be left unset and omitted during serialization. Servers older than v1.15 do not set this field. The intended use of the remainingItemCount is *estimating* the size of a collection. Clients should not rely on the remainingItemCount to be set or to be exact.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_ListOptions(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ListOptions is the query options to a standard REST list call.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "labelSelector": {
+ SchemaProps: spec.SchemaProps{
+ Description: "A selector to restrict the list of returned objects by their labels. Defaults to everything.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fieldSelector": {
+ SchemaProps: spec.SchemaProps{
+ Description: "A selector to restrict the list of returned objects by their fields. Defaults to everything.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "watch": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "allowWatchBookmarks": {
+ SchemaProps: spec.SchemaProps{
+ Description: "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "resourceVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "resourceVersionMatch": {
+ SchemaProps: spec.SchemaProps{
+ Description: "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "timeoutSeconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "limit": {
+ SchemaProps: spec.SchemaProps{
+ Description: "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "continue": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "sendInitialEvents": {
+ SchemaProps: spec.SchemaProps{
+ Description: "`sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched.\n\nWhen `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan\n is interpreted as \"data at least as new as the provided `resourceVersion`\"\n and the bookmark event is send when the state is synced\n to a `resourceVersion` at least as fresh as the one provided by the ListOptions.\n If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the\n bookmark event is send when the state is synced at least to the moment\n when request started being processed.\n- `resourceVersionMatch` set to any other value or unset\n Invalid error is returned.\n\nDefaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_ManagedFieldsEntry(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ManagedFieldsEntry is a workflow-id, a FieldSet and the group version of the resource that the fieldset applies to.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "manager": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Manager is an identifier of the workflow managing these fields.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "operation": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the version of this resource that this field set applies to. The format is \"group/version\" just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "time": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Time is the timestamp of when the ManagedFields entry was added. The timestamp will also be updated if a field is added, the manager changes any of the owned fields value or removes a field. The timestamp does not update when a field is removed from the entry because another manager took it over.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ "fieldsType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: \"FieldsV1\"",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fieldsV1": {
+ SchemaProps: spec.SchemaProps{
+ Description: "FieldsV1 holds the first JSON version format as described in the \"FieldsV1\" type.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.FieldsV1"),
+ },
+ },
+ "subresource": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Subresource is the name of the subresource used to update that object, or empty string if the object was updated through the main resource. The value of this field is used to distinguish between managers, even if they share the same name. For example, a status update will be distinct from a regular update using the same manager name. Note that the APIVersion field is not related to the Subresource field and it always corresponds to the version of the main resource.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.FieldsV1", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"},
+ }
+}
+
+func schema_pkg_apis_meta_v1_MicroTime(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "MicroTime is version of Time with microsecond level precision.",
+ Type: metav1.MicroTime{}.OpenAPISchemaType(),
+ Format: metav1.MicroTime{}.OpenAPISchemaFormat(),
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_ObjectMeta(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "generateName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.\n\nIf this field is specified and the generated name exists, the server will return a 409.\n\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "namespace": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Namespace defines the space within which each name must be unique. An empty namespace is equivalent to the \"default\" namespace, but \"default\" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty.\n\nMust be a DNS_LABEL. Cannot be updated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "selfLink": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Deprecated: selfLink is a legacy read-only field that is no longer populated by the system.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "uid": {
+ SchemaProps: spec.SchemaProps{
+ Description: "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "resourceVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.\n\nPopulated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "generation": {
+ SchemaProps: spec.SchemaProps{
+ Description: "A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "creationTimestamp": {
+ SchemaProps: spec.SchemaProps{
+ Description: "CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\n\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ "deletionTimestamp": {
+ SchemaProps: spec.SchemaProps{
+ Description: "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ "deletionGracePeriodSeconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "labels": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "annotations": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "ownerReferences": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "uid",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "uid",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.OwnerReference"),
+ },
+ },
+ },
+ },
+ },
+ "finalizers": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "set",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "managedFields": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like \"ci-cd\". The set of fields is always in the version that the workflow used when modifying the object.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ManagedFieldsEntry"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.ManagedFieldsEntry", "k8s.io/apimachinery/pkg/apis/meta/v1.OwnerReference", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"},
+ }
+}
+
+func schema_pkg_apis_meta_v1_OwnerReference(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "OwnerReference contains enough information to let you identify an owning object. An owning object must be in the same namespace as the dependent, or be cluster-scoped, so there is no namespace field.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "API version of the referent.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "uid": {
+ SchemaProps: spec.SchemaProps{
+ Description: "UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "controller": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If true, this reference points to the managing controller.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "blockOwnerDeletion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. See https://kubernetes.io/docs/concepts/architecture/garbage-collection/#foreground-deletion for how the garbage collector interacts with this field and enforces the foreground deletion. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"apiVersion", "kind", "name", "uid"},
+ },
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-map-type": "atomic",
+ },
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_PartialObjectMetadata(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PartialObjectMetadata is a generic representation of any object with ObjectMeta. It allows clients to get access to a particular ObjectMeta schema without knowing the details of the version.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"},
+ }
+}
+
+func schema_pkg_apis_meta_v1_PartialObjectMetadataList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PartialObjectMetadataList contains a list of objects containing only their metadata",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Description: "items contains each of the included items.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.PartialObjectMetadata"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"items"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta", "k8s.io/apimachinery/pkg/apis/meta/v1.PartialObjectMetadata"},
+ }
+}
+
+func schema_pkg_apis_meta_v1_Patch(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.",
+ Type: []string{"object"},
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_PatchOptions(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PatchOptions may be provided when patching an API object. PatchOptions is meant to be a superset of UpdateOptions.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "dryRun": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "force": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "fieldManager": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fieldValidation": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_Preconditions(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "uid": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Specifies the target UID.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "resourceVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Specifies the target ResourceVersion",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_RootPaths(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "RootPaths lists the paths available at root. For example: \"/healthz\", \"/apis\".",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "paths": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "paths are the paths available at root.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"paths"},
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_ServerAddressByClientCIDR(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "clientCIDR": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The CIDR with which clients can match their IP to figure out the server address that they should use.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "serverAddress": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"clientCIDR", "serverAddress"},
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_Status(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Status is a return value for calls that don't return other objects.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Status of the operation. One of: \"Success\" or \"Failure\". More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "message": {
+ SchemaProps: spec.SchemaProps{
+ Description: "A human-readable description of the status of this operation.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "reason": {
+ SchemaProps: spec.SchemaProps{
+ Description: "A machine-readable description of why this operation is in the \"Failure\" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "details": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Extended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.StatusDetails"),
+ },
+ },
+ "code": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Suggested HTTP return code for this status, 0 if not set.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta", "k8s.io/apimachinery/pkg/apis/meta/v1.StatusDetails"},
+ }
+}
+
+func schema_pkg_apis_meta_v1_StatusCause(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "reason": {
+ SchemaProps: spec.SchemaProps{
+ Description: "A machine-readable description of the cause of the error. If this value is empty there is no information available.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "message": {
+ SchemaProps: spec.SchemaProps{
+ Description: "A human-readable description of the cause of the error. This field may be presented as-is to a reader.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "field": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.\n\nExamples:\n \"name\" - the field \"name\" on the current resource\n \"items[0].name\" - the field \"name\" on the first array entry in \"items\"",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_StatusDetails(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "group": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The group attribute of the resource associated with the status StatusReason.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "uid": {
+ SchemaProps: spec.SchemaProps{
+ Description: "UID of the resource. (when there is a single resource which can be described). More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#uids",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "causes": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.StatusCause"),
+ },
+ },
+ },
+ },
+ },
+ "retryAfterSeconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.StatusCause"},
+ }
+}
+
+func schema_pkg_apis_meta_v1_Table(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Table is a tabular representation of a set of API resources. The server transforms the object into a set of preferred columns for quickly reviewing the objects.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "columnDefinitions": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "columnDefinitions describes each column in the returned items array. The number of cells per row will always match the number of column definitions.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.TableColumnDefinition"),
+ },
+ },
+ },
+ },
+ },
+ "rows": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "rows is the list of items in the table.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.TableRow"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"columnDefinitions", "rows"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta", "k8s.io/apimachinery/pkg/apis/meta/v1.TableColumnDefinition", "k8s.io/apimachinery/pkg/apis/meta/v1.TableRow"},
+ }
+}
+
+func schema_pkg_apis_meta_v1_TableColumnDefinition(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "TableColumnDefinition contains information about a column returned in the Table.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "name is a human readable name for the column.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Description: "type is an OpenAPI type definition for this column, such as number, integer, string, or array. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "format": {
+ SchemaProps: spec.SchemaProps{
+ Description: "format is an optional OpenAPI type modifier for this column. A format modifies the type and imposes additional rules, like date or time formatting for a string. The 'name' format is applied to the primary identifier column which has type 'string' to assist in clients identifying column is the resource name. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for more.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "description": {
+ SchemaProps: spec.SchemaProps{
+ Description: "description is a human readable description of this column.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "priority": {
+ SchemaProps: spec.SchemaProps{
+ Description: "priority is an integer defining the relative importance of this column compared to others. Lower numbers are considered higher priority. Columns that may be omitted in limited space scenarios should be given a higher priority.",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ },
+ Required: []string{"name", "type", "format", "description", "priority"},
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_TableOptions(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "TableOptions are used when a Table is requested by the caller.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "includeObject": {
+ SchemaProps: spec.SchemaProps{
+ Description: "includeObject decides whether to include each object along with its columnar information. Specifying \"None\" will return no object, specifying \"Object\" will return the full object contents, and specifying \"Metadata\" (the default) will return the object's metadata in the PartialObjectMetadata kind in version v1beta1 of the meta.k8s.io API group.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_TableRow(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "TableRow is an individual row in a table.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "cells": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "cells will be as wide as the column definitions array and may contain strings, numbers (float64 or int64), booleans, simple maps, lists, or null. See the type field of the column definition for a more detailed description.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "conditions": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "conditions describe additional status of a row that are relevant for a human user. These conditions apply to the row, not to the object, and will be specific to table output. The only defined condition type is 'Completed', for a row that indicates a resource that has run to completion and can be given less visual priority.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.TableRowCondition"),
+ },
+ },
+ },
+ },
+ },
+ "object": {
+ SchemaProps: spec.SchemaProps{
+ Description: "This field contains the requested additional information about each object based on the includeObject policy when requesting the Table. If \"None\", this field is empty, if \"Object\" this will be the default serialization of the object for the current API version, and if \"Metadata\" (the default) will contain the object metadata. Check the returned kind and apiVersion of the object before parsing. The media type of the object will always match the enclosing list - if this as a JSON table, these will be JSON encoded objects.",
+ Ref: ref("k8s.io/apimachinery/pkg/runtime.RawExtension"),
+ },
+ },
+ },
+ Required: []string{"cells"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.TableRowCondition", "k8s.io/apimachinery/pkg/runtime.RawExtension"},
+ }
+}
+
+func schema_pkg_apis_meta_v1_TableRowCondition(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "TableRowCondition allows a row to be marked with additional information.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Type of row condition. The only defined value is 'Completed' indicating that the object this row represents has reached a completed state and may be given less visual priority than other rows. Clients are not required to honor any conditions but should be consistent where possible about handling the conditions.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Status of the condition, one of True, False, Unknown.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "reason": {
+ SchemaProps: spec.SchemaProps{
+ Description: "(brief) machine readable reason for the condition's last transition.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "message": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Human readable message indicating details about last transition.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"type", "status"},
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_Time(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.",
+ Type: metav1.Time{}.OpenAPISchemaType(),
+ Format: metav1.Time{}.OpenAPISchemaFormat(),
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_Timestamp(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Timestamp is a struct that is equivalent to Time, but intended for protobuf marshalling/unmarshalling. It is generated into a serialization that matches Time. Do not use in Go structs.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "seconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "nanos": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive. This field may be limited in precision depending on context.",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ },
+ Required: []string{"seconds", "nanos"},
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_TypeMeta(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "TypeMeta describes an individual object in an API response or request with strings representing the type of the object and its API schema version. Structures that are versioned or persisted should inline TypeMeta.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_UpdateOptions(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "UpdateOptions may be provided when updating an API object. All fields in UpdateOptions should also be present in PatchOptions.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "dryRun": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "fieldManager": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "fieldValidation": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_pkg_apis_meta_v1_WatchEvent(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Event represents a single event to a watched resource.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "object": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Object is:\n * If Type is Added or Modified: the new state of the object.\n * If Type is Deleted: the state of the object immediately before deletion.\n * If Type is Error: *Status is recommended; other types may make sense\n depending on context.",
+ Ref: ref("k8s.io/apimachinery/pkg/runtime.RawExtension"),
+ },
+ },
+ },
+ Required: []string{"type", "object"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/runtime.RawExtension"},
+ }
+}
+
+func schema_k8sio_apimachinery_pkg_runtime_RawExtension(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "RawExtension is used to hold extensions in external versions.\n\nTo use this, make a field which has RawExtension as its type in your external, versioned struct, and Object in your internal struct. You also need to register your various plugin types.\n\n// Internal package:\n\n\ttype MyAPIObject struct {\n\t\truntime.TypeMeta `json:\",inline\"`\n\t\tMyPlugin runtime.Object `json:\"myPlugin\"`\n\t}\n\n\ttype PluginA struct {\n\t\tAOption string `json:\"aOption\"`\n\t}\n\n// External package:\n\n\ttype MyAPIObject struct {\n\t\truntime.TypeMeta `json:\",inline\"`\n\t\tMyPlugin runtime.RawExtension `json:\"myPlugin\"`\n\t}\n\n\ttype PluginA struct {\n\t\tAOption string `json:\"aOption\"`\n\t}\n\n// On the wire, the JSON will look something like this:\n\n\t{\n\t\t\"kind\":\"MyAPIObject\",\n\t\t\"apiVersion\":\"v1\",\n\t\t\"myPlugin\": {\n\t\t\t\"kind\":\"PluginA\",\n\t\t\t\"aOption\":\"foo\",\n\t\t},\n\t}\n\nSo what happens? Decode first uses json or yaml to unmarshal the serialized data into your external MyAPIObject. That causes the raw JSON to be stored, but not unpacked. The next step is to copy (using pkg/conversion) into the internal struct. The runtime package's DefaultScheme has conversion functions installed which will unpack the JSON stored in RawExtension, turning it into the correct object type, and storing it in the Object. (TODO: In the case where the object is of an unknown type, a runtime.Unknown object will be created and stored.)",
+ Type: []string{"object"},
+ },
+ },
+ }
+}
+
+func schema_k8sio_apimachinery_pkg_runtime_TypeMeta(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "TypeMeta is shared by all top level objects. The proper way to use it is to inline it in your type, like this:\n\n\ttype MyAwesomeAPIObject struct {\n\t runtime.TypeMeta `json:\",inline\"`\n\t ... // other fields\n\t}\n\nfunc (obj *MyAwesomeAPIObject) SetGroupVersionKind(gvk *metav1.GroupVersionKind) { metav1.UpdateTypeMeta(obj,gvk) }; GroupVersionKind() *GroupVersionKind\n\nTypeMeta is provided here for convenience. You may use it directly from this package or define your own with the same fields.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_k8sio_apimachinery_pkg_runtime_Unknown(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Unknown allows api objects with unknown types to be passed-through. This can be used to deal with the API objects from a plug-in. Unknown objects still have functioning TypeMeta features-- kind, version, etc. metadata and field mutatation.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "ContentEncoding": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ContentEncoding is encoding used to encode 'Raw' data. Unspecified means no encoding.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "ContentType": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ContentType is serialization method used to serialize 'Raw'. Unspecified means ContentTypeJSON.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"ContentEncoding", "ContentType"},
+ },
+ },
+ }
+}
+
+func schema_apimachinery_pkg_util_intstr_IntOrString(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.EmbedOpenAPIDefinitionIntoV2Extension(common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "IntOrString is a type that can hold an int32 or a string. When used in JSON or YAML marshalling and unmarshalling, it produces or consumes the inner type. This allows you to have, for example, a JSON field that can accept a name or number.",
+ OneOf: common.GenerateOpenAPIV3OneOfSchema(intstr.IntOrString{}.OpenAPIV3OneOfTypes()),
+ Format: intstr.IntOrString{}.OpenAPISchemaFormat(),
+ },
+ },
+ }, common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "IntOrString is a type that can hold an int32 or a string. When used in JSON or YAML marshalling and unmarshalling, it produces or consumes the inner type. This allows you to have, for example, a JSON field that can accept a name or number.",
+ Type: intstr.IntOrString{}.OpenAPISchemaType(),
+ Format: intstr.IntOrString{}.OpenAPISchemaFormat(),
+ },
+ },
+ })
+}
+
+func schema_k8sio_apimachinery_pkg_version_Info(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Info contains versioning information. how we'll want to distribute that information.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "major": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Major is the major version of the binary version",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "minor": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Minor is the minor version of the binary version",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "emulationMajor": {
+ SchemaProps: spec.SchemaProps{
+ Description: "EmulationMajor is the major version of the emulation version",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "emulationMinor": {
+ SchemaProps: spec.SchemaProps{
+ Description: "EmulationMinor is the minor version of the emulation version",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "minCompatibilityMajor": {
+ SchemaProps: spec.SchemaProps{
+ Description: "MinCompatibilityMajor is the major version of the minimum compatibility version",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "minCompatibilityMinor": {
+ SchemaProps: spec.SchemaProps{
+ Description: "MinCompatibilityMinor is the minor version of the minimum compatibility version",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "gitVersion": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "gitCommit": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "gitTreeState": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "buildDate": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "goVersion": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "compiler": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "platform": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"major", "minor", "gitVersion", "gitCommit", "gitTreeState", "buildDate", "goVersion", "compiler", "platform"},
+ },
+ },
+ }
+}
+
+func schema_kmodulesxyz_client_go_api_v1_CAPIClusterInfo(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "provider": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "namespace": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "clusterName": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"provider", "namespace", "clusterName"},
+ },
+ },
+ }
+}
+
+func schema_kmodulesxyz_client_go_api_v1_CertificatePrivateKey(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "CertificatePrivateKey contains configuration options for private keys used by the Certificate controller. This allows control of how private keys are rotated.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "encoding": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The private key cryptography standards (PKCS) encoding for this certificate's private key to be encoded in. If provided, allowed values are \"pkcs1\" and \"pkcs8\" standing for PKCS#1 and PKCS#8, respectively. Defaults to PKCS#1 if not specified. See here for the difference between the formats: https://stackoverflow.com/a/48960291",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_kmodulesxyz_client_go_api_v1_CertificateSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "alias": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Alias represents the identifier of the certificate.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "issuerRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "IssuerRef is a reference to a Certificate Issuer.",
+ Ref: ref("k8s.io/api/core/v1.TypedLocalObjectReference"),
+ },
+ },
+ "secretName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Specifies the k8s secret name that holds the certificates. Default to --cert.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "subject": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Full X509 name specification (https://golang.org/pkg/crypto/x509/pkix/#Name).",
+ Ref: ref("kmodules.xyz/client-go/api/v1.X509Subject"),
+ },
+ },
+ "duration": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Certificate default Duration",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"),
+ },
+ },
+ "renewBefore": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Certificate renew before expiration duration\n\nDeprecated use `ReconfigureTLS` type OpsRequest instead.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"),
+ },
+ },
+ "dnsNames": {
+ SchemaProps: spec.SchemaProps{
+ Description: "DNSNames is a list of subject alt names to be used on the Certificate.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "ipAddresses": {
+ SchemaProps: spec.SchemaProps{
+ Description: "IPAddresses is a list of IP addresses to be used on the Certificate",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "uris": {
+ SchemaProps: spec.SchemaProps{
+ Description: "URIs is a list of URI subjectAltNames to be set on the Certificate.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "emailAddresses": {
+ SchemaProps: spec.SchemaProps{
+ Description: "EmailAddresses is a list of email subjectAltNames to be set on the Certificate.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "privateKey": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Options to control private keys used for the Certificate.",
+ Ref: ref("kmodules.xyz/client-go/api/v1.CertificatePrivateKey"),
+ },
+ },
+ },
+ Required: []string{"alias"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.TypedLocalObjectReference", "k8s.io/apimachinery/pkg/apis/meta/v1.Duration", "kmodules.xyz/client-go/api/v1.CertificatePrivateKey", "kmodules.xyz/client-go/api/v1.X509Subject"},
+ }
+}
+
+func schema_kmodulesxyz_client_go_api_v1_ClusterClaimFeatures(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "enabledFeatures": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "externallyManagedFeatures": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "disabledFeatures": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_kmodulesxyz_client_go_api_v1_ClusterClaimInfo(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "clusterMetadata": {
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/client-go/api/v1.ClusterInfo"),
+ },
+ },
+ },
+ Required: []string{"clusterMetadata"},
+ },
+ },
+ Dependencies: []string{
+ "kmodules.xyz/client-go/api/v1.ClusterInfo"},
+ }
+}
+
+func schema_kmodulesxyz_client_go_api_v1_ClusterInfo(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ClusterInfo used in ace-installer",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "uid": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "clusterManagers": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "capi": {
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("kmodules.xyz/client-go/api/v1.CAPIClusterInfo"),
+ },
+ },
+ },
+ Required: []string{"uid", "name", "clusterManagers"},
+ },
+ },
+ Dependencies: []string{
+ "kmodules.xyz/client-go/api/v1.CAPIClusterInfo"},
+ }
+}
+
+func schema_kmodulesxyz_client_go_api_v1_ClusterMetadata(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "uid": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "displayName": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "provider": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "ownerID": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "ownerType": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiEndpoint": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "caBundle": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "managerID": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "hubClusterID": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "cloudServiceAuthMode": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "mode": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"uid"},
+ },
+ },
+ }
+}
+
+func schema_kmodulesxyz_client_go_api_v1_Condition(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Condition defines an observation of a object operational state.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary util can be useful (see .node.status.util), the ability to deconflict is important.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Status of the condition, one of True, False, Unknown.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "observedGeneration": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If set, this represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.condition[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "severity": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "lastTransitionTime": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"),
+ },
+ },
+ "reason": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The reason for the condition's last transition in CamelCase. The specific API may choose whether this field is considered a guaranteed API. This field may not be empty.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "message": {
+ SchemaProps: spec.SchemaProps{
+ Description: "A human-readable message indicating details about the transition. This field may be empty.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"type", "status", "lastTransitionTime"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.Time"},
+ }
+}
+
+func schema_kmodulesxyz_client_go_api_v1_HealthCheckSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "HealthCheckSpec defines attributes of the health check",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "periodSeconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "How often (in seconds) to perform the health check. Default to 10 seconds. Minimum value is 1.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "timeoutSeconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Number of seconds after which the probe times out. Defaults to 10 second. Minimum value is 1. It should be less than the periodSeconds.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "failureThreshold": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Minimum consecutive failures for the health check to be considered failed after having succeeded. Defaults to 1. Minimum value is 1.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "disableWriteCheck": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Whether to disable write check on database. Defaults to false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_kmodulesxyz_client_go_api_v1_ImageInfo(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "image": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "lineages": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/client-go/api/v1.Lineage"),
+ },
+ },
+ },
+ },
+ },
+ "pullCredentials": {
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("kmodules.xyz/client-go/api/v1.PullCredentials"),
+ },
+ },
+ },
+ Required: []string{"image"},
+ },
+ },
+ Dependencies: []string{
+ "kmodules.xyz/client-go/api/v1.Lineage", "kmodules.xyz/client-go/api/v1.PullCredentials"},
+ }
+}
+
+func schema_kmodulesxyz_client_go_api_v1_Lineage(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "chain": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/client-go/api/v1.ObjectInfo"),
+ },
+ },
+ },
+ },
+ },
+ "containers": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "kmodules.xyz/client-go/api/v1.ObjectInfo"},
+ }
+}
+
+func schema_kmodulesxyz_client_go_api_v1_ObjectID(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "group": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "namespace": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_kmodulesxyz_client_go_api_v1_ObjectInfo(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "resource": {
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/client-go/api/v1.ResourceID"),
+ },
+ },
+ "ref": {
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/client-go/api/v1.ObjectReference"),
+ },
+ },
+ },
+ Required: []string{"resource", "ref"},
+ },
+ },
+ Dependencies: []string{
+ "kmodules.xyz/client-go/api/v1.ObjectReference", "kmodules.xyz/client-go/api/v1.ResourceID"},
+ }
+}
+
+func schema_kmodulesxyz_client_go_api_v1_ObjectReference(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ObjectReference contains enough information to let you inspect or modify the referred object.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "namespace": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"name"},
+ },
+ },
+ }
+}
+
+func schema_kmodulesxyz_client_go_api_v1_PullCredentials(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "namespace": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "serviceAccountName": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "secretRefs": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.LocalObjectReference"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"namespace"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.LocalObjectReference"},
+ }
+}
+
+func schema_kmodulesxyz_client_go_api_v1_ReadonlyHealthCheckSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ReadonlyHealthCheckSpec defines attributes of the health check using only read-only checks",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "periodSeconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "How often (in seconds) to perform the health check. Default to 10 seconds. Minimum value is 1.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "timeoutSeconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Number of seconds after which the probe times out. Defaults to 10 second. Minimum value is 1. It should be less than the periodSeconds.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "failureThreshold": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Minimum consecutive failures for the health check to be considered failed after having succeeded. Defaults to 1. Minimum value is 1.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_kmodulesxyz_client_go_api_v1_ResourceID(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ResourceID identifies a resource",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "group": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "version": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name is the plural name of the resource to serve. It must match the name of the CustomResourceDefinition-registration too: plural.group and it must be all lowercase.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is the serialized kind of the resource. It is normally CamelCase and singular.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "scope": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"group"},
+ },
+ },
+ }
+}
+
+func schema_kmodulesxyz_client_go_api_v1_TLSConfig(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "issuerRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "IssuerRef is a reference to a Certificate Issuer.",
+ Ref: ref("k8s.io/api/core/v1.TypedLocalObjectReference"),
+ },
+ },
+ "certificates": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Certificate provides server and/or client certificate options used by application pods. These options are passed to a cert-manager Certificate object. xref: https://github.com/jetstack/cert-manager/blob/v0.16.0/pkg/apis/certmanager/v1beta1/types_certificate.go#L82-L162",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/client-go/api/v1.CertificateSpec"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.TypedLocalObjectReference", "kmodules.xyz/client-go/api/v1.CertificateSpec"},
+ }
+}
+
+func schema_kmodulesxyz_client_go_api_v1_TimeOfDay(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "TimeOfDay is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.",
+ Type: apiv1.TimeOfDay{}.OpenAPISchemaType(),
+ Format: apiv1.TimeOfDay{}.OpenAPISchemaFormat(),
+ },
+ },
+ }
+}
+
+func schema_kmodulesxyz_client_go_api_v1_TypeReference(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "TypeReference represents an object type.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "apiGroup": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_kmodulesxyz_client_go_api_v1_TypedObjectReference(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "TypedObjectReference represents a typed namespaced object.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "apiGroup": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "namespace": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"name"},
+ },
+ },
+ }
+}
+
+func schema_kmodulesxyz_client_go_api_v1_X509Subject(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "X509Subject Full X509 name specification",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "organizations": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Organizations to be used on the Certificate.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "countries": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Countries to be used on the CertificateSpec.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "organizationalUnits": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Organizational Units to be used on the CertificateSpec.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "localities": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Cities to be used on the CertificateSpec.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "provinces": {
+ SchemaProps: spec.SchemaProps{
+ Description: "State/Provinces to be used on the CertificateSpec.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "streetAddresses": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Street addresses to be used on the CertificateSpec.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "postalCodes": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Postal codes to be used on the CertificateSpec.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "serialNumber": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Serial number to be used on the CertificateSpec.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_kmodulesxyz_client_go_api_v1_stringSetMerger(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ },
+ },
+ }
+}
+
+func schema_kmodulesxyz_offshoot_api_api_v1_ContainerRuntimeSettings(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "resources": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Compute Resources required by container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ResourceRequirements"),
+ },
+ },
+ "livenessProbe": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
+ Ref: ref("k8s.io/api/core/v1.Probe"),
+ },
+ },
+ "readinessProbe": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
+ Ref: ref("k8s.io/api/core/v1.Probe"),
+ },
+ },
+ "lifecycle": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Actions that the management system should take in response to container lifecycle events. Cannot be updated.",
+ Ref: ref("k8s.io/api/core/v1.Lifecycle"),
+ },
+ },
+ "securityContext": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/",
+ Ref: ref("k8s.io/api/core/v1.SecurityContext"),
+ },
+ },
+ "nice": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Settings to configure `nice` to throttle the load on cpu. More info: http://kennystechtalk.blogspot.com/2015/04/throttling-cpu-usage-with-linux-cgroups.html More info: https://oakbytes.wordpress.com/2012/06/06/linux-scheduler-cfs-and-nice/",
+ Ref: ref("kmodules.xyz/offshoot-api/api/v1.NiceSettings"),
+ },
+ },
+ "ionice": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Settings to configure `ionice` to throttle the load on disk. More info: http://kennystechtalk.blogspot.com/2015/04/throttling-cpu-usage-with-linux-cgroups.html More info: https://oakbytes.wordpress.com/2012/06/06/linux-scheduler-cfs-and-nice/",
+ Ref: ref("kmodules.xyz/offshoot-api/api/v1.IONiceSettings"),
+ },
+ },
+ "envFrom": {
+ SchemaProps: spec.SchemaProps{
+ Description: "List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.EnvFromSource"),
+ },
+ },
+ },
+ },
+ },
+ "env": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "List of environment variables to set in the container. Cannot be updated.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.EnvVar"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.EnvFromSource", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "kmodules.xyz/offshoot-api/api/v1.IONiceSettings", "kmodules.xyz/offshoot-api/api/v1.NiceSettings"},
+ }
+}
+
+func schema_kmodulesxyz_offshoot_api_api_v1_EphemeralVolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents an ephemeral volume that is handled by a normal storage driver.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "volumeClaimTemplate": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be `-` where `` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long).\n\nAn existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster.\n\nThis field is read-only and no changes will be made by Kubernetes to the PVC after it has been created.\n\nRequired, must not be nil.",
+ Ref: ref("kmodules.xyz/offshoot-api/api/v1.PersistentVolumeClaimTemplate"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "kmodules.xyz/offshoot-api/api/v1.PersistentVolumeClaimTemplate"},
+ }
+}
+
+func schema_kmodulesxyz_offshoot_api_api_v1_Gateway(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "namespace": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "ip": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "hostname": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "services": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Services is an optional configuration for services used to expose database",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/offshoot-api/api/v1.NamedServiceStatus"),
+ },
+ },
+ },
+ },
+ },
+ "ui": {
+ SchemaProps: spec.SchemaProps{
+ Description: "UI is an optional list of database web uis",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/offshoot-api/api/v1.NamedURL"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"name", "namespace"},
+ },
+ },
+ Dependencies: []string{
+ "kmodules.xyz/offshoot-api/api/v1.NamedServiceStatus", "kmodules.xyz/offshoot-api/api/v1.NamedURL"},
+ }
+}
+
+func schema_kmodulesxyz_offshoot_api_api_v1_GatewayPort(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "GatewayPort contains information on Gateway service's port.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The name of this port within the gateway service.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "port": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The port that will be exposed by the gateway service.",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "backendServicePort": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Number of the port to access the backend service.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "nodePort": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The port on each node on which this gateway service is exposed when type is NodePort or LoadBalancer.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ },
+ Required: []string{"port"},
+ },
+ },
+ }
+}
+
+func schema_kmodulesxyz_offshoot_api_api_v1_IONiceSettings(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "https://linux.die.net/man/1/ionice",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "class": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "classData": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_kmodulesxyz_offshoot_api_api_v1_NamedServiceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "alias": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Alias represents the identifier of the service.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "ports": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/offshoot-api/api/v1.GatewayPort"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"alias", "ports"},
+ },
+ },
+ Dependencies: []string{
+ "kmodules.xyz/offshoot-api/api/v1.GatewayPort"},
+ }
+}
+
+func schema_kmodulesxyz_offshoot_api_api_v1_NamedURL(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "alias": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Alias represents the identifier of the service. This should match the db ui chart name",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "url": {
+ SchemaProps: spec.SchemaProps{
+ Description: "URL of the database ui",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "port": {
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/offshoot-api/api/v1.GatewayPort"),
+ },
+ },
+ "helmRelease": {
+ SchemaProps: spec.SchemaProps{
+ Description: "HelmRelease is the name of the helm release used to deploy this ui The name format is typically -",
+ Ref: ref("k8s.io/api/core/v1.LocalObjectReference"),
+ },
+ },
+ },
+ Required: []string{"alias", "url", "port"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.LocalObjectReference", "kmodules.xyz/offshoot-api/api/v1.GatewayPort"},
+ }
+}
+
+func schema_kmodulesxyz_offshoot_api_api_v1_NiceSettings(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "https://linux.die.net/man/1/nice",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "adjustment": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_kmodulesxyz_offshoot_api_api_v1_ObjectMeta(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "labels": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "annotations": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_kmodulesxyz_offshoot_api_api_v1_PartialObjectMeta(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "generateName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.\n\nIf this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header).\n\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "namespace": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Namespace defines the space within each name must be unique. An empty namespace is equivalent to the \"default\" namespace, but \"default\" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty.\n\nMust be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "labels": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "annotations": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "ownerReferences": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-patch-merge-key": "uid",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.OwnerReference"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.OwnerReference"},
+ }
+}
+
+func schema_kmodulesxyz_offshoot_api_api_v1_PersistentVolumeClaim(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PersistentVolumeClaim is a user's request for and claim to a persistent volume",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/offshoot-api/api/v1.PartialObjectMeta"),
+ },
+ },
+ "spec": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PersistentVolumeClaimSpec"),
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Status represents the current information/status of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PersistentVolumeClaimStatus"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.PersistentVolumeClaimSpec", "k8s.io/api/core/v1.PersistentVolumeClaimStatus", "kmodules.xyz/offshoot-api/api/v1.PartialObjectMeta"},
+ }
+}
+
+func schema_kmodulesxyz_offshoot_api_api_v1_PersistentVolumeClaimTemplate(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PersistentVolumeClaimTemplate is used to produce PersistentVolumeClaim objects as part of an EphemeralVolumeSource.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation.",
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/offshoot-api/api/v1.PartialObjectMeta"),
+ },
+ },
+ "spec": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here.",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PersistentVolumeClaimSpec"),
+ },
+ },
+ },
+ Required: []string{"spec"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.PersistentVolumeClaimSpec", "kmodules.xyz/offshoot-api/api/v1.PartialObjectMeta"},
+ }
+}
+
+func schema_kmodulesxyz_offshoot_api_api_v1_PodRuntimeSettings(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "podLabels": {
+ SchemaProps: spec.SchemaProps{
+ Description: "PodLabels are the labels that will be attached with the respective Pod",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "podAnnotations": {
+ SchemaProps: spec.SchemaProps{
+ Description: "PodAnnotations are the annotations that will be attached with the respective Pod",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "nodeSelector": {
+ SchemaProps: spec.SchemaProps{
+ Description: "NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "serviceAccountName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "serviceAccountAnnotations": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ServiceAccountAnnotations are the annotations that will be attached with the respective ServiceAccount",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "automountServiceAccountToken": {
+ SchemaProps: spec.SchemaProps{
+ Description: "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "nodeName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "NodeName is a request to schedule this pod onto a specific node. If it is non-empty, the scheduler simply schedules this pod onto that node, assuming that it fits resource requirements.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "securityContext": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/",
+ Ref: ref("k8s.io/api/core/v1.PodSecurityContext"),
+ },
+ },
+ "imagePullSecrets": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodRuntimeSettings. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.LocalObjectReference"),
+ },
+ },
+ },
+ },
+ },
+ "affinity": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If specified, the pod's scheduling constraints",
+ Ref: ref("k8s.io/api/core/v1.Affinity"),
+ },
+ },
+ "schedulerName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "tolerations": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If specified, the pod's tolerations.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.Toleration"),
+ },
+ },
+ },
+ },
+ },
+ "priorityClassName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If specified, indicates the pod's priority. \"system-node-critical\" and \"system-cluster-critical\" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "priority": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "readinessGates": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If specified, all readiness gates will be evaluated for pod readiness. A pod is ready when all its containers are ready AND all conditions specified in the readiness gates have status equal to \"True\" More info: https://git.k8s.io/enhancements/keps/sig-network/0007-pod-ready%2B%2B.md",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.PodReadinessGate"),
+ },
+ },
+ },
+ },
+ },
+ "runtimeClassName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/runtime-class.md This is an alpha feature and may change in the future.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "enableServiceLinks": {
+ SchemaProps: spec.SchemaProps{
+ Description: "EnableServiceLinks indicates whether information about services should be injected into pod's environment variables, matching the syntax of Docker links. Optional: Defaults to true.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "topologySpreadConstraints": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "topologyKey",
+ "whenUnsatisfiable",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "topologyKey",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "TopologySpreadConstraints describes how a group of pods ought to spread across topology domains. Scheduler will schedule pods in a way which abides by the constraints. All topologySpreadConstraints are ANDed.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.TopologySpreadConstraint"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodReadinessGate", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.TopologySpreadConstraint"},
+ }
+}
+
+func schema_kmodulesxyz_offshoot_api_api_v1_PodSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "volumes": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge,retainKeys",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/offshoot-api/api/v1.Volume"),
+ },
+ },
+ },
+ },
+ },
+ "initContainers": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.Container"),
+ },
+ },
+ },
+ },
+ },
+ "terminationGracePeriodSeconds": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 30 seconds.",
+ Type: []string{"integer"},
+ Format: "int64",
+ },
+ },
+ "dnsPolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Set DNS policy for the pod. Defaults to \"ClusterFirst\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'.\n\nPossible enum values:\n - `\"ClusterFirst\"` indicates that the pod should use cluster DNS first unless hostNetwork is true, if it is available, then fall back on the default (as determined by kubelet) DNS settings.\n - `\"ClusterFirstWithHostNet\"` indicates that the pod should use cluster DNS first, if it is available, then fall back on the default (as determined by kubelet) DNS settings.\n - `\"Default\"` indicates that the pod should use the default (as determined by kubelet) DNS settings.\n - `\"None\"` indicates that the pod should use empty DNS settings. DNS parameters such as nameservers and search paths should be defined via DNSConfig.",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"ClusterFirst", "ClusterFirstWithHostNet", "Default", "None"},
+ },
+ },
+ "nodeSelector": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-map-type": "atomic",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "serviceAccountName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "hostNetwork": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Host networking requested for this pod. Use the host's network namespace. If this option is set, the ports that will be used must be specified. Default to false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "hostPID": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Use the host's pid namespace. Optional: Default to false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "hostIPC": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Use the host's ipc namespace. Optional: Default to false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "shareProcessNamespace": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Share a single process namespace between all of the containers in a pod. When this is set containers will be able to view and signal processes from other containers in the same pod, and the first process in each container will not be assigned PID 1. HostPID and ShareProcessNamespace cannot both be set. Optional: Default to false.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "securityContext": {
+ SchemaProps: spec.SchemaProps{
+ Description: "SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field.",
+ Ref: ref("k8s.io/api/core/v1.PodSecurityContext"),
+ },
+ },
+ "imagePullSecrets": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-patch-merge-key": "name",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.LocalObjectReference"),
+ },
+ },
+ },
+ },
+ },
+ "affinity": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If specified, the pod's scheduling constraints",
+ Ref: ref("k8s.io/api/core/v1.Affinity"),
+ },
+ },
+ "schedulerName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "tolerations": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If specified, the pod's tolerations.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.Toleration"),
+ },
+ },
+ },
+ },
+ },
+ "priorityClassName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If specified, indicates the pod's priority. \"system-node-critical\" and \"system-cluster-critical\" are two special keywords which indicate the highest priorities with the former being the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "priority": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "dnsConfig": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Specifies the DNS parameters of a pod. Parameters specified here will be merged to the generated DNS configuration based on DNSPolicy.",
+ Ref: ref("k8s.io/api/core/v1.PodDNSConfig"),
+ },
+ },
+ "runtimeClassName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "enableServiceLinks": {
+ SchemaProps: spec.SchemaProps{
+ Description: "EnableServiceLinks indicates whether information about services should be injected into pod's environment variables, matching the syntax of Docker links. Optional: Defaults to true.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "topologySpreadConstraints": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-list-map-keys": []interface{}{
+ "topologyKey",
+ "whenUnsatisfiable",
+ },
+ "x-kubernetes-list-type": "map",
+ "x-kubernetes-patch-merge-key": "topologyKey",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "TopologySpreadConstraints describes how a group of pods ought to spread across topology domains. Scheduler will schedule pods in a way which abides by the constraints. All topologySpreadConstraints are ANDed.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.TopologySpreadConstraint"),
+ },
+ },
+ },
+ },
+ },
+ "args": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Arguments to the entrypoint. The docker image's CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "env": {
+ SchemaProps: spec.SchemaProps{
+ Description: "List of environment variables to set in the container. Cannot be updated.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.EnvVar"),
+ },
+ },
+ },
+ },
+ },
+ "resources": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Compute Resources required by the sidecar container.",
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.ResourceRequirements"),
+ },
+ },
+ "livenessProbe": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Periodic probe of container liveness. Container will be restarted if the probe fails. Controllers may set default LivenessProbe if no liveness probe is provided. To ignore defaulting, set the value to empty LivenessProbe \"{}\". Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
+ Ref: ref("k8s.io/api/core/v1.Probe"),
+ },
+ },
+ "readinessProbe": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. Controllers may set default ReadinessProbe if no readyness probe is provided. To ignore defaulting, set the value to empty ReadynessProbe \"{}\". More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes",
+ Ref: ref("k8s.io/api/core/v1.Probe"),
+ },
+ },
+ "lifecycle": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Actions that the management system should take in response to container lifecycle events. Cannot be updated.",
+ Ref: ref("k8s.io/api/core/v1.Lifecycle"),
+ },
+ },
+ "containerSecurityContext": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/",
+ Ref: ref("k8s.io/api/core/v1.SecurityContext"),
+ },
+ },
+ "volumeMounts": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-patch-merge-key": "mountPath",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "Pod volumes to mount into the container's filesystem. Cannot be updated.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/api/core/v1.VolumeMount"),
+ },
+ },
+ },
+ },
+ },
+ "podPlacementPolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "PodPlacementPolicy is the reference of the podPlacementPolicy",
+ Ref: ref("k8s.io/api/core/v1.LocalObjectReference"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Container", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.Lifecycle", "k8s.io/api/core/v1.LocalObjectReference", "k8s.io/api/core/v1.PodDNSConfig", "k8s.io/api/core/v1.PodSecurityContext", "k8s.io/api/core/v1.Probe", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.SecurityContext", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.TopologySpreadConstraint", "k8s.io/api/core/v1.VolumeMount", "kmodules.xyz/offshoot-api/api/v1.Volume"},
+ }
+}
+
+func schema_kmodulesxyz_offshoot_api_api_v1_PodTemplateSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "PodTemplateSpec describes the data a pod should have when created from a template",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/offshoot-api/api/v1.ObjectMeta"),
+ },
+ },
+ "controller": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Workload controller's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/offshoot-api/api/v1.ObjectMeta"),
+ },
+ },
+ "spec": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status",
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/offshoot-api/api/v1.PodSpec"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "kmodules.xyz/offshoot-api/api/v1.ObjectMeta", "kmodules.xyz/offshoot-api/api/v1.PodSpec"},
+ }
+}
+
+func schema_kmodulesxyz_offshoot_api_api_v1_RuntimeSettings(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "pod": {
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("kmodules.xyz/offshoot-api/api/v1.PodRuntimeSettings"),
+ },
+ },
+ "container": {
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("kmodules.xyz/offshoot-api/api/v1.ContainerRuntimeSettings"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "kmodules.xyz/offshoot-api/api/v1.ContainerRuntimeSettings", "kmodules.xyz/offshoot-api/api/v1.PodRuntimeSettings"},
+ }
+}
+
+func schema_kmodulesxyz_offshoot_api_api_v1_ServicePort(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ServicePort contains information on service's port.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The name of this port within the service. This must be a DNS_LABEL. All ports within a ServiceSpec must have unique names. This maps to the 'Name' field in EndpointPort objects. Optional if only one ServicePort is defined on this service.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "port": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The port that will be exposed by this service.",
+ Default: 0,
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "nodePort": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The port on each node on which this service is exposed when type=NodePort or LoadBalancer. Usually assigned by the system. If specified, it will be allocated to the service if unused or else creation of the service will fail. Default is to auto-allocate a port if the ServiceType of this Service requires one. More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ },
+ Required: []string{"port"},
+ },
+ },
+ }
+}
+
+func schema_kmodulesxyz_offshoot_api_api_v1_ServiceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ServiceSpec describes the attributes that a user creates on a service.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "ports": {
+ VendorExtensible: spec.VendorExtensible{
+ Extensions: spec.Extensions{
+ "x-kubernetes-patch-merge-key": "port",
+ "x-kubernetes-patch-strategy": "merge",
+ },
+ },
+ SchemaProps: spec.SchemaProps{
+ Description: "The list of ports that are exposed by this service. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/offshoot-api/api/v1.ServicePort"),
+ },
+ },
+ },
+ },
+ },
+ "clusterIP": {
+ SchemaProps: spec.SchemaProps{
+ Description: "clusterIP is the IP address of the service and is usually assigned randomly by the master. If an address is specified manually and is not in use by others, it will be allocated to the service; otherwise, creation of the service will fail. This field can not be changed through updates. Valid values are \"None\", empty string (\"\"), or a valid IP address. \"None\" can be specified for headless services when proxying is not required. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Description: "type determines how the Service is exposed. Defaults to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. \"ExternalName\" maps to the specified externalName. \"ClusterIP\" allocates a cluster-internal IP address for load-balancing to endpoints. Endpoints are determined by the selector or if that is not specified, by manual construction of an Endpoints object. If clusterIP is \"None\", no virtual IP is allocated and the endpoints are published as a set of endpoints rather than a stable IP. \"NodePort\" builds on ClusterIP and allocates a port on every node which routes to the clusterIP. \"LoadBalancer\" builds on NodePort and creates an external load-balancer (if supported in the current cloud) which routes to the clusterIP. More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services---service-types\n\nPossible enum values:\n - `\"ClusterIP\"` means a service will only be accessible inside the cluster, via the cluster IP.\n - `\"ExternalName\"` means a service consists of only a reference to an external name that kubedns or equivalent will return as a CNAME record, with no exposing or proxying of any pods involved.\n - `\"LoadBalancer\"` means a service will be exposed via an external load balancer (if the cloud provider supports it), in addition to 'NodePort' type.\n - `\"NodePort\"` means a service will be exposed on one port of every node, in addition to 'ClusterIP' type.",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"ClusterIP", "ExternalName", "LoadBalancer", "NodePort"},
+ },
+ },
+ "externalIPs": {
+ SchemaProps: spec.SchemaProps{
+ Description: "externalIPs is a list of IP addresses for which nodes in the cluster will also accept traffic for this service. These IPs are not managed by Kubernetes. The user is responsible for ensuring that traffic arrives at a node with this IP. A common example is external load-balancers that are not part of the Kubernetes system.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "loadBalancerIP": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Only applies to Service Type: LoadBalancer LoadBalancer will get created with the IP specified in this field. This feature depends on whether the underlying cloud-provider supports specifying the loadBalancerIP when a load balancer is created. This field will be ignored if the cloud-provider does not support the feature.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "loadBalancerSourceRanges": {
+ SchemaProps: spec.SchemaProps{
+ Description: "If specified and supported by the platform, this will restrict traffic through the cloud-provider load-balancer will be restricted to the specified client IPs. This field will be ignored if the cloud-provider does not support the feature.\" More info: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "externalTrafficPolicy": {
+ SchemaProps: spec.SchemaProps{
+ Description: "externalTrafficPolicy denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints. \"Local\" preserves the client source IP and avoids a second hop for LoadBalancer and Nodeport type services, but risks potentially imbalanced traffic spreading. \"Cluster\" obscures the client source IP and may cause a second hop to another node, but should have good overall load-spreading.\n\nPossible enum values:\n - `\"Cluster\"`\n - `\"Cluster\"` routes traffic to all endpoints.\n - `\"Local\"`\n - `\"Local\"` preserves the source IP of the traffic by routing only to endpoints on the same node as the traffic was received on (dropping the traffic if there are no local endpoints).",
+ Type: []string{"string"},
+ Format: "",
+ Enum: []interface{}{"Cluster", "Cluster", "Local", "Local"},
+ },
+ },
+ "healthCheckNodePort": {
+ SchemaProps: spec.SchemaProps{
+ Description: "healthCheckNodePort specifies the healthcheck nodePort for the service. If not specified, HealthCheckNodePort is created by the service api backend with the allocated nodePort. Will use user-specified nodePort value if specified by the client. Only effects when Type is set to LoadBalancer and ExternalTrafficPolicy is set to Local.",
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ "sessionAffinityConfig": {
+ SchemaProps: spec.SchemaProps{
+ Description: "sessionAffinityConfig contains the configurations of session affinity.",
+ Ref: ref("k8s.io/api/core/v1.SessionAffinityConfig"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.SessionAffinityConfig", "kmodules.xyz/offshoot-api/api/v1.ServicePort"},
+ }
+}
+
+func schema_kmodulesxyz_offshoot_api_api_v1_ServiceTemplateSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ServiceTemplateSpec describes the data a service should have when created from a template",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata",
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/offshoot-api/api/v1.ObjectMeta"),
+ },
+ },
+ "spec": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Specification of the desired behavior of the service. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status",
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/offshoot-api/api/v1.ServiceSpec"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "kmodules.xyz/offshoot-api/api/v1.ObjectMeta", "kmodules.xyz/offshoot-api/api/v1.ServiceSpec"},
+ }
+}
+
+func schema_kmodulesxyz_offshoot_api_api_v1_Volume(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Volume represents a named volume in a pod that may be accessed by any container in the pod.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "hostPath": {
+ SchemaProps: spec.SchemaProps{
+ Description: "hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath",
+ Ref: ref("k8s.io/api/core/v1.HostPathVolumeSource"),
+ },
+ },
+ "emptyDir": {
+ SchemaProps: spec.SchemaProps{
+ Description: "emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir",
+ Ref: ref("k8s.io/api/core/v1.EmptyDirVolumeSource"),
+ },
+ },
+ "gcePersistentDisk": {
+ SchemaProps: spec.SchemaProps{
+ Description: "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk",
+ Ref: ref("k8s.io/api/core/v1.GCEPersistentDiskVolumeSource"),
+ },
+ },
+ "awsElasticBlockStore": {
+ SchemaProps: spec.SchemaProps{
+ Description: "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore",
+ Ref: ref("k8s.io/api/core/v1.AWSElasticBlockStoreVolumeSource"),
+ },
+ },
+ "secret": {
+ SchemaProps: spec.SchemaProps{
+ Description: "secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret",
+ Ref: ref("k8s.io/api/core/v1.SecretVolumeSource"),
+ },
+ },
+ "nfs": {
+ SchemaProps: spec.SchemaProps{
+ Description: "nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs",
+ Ref: ref("k8s.io/api/core/v1.NFSVolumeSource"),
+ },
+ },
+ "iscsi": {
+ SchemaProps: spec.SchemaProps{
+ Description: "iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md",
+ Ref: ref("k8s.io/api/core/v1.ISCSIVolumeSource"),
+ },
+ },
+ "glusterfs": {
+ SchemaProps: spec.SchemaProps{
+ Description: "glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md",
+ Ref: ref("k8s.io/api/core/v1.GlusterfsVolumeSource"),
+ },
+ },
+ "persistentVolumeClaim": {
+ SchemaProps: spec.SchemaProps{
+ Description: "persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims",
+ Ref: ref("k8s.io/api/core/v1.PersistentVolumeClaimVolumeSource"),
+ },
+ },
+ "rbd": {
+ SchemaProps: spec.SchemaProps{
+ Description: "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md",
+ Ref: ref("k8s.io/api/core/v1.RBDVolumeSource"),
+ },
+ },
+ "flexVolume": {
+ SchemaProps: spec.SchemaProps{
+ Description: "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.",
+ Ref: ref("k8s.io/api/core/v1.FlexVolumeSource"),
+ },
+ },
+ "cinder": {
+ SchemaProps: spec.SchemaProps{
+ Description: "cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md",
+ Ref: ref("k8s.io/api/core/v1.CinderVolumeSource"),
+ },
+ },
+ "cephfs": {
+ SchemaProps: spec.SchemaProps{
+ Description: "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime",
+ Ref: ref("k8s.io/api/core/v1.CephFSVolumeSource"),
+ },
+ },
+ "flocker": {
+ SchemaProps: spec.SchemaProps{
+ Description: "flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running",
+ Ref: ref("k8s.io/api/core/v1.FlockerVolumeSource"),
+ },
+ },
+ "downwardAPI": {
+ SchemaProps: spec.SchemaProps{
+ Description: "downwardAPI represents downward API about the pod that should populate this volume",
+ Ref: ref("k8s.io/api/core/v1.DownwardAPIVolumeSource"),
+ },
+ },
+ "fc": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.",
+ Ref: ref("k8s.io/api/core/v1.FCVolumeSource"),
+ },
+ },
+ "azureFile": {
+ SchemaProps: spec.SchemaProps{
+ Description: "azureFile represents an Azure File Service mount on the host and bind mount to the pod.",
+ Ref: ref("k8s.io/api/core/v1.AzureFileVolumeSource"),
+ },
+ },
+ "configMap": {
+ SchemaProps: spec.SchemaProps{
+ Description: "configMap represents a configMap that should populate this volume",
+ Ref: ref("k8s.io/api/core/v1.ConfigMapVolumeSource"),
+ },
+ },
+ "vsphereVolume": {
+ SchemaProps: spec.SchemaProps{
+ Description: "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine",
+ Ref: ref("k8s.io/api/core/v1.VsphereVirtualDiskVolumeSource"),
+ },
+ },
+ "quobyte": {
+ SchemaProps: spec.SchemaProps{
+ Description: "quobyte represents a Quobyte mount on the host that shares a pod's lifetime",
+ Ref: ref("k8s.io/api/core/v1.QuobyteVolumeSource"),
+ },
+ },
+ "azureDisk": {
+ SchemaProps: spec.SchemaProps{
+ Description: "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.",
+ Ref: ref("k8s.io/api/core/v1.AzureDiskVolumeSource"),
+ },
+ },
+ "photonPersistentDisk": {
+ SchemaProps: spec.SchemaProps{
+ Description: "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine",
+ Ref: ref("k8s.io/api/core/v1.PhotonPersistentDiskVolumeSource"),
+ },
+ },
+ "projected": {
+ SchemaProps: spec.SchemaProps{
+ Description: "projected items for all in one resources secrets, configmaps, and downward API",
+ Ref: ref("k8s.io/api/core/v1.ProjectedVolumeSource"),
+ },
+ },
+ "portworxVolume": {
+ SchemaProps: spec.SchemaProps{
+ Description: "portworxVolume represents a portworx volume attached and mounted on kubelets host machine",
+ Ref: ref("k8s.io/api/core/v1.PortworxVolumeSource"),
+ },
+ },
+ "scaleIO": {
+ SchemaProps: spec.SchemaProps{
+ Description: "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.",
+ Ref: ref("k8s.io/api/core/v1.ScaleIOVolumeSource"),
+ },
+ },
+ "storageos": {
+ SchemaProps: spec.SchemaProps{
+ Description: "storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.",
+ Ref: ref("k8s.io/api/core/v1.StorageOSVolumeSource"),
+ },
+ },
+ "csi": {
+ SchemaProps: spec.SchemaProps{
+ Description: "csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).",
+ Ref: ref("k8s.io/api/core/v1.CSIVolumeSource"),
+ },
+ },
+ "ephemeral": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed.\n\nUse this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity\n tracking are needed,\nc) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through\n a PersistentVolumeClaim (see EphemeralVolumeSource for more\n information on the connection between this volume type\n and PersistentVolumeClaim).\n\nUse PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod.\n\nUse CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information.\n\nA pod can use both types of ephemeral volumes and persistent volumes at the same time.",
+ Ref: ref("kmodules.xyz/offshoot-api/api/v1.EphemeralVolumeSource"),
+ },
+ },
+ },
+ Required: []string{"name"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.AWSElasticBlockStoreVolumeSource", "k8s.io/api/core/v1.AzureDiskVolumeSource", "k8s.io/api/core/v1.AzureFileVolumeSource", "k8s.io/api/core/v1.CSIVolumeSource", "k8s.io/api/core/v1.CephFSVolumeSource", "k8s.io/api/core/v1.CinderVolumeSource", "k8s.io/api/core/v1.ConfigMapVolumeSource", "k8s.io/api/core/v1.DownwardAPIVolumeSource", "k8s.io/api/core/v1.EmptyDirVolumeSource", "k8s.io/api/core/v1.FCVolumeSource", "k8s.io/api/core/v1.FlexVolumeSource", "k8s.io/api/core/v1.FlockerVolumeSource", "k8s.io/api/core/v1.GCEPersistentDiskVolumeSource", "k8s.io/api/core/v1.GlusterfsVolumeSource", "k8s.io/api/core/v1.HostPathVolumeSource", "k8s.io/api/core/v1.ISCSIVolumeSource", "k8s.io/api/core/v1.NFSVolumeSource", "k8s.io/api/core/v1.PersistentVolumeClaimVolumeSource", "k8s.io/api/core/v1.PhotonPersistentDiskVolumeSource", "k8s.io/api/core/v1.PortworxVolumeSource", "k8s.io/api/core/v1.ProjectedVolumeSource", "k8s.io/api/core/v1.QuobyteVolumeSource", "k8s.io/api/core/v1.RBDVolumeSource", "k8s.io/api/core/v1.ScaleIOVolumeSource", "k8s.io/api/core/v1.SecretVolumeSource", "k8s.io/api/core/v1.StorageOSVolumeSource", "k8s.io/api/core/v1.VsphereVirtualDiskVolumeSource", "kmodules.xyz/offshoot-api/api/v1.EphemeralVolumeSource"},
+ }
+}
+
+func schema_kmodulesxyz_offshoot_api_api_v1_VolumeSource(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "Represents the source of a volume to mount. Only one of its members may be specified.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "hostPath": {
+ SchemaProps: spec.SchemaProps{
+ Description: "hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath",
+ Ref: ref("k8s.io/api/core/v1.HostPathVolumeSource"),
+ },
+ },
+ "emptyDir": {
+ SchemaProps: spec.SchemaProps{
+ Description: "emptyDir represents a temporary directory that shares a pod's lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir",
+ Ref: ref("k8s.io/api/core/v1.EmptyDirVolumeSource"),
+ },
+ },
+ "gcePersistentDisk": {
+ SchemaProps: spec.SchemaProps{
+ Description: "gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk",
+ Ref: ref("k8s.io/api/core/v1.GCEPersistentDiskVolumeSource"),
+ },
+ },
+ "awsElasticBlockStore": {
+ SchemaProps: spec.SchemaProps{
+ Description: "awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore",
+ Ref: ref("k8s.io/api/core/v1.AWSElasticBlockStoreVolumeSource"),
+ },
+ },
+ "secret": {
+ SchemaProps: spec.SchemaProps{
+ Description: "secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret",
+ Ref: ref("k8s.io/api/core/v1.SecretVolumeSource"),
+ },
+ },
+ "nfs": {
+ SchemaProps: spec.SchemaProps{
+ Description: "nfs represents an NFS mount on the host that shares a pod's lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs",
+ Ref: ref("k8s.io/api/core/v1.NFSVolumeSource"),
+ },
+ },
+ "iscsi": {
+ SchemaProps: spec.SchemaProps{
+ Description: "iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md",
+ Ref: ref("k8s.io/api/core/v1.ISCSIVolumeSource"),
+ },
+ },
+ "glusterfs": {
+ SchemaProps: spec.SchemaProps{
+ Description: "glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md",
+ Ref: ref("k8s.io/api/core/v1.GlusterfsVolumeSource"),
+ },
+ },
+ "persistentVolumeClaim": {
+ SchemaProps: spec.SchemaProps{
+ Description: "persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims",
+ Ref: ref("k8s.io/api/core/v1.PersistentVolumeClaimVolumeSource"),
+ },
+ },
+ "rbd": {
+ SchemaProps: spec.SchemaProps{
+ Description: "rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md",
+ Ref: ref("k8s.io/api/core/v1.RBDVolumeSource"),
+ },
+ },
+ "flexVolume": {
+ SchemaProps: spec.SchemaProps{
+ Description: "flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin.",
+ Ref: ref("k8s.io/api/core/v1.FlexVolumeSource"),
+ },
+ },
+ "cinder": {
+ SchemaProps: spec.SchemaProps{
+ Description: "cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md",
+ Ref: ref("k8s.io/api/core/v1.CinderVolumeSource"),
+ },
+ },
+ "cephfs": {
+ SchemaProps: spec.SchemaProps{
+ Description: "cephFS represents a Ceph FS mount on the host that shares a pod's lifetime",
+ Ref: ref("k8s.io/api/core/v1.CephFSVolumeSource"),
+ },
+ },
+ "flocker": {
+ SchemaProps: spec.SchemaProps{
+ Description: "flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running",
+ Ref: ref("k8s.io/api/core/v1.FlockerVolumeSource"),
+ },
+ },
+ "downwardAPI": {
+ SchemaProps: spec.SchemaProps{
+ Description: "downwardAPI represents downward API about the pod that should populate this volume",
+ Ref: ref("k8s.io/api/core/v1.DownwardAPIVolumeSource"),
+ },
+ },
+ "fc": {
+ SchemaProps: spec.SchemaProps{
+ Description: "fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.",
+ Ref: ref("k8s.io/api/core/v1.FCVolumeSource"),
+ },
+ },
+ "azureFile": {
+ SchemaProps: spec.SchemaProps{
+ Description: "azureFile represents an Azure File Service mount on the host and bind mount to the pod.",
+ Ref: ref("k8s.io/api/core/v1.AzureFileVolumeSource"),
+ },
+ },
+ "configMap": {
+ SchemaProps: spec.SchemaProps{
+ Description: "configMap represents a configMap that should populate this volume",
+ Ref: ref("k8s.io/api/core/v1.ConfigMapVolumeSource"),
+ },
+ },
+ "vsphereVolume": {
+ SchemaProps: spec.SchemaProps{
+ Description: "vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine",
+ Ref: ref("k8s.io/api/core/v1.VsphereVirtualDiskVolumeSource"),
+ },
+ },
+ "quobyte": {
+ SchemaProps: spec.SchemaProps{
+ Description: "quobyte represents a Quobyte mount on the host that shares a pod's lifetime",
+ Ref: ref("k8s.io/api/core/v1.QuobyteVolumeSource"),
+ },
+ },
+ "azureDisk": {
+ SchemaProps: spec.SchemaProps{
+ Description: "azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.",
+ Ref: ref("k8s.io/api/core/v1.AzureDiskVolumeSource"),
+ },
+ },
+ "photonPersistentDisk": {
+ SchemaProps: spec.SchemaProps{
+ Description: "photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine",
+ Ref: ref("k8s.io/api/core/v1.PhotonPersistentDiskVolumeSource"),
+ },
+ },
+ "projected": {
+ SchemaProps: spec.SchemaProps{
+ Description: "projected items for all in one resources secrets, configmaps, and downward API",
+ Ref: ref("k8s.io/api/core/v1.ProjectedVolumeSource"),
+ },
+ },
+ "portworxVolume": {
+ SchemaProps: spec.SchemaProps{
+ Description: "portworxVolume represents a portworx volume attached and mounted on kubelets host machine",
+ Ref: ref("k8s.io/api/core/v1.PortworxVolumeSource"),
+ },
+ },
+ "scaleIO": {
+ SchemaProps: spec.SchemaProps{
+ Description: "scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.",
+ Ref: ref("k8s.io/api/core/v1.ScaleIOVolumeSource"),
+ },
+ },
+ "storageos": {
+ SchemaProps: spec.SchemaProps{
+ Description: "storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.",
+ Ref: ref("k8s.io/api/core/v1.StorageOSVolumeSource"),
+ },
+ },
+ "csi": {
+ SchemaProps: spec.SchemaProps{
+ Description: "csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).",
+ Ref: ref("k8s.io/api/core/v1.CSIVolumeSource"),
+ },
+ },
+ "ephemeral": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed.\n\nUse this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity\n tracking are needed,\nc) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through\n a PersistentVolumeClaim (see EphemeralVolumeSource for more\n information on the connection between this volume type\n and PersistentVolumeClaim).\n\nUse PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod.\n\nUse CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information.\n\nA pod can use both types of ephemeral volumes and persistent volumes at the same time.",
+ Ref: ref("kmodules.xyz/offshoot-api/api/v1.EphemeralVolumeSource"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/api/core/v1.AWSElasticBlockStoreVolumeSource", "k8s.io/api/core/v1.AzureDiskVolumeSource", "k8s.io/api/core/v1.AzureFileVolumeSource", "k8s.io/api/core/v1.CSIVolumeSource", "k8s.io/api/core/v1.CephFSVolumeSource", "k8s.io/api/core/v1.CinderVolumeSource", "k8s.io/api/core/v1.ConfigMapVolumeSource", "k8s.io/api/core/v1.DownwardAPIVolumeSource", "k8s.io/api/core/v1.EmptyDirVolumeSource", "k8s.io/api/core/v1.FCVolumeSource", "k8s.io/api/core/v1.FlexVolumeSource", "k8s.io/api/core/v1.FlockerVolumeSource", "k8s.io/api/core/v1.GCEPersistentDiskVolumeSource", "k8s.io/api/core/v1.GlusterfsVolumeSource", "k8s.io/api/core/v1.HostPathVolumeSource", "k8s.io/api/core/v1.ISCSIVolumeSource", "k8s.io/api/core/v1.NFSVolumeSource", "k8s.io/api/core/v1.PersistentVolumeClaimVolumeSource", "k8s.io/api/core/v1.PhotonPersistentDiskVolumeSource", "k8s.io/api/core/v1.PortworxVolumeSource", "k8s.io/api/core/v1.ProjectedVolumeSource", "k8s.io/api/core/v1.QuobyteVolumeSource", "k8s.io/api/core/v1.RBDVolumeSource", "k8s.io/api/core/v1.ScaleIOVolumeSource", "k8s.io/api/core/v1.SecretVolumeSource", "k8s.io/api/core/v1.StorageOSVolumeSource", "k8s.io/api/core/v1.VsphereVirtualDiskVolumeSource", "kmodules.xyz/offshoot-api/api/v1.EphemeralVolumeSource"},
+ }
+}
+
+func schema_kmodulesxyz_resource_metadata_apis_shared_Action(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "icon": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "description": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "icons": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("x-helm.dev/apimachinery/apis/shared.ImageSpec"),
+ },
+ },
+ },
+ },
+ },
+ "operationId": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "flow": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "disabled": {
+ SchemaProps: spec.SchemaProps{
+ Default: false,
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "editor": {
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("x-helm.dev/apimachinery/apis/releases/v1alpha1.ChartSourceRef"),
+ },
+ },
+ },
+ Required: []string{"operationId", "flow", "disabled"},
+ },
+ },
+ Dependencies: []string{
+ "x-helm.dev/apimachinery/apis/releases/v1alpha1.ChartSourceRef", "x-helm.dev/apimachinery/apis/shared.ImageSpec"},
+ }
+}
+
+func schema_kmodulesxyz_resource_metadata_apis_shared_ActionGroup(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "icon": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "description": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/resource-metadata/apis/shared.Action"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"items"},
+ },
+ },
+ Dependencies: []string{
+ "kmodules.xyz/resource-metadata/apis/shared.Action"},
+ }
+}
+
+func schema_kmodulesxyz_resource_metadata_apis_shared_ActionInfo(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "icon": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "description": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_kmodulesxyz_resource_metadata_apis_shared_ActionTemplate(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "icon": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "description": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "icons": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("x-helm.dev/apimachinery/apis/shared.ImageSpec"),
+ },
+ },
+ },
+ },
+ },
+ "operationId": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "flow": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "disabledTemplate": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "editor": {
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("x-helm.dev/apimachinery/apis/releases/v1alpha1.ChartSourceRef"),
+ },
+ },
+ "enforceQuota": {
+ SchemaProps: spec.SchemaProps{
+ Default: false,
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "partOf": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"operationId", "flow", "enforceQuota"},
+ },
+ },
+ Dependencies: []string{
+ "x-helm.dev/apimachinery/apis/releases/v1alpha1.ChartSourceRef", "x-helm.dev/apimachinery/apis/shared.ImageSpec"},
+ }
+}
+
+func schema_kmodulesxyz_resource_metadata_apis_shared_ActionTemplateGroup(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "icon": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "description": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/resource-metadata/apis/shared.ActionTemplate"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"items"},
+ },
+ },
+ Dependencies: []string{
+ "kmodules.xyz/resource-metadata/apis/shared.ActionTemplate"},
+ }
+}
+
+func schema_kmodulesxyz_resource_metadata_apis_shared_BootstrapPresets(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "offlineInstaller": {
+ SchemaProps: spec.SchemaProps{
+ Default: false,
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "image": {
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/resource-metadata/apis/shared.ImageRegistrySpec"),
+ },
+ },
+ "registry": {
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/resource-metadata/apis/shared.RegistryInfo"),
+ },
+ },
+ "helm": {
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/resource-metadata/apis/shared.HelmInfo"),
+ },
+ },
+ },
+ Required: []string{"image", "registry", "helm"},
+ },
+ },
+ Dependencies: []string{
+ "kmodules.xyz/resource-metadata/apis/shared.HelmInfo", "kmodules.xyz/resource-metadata/apis/shared.ImageRegistrySpec", "kmodules.xyz/resource-metadata/apis/shared.RegistryInfo"},
+ }
+}
+
+func schema_kmodulesxyz_resource_metadata_apis_shared_Dashboard(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "title": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "vars": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/resource-metadata/apis/shared.DashboardVar"),
+ },
+ },
+ },
+ },
+ },
+ "panels": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "if": {
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("kmodules.xyz/resource-metadata/apis/shared.If"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "kmodules.xyz/resource-metadata/apis/shared.DashboardVar", "kmodules.xyz/resource-metadata/apis/shared.If"},
+ }
+}
+
+func schema_kmodulesxyz_resource_metadata_apis_shared_DashboardVar(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "value": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"name", "value"},
+ },
+ },
+ }
+}
+
+func schema_kmodulesxyz_resource_metadata_apis_shared_DeploymentParameters(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "productID": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "planID": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "chart": {
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("x-helm.dev/apimachinery/apis/releases/v1alpha1.ChartSourceRef"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "x-helm.dev/apimachinery/apis/releases/v1alpha1.ChartSourceRef"},
+ }
+}
+
+func schema_kmodulesxyz_resource_metadata_apis_shared_DistroSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "openshift": {
+ SchemaProps: spec.SchemaProps{
+ Default: false,
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "ubi": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"openshift", "ubi"},
+ },
+ },
+ }
+}
+
+func schema_kmodulesxyz_resource_metadata_apis_shared_HelmInfo(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "createNamespace": {
+ SchemaProps: spec.SchemaProps{
+ Default: false,
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "repositories": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("kmodules.xyz/resource-metadata/apis/shared.HelmRepository"),
+ },
+ },
+ },
+ },
+ },
+ "releases": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("kmodules.xyz/resource-metadata/apis/shared.HelmRelease"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"createNamespace", "repositories", "releases"},
+ },
+ },
+ Dependencies: []string{
+ "kmodules.xyz/resource-metadata/apis/shared.HelmRelease", "kmodules.xyz/resource-metadata/apis/shared.HelmRepository"},
+ }
+}
+
+func schema_kmodulesxyz_resource_metadata_apis_shared_HelmRelease(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "enabled": {
+ SchemaProps: spec.SchemaProps{
+ Default: false,
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "version": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "values": {
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("k8s.io/apimachinery/pkg/runtime.RawExtension"),
+ },
+ },
+ },
+ Required: []string{"enabled", "version"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/runtime.RawExtension"},
+ }
+}
+
+func schema_kmodulesxyz_resource_metadata_apis_shared_HelmRepository(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "url": {
+ SchemaProps: spec.SchemaProps{
+ Description: "URL of the Helm repository, a valid URL contains at least a protocol and host.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "secretName": {
+ SchemaProps: spec.SchemaProps{
+ Description: "SecretRef specifies the Secret containing authentication credentials for the HelmRepository. For HTTP/S basic auth the secret must contain 'username' and 'password' fields. For TLS the secret must contain a 'certFile' and 'keyFile', and/or 'caFile' fields.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "interval": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Interval at which to check the URL for updates.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"),
+ },
+ },
+ "timeout": {
+ SchemaProps: spec.SchemaProps{
+ Description: "The timeout of index downloading, defaults to 60s.",
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Duration"),
+ },
+ },
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Type of the HelmRepository. When this field is set to \"oci\", the URL field value must be prefixed with \"oci://\".",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "provider": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Provider used for authentication, can be 'aws', 'azure', 'gcp' or 'generic'. This field is optional, and only taken into account if the .spec.type field is set to 'oci'. When not specified, defaults to 'generic'.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"url"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.Duration"},
+ }
+}
+
+func schema_kmodulesxyz_resource_metadata_apis_shared_If(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "condition": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "connected": {
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("kmodules.xyz/resource-metadata/apis/shared.ResourceLocator"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "kmodules.xyz/resource-metadata/apis/shared.ResourceLocator"},
+ }
+}
+
+func schema_kmodulesxyz_resource_metadata_apis_shared_ImageRegistrySpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "proxies": {
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/resource-metadata/apis/shared.RegistryProxies"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "kmodules.xyz/resource-metadata/apis/shared.RegistryProxies"},
+ }
+}
+
+func schema_kmodulesxyz_resource_metadata_apis_shared_RegistryInfo(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "credentials": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "certs": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "imagePullSecrets": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_kmodulesxyz_resource_metadata_apis_shared_RegistryProxies(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "dockerHub": {
+ SchemaProps: spec.SchemaProps{
+ Description: "company/bin:1.23",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "dockerLibrary": {
+ SchemaProps: spec.SchemaProps{
+ Description: "alpine, nginx etc.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "ghcr": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ghcr.io",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "quay": {
+ SchemaProps: spec.SchemaProps{
+ Description: "quay.io",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "kubernetes": {
+ SchemaProps: spec.SchemaProps{
+ Description: "registry.k8s.io",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "microsoft": {
+ SchemaProps: spec.SchemaProps{
+ Description: "mcr.microsoft.com",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "appscode": {
+ SchemaProps: spec.SchemaProps{
+ Description: "r.appscode.com",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "oracle": {
+ SchemaProps: spec.SchemaProps{
+ Description: "container-registry.oracle.com",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "weaviate": {
+ SchemaProps: spec.SchemaProps{
+ Description: "cr.weaviate.io",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_kmodulesxyz_resource_metadata_apis_shared_ResourceLocator(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "ref": {
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.GroupKind"),
+ },
+ },
+ "query": {
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/resource-metadata/apis/shared.ResourceQuery"),
+ },
+ },
+ "impersonate": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"ref", "query"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.GroupKind", "kmodules.xyz/resource-metadata/apis/shared.ResourceQuery"},
+ }
+}
+
+func schema_kmodulesxyz_resource_metadata_apis_shared_ResourceQuery(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "type": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "byLabel": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "raw": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"type"},
+ },
+ },
+ }
+}
+
+func schema_kmodulesxyz_resource_metadata_apis_shared_SourceLocator(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "resource": {
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/client-go/api/v1.ResourceID"),
+ },
+ },
+ "ref": {
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/client-go/api/v1.ObjectReference"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "kmodules.xyz/client-go/api/v1.ObjectReference", "kmodules.xyz/client-go/api/v1.ResourceID"},
+ }
+}
+
+func schema_kmodulesxyz_resource_metadata_apis_shared_UIParameterTemplate(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "options": {
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("x-helm.dev/apimachinery/apis/releases/v1alpha1.ChartSourceRef"),
+ },
+ },
+ "editor": {
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("x-helm.dev/apimachinery/apis/releases/v1alpha1.ChartSourceRef"),
+ },
+ },
+ "enforceQuota": {
+ SchemaProps: spec.SchemaProps{
+ Default: false,
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "actions": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("kmodules.xyz/resource-metadata/apis/shared.ActionTemplateGroup"),
+ },
+ },
+ },
+ },
+ },
+ "instanceLabelPaths": {
+ SchemaProps: spec.SchemaProps{
+ Description: "app.kubernetes.io/instance label must be updated at these paths when refilling metadata",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"enforceQuota"},
+ },
+ },
+ Dependencies: []string{
+ "kmodules.xyz/resource-metadata/apis/shared.ActionTemplateGroup", "x-helm.dev/apimachinery/apis/releases/v1alpha1.ChartSourceRef"},
+ }
+}
+
+func schema_kmodulesxyz_resource_metadata_apis_shared_UIParameters(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "options": {
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("x-helm.dev/apimachinery/apis/releases/v1alpha1.ChartSourceRef"),
+ },
+ },
+ "editor": {
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("x-helm.dev/apimachinery/apis/releases/v1alpha1.ChartSourceRef"),
+ },
+ },
+ "actions": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("kmodules.xyz/resource-metadata/apis/shared.ActionGroup"),
+ },
+ },
+ },
+ },
+ },
+ "instanceLabelPaths": {
+ SchemaProps: spec.SchemaProps{
+ Description: "app.kubernetes.io/instance label must be updated at these paths when refilling metadata",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "kmodules.xyz/resource-metadata/apis/shared.ActionGroup", "x-helm.dev/apimachinery/apis/releases/v1alpha1.ChartSourceRef"},
+ }
+}
+
+func schema_resource_metadata_apis_ui_v1alpha1_ActionTemplateGroupFilter(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: false,
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "show": {
+ SchemaProps: spec.SchemaProps{
+ Default: false,
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"name", "show"},
+ },
+ },
+ }
+}
+
+func schema_resource_metadata_apis_ui_v1alpha1_ChartInfo(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name specifies the name of the chart",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "namespace": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Namespace where the respective feature resources will be deployed.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "createNamespace": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "version": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Version specifies the version of the chart.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "sourceRef": {
+ SchemaProps: spec.SchemaProps{
+ Description: "SourceRef specifies the source of the chart",
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/client-go/api/v1.TypedObjectReference"),
+ },
+ },
+ "valuesFiles": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Alternative list of values files to use as the chart values (values.yaml is not included by default), expected to be a relative path in the SourceRef. Values files are merged in the order of this list with the last file overriding the first. Ignored when omitted.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"name", "sourceRef"},
+ },
+ },
+ Dependencies: []string{
+ "kmodules.xyz/client-go/api/v1.TypedObjectReference"},
+ }
+}
+
+func schema_resource_metadata_apis_ui_v1alpha1_ClusterProfile(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "spec": {
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/resource-metadata/apis/ui/v1alpha1.ClusterProfileSpec"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta", "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.ClusterProfileSpec"},
+ }
+}
+
+func schema_resource_metadata_apis_ui_v1alpha1_ClusterProfileList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ClusterProfileList contains a list of ClusterProfile",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/resource-metadata/apis/ui/v1alpha1.ClusterProfile"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"items"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta", "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.ClusterProfile"},
+ }
+}
+
+func schema_resource_metadata_apis_ui_v1alpha1_ClusterProfileSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "ClusterProfileSpec defines the desired state of ClusterProfile",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "title": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "description": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "provider": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "requiredFeatureSets": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"title", "description"},
+ },
+ },
+ }
+}
+
+func schema_resource_metadata_apis_ui_v1alpha1_ComponentStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name specify the name of the component feature.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "enabled": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Enabled specifies whether the component feature has been enabled or not.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "ready": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Ready specifies whether the component feature is ready or not.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "managed": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Managed specifies whether the component is managed by platform or not.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"name"},
+ },
+ },
+ }
+}
+
+func schema_resource_metadata_apis_ui_v1alpha1_Dashboard(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "title": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "vars": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/resource-metadata/apis/shared.DashboardVar"),
+ },
+ },
+ },
+ },
+ },
+ "panels": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/resource-metadata/apis/ui/v1alpha1.PanelLinkRequest"),
+ },
+ },
+ },
+ },
+ },
+ "if": {
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("kmodules.xyz/resource-metadata/apis/shared.If"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "kmodules.xyz/resource-metadata/apis/shared.DashboardVar", "kmodules.xyz/resource-metadata/apis/shared.If", "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.PanelLinkRequest"},
+ }
+}
+
+func schema_resource_metadata_apis_ui_v1alpha1_DependentFeatureSet(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name specifies the name of the dependent FeatureSet",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "features": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Features specifies the Feature names of the dependent FeatureSet",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_resource_metadata_apis_ui_v1alpha1_Dependents(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "featureSets": {
+ SchemaProps: spec.SchemaProps{
+ Description: "FeatureSets specifies a list of FeatureSet names that depend on this FeatureSet",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/resource-metadata/apis/ui/v1alpha1.DependentFeatureSet"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.DependentFeatureSet"},
+ }
+}
+
+func schema_resource_metadata_apis_ui_v1alpha1_Feature(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "spec": {
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/resource-metadata/apis/ui/v1alpha1.FeatureSpec"),
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/resource-metadata/apis/ui/v1alpha1.FeatureStatus"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta", "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.FeatureSpec", "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.FeatureStatus"},
+ }
+}
+
+func schema_resource_metadata_apis_ui_v1alpha1_FeatureList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/resource-metadata/apis/ui/v1alpha1.Feature"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta", "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.Feature"},
+ }
+}
+
+func schema_resource_metadata_apis_ui_v1alpha1_FeatureSet(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "spec": {
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/resource-metadata/apis/ui/v1alpha1.FeatureSetSpec"),
+ },
+ },
+ "status": {
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/resource-metadata/apis/ui/v1alpha1.FeatureSetStatus"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta", "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.FeatureSetSpec", "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.FeatureSetStatus"},
+ }
+}
+
+func schema_resource_metadata_apis_ui_v1alpha1_FeatureSetList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/resource-metadata/apis/ui/v1alpha1.FeatureSet"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta", "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.FeatureSet"},
+ }
+}
+
+func schema_resource_metadata_apis_ui_v1alpha1_FeatureSetSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "title": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Title specify the title of this feature set.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "description": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Description specifies a short description of the services this feature set provides.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "icons": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Icons is an optional list of icons for an application. Icon information includes the source, size, and mime type. These icons will be used in UI.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("x-helm.dev/apimachinery/apis/shared.ImageSpec"),
+ },
+ },
+ },
+ },
+ },
+ "recommended": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Required specify whether this feature set is mandatory or not for using the UI.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "disabled": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Disabled specify whether this feature set is disabled.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "requiredFeatures": {
+ SchemaProps: spec.SchemaProps{
+ Description: "RequiredFeatures specifies list of features that are necessary to consider this feature set as ready.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "chart": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Chart specifies the chart that contains the respective resources for component features and the UI wizard.",
+ Default: map[string]interface{}{},
+ Ref: ref("x-helm.dev/apimachinery/apis/releases/v1alpha1.ChartSourceRef"),
+ },
+ },
+ },
+ Required: []string{"title", "description", "chart"},
+ },
+ },
+ Dependencies: []string{
+ "x-helm.dev/apimachinery/apis/releases/v1alpha1.ChartSourceRef", "x-helm.dev/apimachinery/apis/shared.ImageSpec"},
+ }
+}
+
+func schema_resource_metadata_apis_ui_v1alpha1_FeatureSetStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "enabled": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Enabled specifies whether this feature set is enabled or not.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "ready": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Ready specifies whether this feature set is ready not.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "features": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Features specifies the status of the component features that belong to this feature set.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/resource-metadata/apis/ui/v1alpha1.ComponentStatus"),
+ },
+ },
+ },
+ },
+ },
+ "dependents": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Dependents specifies the feature sets which depend on this FeatureSet",
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/resource-metadata/apis/ui/v1alpha1.Dependents"),
+ },
+ },
+ "note": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Note specifies the respective reason if the feature set is considered as disabled.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.ComponentStatus", "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.Dependents"},
+ }
+}
+
+func schema_resource_metadata_apis_ui_v1alpha1_FeatureSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "title": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Title specifies the title of this feature.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "description": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Description specifies a short description of the service this feature provides.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "icons": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Icons is an optional list of icons for an application. Icon information includes the source, size, and mime type. These icons will be used in UI.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("x-helm.dev/apimachinery/apis/shared.ImageSpec"),
+ },
+ },
+ },
+ },
+ },
+ "featureSet": {
+ SchemaProps: spec.SchemaProps{
+ Description: "FeatureSet specifies the name of the FeatureSet where this feature belong to.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "featureBlock": {
+ SchemaProps: spec.SchemaProps{
+ Description: "FeatureBlock specifies the ui block name of this feature.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "featureExclusionGroup": {
+ SchemaProps: spec.SchemaProps{
+ Description: "FeatureExclusionGroup specifies the name of the exclusion group for features Only one feature in a feature exclusion group can be installed",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "recommended": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Required specifies whether this feature is mandatory or not for enabling the respecting FeatureSet.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "disabled": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Disabled specify whether this feature set is disabled.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "requirements": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Requirements specifies the requirements to enable this feature.",
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/resource-metadata/apis/ui/v1alpha1.Requirements"),
+ },
+ },
+ "readinessChecks": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ReadinessChecks specifies the conditions for this feature to be considered enabled.",
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/resource-metadata/apis/ui/v1alpha1.ReadinessChecks"),
+ },
+ },
+ "chart": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Chart specifies the chart information that will be used by the FluxCD to install the respective feature",
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/resource-metadata/apis/ui/v1alpha1.ChartInfo"),
+ },
+ },
+ "valuesFrom": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ValuesFrom holds references to resources containing Helm values for this HelmRelease, and information about how they should be merged.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/resource-metadata/apis/ui/v1alpha1.ValuesReference"),
+ },
+ },
+ },
+ },
+ },
+ "values": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Values holds the values for this Helm release.",
+ Ref: ref("k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSON"),
+ },
+ },
+ },
+ Required: []string{"title", "description", "featureSet"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSON", "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.ChartInfo", "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.ReadinessChecks", "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.Requirements", "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.ValuesReference", "x-helm.dev/apimachinery/apis/shared.ImageSpec"},
+ }
+}
+
+func schema_resource_metadata_apis_ui_v1alpha1_FeatureStatus(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "enabled": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Enabled specifies whether this feature is enabled or not.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "managed": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Managed specifies whether this feature is managed by AppsCode Inc. or not.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "ready": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Ready specifies whether this feature is ready to user or not. This field will be present only for the features that are managed by AppsCode Inc.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "note": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Note specifies the respective reason if the feature does not meet the requirements or is not ready.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_resource_metadata_apis_ui_v1alpha1_PanelLinkRequest(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "title": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "width": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"integer"},
+ Format: "int32",
+ },
+ },
+ },
+ Required: []string{"title"},
+ },
+ },
+ }
+}
+
+func schema_resource_metadata_apis_ui_v1alpha1_ReadinessChecks(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "resources": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Resources specifies the resources that should be registered to consider this feature as enabled.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.GroupVersionKind"),
+ },
+ },
+ },
+ },
+ },
+ "workloads": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Workloads specifies the workloads that should exist to consider this feature as enabled.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/resource-metadata/apis/ui/v1alpha1.WorkloadInfo"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.GroupVersionKind", "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.WorkloadInfo"},
+ }
+}
+
+func schema_resource_metadata_apis_ui_v1alpha1_Requirements(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "features": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Features specifies a list of Feature names that must be enabled for using this feature.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ }
+}
+
+func schema_resource_metadata_apis_ui_v1alpha1_ResourceDashboard(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "spec": {
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/resource-metadata/apis/ui/v1alpha1.ResourceDashboardSpec"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta", "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.ResourceDashboardSpec"},
+ }
+}
+
+func schema_resource_metadata_apis_ui_v1alpha1_ResourceDashboardList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/resource-metadata/apis/ui/v1alpha1.ResourceDashboard"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta", "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.ResourceDashboard"},
+ }
+}
+
+func schema_resource_metadata_apis_ui_v1alpha1_ResourceDashboardSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "resource": {
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/client-go/api/v1.ResourceID"),
+ },
+ },
+ "provider": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "dashboards": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/resource-metadata/apis/ui/v1alpha1.Dashboard"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"resource", "dashboards"},
+ },
+ },
+ Dependencies: []string{
+ "kmodules.xyz/client-go/api/v1.ResourceID", "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.Dashboard"},
+ }
+}
+
+func schema_resource_metadata_apis_ui_v1alpha1_ResourceEditor(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "spec": {
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/resource-metadata/apis/ui/v1alpha1.ResourceEditorSpec"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta", "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.ResourceEditorSpec"},
+ }
+}
+
+func schema_resource_metadata_apis_ui_v1alpha1_ResourceEditorList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/resource-metadata/apis/ui/v1alpha1.ResourceEditor"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta", "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.ResourceEditor"},
+ }
+}
+
+func schema_resource_metadata_apis_ui_v1alpha1_ResourceEditorSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "resource": {
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/client-go/api/v1.ResourceID"),
+ },
+ },
+ "ui": {
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("kmodules.xyz/resource-metadata/apis/ui/v1alpha1.UIParameters"),
+ },
+ },
+ "icons": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Icons is an optional list of icons for an application. Icon information includes the source, size, and mime type.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("x-helm.dev/apimachinery/apis/shared.ImageSpec"),
+ },
+ },
+ },
+ },
+ },
+ "variants": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind == VendorChartPreset | ClusterChartPreset",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/resource-metadata/apis/ui/v1alpha1.VariantRef"),
+ },
+ },
+ },
+ },
+ },
+ "installer": {
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("kmodules.xyz/resource-metadata/apis/shared.DeploymentParameters"),
+ },
+ },
+ },
+ Required: []string{"resource"},
+ },
+ },
+ Dependencies: []string{
+ "kmodules.xyz/client-go/api/v1.ResourceID", "kmodules.xyz/resource-metadata/apis/shared.DeploymentParameters", "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.UIParameters", "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.VariantRef", "x-helm.dev/apimachinery/apis/shared.ImageSpec"},
+ }
+}
+
+func schema_resource_metadata_apis_ui_v1alpha1_ResourceOutlineFilter(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"),
+ },
+ },
+ "spec": {
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/resource-metadata/apis/ui/v1alpha1.ResourceOutlineFilterSpec"),
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta", "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.ResourceOutlineFilterSpec"},
+ }
+}
+
+func schema_resource_metadata_apis_ui_v1alpha1_ResourceOutlineFilterList(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "apiVersion": {
+ SchemaProps: spec.SchemaProps{
+ Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "metadata": {
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"),
+ },
+ },
+ "items": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/resource-metadata/apis/ui/v1alpha1.ResourceOutlineFilter"),
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta", "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.ResourceOutlineFilter"},
+ }
+}
+
+func schema_resource_metadata_apis_ui_v1alpha1_ResourceOutlineFilterSpec(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "resource": {
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/client-go/api/v1.ResourceID"),
+ },
+ },
+ "header": {
+ SchemaProps: spec.SchemaProps{
+ Default: false,
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "tabBar": {
+ SchemaProps: spec.SchemaProps{
+ Default: false,
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "pages": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/resource-metadata/apis/ui/v1alpha1.ResourcePageOutlineFilter"),
+ },
+ },
+ },
+ },
+ },
+ "actions": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/resource-metadata/apis/ui/v1alpha1.ActionTemplateGroupFilter"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"resource", "header", "tabBar"},
+ },
+ },
+ Dependencies: []string{
+ "kmodules.xyz/client-go/api/v1.ResourceID", "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.ActionTemplateGroupFilter", "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.ResourcePageOutlineFilter"},
+ }
+}
+
+func schema_resource_metadata_apis_ui_v1alpha1_ResourcePageOutlineFilter(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "sections": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("kmodules.xyz/resource-metadata/apis/ui/v1alpha1.SectionOutlineFilter"),
+ },
+ },
+ },
+ },
+ },
+ "show": {
+ SchemaProps: spec.SchemaProps{
+ Default: false,
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"name", "show"},
+ },
+ },
+ Dependencies: []string{
+ "kmodules.xyz/resource-metadata/apis/ui/v1alpha1.SectionOutlineFilter"},
+ }
+}
+
+func schema_resource_metadata_apis_ui_v1alpha1_SectionOutlineFilter(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "show": {
+ SchemaProps: spec.SchemaProps{
+ Default: false,
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "info": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: false,
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "insight": {
+ SchemaProps: spec.SchemaProps{
+ Default: false,
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "blocks": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: false,
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"show", "info", "insight"},
+ },
+ },
+ }
+}
+
+func schema_resource_metadata_apis_ui_v1alpha1_UIParameters(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "options": {
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("x-helm.dev/apimachinery/apis/releases/v1alpha1.ChartSourceRef"),
+ },
+ },
+ "editor": {
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("x-helm.dev/apimachinery/apis/releases/v1alpha1.ChartSourceRef"),
+ },
+ },
+ "enforceQuota": {
+ SchemaProps: spec.SchemaProps{
+ Default: false,
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ "instanceLabelPaths": {
+ SchemaProps: spec.SchemaProps{
+ Description: "app.kubernetes.io/instance label must be updated at these paths when refilling metadata",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "actions": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("kmodules.xyz/resource-metadata/apis/shared.ActionTemplateGroup"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"enforceQuota"},
+ },
+ },
+ Dependencies: []string{
+ "kmodules.xyz/resource-metadata/apis/shared.ActionTemplateGroup", "x-helm.dev/apimachinery/apis/releases/v1alpha1.ChartSourceRef"},
+ }
+}
+
+func schema_resource_metadata_apis_ui_v1alpha1_ValuesReference(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Description: "copied from: https://github.com/fluxcd/helm-controller/blob/v0.37.4/api/v2beta2/reference_types.go#L45-L80 ValuesReference contains a reference to a resource containing Helm values, and optionally the key they can be found at.",
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Kind of the values referent, valid values are ('Secret', 'ConfigMap').",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Name of the values referent. Should reside in the same namespace as the referring resource.",
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "valuesKey": {
+ SchemaProps: spec.SchemaProps{
+ Description: "ValuesKey is the data key where the values.yaml or a specific value can be found at. Defaults to 'values.yaml'.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "targetPath": {
+ SchemaProps: spec.SchemaProps{
+ Description: "TargetPath is the YAML dot notation path the value should be merged at. When set, the ValuesKey is expected to be a single flat value. Defaults to 'None', which results in the values getting merged at the root.",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "optional": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Optional marks this ValuesReference as optional. When set, a not found error for the values reference is ignored, but any ValuesKey, TargetPath or transient error will still result in a reconciliation failure.",
+ Type: []string{"boolean"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"kind", "name"},
+ },
+ },
+ }
+}
+
+func schema_resource_metadata_apis_ui_v1alpha1_VariantRef(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "name": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "title": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "description": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "selector": {
+ SchemaProps: spec.SchemaProps{
+ Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"),
+ },
+ },
+ "icons": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Icons is an optional list of icons for an application. Icon information includes the source, size, and mime type.",
+ Type: []string{"array"},
+ Items: &spec.SchemaOrArray{
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: map[string]interface{}{},
+ Ref: ref("x-helm.dev/apimachinery/apis/shared.ImageSpec"),
+ },
+ },
+ },
+ },
+ },
+ },
+ Required: []string{"name"},
+ },
+ },
+ Dependencies: []string{
+ "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector", "x-helm.dev/apimachinery/apis/shared.ImageSpec"},
+ }
+}
+
+func schema_resource_metadata_apis_ui_v1alpha1_WorkloadInfo(ref common.ReferenceCallback) common.OpenAPIDefinition {
+ return common.OpenAPIDefinition{
+ Schema: spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"object"},
+ Properties: map[string]spec.Schema{
+ "group": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "version": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "kind": {
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ "selector": {
+ SchemaProps: spec.SchemaProps{
+ Description: "Selector specifies label selector that should be used to select this workload",
+ Type: []string{"object"},
+ AdditionalProperties: &spec.SchemaOrBool{
+ Allows: true,
+ Schema: &spec.Schema{
+ SchemaProps: spec.SchemaProps{
+ Default: "",
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ },
+ },
+ "optional": {
+ SchemaProps: spec.SchemaProps{
+ Type: []string{"string"},
+ Format: "",
+ },
+ },
+ },
+ Required: []string{"group", "version", "kind", "selector"},
+ },
+ },
+ }
+}
diff --git a/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/register.go b/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/register.go
new file mode 100644
index 00000000..e83830de
--- /dev/null
+++ b/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/register.go
@@ -0,0 +1,71 @@
+/*
+Copyright AppsCode Inc. and Contributors
+
+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.
+*/
+
+package v1alpha1
+
+import (
+ "kmodules.xyz/resource-metadata/apis/ui"
+
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ "k8s.io/apimachinery/pkg/runtime"
+ "k8s.io/apimachinery/pkg/runtime/schema"
+)
+
+var SchemeGroupVersion = schema.GroupVersion{Group: ui.GroupName, Version: "v1alpha1"}
+
+var (
+ // TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api.
+ // localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes.
+ SchemeBuilder runtime.SchemeBuilder
+ localSchemeBuilder = &SchemeBuilder
+ AddToScheme = localSchemeBuilder.AddToScheme
+)
+
+func init() {
+ // We only register manually written functions here. The registration of the
+ // generated functions takes place in the generated files. The separation
+ // makes the code compile even when the generated files are missing.
+ localSchemeBuilder.Register(addKnownTypes)
+}
+
+// Resource takes an unqualified resource and returns a Group qualified GroupResource
+func Resource(resource string) schema.GroupResource {
+ return SchemeGroupVersion.WithResource(resource).GroupResource()
+}
+
+// Adds the list of known types to api.Scheme.
+func addKnownTypes(scheme *runtime.Scheme) error {
+ scheme.AddKnownTypes(SchemeGroupVersion,
+ &ClusterProfile{},
+ &ClusterProfileList{},
+ &Feature{},
+ &FeatureList{},
+ &FeatureSetList{},
+ &FeatureSet{},
+ &ResourceDashboard{},
+ &ResourceDashboardList{},
+ &ResourceEditor{},
+ &ResourceEditorList{},
+ &ResourceOutlineFilter{},
+ &ResourceOutlineFilterList{},
+ )
+
+ scheme.AddKnownTypes(SchemeGroupVersion,
+ &metav1.Status{},
+ )
+ metav1.AddToGroupVersion(scheme, SchemeGroupVersion)
+ return nil
+}
diff --git a/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/resourcedashboard_helpers.go b/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/resourcedashboard_helpers.go
new file mode 100644
index 00000000..6fa2417b
--- /dev/null
+++ b/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/resourcedashboard_helpers.go
@@ -0,0 +1,26 @@
+/*
+Copyright AppsCode Inc. and Contributors
+
+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.
+*/
+
+package v1alpha1
+
+import (
+ "kmodules.xyz/client-go/apiextensions"
+ "kmodules.xyz/resource-metadata/crds"
+)
+
+func (v ResourceDashboard) CustomResourceDefinition() *apiextensions.CustomResourceDefinition {
+ return crds.MustCustomResourceDefinition(SchemeGroupVersion.WithResource(ResourceResourceDashboards))
+}
diff --git a/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/resourcedashboard_types.go b/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/resourcedashboard_types.go
new file mode 100644
index 00000000..32ba3bf3
--- /dev/null
+++ b/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/resourcedashboard_types.go
@@ -0,0 +1,86 @@
+/*
+Copyright AppsCode Inc. and Contributors
+
+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.
+*/
+
+package v1alpha1
+
+import (
+ kmapi "kmodules.xyz/client-go/api/v1"
+ "kmodules.xyz/resource-metadata/apis/shared"
+
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+)
+
+const (
+ ResourceKindResourceDashboard = "ResourceDashboard"
+ ResourceResourceDashboard = "resourcedashboard"
+ ResourceResourceDashboards = "resourcedashboards"
+)
+
+// +genclient
+// +genclient:nonNamespaced
+// +k8s:openapi-gen=true
+// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
+
+// +kubebuilder:object:root=true
+// +kubebuilder:resource:path=resourcedashboards,singular=resourcedashboard,scope=Cluster
+// +kubebuilder:subresource:status
+// +kubebuilder:printcolumn:name="Status",type="string",JSONPath=".status.phase"
+// +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp"
+type ResourceDashboard struct {
+ metav1.TypeMeta `json:",inline"`
+ // +optional
+ metav1.ObjectMeta `json:"metadata,omitempty"`
+ Spec ResourceDashboardSpec `json:"spec,omitempty"`
+}
+
+// +kubebuilder:validation:Enum=Grafana
+type DashboardProvider string
+
+const (
+ DashboardProviderGrafana DashboardProvider = "Grafana"
+)
+
+type ResourceDashboardSpec struct {
+ Resource kmapi.ResourceID `json:"resource"`
+ Provider DashboardProvider `json:"provider,omitempty"`
+ Dashboards []Dashboard `json:"dashboards"`
+}
+
+type Dashboard struct {
+ // +optional
+ Title string `json:"title,omitempty"`
+ // +optional
+ Vars []shared.DashboardVar `json:"vars,omitempty"`
+ // +optional
+ Panels []PanelLinkRequest `json:"panels,omitempty"`
+ // +optional
+ If *shared.If `json:"if,omitempty"`
+}
+
+type PanelLinkRequest struct {
+ Title string `json:"title"`
+ // +optional
+ Width int `json:"width,omitempty"`
+}
+
+// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
+// +kubebuilder:object:root=true
+
+type ResourceDashboardList struct {
+ metav1.TypeMeta `json:",inline"`
+ metav1.ListMeta `json:"metadata,omitempty"`
+ Items []ResourceDashboard `json:"items,omitempty"`
+}
diff --git a/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/resourceeditor_helpers.go b/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/resourceeditor_helpers.go
new file mode 100644
index 00000000..d55222e0
--- /dev/null
+++ b/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/resourceeditor_helpers.go
@@ -0,0 +1,26 @@
+/*
+Copyright AppsCode Inc. and Contributors
+
+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.
+*/
+
+package v1alpha1
+
+import (
+ "kmodules.xyz/client-go/apiextensions"
+ "kmodules.xyz/resource-metadata/crds"
+)
+
+func (v ResourceEditor) CustomResourceDefinition() *apiextensions.CustomResourceDefinition {
+ return crds.MustCustomResourceDefinition(SchemeGroupVersion.WithResource(ResourceResourceEditors))
+}
diff --git a/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/resourceeditor_types.go b/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/resourceeditor_types.go
new file mode 100644
index 00000000..e875bd81
--- /dev/null
+++ b/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/resourceeditor_types.go
@@ -0,0 +1,91 @@
+/*
+Copyright AppsCode Inc. and Contributors
+
+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.
+*/
+
+package v1alpha1
+
+import (
+ kmapi "kmodules.xyz/client-go/api/v1"
+ "kmodules.xyz/resource-metadata/apis/shared"
+
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ releasesapi "x-helm.dev/apimachinery/apis/releases/v1alpha1"
+ helmshared "x-helm.dev/apimachinery/apis/shared"
+)
+
+const (
+ ResourceKindResourceEditor = "ResourceEditor"
+ ResourceResourceEditor = "resourceeditor"
+ ResourceResourceEditors = "resourceeditors"
+)
+
+// +genclient
+// +genclient:nonNamespaced
+// +k8s:openapi-gen=true
+// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
+
+// +kubebuilder:object:root=true
+// +kubebuilder:resource:path=resourceeditors,singular=resourceeditor,scope=Cluster
+// +kubebuilder:subresource:status
+// +kubebuilder:printcolumn:name="Status",type="string",JSONPath=".status.phase"
+// +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp"
+type ResourceEditor struct {
+ metav1.TypeMeta `json:",inline"`
+ // +optional
+ metav1.ObjectMeta `json:"metadata,omitempty"`
+ Spec ResourceEditorSpec `json:"spec,omitempty"`
+}
+
+type ResourceEditorSpec struct {
+ Resource kmapi.ResourceID `json:"resource"`
+ UI *UIParameters `json:"ui,omitempty"`
+ // Icons is an optional list of icons for an application. Icon information includes the source, size,
+ // and mime type.
+ Icons []helmshared.ImageSpec `json:"icons,omitempty"`
+ // Kind == VendorChartPreset | ClusterChartPreset
+ Variants []VariantRef `json:"variants,omitempty"`
+ Installer *shared.DeploymentParameters `json:"installer,omitempty"`
+}
+
+type UIParameters struct {
+ Options *releasesapi.ChartSourceRef `json:"options,omitempty"`
+ Editor *releasesapi.ChartSourceRef `json:"editor,omitempty"`
+ EnforceQuota bool `json:"enforceQuota"`
+ // app.kubernetes.io/instance label must be updated at these paths when refilling metadata
+ // +optional
+ InstanceLabelPaths []string `json:"instanceLabelPaths,omitempty"`
+ // +optional
+ Actions []*shared.ActionTemplateGroup `json:"actions,omitempty"`
+}
+
+type VariantRef struct {
+ Name string `json:"name"`
+ Title string `json:"title,omitempty"`
+ Description string `json:"description,omitempty"`
+ Selector *metav1.LabelSelector `json:"selector,omitempty"`
+
+ // Icons is an optional list of icons for an application. Icon information includes the source, size,
+ // and mime type.
+ Icons []helmshared.ImageSpec `json:"icons,omitempty"`
+}
+
+// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
+// +kubebuilder:object:root=true
+
+type ResourceEditorList struct {
+ metav1.TypeMeta `json:",inline"`
+ metav1.ListMeta `json:"metadata,omitempty"`
+ Items []ResourceEditor `json:"items,omitempty"`
+}
diff --git a/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/resourceoutlinefilter_helpers.go b/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/resourceoutlinefilter_helpers.go
new file mode 100644
index 00000000..0643993e
--- /dev/null
+++ b/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/resourceoutlinefilter_helpers.go
@@ -0,0 +1,56 @@
+/*
+Copyright AppsCode Inc. and Contributors
+
+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.
+*/
+
+package v1alpha1
+
+func (a ResourceOutlineFilterSpec) GetPage(name string) ResourcePageOutlineFilter {
+ for _, page := range a.Pages {
+ if page.Name == name {
+ return page
+ }
+ }
+ return ResourcePageOutlineFilter{
+ Name: name,
+ Show: false,
+ Sections: nil,
+ }
+}
+
+func (a ResourceOutlineFilterSpec) GetAction(name string) ActionTemplateGroupFilter {
+ for _, action := range a.Actions {
+ if action.Name == name {
+ return action
+ }
+ }
+ return ActionTemplateGroupFilter{
+ Name: name,
+ Show: false,
+ Items: nil,
+ }
+}
+
+func (a ResourcePageOutlineFilter) GetSection(name string) SectionOutlineFilter {
+ for _, section := range a.Sections {
+ if section.Name == name {
+ return section
+ }
+ }
+ return SectionOutlineFilter{
+ Name: name,
+ Show: false,
+ Blocks: nil,
+ }
+}
diff --git a/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/resourceoutlinefilter_types.go b/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/resourceoutlinefilter_types.go
new file mode 100644
index 00000000..dee6e533
--- /dev/null
+++ b/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/resourceoutlinefilter_types.go
@@ -0,0 +1,81 @@
+/*
+Copyright AppsCode Inc. and Contributors
+
+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.
+*/
+
+package v1alpha1
+
+import (
+ kmapi "kmodules.xyz/client-go/api/v1"
+
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+)
+
+const (
+ ResourceKindResourceOutlineFilter = "ResourceOutlineFilter"
+ ResourceResourceOutlineFilter = "resourceoutlinefilter"
+ ResourceResourceOutlineFilters = "resourceoutlinefilters"
+)
+
+// +genclient
+// +genclient:nonNamespaced
+// +genclient:onlyVerbs=get
+// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
+
+// +kubebuilder:object:root=true
+// +kubebuilder:resource:path=resourceoutlinefilters,singular=resourceoutlinefilter,scope=Cluster
+type ResourceOutlineFilter struct {
+ metav1.TypeMeta `json:",inline"`
+ // +optional
+ metav1.ObjectMeta `json:"metadata,omitempty"`
+ Spec ResourceOutlineFilterSpec `json:"spec,omitempty"`
+}
+
+type ResourceOutlineFilterSpec struct {
+ Resource kmapi.ResourceID `json:"resource"`
+ Header bool `json:"header"`
+ TabBar bool `json:"tabBar"`
+ Pages []ResourcePageOutlineFilter `json:"pages,omitempty"`
+ // +optional
+ Actions []ActionTemplateGroupFilter `json:"actions,omitempty"`
+}
+
+type ResourcePageOutlineFilter struct {
+ Name string `json:"name"`
+ Sections []SectionOutlineFilter `json:"sections,omitempty"`
+ Show bool `json:"show"`
+}
+
+type ActionTemplateGroupFilter struct {
+ Name string `json:"name"`
+ Items map[string]bool `json:"items,omitempty"`
+ Show bool `json:"show"`
+}
+
+type SectionOutlineFilter struct {
+ Name string `json:"name,omitempty"`
+ Show bool `json:"show"`
+ Info map[string]bool `json:"info"`
+ Insight bool `json:"insight"`
+ Blocks map[string]bool `json:"blocks,omitempty"`
+}
+
+// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
+// +kubebuilder:object:root=true
+
+type ResourceOutlineFilterList struct {
+ metav1.TypeMeta `json:",inline"`
+ metav1.ListMeta `json:"metadata,omitempty"`
+ Items []ResourceOutlineFilter `json:"items,omitempty"`
+}
diff --git a/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/schema.go b/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/schema.go
new file mode 100644
index 00000000..fa00205b
--- /dev/null
+++ b/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/schema.go
@@ -0,0 +1,217 @@
+/*
+Copyright AppsCode Inc. and Contributors
+
+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.
+*/
+
+package v1alpha1
+
+import "gopkg.in/yaml.v2"
+
+const (
+ ObjectMetaSchema = `properties:
+ name:
+ description: 'Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names'
+ type: string
+ namespace:
+ description: "Namespace defines the space within which each name must be unique. An empty namespace is equivalent to the \"default\" namespace, but \"default\" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty. \n Must be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces"
+ type: string
+ labels:
+ additionalProperties:
+ type: string
+ description: 'Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels'
+ type: object
+ annotations:
+ additionalProperties:
+ type: string
+ description: 'Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations'
+ type: object
+type: object`
+
+ ObjectMetaFullSchema = `properties:
+ name:
+ description: 'Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names'
+ type: string
+ namespace:
+ description: "Namespace defines the space within which each name must be unique. An empty namespace is equivalent to the \"default\" namespace, but \"default\" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty. \n Must be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces"
+ type: string
+ labels:
+ additionalProperties:
+ type: string
+ description: 'Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels'
+ type: object
+ annotations:
+ additionalProperties:
+ type: string
+ description: 'Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations'
+ type: object
+ clusterName:
+ description: The name of the cluster which the object belongs to. This is used to distinguish resources with same name and namespace in different clusters. This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request.
+ type: string
+ creationTimestamp:
+ description: "CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC. \n Populated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
+ format: date-time
+ type: string
+ deletionGracePeriodSeconds:
+ description: Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.
+ format: int64
+ type: integer
+ deletionTimestamp:
+ description: "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field, once the finalizers list is empty. As long as the finalizers list contains items, deletion is blocked. Once the deletionTimestamp is set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested. \n Populated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata"
+ format: date-time
+ type: string
+ finalizers:
+ description: Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order. Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.
+ items:
+ type: string
+ type: array
+ generateName:
+ description: "GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server. \n If this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header). \n Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency"
+ type: string
+ generation:
+ description: A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.
+ format: int64
+ type: integer
+ managedFields:
+ description: ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like "ci-cd". The set of fields is always in the version that the workflow used when modifying the object.
+ items:
+ description: ManagedFieldsEntry is a workflow-id, a FieldSet and the group version of the resource that the fieldset applies to.
+ properties:
+ apiVersion:
+ description: APIVersion defines the version of this resource that this field set applies to. The format is "group/version" just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted.
+ type: string
+ fieldsType:
+ description: 'FieldsType is the discriminator for the different fields format and version. There is currently only one possible value: "FieldsV1"'
+ type: string
+ fieldsV1:
+ description: FieldsV1 holds the first JSON version format as described in the "FieldsV1" type.
+ type: object
+ manager:
+ description: Manager is an identifier of the workflow managing these fields.
+ type: string
+ operation:
+ description: Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'.
+ type: string
+ time:
+ description: Time is timestamp of when these fields were set. It should always be empty if Operation is 'Apply'
+ format: date-time
+ type: string
+ type: object
+ type: array
+ ownerReferences:
+ description: List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.
+ items:
+ description: OwnerReference contains enough information to let you identify an owning object. An owning object must be in the same namespace as the dependent, or be cluster-scoped, so there is no namespace field.
+ properties:
+ apiVersion:
+ description: API version of the referent.
+ type: string
+ blockOwnerDeletion:
+ description: If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.
+ type: boolean
+ controller:
+ description: If true, this reference points to the managing controller.
+ type: boolean
+ kind:
+ description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
+ type: string
+ name:
+ description: 'Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names'
+ type: string
+ uid:
+ description: 'UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids'
+ type: string
+ required:
+ - apiVersion
+ - kind
+ - name
+ - uid
+ type: object
+ type: array
+ resourceVersion:
+ description: "An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. \n Populated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency"
+ type: string
+ selfLink:
+ description: "SelfLink is a URL representing this object. Populated by the system. Read-only. \n DEPRECATED Kubernetes will stop propagating this field in 1.20 release and the field is planned to be removed in 1.21 release."
+ type: string
+ uid:
+ description: "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. \n Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids"
+ type: string
+type: object`
+)
+
+func FormatMetadata(data []byte) ([]byte, error) {
+ var root yaml.MapSlice
+ err := yaml.Unmarshal(data, &root)
+ if err != nil {
+ return nil, err
+ }
+
+ spec := find(root, "spec")
+ if spec == nil {
+ return data, nil
+ }
+ validation := find(spec.(yaml.MapSlice), "validation")
+ if validation == nil {
+ return data, nil
+ }
+ openAPIV3Schema := find(validation.(yaml.MapSlice), "openAPIV3Schema")
+ if openAPIV3Schema == nil {
+ return data, nil
+ }
+ prop1 := find(openAPIV3Schema.(yaml.MapSlice), "properties")
+ if prop1 == nil {
+ return data, nil
+ }
+ metadata := find(prop1.(yaml.MapSlice), "metadata")
+ if metadata == nil {
+ return data, nil
+ }
+ prop2 := find(metadata.(yaml.MapSlice), "properties")
+ if prop2 == nil {
+ return data, nil
+ }
+ p := prop2.(yaml.MapSlice)
+ moveToIndex(0, "name", p)
+ if moveToIndex(1, "namespace", p) {
+ moveToIndex(2, "labels", p)
+ moveToIndex(3, "annotations", p)
+ } else {
+ moveToIndex(1, "labels", p)
+ moveToIndex(2, "annotations", p)
+ }
+
+ return yaml.Marshal(root)
+}
+
+func find(node yaml.MapSlice, key string) any {
+ for i := range node {
+ if node[i].Key.(string) == key {
+ return node[i].Value
+ }
+ }
+ return nil
+}
+
+func moveToIndex(idx int, needle string, haystack yaml.MapSlice) bool {
+ if len(haystack) != idx && haystack[0].Key.(string) == needle {
+ return true
+ }
+ for i, elem := range haystack {
+ if elem.Key.(string) == needle {
+ haystack[idx], haystack[i] = haystack[i], haystack[idx]
+ return true
+ }
+ }
+ return false
+}
diff --git a/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/types.go b/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/types.go
new file mode 100644
index 00000000..842ab95a
--- /dev/null
+++ b/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/types.go
@@ -0,0 +1,21 @@
+/*
+Copyright AppsCode Inc. and Contributors
+
+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.
+*/
+
+package v1alpha1
+
+type YAMLFormatter interface {
+ ToYAML() ([]byte, error)
+}
diff --git a/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/zz_generated.deepcopy.go b/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/zz_generated.deepcopy.go
new file mode 100644
index 00000000..d731e286
--- /dev/null
+++ b/vendor/kmodules.xyz/resource-metadata/apis/ui/v1alpha1/zz_generated.deepcopy.go
@@ -0,0 +1,1042 @@
+//go:build !ignore_autogenerated
+// +build !ignore_autogenerated
+
+/*
+Copyright AppsCode Inc. and Contributors
+
+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.
+*/
+
+// Code generated by deepcopy-gen. DO NOT EDIT.
+
+package v1alpha1
+
+import (
+ shared "kmodules.xyz/resource-metadata/apis/shared"
+
+ v1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ runtime "k8s.io/apimachinery/pkg/runtime"
+ releasesv1alpha1 "x-helm.dev/apimachinery/apis/releases/v1alpha1"
+ apisshared "x-helm.dev/apimachinery/apis/shared"
+)
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ActionTemplateGroupFilter) DeepCopyInto(out *ActionTemplateGroupFilter) {
+ *out = *in
+ if in.Items != nil {
+ in, out := &in.Items, &out.Items
+ *out = make(map[string]bool, len(*in))
+ for key, val := range *in {
+ (*out)[key] = val
+ }
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionTemplateGroupFilter.
+func (in *ActionTemplateGroupFilter) DeepCopy() *ActionTemplateGroupFilter {
+ if in == nil {
+ return nil
+ }
+ out := new(ActionTemplateGroupFilter)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ChartInfo) DeepCopyInto(out *ChartInfo) {
+ *out = *in
+ out.SourceRef = in.SourceRef
+ if in.ValuesFiles != nil {
+ in, out := &in.ValuesFiles, &out.ValuesFiles
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ChartInfo.
+func (in *ChartInfo) DeepCopy() *ChartInfo {
+ if in == nil {
+ return nil
+ }
+ out := new(ChartInfo)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ClusterProfile) DeepCopyInto(out *ClusterProfile) {
+ *out = *in
+ out.TypeMeta = in.TypeMeta
+ in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
+ in.Spec.DeepCopyInto(&out.Spec)
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterProfile.
+func (in *ClusterProfile) DeepCopy() *ClusterProfile {
+ if in == nil {
+ return nil
+ }
+ out := new(ClusterProfile)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
+func (in *ClusterProfile) DeepCopyObject() runtime.Object {
+ if c := in.DeepCopy(); c != nil {
+ return c
+ }
+ return nil
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ClusterProfileList) DeepCopyInto(out *ClusterProfileList) {
+ *out = *in
+ out.TypeMeta = in.TypeMeta
+ in.ListMeta.DeepCopyInto(&out.ListMeta)
+ if in.Items != nil {
+ in, out := &in.Items, &out.Items
+ *out = make([]ClusterProfile, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterProfileList.
+func (in *ClusterProfileList) DeepCopy() *ClusterProfileList {
+ if in == nil {
+ return nil
+ }
+ out := new(ClusterProfileList)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
+func (in *ClusterProfileList) DeepCopyObject() runtime.Object {
+ if c := in.DeepCopy(); c != nil {
+ return c
+ }
+ return nil
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ClusterProfileSpec) DeepCopyInto(out *ClusterProfileSpec) {
+ *out = *in
+ if in.RequiredFeatureSets != nil {
+ in, out := &in.RequiredFeatureSets, &out.RequiredFeatureSets
+ *out = make(map[string]Features, len(*in))
+ for key, val := range *in {
+ var outVal []string
+ if val == nil {
+ (*out)[key] = nil
+ } else {
+ in, out := &val, &outVal
+ *out = make(Features, len(*in))
+ copy(*out, *in)
+ }
+ (*out)[key] = outVal
+ }
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterProfileSpec.
+func (in *ClusterProfileSpec) DeepCopy() *ClusterProfileSpec {
+ if in == nil {
+ return nil
+ }
+ out := new(ClusterProfileSpec)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ComponentStatus) DeepCopyInto(out *ComponentStatus) {
+ *out = *in
+ if in.Enabled != nil {
+ in, out := &in.Enabled, &out.Enabled
+ *out = new(bool)
+ **out = **in
+ }
+ if in.Ready != nil {
+ in, out := &in.Ready, &out.Ready
+ *out = new(bool)
+ **out = **in
+ }
+ if in.Managed != nil {
+ in, out := &in.Managed, &out.Managed
+ *out = new(bool)
+ **out = **in
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ComponentStatus.
+func (in *ComponentStatus) DeepCopy() *ComponentStatus {
+ if in == nil {
+ return nil
+ }
+ out := new(ComponentStatus)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *Dashboard) DeepCopyInto(out *Dashboard) {
+ *out = *in
+ if in.Vars != nil {
+ in, out := &in.Vars, &out.Vars
+ *out = make([]shared.DashboardVar, len(*in))
+ copy(*out, *in)
+ }
+ if in.Panels != nil {
+ in, out := &in.Panels, &out.Panels
+ *out = make([]PanelLinkRequest, len(*in))
+ copy(*out, *in)
+ }
+ if in.If != nil {
+ in, out := &in.If, &out.If
+ *out = new(shared.If)
+ (*in).DeepCopyInto(*out)
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Dashboard.
+func (in *Dashboard) DeepCopy() *Dashboard {
+ if in == nil {
+ return nil
+ }
+ out := new(Dashboard)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *DependentFeatureSet) DeepCopyInto(out *DependentFeatureSet) {
+ *out = *in
+ if in.Features != nil {
+ in, out := &in.Features, &out.Features
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DependentFeatureSet.
+func (in *DependentFeatureSet) DeepCopy() *DependentFeatureSet {
+ if in == nil {
+ return nil
+ }
+ out := new(DependentFeatureSet)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *Dependents) DeepCopyInto(out *Dependents) {
+ *out = *in
+ if in.FeatureSets != nil {
+ in, out := &in.FeatureSets, &out.FeatureSets
+ *out = make([]DependentFeatureSet, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Dependents.
+func (in *Dependents) DeepCopy() *Dependents {
+ if in == nil {
+ return nil
+ }
+ out := new(Dependents)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *Feature) DeepCopyInto(out *Feature) {
+ *out = *in
+ out.TypeMeta = in.TypeMeta
+ in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
+ in.Spec.DeepCopyInto(&out.Spec)
+ in.Status.DeepCopyInto(&out.Status)
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Feature.
+func (in *Feature) DeepCopy() *Feature {
+ if in == nil {
+ return nil
+ }
+ out := new(Feature)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
+func (in *Feature) DeepCopyObject() runtime.Object {
+ if c := in.DeepCopy(); c != nil {
+ return c
+ }
+ return nil
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *FeatureList) DeepCopyInto(out *FeatureList) {
+ *out = *in
+ out.TypeMeta = in.TypeMeta
+ in.ListMeta.DeepCopyInto(&out.ListMeta)
+ if in.Items != nil {
+ in, out := &in.Items, &out.Items
+ *out = make([]Feature, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FeatureList.
+func (in *FeatureList) DeepCopy() *FeatureList {
+ if in == nil {
+ return nil
+ }
+ out := new(FeatureList)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
+func (in *FeatureList) DeepCopyObject() runtime.Object {
+ if c := in.DeepCopy(); c != nil {
+ return c
+ }
+ return nil
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *FeatureSet) DeepCopyInto(out *FeatureSet) {
+ *out = *in
+ out.TypeMeta = in.TypeMeta
+ in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
+ in.Spec.DeepCopyInto(&out.Spec)
+ in.Status.DeepCopyInto(&out.Status)
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FeatureSet.
+func (in *FeatureSet) DeepCopy() *FeatureSet {
+ if in == nil {
+ return nil
+ }
+ out := new(FeatureSet)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
+func (in *FeatureSet) DeepCopyObject() runtime.Object {
+ if c := in.DeepCopy(); c != nil {
+ return c
+ }
+ return nil
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *FeatureSetList) DeepCopyInto(out *FeatureSetList) {
+ *out = *in
+ out.TypeMeta = in.TypeMeta
+ in.ListMeta.DeepCopyInto(&out.ListMeta)
+ if in.Items != nil {
+ in, out := &in.Items, &out.Items
+ *out = make([]FeatureSet, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FeatureSetList.
+func (in *FeatureSetList) DeepCopy() *FeatureSetList {
+ if in == nil {
+ return nil
+ }
+ out := new(FeatureSetList)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
+func (in *FeatureSetList) DeepCopyObject() runtime.Object {
+ if c := in.DeepCopy(); c != nil {
+ return c
+ }
+ return nil
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *FeatureSetSpec) DeepCopyInto(out *FeatureSetSpec) {
+ *out = *in
+ if in.Icons != nil {
+ in, out := &in.Icons, &out.Icons
+ *out = make([]apisshared.ImageSpec, len(*in))
+ copy(*out, *in)
+ }
+ if in.RequiredFeatures != nil {
+ in, out := &in.RequiredFeatures, &out.RequiredFeatures
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ out.Chart = in.Chart
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FeatureSetSpec.
+func (in *FeatureSetSpec) DeepCopy() *FeatureSetSpec {
+ if in == nil {
+ return nil
+ }
+ out := new(FeatureSetSpec)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *FeatureSetStatus) DeepCopyInto(out *FeatureSetStatus) {
+ *out = *in
+ if in.Enabled != nil {
+ in, out := &in.Enabled, &out.Enabled
+ *out = new(bool)
+ **out = **in
+ }
+ if in.Ready != nil {
+ in, out := &in.Ready, &out.Ready
+ *out = new(bool)
+ **out = **in
+ }
+ if in.Features != nil {
+ in, out := &in.Features, &out.Features
+ *out = make([]ComponentStatus, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ in.Dependents.DeepCopyInto(&out.Dependents)
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FeatureSetStatus.
+func (in *FeatureSetStatus) DeepCopy() *FeatureSetStatus {
+ if in == nil {
+ return nil
+ }
+ out := new(FeatureSetStatus)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *FeatureSpec) DeepCopyInto(out *FeatureSpec) {
+ *out = *in
+ if in.Icons != nil {
+ in, out := &in.Icons, &out.Icons
+ *out = make([]apisshared.ImageSpec, len(*in))
+ copy(*out, *in)
+ }
+ in.Requirements.DeepCopyInto(&out.Requirements)
+ in.ReadinessChecks.DeepCopyInto(&out.ReadinessChecks)
+ in.Chart.DeepCopyInto(&out.Chart)
+ if in.ValuesFrom != nil {
+ in, out := &in.ValuesFrom, &out.ValuesFrom
+ *out = make([]ValuesReference, len(*in))
+ copy(*out, *in)
+ }
+ if in.Values != nil {
+ in, out := &in.Values, &out.Values
+ *out = new(v1.JSON)
+ (*in).DeepCopyInto(*out)
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FeatureSpec.
+func (in *FeatureSpec) DeepCopy() *FeatureSpec {
+ if in == nil {
+ return nil
+ }
+ out := new(FeatureSpec)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *FeatureStatus) DeepCopyInto(out *FeatureStatus) {
+ *out = *in
+ if in.Enabled != nil {
+ in, out := &in.Enabled, &out.Enabled
+ *out = new(bool)
+ **out = **in
+ }
+ if in.Managed != nil {
+ in, out := &in.Managed, &out.Managed
+ *out = new(bool)
+ **out = **in
+ }
+ if in.Ready != nil {
+ in, out := &in.Ready, &out.Ready
+ *out = new(bool)
+ **out = **in
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FeatureStatus.
+func (in *FeatureStatus) DeepCopy() *FeatureStatus {
+ if in == nil {
+ return nil
+ }
+ out := new(FeatureStatus)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in Features) DeepCopyInto(out *Features) {
+ {
+ in := &in
+ *out = make(Features, len(*in))
+ copy(*out, *in)
+ return
+ }
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Features.
+func (in Features) DeepCopy() Features {
+ if in == nil {
+ return nil
+ }
+ out := new(Features)
+ in.DeepCopyInto(out)
+ return *out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *PanelLinkRequest) DeepCopyInto(out *PanelLinkRequest) {
+ *out = *in
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PanelLinkRequest.
+func (in *PanelLinkRequest) DeepCopy() *PanelLinkRequest {
+ if in == nil {
+ return nil
+ }
+ out := new(PanelLinkRequest)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ReadinessChecks) DeepCopyInto(out *ReadinessChecks) {
+ *out = *in
+ if in.Resources != nil {
+ in, out := &in.Resources, &out.Resources
+ *out = make([]metav1.GroupVersionKind, len(*in))
+ copy(*out, *in)
+ }
+ if in.Workloads != nil {
+ in, out := &in.Workloads, &out.Workloads
+ *out = make([]WorkloadInfo, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReadinessChecks.
+func (in *ReadinessChecks) DeepCopy() *ReadinessChecks {
+ if in == nil {
+ return nil
+ }
+ out := new(ReadinessChecks)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *Requirements) DeepCopyInto(out *Requirements) {
+ *out = *in
+ if in.Features != nil {
+ in, out := &in.Features, &out.Features
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Requirements.
+func (in *Requirements) DeepCopy() *Requirements {
+ if in == nil {
+ return nil
+ }
+ out := new(Requirements)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ResourceDashboard) DeepCopyInto(out *ResourceDashboard) {
+ *out = *in
+ out.TypeMeta = in.TypeMeta
+ in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
+ in.Spec.DeepCopyInto(&out.Spec)
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceDashboard.
+func (in *ResourceDashboard) DeepCopy() *ResourceDashboard {
+ if in == nil {
+ return nil
+ }
+ out := new(ResourceDashboard)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
+func (in *ResourceDashboard) DeepCopyObject() runtime.Object {
+ if c := in.DeepCopy(); c != nil {
+ return c
+ }
+ return nil
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ResourceDashboardList) DeepCopyInto(out *ResourceDashboardList) {
+ *out = *in
+ out.TypeMeta = in.TypeMeta
+ in.ListMeta.DeepCopyInto(&out.ListMeta)
+ if in.Items != nil {
+ in, out := &in.Items, &out.Items
+ *out = make([]ResourceDashboard, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceDashboardList.
+func (in *ResourceDashboardList) DeepCopy() *ResourceDashboardList {
+ if in == nil {
+ return nil
+ }
+ out := new(ResourceDashboardList)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
+func (in *ResourceDashboardList) DeepCopyObject() runtime.Object {
+ if c := in.DeepCopy(); c != nil {
+ return c
+ }
+ return nil
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ResourceDashboardSpec) DeepCopyInto(out *ResourceDashboardSpec) {
+ *out = *in
+ out.Resource = in.Resource
+ if in.Dashboards != nil {
+ in, out := &in.Dashboards, &out.Dashboards
+ *out = make([]Dashboard, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceDashboardSpec.
+func (in *ResourceDashboardSpec) DeepCopy() *ResourceDashboardSpec {
+ if in == nil {
+ return nil
+ }
+ out := new(ResourceDashboardSpec)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ResourceEditor) DeepCopyInto(out *ResourceEditor) {
+ *out = *in
+ out.TypeMeta = in.TypeMeta
+ in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
+ in.Spec.DeepCopyInto(&out.Spec)
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceEditor.
+func (in *ResourceEditor) DeepCopy() *ResourceEditor {
+ if in == nil {
+ return nil
+ }
+ out := new(ResourceEditor)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
+func (in *ResourceEditor) DeepCopyObject() runtime.Object {
+ if c := in.DeepCopy(); c != nil {
+ return c
+ }
+ return nil
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ResourceEditorList) DeepCopyInto(out *ResourceEditorList) {
+ *out = *in
+ out.TypeMeta = in.TypeMeta
+ in.ListMeta.DeepCopyInto(&out.ListMeta)
+ if in.Items != nil {
+ in, out := &in.Items, &out.Items
+ *out = make([]ResourceEditor, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceEditorList.
+func (in *ResourceEditorList) DeepCopy() *ResourceEditorList {
+ if in == nil {
+ return nil
+ }
+ out := new(ResourceEditorList)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
+func (in *ResourceEditorList) DeepCopyObject() runtime.Object {
+ if c := in.DeepCopy(); c != nil {
+ return c
+ }
+ return nil
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ResourceEditorSpec) DeepCopyInto(out *ResourceEditorSpec) {
+ *out = *in
+ out.Resource = in.Resource
+ if in.UI != nil {
+ in, out := &in.UI, &out.UI
+ *out = new(UIParameters)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Icons != nil {
+ in, out := &in.Icons, &out.Icons
+ *out = make([]apisshared.ImageSpec, len(*in))
+ copy(*out, *in)
+ }
+ if in.Variants != nil {
+ in, out := &in.Variants, &out.Variants
+ *out = make([]VariantRef, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ if in.Installer != nil {
+ in, out := &in.Installer, &out.Installer
+ *out = new(shared.DeploymentParameters)
+ (*in).DeepCopyInto(*out)
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceEditorSpec.
+func (in *ResourceEditorSpec) DeepCopy() *ResourceEditorSpec {
+ if in == nil {
+ return nil
+ }
+ out := new(ResourceEditorSpec)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ResourceOutlineFilter) DeepCopyInto(out *ResourceOutlineFilter) {
+ *out = *in
+ out.TypeMeta = in.TypeMeta
+ in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
+ in.Spec.DeepCopyInto(&out.Spec)
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceOutlineFilter.
+func (in *ResourceOutlineFilter) DeepCopy() *ResourceOutlineFilter {
+ if in == nil {
+ return nil
+ }
+ out := new(ResourceOutlineFilter)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
+func (in *ResourceOutlineFilter) DeepCopyObject() runtime.Object {
+ if c := in.DeepCopy(); c != nil {
+ return c
+ }
+ return nil
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ResourceOutlineFilterList) DeepCopyInto(out *ResourceOutlineFilterList) {
+ *out = *in
+ out.TypeMeta = in.TypeMeta
+ in.ListMeta.DeepCopyInto(&out.ListMeta)
+ if in.Items != nil {
+ in, out := &in.Items, &out.Items
+ *out = make([]ResourceOutlineFilter, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceOutlineFilterList.
+func (in *ResourceOutlineFilterList) DeepCopy() *ResourceOutlineFilterList {
+ if in == nil {
+ return nil
+ }
+ out := new(ResourceOutlineFilterList)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
+func (in *ResourceOutlineFilterList) DeepCopyObject() runtime.Object {
+ if c := in.DeepCopy(); c != nil {
+ return c
+ }
+ return nil
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ResourceOutlineFilterSpec) DeepCopyInto(out *ResourceOutlineFilterSpec) {
+ *out = *in
+ out.Resource = in.Resource
+ if in.Pages != nil {
+ in, out := &in.Pages, &out.Pages
+ *out = make([]ResourcePageOutlineFilter, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ if in.Actions != nil {
+ in, out := &in.Actions, &out.Actions
+ *out = make([]ActionTemplateGroupFilter, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceOutlineFilterSpec.
+func (in *ResourceOutlineFilterSpec) DeepCopy() *ResourceOutlineFilterSpec {
+ if in == nil {
+ return nil
+ }
+ out := new(ResourceOutlineFilterSpec)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ResourcePageOutlineFilter) DeepCopyInto(out *ResourcePageOutlineFilter) {
+ *out = *in
+ if in.Sections != nil {
+ in, out := &in.Sections, &out.Sections
+ *out = make([]SectionOutlineFilter, len(*in))
+ for i := range *in {
+ (*in)[i].DeepCopyInto(&(*out)[i])
+ }
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourcePageOutlineFilter.
+func (in *ResourcePageOutlineFilter) DeepCopy() *ResourcePageOutlineFilter {
+ if in == nil {
+ return nil
+ }
+ out := new(ResourcePageOutlineFilter)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *SectionOutlineFilter) DeepCopyInto(out *SectionOutlineFilter) {
+ *out = *in
+ if in.Info != nil {
+ in, out := &in.Info, &out.Info
+ *out = make(map[string]bool, len(*in))
+ for key, val := range *in {
+ (*out)[key] = val
+ }
+ }
+ if in.Blocks != nil {
+ in, out := &in.Blocks, &out.Blocks
+ *out = make(map[string]bool, len(*in))
+ for key, val := range *in {
+ (*out)[key] = val
+ }
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SectionOutlineFilter.
+func (in *SectionOutlineFilter) DeepCopy() *SectionOutlineFilter {
+ if in == nil {
+ return nil
+ }
+ out := new(SectionOutlineFilter)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *UIParameters) DeepCopyInto(out *UIParameters) {
+ *out = *in
+ if in.Options != nil {
+ in, out := &in.Options, &out.Options
+ *out = new(releasesv1alpha1.ChartSourceRef)
+ **out = **in
+ }
+ if in.Editor != nil {
+ in, out := &in.Editor, &out.Editor
+ *out = new(releasesv1alpha1.ChartSourceRef)
+ **out = **in
+ }
+ if in.InstanceLabelPaths != nil {
+ in, out := &in.InstanceLabelPaths, &out.InstanceLabelPaths
+ *out = make([]string, len(*in))
+ copy(*out, *in)
+ }
+ if in.Actions != nil {
+ in, out := &in.Actions, &out.Actions
+ *out = make([]*shared.ActionTemplateGroup, len(*in))
+ for i := range *in {
+ if (*in)[i] != nil {
+ in, out := &(*in)[i], &(*out)[i]
+ *out = new(shared.ActionTemplateGroup)
+ (*in).DeepCopyInto(*out)
+ }
+ }
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UIParameters.
+func (in *UIParameters) DeepCopy() *UIParameters {
+ if in == nil {
+ return nil
+ }
+ out := new(UIParameters)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *ValuesReference) DeepCopyInto(out *ValuesReference) {
+ *out = *in
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValuesReference.
+func (in *ValuesReference) DeepCopy() *ValuesReference {
+ if in == nil {
+ return nil
+ }
+ out := new(ValuesReference)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *VariantRef) DeepCopyInto(out *VariantRef) {
+ *out = *in
+ if in.Selector != nil {
+ in, out := &in.Selector, &out.Selector
+ *out = new(metav1.LabelSelector)
+ (*in).DeepCopyInto(*out)
+ }
+ if in.Icons != nil {
+ in, out := &in.Icons, &out.Icons
+ *out = make([]apisshared.ImageSpec, len(*in))
+ copy(*out, *in)
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VariantRef.
+func (in *VariantRef) DeepCopy() *VariantRef {
+ if in == nil {
+ return nil
+ }
+ out := new(VariantRef)
+ in.DeepCopyInto(out)
+ return out
+}
+
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *WorkloadInfo) DeepCopyInto(out *WorkloadInfo) {
+ *out = *in
+ out.GroupVersionKind = in.GroupVersionKind
+ if in.Selector != nil {
+ in, out := &in.Selector, &out.Selector
+ *out = make(map[string]string, len(*in))
+ for key, val := range *in {
+ (*out)[key] = val
+ }
+ }
+ return
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkloadInfo.
+func (in *WorkloadInfo) DeepCopy() *WorkloadInfo {
+ if in == nil {
+ return nil
+ }
+ out := new(WorkloadInfo)
+ in.DeepCopyInto(out)
+ return out
+}
diff --git a/vendor/kmodules.xyz/resource-metadata/crds/core.k8s.appscode.com_genericresources.yaml b/vendor/kmodules.xyz/resource-metadata/crds/core.k8s.appscode.com_genericresources.yaml
new file mode 100644
index 00000000..1118a8bc
--- /dev/null
+++ b/vendor/kmodules.xyz/resource-metadata/crds/core.k8s.appscode.com_genericresources.yaml
@@ -0,0 +1,530 @@
+
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ creationTimestamp: null
+ name: genericresources.core.k8s.appscode.com
+spec:
+ group: core.k8s.appscode.com
+ names:
+ kind: GenericResource
+ listKind: GenericResourceList
+ plural: genericresources
+ singular: genericresource
+ scope: Namespaced
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: |-
+ APIVersion defines the versioned schema of this representation of an object.
+ Servers should convert recognized schemas to the latest internal value, and
+ may reject unrecognized values.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+ type: string
+ kind:
+ description: |-
+ Kind is a string value representing the REST resource this object represents.
+ Servers may infer this from the endpoint the client submits requests to.
+ Cannot be updated.
+ In CamelCase.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+ type: string
+ metadata:
+ type: object
+ spec:
+ properties:
+ apiType:
+ description: ResourceID identifies a resource
+ properties:
+ group:
+ type: string
+ kind:
+ description: Kind is the serialized kind of the resource. It
+ is normally CamelCase and singular.
+ type: string
+ name:
+ description: |-
+ Name is the plural name of the resource to serve. It must match the name of the CustomResourceDefinition-registration
+ too: plural.group and it must be all lowercase.
+ type: string
+ scope:
+ description: ResourceScope is an enum defining the different scopes
+ available to a custom resource
+ type: string
+ version:
+ type: string
+ required:
+ - group
+ type: object
+ appResource:
+ description: ResourceRequirements describes the compute resource requirements.
+ properties:
+ claims:
+ description: |-
+ Claims lists the names of resources, defined in spec.resourceClaims,
+ that are used by this container.
+
+ This field depends on the
+ DynamicResourceAllocation feature gate.
+
+ This field is immutable. It can only be set for containers.
+ items:
+ description: ResourceClaim references one entry in PodSpec.ResourceClaims.
+ properties:
+ name:
+ description: |-
+ Name must match the name of one entry in pod.spec.resourceClaims of
+ the Pod where this field is used. It makes that resource available
+ inside a container.
+ type: string
+ request:
+ description: |-
+ Request is the name chosen for a request in the referenced claim.
+ If empty, everything from the claim is made available, otherwise
+ only the result of this request.
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ description: |-
+ Limits describes the maximum amount of compute resources allowed.
+ More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ description: |-
+ Requests describes the minimum amount of compute resources required.
+ If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
+ otherwise to an implementation-defined value. Requests cannot exceed Limits.
+ More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
+ type: object
+ type: object
+ cluster:
+ properties:
+ apiEndpoint:
+ type: string
+ caBundle:
+ type: string
+ cloudServiceAuthMode:
+ type: string
+ displayName:
+ type: string
+ hubClusterID:
+ type: string
+ managerID:
+ type: string
+ mode:
+ description: ENUM(prod,qa,staging,dev)
+ enum:
+ - prod
+ - qa
+ - staging
+ - dev
+ type: string
+ name:
+ type: string
+ ownerID:
+ type: string
+ ownerType:
+ type: string
+ provider:
+ enum:
+ - AKS
+ - DigitalOcean
+ - EKS
+ - Exoscale
+ - Generic
+ - GKE
+ - Linode
+ - Packet
+ - Rancher
+ - Scaleway
+ - Vultr
+ type: string
+ uid:
+ type: string
+ required:
+ - uid
+ type: object
+ mode:
+ type: string
+ name:
+ type: string
+ namespace:
+ properties:
+ aceOrgID:
+ type: string
+ aceOrgMetadata:
+ additionalProperties:
+ type: string
+ type: object
+ creationTimestamp:
+ format: date-time
+ type: string
+ enableResourceTrial:
+ type: boolean
+ name:
+ type: string
+ uid:
+ description: |-
+ UID is a type that holds unique ID values, including UUIDs. Because we
+ don't ONLY use UUIDs, this is an alias to string. Being a type captures
+ intent and helps make sure that UIDs and names do not get conflated.
+ type: string
+ required:
+ - name
+ type: object
+ pods:
+ items:
+ properties:
+ containers:
+ items:
+ properties:
+ name:
+ type: string
+ resource:
+ description: ResourceRequirements describes the compute
+ resource requirements.
+ properties:
+ claims:
+ description: |-
+ Claims lists the names of resources, defined in spec.resourceClaims,
+ that are used by this container.
+
+ This field depends on the
+ DynamicResourceAllocation feature gate.
+
+ This field is immutable. It can only be set for containers.
+ items:
+ description: ResourceClaim references one entry
+ in PodSpec.ResourceClaims.
+ properties:
+ name:
+ description: |-
+ Name must match the name of one entry in pod.spec.resourceClaims of
+ the Pod where this field is used. It makes that resource available
+ inside a container.
+ type: string
+ request:
+ description: |-
+ Request is the name chosen for a request in the referenced claim.
+ If empty, everything from the claim is made available, otherwise
+ only the result of this request.
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ description: |-
+ Limits describes the maximum amount of compute resources allowed.
+ More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ description: |-
+ Requests describes the minimum amount of compute resources required.
+ If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
+ otherwise to an implementation-defined value. Requests cannot exceed Limits.
+ More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
+ type: object
+ type: object
+ restartPolicy:
+ description: |-
+ ContainerRestartPolicy is the restart policy for a single container.
+ The only allowed values are "Always", "Never", and "OnFailure".
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ creationTimestamp:
+ format: date-time
+ type: string
+ initContainers:
+ items:
+ properties:
+ name:
+ type: string
+ resource:
+ description: ResourceRequirements describes the compute
+ resource requirements.
+ properties:
+ claims:
+ description: |-
+ Claims lists the names of resources, defined in spec.resourceClaims,
+ that are used by this container.
+
+ This field depends on the
+ DynamicResourceAllocation feature gate.
+
+ This field is immutable. It can only be set for containers.
+ items:
+ description: ResourceClaim references one entry
+ in PodSpec.ResourceClaims.
+ properties:
+ name:
+ description: |-
+ Name must match the name of one entry in pod.spec.resourceClaims of
+ the Pod where this field is used. It makes that resource available
+ inside a container.
+ type: string
+ request:
+ description: |-
+ Request is the name chosen for a request in the referenced claim.
+ If empty, everything from the claim is made available, otherwise
+ only the result of this request.
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ description: |-
+ Limits describes the maximum amount of compute resources allowed.
+ More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ description: |-
+ Requests describes the minimum amount of compute resources required.
+ If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
+ otherwise to an implementation-defined value. Requests cannot exceed Limits.
+ More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
+ type: object
+ type: object
+ restartPolicy:
+ description: |-
+ ContainerRestartPolicy is the restart policy for a single container.
+ The only allowed values are "Always", "Never", and "OnFailure".
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ name:
+ type: string
+ uid:
+ description: |-
+ UID is a type that holds unique ID values, including UUIDs. Because we
+ don't ONLY use UUIDs, this is an alias to string. Being a type captures
+ intent and helps make sure that UIDs and names do not get conflated.
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ replicas:
+ format: int64
+ type: integer
+ roleReplicas:
+ additionalProperties:
+ format: int64
+ type: integer
+ type: object
+ roleResourceLimits:
+ additionalProperties:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ description: ResourceList is a set of (resource name, quantity)
+ pairs.
+ type: object
+ type: object
+ roleResourceRequests:
+ additionalProperties:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ description: ResourceList is a set of (resource name, quantity)
+ pairs.
+ type: object
+ type: object
+ status:
+ properties:
+ message:
+ description: Message
+ type: string
+ status:
+ description: Status
+ type: string
+ type: object
+ storage:
+ items:
+ properties:
+ creationTimestamp:
+ format: date-time
+ type: string
+ name:
+ type: string
+ resources:
+ description: VolumeResourceRequirements describes the storage
+ resource requirements for a volume.
+ properties:
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ description: |-
+ Limits describes the maximum amount of compute resources allowed.
+ More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ description: |-
+ Requests describes the minimum amount of compute resources required.
+ If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
+ otherwise to an implementation-defined value. Requests cannot exceed Limits.
+ More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
+ type: object
+ type: object
+ uid:
+ description: |-
+ UID is a type that holds unique ID values, including UUIDs. Because we
+ don't ONLY use UUIDs, this is an alias to string. Being a type captures
+ intent and helps make sure that UIDs and names do not get conflated.
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ totalResource:
+ description: ResourceRequirements describes the compute resource requirements.
+ properties:
+ claims:
+ description: |-
+ Claims lists the names of resources, defined in spec.resourceClaims,
+ that are used by this container.
+
+ This field depends on the
+ DynamicResourceAllocation feature gate.
+
+ This field is immutable. It can only be set for containers.
+ items:
+ description: ResourceClaim references one entry in PodSpec.ResourceClaims.
+ properties:
+ name:
+ description: |-
+ Name must match the name of one entry in pod.spec.resourceClaims of
+ the Pod where this field is used. It makes that resource available
+ inside a container.
+ type: string
+ request:
+ description: |-
+ Request is the name chosen for a request in the referenced claim.
+ If empty, everything from the claim is made available, otherwise
+ only the result of this request.
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ description: |-
+ Limits describes the maximum amount of compute resources allowed.
+ More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ description: |-
+ Requests describes the minimum amount of compute resources required.
+ If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
+ otherwise to an implementation-defined value. Requests cannot exceed Limits.
+ More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
+ type: object
+ type: object
+ uid:
+ description: |-
+ UID is a type that holds unique ID values, including UUIDs. Because we
+ don't ONLY use UUIDs, this is an alias to string. Being a type captures
+ intent and helps make sure that UIDs and names do not get conflated.
+ type: string
+ version:
+ type: string
+ required:
+ - apiType
+ - name
+ - status
+ type: object
+ status:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ served: true
+ storage: true
diff --git a/vendor/kmodules.xyz/resource-metadata/crds/core.k8s.appscode.com_genericresourceservices.yaml b/vendor/kmodules.xyz/resource-metadata/crds/core.k8s.appscode.com_genericresourceservices.yaml
new file mode 100644
index 00000000..df21f750
--- /dev/null
+++ b/vendor/kmodules.xyz/resource-metadata/crds/core.k8s.appscode.com_genericresourceservices.yaml
@@ -0,0 +1,489 @@
+
+---
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ creationTimestamp: null
+ name: genericresourceservices.core.k8s.appscode.com
+spec:
+ group: core.k8s.appscode.com
+ names:
+ kind: GenericResourceService
+ listKind: GenericResourceServiceList
+ plural: genericresourceservices
+ singular: genericresourceservice
+ scope: Namespaced
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: |-
+ APIVersion defines the versioned schema of this representation of an object.
+ Servers should convert recognized schemas to the latest internal value, and
+ may reject unrecognized values.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+ type: string
+ kind:
+ description: |-
+ Kind is a string value representing the REST resource this object represents.
+ Servers may infer this from the endpoint the client submits requests to.
+ Cannot be updated.
+ In CamelCase.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+ type: string
+ metadata:
+ type: object
+ spec:
+ properties:
+ apiType:
+ description: ResourceID identifies a resource
+ properties:
+ group:
+ type: string
+ kind:
+ description: Kind is the serialized kind of the resource. It
+ is normally CamelCase and singular.
+ type: string
+ name:
+ description: |-
+ Name is the plural name of the resource to serve. It must match the name of the CustomResourceDefinition-registration
+ too: plural.group and it must be all lowercase.
+ type: string
+ scope:
+ description: ResourceScope is an enum defining the different scopes
+ available to a custom resource
+ type: string
+ version:
+ type: string
+ required:
+ - group
+ type: object
+ cluster:
+ properties:
+ apiEndpoint:
+ type: string
+ caBundle:
+ type: string
+ cloudServiceAuthMode:
+ type: string
+ displayName:
+ type: string
+ hubClusterID:
+ type: string
+ managerID:
+ type: string
+ mode:
+ description: ENUM(prod,qa,staging,dev)
+ enum:
+ - prod
+ - qa
+ - staging
+ - dev
+ type: string
+ name:
+ type: string
+ ownerID:
+ type: string
+ ownerType:
+ type: string
+ provider:
+ enum:
+ - AKS
+ - DigitalOcean
+ - EKS
+ - Exoscale
+ - Generic
+ - GKE
+ - Linode
+ - Packet
+ - Rancher
+ - Scaleway
+ - Vultr
+ type: string
+ uid:
+ type: string
+ required:
+ - uid
+ type: object
+ facilities:
+ properties:
+ backup:
+ properties:
+ refs:
+ items:
+ description: ObjectReference contains enough information
+ to let you inspect or modify the referred object.
+ properties:
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ type: string
+ namespace:
+ description: |-
+ Namespace of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ resource:
+ description: ResourceID identifies a resource
+ properties:
+ group:
+ type: string
+ kind:
+ description: Kind is the serialized kind of the resource. It
+ is normally CamelCase and singular.
+ type: string
+ name:
+ description: |-
+ Name is the plural name of the resource to serve. It must match the name of the CustomResourceDefinition-registration
+ too: plural.group and it must be all lowercase.
+ type: string
+ scope:
+ description: ResourceScope is an enum defining the different
+ scopes available to a custom resource
+ type: string
+ version:
+ type: string
+ required:
+ - group
+ type: object
+ usage:
+ type: string
+ required:
+ - usage
+ type: object
+ exec:
+ items:
+ properties:
+ alias:
+ type: string
+ command:
+ items:
+ type: string
+ type: array
+ container:
+ type: string
+ help:
+ type: string
+ kubectlCommand:
+ type: string
+ ref:
+ description: ObjectReference contains enough information
+ to let you inspect or modify the referred object.
+ properties:
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ type: string
+ namespace:
+ description: |-
+ Namespace of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
+ type: string
+ required:
+ - name
+ type: object
+ resource:
+ type: string
+ required:
+ - alias
+ - command
+ - container
+ - ref
+ - resource
+ type: object
+ type: array
+ exposed:
+ properties:
+ refs:
+ items:
+ description: ObjectReference contains enough information
+ to let you inspect or modify the referred object.
+ properties:
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ type: string
+ namespace:
+ description: |-
+ Namespace of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ resource:
+ description: ResourceID identifies a resource
+ properties:
+ group:
+ type: string
+ kind:
+ description: Kind is the serialized kind of the resource. It
+ is normally CamelCase and singular.
+ type: string
+ name:
+ description: |-
+ Name is the plural name of the resource to serve. It must match the name of the CustomResourceDefinition-registration
+ too: plural.group and it must be all lowercase.
+ type: string
+ scope:
+ description: ResourceScope is an enum defining the different
+ scopes available to a custom resource
+ type: string
+ version:
+ type: string
+ required:
+ - group
+ type: object
+ usage:
+ type: string
+ required:
+ - usage
+ type: object
+ gateway:
+ properties:
+ hostname:
+ type: string
+ ip:
+ type: string
+ name:
+ type: string
+ namespace:
+ type: string
+ services:
+ description: Services is an optional configuration for services
+ used to expose database
+ items:
+ properties:
+ alias:
+ description: Alias represents the identifier of the
+ service.
+ type: string
+ ports:
+ items:
+ description: GatewayPort contains information on Gateway
+ service's port.
+ properties:
+ backendServicePort:
+ description: Number of the port to access the
+ backend service.
+ format: int32
+ type: integer
+ name:
+ description: The name of this port within the
+ gateway service.
+ type: string
+ nodePort:
+ description: |-
+ The port on each node on which this gateway service is exposed when type is
+ NodePort or LoadBalancer.
+ format: int32
+ type: integer
+ port:
+ description: The port that will be exposed by
+ the gateway service.
+ format: int32
+ type: integer
+ required:
+ - port
+ type: object
+ type: array
+ required:
+ - alias
+ - ports
+ type: object
+ type: array
+ ui:
+ description: UI is an optional list of database web uis
+ items:
+ properties:
+ alias:
+ description: |-
+ Alias represents the identifier of the service.
+ This should match the db ui chart name
+ type: string
+ helmRelease:
+ description: |-
+ HelmRelease is the name of the helm release used to deploy this ui
+ The name format is typically -
+ properties:
+ name:
+ default: ""
+ description: |-
+ Name of the referent.
+ This field is effectively required, but due to backwards compatibility is
+ allowed to be empty. Instances of this type with an empty value here are
+ almost certainly wrong.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ type: string
+ type: object
+ x-kubernetes-map-type: atomic
+ port:
+ description: GatewayPort contains information on Gateway
+ service's port.
+ properties:
+ backendServicePort:
+ description: Number of the port to access the backend
+ service.
+ format: int32
+ type: integer
+ name:
+ description: The name of this port within the gateway
+ service.
+ type: string
+ nodePort:
+ description: |-
+ The port on each node on which this gateway service is exposed when type is
+ NodePort or LoadBalancer.
+ format: int32
+ type: integer
+ port:
+ description: The port that will be exposed by the
+ gateway service.
+ format: int32
+ type: integer
+ required:
+ - port
+ type: object
+ url:
+ description: URL of the database ui
+ type: string
+ required:
+ - alias
+ - port
+ - url
+ type: object
+ type: array
+ required:
+ - name
+ - namespace
+ type: object
+ monitoring:
+ properties:
+ refs:
+ items:
+ description: ObjectReference contains enough information
+ to let you inspect or modify the referred object.
+ properties:
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ type: string
+ namespace:
+ description: |-
+ Namespace of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ resource:
+ description: ResourceID identifies a resource
+ properties:
+ group:
+ type: string
+ kind:
+ description: Kind is the serialized kind of the resource. It
+ is normally CamelCase and singular.
+ type: string
+ name:
+ description: |-
+ Name is the plural name of the resource to serve. It must match the name of the CustomResourceDefinition-registration
+ too: plural.group and it must be all lowercase.
+ type: string
+ scope:
+ description: ResourceScope is an enum defining the different
+ scopes available to a custom resource
+ type: string
+ version:
+ type: string
+ required:
+ - group
+ type: object
+ usage:
+ type: string
+ required:
+ - usage
+ type: object
+ tls:
+ properties:
+ refs:
+ items:
+ description: ObjectReference contains enough information
+ to let you inspect or modify the referred object.
+ properties:
+ name:
+ description: |-
+ Name of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ type: string
+ namespace:
+ description: |-
+ Namespace of the referent.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ resource:
+ description: ResourceID identifies a resource
+ properties:
+ group:
+ type: string
+ kind:
+ description: Kind is the serialized kind of the resource. It
+ is normally CamelCase and singular.
+ type: string
+ name:
+ description: |-
+ Name is the plural name of the resource to serve. It must match the name of the CustomResourceDefinition-registration
+ too: plural.group and it must be all lowercase.
+ type: string
+ scope:
+ description: ResourceScope is an enum defining the different
+ scopes available to a custom resource
+ type: string
+ version:
+ type: string
+ required:
+ - group
+ type: object
+ usage:
+ type: string
+ required:
+ - usage
+ type: object
+ type: object
+ name:
+ type: string
+ status:
+ properties:
+ message:
+ description: Message
+ type: string
+ status:
+ description: Status
+ type: string
+ type: object
+ required:
+ - apiType
+ - status
+ type: object
+ status:
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ served: true
+ storage: true
diff --git a/vendor/kmodules.xyz/resource-metadata/crds/core.k8s.appscode.com_podviews.yaml b/vendor/kmodules.xyz/resource-metadata/crds/core.k8s.appscode.com_podviews.yaml
new file mode 100644
index 00000000..d46560eb
--- /dev/null
+++ b/vendor/kmodules.xyz/resource-metadata/crds/core.k8s.appscode.com_podviews.yaml
@@ -0,0 +1,2911 @@
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ creationTimestamp: null
+ name: podviews.core.k8s.appscode.com
+spec:
+ group: core.k8s.appscode.com
+ names:
+ kind: PodView
+ listKind: PodViewList
+ plural: podviews
+ singular: podview
+ scope: Namespaced
+ versions:
+ - name: v1alpha1
+ schema:
+ openAPIV3Schema:
+ properties:
+ apiVersion:
+ description: |-
+ APIVersion defines the versioned schema of this representation of an object.
+ Servers should convert recognized schemas to the latest internal value, and
+ may reject unrecognized values.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+ type: string
+ kind:
+ description: |-
+ Kind is a string value representing the REST resource this object represents.
+ Servers may infer this from the endpoint the client submits requests to.
+ Cannot be updated.
+ In CamelCase.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: PodViewSpec defines the desired state of PodView
+ properties:
+ containers:
+ items:
+ description: A single application container that you want to run
+ within a pod.
+ properties:
+ args:
+ description: |-
+ Arguments to the entrypoint.
+ The docker image's CMD is used if this is not provided.
+ Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
+ cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax
+ can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
+ regardless of whether the variable exists or not.
+ Cannot be updated.
+ More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
+ items:
+ type: string
+ type: array
+ command:
+ description: |-
+ Entrypoint array. Not executed within a shell.
+ The docker image's ENTRYPOINT is used if this is not provided.
+ Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
+ cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax
+ can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
+ regardless of whether the variable exists or not.
+ Cannot be updated.
+ More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
+ items:
+ type: string
+ type: array
+ env:
+ description: |-
+ List of environment variables to set in the container.
+ Cannot be updated.
+ items:
+ description: EnvVar represents an environment variable present
+ in a Container.
+ properties:
+ name:
+ description: |-
+ Name of the environment variable.
+ May consist of any printable ASCII characters except '='.
+ type: string
+ value:
+ description: |-
+ Variable references $(VAR_NAME) are expanded
+ using the previously defined environment variables in the container and
+ any service environment variables. If a variable cannot be resolved,
+ the reference in the input string will be unchanged. Double $$ are reduced
+ to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e.
+ "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)".
+ Escaped references will never be expanded, regardless of whether the variable
+ exists or not.
+ Defaults to "".
+ type: string
+ valueFrom:
+ description: Source for the environment variable's value.
+ Cannot be used if value is not empty.
+ properties:
+ configMapKeyRef:
+ description: Selects a key of a ConfigMap.
+ properties:
+ key:
+ description: The key to select.
+ type: string
+ name:
+ default: ""
+ description: |-
+ Name of the referent.
+ This field is effectively required, but due to backwards compatibility is
+ allowed to be empty. Instances of this type with an empty value here are
+ almost certainly wrong.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ type: string
+ optional:
+ description: Specify whether the ConfigMap or
+ its key must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ fieldRef:
+ description: |-
+ Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`,
+ spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.
+ properties:
+ apiVersion:
+ description: Version of the schema the FieldPath
+ is written in terms of, defaults to "v1".
+ type: string
+ fieldPath:
+ description: Path of the field to select in the
+ specified API version.
+ type: string
+ required:
+ - fieldPath
+ type: object
+ x-kubernetes-map-type: atomic
+ fileKeyRef:
+ description: |-
+ FileKeyRef selects a key of the env file.
+ Requires the EnvFiles feature gate to be enabled.
+ properties:
+ key:
+ description: |-
+ The key within the env file. An invalid key will prevent the pod from starting.
+ The keys defined within a source may consist of any printable ASCII characters except '='.
+ During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters.
+ type: string
+ optional:
+ default: false
+ description: |-
+ Specify whether the file or its key must be defined. If the file or key
+ does not exist, then the env var is not published.
+ If optional is set to true and the specified key does not exist,
+ the environment variable will not be set in the Pod's containers.
+
+ If optional is set to false and the specified key does not exist,
+ an error will be returned during Pod creation.
+ type: boolean
+ path:
+ description: |-
+ The path within the volume from which to select the file.
+ Must be relative and may not contain the '..' path or start with '..'.
+ type: string
+ volumeName:
+ description: The name of the volume mount containing
+ the env file.
+ type: string
+ required:
+ - key
+ - path
+ - volumeName
+ type: object
+ x-kubernetes-map-type: atomic
+ resourceFieldRef:
+ description: |-
+ Selects a resource of the container: only resources limits and requests
+ (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.
+ properties:
+ containerName:
+ description: 'Container name: required for volumes,
+ optional for env vars'
+ type: string
+ divisor:
+ anyOf:
+ - type: integer
+ - type: string
+ description: Specifies the output format of the
+ exposed resources, defaults to "1"
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ resource:
+ description: 'Required: resource to select'
+ type: string
+ required:
+ - resource
+ type: object
+ x-kubernetes-map-type: atomic
+ secretKeyRef:
+ description: Selects a key of a secret in the pod's
+ namespace
+ properties:
+ key:
+ description: The key of the secret to select from. Must
+ be a valid secret key.
+ type: string
+ name:
+ default: ""
+ description: |-
+ Name of the referent.
+ This field is effectively required, but due to backwards compatibility is
+ allowed to be empty. Instances of this type with an empty value here are
+ almost certainly wrong.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ type: string
+ optional:
+ description: Specify whether the Secret or its
+ key must be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ required:
+ - name
+ type: object
+ type: array
+ envFrom:
+ description: |-
+ List of sources to populate environment variables in the container.
+ The keys defined within a source must be a C_IDENTIFIER. All invalid keys
+ will be reported as an event when the container is starting. When a key exists in multiple
+ sources, the value associated with the last source will take precedence.
+ Values defined by an Env with a duplicate key will take precedence.
+ Cannot be updated.
+ items:
+ description: EnvFromSource represents the source of a set
+ of ConfigMaps or Secrets
+ properties:
+ configMapRef:
+ description: The ConfigMap to select from
+ properties:
+ name:
+ default: ""
+ description: |-
+ Name of the referent.
+ This field is effectively required, but due to backwards compatibility is
+ allowed to be empty. Instances of this type with an empty value here are
+ almost certainly wrong.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ type: string
+ optional:
+ description: Specify whether the ConfigMap must be
+ defined
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ prefix:
+ description: |-
+ Optional text to prepend to the name of each environment variable.
+ May consist of any printable ASCII characters except '='.
+ type: string
+ secretRef:
+ description: The Secret to select from
+ properties:
+ name:
+ default: ""
+ description: |-
+ Name of the referent.
+ This field is effectively required, but due to backwards compatibility is
+ allowed to be empty. Instances of this type with an empty value here are
+ almost certainly wrong.
+ More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
+ type: string
+ optional:
+ description: Specify whether the Secret must be defined
+ type: boolean
+ type: object
+ x-kubernetes-map-type: atomic
+ type: object
+ type: array
+ image:
+ description: |-
+ Docker image name.
+ More info: https://kubernetes.io/docs/concepts/containers/images
+ This field is optional to allow higher level config management to default or override
+ container images in workload controllers like Deployments and StatefulSets.
+ type: string
+ imagePullPolicy:
+ description: |-
+ Image pull policy.
+ One of Always, Never, IfNotPresent.
+ Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.
+ Cannot be updated.
+ More info: https://kubernetes.io/docs/concepts/containers/images#updating-images
+ type: string
+ lifecycle:
+ description: |-
+ Actions that the management system should take in response to container lifecycle events.
+ Cannot be updated.
+ properties:
+ postStart:
+ description: |-
+ PostStart is called immediately after a container is created. If the handler fails,
+ the container is terminated and restarted according to its restart policy.
+ Other management of the container blocks until the hook completes.
+ More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
+ properties:
+ exec:
+ description: Exec specifies a command to execute in
+ the container.
+ properties:
+ command:
+ description: |-
+ Command is the command line to execute inside the container, the working directory for the
+ command is root ('/') in the container's filesystem. The command is simply exec'd, it is
+ not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use
+ a shell, you need to explicitly call out to that shell.
+ Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ description: HTTPGet specifies an HTTP GET request to
+ perform.
+ properties:
+ host:
+ description: |-
+ Host name to connect to, defaults to the pod IP. You probably want to set
+ "Host" in httpHeaders instead.
+ type: string
+ httpHeaders:
+ description: Custom headers to set in the request.
+ HTTP allows repeated headers.
+ items:
+ description: HTTPHeader describes a custom header
+ to be used in HTTP probes
+ properties:
+ name:
+ description: |-
+ The header field name.
+ This will be canonicalized upon output, so case-variant names will be understood as the same header.
+ type: string
+ value:
+ description: The header field value
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ description: Path to access on the HTTP server.
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ description: |-
+ Name or number of the port to access on the container.
+ Number must be in the range 1 to 65535.
+ Name must be an IANA_SVC_NAME.
+ x-kubernetes-int-or-string: true
+ scheme:
+ description: |-
+ Scheme to use for connecting to the host.
+ Defaults to HTTP.
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ description: Sleep represents a duration that the container
+ should sleep.
+ properties:
+ seconds:
+ description: Seconds is the number of seconds to
+ sleep.
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ description: |-
+ Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept
+ for backward compatibility. There is no validation of this field and
+ lifecycle hooks will fail at runtime when it is specified.
+ properties:
+ host:
+ description: 'Optional: Host name to connect to,
+ defaults to the pod IP.'
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ description: |-
+ Number or name of the port to access on the container.
+ Number must be in the range 1 to 65535.
+ Name must be an IANA_SVC_NAME.
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ preStop:
+ description: |-
+ PreStop is called immediately before a container is terminated due to an
+ API request or management event such as liveness/startup probe failure,
+ preemption, resource contention, etc. The handler is not called if the
+ container crashes or exits. The Pod's termination grace period countdown begins before the
+ PreStop hook is executed. Regardless of the outcome of the handler, the
+ container will eventually terminate within the Pod's termination grace
+ period (unless delayed by finalizers). Other management of the container blocks until the hook completes
+ or until the termination grace period is reached.
+ More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
+ properties:
+ exec:
+ description: Exec specifies a command to execute in
+ the container.
+ properties:
+ command:
+ description: |-
+ Command is the command line to execute inside the container, the working directory for the
+ command is root ('/') in the container's filesystem. The command is simply exec'd, it is
+ not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use
+ a shell, you need to explicitly call out to that shell.
+ Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ httpGet:
+ description: HTTPGet specifies an HTTP GET request to
+ perform.
+ properties:
+ host:
+ description: |-
+ Host name to connect to, defaults to the pod IP. You probably want to set
+ "Host" in httpHeaders instead.
+ type: string
+ httpHeaders:
+ description: Custom headers to set in the request.
+ HTTP allows repeated headers.
+ items:
+ description: HTTPHeader describes a custom header
+ to be used in HTTP probes
+ properties:
+ name:
+ description: |-
+ The header field name.
+ This will be canonicalized upon output, so case-variant names will be understood as the same header.
+ type: string
+ value:
+ description: The header field value
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ description: Path to access on the HTTP server.
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ description: |-
+ Name or number of the port to access on the container.
+ Number must be in the range 1 to 65535.
+ Name must be an IANA_SVC_NAME.
+ x-kubernetes-int-or-string: true
+ scheme:
+ description: |-
+ Scheme to use for connecting to the host.
+ Defaults to HTTP.
+ type: string
+ required:
+ - port
+ type: object
+ sleep:
+ description: Sleep represents a duration that the container
+ should sleep.
+ properties:
+ seconds:
+ description: Seconds is the number of seconds to
+ sleep.
+ format: int64
+ type: integer
+ required:
+ - seconds
+ type: object
+ tcpSocket:
+ description: |-
+ Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept
+ for backward compatibility. There is no validation of this field and
+ lifecycle hooks will fail at runtime when it is specified.
+ properties:
+ host:
+ description: 'Optional: Host name to connect to,
+ defaults to the pod IP.'
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ description: |-
+ Number or name of the port to access on the container.
+ Number must be in the range 1 to 65535.
+ Name must be an IANA_SVC_NAME.
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ type: object
+ stopSignal:
+ description: |-
+ StopSignal defines which signal will be sent to a container when it is being stopped.
+ If not specified, the default is defined by the container runtime in use.
+ StopSignal can only be set for Pods with a non-empty .spec.os.name
+ type: string
+ type: object
+ livenessProbe:
+ description: |-
+ Periodic probe of container liveness.
+ Container will be restarted if the probe fails.
+ Cannot be updated.
+ More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+ properties:
+ exec:
+ description: Exec specifies a command to execute in the
+ container.
+ properties:
+ command:
+ description: |-
+ Command is the command line to execute inside the container, the working directory for the
+ command is root ('/') in the container's filesystem. The command is simply exec'd, it is
+ not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use
+ a shell, you need to explicitly call out to that shell.
+ Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ description: |-
+ Minimum consecutive failures for the probe to be considered failed after having succeeded.
+ Defaults to 3. Minimum value is 1.
+ format: int32
+ type: integer
+ grpc:
+ description: GRPC specifies a GRPC HealthCheckRequest.
+ properties:
+ port:
+ description: Port number of the gRPC service. Number
+ must be in the range 1 to 65535.
+ format: int32
+ type: integer
+ service:
+ default: ""
+ description: |-
+ Service is the name of the service to place in the gRPC HealthCheckRequest
+ (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
+
+ If this is not specified, the default behavior is defined by gRPC.
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ description: HTTPGet specifies an HTTP GET request to perform.
+ properties:
+ host:
+ description: |-
+ Host name to connect to, defaults to the pod IP. You probably want to set
+ "Host" in httpHeaders instead.
+ type: string
+ httpHeaders:
+ description: Custom headers to set in the request. HTTP
+ allows repeated headers.
+ items:
+ description: HTTPHeader describes a custom header
+ to be used in HTTP probes
+ properties:
+ name:
+ description: |-
+ The header field name.
+ This will be canonicalized upon output, so case-variant names will be understood as the same header.
+ type: string
+ value:
+ description: The header field value
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ description: Path to access on the HTTP server.
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ description: |-
+ Name or number of the port to access on the container.
+ Number must be in the range 1 to 65535.
+ Name must be an IANA_SVC_NAME.
+ x-kubernetes-int-or-string: true
+ scheme:
+ description: |-
+ Scheme to use for connecting to the host.
+ Defaults to HTTP.
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ description: |-
+ Number of seconds after the container has started before liveness probes are initiated.
+ More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+ format: int32
+ type: integer
+ periodSeconds:
+ description: |-
+ How often (in seconds) to perform the probe.
+ Default to 10 seconds. Minimum value is 1.
+ format: int32
+ type: integer
+ successThreshold:
+ description: |-
+ Minimum consecutive successes for the probe to be considered successful after having failed.
+ Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
+ format: int32
+ type: integer
+ tcpSocket:
+ description: TCPSocket specifies a connection to a TCP port.
+ properties:
+ host:
+ description: 'Optional: Host name to connect to, defaults
+ to the pod IP.'
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ description: |-
+ Number or name of the port to access on the container.
+ Number must be in the range 1 to 65535.
+ Name must be an IANA_SVC_NAME.
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ description: |-
+ Optional duration in seconds the pod needs to terminate gracefully upon probe failure.
+ The grace period is the duration in seconds after the processes running in the pod are sent
+ a termination signal and the time when the processes are forcibly halted with a kill signal.
+ Set this value longer than the expected cleanup time for your process.
+ If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this
+ value overrides the value provided by the pod spec.
+ Value must be non-negative integer. The value zero indicates stop immediately via
+ the kill signal (no opportunity to shut down).
+ This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.
+ Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
+ format: int64
+ type: integer
+ timeoutSeconds:
+ description: |-
+ Number of seconds after which the probe times out.
+ Defaults to 1 second. Minimum value is 1.
+ More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+ format: int32
+ type: integer
+ type: object
+ name:
+ description: |-
+ Name of the container specified as a DNS_LABEL.
+ Each container in a pod must have a unique name (DNS_LABEL).
+ Cannot be updated.
+ type: string
+ ports:
+ description: |-
+ List of ports to expose from the container. Exposing a port here gives
+ the system additional information about the network connections a
+ container uses, but is primarily informational. Not specifying a port here
+ DOES NOT prevent that port from being exposed. Any port which is
+ listening on the default "0.0.0.0" address inside a container will be
+ accessible from the network.
+ Cannot be updated.
+ items:
+ description: ContainerPort represents a network port in a
+ single container.
+ properties:
+ containerPort:
+ description: |-
+ Number of port to expose on the pod's IP address.
+ This must be a valid port number, 0 < x < 65536.
+ format: int32
+ type: integer
+ hostIP:
+ description: What host IP to bind the external port to.
+ type: string
+ hostPort:
+ description: |-
+ Number of port to expose on the host.
+ If specified, this must be a valid port number, 0 < x < 65536.
+ If HostNetwork is specified, this must match ContainerPort.
+ Most containers do not need this.
+ format: int32
+ type: integer
+ name:
+ description: |-
+ If specified, this must be an IANA_SVC_NAME and unique within the pod. Each
+ named port in a pod must have a unique name. Name for the port that can be
+ referred to by services.
+ type: string
+ protocol:
+ default: TCP
+ description: |-
+ Protocol for port. Must be UDP, TCP, or SCTP.
+ Defaults to "TCP".
+ type: string
+ required:
+ - containerPort
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - containerPort
+ - protocol
+ x-kubernetes-list-type: map
+ readinessProbe:
+ description: |-
+ Periodic probe of container service readiness.
+ Container will be removed from service endpoints if the probe fails.
+ Cannot be updated.
+ More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+ properties:
+ exec:
+ description: Exec specifies a command to execute in the
+ container.
+ properties:
+ command:
+ description: |-
+ Command is the command line to execute inside the container, the working directory for the
+ command is root ('/') in the container's filesystem. The command is simply exec'd, it is
+ not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use
+ a shell, you need to explicitly call out to that shell.
+ Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ description: |-
+ Minimum consecutive failures for the probe to be considered failed after having succeeded.
+ Defaults to 3. Minimum value is 1.
+ format: int32
+ type: integer
+ grpc:
+ description: GRPC specifies a GRPC HealthCheckRequest.
+ properties:
+ port:
+ description: Port number of the gRPC service. Number
+ must be in the range 1 to 65535.
+ format: int32
+ type: integer
+ service:
+ default: ""
+ description: |-
+ Service is the name of the service to place in the gRPC HealthCheckRequest
+ (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
+
+ If this is not specified, the default behavior is defined by gRPC.
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ description: HTTPGet specifies an HTTP GET request to perform.
+ properties:
+ host:
+ description: |-
+ Host name to connect to, defaults to the pod IP. You probably want to set
+ "Host" in httpHeaders instead.
+ type: string
+ httpHeaders:
+ description: Custom headers to set in the request. HTTP
+ allows repeated headers.
+ items:
+ description: HTTPHeader describes a custom header
+ to be used in HTTP probes
+ properties:
+ name:
+ description: |-
+ The header field name.
+ This will be canonicalized upon output, so case-variant names will be understood as the same header.
+ type: string
+ value:
+ description: The header field value
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ description: Path to access on the HTTP server.
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ description: |-
+ Name or number of the port to access on the container.
+ Number must be in the range 1 to 65535.
+ Name must be an IANA_SVC_NAME.
+ x-kubernetes-int-or-string: true
+ scheme:
+ description: |-
+ Scheme to use for connecting to the host.
+ Defaults to HTTP.
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ description: |-
+ Number of seconds after the container has started before liveness probes are initiated.
+ More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+ format: int32
+ type: integer
+ periodSeconds:
+ description: |-
+ How often (in seconds) to perform the probe.
+ Default to 10 seconds. Minimum value is 1.
+ format: int32
+ type: integer
+ successThreshold:
+ description: |-
+ Minimum consecutive successes for the probe to be considered successful after having failed.
+ Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
+ format: int32
+ type: integer
+ tcpSocket:
+ description: TCPSocket specifies a connection to a TCP port.
+ properties:
+ host:
+ description: 'Optional: Host name to connect to, defaults
+ to the pod IP.'
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ description: |-
+ Number or name of the port to access on the container.
+ Number must be in the range 1 to 65535.
+ Name must be an IANA_SVC_NAME.
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ description: |-
+ Optional duration in seconds the pod needs to terminate gracefully upon probe failure.
+ The grace period is the duration in seconds after the processes running in the pod are sent
+ a termination signal and the time when the processes are forcibly halted with a kill signal.
+ Set this value longer than the expected cleanup time for your process.
+ If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this
+ value overrides the value provided by the pod spec.
+ Value must be non-negative integer. The value zero indicates stop immediately via
+ the kill signal (no opportunity to shut down).
+ This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.
+ Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
+ format: int64
+ type: integer
+ timeoutSeconds:
+ description: |-
+ Number of seconds after which the probe times out.
+ Defaults to 1 second. Minimum value is 1.
+ More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+ format: int32
+ type: integer
+ type: object
+ resources:
+ description: |-
+ Compute Resources required by this container.
+ Cannot be updated.
+ More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
+ properties:
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ description: |-
+ Limits describes the maximum amount of compute resources allowed.
+ More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ description: |-
+ Requests describes the minimum amount of compute resources required.
+ If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
+ otherwise to an implementation-defined value.
+ More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
+ type: object
+ usage:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ description: |-
+ Limits describes the maximum amount of compute resources allowed.
+ More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
+ type: object
+ type: object
+ securityContext:
+ description: |-
+ Security options the pod should run with.
+ More info: https://kubernetes.io/docs/concepts/policy/security-context/
+ More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
+ properties:
+ allowPrivilegeEscalation:
+ description: |-
+ AllowPrivilegeEscalation controls whether a process can gain more
+ privileges than its parent process. This bool directly controls if
+ the no_new_privs flag will be set on the container process.
+ AllowPrivilegeEscalation is true always when the container is:
+ 1) run as Privileged
+ 2) has CAP_SYS_ADMIN
+ Note that this field cannot be set when spec.os.name is windows.
+ type: boolean
+ appArmorProfile:
+ description: |-
+ appArmorProfile is the AppArmor options to use by this container. If set, this profile
+ overrides the pod's appArmorProfile.
+ Note that this field cannot be set when spec.os.name is windows.
+ properties:
+ localhostProfile:
+ description: |-
+ localhostProfile indicates a profile loaded on the node that should be used.
+ The profile must be preconfigured on the node to work.
+ Must match the loaded name of the profile.
+ Must be set if and only if type is "Localhost".
+ type: string
+ type:
+ description: |-
+ type indicates which kind of AppArmor profile will be applied.
+ Valid options are:
+ Localhost - a profile pre-loaded on the node.
+ RuntimeDefault - the container runtime's default profile.
+ Unconfined - no AppArmor enforcement.
+ type: string
+ required:
+ - type
+ type: object
+ capabilities:
+ description: |-
+ The capabilities to add/drop when running containers.
+ Defaults to the default set of capabilities granted by the container runtime.
+ Note that this field cannot be set when spec.os.name is windows.
+ properties:
+ add:
+ description: Added capabilities
+ items:
+ description: Capability represent POSIX capabilities
+ type
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ drop:
+ description: Removed capabilities
+ items:
+ description: Capability represent POSIX capabilities
+ type
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ privileged:
+ description: |-
+ Run container in privileged mode.
+ Processes in privileged containers are essentially equivalent to root on the host.
+ Defaults to false.
+ Note that this field cannot be set when spec.os.name is windows.
+ type: boolean
+ procMount:
+ description: |-
+ procMount denotes the type of proc mount to use for the containers.
+ The default value is Default which uses the container runtime defaults for
+ readonly paths and masked paths.
+ This requires the ProcMountType feature flag to be enabled.
+ Note that this field cannot be set when spec.os.name is windows.
+ type: string
+ readOnlyRootFilesystem:
+ description: |-
+ Whether this container has a read-only root filesystem.
+ Default is false.
+ Note that this field cannot be set when spec.os.name is windows.
+ type: boolean
+ runAsGroup:
+ description: |-
+ The GID to run the entrypoint of the container process.
+ Uses runtime default if unset.
+ May also be set in PodSecurityContext. If set in both SecurityContext and
+ PodSecurityContext, the value specified in SecurityContext takes precedence.
+ Note that this field cannot be set when spec.os.name is windows.
+ format: int64
+ type: integer
+ runAsNonRoot:
+ description: |-
+ Indicates that the container must run as a non-root user.
+ If true, the Kubelet will validate the image at runtime to ensure that it
+ does not run as UID 0 (root) and fail to start the container if it does.
+ If unset or false, no such validation will be performed.
+ May also be set in PodSecurityContext. If set in both SecurityContext and
+ PodSecurityContext, the value specified in SecurityContext takes precedence.
+ type: boolean
+ runAsUser:
+ description: |-
+ The UID to run the entrypoint of the container process.
+ Defaults to user specified in image metadata if unspecified.
+ May also be set in PodSecurityContext. If set in both SecurityContext and
+ PodSecurityContext, the value specified in SecurityContext takes precedence.
+ Note that this field cannot be set when spec.os.name is windows.
+ format: int64
+ type: integer
+ seLinuxOptions:
+ description: |-
+ The SELinux context to be applied to the container.
+ If unspecified, the container runtime will allocate a random SELinux context for each
+ container. May also be set in PodSecurityContext. If set in both SecurityContext and
+ PodSecurityContext, the value specified in SecurityContext takes precedence.
+ Note that this field cannot be set when spec.os.name is windows.
+ properties:
+ level:
+ description: Level is SELinux level label that applies
+ to the container.
+ type: string
+ role:
+ description: Role is a SELinux role label that applies
+ to the container.
+ type: string
+ type:
+ description: Type is a SELinux type label that applies
+ to the container.
+ type: string
+ user:
+ description: User is a SELinux user label that applies
+ to the container.
+ type: string
+ type: object
+ seccompProfile:
+ description: |-
+ The seccomp options to use by this container. If seccomp options are
+ provided at both the pod & container level, the container options
+ override the pod options.
+ Note that this field cannot be set when spec.os.name is windows.
+ properties:
+ localhostProfile:
+ description: |-
+ localhostProfile indicates a profile defined in a file on the node should be used.
+ The profile must be preconfigured on the node to work.
+ Must be a descending path, relative to the kubelet's configured seccomp profile location.
+ Must be set if type is "Localhost". Must NOT be set for any other type.
+ type: string
+ type:
+ description: |-
+ type indicates which kind of seccomp profile will be applied.
+ Valid options are:
+
+ Localhost - a profile defined in a file on the node should be used.
+ RuntimeDefault - the container runtime default profile should be used.
+ Unconfined - no profile should be applied.
+ type: string
+ required:
+ - type
+ type: object
+ windowsOptions:
+ description: |-
+ The Windows specific settings applied to all containers.
+ If unspecified, the options from the PodSecurityContext will be used.
+ If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.
+ Note that this field cannot be set when spec.os.name is linux.
+ properties:
+ gmsaCredentialSpec:
+ description: |-
+ GMSACredentialSpec is where the GMSA admission webhook
+ (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the
+ GMSA credential spec named by the GMSACredentialSpecName field.
+ type: string
+ gmsaCredentialSpecName:
+ description: GMSACredentialSpecName is the name of the
+ GMSA credential spec to use.
+ type: string
+ hostProcess:
+ description: |-
+ HostProcess determines if a container should be run as a 'Host Process' container.
+ All of a Pod's containers must have the same effective HostProcess value
+ (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).
+ In addition, if HostProcess is true then HostNetwork must also be set to true.
+ type: boolean
+ runAsUserName:
+ description: |-
+ The UserName in Windows to run the entrypoint of the container process.
+ Defaults to the user specified in image metadata if unspecified.
+ May also be set in PodSecurityContext. If set in both SecurityContext and
+ PodSecurityContext, the value specified in SecurityContext takes precedence.
+ type: string
+ type: object
+ type: object
+ startupProbe:
+ description: |-
+ StartupProbe indicates that the Pod has successfully initialized.
+ If specified, no other probes are executed until this completes successfully.
+ If this probe fails, the Pod will be restarted, just as if the livenessProbe failed.
+ This can be used to provide different probe parameters at the beginning of a Pod's lifecycle,
+ when it might take a long time to load data or warm a cache, than during steady-state operation.
+ This cannot be updated.
+ More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+ properties:
+ exec:
+ description: Exec specifies a command to execute in the
+ container.
+ properties:
+ command:
+ description: |-
+ Command is the command line to execute inside the container, the working directory for the
+ command is root ('/') in the container's filesystem. The command is simply exec'd, it is
+ not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use
+ a shell, you need to explicitly call out to that shell.
+ Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ type: object
+ failureThreshold:
+ description: |-
+ Minimum consecutive failures for the probe to be considered failed after having succeeded.
+ Defaults to 3. Minimum value is 1.
+ format: int32
+ type: integer
+ grpc:
+ description: GRPC specifies a GRPC HealthCheckRequest.
+ properties:
+ port:
+ description: Port number of the gRPC service. Number
+ must be in the range 1 to 65535.
+ format: int32
+ type: integer
+ service:
+ default: ""
+ description: |-
+ Service is the name of the service to place in the gRPC HealthCheckRequest
+ (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md).
+
+ If this is not specified, the default behavior is defined by gRPC.
+ type: string
+ required:
+ - port
+ type: object
+ httpGet:
+ description: HTTPGet specifies an HTTP GET request to perform.
+ properties:
+ host:
+ description: |-
+ Host name to connect to, defaults to the pod IP. You probably want to set
+ "Host" in httpHeaders instead.
+ type: string
+ httpHeaders:
+ description: Custom headers to set in the request. HTTP
+ allows repeated headers.
+ items:
+ description: HTTPHeader describes a custom header
+ to be used in HTTP probes
+ properties:
+ name:
+ description: |-
+ The header field name.
+ This will be canonicalized upon output, so case-variant names will be understood as the same header.
+ type: string
+ value:
+ description: The header field value
+ type: string
+ required:
+ - name
+ - value
+ type: object
+ type: array
+ x-kubernetes-list-type: atomic
+ path:
+ description: Path to access on the HTTP server.
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ description: |-
+ Name or number of the port to access on the container.
+ Number must be in the range 1 to 65535.
+ Name must be an IANA_SVC_NAME.
+ x-kubernetes-int-or-string: true
+ scheme:
+ description: |-
+ Scheme to use for connecting to the host.
+ Defaults to HTTP.
+ type: string
+ required:
+ - port
+ type: object
+ initialDelaySeconds:
+ description: |-
+ Number of seconds after the container has started before liveness probes are initiated.
+ More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+ format: int32
+ type: integer
+ periodSeconds:
+ description: |-
+ How often (in seconds) to perform the probe.
+ Default to 10 seconds. Minimum value is 1.
+ format: int32
+ type: integer
+ successThreshold:
+ description: |-
+ Minimum consecutive successes for the probe to be considered successful after having failed.
+ Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.
+ format: int32
+ type: integer
+ tcpSocket:
+ description: TCPSocket specifies a connection to a TCP port.
+ properties:
+ host:
+ description: 'Optional: Host name to connect to, defaults
+ to the pod IP.'
+ type: string
+ port:
+ anyOf:
+ - type: integer
+ - type: string
+ description: |-
+ Number or name of the port to access on the container.
+ Number must be in the range 1 to 65535.
+ Name must be an IANA_SVC_NAME.
+ x-kubernetes-int-or-string: true
+ required:
+ - port
+ type: object
+ terminationGracePeriodSeconds:
+ description: |-
+ Optional duration in seconds the pod needs to terminate gracefully upon probe failure.
+ The grace period is the duration in seconds after the processes running in the pod are sent
+ a termination signal and the time when the processes are forcibly halted with a kill signal.
+ Set this value longer than the expected cleanup time for your process.
+ If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this
+ value overrides the value provided by the pod spec.
+ Value must be non-negative integer. The value zero indicates stop immediately via
+ the kill signal (no opportunity to shut down).
+ This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate.
+ Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.
+ format: int64
+ type: integer
+ timeoutSeconds:
+ description: |-
+ Number of seconds after which the probe times out.
+ Defaults to 1 second. Minimum value is 1.
+ More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
+ format: int32
+ type: integer
+ type: object
+ stdin:
+ description: |-
+ Whether this container should allocate a buffer for stdin in the container runtime. If this
+ is not set, reads from stdin in the container will always result in EOF.
+ Default is false.
+ type: boolean
+ stdinOnce:
+ description: |-
+ Whether the container runtime should close the stdin channel after it has been opened by
+ a single attach. When stdin is true the stdin stream will remain open across multiple attach
+ sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the
+ first client attaches to stdin, and then remains open and accepts data until the client disconnects,
+ at which time stdin is closed and remains closed until the container is restarted. If this
+ flag is false, a container processes that reads from stdin will never receive an EOF.
+ Default is false
+ type: boolean
+ terminationMessagePath:
+ description: |-
+ Optional: Path at which the file to which the container's termination message
+ will be written is mounted into the container's filesystem.
+ Message written is intended to be brief final status, such as an assertion failure message.
+ Will be truncated by the node if greater than 4096 bytes. The total message length across
+ all containers will be limited to 12kb.
+ Defaults to /dev/termination-log.
+ Cannot be updated.
+ type: string
+ terminationMessagePolicy:
+ description: |-
+ Indicate how the termination message should be populated. File will use the contents of
+ terminationMessagePath to populate the container status message on both success and failure.
+ FallbackToLogsOnError will use the last chunk of container log output if the termination
+ message file is empty and the container exited with an error.
+ The log output is limited to 2048 bytes or 80 lines, whichever is smaller.
+ Defaults to File.
+ Cannot be updated.
+ type: string
+ tty:
+ description: |-
+ Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.
+ Default is false.
+ type: boolean
+ volumeDevices:
+ description: volumeDevices is the list of block devices to be
+ used by the container.
+ items:
+ description: volumeDevice describes a mapping of a raw block
+ device within a container.
+ properties:
+ devicePath:
+ description: devicePath is the path inside of the container
+ that the device will be mapped to.
+ type: string
+ name:
+ description: name must match the name of a persistentVolumeClaim
+ in the pod
+ type: string
+ required:
+ - devicePath
+ - name
+ type: object
+ type: array
+ volumeMounts:
+ description: |-
+ Pod volumes to mount into the container's filesystem.
+ Cannot be updated.
+ items:
+ description: VolumeMount describes a mounting of a Volume
+ within a container.
+ properties:
+ mountPath:
+ description: |-
+ Path within the container at which the volume should be mounted. Must
+ not contain ':'.
+ type: string
+ mountPropagation:
+ description: |-
+ mountPropagation determines how mounts are propagated from the host
+ to container and the other way around.
+ When not set, MountPropagationNone is used.
+ This field is beta in 1.10.
+ When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified
+ (which defaults to None).
+ type: string
+ name:
+ description: This must match the Name of a Volume.
+ type: string
+ readOnly:
+ description: |-
+ Mounted read-only if true, read-write otherwise (false or unspecified).
+ Defaults to false.
+ type: boolean
+ recursiveReadOnly:
+ description: |-
+ RecursiveReadOnly specifies whether read-only mounts should be handled
+ recursively.
+
+ If ReadOnly is false, this field has no meaning and must be unspecified.
+
+ If ReadOnly is true, and this field is set to Disabled, the mount is not made
+ recursively read-only. If this field is set to IfPossible, the mount is made
+ recursively read-only, if it is supported by the container runtime. If this
+ field is set to Enabled, the mount is made recursively read-only if it is
+ supported by the container runtime, otherwise the pod will not be started and
+ an error will be generated to indicate the reason.
+
+ If this field is set to IfPossible or Enabled, MountPropagation must be set to
+ None (or be unspecified, which defaults to None).
+
+ If this field is not specified, it is treated as an equivalent of Disabled.
+ type: string
+ subPath:
+ description: |-
+ Path within the volume from which the container's volume should be mounted.
+ Defaults to "" (volume's root).
+ type: string
+ subPathExpr:
+ description: |-
+ Expanded path within the volume from which the container's volume should be mounted.
+ Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.
+ Defaults to "" (volume's root).
+ SubPathExpr and SubPath are mutually exclusive.
+ type: string
+ required:
+ - mountPath
+ - name
+ type: object
+ type: array
+ workingDir:
+ description: |-
+ Container's working directory.
+ If not specified, the container runtime's default will be used, which
+ might be configured in the container image.
+ Cannot be updated.
+ type: string
+ required:
+ - name
+ type: object
+ type: array
+ resources:
+ description: ResourceView describes the compute resource requirements.
+ properties:
+ limits:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ description: |-
+ Limits describes the maximum amount of compute resources allowed.
+ More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
+ type: object
+ requests:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ description: |-
+ Requests describes the minimum amount of compute resources required.
+ If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
+ otherwise to an implementation-defined value.
+ More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
+ type: object
+ usage:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ description: |-
+ Limits describes the maximum amount of compute resources allowed.
+ More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
+ type: object
+ type: object
+ required:
+ - containers
+ - resources
+ type: object
+ status:
+ description: |-
+ PodStatus represents information about the status of a pod. Status may trail the actual
+ state of a system, especially if the node that hosts the pod cannot contact the control
+ plane.
+ properties:
+ conditions:
+ description: |-
+ Current service state of pod.
+ More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
+ items:
+ description: PodCondition contains details for the current condition
+ of this pod.
+ properties:
+ lastProbeTime:
+ description: Last time we probed the condition.
+ format: date-time
+ type: string
+ lastTransitionTime:
+ description: Last time the condition transitioned from one status
+ to another.
+ format: date-time
+ type: string
+ message:
+ description: Human-readable message indicating details about
+ last transition.
+ type: string
+ observedGeneration:
+ description: |-
+ If set, this represents the .metadata.generation that the pod condition was set based upon.
+ This is an alpha field. Enable PodObservedGenerationTracking to be able to use this field.
+ format: int64
+ type: integer
+ reason:
+ description: Unique, one-word, CamelCase reason for the condition's
+ last transition.
+ type: string
+ status:
+ description: |-
+ Status is the status of the condition.
+ Can be True, False, Unknown.
+ More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
+ type: string
+ type:
+ description: |-
+ Type is the type of the condition.
+ More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
+ type: string
+ required:
+ - status
+ - type
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - type
+ x-kubernetes-list-type: map
+ containerStatuses:
+ description: |-
+ Statuses of containers in this pod.
+ Each container in the pod should have at most one status in this list,
+ and all statuses should be for containers in the pod.
+ However this is not enforced.
+ If a status for a non-existent container is present in the list, or the list has duplicate names,
+ the behavior of various Kubernetes components is not defined and those statuses might be
+ ignored.
+ More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
+ items:
+ description: ContainerStatus contains details for the current status
+ of this container.
+ properties:
+ allocatedResources:
+ additionalProperties:
+ anyOf:
+ - type: integer
+ - type: string
+ pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
+ x-kubernetes-int-or-string: true
+ description: |-
+ AllocatedResources represents the compute resources allocated for this container by the
+ node. Kubelet sets this value to Container.Resources.Requests upon successful pod admission
+ and after successfully admitting desired pod resize.
+ type: object
+ allocatedResourcesStatus:
+ description: |-
+ AllocatedResourcesStatus represents the status of various resources
+ allocated for this Pod.
+ items:
+ description: ResourceStatus represents the status of a single
+ resource allocated to a Pod.
+ properties:
+ name:
+ description: |-
+ Name of the resource. Must be unique within the pod and in case of non-DRA resource, match one of the resources from the pod spec.
+ For DRA resources, the value must be "claim:/".
+ When this status is reported about a container, the "claim_name" and "request" must match one of the claims of this container.
+ type: string
+ resources:
+ description: |-
+ List of unique resources health. Each element in the list contains an unique resource ID and its health.
+ At a minimum, for the lifetime of a Pod, resource ID must uniquely identify the resource allocated to the Pod on the Node.
+ If other Pod on the same Node reports the status with the same resource ID, it must be the same resource they share.
+ See ResourceID type definition for a specific format it has in various use cases.
+ items:
+ description: |-
+ ResourceHealth represents the health of a resource. It has the latest device health information.
+ This is a part of KEP https://kep.k8s.io/4680.
+ properties:
+ health:
+ description: |-
+ Health of the resource.
+ can be one of:
+ - Healthy: operates as normal
+ - Unhealthy: reported unhealthy. We consider this a temporary health issue
+ since we do not have a mechanism today to distinguish
+ temporary and permanent issues.
+ - Unknown: The status cannot be determined.
+ For example, Device Plugin got unregistered and hasn't been re-registered since.
+
+ In future we may want to introduce the PermanentlyUnhealthy Status.
+ type: string
+ resourceID:
+ description: ResourceID is the unique identifier
+ of the resource. See the ResourceID type for more
+ information.
+ type: string
+ required:
+ - resourceID
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - resourceID
+ x-kubernetes-list-type: map
+ required:
+ - name
+ type: object
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ containerID:
+ description: |-
+ ContainerID is the ID of the container in the format '://'.
+ Where type is a container runtime identifier, returned from Version call of CRI API
+ (for example "containerd").
+ type: string
+ image:
+ description: |-
+ Image is the name of container image that the container is running.
+ The container image may not match the image used in the PodSpec,
+ as it may have been resolved by the runtime.
+ More info: https://kubernetes.io/docs/concepts/containers/images.
+ type: string
+ imageID:
+ description: |-
+ ImageID is the image ID of the container's image. The image ID may not
+ match the image ID of the image used in the PodSpec, as it may have been
+ resolved by the runtime.
+ type: string
+ lastState:
+ description: |-
+ LastTerminationState holds the last termination state of the container to
+ help debug container crashes and restarts. This field is not
+ populated if the container is still running and RestartCount is 0.
+ properties:
+ running:
+ description: Details about a running container
+ properties:
+ startedAt:
+ description: Time at which the container was last (re-)started
+ format: date-time
+ type: string
+ type: object
+ terminated:
+ description: Details about a terminated container
+ properties:
+ containerID:
+ description: Container's ID in the format '://